Abstract Domains in Constraint Programming
eBook - ePub

Abstract Domains in Constraint Programming

Marie Pelleau

  1. 176 Seiten
  2. English
  3. ePUB (handyfreundlich)
  4. Über iOS und Android verfügbar
eBook - ePub

Abstract Domains in Constraint Programming

Marie Pelleau

Angaben zum Buch
Buchvorschau
Inhaltsverzeichnis
Quellenangaben

Über dieses Buch

Constraint Programming aims at solving hard combinatorial problems, with a computation time increasing in practice exponentially. The methods are today efficient enough to solve large industrial problems, in a generic framework. However, solvers are dedicated to a single variable type: integer or real. Solving mixed problems relies on ad hoc transformations. In another field, Abstract Interpretation offers tools to prove program properties, by studying an abstraction of their concrete semantics, that is, the set of possible values of the variables during an execution. Various representations for these abstractions have been proposed. They are called abstract domains. Abstract domains can mix any type of variables, and even represent relations between the variables.

In this work, we define abstract domains for Constraint Programming, so as to build a generic solving method, dealing with both integer and real variables. We also study the octagons abstract domain, already defined in Abstract Interpretation. Guiding the search by the octagonal relations, we obtain good results on a continuous benchmark. We also define our solving method using Abstract Interpretation techniques, in order to include existing abstract domains. Our solver, AbSolute, is able to solve mixed problems and use relational domains.

  • Exploits the over-approximation methods to integrate AI tools in the methods of CP
  • Exploits the relationships captured to solve continuous problems more effectively
  • Learn from the developers of a solver capable of handling practically all abstract domains

Häufig gestellte Fragen

Wie kann ich mein Abo kündigen?
Gehe einfach zum Kontobereich in den Einstellungen und klicke auf „Abo kündigen“ – ganz einfach. Nachdem du gekündigt hast, bleibt deine Mitgliedschaft für den verbleibenden Abozeitraum, den du bereits bezahlt hast, aktiv. Mehr Informationen hier.
(Wie) Kann ich Bücher herunterladen?
Derzeit stehen all unsere auf Mobilgeräte reagierenden ePub-Bücher zum Download über die App zur Verfügung. Die meisten unserer PDFs stehen ebenfalls zum Download bereit; wir arbeiten daran, auch die übrigen PDFs zum Download anzubieten, bei denen dies aktuell noch nicht möglich ist. Weitere Informationen hier.
Welcher Unterschied besteht bei den Preisen zwischen den Aboplänen?
Mit beiden Aboplänen erhältst du vollen Zugang zur Bibliothek und allen Funktionen von Perlego. Die einzigen Unterschiede bestehen im Preis und dem Abozeitraum: Mit dem Jahresabo sparst du auf 12 Monate gerechnet im Vergleich zum Monatsabo rund 30 %.
Was ist Perlego?
Wir sind ein Online-Abodienst für Lehrbücher, bei dem du für weniger als den Preis eines einzelnen Buches pro Monat Zugang zu einer ganzen Online-Bibliothek erhältst. Mit über 1 Million Büchern zu über 1.000 verschiedenen Themen haben wir bestimmt alles, was du brauchst! Weitere Informationen hier.
Unterstützt Perlego Text-zu-Sprache?
Achte auf das Symbol zum Vorlesen in deinem nächsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Weitere Informationen hier.
Ist Abstract Domains in Constraint Programming als Online-PDF/ePub verfügbar?
Ja, du hast Zugang zu Abstract Domains in Constraint Programming von Marie Pelleau im PDF- und/oder ePub-Format sowie zu anderen beliebten Büchern aus Computer Science & Computer Engineering. Aus unserem Katalog stehen dir über 1 Million Bücher zur Verfügung.

Information

1

State of the Art

Abstract

In this chapter, we present the notions upon which abstract interpretation (AI) is based and the principles of constraint programming (CP). We do not provide an exhaustive presentation of both areas, but rather give the notions needed for the understanding of this book. The concepts discussed include those of partially ordered sets, lattice and fixpoint, which are at the basis of the underlying theories in both fields. It also includes the in-place tools, such as narrowing and widening operators in AI or consistency and splitting operators in CP. Finally, the chapter presents an analysis of the similitudes between an AI and CP upon which rely the works presented in this book.
Keywords
Abstract interpretation (AI)
Concrete semantics
Constraint programming (CP)
Constraint satisfaction problem (CSP)
Large Hadron Collider (LHC)
Narrowing operator
Propagation loop
Transfer function
Widening operator
In this chapter, we present the notions upon which abstract interpretation (AI) is based and the principles of constraint programming (CP). We do not provide an exhaustive presentation of both areas, but rather give the notions needed for the understanding of this book. The concepts discussed include those of partially ordered sets, lattice and fixpoint, which are at the basis of the underlying theories in both fields. It also includes the in-place tools, such as narrowing and widening operators in AI or consistency and splitting operators in CP. Finally, the chapter presents an analysis of the similitudes between an AI and CP upon which rely the works presented in this book.

1.1 Abstract interpretation

The founding principles of AI were introduced in 1976 by Patrick and Cousot [COU 76]. In this section, we only present some aspects of AI that will be needed afterward. For a more complete presentation, see [COU 92a, COU 77a].

1.1.1 Introduction to abstract interpretation

One of the applications of AI is to automatically prove that a certain type of bug does not exist in a program and that there is no error during a program execution. Let us see an example.
Example 1.1
Backtrace
Consider the following program:
1: real x, y
2: x ← 2
3: y ← 5
4: yy ∗ (x − 2)
5: yx/y
The backtrace for this program is:
linexy
1??
22?
325
420
52NaN Error: division by zero
In toy examples like this one, the backtrace allows us to quickly dete...

Inhaltsverzeichnis