next up previous contents index
Nächste Seite: 9. Zusammenfassung und Ausblick Aufwärts: 8. Validierung von YACS Vorherige Seite: 8.5 Vergleich mit weiterführenden   Inhalt   Index

8.6 Zusammenfassung

Im Rahmen dieser Validierung wurde die Praxistauglichkeit des dem Prototypen von YACS zugrundeliegenden Konzepts unter Beweis gestellt. Anhand einer Reihe von synthetischen Problemen sowie der Integration in das Konfigurierungswerkzeug ENGCON konnte gezeigt werden, dass sich mit Hilfe des YACS-Frameworks in verschiedenen Problemstellungen unterschiedliche Constraint-Lösungsverfahren flexibel einsetzten lassen. Überlappungen von Teilproblemen sind hierbei möglich, es muss allerdings sichergestellt sein, dass die von den Überlappungen betroffenen Constraint-Netze jeweils dieselben Wertedomänen aufweisen (numerische finite Domänen, symbolische finite Domänen oder reellwertige Intervalldomänen).

Innerhalb des YACS-Frameworks steht für die effiziente Verarbeitung von Constraint-Problemen eine überschaubare Bibliothek von Constraint-Solvern zur Verfügung. Für unterschiedliche Anwendungsdomänen kann ein jeweils geeigneter Constraint-Solver eingesetzt werden. Auch der Einsatz unterschiedlicher Constraint-Solver in derselben Domäne ist bei Bedarf möglich. Die tatsächliche Effizienz der Constraint-Lösungsverfahren trat allerdings bei der Umsetzung des Konzepts für das YACS-Framework in den Hintergrund. Der Schwerpunkt der Realisierung von YACS liegt auf der Flexibilität und der Modularität des Ansatzes.

Die von YACS zur Verfügung gestellten Constraint-Solver arbeiten als Black Box und besitzen keinen Einfluss auf die Ablaufkontrolle des Frameworks. Sie sind gekapselt und austauschbar. Fremdsysteme sind über Wrapper-Klassen in das YACS-Framework integrierbar. Besonders die stringbasierte Schnittstelle von YACS, zur intensionalen Repräsentation von Constraints, ist ein interessantes Feature für ein breites Anwendungsfeld. Durch diese Schnittstelle wird die komfortable Nutzung von Constraint-Solvern als Inferenzmechanismus ermöglicht. Anwendungen, die diese Schnittstelle nicht nutzen, bleibt der Weg über die internen Klassen des Frameworks. Über diese ist das YACS-Framework zudem erweiterbar, z.B. um zusätzliche Constraint-Solver oder Variablentypen bzw. Wertedomänen. Eine Erweiterung von YACS kann durch Einbinden zusätzlicher Java-Archives (JARs) geschehen. Die in diesen JARs enthaltenen Java-Klassen haben lediglich die von dem Framework vorgegebenen Vererbungshierarchien und Paketstrukturen einzuhalten, sowie die ebenfalls von den Framework-Klassen definierten Schnittstellen zu erfüllen. Zusätzliche Constraint-Solver und andere Erweiterungen können auf diesem Weg ähnlich einem Plugin-Mechanismus ergänzt werden.

Wesentliche Anforderung durch den in dieser Arbeit gegebenen Anwendungsfall, der strukturbasierten Konfigurierung, ist der inkrementelle Aufbau des Constraint-Netzes. Diese Anforderung konnte erfüllt werden, wie die beiden Validierungen in diesem Kapitel gezeigt haben: Sowohl bei den synthetischen Constraint-Problemstellungen als auch beim Anwendungsfall ENGCON ist das inkrementelle Anwachsen des Constraint-Netzes zu beobachten. Für die synthetischen Constraint-Probleme konnte ferner gezeigt werden, dass die hinzugefügten Constraints konkrete Auswirkungen auf die bestehenden Wertebereiche der Variablen bereits existierender Constraints haben.

Eine weitere, wesentliche Anforderung sind die unterstützten Wertedomänen der Lösungsverfahren. Das YACS-Framework ist ein hybrides System, mit dem sich sowohl finite als auch infinite Domänen verarbeiten lassen. Neben numerischen und symbolischen finiten Domänen werden durch das YACS-Framework derzeit reellwertige Intervalldomänen unterstützt. Es sind allerdings ausschließlich konvexe Intervalldomänen zulässig, zudem ist der Intervall-Constraint-Solver von YACS derzeit grundsätzlich noch mit starken Einschränkungen behaftet. Weitere geforderte Eigenschaften an die Lösungsverfahren, wie die Möglichkeit zur Verarbeitung n-ärer und nichtlinearer Constraints werden vom YACS-Framework zurzeit rudimentär angeboten: Derartige Constraints werden von den implementierten Lösungsverfahren bereits unterstützt, es existieren allerdings noch keine spezialisierten Algorithmen innerhalb der Constraint-Solver-Bibliothek von YACS.

