Implementation und Evaluierung innovativer Heuristiken für die Anordnung von Entwurfsentscheidungen Diplomarbeit Thomas Scharler Universität Hamburg, FB Informatik, AB Tech
Implementation und Evaluierung innovativer Heuristiken für die Anordnung von Entwurfsentscheidungen Einleitung Entscheidungsgraph Lösungsraum, Nachbarschaft Lösungsverfahren für Entscheidungsgraphen Testsystem Testdaten Ergebnisse Ausblick Diskussion
Computerunterstützung des Planungsprozesses ist sinnvoll bei Problemen, die komplex, neuartig, unübersichtlich, kostenintensiv oder kritisch sind.
Ein System zur Planungsunterstützung sollte schnell, zuverlässig, verzögerungsfrei und bedienungsfreundlich sein. Das Problem sollte grafisch dargestellt werden können.
Bestehende Systeme haben folgende Einschränkungen: Nur Beschreibung rein sequenzieller und paralleler Abhängigkeiten (li, co). Beschreibungen müssen widerspruchsfrei sein. Problembeschreibung kann nicht grafisch dargestellt werden. Lange Verzögerungen wegen Tiefensuche. Trotz der Einschränkungen bleibt das grundlegende Scheduling-Problem NP-schwer.
Ansatz von Rauscher: Der Designer erstellt selbst einen Entscheidungsgraphen für ein Planungsproblem. Der Graph hat folgende Eigenschaften: Die Knoten repräsentieren die Entscheidungen Die bewerteten Kanten repräsentieren die kausalen Abhängigkeiten. Es gibt Kanten für serielle, parallele und andere Abhängigkeiten. Der Graph darf Widersprüche und Mehrfachkanten enthalten.
Automatische Umwandlung eines Entscheidungsgraphen in einen Plan:
Kantentypen: Präzedenz, a vor b Simultan, a gleichzeitig mit b Attraktor, a möglichst nahe bei b Distraktor, a möglichst weit entfernt von b Mindestabstand Maximalabstand Abstand
Beispielgraph // Beispielgraph graph beispiel { nodes { a, b, c, d, e, f } constraints { a before b; a before f; b near f; b before c; c parallel d; d before c, priority = 5.0; d before e, priority = 5.0; f before e; } } Beste Lösung: [ a ] [ b, f ] [ d ] [ c ] [ e ] Qualität=1
Kodierung einer Lösung Den Knoten werden ganze Zahlen > 0 zugeordnet Die Null ist Trennzeichen zwischen Schritten Beispiel: [ (a) (b, f) (d) (c) (e) ] Knoten: a:1, b:2, c:3, d:4, e:5, f:6 Kodierung: [ 1, 0, 2, 6, 0, 4, 0, 3, 0, 5 ]
Zwei Lösungen sind benachbart, wenn: zwei benachbarte Schritte vertauscht sind. Beispiel: [ (1) (2) (3) (4) ] und [ (2) (1) (3) (4) ] zwei nicht-benachbarte Schritte vertauscht sind. Beispiel: [ (1) (2) (3) (4) ] und [ (3) (2) (1) (4) ] zwei Schritte zusammengefasst sind. Beispiel: [ (1) (2) (3) (4) ] und [ (1,2) (3) (4) ] ein Schritt aufgebrochen wird. Beispiel: [ (1) (2, 3) (4) ] und [ (1) (3) (2) (4) ] eine Lösung gespiegelt wird. Beispiel: [ (1) (2) (3) (4) ] und [ (4) (3) (2) (1) ]
Die Bewertungsfunktion liefert ein Maß für die Qualität einer Lösung. Addiert man die Bewertungen aller verletzten Kanten, dann besitzt jede optimale Lösung eine Qualität q=0. Bewertung einer verletzten seriell-, parallel- oder Abstand-Kante: Bewertung einer verletzten Attraktor-Kante: q i =c w i d j, k q i =w i Bewertung einer verletzten Distraktor-Kante: q i =c w i l d j, k 1
Für die Lösung eines Entscheidungsgraphen gibt es verschiedene Möglichkeiten: Tiefensuche Uninformierte Heuristiken (First-Best, Simulated Annealing, genetische Algorithmen) Informierte Heuristiken (Tabu-Suche, schrittweises Verfeinern)
First-Best
Als Steuerfunktion findet ab der 1. Verzweigung die (modifizierte) Bewertungsfunktion Anwendung. In der ersten Ebene muss eine separate Funktion verwendet werden. auf serielle Kanten reduzieren f(v) = 5-2 = 3
f(v) für die erste Ebene: 1 a -inf (Quelle) 2 d -inf (Quelle) 3 b 0 4 f 0 5 c +inf (Senke) 6 e +inf (Senke)
First-Best: Momentaufnahme
Hillclimbing Generiere eine Nachbarlösung und bestimme deren Qualität. Ersetze Ausgangspunkt, wenn die neue Lösung besser ist.
Simulated Annealing Simuliert das Erstarren von flüssigem Metall. Bei langsamer Abkühlung entsteht ein Kristallgitter mit minimalen Spannungen, d.h. minimaler Gesamtenergie. Übertragen auf Optimierungsprobleme: Die Bewertungsfunktion wird als,,energie'' interpretiert. Eine schlechte Bewertung entspricht einer hohen Energie. Ein Abkühlungsschema führt zu einer Lösung mit einer geringen Energie.
Simulated Annealing: Algorithmus Erzeuge Nachbar-Konfiguration und bewerte diese. Ist die Bewertung schlechter als die augenblickliche, dann ersetze die augenblickliche Konfiguration mit der Wahrscheinlichkeit P=e dq k Tabs Wiederhole, bis Abbruchkriterium erreicht ist.
Da k=const, wird im Folgenden der Term k Tabs durch einen Steuerfaktor T ersetzt. Abkühlungsschema: In jedem Zeitschritt wird die Temperatur reduziert und der Suchraum somit eingeengt. Die theoretisch beste Abkühlung verwendet den Metropolis-Algorithmus T '= c T, der zu einer logarithmischen Abkühlung führt.
Die Wahl der Starttemperatur ist kritisch. Einen guten Anfangswert erhält man durch Generierung einiger zufälliger Lösungen anhand der Formel T s = ln P 0
Statistik - Nomenklatur Mittelwert X = 1 n n X i Varianz DX = 1 n n x k X 2 Standardabweichung = DX Standardfehler se= n
Produktive Suche Ziel: Abbrechen der Suche wenn diese unproduktiv, d.h. nicht zufällig ist. Vorgehen: Bestimmung des Mittelwerts und des mittleren Standardfehlers in einem Zeitfenster. Verlässt die Suche das Fenster von X ±2 se, wird die Temperatur verringert.
Genetische Algorithmen Übertragung des Effekts der Anpassung auf die Gebiete Ökonomie, Spiel-Theorie, KI etc. Jedes Individuum wird vollständig durch seine genetische Sequenz beschrieben. Eine Funtion f() liefert für ein Individuum ein Maß für dessen Fitness. Mit Hilfe von genetischen Operationen werden neue Individuen erzeugt.
Grundform eines genetischen Algorithmus': Wiederhole bis zum Erreichen eines Abbruchkriteriums: 1) Wähle aus der Population eine Anzahl Individuen aus (evtl. mit Bevorzugung fitterer Individuen) 2) Wende auf die Auswahl die genetischen Operationen Mutation, Rekombination und Reproduktion an. 3) Ersetze zufällig gewählte Individuen durch die in 2 erzeugten Individuen. 4) Bestimme die Fitness der neuen Population.
Punkt 1): Auswahlmethoden Gleichverteilung Best of n (n, µ)-auswahl Roulette-Auswahl Lineares Ranking Negativ-exponentielles Ranking
Roulette-Auswahl Nachteil: In jedem Zeitschritt muss die Fitness der Gesamtpopulation bestimmt werden.
Lineares Ranking
Punkt 2) Genetische Operationen Mutation Rekombination Reproduktion Selektion Mutationsoperationen entsprechen den Nachbarschaftsoperationen.
Rekombination Zwei Individuen werden jeweils zweigeteilt und über Kreuz zusammengefügt. Beispiel: [ (a) (b) (c) (d) (e) (f) ] [ (a, d) (e) (b, c) (f) ] [ (a) (b) ] [ (c) (d) (e) (f) ] [ (a, d) (e) ] [ (b, c) (f) ] [ (a) (b) (b, c) (f) ] [ (a, d) (e) (c) (d) (e) (f) ] [ (a) (b, c) (d) (e) (f) ] [ (a, d) (e) (c) (b) (f) ]
Freiheitsgrade der ausgewählten Algorithmen First Best 0 Hillclimbing 5 Simulated Annealing, t=const 9 Simulated Annealing, produktiv 14 Genetischer Algorithmus 11
Als Testdaten standen zur Verfügung: 10 Graphen zu realen Projekten im AB TECH
Je 10 generierte Graphen mit 20 bzw. 100 Knoten
Ausblick Steuerfunktionen für First-Best verfeinern Hybride Verfahren Nutzung des Blackboards durch verteilte Verfahren Erstellen weiterer Entscheidungsgraphen für reale Projekte