Constraint-Erfüllungsprobleme

Bei vielen Ablaufplanungs-, Zuordnungs- und Rätselaufgaben geht es darum, Werte für eine Reihe von Variablen so zu wählen, dass alle Regeln erfüllt sind. Dieses Material zeigt, wie solche Aufgaben als Constraint-Erfüllungsprobleme beschrieben und gelöst werden: mit Backtracking-Suche und geschickter Reihenfolge von Variablen und Werten, mit Forward Checking und Kantenkonsistenz zum Entfernen unmöglicher Werte, mit der lokalen Min-Konflikte-Suche für große Probleme und schnelle Korrekturen sowie mit Verfahren, die die Form des Constraint-Graphen nutzen, etwa dem Algorithmus mit linearer Laufzeit für baumstrukturierte Probleme und der Schnittmengenkonditionierung. Jedes Verfahren wird an kleinen Beispielen Schritt für Schritt durchgearbeitet, darunter ein Workshop-Zeitplan, Kartenfärbung und das n-Damen-Problem.

MittelEinheit 3 von 10 in Kurs: Künstliche Intelligenz – Suche, Logik, Wahrscheinlichkeit und Lernen

Was du lernst

  1. Beschreibe ein Problem durch seine Variablen, Wertebereiche und Constraints, erkenne die Arten von Constraints und überführe Ablaufplanungs- und Zuordnungsaufgaben aus der Praxis in wohldefinierte Constraint-Erfüllungsprobleme.
    • Beschreibe die Bestandteile eines Constraint-Erfüllungsproblems
      Benenne die Variablen, Wertebereiche und Constraints eines Problems, unterscheide partielle, konsistente und vollständige Belegungen und zeichne den Constraint-Graphen.
    • Unterscheide die Arten von Constraints
      Ordne Constraints als unär, binär, höherstellig oder global ein, schreibe höherstellige Constraints als binäre um und unterscheide harte Constraints von Präferenzen.
    • Modelliere Ablaufplanungs- und Zuordnungsprobleme als CSPs
      Überführe Stundenplanung, Werkstattfertigungsplanung, Zuordnungsaufgaben und Rätsel in CSPs und wähle Variablen und Wertebereiche so, dass die Constraints einfach bleiben.
  2. Suche nach einer Lösung, indem du jeweils eine Variable belegst, gehe an Sackgassen zurück und wähle die Reihenfolge von Variablen und Werten so, dass die Suche mit deutlich weniger Aufwand eine Lösung findet oder beweist, dass es keine gibt.
    • Führe eine Backtracking-Suche Schritt für Schritt durch
      Erkläre, warum Backtracking pro Ebene eine Variable belegt, führe den Algorithmus von Hand aus und gib seine Vollständigkeit und seinen Aufwand an.
    • Wähle Variablen und Werte mithilfe von Reihenfolgeheuristiken aus
      Wende die MRV-Heuristik, die Gradheuristik und den am wenigsten einschränkenden Wert an, erkläre, warum sie in entgegengesetzte Richtungen weisen, und miss ihre Wirkung auf eine Suche.
    • Gehe nach einer Sackgasse gezielt zu früheren Entscheidungen zurück
      Nutze Konfliktmengen, um beim Backjumping Variablen zu überspringen, die einen Fehlschlag nicht verursacht haben, und halte Nogoods fest, damit sich derselbe Fehlschlag nicht wiederholt.
  3. Entferne vor und während der Suche durch Schlussfolgerungen Werte, die zu keiner Lösung gehören können, und beurteile, was Forward Checking, Kantenkonsistenz und stärkere Konsistenz jeweils garantieren.
    • Wende während der Suche Forward Checking an
      Beschneide die Wertebereiche der Nachbarn einer neu belegten Variablen, erkenne leere Wertebereiche, stelle Werte beim Backtracking wieder her und erkenne, was Forward Checking übersieht.
    • Stelle mit AC-3 Kantenkonsistenz her
      Wende Knoten- und Kantenkonsistenz an, führe AC-3 von Hand aus, kenne seinen Aufwand und seine Grenzen und erhalte die Kantenkonsistenz während der Suche aufrecht.
    • Nutze stärkere Konsistenzbegriffe und globale Constraints
      Erkläre Pfad- und k-Konsistenz, propagiere Alldiff- und Schranken-Constraints und wäge die zusätzliche Beschneidung gegen ihren Aufwand ab.
  4. Beginne mit einer vollständigen Belegung und repariere sie mit der Min-Konflikte-Heuristik, überwinde Plateaus und lokale Minima und beurteile, wann lokale Suche oder Backtracking das bessere Verfahren ist.
    • Repariere Belegungen mit der Min-Konflikte-Heuristik
      Führe die Min-Konflikte-Heuristik bei einer vollständigen Zustandsformulierung von Hand aus, erkläre, warum sie bei großen Problemen gut funktioniert, und repariere damit einen Zeitplan nach einer Änderung.
    • Überwinde Plateaus und lokale Minima und wähle zwischen lokaler Suche und Backtracking
      Nutze Seitwärtsschritte, Tabusuche, Constraint-Gewichtung und Neustarts und entscheide, welches Verfahren zu einem gegebenen Problem passt.
  5. Interpretiere den Constraint-Graphen, um ein Problem in unabhängige Teile zu zerlegen, löse baumförmige Probleme in linearer Zeit und führe nahezu baumförmige Probleme auf Bäume zurück.
    • Zerlege ein Problem in unabhängige Teilprobleme und löse baumstrukturierte CSPs
      Finde unabhängige Teilprobleme im Constraint-Graphen und löse ein baumstrukturiertes CSP mit dem Rückwärts- und Vorwärtsdurchlauf des Baumalgorithmus.
    • Führe nahezu baumstrukturierte Probleme auf Bäume zurück
      Wende Schnittmengenkonditionierung und Baumzerlegung an, setze ihren Aufwand zur Größe der Schnittmenge und zur Baumweite in Beziehung und brich Wertesymmetrie auf.

Constraint-Erfüllungsprobleme einfach erklärt

5 Kapitel

1

Formuliere Probleme als Constraint-Erfüllungsprobleme

Die Wahl eines Stundenplans oder die Zuordnung von Prüfenden beginnt mit einem Modell: Was benötigt einen Wert, welche Werte sind möglich und welche Kombinationen sind erlaubt? Ein klares Modell ermöglicht es, dieselben Lösungsverfahren für sehr unterschiedliche Aufgaben einzusetzen. Du erstellst dieses Modell, unterscheidest Anforderungen von Präferenzen und siehst, wie die Wahl der Variablen den Aufwand eines Lösers verändert. Kleine Ablaufplanungs- und Rätselbeispiele machen jeden Teil anschaulich.

1.1 Beschreibe die Bestandteile eines Constraint-Erfüllungsproblems

Ein Constraint-Erfüllungsproblem, kurz CSP, beschreibt eine Reihe von Wahlmöglichkeiten und die Regeln, die sie verbinden. Sein Zustand ist eine faktorisierte Repräsentation: Du kannst einzelne Variablen und ihre Werte betrachten und dann allgemeine Verfahren zur Beschneidung und Suche wiederverwenden.

Variablen, Wertebereiche und Constraints

Eine Variable bezeichnet etwas, das gewählt werden muss. Ihr Wertebereich listet ihre erlaubten Werte auf. Ein Constraint legt fest, welche Kombinationen gemeinsam auftreten dürfen. Für die Workshops A und B sei jeder Wert ein Zeitfenster aus {1,2,3}. Die Regel „A findet vor B statt“ hat den Geltungsbereich {A,B} und die Relation {(1,2),(1,3),(2,3)}. Die Schreibweise A<B drückt dieselbe Relation kompakt aus.

Der Geltungsbereich benennt die beteiligten Variablen; die Relation gibt die erlaubten Wertetupel an. Wer beides verwechselt, erstellt möglicherweise ein Modell, in dem „Rot“ zur Variablen wird. Bei der Kartenfärbung sind Regionen Variablen und Farben Werte.

Was zählt als Lösung?

Eine Belegung weist Variablen Werte zu. Drei Prüfungen beschreiben ihren Status:

  • Sie ist partiell, wenn einige Variablen keinen Wert haben.
  • Sie ist vollständig, wenn jede Variable einen Wert hat.
  • Sie ist konsistent, wenn sie keinen Constraint zwischen den belegten Variablen verletzt.

Eine Lösung muss vollständig und konsistent sein. Bei alleinigem A=2 ist die Belegung konsistent, aber partiell. Ergänzt man B=1, wird sie vollständig und inkonsistent. Mit B=3 ergibt sich eine Lösung für dieses Beispiel mit zwei Variablen. Eine konsistente partielle Belegung lässt sich möglicherweise dennoch nicht vervollständigen: Unbelegten Variablen können die passenden Wahlmöglichkeiten ausgehen.

Einen Constraint-Graphen interpretieren

Zeichne für ein binäres CSP pro Variable einen Knoten und für jedes durch einen Constraint verbundene Paar eine Kante. Auf einer vereinfachten Australienkarte sind die Variablen WA, NT, SA, Q, NSW, V und T, jeweils mit dem Wertebereich {Rot, Grün, Blau}. Die benachbarten Paare sind WA–NT, WA–SA, NT–SA, NT–Q, SA–Q, SA–NSW, SA–V, Q–NSW und NSW–V. Jede Kante verlangt verschiedene Farben.

Eine Lösung ist WA Rot, NT Grün, SA Blau, Q Rot, NSW Grün, V Rot und T Rot. Prüfe jede Kante, auch SA–V. T hat keine Kante, daher ist seine Farbe unabhängig vom Festland. Es gibt 6 Färbungen des Festlands und 3 Möglichkeiten für T, also 18 Lösungen. Ein Constraint, der mehrere Variablen betrifft, benötigt eine Darstellung als Hypergraph; ein zusätzlicher Constraint-Knoten kann mit jeder Variablen in seinem Geltungsbereich verbunden werden.

Wertebereiche und Größe des Suchraums

Ein endlicher diskreter Wertebereich ist eine feste Liste, etwa drei Farben. Ein unendlicher diskreter Wertebereich könnte jede nichtnegative ganzzahlige Startzeit enthalten. Ein kontinuierlicher Wertebereich könnte reellwertige Zeiten enthalten. Die beiden letzteren benötigen Darstellungen und Verfahren, die zu diesen Wertebereichen passen; lineare Programmierung behandelt kontinuierliche lineare Constraints.

Für n Variablen mit je d Werten gibt es dn vollständige Belegungen. Die Karte hat 37=2187 Kandidaten, bevor Constraints welche entfernen. Endliche CSPs umfassen NP-vollständige Probleme, daher ist kein allgemeines Lösungsverfahren mit polynomialer Laufzeit bekannt. Ihre innere Struktur ermöglicht dennoch Beschneidung: Der Löser kann eine Wahl ausschließen, ohne jede vollständige Belegung aufzulisten, die sie enthält. Ob die Antwort zulässig ist, hängt nur von den endgültigen Werten ab; der Weg, auf dem sie gefunden wurden, ist unerheblich.

Wichtige Erkenntnisse

  • Ein CSP legt Variablen, ihre Wertebereiche und Constraints über Wertekombinationen fest.
  • Eine Lösung ist sowohl vollständig als auch konsistent.
  • Ein binärer Constraint-Graph zeigt, welche Variablen sich unmittelbar gegenseitig beeinflussen.
  • Bei gleich großen Wertebereichen beträgt die Anzahl vollständiger Belegungen dn.

1.2 Unterscheide die Arten von Constraints

Constraints unterscheiden sich darin, wie viele Variablen sie verbinden und ob sie Anforderungen oder Präferenzen angeben. Wenn du diese Struktur erkennst, kannst du ein wirklichkeitsgetreues Modell schreiben und geeignete Propagationsverfahren wählen.

Den Geltungsbereich einordnen

Ein unärer Constraint schränkt eine Variable ein. Kann Workshop E nicht in Zeitfenster 1 stattfinden, wende E≠1 an, indem du seinen Wertebereich vor der Suche von {1,2,3} auf {2,3} verkleinerst. Ein binärer Constraint setzt zwei Variablen zueinander in Beziehung, etwa A<B oder A≠D. Ein binäres CSP enthält nur unäre und binäre Constraints.

Ein Constraint höherer Stelligkeit betrifft mindestens drei Variablen. Müssen die Aufgabendauern X, Y und Z 10 Stunden ausfüllen, schreibe X+Y+Z=10. Liegt jede Dauer in {1,2,3,4,5}, scheitert das Tupel (2,3,4), während (2,3,5) funktioniert. Bei der Prüfung einer höherstelligen Regel müssen die Werte zusammenpassen.

Nützliche globale Constraints beibehalten

Ein globaler Constraint gibt eine benannte Regel für eine Gruppe variabler Größe an. Alldiff⁡(X1,…,Xk) verlangt für jedes Paar verschiedene Werte. Seine Lösungsmenge entspricht der durch k(k−1)/2 paarweise Ungleichungen definierten Menge. Für neun Sudoku-Zellen sind das 36 binäre Constraints.

Die globale Form ermöglicht einem Löser außerdem Schlussfolgerungen über die Gruppe. Drei Variablen, die auf zwei verschiedene Werte beschränkt sind, können nicht alle verschieden sein, obwohl jedes Paar einzeln eine vereinbare Belegung hat. Gleiche Lösungsmengen garantieren keine gleich starke Beschneidung.

Auch eine Kapazitätsregel kann global sein. Hier bedeutet Atmost⁡(10,P1,P2,P3) dasselbe wie P1+P2+P3≤10: Die Gesamtzahl der Personen, die den drei Aufgaben zugeordnet sind, darf zehn nicht überschreiten. Die Argumente stehen für Größen, die addiert werden; daher erlaubt diese Regel zum Beispiel (3,4,3).

Einen endlichen Constraint in binäre Form umwandeln

Führe eine Hilfsvariable U ein, deren Werte die erlaubten Tripel für X+Y+Z=10 sind. Ein möglicher Wert ist (2,3,5). Füge drei binäre Constraints hinzu: Die erste Komponente von U ist gleich X, die zweite gleich Y und die dritte gleich Z. Wird dieser Wert für U gewählt, muss folglich X=2, Y=3 und Z=5 gelten.

Jedes ursprünglich zulässige Tripel entspricht einem Wert von U, und jede konsistente Belegung mit U ergibt ein gültiges ursprüngliches Tripel. Mit dieser Konstruktion können binäre Verfahren einen endlichen höherstelligen Constraint behandeln. Der Preis ist der möglicherweise große Tupelwertebereich, weshalb Löser oft die ursprüngliche globale oder höherstellige Regel beibehalten.

Anforderungen und Präferenzen
ArtBedeutungBeispiel aus der Ablaufplanung
Harter ConstraintJede Lösung muss ihn erfüllen.Eine Lehrkraft kann nicht zwei Workshops gleichzeitig unterrichten.
Weicher ConstraintEine Verletzung verursacht bei einer ansonsten zulässigen Wahl Kosten.Eine Lehrkraft bevorzugt eine Veranstaltung am Nachmittag.

Mit weichen Constraints wird die Aufgabe zu einem Constraint-Optimierungsproblem, kurz COP: Erfülle alle harten Regeln und minimiere die Gesamtkosten der Präferenzen. Für die Optimierung können Branch-and-Bound und lokale Suche eingesetzt werden.

Teste das Modell an einer bekanntermaßen zulässigen und einer bekanntermaßen unzulässigen Belegung. Eine erfundene Ungleichung zwischen unabhängigen Workshops entfernt zulässige Zeitpläne; ein fehlender Constraint für eine gemeinsame Lehrkraft lässt unmögliche zu. Auch bei Präferenzen ist Vorsicht nötig: Wird aus „Nachmittag bevorzugt“ ein „Nachmittag erforderlich“, kann jeder zulässige Zeitplan ausgeschlossen werden.

Wichtige Erkenntnisse

  • Unäre Constraints beschneiden einen Wertebereich; binäre Constraints verbinden zwei Variablen.
  • Alldiff verlangt paarweise verschiedene Werte, kann aber eine stärkere Beschneidung anhand der Gruppe ermöglichen.
  • Hilfsvariablen mit Tupelwerten können endliche höherstellige Constraints in binäre Form umwandeln.
  • Harte Constraints bestimmen die Zulässigkeit; weiche Constraints ordnen zulässige Wahlmöglichkeiten nach ihrer Güte.
  • Prüfe beim Testen eines Modells sowohl einen zulässigen als auch einen unzulässigen Fall.

1.3 Modelliere Ablaufplanungs- und Zuordnungsprobleme als CSPs

Ein Modell sollte die Entscheidungen so direkt beschreiben, dass sich die Regeln leicht ausdrücken lassen. Bestimme zuerst, was gewählt werden muss, weise dann Wertebereiche zu und übersetze jede Anforderung über die Variablen, die sie tatsächlich betrifft.

Einen Workshop-Zeitplan erstellen

Fünf Workshops von je einem Zeitfenster teilen sich drei Zeitfenster: 1 Vormittag, 2 Mittag und 3 Nachmittag. A stehe für Python-Grundlagen, B für Python für Fortgeschrittene, C für Statistik, D für Datenbanken und E für Ethik. Jeder Workshop ist eine Variable mit dem anfänglichen Wertebereich {1,2,3}.

