next up previous contents index
Nächste Seite: A. Konfigurierungswerkzeuge Aufwärts: 9. Zusammenfassung und Ausblick Vorherige Seite: 9.1 Zusammenfassung   Inhalt   Index

9.2 Ausblick

Wie bereits in Kapitel 8 angesprochen, stellt die Flexibilisierung der Kooperation, d.h. der Art und Weise, wie unterschiedliche Constraint-Solver miteinander interagieren, eine interessante Erweiterungsmöglichkeit für das YACS-Framework dar. Auch wenn ein grundlegendes Konzept von YACS der phasenweise Lösungsprozess ist, stellt eine parallele Verarbeitung von Constraint-Problemen eine erstrebenswerte Option dar.

Grundsätzlich bestehen sinnvolle Erweiterungen darin, weitere Mechanismen zur Unterstützung von dynamischen Aspekten entsprechend dem DCSP, CondCSP, CompCSP oder GCSP direkt in YACS zu integrieren. Wenn auch die implementierten Constraint-Lösungsverfahren grundsätzlich das inkrementelle Anwachsen des Constraint-Netzes unterstützen, fehlen einem reinen Constraint-Solver Automatismen wie Aktivitäts-Constraints, mit denen auf einer Metaebene definiert werden kann, zu welchem Zeitpunkt bestimmte Variablen und Constraints aktiviert werden sollen. Diese dynamischen Aspekte werden für gewöhnlich übergeordnet vom Constraint-System der Anwendung behandelt. Auch im Falle von ENGCON existiert innerhalb des Konfigurierungswerkzeugs mit den konzeptuellen Constraints und dem Pattern-Matching-Mechanismus bereits ein dynamisches Constraint-System. Dennoch würde eine Integration zusätzlicher dynamischer Metaelemente in YACS eine Steigerung der Funktionalität bedeuten und das Framework attraktiver auch für Systeme machen, die bisher keine dynamischen Aspekte unterstützen.

Noch relevanter als das gesteuerte, dynamische Hinzufügen von neuen Variablen und Constraints könnte für spezielle Anwendungen das Entfernen bereits existierender Constraints durch Constraint-Relaxierung (bzw. constraint retraction) sein. Dies würde neben einem inkrementellen Anwachsen des Constraint-Netzes auch das effiziente, ,,dekrementelle`` Zurücknehmen von Constraints erlauben, d.h. das Entfernen von Constraints, ohne das Constraint-Netz vollständig neu propagieren zu müssen.

Soll die Verarbeitung von überbestimmten Constraint-Problemen als PCSPs bzw. MaxCSPs, SoftCSPs, HCSPs oder Fuzzy CSPs möglich sein, so setzt dies jeweils Anpassungen am Konzept von YACS und der Konfigurierungs-Engine von ENGCON voraus. Die benötigten Algorithmen zur Verarbeitung von Optimierungsproblemen, z.B. der Simplex-Algorithmus für reellwertige Domänen und Branch & Bound für finite Domänen, nutzen jeweils Zielfunktionen zur Generierung optimierter Lösungen. Für die hierfür benötigten Informationen, z.B. hinsichtlich einer Zielfunktion oder einer speziellen Gewichtung, könnte im Framework eine allgemeine Oberklasse zur Repräsentation von Eigenschaften eines jeden Constraints vorgesehen werden.

Kommt ein Konfigurierungswerkzeug zum Einsatz, welches über die geschlossene Welt der closed world assumption (CWA) hinaus die open-world-Annahme ermöglicht, können die für das OCSP genannten Lösungsverfahren relevant werden. In einem solchen Szenario - aber auch für den allgemeinen Fall - können zudem asynchrone Mechanismen zum Auflösen von verteilten Constraint-Problemen (DisCSPs) angewendet werden. Eingebettet in z.B. ein verteiltes EJB-Framework müsste ein entsprechender Wrapper für YACS erstellt werden. Wobei sowohl von verteilten Konfigurierungs-Engines als auch von ausschließlich verteilten Constraint-Systemen ausgegangen werden kann.

