134,586 research outputs found

    FMplex: A Novel Method for Solving Linear Real Arithmetic Problems

    Full text link
    In this paper we introduce a novel quantifier elimination method for conjunctions of linear real arithmetic constraints. Our algorithm is based on the Fourier-Motzkin variable elimination procedure, but by case splitting we are able to reduce the worst-case complexity from doubly to singly exponential. The adaption of the procedure for SMT solving has strong correspondence to the simplex algorithm, therefore we name it FMplex. Besides the theoretical foundations, we provide an experimental evaluation in the context of SMT solving

    Constraint handling strategies in Genetic Algorithms application to optimal batch plant design

    Get PDF
    Optimal batch plant design is a recurrent issue in Process Engineering, which can be formulated as a Mixed Integer Non-Linear Programming(MINLP) optimisation problem involving specific constraints, which can be, typically, the respect of a time horizon for the synthesis of various products. Genetic Algorithms constitute a common option for the solution of these problems, but their basic operating mode is not always wellsuited to any kind of constraint treatment: if those cannot be integrated in variable encoding or accounted for through adapted genetic operators, their handling turns to be a thorny issue. The point of this study is thus to test a few constraint handling techniques on a mid-size example in order to determine which one is the best fitted, in the framework of one particular problem formulation. The investigated methods are the elimination of infeasible individuals, the use of a penalty term added in the minimized criterion, the relaxation of the discrete variables upper bounds, dominancebased tournaments and, finally, a multiobjective strategy. The numerical computations, analysed in terms of result quality and of computational time, show the superiority of elimination technique for the former criterion only when the latter one does not become a bottleneck. Besides, when the problem complexity makes the random location of feasible space too difficult, a single tournament technique proves to be the most efficient one

    Solving Functional Constraints by Variable Substitution

    Full text link
    Functional constraints and bi-functional constraints are an important constraint class in Constraint Programming (CP) systems, in particular for Constraint Logic Programming (CLP) systems. CP systems with finite domain constraints usually employ CSP-based solvers which use local consistency, for example, arc consistency. We introduce a new approach which is based instead on variable substitution. We obtain efficient algorithms for reducing systems involving functional and bi-functional constraints together with other non-functional constraints. It also solves globally any CSP where there exists a variable such that any other variable is reachable from it through a sequence of functional constraints. Our experiments on random problems show that variable elimination can significantly improve the efficiency of solving problems with functional constraints

    Logic programming with pseudo-Boolean constraints

    No full text
    Boolean constraints play an important role in various constraint logic programming languages. In this paper we consider pseudo-Boolean constraints, that is equations and inequalities between pseudo-Boolean functions. A pseudo-Boolean function is an integer-valued function of Boolean variables and thus a generalization of a Boolean function. Pseudo-Boolean functions occur in many application areas, in particular in problems from operations research. An interesting connection to logic is that inference problems in propositional logic can be translated into linear pseudo-Boolean optimization problems. More generally, pseudo-Boolean constraints can be seen as a particular way of combining two of the most important domains in constraint logic programming: arithmetic and Boolean algebra. In this paper we define a new constraint logic programming language {\em CLP(PB)} for logic progamming with pseudo-Boolean constraints. The language is an instance of the general constraint logic programming language scheme {\em CLP(X)} and inherits all the typical semantic properties. We show that any pseudo-Boolean constraint has a most general solution and give variable elimination algorithms for pseudo-Boolean unification and unconstrained pseudo-Boolean optimization. Both algorithms subsume the well-known Boolean unification algorithm of B\"uttner and Simonis

    Transfer Function Synthesis without Quantifier Elimination

    Get PDF
    Traditionally, transfer functions have been designed manually for each operation in a program, instruction by instruction. In such a setting, a transfer function describes the semantics of a single instruction, detailing how a given abstract input state is mapped to an abstract output state. The net effect of a sequence of instructions, a basic block, can then be calculated by composing the transfer functions of the constituent instructions. However, precision can be improved by applying a single transfer function that captures the semantics of the block as a whole. Since blocks are program-dependent, this approach necessitates automation. There has thus been growing interest in computing transfer functions automatically, most notably using techniques based on quantifier elimination. Although conceptually elegant, quantifier elimination inevitably induces a computational bottleneck, which limits the applicability of these methods to small blocks. This paper contributes a method for calculating transfer functions that finesses quantifier elimination altogether, and can thus be seen as a response to this problem. The practicality of the method is demonstrated by generating transfer functions for input and output states that are described by linear template constraints, which include intervals and octagons.Comment: 37 pages, extended version of ESOP 2011 pape

    A Survey of Satisfiability Modulo Theory

    Full text link
    Satisfiability modulo theory (SMT) consists in testing the satisfiability of first-order formulas over linear integer or real arithmetic, or other theories. In this survey, we explain the combination of propositional satisfiability and decision procedures for conjunctions known as DPLL(T), and the alternative "natural domain" approaches. We also cover quantifiers, Craig interpolants, polynomial arithmetic, and how SMT solvers are used in automated software analysis.Comment: Computer Algebra in Scientific Computing, Sep 2016, Bucharest, Romania. 201
    corecore