43,351 research outputs found

    FixMiner: Mining Relevant Fix Patterns for Automated Program Repair

    Get PDF
    Patching is a common activity in software development. It is generally performed on a source code base to address bugs or add new functionalities. In this context, given the recurrence of bugs across projects, the associated similar patches can be leveraged to extract generic fix actions. While the literature includes various approaches leveraging similarity among patches to guide program repair, these approaches often do not yield fix patterns that are tractable and reusable as actionable input to APR systems. In this paper, we propose a systematic and automated approach to mining relevant and actionable fix patterns based on an iterative clustering strategy applied to atomic changes within patches. The goal of FixMiner is thus to infer separate and reusable fix patterns that can be leveraged in other patch generation systems. Our technique, FixMiner, leverages Rich Edit Script which is a specialized tree structure of the edit scripts that captures the AST-level context of the code changes. FixMiner uses different tree representations of Rich Edit Scripts for each round of clustering to identify similar changes. These are abstract syntax trees, edit actions trees, and code context trees. We have evaluated FixMiner on thousands of software patches collected from open source projects. Preliminary results show that we are able to mine accurate patterns, efficiently exploiting change information in Rich Edit Scripts. We further integrated the mined patterns to an automated program repair prototype, PARFixMiner, with which we are able to correctly fix 26 bugs of the Defects4J benchmark. Beyond this quantitative performance, we show that the mined fix patterns are sufficiently relevant to produce patches with a high probability of correctness: 81% of PARFixMiner's generated plausible patches are correct.Comment: 31 pages, 11 figure

    Training Big Random Forests with Little Resources

    Full text link
    Without access to large compute clusters, building random forests on large datasets is still a challenging problem. This is, in particular, the case if fully-grown trees are desired. We propose a simple yet effective framework that allows to efficiently construct ensembles of huge trees for hundreds of millions or even billions of training instances using a cheap desktop computer with commodity hardware. The basic idea is to consider a multi-level construction scheme, which builds top trees for small random subsets of the available data and which subsequently distributes all training instances to the top trees' leaves for further processing. While being conceptually simple, the overall efficiency crucially depends on the particular implementation of the different phases. The practical merits of our approach are demonstrated using dense datasets with hundreds of millions of training instances.Comment: 9 pages, 9 Figure

    Fractal spectral triples on Kellendonk's CC^*-algebra of a substitution tiling

    Get PDF
    We introduce a new class of noncommutative spectral triples on Kellendonk's CC^*-algebra associated with a nonperiodic substitution tiling. These spectral triples are constructed from fractal trees on tilings, which define a geodesic distance between any two tiles in the tiling. Since fractals typically have infinite Euclidean length, the geodesic distance is defined using Perron-Frobenius theory, and is self-similar with scaling factor given by the Perron-Frobenius eigenvalue. We show that each spectral triple is θ\theta-summable, and respects the hierarchy of the substitution system. To elucidate our results, we construct a fractal tree on the Penrose tiling, and explicitly show how it gives rise to a collection of spectral triples.Comment: Updated to agree with published versio

    Sandwiching saturation number of fullerene graphs

    Full text link
    The saturation number of a graph GG is the cardinality of any smallest maximal matching of GG, and it is denoted by s(G)s(G). Fullerene graphs are cubic planar graphs with exactly twelve 5-faces; all the other faces are hexagons. They are used to capture the structure of carbon molecules. Here we show that the saturation number of fullerenes on nn vertices is essentially n/3n/3
    corecore