1,082 research outputs found

    Fuzzy Maximum Satisfiability

    Full text link
    In this paper, we extend the Maximum Satisfiability (MaxSAT) problem to {\L}ukasiewicz logic. The MaxSAT problem for a set of formulae {\Phi} is the problem of finding an assignment to the variables in {\Phi} that satisfies the maximum number of formulae. Three possible solutions (encodings) are proposed to the new problem: (1) Disjunctive Linear Relations (DLRs), (2) Mixed Integer Linear Programming (MILP) and (3) Weighted Constraint Satisfaction Problem (WCSP). Like its Boolean counterpart, the extended fuzzy MaxSAT will have numerous applications in optimization problems that involve vagueness.Comment: 10 page

    On Using Unsatisfiability for Solving Maximum Satisfiability

    No full text
    Maximum Satisfiability (MaxSAT) is a well-known optimization pro- blem, with several practical applications. The most widely known MAXS AT algorithms are ineffective at solving hard problems instances from practical application domains. Recent work proposed using efficient Boolean Satisfiability (SAT) solvers for solving the MaxSAT problem, based on identifying and eliminating unsatisfiable subformulas. However, these algorithms do not scale in practice. This paper analyzes existing MaxSAT algorithms based on unsatisfiable subformula identification. Moreover, the paper proposes a number of key optimizations to these MaxSAT algorithms and a new alternative algorithm. The proposed optimizations and the new algorithm provide significant performance improvements on MaxSAT instances from practical applications. Moreover, the efficiency of the new generation of unsatisfiability-based MaxSAT solvers becomes effectively indexed to the ability of modern SAT solvers to proving unsatisfiability and identifying unsatisfiable subformulas

    Incremental Maximum Satisfiability

    Get PDF
    Peer reviewe

    On the Maximum Satisfiability of Random Formulas

    Full text link
    Maximum satisfiability is a canonical NP-hard optimization problem that appears empirically hard for random instances. Let us say that a Conjunctive normal form (CNF) formula consisting of kk-clauses is pp-satisfiable if there exists a truth assignment satisfying 12k+p2k1-2^{-k}+p 2^{-k} of all clauses (observe that every kk-CNF is 0-satisfiable). Also, let Fk(n,m)F_k(n,m) denote a random kk-CNF on nn variables formed by selecting uniformly and independently mm out of all possible kk-clauses. It is easy to prove that for every k>1k>1 and every pp in (0,1](0,1], there is Rk(p)R_k(p) such that if r>Rk(p)r >R_k(p), then the probability that Fk(n,rn)F_k(n,rn) is pp-satisfiable tends to 0 as nn tends to infinity. We prove that there exists a sequence δk0\delta_k \to 0 such that if r<(1δk)Rk(p)r <(1-\delta_k) R_k(p) then the probability that Fk(n,rn)F_k(n,rn)is pp-satisfiable tends to 1 as nn tends to infinity. The sequence δk\delta_k tends to 0 exponentially fast in kk

    Cause Clue Clauses: Error Localization using Maximum Satisfiability

    Full text link
    Much effort is spent everyday by programmers in trying to reduce long, failing execution traces to the cause of the error. We present a new algorithm for error cause localization based on a reduction to the maximal satisfiability problem (MAX-SAT), which asks what is the maximum number of clauses of a Boolean formula that can be simultaneously satisfied by an assignment. At an intuitive level, our algorithm takes as input a program and a failing test, and comprises the following three steps. First, using symbolic execution, we encode a trace of a program as a Boolean trace formula which is satisfiable iff the trace is feasible. Second, for a failing program execution (e.g., one that violates an assertion or a post-condition), we construct an unsatisfiable formula by taking the trace formula and additionally asserting that the input is the failing test and that the assertion condition does hold at the end. Third, using MAX-SAT, we find a maximal set of clauses in this formula that can be satisfied together, and output the complement set as a potential cause of the error. We have implemented our algorithm in a tool called bug-assist for C programs. We demonstrate the surprising effectiveness of the tool on a set of benchmark examples with injected faults, and show that in most cases, bug-assist can quickly and precisely isolate the exact few lines of code whose change eliminates the error. We also demonstrate how our algorithm can be modified to automatically suggest fixes for common classes of errors such as off-by-one.Comment: The pre-alpha version of the tool can be downloaded from http://bugassist.mpi-sws.or
    corecore