next up previous contents index
Nächste Seite: 8.6 Zusammenfassung Aufwärts: 8. Validierung von YACS Vorherige Seite: 8.4.3 Zusammenfassung   Inhalt   Index

8.5 Vergleich mit weiterführenden Ansätzen

Im Zuge der Konzeption von YACS wuchs die Erkenntnis, dass sich innerhalb eines hybriden Systems nicht nur die flexible Kombination unterschiedlicher Constraint-Lösungsmethoden betrachten lässt, sondern auch die flexible Kooperation eben dieser Verfahren bzw. Constraint-Solver. Zur Erhöhung der Flexibilität ist die Anwendung strategiebasierter Ansätze ein gängiges Mittel zur Steuerung der Propagation und Lösungssuche von kooperierenden Constraint-Solvern. Der konkrete Einsatz von Strategien in den vorhandenen Ansätzen unterscheidet sich allerdings von der spezifischen Nutzung innerhalb von YACS, daher erfolgt an dieser Stelle insbesondere ein Vergleich mit Ansätzen zur flexiblen Kooperation.

In Abschnitt 4.5.4 ff. wurde bereits eine Übersicht über verschiedene Ansätze für kooperatives Verhalten von Constraint-Solvern gegeben. Es wird grundsätzlich zwischen statischen ,,Ad-hoc``-Kooperationen und flexiblen Kooperationen unterschieden. Die genannten Ansätze weisen z.T. eine enge Verwandtschaft mit Distributed CSP bzw. CCP auf (vgl. Abschnitt 4.4.4). Eine verteilte Ausführung allerdings wird von YACS, bedingt durch ein sequentielles anstatt paralleles Ausführungsmodell, derzeit nicht explizit unterstützt.

Im Vergleich zu Ad-hoc-Kooperationen bietet das YACS-Framework flexible Kooperationen mit aufeinander aufbauenden und austauschbaren Lösungsverfahren. Kooperationen auf Algorithmusebene können innerhalb eines Constraint-Solvers realisiert werden. Dafür lassen sich bereits existierende Algorithmen auf Implementierungsebene zu kooperierenden Constraint-Solvern zusammenführen (z.B. für look-ahead, vgl. Abschnitt 7.6). Außerdem ist mit dem YACS-Framework derzeit eine hybride Constraint-Verarbeitung, d.h. unterschiedliche und auch erweiterbare Domänen, möglich, eine heterogene Verarbeitung von mixed Constraints (vgl. Abschnitt 4.4.4) wird hingegen noch nicht unterstützt.

Die Systeme zur flexiblen Kooperation von Hofstedt (2000) und Monfroy (2000) nutzen formale Ansätze bzw. Sprachen zur Definition von Ausführungsvorschriften respektive zur Definition von Kooperationsstrategien. Dadurch weisen beide Ansätze einen hohen Freiheitsgrad bzgl. der definierbaren Kooperationen auf. Im Vergleich dazu ist das Ausführungsmodell innerhalb von YACS relativ fest vorgegeben. Es kann lediglich gewählt werden, welche Lösungskomponenten für die jeweilige Kooperation in welcher Reihenfolge genutzt werden sollen. Die hierfür benötigte Spezifikation von Constraint-Lösungsstrategien wird anstatt in einer eigens entwickelten Sprache in XML-Syntax vorgenommen, und anstatt einer Grammatik für eine eigene Sprache liegt zur Beschreibung von Constraint-Lösungsstrategien für YACS eine XML-DTD vor. YACS weist somit durch Nutzung der verbreiteten XML-Technologie einen hohen Praxisbezug auf und ist relativ einfach einsetzbar und erweiterbar. Darüber hinaus ist der Integrationsaufwand für YACS, speziell für Java-Anwendungen, deutlich geringer als für Lösungen, die in Lisp, ECL$^i$PS$^e$ oder Manifold implementiert wurden (vgl. Abschnitt 4.5.4.2).

Die innerhalb von YACS vorgenommene Unterteilung des Lösungsvorgangs in einzelne Phasen führt zu einer ,,Strukturierung`` des Lösungsprozesses. Der Vorteil besteht darin, dass für jede Phase spezielle Schnittstellen im System vorgesehen werden können. Dadurch wiederum wird der flexible Austausch der Constraint-Solver ermöglicht, die jeweils eine einheitliche Schnittstelle entsprechend der jeweiligen Phase aufweisen müssen. Der phasenweise Lösungsprozess ermöglicht außerdem die Ausnutzung von Seiteneffekten während einer Phase. Wertebereichseinschränkungen unterschiedlicher Constraint-Solver lassen sich dementsprechend teilproblemübergreifend propagieren bis keinerlei Einschränkungen mehr auftreten. Insgesamt kann so i.A. eine erhöhte Filterstärke erreicht werden. Nachteilig am vorgestellten Konzept von YACS kann sich ggf. auswirken, dass die Einteilung in die bestehenden Phasen fest vorgegeben und damit implementierungsabhängig relativ starr ist. Für einzubindende, externe Constraint-Solver ist zudem jeweils eine spezielle Wrapper-Klasse für die entsprechende Schnittstelle der jeweiligen Phase zu implementieren, was sich negativ auf den zusätzlichen Overhead auswirkt.8.9

Die Möglichkeit, auf unkomplizierte und durchschaubare Art und Weise Anpassungen an YACS bzw. an den Constraint-Lösungsstrategien von YACS vornehmen zu können, kann sich positiv auf die Akzeptanz der Lösung bei den zuständigen Wissensingenieuren bei gleichzeitig höchstmöglicher Flexibilität auswirken. Das YACS-Framework wurde zudem für den Anwendungsfall der strukturbasierten Konfigurierung entwickelt und getestet. YACS unterstützt daher die domänenspezifischen Eigenheiten wie ein inkrementell anwachsendes Constraint-Netz und sowohl finite als auch infinite Wertebereiche.

Das Konzept für YACS wurde aus der Idee heraus geboren, größtmögliche Flexibilität hinsichtlich der einzusetzenden Constraint-Lösungsmechanismen zu bieten. Weniger im Vordergrund steht der Aspekt der flexiblen Steuerung von Kooperationen unterschiedlicher Lösungsverfahren. Die Art der Kooperation ist innerhalb von YACS grundsätzlich durch den Aufbau der Constraint-Lösungsstrategien und deren bisher ausschließlich sequentiellen Ausführung vorgegeben. Flexibilität wird innerhalb von YACS durch unterschiedliche und auswechselbare Constraint-Solver für finite und infinite Domänen sichergestellt. Auch wenn mit YACS durchaus flexible Kooperationen mit austauschbaren, aufeinander aufbauenden Constraint-Solvern und unterschiedlichen Domänen möglich sind, stellt das YACS-Framework einen Mittelweg dar zwischen einer flexiblen Kooperation, wie sie die Kooperationssprachen von Hofstedt (2000) und Monfroy (2000) bieten, und einer starren Ad-hoc-Kooperation.



Fußnoten

...8.9
Für externe Constraint-Solver bedeutet die Anbindung über das YACS-Framework eine zusätzliche Repräsentation des Constraint-Netzes: Neben der Repräsentation in der Anwendung besitzt YACS eine eigene, interne Repräsentation der Constraints. Externe Constraint-Solver, die die interne Repräsentation von YACS nicht nutzen, benötigen folglich eine Konvertierung und zusätzlichen Speicher für ihre eigene Repräsentation.

next up previous contents index
Nächste Seite: 8.6 Zusammenfassung Aufwärts: 8. Validierung von YACS Vorherige Seite: 8.4.3 Zusammenfassung   Inhalt   Index