Gemeinsame Teilnehmende erfordern A≠C, A≠D, C≠D, B≠C, C≠E und D≠E. Grundlagen muss vor Fortgeschrittene stattfinden, also A<B. Die Lehrkraft für Ethik kommt mittags an, also E≠1. Das ergibt sieben binäre Kanten und eine unäre Regel; C hat vier Nachbarn.

Die Belegung A=2,B=3,C=1,D=3,E=2 erfüllt jede Regel: Jedes Paar mit gemeinsamen Teilnehmenden ist verschieden belegt, Grundlagen findet vor Fortgeschrittene statt und Ethik liegt nicht in Zeitfenster 1. Sie ist die einzige zulässige Belegung unter den 35=243 Kandidaten. Die Workshops B und D dürfen beide Zeitfenster 3 nutzen, weil keine Regel verschiedene Werte für sie verlangt.

Würde stattdessen pro Zeitfenster eine Variable gewählt, wäre jeder Wert eine Teilmenge der Workshops, mit bis zu 25=32 möglichen Teilmengen pro Zeitfenster. Die Regeln müssten dann diese Mengen betrachten und sicherstellen, dass jeder Workshop einmal stattfindet. Werden Workshops als Variablen gewählt, bleiben die Constraints einfacher.

Aufgabenzeiten und gemeinsam genutzte Ressourcen ausdrücken

Verwende bei der Werkstattfertigungsplanung für jede Aufgabe eine Startzeitvariable. Vorbereiten dauert 20 Minuten, Analysieren 40 und Bericht erstellen 30. Die Startzeiten sind nichtnegative ganze Minuten. Die Reihenfolge und die Frist von 120 Minuten ergeben

SP+20≤SA,SA+40≤SR,SR+30≤120.

Die frühesten Startzeiten sind 0, 20 und 60. Rechnet man von der Frist zurück, ergeben sich die spätesten Startzeiten 30, 50 und 90. Die Zeitfenster sind also SP∈[0;30], SA∈[20;50] und SR∈[60;90].

Zwei Aufgaben, die sich eine Maschine teilen, benötigen einen disjunktiven Constraint: SX+dX≤SY oder SY+dY≤SX. Jede der beiden Aufgaben darf zuerst kommen, aber sie dürfen sich nicht überschneiden. Eine einfache Vorrangbedingung würde eine bestimmte Reihenfolge erzwingen und die andere Möglichkeit ausschließen.

Zuordnungen und Rätsel modellieren

Für drei Berichte, die drei Prüfenden zugeordnet werden, machst du jeden Bericht zu einer Variablen mit Prüfenden als Werten. Verwende Alldiff, wenn jede prüfende Person einen Bericht bearbeitet. Ein Interessenkonflikt entfernt eine prüfende Person aus dem Wertebereich des betreffenden Berichts.

Beim n-Damen-Problem sei Qi die Zeile der Dame in Spalte i. Eine Dame pro Spalte ist im Modell angelegt. Verlange für jedes Paar Qi≠Qj und ∣Qi−Qj∣≠∣i−j∣, um Angriffe in Zeilen und auf Diagonalen zu verhindern. Für acht Damen verringert dies den Raum der Möglichkeiten von der Wahl von 8 Feldern aus 64, also 4.426.165.368 Platzierungen, auf 88=16.777.216 Belegungen. Es gibt 92 Lösungen.

Bei Sudoku haben die 81 Zellvariablen die Wertebereiche 1–9. Vorgegebene Ziffern ergeben unäre Constraints, und die 9 Zeilen, 9 Spalten und 9 Boxen ergeben jeweils Alldiff.

Wähle die gröbsten Zeiteinheiten, die noch jeden erlaubten Beginn darstellen. Für Veranstaltungen zur vollen Stunde reichen stündliche Wahlmöglichkeiten; Wertebereiche in einzelnen Minuten würden den Aufwand vergrößern, ohne einen nützlichen Zeitplan hinzuzufügen. Trenne abschließend Präferenzen von harten Regeln und prüfe einen kleinen Fall mit bekannter Antwort.

Wichtige Erkenntnisse

  • Wähle Variablen, die Constraints einfach halten, und Wertebereiche, die nicht feiner als nötig sind.
  • Vorrangbedingungen verlangen durch Ungleichungen das Ende vor dem Beginn; gemeinsam genutzte Ressourcen dürfen sich zeitlich nicht überschneiden.
  • Eine Dame pro Spalte kann in der Wahl der Variablen angelegt werden.
  • Ein korrektes Modell enthält implizite Ressourcenregeln und erhält zulässige gemeinsame Zeitfenster.
2

Löse CSPs mit Backtracking-Suche

Eine Suche kann den größten Teil ihres Aufwands darauf verwenden, dieselben Wahlmöglichkeiten erneut zu besuchen oder Konflikte zu spät zu entdecken. Backtracking baut eine Belegung Variable für Variable auf und kehrt zu früheren Entscheidungen zurück, wenn ein Zweig scheitert. Die Reihenfolge von Variablen und Werten hilft, brauchbare Zweige früher zu finden, während die Konfliktanalyse bestimmt, welche Entscheidungen eine Sackgasse verursacht haben. Das Nachvollziehen der Entscheidungen erleichtert die Beurteilung des Grundverfahrens und seiner Verbesserungen.

2.1 Führe eine Backtracking-Suche Schritt für Schritt durch

Backtracking baut mittels Tiefensuche eine partielle Belegung auf. Es wählt eine Variable, versucht einen Wert und macht weiter, bis es eine Lösung findet oder eine Wahl rückgängig machen muss. Die Suche behält die brauchbaren früheren Entscheidungen bei, wenn eine spätere scheitert.

Nach Werten verzweigen, jeweils für eine Variable

A und dann B zu belegen ergibt dieselbe endgültige Belegung wie B und dann A zu belegen. Dank dieser Kommutativität kann ein CSP-Löser auf jeder Ebene eine Variable wählen und nach ihren Werten verzweigen. Würde jede Variablenreihenfolge zugelassen, ergäbe das n!dn Blätter für nur dn verschiedene vollständige Belegungen. Für fünf Variablen mit drei Werten sind das 29.160 Blätter statt 243.

Die nächste Variable kann von den aktuellen Wertebereichen abhängen. Entscheidend ist, an einem Knoten eine einzige nächste Variable zu wählen; die Suche benötigt keine getrennten Zweige für alle möglichen Belegungsreihenfolgen.

Die rekursiven Schritte nachvollziehen
  1. Ist die Belegung vollständig und konsistent, gib sie zurück.
  2. Wähle eine unbelegte Variable.
  3. Versuche jeden Wert ihres Wertebereichs, der mit der aktuellen Belegung konsistent ist.
  4. Rufe das Verfahren nach dem Hinzufügen eines Werts rekursiv auf. Scheitert der rekursive Aufruf, entferne diese Belegung und versuche den nächsten Wert.
  5. Funktioniert kein Wert, gib einen Fehlschlag an den aufrufenden Schritt zurück.

Einfaches Backtracking prüft einen Constraint, sobald alle Variablen in seinem Geltungsbereich Werte haben. Bei A=1 und unbelegtem B gibt es für A<B kein vollständiges Paar, das verworfen werden könnte. Der Versuch B=1 scheitert dann sofort. Wartete man, bis jede Variable belegt ist, würde diese einfache Zurückweisung aufgeschoben.

Eine Sackgasse nachvollziehen

Verwende die Workshop-Regeln: A≠C,A≠D,C≠D,B≠C,C≠E,D≠E,A<B,E≠1. Nimm die Variablen in der Reihenfolge A, B, C, D, E und versuche die Werte 1, 2, 3.

  • Setze A=1. Verwirf B=1 und wähle B=2.
  • Verwirf C=1 wegen A und C=2 wegen B; wähle C=3.
  • Verwirf D=1 wegen A; wähle D=2.
  • E hat keinen zulässigen Wert: 1 ist verboten, 2 steht mit D und 3 mit C in Konflikt.

Der Fehlschlag bei E führt zu D zurück. Dessen nächster Wert, 3, steht mit C in Konflikt. C hat keinen späteren Wert, daher geht die Suche zu B zurück. Der Versuch B=3 führt unter A=1 schließlich zu einer weiteren Sackgasse. Die Suche versucht dann A=2 und erreicht A=2,B=3,C=1,D=3,E=2. In dieser Reihenfolge prüft einfaches Backtracking insgesamt 32 mögliche Werte, einschließlich der verworfenen.

Was das Verfahren garantiert
EigenschaftEinfaches Backtracking bei endlichen Wertebereichen
VollständigkeitFindet eine Lösung, falls eine existiert; das Ausschöpfen der Suche weist die Unlösbarkeit nach.
Suchgröße im schlimmsten FallExponentiell, in der üblichen Schranke O(dn) Belegungen.
Speicher für den SuchpfadLinear in n; ein aktiver Pfad wird gespeichert.

Auch das Prüfen von Constraints und das Speichern des Modells verursachen Aufwand. Die Angabe zum linearen Speicher betrifft den Suchpfad; Propagation kann zusätzlich Wertebereiche und Änderungsprotokolle speichern.

Chronologisches Backtracking kehrt zur letzten Entscheidung zurück. Schnellere Varianten verbessern vier getrennte Entscheidungen: die nächste Variable, die Reihenfolge ihrer Werte, die nach einer Wahl abgeleiteten Folgen und die frühere Entscheidung, zu der nach einem Fehlschlag zurückgekehrt wird. Diese Verbesserungen verringern den praktischen Aufwand, ohne zu ändern, was als Lösung zählt.

Wichtige Erkenntnisse

  • Dank Kommutativität müssen nicht alle Belegungsreihenfolgen durchsucht werden.
  • Backtracking belegt eine Variable pro Ebene und verwirft Belegungen, die vollständig belegte Constraints verletzen.
  • Bei einem gescheiterten rekursiven Aufruf wird seine Wahl rückgängig gemacht und ein anderer Wert versucht.
  • Backtracking bei endlichen Wertebereichen ist vollständig, hat aber im schlimmsten Fall einen exponentiellen Suchaufwand.
  • Der lineare Speicherbedarf für den Suchpfad umfasst nicht den gesamten Speicher für Modell und Propagation.

2.2 Wähle Variablen und Werte mithilfe von Reihenfolgeheuristiken aus

Eine gute Reihenfolge kann einen Fehlschlag weit oben im Suchbaum aufdecken oder brauchbare Wahlmöglichkeiten für später erhalten. Die Reihenfolge der Variablen und die der Werte dienen unterschiedlichen Zwecken; daher erscheint jeweils eine andere Richtung am besten.

Die am stärksten eingeschränkte Variable wählen

Die MRV-Heuristik wählt die unbelegte Variable mit den wenigsten aktuell zulässigen Werten. Sie wird auch Heuristik der am stärksten eingeschränkten Variablen oder Fail-First-Heuristik genannt. Ein nahezu erschöpfter Wertebereich deckt wahrscheinlich bald einen Widerspruch auf. Ist ein Wertebereich leer, scheitert der Zweig sofort.

Zähle die aktuellen Werte nach der Beschneidung, nicht die ursprünglichen Größen der Wertebereiche. Ohne gespeicherte Wertebereiche muss ein Löser vor der Anwendung von MRV bestimmen, welche ursprünglichen Werte noch mit der Belegung konsistent sind.

Die Gradheuristik löst einen Gleichstand bei MRV auf, indem sie die Variable mit den meisten Constraints zu anderen unbelegten Variablen wählt. Eine solche Wahl beeinflusst mehr verbleibende Entscheidungen. Bereits belegte Nachbarn zählen nicht zu diesem verbleibenden Grad. Zu Beginn der Australienkarte liegen die gleich großen Wertebereiche mit drei Farben gleichauf; die fünf Nachbarn von SA geben ihm den höchsten Grad.

Bei der Wertwahl Möglichkeiten offenhalten

Der am wenigsten einschränkende Wert (LCV) wird zuerst versucht: Er entfernt die wenigsten Werte aus den Wertebereichen unbelegter Nachbarn. Die Bewertung möglicher Werte verursacht zusätzlichen Rechenaufwand, kann aber einen aufwendigen gescheiterten Zweig vermeiden.

Bei WA Rot und NT Grün kann SA nur Blau sein, während Q Rot oder Blau sein kann. Die Wahl Q Blau würde den Wertebereich von SA leeren. Die Wahl Q Rot entfernt Rot aus dem Wertebereich von NSW und erhält Blau für SA. LCV versucht daher Q Rot.

ReihenfolgeentscheidungBevorzugte WahlGrund
Nächste VariableWenigste verbliebene WerteEinen wahrscheinlichen Fehlschlag früh aufdecken.
Variable bei GleichstandMeiste unbelegte NachbarnMehr verbleibende Entscheidungen beeinflussen.
Nächster WertWenigste entfernte NachbarwerteChancen auf Vervollständigung der Belegung erhalten.

Jede Variable muss irgendwann einen Wert erhalten, weshalb die frühe Prüfung einer kritischen Variablen nützlich ist. Um eine erste Lösung zu vervollständigen, wird nur ein Wert benötigt. Das spricht für einen Wert, der Spielraum für andere Entscheidungen lässt.

Reihenfolge mit Forward Checking kombinieren

Wende im Workshop-Zeitplan zuerst E≠1 an. E hat zwei Werte; A, B, C und D haben jeweils drei. MRV wählt E. Versuche E=2, und Forward Checking entfernt 2 aus den Wertebereichen von C und D.

C und D liegen nun mit den Wertebereichen {1,3} gleichauf. C hat drei unbelegte Nachbarn, A, B und D; D hat zwei, A und C. Die Gradheuristik wählt C. Wähle C=1, wodurch DD={3} und DA=DB={2,3} bleiben. MRV wählt D=3, was A=2 erzwingt; die Vorrangbedingung ergibt dann B=3. Fünf Belegungen führen ohne Backtracking zur Lösung. Eine feste Variablenreihenfolge mit Forward Checking benötigt 12 Belegungen und erreicht zwei Sackgassen.

Die Reihenfolge erhält die Vollständigkeit, weil sie die Abfolge der Entscheidungen ändert, ohne zulässige Zweige zu verwerfen. Der Suchaufwand bleibt im schlimmsten Fall exponentiell. Werden alle Lösungen aufgezählt oder wird Unlösbarkeit bewiesen, müssen schließlich alle relevanten Werte untersucht werden. Daher ist der Vorteil von LCV für einen frühen Erfolg geringer. Der Hauptnutzen liegt darin, eine erste Lösung früher zu finden.

Wichtige Erkenntnisse

  • MRV nutzt die aktuelle Anzahl zulässiger Werte.
  • Die Gradheuristik löst Gleichstände anhand der Constraints zu unbelegten Variablen auf.
  • LCV erhält beim Versuch eines Werts Wahlmöglichkeiten für Nachbarn.
  • Die Reihenfolge verändert den Suchaufwand und erhält dabei die Vollständigkeit.

2.3 Gehe nach einer Sackgasse gezielt zu früheren Entscheidungen zurück

Eine Sackgasse hat oft eine kleinere Ursache als die gesamte aktuelle Belegung. Backjumping nutzt diese Ursache, um zu entscheiden, wohin zurückgekehrt wird, und Constraint-Lernen merkt sich einen Fehlschlag, damit er nicht erneut entdeckt werden muss.

Die Entscheidungen finden, die den Fehlschlag verursacht haben

Nimm auf der Australienkarte die Belegungsreihenfolge Q, NSW, V, T, SA. Q sei Rot, NSW Grün, V Blau und T Rot. SA grenzt an Q, NSW und V, daher sind alle drei Farben verboten. Seine Konfliktmenge ist {Q,NSW,V}: frühere Variablen, deren gewählte Werte seine Werte ausschließen.

Chronologisches Backtracking würde versuchen, T zu ändern. Tasmanien hat keine Kante zu SA, daher kann eine Änderung seiner Farbe keine Möglichkeit für SA wiederherstellen. Backjumping kehrt zu V zurück, dem zuletzt belegten Mitglied der Konfliktmenge, und überspringt T.

Eine Konfliktmenge enthält Variablen; ein Nogood hält bestimmte Belegungen fest. Dieser Unterschied ist wichtig: Eine andere Farbe für V kann den Fehlschlag beheben, obwohl V weiterhin ein Nachbar von SA ist.

Einen Konflikt durch frühere Fehlschläge weitertragen

Einfaches Backjumping nutzt die direkte Konfliktmenge des aktuellen Fehlschlags. Konfliktgesteuertes Backjumping trägt Informationen durch mehrere gescheiterte Ebenen. Springt eine gescheiterte Variable X zu Y zurück, übernimmt Y die Konfliktmenge von X ohne Y. Sind später alle Werte von Y ausgeschöpft, weist seine vereinigte Menge auf eine weiter zurückliegende Ursache in der Belegung hin.

Verwende zum Beispiel die Reihenfolge WA, NSW, T, NT, Q, V, SA und beginne mit WA Rot, NSW Rot, T Rot. WA und NSW sind keine Nachbarn, daher ist diese partielle Belegung konsistent. Ihre gewählten Werte entfernen Rot aus den Wertebereichen von NT, Q und SA. Diese drei Regionen bilden ein Dreieck, das sich nicht nur mit Grün und Blau färben lässt.

Keine Wahl für T verändert dieses Dreieck. Konfliktinformationen können durch die gescheiterten Versuche zurückgetragen werden und WA und NSW als zugrunde liegende Ursache identifizieren. Die Suche kehrt zu NSW zurück, der späteren dieser beiden Entscheidungen, statt Zeit mit dem Umfärben von T zu verbringen.

