next up previous contents index
Nächste Seite: D. Grammatik der Constraint-Ausdrücke Aufwärts: Diplom Vorherige Seite: B. Konfigurierungszyklus von EngCon   Inhalt   Index

C. Constraint-Lösungsstrategien

An dieser Stelle sind entsprechend der Beschreibung in Kapitel 7, Abschnitt 7.7 ff. die XML-DTD von YACS sowie einige einfache XML-Beispielstrategien spezifiziert (vgl. Eckstein, 2000). Durch die hier aufgeführten Lösungsstrategien werden außerdem während der Validierung in Kapitel 8, Abschnitt 8.3 ff. die dort genannten Problemstellungen verarbeitet.

Zuerst folgt der Inhalt der Datei yacs_strategies.dtd, in der die XML-DTD für die vom YACS-Framework interpretierbaren Constraint-Lösungsstrategien definiert ist:


<?xml version="1.0" encoding="UTF-8"?>

<!-- Simple XML-DTD for strategies of the YACS framework. -->

<!ELEMENT strategies (strategy+)>
<!ELEMENT strategy (preprocessing, consistency, search)>
<!ATTLIST strategy name ID #REQUIRED>
<!ELEMENT preprocessing (solver*)>
<!ELEMENT consistency (solver*)>
<!ELEMENT search (solver*)>
<!ELEMENT solver (#PCDATA)>

Entsprechend dieser DTD enthalten Lösungsstrategien neben ihrem Namen als Parameter drei Abschnitte, welche die jeweilige Phase des Constraint-Lösungsprozesses repräsentieren: preprocessing, consistency und search. In jedem dieser Abschnitte lassen sich jeweils innerhalb von solver-Tags eine Reihe von Constraint-Solvern angeben, die durch ihren vollständigen Klassennamen inkl. des Package-Pfades spezifiziert werden müssen.

Es folgt abschließend der Inhalt der Datei yacs_strategies.xml, in der eine Reihe von einfachen Beispielstrategien definiert sind:


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE strategies SYSTEM "yacs_strategies.dtd">

<strategies>

  <strategy name="low_consistency">
    <preprocessing>
    </preprocessing>
    <consistency>
      <solver>
        yacs.solver.fdsolver.consistency.NCSolver
      </solver>
    </consistency>
    <search>
    </search>
  </strategy>

  <strategy name="medium_consistency">
    <preprocessing>
    </preprocessing>
    <consistency>
      <solver>
        yacs.solver.fdsolver.consistency.NCSolver
      </solver>
      <solver>
        yacs.solver.fdsolver.consistency.AC3Solver
      </solver>
    </consistency>
    <search>
    </search>
  </strategy>

  <strategy name="simple_search">
    <preprocessing>
    </preprocessing>
    <consistency>
    </consistency>
    <search>
      <solver>
        yacs.solver.fdsolver.search.SingleSolutionBTSolver
      </solver>
    </search>
  </strategy>

  <strategy name="search">
    <preprocessing>
    </preprocessing>
    <consistency>
    </consistency>
    <search>
      <solver>
        yacs.solver.fdsolver.search.BacktrackingSolver
      </solver>
    </search>
  </strategy>

  <strategy name="search_with_look-ahead">
    <preprocessing>
    </preprocessing>
    <consistency>
    </consistency>
    <search>
      <solver>
        yacs.solver.fdsolver.search.MAC3Solver
      </solver>
    </search>
  </strategy>

  <strategy name="interval_consistency">
    <preprocessing>
    </preprocessing>
    <consistency>
      <solver>
        yacs.solver.intervalsolver.consistency.HullConsistencySolver
      </solver>
    </consistency>
    <search>
    </search>
  </strategy>

</strategies>


next up previous contents index
Nächste Seite: D. Grammatik der Constraint-Ausdrücke Aufwärts: Diplom Vorherige Seite: B. Konfigurierungszyklus von EngCon   Inhalt   Index