Algorithms that create and mutate graph data structures are challenging to implement correctly. However, verifying even basic properties of low-level implementations, such as referential integrity and memory safety, r...
详细信息
Algorithms that create and mutate graph data structures are challenging to implement correctly. However, verifying even basic properties of low-level implementations, such as referential integrity and memory safety, remains non-trivial. Furthermore, any extension to such a data structure multiplies the complexity of its implementation, while compounding the challenges in reasoning about correctness. We take a language design approach to this problem. We propose Seam, a language for expressing local edits to graph-like datastructures, based on a relational data model, and such that data integrity can be verified automatically. We present a verification method that leverages an SMT solver, and prove it sound and precise (complete modulo termination of the SMT solver). We evaluate the verification capabilities of Seam empirically, and demonstrate its applicability to a variety of examples, most notably a new class of verification tasks derived from geometric remeshing operations used in scientific simulation and computer graphics. We describe our prototype implementation of a Seam compiler that generates low-level code, which can then be integrated into larger applications. We evaluate our compiler on a sample application, and demonstrate competitive execution time, compared to hand-written implementations.
In the dynamic indexing problem, we must maintain a changing collection of text documents so that we can efficiently support insertions, deletions, and pattern matching queries. We are especially interested in develop...
详细信息
ISBN:
(纸本)9781450327572
In the dynamic indexing problem, we must maintain a changing collection of text documents so that we can efficiently support insertions, deletions, and pattern matching queries. We are especially interested in developing efficient datastructures that store and query the documents in compressed form. All previous compressed solutions to this problem rely on answering rank and select queries on a dynamic sequence of symbols. Because of the lower bound in [Fredman and Saks, 1989], answering rank queries presents a bottleneck in compressed dynamic indexing. In this paper we show how this lower bound can be circumvented using our new framework. We demonstrate that the gap between static and dynamic variants of the indexing problem can be almost closed. Our method is based on a novel framework for adding dynamism to static compressed datastructures. Our framework also applies more generally to dynamizing other problems. We show, for example, how our framework can be applied to develop compressed representations of dynamic graphs and binary relations.
It is often a challenge to find interesting and appropriate data sets to use as examples to demonstrate graph data structures and algorithms. Goals for the data are often conflicting. The data should include examples ...
详细信息
ISBN:
(纸本)9781450310987
It is often a challenge to find interesting and appropriate data sets to use as examples to demonstrate graph data structures and algorithms. Goals for the data are often conflicting. The data should include examples small enough to work through in a class example by hand, but some large enough to demonstrate important behaviors of a structure or algorithm. data should be freely available in a convenient format and should have some real-world relevance. Visualization of the data and results computed from it is helpful. This paper describes a collection of graphdata sets generated from the Clinched Highway Mapping Project's highway data and some examples of their use in undergraduate courses on datastructures and algorithms. The source data, the process used to convert the data into a more useful format, some examples of its use, and a visualization tool using the Google Maps API, are described.
Web service technologies can be used to establish an interoperable framework between different generalisation systems. In a previous article three categories of generalisation web services were identified, including s...
详细信息
Web service technologies can be used to establish an interoperable framework between different generalisation systems. In a previous article three categories of generalisation web services were identified, including support services, operator services and processing services. This paper focuses on the category of support services. In a service-based generalisation system, the purpose of support services is to assist the generalisation process by providing auxiliary measures, procedures and datastructures that allow the representation of structural cartographic knowledge. The structural knowledge of the spatial and semantic context and the modelling of structural and spatial relationships is critical for the understanding of the role of cartographic features and thus for automated generalisation. Support services should extract and model this knowledge from the raw data and make it available to other generalisation operators. On the one hand the structural knowledge can be expressed by enriching map features with additional geometries or attributes. On the other hand, there exist various hierarchical and non-hierarchical relationships between map features, many of which can be represented by graph data structures. After a brief introduction to the interoperable web service framework, this paper proposes a taxonomy of generalisation support services and discusses its elements. It is then shown how the complex output of such services can be represented for use with web services and stored in a reusable fashion. Finally, the utilisation of support services is illustrated on four implementation examples of support services that also highlight the interactions with the generalisation operators that use these auxiliary services.
Quantum-mechanical phenomena are playing an increasing role in information processing, as transistor sizes approach the nanometer level, and quantum circuits and data encoding methods appear in the securest forms of c...
详细信息
Quantum-mechanical phenomena are playing an increasing role in information processing, as transistor sizes approach the nanometer level, and quantum circuits and data encoding methods appear in the securest forms of communication. Simulating such phenomena efficiently is exceedingly difficult because of the vast size of the quantum state space involved. A major complication is caused by errors (noise) due to unwanted interactions between the quantum states and the environment. Consequently, simulating quantum circuits and their associated errors using the density matrix representation is potentially significant in many applications, but is well beyond the computational abilities of most classical simulation techniques in both time and memory resources. The size of a density matrix grows exponentially with the number of qubits simulated, rendering array-based simulation techniques that explicitly store the density matrix intractable. In this work, we propose a new technique aimed at efficiently simulating quantum circuits that are subject to errors. In particular, we describe new graph-based algorithms implemented in the simulator QuIDDPro/D. While previously reported graph-based simulators operate in terms of the state-vector representation, these new algorithms use the density matrix representation. To gauge the improvements offered by QuIDDPro/D, we compare its simulation performance with an optimized array-based simulator called QCSim. Empirical results, generated by both simulators on a set of quantum circuit benchmarks involving error correction, reversible logic, communication, and quantum search, show that the graph-based approach far outperforms the array-based approach for these circuits.
Quantum-mechanical phenomena are playing an increasing role in information processing as transistor sizes approach the nanometer level, and quantum circuits and data encoding methods appear in the securest forms of co...
详细信息
ISBN:
(纸本)0819453595
Quantum-mechanical phenomena are playing an increasing role in information processing as transistor sizes approach the nanometer level, and quantum circuits and data encoding methods appear in the securest forms of communication. Simulating such phenomena efficiently is exceedingly difficult because of the vast size of the quantum state space involved. A major complication is caused by errors (noise) due to unwanted interactions between the quantum states and the environment. Consequently, simulating quantum circuits and their associated errors using the density matrix representation is potentially significant in many applications, but is well beyond the computational abilities of most classical simulation techniques in both time and memory resources. The size of a density matrix grows exponentially with the number of qubits simulated, rendering array-based simulation techniques that explicitly store the density matrix intractable. In this work, we propose a new technique aimed at efficiently simulating quantum circuits that are subject to errors. In particular, we describe new graph-based algorithms implemented in the simulator QuIDDPro/D. While previously reported graph-based simulators operate in terms of the state-vector representation, these new algorithms use the density matrix representation. To gauge the improvements offered by QuIDDPro/D, we compare its simulation performance with an optimized array-based simulator called QCSim. Empirical results, generated by both simulators on a set of quantum circuit benchmarks involving error correction, reversible logic, communication, and quantum search, show that the graph-based approach far outperforms the array-based approach.
Conjunctive match is often used in Artificial Intelligence as the kernel of a pattern-directed inference [37] engine. Conjunctive match entails generating and testing all possible combinations of objects against a pat...
详细信息
Conjunctive match is often used in Artificial Intelligence as the kernel of a pattern-directed inference [37] engine. Conjunctive match entails generating and testing all possible combinations of objects against a pattern of constraints. While simple to program, it is an expensive, exponential cost computation. To reduce this average match cost in production system engines, the RETE match algorithm [8] was devised. RETE compiles each rule's pattern of constraints into a network, and then incrementally updates partial matches as objects are inserted and deleted. RETE, however, has its own cost: conceptual and implementational complexity. Call-graph caching (CGC) [20] is a mechanism for transforming recursive specifications into highly optimized networks. In this paper, we describe CGC, and use it to transform a family of recursive conjunctive match formulations into their corresponding RETE networks. Our approach illustrates the ideas behind RETE, and shows their application to other algorithms.
暂无评论