Die gescheiterte Kombination lernen

Ein Löser kann {WA=Rot,NSW=Rot} als Nogood festhalten. Wann immer beide Entscheidungen erneut auftreten, folgt derselbe Widerspruch im Dreieck, sodass der Zweig sofort verworfen werden kann. Es wäre falsch, WA Rot für sich allein zu verbieten: WA kann in gültigen Lösungen mit einer anderen Farbe für NSW Rot sein.

Das Lernen fügt einen Constraint oder eine zwischengespeicherte verbotene Kombination hinzu. Die gelernte Bedingung muss aus den ursprünglichen Constraints folgen; ein Fehlschlag allein aufgrund einer erreichten Zeitgrenze liefert keine solche logische Begründung. Ein nützliches Nogood enthält genügend Belegungen, um die Unmöglichkeit zu erklären, ohne unbeteiligte Entscheidungen einzuschließen.

Vorausschau und Rückblick kombinieren

Forward Checking und Kantenkonsistenz entfernen Werte ohne Unterstützung, bevor ein Fehlschlag tief im Baum auftritt. Backjumping untersucht einen Fehlschlag, nachdem er aufgetreten ist. Einfaches direktes Backjumping beschneidet nicht mehr, als Forward Checking bereits erkennt. Konfliktgesteuerte Verfahren können aber Erklärungen tieferer Fehlschläge kombinieren. Lernen erhält diese Erklärungen für spätere Zweige.

Wichtige Erkenntnisse

  • Eine Konfliktmenge bezeichnet frühere Variablen, die für einen Fehlschlag verantwortlich sind.
  • Backjumping überspringt Entscheidungen, die mit diesem Fehlschlag nichts zu tun haben.
  • Konfliktgesteuertes Backjumping kombiniert Konfliktinformationen über gescheiterte Ebenen hinweg.
  • Ein Nogood verbietet eine unmögliche Kombination von Belegungen, nicht jede Belegung einzeln.
  • Vorausschauende Beschneidung und gelernte Erklärungen können zusammenwirken.
3

Verkleinere Wertebereiche durch Constraint-Propagation

Ein Wert kann bereits unmöglich sein, bevor seine Variable gewählt wird. Constraint-Propagation verfolgt die Folgen aktueller Wertebereiche und Belegungen und entfernt Werte, denen die nötige Unterstützung fehlt. Die Verfahren unterscheiden sich darin, wie weit sie vorausschauen: von den unmittelbaren Nachbarn einer Entscheidung über Paare und Tripel bis hin zu ganzen Variablengruppen. Durchgerechnete Änderungen der Wertebereiche zeigen, was jedes Verfahren erkennt, was es übersieht und wann sich der zusätzliche Aufwand lohnt.

3.1 Wende während der Suche Forward Checking an

Forward Checking prüft, was eine neue Belegung für unbelegte Nachbarn unmittelbar ausschließt. Es entfernt unvereinbare Werte, bevor die Suche diese Variablen erreicht, und macht so manche Sackgassen mehrere Ebenen früher sichtbar.

Nach einer Belegung beschneiden

Untersuche nach der Wahl X=x jede unbelegte Variable Y, die mit X einen Constraint teilt. Entferne jeden Wert aus DY, der mit der Wahl in Konflikt steht. Ein leerer Wertebereich bedeutet, dass der aktuelle Zweig keine Vervollständigung zulässt. Gehe daher sofort zurück.

Bei X≠Y entfernt die Belegung X=2 die 2 aus dem Wertebereich von Y. Bei X<Y entfernt X=2 jeden Wert von Y, der höchstens 2 ist. Die jeweilige Relation bestimmt, was entfernt wird; Forward Checking ist nicht darauf beschränkt, gleiche Werte zu entfernen.

Die Beschneidung verändert die Wertebereiche des aktuellen Zweigs. Halte jede durch die Wahl verursachte Entfernung in einem Änderungsprotokoll fest. Wird die Wahl rückgängig gemacht, stelle die entfernten Werte wieder her und behalte dabei Einschränkungen aus früheren Entscheidungen bei. Eine andere Implementierung verwendet auf jeder Ebene Kopien der Wertebereiche.

Die Wertebereiche der Workshops verfolgen

Verwende die Zeitfenster 1–3 und die Regeln A≠C,A≠D,C≠D,B≠C,C≠E,D≠E,A<B,E≠1. Wende die unäre Regel an, um DE={2,3} zu erhalten, und verwende dann die feste Reihenfolge A, B, C, D, E.

  1. Nach A=1 bleibt für B, C und D jeweils {2,3}.
  2. Nach B=2 bleibt für C {3}.
  3. Nach C=3 bleibt für D und E jeweils {2}.
  4. D=2 entfernt 2 aus dem Wertebereich von E und leert ihn. Gehe zurück.

Nach dem Wiederherstellen der Wertebereiche erzwingt der Versuch B=3 für C den Wert 2. Für D und E bleibt jeweils 3, sodass die Belegung von D den Wertebereich von E erneut leert. Die Suche muss A ändern. Mit A=2 kann sie B=3,C=1,D=3,E=2 erreichen. Dieser Ablauf versucht 12 Werte, gegenüber 32 geprüften Kandidaten beim einfachen Backtracking in derselben Reihenfolge.

Die Grenze der Prüfung in einem Schritt erkennen

Nach Schritt 3 haben D und E beide nur den Wert 2 und müssen verschieden sein. Forward Checking hat diesen Constraint noch nicht geprüft: Weder D noch E wurde neu belegt. Es erkennt den Fehlschlag erst, wenn D seinen Wert erhält.

Das ist die zentrale Grenze von Forward Checking. Es prüft die belegte Variable gegen ihre unbelegten Nachbarn, ohne den verkleinerten Wertebereich eines Nachbarn weiterzupropagieren. Kantenkonsistenz kann diese Folgen zwischen unbelegten Variablen verfolgen.

Die aktuell gehaltenen Wertebereiche nutzen

MRV kann nun direkt den kleinsten verbleibenden Wertebereich wählen. Ein Wertebereich mit nur einem Wert wird oft als Nächstes gewählt; ein leerer Wertebereich zeigt einen Fehlschlag an, ohne eine weitere Belegung hinzuzufügen. Aktuelle Wertebereiche helfen sowohl beim Schlussfolgern als auch bei der Reihenfolge.

Bei höchstens n−1 Nachbarn und höchstens d Werten pro Nachbar benötigt ein Forward-Checking-Durchlauf etwa O(nd) binäre Prüfungen, sofern eine Relationsprüfung konstante Zeit benötigt. Er entfernt nur Werte, die mit der aktuellen Belegung unvereinbar sind, sodass Backtracking vollständig bleibt. Wird vergessen, einen entfernten Wert wiederherzustellen, kann ein späterer Zweig eine gültige Lösung verlieren; das Beschneiden einer unbeteiligten Variablen kann dasselbe bewirken.

Wichtige Erkenntnisse

  • Forward Checking beschneidet die unbelegten Nachbarn der neu belegten Variablen.
  • Ein leerer Wertebereich verwirft den aktuellen Zweig sofort.
  • Stelle beim Rückgängigmachen einer Wahl die zu diesem Zweig gehörenden entfernten Werte wieder her.
  • Forward Checking propagiert nicht zwischen zwei unbelegten Variablen.

3.2 Stelle mit AC-3 Kantenkonsistenz her

Ein Wert benötigt in jedem benachbarten Wertebereich einen vereinbaren Partner. Kantenkonsistenz macht diese Unterstützungsanforderung ausdrücklich und verfolgt die Auswirkungen von Änderungen der Wertebereiche durch ein binäres CSP.

Unterstützung hat eine Richtung

Knotenkonsistenz entfernt zunächst Werte, die durch unäre Regeln verboten sind. Bei einem binären Constraint ist die gerichtete Kante X→Y konsistent, wenn jeder Wert von X mindestens einen vereinbaren Wert in Y hat. Dieser Wert in Y ist eine Unterstützung. Die Revision der Kante entfernt Werte ohne Unterstützung aus ihrem Ausgangsknoten X.

Bei A<B mit den Wertebereichen {1,2,3} auf beiden Seiten entfernt die Revision von A→B die 3 aus dem Wertebereich von A. Die Revision von B→A entfernt die 1 aus dem Wertebereich von B. Die resultierenden Wertebereiche sind DA={1,2} und DB={2,3}. Ein verbliebener Wert kann für jeden Nachbarn eine andere Unterstützung haben; diese Unterstützungen müssen keine gemeinsame Lösung bilden.

AC-3 ausführen

AC-3 verwendet eine Warteschlange gerichteter Kanten:

  1. Lege anfangs jede Kante in die Warteschlange.
  2. Entnimm X→Y und revidiere X mithilfe des Wertebereichs von Y.
  3. Wird der Wertebereich von X leer, halte mit einem Fehlschlag an.
  4. Schrumpft der Wertebereich von X, füge für jeden anderen Nachbarn Z von X außer Y die Kante Z→X hinzu.
  5. Fahre fort, bis die Warteschlange leer ist.

Eine Entfernung in X kann eine Unterstützung für Z beseitigen, daher muss die Kante in der Warteschlange zurück zum geänderten Wertebereich zeigen. Die Kante von Y muss nicht sofort erneut geprüft werden: Die entfernten Werte von X unterstützten keinen Wert in Y, da keiner von ihnen überhaupt mit Y vereinbar war. Sind die Wertebereiche nach Abschluss nicht leer, hängen sie nicht von der Bearbeitungsreihenfolge ab; bei verschiedenen Reihenfolgen kann ein Fehlschlag jedoch bei verschiedenen leeren Wertebereichen auftreten.

Eine Workshop-Entscheidung propagieren

Bei den Workshop-Regeln A≠C,A≠D,C≠D,B≠C,C≠E,D≠E,A<B,E≠1 entfernt der anfängliche AC-3-Durchlauf die 3 aus dem Wertebereich von A und die 1 aus dem von B. Für C und D bleibt jeweils {1,2,3} und für E {2,3}.

Entscheide nun C=1. Die Kante A→C entfernt die 1 aus dem Wertebereich von A, sodass A=2 bleibt. Die Revision von B anhand von A erzwingt B=3. D ist von C und A verschieden, also gilt D=3. E ist von D verschieden und kann nicht 1 sein, also gilt E=2. Die Verkleinerungen der Wertebereiche haben sich über die unmittelbaren Nachbarn der ursprünglichen Entscheidung hinaus fortgepflanzt.

Die Aufrechterhaltung der Kantenkonsistenz (MAC) wendet diese Schlussfolgerung nach jeder Suchentscheidung an. Ausgehend von kantenkonsistenten Wertebereichen benötigt die Einschränkung auf X=x eine Warteschlange mit eingehenden Kanten von den unbelegten Nachbarn. Entfernte Werte müssen wiederhergestellt werden, wenn die Suche den Zweig rückgängig macht.

Ergebnis und Aufwand deuten
Ergebnis nach Knoten- und KantenkonsistenzBedeutung
Ein leerer WertebereichKeine Lösung erweitert die aktuellen Einschränkungen.
Jeder Wertebereich enthält einen einzigen WertDie einzige verbleibende Belegung erfüllt das binäre CSP.
Einige Wertebereiche enthalten mehrere WerteWeitere Schlussfolgerungen oder eine Suche können nötig sein.

Ein Dreieck mit den Wertebereichen {Rot, Blau} und Ungleichungen auf allen drei Kanten bleibt kantenkonsistent, hat aber keine Lösung. Jede Kante hat für sich Unterstützungen, doch die drei Wahlmöglichkeiten passen nicht zusammen.

Bei c binären Constraints und der maximalen Wertebereichsgröße d benötigt AC-3 O(cd3) Zeit: Eine Kantenrevision prüft bis zu d2 Paare, und jede Kante kann bis zu d Durchläufe benötigen, während ihr Zielknoten Werte verliert. MAC wendet pro Suchknoten mehr auf als Forward Checking und erhält dafür oft einen viel kleineren Suchbaum.

Wichtige Erkenntnisse

  • Die Revision von X→Y entfernt Werte ohne Unterstützung aus dem Wertebereich von X.
  • Nachdem der Wertebereich von X geschrumpft ist, prüft AC-3 die zu X führenden Kanten erneut.
  • Nicht leere kantenkonsistente Wertebereiche können dennoch ein unlösbares CSP beschreiben.
  • MAC erhält die Kantenkonsistenz nach Suchentscheidungen aufrecht.
  • Für AC-3 gilt im schlimmsten Fall die Standardschranke O(cd3).
  • Schlussfolgerungen aus Wertebereichen mit je einem Wert setzen voraus, dass unäre und binäre Constraints durchgesetzt wurden.

3.3 Nutze stärkere Konsistenzbegriffe und globale Constraints

Getrennte paarweise Unterstützungen können einen Widerspruch in einer Gruppe verbergen. Stärkere Konsistenz und spezialisierte globale Propagation untersuchen Kombinationen, die Kantenkonsistenz übersieht, während numerische Schranken große Wertebereiche zu nützlichen Intervallen zusammenfassen können.

Belegungen um eine weitere Variable erweitern

Pfadkonsistenz untersucht Tripel. Jede konsistente Belegung zweier Variablen muss sich um einen Wert für eine dritte erweitern lassen, der mit beiden vereinbar ist. In einem rot oder blau gefärbten Dreieck lassen X Rot und Y Blau keinen Wert für Z übrig. Pfadkonsistenz entfernt dieses erlaubte Paar und deckt schließlich die Unlösbarkeit auf. Sie kann Tupel aus Relationen entfernen und tut damit mehr, als einzelne Werte aus Wertebereichen zu löschen.

k-Konsistenz verlangt, dass sich jede konsistente Belegung beliebiger k−1 Variablen um eine beliebige weitere Variable erweitern lässt. Bei binären CSPs entspricht 1-Konsistenz der Knotenkonsistenz, 2-Konsistenz der Kantenkonsistenz und 3-Konsistenz der Pfadkonsistenz. Starke k-Konsistenz umfasst jede Stufe von 1 bis k. Bei starker n-Konsistenz für n Variablen und nicht leeren Wertebereichen lässt sich jede konsistente partielle Belegung ohne Backtracking zu einer Lösung erweitern. Die Herstellung dieser Eigenschaft verursacht im schlimmsten Fall exponentielle Zeit- und Speicherkosten.

Werte in Alldiff zählen

Alldiff verlangt verschiedene Werte für alle Variablen in seinem Geltungsbereich. Hat eine Gruppe von m Variablen nur n verschiedene mögliche Werte und gilt m>n, kann keine Belegung den Constraint erfüllen.

Für drei Zellen mit den Wertebereichen {4,7} sind die paarweisen Ungleichungen kantenkonsistent: Jede 4 hat in jedem Nachbarn die Unterstützung 7 und jede 7 die Unterstützung 4. Die globale Zählung scheitert dennoch, weil drei verschiedene Werte benötigt werden und nur zwei existieren.

Haben zwei Zellen beide den Wertebereich {4,7}, müssen sie untereinander 4 und 7 verwenden. Diese Werte können aus allen anderen Zellen derselben Zeile entfernt werden. Diese Schlussfolgerung mit einem nackten Paar nutzt eine Teilmenge des gesamten Alldiff-Geltungsbereichs. Ein einfacher globaler Propagator kann auch wiederholt Variablen mit nur einem Wert verarbeiten, deren Werte an anderer Stelle entfernen und prüfen, ob zu wenige verschiedene Werte übrig bleiben. Stärkere Propagatoren erkennen auch eingeschränkte Teilmengen.

Numerische Schranken verschärfen

Schrankenpropagation speichert einen Wertebereich anhand seines Minimums und Maximums. Schrankenkonsistenz verlangt, dass jeder Endpunkt für jeden relevanten Constraint eine erfüllende Erweiterung hat; sie prüft nicht jeden inneren Wert.

Für zwei Busse, die 100 Personen befördern, sei B1∈[0;50] und B2∈[0;70], wobei B1+B2=100 gilt. Der zweite Bus befördert höchstens 70 Personen, was B1≥30 erzwingt. Der erste befördert höchstens 50, was B2≥50 erzwingt. Die verschärften Intervalle sind [30;50] und [50;70].

Für Vorbereiten, Analysieren und Bericht erstellen mit einer Dauer von 20, 40 und 30 Minuten in dieser Reihenfolge ergeben sich bei einer Frist von 120 Minuten die spätesten Startzeiten 30, 50 und 90. Nichtnegative Startzeiten ergeben die frühesten Startzeiten 0, 20 und 60. Durch Propagation vorwärts und rückwärts erhält man diese Zeitfenster, bevor eine Startzeit gewählt wird.

Eine geeignete Stärke wählen

Jede Sudoku-Zelle hat 20 verschiedene andere Zellen mit gemeinsamem Constraint: 8 in ihrer Zeile, 8 in ihrer Spalte und 4 zusätzliche Zellen in ihrer Box. Über 81 Zellen hinweg ergibt das 81×20/2=810 verschiedene ungleiche Paare. Globale Constraints erhalten dieselben Lösungen wie diese Paare, können aber nackte Paare und einen Mangel an Werten früher aufdecken. Stärkeres Schlussfolgern kostet pro Durchlauf mehr; praktische Löser wägen diesen Aufwand gegen die eingesparte Suche ab und kombinieren häufig Kantenkonsistenz mit spezialisierter globaler Propagation und Schrankenpropagation.