Den Anforderungen an die Präzision und Effizienz des entwickelten Constraint-Systems wird mit der Möglichkeit der flexiblen Austauschbarkeit der einzusetzenden Lösungsverfahren Rechnung getragen. Bei Bedarf lassen sich jederzeit effizientere Verfahren als die derzeit vorhandenen Lösungsverfahren implementieren und einbinden. Die Vollständigkeit der zurzeit vorhandenen Lösungsverfahren ist sichergestellt, mögliche Lösungen gehen bei den implementierten Verfahren wie Backtracking, MAC, Knoten-, Kanten- und Hullkonsistenz auf keinen Fall verloren. Eine Ausnahme bildet der Constraint-Solver für einfaches Backtracking, der lediglich die erstbeste Lösung zurückliefert. Dieser Solver ist für spezielle Probleme geeignet, wenn es bspw. darum geht, die Inkonsistenz eines Problems festzustellen.

Die Berechnungen, die von der innerhalb von YACS eingebundenen Intervallarithmetik-Bibliothek IAMath durchgeführt werden, sind aufgrund der begrenzten Berechnungskapazität von Computern grundsätzlich unvollständig. Dies äußert sich allerdings in diesem Fall nicht darin, dass Werte der Lösungsmenge verloren gehen, sondern indem die Intervallgrenzen bei bestimmten Berechnungen in der Praxis nicht so stark eingeschränkt werden, wie dies theoretisch möglich ist.8.10 Für Anwendungen, für die die Präzision der verwendeten Intervallarithmetik-Bibliothek nicht ausreicht, bieten sich die Möglichkeiten, eine eigene Bibliothek zu entwickeln oder eine andere, externe Bibliothek anzubinden. Mit der Kapselung des Zugriffs durch Framework-Klassen ist sichergestellt, dass die derzeit verwendete Bibliothek mit minimalem Aufwand austauschbar ist bzw. das YACS-Framework um weitere Arithmetik-Bibliotheken ergänzt werden kann.8.11

Die Implementierung von YACS erfolgte in der Programmiersprache Java. Unter Berücksichtigung der einfachen Anbindung über die vorhandene, schlanke Schnittstelle des Constraint-Managers von YACS ist das Framework daher für Java-Anwendungen von besonderem Interesse. Die Entwicklung von YACS erfolgte, bedingt durch den Anwendungsfall ENGCON unter einer Microsoft-Windows-Plattform auf x86-Hardware. Aufgrund der Plattformunabhängigkeit von Java sollte das YACS-Framework mit geringem Aufwand auch unter anderen Betriebssystemen und Rechnerarchitekturen lauffähig sein.

Der in diesem Kapitel abschließend erfolgte Vergleich mit weiterführenden Arbeiten zur Kombination und Kooperation von Constraint-Lösungsverfahren ermöglicht die Einordnung des YACS-Frameworks und einen Einblick darin, wie die Weiterentwicklung aussehen kann, z.B. hinsichtlich einer parallelen Ausführung unterschiedlicher Constraint-Solver innerhalb von YACS. Dies bedingt, dass der Fokus bei der Weiterentwicklung des Konzepts von YACS auf der flexiblen Steuerung von Kooperationen unterschiedlicher Solver sowie deren Informationsaustausch liegt.



Fußnoten

...8.10
Bei Erreichen der Präzisionsgrenze werden, um sicherzustellen dass sich die exakte Lösung innerhalb des resultierenden Intervalls befindet, die Intervallgrenzen nach außen gerundet.
...8.11
Die Intervallarithmetik-Bibliothek IAMath ist die zurzeit einzige bekannte, in der Programmiersprache Java implementierte Lösung für Rechenoperationen mit reellwertigen Intervallen.

next up previous contents index
Nächste Seite: 9. Zusammenfassung und Ausblick Aufwärts: 8. Validierung von YACS Vorherige Seite: 8.5 Vergleich mit weiterführenden   Inhalt   Index