Constraints
Darstellung von Constraintsproblemen
Beispiele
- Färbeproblem (siehe Kopie)
- n-Damen-Problem (siehe Kopie)
Beispiel für lokale Konsistenz: Betrachte \(c' = \{c(x_1 , x_2)\}\)
- Suchproblem: CP mit Variablen \(x_1 ,..., x_n\) (Wertebereich \(D(x_1), ..., D(x_n)\)). Ziel: globale konsistente Markierung. Die einfachste Methode: die Variablen sikzessiv (z.B. Reihenfolge und Tiefensuche mit Backtracking) mit Werten belegen und die Konsistenz gegenüber allen Bedingungen prüfen, die diese Variable enthalten.
Definition Contraintproblem
Ein Contraintproblem (CP) besteht aus folgenden Komponenten
- eine endliche Menge V an Variablen
- zu jeder Variable \(x \in V\) ein endlicher Wertebereich D(x) (Domäne)
- Eine endliche Menge C von Beschränkungen, \(c \in C\), \(c(x_1, ..., x_n)\) heißt n-stelliger Constraint
- V(c) ist die Menge der in c vorkommenden Variablen
Definition Markierung eines Contraintproblems
Eine Abbildung \(\omega\), die einer Variable \(x_i \in V\) einen Wert aus \(D(x_i)\) zuordnet, heißt Belegung bzw Markierung eines Contraintproblems.
Definition Konsistenz
Sei \(C' \subseteq C\). Eine Markierung heißt konsistent bzgl C’ wenn alle Bedingungen aus C’ durch die Belegung \(\omega\) erfüllt sind. Bei \(C' \subset C\) spricht man auch von lokaer Konsistenz, bei Konsistenz bzgl. C spricht man von globaler Konsistenz
Lösung eines CP
Finden einer globalen Markierung
Heuristiken für Contraintproblem
Heuristik der maximal eingeschränkten Variablen
Ordne die zu markierenden Variablen nach Anzahl der freien Werte in ihrem Wertebereich. Bevorzuge die Variable, die die wenigsten freien Werte besitzt.
Heuristik des minimalen Konflikts
Ordne die möglichen Werte für eine Variable nach der Anzahl der Konflikte, die ein Wert mit den noch zu markierenden Variablen erzeugt. Bevorzuge den Wert, der die wenigsten Konflikte erzeugt.
Heuristik der minimalen Breitenordnung
Constraintnetz
Dies ist ein Graph, dessen Knoten den Variablen eines CP entsprechen und dessen Kanten mit Beschränkungen (constraints) markiert sind.
Dies gilt nur für binäre Contraintproblems (die nur ein oder zweistellige constraints enthalten)
Idee
Zuerst solche Variablen belegen, die den meisten anderen Variablen durch Knoten verbunden sind.
Vorgangsweise
- wähle Knoten mit dem größten Grad (und der größten Kantenzahl) und belege entsprechende Variable
- löse den Knoten und ausgehende Kanten
- wiederhole mit dem restgraphen
Propagierung von Constraints
Grundidee
durch lokale Constraint-Anwendung zur globalen Lösung kommen
Prinzip
schränke die Wertebereiche der Variablen iterativ durch (lokale) Betrachtung der Constraints ein