Wichtige Erkenntnisse

  • Pfadkonsistenz prüft, ob sich ein konsistentes Paar um eine dritte Variable erweitern lässt.
  • Starke k-Konsistenz umfasst jede kleinere Konsistenzstufe.
  • Alldiff erkennt Gruppen mit zu wenigen verschiedenen Werten.
  • Ein nacktes Paar reserviert seine zwei Werte für diese beiden Variablen.
  • Schrankenpropagation verschärft Endpunkte, ohne einen großen numerischen Wertebereich aufzuzählen.
  • Stärkeres Schlussfolgern tauscht zusätzlichen Aufwand pro Durchlauf gegen weniger Suchaufwand ein.
4

Löse CSPs mit lokaler Suche

Ein Zeitplan, der einige Regeln verletzt, kann dennoch ein nützlicher Ausgangspunkt sein. Lokale Suche behält für jede Variable einen Wert bei und repariert Konflikte Schritt für Schritt. Die Herausforderung besteht darin, zielführende Schritte zu wählen und Bereiche zu verlassen, in denen der Fortschritt aufhört. Du verfolgst die Min-Konflikte-Heuristik auf einem kleinen Brett, untersuchst Möglichkeiten, die Reparatur voranzubringen, und wählst ein Lösungsverfahren, das zu den Nachweisen passt, die eine Ablaufplanungs- oder Zuordnungsaufgabe benötigt.

4.1 Repariere Belegungen mit der Min-Konflikte-Heuristik

Lokale Suche beginnt mit einem Wert für jede Variable, auch wenn einige Constraints verletzt sind. Die Min-Konflikte-Heuristik repariert diese vollständige Belegung, indem sie einer konfliktbehafteten Variablen einen Wert mit möglichst wenigen Konflikten zuweist.

Eine Reparatur wählen
  1. Erstelle eine vollständige Belegung, zufällig oder durch gierige Auswahl.
  2. Wird kein Constraint verletzt, gib die Lösung zurück.
  3. Wähle zufällig eine Variable, die an einem verletzten Constraint beteiligt ist.
  4. Bewerte jeden Wert ihres Wertebereichs gegenüber den anderen Variablen, die fest bleiben.
  5. Wähle einen Wert mit den wenigsten Konflikten, löse Gleichstände zufällig auf und wiederhole das Verfahren bis zum Erfolg oder bis zu einer Schrittgrenze.

Eine konfliktbehaftete Variable ist an mindestens einem verletzten Constraint beteiligt. Sie ist nicht notwendigerweise die Variable mit den meisten Verletzungen. Die zufällige Wahl unter konfliktbehafteten Variablen und gleich guten Werten hilft, eine starre wiederholte Abfolge zu vermeiden.

Ein Brett für das 4-Damen-Problem reparieren

Verwende eine Dame pro Spalte mit den Zeilenvariablen Q1,Q2,Q3,Q4. Ein Paar steht in Konflikt, wenn die Zeilen gleich sind oder der Zeilenabstand dem Spaltenabstand entspricht. Beginne mit (2,4,2,3). Die Spalten 1 und 3 teilen sich Zeile 2; die Damen in den Spalten 3 und 4 greifen sich diagonal an. Die konfliktbehafteten Variablen sind Q1, Q3 und Q4.

Wähle Q3 und bewerte die Zeilen, während Q1, Q2 und Q4 fest bleiben:

Mögliche Zeile für Q3Konflikte mit Beteiligung von Q3
10
22
32
43

Zeile 1 ergibt (2,4,1,3), eine Lösung. Wäre stattdessen Q1 gewählt worden, wären seine Konfliktzahlen für die Zeilen 1–4 gleich 0, 1, 2 und 2. Ein Zug in Zeile 1 ergibt (1,4,2,3), wobei der diagonale Konflikt zwischen Q3 und Q4 bleibt. Auch nach einer lokal besten Reparatur können also weitere Reparaturen nötig sein.

Zähle die Constraints, an denen die gewählte Variable beteiligt ist. Zählt man alle Verletzungen auf jedem entstehenden Brett, ergibt sich dieselbe Reihenfolge, weil unbeteiligte Constraints zu jedem Kandidaten einen konstanten Beitrag leisten. Das erfordert lediglich mehr Aufwand. Verwende beim Vergleich der Kandidaten eine einheitliche Definition von Konflikten.

Einen bestehenden Zeitplan reparieren

Fällt eine Lehrkraft aus, ist der aktuelle Zeitplan bereits eine vollständige Belegung. Die Min-Konflikte-Heuristik kann dort beginnen und Veranstaltungen verschieben, bis die neuen und bestehenden Constraints erfüllt sind. Eine kleine Änderung benötigt oft wenige Reparaturen, obwohl ein Schritt anderswo neue Konflikte erzeugen kann. Ist es wichtig, den alten Plan beizubehalten, weise der Änderung einer Belegung explizite Kosten zu; allein die Minimierung von Verletzungen minimiert nicht die Änderungen am Plan.

Experimente mit einer guten Anfangsbelegung benötigten selbst für eine Million Damen relativ wenige Reparaturschritte. Größere Bretter machen jeden Schritt dennoch aufwendiger. Die Min-Konflikte-Heuristik wurde auch für die Hubble-Planung eingesetzt; Berichten zufolge verkürzte sich die Planung einer Woche von Beobachtungen von etwa drei Wochen auf etwa 10 Minuten.

Das Suchverhalten deuten

Viele Familien zufälliger CSPs gehen von überwiegend lösbar zu überwiegend unlösbar über, wenn das Verhältnis von Constraints zu Variablen steigt. In der Nähe dieses Übergangs ist die Entscheidung, wie Wahlmöglichkeiten zusammenwirken, oft am schwierigsten. Probleme mit wenigen Einschränkungen können viele leicht erreichbare Lösungen haben. Stark eingeschränkte unlösbare Probleme können von vollständigen Lösern mit Propagation schnell als unlösbar erkannt werden.

Das Erreichen einer Schrittgrenze bei der Min-Konflikte-Heuristik bedeutet, dass in diesem Durchlauf keine Lösung gefunden wurde. Das Problem kann dennoch lösbar sein. Die praktische Stärke des Verfahrens liegt in effizienten Reparaturen, einschließlich Schritten zu gleich bewerteten Zuständen, obwohl Lösungen nur einen winzigen Anteil aller möglichen Belegungen ausmachen.

Wichtige Erkenntnisse

  • Die Min-Konflikte-Heuristik beginnt mit einer vollständigen Belegung und repariert verletzte Constraints.
  • Wähle eine konfliktbehaftete Variable und dann einen Wert mit möglichst wenigen Konflikten; löse Gleichstände zufällig auf.
  • Bei der Bewertung möglicher Werte können Constraints ohne Bezug zur gewählten Variablen ignoriert werden.
  • Eine zulässige Belegung wiederherzustellen und Änderungen zu minimieren sind verschiedene Ziele.
  • Ein Fehlschlag an der Schrittgrenze lässt die Frage der Lösbarkeit offen.

4.2 Überwinde Plateaus und lokale Minima und wähle zwischen lokaler Suche und Backtracking

Eine Reparatursuche kann aufhören, sich zu verbessern, obwohl Konflikte bestehen bleiben. Um weiterzukommen, benötigt der Löser eine Möglichkeit, sich durch gleich bewertete Zustände zu bewegen oder zu ändern, welche Schritte lohnend erscheinen. Auch das benötigte Ergebnis zählt: Eine schnelle zulässige Reparatur und ein Beweis der Unlösbarkeit verlangen unterschiedliche Verfahren.

Ein Plateau durchqueren

Ein lokales Minimum hat Verletzungen, aber keine Änderung einer einzelnen Variablen, die deren Anzahl senkt. Ein Plateau ist ein zusammenhängender Bereich von Belegungen mit gleicher Bewertung. Schritte, die nur bergab führen, können stecken bleiben; ein Seitwärtsschritt verändert den Zustand, ohne die Bewertung zu senken.

Beim 4-Damen-Problem hat (1,4,2,3) einen Konflikt zwischen Q3 und Q4. Bei festgehaltenen anderen Damen sind die Konfliktzahlen von Q3 für die Zeilen 1–4 gleich 1, 1, 3 und 2; die von Q4 sind 2, 2, 1 und 2. Keine der beiden Variablen hat einen verbessernden Zug.

Ein Zug von Q3 in Zeile 1 ergibt (1,4,1,3), weiterhin mit einem Konflikt: Nun stehen Q1 und Q3 in derselben Zeile. In diesem neuen Zustand sind die Konfliktzahlen von Q1 gleich 1, 0, 3 und 1. Ein Zug von Q1 in Zeile 2 ergibt (2,4,1,3) und beseitigt den Konflikt. Der Seitwärtsschritt hat verändert, welche verbessernden Züge verfügbar waren.

Die Suche in Bewegung halten
VerfahrenWie es die Suche verändert
TabusucheVerbietet vorübergehend kürzlich besuchte Zustände oder ausgeführte Schritte, um Zyklen zu verringern.
Constraint-GewichtungErhöht die Bedeutung von Constraints, die weiterhin verletzt sind.
Zufällige NeustartsBeginnen nach erfolglosen Schritten mit einer anderen vollständigen Belegung.
Simulierte AbkühlungAkzeptiert manchmal schlechtere Schritte; die Akzeptanz sinkt mit der Temperatur.

Eine Tabuliste ist ein kurzlebiges Gedächtnis. Sie erschwert die sofortige Rückkehr zu einem gerade verlassenen Zustand. Ein Neustart erkundet einen anderen Bereich, während die simulierte Abkühlung innerhalb des aktuellen Durchlaufs einen Bereich mit mehr Konflikten überqueren kann.

Beginne bei der Constraint-Gewichtung jedes Gewicht bei 1 und bewerte einen Zustand anhand der Summe der Gewichte seiner verletzten Constraints. Wähle eine Änderung, die diese gewichtete Bewertung senkt, und erhöhe dann die Gewichte der weiterhin verletzten Constraints. Wiederholte Fehlschläge werden teurer und verändern die Suchlandschaft. Eine gewichtete Bewertung von null bedeutet weiterhin, dass jeder positiv gewichtete harte Constraint erfüllt ist.

Den benötigten Nachweis wählen

Lokale Suche ist unvollständig: Sie kann eine existierende Lösung übersehen, und ein endlicher erfolgloser Durchlauf lässt die Frage der Unlösbarkeit offen. Backtracking mit Propagation bei endlichen Wertebereichen ist vollständig: Es findet schließlich eine Lösung oder schöpft jede mögliche Vervollständigung aus.

Verwende lokale Suche, wenn ein großes Problem mit wenigen Einschränkungen eine zulässige Belegung oder eine schnelle Reparatur benötigt. Backtracking mit MRV und MAC ist eine gute Wahl für stark eingeschränkte Rätsel und immer dann, wenn die Aufgabe den Nachweis der Unlösbarkeit verlangt. Die Laufzeit hängt weiterhin vom jeweiligen Problemfall ab; diese Verfahrensentscheidungen beruhen auf den jeweiligen Garantien.

Der Workshop-Zeitplan hat die eindeutige Lösung A=2,B=3,C=1,D=3,E=2. Das Hinzufügen von C≠1 schließt sie aus. Die Min-Konflikte-Heuristik kann bis zu ihrer Grenze Reparaturen versuchen, doch erst eine vollständige Suche, die die verbleibenden Fälle ausschöpft, stellt fest, dass die organisierende Person eine Anforderung ändern muss, etwa indem sie ein weiteres Zeitfenster hinzufügt.

Wichtige Erkenntnisse

  • Ein Seitwärtsschritt kann jenseits eines Plateaus einen verbessernden Schritt ermöglichen.
  • Tabugedächtnis, Gewichte, Neustarts und simulierte Abkühlung begegnen unterschiedlichen Hindernissen für den Fortschritt.
  • Lokale Suche ist unvollständig; erschöpfendes Backtracking bei endlichen Wertebereichen ist vollständig.
  • Wähle ein vollständiges Verfahren, wenn Unlösbarkeit nachgewiesen werden muss.
5

Nutze die Struktur eines Problems

Die Form eines Constraint-Graphen kann ebenso wichtig sein wie die Größe seiner Wertebereiche. Getrennte Komponenten lassen sich unabhängig lösen, und ein Baum ermöglicht einen beschneidenden Rückwärtsdurchlauf mit anschließender Vorwärtsbelegung ohne Backtracking. Zyklen erfordern mehr Aufwand, doch eine kleine Schnittmenge oder eine schmale Baumzerlegung kann ihn begrenzen. Diese Verfahren verbinden die Graphenstruktur mit der Zeit, die benötigt wird, um eine konsistente Belegung zu finden.

5.1 Zerlege ein Problem in unabhängige Teilprobleme und löse baumstrukturierte CSPs

Ein Constraint-Graph kann kleinere Probleme innerhalb eines großen sichtbar machen. Unabhängige Komponenten lassen sich getrennt lösen, und für azyklische Komponenten gibt es einen besonders effizienten Algorithmus mit einem beschneidenden Rückwärtsdurchlauf und einem belegenden Vorwärtsdurchlauf.

Getrennte Komponenten zerlegen

Eine Zusammenhangskomponente ist unabhängig, wenn kein Constraint ihre Variablen mit einer anderen Komponente verbindet. Löse jede Komponente und kombiniere dann je eine Lösung aus jeder. Ist eine Komponente unlösbar, ist das gesamte CSP unlösbar. Auf der Australienkarte ist Tasmanien unabhängig vom Festland.

Sind n Variablen in unabhängige Gruppen der Größe c aufgeteilt, liegt der Aufwand, eine vollständige Belegung zu finden, bei O((n/c)dc) statt bei O(dn). Für 60 binäre Variablen, aufgeteilt in drei Gruppen zu je 20, betrachten getrennte erschöpfende Suchen höchstens 3×220=3.145.728 Belegungen statt etwa 1,15×1018. Um jede kombinierte Lösung aufzuzählen, müssten weiterhin die Kombinationen aufgelistet werden; die Einsparung beschreibt das Lösen der Teilprobleme.

Einen Baum von seiner Wurzel aus ordnen

Ein binäres CSP ist baumstrukturiert, wenn sein Constraint-Graph azyklisch ist. Ein zusammenhängender Baum hat zwischen jedem Variablenpaar einen Pfad; ein Wald enthält getrennte Bäume. Wende zuerst unäre Einschränkungen an. Wähle eine beliebige Wurzel und ordne die Variablen so, dass jeder Elternknoten vor seinen Kindern erscheint.

Gerichtete Kantenkonsistenz in dieser Reihenfolge verlangt, dass jede frühere Variable in jedem späteren Nachbarn Unterstützung hat. In einem Baum sind diese späteren Nachbarn ihre Kinder. Die Richtung der Unterstützung führt vom Elternknoten zum Kind, obwohl der Algorithmus Kinder vor Elternknoten verarbeitet.

Rückwärts beschneiden, vorwärts belegen
  1. Lies die Reihenfolge rückwärts, ohne die Wurzel. Revidiere für jedes Kind die Kante von seinem Elternknoten zu diesem Kind. Entferne Werte ohne Unterstützung aus dem Wertebereich des Elternknotens.
  2. Wird ein Wertebereich leer, melde, dass es keine Lösung gibt.
  3. Lies die Reihenfolge vorwärts. Wähle einen beliebigen verbliebenen Wert für die Wurzel und gib dann jedem Kind einen Wert, der mit seinem belegten Elternknoten vereinbar ist.

Die Nachkommen des Kindes wurden bereits verarbeitet, wenn sein Elternknoten revidiert wird. Ein verbliebener Wert des Elternknotens hat daher in jedem Kind Unterstützung, und jeder Wert eines Kindes hat bereits weiter unten Unterstützung. Verschiedene Kindzweige sind nicht durch Kanten verbunden, sodass diese Unterstützungen unabhängig gewählt werden können. Deshalb benötigt der Vorwärtsdurchlauf kein Backtracking.

Den Workshop-Baum verfolgen

Lege im Workshop-Zeitplan C=1 fest und entferne 1 aus den Wertebereichen der anderen Workshops. Der verbleibende Graph ist der Pfad B–A–D–E mit den Wertebereichen {2,3} und den Constraints A<B,A≠D,D≠E.

Wähle die Wurzel A und die Reihenfolge A, B, D, E. Der Rückwärtsdurchlauf revidiert D→E und dann A→D ohne Änderungen. Schließlich entfernt A→B die 3 aus dem Wertebereich von A, weil B keinen größeren Wert hat. Die Vorwärtsbelegung ergibt A=2,B=3,D=3,E=2. Nimmt man C=1 wieder hinzu, ergibt sich der vollständige Zeitplan.

Für n Variablen mit maximaler Wertebereichsgröße d revidiert der Rückwärtsdurchlauf n−1 Kanten mit jeweils bis zu O(d2) Aufwand. Das ergibt O(nd2) Zeit. Die Garantie hängt von der Zyklenfreiheit ab. Ein Zyklus kann getrennte Kindzweige verbinden und die Unabhängigkeit aufheben, die diese lokalen Entscheidungen sicher gemacht hat.

