184 research outputs found
On the Complexity of Optimization Problems based on Compiled NNF Representations
Optimization is a key task in a number of applications. When the set of
feasible solutions under consideration is of combinatorial nature and described
in an implicit way as a set of constraints, optimization is typically NP-hard.
Fortunately, in many problems, the set of feasible solutions does not often
change and is independent from the user's request. In such cases, compiling the
set of constraints describing the set of feasible solutions during an off-line
phase makes sense, if this compilation step renders computationally easier the
generation of a non-dominated, yet feasible solution matching the user's
requirements and preferences (which are only known at the on-line step). In
this article, we focus on propositional constraints. The subsets L of the NNF
language analyzed in Darwiche and Marquis' knowledge compilation map are
considered. A number of families F of representations of objective functions
over propositional variables, including linear pseudo-Boolean functions and
more sophisticated ones, are considered. For each language L and each family F,
the complexity of generating an optimal solution when the constraints are
compiled into L and optimality is to be considered w.r.t. a function from F is
identified
Automatic Repair of Buggy If Conditions and Missing Preconditions with SMT
We present Nopol, an approach for automatically repairing buggy if conditions
and missing preconditions. As input, it takes a program and a test suite which
contains passing test cases modeling the expected behavior of the program and
at least one failing test case embodying the bug to be repaired. It consists of
collecting data from multiple instrumented test suite executions, transforming
this data into a Satisfiability Modulo Theory (SMT) problem, and translating
the SMT result -- if there exists one -- into a source code patch. Nopol
repairs object oriented code and allows the patches to contain nullness checks
as well as specific method calls.Comment: CSTVA'2014, India (2014
Dependency management for the Eclipse ecosystem
International audienceOne of the strength of Eclipse, the well-known open platform for software development, is its extensibility made possible by the built-in pluggability mechanisms. However those pluggability mechanisms only reveal their full potential when extensions created by others are made easy to distribute and obtain. The purpose of Eclipse p2 project is to build a platform addressing the challenges of distribution and obtention of Eclipse and its extensions, which poses the same dependency management issues than for component based systems. This paper focuses on the dependency management aspect of p2. It describes the metadata used to express dependencies, the overall functioning of our resolver and a description of our propositional constraints based encoding. To conclude we describe the challenges to address in future releases
On SAT Technologies for dependency management and beyond
International audienceSAT solvers technology is now mature enough to be part of the engineer toolbox side by side with Mixed Integer Programming and Constraint Programming tools. As of June 2008, two great pieces of software are using SAT technology to manage dependency like problems: the open source Linux distribution OpenSuse 11.0, released on June 19, 2008, integrates a custom SAT solver in their dependency manager Zypp. The new update manager of Eclipse 3.4, called Equinox p2, also uses SAT technology to resolve dependencies in their OSGi platform. The use of SAT technology in Software Product Lines has already been pointed out by several authors. We believe that the current interest for solving dependency management problems in SAT technologies opens quite interesting challenges to the SAT community. First, since those problems are met in software with interactive use, SAT engines need to solve them within seconds. Second, providing one solution is usually not sufficient: finding the best solution is usually what users want. Finally, fully supported open source or commercial SAT engines are needed for a broader adoption in the software engineering community
Résolution de contraintes qualitatives pour le temps et l'espace par SAT à partir de treillis
Session "Atelier RTE"National audienceDans cet article, nous proposons deux nouvelles traductions des réseaux de contraintes qualitatives (RCQ) pour le temps et l'espace en problème SAT. À partir d'un ordre partiel sur les relations de base formant un treillis, ces deux traductions SAT modélisent un découpage de chaque contrainte du RCQ considéré par des ensembles d'inter- valles du treillis et des propriétés reliant ces intervalles et les opérations de faible composition et d'inverse. Ces deux traductions peuvent être notamment utilisées dans le cadre du calcul des intervalles afin de traduire en problème SAT un RCQ à partir de l'ensemble des relations convexes
Comparison of PBO solvers in a dependency solving domain
Linux package managers have to deal with dependencies and conflicts of
packages required to be installed by the user. As an NP-complete problem, this
is a hard task to solve. In this context, several approaches have been pursued.
Apt-pbo is a package manager based on the apt project that encodes the
dependency solving problem as a pseudo-Boolean optimization (PBO) problem. This
paper compares different PBO solvers and their effectiveness on solving the
dependency solving problem.Comment: In Proceedings LoCoCo 2010, arXiv:1007.083
Optimisation multicritère pour la gestion de dépendances logicielles : utilisation de la norme de Tchebycheff
Session "Posters"National audienceLe problème de gestion de dépendances logicielles concerne l'installation d'applications informatiques modulaires. Il s'agit de programmes ayant la faculté d'être configurés par l'utilisateur, qui peut choisir à tout moment les modules qu'il souhaite installer ou enlever. Un module peut nécessiter la présence d'autres modules pour fonctionner, il peut entrer en conflit avec certains modules, et parfois il peut recommander l'installation de modules spécifiques pour pouvoir être utilisé au meilleur de ses capacités. Il existe généralement plusieurs solutions (listes de paquets à installer et à enlever) pour passer d'une configuration courante à une configuration souhaitée. On peut se donner des critères pour ordonner ces solutions, passant alors d'un problème de décision (" est-ce que je peux ajouter tous ces modules ? ") à un problème d'optimisation (" quelle est la meilleure solution pour ajouter tous ces modules ? "). Dans de nombreux cas, il faut prendre en compte plusieurs critères. Cet article se concentre sur des méthodes algorithmiques capables de calculer des solutions équilibrées en utilisant la norme de Tchebycheff comme méthode d'agrégation de critères. Cette approche est ensuite évaluée sur des problèmes de gestion de dépendances entre paquets GNU/Linux
Solving Linux Upgradeability Problems Using Boolean Optimization
Managing the software complexity of package-based systems can be regarded as
one of the main challenges in software architectures. Upgrades are required on
a short time basis and systems are expected to be reliable and consistent after
that. For each package in the system, a set of dependencies and a set of
conflicts have to be taken into account. Although this problem is
computationally hard to solve, efficient tools are required. In the best
scenario, the solutions provided should also be optimal in order to better
fulfill users requirements and expectations. This paper describes two different
tools, both based on Boolean satisfiability (SAT), for solving Linux
upgradeability problems. The problem instances used in the evaluation of these
tools were mainly obtained from real environments, and are subject to two
different lexicographic optimization criteria. The developed tools can provide
optimal solutions for many of the instances, but a few challenges remain.
Moreover, it is our understanding that this problem has many similarities with
other configuration problems, and therefore the same techniques can be used in
other domains.Comment: In Proceedings LoCoCo 2010, arXiv:1007.083
Nopol: Automatic Repair of Conditional Statement Bugs in Java Programs
International audienceWe propose NOPOL, an approach to automatic repair of buggy conditional statements (i.e., if-then-else statements). This approach takes a buggy program as well as a test suite as input and generates a patch with a conditional expression as output. The test suite is required to contain passing test cases to model the expected behavior of the program and at least one failing test case that reveals the bug to be repaired. The process of NOPOL consists of three major phases. First, NOPOL employs angelic fix localization to identify expected values of a condition during the test execution. Second, runtime trace collection is used to collect variables and their actual values, including primitive data types and objected-oriented features (e.g., nullness checks), to serve as building blocks for patch generation. Third, NOPOL encodes these collected data into an instance of a Satisfiability Modulo Theory (SMT) problem; then a feasible solution to the SMT instance is translated back into a code patch. We evaluate NOPOL on 22 real-world bugs (16 bugs with buggy IF conditions and 6 bugs with missing preconditions) on two large open-source projects, namely Apache Commons Math and Apache Commons Lang. Empirical analysis on these bugs shows that our approach can effectively fix bugs with buggy IF conditions and missing preconditions. We illustrate the capabilities and limitations of NOPOL using case studies of real bug fixes
Tarmo: A Framework for Parallelized Bounded Model Checking
This paper investigates approaches to parallelizing Bounded Model Checking
(BMC) for shared memory environments as well as for clusters of workstations.
We present a generic framework for parallelized BMC named Tarmo. Our framework
can be used with any incremental SAT encoding for BMC but for the results in
this paper we use only the current state-of-the-art encoding for full PLTL.
Using this encoding allows us to check both safety and liveness properties,
contrary to an earlier work on distributing BMC that is limited to safety
properties only.
Despite our focus on BMC after it has been translated to SAT, existing
distributed SAT solvers are not well suited for our application. This is
because solving a BMC problem is not solving a set of independent SAT instances
but rather involves solving multiple related SAT instances, encoded
incrementally, where the satisfiability of each instance corresponds to the
existence of a counterexample of a specific length. Our framework includes a
generic architecture for a shared clause database that allows easy clause
sharing between SAT solver threads solving various such instances.
We present extensive experimental results obtained with multiple variants of
our Tarmo implementation. Our shared memory variants have a significantly
better performance than conventional single threaded approaches, which is a
result that many users can benefit from as multi-core and multi-processor
technology is widely available. Furthermore we demonstrate that our framework
can be deployed in a typical cluster of workstations, where several multi-core
machines are connected by a network
- …