203 research outputs found

    Cooperation between Top-Down and Bottom-Up Theorem Provers

    Full text link
    Top-down and bottom-up theorem proving approaches each have specific advantages and disadvantages. Bottom-up provers profit from strong redundancy control but suffer from the lack of goal-orientation, whereas top-down provers are goal-oriented but often have weak calculi when their proof lengths are considered. In order to integrate both approaches, we try to achieve cooperation between a top-down and a bottom-up prover in two different ways: The first technique aims at supporting a bottom-up with a top-down prover. A top-down prover generates subgoal clauses, they are then processed by a bottom-up prover. The second technique deals with the use of bottom-up generated lemmas in a top-down prover. We apply our concept to the areas of model elimination and superposition. We discuss the ability of our techniques to shorten proofs as well as to reorder the search space in an appropriate manner. Furthermore, in order to identify subgoal clauses and lemmas which are actually relevant for the proof task, we develop methods for a relevancy-based filtering. Experiments with the provers SETHEO and SPASS performed in the problem library TPTP reveal the high potential of our cooperation approaches

    On Combining Linear-Based Strategies for Tabled Evaluation of Logic Programs

    Full text link
    Tabled evaluation is a recognized and powerful technique that overcomes some limitations of traditional Prolog systems in dealing with recursion and redundant sub-computations. We can distinguish two main categories of tabling mechanisms: suspension-based tabling and linear tabling. While suspension-based mechanisms are considered to obtain better results in general, they have more memory space requirements and are more complex and harder to implement than linear tabling mechanisms. Arguably, the SLDT and DRA strategies are the two most successful extensions to standard linear tabled evaluation. In this work, we propose a new strategy, named DRS, and we present a framework, on top of the Yap system, that supports the combination of all these three strategies. Our implementation shares the underlying execution environment and most of the data structures used to implement tabling in Yap. We thus argue that all these common features allows us to make a first and fair comparison between these different linear tabling strategies and, therefore, better understand the advantages and weaknesses of each, when used solely or combined with the others.Comment: 16 pages, 9 figures, International Conference on Logic Programming (ICLP 2011

    On Extending a Linear Tabling Framework to Support Batched Scheduling

    Get PDF
    Tabled evaluation is a recognized and powerful technique that overcomes some limitations of traditional Prolog systems in dealing with recursion and redundant sub-computations. During tabled execution, several decisions have to be made. These are determined by the scheduling strategy. Whereas a strategy can achieve very good performance for certain applications, for others it might add overheads and even lead to unacceptable inefficiency. The two most successful tabling scheduling strategies are local scheduling and batched scheduling. In previous work, we have developed a framework, on top of the Yap system, that supports the combination of different linear tabling strategies for local scheduling. In this work, we propose the extension of our framework, to support batched scheduling. In particular, we are interested in the two most successful linear tabling strategies, the DRA and DRE strategies. To the best of our knowledge, no single tabling Prolog system supports both strategies simultaneously for batched scheduling

    A segment-swapping approach for executing trapped computations

    Get PDF
    We consider the problem of supporting goal-level, independent andparallelism (IAP) in the presence of non-determinism. IAP is exploited when two or more goals which will not interfere at run time are scheduled for simultaneous execution. Backtracking over non-deterministic parallel goals runs into the wellknown trapped goal and garbage slot problems. The proposed solutions for these problems generally require complex low-level machinery which makes systems difficult to maintain and extend, and in some cases can even affect sequential execution performance. In this paper we propose a novel solution to the problem of trapped nondeterministic goals and garbage slots which is based on a single stack reordering operation and offers several advantages over previous proposals. While the implementation of this operation itself is not simple, in return it does not impose constraints on the scheduler. As a result, the scheduler and the rest of the run-time machinery can safely ignore the trapped goal and garbage slot problems and their implementation is greatly simplified. Also, standard sequential execution remains unaffected. In addition to describing the solution we report on an implementation and provide performance results. We also suggest other possible applications of the proposed approach beyond parallel execution

    The Divide-and-Conquer Subgoal-Ordering Algorithm for Speeding up Logic Inference

    Full text link
    It is common to view programs as a combination of logic and control: the logic part defines what the program must do, the control part -- how to do it. The Logic Programming paradigm was developed with the intention of separating the logic from the control. Recently, extensive research has been conducted on automatic generation of control for logic programs. Only a few of these works considered the issue of automatic generation of control for improving the efficiency of logic programs. In this paper we present a novel algorithm for automatic finding of lowest-cost subgoal orderings. The algorithm works using the divide-and-conquer strategy. The given set of subgoals is partitioned into smaller sets, based on co-occurrence of free variables. The subsets are ordered recursively and merged, yielding a provably optimal order. We experimentally demonstrate the utility of the algorithm by testing it in several domains, and discuss the possibilities of its cooperation with other existing methods

    Efficient dynamic optimization of logic programs

    Get PDF
    A summary is given of the dynamic optimization approach to speed up learning for logic programs. The problem is to restructure a recursive program into an equivalent program whose expected performance is optimal for an unknown but fixed population of problem instances. We define the term 'optimal' relative to the source of input instances and sketch an algorithm that can come within a logarithmic factor of optimal with high probability. Finally, we show that finding high-utility unfolding operations (such as EBG) can be reduced to clause reordering

    On Applying Linear Tabling to Logic Programs

    Get PDF
    As linguagens de Programação em Lógica que derivam da lógica de Horn, tal como oProlog, têm mecanismos de resolução baseados em inferência que são bastante conhecidos.Embora o Prolog seja uma linguagem com bastante sucesso, o seu potencial é limitadopelo seu mecanismo de resolucão, que é baseado na resolucão SLD. O mecanismode resolução SLD foi provado ser bastante ineficiente quando avalia programas logicosque têm ciclos infinitos ou sub-computações redundantes. A tabulacão é uma técnicade implementação bastante reconhecida e poderosa que permite ultrapassar essaslimitações em sistemas de Prolog que são baseados na resolução SLD. Actualmente,a técnica de tabulação pode ser dividida em dois grandes mecanismos: por suspensãodas pilhas de execução e por execução linear. Os mecanismos por suspensão daspilhas de execução são considerados terem melhores resultados, no entanto eles têmmais requisitos em termos de memória e são mais complexos de implementar do queos mecanismos lineares.O trabalho apresentado nesta tese pretende fazer um estudo aprofundado sobre osmecanismos de tabulação linear, de forma a perceber como as diferentes estratégiasde tabulação afectam o fluxo de avaliação de um programa lógico e melhoram a performancegeral do sistema. As estratégias SLDT e DRA são duas das mais conhecidase bem sucedidas estratégias implementadas em sistemas de tabulação linear. Nestetrabalho, propomos uma nova estratégia, que foi denominada de DRS, e apresentamosuma plataforma integrada, que suporta a combinação das três estratégias. A nossaimplementação partilha o ambiente de execução e a maioria das estructuras de dadosusadas pela máquina de execução do YapTab, que é o actual mecanismo de tabulaçãobaseado em suspensão de pilhas do sistema Yap Prolog. A combinação de todasas estratégias e mecanismos na nossa plataforma permitiu-nos fazer uma primeiracomparação justa entre todas as estratégias lineares, usadas sozinhas ou combinadas,e o mecanismo original do YapTab, de forma a perceber as vantagens e desvantagens decada um. Os resultados obtidos, confirmam que os mecanismos baseados em suspensão têm, no geral, melhores resultados do que os mecanismos lineares, sendo que a diferençaentre os resultados de ambos os sistemas pode ser em grande parte reduzida atravésda combinação correcta das melhores estratégias lineares.Logic programming languages, such as Prolog, are derived from Horn Clause Logicand provide a well understood resolution based inference mechanism. Although Prologis a popular and successful language, its potential is limited by the SLD resolutionmethod on which it is based. SLD resolution was proven to be inecient whendealing with innite loops and redundant subcomputations. Tabled evaluation isa recognized and powerful technique that overcomes those limitations on traditionalProlog systems based on SLD resolution. We can distinguish two main categoriesof tabling mechanisms: suspension-based tabling and linear-based tabling. Whilesuspension-based mechanisms are considered to obtain better results in general, theyhave more memory space requirements and are more complex and hard to implementthan linear tabling mechanisms.The work presented on this thesis was focused on making a deep study about lineartabling, in order to understand how dierent linear tabling strategies can aect theevaluation ow of tabled programs and improve its overall performance. Arguably,the SLDT and DRA strategies are the two most successful extensions to standardlinear tabled evaluation. In this work, we propose a new strategy, named DRS, andwe present a framework, on top of the Yap system, that supports the combinationof all these three linear tabling strategies. Our implementation shares the underlyingexecution environment and most of the data structures used to implement tablingin the YapTab engine, which is the actual suspension-based tabling mechanism ofthe Yap Prolog system. All these common features allows us to make a rst andfair comparison between the linear tabling strategies, used solely or combined withthe other, and YapTab's suspension-based mechanism, in order to better understandthe advantages and weaknesses of each feature. The obtained results conrmed thatsuspension-based mechanisms have, in general, better performance than linear tablingand that the dierence between both mechanisms can be highly reduced by using thecorrect combination of linear tabling strategies
    corecore