Wichtige Erkenntnisse

  • Getrennte Komponenten können unabhängig gelöst und kombiniert werden.
  • Das Baumverfahren setzt zuerst unäre Einschränkungen durch und ordnet Elternknoten vor Kindern an.
  • Der Rückwärtsdurchlauf revidiert Kanten vom Elternknoten zum Kind und beschneidet Elternknoten.
  • Der Vorwärtsdurchlauf wählt vereinbare Werte ohne Backtracking.
  • Die übliche Zeitschranke für baumstrukturierte CSPs ist O(nd2).

5.2 Führe nahezu baumstrukturierte Probleme auf Bäume zurück

Ein Graph mit wenigen Zyklen kann einem Baum dennoch ähnlich genug sein, um effizient gelöst zu werden. Die Schnittmengenkonditionierung belegt zuerst ausgewählte Variablen; die Baumzerlegung fasst Variablen zu überlappenden Teilen zusammen. Beide machen die verbleibende Abstimmung baumförmig.

Auf eine Zyklenschnittmenge konditionieren

Eine Zyklenschnittmenge ist eine Menge von Variablen, deren Entfernung einen Baum oder Wald übrig lässt. Prüfe jeden verbleibenden Zyklus, nicht nur den auffälligsten. Auf der Australienkarte bleiben nach Entfernung von SA der Pfad WA–NT–Q–NSW–V und das isolierte T. Beim Workshop-Graphen bleibt nach Entfernung von C der Pfad B–A–D–E.

Für jede Belegung der Schnittmenge, die deren interne Constraints erfüllt:

  1. Entferne unvereinbare Werte aus den verbleibenden Wertebereichen.
  2. Löse jeden verbleibenden Baum durch Rückwärtsbeschneidung und Vorwärtsbelegung.
  3. Sind alle erfolgreich, kombiniere ihre Belegungen mit den Werten der Schnittmenge. Versuche andernfalls eine andere Belegung der Schnittmenge.

Im Workshop-Problem lässt C=1 einen lösbaren Baum übrig. Bei C=2 müssen A und B aus {1,3} stammen und A<B erzwingt A=1,B=3. D muss sowohl von A als auch von C verschieden sein, was D=3 ergibt. E kann nicht 1 sein und muss von C und D verschieden sein, sodass kein Wert bleibt. Bei C=3 müssen A und B die Werte 1 und 2 haben; D muss dann 2 sein, wodurch erneut kein Wert für E bleibt.

Bei Schnittmengengröße c gibt es höchstens dc Belegungen, auf die jeweils ein Baumproblem mit dem Aufwand O((n−c)d2) folgt. Insgesamt ergibt das O(dc(n−c)d2). Ein kleines c macht dies nützlich; der Aufwand bleibt exponentiell in c. Eine minimale Schnittmenge zu finden ist NP-schwer, aber auch eine gültige, nicht minimale Schnittmenge ergibt ein korrektes Verfahren.

Überlappende Mengen verbinden

Eine Baumzerlegung ordnet Variablenmengen, sogenannte Taschen, in einem Baum an. Sie muss drei Bedingungen erfüllen:

  • Jede Variable erscheint in einer Tasche.
  • Der Geltungsbereich jedes Constraints passt in mindestens eine Tasche.
  • Die Taschen, die eine bestimmte Variable enthalten, bilden einen zusammenhängenden Teil des Taschenbaums.

Die dritte Regel ist die Running-Intersection-Eigenschaft. Erscheint X an beiden Enden eines Taschenpfads, muss es auf dem gesamten Pfad erscheinen. Andernfalls könnten entfernte Taschen inkonsistente Werte für X wählen, ohne dass eine dazwischenliegende Übereinstimmungsprüfung stattfindet.

Die lokal gültigen Belegungen jeder Tasche werden zu Werten einer Mega-Variablen. Benachbarte Taschen müssen bei gemeinsamen Variablen übereinstimmen. Der resultierende Baum koordiniert die lokalen Lösungen. Für ein Dreieck X–Y–Z–X mit zusätzlicher Kante Z–W decken die Taschen {X,Y,Z} und {Z,W} jede Kante ab und stimmen bei Z überein.

Die Baumweite der Zerlegung ist ihre größte Taschengröße minus 1. Die Baumweite eines Graphen ist das Minimum über gültige Zerlegungen. Für die Weite w lautet die Standardschranke für CSPs O(ndw+1). Eine feste beschränkte Weite begrenzt den Exponenten.

Wertesymmetrie entfernen

Haben Farbnamen keine besondere Bedeutung, erhält eine Vertauschung von Rot, Grün und Blau die Gültigkeit. Die sechs Lösungen für das australische Festland sind sechs Umbenennungen eines Musters. Legt man die Reihenfolge NT vor SA vor WA in der Farbreihenfolge Rot, Grün, Blau fest, bleibt ein Repräsentant übrig. Ein solcher symmetriebrechender Constraint ist nur zulässig, wenn die Umbenennung die ursprünglichen Regeln erhält. Eine Regel, die für eine bestimmte Region Rot verlangt, macht diese Farbe besonders und verändert, welche Vertauschungen Symmetrien bleiben.

Wichtige Erkenntnisse

  • Eine Zyklenschnittmenge muss jeden Zyklus entfernen.
  • Die Konditionierung versucht Belegungen der Schnittmenge und löst den verbleibenden Wald.
  • Der Aufwand der Konditionierung wächst exponentiell mit der Größe der Schnittmenge.
  • Baumzerlegungen decken Variablen und Constraints ab und erfüllen die Running-Intersection-Eigenschaft.
  • Die Baumweite ist die maximale Taschengröße minus eins, für den Graphen minimiert über alle Zerlegungen.
  • Brich Wertesymmetrie nur für Umbenennungen, die die ursprünglichen Constraints erhalten.

Constraint-Erfüllungsprobleme: Beispiele

5 Interaktive Lektionen

1

Erstelle und prüfe ein CSP-Modell

13 Schritte
Modelliere Zeitpläne und Zuordnungen, untersuche die Geltungsbereiche von Constraints und prüfe, ob das Modell die tatsächlichen Regeln erhält.
  1. 1
    EinführungÜberführe eine Aufgabe in Wahlmöglichkeiten

    Ein Löser benötigt eine genaue Beschreibung dessen, was gewählt werden kann und welche Kombinationen funktionieren. Diese Beschreibung besteht aus Variablen mit Wertebereichen und Constraints, die jeweils einen Geltungsbereich von Variablen betreffen. Jeder Fehler darin wirkt sich auf jede Suche aus. Erstelle einen kleinen Zeitplan und vergleiche ihn dann mit Zuordnungs- und Rätselmodellen. Das Ziel ist, die Entscheidungen und ihre Abhängigkeiten sichtbar zu machen, bevor du die Aufgaben zu lösen versuchst.

  2. 2
    ErklärungBenenne jede Entscheidung

    A und B seien Workshop-Zeitfenster, jeweils aus {1,2,3}. A muss vor B stattfinden, also schreibe A<B. Die Variablen sind die gewählten Zeitfenster der Workshops; die Zahlen sind Werte.

    Der Geltungsbereich des Constraints ist A und B. Seine Relation erlaubt die Paare (1,2),(1,3),(2,3). Ein Löser kann entweder diese Tupelliste oder die Reihenfolgeregel verwenden, um einen Kandidaten zu prüfen.

  3. 3
    BeispielPrüfe eine mögliche Belegung

    Bei alleinigem A=2 ist die Belegung partiell und konsistent. Die Wahl B=1 vervollständigt sie, verletzt aber die Reihenfolgeregel. Die Wahl B=3 ergibt stattdessen eine vollständige, konsistente Belegung.

    Das sind getrennte Prüfungen: Jede Variable benötigt einen Wert aus ihrem Wertebereich und jeder Constraint muss erfüllt sein. Eine partielle Belegung kann die aktuellen Prüfungen bestehen und dennoch keine mögliche Vervollständigung zulassen.

  4. 4
    HerausforderungLässt sich die partielle Wahl vervollständigen?

    Drei Variablen X, Y und Z haben die Wertebereiche {1,2} und die Constraints X≠Y,Y≠Z,X≠Z. X wird der Wert 1 zugewiesen. Lässt sich diese konsistente partielle Belegung erweitern?

    ---reveal---

    Nein. X allein verletzt keinen Constraint. Die Vervollständigung erzwingt für Y und Z jeweils den Wert 2, was ihre Ungleichung verletzt. Aktuelle Konsistenz und mögliche Vervollständigung sind verschiedene Anforderungen.

  5. 5
    VerbindungLies Abhängigkeiten aus dem Graphen ab

    Ein binärer Constraint-Graph setzt an jede Variable einen Knoten und an jedes durch einen Constraint verbundene Paar eine Kante. Das Dreieck aus der Aufgabe zeigt drei miteinander wechselwirkende Wahlmöglichkeiten. Eine isolierte Variable hat keine binäre Abhängigkeit von einer anderen Variablen.

    Dieser Graph unterstützt spätere Verfahren: Beschneidung folgt den Kanten und getrennte Komponenten können unabhängig gelöst werden. Ein Constraint höherer Stelligkeit benötigt eine Darstellung seines gesamten Geltungsbereichs, etwa durch einen eigenen Constraint-Knoten.

  6. 6
    ErklärungOrdne die Regel ihrem Geltungsbereich zu

    Eine unäre Regel schränkt einen Wertebereich ein: E≠1 entfernt das früheste Zeitfenster für Ethik. Eine binäre Regel verbindet zwei Variablen: A<B ordnet Workshops zeitlich. Eine höherstellige Regel wie X+Y+Z=10 verbindet drei Wahlmöglichkeiten.

    Ein globaler Constraint gibt eine benannte Regel über eine Gruppe variabler Größe an. Alldiff verlangt, dass jeder Wert in seinem Geltungsbereich von jedem anderen verschieden ist.

  7. 7
    BeispielWarum Alldiff beibehalten?

    Drei Berichtsvariablen erlauben jeweils die Prüfenden 1 und 2. Jedem Paar können verschiedene Prüfende zugeordnet werden, aber drei Berichte können nicht drei verschiedene Prüfende aus einer Menge von zwei erhalten.

    Alldiff deckt diesen Mangel auf Gruppenebene auf. Seine Form mit paarweisen Ungleichungen hat dieselben Lösungen, doch getrennte paarweise Prüfungen können den Widerspruch übersehen. Die Repräsentation beeinflusst, welche Schlussfolgerungen ein Löser ziehen kann.

  8. 8
    HerausforderungAnforderung oder Präferenz?

    Ein Raumplan muss dafür sorgen, dass die Kapazität der Räume bei Besprechungen eingehalten wird. Eine organisierende Person bevorzugt einen Raum nahe dem Eingang, aber ein geeigneter Raum weiter entfernt ist verfügbar. Sollte die Wahl des weiter entfernten Raums den Plan unzulässig machen?

    ---reveal---

    Nein. Die Kapazität ist eine harte Anforderung, während der Standort eine weiche Präferenz ist. Der weiter entfernte Raum kann Präferenzkosten verursachen, ohne den Plan unzulässig zu machen. Für die Zulässigkeit muss weiterhin jede harte Regel erfüllt sein.

  9. 9
    BeispielModelliere den Workshop-Tag

    Verwende die Variablen A–E für Python-Grundlagen, Python für Fortgeschrittene, Statistik, Datenbanken und Ethik. Jede nimmt Zeitfenster 1, 2 oder 3 an.

    Gemeinsame Teilnehmende ergeben A≠C,A≠D,C≠D,B≠C,C≠E,D≠E. Grundlagen findet vor Fortgeschrittene statt, also A<B. Ethik kann nicht in Zeitfenster 1 stattfinden, also E≠1. Jede Regel verbindet genau die Entscheidungen, für die sie gilt.

  10. 10
    BeispielÜberprüfe den vollständigen Zeitplan

    Versuche A=2,B=3,C=1,D=3,E=2. Die sechs Paare mit gemeinsamen Teilnehmenden haben verschiedene Werte. Grundlagen findet vor Fortgeschrittene statt und Ethik liegt nicht am Vormittag. Jeder Workshop hat ein erlaubtes Zeitfenster, also ist dies eine Lösung.

    B und D teilen sich Zeitfenster 3. Das ist erlaubt, weil kein Constraint sie verbindet. Eine zusätzliche Regel, nach der alle Workshops verschieden sein müssen, würde diesen zulässigen Zeitplan verwerfen.

  11. 11
    ErklärungDrücke die Überschneidungsfreiheit korrekt aus

    Dauert Aufgabe X 20 Minuten und Aufgabe Y 35 Minuten, erlaubt ihre gemeinsam genutzte Maschine beide Reihenfolgen:

    SX+20≤SYoderSY+35≤SX.

    Jede Alternative vergleicht eine Endzeit mit der anderen Startzeit. „Und“ würde verlangen, dass beide Aufgaben mit positiver Dauer jeweils vor der anderen liegen. Verwende eine einzelne Vorrangbedingung nur, wenn die Aufgabenreihenfolge tatsächlich feststeht.

  12. 12
    HerausforderungErstelle ein Zuordnungsmodell

    Drei Berichte benötigen drei verschiedene Prüfende. Prüfer 2 hat bei Bericht A einen Interessenkonflikt. Welche Variablen, Wertebereiche und Constraints drücken die Aufgabe aus?

    ---reveal---

    Verwende eine Variable pro Bericht mit den Prüfenden 1–3 als Werten. Entferne 2 aus dem Wertebereich von A und wende Alldiff auf alle drei Berichte an. Das sind eine unäre Zulässigkeitseinschränkung und eine globale Regel für verschiedene Werte; das Modell gibt jedem Bericht genau eine prüfende Person.

  13. 13
    ZusammenfassungPrüfe das Modell vor der Suche

    Bestimme die Entscheidungen, liste ihre erlaubten Werte auf und formuliere die tatsächlichen Anforderungen über diese Werte. Prüfe einen zulässigen und einen unzulässigen Fall. Harte Regeln bestimmen die Zulässigkeit; Präferenzkosten steuern die Optimierung. Die Wahl der Variablen sollte diese Regeln leicht ausdrückbar machen.

2

Vollziehe Backtracking nach und verbessere es

14 Schritte
Verfolge rekursive Entscheidungen, wende die Reihenfolge von Variablen und Werten an und nutze Konflikterklärungen, um wiederholten erfolglosen Aufwand zu vermeiden.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungErstelle eine Lösung Schritt für Schritt
  2. 2
    KernaussageEine nächste Variable genügt
  3. 3
    BeispielBeginne die Suche mit fester Reihenfolge
  4. 4
    BeispielErkenne die Sackgasse
  5. 5
    HerausforderungWelcher Aufruf versucht einen anderen Wert?
  6. 6
    ErklärungWähle die Variable, bei der ein Fehlschlag wahrscheinlich ist
  7. 7
    BeispielLass die Wertebereiche die Workshop-Reihenfolge bestimmen
  8. 8
    KernaussageHalte bei der Wertwahl Möglichkeiten offen
  9. 9
    HerausforderungWähle nach der Variablen einen Wert
  10. 10
    BeispielÜberspringe eine unbeteiligte Entscheidung
  11. 11
    ErklärungTrage Ursachen durch die Suche zurück
  12. 12
    BeispielLerne eine gescheiterte Kombination
  13. 13
    HerausforderungStimme Reihenfolge und Lernen aufeinander ab
  14. 14
    ZusammenfassungUnterscheide die Verbesserungen der Suche
3

Vollziehe die Beschneidung von einer Entscheidung bis zum Gruppenkonflikt nach

17 Schritte
Verfolge Forward Checking, AC-3, MAC und stärkere Propagation einschließlich der Grenzen jeder Schlussfolgerungsstufe.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungVerfolge die Folgen einer Änderung des Wertebereichs
  2. 2
    ErklärungBeschneide unmittelbare Nachbarn
  3. 3
    BeispielBeobachte die übersehene Wechselwirkung
  4. 4
    HerausforderungStelle genau die richtigen Werte wieder her
  5. 5
    ErklärungUnterstützung wird vom Ausgangs- zum Zielknoten geprüft
  6. 6
    BeispielBeginne eine Kette von Folgen
  7. 7
    BeispielStelle die Kantenkonsistenz vollständig her
  8. 8
    TippReihe Kanten ein, die Unterstützung verlieren können
  9. 9
    HerausforderungWas bedeuten nicht leere Wertebereiche nach Abschluss?
  10. 10
    VerbindungErhalte die Konsistenz während der Suche aufrecht
  11. 11
    ErklärungPrüfe ein Paar anhand einer dritten Variablen
  12. 12
    KernaussageWarum starke Konsistenz wichtig ist
  13. 13
    BeispielReserviere ein Wertepaar
  14. 14
    BeispielPropagiere numerische Schranken in beide Richtungen
  15. 15
    HerausforderungErkenne einen Mangel in der Gruppe
  16. 16
    HerausforderungWähle die Schlussfolgerung, die den Fehlschlag erklärt
  17. 17
    ZusammenfassungLies jede Garantie genau
4

Repariere ein Brett und verlasse ein Plateau

