13,527 research outputs found

    Convolutional Neural Networks over Tree Structures for Programming Language Processing

    Full text link
    Programming language processing (similar to natural language processing) is a hot research topic in the field of software engineering; it has also aroused growing interest in the artificial intelligence community. However, different from a natural language sentence, a program contains rich, explicit, and complicated structural information. Hence, traditional NLP models may be inappropriate for programs. In this paper, we propose a novel tree-based convolutional neural network (TBCNN) for programming language processing, in which a convolution kernel is designed over programs' abstract syntax trees to capture structural information. TBCNN is a generic architecture for programming language processing; our experiments show its effectiveness in two different program analysis tasks: classifying programs according to functionality, and detecting code snippets of certain patterns. TBCNN outperforms baseline methods, including several neural models for NLP.Comment: Accepted at AAAI-1

    Geometry-Oblivious FMM for Compressing Dense SPD Matrices

    Full text link
    We present GOFMM (geometry-oblivious FMM), a novel method that creates a hierarchical low-rank approximation, "compression," of an arbitrary dense symmetric positive definite (SPD) matrix. For many applications, GOFMM enables an approximate matrix-vector multiplication in NlogNN \log N or even NN time, where NN is the matrix size. Compression requires NlogNN \log N storage and work. In general, our scheme belongs to the family of hierarchical matrix approximation methods. In particular, it generalizes the fast multipole method (FMM) to a purely algebraic setting by only requiring the ability to sample matrix entries. Neither geometric information (i.e., point coordinates) nor knowledge of how the matrix entries have been generated is required, thus the term "geometry-oblivious." Also, we introduce a shared-memory parallel scheme for hierarchical matrix computations that reduces synchronization barriers. We present results on the Intel Knights Landing and Haswell architectures, and on the NVIDIA Pascal architecture for a variety of matrices.Comment: 13 pages, accepted by SC'1

    Faster Shortest Paths in Dense Distance Graphs, with Applications

    Full text link
    We show how to combine two techniques for efficiently computing shortest paths in directed planar graphs. The first is the linear-time shortest-path algorithm of Henzinger, Klein, Subramanian, and Rao [STOC'94]. The second is Fakcharoenphol and Rao's algorithm [FOCS'01] for emulating Dijkstra's algorithm on the dense distance graph (DDG). A DDG is defined for a decomposition of a planar graph GG into regions of at most rr vertices each, for some parameter r<nr < n. The vertex set of the DDG is the set of Θ(n/r)\Theta(n/\sqrt r) vertices of GG that belong to more than one region (boundary vertices). The DDG has Θ(n)\Theta(n) arcs, such that distances in the DDG are equal to the distances in GG. Fakcharoenphol and Rao's implementation of Dijkstra's algorithm on the DDG (nicknamed FR-Dijkstra) runs in O(nlog(n)r1/2logr)O(n\log(n) r^{-1/2} \log r) time, and is a key component in many state-of-the-art planar graph algorithms for shortest paths, minimum cuts, and maximum flows. By combining these two techniques we remove the logn\log n dependency in the running time of the shortest-path algorithm, making it O(nr1/2log2r)O(n r^{-1/2} \log^2r). This work is part of a research agenda that aims to develop new techniques that would lead to faster, possibly linear-time, algorithms for problems such as minimum-cut, maximum-flow, and shortest paths with negative arc lengths. As immediate applications, we show how to compute maximum flow in directed weighted planar graphs in O(nlogp)O(n \log p) time, where pp is the minimum number of edges on any path from the source to the sink. We also show how to compute any part of the DDG that corresponds to a region with rr vertices and kk boundary vertices in O(rlogk)O(r \log k) time, which is faster than has been previously known for small values of kk

    Flow trees for exploring spatial trajectories

    Get PDF
    A trajectory is a directed path that defines a link between two spatial locations. That path may be as simple as the Euclidean shortest distance between a start and end point, or may involve a more complex traversal through time and space to travel from start to end. Within GI analysis, trajectories are used to represent phenomena such as movement of people as migration and commuting, good
    corecore