Wissensbasierte Systeme 5. Constraint Satisfaction Probleme Michael Beetz Vorlesung Wissensbasierte Systeme 1
Inhalt 5.1 Begriffe 5.2 Constraint Satisfaction in Linienbildern 5.3 Beispielanwendungen 5.4 Lösen von CSP Problemen Vorlesung Wissensbasierte Systeme 2
5.1.1 Constraint satisfaction problems (CSPs) Standardsuchprobleme: Zustand ist eine black box eine beliebige Datenstruktur mit Operatoren zum Zieltest, Bewertungsschema und Nachfolgerfunktion CSP: Ein Zustand ist definiert durch Variable X i mit Werten values aus einem Wertebereich domain D i Der Zieltest ist eine Menge von constraints, die erlaubte Kombinationen von Werten für Teilmengen der Variablen spezifizieren. Einfaches Beispiel einer formalen Representationssprache Ermöglicht general-purpose Algorithmen, die effektiver als Standardsuchalgorithmen sind Vorlesung Wissensbasierte Systeme 3
5.1.2 Beispiel: Einfärben von Landkarten Variablen W A, NT, Q, NSW, V, SA, T Wertebereiche D i = {red, green, blue} Constraints: adjacent regions must have different colors e.g., W A NT (if the language allows this), or (W A, NT ) {(red, green), (red, blue), (green, red), (green, blue),...} Vorlesung Wissensbasierte Systeme 4
5.1.3 Beispiel: Einfärben von Landkarten (Fortsetzung) Lösungen sind Zuweisungen an Variable, die alle Constraints erfüllen, e.g., {W A = red, NT = green, Q = red, NSW = green, V = red, SA = blue, T = green} Vorlesung Wissensbasierte Systeme 5
5.1.4 Constraint Graphen Binäres CSP: jedes Constraint schränkt höchstens zwei Variablen ein Constraint Graph: Knoten sind Variable, Kanten sind mit Constraints markiert Domänunabhängige CSP Algorithmen nutzen die Graphstruktur aus, um die Suche zu beschleunigen. Z.B., Tasmanien ist ein unabhängiges Teilproblem! Vorlesung Wissensbasierte Systeme 6
5.1.5 Verschiedene Klassen von Constraint Problemen Diskrete Variablen endliche Wertebereiche; Größe d = O(d n ) vollständige Wertezuweisungen z.b., Boolesche CSPs, incl. Boole sche Erfüllbarkeit (NP-vollständig) unendliche Wertebereiche (natürliche Zahlen, Zeichenketten,...) e.g., Job Scheduling, Variablen sind Start/End Termine für jede Aufgabe benötigt eine constraint language, z.b., StartJob 1 + 5 StartJob 3 lineare Constraints berechenbar, nichtlineare unentscheidbar Kontinuierliche Variablen z.b., Start/End Zeitpunkte für die Hubble Telescope observations lineare Constraints sind in polynomialer Zeit durch Methoden der linearen Programmierung lösbar Vorlesung Wissensbasierte Systeme 7
5.1.6 Klassen von Constraints Unäre Constraints schränken einzelne Variablen ein, e.g., SA green Binäre Constraints schränken Wertepaare von zwei Variablen ein e.g., SA W A Constraints höherer Ordnung beziehen sich auf 3 oder mehr Variablen e.g., kryptarithmetische Spaltenbedingungen Präferenzen (soft constraints), z.b., red ist besser als green oft durch eine Kostenfunktion für Variablenzuweisungen ausgedrückt eingeschränkte Optimierungsprobleme Vorlesung Wissensbasierte Systeme 8
5.2.1 Beispiel: Waltz Constraint Satisfaction in Linienbildern (1) Vorlesung Wissensbasierte Systeme 9
5.2.2 Beispiel: Waltz Constraint Satisfaction in Linienbildern (2) Vorlesung Wissensbasierte Systeme 10
5.2.3 Beispiel: Waltz Constraint Satisfaction in Linienbildern (3) Vorlesung Wissensbasierte Systeme 11
5.2.4 Beispiel: Waltz Constraint Satisfaction in Linienbildern (4) Vorlesung Wissensbasierte Systeme 12
5.2.5 Beispiel: Waltz Constraint Satisfaction in Linienbildern (5) Vorlesung Wissensbasierte Systeme 13
5.3.1 Beispiel: Kryptarithmetische Puzzles Variablen: F T U W R O X 1 X 2 X 3 Wertebereiche: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Constraints alldiff(f, T, U, W, R, O) O + O = R + 10 X 1, etc. Vorlesung Wissensbasierte Systeme 14
5.3.2 Reale Constraint Satisfaction Probleme Stundenplan mit Raumbelegung Hardware Konfiguration VLSI Entwurf Spreadsheets Routenplanung Maschinenbelegungspläne Vorlesung Wissensbasierte Systeme 15
3.6.1. Constraint-Satisfaction-Probleme (CSP) CSPs bilden eine spezielle Problemklasse, die aufgrund struktureller Einschränkungen besondere Suchtechniken erlauben. Zustände sind durch Werte von Variablen definiert. Operatoren belegen eine Variable mit einem Wert. Der Zieltest wird durch Constraints (Bedingungen) spezifiziert, welche die Variablenbelegungen erfüllen müssen. Ein Zielzustand ist eine Belegung der Variablen mit Werten, die alle Constraints erfüllen. Vorlesung Wissensbasierte Systeme 16
3.6.2. Beispiel: Das 8-Damen Problem als CSP Es gibt 8 Variablen V 1,..., V 8, wobei V i für die Dame in der i-ten Spalte steht. V i kann einen Wert von aus {1, 2,..., 8} annehmen, der für die Zeilenposition steht. Zwischen allen Paaren von Variablen gibt es Constraints, welche die Nichtangreifbarkeit ausdrücken. diskretes, endliches, binäres CSP Vorlesung Wissensbasierte Systeme 17
3.6.3. Einfärben von Graphen als CSP Gegeben ein Graph mit n Knoten, färbe die Knoten mit k Farben so ein, dass zwei durch eine Kante verbundene Knoten nicht die gleiche Farbe haben ( NP-vollständiges Problem!) Beispiel: Kann der folgende Graph mit 3 Farben eingefärbt werden? Lösung: Vorlesung Wissensbasierte Systeme 18
3.6.4. Allgemeine Suche zum CSP-Lösen Tiefensuche ist bei CSPs vollständig, da ja nur maximal n Operatoren (Belegung von Variablen durch Werte) möglich sind. Bei naiver Implementation ist der Verzweigungsfaktor sehr hoch! Sei D i die Menge der möglichen Werte für V i. Dann ist der Verzweigungsfaktor b = n i=1 D i. Die Reihenfolge der Instantiierungen der Variablen ist für die Lösung unerheblich. Deshalb man kann bei jeder Expansion eine Variable (nicht-deterministisch) aussuchen, d.h. der Verzweigungsfaktor ist ( n i=1 D i)/n. Nach jeder Operatoranwendung kann geprüft werden, ob bereits Constraints verletzt wurden. In dem Fall braucht man den aktuellen Knoten nicht weiter expandieren Tiefensuche + Test = Backtracking (oder Rücksetzsuche) Vorlesung Wissensbasierte Systeme 19
3.6.5. Vorwärtstest und Kantenkonsistenz Wenn beim Backtracking Entscheidungen getroffen wurden, die eine Lösung unmöglich machen, wird dies u.u. doch erst in den Blättern des Suchbaums bemerkt unnötige Exploration des Unterbaums. Lösungen: Vorwärtstest (Forward checking): Bei allen noch nicht belegten Variablen werden die Werte eliminiert, die nicht mehr möglich sind. Backtracking, falls Domain einer Variable leer wird. Spezielle Form des Vorwärtstests: Kantenkonsistenz (Arc consistency) Ein CSP ist kantenkonsistent, falls der Wertebereich jeder Variablen nur Werte enthält, die konsistent mit jedem Constraint auf der Variablen sind. Vorlesung Wissensbasierte Systeme 20
3.6.6. Beispiel 1. Instantiierung V 1 = red: Herstellen der Kantenkonsistenz: 2. Instantiierung V 3 = green & Herstellen der Kantenkonsistenz: Vorlesung Wissensbasierte Systeme 21
Vorlesung Wissensbasierte Systeme 22