11 Schritte
Führe die Min-Konflikte-Heuristik aus, verfolge einen Seitwärtsschritt und wähle ein Verfahren, das den erforderlichen Nachweis der Lösbarkeit liefert.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungRepariere einen vollständigen Kandidaten
  2. 2
    ErklärungWähle eine konfliktbehaftete Variable
  3. 3
    BeispielFinde Angriffe auf dem Brett
  4. 4
    BeispielBewerte die möglichen Zeilen einer Dame
  5. 5
    HerausforderungIgnoriere den konstanten Hintergrund
  6. 6
    BeispielErreiche einen Zustand ohne verbessernden Zug
  7. 7
    BeispielErmögliche eine Reparatur durch einen Seitwärtsschritt
  8. 8
    TippStimme das Verfahren zum Entkommen auf das Hindernis ab
  9. 9
    HerausforderungWähle einen Löser für die Entscheidung über Unlösbarkeit
  10. 10
    VerbindungRepariere und begrenze dabei die Änderungen am Plan
  11. 11
    ZusammenfassungBeurteile das Ergebnis der Reparatur
5

Löse Bäume und beherrsche die verbleibenden Zyklen

15 Schritte
Vollziehe das Lösen von Komponenten, Baumdurchläufe, Versuche mit Schnittmengen und die Anforderungen an eine gültige Baumzerlegung nach.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungNutze den Graphen, um den Aufwand zu verringern
  2. 2
    ErklärungLöse unabhängige Komponenten getrennt
  3. 3
    ErklärungLege die Baumreihenfolge fest
  4. 4
    BeispielBeschneide den Workshop-Baum rückwärts
  5. 5
    BeispielWeise die verbliebenen Werte vorwärts zu
  6. 6
    HerausforderungErkenne eine umgekehrte Kante
  7. 7
    ErklärungBrich jeden Zyklus mit einer Schnittmenge
  8. 8
    BeispielVersuche die Workshop-Schnittmenge
  9. 9
    KernaussageKleine Schnittmengen begrenzen den Exponenten
  10. 10
    ErklärungErsetze Zyklen durch überlappende Taschen
  11. 11
    HerausforderungPrüfe den Taschenpfad
  12. 12
    VerbindungLies den Aufwand an der Taschengröße ab
  13. 13
    VerbindungEntferne austauschbare Farbnamen
  14. 14
    HerausforderungKombiniere eine Schnittmenge mit der Baumgarantie
  15. 15
    ZusammenfassungPrüfe die strukturelle Bedingung

Constraint-Erfüllungsprobleme: Übungsaufgaben

40 Übungsfragen in 4 Sets

Set 1: Modelliere Wahlmöglichkeiten und vollziehe die Grundalgorithmen nach10 Übungsfragen

Frage 1 von 10

Drei Lieferaufträge J, K und L nehmen jeweils einen Wert aus {1,2} an. Der einzige Constraint ist J≠K. Wie ist die Belegung J=1,K=2 einzuordnen?
  1. Vollständig und konsistent
  2. Partiell und konsistent
  3. Partiell und inkonsistent
  4. Vollständig und inkonsistent
Antwort zeigenAntwort ausblenden
Antwort: B
Die zugewiesenen Werte erfüllen den einzigen Constraint, daher ist die Belegung konsistent. L hat noch keinen Wert, wodurch die Belegung partiell ist. Alle Constraints zu erfüllen, deren Variablen belegt sind, macht eine partielle Belegung nicht vollständig.

Frage 2 von 10

Vier Sensorkanäle müssen alle verschiedene Frequenzen verwenden. Wie viele paarweise Ungleichungen drücken dieselbe Anforderung aus wie Alldiff für diese vier Variablen?
  1. 4
  2. 8
  3. 12
  4. 6
Antwort zeigenAntwort ausblenden
Antwort: D
Jede der vier Variablen muss von jeder der anderen drei verschieden sein, doch beim Zählen in beiden Richtungen wird jedes Paar doppelt gezählt. Insgesamt ergibt sich daher vier mal drei geteilt durch zwei, also sechs. Vier Ungleichungen würden zu wenige Paare prüfen, um die gesamte Anforderung durchzusetzen.

Frage 3 von 10

Die Tests U und V benötigen dasselbe Gerät für 12 beziehungsweise 18 Minuten. Ihre nichtnegativen Startzeiten sind SU und SV. Welcher Constraint erlaubt beide Reihenfolgen und verhindert zugleich eine Überschneidung?
  1. SU+12≤SV oder SV+18≤SU
  2. SU+12≤SV und SV+18≤SU
  3. SU+18≤SV oder SV+12≤SU
  4. SU+12≤SV oder SV+12≤SU
Antwort zeigenAntwort ausblenden
Antwort: A
Überschneidungsfreiheit erlaubt, dass U endet, bevor V beginnt, oder V endet, bevor U beginnt. Jede Endzeit verwendet die Dauer der jeweiligen Aufgabe. Würde man die beiden Reihenfolgen mit „und“ verbinden, müsste jeder Test mit positiver Dauer enden, bevor der andere beginnt. Das würde das Modell unlösbar machen.

Frage 4 von 10

Ein CSP-Löser mit Tiefensuche versucht P=2, untersucht jede konsistente Fortsetzung und stellt fest, dass alle scheitern. P hat außerdem den noch nicht versuchten Wert 4. Was sollte der Löser als Nächstes tun?
  1. P = 2 behalten, Kinder erneut versuchen
  2. P zurücksetzen und Fehlschlag melden
  3. P = 2 zurücksetzen und P = 4 versuchen
  4. Alles zurücksetzen und Suche neu starten
Antwort zeigenAntwort ausblenden
Antwort: C
Das Scheitern jeder Fortsetzung unter P = 2 verwirft diesen Zweig. Daher entfernt der Löser die Wahl und versucht P = 4. Würde er bei P sofort einen Fehlschlag zurückgeben, überspränge er einen unversuchten Wert. Die früheren Belegungen bleiben bestehen, solange P nicht schließlich seinen gesamten Wertebereich ausschöpft.

Frage 5 von 10

Unbelegte Variablen haben die Wertebereiche DH={1,4}, DJ={2} und DK={1,2}. H hat vier unbelegte Nachbarn, J einen und K drei. Welche Variable kommt bei MRV mit der Gradheuristik zur Auflösung von Gleichständen als Nächstes?
  1. J
  2. H
  3. K
  4. H oder K
Antwort zeigenAntwort ausblenden
Antwort: A
J hat einen verbliebenen Wert, während H und K jeweils zwei haben. Daher wählt MRV J. Die Gradheuristik wird nur verwendet, wenn die kleinsten Wertebereiche gleich groß sind. H wegen seiner meisten unbelegten Nachbarn zu wählen würde die Priorität der beiden Heuristiken umkehren.

Frage 6 von 10

Es gelte DM={1,2,3,4} und DN={2,3,4} mit M<N. Welchen Wertebereich lässt Forward Checking nach der Belegung M=3 für N übrig?
  1. {2,4}
  2. {3,4}
  3. {4}
  4. {2,3}
Antwort zeigenAntwort ausblenden
Antwort: C
N muss größer als der zugewiesene Wert 3 sein, daher bleibt nur 4. Würde nur der gleiche Wert 3 entfernt, bliebe 2 übrig, was ebenfalls die Reihenfolgeregel verletzt. Forward Checking wendet die tatsächliche binäre Relation an, sei es eine Ungleichheit, eine Vorrangbedingung oder eine andere Bedingung.

Frage 7 von 10

Für X+Y+Z=7 enthält eine Hilfsvariable U alle erlaubten Tripel und ist durch Constraints zur Gleichheit der Komponenten mit X, Y und Z verbunden. Welche Werte sind bei U=(1,4,2) erforderlich?
  1. X=4,Y=2,Z=1
  2. X=1,Y=2,Z=4
  3. X=1,Y=4,Z=2
  4. X=2,Y=4,Z=1
Antwort zeigenAntwort ausblenden
Antwort: C
Die erste, zweite und dritte Komponente von U sind durch Constraints in dieser Reihenfolge gleich X, Y und Z gesetzt. Das gewählte Tupel verlangt somit entsprechend 1, 4 und 2. Eine andere Anordnung kann ebenfalls die Summe 7 ergeben, ist aber mit diesem bestimmten Wert der Hilfsvariablen unvereinbar.

Frage 8 von 10

Eine vollständige Belegung hat vier verletzte Constraints. Eine gewählte Variable R ist an einem davon beteiligt. Die möglichen Werte a, b und c ergeben für R die Konfliktzahlen 2, 0 beziehungsweise 1. Welchen Wert wählt die Min-Konflikte-Heuristik?
  1. a
  2. c
  3. a oder c
  4. b
Antwort zeigenAntwort ausblenden
Antwort: D
Die Min-Konflikte-Heuristik vergleicht die Verletzungen, an denen R beteiligt ist, während die anderen Variablen fest bleiben. Daher gewinnt b mit null. Die drei unbeteiligten Verletzungen tragen zu jedem resultierenden Zustand denselben Betrag bei. Wer c wählt, weil es die Gesamtzahl scheinbar nur um eins senkt, verwechselt die lokale Bewertung mit diesem konstanten Hintergrund.

Frage 9 von 10

Ein binärer Constraint-Graph hat die Komponenten {U,V} und {W,Z} ohne Kante zwischen ihnen. Jede Komponente hat eine Lösung. Wie lässt sich eine Lösung des gesamten CSP bilden?
  1. Nur die Lösung einer Komponente nutzen
  2. Je eine Lösung der Komponenten kombinieren
  3. Übereinstimmende Werte zwischen Komponenten verlangen
  4. Beiden Komponenten dieselben Werte zuweisen
Antwort zeigenAntwort ausblenden
Antwort: B
Kein Constraint verbindet die Komponenten. Daher erfüllt die Kombination einer beliebigen Lösung der ersten mit einer beliebigen Lösung der zweiten jede Regel. Übereinstimmende Werte zu verlangen würde eine im Modell nicht vorhandene Einschränkung hinzufügen. Dank der Unabhängigkeit kann jede Komponente ihre eigene gültige Belegung wählen.

Frage 10 von 10

Ein Graph hat die Kanten P–Q, Q–R, R–S, S–P, R–T, T–U und U–R. Auf eine Variable wird konditioniert, sodass ein azyklischer Graph übrig bleibt. Welche Schnittmenge aus einer Variablen funktioniert?
  1. R
  2. P
  3. T
  4. Q
