257,804 research outputs found

    In Search Of Most Complex Regular Languages

    Get PDF
    Electronic version of an article published as International Journal of Foundations of Computer Science, 24(06), 2013, 691–708. http://dx.doi.org/10.1142/S0129054113400133 © World Scientific Publishing Company http://www.worldscientific.com/Sequences (L-n vertical bar n >= k), called streams, of regular languages L-n are considered, where k is some small positive integer, n is the state complexity of L-n, and the languages in a stream differ only in the parameter n, but otherwise, have the same properties. The following measures of complexity are proposed for any stream: (1) the state complexity n of L-n, that is the number of left quotients of L-n (used as a reference); (2) the state complexities of the left, quotients of L-n; (3) the number of atoms of L-n; (4) the state complexities of the atoms of L-n; (5) the size of the syntactic semigroup of L; and the state complexities of the following operations: (6) the reverse of L-n; (7) the star; (8) union, intersection, difference and symmetric difference of and L-n; and the concatenation of L-m and L-n. A stream that has the highest possible complexity with respect to these measures is then viewed as a most complex stream. The language stream (U-n (a, b, c) vertical bar n >= 3 is defined by the deterministic finite automaton with state set {0, 1, ..., n-1}, initial state 0, set {n-1} of final states, and input alphabet {a, b, c}, where a performs a cyclic permutation of the;a states, b transposes states 0 and 1, and c maps state n - 1 to state 0. This stream achieves the highest possible complexities with the exception of boolean operations where m = n. In the latter case, one can use U-n (a, b, c) and U-n(a, b, c), where the roles of a and b are interchanged in the second language. In this sense, U-n (a, b, c) is a universal witness This witness and its extensions also apply to a large number of combined regular operations.Natural Sciences and Engineering Research Council of Canada [OGP0000871

    Reasoning & Querying – State of the Art

    Get PDF
    Various query languages for Web and Semantic Web data, both for practical use and as an area of research in the scientific community, have emerged in recent years. At the same time, the broad adoption of the internet where keyword search is used in many applications, e.g. search engines, has familiarized casual users with using keyword queries to retrieve information on the internet. Unlike this easy-to-use querying, traditional query languages require knowledge of the language itself as well as of the data to be queried. Keyword-based query languages for XML and RDF bridge the gap between the two, aiming at enabling simple querying of semi-structured data, which is relevant e.g. in the context of the emerging Semantic Web. This article presents an overview of the field of keyword querying for XML and RDF

    Decompositions of Grammar Constraints

    Full text link
    A wide range of constraints can be compactly specified using automata or formal languages. In a sequence of recent papers, we have shown that an effective means to reason with such specifications is to decompose them into primitive constraints. We can then, for instance, use state of the art SAT solvers and profit from their advanced features like fast unit propagation, clause learning, and conflict-based search heuristics. This approach holds promise for solving combinatorial problems in scheduling, rostering, and configuration, as well as problems in more diverse areas like bioinformatics, software testing and natural language processing. In addition, decomposition may be an effective method to propagate other global constraints.Comment: Proceedings of the Twenty-Third AAAI Conference on Artificial Intelligenc

    Logic Programming Applications: What Are the Abstractions and Implementations?

    Full text link
    This article presents an overview of applications of logic programming, classifying them based on the abstractions and implementations of logic languages that support the applications. The three key abstractions are join, recursion, and constraint. Their essential implementations are for-loops, fixed points, and backtracking, respectively. The corresponding kinds of applications are database queries, inductive analysis, and combinatorial search, respectively. We also discuss language extensions and programming paradigms, summarize example application problems by application areas, and touch on example systems that support variants of the abstractions with different implementations
    • …
    corecore