Konstruktion
Bei Konstruktionsproblemen kann die Problemlösung nicht wie bei der Klassifikation ausgewählt, sondern muss aus Lösungs- elementen zusammengesetzt werden.
Beispiele:
• Stundenplanerstellung
• Konfigurierung von Fahrstühlen
• Konfigurierung von Computern
• Planen von molekulargenetischen Experimenten
• Arbeitsplanung von Werkstücken
• Ressourcen-Belegung
• Planen in der Klötzchenwelt
• Beschreibung von Therapieplänen bei der Krebsbehandlung
Einteilungsprinzipien:
• Problemtyp:
- Konfigurierung - Zuordnung - Planung
• Wissensart:
- heuristisch
- fallvergleichend - modellbasiert
• Problemlösungsmethode:
- (Suchstrategien)
Konstruktion: Problemtypen
Planung:
Zustand 1
(Anfangszustand) Zustand 2
Operator 1
… Zustand n
(Zielzustand)
Konfigurierung:
?
Anforderungen aus Komponenten zusammen-
gesetztes Lösungsobjekt
Scheduling:
Angebote Nachfragende
10
15
Vergleich der Konstruktionstypen
mindestens zwei dis- junkte Mengen von Objekten
Erstellung eines Zuord- nungsplanes, der Zu- ordnungsspräferenzen, knappe Ressourcen und andere Randbedingun- gen berücksichtigt (optimaler) Zuordnungs- plan, der die Objektmen- gen aufeinander abbildet
bei zwei gleichgroßen Mengen mit je n Objekten gibt es n! verschiedene Zuordnungspläne
Stundenplan-Erstellung, Maschinen-Belegung elementare
Objekte
Problem
Lösung
Lösungsraum
Beispiele
Planung Konfigurierung Zuordnung
Objekte mit Attributen und (generische) Ope- ratoren mit Vor- und Nachbedingung Transformation eines gegebenen Ausgangs- in einen gewünschten Zielzustand {Zustände sind Objekt-Konstel- lationen}
(optimale) Sequenz von anwendbaren Operator- (instanz)en, die den Ausgangs- in den Ziel- zustand transformieren bei durchschnittlicher Länge der Operatorse- quenzen von n und (in jedem Zwischenzustand) durchschnittlich m an- wendbaren Operator(in- stanz)en gibt es ca. m verschiedene Pläne Planen von Experimen- ten, Arbeitsplanung von Werkstücken, Verschie- ben von Klötzchen, Therapieplanung
n
Basisobjekte mit Attri- buten und Beziehungen untereinander
Auswahl, Parametrie- rung und Aggregierung der Basisobjekte zum Lösungsobjekt, so daß gewünschte Anforde- rungen erfüllt sind (optimales) Lösungs- objekt, das aus Basis- objekten zusammenge- setzt ist und die Anfor- derungen erfüllt bei durchschnittlich n erforderlichen Objekt- Attributen mit je ca. m Ausprägungen gibt es m verschiedene Konfi- gurationen
Fahrstuhl-Konfigurie- rung, Computer-Kon- figurierung
n
Analyse von Problemeigenschaften
Mögliche Vereinfachungen der Problemstellung:
• Allgemein:
• Phaseneinteilung / Modularisierung
• Hierarchisierung / Abstraktion
• Zustandsbezogene Vereinfachungen
• keine explizite Zustandsrepräsentation
• keine externe Zustandsveränderung
• Art der Konstruktionselemente (Objekte und Operatoren)
• Vorgabe (keine Objekt/Operator-Auswahl)
• keine Objekt/Operator-Parametierung
• keine Objekt/Operator-Zuordnung
• gerichtete Operatoren (Regeln vs. Constraints)
• Art der Suchstrategie
• Kein Backtracking
Konstruktionsmethoden
Wissensart:
• Modellbasiertes Konstruieren (mit Zustandsrepräsentation)
• Heuristisches Konstruieren
• Fallbasiertes Konstruieren
Grobtechnik:
• Suchstrategie - Breitensuche
- Tiefensuche, Iterative Tiefensuche - Bestensuche, A*
- Hill-Climbing, Simulated Annealing
• Backtracking
- kein Backtracking
- chronologisches Backtracking - abhängigkeitsgesteuert
- wissensbasiert
• Abstraktion
• Modularisierung
• Reformulierung
Einordnung der Problemlösungsmethoden:
Skelett-Konstruieren:
Wissensart: Heuristisch
Grobtechniken: Abstraktion + Modularisierung + Hill-Climbing Vorschlagen-und-Verbessern:
Skelett-Konstruieren (SK)
Kernidee: Konstruktion als mehrfache Diagnostik
Wissensrepräsentation: Und/Oder-Graph mit Auswahlregeln.
Lösungsfindung: Wähle Skelettpläne aus und verfeinere sie.
Problem
Skelettplan 1 Skelettplan 2 Skelettplan 3
Konstruktions- schritt 1
Konstruktions- schritt 2
Konstruktions- schritt 3
Konstruktionsschritt- verfeinerungen
Konstruktionsschritt- verfeinerung als Unter-Skelettplan
Skelettplan = Und-Knoten: alle Nachfolger werden expandiert.
Konstruktionsschritt = Oder-Knoten: bester Nachfolger wird gewählt
Beispiel: Friedland’s MOLGEN:
Planung von molekulargenetischen Experimenten
SK-Beispiel: Reiseplanung
Fußmarsch zum Bahnhof
Reiseproblem
mit Flugzeug und Auto
mit Flugzeug und Bahn
Autofahrt zum Zielort
mit der Bahn
Autofahrt zum Flughafen
Flug zum Zielflughafen
Erreichen des Zielortes
Erreichen des Bahnhofes
Bahnfahrt zum Zielbahnhof
Erreichen des Zielortes
Abholenlassen vom Gastgeber
Taxi mit der Straßenbahn mit der
Straßenbahn
Autofahrt zum Bahnhof
Auswahlregeln für Verfeinerung von „Reiseproblem“
1. Wenn Entfernung > 1000 km und Auto vorhanden
und Parkmöglichkeit am Flughafen günstig dann „mit Flugzeug und Auto“
2. Wenn Entfernung > 1000 km und kein Auto vorhanden
oder keine günstige Parkmöglichkeit am Flughafen dann „mit Flugzeug und Bahn“
3. Wenn Entfernung ≤ 1000 km und Auto vorhanden
Wissensrepräsentation und Problemlösungsalgorithmus
Wissensrepräsentation:
• Problemmerkmal (mit Attribut: Bedeutung: Regeln)
• Skelettplan (Und-Knoten)
• Konstruktionsschritt (Oder-Knoten; mit Bedeutung: Regeln))
• Regel (Aktion: Auswahl von Skelettplan oder Konstr.-Schritt) Problemlösungsalgorithmus:
Eingabe: Problemmerkmale
Ausgabe: Menge oder Sequenz von Konstruktionsschritten, die zusammen die Problemlösung darstellen.
1. Eingabe der Werte der Problemmerkmale durch den Benutzer.
2. Auswahl eines Skelettplanes mit den Regeln aus
"Bedeutung" der Merkmale.
3. Setze die "Elemente" des Skelettplanes auf eine globale Datenstruktur AKTUELLE_KONSTRUKTION.
4. Solange es einen Konstruktionsschritt in AKTUELLE_KON-
STRUKTION gibt, dessen Verfeinerung nicht leer ist, wiederhole:
4.1 Wähle einen Konstruktionsschritt aus AKTUELLE_KON- STRUKTION aus, dessen Verfeinerung nicht leer ist.
Selektiere mit den Bedeutungsregeln des ausgewählten Konstruktionsschrittes K einen Nachfolger K‘. Falls dabei auf andere Konstruktionsschritte zugegriffen werden muss, stelle die Verfeinerung zurück, bis die anderen Konstruktionsschritte bearbeitet sind. Ersetze K in AKTUELLE_KONSTRUKTION durch K‘.
4.2 Wenn K‘ ein Skelettplan ist, ersetze K‘ in AKTUELLE_
KONSTRUKTION durch die Elemente von K‘.
5. Ausgabe der Konstruktionsschritte von AKTUELLE_KON- STRUKTION.
Beispiel: Friedland’s MOLGEN (Planung molekulargenetischer Experimente
Ziel:
1.
2.
Planung eines Experimentes zur Festlegung von „Intrastrang-
Komplementarität“ in einer DNA (d.h. Feststellung, ob ein DNA-Strang zueinander komplementäre Teilstücke enthält).
Auswahl des Skelettplanes: Für „Intrastrang-Komplementarität“ ist der angegebene Skelettplan abgespeichert.
Verfeinerung: Die einzelnen Operatoren werden stufenweise immer mehr präzisiert (das Endergebnis steht auf der rechten Seite).
(1) (2) (3) (4)
Denaturiere (Spalte die Stränge der DNA) Renaturiere (Umkehrung der
Denaturierung)
Zerstöre alle einsträngige DNA Finde die restliche DNA
Erhitze die Probe
Schnelles Abkühlen der Probe Benutze das Enzym „S1-Nuclease“
Benutze die Technik „Gel-Filtration“
Skelettplan Verfeinerung
Varianten des Skelett-Konstruierens
• Backtracking im Und/Oder-Graph: Die Auswahl von Lösungselementen kann widerrufen werden.
• Generate-and-Test: Verzicht auf Benennung von allen Knoten, stattdessen Funktion, die zu einem Knoten Nachfolgeknoten generiert; weitere Funktion, die
Nachfolgeknoten bewertet (entspricht Auswahlregeln).
Generate-and-Test kann auch als Hill-Climbing-Suche in generierten Und/Oder-Graphen aufgefasst werden
• Erweiterte Diagnostik (Erweitertes Establish-Refine):
Diagnostik mit Und-Knoten.
Vorschlagen-und-Verbessern
Kernidee: plausible Parameterwerte vorschlagen, Konsequenzen berechnen und ggf. gezielt korrigieren.
Wissensrepräsentation: Parameter, Regeln und Constraints.
Lösungsfindung: Schlage Werte für Parameter mit
Vorwärtsverkettung von Regeln vor, überprüfe die Konsistenz mit Constraints und korrigiere ggf. Parameterwerte mit
Korrekturregeln einschl. Belief-Revision.
P1 P2
P3 P4
P5 P6
P7
P1 P2
P3 P4
P5 P6
Vorschlagsregel P7
Überwachungs-Constraint Korrekturregel
a) b)
a) zyklische Berechnung mit Optimierungsmethoden b) Vorschlagen-und-Verbessern
Bekanntes Beispiel: Fahrstuhlkonfigurierung mit SALT/VT Erweiterung für Scheduling: Vorschlagen-und-Vertauschen
Wissensrepräsentation und Problemlösungsalgorithmus
Wissensrepräsentation:
• Parameter (mit Bedeutung: Regeln oder Constraints)
• Vorschlags-Regel (berechnet Parameter)
• Constraint (überwacht Konsistenz zwischen Parametern und Problemmerkmalen; mit Korrektur: Korrektur-Regel)
• Korrektur-Regel (verändert Parameter) Problemlösungsalgorithmus:
Eingabe: partielle Anfangsbelegung von Parametern
Ausgabe: vollständige und konsistente Parameterbelegung
1. Auswertung der Vorschlagsregeln mit Vorwärtsverkettung oder Rückwärtsverkettung mit vordefinierter Parameter-Abar- beitungs-Reihenfolge.
Wenn kein Widerspruch offen ist,
dann Ausgabe der Parameterbelegung.
2. Falls ein Constraint einen Widerspruch entdeckt, unterbreche Schritt 1 und:
2.1 Berechne mit der zugehörigen Korrektur-Regel aus
"Korrektur" des Constraints einen neuen Parameterwert (der den Widerspruch aufhebt).
2.2 Berechne die Konsequenzen des neuen Parameterwertes und revidiere insbesondere alle davon abhängigen, be- reits berechneten Parameter-Werte.
2.3 Wenn nach Abschluss der Revision mit einem Constraint ein anderer Widerspruch entdeckt wird,
dann wenn noch nicht eine bestimmte Anzahl von Korrekturversuchen durchgeführt wurde,
dann wiederhole Schritt 2,
sonst annulliere alle bisherigen Korrekturversuche und wiederhole Schritt 2, aber ignoriere dabei alle Constraints der um 1 erhöhten, alten Prioritätsstufe (die mit 0 initialisiert ist);
sonst fahre an der unterbrochenen Stelle mit Schritt 1 fort.
Least-Commitment-Strategie
Kernidee: Reformuliere das Problem als (einfaches) Constraint-Problem und nutze Constraint-Propagierung Wissensrepräsentation:
1. Phase: Parameterklassen & Constraint-Generierungsregeln;
2. Phase: Parameter & Constraints Problemlösungsalgorithmus:
Eingabe: Parameterklassen, Vorgabe einiger Parameterwerte.
Ausgabe: Eindeutige Wertebelegung aller Parameter.
1. Eingabe der Anzahl und Typen von Parameterklassen.
2. Instanziierung von Parametern und teilweise Erfragung der Vorgabewerte.
3. Vorwärtsverkettete Abarbeitung der Constraint-Generie- rungsregeln zur Instanziierung von Constraints.
4. Auswertung der Constraints durch Constraint-Propagie- rung. Falls der aktuelle_Wertebereich eines Parameters leer ist, wird der Widerspruch durch Revision von vorge- gebenen Parameterwerten oder Aufheben von Constraints unter Berücksichtigung der Prioritäten aufgehoben.
5. Falls keine eindeutige Lösung gefunden wurde, d.h. die aktuellen_Wertebereiche der Parameter noch Werte- mengen enthalten, wird ein Spezial-Algorithmus zur Generierung einer eindeutigen Lösung benutzt.
Bekanntes Beispiel: Stefik’s MOLGEN (molekulargen. Planung)
Beispiel zu Least-Commitment:
Arbeitsplanung mit ExAP
Eingabe: Beschreibung eines Werkstücks
Ausgabe: Arbeitsplan mit Reihenfolge von Operatoren, die Aufspannungswechsel minimiert.
Beispiel:
FL-5 NU-1
FL-3 FL-2
AB-4 FL-6
BO-7, 8, 9
FL-4
BO-1, 2, 3
AB-1 FL-1
AB-2 BO-4, 5, 6
AB-3
Beispielwerkstück mit 20 Bearbeitungselementen:
• 6 Grundflächen FL-1, FL-2, Fl-3, FL-4, Fl-5, Fl-6;
• 4 Absätze AB-1, AB-2, AB-3, AB-4;
• 1 Nut NU-1 und
• 9 Bohrungen BO-1 bis BO-9.
Für jedes Bearbeitselement ist eine Operation notwendig, für die das Werkstück in einer bestimmten Aufspannung gehalten werden muss.
Beispiel (2)
Beispiel für Constraint-Generierungsregel:
Wenn für zwei Flächen von zwei Bearbeitungselementen die relative Toleranz zueinander kleiner als ein Schwellwert ist, dann müssen beide Bearbeitungselemente in derselben Aufspannung gefertigt werden (Priorität: hoch).
Constrainttypen:
• (fertigbar A1 {OP1, ... , OPn}): In der Aufspannung A1 kön- nen die Operationen {OP1, ... , OPn} gefertigt werden.
• vor: (vor OP1 OP2): OP1 muss vor OP2 ausgeführt werden.
• sa: (selber_Arbeitsgang OP1 OP2): OP1 und OP2 müssen im selben Arbeitsgang, d.h. in derselben Aufspannung, gefertigt werden.
• oa: (abhängig OP1 {OP2, ... , OPn}): Wenn ein Element aus der Menge {OP2, ... , OPn} in einer Aufspannung gefertigt wird, in der auch OP1 gefertigt werden kann, dann muss OP1 in einer dieser Aufspannungen gefertigt werden.
• (sperrt OP1 {A1, ... , An}): Die Ausführung von OP1 macht die Aufspannungen {A1, ... , An} unmöglich.
Liste der generierten Constraints:
BE
FL-1 FL-2 FL-3 FL-4 FL-5 FL-6 NU-1
OP-i
OP-1 OP-2 OP-3 OP-4 OP-5 OP-6 OP-7
(vor OP-i OP-j)
(OP-8,9) (OP-7,11,21,22) (OP-9,21,22,24) (OP-8,23) (OP-7,23,24,25) (OP-11)
-
(sa OP-i OP-j)
- - - - - (OP-11) -
(oa OP-i op-j)
(OP-8,9) (OP-7,11,22) (OP-9,22,24) (OP-8,23) (OP-7,23,24,25) -
-
Beispiel (3)
Liste der fertigbaren Operationen pro Aufspannung:
Nr.
A-1 A-2 A-3 A-4 A-5 A-6 A-7 A-8 A-9 A-10 A-11 A-12 A-13 A-14 A-15 A-16 A-17 A-18 A-19 A-20 A-21 A-22 A-23 A-24
Beschr.
FL-1/3/5 FL-1/3/6 FL-1/4/5 FL-1/4/6 FL-1/5/3 FL-1/5/4 FL-1/6/3 FL-1/6/4 FL-2/3/5 FL-2/3/6 FL-2/4/5 FL-2/4/6 FL-2/5/3 FL-2/5/4 FL-2/6/3 FL-2/6/4 FL-3/1/5 FL-3/1/6 FL-3/2/5 FL-3/2/6 FL-3/5/1 FL-3/5/2 FL-3/6/1 FL-3/6/2
Aufspannungen Mögliche
Operationen OP-2,7,21,26 OP-2,5,7,21 OP-2,7,26 OP-2,5,7 OP-2,4,7,21,29 OP-2,3,7,21 OP-2,4,21 OP-2,3,21 OP-1,28 OP-1,5,28 OP-1,27 OP-1,5,27 OP-1,4,27,28 OP-1,3,27,28 OP-1,4 OP-1,3 OP-4 OP-4,5 OP-4,21 OP-4,5,21 OP-4,2,21,29 OP-4,1,27 OP-4,2,21 OP-4,1
Aufspannungen Nr.
A-25 A-26 A-27 A-28 A-29 A-30 A-31 A-32 A-33 A-34 A-35 A-36 A-37 A-38 A-39 A-40 A-41 A-42 A-43 A-44 A-45 A-46 A-47 A-48
Beschr.
FL-4/1/5 FL-4/1/6 FL-4/2/5 FL-4/2/6 FL-4/5/1 FL-4/5/2 FL-4/6/1 FL-4/6/2 FL-5/1/3 FL-5/1/4 FL-5/2/3 FL-5/2/4 FL-5/3/1 FL-5/3/2 FL-5/4/1 FL-5/4/2 FL-6/1/3 FL-6/1/4 FL-6/2/3 FL-6/2/4 FL-6/3/1 FL-6/3/2 FL-6/4/1 FL-6/4/2
Mögliche Operationen
OP-3 OP-3,5 OP-3 OP-3,5 OP-3,2,7 OP-3,1,28 OP-3,2 OP-3,1 OP-4 OP-3 OP-4,26 OP-3,26 OP-2,7,26 OP-1,7,26 OP-2,7,26 OP-1,7,26 OP-5,4 OP-5,3 OP-5,4,7 OP-5,3,7 OP-5,2,7 OP-5,1,7 OP-5,2 OP-5,1
Ergebnis der Constraint-Auswertung:
1. Arbeitsgang:
- Aufspannung: A-26
- Operationen: OP-3, OP-5
- Bearbeitungselemente: FL-3, FL-5 2. Arbeitsgang:
- Aufspannung: A-13
- Operationen: OP-1, OP-4, OP-27, OP-28
- Bearbeit.elem.: FL-1, FL-4, AB-1, BO1,2,3, AB2, BO4,5,6 3. Arbeitsgang:
- Aufspannung: A-5
- Operationen: OP-2, OP-7, OP-21, OP-29 - Bearbeit.elem.: FL-2, NU-1, AB-3, BO7,8,9 4. Arbeitsgang:
- Aufspannung: A-36 - Operationen: OP-26
Übersicht über
Zuordnungs- bzw. Schedulingmethoden
Struktur:
Angebote Nachfragende
10
15
Bei Schedulingproblemen werden für die Angebote zusätzlich Termine bestimmt.
Wenn die Kostenfunktion nicht linear ist, gibt es im
allgemeinen keine effizienten optimalen Lösungsverfahren.
Problemlösungsmethoden:
1. Mathematische Methoden 2. Inkrementelle Suche
3. Iterative-Repair-Verfahren (Vorschlagen und Vertauschen) 4. Genetische Algorithmen
5. Multiagentenscheduling
Mathematische Verfahren
• Graphentheoretische Verfahren: Rückführung auf kürzeste- Wege-Suche, Busacker-Goven-Algorithmus mit Worst- Case-Laufzeit: O(n3 log n)
• Quadratische Zuordnung: heuristische Eröffnungs- und Iterationsverfahren ähnlich den Suchstrategien, aber schwerer verständlich.
Busacker-Goven-Algorithmus:
Zuordnung als Maximalflußsystem
Eingabe: Nachfrageobjekte (N), Angebotsobjekte (A), Kostenfunktion k(n, a)
Ausgabe: Zuordnungen von N zu A
Anwendbarkeit: Zuordnungsprobleme mit linearer Kostenfunktion
1. Generiere den Maximalflußgraphen aus (N), (A), k(n, a) 2. Für alle Paare <i, j>
Xi, j := 0; alle Zuordnungen werden rückgesetzt
3. Wiederhole
3.1 Suche den kürzesten Weg W von der Quelle zur Senke 3.2 Falls W existiert
3.2.1 Über alle Pfeile <k, l> auf W
3.2.1.1 Falls Xkl = 0; es gab also eine Zuordnung 3.2.1.2 dann Xkl := 1
3.2.1.3 sonst Xkl := 0 3.2.2 Drehe Pfeil <k, l> um
Beispiel für Busacker-Goven-Algorithmus
Inkrementelle Suchverfahren
Variationen: Tiefensuche, Bestensuche, Hill-Climbing, Simulated-Annealing, Branch-and-Bound,
Beispiel: Inkrementelle Suche gemäß Branch-and-Bound.
Annahme: Es können 4 Kandidaten im Speicher gehalten werden.
1. Nach Expansion des Start-Knoten sind Knoten 1, 2, 3, 4 aktiv.
2. Davon wird Knoten 2 mit der besten Bewertung (0) expandiert.
3. Die Nachfolger 5, 6, 7, sprengen den Speicher. Daher müssen einige Knoten gelöscht werden, z.B. die mit der schlechtesten Bewertung, nämlich 5 und 1, so dass Knoten 3, 4, 6, 7 aktiv sind.
4a. Nach Expansion von Knoten 6 werden die Knoten 8 und 9 hinzugefügt, wofür Knoten 3 gelöscht wird (aktiv: 4, 7, 8, 9).
Start
N1 zu A2 N1 zu A3
N1 zu A2 N2 zu A3 N3 zu A1
N4 zu A1 N1 zu A4 N1 zu A2
N2 zu A3 N1 zu A2
N2 zu A1
N1 zu A2 N3 zu A1
N1 zu A1 N4 zu A1
N4 zu A1 N1 zu A2
-3 0 -2 -1
-3
N1 zu A2 N2 zu A3 N3 zu A4
0
-2 -1
-1 0
-1
1 2 3 4
5 6 7
8 9
10 11
Iterative-Repair-Suchverfahren
Variationen:
• MinConflicts [Minton et al. 90] (nur einstufige Vertauschungen)
• Iterative Repair [Zweben et al. 94] (Verbesserung von MinConflicts um Simulated Annealing & Schätzfunktionen)
• GSAT [Selman et al. 92] (Seitschritte, Zeitschranke für Korrekturpfade)
• TabuSearch (Speichern schlechter Teilzustände für gewisse Zeit, die Suchraum beschränken)
• Vorschlagen-und-Vertauschen [Poeck et al. 92]: Integration
N1 zu A1 N2 zu A2 N3 zu A3 N4 zu A4
N1 zu A2 N2 zu A1 N3 zu A3 N4 zu A4
N1 zu A2 N2 zu A3 N3 zu A1 N4 zu A4
N1 zu A2 N2 zu A3 N3 zu A4 N4 zu A1
(N1 <-> N2) (N2 <-> N3) (N3 <-> N4)
-5 -3 -2 0
Vorschlagen-und-Vertauschen
Auswahl eines Nachfragerobjektes
Auswahl eines Angebotsobjektes
Restriktions- Verletzung ?
Suche Vertauschungen und führe sie aus.
AlleObjekte zugeordnet?
Zuordnung
Optimierung
nein
ja nein
ja
1
2
3
Variationen bei Vorschlagen-und- Vertauschen
Bis alle Nachfrager zugeordnet sind, wiederhole 1-3
1. Auswahl eines Nachfragerobjektes 1.1 Zufällige Auswahl.
1.2 Statische Vorsortierung der Vorschlagsobjekte.
1.3 Statische Vorsortierung mit dynamischer Modifikation.
1.4 Dynamische Sortierung.
2. Auswahl des Angebotobjektes ggf. mit Zeitintervall 2.1 Zufällige Auswahl eines Partnerobjektes.
2.2 Wähle Partnerobjekt mit minimaler Verletzung der Randbedingungen.
2.3 Wähle Partnerobjekt mit minimaler Verletzung der Randbedingungen und berücksichtige als sekundäres Kriterium, dass durch die Zuteilung zukünftige Zuord- nungen möglichst wenig eingeschränkt werden.
3. Lokale Optimierung (alle Suchstrategien möglich) 3.1 Hill-Climbing
3.2 Bestensuche (Branch-and-Bound) mit Zeitschranke 3.3 Systematisches Ausprobieren aller n-stufigen
Vertauschungen (mit n = 1 oder n = 2 oder ...)
4. Globale Optimierung (Suche analog zu 3.)
Beispiel: Vorschlagen-und-Vertauschen
(1) Wissensrepräsentation
Angebote:
• Name
• Inkompatibilitäten (Liste von inkompatiblen Nachfragenden)
• Präferenzen (Liste von Nachfragenden mit Präferenzen, z.B. {N1 5, N2 1, N3 -3})
Nachfragende:
• Name
• Inkompatibilitäten (Liste von inkompatiblen Angeboten)
• Präferenzen (Liste von Angeboten mit Präferenzen, z.B. {A1 4, A2 1, A3 -2})
Vorschläge:
- Suche-Angebot (NACHFRAGENDER = N): Schlage alle Objekte X vom Typ "Angebot" vor, die nicht auf dem Attribut "Inkompatibilitäten" von N verzeichnet sind und bei denen möglichst X.Nachfragender noch nicht belegt ist. Ordne die Vorschläge so, daß X unter N.Präferenzen einen möglichst hohen Wert hat.
- Suche-Nachfragenden (ANGEBOT = A): "Schlage alle Objekte X vom Typ "Nachfragenden" vor, die möglichst nicht auf dem Attribut "Inkompatibilitäten" von A verzeichnet sind und bei denen möglichst X.Angebot noch nicht belegt ist. Ordne die Vorschläge so, daß X unter A.Präferenzen einen möglichst hohen Wert hat.
Constraints [mit Gewichtung]:
• Belegt (ANGEBOT) [3]
Bsp.: Vorschlagen-und-Vertauschen (2)
(2) Einfache Problemlösungsmethode mit statischer Vorsortierung
Agendasortierfunktion: Ordne alle Objekte nach der Länge ihres Attributes "Inkompatibilitäten" und bei Gleichheit nach der Länge von "Präferenzen".
Eingabe: Spezifikation der Angebote und Nachfragenden mit Eigenschaften
Ausgabe: Zuordnung zwischen Angeboten und Nachfragen- den unter Berücksichtigung ihrer Eigenschaften 1. Plazierung der Objekte gemäß der Agenda-Sortierfunktion
auf eine AGENDA.
2. Solange AGENDA nicht leer wiederhole:
2.1 Auswahl eines Objektes aus AGENDA, zu dem mit seiner Vorschlags-Prozedur ein Partner-Objekt ermittelt wird.
2.2 Abspeicherung der Zuordnung und Ausführung
direkter Folgeaktionen, insbesondere Abspeicherung der eventuell erforderlichen inversen Zuordnung und Durchführung von Agenda-Manipulationen.
2.3 Überprüfung der Constraints, und falls welche verletzt sind: Ausführung der zugehörigen Korrekturen
(einstufige Vertauschungen).
3. Wiederhole Schritt 2.3 für globale Zuordnung mit Berücksichtigung zweistufiger Vertauschungen.
4. Ausgabe der Zuordnungen für alle Objekte.
Beispieldaten: Kostenmatrix
Angebote /
Nachfragende N1 N2 N3 N4 N5
A1 30 -50 10 -30 -10
A2 0 -20 -20 0 -20
A3 5 -25 5 -5 -5
A4 -10 -10 -10 10 -10
A5 -20 -60 0 20 40
Genetische Algorithmen
Kombination von Zuordnungen zur Generierung neuer Zuordnungen
• Bei Genetischen Algorithmen definiert die Größe der
„Population“, wie viele Zuordnungen gleichzeitig aktiv sind.
• Von einer Generation zur nächsten können entweder alle alten Zuordnungen (Eltern-Generation) durch ihre Nachfolger (Kinder-Generation) ersetzt werden, oder nur die besten n Kinder verdrängen die schlechtesten n Eltern.
• Bei Genetischen Algorithmen können nicht nur lokale Verbes- serungen (Mutationen) benutzt werden, die den obigen (meist einstufigen) Vertauschungen entsprechen, sondern auch zwei komplette Zuordnungen gemischt werden (Rekombination).
Das ist vor allem dann sinnvoll, wenn sich das Zuordnungs- problem modularisieren lässt. Dann nimmt man von jeder der beiden Eltern-Zuordnungen einige Module und kombiniert diese zu einer neuen vollständigen Kind-Zuordnung.
• Die resultierenden Inkonsistenzen, die sich aus meist unver- meidlichen Abhängigkeiten zwischen den Modulen ergeben, müssen in einem zusätzlichen Reparaturschritt korrigiert
N1 zu A1 N2 zu A2 N3 zu A3 N4 zu A4
N1 zu A2 N2 zu A1 N3 zu A4 N4 zu A3
N1 zu A2 N2 zu A3 N3 zu A1 N4 zu A4
N1 zu A1 N2 zu A2 N3 zu A4 N4 zu A3
N1 zu A2 N2 zu A3 N3 zu A4 N4 zu A3
N1 zu A2 N2 zu A3 N3 zu A4 N4 zu A1 Reparatur
Elterngeneration
Kindergeneration
-3
-5 -2
-3
0
Multiagentenzuordnung
a) Marktplatz
b) echte Verhandlungen
Gips entfernen Röntgen Untersuchung Neu eingipsen
Behandlungsbegleitender Agent
Patient 1
Verhandlungen
Abbildung auf Repräsentation der „Zuordnungsprobleme“
Kopplung von Problemlöser und Agenten
Marktplatz (Contract Net Protocol)
Variationen: Kompetenz der einzelnen Agenten, Art der Kommunikation & Kooperation
N11
N12
N13
Agent N1 Agent A1
frei:
Mo 10-18 Di 9-12 Mi 8-18 belegt:
Di 7-9 N55
Agent A2 frei:
Mo 10-12 Di 9-14 Mi 8-18
Ausschreibungen:
N11 (Zeitraum: Mo 10-12, Dauer: 1 Stunde, Maschinentyp: A, Sonderwünsche: ....) N12 (Zeitraum: Di 8-18, Dauer: 3 Stunden,
Maschinentyp: A, Sonderwünsche: ....)
Angebote für N11:
A1 Mo 10-11, Kosten 2 A2 Mo 10-11, Kosten 3 Angebote für N12:
A1 Di 9-12, Kosten 8 A2 Di 11-14, Kosten 6
Echte Verhandlungen unter Scheduling-Agenten
• Scheduling-Agenten sind Scheduling-Problemlöser mit Verhandlungsfähigkeiten.
• Verhandlungen werden über Sprechakte gesteuert.
• Sprechakte beziehen sich entsprechend von Verhandlungsprotokollen aufeinander.
• Scheduling-Agenten besitzen lokale Autonomie, nach welcher Strategie sie verhandeln (abgebildet im
Problemlöser)
Beispiel für Verhandlungen
Verhandlungsstories
mit Rollen: Initiator (I), Angesprochener (A) Story:
I: Hätte gerne einen Termin zur OP am Dienstag oder Montag A: Dienstag 14:00 ?
I: Nein da nicht, einen anderen bitte.
A: Passt 15 Uhr ?
I: Besser aber auch nicht perfekt
A: Wie wäre es mit Mittwoch zur selben Zeit ? I: Diesen Termin hätte ich gern
A: Einverstanden!
Variationen:
• Entschuldigung, wir können den Termin am Mittwoch nicht beibehalten. Sie müssen leider einen neuen Termin
vereinbaren.
• Ist es möglich meinen Termin zu verschieben? - Wir könnten sie am Mittwoch noch drannehmen? - Gut, Ich hätte dann lieber diesen - Einverstanden
• Können sie mir alle möglichen Termine zur CT am Dienstag nennen ? – Es ginge um 14:00 Uhr, 16:00 Uhr und um 17:00 Uhr. – Ich hätte gerne den um 16:00 Uhr – Das geht nicht, er wurde zwischenzeitlich vergeben. ....
Terminverhandlungsprotokolle
Termin erbitten
Terminbitte entsprechen Termin absagen
Terminabsage annehmen
Terminänderung anbieten
Terminänderung prüfen
Terminänderung erbitten
Ablaufdiagramm: Termin erbitten
lockere Restriktionen
akzeptabel ?
verschärfe Restriktionen
Ja Nein
Eintrag in lokalen Kalender Bitte um Termin
Vorschlag Absage
Zusage
vereinbare
vorgeschlagenen Termin Absage
Strategie ? Rollen ?
Servicenachfrager Initiator
Auslöser ?
Aufgabe steht an!
Absage
Ablaufdiagramm: Terminbitte entsprechen
Suche Vorschlag
Vorschlag ? Nein
markiere Zeit als reserviert
Ja Terminbitte
Absage
Vorschlag
übermitteln Terminvereinbarung
Rollen ?
Servicebieter Angesprochener
Auslöser ?
eingehender Sprechakt
Suche Vorschlag
Absage