Antwort zeigenAntwort ausblenden
Antwort: A
Das Entfernen von R bricht sowohl den Zyklus mit vier Knoten als auch das Dreieck und lässt den Pfad Q–P–S sowie die getrennte Kante T–U übrig. Das Entfernen von P oder Q bricht nur den Zyklus mit vier Knoten und lässt R–T–U–R bestehen. Eine Zyklenschnittmenge muss jeden Zyklus im Graphen beseitigen.
Set 2: Vollziehe Propagation nach und analysiere gescheiterte Suchen10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Die Variablen P, Q und R haben die Wertebereiche DP=DQ={1,2} und DR={1}. Die Regeln lauten P≠Q und Q≠R. Was geschieht, wenn die partielle Belegung P=1 erweitert wird?
  1. Q muss 2 sein, also funktioniert R = 1
  2. Q muss 1 sein, was mit P kollidiert
  3. Q und R müssen beide 2 sein
  4. P muss 2 sein, weil R den Wert 1 hat
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Für X<Y gelte DX={2,5} und DY={3,4}. Was geschieht, wenn die Kante X→Y revidiert wird?
  1. Y verliert 3; X bleibt unverändert
  2. X verliert 2; Y bleibt unverändert
  3. X verliert 5; Y bleibt unverändert
  4. Y verliert 4; X bleibt unverändert
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Vier Variablen haben jeweils drei Werte. Eine Suche verzweigt über jede unbelegte Variable und jeden Wert, bis vollständige Belegungen erreicht sind. Um welchen Faktor verringert die Wahl einer Variablen pro Ebene die Anzahl der Blätter vor der Beschneidung durch Constraints?
  1. 4
  2. 12
  3. 81
  4. 24
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Die Belegungsreihenfolge ist A, B, C, D, E, F. F hat keinen zulässigen Wert und seine Konfliktmenge ist {A,C}. Wohin kehrt einfaches Backjumping zurück?
  1. A
  2. C
  3. D
  4. E
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Es gelte DU=DV=DW={2,5,8} mit U<V und V<W. Welche Wertebereiche bleiben nach Abschluss von AC-3?
  1. DU={2,5},DV={5},DW={5,8}
  2. DU={2},DV={5},DW={8}
  3. DU={2,5},DV={5,8},DW={2,5,8}
  4. DU={2},DV={2,5},DW={5,8}
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Drei verschiedene Zugangscodes erfüllen Alldiff⁡(H,J,K), wobei DH=DJ={2,8} und DK={2,5,8} gilt. Was erzwingt die globale Propagation für K?
  1. 5
  2. 2
  3. 8
  4. 2 oder 8
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Ein Reparaturdurchlauf wählt die Variable T. Ihre möglichen Werte haben die lokalen Verletzungszahlen 1, 3 und 2, während vier verletzte Constraints T nicht betreffen. Wie lauten die Gesamtzahlen der Verletzungen in den drei resultierenden Zuständen?
  1. 1, 3, 2
  2. 4, 4, 4
  3. 5, 7, 6
  4. 4, 12, 8
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Ein Löser wechselt wiederholt zwischen zwei Belegungen, die jeweils einen Constraint verletzen. Welche Änderung erschwert unmittelbar die sofortige Rückkehr zur gerade verlassenen Belegung?
  1. Immer dieselbe konfliktbehaftete Variable wählen
  2. Nur Schritte mit gleicher Bewertung zulassen
  3. Mit derselben Anfangsbelegung neu starten
  4. Eine kurze Tabuliste zuletzt besuchter Zustände führen
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Ein Baum mit Wurzel ist der Pfad R–S–T–W mit der Reihenfolge R, S, T, W und den Constraints R<S,S<T,T<W. Die Wertebereiche sind DR={1,2,3},DS={2,3,4},DT={3,4},DW={4}. Welche Wertebereiche bleiben nach dem Rückwärtsdurchlauf?
  1. DR={1},DS={2},DT={3},DW={4}
  2. DR={1,2},DS={2,3},DT={3},DW={4}
  3. DR={1},DS={2,3},DT={3,4},DW={4}
  4. DR={1,2,3},DS={2},DT={3},DW={4}
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Die Taschen {A,B,C}, {C,D} und {A,D} bilden einen Pfad, der den Zyklus A–B–C–D–A abdeckt. Die äußeren Taschen bleiben unverändert. Was ist die kleinste Änderung an der mittleren Tasche, die die Zerlegung gültig macht, und welche Weite ergibt sich?
  1. C durch A ersetzen; Weite 2
  2. A zur mittleren Tasche hinzufügen; Weite 2
  3. D aus der mittleren Tasche entfernen; Weite 2
  4. Eine eigene Endtasche {A} hinzufügen; Weite 2
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Set 3: Kombiniere Entscheidungen, Schlussfolgerungen und Reparatur10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Die Bearbeitung dauert 16 Minuten, danach folgt eine Prüfung von 24 Minuten und anschließend das Verpacken von 10 Minuten. Alle Startzeiten sind nichtnegative ganze Minuten, Wartezeiten sind erlaubt, und das Verpacken muss bis Minute 80 beendet sein. Wie lauten die engstmöglichen Startzeitfenster in dieser Reihenfolge?
  1. [0;64], [16;56], [40;70]
  2. [0;30], [16;40], [40;70]
  3. [0;30], [16;46], [40;70]
  4. [0;40], [16;56], [40;80]
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Unbelegte Variablen haben DA=DB={1,2} und DC={1,2,3}. Die Regeln lauten A≠B und A<C. Verwende MRV, die Gradheuristik bei Gleichstand und LCV. Welche Variable und welcher Wert werden gewählt?
  1. B = 1
  2. A = 2
  3. C = 3
  4. A = 1
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Die Belegungsreihenfolge ist L, M, N, P, Q. Q scheitert mit der Konfliktmenge {L,N} und springt zu N, dessen aktuelle Konfliktmenge {M} ist. N schöpft dann seine Werte aus, ohne dass neue Konfliktursachen hinzukommen. Wohin kehrt konfliktgesteuertes Backjumping als Nächstes zurück?
  1. M
  2. L
  3. P
  4. Q
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Es gelte DA=DB=DC={1,2,3} mit A≠B,A≠C,B≠C. Forward Checking folgt auf A=1 und dann auf B=2. Welche Wertebereiche müssen B und C haben, bevor der nächste Wert für B versucht wird, wenn die Belegung von B rückgängig gemacht wird und A belegt bleibt?
  1. DB={1,2,3},DC={1,2,3}
  2. DB={2,3},DC={2,3}
  3. DB={2,3},DC={3}
  4. DB={2},DC={2,3}
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Ein binäres CSP hat die Wertebereiche DP={1,2}, DQ={1,2} und DR={2,3} mit P≠Q,Q<R,P=R. Was geschieht, wenn AC-3 vollständig ausgeführt wird?
  1. Es lässt P = 1, Q = 2, R = 3 übrig
  2. Es findet einen leeren Wertebereich
  3. Es lässt jeden Wertebereich unverändert
  4. Es lässt P = 2, Q = 1, R = 2 übrig
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Zwei ganzzahlige Größen erfüllen U+V=68, wobei U∈[0;30] und V∈[0;50] gilt. Eine neue Kapazitätsregel senkt das Maximum von V auf 42. Wie lauten nach der Schrankenpropagation die engstmöglichen Intervalle?
  1. U∈[26;30], V∈[38;42]
  2. U∈[18;30], V∈[38;42]
  3. U∈[26;30], V∈[26;42]
  4. U∈[26;38], V∈[30;42]
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Eine vollständige Belegung erfüllt jede bisherige Ablaufplanungsregel. Ein neuer Verfügbarkeits-Constraint erzeugt Konflikte. Die organisierende Person verlangt unter den zulässigen Reparaturen diejenige mit den wenigsten geänderten Belegungen. Was muss das Reparaturziel enthalten?
  1. Nur die Anzahl verletzter Constraints
  2. Kosten für die Änderung jeder Belegung
  3. Nur die Größe jedes Wertebereichs
  4. Eine feste Reihenfolge der Variablenwahl
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Die Constraints a, b und c haben die Gewichte 4, 2 und 1. Drei mögliche Schritte lassen jeweils die Verletzungen {a}, {b,c} und {c} übrig. Welche Gewichte ergeben sich, nachdem das Ergebnis mit dem niedrigsten Gewicht gewählt und das Gewicht jedes weiterhin verletzten Constraints um 1 erhöht wurde?
  1. 5, 2, 1
  2. 4, 3, 2
  3. 4, 2, 2
  4. 5, 3, 2
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Ein CSP hat 24 binärwertige Variablen, die in sechs unabhängige Gruppen zu je vier aufgeteilt sind. Wie viele vollständige Gruppenbelegungen würden getrennte erschöpfende Suchen höchstens untersuchen, um die Gruppen zu lösen?
  1. 16
  2. 64
  3. 96
  4. 256
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Vier binärwertige Variablen haben die Regeln A=B,B≠C,C=D,A≠D. Wie viele vollständige Belegungen erfüllen alle vier Regeln?
  1. 2
  2. 0
  3. 4
  4. 8
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Set 4: Übertrage die Verfahren auf neue Constraint-Muster10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Ein Graph hat die Kanten A–B, B–C, C–A, C–D, D–E und E–C. Zwei vorgeschlagene Taschen {A,B,C} und {C,D,E} sind durch eine Kante verbunden. Ist diese Zerlegung bei höchstens fünf Werten pro Variable gültig, und welche Weite und Standardschranke ergibt sie?
  1. Ungültig; die zwei Vorkommen von C verhindern eine Baumzerlegung
  2. Gültig, Weite 2, mit Schranke O(n53)
  3. Gültig, Weite 2, mit Schranke O(n52)
  4. Gültig, Weite 3, mit Schranke O(n53)
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Ein Dienstplan muss jede erforderliche Schicht abdecken und sollte für eine Arbeitskraft vorzugsweise Spätdienste vermeiden. Die Präferenz dieser Person ist der einzige weiche Constraint. Was macht einen Dienstplan zulässig?
  1. Er minimiert allein die Spätdienste
  2. Er erfüllt die meisten harten Regeln
  3. Er hat Präferenzkosten von null
  4. Er erfüllt jede harte Regel
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Ein Modell für das 5-Damen-Problem verwendet die Zeilenvariablen Q1–Q5, eine pro Spalte. Eine lernende Person schlägt den Kandidaten (1,3,5,2,4) vor und sagt, ein zweiter Constraint für eine Dame pro Spalte sei noch nötig. Welche Beurteilung ist richtig?
  1. Der Kandidat ist gültig; die Spalten sind bereits sichergestellt
  2. Der Kandidat scheitert; die Damen in Spalte 1 und 3 greifen sich an
  3. Der Kandidat scheitert; die Damen in Spalte 2 und 5 greifen sich an
  4. Der Kandidat ist gültig; Zeilenungleichungen erzwingen die Spalten
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Ein Backtracking-Löser für endliche Wertebereiche hat jeden Zweig untersucht und einen Fehlschlag zurückgegeben. Ein Min-Konflikte-Löser hielt nach 2.000 Schritten ohne Erfolg an. Welche Schlussfolgerung ist für den jeweiligen Durchlauf gerechtfertigt?
  1. Beide Durchläufe belegen Unlösbarkeit, weil sie keine Lösung fanden
  2. Beide Durchläufe lassen die Lösbarkeit offen, weil sie scheiterten
  3. Backtracking belegt Unlösbarkeit; lokale Suche lässt sie offen
  4. Lokale Suche belegt Unlösbarkeit; Backtracking lässt sie offen
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Die unbelegten Variablen X und Y haben jeweils zwei zulässige Werte; Z hat drei. X hat einen unbelegten Nachbarn und Y zwei. Die möglichen Werte von Y entfernen jeweils 3 beziehungsweise 1 Wert aus benachbarten Wertebereichen. Was wird mit MRV, Gradheuristik und LCV gewählt?
  1. Der erste Wert von X
  2. Der zweite Wert von Y
  3. Der erste Wert von Y
  4. Der zweite Wert von Z
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Die Variablen P, Q und R haben den Wertebereich {1,2} und die Constraints P≠R,Q≠R. U ist unabhängig. Ein Zweig mit P=1,Q=2,U=1 scheitert. Welche Einschränkung für Q lässt sich in einem späteren Zweig mit P=1,U=2 durch Lernen aus diesem Fehlschlag begründen?
  1. Q = 2 verwerfen, solange P = 1 gilt
  2. Q = 1 verwerfen, solange P = 1 gilt
  3. Q = 2 in jedem Zweig verwerfen
  4. Nach Änderung von U beide Werte für Q zulassen
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Vor einer Entscheidung haben die unbelegten Variablen Y und Z die Wertebereiche {2,6} und müssen verschieden sein. Die Belegung von X entfernt über die Constraints X–Y und X–Z die 6 aus beiden Wertebereichen. Was meldet gewöhnliches Forward Checking unmittelbar?
  1. Einen leeren Wertebereich, weil Y und Z verschieden sein müssen
  2. Keine Beschneidung, weil Y und Z unbelegt sind
  3. Eine Lösung, weil alle verbleibenden Werte feststehen
  4. Noch keinen leeren Wertebereich; Y und Z behalten beide 2
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Es gelte DA={1,2,3}, DB={2,3} und DC={2} mit A<B und B≠C. Wie lauten die endgültigen Wertebereiche nach AC-3?
  1. DA={1},DB={3},DC={2}
  2. DA={1,2},DB={2,3},DC={2}
  3. DA={1,2},DB={3},DC={2}
  4. DA={1,2,3},DB={3},DC={2}
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Vier Variablen müssen alle verschieden sein. Ihre Wertebereiche sind DJ=DK={1,4}, DL={1,4,7} und DM={4,7,9}. Was erzwingt vollständige Alldiff-Propagation?
  1. L=1,M=7
  2. L=7,M=9
  3. L=7,M∈{4,9}
  4. L∈{1,7},M=9
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Ein Plan hat 6 Verletzungen. Seine verfügbaren Änderungen einzelner Variablen führen zu Bewertungen von 6, 7 und 8. Der Schritt mit Bewertung 6 erreicht einen Zustand, von dem aus ein Schritt mit Bewertung 4 möglich ist. Welches Suchverhalten kann Bewertung 4 erreichen, ohne die Verletzungen zunächst zu erhöhen?
  1. Einen Seitwärtsschritt und dann eine Verbesserung zulassen
  2. Bei jedem einzelnen Schritt eine strikte Abnahme verlangen
  3. Einen schlechteren Schritt und dann eine Verbesserung zulassen
  4. Constraint-Gewichte ändern, aber den Zustand festhalten
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Hängst du bei deiner eigenen Aufgabe fest? Hausaufgabenhilfe

Schlüsselbegriffe

73 Schlüsselbegriffe, jeweils mit Definition

A

AC-3
AC-3 ist ein Algorithmus mit Warteschlange, der wiederholt gerichtete Kanten revidiert und Nachbarn erneut prüft, die von Verkleinerungen der Wertebereiche betroffen sind.
Nachdem X Werte verloren hat, werden eingehende Kanten von seinen anderen Nachbarn in die Warteschlange gelegt, weil deren Unterstützungen verschwunden sein könnten.
Alldiff
Alldiff ist ein globaler Constraint, der verlangt, dass alle Variablen in seinem Geltungsbereich paarweise verschiedene Werte aus ihren Wertebereichen annehmen.
Werden drei Berichte über Alldiff zugeordnet, kann keine prüfende Person mehr als einen dieser Berichte erhalten.
Am wenigsten einschränkender Wert
Der am wenigsten einschränkende Wert wird zuerst versucht: Er entfernt die wenigsten Wahlmöglichkeiten aus benachbarten unbelegten Wertebereichen.
Eine Raumwahl, die den einzigen geeigneten Raum für eine andere Besprechung erhält, wird vor einer Wahl versucht, die ihn wegnimmt.
Aufrechterhaltung der Kantenkonsistenz
Die Aufrechterhaltung der Kantenkonsistenz, kurz MAC, setzt nach jeder Entscheidung innerhalb der Backtracking-Suche Kantenkonsistenz durch und stellt Wertebereiche beim Rückgängigmachen wieder her.
Die Folgen einer Entscheidung können sich durch mehrere unbelegte Veranstaltungen fortpflanzen, bevor die nächste Variable gewählt wird.

Ä

Änderungsprotokoll
Ein Änderungsprotokoll hält durch Suchentscheidungen verursachte Entfernungen aus Wertebereichen fest, damit der Löser beim Backtracking die richtigen Werte wiederherstellen kann.
Das Rückgängigmachen einer späteren Entscheidung stellt die von ihr entfernten Werte wieder her und behält jene Entfernungen bei, die eine frühere Belegung verlangt.

B

Backjumping
Backjumping kehrt von einer gescheiterten Variablen zum zuletzt belegten Mitglied ihrer Konfliktmenge zurück und überspringt unbeteiligte Entscheidungen.
Bei einem Fehlschlag der Festlandfärbung kann der Löser die erneute Betrachtung einer Insel ohne Constraint-Kanten überspringen.
Backtracking-Suche
Die Backtracking-Suche ist eine Tiefensuche, die jeweils eine Variable belegt und Entscheidungen rückgängig macht, wenn ihre Fortsetzungen scheitern.
Wenn kein Zeitfenster für die letzte Veranstaltung funktioniert, kehrt der Löser zu einer früheren Veranstaltung zurück und versucht ein anderes Zeitfenster.
Baumstrukturiertes CSP
Ein baumstrukturiertes CSP ist ein binäres CSP mit einem azyklischen Constraint-Graphen, der eine Rückwärtsbeschneidung mit anschließender Vorwärtsbelegung ermöglicht.
Sobald eine Workshop-Variable festgelegt ist, bildet der verbleibende Workshop-Graph den Pfad B–A–D–E, der durch Baumdurchläufe gelöst werden kann.
Baumweite
Die Baumweite eines Graphen ist die kleinstmögliche Größe der größten Tasche minus eins über alle gültigen Baumzerlegungen dieses Graphen.
Eine Zerlegung mit Taschen von höchstens drei Variablen zeigt, dass die Baumweite des Graphen höchstens zwei beträgt.
Baumzerlegung
Eine Baumzerlegung ordnet überlappende Variablentaschen in einem Baum an, deckt dabei alle Variablen und Constraints ab und erhält zusammenhängende Vorkommen von Variablen.
Zwei Taschen mit einer gemeinsamen Variablen können ihre lokalen Lösungen abstimmen, indem sie beim Wert dieser Variablen übereinstimmen.
Binärer Constraint
Ein binärer Constraint schränkt erlaubte Wertekombinationen für zwei Variablen ein, etwa ihre Reihenfolge oder ob ihre Werte verschieden sind.
Zwei Tests, die dieselbe technische Fachkraft benötigen, brauchen eine binäre Regel, die eine Überschneidung ihrer Ausführungszeiten verhindert.

C

Chronologisches Backtracking
Chronologisches Backtracking kehrt von einer Sackgasse zur zuletzt belegten Variablen zurück, unabhängig von der Ursache des Fehlschlags.
Bei der Kartenfärbung kann ein Löser die Farbe einer unabhängigen Region erneut betrachten, bevor er zu der Wahl zurückkehrt, die einen Konflikt verursacht hat.
Constraint höherer Stelligkeit
Ein Constraint höherer Stelligkeit schränkt eine Wertekombination ein, die mindestens drei Variablen innerhalb derselben Relation betrifft.
Eine Regel, nach der drei Aufgabendauern zusammen zehn Stunden ergeben müssen, verbindet alle drei Dauervariablen.
Constraint-Erfüllungsproblem
Ein Constraint-Erfüllungsproblem weist Variablen Werte aus ihren Wertebereichen zu und verlangt dabei, dass jeder Constraint erfüllt ist.
Ein Zeitplan-CSP wählt für jeden Workshop ein Zeitfenster und setzt dabei Regeln zur Teilnahme und zur Verfügbarkeit der Lehrkräfte durch.
Constraint-Gewichtung
Die Constraint-Gewichtung erhöht die Strafkosten weiterhin verletzter Constraints und verändert so die Bewertungen, anhand derer spätere Reparaturen gewählt werden.
Ein wiederholt ungelöster Konflikt wird teurer und lenkt spätere Schritte auf seine Behebung.
Constraint-Graph
Ein Constraint-Graph stellt Variablen als Knoten dar und verbindet zwei Knoten, wenn ihre Variablen einen binären Constraint teilen.
In einem Graphen zur Kartenfärbung zeigt ein isolierter Inselknoten, dass seine Farbe unabhängig von den verbundenen Regionen des Festlands gewählt werden kann.
Constraint-Lernen
Constraint-Lernen hält logische Folgen von Suchfehlschlägen als Einschränkungen oder zwischengespeicherte Nogoods fest, damit sie nicht erneut entdeckt werden müssen.
Ein späterer Zweig kann eine gelernte unmögliche Farbkombination auch dann verwerfen, wenn unbeteiligte Entscheidungen geändert wurden.
Constraint-Optimierungsproblem
Ein Constraint-Optimierungsproblem sucht eine zulässige Belegung mit dem besten Zielfunktionswert, etwa den niedrigsten gesamten Präferenzkosten.
Ein Verfahren zur Optimierung von Dienstplänen kann jede erforderliche Schicht abdecken und zugleich die Kosten unerwünschter Arbeitszeiten minimieren.
Constraint-Relation
Eine Constraint-Relation ist die Menge der erlaubten Wertekombinationen für die Variablen im Geltungsbereich eines Constraints, ausgedrückt als Tupel oder Regel.
Die Relation für eine Regel zur zeitlichen Reihenfolge kann erlaubte Zeitfensterpaare wie (1,2) und (1,3) auflisten.

D

Disjunktiver Constraint
Ein disjunktiver Constraint verlangt, dass mindestens eine alternative Relation gilt, etwa eine von zwei möglichen Reihenfolgen ohne Überschneidung.
Zwei Aufgaben auf einer Maschine können X vor Y oder Y vor X ausführen, sofern sich ihre Ausführungsintervalle nicht überschneiden.

F

Fail-First-Prinzip
Das Fail-First-Prinzip bevorzugt eine frühe Entscheidung, die wahrscheinlich eine Sackgasse aufdeckt, damit die Suche keine lange Fortsetzung aufbaut, die ohnehin scheitert.
MRV prüft den nahezu erschöpften Wertebereich einer Veranstaltung früh, während viele andere Planungsentscheidungen noch unbelegt sind.
Faktorisiertes Modell
Ein faktorisiertes Modell stellt einen Zustand durch getrennte Variablen und Werte dar und ermöglicht einem Löser, Constraints zwischen Wahlmöglichkeiten zu untersuchen.
Die Zeile einer Dame kann geändert werden, ohne eine Beschreibung jedes Feldes auf dem Schachbrett neu zu erstellen.
Forward Checking
Forward Checking entfernt Werte aus den Wertebereichen unbelegter Nachbarn, wenn sie mit dem gewählten Wert der neu belegten Variablen in Konflikt stehen.
Wird einem Test Zeitfenster 2 zugewiesen, entfernt das Verfahren Zeitfenster 2 aus dem Wertebereich eines anderen Tests mit derselben technischen Fachkraft.

G

Geltungsbereich eines Constraints
Der Geltungsbereich eines Constraints ist die Menge der Variablen, deren gemeinsame Werte durch die erlaubte Relation dieses Constraints eingeschränkt werden.
Der Geltungsbereich der Regel, dass Veranstaltung A vor Veranstaltung B stattfindet, enthält A und B, unabhängig von ihren Wertebereichen.
Gerichtete Kantenkonsistenz
Gerichtete Kantenkonsistenz verlangt, dass jede Variable mit jedem durch einen Constraint verbundenen Nachbarn kantenkonsistent ist, der in einer Reihenfolge später erscheint.
In einer Baumreihenfolge mit Elternknoten vor Kindern müssen verbliebene Werte eines Elternknotens im Wertebereich jedes Kindes Unterstützung haben.
Globaler Constraint
Ein globaler Constraint ist eine benannte Relation über eine Gruppe variabler Größe, häufig mit einem spezialisierten Verfahren zur Beschneidung von Wertebereichen.
Alldiff ermöglicht einem Löser zu erkennen, dass drei Zellen nicht alle verschieden sein können, wenn nur zwei Ziffern übrig sind.
Gradheuristik
Die Gradheuristik bevorzugt eine Variable mit mehr Constraints zu unbelegten Variablen, üblicherweise um einen Gleichstand bei der Größe der Wertebereiche aufzulösen.
Zwei Regionen haben noch zwei Farben; die Region mit mehr ungefärbten Nachbarn gewinnt bei der Auflösung des Gleichstands durch die Gradheuristik.