Der Ansatz, ein flexibles Framework zu bieten, welches den Austausch und die Integration von Constraint-Lösungsverfahren vereinfacht, prädestiniert das YACS-Framework für ein adaptives Vorgehen in Bezug auf die Auswahl des jeweils für ein bestimmtes Problem einzusetzenden Lösungsverfahrens. Anhand der in dieser Arbeit benannten Kriterien und Eigenschaften für den effizienten Einsatz unterschiedlicher Constraint-Lösungsverfahren wird es dadurch möglich, innerhalb eines ACSPs den Prozess des Auswählens eines jeweils geeigneten Lösungverfahrens für ein konkretes (Teil-)Problem zu automatisieren.

Hinsichtlich der Präzision bei der Berechnung mit reellwertigen Intervallen ist festzuhalten, dass die Implementierung von YACS nicht grundsätzlich auf eine Intervallarithmetik-Bibliothek festgelegt ist. Wünschenswert wäre z.B. die (optionale) Unterstützung diskontinuierlicher Intervalle. Auch sollte sich der Präzisionsgrad, z.B. die Anzahl der Nachkommastellen, ab der zwei Intervalle als identisch betrachtet werden, von Fall zu Fall spezifizieren lassen. Außerdem sollten zukünftig weitere gängige mathematische Funktionen (z.B. sin, cos, tan, log, ln, sqr) unterstützt werden. Neben der eigentlichen Funktionalität, die auch in der zurzeit verwendeten Intervallarithmetik-Bibliothek IAMath bereits vorhanden ist, setzt dies eine Erweiterung der derzeitigen Implementierung des Constraint-Parsers voraus.

Neben zusätzlicher mathematischer Funktionalität bestehen Erweiterungsmöglichkeiten für das YACS-Framework in den bisher zulässigen Domänen. Für spezielle Anwendungen ist aus Effizienzgründen die native Unterstützung von booleschen Constraints denkbar. Auch die direkte Nutzung von reellen und rationalen Domänen, außer als spezieller Fall von reellwertigen Intervallen, kann, ebenso wie die Integration spezieller Algorithmen zu deren Auswertung, sinnvoll sein.

Aus Effizienzgründen könnte es ebenfalls notwendig werden, Teile des YACS-Frameworks (z.B. einzelne Constraint-Solver oder die Intervallarithmetik) oder das vollständige in dieser Arbeit vorgestellte Konzept in einer unter der jeweiligen Zielplattform kompilierbaren und nativ (ohne Java-Laufzeitumgebung) ausführbaren Programmiersprache zu reimplementieren.

Für weitergehende Tests, die Fortführung der Entwicklungstätigkeit, aber auch für die Anwender des Frameworks, würde eine Test-Konsole oder Constraint-Shell, und die damit verbundenen Möglichkeit, Constraint-Probleme komfortabel spezifizieren und einlesen zu können, eine signifikante Erleichterung darstellen. Das YACS-Framework könnte dadurch auf einfache Weise zu einer Test-Suite für unterschiedliche Constraint-Lösungsalgorithmen werden. Hierfür sind zudem zentrale Zeitnahme- sowie Zählmöglichkeiten (z.B. für die Anzahl der benötigten Konsistenztests) notwendig.

So wie im Rahmen der strukturbasierten Konfigurierung mit ENGCON die Constraint-Verarbeitung genutzt wird, Konfigurationsabhängigkeiten zu repräsentieren und auszuwerten, existieren viele andere Anwendungen, in denen Constraints ebenfalls als Inferenzmechanismus dienen. Constraints werden aber nicht nur in Anwendungsprogrammen eingesetzt. Auch ein Constraint-Programming-System benötigt ein leistungsfähiges Constraint-System als Inferenzmechanismus und dient, wie z.B. ENGCON oder eine mögliche Constraint-Shell, als Schnittstelle bzw. Anwendung für YACS. Eine interessante Aussicht stellt daher die Möglichkeit dar, das YACS-Framework als Basis für ein Java-basiertes CP-System zu nutzen. Unabhängig von der stringbasierten Schnittstelle von YACS würden sich die implementierten Framework-Klassen und deren Ausprägungen dazu nutzen lassen, ein derartiges System zu realisieren und eine Reihe von benötigten global constraints zu implementieren. Für die Verarbeitung generischer Constraints hingegen ließe sich die existierende, stringbasierte Schnittstelle von YACS einsetzen.


next up previous contents index
Nächste Seite: A. Konfigurierungswerkzeuge Aufwärts: 9. Zusammenfassung und Ausblick Vorherige Seite: 9.1 Zusammenfassung   Inhalt   Index