H

Harter Constraint
Ein harter Constraint ist eine verpflichtende Anforderung, die jede zulässige Belegung unabhängig von Präferenzkosten erfüllen muss.
Eine Raumkapazitätsgrenze bleibt verpflichtend, auch wenn ihre Verletzung den Zeitplan bequemer machen würde.

K

k-Konsistenz
k-Konsistenz verlangt, dass jede konsistente Belegung beliebiger k − 1 Variablen konsistent um eine beliebige weitere Variable erweitert werden kann.
Auf Stufe drei muss ein vereinbares Paar für jede dritte Variable einen Wert übrig lassen, der mit beiden übereinstimmt.
Kantenkonsistenz
Kantenkonsistenz verlangt, dass jeder Wert am Ausgangsknoten einer gerichteten binären Kante einen vereinbaren Wert im Wertebereich des Zielknotens hat.
Eine Startzeit wird entfernt, wenn für die Nachfolgeaufgabe keine ausreichend späte Zeit zur Erfüllung der Vorrangbedingung übrig ist.
Kantenrevision
Eine Kantenrevision entfernt aus dem Wertebereich des Ausgangsknotens Werte, denen unter der betreffenden binären Relation eine Unterstützung im aktuellen Wertebereich des Zielknotens fehlt.
Die Revision von X→Y verändert den Wertebereich von X; die entgegengesetzte Richtung muss getrennt geprüft werden.
Knotenkonsistenz
Knotenkonsistenz bedeutet, dass jeder im Wertebereich einer Variablen verbliebene Wert alle unären Constraints für diese Variable erfüllt.
Nach Anwendung eines Vormittagsverbots enthält der knotenkonsistente Wertebereich der Veranstaltung nur noch Mittag und Nachmittag.
Kommutativität
Die Kommutativität von CSP-Belegungen bedeutet, dass die Zuweisung derselben Variablenwerte in verschiedenen Reihenfolgen denselben endgültigen Zustand erzeugt.
A zuerst auf 1 und dann B auf 3 zu setzen ergibt dasselbe vollständige Paar wie die Wahl des Werts von B vor dem von A.
Konfliktbehaftete Variable
Eine konfliktbehaftete Variable ist in der aktuellen vollständigen Belegung der lokalen Suche an mindestens einem verletzten Constraint beteiligt.
Bei einer doppelten Raumbelegung sind beide Besprechungen konfliktbehaftet, auch wenn nur eine verschoben werden muss, um die Überschneidung zu beheben.
Konfliktgesteuertes Backjumping
Konfliktgesteuertes Backjumping führt Konflikterklärungen über gescheiterte Ebenen hinweg zusammen, um eine frühere verantwortliche Entscheidung zu bestimmen.
Eine unterhalb einer unabhängigen Entscheidung entdeckte Ursache kann zurückgetragen werden, bis die Suche eine relevante Variable erreicht.
Konfliktmenge
Eine Konfliktmenge bezeichnet frühere Variablen, deren zugewiesene Werte dazu beigetragen haben, die möglichen Wahlmöglichkeiten einer gescheiterten Variablen auszuschließen.
Wenn drei Farben benachbarter Regionen die Farbpalette einer Region erschöpfen, erklären diese früher belegten Nachbarn ihren leeren Wertebereich.
Konsistente Belegung
Eine konsistente Belegung verletzt keinen Constraint für ihre zugewiesenen Werte, auch wenn sie sich möglicherweise nicht zu einer vollständigen Lösung erweitern lässt.
Zwei gefärbte Regionen können vereinbar sein, obwohl ihre Farbwahl einer ungefärbten Region keine verfügbare Farbe lässt.
Kritisches Constraint-Verhältnis
Ein kritisches Constraint-Verhältnis kennzeichnet in vielen Familien zufälliger CSPs einen Übergangsbereich zwischen überwiegend lösbaren und überwiegend unlösbaren Fällen.
Fälle nahe diesem Übergang benötigen oft mehr Suchaufwand als schwach eingeschränkte oder eindeutig unlösbare Fälle.

L

Lokales Minimum
Ein lokales Minimum ist eine Belegung mit Verletzungen, bei der keine Änderung einer einzelnen Variablen die gewählte Konfliktbewertung senkt.
Auf einem Damenbrett kann ein Angriff verbleiben, obwohl jede unmittelbare Änderung eine gleiche oder schlechtere Bewertung hat.
Lösung
Eine Lösung ist eine Belegung, die jeder Variablen einen Wert aus ihrem Wertebereich zuweist und alle Constraints gleichzeitig erfüllt.
Ein vollständig ausgefülltes Sudoku-Gitter ist nur dann eine Lösung, wenn jede Zeile, Spalte, Box und vorgegebene Ziffer mit den Regeln übereinstimmt.

M

Min-Konflikte-Heuristik
Die Min-Konflikte-Heuristik repariert eine vollständige Belegung, indem sie eine konfliktbehaftete Variable wählt und ihr einen Wert mit den wenigsten Verletzungen gibt.
Eine Dame wird in eine Zeile mit den wenigsten Angriffen durch die anderen Damen gezogen; Gleichstände werden zufällig aufgelöst.
MRV-Heuristik
Die MRV-Heuristik wählt eine unbelegte Variable, für die unter den aktuellen Einschränkungen die wenigsten zulässigen Werte übrig sind.
Eine Veranstaltung mit einem verbliebenen Zeitfenster wird vor einer Veranstaltung gewählt, die noch drei verschiedene Zeitfenster nutzen kann.

N

Nacktes Paar
Ein nacktes Paar besteht aus zwei Variablen in einem Alldiff-Geltungsbereich, die auf dieselben zwei Werte beschränkt sind und diese damit für das Paar reservieren.
Zwei auf 4 und 7 beschränkte Zellen einer Zeile erlauben einem Sudoku-Löser, beide Ziffern aus jeder anderen Zelle dieser Zeile zu entfernen.
Nogood
Ein Nogood ist eine bestimmte Kombination von Belegungen, die keine Erweiterung zur Erfüllung des CSP hat und daher verboten werden kann.
Zwei frühere Farben von Regionen können gemeinsam ein Dreieck auf nur zwei Farben beschränken, sodass ihre Kombination ein Nogood ist.

O

Online-Reparatur
Eine Online-Reparatur geht von einer bestehenden Belegung aus und aktualisiert sie bei veränderten Anforderungen, um wieder einen zulässigen Plan zu erhalten.
Fällt eine technische Fachkraft aus, kann der Löser den aktuellen Zeitplan reparieren, statt einen neuen zu erstellen.

P

Pfadkonsistenz
Pfadkonsistenz verlangt in einem binären CSP, dass jede konsistente Belegung eines Variablenpaars vereinbar um jede dritte Variable erweitert werden kann.
Zwei verschiedene Farben auf einem Dreieck mit zwei Farben lassen keine vereinbare Farbe für seine dritte Region übrig.
Plateau
Ein Plateau ist ein zusammenhängender Bereich von Belegungen mit derselben Bewertung bei lokaler Suche, in dem möglicherweise keine streng verbessernden Schritte verfügbar sind.
Mehrere Damenzüge können einen Angriff bestehen lassen, bevor eine andere Anordnung einen Zug zu null Angriffen ermöglicht.

R

Rückwärtsdurchlauf im Baum
Ein Rückwärtsdurchlauf im Baum verarbeitet Kinder vor Elternknoten und revidiert Kanten vom Elternknoten zum Kind, wobei er Werte ohne Unterstützung aus dem Wertebereich des Elternknotens entfernt.
Die Wurzel wird erst gegen ein Kind geprüft, nachdem dessen mögliche Werte seine Nachkommen berücksichtigen.
Running-Intersection-Eigenschaft
Die Running-Intersection-Eigenschaft verlangt, dass jede Tasche auf einem Pfad zwischen zwei Vorkommen einer Variablen diese Variable ebenfalls enthält.
Kommt X in beiden äußeren Taschen vor, fehlt aber in der mittleren Tasche, ist die vorgeschlagene Zerlegung ungültig.

S

Schnittmengenkonditionierung
Die Schnittmengenkonditionierung versucht Belegungen der Schnittmenge, beschneidet die verbleibenden Wertebereiche und löst für jeden Versuch den entstehenden Baum oder Wald.
Eine gescheiterte Vervollständigung des Baums führt dazu, dass der Löser eine andere Belegung der Schnittmenge versucht, statt das gesamte CSP sofort zu verwerfen.
Schrankenkonsistenz
Schrankenkonsistenz verlangt, dass jeder Endpunkt des Wertebereichs einer Variablen für jeden Constraint, an dem sie beteiligt ist, eine erfüllende Erweiterung hat.
Ein Intervall kann unterstützte Endpunkte haben, auch wenn einige seiner inneren Werte einen Constraint verletzen würden.
Schrankenpropagation
Schrankenpropagation verschärft mithilfe von Constraints die Endpunkte numerischer Wertebereiche und vermeidet so die Aufzählung aller Werte in einem großen Intervall.
Wenn zwei Busse eine Gruppe von Fahrgästen befördern, erzwingt die Höchstkapazität des einen Busses eine untere Schranke für die Anzahl der Fahrgäste im anderen.
Seitwärtsschritt
Ein Seitwärtsschritt ändert eine Belegung, ohne ihre Bewertung zu verändern, und kann dadurch den Zugang zu einer späteren Verbesserung eröffnen.
Der Zug einer Dame tauscht einen diagonalen Angriff gegen einen Angriff in einer Zeile und ermöglicht dann einer anderen Dame, das Brett zu lösen.
Simulierte Abkühlung
Die simulierte Abkühlung akzeptiert manchmal schlechter bewertete Schritte der lokalen Suche, wobei die Akzeptanzwahrscheinlichkeit mit sinkender Temperatur abnimmt.
Frühe schlechtere Schritte können aus einem lokalen Minimum herausführen; spätere Entscheidungen bei niedrigerer Temperatur begünstigen das Verbleiben in besseren Zuständen.
Starke k-Konsistenz
Starke k-Konsistenz bedeutet, dass ein CSP jede Konsistenzstufe von 1 bis k erfüllt, einschließlich aller kleineren Erweiterungsanforderungen.
Starke n-Konsistenz erlaubt es, ein CSP mit n Variablen und nicht leeren Wertebereichen in beliebiger Variablenreihenfolge ohne Backtracking zu belegen.
Symmetriebrechender Constraint
Ein symmetriebrechender Constraint behält Repräsentanten äquivalenter Lösungen, indem er Wahlmöglichkeiten einschränkt, die sich nur durch eine gültige Symmetrie unterscheiden.
Die Festlegung einer Farbreihenfolge auf einer Clique aus drei Regionen entfernt wiederholte Vertauschungen der Farbnamen, wenn die Farben austauschbar sind.

T

Tabusuche
Die Tabusuche verbietet vorübergehend kürzlich besuchte Zustände oder ausgeführte Schritte und nutzt ein Kurzzeitgedächtnis, um wiederholte Zyklen bei lokaler Suche zu erschweren.
Ein Löser vermeidet es, eine Veranstaltung sofort in das gerade verlassene Zeitfenster zurückzuverschieben, wenn dadurch derselbe Konflikt wiederholt würde.

U

Unabhängige Komponente
Eine unabhängige Komponente ist ein zusammenhängender Teil eines Constraint-Graphen, dessen Variablen durch keinen Constraint mit einer anderen Komponente verbunden sind.
Der isolierte Knoten Tasmaniens kann nach dem Festland gefärbt werden, ohne eine zusätzliche Kante zum Festland zu prüfen.
Unärer Constraint
Ein unärer Constraint schränkt die Werte einer Variablen ein und kann durch Entfernen unzulässiger Werte aus ihrem Wertebereich durchgesetzt werden.
Die Regel, dass eine Veranstaltung nicht vor Mittag beginnen kann, entfernt Wahlmöglichkeiten am Vormittag vor allen Suchentscheidungen.
Unterstützung
Eine Unterstützung ist ein Wert in einem benachbarten Wertebereich, der zusammen mit einem bestimmten Wert des Ausgangsknotens den verbindenden binären Constraint erfüllt.
Für X<Y unterstützt Y gleich 4 den Wert X gleich 3, während Y gleich 2 dies nicht tut.

V

Variable
Eine Variable bezeichnet eine Entscheidung, deren Wert als Teil einer Lösung für ein Constraint-Erfüllungsproblem gewählt werden muss.
In einem Raumzuordnungsmodell kann jede Besprechung eine Variable sein, deren Wert den ihr zugewiesenen Raum bezeichnet.
Vollständige Suche
Eine vollständige Suche findet eine Lösung, wenn eine existiert, und kann Unlösbarkeit nachweisen, indem sie alle nötigen endlichen Möglichkeiten ausschöpft.
Nachdem jeder Zweig bei endlichen Wertebereichen gescheitert ist, kann erschöpfendes Backtracking melden, dass der Zeitplan unlösbar ist.
Vollständige Zustandsformulierung
Eine vollständige Zustandsformulierung hält während der lokalen Suche jede Variable belegt und erlaubt dabei vorübergehende Constraint-Verletzungen.
Ein Reparaturalgorithmus beginnt mit einem vollständigen Zeitplan, auch wenn eine neue Verfügbarkeitsregel einen Konflikt zwischen zwei Veranstaltungen erzeugt.
Vorrangbedingung
Eine Vorrangbedingung verlangt, dass eine Aufgabe endet, bevor eine andere beginnt, und setzt dafür ihre Startzeit und Dauer zur nächsten Startzeit in Beziehung.
Eine 20-minütige Vorbereitungsaufgabe, die bei Minute 5 beginnt, macht Minute 25 zum frühesten Beginn der Analyse.
Vorwärtsdurchlauf im Baum
Ein Vorwärtsdurchlauf im Baum wählt einen verbliebenen Wert für die Wurzel und weist dann jedem Kind einen Wert zu, der mit seinem belegten Elternknoten vereinbar ist.
Getrennte Kindzweige können nach Abschluss der Rückwärtsbeschneidung ihre unterstützenden Werte unabhängig wählen.

W

Weicher Constraint
Ein weicher Constraint drückt eine Präferenz aus, deren Verletzung Kosten verursacht, mit denen ansonsten zulässige Belegungen verglichen werden.
Eine Präferenz für den Nachmittag kann verletzt werden, wenn eine Einplanung am Vormittag nötig ist, um jede harte Regel zu erfüllen.
Werkstattfertigungsplanung
Die Werkstattfertigungsplanung weist Aufgaben Startzeiten zu und erfüllt dabei Reihenfolgeanforderungen sowie Beschränkungen gemeinsam genutzter Maschinen oder Personen.
Ein Laborplan muss Vorbereitung und Analyse zeitlich ordnen und zugleich verhindern, dass zwei Analysen dasselbe Gerät gleichzeitig nutzen.
Wertebereich
Ein Wertebereich ist die Menge der Werte, die eine Variable annehmen kann. Propagation kann Werte entfernen, die mit den aktuellen Einschränkungen unvereinbar sind.
Eine Veranstaltung hat zunächst drei mögliche Zeitfenster, aber die Ankunftszeit ihrer Lehrkraft schließt das früheste aus.
Wertebereichsleerung
Eine Wertebereichsleerung tritt ein, wenn die Beschneidung einer Variablen keinen verfügbaren Wert lässt und damit einen Fehlschlag unter den aktuellen Einschränkungen nachweist.
Eine Veranstaltung verliert ihr letztes vereinbares Zeitfenster, nachdem eine benachbarte Veranstaltung eingeplant wurde, sodass der Zweig abbricht.
Wertesymmetrie
Wertesymmetrie liegt vor, wenn die Umbenennung austauschbarer Werte aus den Wertebereichen die ursprünglichen Constraints erhält und Lösungen auf Lösungen abbildet.
Das Umbenennen dreier Kartenfarben erzeugt äquivalente Färbungen, wenn keine Regel einer Farbe eine besondere Rolle gibt.

Z

Zufälliger Neustart
Ein zufälliger Neustart beginnt die lokale Suche mit einer neu gewählten vollständigen Belegung, nachdem der aktuelle Versuch unzureichenden Fortschritt erzielt hat.
Nach vielen Schritten auf einem Plateau beginnt der Löser mit einem anderen vollständigen Brett, um einen anderen Bereich zu erkunden.
Zuordnungsproblem
Ein Zuordnungsproblem ordnet Einheiten wie Personen, Aufgaben oder Räume einander zu und setzt dabei Eignungs- und Ressourcenbeschränkungen durch.
Ein Modell zur Berichtsprüfung wählt für jeden Bericht eine geeignete prüfende Person und kann eine doppelte Zuordnung derselben Person verbieten.
Zyklenschnittmenge
Eine Zyklenschnittmenge ist eine Menge von Variablen, deren Entfernung zusammen mit ihren anliegenden Kanten einen Baum oder einen zyklenfreien Wald zurücklässt.
Das Entfernen des gemeinsamen Knotens zweier Dreiecke bricht beide Zyklen und erhält zwei getrennte Kanten.

Über diese Einheit

Von StudeliFehler melden

Erstelle deine eigenen Lernmaterialien

Mach aus deinen Notizen, Folien und Dokumenten Lernleitfäden, Übungsfragen, Karteikarten und 6 weitere Tools.

Jetzt starten