Operations Research und Künstliche Intelligenz
0909
2019
978-3-8385-4620-9
978-3-8252-4620-4
UTB
Jörg Homberger
Gabi Preissler
Harald Bauer
Dieses Buch behandelt zentrale Themen des Operations Research und der Künstlichen Intelligenz und zeigt deren enge Verknüpfung auf. Neben klassischen Bereichen wie der Linearen Optimierung, der Graphentheorie und der Kombinatorischen Optimierung werden naturanaloge heuristische Verfahren vorgestellt und die Multiagententechnologie, die ein bedeutendes Teilgebiet der Künstlichen Intelligenz darstellt, behandelt. Hierbei werden sowohl autonome Agenten, die bei der Lösung verteilter Probleme zusammenarbeiten, als auch die Zusammenarbeit der Agenten mit Hilfe von Verfahren aus dem Operations Research optimiert.
Überblick über die behandelten Themenfelder: Lineare Optimierung, Graphentheorie, Kombinatorische Optimierungsprobleme, Ameisenalgorithmen, Genetische Algorithmen, Agenten-basierte Verhandlungen, Schwarmintelligenz und maschinelles Lernen.
<?page no="1"?> Jörg Homberger Gabi Preissler Harald Bauer Operations Research und Künstliche Intelligenz <?page no="3"?> Jörg Homberger, Gabi Preissler, Harald Bauer Operations Research und Künstliche Intelligenz UVK Verlag · München <?page no="4"?> Dr. Jörg Homberger, Dr. Gabi Preissler und Dr. Harald Bauer lehren Themen aus der Informatik und Mathematik an der Hochschule für Technik Stuttgart. Online-Angebote oder elektronische Ausgaben sind erhältlich unter www.utb-shop.de. Bibliografische Information der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über <http: / / dnb.ddb.de> abrufbar. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. © UVK Verlag München 2019 - ein Unternehmen der Narr Francke Attempto Verlag GmbH & Co. KG Einbandgestaltung. Atelier Reichert, Stuttgart Cover-Illustration: © iStockphoto alphaspirit Druck und Bindung: CPI books GmbH, Leck UVK Verlag Nymphenburger Strasse 48 · 80335 München Tel. 089/ 452174-65 www.uvk.de Narr Francke Attempto Verlag GmbH & Co. KG Dischingerweg 5 · 72070 Tübingen Tel. 07071/ 9797-0 www.narr.de UTB-Nr. 4620 ISBN 978-3-8252-4620-4 <?page no="5"?> Vorwort Durch die zunehmende wirtschaftliche Globalisierung und neue Technologien der Digitalisierung steigt der Kosten- und Effizienzdruck auf Wirtschaftsunternehmen immens. Deshalb gewinnen in der Unternehmenssteuerung die optimale Gestaltung und Austaktung von Prozessen eine immer größere Bedeutung. Dies betrifft unter anderem Fertigungsabläufe in der Produktion, die Bestandsplanung, die Planung in Konstruktion und Entwicklung, die Standortplanung, die zeitliche Abstimmung bei Großprojekten, die Bestimmung von Logistikkonzepten für eine bestmögliche Produktverfügbarkeit, die optimale Taktung und Steuerung im Verkehrsbereich, um nur ein paar wenige Beispiele zu benennen. In all diesen Bereichen nehmen Methoden des Operations Research eine immer größere Rolle ein. Dies wird auch durch die immer umfangreichere Datenbasis ermöglicht und befeuert, die heutzutage zur Verfügung steht. Durch die Komplexität moderner Wertschöpfungsketten verschiebt sich der Fokus der Optimierung dabei zusehends von der einzelnen Wirtschaftseinheit hin zu unternehmensübergreifenden Produktions- und Lieferketten. Dabei werden sowohl kompetitive als auch kooperative Lösungsansätze betrachtet. Dies erfordert neue, intelligente Systeme, die eine Koordination und Kooperation autonomer und eigennütziger Akteure unterstützen oder gar automatisieren. Beispiele sind automatisierte Verhandlungssysteme zur Planung in Lieferketten (engl. collaborative planning) oder intelligente Managementsysteme, die eine kooperative Produktentwicklung von selbständigen, ggf. konkurrierenden Firmen unterstützen. Darüber hinaus wächst der Bedarf an intelligenten und autonomen Systemen in technischen Anwendungen, die in der Lage sind, selbständig zu handeln und mit anderen intelligenten Systemen zu kooperieren, um besonders komplexe Probleme im Verbund zu lösen. Beispiele sind intelligente Stromnetze (unter dem Stichwort „Smart Grid“ bekannt), kooperierende Drohnen, intelligente Roboter oder autonome Fahrzeuge. Stellt eine umfangreiche Datenbasis die Grundvoraussetzung dar, damit solche Systeme überhaupt intelligent und autonom agieren können, so liefern Modelle und Methoden des Operations Research zunehmend die Werkzeuge für effiziente Lernverfahren und die optimale Systemkonfiguration, die den gewinnbringenden Einsatz in der Praxis erst ermöglichen. Sei es zur Parametrisierung einzelner Systemkomponenten (z.B. für die Optimierung eines maschinellen Lernverfahrens) oder zur Koordination intelligenter Agenten (z.B. für die gemeinsame Suche von mehreren intelligenten Agenten in einem Lösungsraum in Anlehnung an heuristische Optimierungsverfahren). Umgekehrt werden aber auch im Operations Research Konzepte der Künstlichen Intelligenz aufgegriffen. Beispielsweise werden maschinelle Lernverfahren verwendet, um Parameter eines Optimierungsverfahrens zu bestimmen. <?page no="6"?> 6 Vorwort Das vorliegende Buch verfolgt drei Zielsetzungen: Ausgewählte Grundlagen der beiden Fächer Operations Research (z.B. lineare Optimierung) und Künstliche Intelligenz (z.B. Support-Vektor-Maschinen) werden kompakt dargestellt. Hierbei geht es insbesondere um entsprechende mathematische Modelle und Methoden, die exakte Lösungen eines Problems liefern. Viele Problemstellungen sind derart komplex, dass diese nicht mathematisch exakt gelöst werden können. Neben der Komplexität steht oft auch das Problem unvollständiger Information einer exakten Lösung im Weg (in diesem Kontext wird auch der Begriff „Soft Computing“ verwendet). Zur approximativen Lösung dieser Probleme werden häufig naturanaloge Methoden im Operations Research (z.B. Evolutionäre Algorithmen, Ameisenalgorithmen) und in der Künstlichen Intelligenz (schwarmintelligente Koordination, agentenbasierte Kooperation mit automatisierten Verhandlungen) verwendet. Das zweite Ziel besteht daher darin, einen Einblick in diese Verfahren zu geben. Dabei werden auch innovative Verfahren, wie die automatisierten Verhandlungen, behandelt. Schließlich soll die enge Verbindung der beiden Fächer Operations Research und Künstliche Intelligenz aufgezeigt werden. So werden einerseits Methoden des Operations Research eingesetzt, um intelligente Systeme zu optimieren. Andererseits werden auch Methoden der Künstlichen Intelligenz verwendet, um Parameter für Methoden des Operations Research zu erlernen. Aufgrund der rasanten Entwicklungen im Bereich Data Analytics steigt derzeit der Bedarf von Unternehmen an qualifizierten Mitarbeiterinnen und Mitarbeitern sprunghaft an, die Grundkenntnisse in den beiden Bereichen Operations Research und Künstliche Intelligenz mitbringen und verknüpfen können. Deshalb ist es wichtig, dass in den Studiengängen der Informatik, der Ingenieurwissenschaften und der Betriebswirtschaft zumindest grundlegende Kenntnisse aus den beiden Gebieten vermittelt werden und deren Zusammenwirken aufgezeigt wird. Das vorliegende Buch versucht einen Beitrag zu leisten, diese Synthese auch in der Lehre zu verankern. Unser Anliegen ist es, dass das Buch Studierende in einem Bachelor-Studium der Informatik oder der Ingenieurwissenschaften bei Vorlesungen des Operations Research und der künstlichen Intelligenz begleitet und sie beim Studium grundlegender Methoden unterstützt. Deshalb wird der Schwerpunkt nicht auf Begründungen gelegt und auf Beweise wird weitestgehend verzichtet. Wo es der Klarheit der Modelle und Methoden dient, wird aber nicht auf eine präzise mathematische Darstellung verzichtet. Behandelt werden nachfolgend die Themenfelder Lineare Optimierung, Graphentheorie, kombinatorische Optimierung, intelligente Suchstrategien, wie evolutionäre Algorithmen und Ameisenalgorithmen, intelligente Agenten, automatisierte Verhandlungen, Schwarmintelligenz sowie Aspekte des maschinellen Lernens. <?page no="7"?> Vorwort 7 Diese Themenauswahl ist einerseits der Zielsetzung für dieses Buch geschuldet und erlaubt anderseits einen kompakten Einstieg in die faszinierende Welt des Operations Research und der Künstlichen Intelligenz. Abschließend möchten wir uns bei Herrn Dr. Jürgen Schechler und dem UVK Verlag, München, für die gute Zusammenarbeit und die große Geduld bedanken, mit der sie die Entstehung dieses Buches begleitet haben. Stuttgart, im Juli 2019 Jörg Homberger Gabi Preissler Harald Bauer Liebe Leserin, lieber Leser, Lösungshinweise sowie das Programm zum Buch finden Sie unter https: / / www.uvk.digital/ 9783825246204 <?page no="9"?> Inhaltsübersicht Vorwort...........................................................................................................................5 Teil I Operations Research .......................................................................................15 1 Grundbegriffe des Operations Research ........................................................17 2 Lineare Optimierung .........................................................................................29 3 Graphentheorie ..................................................................................................71 4 Kombinatorische Optimierung ........................................................................89 Teil II Künstliche Intelligenz................................................................................ 133 5 Grundbegriffe der Künstlichen Intelligenz ................................................. 135 6 Genetische Algorithmen ................................................................................ 141 7 Evolutionsstrategien ....................................................................................... 186 8 Multiagenten-Planen....................................................................................... 211 9 Schwarmintelligenz ......................................................................................... 269 10 Ameisenalgorithmen....................................................................................... 284 11 Support-Vektor-Maschinen ........................................................................... 304 Literatur ..................................................................................................................... 347 Index .......................................................................................................................... 355 <?page no="11"?> Inhaltsverzeichnis Vorwort...........................................................................................................................5 Teil I Operations Research......................................................................15 1 Grundbegriffe des Operations Research ..................................17 Schlagwörter und Prüfungstipps............................................................17 Einleitung..................................................................................................17 Grundlegende Begriffe............................................................................20 Aufgaben...................................................................................................25 2 Lineare Optimierung .............................................................. 29 Schlagwörter und Prüfungstipps............................................................29 Einführung ...............................................................................................30 Modell der linearen Optimierung ..........................................................31 Graphische Lösung bei zwei Variablen ................................................35 Der Simplex-Algorithmus.......................................................................38 Besondere Situationen beim Simplex-Algorithmus ............................45 Der erweiterte Simplex-Algorithmus ....................................................46 Der duale Simplex-Algorithmus ............................................................50 Ganzzahlige Optimierung und Branch-and-Bound-Methode...........57 Aufgaben...................................................................................................65 3 Graphentheorie ........................................................................71 Schlagwörter und Prüfungstipps............................................................71 Einführung ...............................................................................................71 Bäume........................................................................................................79 Aufgaben...................................................................................................87 4 Kombinatorische Optimierung ............................................... 89 Schlagwörter und Prüfungstipps............................................................89 Grundbegriffe ..........................................................................................89 Rundreiseproblem ...................................................................................93 Projekt-Scheduling-Problem ............................................................... 103 Standortproblem ................................................................................... 113 <?page no="12"?> 12 Inhaltsverzeichnis Losgrößenproblem................................................................................ 117 Aufgaben ................................................................................................ 125 Teil II Künstliche Intelligenz ............................................................... 133 5 Grundbegriffe der Künstlichen Intelligenz ............................ 135 Schlagwörter und Prüfungstipps ......................................................... 135 Künstliche Intelligenz ........................................................................... 135 Intelligente Agenten.............................................................................. 138 Multiagentensysteme............................................................................. 138 6 Genetische Algorithmen ........................................................ 141 Schlagwörter und Prüfungstipps ......................................................... 141 Grundlegende Ideen ............................................................................. 141 Individuen .............................................................................................. 143 Populationsbasierter Ablauf................................................................. 150 Fitness, Selektion und Ersetzung ........................................................ 158 Initialisierung, Reproduktion, Crossover und Mutation .................. 166 Kalibrierung ........................................................................................... 170 Fallstudie Losgrößenproblem.............................................................. 170 Fallstudie: Clustering............................................................................. 175 Aufgaben ................................................................................................ 183 7 Evolutionsstrategien .............................................................. 186 Schlagwörter und Prüfungstipps ......................................................... 186 Konzepte ................................................................................................ 186 Beispiele.................................................................................................. 188 Normalverteilte Zufallszahlen ............................................................. 189 (1+1)-Evolutionsstrategie .................................................................... 191 Populationsbasierte Evolutionsstrategie ............................................ 199 Aufgaben ................................................................................................ 209 8 Multiagenten-Planen ............................................................. 211 Schlagwörter und Prüfungstipps ......................................................... 211 Dezentrale Planung durch mehrere Agenten .................................... 212 Koordination durch Verhandlung ...................................................... 219 <?page no="13"?> Inhaltsverzeichnis 13 Dezentrales Reihenfolgeproblem ....................................................... 227 Lokaler Verhandlungsmechanismus .................................................. 237 Dezentrales Losgrößenproblem ......................................................... 244 Genetischer Verhandlungsmechanismus........................................... 249 Aufgaben................................................................................................ 264 9 Schwarmintelligenz ............................................................... 269 Schlagwörter und Prüfungstipps......................................................... 269 Definition und Anwendungen ............................................................ 269 Schwarm-Simulation ............................................................................ 270 Aufgaben................................................................................................ 282 10 Ameisenalgorithmen ............................................................. 284 Schlagwörter und Prüfungstipps......................................................... 284 Vorbild Natur........................................................................................ 284 Graphen und Pheromone.................................................................... 285 Künstliche Ameisen ............................................................................. 287 Verfahrensablauf................................................................................... 296 Lernen mit Pheromonen ..................................................................... 298 Kalibrierung und Anpassung .............................................................. 301 Aufgaben................................................................................................ 301 11 Support-Vektor-Maschinen................................................... 304 Schlagwörter und Prüfungstipps......................................................... 304 Lernende Klassifikation ....................................................................... 304 Idee der Support-Vektor-Maschinen ................................................. 308 Lineare Support-Vektor-Maschinen (Modell I) ................................ 310 Lineare Support-Vektor-Maschinen (Modell II) .............................. 320 Training einer Support-Vektor-Maschine ......................................... 327 Nicht-lineare Support-Vektor-Maschinen (Modell III) ................... 331 Evolutionsstrategie ............................................................................... 340 Aufgaben................................................................................................ 344 Literatur ................................................................................................. 347 Index...................................................................................................... 355 <?page no="15"?> Teil I Operations Research <?page no="17"?> 1 Grundbegriffe des Operations Research Schlagwörter und Prüfungstipps Was erwartet mich in diesem Kapitel? In diesem Kapitel werden die elementaren Begriffe des Operations Research erläutert. Es werden Modellarten von Optimierungsproblemen sowie die grundlegende Vorgehensweise im Operations Research vorgestellt. Welche Schlagwörter lerne ich kennen? ∎ Operations Research ∎ Modell ∎ abstraktes Problem ∎ Probleminstanz ∎ Parameter ∎ Heuristik ∎ restringierte, deterministische, stochastische, diskrete, kombinatorische, lineare, ganzzahlige, multikriterielle, dynamische, statische Optimierung ∎ Planungshorizont ∎ Lösungsraum, Lösungsmenge ∎ (Entscheidungs-)Variablen ∎ (zulässige) Lösung ∎ zulässige Menge ∎ Restriktion (Rahmen-, Nebenbedingung) ∎ optimale Lösung ∎ zulässige Lösung ∎ Zielfunktion ∎ (Un-)Gleichungsrestriktion ∎ Rucksack-Problem Wozu benötige ich dieses Wissen? Die Grundbegriffe und grundsätzlichen Vorgehensweisen sind essentiell für die kommenden Kapitel. Einleitung Der Begriff Operations Research beschreibt die anwendungsbezogene Optimierung von Situationen, die i.d.R. bei wirtschaftlichen Prozessen und Planungen in Industrieunternehmen auftreten. Die Grenze zur „technischen Optimierung“ in Forschung und Entwicklung ist allerdings fließend. Unternehmen verstehen beim Begriff Optimierung oft eine Verbesserung einer nicht zufriedenstellenden Situation, weniger das konkrete mathematische Optimierungsverfahren. Bei der Untersuchung solcher Situationen auf ihr Verbesserungspotential kommen neben Simulationen häufig Methoden des Operations Research zum Einsatz. Hierbei handelt es sich um Algorithmen, deren Kern oft auf mathematischer Optimierung basiert. <?page no="18"?> 18 1 Grundbegriffe des Operations Research Das Modell Für ein Operations-Research-Verfahren werden zuerst wichtige Kriterien und nicht zu vernachlässigende Rahmenbedingungen für die Verbesserung der Situation ausgewählt, die in die Optimierung eingehen sollen. Es muss entschieden werden, welche Kriterien als wichtig erachtet werden und ins Modell der Optimierung aufgenommen werden sollen und welche nicht. Die gewählten Kriterien können die zu optimierende Situation i.A. nicht gänzlich beschreiben, so dass das Modell kein vollständiges Abbild der zu optimierenden Situation ist. Ein Modell aufzustellen ist daher i.A. keine einfache Aufgabe. Die Kriterien müssen durch mathematische Formeln beschrieben werden. Beschreibungen von gleichartigen Optimierungsszenarien werden in einem mathematischen abstrakten Modell des Optimierungsproblems zusammengefasst. Das abstrakte Modell wird auch als abstraktes Problem bezeichnet. Im Modell sind das zu optimierende Gütekriterium und die Rahmenbedingungen in mathematischen Formeln angegeben. Ein abstraktes Modell enthält Platzhalter für Zahlenwerte, genannt Parameter. Durch Ersetzen der Parameter des abstrakten Problems durch konkrete Zahlenwerte entsteht eine (Problem-)Instanz des Modells, die konkret gelöst werden kann. Zu jedem abstrakten Modell gibt es unendlich viele Instanzen. Optimierungsmodelle dienen als Grundlage bei der Entwicklung von Algorithmen zur Lösung von Optimierungsproblemen. Die Lösungsverfahren Die Modellinstanz wird mit Hilfe von Verfahren der Mathematik und von Algorithmen aus der Informatik entweder annähernd zufriedenstellend oder auch exakt gelöst. Bei Modellen mit vielen Entscheidungsmöglichkeiten und großen Datenmengen ist die exakte mathematische optimale Lösung, wenn überhaupt, meist nur sehr zeitaufwändig zu ermitteln. Deshalb werden schnelle Algorithmen, sogenannte Heuristiken, gegenüber den exakten Verfahren bevorzugt. Exakte Verfahren berechnen (mathematisch exakte) optimale Lösungen. Jedoch steigt für viele Probleme die benötigte Rechenzeit exponentiell mit der Problemgröße an. Somit lassen sich oft nur kleinere oder von der Struktur her einfachere Probleminstanzen in praktikablen Rechenzeiten mit exakten Verfahren lösen. Heuristiken sollen dagegen ein gutes, tolerierbares, aber nicht notwendig mathematisch exakt optimales Ergebnis in vertretbarer Zeit ermitteln und werden oft in der sogenannten kombinatorischen Optimierung eingesetzt. <?page no="19"?> 1.2 Einleitung 19 Die mit den Algorithmen ermittelte Lösung liefert Vorgaben für Entscheidungen zur Verbesserung der gegebenen Situation. Allerdings ist es notwendig, die Lösung bzw. die Entscheidungen auf Tauglichkeit für die zu optimierende Situation zu prüfen, da das Modell diese nicht vollständig dargestellt hat. Wird die Lösung nicht als tauglich erachtet, kann eine erneute Überprüfung des Modells und der Instanz mit seinen Daten und Kriterien und eine damit verbundene Anpassung notwendig werden. Klassifikation Die auftretenden Modelle werden je nach Betrachtungsweise in verschiedene Typen klassifiziert. Liegen Rahmenbedingungen vor, so spricht man von einer restringierten Optimierung, sonst von nichtrestringierter Optimierung. Wenn die Betrachtung die zu optimierenden Inhalte in den Mittelpunkt stellt, kann man Modelle z.B. in Kosten-, Materialverbrauchs-, Logistik-, Transport-, Zuordnungs-, Produktionsplanungsprobleme sowie in Probleme der Spieltheorie und Probleme zur Ermittlung optimaler Verhandlungsstrategien unterteilen. Bei Betrachtung der Zuverlässigkeit der Datensituation kann man zwischen deterministischer Optimierung oder stochastischer Optimierung unterscheiden, je nachdem, ob die Parameter fest vorgegeben und bekannt sind oder zufallsbehaftete Werte annehmen. Modelle können auch nach ihrer mathematischen Beschreibung klassifiziert werden. So gibt es z.B. Modelle der linearen Optimierung, der ganzzahligen Optimierung und der nichtlinearen Optimierung. Wenn gefordert wird, dass die Lösung wenigstens z.T. ganzzahlig sein soll, spricht man von diskreter Optimierung oder bei großen Datenmengen von kombinatorischer Optimierung. Liegt mehr als ein Gütekriterium vor, spricht man von einer multikriteriellen Optimierung oder Mehrzieloptimierung. Betrachtet man ein Problem, dessen Parameter von der Zeit abhängen, dann liegt ein Modell der dynamischen Optimierung vor. Meist werden solche Probleme über eine gewisse Zeitdauer, einem Planungshorizont, betrachtet und mittels Unterteilung in diskrete Zeitperioden optimiert. Der dynamischen Optimierung steht die statische Optimierung gegenüber, bei der die Parameter nicht von der Zeit abhängig sind. Der englischsprachige Begriff Operations Research konnte nicht zufriedenstellend ins Deutsche übersetzt werden, deshalb hat er sich so auch im Deutschen etabliert. Im nächsten Abschnitt werden weitere Grundbegriffe der mathematischen und der kombinatorischen Optimierung eingeführt, die in den nachfolgenden Kapiteln Verwendung finden. <?page no="20"?> 20 1 Grundbegriffe des Operations Research Grundlegende Begriffe Bei einem Optimierungsproblem ist eine Menge möglicher Entscheidungen für die vorgegebene Situation zugrunde gelegt. Dies führt auf den Begriff „Variable“ im Modell. Die Entscheidungen werden im mathematischen Modell durch Entscheidungsvariablen oder kurz Variablen realisiert. Sie werden oft mit 𝑥𝑥 1 , 𝑥𝑥 2 , … , 𝑥𝑥 𝑛𝑛 für ein 𝑛𝑛 ∈ ℕ bezeichnet. Die Zusammenfassung der Entscheidungsvariablen zu einem Vektor 𝑥𝑥 = �𝑥𝑥 1 𝑥𝑥 2 ⋮ 𝑥𝑥 𝑛𝑛 � ∈ ℝ 𝑛𝑛 nennt man Lösung. Erfüllen die Lösungen 𝑥𝑥 zusätzlich ggf. vorgegebene Rahmen- oder Nebenbedingungen, heißen sie zulässige Lösungen. Im Rahmen der kombinatorischen Optimierung sprechen wir bei den zulässigen Lösungen auch von Kombinationen. Die zulässigen Lösungen bilden eine Menge 𝑀𝑀 ⊆ ℝ 𝑛𝑛 , die zulässige Menge oder auch der Lösungsraum genannt wird. Teilmengen von 𝑀𝑀 werden auch als zulässige Teilbereiche des Lösungsraums bezeichnet. Die Rahmenbedingungen für das Modell heißen die Nebenbedingungen bzw. die Restriktionen. Restriktionen können mathematisch durch Ungleichungen oder Gleichungen als Bedingungen für die Entscheidungsvariablen angegeben werden. Liegen keine Restriktionen vor, so sind alle Lösungen zulässig. Im Kapitel 2 „Lineare Optimierung“ gibt es spezielle Restriktionen, die Nichtnegativitätsbedingungen. Die Nichtnegativitätsbedingungen werden dort aus den übrigen Restriktionen ausgekoppelt. Bei den Nichtnegativitätsbedingungen bleiben wir bei der Bezeichnung „Nichtnegativitätsbedingung“, die übrigen Restriktionen werden kurz wieder als „Restriktionen“ bezeichnet. Angegeben ist bei Optimierungsproblemen neben der zulässigen Menge auch das von den Entscheidungsvariablen abhängige, zu optimierende Gütekriterium. Bei der Optimierung soll das Gütekriterium entweder (global) minimiert oder (global) maximiert werden und möglichst eine (exakte) optimale Lösung unter den zulässigen Lösungen gesucht werden. Ein allgemeines mathematisches Modell eines Optimierungsproblems kann nun wie folgt formuliert werden: Gegeben ist eine zulässige Menge 𝑀𝑀 ⊆ ℝ 𝑛𝑛 sowie eine Zielfunktion 𝑓𝑓: 𝑀𝑀 → ℝ mit 𝑥𝑥 ↦ 𝑓𝑓(𝑥𝑥) , 𝑥𝑥 ∈ ℝ 𝑛𝑛 , welche das von 𝑥𝑥 abhängige Gütekriterium darstellt. <?page no="21"?> 1.3 Grundlegende Begriffe 21 𝑥𝑥 ∗ ist die optimale Lösung eines Minimierungsproblems genau dann, wenn 𝑓𝑓(𝑥𝑥 ∗ ) ≤ 𝑓𝑓(𝑥𝑥) für alle 𝑥𝑥 ∈ 𝑀𝑀 . 𝑥𝑥 ∗ ist die optimale Lösung eines Maximierungsproblems genau dann, wenn 𝑓𝑓(𝑥𝑥 ∗ ) ≥ 𝑓𝑓(𝑥𝑥) für alle 𝑥𝑥 ∈ 𝑀𝑀 . Im Folgenden beschränken wir uns hauptsächlich auf Minimierungsprobleme 𝑓𝑓(𝑥𝑥) → 𝑚𝑚𝑚𝑚𝑛𝑛 . Die Zielfunktion kann auch durch 𝑧𝑧: 𝑀𝑀 → ℝ bezeichnet werden. Eingabedaten 𝑀𝑀 Zulässige Menge 𝑓𝑓(𝑥𝑥) oder 𝑧𝑧(𝑥𝑥) Zielfunktion 𝐽𝐽⊆ℝ, 𝐾𝐾⊆ℝ Indexmengen der Restriktionen ℎ 𝑗𝑗 (𝑥𝑥), 𝑔𝑔 𝑘𝑘 (𝑥𝑥) , 𝑗𝑗 ∈ 𝐽𝐽 , 𝑘𝑘 ∈ 𝐾𝐾 Linke Seiten der Restriktionen Modell: Zielfunktion und Restriktionen Minimiere 𝒛𝒛 = 𝒛𝒛(𝒙𝒙) = 𝒇𝒇(𝒙𝒙) für 𝒙𝒙 ∈ 𝑴𝑴 Zielfunktion ℎ 𝑗𝑗 (𝑥𝑥) ≤ 0, 𝑗𝑗 ∈ 𝐽𝐽 Ungleichungsrestriktionen 𝑔𝑔 𝑘𝑘 (𝑥𝑥) = 0, 𝑘𝑘 ∈ 𝐾𝐾 Gleichungsrestriktionen Tab. 1.1: Allgemeines Modell eines Minimierungsproblems Bemerkungen Ein Maximierungsproblem kann durch Übergang von 𝑓𝑓(𝑥𝑥) auf −𝑓𝑓(𝑥𝑥) in ein Minimierungsproblem umgeschrieben werden. Die Nullen auf den rechten Seiten der Restriktionen können erreicht werden, indem alle auf den rechten Seiten auftretenden Ausdrücke auf die linken Seiten gebracht werden. Eine Ungleichungsrestriktion mit dem ≥ -Zeichen kann durch Multiplikation mit −1 in eine Ungleichung mit dem ≤ -Zeichen umgewandelt werden. Nebenbedingungen und Zielfunktionen werden beim abstrakten Modell unter Verwendung der Problemparameter formuliert. Indem die Parameter durch Werte ersetzt werden, erhält man das Modell einer Probleminstanz. Die Zielfunktion eines abstrakten Modells beschreibt eine Funktionenschar. <?page no="22"?> 22 1 Grundbegriffe des Operations Research Jede Funktion der Funktionsschar beschreibt wiederum die Zielfunktion einer Probleminstanz. Beispiel 1.1 Ein Transportunternehmen möchte einen Lieferwagen mit der maximalen Nutzlast von 1700 kg beladen. Dazu stehen sieben Paletten zur Verfügung, jeweils mit den Gewichten 300 kg, 320 kg, 360 kg, 390 kg, 410 kg, 900 kg und 700 kg. Leider können nicht alle Paletten auf den Lieferwagen geladen werden. Es muss daher eine Auswahl getroffen werden. Gleichzeitig möchte man mit dieser Beladung einen maximalen Gewinn erzielen. Die nachfolgende Tabelle gibt den Gewinn 𝑝𝑝 𝑘𝑘 für 𝑘𝑘 = 1, … ,7 in Geldeinheiten [GE] bei jeder Palette mit Nr. 𝑘𝑘 an. Palette Nr. 𝑘𝑘 1 2 3 4 5 6 7 Gewinn 𝑝𝑝 𝑘𝑘 5 9 8 2 5 16 14 Nun wird das allgemeine mathematische Modell für Beispiel 1.1 aufgestellt: Aus 𝑛𝑛 vielen Gegenständen sollen Gegenstände so ausgewählt werden, dass sie einen maximalen Gesamtnutzen ergeben, aber ein vorgegebenes Gesamtgewicht 𝑊𝑊 nicht überschreiten. Dazu liegen nichtnegative Gewichte 𝑤𝑤 1 , 𝑤𝑤 2 , … , 𝑤𝑤 𝑛𝑛 der Gegenstände und nichtnegative Größen 𝑝𝑝 1 , 𝑝𝑝 2 , … , 𝑝𝑝 𝑛𝑛 vor, die den „Nutzen“ für jeden Gegenstand darstellen. Als Entscheidungsvariablen für das Modell dienen nichtnegative Variablen 𝑥𝑥 1 , 𝑥𝑥 2 , … , 𝑥𝑥 𝑛𝑛 , die wie folgt definiert sind: 𝑥𝑥 𝑘𝑘 = �1, wenn der Gegenstand 𝑘𝑘 ausgewählt wird, 0, sonst. 𝑘𝑘 ∈ {1, … , 𝑛𝑛} Damit lautet die zu maximierende Zielfunktion 𝑣𝑣 = 𝑝𝑝 1 𝑥𝑥 1 + 𝑝𝑝 2 𝑥𝑥 2 + ⋯ + 𝑝𝑝 𝑛𝑛 𝑥𝑥 𝑛𝑛 . Sie stellt den Gesamtnutzen der ausgewählten Gegenstände dar. Als Restriktion hat man, dass das Gewicht der ausgewählten Gegenstände die Obergrenze 𝑊𝑊 nicht überschreiten darf: 𝑤𝑤 1 𝑥𝑥 1 + 𝑤𝑤 2 𝑥𝑥 2 + ⋯ + 𝑤𝑤 𝑛𝑛 𝑥𝑥 𝑛𝑛 ≤ 𝑊𝑊. Dieses Modell wird als Rucksack-Problem oder knapsack-Problem bezeichnet. <?page no="23"?> 1.3 Grundlegende Begriffe 23 Eingabedaten 𝑝𝑝 1 , 𝑝𝑝 2 , … , 𝑝𝑝 𝑛𝑛 Nutzen-Koeffizienten 𝑤𝑤 1 , 𝑤𝑤 2 , … , 𝑤𝑤 𝑛𝑛 Gewichtskoeffizienten 𝑊𝑊 Obere Schranke der Gewichte Modell: Zielfunktion und Restriktionen Minimiere 𝒛𝒛 = −𝒑𝒑 𝟏𝟏 𝒙𝒙 𝟏𝟏 − 𝒑𝒑 𝟐𝟐 𝒙𝒙 𝟐𝟐 − ⋯ − 𝒑𝒑 𝒏𝒏 𝒙𝒙 𝒏𝒏 Zielfunktion 𝑤𝑤 1 𝑥𝑥 1 + 𝑤𝑤 2 𝑥𝑥 2 + ⋯ + 𝑤𝑤 𝑛𝑛 𝑥𝑥 𝑛𝑛 ≤ 𝑊𝑊 Ungleichungsrestriktion 𝑥𝑥 1 ∈ {0,1}, 𝑥𝑥 2 ∈ {0,1}, …, 𝑥𝑥 𝑛𝑛 ∈ {0,1} Bedingungen an die Variablenwerte Tab. 1.2: Das Modell des Rucksack-Problems Das Modell gehört zu den deterministischen, kombinatorischen, diskreten (speziell zu den binären), linearen, restringierten Optimierungsproblemen. Beispiel 1.1 (Fortsetzung) Die Instanz wird nun mit den Werten 𝑛𝑛 = 7, 𝑊𝑊 = 1700, 𝑝𝑝 1 = 5, 𝑝𝑝 2 = 9, 𝑝𝑝 3 = 8, 𝑝𝑝 4 = 2, 𝑝𝑝 5 = 5, 𝑝𝑝 6 = 16, 𝑝𝑝 7 = 14, 𝑤𝑤 1 = 300, 𝑤𝑤 2 = 320, 𝑤𝑤 3 = 360, 𝑤𝑤 4 = 390, 𝑤𝑤 5 = 410, 𝑤𝑤 6 = 900, 𝑤𝑤 7 = 700 gebildet. Man erhält −5𝑥𝑥 1 − 9𝑥𝑥 2 − 8𝑥𝑥 3 − 2𝑥𝑥 4 − 5𝑥𝑥 5 − 16𝑥𝑥 6 − 14𝑥𝑥 7 → 𝑚𝑚𝑚𝑚𝑛𝑛 300𝑥𝑥 1 + 320𝑥𝑥 2 + 360𝑥𝑥 3 + 390𝑥𝑥 4 + 410𝑥𝑥 5 + 900𝑥𝑥 6 + 700𝑥𝑥 7 ≤ 1700 𝑥𝑥 1 ∈ {0,1}, 𝑥𝑥 2 ∈ {0,1}, … , 𝑥𝑥 7 ∈ {0,1} Der Lösungsraum besteht aus 128 7-stelligen 0-1-Kombinationen, davon sind 65 zulässig. Da das Problem nicht groß ist, kann eine exakte Lösung durch Auswerten aller Lösungen, d.h. mit vollständiger Enumeration, ermittelt werden. Die optimale Lösung lautet �𝑥𝑥 1∗ 𝑥𝑥 2∗ ⋮ 𝑥𝑥 7∗ � = ⎝⎜⎜⎛1110001⎠⎟⎟⎞ mit dem optimalen Ziel- <?page no="24"?> 24 1 Grundbegriffe des Operations Research funktionswert 𝑧𝑧 ∗ = −36 . Das bedeutet, dass in der optimalen Situation die Paletten Nr. 1, 2, 3 und 7 geladen werden und ein maximaler Gewinn von 𝑣𝑣 ∗ = 36 GE erreicht wird. Bei der optimalen Lösung wird die Restriktion nicht ausgeschöpft: die linke Seite hat den Wert 1680 < 1700 . Wenn man keine vollständige Enumeration durchführen kann, weil das Problem zu groß ist, dann kann eine Heuristik für das Rucksack-Problem zum Einsatz kommen. Dazu nimmt man z.B. mit Hilfe einer Nutzendichte „Nutzen pro Gewichtseinheit“ eine Priorisierung für die Auswahl der Gegenstände vor. Sie lautet: 𝑝𝑝𝑝𝑝 𝑘𝑘 = 𝑝𝑝 𝑘𝑘 𝑤𝑤 𝑘𝑘 , 𝑘𝑘 ∈ {1, … , 𝑛𝑛} Je größer die Nutzendichte ist, desto höher ist die Priorität des Gegenstands bei der Auswahl. Dies legt eine Reihenfolge für die Auswahl der Gegenstände fest. Solange die Restriktion des Rucksack-Problems erfüllt ist, solange wird ein Gegenstand zu den bereits gewählten gemäß der Reihenfolge hinzugefügt. Die so gefundene Lösung ist die durch die Heuristik bestimmte „gute“ Lösung, die i.A. von der exakten optimalen Lösung 𝑥𝑥 ∗ abweicht. Beispiel 1.1 (Fortsetzung) Nun wird die beschriebene Heuristik für das Paletten-Problem eingesetzt. Die Nutzendichte ist hier eine Gewinndichte. Die Palette mit der höchsten Gewinndichte wird zuerst in den Lieferwagen geladen, dann die Palette mit der zweithöchsten Gewinndichte usw., bis am Schluss die Palette mit der kleinsten Gewinndichte geladen wird, solange die Restriktion jeweils noch erfüllt ist. Die Gewinndichte und die daraus folgende Priorität der Auswahl der Paletten (höchste Priorität 1 bis niedrigste Priorität 7 ) für die Beladung sind in der nachfolgenden Tabelle aufgelistet. Palette Nr. Gewinndichte 𝑝𝑝𝑝𝑝 𝑘𝑘 , 𝑘𝑘 = 1, … ,7 Priorität 1 𝑝𝑝 1 𝑤𝑤 1 = 5 300 ≈ 0,01667 5 2 9 320 ≈ 0,02813 1 3 8 360 ≈ 0,02222 2 4 2 390 ≈ 0,00513 7 5 5 410 ≈ 0,01220 6 6 16 900 ≈ 0,01778 4 7 𝑝𝑝 7 𝑤𝑤 7 = 14 700 = 0,02 3 <?page no="25"?> 1.4 Aufgaben 25 Die Priorisierung besagt, dass zuerst die Palette 2 in den Lieferwagen geladen wird, dann ggf. die Palette Nr. 3, wenn es die Restriktion zulässt, usw., bis ggf. zuletzt die Palette Nr. 4 eingeladen wird, falls die Restriktion auch da noch gültig ist. Es ergibt sich unter dieser Heuristik die Lösung 𝑥𝑥 = ⎝⎜⎜⎛0110001⎠⎟⎟⎞ mit dem Wert 𝑧𝑧 = −31 . Es werden daher die Paletten Nr. 2, 3 und 7 eingeladen und ein Gewinn von 31 GE erzielt. Diese Lösung ist von der mathematisch exakten Lösung verschieden. Die Heuristik betrachtet lediglich die vier Lösungen ⎝⎜⎜⎜⎛0100000⎠⎟⎟⎟⎞ , ⎝⎜⎜⎜⎛0110000⎠⎟⎟⎟⎞ , ⎝⎜⎜⎛0110001⎠⎟⎟⎞ und ⎝⎜⎜⎛0110011⎠⎟⎟⎞ , von denen die ersten drei zulässig sind. Aufgaben Aufgabe 1.1 Welche Situation kann bei einem restringierten Optimierungsproblem vorkommen? Die Zielfunktion besteht aus Nebenbedingungen. Die Variablen müssen gegebene Nebenbedingungen erfüllen. Die Nebenbedingungen sind bei Anwendung einer Heuristik nicht relevant. Aufgabe 1.2 Welche Aussage(n) kann man über eine Lösung eines Optimierungsproblems treffen? Eine Lösung ist bei restringierten Optimierungsproblemen auch immer gleichzeitig eine zulässige Lösung. Mit einer Lösung ist immer eine optimale Lösung gemeint. <?page no="26"?> 26 1 Grundbegriffe des Operations Research Eine Lösung kann nur durch exakte mathematische Optimierungsverfahren gefunden werden. Aufgabe 1.3 Welche Aussagen treffen auf eine Heuristik zu? Eine Heuristik ist ein relativ schnelles Verfahren, das bei einem Optimierungsproblem eine gute, tolerierbare zulässige Lösung finden soll. Eine Heuristik kann nur beim Rucksack-Problem angewendet werden. Eine zulässige Lösung, die durch eine Heuristik gefunden wurde, kann die schlechteste Lösung des Optimierungsproblems sein. Aufgabe 1.4 Recherchieren Sie die Begriffe „Operations Research“, „diskrete Optimierung“, „kombinatorische Optimierung“ sowie „dynamische Optimierung“. Vergleichen Sie jeweils die gefundenen Definitionen für jeden Begriff. Recherchieren Sie auch die verschiedenen Übersetzungsvorschläge von „Operations Research“ ins Deutsche. Aufgabe 1.5 Geben Sie vom nachfolgenden Optimierungsproblem ein Modell und die Modellinstanz an. Lösen Sie das Optimierungsproblem von Hand durch vollständige Enumeration und wenden Sie dann eine Heuristik zum Auffinden einer guten Lösung des Optimierungsproblems an. Vergleichen Sie die beiden erhaltenen Lösungen. Ein Transportunternehmen möchte eine Fahrzeugflotte zusammenstellen. Es stehen dazu vier Fahrzeuge 𝐹𝐹 1 , 𝐹𝐹 2 , 𝐹𝐹 3 und 𝐹𝐹 4 zur Verfügung mit jeweiligen einem Stickoxid-Ausstoß in Durchschnittsmengen von 0,8 g/ km, 0,5 g/ km, 0,1 g/ km, 0,6 g/ km. Eine städtische Richtlinie besagt, dass der Gesamtausstoß der Flotte den Wert 1,1 g/ km nicht überschreiten darf. Auf der anderen Seite soll die Flotte aber eine möglichst große Nutzlast für zu transportierende Güter besitzen. Die Fahrzeuge 𝐹𝐹 1 , 𝐹𝐹 2 , 𝐹𝐹 3 und 𝐹𝐹 4 haben in dieser Reihenfolge die Nutzlasten 1500 kg, 900 kg, 500 kg und 800 kg. Welche Fahrzeuge werden für die Flotte ausgewählt, damit die Flotte bei einem Stickstoff-Ausstoß nicht über dem Grenzwert liegt und eine möglichst große Nutzlast bietet? <?page no="27"?> 1.4 Aufgaben 27 Aufgabe 1.6 Geben Sie von dem nachfolgend aufgeführten Optimierungsproblem die Modellinstanz an. Ein Energieversorgungsunternehmen möchte einen neuen Tarif für Strom für Geschäftskunden zum Kauf anbieten. Der Strom des Tarifs soll zu einem Teil aus Strom von regenerativen Quellen bestehen. Für den Verkauf an die Kunden stehen maximal 400 Gigawattstunden (GWh) pro Jahr zur Verfügung. Das Unternehmen bezieht Strom von Wasserkraftwerken, Photovoltaik- und Biogasanlagen. Der Strom kommt in gewissen Prozentanteilen aus der Region oder aus dem Bundesland, in dem das Unternehmen seinen Firmensitz hat. Das Unternehmen hat beim Verkauf Gewinne in Geldeinheiten (GE) zu erwarten. Die Detaildaten sind aus der folgenden Tabelle zu entnehmen: Regionaler Anteil in % Landesweiter Anteil in % Gewinn in GE/ GWh Wasserkraft 20 18 9 Photovoltaik 35 25 7 Biogas 45 10 6 Aufgrund einer Richtlinie soll der Strom im Tarif aus mindestens 20 % regionalen Quellen und mindestens 5 % landesweiten Quellen bestehen. Der Stromanteil an landesweiten Quellen kann aber 18 % nicht überschreiten. Strom aus Wasserkraft darf höchstens in der Menge 200 GWh verkauft werden, Strom aus Photovoltaikanlagen soll mindestens in der Menge 110 GWh verkauft werden. In welchen Mengen [GWh] müssen Strom aus Wasserkraft, Strom aus Photovoltaikanlagen im Tarif auftreten, damit der Gewinn des Unternehmens maximal wird? Aufgabe 1.7 Geben Sie die Modellinstanz des nachfolgenden Optimierungsproblems an. Ein Transportunternehmen möchte in den Güterseeverkehr einsteigen. Für eine Überseeschifffahrt stehen schon 1000 Container zum Transport bereit, die alle transportiert werden müssen. Das Unternehmen besitzt keine eigene Schiffsflotte und muss die Containerschiffe chartern. Drei Typen von Schiffen stehen zur Auswahl: ein Schiff vom Typ S 1 kostet 32000 GE und hat Platz für 140 Container, eines vom Typ S 2 kostet 21000 GE und kann maximal 190 Container laden und eines vom Typ S 3 kostet 27000 GE und bietet 130 Stellplätze für Container. Leere Stellplätze für Container auf den <?page no="28"?> 28 1 Grundbegriffe des Operations Research Schiffen soll es nicht geben. Pro transportiertem Container nimmt das Unternehmen 300 GE ein. Wie viele Schiffe der drei Typen müssen gechartert werden, um die Kosten zu minimieren, wenn von 𝑆𝑆 1 drei, von 𝑆𝑆 2 vier Schiffe und von 𝑆𝑆 3 fünf Schiffe verfügbar sind? <?page no="29"?> 2 Lineare Optimierung Schlagwörter und Prüfungstipps Was erwartet mich in diesem Kapitel? In diesem Kapitel werden die elementaren Begriffe der linearen Optimierung definiert und anhand von Beispielen erläutert. Es kommen als Lösungsmethoden der Simplex-Algorithmus und Varianten davon zum Einsatz. Am Ende des Kapitels wird auf das duale Problem sowie auf die ganzzahlige lineare Optimierung mittels der Branch-and-Bound-Methode eingegangen. Welche Schlagwörter lerne ich kennen? ∎ lineare Optimierung ∎ Normalform ∎ Isozielwertgerade ∎ lineare Restriktion ∎ Nichtnegativitätsbedingung ∎ zulässige Menge ∎ zulässige Lösung ∎ kanonische Form ∎ klassischer und erweiterter Simplex- Algorithmus ∎ Schlupfvariable ∎ Basisvariable (BV) ∎ Nichtbasisvariable (NBV) ∎ Tableau ∎ Pivotschritt ∎ Pivotelement ∎ Pivotzeile ∎ Pivotspalte ∎ zulässige Basislösung ∎ primale Entartung ∎ duale Entartung ∎ un- / zulässiges Tableau ∎ gesperrte Schlupfvariable ∎ freie Variable ∎ primales Problem ∎ duales Problem ∎ dualer (klassischer) Simplex-Algorithmus ∎ ganzzahlige lineare Optimierung ∎ Relaxation ∎ Branch-and-Bound- Methode Welche Prüfungstipps kann ich aus diesem Kapitel ziehen? Folgende Kompetenzen sind in der Prüfung wichtig: Aus einer „Alltagssituation“ eine Modellinstanz erstellen. Begriffe der linearen Optimierung kennen und erklären. Graphisch ein lineares von zwei Variablen abhängiges Optimierungsproblem lösen. Simplex-Algorithmus und seine Erweiterung je nach vorliegender Situation anwenden, Basislösungen und Zielfunktionswerte bei jedem Pivotschritt bestimmen. Pivotschritte im (verkürzten) Tableau ausführen. Erkennen der Zulässigkeit und Optimalität bei vorliegendem Tableau. Duales Problem bei gegebenem primalen Problem aufstellen. Dualer (klassischer) Simplex-Algorithmus ausführen. <?page no="30"?> 30 2 Lineare Optimierung Lösungssituationen bei primalem und dualem Problem bestimmen. Branch-and-Bound-Methode für ganzzahlige lineare Optimierungsprobleme anwenden, und die zugehörigen Schranken und der Art der Ausschlussregeln bestimmen. Einführung Die lineare Optimierung spielt eine wichtige Rolle im Kern vieler restringierter Optimierungsprobleme. Als der grundlegende Algorithmus zur Lösung linearer Optimierungsprobleme kann der (klassische) Simplex-Algorithmus angesehen werden. Für spezielle Probleme der linearen Optimierung können aber auch andere Algorithmen, die aus dem Simplex-Algorithmus abgeleitet sind, angewendet werden. Nachfolgend wird ein lineares Optimierungsproblem an einem einfachen Beispiel aus dem „Alltag“ erläutert. Beispiel 2.1 Ein Transportunternehmen möchte seine Fahrzeugflotte durch Zukauf energiesparender Fahrzeuge auf den aktuellen Stand bringen. Dazu können maximal 350 Geldeinheiten [GE] ausgegeben werden. Es stehen zwei Fahrzeugtypen zur Verfügung, einer mit Hybridantrieb (H), der andere mit Elektroantrieb (E). Pro 100 km beträgt der kombinierte Verbrauch von H 40 kWh, der Verbrauch von E 20 kWh. Um eine Umweltrichtlinie einzuhalten, soll der maximale Gesamtverbrauch aller gekauften Fahrzeuge pro 100 km 200 kWh nicht übersteigen. Der Preis pro Fahrzeug H beträgt 30 GE, der von E 70 GE. Die Reichweite pro Fahrzeug beträgt bei ganz aufgeladener Batterie bzw. vollem Tank bei H 600 km und bei E 400 km. Aus Platzgründen können nicht mehr als sechs Fahrzeuge gekauft werden. Wie viele Fahrzeuge können jeweils von jedem Typ gekauft werden, wenn die Gesamtreichweite der gekauften Fahrzeuge unter Einhaltung der Rahmenbedingungen maximal sein soll? Man erhält folgendes Optimierungsproblem: 𝑥𝑥 1 bedeutet die Anzahl der Fahrzeuge vom Typ H, 𝑥𝑥 2 bedeutet die Anzahl der Fahrzeuge vom Typ E. Die Gesamtreichweite soll maximal werden: Damit: 𝑣𝑣 = 600𝑥𝑥 1 + 400𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑥𝑥 Rahmenbedingungen (Restriktionen): Verbrauch: 40𝑥𝑥 1 + 20𝑥𝑥 2 ≤ 200 Kosten: 30𝑥𝑥 1 + 70𝑥𝑥 2 ≤ 350 <?page no="31"?> 2.3 Modell der linearen Optimierung 31 Anzahl: 𝑥𝑥 1 + 𝑥𝑥 2 ≤ 6 Nichtnegativitätsbedingungen: 𝑥𝑥 1 ≥ 0, 𝑥𝑥 2 ≥ 0 Es wird bei dieser Modellbildung vorausgesetzt, dass die Variablen 𝑥𝑥 1 und 𝑥𝑥 2 reelle nichtnegative Zahlen sind. Der Forderung, dass Stückzahlen ganze Zahlen sind, wird erst in der ganzzahligen Optimierung nachgegangen, s. Abschnitt 2.9. Modell der linearen Optimierung Ein Optimierungsproblem ist genau dann linear, wenn es auf die Normalform in der folgenden Tab. 2.1 gebracht werden kann, d.h. das Problem kann durch eine lineare Zielfunktion mit linearen (Un-)Gleichungs- Restriktionen und ggf. Nichtnegativitätsbedingungen in einem sogenannten linearen Modell dargestellt werden. Es wird festgelegt, dass die Normalform immer als ein Minimierungsproblem formuliert wird. Eingabedaten 𝑐𝑐 1 , 𝑐𝑐 2 , … , 𝑐𝑐 𝑛𝑛 Zielfunktionskoeffizienten [1] 𝑚𝑚 𝑖𝑖𝑗𝑗 , 𝑚𝑚 = 1, … , 𝑚𝑚, 𝑗𝑗 = 1, … , 𝑛𝑛 Koeffizienten der Restriktionen [2] 𝑏𝑏 1 , … , 𝑏𝑏 𝑚𝑚 Rechte Seiten der Restriktionen [3] Modell: Zielfunktion und Restriktionen Minimiere 𝒛𝒛 = 𝒄𝒄 𝟏𝟏 𝒙𝒙 𝟏𝟏 + 𝒄𝒄 𝟐𝟐 𝒙𝒙 𝟐𝟐 + ⋯ + 𝒄𝒄 𝒏𝒏 𝒙𝒙 𝒏𝒏 Zielfunktion [4] 𝑚𝑚 11 𝑥𝑥 1 + 𝑚𝑚 12 𝑥𝑥 2 + ⋯ + 𝑚𝑚 1𝑛𝑛 𝑥𝑥 𝑛𝑛 ≤=𝑏𝑏 1 𝑚𝑚 21 𝑥𝑥 1 + 𝑚𝑚 22 𝑥𝑥 2 + ⋯ + 𝑚𝑚 2𝑛𝑛 𝑥𝑥 𝑛𝑛 ≤=𝑏𝑏 2 ⋮ 𝑚𝑚 𝑚𝑚1 𝑥𝑥 1 + 𝑚𝑚 𝑚𝑚2 𝑥𝑥 2 + ⋯ + 𝑚𝑚 𝑚𝑚𝑛𝑛 𝑥𝑥 𝑛𝑛 ≤=𝑏𝑏 𝑚𝑚 Lineare Restriktionen [5] Oft wird noch extra gefordert: 𝑥𝑥 1 ≥ 0, 𝑥𝑥 2 ≥ 0, ⋯ , 𝑥𝑥 𝑛𝑛 ≥ 0 Nichtnegativität [6] <?page no="32"?> 32 2 Lineare Optimierung oder auch nur 𝑥𝑥 𝑘𝑘 ≥ 0, 𝑘𝑘 ∈ 𝐾𝐾 ⊆ {1, … . 𝑛𝑛} Tab. 2.1: Lineares Modell Eingabedaten [1] Gegeben sind 𝑛𝑛 reelle Zahlen 𝑐𝑐 1 , … , 𝑐𝑐 𝑛𝑛 , die als Zielfunktionskoeffizienten der Zielfunktion in [4] verwendet werden. [2] Gegeben sind die reellen Koeffizienten 𝑚𝑚 𝑖𝑖𝑗𝑗 , 𝑚𝑚 = 1, … , 𝑚𝑚, 𝑗𝑗 = 1, … , 𝑛𝑛, in den linken Seiten der 𝑚𝑚 vielen Restriktionen. [3] Gegeben sind 𝑚𝑚 viele reelle Zahlen 𝑏𝑏 1 , 𝑏𝑏 2 , … , 𝑏𝑏 𝑚𝑚 , die als rechte Seiten der Restriktionen dienen. Zielfunktion und Restriktionen [4] Lineare Zielfunktion: Eine Funktion 𝑓𝑓 heißt linear, wenn sie auf die Gestalt 𝑓𝑓(𝑥𝑥 1 , 𝑥𝑥 2 , … , 𝑥𝑥 𝑛𝑛 ) = 𝑐𝑐 1 𝑥𝑥 1 + 𝑐𝑐 2 𝑥𝑥 2 + ⋯ + 𝑐𝑐 𝑛𝑛 𝑥𝑥 𝑛𝑛 mit Koeffizienten 𝑐𝑐 1 , … , 𝑐𝑐 𝑛𝑛 ∈ ℝ gebracht werden kann. 𝑥𝑥 1 , … , 𝑥𝑥 𝑛𝑛 heißen die (Entscheidungs-)Variablen. 𝑧𝑧 heißt der Zielfunktionswert. [5] In der Normalform können als lineare Restriktionen (lineare Nebenbedingungen) Gleichungen mit = oder Ungleichungen mit ≤ vorkommen. Ist 𝑚𝑚 = 0 , so treten die Restriktionen [5] nicht auf. [6] Diese Ungleichungen heißen die Nichtnegativitätsbedingungen für die Variablen. In Matrizendarstellung kann man verkürzt schreiben: 𝑧𝑧 = 𝑐𝑐 ∙ 𝑥𝑥 → 𝑚𝑚𝑚𝑚𝑛𝑛 [7] 𝐴𝐴𝑥𝑥 ≤= 𝑏𝑏 [8] Gegebenenfalls: 𝑥𝑥 ≥ 0 [9] mit den Vektoren 𝑐𝑐 = �𝑐𝑐 1 𝑐𝑐 2 ⋮ 𝑐𝑐 𝑛𝑛 � ∈ ℝ 𝑛𝑛 , 𝑥𝑥 = �𝑥𝑥 1 𝑥𝑥 2 ⋮ 𝑥𝑥 𝑛𝑛 � ∈ ℝ 𝑛𝑛 ; 𝑐𝑐 ∙ 𝑥𝑥 bedeutet das Skalarprodukt der Spaltenvektoren 𝑐𝑐 und 𝑥𝑥 . Vektoren sind immer Spaltenvektoren. Wenn aus Spaltenvektoren Zeilenvektoren gemacht werden, dann wird transponiert. Dies wird mit einem hochgestell- <?page no="33"?> 2.3 Modell der linearen Optimierung 33 ten T geschrieben, z.B.: 𝑐𝑐 𝑇𝑇 = (𝑐𝑐 1 , … , 𝑐𝑐 𝑛𝑛 ) . Weiter ist 𝐴𝐴 = �𝑚𝑚 𝑖𝑖𝑗𝑗 � 𝑖𝑖=1,…,𝑚𝑚,𝑗𝑗=1,…𝑛𝑛 = � 𝑚𝑚 11 ⋯ 𝑚𝑚 1𝑛𝑛 ⋮ ⋱ ⋮ 𝑚𝑚 𝑚𝑚1 ⋯ 𝑚𝑚 𝑚𝑚𝑛𝑛 � die (𝑚𝑚, 𝑛𝑛) -Matrix der Koeffizienten der Restriktionen und 𝑏𝑏 = � 𝑏𝑏 1 𝑏𝑏 2 ⋮ 𝑏𝑏 𝑚𝑚 � ∈ ℝ 𝑚𝑚 . 𝐴𝐴𝑥𝑥 bedeutet die Matrizenmultiplikation der Matrix 𝐴𝐴 mit dem Vektor 𝑥𝑥 . Die zulässige Menge ist 𝑀𝑀 = {𝑥𝑥 ∈ ℝ 𝑛𝑛 |𝑥𝑥 erfüllt [8] und [9], falls gegeben}. Ein Element 𝑥𝑥 ∈ 𝑀𝑀 heißt zulässige Lösung. 𝑥𝑥 ∗ ∈ 𝑀𝑀 heißt optimale Lösung des linearen Optimierungsproblems (in Normalform), wenn gilt: 𝑐𝑐 ∙ 𝑥𝑥 ∗ ≤ 𝑐𝑐 ∙ 𝑥𝑥 für alle 𝑥𝑥 ∈ 𝑀𝑀 . 𝑧𝑧 ∗ = 𝑐𝑐 ∙ 𝑥𝑥 ∗ heißt der optimale Wert. Die zulässige Menge 𝑀𝑀 ist der Definitionsbereich der Zielfunktion 𝑓𝑓: 𝑀𝑀 → ℝ . Ist 𝑀𝑀 = ℝ 𝑛𝑛 , so liegt ein unrestringiertes lineares Optimierungsproblem ohne Nichtnegativitätsbedingungen vor. Die Menge 𝑀𝑀 eines linearen Optimierungsproblems ist ein konvexes Polytop im ℝ 𝑛𝑛 . Wenn sie beschränkt ist, handelt es sich um ein Polyeder. Die Seitenflächen von 𝑀𝑀 sind (𝑛𝑛 − 1) -dimensionale Polytope bzw. Polyeder. Allgemeiner sind Facetten Schnitte von Seitenflächen oder wieder Schnitte von Facetten. 𝑀𝑀 besitzt maximal � 𝑛𝑛+𝑚𝑚 𝑛𝑛 � Ecken. Folgende Lösungssituationen können bei linearen Optimierungsproblemen vorkommen: Ein lineares Optimierungsproblem besitzt entweder • eine eindeutige optimale Lösung 𝑥𝑥 ∗ mit dem optimalen Zielfunktionswert 𝑧𝑧 ∗ , • unendlich viele optimale Lösungen mit dem gleichen optimalen Zielfunktionswert 𝑧𝑧 ∗ , • keine optimale Lösung, weil die Zielfunktion nach unten unbeschränkt ist auf 𝑀𝑀 , • keine optimale Lösung, weil es keine zulässigen Lösungen gibt (𝑀𝑀 = ∅) . <?page no="34"?> 34 2 Lineare Optimierung Es gelten die folgenden Aussagen über die optimale Lösung linearer Optimierungsprobleme: Die eindeutige optimale Lösung tritt in einer Ecke der zulässigen Menge 𝑀𝑀 auf. Wenn unendlich viele optimale Lösungen existieren, so ist die Menge der optimalen Lösungen eine Facette der zulässigen Menge (inkl. Ecken). Gegebenenfalls müssen Umformungen vorgenommen werden, damit die Normalform eines linearen Optimierungsproblems erhalten werden kann. Diese können sein: Falls ein Maximierungsproblem vorliegt, kann durch Übergang von der Zielfunktion 𝑓𝑓 auf die Funktion −𝑓𝑓 ein Minimierungsproblem hergestellt werden. Falls bei den linearen Restriktionen ein ≥ -Zeichen vorkommt, dann kann durch Multiplikation der Ungleichung mit −1 eine Ungleichung mit dem Zeichen ≤ hergestellt werden. Lineare Restriktionen, die Gleichungen sind, werden zur Anwendung des klassischen Simplex-Algorithmus durch Aufspalten von = in zwei Ungleichungen mit ≤ und ≥ transformiert. Später lassen wir aber Gleichheitsrestriktionen bestehen und erweitern dafür den klassischen Simplex-Algorithmus. Beispiel 2.1 (Fortsetzung) Zielfunktion: 𝑧𝑧 = −3𝑥𝑥 1 − 2𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑛𝑛 unter den Restriktionen Verbrauch: 2𝑥𝑥 1 + 𝑥𝑥 2 ≤ 10 Kosten: 3𝑥𝑥 1 + 7𝑥𝑥 2 ≤ 35 Anzahl: 𝑥𝑥 1 + 𝑥𝑥 2 ≤ 6 𝑥𝑥 1 ≥ 0, 𝑥𝑥 2 ≥ 0 Es liegt eine Normalform mit Ungleichungsrestriktionen vor. Die zugehörigen Matrizen sind: 𝑐𝑐 = �−3 −2� , 𝑥𝑥 = �𝑥𝑥 1 𝑥𝑥 2 � , 𝐴𝐴 = �2 1 3 7 1 1� , 𝑏𝑏 = �10 35 6 � <?page no="35"?> 2.4 Graphische Lösung bei zwei Variablen 35 Graphische Lösung bei zwei Variablen Das obige Beispiel besitzt zwei Entscheidungsvariablen 𝑥𝑥 1 und 𝑥𝑥 2 . Solche linearen Optimierungsprobleme lassen sich in der Ebene in einem 𝑥𝑥 1 𝑥𝑥 2 -Koordinatensystem graphisch lösen. Dazu zeichnet man zuerst die zulässige Menge 𝑀𝑀 im Koordinatensystem. Man ersetzt in den Restriktionen und Nichtnegativitätsbedingungen vorkommende Ungleichheitszeichen durch Gleichheitszeichen. Die Gleichungen stellen Geraden in der Ebene dar, welche die zulässige Menge 𝑀𝑀 beschränken. Um die Ungleichungen graphisch zu realisieren, bestimmt man die Halbebenen, welche die Geraden als Randgeraden haben. Dies kann z.B. durch eine Punktprobe erfolgen. Man wählt einen günstigen Punkt 𝑃𝑃 , der nicht auf der Geraden liegt, und setzt seine Koordinaten in die Ungleichung ein. Ist die Ungleichung erfüllt, gehört 𝑃𝑃 zur Halbebene und damit alle Punkte auf der gleichen Seite der Geraden wie 𝑃𝑃 , andernfalls liegt die gesuchte Halbebene auf der anderen Seite der Geraden. Die zuässige Menge M ergibt sich als Schnitt der Halbebenen. Beispiel 2.1 (Fortsetzung) Die Geraden haben die folgenden Gleichungen: 𝑥𝑥 2 = 10 − 2𝑥𝑥 1 , 𝑥𝑥 2 = 5 − 37 𝑥𝑥 1 , 𝑥𝑥 2 = 6 − 𝑥𝑥 1 𝑥𝑥 1 = 0, 𝑥𝑥 2 = 0 Nach Bestimmung der zugehörigen Halbebenen ergibt sich die zulässige Menge 𝑀𝑀 . Sie ist ein Polyeder, speziell ein Fünfeck, siehe Abb. 2.1. Abb. 2.1: Graphische Darstellung einer zulässigen Menge bei zwei Variablen Nun werden Geraden, auf denen Punkte (𝑥𝑥 1 |𝑥𝑥 2 ) mit gleichem festen Ziefunktionswert 𝑧𝑧 0 liegen, betrachtet. Solche Geraden heißen Isozielwertgeraden. Sie besitzen unabhängig vom Wert von 𝑧𝑧 0 alle die gleiche Steigung, da z.B. für 𝑐𝑐 2 ≠ 0 die Geradengleichung <?page no="36"?> 36 2 Lineare Optimierung 𝑐𝑐 1 𝑥𝑥 1 + 𝑐𝑐 2 𝑥𝑥 2 = 𝑧𝑧 0 ⟺ 𝑥𝑥 2 = − 𝑐𝑐 1 𝑐𝑐 2 𝑥𝑥 1 + 𝑧𝑧 0 𝑐𝑐 2 lautet mit der Steigung − 𝑐𝑐 1 𝑐𝑐 2 . Deshalb sind Isozielwertgeraden bei vorgegebener Zielfunktion parallel. Zur Bestimmung der optimalen Lösung bei beschränktem nichtleerem 𝑀𝑀 werden die Isozielwertgeraden von außen parallel aus zwei Richtungen von unten und oben (bzw. von links und rechts) an 𝑀𝑀 herangeschoben bis in die Lagen, bei denen die Gerade die Menge 𝑀𝑀 zum ersten Mal schneidet. Entweder ist der Schnitt jeweils eine Ecke oder enthält eine Strecke von 𝑀𝑀 . Alle diese Schnittpunkte (𝑥𝑥 1 |𝑥𝑥 2 ) sind Kandidaten für die optimale Lösung. Zur Bestimmung der optimalen Lösung berechnet man die zugehörigen Zielfunktionswerte der Schnittpunkte. Dort, wo der kleinste Wert der Zielfunktionswerte auftritt, liegen beim Minimierungsproblem optimale Lösungen vor. Enthält der Ort, bei dem dieser Zielfunktionswert auftritt, eine Strecke, so gibt es unendlich viele optimale Lösungen. Beispiel 2.1 (Fortsetzung) Die Isozielwertgeraden haben die Gleichung 𝑥𝑥 2 = − 32 𝑥𝑥 1 − 𝑧𝑧0 2 mit der Steigung − 32 , siehe Abb. 2.2. Die gesuchten Schnitte der Isozielwertgeraden mit der zulässigen Menge 𝑀𝑀 treten bei zwei Situationen auf; die Schnitte sind Eckpunkte von 𝑀𝑀 . Ein Eckpunkt ist (0|0) mit dem Wert 𝑧𝑧 0 = 0 . Der andere Eckpunkt wird als Lösung eines linearen Gleichungssystems, bestehend aus den zwei Gleichungen, deren Geraden einander in dem Punkt schneiden, exakt berechnet. Als Ergebnis erhält man den Eckpunkt (4|2) mit dem optimalen Wert 𝑧𝑧 ∗ = −16 < 0 = 𝑧𝑧 0 . Das gesuchte Optimum ist somit 𝑥𝑥 ∗ = �𝑥𝑥 1∗ 𝑥𝑥 2∗ � = �42� mit dem Wert 𝑣𝑣 ∗ = 3200 , der maximalen Gesamtreichweite. Damit werden in der optimalen Situation vier Fahrzeuge vom Typ H und zwei Fahrzeuge vom Typ E gekauft. Abb. 2.2: Die zwei Geraden mit den Gleichungen 𝑥𝑥 2 = − 32 𝑥𝑥 1 , 𝑥𝑥 2 = − 32 𝑥𝑥 1 + 8 durch die Ecken von 𝑀𝑀 , die letztere durch die optimale Lösung 𝑥𝑥 ∗ = �𝑥𝑥 1∗ 𝑥𝑥 2∗ � = �42� <?page no="37"?> 2.4 Graphische Lösung bei zwei Variablen 37 Wird Beispiel 2.1 abgeändert durch 𝑥𝑥 1 + 𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑥𝑥 unter Beibehaltung der zulässigen Menge 𝑀𝑀 , so liegen unendlich viele optimale Lösungen vor. Sie bilden die Strecke zwischen den Ecken (1,75|4,25) und (4|2) . Man beschreibt die Menge 𝐿𝐿 ∗ der optimalen Lösungen durch 𝐿𝐿 ∗ = �� 𝑥𝑥 1 𝑥𝑥 2 � � � 𝑥𝑥 1 𝑥𝑥 2 � = � 1,75 4,25 � + 𝜆𝜆 � 4−1,75 2−4,25 � = � 1,75 4,25 � + 𝜆𝜆 � 2,25 −2,25 � , 𝜆𝜆 ∈ [0,1]�. Für unbeschränktes 𝑀𝑀 kann in mindestens einer Heranschieberichtung keine Anfangslage der Isozielwertgeraden gefunden werden. Dort liegt für diese Heranschieberichtung kein endlicher Zielfunktionswert vor. Er ist symbolisch ±∞ je nachdem, ob die Zielfunktion in der Richtung auf 𝑀𝑀 nach oben oder nach unten unbeschränkt ist. Liegt −∞ vor, so liegt keine optimale Lösung des Optimierungsproblems vor. Beispiel 2.2 Es wird das Optimierungsproblem 𝑥𝑥 1 + 4𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑛𝑛 mit der zulässigen Menge 𝑀𝑀 , die in Abb. 2.3 graphisch angegeben ist, betrachtet. 𝑀𝑀 ist nach oben rechts unbeschränkt. Eine Isozielwertgerade ist in Abb. 2.3 gestrichelt angegeben. Von oben ist ein Heranschieben der Isozielwertgeraden an 𝑀𝑀 nicht möglich, aber von unten. Da die Zielfunktion für 𝑥𝑥 1 → ∞ nach oben unbeschränkt ist, liegt die optimale Ecke 𝑥𝑥 ∗ unten auf der 𝑥𝑥 1 -Achse. Abb. 2.3: Unbeschränkte zulässige Menge und endliche optimale Lösung Bemerkung Es können bei dem vorliegenden Beispiel nur Fahrzeuge in Stückzahlen gekauft werden. Bei dem Optimierungsproblem wurde aber nur die Nichtnegativität der Entscheidungsvariablen gefordert und nicht die Ganzzahligkeit. Wenn die opti- <?page no="38"?> 38 2 Lineare Optimierung male Lösung 𝑥𝑥 ∗ im Beispiel 2.1 nicht ganzzahlig gewesen wäre, wäre zu überlegen, welche optimale ganzzahlige Lösung vorliegt. Dazu wird auf den Abschnitt 2.9 bei der ganzzahligen Optimierung verwiesen. Der Simplex-Algorithmus Beim Simplex-Algorithmus gibt es je nach Vorgaben bei der Normalform verschiedene Ausprägungen. Eine Auswahl ist in der folgenden Übersicht aufgelistet. Der Simplex-Algorithmus hat schlimmstenfalls exponentielle Laufzeit. Tab. 2.2: Übersicht der Varianten des Simplex-Algorithmus Für den Simplex-Algorithmus wird die kanonische Form des linearen Optimierungsproblems benötigt. Eine kanonische Form erhält man aus der Normalform durch die Addition von nichtnegativen Schlupfvariablen 𝑦𝑦 1 , 𝑦𝑦 2 , … , 𝑦𝑦 𝑚𝑚 auf den linken Seiten der Restriktionen. Bei einer Ungleichungs-Restriktion wird dabei die Gleichheit erzielt, da die Schlupfvariable den nichtnegativen Wert annehmen soll, welcher der linken Seite noch zum Wert der rechten Seite fehlt. Der Wert einer Schlupfvariablen ist ein Maß für den „Auslastungsgrad“ der Ungleichung. Situation Methode Rechte Seiten sind nichtnegativ: 𝑏𝑏 1 ≥ 0, 𝑏𝑏 2 ≥ 0, … , 𝑏𝑏 𝑚𝑚 ≥ 0 und die Nichtnegativitätsbedingungen gelten für alle Entscheidungsvariablen. Klassischer Simplex- Algorithmus, siehe ab S. 41 Es gibt mindestens eine negative rechte Seite und die Nichtnegativitätsbedingungen gelten für alle Entscheidungsvariablen. Erweiterter Simplex- Algorithmus beginnend mit Phase 1, siehe ab S. 47 Es gibt mindestens eine Gleichheitsrestriktion oder eine Entscheidungsvariable hat keine Nichtnegativitätsbedingung. Erweiterter Simplex- Algorithmus beginnend mit Phase 0, siehe ab S. 46 Es gibt mindestens eine negative rechte Seite, die Zielfunktionskoeffizienten im Minimierungsproblem sind alle nichtnegativ und die Nichtnegativitätsbedingungen gelten für alle Entscheidungsvariablen. (Klassischer) dualer Simplex-Algorithmus, siehe ab S. 55 <?page no="39"?> 2.5 Der Simplex-Algorithmus 39 Bei einer Gleichungs-Restriktion wird die Schlupfvariable auch formal eingeführt; dabei hat die Schlupfvariable aber den festen Wert Null. Die kanonische Form lautet: 𝑧𝑧 = 𝑐𝑐 1 𝑥𝑥 1 + 𝑐𝑐 2 𝑥𝑥 2 + ⋯ + 𝑐𝑐 𝑛𝑛 𝑥𝑥 𝑛𝑛 → 𝑚𝑚𝑚𝑚𝑛𝑛 𝑚𝑚 11 𝑥𝑥 1 + 𝑚𝑚 12 𝑥𝑥 2 + ⋯ + 𝑚𝑚 1𝑛𝑛 𝑥𝑥 𝑛𝑛 + 𝑦𝑦 1 = 𝑏𝑏 1 𝑚𝑚 21 𝑥𝑥 1 + 𝑚𝑚 22 𝑥𝑥 2 + ⋯ + 𝑚𝑚 2𝑛𝑛 𝑥𝑥 𝑛𝑛 + 𝑦𝑦 2 = 𝑏𝑏 2 ⋮ 𝑚𝑚 𝑚𝑚1 𝑥𝑥 1 + 𝑚𝑚 𝑚𝑚2 𝑥𝑥 2 + ⋯ + 𝑚𝑚 𝑚𝑚𝑛𝑛 𝑥𝑥 𝑛𝑛 + 𝑦𝑦 𝑚𝑚 = 𝑏𝑏 𝑚𝑚 und 𝑦𝑦 1 ≥ 0, 𝑦𝑦 2 ≥ 0, ⋯ , 𝑦𝑦 𝑚𝑚 ≥ 0 , ggf. 𝑥𝑥 1 ≥ 0, ⋯ , 𝑥𝑥 𝑛𝑛 ≥ 0 In Matrizendarstellung kann man für die kanonische Form schreiben: 𝑐𝑐 ∙ 𝑥𝑥 → 𝑚𝑚𝑚𝑚𝑛𝑛 𝐴𝐴𝑥𝑥 + 𝑦𝑦 = 𝑏𝑏 𝑦𝑦 ≥ 0, ggf. 𝑥𝑥 ≥ 0, mit dem Vektor 𝑦𝑦 = � 𝑦𝑦 1 𝑦𝑦 2 ⋮ 𝑦𝑦 𝑚𝑚 � der Schlupfvariablen. Die zulässige Menge der kanonischen Form wird beschrieben durch �� 𝑥𝑥 𝑦𝑦 � ∈ ℝ 𝑛𝑛+𝑚𝑚 � 𝐴𝐴𝑥𝑥 + 𝑦𝑦 = 𝑏𝑏, 𝑦𝑦 ≥ 0, 𝑔𝑔𝑔𝑔𝑓𝑓. 𝑥𝑥 ≥ 0} . Ein Element � 𝑥𝑥 𝑦𝑦 � dieser zulässigen Menge heißt ebenfalls zulässige Lösung. Beispiel 2.1 (Fortsetzung) Kanonische Form: Zielfunktion: 𝑧𝑧 = −3𝑥𝑥 1 − 2𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑛𝑛 Nebenbedingungen: Verbrauch: 2𝑥𝑥 1 + 𝑥𝑥 2 + 𝑦𝑦 1 = 10 Kosten: 3𝑥𝑥 1 + 7𝑥𝑥 2 + 𝑦𝑦 2 = 35 Anzahl: 𝑥𝑥 1 + 𝑥𝑥 2 + 𝑦𝑦 3 = 6 𝑥𝑥 1 ≥ 0, 𝑥𝑥 2 ≥ 0, 𝑦𝑦 1 ≥ 0, 𝑦𝑦 2 ≥ 0, 𝑦𝑦 3 ≥ 0 <?page no="40"?> 40 2 Lineare Optimierung Die kanonische Form kann in einem sogenannten (verkürzten) Tableau dargestellt werden. Im Folgenden richten wir uns nach Gohout (2009). Das Starttableau hat die Gestalt Tab.-Nr. 0 𝑥𝑥 1 𝑥𝑥 2 ⋯ 𝑥𝑥 𝑛𝑛 −𝑧𝑧 0 𝑐𝑐 1 𝑐𝑐 2 ⋯ 𝑐𝑐 𝑛𝑛 𝑦𝑦 1 𝑏𝑏 1 𝑚𝑚 11 𝑚𝑚 12 ⋯ 𝑚𝑚 1𝑛𝑛 ⋮ ⋮ ⋮ ⋮ ⋮ 𝑦𝑦 𝑚𝑚 𝑏𝑏 𝑚𝑚 𝑚𝑚 𝑚𝑚1 𝑚𝑚 𝑚𝑚2 ⋯ 𝑚𝑚 𝑚𝑚𝑛𝑛 Bezeichnungen der Tableau-Elemente 𝑥𝑥 1 𝑥𝑥 2 ⋯ 𝑥𝑥 𝑛𝑛 Die erste Kopfzeile: Ihre Einträge in dieser Position heißen die Nichtbasisvariablen (NBV). NBV haben immer den Wert Null. 𝑐𝑐 1 𝑐𝑐 2 ⋯ 𝑐𝑐 𝑛𝑛 Die zweite Kopfzeile enthält die Koeffizienten der Zielfunktion beim Minimierungsproblem. 𝑦𝑦 1 ⋮ 𝑦𝑦 𝑚𝑚 Die erste Kopfspalte: Die Einträge in dieser Position heißen die Basisvariablen (BV). Beim Starttableau sind dies die Schlupfvariablen. 𝑏𝑏 1 ⋮ 𝑏𝑏 𝑚𝑚 Die zweite Kopfspalte enthält bei jedem Schritt die Werte der in derselben Zeile stehenden BV. <?page no="41"?> 2.5 Der Simplex-Algorithmus 41 Die Werte der Variablen der ersten Kopfzeile und -spalte bilden die Basislösung. Die Basislösung besteht aus 𝑛𝑛 + 𝑚𝑚 vielen Variablen ( 𝑚𝑚 BV, 𝑛𝑛 NBV). Zu Beginn ist dies die initiale Basislösung (𝑥𝑥 1 , … , 𝑥𝑥 𝑛𝑛 , 𝑦𝑦 1 , … , 𝑦𝑦 𝑚𝑚 ) 𝑇𝑇 = (0, … ,0, 𝑦𝑦 1 , … , 𝑦𝑦 𝑚𝑚 ) 𝑇𝑇 = (0, … ,0, 𝑏𝑏 1 , … , 𝑏𝑏 𝑚𝑚 ) 𝑇𝑇 . Falls ein 𝑏𝑏 𝑗𝑗 negativ ist, kann die Bedingung 𝑦𝑦 𝑗𝑗 ≥ 0 nicht erfüllt werden. Man nennt ein Tableau, das mind. eine negative Zahl in der zweiten Kopfspalte besitzt, (primal) unzulässiges Tableau, sonst (primal) zulässiges Tableau. Eine Basislösung heißt zulässige Basislösung, wenn sie die Restriktionen inkl. der Nichtnegativitätsbedingungen 𝑦𝑦 ≥ 0 und ggf. 𝑥𝑥 ≥ 0 erfüllt. Eine zulässige Basislösung liegt für den klassischen Simplex-Algorithmus dann vor, wenn alle ihre Variablen Werte ≥0 besitzen. Die Zelle, bei der die zweite Spalte und zweite Zeile des Tableaus einander kreuzen, enthält den aktuellen negativen Wert - 𝑧𝑧 der Zielfunktion des Minimierungsproblems 𝑧𝑧 → 𝑚𝑚𝑚𝑚𝑛𝑛 . Er ist zu Beginn Null. Dies folgt aus der Gleichung 𝑐𝑐 1 𝑥𝑥 1 + 𝑐𝑐 2 𝑥𝑥 2 + ⋯ + 𝑐𝑐 𝑛𝑛 𝑥𝑥 𝑛𝑛 − 𝑧𝑧 = 0 . Beispiel 2.1 (Fortsetzung) Die initiale zulässige Basislösung ist (𝑥𝑥 1 , 𝑥𝑥 2 , 𝑦𝑦 1 , 𝑦𝑦 2 , 𝑦𝑦 3 ) 𝑇𝑇 = (0,0,10,35,6) 𝑇𝑇 . Es wird also in der Startecke (𝑥𝑥 1 |𝑥𝑥 2 ) = (0|0) der zulässigen Menge begonnen. Die Werte im Starttableau mit Nummer 0 werden bei dem Simplex-Algorithmus iterativ transformiert. Das Tableau erhält nach der 𝑘𝑘. Iteration die Nr. 𝑘𝑘 . Die obigen Bezeichnungen der Tableau-Elemente gelten auch für das Tableau Nr. 𝑘𝑘. Die Schritte des klassischen Simplex-Algorithmus Gegeben: Kanonische Form mit Gleichheitsrestriktionen mit nichtnegativen rechten Seiten und Nichtnegativitätsbedingungen für jede Entscheidungsvariable, eingetragen in Tableau Nr. 0 <?page no="42"?> 42 2 Lineare Optimierung In Formeln: 𝑐𝑐 ∙ 𝑥𝑥 → 𝑚𝑚𝑚𝑚𝑛𝑛 𝐴𝐴𝑥𝑥 + 𝑦𝑦 = 𝑏𝑏 𝑦𝑦 ≥ 0, 𝑥𝑥 ≥ 0(𝑏𝑏 ≥ 0) Gesucht: Minimaler Wert 𝑧𝑧 ∗ der Zielfunktion und zugehörige optimale Lösung 𝑥𝑥 ∗ ∈ 𝑀𝑀 Algorithmus: Betrachte das Starttableau. (Es ist zulässig.) Solange es negative Einträge in der zweiten Kopfzeile im Tableau gibt, iteriere. Die optimale Situation ist dann nämlich noch nicht erreicht: Wenn ein 𝑐𝑐 𝑗𝑗 < 0 ist, kann der Wert der zugehörigen nichtnegativen Variablen 𝑥𝑥 𝑗𝑗 vergrößert werden und damit kann der Zielfunktionswert verkleinert werden. Der aktuell vorliegende Zielfunktionswert ist also noch nicht minimal. Die 𝑘𝑘. Iteration, der Pivotschritt, besteht aus den folgenden Transformationsschritten des Tableaus (𝑘𝑘 ∈ ℕ ): [1] Bestimme eine Pivotspalte im Tableau mit der Nr. 𝑘𝑘 − 1 , d.h. eine Spalte 𝑗𝑗 , bei welcher der Eintrag in der zweiten Kopfzeile negativ ist. Es kann günstig sein, von den negativen Einträgen den kleinsten zu wählen. [2] Bestimme eine Pivotzeile 𝑚𝑚 im Tableau 𝑘𝑘 − 1 , d.h.: Berechne die Quotienten 𝑏𝑏 𝑙𝑙 𝑎𝑎 𝑙𝑙𝑙𝑙 für 𝑙𝑙 = 1, … , 𝑚𝑚, mit 𝑚𝑚 𝑙𝑙𝑗𝑗 ≥ 0 und bestimme darunter den kleinsten Wert. Der Minimalwert befinde sich in der 𝑚𝑚 . Zeile mit dem Wert 𝑏𝑏 𝑖𝑖 𝑎𝑎 𝑖𝑖𝑙𝑙 . Dies ist die Pivotzeile. [3] Setze als Pivotelement 𝑚𝑚 𝑖𝑖𝑗𝑗 . [4] Transformation des Tableaus mit Ergebnistableau Nr. 𝑘𝑘: a. Führe einen Basistausch durch, d.h. vertausche den Eintrag in der 𝑗𝑗 . Spalte in der ersten Kopfzeile mit dem Eintrag in der 𝑚𝑚 . Zeile in der ersten Kopfspalte. Dadurch wird die BV der 𝑚𝑚 . Zeile zur NBV und die NBV der 𝑗𝑗 . Spalte zur BV. Zu Beginn wird 𝑥𝑥 𝑗𝑗 zur BV, 𝑦𝑦 𝑖𝑖 wird zur NBV. b. Rechne das Pivotelement um: Ersetze 𝑚𝑚 𝑖𝑖𝑗𝑗 durch 1 𝑎𝑎𝑖𝑖𝑙𝑙 . c. Multipliziere die restlichen Elemente in der Pivotzeile mit dem Faktor 1 𝑎𝑎𝑖𝑖𝑙𝑙 . d. Multipliziere die restlichen Elemente der Pivotspalte mit dem Faktor − 1 𝑎𝑎𝑖𝑖𝑙𝑙 . e. Berechne alle noch nicht geänderten Einträge, inkl. dem Feld des Zielfunktionswerts, durch die Rechteckregeln 𝑚𝑚 𝑝𝑝𝑝𝑝 𝑁𝑁𝑁𝑁𝑁𝑁 = 𝑚𝑚 𝑝𝑝𝑝𝑝 − 𝑚𝑚 𝑖𝑖𝑝𝑝 ∙ 𝑚𝑚 𝑝𝑝𝑗𝑗 𝑚𝑚 𝑖𝑖𝑗𝑗 , 𝑏𝑏 𝑝𝑝𝑁𝑁𝑁𝑁𝑁𝑁 = 𝑏𝑏 𝑝𝑝 − 𝑏𝑏 𝑖𝑖 ∙ 𝑚𝑚 𝑝𝑝𝑗𝑗 𝑚𝑚 𝑖𝑖𝑗𝑗 , 𝑐𝑐 𝑝𝑝𝑁𝑁𝑁𝑁𝑁𝑁 = 𝑐𝑐 𝑝𝑝 − 𝑚𝑚 𝑖𝑖𝑝𝑝 ∙ 𝑐𝑐 𝑗𝑗 𝑚𝑚 𝑖𝑖𝑗𝑗 für 𝑝𝑝 = 1, … , 𝑚𝑚, 𝑝𝑝 ≠ 𝑚𝑚, 𝑞𝑞 = 1, … , 𝑛𝑛, 𝑞𝑞 ≠ 𝑗𝑗 . <?page no="43"?> 2.5 Der Simplex-Algorithmus 43 Bemerkung Die Auswahl der Pivotzeile bei [2] gewährleistet, dass die rechten Seiten nichtnegativ bleiben, d.h. alle Tableaus bleiben während des gesamten Algorithmus zulässig. Die Transformationen [4]b. bis [4]e. entsprechen u.a. elementaren Zeilenumformungen des Gauß-Algorithmus beim Umformen des linearen Gleichungssystems der Restriktionen aus der kanonischen Form. (Fast) jede Iteration des Simplex-Algorithmus kann als Fortschreiten längs einer Kante der zulässigen Menge von einer Ecke zu einer anderen Ecke gedeutet werden. Beispiel 2.1 (Fortsetzung) Erste Iteration: Die Pivotspalte ist die von 𝑥𝑥 1 , da −3 < −2 . Die Quotienten in Tableau Nr. 0 sind für die erste Zeile nach der zweiten Kopfzeile 10 2 = 5 , für die zweite Zeile 35 3 > 5 und für die dritte Zeile 61 > 5 . Somit liegt das Minimum 5 bei der ersten Zeile vor. Die erste Zeile nach der zweiten Kopfspalte ist die Pivotzeile. Das Pivotelement ist damit 𝑚𝑚 11 = 2 , markiert im Tab. Nr. 0 durch einen Kreis. Transformation liefert das folgende Tableau Nr. 1: Die zugehörige zulässige Basislösung lautet (𝑥𝑥 1 , 𝑥𝑥 2 , 𝑦𝑦 1 , 𝑦𝑦 2 , 𝑦𝑦 3 ) 𝑇𝑇 = (5, 0, 0, 20, 1) 𝑇𝑇 . Die aktuelle Ecke von 𝑀𝑀 ist (𝑥𝑥 1 | 𝑥𝑥 2 ) = (5|0). Zweite Iteration: Das Pivotelement ist 𝑚𝑚 32 = 12 . Das transformierte Tableau lautet: <?page no="44"?> 44 2 Lineare Optimierung Tab.-Nr. 2 𝑦𝑦 1 𝑦𝑦 3 −𝑧𝑧 16 1 1 𝑥𝑥 1 4 1 −1 𝑦𝑦 2 9 4 −11 𝑥𝑥 2 2 −1 2 Die zulässige Basislösung lautet (𝑥𝑥 1 , 𝑥𝑥 2 , 𝑦𝑦 1 , 𝑦𝑦 2 , 𝑦𝑦 3 ) 𝑇𝑇 = (4, 2, 0, 9, 0) 𝑇𝑇 , die zugehörige Ecke ist (𝑥𝑥 1 | 𝑥𝑥 2 ) = (4|2) . Nach zwei Iterationen bricht der Algorithmus ab, da in der zweiten Kopfzeile alle Zielfunktionskoeffizienten nichtnegativ sind. Die optimale Lösung ist also �𝑥𝑥 1∗ 𝑥𝑥 2∗ � = �42� . Es wird der optimale Wert abgelesen: −𝑧𝑧 = 16 , d.h. 𝑧𝑧 ∗ = −16 . Damit ist die Optimierungsaufgabe gelöst mit dem optimalen Wert 3200 . Der Weg, der zu den beiden Iterationen gehört, ist in Abb. 2.4 eingezeichnet. Abb. 2.4: Der von den beiden Iterationen des Simplex-Algorithmus genommene Weg von (0|0) über die Ecke (5|0) zur optimalen Ecke (4|2) Interpretation der Schlupfvariablen: Die Werte 𝑦𝑦 1 = 0 und 𝑦𝑦 3 = 0 bedeuten, dass die erste und die dritte Restriktion in der optimalen Situation maximal erfüllt sind. Bei der zweiten Restriktion ist die linke Seite der Ungleichung um 𝑦𝑦 2 = 9 kleiner als die rechte Seite. Das Optimalitätskriterium, bei dem der klassische Simplex-Algorithmus abbricht, lautet: Sind alle Zielfunktionskoeffizienten in der zweiten Kopfzeile des (primal zulässigen) Tableaus nichtnegativ, so liegt die optimale Situation vor. Die zugehörige Basislösung ist eine optimale Lösung und der aktuelle Zielfunktionswert ist der optimale. <?page no="45"?> 2.6 Besondere Situationen beim Simplex-Algorithmus 45 Besondere Situationen beim Simplex-Algorithmus Die folgende Aufzählung richtet sich nach Gohout (2009). Duale Entartung Duale Entartung tritt dann auf, wenn beim ersten Schritt [1] mehrere Elemente in der zweiten Kopfzeile denselben kleinsten negativen Wert haben. In diesem Fall wählt man eine der zugehörigen Spalten zufällig als Pivotspalte aus. Die Anzahl der Pivotschritte kann je nach Wahl der Pivotspalte verschieden groß sein. Primale Entartung erster Art Bei der primalen Entartung erster Art gibt es mehrere kleinste Quotienten im Schritt [2] des Simplex-Algorithmus. Auch hier wählt man eine zugehörige Zeile als Pivotzeile zufällig aus. Man kann allerdings in eine Endlosschleife geraten, wenn nach einigen Iterationen wieder ein Tableau entsteht, das schon einmal vorkam. Primale Entartung zweiter Art Wenn im Schritt [2] des klassischen Simplex-Algorithmus kein 𝑚𝑚 𝑙𝑙𝑗𝑗 > 0 (𝑙𝑙 = 1, … , 𝑚𝑚) gefunden werden kann, ist die Zielfunktion auf der zulässigen Menge nach unten unbeschränkt. Es kann keine optimale Lösung gefunden werden. Kommen die drei folgenden Situationen vor, so ist die alleinige Anwendung des klassischen Simplex-Algorithmus nicht möglich. (Primal) unzulässiges Starttableau Wenn in der kanonischen Form eine rechte negative Seite 𝑏𝑏 𝑖𝑖 existiert, d.h. eine negative Zahl in der zweiten Kopfspalte des Tableaus vorkommt, kann (𝑥𝑥 1 , … , 𝑥𝑥 𝑛𝑛 ) 𝑇𝑇 = (0, … ,0) 𝑇𝑇 keine zulässige Startlösung von Tableau Nr. 0 sein. Es muss zuerst eine geeignete zulässige Lösung gefunden werden, bei welcher der klassische Simplex-Algorithmus gestartet werden kann. Dazu wird der klassische Simplex-Algorithmus durch eine vorgeschaltete Phase 1 erweitert. Dazu wählt man die Zeile, bei der in der zweiten Kopfspalte eine negative Zahl vorkommt, als Pivotzeile und wählt ebenfalls eine negative Zahl in dieser Pivotzeile als das Pivotelement. Damit ist die Pivotspalte als Spalte, in der das Pivotelement sich befindet, festgelegt. Kann kein negatives Pivotelement gefunden werden, ist die zulässige Menge leer, und es existiert keine Lösung. Auf diese Weise arbeitet man alle negativen rechten Seiten ab. Im Ergebnis sind alle Einträge in der zweiten Kopfspalte positiv und das Tableau kann als Starttableau (mit einem Zielfunktionswert, der i.d.R. ungleich Null ist) für den klassischen Simplex-Algorithmus dienen. Gleichungen als Restriktionen Sind Gleichungen in den Restriktionen vorhanden, die man für die Normalform nicht in zwei Ungleichungen ausdrücken möchte, muss die zugehörige Schlupfva- <?page no="46"?> 46 2 Lineare Optimierung riable jederzeit den Wert Null besitzen. Solche Schlupfvariablen nennt man gesperrte (Schlupf-)Variablen. Eine gesperrte Schlupfvariable muss im Tableau in die Position einer NBV gebracht werden und dort verbleiben, da alle NBV den Wert Null haben. Solche Transformationen finden in einer Phase 0 vor der Phase 1 statt. Variablen ohne Nichtnegativitätsbedingung Unterliegt eine Variable keiner Nichtnegativitätsbedingung, so kann sie alle reellen Werte annehmen. Man nennt eine solche Variable eine freie Variable. Damit die Variable alle reellen Zahlen annehmen kann, muss sie in die Position einer BV transformiert werden, auch mit einem möglichen zugehörigen negativen Wert in der zweiten Kopfspalte. Diese Transformation wird ebenfalls in Phase 0 vorgenommen. Der klassische Simplex-Algorithmus wird daher nachfolgend durch die Phase 0 und Phase 1 erweitert. Der erweiterte Simplex-Algorithmus Der erweiterte Simplex-Algorithmus ist in drei Phasen eingeteilt, einer Vorbereitungsphase (Phase 0), einer Suchphase (Phase 1) und einer Phase 2, die aus dem klassischen Simplex-Algorithmus besteht. Auch dieser Algorithmus wird in Anlehnung an Gohout (2009) aufgeführt. Phase 0: Vorbereitungsphase Die Phase 0 dient dazu, die freien Variablen zu BV und die gesperrten Schlupfvariablen zu NBV zu transformieren. [1] Wahl einer Spalte mit einer freien NBV, diese wird Pivotspalte 𝑗𝑗 . Wenn es keine freien NBV gibt, dann weiter bei [4]. [2] Wahl einer Pivotzeile 𝑚𝑚 mit nichtfreier BV so, dass das Pivotelement 𝑚𝑚 𝑖𝑖𝑗𝑗 ≠ 0 ist (negative 𝑚𝑚 𝑖𝑖𝑗𝑗 sind zugelassen). Falls es kein 𝑚𝑚 𝑖𝑖𝑗𝑗 ≠ 0 in der Pivotspalte gibt, so taucht die freie Variable in den Restriktionen nicht auf und kann beliebige reelle Zahlen annehmen, ohne die Restriktionen zu verletzen, so dass der Zielfunktionswert durch Wahl beliebig großer bzw. kleiner Werte von 𝑥𝑥 𝑗𝑗 beliebig klein wird. In diesem Fall existiert keine optimale Lösung, da die Zielfunktion nach unten unbeschränkt ist. Fertig. [3] Für 𝑚𝑚 𝑖𝑖𝑗𝑗 ≠ 0 : Pivotschritt mit dem Pivotelement 𝑚𝑚 𝑖𝑖𝑗𝑗 und zurück zu [1]. [4] Wahl einer Zeile mit gesperrter BV, diese wird Pivotzeile 𝑚𝑚 . Wenn es keine gesperrten BV gibt, gehe zu Phase 1. <?page no="47"?> 2.7 Der erweiterte Simplex-Algorithmus 47 [5] Wahl einer Pivotspalte 𝑗𝑗 mit nichtgesperrter NBV so, dass das Pivotelement 𝑚𝑚 𝑖𝑖𝑗𝑗 ≠ 0 ist (negative 𝑚𝑚 𝑖𝑖𝑗𝑗 sind zugelassen). Falls es kein 𝑚𝑚 𝑖𝑖𝑗𝑗 ≠ 0 in der Pivotzeile gibt zu nichtgesperrter NBV, so widerspricht dies der Gleichungseigenschaft, wenn das Element in der zweiten Kopfspalte ungleich null ist. In diesem Fall existiert keine Lösung. Die zulässige Menge 𝑀𝑀 ist leer. Fertig. [6] Für 𝑚𝑚 𝑖𝑖𝑗𝑗 ≠ 0 : Pivotschritt mit dem Pivotelement 𝑚𝑚 𝑖𝑖𝑗𝑗 und zurück zu [4]. Die Reihenfolge von [1] und [4] kann auch vertauscht werden. Phase 1: Suchphase Nach der Vorbereitungsphase bleiben die Positionen der freien Strukturvariablen und gesperrten Schlupfvariablen fixiert. Die Phase 1 dient nun dazu, eine initiale zulässige Basislösung zu finden, falls mindestens eine rechte Seite negativ ist. [1] Wahl einer Zeile mit nichtfreier BV, so dass der Wert 𝑏𝑏 𝑖𝑖 in der zweiten Kopfspalte negativ ist. Diese Zeile wird Pivotzeile 𝑚𝑚 . Falls es keinen solchen negativen Wert in der zweiten Kopfspalte gibt, dann weiter mit Phase 2. [2] Wahl einer Pivotspalte 𝑗𝑗 zu nichtgesperrter NBV so, dass das Pivotelement 𝑚𝑚 𝑖𝑖𝑗𝑗 < 0 ist. Falls es kein negatives Element zu nichtgesperrten NBV gibt, so existiert keine zulässige Lösung, da die zugehörige Variable nicht frei ist und somit nicht negativ sein kann. Fertig. [3] Pivotschritt mit 𝑚𝑚 𝑖𝑖𝑗𝑗 und zurück zu [1]. Phase 2: Optimierungsphase Nach der Suchphase ist eine zulässige initiale Basislösung bestimmt, so dass sich der klassische Simplex-Algorithmus anschließen kann. Beispiel 2.3 Zielfunktion: 𝑧𝑧 = −2𝑥𝑥 1 − 𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑛𝑛 unter den Restriktionen 𝑥𝑥 1 + 𝑥𝑥 2 = −5 −𝑥𝑥 2 ≥ 1 −𝑥𝑥 1 + 𝑥𝑥 2 ≥ 2 𝑥𝑥 1 und 𝑥𝑥 2 sind freie Variablen und es kommt eine Gleichungsrestriktion sowie zwei Größer-Gleich-Restriktionen vor. Die Abb. 2.5 zeigt die zulässige Menge 𝑀𝑀 . <?page no="48"?> 48 2 Lineare Optimierung Abb. 2.5: Die zulässige Menge 𝑀𝑀 ist eine Strecke, dargestellt ist neben den Rändern der Restriktionen auch eine Isozielwertgerade 𝑔𝑔 durch die optimalen Ecke 𝑥𝑥 ∗ Das zugehörige (primal nicht zulässige) Starttableau lautet: Es gibt zwei freie Variablen 𝑥𝑥 1 , 𝑥𝑥 2 und eine gesperrte Schlupfvariable 𝑦𝑦 1 , die durch Rahmen gekennzeichnet sind. Man wendet den erweiterten Simplex- Algorithmus an. Phase 0: 𝑦𝑦 1 ist eine gesperrte Variable, wähle 𝑚𝑚 11 = 1 als Pivotelement. Führe einen Pivotschritt durch. Als Ergebnis erhält man <?page no="49"?> 2.7 Der erweiterte Simplex-Algorithmus 49 𝑦𝑦 1 muss nun NBV bleiben. 𝑥𝑥 1 ist als freie Variable bereits in der richtigen Position als BV. Wähle deshalb die Zeile mit 𝑦𝑦 2 = −1 als Pivotzeile und als Pivotelement 𝑚𝑚 22 = 1 ≠ 0 . Nach dem zugehörigen Pivotschritt entsteht das Tableau 𝑥𝑥 1 und 𝑥𝑥 2 sind als freie Variablen nun in der richtigen Position als BV. Phase 0 ist damit beendet. Phase 1 entfällt, da in der letzten Zeile der Eintrag in der zweiten Kopfspalte positiv ist. Deshalb startet Phase 2: Pivotelement ist 𝑚𝑚 32 = 2 . Nach der ersten Iteration erhält man das Tableau Nr. 3: Der Algorithmus bricht nun ab, da in der zweiten Kopfzeile außerhalb der gesperrten Variablen alle Einträge positiv sind und daher die optimale Situation vorliegt. Die optimale Lösung ist �𝑥𝑥 1∗ 𝑥𝑥 2∗ � = �− 72 − 32 � mit dem optimalen Wert 𝑧𝑧 ∗ = 17 2 , die optimale Basislösung ist <?page no="50"?> 50 2 Lineare Optimierung (𝑥𝑥 1∗ , 𝑥𝑥 2∗ , 𝑦𝑦 1∗ , 𝑦𝑦 2∗ , 𝑦𝑦 3∗ ) 𝑇𝑇 = (− 72 , − 32 , 0, 12 , 0) 𝑇𝑇 . Der durch den Simplex-Algorithmus genommene Weg ist in Abb. 2.6 dargestellt. Abb. 2.6: Weg bei Phase 0 (schwarze Pfeile) von (0|0) über (−5|0) zu zulässiger Lösung (−4| − 1) , dann Phase 2 zur optimalen Lösung, dabei wird die Strecke 𝑀𝑀 vollständig durchlaufen (heller Pfeil) Der duale Simplex-Algorithmus Zur Lösung einer Instanz eines linearen Modells kann es hilfreich sein, eine zugehörige Instanz eines gleichwertigen verwandten Modells, des sogenannten dualen Modells, zu betrachten. Das ursprüngliche Modell bzw. Problem heißt im Hinblick auf das duale das primale. Das Paar primales/ duales lineares Optimierungsproblem hat Anwendungen in der Spieltheorie. Im ökonomischen Kontext drücken die beiden Modelle Optimierungsprobleme aus, denen konkurrierende Interessen zugrunde liegen, wie das nächste Beispiel zeigt. Wir betrachten die Instanz aus Beispiel 2.1 und interpretieren das Optimierungsproblem neu. Beispiel 2.4 Ein Logistikunternehmen 𝐿𝐿 1 packt Güter auf Paletten. Es gibt drei Typen 𝐺𝐺 1 , 𝐺𝐺 2 , 𝐺𝐺 3 von Gütern. Vom Typ 𝐺𝐺 1 stehen 10 Mengeneinheiten (ME) zur Verfügung, vom Typ 𝐺𝐺 2 sind es 35 ME, und von Typ 𝐺𝐺 3 6 ME. Es gibt zwei Typen 𝑃𝑃 1 , 𝑃𝑃 2 von Paletten. Auf jeden Palettentyp können je nach Typ des Guts verschiedene Stückzahlen gepackt werden. Die Stückzahlen pro Palettentyp sind nachfolgender Tabelle zu entnehmen. <?page no="51"?> 2.8 Der duale Simplex-Algorithmus 51 Güter Stückzahl pro Palette 𝑷𝑷 𝟏𝟏 Stückzahl pro Palette 𝑷𝑷 𝟐𝟐 Lagerbestand 𝑮𝑮 𝟏𝟏 2 1 10 𝑮𝑮 𝟐𝟐 3 7 35 𝑮𝑮 𝟑𝟑 1 1 6 Das Unternehmen macht bei gepackter Palette 𝑃𝑃 1 3 GE Gewinn und bei gepackter Palette des Typs 𝑃𝑃 2 2 GE Gewinn. Das Unternehmen möchte den Gewinn maximieren. Die Entscheidungsvariablen 𝑥𝑥 1 , 𝑥𝑥 2 beschreiben die Stückzahlen der gepackten Paletten. Das Modell (P) der Instanz lautet somit wieder: Zielfunktion: 𝑣𝑣 = 3𝑥𝑥 1 + 2𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑥𝑥 ⇔ 𝑧𝑧 = −3𝑥𝑥 1 − 2𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑛𝑛 unter den Restriktionen 2𝑥𝑥 1 + 𝑥𝑥 2 ≤ 10 3𝑥𝑥 1 + 7𝑥𝑥 2 ≤ 35 𝑥𝑥 1 + 𝑥𝑥 2 ≤ 6 und den Nichtnegativitätsbedingungen 𝑥𝑥 1 ≥ 0, 𝑥𝑥 2 ≥ 0 Andererseits möchte ein zweites Logistikunternehmen 𝐿𝐿 2 die Güter von der Firma 𝐿𝐿 1 gerne abkaufen und selber verpacken und transportieren. Dazu muss 𝐿𝐿 2 dem Unternehmen 𝐿𝐿 1 mindestens den Gewinn pro Palette, den 𝐿𝐿 1 erzielt hätte, anbieten. Andererseits möchte 𝐿𝐿 2 seine Ausgaben möglichst klein halten. Für die Firma 𝐿𝐿 2 entsteht die Instanz (D): Zielfunktion: 𝑧𝑧 𝐷𝐷 = 10𝑣𝑣 1 + 35𝑣𝑣 2 + 6𝑣𝑣 3 → 𝑚𝑚𝑚𝑚𝑛𝑛 unter den Restriktionen: 2𝑣𝑣 1 + 3𝑣𝑣 2 + 𝑣𝑣 3 ≥ 3 𝑣𝑣 1 + 7𝑣𝑣 2 + 𝑣𝑣 3 ≥ 2 𝑣𝑣 1 ≥ 0, 𝑣𝑣 2 ≥ 0 , 𝑣𝑣 3 ≥ 0 , dabei bedeuten 𝑣𝑣 1 , 𝑣𝑣 2 , 𝑣𝑣 3 die Ausgaben des Unternehmens 𝐿𝐿 2 für ein Stück des Guts 𝐺𝐺 1 , 𝐺𝐺 2 , 𝐺𝐺 3 . Die Instanz (D) ist das duale Problem zur Instanz (P). Das zugehörige verkürzte Tableau für (D) lautet <?page no="52"?> 52 2 Lineare Optimierung Tab.-Nr. 0 𝑣𝑣 1 𝑣𝑣 2 𝑣𝑣 3 −𝑧𝑧 𝐷𝐷 0 10 35 6 𝑤𝑤 1 −3 −2 −3 −1 𝑤𝑤 2 −2 −1 −7 −1 Allgemeiner formuliert man: Normalform des primalen (klassischen) Problems (P) Das duale Problem (D) −𝑐𝑐 ∙ 𝑥𝑥 → 𝑚𝑚𝑚𝑚𝑥𝑥 ⇔ 𝑧𝑧 = 𝑧𝑧 𝑃𝑃 = 𝑐𝑐 ∙ 𝑥𝑥 → 𝑚𝑚𝑚𝑚𝑛𝑛 𝑧𝑧 𝐷𝐷 = 𝑏𝑏 ∙ 𝑣𝑣 → 𝑚𝑚𝑚𝑚𝑛𝑛 𝐴𝐴𝑥𝑥 ≤ 𝑏𝑏 𝐴𝐴 𝑇𝑇 𝑣𝑣 ≥ −𝑐𝑐 ⇔ −𝐴𝐴 𝑇𝑇 𝑣𝑣 ≤ 𝑐𝑐 𝑥𝑥 ≥ 0 𝑣𝑣 ≥ 0 Tableaus: (P) Nr. 0 𝑥𝑥 𝑇𝑇 −𝑧𝑧 0 𝑐𝑐 𝑇𝑇 𝑦𝑦 𝑏𝑏 𝐴𝐴 (D) Nr. 0 𝑣𝑣 𝑇𝑇 −𝑧𝑧 𝐷𝐷 0 𝑏𝑏 𝑇𝑇 𝑤𝑤 𝑐𝑐 −𝐴𝐴 𝑇𝑇 Tab. 2.3: Primales und duales Problem nebeneinandergestellt dabei ist 𝐴𝐴 𝑇𝑇 die transponierte Matrix von 𝐴𝐴 vom Format (𝑛𝑛, 𝑚𝑚) und 𝑣𝑣 = � 𝑣𝑣 1 𝑣𝑣 2 ⋮ 𝑣𝑣 𝑚𝑚 � der Vektor der Entscheidungsvariablen von (D), 𝑤𝑤 = �𝑤𝑤 1 𝑤𝑤 2 ⋮ 𝑤𝑤 𝑛𝑛 � mit 𝑤𝑤 ≥ 0 der Vektor der Schlupfvariablen von (D). 𝑥𝑥 𝑇𝑇 , 𝑐𝑐 𝑇𝑇 , 𝑣𝑣 𝑇𝑇 und 𝑏𝑏 𝑇𝑇 sind die Zeilenvektoren der Spaltenvektoren 𝑥𝑥, 𝑐𝑐, 𝑣𝑣, 𝑏𝑏 . <?page no="53"?> 2.8 Der duale Simplex-Algorithmus 53 Es gilt allgemein: (P) besitzt so viele Entscheidungsvariablen, wie (D) lineare Restriktionen (ohne Nichtnegativitätsbedingungen) besitzt. (P) besitzt so viele lineare Restriktionen (ohne Nichtnegativitätsbedingungen) wie (D) Entscheidungsvariablen besitzt. Das duale Problem von (D) ist wieder das primale Problem (P). Gleichheitsrestriktionen führen im jeweils anderen Problem zu freien Entscheidungsvariablen. Genauer gilt die folgende Übersetzungstabelle: Tab. 2.4: Übersetzung primales Problem/ duales Problem Die folgenden Situationen können beim primalen und dualen Problem vorkommen: (P) und (D) haben denselben optimalen (endlichen) Zielfunktionswert, die optimalen Lösungen 𝑥𝑥 ∗ und 𝑣𝑣 ∗ sind aber i.A. verschieden. Die zulässige Menge von (P) ist leer und (D) besitzt eine nach unten unbeschränkte Zielfunktion auf der nichtleeren zulässigen Menge von (D). Primales Problem (P) (Maximierungsproblem) Duales Problem (D) Maximierungsproblem Minimierungsproblem 𝑛𝑛 Entscheidungsvariablen 𝑥𝑥 𝑗𝑗 , 𝑗𝑗 = 1, … , 𝑛𝑛 𝑛𝑛 Restriktionen (ohne Nichtnegativitätsbedingungen) 𝑚𝑚 Restriktionen (ohne Nichtnegativitätsbedingungen) 𝑚𝑚 Entscheidungsvariablen 𝑣𝑣 𝑖𝑖 , 𝑚𝑚 = 1, … , 𝑚𝑚 𝑚𝑚. Restriktion ist eine Gleichung Freie Variable 𝑣𝑣 𝑖𝑖 Freie Variable 𝑥𝑥 𝑗𝑗 𝑗𝑗. Restriktion ist eine Gleichung Nichtnegativitätsbedingung für 𝑥𝑥 𝑗𝑗 Größer-Gleich-Beziehung in 𝑗𝑗. Restriktion (≥) Kleiner-Gleich-Beziehung in 𝑚𝑚. Restriktion (≤) Nichtnegativitätsbedingung für 𝑣𝑣 𝑖𝑖 <?page no="54"?> 54 2 Lineare Optimierung (P) besitzt eine nach unten unbeschränkte Zielfunktion auf der zugehörigen zulässigen Menge und (D) besitzt eine leere zulässige Menge. (P) und (D) haben beide leere zulässige Mengen. Der (klassische) duale Simplex-Algorithmus wird motiviert durch sich entsprechende Pivotschritte, wenn man das primale zulässige und duale Tableau nebeneinanderstellt und man die einander via Transponieren entsprechenden Transformationen von (P) bei (D) durchführt. Beispiel 2.4 (Fortsetzung) (P) Nr. 0 𝑥𝑥 1 𝑥𝑥 2 −𝑧𝑧 𝑃𝑃 0 −3 −2 𝑦𝑦 1 10 2 1 𝑦𝑦 2 35 3 7 𝑦𝑦 3 6 1 1 (D) Nr. 0 𝑣𝑣 1 𝑣𝑣 2 𝑣𝑣 3 −𝑧𝑧 𝐷𝐷 0 10 35 6 𝑤𝑤 1 −3 −2 −3 −1 𝑤𝑤 2 −2 −1 −7 −1 Nach dem klassischen Simplex-Algorithmus wird als Pivotspalte bei (P) die Spalte von 𝑥𝑥 1 gewählt, daher wird bei (D) die Zeile von 𝑤𝑤 1 als Pivotzeile gewählt. Die Pivotzeile bei (P) ist dann die Zeile von 𝑦𝑦 1 , die Pivotspalte bei (D) ist daher die Spalte von 𝑣𝑣 1 . Die transformierten Tableaus sind: (P) Nr. 1 𝑦𝑦 1 𝑥𝑥 2 −𝑧𝑧 𝑃𝑃 15 32 − 12 𝑥𝑥 1 5 12 12 𝑦𝑦 2 20 − 32 11 2 𝑦𝑦 3 1 − 12 12 (D) Nr. 1 𝑤𝑤 1 𝑣𝑣 2 𝑣𝑣 3 −𝑧𝑧 𝐷𝐷 −15 5 20 1 𝑣𝑣 1 32 − 12 32 12 𝑤𝑤 2 − 12 − 12 − 12 − 12 <?page no="55"?> 2.8 Der duale Simplex-Algorithmus 55 Bei (P) ist nun die Spalte von 𝑥𝑥 2 Pivotspalte und daher ist bei (D) ist die Zeile von 𝑤𝑤 2 Pivotzeile. Damit befinden sich die Pivotelemente bei (P) und (D) im Tableau unten rechts. Die Tableaus Nr. 2 lauten nach Transformation wie folgt: (P) Nr. 2 𝑦𝑦 1 𝑦𝑦 3 −𝑧𝑧 𝑃𝑃 16 1 1 𝑥𝑥 1 4 1 −1 𝑦𝑦 2 9 4 −11 𝑥𝑥 2 2 −1 2 (D) Nr. 2 𝑤𝑤 1 𝑣𝑣 2 𝑤𝑤 2 −𝑧𝑧 𝐷𝐷 −16 4 9 2 𝑣𝑣 1 1 −1 −4 1 𝑣𝑣 3 1 1 11 −2 Die Tableaus Nr. 2 sind optimal, da die Zielfunktionskoeffzienten alle nichtnegativ sind. Als optimale Lösung für (P) erhält man 𝑥𝑥 ∗ = �42� , für (D) 𝑣𝑣 ∗ = �101� . Die optimalen Zielfunktionswerte sind −𝑧𝑧 ∗ = −𝑧𝑧 𝑃𝑃∗ = 16 für das Maximierungsproblem und 𝑧𝑧 𝐷𝐷∗ = 16 für das Minimierungsproblem. Die Schritte des (klassischen) dualen Simplex-Algorithmus Der duale Simplexalgorithmus kann nun direkt bei einem primalen Minimierungsproblem (P) mit 𝑛𝑛 Variablen und 𝑚𝑚 linearen Restriktionen eingesetzt werden, wenn mind. eine rechte Seite in der Nomalform von (P) negativ ist und alle Zielfunktionskoeffizienten nichtnegativ sind. Ein Tableau heißt dual zulässig, wenn die zweite Kopfzeile nichtnegative Einträge besitzt. Algorithmus: Gegeben ist ein dual zulässiges, primal nicht zulässiges Tableau. Iteriere, solange negative Einträge in der zweiten Kopfspalte existieren. Die 𝑘𝑘. Iteration des dualen Simplex-Algorithmus besteht aus den folgenden Transformationsschritten (𝑘𝑘 ∈ ℕ ): <?page no="56"?> 56 2 Lineare Optimierung [1] Bestimme eine Pivot-Zeile im Tableau mit der Nr. 𝑘𝑘 − 1 , d.h. eine Zeile 𝑚𝑚 , bei welcher der Eintrag in der zweiten Kopfspalte negativ ist. Meist wählt man aus den negativen Einträgen den kleinsten. [2] Bestimme eine Pivot-Spalte 𝑗𝑗 im Tableau 𝑘𝑘 − 1 , d.h.: Berechne alle Quotienten 𝑐𝑐 𝑙𝑙 𝑎𝑎 𝑖𝑖𝑙𝑙 mit den Einträgen 𝑐𝑐 𝑙𝑙 aus der zweiten Kopfzeile für 𝑙𝑙 = 1, … , 𝑛𝑛, für die 𝑚𝑚 𝑖𝑖𝑙𝑙 < 0 ist. Wähle den Maximalwert aller dieser nichtpositiven Quotienten. Der Maximalwert befinde sich in der 𝑗𝑗 . Spalte mit dem Wert 𝑐𝑐 𝑙𝑙 𝑎𝑎 𝑖𝑖𝑙𝑙 . Setze als Pivotspalte die 𝑗𝑗 . Spalte und als Pivotelement 𝑚𝑚 𝑖𝑖𝑗𝑗 . [3] Transformation auf das Tableau Nr. 𝑘𝑘 findet ohne Änderung gegenüber dem klassischen Simplex-Algorithmus statt, also: a. Führe einen Basistausch durch, d.h. vertausche den Eintrag in der 𝑗𝑗 . Spalte in der ersten Kopfzeile mit dem Eintrag in der 𝑚𝑚 . Zeile in der ersten Kopfspalte. Zu Beginn (𝑘𝑘 = 1) wird 𝑥𝑥 𝑗𝑗 zur BV, 𝑦𝑦 𝑖𝑖 wird zur NBV. b. Rechne das Pivotelement um: Ersetze 𝑚𝑚 𝑖𝑖𝑗𝑗 durch 1 𝑎𝑎𝑖𝑖𝑙𝑙 . c. Multipliziere die restlichen Elemente in der Pivotzeile mit dem Faktor 1 𝑎𝑎𝑖𝑖𝑙𝑙 . d. Multipliziere die restlichen Elemente der Pivotspalte mit dem Faktor − 1 𝑎𝑎𝑖𝑖𝑙𝑙 . e. Berechne alle noch nicht geänderten Einträge, inkl. dem Feld des Zielfunktionswerts, durch die Rechteckregeln 𝑚𝑚 𝑝𝑝𝑝𝑝 𝑁𝑁𝑁𝑁𝑁𝑁 = 𝑚𝑚 𝑝𝑝𝑝𝑝 − 𝑚𝑚 𝑖𝑖𝑝𝑝 𝑚𝑚 𝑝𝑝𝑗𝑗 𝑚𝑚 𝑖𝑖𝑗𝑗 , 𝑏𝑏 𝑝𝑝𝑁𝑁𝑁𝑁𝑁𝑁 = 𝑏𝑏 𝑝𝑝 − 𝑏𝑏 𝑖𝑖 ∙ 𝑚𝑚 𝑝𝑝𝑗𝑗 𝑚𝑚 𝑖𝑖𝑗𝑗 , 𝑐𝑐 𝑝𝑝𝑁𝑁𝑁𝑁𝑁𝑁 = 𝑐𝑐 𝑝𝑝 − 𝑚𝑚 𝑖𝑖𝑝𝑝 ∙ 𝑐𝑐 𝑗𝑗 𝑚𝑚 𝑖𝑖𝑗𝑗 für 𝑝𝑝 = 1, … , 𝑚𝑚, 𝑝𝑝 ≠ 𝑚𝑚, 𝑞𝑞 = 1, … , 𝑛𝑛, 𝑞𝑞 ≠ 𝑗𝑗 . Durch die Umformung [2] ist gewährleistet, dass das Tableau dual zulässig bleibt. Der duale Simplex-Algorithmus transformiert dual zulässige, primal nicht zulässige Tableaus so lange, bis sie auch primal zulässig sind. Dann ist die optimale Situation erreicht. Als Beispiel kann der Tableauverlauf in der rechten Spalte des Beispiels 2.4 dienen. <?page no="57"?> 2.9 Ganzzahlige Optimierung und Branch-and-Bound-Methode 57 Ganzzahlige Optimierung und Branch-and-Bound- Methode Einführung und Grundlagen Bei der ganzzahligen linearen Optimierung lässt man bei den Werten der Entscheidungsvariablen nur ganze Zahlen zu. Die Koeffizienten der Zielfunktion und der Restriktionen können aber beliebig reell sein. Z. B. wird statt der Nichtnegativitätsbedingung 𝑥𝑥 ≥ 0 für die Entscheidungsvariablen 𝑥𝑥 = �𝑥𝑥 1 ⋮ 𝑥𝑥 𝑛𝑛 � die Bedingung 𝑥𝑥 ∈ ℕ 0 , wobei ℕ 0 die Menge der natürlichen Zahlen inkl. Null ist. Wenn man von einem ganzzahligen linearen Optimierungsproblem 𝑃𝑃 zum zugehörigen linearen Optimierungsproblem 𝑃𝑃 𝑅𝑅 übergeht, indem man die Forderung, dass es sich um ganze Entscheidungsvariablen handelt, weglässt, dann nennt man 𝑃𝑃 𝑅𝑅 die Relaxation von 𝑃𝑃 . Die optimale Lösung eines ganzzahligen Optimierungsproblems 𝑃𝑃 kann durchaus „weit“ entfernt von der optimalen Lösung der zugehörigen Relaxation 𝑃𝑃 𝑅𝑅 liegen. Im Allgemeinen ergibt sich die Lösung des Ausgangsproblems also nicht dadurch, dass man zur nächstgelegenen ganzzahligen Lösung übergeht. Dies soll das nachfolgende Beispiel zeigen. Beispiel 2.5 Ganzzahliges Optimierungsproblem 𝑃𝑃 : Zielfunktion: 𝑧𝑧 = −𝑥𝑥 1 − 4𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑛𝑛 unter den vier Restriktionen (zulässige Menge 𝑀𝑀 ): 𝑥𝑥 1 + 𝑥𝑥 2 ≤ 4 𝑥𝑥 1 + 5𝑥𝑥 2 ≤ 6 𝑥𝑥 1 ∈ ℕ 0 , 𝑥𝑥 2 ∈ ℕ 0 Zugehörige Relaxation 𝑃𝑃 𝑅𝑅 : Zielfunktion: 𝑧𝑧 𝑅𝑅 = −𝑥𝑥 1 − 4𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑛𝑛 unter den Restriktionen und Nichtnegativitätsbedingungen (zulässige Menge 𝑀𝑀 𝑅𝑅 ): 𝑥𝑥 1 + 𝑥𝑥 2 ≤ 4 𝑥𝑥 1 + 5𝑥𝑥 2 ≤ 6 𝑥𝑥 1 ≥ 0, 𝑥𝑥 2 ≥ 0 <?page no="58"?> 58 2 Lineare Optimierung Abb. 2.7: Zulässige Menge 𝑀𝑀 𝑅𝑅 der Relaxation ist in grau, zulässige Menge 𝑀𝑀 des ganzzahligen Optimierungsproblems ist durch das Punktraster mit 7 Punkten dargestellt. Eingezeichnet sind die optimalen Isozielwertgeraden beider Probleme. Die optimale Ecke (1|1) bzw. optimale Lösung 𝑥𝑥 ∗ = � 11 � des ganzzahligen Problems 𝑃𝑃 mit dem Wert 𝑧𝑧 = −5 ist weiter von der optimalen Ecke 𝑋𝑋(3,5|0,5) der Relaxation 𝑃𝑃 𝑅𝑅 entfernt als die zu 𝑋𝑋 nächstgelegenen zulässigen Punkte (3|0) oder (4|0) mit ganzzahligen Koordinaten. Branch-and-Bound-Methode Die Branch-and-Bound-Methode ist ein Verfahren mit exponentiellem Aufwand, das stets eine exakte optimale Lösung eines ganzzahligen Optimierungsproblems 𝑃𝑃 0 findet, sofern eine existiert. Wegen des exponentiellen Verhaltens ist es sinnvoll, das Verfahren bei kleinen Problemen anzuwenden. Wir betrachten wieder Minimierungsprobleme. Bei der Branch-and-Bound-Methode wird nach und nach ein Baum mit Wurzelknoten 𝑃𝑃 0 und ggf. weiteren Knoten 𝑃𝑃 𝑘𝑘 (𝑘𝑘 = 1, … , 𝑞𝑞 mit 𝑞𝑞 ≥ 0) konstruiert nach Vorgabe von Branching-Regeln (Verzweigungsregeln). Die Knoten 𝑃𝑃 𝑘𝑘 sind wieder ganzzahlige Optimierungsprobleme, die wegen der schrittweisen Hinzunahme von Restriktionen auch als Teilprobleme von 𝑃𝑃 0 bezeichnet werden. Jedem 𝑃𝑃 𝑘𝑘 (𝑘𝑘 ∈ {0, … , 𝑞𝑞}) wird seine Relaxation 𝑃𝑃 𝑅𝑅𝑘𝑘 zugeordnet, dessen zulässige Menge 𝑀𝑀 𝑅𝑅𝑘𝑘 eine Obermenge von 𝑀𝑀 𝑘𝑘 ist. Anhand der optimalen Lösung von 𝑃𝑃 𝑅𝑅𝑘𝑘 und deren Zielfunktionswert wird entschieden, ob das Verfahren am betrachteten Knoten 𝑃𝑃 𝑘𝑘 durch Verzweigung fortgesetzt wird oder nicht oder ob das Verfahren insgesamt beendet wird. Dazu werden aktuell vorhandene Bounds (Schranken) benützt. Branching (Verzweigung): Branching bezieht sich auf die fortgesetzte Konstruktion von Ästen des Baums ausgehend vom gegebenen Problem 𝑃𝑃 0 als Wurzel durch Verzweigen in zwei Teilprobleme bei jedem Schritt. Am Ende des Verfahrens ist die zulässige Menge 𝑀𝑀 0 des Problems 𝑃𝑃 0 in 𝑞𝑞 viele <?page no="59"?> 2.9 Ganzzahlige Optimierung und Branch-and-Bound-Methode 59 Teilprobleme 𝑃𝑃 𝑘𝑘 mit zulässigen Mengen 𝑀𝑀 𝑘𝑘 so aufgeteilt, dass gilt 𝑀𝑀 0 = 𝑀𝑀 1 ∪ 𝑀𝑀 2 ∪ ⋯ ∪ 𝑀𝑀 𝑝𝑝 , 𝑀𝑀 𝑖𝑖 ∩ 𝑀𝑀 𝑗𝑗 = ∅ für 𝑚𝑚 ≠ 𝑗𝑗, 𝑚𝑚, 𝑗𝑗 ∈ {1, 2, ⋯ , 𝑞𝑞} . Dazu entsprechend gibt es eine Zerlegung von 𝑀𝑀 𝑅𝑅0 mittels der Relaxationen 𝑃𝑃 𝑅𝑅𝑘𝑘 mit zulässigen Mengen 𝑀𝑀 𝑅𝑅𝑘𝑘 mit 𝑀𝑀 𝑅𝑅0 = 𝑀𝑀 𝑅𝑅1 ∪ 𝑀𝑀 𝑅𝑅2 ∪ ⋯ ∪ 𝑀𝑀 𝑅𝑅𝑝𝑝 , 𝑀𝑀 𝑅𝑅𝑖𝑖 ∩ 𝑀𝑀 𝑅𝑅𝑗𝑗 = ∅ . Branching geschieht z. B. durch die folgende Verzweigungsregel: Sei 𝑥𝑥 ∗ = (𝑥𝑥 1∗ , … , 𝑥𝑥 𝑛𝑛∗ ) 𝑇𝑇 eine optimale Lösung der Relaxation 𝑃𝑃 𝑅𝑅𝑘𝑘 mit mindestens einer nicht ganzzahligen Koordinate 𝑥𝑥 𝑗𝑗 ∗ , 𝑗𝑗 ∈ {1, ⋯ , 𝑛𝑛} . Die Verzweigung des Problems wird durch die zusätzlichen Restriktionen 𝑥𝑥 𝑗𝑗 ≤ �𝑥𝑥 𝑗𝑗∗ � und 𝑥𝑥 𝑗𝑗 ≥ �𝑥𝑥 𝑗𝑗∗ � + 1 für dieses 𝑗𝑗 vorgenommen, wobei ⌊ ⌋ die Gauß-Klammer darstellt, d.h ⌊𝑤𝑤⌋ ist die größte ganze Zahl, die kleiner gleich 𝑤𝑤 ∈ ℝ ist. Dadurch entstehen sowohl bei der Relaxation 𝑃𝑃 𝑅𝑅𝑘𝑘 als auch bei dem Originalproblem 𝑃𝑃 𝑘𝑘 jeweils zwei Teilprobleme, einmal das mit der zusätzlichen Bedingung 𝑥𝑥 𝑗𝑗 ≤ �𝑥𝑥 𝑗𝑗∗ � und das mit 𝑥𝑥 𝑗𝑗 ≥ �𝑥𝑥 𝑗𝑗∗ � + 1. Die Frage, ob tatsächlich verzweigt werden muss, wird durch Abbruchregeln beantwortet. Bounding (Beschränkung): Mit Hilfe des Bounding wird geklärt, ob weiter verzweigt werden muss oder nicht. Eine untere Schranke 𝑼𝑼 𝒌𝒌 für den optimalen Zielfunktionswert eines ganzzahligen Minimierungs-Teilproblems 𝑃𝑃 𝑘𝑘 erhält man durch den optimalen Zielfunktionswert der zugehörigen Relaxation 𝑃𝑃 𝑅𝑅𝑘𝑘 . Da 𝑀𝑀 𝑅𝑅𝑘𝑘 ⊇ 𝑀𝑀 𝑘𝑘 , stehen nämlich bei 𝑃𝑃 𝑅𝑅𝑘𝑘 mehr zulässige Lösungen zum Auffinden der optimalen Lösung zur Verfügung als bei 𝑃𝑃 𝑘𝑘 , deshalb wird der minimale Zielfunktionswert von 𝑃𝑃 𝑅𝑅𝑘𝑘 nicht größer sein als der von 𝑃𝑃 𝑘𝑘 . Der Wert 𝑈𝑈 𝑘𝑘 ist dann als eine untere Schranke für den Teilbaum mit 𝑃𝑃 𝑘𝑘 als Wurzel anzusehen, d.h. die untere Schranke gilt lokal im „nachfolgenden“ Teilbaum. Als eine obere Schranke 𝑶𝑶 für den optimalen Zielfunktionswert eines ganzzahligen Minimierungs-Teilproblems 𝑃𝑃 𝑘𝑘 wird der Zielfunktionswert der optimalen Lösung von 𝑃𝑃 𝑅𝑅𝑘𝑘 gesetzt, falls die Lösung nur ganzzahlige Koordinaten besitzt. <?page no="60"?> 60 2 Lineare Optimierung Diese Lösung ist nämlich ein Kandidat für die Lösung von 𝑃𝑃 0 und im Verlauf des Verfahrens sind nur noch ganzzahlige optimale Lösungen von Teilproblemen mit kleinerem Wert interessant. Die obere Schranke gilt global für den gesamten Baum mit Wurzel 𝑃𝑃 0 . Sie wird zu Beginn sehr groß, z.B. auf ∞ , gesetzt oder auch als Wert einer beliebigen zulässigen Lösung angegeben. Abbruchregeln, so dass nicht weiter verzweigt werden muss: Bei einem Teilproblem 𝑃𝑃 𝑘𝑘 (𝑘𝑘 ∈ {0, … , 𝑞𝑞}) wird nicht weiter verzweigt, falls [1] die Relaxation 𝑃𝑃 𝑅𝑅𝑘𝑘 keine zulässigen Lösungen besitzt, d.h. 𝑀𝑀 𝑅𝑅𝑘𝑘 = ∅ . Dann hat auch das Problem 𝑃𝑃 𝑘𝑘 keine zulässigen Lösungen, d.h. 𝑀𝑀 𝑘𝑘 = ∅ . 𝑃𝑃 𝑘𝑘 trägt nicht zur Lösung von 𝑃𝑃 0 bei. [2] die optimale Lösung der Relaxation 𝑃𝑃 𝑅𝑅𝑘𝑘 ganzzahlig ist mit dem Wert 𝑂𝑂 𝑘𝑘 . 𝑂𝑂 𝑘𝑘 wird mit der vorliegenden oberen Schranke 𝑂𝑂 verglichen. Ist er besser (𝑂𝑂 𝑘𝑘 ≤ 𝑂𝑂) , wird die bisher beste Lösung durch die aktuelle Lösung ersetzt und die neue globale obere Schranke für Lösungen wird auf 𝑂𝑂 𝑘𝑘 gesetzt. [3] der optimale Zielfunktionswert 𝑈𝑈 𝑘𝑘 von 𝑃𝑃 𝑅𝑅𝑘𝑘 größer (oder gleich) ist als die aktuell geltende obere Schranke 𝑂𝑂 . Der Teilbaum mit Wurzel 𝑃𝑃 𝑘𝑘 ist uninteressant, da kein Teilproblem in diesem Teilbaum einen kleineren optimalen Zielfunktionswert besitzen kann. Falls verzweigt wird, werden die Schranken nach der obigen Beschreibung lokal und global neu gesetzt. Die Branch-and-Bound-Methode bricht ab, wenn es kein Teilproblem gibt, das noch verzweigt werden kann. Falls eine optimale Lösung von 𝑃𝑃 0 existiert, wird sie bei [2] im Laufe des Verfahrens als aktuell beste Lösung gesetzt. Wesentliche Bestandteile der Branch-and-Bound-Methode bei linearer Optimierung sind: Bestimmung einer Relaxation 𝑃𝑃 𝑅𝑅𝑘𝑘 eines Problems 𝑃𝑃 𝑘𝑘 , Algorithmus zur Bestimmung einer Lösung und eines Zielfunktionswerts für die Relaxationen, Abbruchregeln, welche Teilprobleme nicht weiter verzweigt werden, Auswahlregel, welches der Teilprobleme als nächstes betrachtet wird, z.B. mittels Breitensuche im Baum: Fahre mit dem Teilproblem fort, das die kleinste untere Schranke 𝑈𝑈 für seinen Teilbaum besitzt. <?page no="61"?> 2.9 Ganzzahlige Optimierung und Branch-and-Bound-Methode 61 Bemerkung Sind die Koeffizienten der Zielfunktion ganzzahlig, kann die untere Schranke 𝑈𝑈 auf die nächstgrößere ganze Zahl angehoben werden, da die relevanten Zielfunktionswerte ganzzahlig sind. Beispiel 2.6 Gelöst werden soll das lineare ganzzahlige Optimierungsproblem 𝑃𝑃 0 : Zielfunktion: 𝑧𝑧 = −21𝑥𝑥 1 − 30𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑛𝑛 unter den Restriktionen und den Ganzzahligkeitsbedingungen: 𝑥𝑥 1 + 2𝑥𝑥 2 ≤ 5 4𝑥𝑥 1 + 3𝑥𝑥 2 ≤ 12 𝑥𝑥 1 ∈ ℕ 0 , 𝑥𝑥 2 ∈ ℕ 0 Zugehörige Relaxation 𝑃𝑃 𝑅𝑅0 : Zielfunktion: 𝑧𝑧 𝑅𝑅 = −21𝑥𝑥 1 − 30𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑛𝑛 unter den Restriktionen und den Nichtnegativitätsbedingungen: 𝑥𝑥 1 + 2𝑥𝑥 2 ≤ 5 4𝑥𝑥 1 + 3𝑥𝑥 2 ≤ 12 𝑥𝑥 1 ≥ 0, 𝑥𝑥 2 ≥ 0 Die zugehörigen zulässigen Mengen 𝑀𝑀 0 und 𝑀𝑀 𝑅𝑅0 sind in Abb. 2.8 dargestellt. Abb. 2.8: Die zulässige Menge 𝑀𝑀 𝑅𝑅0 ist grau hervorgehoben und 𝑀𝑀 0 ist die Menge der neun schwarzen Punkte; eingezeichnet ist auch die optimale Lösung 𝑥𝑥 ∗ = � 1,8 1,6 � von 𝑃𝑃 𝑅𝑅0 und die Isozielwertgerade durch 𝑥𝑥 ∗ . Es wird die obere Schranke 𝑂𝑂 = ∞ gesetzt. Die optimale Lösung von 𝑃𝑃 𝑅𝑅0 berechnet sich mit dem klassischen Simplex- Algorithmus zu 𝑥𝑥 ∗ = � 1,8 1,6 � , der optimale Wert ist 𝑧𝑧 ∗ = −85,8 . Damit ist die untere Schranke 𝑈𝑈 = −85,8 . <?page no="62"?> 62 2 Lineare Optimierung 𝑃𝑃 0 wird verzweigt, da 𝑥𝑥 ∗ keine ganzzahlige Lösung ist. Es kann nach 𝑥𝑥 1 oder 𝑥𝑥 2 verzweigt werden. Wir verzweigen nach 𝑥𝑥 1 mittels 𝑥𝑥 1 ≤ 1 und 𝑥𝑥 1 ≥ 2 . Abb. 2.9: Verzweigung von 𝑃𝑃 0 Die Teilprobleme 𝑃𝑃 1 und 𝑃𝑃 2 von 𝑃𝑃 0 lauten: 𝑃𝑃 1 : Zielfunktion: 𝑧𝑧 = −21𝑥𝑥 1 − 30𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑛𝑛 unter den Restriktionen: 𝑥𝑥 1 + 2𝑥𝑥 2 ≤ 5 4𝑥𝑥 1 + 3𝑥𝑥 2 ≤ 12 𝑥𝑥 1 ≤ 1 𝑥𝑥 1 ∈ ℕ 0 , 𝑥𝑥 2 ∈ ℕ 0 Zugehörige Relaxation 𝑃𝑃 𝑅𝑅1 : Zielfunktion: 𝑧𝑧 𝑅𝑅 = −21𝑥𝑥 1 − 30𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑛𝑛 unter den Restriktionen: 𝑥𝑥 1 + 2𝑥𝑥 2 ≤ 5 4𝑥𝑥 1 + 3𝑥𝑥 2 ≤ 12 𝑥𝑥 1 ≤ 1 𝑥𝑥 1 ≥ 0, 𝑥𝑥 2 ≥ 0 Die zugehörigen zulässigen Mengen 𝑀𝑀 1 und 𝑀𝑀 𝑅𝑅1 sind in Abb. 2.10 dargestellt. Abb. 2.10: Die zulässige Menge 𝑀𝑀 𝑅𝑅1 ist grau hervorgehoben und 𝑀𝑀 1 ist die Menge der sechs schwarzen Punkte; eingezeichnet ist auch die optimale Lösung 𝑥𝑥 ∗ = � 12 � von 𝑃𝑃 𝑅𝑅1 , und dann auch von 𝑃𝑃 1 . <?page no="63"?> 2.9 Ganzzahlige Optimierung und Branch-and-Bound-Methode 63 Die optimale Lösung von 𝑃𝑃 𝑅𝑅1 lautet 𝑥𝑥 ∗ = � 12 � , der optimale Wert ist 𝑧𝑧 ∗ = −81 . Dies ist eine ganzzahlige Lösung und 𝑃𝑃 1 wird wegen [2] nicht weiter verzweigt. Als obere Schranke wird 𝑂𝑂 = −81 < ∞ gesetzt. 𝑃𝑃 2 : Zielfunktion: 𝑧𝑧 = −21𝑥𝑥 1 − 30𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑛𝑛 unter den Restriktionen: 𝑥𝑥 1 + 2𝑥𝑥 2 ≤ 5 4𝑥𝑥 1 + 3𝑥𝑥 2 ≤ 12 𝑥𝑥 1 ≥ 2 𝑥𝑥 1 ∈ ℕ 0 , 𝑥𝑥 2 ∈ ℕ 0 Zugehörige Relaxation 𝑃𝑃 𝑅𝑅2 : Zielfunktion: 𝑧𝑧 𝑅𝑅 = −21𝑥𝑥 1 − 30𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑛𝑛 unter den Restriktionen: 𝑥𝑥 1 + 2𝑥𝑥 2 ≤ 5 4𝑥𝑥 1 + 3𝑥𝑥 2 ≤ 12 𝑥𝑥 1 ≥ 2 𝑥𝑥 1 ≥ 0, 𝑥𝑥 2 ≥ 0 Die optimale Lösung von 𝑃𝑃 𝑅𝑅2 lautet 𝑥𝑥 ∗ = � 2 43 � , der optimale Wert ist 𝑧𝑧 ∗ = −82 . Da die optimale Lösung nicht ganzzahlig ist, wird 𝑃𝑃 2 weiter verzweigt in 𝑃𝑃 3 und 𝑃𝑃 4 . Untere Schranke für 𝑃𝑃 3 und 𝑃𝑃 4 ist 𝑈𝑈 = −82 . Verzweigt wird nach 𝑥𝑥 2 mittels 𝑥𝑥 2 ≤ 1 und 𝑥𝑥 2 ≥ 2 . Abb. 2.11: Der während der Branch-and-Bound-Methode erzeugte Baum 𝑃𝑃 3 : Zielfunktion: 𝑧𝑧 = −21𝑥𝑥 1 − 30𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑛𝑛 unter den Restriktionen: 𝑥𝑥 1 + 2𝑥𝑥 2 ≤ 5 4𝑥𝑥 1 + 3𝑥𝑥 2 ≤ 12 𝑥𝑥 1 ≥ 2 <?page no="64"?> 64 2 Lineare Optimierung 𝑥𝑥 2 ≥ 2 𝑥𝑥 1 ∈ ℕ 0 , 𝑥𝑥 2 ∈ ℕ 0 Eine optimale Lösung der Relaxation 𝑃𝑃 𝑅𝑅3 existiert nicht, da die zulässige Menge 𝑀𝑀 𝑅𝑅3 leer ist. 𝑃𝑃 3 wird wegen [1] nicht weiter verzweigt. 𝑃𝑃 4 : Zielfunktion: 𝑧𝑧 = −21𝑥𝑥 1 − 30𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑛𝑛 unter den Restriktionen: 𝑥𝑥 1 + 2𝑥𝑥 2 ≤ 5 4𝑥𝑥 1 + 3𝑥𝑥 2 ≤ 12 𝑥𝑥 1 ≥ 2 𝑥𝑥 2 ≤ 1 𝑥𝑥 1 ∈ ℕ 0 , 𝑥𝑥 2 ∈ ℕ 0 Die zugehörigen zulässigen Mengen 𝑀𝑀 4 und 𝑀𝑀 𝑅𝑅4 sind in Abb. 2.12 dargestellt. Abb. 2.12: Die zulässige Menge 𝑀𝑀 𝑅𝑅4 ist grau hervorgehoben und 𝑀𝑀 4 ist die Menge der drei schwarzen Punkte; eingezeichnet ist auch die optimale Lösung 𝑥𝑥 ∗ = � 2,25 1 � von 𝑃𝑃 𝑅𝑅4 . Die optimale Lösung der Relaxation 𝑃𝑃 𝑅𝑅4 lautet 𝑥𝑥 ∗ = � 2,25 1 � mit dem optimalen Wert 𝑧𝑧 ∗ = −77,25 . Da die untere Schranke 𝑈𝑈 = −77,25 aber größer ist als die obere Schranke 𝑂𝑂 = −81 , wird 𝑃𝑃 4 wegen [3] nicht weiter verzweigt. Das Verfahren bricht ab und die optimale Lösung von 𝑃𝑃 0 ist 𝑥𝑥 ∗ = � 12 � mit dem optimalen Wert 𝑧𝑧 ∗ = −81 . <?page no="65"?> 2.10 Aufgaben 65 Aufgaben Aufgabe 2.1 Welche Lösungssituationen können bei einem linearen Optimierungsproblem vorkommen? Wenn zwei verschiedene optimale Lösungen existieren, so existieren sogar unendlich viele. Ist die zulässige Menge eines linearen Optimierungsproblems nichtleer und beschränkt, so existiert eine optimale Lösung. Die Summe (Vektoraddition) zweier zulässiger Lösungen ist wieder eine zulässige Lösung. Aufgabe 2.2 Welche Bedingungen sind hinreichend für unendlich viele optimale Lösungen bei einem Minimierungsproblem mit zwei Variablen? Die Steigung der Isozielwertgeraden ist gleich der Steigung einer begrenzenden Geraden 𝑔𝑔 der zulässigen Menge. Die zulässige Menge ist unbeschränkt. Die Steigung der Isozielwertgeraden ist gleich der Steigung einer begrenzenden Geraden 𝑔𝑔 der zulässigen Menge und der Zielfunktionswert auf dem zulässigen Teil von 𝑔𝑔 ist minimal. Aufgabe 2.3 Beim Pivotschritt wird das Tableau transformiert durch: Die Pivotzeile wird durch das negative Pivotelement dividiert. Die zweite Kopfzeile wird ausschließlich mit der Rechteckregel transformiert. Ist in einer Zeile eine Null in der Pivotspalte, so bleibt die Zeile unter der Transformation unverändert. Aufgabe 2.4 Wie erkennt man im Tableau des Simplex-Algorithmus, dass unendlich viele optimale Lösungen existieren? In der zweiten Kopfspalte tauchen mindestens zwei gleiche Werte auf. In der zweiten Kopfzeile taucht mindestens eine Null auf. Eine Zeile der Matrix 𝐴𝐴 besteht aus lauter Nullen. <?page no="66"?> 66 2 Lineare Optimierung Aufgabe 2.5 Wenn das primale Problem (P) eine zulässige Lösung besitzt, dann kann das duale Problem (D)… keine zulässige Lösung besitzen, da die zulässige Menge leer ist. keine zulässige Lösung besitzen, da die Zielfunktion auf der zulässigen Menge unbeschränkt ist. keine der beiden vorigen Aussagen erfüllen. Aufgabe 2.6 Was unterscheidet den (klassischen) dualen Simplex-Algorithmus vom klassischen Simplex-Algorithmus? Die Voraussetzungen bei den rechten Seiten und den Zielfunktionskoeffizienten sind verschieden. Die Rechteckregeln sind verschieden. Die Auswahlreihenfolge bei Wahl der Pivotzeile und -spalte ist jeweils verschieden. Beim klassischen Simplex-Algorithmus wird in jedem Pivotschritt ein primal zulässiges Tableau transformiert mit dem Ziel, ein dual zulässiges, d.h. optimales, Tableau zu erhalten. Beim dualen Simplex-Algorithmus wird in jedem Pivotschritt ein dual zulässiges Tableau umgeformt mit dem Ziel, ein primal zulässiges Tableau zu erhalten. Aufgabe 2.7 Für optimale Lösungen eines ganzzahligen linearen Optimierungsproblems (Minimierungsproblem) gilt: Es gibt nur höchstens endlich viele ganzzahlige optimale Lösungen. Der Zielfunktionswert der optimalen ganzzahligen Lösung ist eine obere Schranke des optimalen Zielfunktionswerts der zugehörigen Relaxation. Eine ganzzahlige optimale Lösung erhält man, wenn eine optimale Lösung der zugehörigen Relaxation in ihren Koordinaten abgerundet wird. Aufgabe 2.8 Geben Sie zu der folgenden Situation eine Modellinstanz eines linearen Optimierungsproblems an: <?page no="67"?> 2.10 Aufgaben 67 Einem Landwirt steht Ackergelände von 60 Hektar Größe für den Anbau von Mais, Rüben und Weizen zur Verfügung. Er hat dafür maximal 4000 EUR und maximal 400 Arbeitstage eingeplant. Die Anbaukosten pro Hektar liegen für Mais bei 40 EUR, für Rüben bei 20 EUR und für Weizen bei 60 EUR. Die Arbeitszeiten pro Hektar belaufen sich bei Mais auf 6 Arbeitstage, bei den Rüben auf 8 Tage und 12 Tage bei Weizen. Auf dem Großmarkt erzielt der Landwirt einen Gewinn pro Hektar von 70 EUR bei Anbau von Mais, von 80 EUR bei Rüben und 120 EUR bei Weizen. Eine Richtlinie schreibt vor, dass die Anbaufläche für Mais höchstens doppelt so groß sein darf wie die für Rüben und dass Weizen auf mindestens 10% der bepflanzten Fläche angebaut werden muss. Welches Anbauprogramm muss der Landwirt umsetzen, damit sein Gewinn maximal ist? Aufgabe 2.9 Geben Sie die unten grau dargestellte zulässige Menge 𝑀𝑀 in der 𝑥𝑥 1 𝑥𝑥 2 - Ebene mit Hilfe von Ungleichungen an, deren linke Seite die Form 𝑚𝑚𝑥𝑥 1 + 𝑏𝑏𝑥𝑥 2 mit Zahlen 𝑚𝑚, 𝑏𝑏 besitzen. Bestimmen Sie die optimale Lösung des Optimierungsproblems mit der zulässigen Menge 𝑀𝑀 und der Zielfunktion 𝑧𝑧 = 𝑥𝑥 1 − 4𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑛𝑛 ohne Anwendung des Simplex-Algorithmus. Aufgabe 2.10 Lösen Sie nachfolgendes lineares Optimierungsproblem graphisch. −𝑥𝑥 1 − 𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑛𝑛 𝑥𝑥 1 + 𝑥𝑥 2 ≥ 5 <?page no="68"?> 68 2 Lineare Optimierung 𝑥𝑥 1 + 𝑥𝑥 2 ≤ 0 𝑥𝑥 1 + 2𝑥𝑥 2 ≤ 12 𝑥𝑥 1 − 2𝑥𝑥 2 ≤ 6 𝑥𝑥 1 ≥ 0 , 𝑥𝑥 2 ≥ 0 Wie lauten die optimalen Lösungen, wenn man −𝑥𝑥 1 − 𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑥𝑥 unter Beibehaltung der zulässigen Menge betrachtet? Aufgabe 2.11 Lösen Sie die folgenden linearen Optimierungsprobleme mit dem klassischen Simplex-Algorithmus, falls eine optimale Lösung existiert. Geben Sie bei jeder Iteration die Basislösung an. a) 𝑥𝑥 1 + 2𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑥𝑥 𝑥𝑥 1 + 5𝑥𝑥 2 ≤ 20 3𝑥𝑥 1 + 2𝑥𝑥 2 ≤ 21 𝑥𝑥 1 ≥ 0, 𝑥𝑥 2 ≥ 0 b) −𝑥𝑥 1 − 2𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑛𝑛 −2𝑥𝑥 1 + 3𝑥𝑥 2 ≤ 6 𝑥𝑥 1 − 3𝑥𝑥 2 ≥ −9 𝑥𝑥 1 ≥ 0, 𝑥𝑥 2 ≥ 0 c) 𝑥𝑥 2 + 𝑥𝑥 3 → 𝑚𝑚𝑚𝑚𝑥𝑥 𝑥𝑥 1 + 2𝑥𝑥 2 + 𝑥𝑥 3 ≤ 3 𝑥𝑥 1 + 4𝑥𝑥 2 + 2𝑥𝑥 3 ≤ 5 3𝑥𝑥 1 + 𝑥𝑥 2 + 2𝑥𝑥 3 ≤ 2 𝑥𝑥 1 ≥ 0, 𝑥𝑥 2 ≥ 0, 𝑥𝑥 3 ≥ 0 Aufgabe 2.12 Nachfolgend ist pro Teilaufgabe ein Simplex-Tableau gegeben. Entscheiden Sie zunächst, ob mindestens eine weitere Iteration des erweiterten Simplex-Algorithmus durchgeführt werden muss. Für den Fall, dass keine weitere Iteration durchzuführen ist, geben Sie als weitere Antwort an, ob (a) das zugrundeliegende Problem eine optimale Lösung besitzt, <?page no="69"?> 2.10 Aufgaben 69 (b) das zugrundeliegende Problem keine endliche Lösung besitzt. Für den Fall, dass eine weitere Iteration durchzuführen ist, ermitteln Sie das Pivotelement entsprechend der Regeln des erweiterten Simplex-Algorithmus und markieren Sie es durch einen Rahmen im Tableau. a) b) c) 𝑦𝑦 1 ist eine gesperrte Schlupfvariable: Aufgabe 2.13 Lösen Sie das Optimierungsproblem aus Aufgabe 2.12c) und Aufgabe 2.9 mit Hilfe des erweiterten Simplex-Algorithmus. Aufgabe 2.14 Geben Sie zu dem folgenden linearen Optimierungsproblem (P) das duale Problem (D) an. <?page no="70"?> 70 2 Lineare Optimierung −4𝑥𝑥 1 + 𝑥𝑥 2 − 2𝑥𝑥 3 → 𝑚𝑚𝑚𝑚𝑥𝑥 𝑥𝑥 1 − 3𝑥𝑥 2 ≤ 5 −2𝑥𝑥 1 + 𝑥𝑥 2 ≥ −7 2𝑥𝑥 2 − 𝑥𝑥 3 ≤ 6 −𝑥𝑥 1 − 𝑥𝑥 3 = 4 𝑥𝑥 1 ≥ 0 Aufgabe 2.15 Lösen Sie das folgende lineare Optimierungsproblem mit dem dualen Simplex-Algorithmus. −4𝑥𝑥 1 − 7𝑥𝑥 2 − 5𝑥𝑥 3 → 𝑚𝑚𝑚𝑚𝑥𝑥 2𝑥𝑥 1 − 𝑥𝑥 2 + 3𝑥𝑥 3 ≥ 5 −3𝑥𝑥 1 − 2𝑥𝑥 2 ≤ −7 2𝑥𝑥 1 + 𝑥𝑥 3 ≥ 6 𝑥𝑥 1 ≥ 0, 𝑥𝑥 2 ≥ 0, 𝑥𝑥 3 ≥ 0 Aufgabe 2.16 Im Beispiel 2.6 wird die Zielfunktion jeweils durch eine neue Zielfunktion ersetzt, während die zulässige Menge beibehalten wird. Führen Sie die Branch-and-Bound-Methode durch. Welche Situationen ergeben sich im Gegensatz zu Beispiel 2.6? a) Neue Zielfunktion: −3𝑥𝑥 1 − 5𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑛𝑛 b) Neue Zielfunktion: 𝑥𝑥 1 + 𝑥𝑥 2 → 𝑚𝑚𝑚𝑚𝑥𝑥 Führen Sie dabei in Ergänzung zu Beispiel 2.6 auch die Simplex-Algorithmen zur Lösung der Relaxationen durch. Aufgabe 2.17 Lösen Sie das zur Aufgabe 2.9 zugehörige ganzzahlige Problem. Nehmen Sie dabei graphische Situationen zu Hilfe, um optimale Lösungen der auftretenden Relaxationen zu bestimmen. <?page no="71"?> 3 Graphentheorie Schlagwörter und Prüfungstipps Was erwartet mich in diesem Kapitel? In diesem Kapitel werden die elementaren Begriffe der Graphentheorie definiert und anhand von Beispielen erläutert. Insbesondere werden Bäume und deren Eigenschaften behandelt und zwei Algorithmen zur Berechnung von minimalen Spannbäumen vorgestellt. Welche Schlagwörter lerne ich kennen? ∎ Graph ∎ Knotengrad ∎ Handschlag-Lemma ∎ Weg ∎ Pfad ∎ Zyklus ∎ Kreis ∎ Baum ∎ Wald ∎ Spannbaum ∎ Algorithmus von Kruskal ∎ Algorithmus von Prim Welche Prüfungstipps kann ich aus diesem Kapitel ziehen? Folgende Kompetenzen sind in der Prüfung wichtig: Eine „Alltagssituation“ in ein graphentheoretisches Problem zu übersetzen. Grundbegriffe der Graphentheorie zu kennen und erklären zu können. Das Handschlag-Lemma anwenden zu können. Eigenschaften von Bäumen zu kennen. Minimale Spannbäume bestimmen zu können. Einführung Dem Schweizer Mathematiker Leonhard Euler (1707-1783) wurde im Jahr 1736 folgendes Problem gestellt. Abb. 3.1: Königsberger Brückenproblem <?page no="72"?> 72 3 Graphentheorie Durch die Stadt Königsberg fließt der Pregel, der im Stadtgebiet zwei Inseln umfließt, Kneiphof und Lomse. Diese sind untereinander und mit dem restlichen Stadtgebiet durch Brücken verbunden. Frage: Ist es möglich, einen Spaziergang so zu organisieren, dass man dabei jede Brücke genau einmal überquert? Euler löste das Problem, indem er die Karte zu einem Graphen abstrahierte und das Problem in graphentheoretische Sprache übersetzte. 3.2.1 Grundbegriffe Graphen sind eine kombinatorische Struktur, die bei der Modellierung zahlreicher Anwendungen auftreten. Sie bestehen aus einer Menge von Objekten (Knoten, engl. vertices) und deren Beziehungen untereinander (Kanten, engl. edges). Anwendungsbeispiele Straßennetz Die Knoten entsprechen den Orten, die Kanten entsprechen den direkten Straßenverbindungen zwischen den Orten. Aufgabe ist es hier z.B., die kürzeste oder schnellste Verbindung zwischen zwei Orten zu finden, wenn die Streckenlängen aller direkten Verbindungen bekannt sind. Frequenzmanagement im Mobilfunk Die Knoten entsprechen den Sendern, zwei Knoten werden durch eine Kante verbunden, wenn beide Sender unterschiedliche Frequenzen benutzen müssen, um Interferenzen zu vermeiden. Gesucht ist eine interferenzfreie Frequenzzuweisung an die Sender mit möglichst wenig Frequenzen. Informatik Die Knoten entsprechen Zuständen eines Programmes, die Kanten entsprechen den möglichen Übergängen zwischen den Programm-Zuständen. Ziel ist es hier zu entscheiden, ob und wie bestimmte Zustände erreicht werden können. Definition eines Graphen Ein ungerichteter Graph 𝐺𝐺 ist ein Tupel 𝐺𝐺 = (𝑉𝑉, 𝐸𝐸, 𝛼𝛼) . Dabei ist 𝑉𝑉 eine nichtleere endliche Menge von Knoten, 𝐸𝐸 ist eine Menge von Kanten und 𝛼𝛼 ist die Inzidenzabbildung, die jede Kante 𝑒𝑒 ∈ 𝐸𝐸 abbildet auf das zugehörige ungeordnete Paar von Knoten, d.h. 𝛼𝛼(𝑒𝑒) = [𝑢𝑢, 𝑣𝑣], 𝑢𝑢, 𝑣𝑣 ∈ 𝑉𝑉 <?page no="73"?> 3.2 Einführung 73 genau dann, wenn 𝑢𝑢, 𝑣𝑣 die beiden Endknoten der Kante 𝑒𝑒 sind. In diesem Fall heißt die Kante 𝑒𝑒 inzident zu den Knoten 𝑢𝑢, 𝑣𝑣 . Umgekehrt heißen zwei Knoten 𝑢𝑢, 𝑣𝑣 ∈ 𝑉𝑉 adjazent, falls sie durch eine Kante 𝑒𝑒 ∈ 𝐸𝐸 verbunden werden, d.h. es existiert eine Kante 𝑒𝑒 ∈ 𝐸𝐸 mit 𝛼𝛼(𝑒𝑒) = [𝑢𝑢, 𝑣𝑣] . Die Anzahl der Knoten | 𝑉𝑉| von 𝐺𝐺 heißt Ordnung des Graphen, die Anzahl |𝐸𝐸| der Kanten von 𝐺𝐺 wird als Größe bezeichnet. Bildet die Inzidenzabbildung 𝛼𝛼 jede Kante 𝑒𝑒 ∈ 𝐸𝐸 auf das zugehörige geordnete Paar von Knoten ab, d.h. 𝛼𝛼(𝑒𝑒) = (𝑢𝑢, 𝑣𝑣), 𝑢𝑢, 𝑣𝑣 ∈ 𝑉𝑉 , so heißt 𝐺𝐺 gerichteter Graph oder Digraph. Für eine Kante 𝑒𝑒 ∈ 𝐸𝐸 mit 𝛼𝛼(𝑒𝑒) = (𝑢𝑢, 𝑣𝑣) wird der Knoten 𝑢𝑢 als Anfangsknoten und der Knoten 𝑣𝑣 als Endknoten bezeichnet. 𝑢𝑢 ist dann ein Vorgänger von 𝑣𝑣 , während 𝑣𝑣 ein Nachfolger von 𝑢𝑢 ist. Graphen werden üblicherweise visualisiert, indem man jeden Knoten als Punkt im ℝ 2 darstellt. Jede Kante 𝑒𝑒 wird durch eine Verbindungslinie zwischen den Knoten repräsentiert, die durch 𝛼𝛼(𝑒𝑒) = [𝑢𝑢, 𝑣𝑣] beschrieben werden. Bei gerichteten Graphen wird die Verbindungslinie zusätzlich durch einen Pfeil ergänzt, der vom Anfangsknoten 𝑢𝑢 zum Endknoten 𝑣𝑣 zeigt. Beispiel 3.1 Abb. 3.2: Formale Beschreibung eines ungerichteten Graphen Die formale Beschreibung eines Graphen enthält sämtliche Informationen, die notwendig sind, um die graphische Darstellung zu rekonstruieren. 𝐺𝐺 = (𝑉𝑉, 𝐸𝐸, 𝛼𝛼) mit 𝑉𝑉 = {𝑣𝑣 1 , 𝑣𝑣 2 , 𝑣𝑣 3 , 𝑣𝑣 4 , 𝑣𝑣 5 }, 𝐸𝐸 = {𝑒𝑒 1 , 𝑒𝑒 2 , 𝑒𝑒 3 , 𝑒𝑒 4 , 𝑒𝑒 5 } und 𝛼𝛼(𝑒𝑒 1 ) = [𝑣𝑣 1 , 𝑣𝑣 2 ], 𝛼𝛼(𝑒𝑒 2 ) = [𝑣𝑣 2 , 𝑣𝑣 5 ], 𝛼𝛼(𝑒𝑒 3 ) = [𝑣𝑣 3 , 𝑣𝑣 3 ] 𝛼𝛼(𝑒𝑒 4 ) = [𝑣𝑣 3 , 𝑣𝑣 4 ], 𝛼𝛼(𝑒𝑒 5 ) = [𝑣𝑣 1 , 𝑣𝑣 2 ] . <?page no="74"?> 74 3 Graphentheorie Ordnung: |𝑉𝑉| = 5 Größe: |𝐸𝐸| = 5 Definition des Knotengrads Sei 𝐺𝐺 = (𝑉𝑉, 𝐸𝐸, 𝛼𝛼) ein ungerichteter Graph. Der Knotengrad 𝛿𝛿(𝑣𝑣) eines Knotens 𝑣𝑣 ∈ 𝑉𝑉 bezeichnet die Anzahl der Kanten, die inzident zu 𝑣𝑣 sind. Dabei werden Kanten, die 𝑣𝑣 mit sich selbst verbinden, doppelt gezählt. 𝛿𝛿(𝑣𝑣) = | {𝑒𝑒 ∈ 𝐸𝐸 | ∃ 𝑢𝑢 ∈ 𝑉𝑉 𝑚𝑚𝑚𝑚𝑚𝑚 𝛼𝛼(𝑒𝑒) = [𝑢𝑢, 𝑣𝑣] } | + | {𝑒𝑒 ∈ 𝐸𝐸 | 𝛼𝛼(𝑒𝑒) = [𝑣𝑣, 𝑣𝑣] } | Beispiel 3.2 Abb. 3.3: Knotengrade (Ziffern an den Knoten) Das folgende Resultat stellt einen einfachen Zusammenhang zwischen den Knotengraden und der Anzahl der Kanten in einem ungerichteten Graphen her. 3.2.2 Das Handschlag-Lemma [1] Für jeden ungerichteten Graphen stimmt die Summe aller Knotengrade mit der doppelten Kantenanzahl überein, d.h. ∑ 𝛿𝛿(𝑣𝑣) 𝑣𝑣∈ 𝑉𝑉 = 2 ⋅ |𝐸𝐸| [2] Jeder ungerichtete Graph hat eine gerade Anzahl von Knoten ungeraden Grades. Teil [1] ergibt sich unmittelbar aus der Überlegung, dass jede Kante zu genau zwei Knoten inzident ist und damit zum Knotengrad von zwei Knoten jeweils einen Wert von Eins beiträgt. Für Teil [2] zerlegt man die Knotenmenge 𝑉𝑉 in zwei Teilmengen, die Menge 𝑉𝑉 0 der Knoten mit geradem Knotengrad und die Menge 𝑉𝑉 1 der Knoten mit ungeradem Knotengrad. Dann folgt <?page no="75"?> 3.2 Einführung 75 2 ⋅ | 𝐸𝐸 | = ∑ 𝛿𝛿(𝑣𝑣) 𝑣𝑣∈ 𝑉𝑉 = ∑ 𝛿𝛿(𝑣𝑣) 𝑣𝑣∈ 𝑉𝑉 0 + ∑ 𝛿𝛿(𝑣𝑣) 𝑣𝑣∈ 𝑉𝑉 1 Da die linke Seite offensichtlich gerade ist, muss auch die rechte Seite gerade sein. Die erste Summe auf der rechten Seite summiert nur gerade Zahlen auf, ist also deshalb selbst gerade. Dann muss auch die zweite Summe ∑ 𝛿𝛿(𝑣𝑣) 𝑣𝑣∈ 𝑉𝑉 1 gerade sein. Jeder einzelne Summand ist ungerade. Folglich muss die Anzahl der Summanden gerade sein, d.h. |𝑉𝑉 1 | ist gerade. Beispiel 3.3 Auf einem Empfang begrüßen sich Gäste mit Handschlag - nicht notwendig alle. Modelliert man die Gäste als Knoten eines Graphen, und jeden Handschlag zwischen zwei Gästen als eine Kante, so besagt Teil [2] des Handschlag- Lemmas, dass es auf jedem Empfang eine gerade Anzahl von Gästen gibt, die eine ungerade Anzahl von Gästen mit Handschlag begrüßt haben. 3.2.3 Spezielle Graphen Vollständige Graphen Ein ungerichteter Graph 𝐺𝐺 = (𝑉𝑉, 𝐸𝐸, 𝛼𝛼) heißt vollständig, wenn je zwei beliebige verschiedene Knoten 𝑢𝑢, 𝑣𝑣 ∈ 𝑉𝑉 durch genau eine Kante verbunden sind, d.h. es existiert genau eine Kante 𝑒𝑒 ∈ 𝐸𝐸 mit 𝛼𝛼(𝑒𝑒) = [𝑢𝑢, 𝑣𝑣] . Den vollständigen Graphen mit 𝑛𝑛 Knoten bezeichnet man auch als 𝐾𝐾 𝑛𝑛 . Ein vollständiger Graph mit 𝑛𝑛 Knoten hat stets � 𝑛𝑛2 � = 𝑛𝑛⋅(𝑛𝑛−1) 2 Kanten. Beispiel 3.4 Abb. 3.4: Vollständige Graphen Kreis-Graphen Ein ungerichteter Graph 𝐺𝐺 = (𝑉𝑉, 𝐸𝐸, 𝛼𝛼) heißt Kreis-Graph, wenn die Knoten 𝑣𝑣 1 , … , 𝑣𝑣 𝑛𝑛 ∈ 𝑉𝑉 genau durch die Kanten 𝑒𝑒 1 , … , 𝑒𝑒 𝑛𝑛 ∈ 𝐸𝐸 verbunden sind <?page no="76"?> 76 3 Graphentheorie mit 𝛼𝛼(𝑒𝑒 𝑖𝑖 ) = [𝑣𝑣 𝑖𝑖 , 𝑣𝑣 𝑖𝑖+1 ], 𝑚𝑚 = 1, … , 𝑛𝑛 − 1 und 𝛼𝛼(𝑒𝑒 𝑛𝑛 ) = [𝑣𝑣 𝑛𝑛 , 𝑣𝑣 1 ]. Den Kreis- Graphen mit 𝑛𝑛 Knoten bezeichnet man auch als 𝐶𝐶 𝑛𝑛 . Beispiel 3.5 Abb. 3.5: Kreis-Graphen Bipartite Graphen Ein ungerichteter Graph 𝐺𝐺 = (𝑉𝑉, 𝐸𝐸, 𝛼𝛼) heißt bipartit, falls die Knotenmenge 𝑉𝑉 in zwei Teilmengen 𝑉𝑉 1 , 𝑉𝑉 2 zerlegt werden kann, so dass jede Kante 𝑒𝑒 ∈ 𝐸𝐸 mit 𝛼𝛼(𝑒𝑒) = [𝑢𝑢, 𝑣𝑣] einen Knoten 𝑢𝑢 ∈ 𝑉𝑉 1 mit einem Knoten 𝑣𝑣 ∈ 𝑉𝑉 2 verbindet. Ein bipartiter Graph heißt vollständig, wenn jeder Knoten der Menge 𝑉𝑉 1 mit jedem Knoten der Menge 𝑉𝑉 2 durch genau eine Kante verbunden ist. Ist 𝑛𝑛 = |𝑉𝑉 1 | , 𝑚𝑚 = |𝑉𝑉 2 | , so bezeichnet 𝐾𝐾 𝑛𝑛,𝑚𝑚 den zugehörigen vollständigen bipartiten Graphen. Beispiel 3.6 Bipartiter Graph Vollständiger bipartiter Graph Abb. 3.6: Bipartite Graphen Reguläre Graphen Ein ungerichteter Graph 𝐺𝐺 = (𝑉𝑉, 𝐸𝐸, 𝛼𝛼) heißt k-regulär, falls für alle Knoten 𝑣𝑣 ∈ 𝑉𝑉 gilt: 𝛿𝛿(𝑣𝑣) = 𝑘𝑘 , d.h. alle Knoten haben denselben Knotengrad 𝑘𝑘. Jeder vollständige Graph 𝐾𝐾 𝑛𝑛 ist (𝑛𝑛 − 1) -regulär. Jeder Kreis-Graph 𝐶𝐶 𝑛𝑛 ist 2 regulär. <?page no="77"?> 3.2 Einführung 77 Beispiel 3.7 Abb. 3.7: Regulärer Graph 3.2.4 Wege, Pfade, Zyklen und Kreise Gegeben seien ein ungerichteter Graph 𝐺𝐺 = (𝑉𝑉, 𝐸𝐸, 𝛼𝛼) und eine Folge 𝑊𝑊 = (𝑒𝑒 1 , … , 𝑒𝑒 𝑛𝑛 ) von (nicht notwendig verschiedenen) Kanten aus 𝐸𝐸 . Falls (nicht notwendig verschiedene) Knoten 𝑣𝑣 0 , … , 𝑣𝑣 𝑛𝑛 ∈ 𝑉𝑉 existieren, so dass die Kantenfolge 𝑒𝑒 1 , … , 𝑒𝑒 𝑛𝑛 diese Knoten in der angegebenen Reihenfolge verbindet, d.h. 𝛼𝛼(𝑒𝑒 𝑖𝑖 ) = [𝑣𝑣 𝑖𝑖−1 , 𝑣𝑣 𝑖𝑖 ] für 𝑚𝑚 = 1, … , 𝑛𝑛 , dann nennt man 𝑊𝑊 einen Kantenzug. Der Kantenzug 𝑊𝑊 verbindet den Startknoten 𝑣𝑣 0 mit dem Endknoten 𝑣𝑣 𝑛𝑛 , indem 𝑣𝑣 0 durch 𝑒𝑒 1 mit 𝑣𝑣 1 verbunden ist, 𝑣𝑣 1 durch 𝑒𝑒 2 mit 𝑣𝑣 2 verbunden ist, usw. Ein Kantenzug 𝑊𝑊 heißt Weg, falls alle Kanten in 𝑊𝑊 verschieden sind. Ein Kantenzug 𝑊𝑊 heißt Pfad, falls alle Knoten (bis auf Start- und Endknoten) verschieden sind. Ein Weg/ Pfad mit 𝑣𝑣 0 = 𝑣𝑣 𝑛𝑛 heißt Zyklus/ Kreis. Besitzt ein Graph keine Kreise, so nennt man ihn auch kreisfrei oder azyklisch. Beispiel 3.8 Abb. 3.8: Wege, Pfade, Zyklen, Kreise <?page no="78"?> 78 3 Graphentheorie Die Kantenfolge 𝑊𝑊 1 = (𝑒𝑒 1 , 𝑒𝑒 2 , 𝑒𝑒 3 , 𝑒𝑒 7 , 𝑒𝑒 1 ) bildet einen Kantenzug, aber keinen Weg; 𝑊𝑊 2 = (𝑒𝑒 7 , 𝑒𝑒 6 , 𝑒𝑒 5 , 𝑒𝑒 4 , 𝑒𝑒 3 ) bildet einen Weg, aber keinen Pfad; 𝑊𝑊 3 = (𝑒𝑒 1 , 𝑒𝑒 7 , 𝑒𝑒 6 , 𝑒𝑒 5 ) bildet einen Pfad. Die Kantenfolge 𝐶𝐶 1 = (𝑒𝑒 2 , 𝑒𝑒 3 , 𝑒𝑒 7 ) bildet einen Kreis, die Kantenfolge 𝐶𝐶 2 = �𝑒𝑒 2 , 𝑒𝑒 3 , 𝑒𝑒 4, 𝑒𝑒 5 , 𝑒𝑒 6 , 𝑒𝑒 7 � bildet einen Zyklus, aber keinen Kreis. Ein ungerichteter Graph 𝐺𝐺 = (𝑉𝑉, 𝐸𝐸, 𝛼𝛼) heißt zusammenhängend, falls je zwei verschiedene Knoten durch einen Weg verbunden werden können. Beispiel 3.9 Abb. 3.9: Zusammenhängender und nicht zusammenhängender Graph 3.2.5 Teilgraphen In zahlreichen Anwendungen betrachtet man ausgehend von einem Graphen 𝐺𝐺 nur einen Ausschnitt dieses Graphen, um ein Problem zu lösen. Um z.B. eine kürzeste Route von Stuttgart nach Genua zu bestimmen, steht zunächst z.B. das komplette europäische Straßennetz zur Verfügung, das als Graph dargestellt werden kann. Aufgrund verschiedener Mautbedingungen in der Schweiz und in Österreich möchte man sich nun nur auf Routen beschränken, die durch Österreich führen. Hierzu betrachtet man einen Teilgraphen des Straßennetzes, der keine Knotenpunkte und Strecken durch die Schweiz enthält. Definition eines Teilgraphen Sei 𝐺𝐺 = (𝑉𝑉, 𝐸𝐸, 𝛼𝛼) ein Graph. Dann heißt 𝐺𝐺 ′ = (𝑉𝑉 ′ , 𝐸𝐸 ′ , 𝛼𝛼 ′ ) ein Teilgraph von 𝐺𝐺 , falls gilt 𝑉𝑉 ′ ⊆ 𝑉𝑉, 𝐸𝐸 ′ ⊆ 𝐸𝐸, 𝛼𝛼 ′ = 𝛼𝛼| 𝑁𝑁 ′ <?page no="79"?> 3.3 Bäume 79 und für jede Kante 𝑒𝑒 ∈ 𝐸𝐸 ′ mit 𝛼𝛼 ′ (𝑒𝑒) = [𝑢𝑢, 𝑣𝑣] bzw. 𝛼𝛼 ′ (𝑒𝑒) = (𝑢𝑢, 𝑣𝑣) ist 𝑢𝑢, 𝑣𝑣 ∈ 𝑉𝑉 ′ . Beispiel 3.10 Für den Graphen 𝐺𝐺 aus Beispiel 3.1 betrachten wir den Teilgraphen 𝐺𝐺 ′ = (𝑉𝑉 ′ , 𝐸𝐸 ′ , 𝛼𝛼 ′ ) mit 𝑉𝑉 ′ = {𝑣𝑣 1 , 𝑣𝑣 2 , 𝑣𝑣 3 , 𝑣𝑣 5 } , 𝐸𝐸 ′ = {𝑒𝑒 1 , 𝑒𝑒 2 , 𝑒𝑒 3 } und 𝛼𝛼 ′ (𝑒𝑒 1 ) = 𝛼𝛼(𝑒𝑒 1 ) = [𝑣𝑣 1 , 𝑣𝑣 2 ], 𝛼𝛼 ′ (𝑒𝑒 2 ) = 𝛼𝛼(𝑒𝑒 2 ) = [𝑣𝑣 2 , 𝑣𝑣 5 ], 𝛼𝛼 ′ (𝑒𝑒 3 ) = 𝛼𝛼(𝑒𝑒 3 ) = [𝑣𝑣 3 , 𝑣𝑣 3 ] Abb. 3.10: Teilgraph G' (rechts) von G (links) Bäume In vielen Anwendungen (insbesondere in der Informatik, z.B. bei Sortierprozessen) spielen Graphen ohne Zyklen - sogenannte Bäume - eine bedeutende Rolle. Definition von Bäumen und Wäldern Sei 𝐺𝐺 = (𝑉𝑉, 𝐸𝐸, 𝛼𝛼) ein ungerichteter Graph, der keine Zyklen enthält. Ist 𝐺𝐺 zusammenhängend, so heißt 𝐺𝐺 ein Baum. Ist 𝐺𝐺 nicht zusammenhängend, so nennen wir 𝐺𝐺 einen Wald. Jeder Knoten 𝑣𝑣 eines Baumes mit 𝛿𝛿(𝑣𝑣) = 1 heißt Blatt des Baumes. Beispiel 3.11 [1] Nachfolgend sind alle Bäume mit höchstens fünf Knoten dargestellt. <?page no="80"?> 80 3 Graphentheorie Abb. 3.11: Bäume mit höchstens 5 Knoten [2] Welche der folgenden Graphen sind Bäume oder Wälder? Abb. 3.12: Bäume und Wälder 3.3.1 Charakterisierung von Bäumen Sei 𝐺𝐺 = (𝑉𝑉, 𝐸𝐸, 𝛼𝛼) ein ungerichteter Graph mit | 𝐸𝐸| Kanten und | 𝑉𝑉| Knoten. Dann sind folgende Aussagen äquivalent: [1] 𝐺𝐺 ist ein Baum. [2] Zwischen zwei beliebigen Knoten von 𝐺𝐺 existiert stets genau ein Weg. [3] 𝐺𝐺 ist zusammenhängend und es gilt |𝐸𝐸| = |V| − 1 . Aus [1] folgt unmittelbar [2]: Da ein Baum zusammenhängend ist, muss es zwischen je zwei beliebigen Knoten mindestens einen Weg geben. Da ein Baum aber auch keine Zyklen enthält, kann es nicht mehrere Wege zwischen zwei Knoten geben. Aus [2] folgt unmittelbar, dass 𝐺𝐺 zusammenhängend sein muss. Für den zweiten Teil der Behauptung [3] verwenden wir einen Induktionsbeweis nach der Anzahl der Knoten |V| = 𝑛𝑛 . Hierzu betrachten wir zunächst den Induktionsanfang für 𝑛𝑛 = 1 . Da es genau einen Weg vom einzigen Knoten 𝑣𝑣 ∈ V zu sich selbst gibt, existieren keine Kanten und es gilt |𝐸𝐸| = 0 = 1 − 1 = |V| − 1. <?page no="81"?> 3.3 Bäume 81 Wir nehmen nun im Induktionsschritt an, dass die Behauptung für Graphen mit 𝑛𝑛 Knoten gilt und betrachten einen Graphen 𝐺𝐺 = (𝑉𝑉, 𝐸𝐸, 𝛼𝛼) mit 𝑛𝑛 + 1 Knoten, bei dem es zwischen je zwei Knoten genau einen Weg gibt. Seien 𝑣𝑣 1 , 𝑣𝑣 2 zwei beliebige Knoten, wobei 𝑣𝑣 1 ein Blatt sei. Sei 𝑊𝑊 der einzige Weg von 𝑣𝑣 1 nach 𝑣𝑣 2 und 𝑢𝑢 der unmittelbare Nachfolger von 𝑣𝑣 1 entlang von 𝑊𝑊. Da 𝑣𝑣 1 ein Blatt ist, gibt es keine weiteren Knoten, die adjazent zu 𝑣𝑣 1 sind. Entfernen wir den Knoten 𝑣𝑣 1 und die Kante, die 𝑣𝑣 1 mit 𝑢𝑢 verbindet, aus 𝐺𝐺 , so erhalten wir einen Graphen 𝐺𝐺 ′ mit 𝑛𝑛 Knoten. Außerdem existiert auch in 𝐺𝐺 ′ zwischen allen Knoten genau ein Weg, da dies bereits im Graph 𝐺𝐺 gilt. Nach Induktionshypothese enthält 𝐺𝐺 ′ 𝑛𝑛 − 1 Kanten. Folglich enthält 𝐺𝐺 𝑛𝑛 Kanten und für 𝐺𝐺 ist damit |𝐸𝐸| = |V| − 1 gezeigt. Schließlich gehen wir von [3] aus und zeigen [1]. Angenommen, 𝐺𝐺 enthält einen Zyklus. Dann kann man eine Kante des Zyklus entfernen und der Graph ist weiterhin zusammenhängend. Dies steht im Widerspruch dazu, dass jeder zusammenhängende Graph mindestens eine Kante weniger enthält als die Knotenanzahl. Bäume eignen sich insbesondere dazu, Entscheidungs- und Sortierprozesse übersichtlich darzustellen. Beispiel 3.12 (Das Problem der falschen Münze) Gegeben sind 5 gleichartige Münzen mit den Werten 0,1,2,3,4. Wir wissen, dass die Münze 0 sicher echt ist. Unter den restlichen Münzen ist möglicherweise eine falsche Münze versteckt. Wie viele Wägungen mit einer Balkenwaage sind notwendig, um herauszufinden, ob eine Münze falsch ist, welche der Münzen 1, …, 4 dies ggf. ist, und ob diese zu schwer oder zu leicht ist? Abb. 3.13: Entscheidungsbaum zum Problem der falschen Münze Der Entscheidungsbaum beschreibt ein Verfahren mit zweimaligem Wiegen, so dass eindeutig identifiziert werden kann, welches der möglichen Szenarien vorliegt. <?page no="82"?> 82 3 Graphentheorie 3.3.2 Spannbäume Für zusammenhängende Graphen stellt sich oft die Frage nach einem minimalen Teilgraphen, der alle Knoten enthält und noch zusammenhängend ist. Dies führt auf die Suche nach geeigneten Bäumen in Graphen. Es gilt: Jeder zusammenhängende Graph 𝐺𝐺 enthält einen Baum, der alle Knoten von 𝐺𝐺 umfasst. Um sich diese Aussage klar zu machen, führen wir den Begriff des Spannbaums ein. Definition eines Spannbaums Sei 𝐺𝐺 ein ungerichteter Graph. Dann heißt ein Teilgraph 𝑇𝑇 von 𝐺𝐺 Spannbaum, falls 𝑇𝑇 ein Baum ist, der jeden Knoten von 𝐺𝐺 enthält. Beispiel 3.13 Wir bestimmen einen Spannbaum für den folgenden Graphen. Abb. 3.14: Bestimmung eines Spannbaums Hierfür entfernen wir solange Kanten aus den Zyklen im Graphen, bis der modifizierte Graph keine Zyklen mehr enthält. Das Ergebnis ist dann ein Spannbaum. <?page no="83"?> 3.3 Bäume 83 Abb. 3.15: Konstruktionsverfahren für einen Spannbaum Algorithmus zur Konstruktion von Spannbäumen Sei 𝐺𝐺 = (𝑉𝑉, 𝐸𝐸, 𝛼𝛼) ein zusammenhängender Graph. Schritt 1: Setze 𝑇𝑇 = (𝑉𝑉, 𝐸𝐸 𝑇𝑇 , 𝛼𝛼 𝑇𝑇 ) = 𝐺𝐺 . Schritt 2: Untersuche, ob 𝑇𝑇 einen Zyklus enthält. Falls 𝑇𝑇 keinen Zyklus enthält: STOP. 𝑇𝑇 ist ein Spannbaum. Schritt 3: Andernfalls entferne eine Kante 𝑒𝑒 ∈ 𝐸𝐸 𝑇𝑇 aus einem Zyklus von 𝑇𝑇 und setze 𝐸𝐸 𝑇𝑇 ← 𝐸𝐸 𝑇𝑇 ∖ {𝑒𝑒}, 𝛼𝛼 𝑇𝑇 ← 𝛼𝛼| 𝑁𝑁 𝑇𝑇 . Gehe zu Schritt 2. Da dieser Algorithmus stets einen Spannbaum liefert, ist bewiesen, dass jeder Graph einen Spannbaum enthält. Spannbäume werden z.B. verwendet, um Netzwerke zu optimieren. Beim IP- Multicasting werden Nachrichten von einem Sender zu mehreren Empfängern über ein Netz von Routern geschickt. Damit die Nachricht nicht zu jedem Empfänger separat gesendet werden muss, schickt der Sender die Nachricht an einen Router, dieser leitet sie weiter an benachbarte Router, bis alle Empfänger versorgt sind. Um eine schnelle Kommunikation sicherzustellen, suchen wir einen Spannbaum im IP-Netzwerk. In vielen Anwendungen betrachtet man einen zusammenhängenden Graphen 𝐺𝐺 = (𝑉𝑉, 𝐸𝐸, 𝛼𝛼) zusammen mit einer Kanten-Gewichtsfunktion 𝑤𝑤: 𝐸𝐸 → ℝ 0+ , die jeder Kante des Graphen eine nicht-negative Zahl zuordnet. Gesucht ist ein Teilgraph von 𝐺𝐺 , der zwischen je zwei beliebigen Knoten einen Weg ermöglicht und der minimale Gesamtkosten verursacht. <?page no="84"?> 84 3 Graphentheorie Beispielfragestellung Vernetzung von Kraftwerken und Stromabnehmern (Knoten) durch Hochspannungsleitungen (Kanten). Der Betrieb jeder Leitung bedingt bestimmte Kosten. Wie kann man die Leitungen so freischalten, dass insgesamt minimale Netzkosten entstehen? Definition eines minimalen Spannbaums Sei 𝐺𝐺 = (𝑉𝑉, 𝐸𝐸, 𝛼𝛼) ein Graph mit Kanten-Gewichtsfunktion 𝑤𝑤: 𝐸𝐸 → ℝ 0+ . Dann ist ein minimaler Spannbaum in 𝐺𝐺 ein Spannbaum 𝑇𝑇 = (𝑉𝑉, 𝐸𝐸 𝑇𝑇 , 𝛼𝛼 𝑇𝑇 ) , für den die Summe der Kantengewichte minimal wird, d.h. für jeden anderen Spannbaum 𝑇𝑇 ′ = (𝑉𝑉 ′ , 𝐸𝐸 𝑇𝑇′ , 𝛼𝛼 𝑇𝑇 ′ ) gilt ∑ 𝑤𝑤(𝑒𝑒) 𝑒𝑒∈ 𝑁𝑁 𝑇𝑇 ≤ ∑ 𝑤𝑤(𝑒𝑒) 𝑒𝑒∈ 𝑁𝑁 𝑇𝑇′ . Es gibt zahlreiche Algorithmen zur Bestimmung eines minimalen Spannbaums. Zwei dieser Verfahren betrachten wir im Folgenden. Algorithmus von Prim Beim Algorithmus von Prim startet man mit einem beliebigen Knoten als initialem Teilgraphen und erweitert diesen kontinuierlich durch Hinzunahme von weiteren Kanten und Knoten, bis ein Spannbaum konstruiert ist. Dabei ist der konstruierte Teilgraph zu jedem Zeitpunkt des Algorithmus ein Baum. Sei 𝐺𝐺 = (𝑉𝑉, 𝐸𝐸, 𝛼𝛼) ein zusammenhängender Graph mit Kanten-Gewichtsfunktion 𝑤𝑤 . Schritt 1: Wähle einen beliebigen Knoten 𝑣𝑣 als Startgraph 𝑇𝑇 = (𝑉𝑉 𝑇𝑇 , 𝐸𝐸 𝑇𝑇 , 𝛼𝛼 𝑇𝑇 ) , d.h. 𝑉𝑉 𝑇𝑇 = {𝑣𝑣}, 𝐸𝐸 𝑇𝑇 = ∅. Schritt 2: Solange 𝑉𝑉 𝑇𝑇 noch nicht alle Knoten enthält: ■ Wähle eine Kante 𝑒𝑒 mit minimalem Gewicht, die einen noch nicht in 𝑉𝑉 𝑇𝑇 enthaltenen Knoten 𝑢𝑢 ′ mit einem Knoten 𝑢𝑢 in 𝑉𝑉 𝑇𝑇 verbindet, so dass kein Zyklus entsteht. ■ Füge 𝑒𝑒 und 𝑢𝑢 ′ dem Graphen 𝑇𝑇 hinzu und erweitere 𝛼𝛼 𝑇𝑇 entsprechend, d.h. 𝑉𝑉 𝑇𝑇 ← 𝑉𝑉 𝑇𝑇 ∪ {𝑢𝑢 ′ }, 𝐸𝐸 𝑇𝑇 ← 𝐸𝐸 𝑇𝑇 ∪ {𝑒𝑒} und 𝛼𝛼 𝑇𝑇 ← 𝛼𝛼| 𝑁𝑁 𝑇𝑇 . Der Algorithmus ist korrekt, da er stets beweisbar einen minimalen Spannbaum liefert. <?page no="85"?> 3.3 Bäume 85 Beispiel 3.14 Wir bestimmen einen minimalen Spannbaum mit dem Algorithmus von Prim für folgenden Graphen: Abb. 3.16: Beispiel zum Algorithmus von Prim Gehen wir z.B. vom Knoten 𝑚𝑚 als Startknoten aus, so fügt der Algorithmus von Prim sukzessive folgende Kanten dem Teilbaum hinzu: [𝑚𝑚, 𝑏𝑏], [𝑏𝑏, 𝑝𝑝], [𝑝𝑝, 𝑓𝑓], [𝑝𝑝, 𝑒𝑒], [𝑏𝑏, 𝑔𝑔], [𝑔𝑔, 𝑐𝑐] mit den Gesamtkosten 6 + 5 + 2 + 4 + 5 + 7 = 29 . Als Lösung erhält man folgenden minimalen Spannbaum: Abb. 3.17: Minimaler Spannbaum nach dem Algorithmus von Prim Alternativ hätte man auch folgende Kanten wählen können: 1) [𝑚𝑚, 𝑏𝑏], [𝑏𝑏, 𝑒𝑒], [𝑒𝑒, 𝑝𝑝], [𝑝𝑝, 𝑓𝑓], [𝑏𝑏, 𝑔𝑔], [𝑔𝑔, 𝑐𝑐] 2) [𝑚𝑚, 𝑏𝑏], [𝑏𝑏, 𝑔𝑔], [𝑔𝑔, 𝑒𝑒], [𝑒𝑒, 𝑝𝑝], [𝑝𝑝, 𝑓𝑓], [𝑔𝑔, 𝑐𝑐] da mehrere Kanten mit Kantengewicht 5 existieren. Der Algorithmus von Prim stellt sicher, dass zu jedem Zeitpunkt des Konstruktionsverfahrens ein Baum vorliegt. Der Algorithmus von Kruskal dagegen arbeitet streng kantenorientiert. <?page no="86"?> 86 3 Graphentheorie Algorithmus von Kruskal Beim Algorithmus von Kruskal sortiert man alle Kanten nach aufsteigenden Kantengewichten und fügt die Kanten in der Reihenfolge der Sortierung dem aktuellen Teilgraphen hinzu. Kanten, die zur Bildung von Zyklen führen würden, werden übersprungen. Sei 𝐺𝐺 = (𝑉𝑉, 𝐸𝐸, 𝛼𝛼) ein zusammenhängender Graph mit Kanten-Gewichtsfunktion 𝑤𝑤 . Schritt 1: Wähle als Startgraph 𝑇𝑇 = (𝑉𝑉, 𝐸𝐸 𝑇𝑇 , 𝛼𝛼 𝑇𝑇 ) einen Graphen, der alle Knoten aus 𝐺𝐺 , aber keine Kanten enthält. Schritt 2: Sortiere alle Kanten 𝑒𝑒 1 , 𝑒𝑒 2 , … , 𝑒𝑒 𝑚𝑚 von 𝐺𝐺 nach aufsteigenden Kantengewichten, so dass 𝑤𝑤(𝑒𝑒 1 ) ≤ 𝑤𝑤(𝑒𝑒 2 ) ≤ ⋯ ≤ 𝑤𝑤(𝑒𝑒 𝑚𝑚 ) und setze 𝑚𝑚 = 1. Schritt 3: Solange |𝐸𝐸 𝑇𝑇 | < |𝑉𝑉| − 1 und 𝑚𝑚 ≤ 𝑚𝑚 ■ Falls (𝑉𝑉, 𝐸𝐸 𝑇𝑇 ∪ {𝑒𝑒 𝑖𝑖 }, 𝛼𝛼 𝑇𝑇 ) keinen Zyklus enthält: Setze 𝐸𝐸 𝑇𝑇 ← 𝐸𝐸 𝑇𝑇 ∪ {𝑒𝑒 𝑖𝑖 }, 𝛼𝛼 𝑇𝑇 ← 𝛼𝛼| 𝑁𝑁 𝑇𝑇 . ■ Setze 𝑚𝑚 ← 𝑚𝑚 + 1 . Auch dieser Algorithmus ist korrekt in dem Sinne, dass er stets beweisbar einen minimalen Spannbaum liefert. Beispiel 3.15 Für den Graphen aus Beispiel 3.14 bestimmen wir einen minimalen Spannbaum mit Hilfe des Algorithmus von Kruskal. Wenn wir die Kanten aufsteigend anordnen, erhalten wir folgende sortierte Liste. 𝑤𝑤(𝑒𝑒) = 2: [𝑝𝑝, 𝑓𝑓], 𝑤𝑤(𝑒𝑒) = 4: [𝑝𝑝, 𝑒𝑒], 𝑤𝑤(𝑒𝑒) = 5: [𝑏𝑏, 𝑒𝑒], [𝑏𝑏, 𝑝𝑝], [𝑏𝑏, 𝑔𝑔], [𝑒𝑒, 𝑔𝑔] 𝑤𝑤(𝑒𝑒) = 6: [𝑚𝑚, 𝑏𝑏], [𝑓𝑓, 𝑔𝑔] 𝑤𝑤(𝑒𝑒) = 7: [𝑚𝑚, 𝑒𝑒], [𝑏𝑏, 𝑓𝑓], [𝑐𝑐, 𝑔𝑔] 𝑤𝑤(𝑒𝑒) = 8: [𝑏𝑏, 𝑐𝑐], [𝑐𝑐, 𝑓𝑓] 𝑤𝑤(𝑒𝑒) = 9: [𝑚𝑚, 𝑝𝑝], [𝑒𝑒, 𝑓𝑓] Der Algorithmus von Kruskal wählt nun sukzessive folgende Kanten für den minimalen Spannbaum aus: <?page no="87"?> 3.4 Aufgaben 87 [𝑝𝑝, 𝑓𝑓], [𝑝𝑝, 𝑒𝑒], [𝑏𝑏, 𝑒𝑒], [𝑏𝑏, 𝑔𝑔], [𝑚𝑚, 𝑏𝑏], [𝑐𝑐, 𝑔𝑔] . Dies entspricht der zweiten Lösung aus Beispiel 3.14. Abhängig von der Sortierung der Kanten mit gleichem Kantengewicht lassen sich auch mit diesem Algorithmus alternative Lösungen konstruieren. Aufgaben Aufgabe 3.1 (Graphen) Bestimmen Sie für folgende Graphen die Ordnung, die Größe und den Knotengrad aller Knoten. a) b) Aufgabe 3.2 (Handschlag-Lemma) Existiert ein ungerichteter Graph mit 6 Knoten und den folgenden Knotengraden, wenn wir annehmen, dass je zwei Knoten durch maximal eine Kante verbunden sein können und keine Kanten von einem Knoten zu sich selbst existieren? Zeichnen Sie gegebenenfalls einen entsprechenden Graphen. a) 1; 2; 3; 2; 1; 1 b) 1; 3; 3; 4; 5; 5 c) 1; 1; 2; 2; 3; 5 d) 1; 2; 3; 1; 3; 2 e) 3; 2; 4; 4; 2; 3 f) 1; 1; 1; 1; 1; 1 Aufgabe 3.3 (Spezielle Graphen) Welche der folgenden Aussagen sind richtig? <?page no="88"?> 88 3 Graphentheorie Der vollständige Graph 𝐾𝐾 𝑛𝑛 ist für kein 𝑛𝑛 bipartit. Der Kreis-Graph 𝐶𝐶 𝑛𝑛 ist für kein 𝑛𝑛 bipartit. Der vollständige bipartite Graph 𝐾𝐾 𝑛𝑛,𝑛𝑛 ist für jedes 𝑛𝑛 regulär. Aufgabe 3.4 (Bäume) Woran erkennt man, ob ein Graph ein Baum ist? Wenn alle Knoten einen Knotengrad von 1 haben, so ist der Graph ein Baum. Falls der Graph azyklisch ist, so liegt ein Baum vor. Wenn der Graph keine Knoten mit Knotengrad 1 enthält, so liegt kein Baum vor. Aufgabe 3.5 (Minimale Spannbäume) Was unterscheidet den Algorithmus von Prim vom Algorithmus von Kruskal? Nur der Algorithmus von Kruskal liefert garantiert einen minimalen Spannbaum. Der Algorithmus von Prim liefert nach jedem Iterationsschritt einen Teilgraphen, der ein Baum ist. Nur der Algorithmus von Kruskal benötigt höchstens so viele Schritte, wie der Graph Knoten enthält. Aufgabe 3.6 (Minimale Spannbäume) Bestimmen Sie einen minimalen Spannbaum mit dem Algorithmus von Prim und dem Algorithmus von Kruskal für den folgenden Graphen. <?page no="89"?> 4 Kombinatorische Optimierung Schlagwörter und Prüfungstipps Was erwartet mich in diesem Kapitel? In diesem Kapitel werden kombinatorische Optimierungsprobleme beschrieben und dargestellt und wie diese mathematisch zu modellieren sind. Am Beispiel des Rundreiseproblems werden Konstruktion und Verbesserung von Lösungen beschrieben. Welche Schlagwörter lerne ich kennen? Optimierungsmodell Komplexität Rundreiseproblem Konstruktions-Heuristik Verbesserungs-Heuristik spezifische Heuristik Metaheuristik Nearest-Neighbor-Heuristik Greedy-Heuristik einfache lokale Suche (Bergsteiger-Algorithmus) lokales Minimum Nachbarschaft Projekt-Scheduling-Problem Serial Schedule Generation Scheme Prioritätsregel Standortproblem Losgrößenproblem Wofür benötige ich dieses Wissen? Kombinatorische Optimierungsprobleme treten vielfach in den Bereichen Produktion, Logistik, Service und Künstliche Intelligenz auf. Um sie lösen zu können, müssen diese zunächst modelliert werden. Welche Prüfungstipps kann ich aus diesem Kapitel ziehen? In Prüfungen wird häufig gefordert, ein Modell für ein vorgegebenes kombinatorisches Problem zu entwickeln oder ein vorgegebenes Modell zu erklären. Grundbegriffe 4.2.1 Kombinatorische Optimierungsprobleme Kombinatorische Optimierungsprobleme sind Probleme, bei denen für die Elemente einer (großen) diskreten zulässigen Menge eine bestimmte Kombination (zulässige Lösung) gesucht wird, die ein Gütekriterium optimal erfüllt. <?page no="90"?> 90 4 Kombinatorische Optimierung Auch in der kombinatorischen Optimierung gibt es abstrakte Modelle und daraus gewonnene Probleminstanzen. In der kombinatorischen Optimierung hat jede Probleminstanz einen (eigenen) endlichen Lösungsraum und eine (eigene) Zielfunktion: Der Lösungsraum bzw. die zulässige Menge M ist eine endliche Menge von Kombinationen. Die Zielfunktion z: M → ℝ ordnet jeder Lösung bzw. Kombination x ∈ M einen Zielfunktionswert z(x) zu. Die optimale Lösung einer Instanz ist nun diejenige Kombination des Lösungsraums, die einen minimalen Zielfunktionswert (Minimierungsproblem) bzw. einen maximalen Zielfunktionswert (Maximierungsproblem) annimmt. In Abb 4.1 werden die Begriffe abstraktes Problem und Probleminstanz für die kombinatorische Optimierung in Zusammenhang gesetzt. Für jedes abstrakte Problem existieren unendlich viele Instanzen. Jede Instanz hat einen endlichen Lösungsraum. Abb. 4.1: Abstraktes Problem und Instanzen Zur Modellierung kombinatorischer Optimierungsprobleme werden zusätzlich zur Angabe des Modells i.A. Beschreibungstexte, Graphen und Diagramme herangezogen. Man unterscheidet bei der Beschreibung kombinatorischer Optimierungsprobleme zwischen Entscheidungs- und Hilfsvariablen. Entscheidungsvariablen sind Variablen, deren Werte unabhängig von anderen Variablen gewählt werden können. <?page no="91"?> 4.2 Grundbegriffe 91 Hilfsvariablen sind Variablen, deren Werte abhängig von den Entscheidungsvariablen berechnet werden. Sie dienen lediglich der besseren Lesbarkeit der Modelle. 4.2.2 Komplexität Für viele kombinatorische Optimierungsprobleme besteht die Vermutung, dass diese nicht effizient lösbar sind. Das heißt, es lassen sich Instanzen erzeugen, so dass der erforderliche Rechenaufwand, um jeweils optimale Lösungen zu ermitteln, in Abhängigkeit der Problemgröße (z.B. Anzahl zu kombinierender Objekte) exponentiell ansteigt. Diese Vermutung trifft auf alle in diesem Kapitel behandelten Probleme zu. Insbesondere ist es für größere Instanzen mit vielen Elementen und entsprechend sehr großen Lösungsräumen nicht in praktikablen Rechenzeiten möglich, die Lösungsräume aufgrund ihrer Größe vollständig zu berechnen bzw. alle Lösungen zu enumerieren. 4.2.3 Methoden Zur Bearbeitung kombinatorischer Optimierungsprobleme, d.h. zur Lösung von Probleminstanzen, existieren eine Vielzahl unterschiedlicher Methoden bzw. Verfahren. Um insbesondere große Instanzen komplexer kombinatorischer Optimierungsprobleme lösen zu können, werden geeignete Heuristiken als Verfahren entwickelt und eingesetzt. Heuristiken ermöglichen die Berechnung von guten Lösungen in praktikablen Rechenzeiten. Sie garantieren jedoch nicht die Berechnung von optimalen Lösungen, wie es exakte Verfahren tun. Heuristik: „Geschickte“ Vorgehensweise zur Lösung eines Problems. Hierbei werden folgende Ansätze unterschieden: Konstruktions-Heuristik: Heuristik, bei der iterativ eine Kombination konstruiert wird. In jedem Schritt wird eine zuvor konstruierte Teillösung erweitert, bis schließlich eine vollständige Kombination vorliegt. Verbesserungs-Heuristik: Heuristik, bei der iterativ versucht wird, eine zuvor konstruierte Kombination zu verbessern. In jedem Schritt werden temporäre Veränderungen von bereits berechneten Kombinationen „ausprobiert“. In Anlehnung an Domschke et al. (2015) können Heuristiken in (problem-) spezifische Heuristiken und universelle Heuristiken unterschieden werden. Spezifische Heuristiken werden jeweils zur Lösung eines bestimmten Problems entwickelt. Sie umfassen oft ein oder mehrere problembezogene Regeln zur Konstruktion oder Verbesserung einer Lösung. Spezifische Heuristiken liefern oft in sehr kurzen Rechenzeiten Lösungen. Jedoch offenbaren sie zwei Nachteile: Sie sind jeweils nur für ein konkretes Problem anwendbar (d.h. für jedes Problem <?page no="92"?> 92 4 Kombinatorische Optimierung benötigt man eine eigene spezifische Heuristik) und sie liefern oft Lösungen mit nur befriedigender Qualität. Diese Nachteile werden durch universelle Heuristiken behoben. Universelle Heuristiken beschreiben jeweils eine (verallgemeinerte) Vorgehensweise, nach der Lösungsräume zu durchsuchen sind. Die dabei anzuwendende Vorgehensweise und die anzuwendenden Operatoren werden unabhängig vom zu lösenden Problem beschrieben. Somit können universelle Heuristiken auf viele kombinatorische Probleme angewendet werden. Um ein konkretes kombinatorisches Problem mit einer universellen Heuristik zu lösen, ist diese an das Problem jedoch anzupassen. Unterkategorien der universellen Heuristiken sind die Meta- und Hyperheuristiken. Metaheuristik: Allgemeine Vorgehensweise zur Durchsuchung von Lösungsräumen kombinatorischer Probleme auf der Basis natürlicher Prinzipien. Sie umfasst (abstrakte) Suchoperatoren (Selektions-, Konstruktions- und Variationsoperatoren), die zur Lösung eines konkreten Problems anzupassen sind. Abb. 4.2: Methodenüberblick (nicht vollständig) Der Ablauf und die Suchoperatoren von Metaheuristiken greifen erfolgreiche Suchprinzipien der Natur auf. Auf diese Weise erhofft man sich, möglichst <?page no="93"?> 4.3 Rundreiseproblem 93 „sehr gute“ Lösungen berechnen zu können. Die Anpassung einer Metaheuristik an ein gegebenes Problem erfolgt durch Konkretisierung der Konstruktions- und Variationsoperatoren der Metaheuristik. Hierzu werden oft spezifische Heuristiken integriert. In den Kapiteln 7 und 10 werden Genetische Algorithmen und Ameisenalgorithmen als Beispiele für Metaheuristiken beschrieben. Hyperheuristik: Allgemeine Vorgehensweise, nach der spezifische Heuristiken bei der Konstruktion oder Verbesserung von Lösungen ausgewählt und angewendet werden. Die Suche im Lösungsraum wird somit indirekt durch eine Suche in einem Methodenraum durchgeführt. Hierbei werden Lernverfahren der Künstlichen Intelligenz angewendet. In Tab. 4.1 wird ein grober (nicht vollständiger) Überblick über die erwähnten Verfahren gegeben. Das Branch-and-Bound-Verfahren wird in Kapitel 2.9 beschrieben. 4.2.4 Beispiele Nachfolgend werden exemplarisch vier komplexe kombinatorische Optimierungsprobleme aus verschiedenen Unternehmensbereichen beschrieben. Problem Kombinationen beschreiben … Eigenschaft des Optimierungsproblems Anwendungsbereich Rundreiseproblem Reihenfolgen deterministisch, statisch - Logistik Scheduling-Problem Zuordnungen deterministisch, statisch - Entwicklung Losgrößenproblem Gruppierungen deterministisch, dynamisch - Produktion Standortproblem Auswahlen, Zuordnungen deterministisch, statisch - Service Tab. 4.1: Tabelle mit Beispielen der kombinatorischen Optimierung Rundreiseproblem 4.3.1 Anwendung Nachfolgend wird das asymmetrische Rundreiseproblem (kurz: Rundreiseproblem) beschrieben. Dieses findet u.a. Anwendung in der Distributionslogistik, z.B. bei der operativen (d.h. kurzfristigen) Planung von Auslieferungstouren eines Spediteurs. <?page no="94"?> 94 4 Kombinatorische Optimierung 4.3.2 Beschreibungsmodell Gegeben ist eine Menge zu bereisender Standorte sowie Distanzen zwischen allen geordneten Paaren von Standorten. Die geordneten Paare sollen Wege zwischen zwei Standorten darstellen. Gesucht ist eine Tour, d.h. eine Reihenfolge, nach der die Standorte auf einer Rundreise zu besuchen sind. Ziel ist die Minimierung der Gesamtdistanz (Summe der zurückzulegenden Distanzen) unter folgenden Nebenbedingungen: Jeder Standort ist genau einmal zu bereisen. Start und Ende der Tour sind identisch, d.h. die Reise endet an dem Standort, an dem sie begonnen hat. Die Problemstellung geht von folgenden Annahmen aus: Die Problemstellung ist deterministisch und statisch. Distanzen sind richtungsabhängig (asymmetrisch), d.h. die Distanz von Standort h zum Standort i kann verschieden von der Distanz vom Standort i zum Standort h sein. Der Start (bzw. das Ende) von Touren ist beliebig wählbar. Zur Beschreibung der Eingabe werden folgende Parameter eingeführt: Problemparameter [1] Standorte } ..., , 1 { n S = [2] Distanzen ∈ i h d , ℝ 0+ S i h ∈ , [1] S bezeichnet die Menge von n zu besuchenden Standorten. Diese sind von 1 bis n nummeriert. Der Wert für n stellt somit zugleich die Anzahl der Standorte dar. [2] d h,i bezeichnete die Distanz (Entfernung) von Standort h nach Standort i. Die Menge der Standorte kann indirekt durch die Anzahl n der Standorte vorgegeben werden, da diese von 1 bis n nummeriert sind. Alle Distanzen können in einer sogenannten Distanz-Matrix D = (d h,i ) angegeben werden. Die Distanz d h,i von Standort h nach Standort i ist der Zeile h und Spalte i der Matrix angegeben. Somit kann die Eingabe des Rundreiseproblems wie folgt angegeben werden: <?page no="95"?> 4.3 Rundreiseproblem 95 Eingabe Ω des Rundreiseproblems Ω = (n, D) Anzahl Standorte n Distanz-Matrix D = (d h,i ) h = 1, ..., n; i = 1, ..., n Tipps für Dozenten Darauf hinweisen, dass Ω die gegebenen Problemdaten umfasst. Diese können in der Praxis in Datenbanken oder einfachen ASCII-Files gegeben sein. Das Rundreiseproblem kann als Graph beschrieben werden. Hamiltonkreis: Ist 𝐺𝐺 = (𝐸𝐸, 𝐾𝐾) ein gerichteter Graph, so heißt ein Kreis in 𝐺𝐺 Hamiltonkreis, falls er jeden Knoten von G genau einmal durchläuft. Beschreibung des Rundreiseproblems durch einen gerichteten, bewerteten Graphen G = (E, K): Menge E = S von Knoten (von Standorten) Menge K = {(h, i)|h, i ∈ E} von gerichteten Kanten Gewichte d h,i für jede gerichtete Kante (h, i) Touren sind Hamiltonkreise. Gesucht ist der kürzeste Hamiltonkreis. Der vollständige Graph einer Probleminstanz mit n Standorten (Knoten) enthält genau (n 2 - n) gerichtete Kanten. Jede Tour besteht aus genau n Kanten. Der Lösungsraum L einer Instanz mit n Standorten besteht aus (n - 1)! Touren. 4.3.3 Optimierungsmodell Nachfolgend wird das asymmetrische Rundreiseproblem in Anlehnung an Dantzig et al. (1954) sowie Laporte (1992) durch ein ganzzahliges lineares Optimierungsmodell beschrieben. <?page no="96"?> 96 4 Kombinatorische Optimierung Variablen [3] Reiseentscheidungen x h,i ∈ {0, 1} h, i ∈ S Zielfunktion [4] Gesamtdistanz der Tour ∑∑ ∈ ∈ ⋅ = S h S i i h i h x d z , , → 𝑚𝑚𝑚𝑚𝑛𝑛 Nebenbedingungen 1 , = ∑ ∈S h i h x i ∈ S 1 , = ∑ ∈S i i h x h ∈ S 1 | | , − ≤ ∑ ∑ ∈ ∈ T x T h T i i h 2 | | | | 2 , − ≤ ≤ ⊂ S T S T 0 , = h h x h ∈ S [3] x h,i gibt an, ob von Standort h direkt nach Standort i gereist wird (x h,i = 1) oder nicht (x h,i = 0), d.h. ob im Graph die Kante (h, i) ∈ E gewählt wird oder nicht. [4] z berechnet die Gesamtdistanz (Gesamtentfernung) als Summe der zurückgelegten Distanzen. [5] Jeder Standort h ist genau einmal zu verlassen. [6] Jeder Standort i ist genau einmal zu bereisen. [7] Alle Standorte in S sind auf „einer gemeinsamen“ Tour zu bereisen, d.h. sogenannte Subtouren sind unzulässig. Eine Subtour ist eine Tour, in der nur eine Teilmenge T ⊂ S auf einer Rundreise bereist wird. Eine entsprechende Subtour besteht aus genau |T| Kanten. Die linke Seite der Ungleichung berechnet für eine beliebige Teilmenge T ⊂ S die Anzahl der bereisten Kanten, die zwei Standorte aus T miteinander verbinden. Um Subtouren auszuschließen, muss die Anzahl bereisten Kanten in T kleiner gleich |T| - 1 sein. [8] Es ist auszuschließen, dass von einem Standort h nach Standort h gereist wird. [5] [6] [7] [8] <?page no="97"?> 4.3 Rundreiseproblem 97 Tour: Eine Matrix X, welche die Nebenbedingungen des Optimierungsmodells erfüllt. ) ( , , 1 , , 1 1 , 1 i h n n n n x x x x x X = = } 1 , 0 { , ∈ i h x Alternativ können Touren auch in der Array-Schreibweise der Form X = [[x 1,1 , …, x 1,n ], …, [x n,1 , …, x n,n ]] dargestellt werden. Eine notwendige Bedingung für die Zulässigkeit von Matrizen ist, dass in jeder Spalte und in jeder Zeile jeweils genau eine Eins enthalten ist. 4.3.4 Beispiel Tipps für Dozenten Darauf hinweisen, dass im Beispiel lediglich verdeutlicht werden soll, wie Touren modelliert werden („was wird gesucht? “). Hingegen verdeutlicht das Beispiel nicht, wie Touren berechnet werden („wie wird gesucht? “). In Abb. 4.3 sind für eine Probleminstanz des Rundreiseproblems die Eingabe und eine mögliche (nicht optimale) Lösung angegeben. Die Distanz von Standort 2 nach Standort 3 beträgt zum Beispiel d 2,3 = 3 (z.B. 3 km), wie der Abb. 4.3. zu entnehmen ist. Die Gesamtdistanz der dargestellten Tour beträgt z = 9 + 3 +1 + 2 = 15 . In Abb. 4.4 sind der Lösungsraum L und die Zielfunktionswerte der Lösungen für eine Probleminstanz angegeben. Der Lösungsraum ist eine Menge, die aus (4 - 1)! = 6 Touren besteht. Die Touren sind als Matrizen angegeben. Die Instanz hat eine optimale Tour, die eine Gesamtdistanz von z = 8 aufweist. Nachfolgend werden zwei Beispiele für unzulässige Matrizen dargestellt. Diese stellen keine Touren dar: X = [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, 0, 1], [0, 0, 1, 0]] ist unzulässig, da diese zwei Subtouren beschreibt. X = [[0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 0], [0, 0, 0, 0]] ist unzulässig, da Ort 4 nicht bereist wird. <?page no="98"?> 98 4 Kombinatorische Optimierung Abb. 4.3: Beispiel Rundreiseproblem Abb. 4.4: Zielfunktion einer Probleminstanz des Rundreiseproblems <?page no="99"?> 4.3 Rundreiseproblem 99 Tipps für Dozenten Darauf hinweisen, dass der Lösungsraum für große Instanzen mit vielen Orten aus Rechenzeitgründen nicht vollständig berechnet werden kann. 4.3.5 Konstruktions-Heuristik Zur Konstruktion von Lösungen des Rundreiseproblems wird häufig die Nearest-Neighbor-Heuristik beschrieben (vgl. Johnson und Papadimitriou, 1985). Die Heuristik basiert auf der Definition der nächsten Nachbarn („nearest neighbors“). Menge N h,W nächster Nachbarn: Eine Menge von Orten, die zu einem gegebenen Ort h die kürzeste Distanz haben. Hierbei bezeichnet W eine gegebene Menge, aus der die nächsten Nachbarn auszuwählen sind. { } i h W i W h d N , , min arg : ∈ = Input: Anzahl n Orte, Entfernungsmatrix D [1] Lösung initialisieren: (x h,i ) ← 0 n,n (Nullmatrix) [2] Menge wählbarer Orte: W ← {1,…,n} [3] Wähle aktuellen Ort h ∈ W zufallsbasiert [4] W ← W \ {h} [5] Merke Startknoten s ← h [6] while (W ≠ ∅) do [7] Wähle nächsten Nachbarn i ∈ N h,W [8] x h,i ← 1 [9] h ← i [10] W ← W \ {h} [11] end while [12] Wähle Ort i ← s [13] x h,i ← 1 Output: Tour (x h,i ) mit h, i = 1,…,n Abb. 4.5: Nearest-Neighbor-Heuristik <?page no="100"?> 100 4 Kombinatorische Optimierung Die Auswahl des nächsten Nachbarn i∈N h,W kann zufallsbasiert erfolgen. Häufig jedoch hat die Menge N h,W lediglich ein Element. Die Idee der Nearest-Neigbor- Heuristik ist es, während der Konstruktion (Auswahl des als nächstes zu bereisenden Ortes) den Zielfunktionswert möglichst wenig zu erhöhen (Minimierungsproblem). Heuristiken, die entsprechend vorgehen, werden auch als Greedy- Heuristiken bezeichnet. Beispiel 4.1 Es sei das Beispiel aus Abb. 4.3 gegeben. Die Menge der nächsten Nachbarn des Ortes h = 2 bezogen auf die Menge W = {1, 3, 4} ist N h,W = {1, 3}. Die Orte i = 1, 3 haben zu dem Ort h = 2 die geringste Distanz von d 2,1 = d 2,3 = 3. Der Ort i = 4 hat dagegen eine Distanz von d 2,4 = 5 zu h. Die Tour in Abb. 4.3 wurde nach der Nearest-Neighbor-Heuristik berechnet. Hierbei wurde als Start der Ort h = 3 zufällig ausgewählt. Ausgehend vom Ort h = 3 wird als nächstgelegener Ort i = 2 ∈ W = {1, 2, 4} gewählt, da d 3,2 < d 3,1 < d 3,4 gilt (N h,W = {2}). Vom Ort h = 3 wird dann als nächstes zum Ort i = 2 gereist, usw. 4.3.6 Verbesserungs-Heuristik Die durch Konstruktions-Heuristiken berechneten Lösungen haben oft keine hohe Zielerreichung. Deshalb werden Verbesserungs-Heuristiken nachgeschaltet. Ziel ist es, eine durch Konstruktion berechnete Lösung zu verbessern. Eine häufig angewendete Verbesserungs-Heuristik ist die (einfache) lokale Suche, die auch als Bergsteiger-Algorithmus bezeichnet wird. Der Bergsteiger-Algorithmus wird nachfolgend am Beispiel des Rundreiseproblems beschrieben. Der Algorithmus kann aber auch für andere Probleme angewendet werden. Move-Operator φ: Ein Operator, der zu einer Tour X eine neue Tour Y anhand einer Variationsvorschrift berechnet. Nachbarschaft N φ (X) einer Tour X: Die Menge von Touren, die sich durch Anwendung des Move-Operators φ berechnen lassen. Nachbar einer Tour X : Jede Tour Y ∈ N φ (X) aus der Nachbarschaft. Die Nachbarschaft einer Lösung hängt von dem gewählten Move-Operator ab. Der Move-Operator ist problemspezifisch festzulegen. Für das Rundreiseproblem existiert eine Vielzahl an Move-Operatoren. Ein Beispiel ist der sogenannte Swap- Operator. <?page no="101"?> 4.3 Rundreiseproblem 101 Swap-Operator: Ein Move-Operator, der zu einer Tour X eine Tour Y berechnet. Hierzu wird die Reihenfolge von zwei Orten i und j, die durch eine Kante (i, j) ∈ X verbunden sind, getauscht. In Abb. 4.6 ist der Swap-Operator dargestellt. Der Operator hat zwei Parameter: die zu variierende Tour X und die Kante (i, j) ∈ X. Input: Tour X, Kante (i,j)∈X [1] (a,i) ← Kante von Ort a nach i in X [2] (j,b) ← Kante von Ort j nach b in X [3] Tour Y ← X \ {(a,i), (i,j), (j,b)} [4] Tour Y ← Y ∪ {(a,j), (j,i), (i,b)} Output: Tour Y, der Nachbar von Tour X Abb. 4.6: Swap-Operator Unter Verwendung des Swap-Operators kann der Bergsteiger-Algorithmus für das Rundreiseproblem (Minimierungsproblem) definiert werden. Die Heuristik startet von einer Tour Z, die z.B. durch die Nearest-Neighbor- Heuristik berechnet wurde. Diese Lösung wird zur Initialisierung einer aktuellen Lösung X verwendet. In jeder Iteration wird aus der Nachbarschaft der aktuellen Lösung X die „beste“ Tour B (der „beste Nachbar“) ermittelt, die eine geringere Gesamtdistanz als X hat. Die Suche terminiert, sobald ein lokales Minimum hinsichtlich der gewählten Nachbarschaft bzw. des angewendeten Move-Operators erreicht wurde. Ein lokales Minimum ist erreicht, wenn in der Nachbarschaft der aktuellen Tour X keine Tour mit kürzerer Gesamtdistanz enthalten ist. Die Berechnung der Nachbarschaft ist in Abb. 4.7 grau markiert. Input: Tour Z, Entfernungsmatrix D [1] Aktuelle Lösung: Tour X ← Z [2] weiter ← true [3] while weiter do [4] weiter ← false [5] Bester Nachbar von X: Tour B ← X <?page no="102"?> 102 4 Kombinatorische Optimierung [6] for each Kante (i,j) ∈ X do [7] Erzeuge Nachbar: Y ← Swap(X, (i,j)) [8] if z(Y) < z(B) then / / Verbesserung [9] B ← Y [10] weiter ← true [11] end if [12] end for [13] if weiter then [14] X ← B [15] end if [16] end while Output: Tour X Abb. 4.7: Bergsteiger-Algorithmus (für Minimierung) Abb. 4.8: Nachbarschaft durch Swap-Operator In Abb. 4.8 sind für alle Lösungen der Instanz aus Abb. 4.4 die jeweiligen Nachbarn angegeben, die sich durch einen Swap-Operator ergeben. Ferner wird durch die Abb. 4.8 der Bergsteiger-Algorithmus verdeutlicht. Angenommen sei, dass die Tour Z = ((1,2), (2,3), (3,4), (4,1)) durch die Nearest- Neighbor-Heuristik berechnet wurde und als Startlösung des Bergsteiger- <?page no="103"?> 4.4 Projekt-Scheduling-Problem 103 Algorithmus verwendet wird. Der beste Nachbar B hat den optimalen Zielfunktionswert von z = 8 Einheiten. Da in der Nachbarschaft von B keine bessere Lösung (Tour mit geringerer Gesamtdistanz) enthalten ist, terminiert in diesem kleinen Beispiel der Bergsteiger-Algorithmus sogar mit der optimalen Lösung. Tipps für Dozenten Darauf hinweisen, dass der Begriff „Nachbar“ in der Nearest-Neighbor- Heuristik und in der lokalen Suche unterschiedliche Bedeutungen haben. - Nearest-Neighbor-Heuristik: Nachbar ist ein Ort. - Lokale Suche: Nachbar ist eine Lösung (z.B. eine Tour). Projekt-Scheduling-Problem 4.4.1 Anwendung Nachfolgend wird das ressourcenbeschränkte Projekt-Scheduling-Problem (kurz: Scheduling-Problem) beschrieben. Dieses findet Anwendung in der Planung von Produktentwicklungsprojekten. 4.4.2 Beschreibungsmodell Gegeben ist eine Menge von Jobs. Für jeden Job ist eine Dauer bekannt. Zwischen den Jobs bestehen zeitliche Abhängigkeiten. Zur Durchführung der Jobs ist eine Menge von erneuerbaren Ressourcentypen gegeben. Für jeden Ressourcentyp ist eine Kapazität bekannt. Schließlich ist für jeden Ressourcentyp und jeden Job ein Bedarf gegeben. Gesucht ist ein Schedule (Zeitplan), d.h. eine Zuordnung von Startzeiten zu den Jobs. Ziel ist die Minimierung der Projektdauer (engl. makespan) unter folgenden Nebenbedingungen: Die zeitlichen Abhängigkeiten und die verfügbaren Kapazitäten sind einzuhalten. Jobs werden oft auch als Aktivitäten, Vorgänge oder Aufgaben bezeichnet. Unter einer Periode versteht man die Zeitspanne (z.B. ein Tag, eine Stunde) zwischen zwei Zeitpunkten. Die Problemstellung geht von folgenden Annahmen aus: Problemstellung ist statisch und deterministisch. Planungszeitraum ist diskret und unbeschränkt. <?page no="104"?> 104 4 Kombinatorische Optimierung Planungszeitraum beginnt zum Zeitpunkt t = 0. Alle Perioden sind gleich lang. Jobs können/ dürfen nicht unterbrochen werden. Dauer der Jobs wird in ganzen Perioden gemessen. Ressourcen sind erneuerbar, d.h. stehen in jede Periode erneut zur Verfügung. Problemparameter [1] Jobs } ..., , 1 { n J = [2] Ressourcentypen } ..., , 1 { m R = [3] Kapazität v r ∈ ℕ r ∈ R [4] Dauer d i ∈ ℕ 0 i ∈ J [5] Bedarf b i,r ∈ ℕ 0 i ∈ J, r ∈ R [6] Zeitliche Abhängigkeiten } , | ) , {( J k i k i K ∈ ⊂ [1] J bezeichnet eine Menge an Jobs, die in einem Projekt durchzuführen sind. Die Jobs sind von 1 bis n nummeriert. Die beiden Jobs 1 und n sind Dummy-Jobs, die lediglich den Start und das Ende des Projekts definieren. [2] R bezeichnet eine Menge an Ressourcentypen, die zur Durchführung der Jobs zur Verfügung stehen. Die Ressourcentypen sind von 1 bis m nummeriert. [3] v r bezeichnet die verfügbare Kapazität, d.h. die pro Periode verfügbare Ressourcenanzahl vom Ressourcentyp r. [4] d i bezeichnet die Dauer von Job i. Dummy-Jobs haben eine Dauer von null Perioden (d 1 = 0, d n = 0). [5] b i,r bezeichnet den Bedarf, d.h. die Anzahl an Ressourcen vom Ressourcentyp r, die während der Ausführung von Job i pro Periode benötigt wird. Dummy-Jobs haben keinen Ressourcenbedarf (b 1,r = 0, b n,r = 0, r ∈ R). [6] K bezeichnet die Menge an zeitlichen Abhängigkeiten bzw. Kanten im Vorgangsknotennetz, s.u. <?page no="105"?> 4.4 Projekt-Scheduling-Problem 105 Eingabe Ω des Projekt-Scheduling-Problems Ω = (n, m, v, d, B, K) Anzahl Jobs n Anzahl Ressourcentypen m Kapazitäts-Vektor v = (v r ); r = 1, …, m Vektor der Dauern d = (d i ); i = 1, …, n Bedarfs-Matrix B = (b i,r ); i = 1, …, n; r = 1, …, m Zeitliche Abhängigkeiten K Zur Visualisierung der gegebenen zeitlichen Abhängigkeiten werden Vorgangsknotennetze verwendet. Vorgangsknotennetz: Gerichteter Graph G = (E, K), der die zeitlichen Abhängigkeiten zwischen Jobs beschreibt. Menge E = J von Ecken (Jobs). Menge K ⊂ {(i, k)|i, k ∈ E} von gerichteten Kanten (zeitliche Abhängigkeiten). Gerichtete Kante (i, k) ∈ K gibt an, dass Job k erst starten darf, wenn Job i beendet ist. i wird als direkter Vorgänger von k bezeichnet; k wird als direkter Nachfolger von i bezeichnet. Berechnete Schedules werden mit Hilfe von Gantt-Diagrammen graphisch dargestellt. Gantt-Diagramm: Für einen gegebenen Schedule wird die Ausführung der einzelnen Jobs durch Balken über einer Zeitachse dargestellt. Für berechnete Schedules kann die zeitliche Verwendung von Ressourcen durch Auslastungsdiagramme dargestellt werden. Auslastungsdiagramm: Für einen gegebenen Schedule wird die kapazitive Auslastung eines Ressourcentyps r ∈ R über einer Zeitachse dargestellt. Für jeden Zeitpunkt t wird die von Ressourcentyp r insgesamt benötigte Ressourcenanzahl y r (t) angegeben (vgl. Optimierungsmodell). Pro Ressourcentyp ist ein eigenes Auslastungsdiagramm zu erstellen. <?page no="106"?> 106 4 Kombinatorische Optimierung 4.4.3 Optimierungsmodell Nachfolgend wird das Projekt-Scheduling-Problem in Anlehnung an Kolisch und Hartmann (1999) durch ein ganzzahliges lineares Modell beschrieben. Kolisch und Hartmann bezeichnen ihr Modell als „konzeptionell“, da einige verwendete Größen (die Auslastung der Ressourcentpyen zu einem Zeitpunkt t) erst berechnet werden müssen und nicht unmittelbar vorliegen. Variablen [7] Startzeiten x i ∈ ℕ 0 i∈J Zielfunktion [8] Zu minimierende Projektdauer (engl. makespan) z = x n → 𝑚𝑚𝑚𝑚𝑛𝑛 Nebenbedingungen [9] k i i x d x ≤ + K k i ∈ ) , ( [10] r t J i r i r v b t y ≤ = ∑ ∈ ) ( , ) ( R r t ∈ ≥ , 0 } | { ) ( i i i d x t x J i t J + < ≤ ∈ = [7] x i bezeichnet die Startzeit von Job i. Da für jeden Job die Dauer d i bekannt ist (und Jobs nicht unterbrochen werden dürfen), wird mit der Startzeit x i zugleich auch die Fertigstellungszeit (x i + d i ) festgelegt. [8] z berechnet die Projektdauer. Diese ergibt sich als Zeitspanne zwischen Start und Ende des Projektes. Das Projekt startet (mit dem Dummy-Job 1) zu dem Zeitpunkt t = x 1 und endet (mit dem Dummy-Job n) zu dem Zeitpunkt t = x n + d n = x n . Somit berechnet sich die Projektdauer zu z = x n - x 1 . In dem die Startzeit x 1 = 0 des Projektes auf den Zeitpunkt Null festgelegt wird, vereinfacht sich die Zielfunktion zu z = x n . [9] Für jeden direkten Vorgänger i von einem Job k ∈ J ist die Fertigstellungszeit (x i + d i ) kleiner oder gleich der Startzeit x k . [10] Für jeden Ressourcentyp r ∈ R gilt zu jedem Zeitpunkt t, dass die von r insgesamt benötigte Ressourcenanzahl (Auslastung y r (t)) kleiner oder gleich <?page no="107"?> 4.4 Projekt-Scheduling-Problem 107 der verfügbaren Kapazität v r ist. Um die Auslastung zu berechnen, wird die Menge J(t) definiert. Diese bezeichnet die Menge der Jobs, die zu dem Zeitpunkt t ausgeführt werden (vgl. Kolisch und Hartmann, 1999). Ein Job i wird zu dem Zeitpunkt t ausgeführt (und benötigt somit auch Ressourcen), wenn dieser gestartet (x i ≤ t), aber noch nicht beendet (t < x i + d i ) wurde. Mit Hilfe des Modells können Schedules nun wie folgt definiert werden. Schedule: Ein Vektor x, der die Nebenbedingungen des Projekt-Scheduling-Modells erfüllt. ) ( 1 i n x x x x = = x i ∈ ℕ 0 Alternativ können Schedules auch in der Schreibweise x = (x 1 , …, x n ) T dargestellt werden. 4.4.4 Beispiel In Abb. 4.9 sind die Parameterwerte sowie ein Schedule einer Probleminstanz angegeben. Die Probleminstanz hat n = 6 Jobs und einen Ressourcentyp (m = 1). Der Ressourcentyp r = 1 (z.B. Programmierer/ in) hat eine Kapazität von v 1 = 4, d.h. es stehen in jeder Periode vier Ressourcen vom Typ r = 1 zur Verfügung. Der Job 5 hat eine Dauer von d 5 = 3 Perioden und benötigt in jeder Periode, in der er ausgeführt wird, b 5,1 = 2 Ressourcen vom Typ r = 1. Der Job 4 darf erst gestartet werden, wenn seine direkten Vorgänger 2 und 3 beendet sind. Im exemplarisch angegebenen Schedule (0, 0, 0, 5, 2, 6) T startet der Job 5 zum Zeitpunkt t = 2. Der Job 6 (Dummy-Job bzw. Projektende) startet zum Zeitpunkt t = 6. Die Projektdauer beträgt demnach z = 6 Perioden. Nachfolgend werden zwei Beispiele für unzulässige Lösungen des Modells dargestellt: x = (0, 0, 0, 4, 2, 5) T ist nicht zulässig, da die Auslastung y 1 (4) = 5 > 4 größer ist als die verfügbare Anzahl an Ressourcen. x = (0, 0, 0, 2, 3, 6) T ist nicht zulässig, da der Job 4 gestartet wird, bevor der Job 2 beendet ist. <?page no="108"?> 108 4 Kombinatorische Optimierung Abb. 4.9: Beispiel Projekt-Scheduling-Problem 4.4.5 Konstruktions-Heuristik 4.4.5.1 Serial Schedule Generation Scheme Zur Lösung des Projekt-Scheduling-Problems wird oft das Serial Schedule Generation Scheme angewendet (vgl. Abb. 4.10 und 4.11). Das Serial Schedule Genera- <?page no="109"?> 4.4 Projekt-Scheduling-Problem 109 tion Scheme ist eine spezifische Konstruktions-Heuristik (vgl. Franck et al., 2001). Im Serial Schedule Generation Scheme werden folgende Mengen verwendet bzw. berechnet. V i = {h ∈ J | ∃ (h, i) ∈ K} Menge der Vorgänger für Job i N i = {k ∈ J | ∃ (i, k) ∈ K} Menge der Nachfolger für Job i GEPLANT: Die Menge der eingeplanten Jobs, d.h. Jobs für die eine Startzeit festgelegt ist. PLANBAR: Die Menge der Jobs, für die eine Startzeit festgelegt werden kann. Für einen Job i kann genau dann eine Startzeit festgelegt werden, wenn jeder Vorgänger h ∈ V i von i bereits eingeplant ist, d.h. in GEPLANT enthalten ist. In Abb. 4.10 wird das Serial Schedule Generation Scheme beschrieben. In dem Ablauf sind zwei Konstruktionsschritte integriert. Auswahl eines Jobs: Ein Job wird aus PLANBAR anhand einer Prioritätsregel ausgewählt. Scheduling eines Jobs: Ein Job wird zum frühesten möglichen Zeitpunkt unter Einhaltung der Restriktionen gestartet. Beide Konstruktionsschritte werden nachfolgend detailliert beschrieben. Input: Problemeingabe Ω = (n, m, v, d, B, K) [1] Jobs J = {1, …, n} [2] Ressourcentypen R = {1, …, m} [3] Berechne Vorgänger V i für jeden Job i ∈ J [4] Berechne Nachfolger N i für jeden Job i ∈ J [5] Menge zu planender Jobs: PLANBAR : = {1} [6] Menge geplanter Jobs: GEPLANT : = ∅ [7] while PLANBAR ≠ ∅ do [8] i ← Auswahl eines Jobs aus PLANBAR [9] x i ← Scheduling von Job i [10] PLANBAR ← PLANBAR \ {i} [11] GEPLANT ← GEPLANT ∪ {i} [12] for each Nachfolger k ∈ N i do [13] if Vorgänger V k ⊆ GEPLANT then [14] Job k in PLANBAR einfügen <?page no="110"?> 110 4 Kombinatorische Optimierung [15] end if [16] end for [17] end while Output: Schedule (x i ), i ∈ J Abb. 4.10: Serial Schedule Generation Scheme Abb. 4.11: Schedule Generation Scheme (Beispiel) <?page no="111"?> 4.4 Projekt-Scheduling-Problem 111 4.4.5.2 Prioritätsregeln Im Schritt [8] in Abb. 4.10 wird aus der Menge PLANBAR ein Job ausgewählt. Die Auswahl erfolgt nach einer Prioritätsregel. In der Literatur existiert eine Vielzahl an möglichen Prioritätsregeln. Prioritätsregel: Regel, nach der ein Job i ∈ PLANBAR im Serial Schedule Generation Scheme ausgewählt wird. [1] Wähle Job mit größter Dauer. [2] Wähle Job mit kleinster Dauer. [3] Wähle Job mit größter Anzahl an Nachfolgern. [4] Wähle Job mit größtem Ressourcenbedarf. In den verwendeten Beispielen wird die Prioritätsregel [1] angewendet, d.h. es wird der Job mit der größten Dauer aus PLANBAR ausgewählt. 4.4.5.3 Scheduling Im Schritt [9] in Abb. 4.10 wird die Startzeit für einen Job berechnet. Diesen Schritt bezeichnet man auch als Scheduling. Dieser Schritt ist in Abb. 4.12 detailliert beschrieben und in Abb. 4.13 an einem Beispiel verdeutlicht. Input: - Problemparameter Ω = (n, m, v, d, B, K) - Job i - Vorgänger V i von Job i - Menge GEPLANT bereits eingeplanter Jobs [1] if i = 1 (Dummy-Job) then [2] Startzeit x i ← 0 [3] Zulässigkeit ok ← true [4] else [5] Startzeit x i ← min{x h + d h |h ∈ V i } [6] Zulässigkeit ok ← false [7] end if [8] while ok = false do [9] ok ← true [10] for each Ressourcentypen r ∈ R do [11] for each t ← x i , … , x i + d i - 1 do [12] if Bedarf k(i,r,t) > v r then <?page no="112"?> 112 4 Kombinatorische Optimierung [13] ok ← false [14] end if [15] end for [16] end for [17] if ok = false then [18] Startzeit x i ← x i + 1 [19] end if [20] end while Output: Startzeit x i Abb. 4.12: Scheduling Abb. 4.13: Scheduling (Beispiel) <?page no="113"?> 4.5 Standortproblem 113 Beim Scheduling muss der benötigte Kapazitätsbedarf für einen Zeitpunkt t geprüft werden. Bedarf an Ressource r zum Zeitpunkt t eines Jobs i: ∑ ∈ + = ) ( , , ) , , ( t G h h r i r b b t r i k mit G(t) = {h ∈ GEPLANT | x h ≤ t < x h + d h } Standortproblem 4.5.1 Anwendung Nachfolgend wird das Standortproblem ohne Kapazitätsbeschränkung (kurz: Standortproblem) beschrieben. Dieses findet u.a. Anwendung bei der taktischen (d.h. mittelfristigen) Planung von Standorten für Warenlager oder Serviceeinrichtungen (z.B. Planung von Servicenetzen). 4.5.2 Beschreibungsmodell Gegeben ist eine Menge an Standorten, an denen Warenlager betrieben werden können. Ferner ist eine Menge an Nachfragern (z.B. Kunden) gegeben, die von Warenlagern zu beliefern sind. Für jeden Standort sind die Errichtungskosten für den Aufbau und den Betrieb eines Warenlagers bekannt. Für jeden Standort und jeden Nachfrager sind Transportkosten gegeben. Gesucht ist ein Standortplan, d.h. eine Auswahl an Standorten und eine Zuordnung von Nachfragern zu Standorten. Ziel ist die Minimierung der Gesamtkosten (Summe der anfallenden Errichtungs- und Transportkosten) unter folgenden Nebenbedingungen: Jeder Nachfrager ist genau einem Standort zuzuordnen. In jedem Standort, dem mindestens ein Nachfrager zugeordnet ist, ist ein Warenlager zu betreiben. Die Problemstellung geht von folgenden Annahmen aus: Problemstellung ist deterministisch und statisch. Kapazitäten der Warenlager sind unbeschränkt. Belieferung findet in Pendeltouren statt (keine Tourenplanung! ). <?page no="114"?> 114 4 Kombinatorische Optimierung Zur Beschreibung der Eingabe werden folgende Parameter eingeführt: Problemparameter [1] Standorte } ..., , 1 { n S = [2] Nachfrager } ..., , 1 { m N = [3] Errichtungskosten b i ∈ ℝ + i ∈ S [4] Transportkosten c i,k ∈ ℝ + i ∈ S, k ∈ N [1] S bezeichnet die Menge von n möglichen Standorten, in denen Warenlager betrieben werden können. Diese sind von 1 bis n nummeriert. [2] N bezeichnet die Menge von m Nachfragern bzw. Kunden, die von Standorten (bzw. den dort betriebenen Warenlagern) zu beliefern sind. Diese werden von 1 bis m nummeriert. [3] b i bezeichnet die Errichtungskosten, die anfallen, wenn in Standort i ein Warenlager eingerichtet und betrieben wird. Diese werden auch als Fixkosten bezeichnet. [4] c i,k bezeichnet die Transportkosten, die anfallen, wenn der Nachfrager k von Standort i aus beliefert wird. Eingabe Ω des Standortproblems Ω = (n, m, b, C) Anzahl Standorte n Anzahl Nachfrager m Kosten-Vektor b = (b i ); i = 1, ..., n Kosten-Matrix C = (c i,k ); i = 1, ..., n; k = 1, ..., m Lösungen des Standortproblems können als Graphen dargestellt werden. Modellierung von Standortplänen durch ungerichtete Graphen G = (E, K): Menge E = S ∪ N von Ecken. <?page no="115"?> 4.5 Standortproblem 115 Menge K ⊂ {{i, k}|i ∈ S, k ∈ N} von ungerichteten Kanten. Die ungerichtete Kante {i, k} ∈ K gibt an, dass der Nachfrager k dem Standort i zugeordnet ist. Für eine Probleminstanz mit n Standorten und m Nachfragern existieren 2 n - 1 verschiedene Möglichkeiten zur Auswahl von Standorten sowie n m verschiedene Möglichkeiten, die Standorte den Nachfragern zuzuordnen. 4.5.3 Optimierungsmodell Nachfolgend wird das Standortproblem in Anlehnung an Cornuejols et al. (1990) durch ein ganzzahliges lineares Modell beschrieben. Variablen [5] Auswahl } 1 , 0 { ∈ i x i ∈ S [6] Zuordnung } 1 , 0 { , ∈ k i y i ∈ S, k ∈ N Zielfunktion [7] Gesamtkosten ∑∑ ∑ ∈ ∈ ∈ ⋅ + ⋅ = S i N k k i k i S i i i y c x b z , , → 𝑚𝑚𝑚𝑚𝑛𝑛 Nebenbedingungen [8] 1 , = ∑ ∈S i k i y k ∈ N [9] i k i x y ≤ , i ∈ S, k ∈ N [5] x i gibt an, ob Standort i ∈ S ausgewählt ist (x i = 1) oder nicht (x i = 0). [6] y i,k gibt an, ob Nachfrager k ∈ N dem Standort i ∈ S zugeordnet ist (y i,k = 1) oder nicht (y i,k = 0). [7] z berechnet die Gesamtkosten. Diese berechnen sich als Summe der anfallenden Errichtungskosten und der anfallenden Transportkosten. <?page no="116"?> 116 4 Kombinatorische Optimierung [8] Jeder Nachfrager ist genau einem Standort zugeordnet. [9] In einem Standort i ist ein Warenlager zu errichten (x i = 1), wenn dieser mindestens einem Nachfrager zugeordnet ist (d.h. es existiert ein k, so dass y i,k = 1 ist). Mit Hilfe des Modells können Standortpläne nun definiert werden. Standortplan: Ein Tupel (x, Y), welches die Nebenbedingungen des Optimierungsmodells erfüllt. Auswahlvektor ) ( 1 i n x x x x = = x i ∈ {0, 1} Zuordnungsmatrix ) ( , , 1 , , 1 1 , 1 k i m n n m y y y y y Y = = y i,k ∈ {0, 1} Alternativ können Auswahlvektor und Zuordnungsmatrix wie folgt geschrieben werden: x = (x 1 , …, x n ) T und Y = [[y 1,1 , …, y 1,m ], …, [y n,1 , …, y n,m ]]. Eine notwendige Bedingung für die Zulässigkeit von Zuordnungsmatrizen ist, dass in jeder Spalte genau eine Eins enthalten ist (jeder Nachfrager wird einem Standort zugeordnet). 4.5.4 Beispiel In Abb. 4.14 sind die Parameter sowie eine Lösung einer Probleminstanz des Standortproblems angegeben. Die Kosten werden in Geldeinheiten ausgedrückt. Beispielsweise betragen die Errichtungskosten von Standort 3 genau b 3 = 7 Geldeinheiten. Die Belieferung von Nachfrager 2 von Standort 3 verursacht Transportkosten von c 3,2 = 6 Geldeinheiten an. In der dargestellten Lösung werden die beiden Standorte 1 und 3 ausgewählt (z.B. x 3 = 1). Der Nachfrager 2 ist dem Standort 3 zugeordnet (z.B. y 3,2 = 1). Die Gesamtkosten betragen z = (4 + 0 + 7) + (5 + 8 + 6 + 7) = 37 Geldeinheiten. Die dargestellte Lösung kann auch wie folgt geschrieben werden: (x, Y) mit x = (1, 0, 1) T und Y = [[1, 0, 0, 1], [0, 0, 0, 0], [0, 1, 1, 0]]. Der Lösungsraum L für diese kleine Probleminstanz ist bereits relativ groß. So existieren 2 3 - 1 = 7 verschiedene Möglichkeiten zur Auswahl von Standorten <?page no="117"?> 4.6 Losgrößenproblem 117 sowie 4 3 = 64 verschiedene Zuordnungsmöglichkeiten. Nachfolgend werden zwei Beispiele für unzulässige Lösungen des Modells dargestellt, die keine Standortpläne beschreiben: • (x, Y) mit x = (0, 0, 1) T und Y = [[1, 0, 0, 0], [0, 0, 0, 0], [0, 1, 1, 1]] ist unzulässig, da Standort 1 gewählt werden muss, da diesem ein Nachfrager (Kunde 1) zugeordnet ist. • (x, Y) mit x = (1, 0, 1) T und Y = [[1, 0, 0, 0], [0, 0, 0, 0], [0, 1, 1, 0]] ist unzulässig, da Nachfrager 4 keinem Standort zugeordnet ist. Abb. 4.14: Beispiel Standortproblem Tipps für Dozenten Zur Lösung des Standortproblems werden in Kapitel 6 die Genetischen Algorithmen beschrieben. Losgrößenproblem 4.6.1 Anwendung Nachfolgend wird das mehrstufige Losgrößenproblem ohne Kapazitätsbeschränkungen beschrieben. Dieses findet Anwendung in der operativen (d.h. kurzfristigen) Produktionsplanung. <?page no="118"?> 118 4 Kombinatorische Optimierung 4.6.2 Beschreibungsmodell Gegeben ist eine Menge an herzustellenden Erzeugnissen (Fertigerzeugnisse und Baugruppen), die durch eine Erzeugnisstruktur miteinander verbunden sind. Eine Menge von Perioden gibt einen Planungszeitraum an. Für jedes Erzeugnis sind die stückbezogenen Lagerkosten und die periodenbezogenen Rüstkosten bekannt. Für jedes Fertigerzeugnis ist für jede Periode ein ganzzahliger Primärbedarf, d.h. eine nachgefragte Stückzahl, bekannt. Gesucht ist ein Losgrößenplan, d.h. eine periodenbezogene Gruppierung der pro Erzeugnis herzustellenden Stückzahl. Ziel ist die Minimierung der Gesamtkosten (Summe der anfallenden Rüst- und Lagerkosten) unter der Nebenbedingung, dass sämtliche Bedarfe eingehalten werden. Die Problemstellung geht von folgenden Annahmen aus: Problemstellung ist deterministisch. Rüst- und Lagerkosten sind statisch. Primärbedarfe sind von der Zeit abhängig, d.h. dynamisch. Ressourcenkapazitäten sind unbeschränkt. Die Produktion ist mehrstufig. Die Produktion ist fehlerfrei. Lagerbestände sind zu Beginn der Planung nicht vorhanden. Maschinen werden in jeder Periode gerüstet, in denen produziert wird. Produktions-und Transportzeiten werden vernachlässigt. Fertigungskosten werden nicht berücksichtigt. Problemparameter [1] Erzeugnisse E = {1, …, n} [2] Fertigerzeugnisse F = {1, …, g}⊂ E [3] Baugruppen B = {g+1, …, n}⊂ E [4] Erzeugnisstruktur K ⊂ {(i, k)|i∈B, k∈E, i>k} [5] Rüstkosten r i ∈ ℝ + i ∈ E <?page no="119"?> 4.6 Losgrößenproblem 119 [6] Lagerkosten l i ∈ ℝ + i ∈ E [7] Perioden } ..., , 1 { m T = [8] Primärbedarfe d i,t ∈ ℕ 0 i ∈ F, t ∈ T [1] E bezeichnet die Menge von herzustellenden Erzeugnissen. Die Erzeugnisse sind von 1 bis n nummeriert und werden in Fertigerzeugnissen (1 bis g) sowie Baugruppen und Einzelteile (g+1 bis n) unterschieden. [2] F bezeichnet die Menge der Fertigerzeugnisse. [3] B bezeichnet die Menge der Baugruppen und Einzelteile, d.h. Erzeugnisse, die in anderen Baugruppen oder Fertigerzeugnissen verbaut werden. [4] K beschreibt die Zusammensetzung der Erzeugnisse (Erzeugnisstruktur) bzw. die Kanten im Gozinto-Graphen (s.u.). [5] r i bezeichnet die Rüstkosten für Erzeugnis i. Diese fallen in jeder Periode an, in der Maschinen für die Herstellung von i gerüstet (eingestellt) werden. [6] l i bezeichnet die stückbezogenen Lagerkosten für Erzeugnis i. Diese fallen für jedes gelagerte Stück von Erzeugnis i pro gelagerte Periode an. [7] T bezeichnet die Menge an Perioden, die den Planungszeitraum repräsentieren. Die Perioden sind von 1 bis m nummeriert. [8] d i,t bezeichnet für Fertigerzeugnis i den Primärbedarf (engl. demand) in Periode t. Dieser gibt die Stückzahl an, die von i in der Periode t nachgefragt wird und somit spätestens in der Periode t hergestellt werden muss. Eingabe Ω des Losgrößenproblems Ω = (n, g, K, r, l, m, D) Anzahl Erzeugnisse n Anzahl Fertigerzeugnisse g Erzeugnisstruktur K Rüstkosten-Vektor r = (r i ) i = 1, ..., n Lagerkosten-Vektor l = (l i ) i = 1, ..., n Anzahl Perioden m Primärbedarf-Matrix D = (d i,t ) i = 1, ..., g; t = 1,..., m <?page no="120"?> 120 4 Kombinatorische Optimierung Die gegebene Erzeugnisstruktur kann durch einen Graphen dargestellt werden. Gozinto-Graph: Gerichteter Graph G = (E, K), der die Zusammensetzung der Erzeugnisse beschreibt. Menge E von Ecken (Erzeugnisse). Menge K ⊂ {(i, k)|i ∈ B , k ∈ E, i > k} von gerichteten Kanten. Die Kante (i, k) ∈ K, gibt an, dass pro Stück von Erzeugnis k genau ein Stück von Erzeugnis i verbaut wird. i wird als direkter Vorgänger von k bezeichnet. k wird als direkter Nachfolger von i bezeichnet. Für eine Probleminstanz mit n Erzeugnissen und m Perioden existieren 2 n(m-1) verschiedene Rüstentscheidungen. Der Lösungsraum L einer Probleminstanz besteht somit aus |L| > 2 n(m-1) Losgrößenplänen. 4.6.3 Optimierungsmodell Nachfolgend wird das Losgrößenproblem in Anlehnung an Steinberg und Napier (1980) durch ein ganzzahliges lineares Modell beschrieben. Variablen [9] Losgrößen x i,t ∈ ℕ 0 i ∈ E, t ∈ T [10] Rüstentscheidungen y i,t ∈ {0, 1} i ∈ E, t ∈ T [11] Bedarfe b i,t ∈ ℕ 0 i ∈ E, t ∈ T [12] Lagerbestände w i,t ∈ ℕ 0 i ∈ E, t ∈ T Zielfunktion [13] Gesamtkosten ∑∑ ∈ ∈ ⋅ + ⋅ = E i T t t i i t i i w l y r z , , → 𝑚𝑚𝑚𝑚𝑛𝑛 <?page no="121"?> 4.6 Losgrößenproblem 121 Nebenbedingungen [14] q⋅y i,t ≥ x i,t i ∈ E, t ∈ T [15] w i,1 = x i,1 - b i,1 i ∈ E [16] w i,t = x i,t - b i,t + w i,t-1 i ∈ E, t ∈ T \{1} [17] b i,t = d i,t i ∈ F, t ∈ T [18] ∑ ∈ = i N k t k t i x b , , i ∈ B, t ∈ T N i = {k ∈ E | ∃ (i, k) ∈ K} [9] x i,t bezeichnet die Losgröße. Sie gibt die Stückzahl an, die von Erzeugnis i in Periode t hergestellt wird. [10] y i,t ist die Rüstentscheidung. Sie gibt an, ob Maschinen zur Herstellung von Erzeugnis i in der Periode t gerüstet werden (y i,t = 1) oder nicht (y i,t = 0). [11] b i,t ist der Bedarf, d.h. die Stückzahl von Erzeugnis i, die in Periode t nachgefragt wird. [12] w i,t ist der Lagerbestand, d.h. die Stückzahl von Erzeugnis i, die in Periode t zu lagern ist. [13] z berechnet die Gesamtkosten als Summe aller anfallenden Rüst- und Lagerkosten. [14] Für jedes Erzeugnis i und jede Periode t ist sicherzustellen, dass gerüstet wird (d.h. y i,t = 1), wenn mindestens ein Stück von i hergestellt (d.h. x i,t > 0). Dies wird durch eine hinreichend groß gewählte Konstante q gewährleistet. [15] Der Lagerbestand w i,1 von Erzeugnis i in Periode t = 1 errechnet sich als Differenz aus der Losgröße x i,1 und des Bedarfs b i,1 . Da w i,1 ≥ 0 gilt (w i,1 ∈ ℕ 0 ), wird somit zugleich sichergestellt, dass x i,1 ≥ b i,1 sein muss, d.h. der Bedarf in Periode 1 befriedigt wird. [16] Der Lagerbestand w i,t von Erzeugnis i in Periode t, t > 1, errechnet sich aus der in Periode t hergestellten Menge x i,t , abzüglich des Bedarfs b i,t und zuzüglich des Lagerbestandes w i,t-1 der vorhergehenden Periode (t - 1). Durch die Nebenbedingung wird (in Analogie zu [15]) sichergestellt, dass der Bedarf in jeder Periode befriedigt wird. [17] Der Bedarf für ein Fertigerzeugnis i ∈ F ist der gegebene Primärbedarf. <?page no="122"?> 122 4 Kombinatorische Optimierung [18] Der Bedarf für eine Baugruppe i ∈ B wird als Sekundärbedarf bezeichnet. Der Sekundärbedarf b i,t gibt die nachgefragte Stückzahl von Erzeugnis i in Periode t an. Dieser berechnet sich aus der Summe der Losgrößen, die in der Periode t von den direkten Nachfolgern von i hergestellt werden. Mit Hilfe des Modells können Losgrößenpläne nun wie folgt definiert werden. Losgrößenplan: Ein Tupel (X, Y, B, W), das die Nebenbedingungen des Losgrößenmodells erfüllt. Losgrößen-Matrix ) ( , , 1 , , 1 1 , 1 t i m n n m x x x x x X = = ∈ t i x , {0,1} Rüstentscheidungs-Matrix ) ( , , 1 , , 1 1 , 1 t i m n n m y y y y y Y = = ∈ t i y , {0,1} Bedarfs-Matrix ) ( , , 1 , , 1 1 , 1 t i m n n m b b b b b B = = ∈ t i b , ℕ 0 Lagerbestands-Matrix ) ( , , 1 , , 1 1 , 1 t i m n n m w w w w w W = = ∈ t i w , ℕ 0 Alternativ können die Komponenten von Losgrößenplänen auch in einer Array- Schreibweise dargestellt werden: Z.B. X = [[x 1,1 , …, x 1,m ], …, [x n,1 , …, x n,m ]]. 4.6.4 Beispiel In Abb. 4.15 sind die Parameter sowie eine zulässige Lösung einer Probleminstanz des Losgrößenproblems angegeben. Die Probleminstanz hat m = 3 Perioden und n = 4 Erzeugnisse. Bei den Erzeugnissen handelt es sich um ein Fertigerzeugnis und drei Baugruppen. Die Nummer des Fertigerzeugnisses i = 1. Die direkten Nachfolger von Erzeugnis 4 sind die Erzeugnisse 2 und 3. Es gilt somit N 4 = {2, 3}. Die Produktion erfolgt in drei Stufen. Z.B. werden zur <?page no="123"?> 4.6 Losgrößenproblem 123 Herstellung von einem Stück von Erzeugnis 1 jeweils ein Stück von den Erzeugnissen 2 und 3 benötigt. Die Kosten sind in Geldeinheiten angegeben. Z.B. betragen die Rüstkosten von Erzeugnis 1 genau r 1 = 6 Geldeinheit pro Periode und die Lagerkosten l 1 = 8 Geldeinheiten pro Stück und Periode. Erzeugnis 1 hat in Periode 3 einen Primärbedarf von d 1,3 = 7 Stück. Der dargestellte Losgrößenplan hat Gesamtkosten von z = 175 Geldeinheiten. Diese berechnen sich aus der Summe der anfallenden Rüstkosten (1+1+1)·6 + (1+1)·7 + (1+1)·3 + 1·5 = 43 Geldeinheiten und der anfallenden Lagerkosten 7·6 + 1·2 + 15·4 + 7·4 = 132 Geldeinheiten. Das Tupel (X, Y, B, W) ist zulässig und beschreibt somit einen Losgrößenplan: a) Die Losgrößen sind zulässig, da in jeder Periode die (Primär- und Sekundär-)Bedarfe befriedigt werden. b) Die Rüstentscheidungen sind zulässig. Für jedes Erzeugnis gilt, dass in jeder Periode, in der Lose geplant werden, auch die erforderlichen Maschinen gerüstet werden. c) Die Bedarfe sind zulässig. Sie ergeben sich aus den Losgrößen der direkten Nachfolger. So errechnet sich z.B. der Sekundärbedarf von Erzeugnis 4 in Periode 1 aus den Losen der direkten Nachfolger 2 und 3: d) b 4,1 = x 2,1 + x 3,1 = 5 +6 = 11. Die Lagerbestände sind zulässig. Z.B. ist der Lagerbestand von Erzeugnis 4 in Periode 2: w 4,2 = x 4,2 - b 4,2 + w 4,1 = 0 - 8 + 15 = 7. Nachfolgend werden zwei Beispiele für unzulässige Tupel aufgezeigt: Eine Lösung mit den Losgrößen X = [[4, 1, 7], [5, 8, 0], [6, 0, 7], [26, 0, 0]] ist unzulässig, da in der ersten Periode das Erzeugnis 1 zu wenig produziert. Es gilt: w 1,1 = x 1,1 - b 1,1 = 4 - 5 = -1 < 0 (unzulässig, da w 1,1 ≥ 0 sein muss). Ebenfalls unzulässig ist eine Lösung mit den Losgrößen X = [[5, 1, 7], [5, 8, 0], [6, 0, 7], [26, 0, 0]] und den Rüstentscheidungen Y = [[1, 0, 1], [1, 1, 0], [1, 0, 1], [1, 0, 0]], da für Erzeugnis 1 in Periode 2 nicht gerüstet wird (y 1,2 = 0), obwohl ein Los geplant wird (x 1,2 = 1). In Abb. 4.15 wird eine Lösung einer Probleminstanz des Losgrößenproblems beschrieben. <?page no="124"?> 124 4 Kombinatorische Optimierung Abb. 4.15: Beispiel Losgrößenproblem Tipps für Dozenten Zur Lösung des Losgrößenproblems werden in Kapitel 6 die Genetischen Algorithmen beschrieben. <?page no="125"?> Aufgaben Aufgabe 4.1 (Rundreiseproblem) Gegeben sei die Instanz aus Abb. 4.3. Die Matrix X = [[0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1], [2, 0, 0, 0]] beschreibt eine Tour. richtig falsch Aufgabe 4.2 (Rundreiseproblem) Gegeben sei die Instanz aus Abb. 4.3. Die Matrix X = [[0, 0, 1, 0], [0, 0, 0, 1], [1, 0, 0, 0], [0, 1, 0, 0]] beschreibt eine Tour. richtig falsch Aufgabe 4.3 (Rundreiseproblem) Gegeben sei eine Instanz mit n = 6 Standorten. Die Matrix X = [[0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 1], [0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 1, 0], [0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]] beschreibt eine Tour. richtig falsch Aufgabe 4.4 (Rundreiseproblem) Zeichnen Sie die Tour, die durch folgende Matrix X = [[0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 1, 0], [0, 1, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0]] gegeben wird. Aufgabe 4.5 (Rundreiseproblem) Gegeben sei die Instanz aus Abb. 4.3. Die Matrix X = [[0, 0, 1, 0], [1, 0, 0, 0], [0, 0, 0, 1], [0, 1, 0, 0]] beschreibt die dargestellte Tour. <?page no="126"?> 126 4 Kombinatorische Optimierung richtig falsch Aufgabe 4.6 (Rundreiseproblem) Der Lösungsraum einer Instanz mit n = 5 Standorten besteht aus 120 Touren. richtig falsch Aufgabe 4.7 (Rundreiseproblem) Gegeben seien die Parameterwerte: S = {1, … , 4} und D = (d i,j ) = [[0, 6, 1, 2], [7, 0, 3, 6], [3, 2, 0, 5], [8, 2, 2, 0]]. Die nachfolgende Tour hat eine Gesamtdistanz von z = 13 Entfernungseinheiten. richtig falsch Aufgabe 4.8 (Nearest-Neighbor-Heuristik) Lösen Sie die Probleminstanz aus Abb. 4.3 mit der Nearest-Neighbor- Heuristik. Wählen Sie als Startort h = 4. Aufgabe 4.9 (Projekt-Scheduling-Problem) Gegeben sei die Instanz aus Abb. 4.9. Der Vektor x = (0, 0, 4, 6, 7, 10) T beschreibt einen Schedule mit einer Projektdauer von 10 Perioden. richtig falsch Aufgabe 4.10 (Projekt-Scheduling-Problem) Gegeben sei die Instanz aus Abb. 4.9. Der Vektor x = (0, 0, 3, 4, 0, 5) T beschreibt einen Schedule. richtig falsch <?page no="127"?> 4.7 Aufgaben 127 Aufgabe 4.11 (Projekt-Scheduling-Problem) Gegeben seien die Instanz und der Schedule aus Abb. 4.9. Es gilt für die Auslastung von Ressourcentyp r = 1: y 1 (4) = 3. richtig falsch Aufgabe 4.12 (Projekt-Scheduling-Problem) Gegeben sei die Instanz aus Abb. 4.9. Die direkten Nachfolger von Job 2 sind N 2 = {4, 6}. richtig falsch Aufgabe 4.13 (Projekt-Scheduling-Problem) Gegeben sei die Instanz aus Abb. 4.9. Die direkten Nachfolger von Job 3 sind N 3 = {4, 5}. richtig falsch Aufgabe 4.14 (Projekt-Scheduling-Problem) Die Startzeit und die Fertigstellungszeit von Dummy-Job n sind identisch. richtig falsch Aufgabe 4.15 (Projekt-Scheduling-Problem) Gegeben sei die Instanz aus Abb. 4.9. Der Job 4 hat eine Dauer von d 4 = 3 Perioden. richtig falsch Aufgabe 4.16 (Projekt-Scheduling-Problem) Gegeben seien die Instanz und der Schedule aus Abb. 4.9. Der Job 4 startet zu der Zeit x 4 = 5. richtig falsch Aufgabe 4.17 (Projekt-Scheduling-Problem) Gegeben seien die Instanz und der Schedule aus Abb. 4.9. Der Job 3 benö- <?page no="128"?> 128 4 Kombinatorische Optimierung tigt zu der Zeit t = 2 Ressourcen vom Typ r = 1. richtig falsch Aufgabe 4.18 (Projekt-Scheduling-Problem) Gegeben sei folgende Instanz: i ∈ J = {1, …, 10}, r ∈ R = {1}, v 1 = 4, (d i ) = (0, 3, 2, 5, 2, 4, 4, 1, 5, 0) T , (b i,r ) = (0, 3, 4, 1, 3, 2, 3, 2, 2, 0), K = {(1, 2), (1, 3), (1, 4), (2, 5), (3, 6), (4, 6), (5, 7), (5, 8), (6, 8), (4, 9), (7, 10), (8, 10), (9, 10)}. Der Schedule x = (x i ) = (0, 0, 5, 0, 3, 7, 12, 11, 7, 16) T ist optimal. richtig falsch (Tipp: Auslastungsdiagramm anfertigen und überlegen, ob Schedule verbessert werden kann). Aufgabe 4.19 (Projekt-Scheduling-Problem) Gegeben seien die Instanz und der Schedule aus Abb. 4.9. Geben Sie den vollständigen Lösungsraum an. Aufgabe 4.20 (Serial Schedule Generation Scheme) Lösen Sie folgende Probleminstanz zweimal mit dem Serial-Schedule- Generation-Scheme. Wählen Sie als Prioritätsregel einmal die „längste Dauer“ und einmal die „kürzeste Dauer“. Berechnen Sie für jeden Schedule die Projektdauer. <?page no="129"?> 4.7 Aufgaben 129 Aufgabe 4.21 (Standortproblem) Gegeben sei die Instanz aus Abb. 4.14. Die Transportkosten t 1,2 von Standort Nachfrager 2 nach Standort 1 betragen 4 Geldeinheiten. richtig falsch Aufgabe 4.22 (Standortproblem) Gegeben seien die Instanz aus Abb. 4.14 und der Standortplan (x, Y) mit x = (1, 1, 0) T und Y = [[1, 1, 0, 0], [0, 0, 1, 1], [0, 0, 0, 0]]). Die Gesamtkosten z des Standortplanes sind 23 Geldeinheiten. richtig falsch Aufgabe 4.23 (Standortproblem) Gegeben sei die Instanz aus Abb. 4.14. Das folgende Tupel (x, Y) mit x = (1, 1, 0) T und Y = [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 1]]) stellt einen Standortplan dar. richtig falsch Aufgabe 4.24 (Standortproblem) Gegeben sei die Instanz aus Abb. 4.14. Das folgende Tupel (x, Y) mit x = (1, 1, 1) T und Y = [[1, 0, 0, 1], [0, 1, 1, 0], [0, 0, 0, 0]]) stellt einen Standortplan dar. <?page no="130"?> 130 4 Kombinatorische Optimierung richtig falsch Aufgabe 4.25 (Standortproblem) Gegeben sei die Instanz aus Abb. 4.14. Das folgende Tupel (x, Y) mit x = (1, 1, 0) T und Y = [[1, 0, 0, 0], [0, 1, 1, 0], [0, 0, 0, 0]]) stellt einen Standortplan dar. richtig falsch Aufgabe 4.26 (Standortproblem) Für eine Instanz mit n = 4 Standorten und m = 5 Nachfragern können 15 verschiedene Auswahl-Vektoren berechnet werden. richtig falsch Aufgabe 4.27 (Standortproblem) Für eine Instanz mit n = 4 Standorten und m = 5 Nachfrager können 1024 verschiedene Zuordnungs-Matrizen berechnet werden. richtig falsch Aufgabe 4.28 (Standortproblem) Geben Sie den Lösungsraum L einer Instanz mit den Standorten S = {1, 2} und den Nachfragern N = {1, 2} durch Tupel (x, Y), x = (x i ), Y = (y i,k ), i ∈ S, k ∈ N. Aufgabe 4.29 (Losgrößenproblem) Gegeben seien die Instanz aus Abb. 4.15 sowie folgendes Tupel (X, Y, B, W): X = [[13, 0, 0], [13, 0, 0], [7, 6, 0], [26, 0, 0]], Y = [[1, 0, 0], [1, 0, 0], [1, 1, 0], [1, 0, 0]], B = [[5, 1, 7], [13, 0, 0], [7, 6, 0], [20, 6, 0]], W = [[8, 7, 0], [0, 0, 0], [0, 0, 0], [26, 0, 0]]. Das Tupel beschreibt einen Losgrößenplan. <?page no="131"?> 4.7 Aufgaben 131 richtig falsch Aufgabe 4.30 (Losgrößenproblem) Gegeben seien die Instanz aus Abb. 4.15 sowie folgendes Tupel (X, Y, B, W): X = [[6, 0, 7], [13, 0, 0], [6, 7, 0], [26, 0, 0]], Y = [[1, 0, 1], [1, 0, 0], [1, 1, 0], [1, 0, 1]], B = [[5, 1, 7], [6, 0, 7], [6, 0, 7], [19, 7, 0]], W = [[1, 0, 0], [7, 7, 0], [0, 7, 0], [7, 0, 0]]. Das Tupel beschreibt einen Losgrößenplan. richtig falsch Aufgabe 4.31 (Losgrößenproblem) Gegeben seien die Instanz aus Abb. 4.15 sowie folgendes Tupel (X, Y, B, W): X = [[5, 1, 7], [13, 0, 0], [5, 1, 7], [18, 8, 0]], Y = [[1, 1, 1], [1, 0, 0], [1, 1, 1], [1, 1, 0]], B = [[5, 1, 7], [5, 1, 7], [5, 1, 7], [18, 1, 7]], W = [[0, 0, 0], [8, 0, 0], [0, 0, 0], [0, 7, 0]]. Das Tupel beschreibt einen Losgrößenplan. richtig falsch Aufgabe 4.32 (Losgrößenproblem) Gegeben seien die Instanz aus Abb. 4.15 sowie die folgende Lösung (X, Y, B, W): X = [[5, 8, 0], [13, 0, 0], [5, 8, 0], [26, 0, 0]], Y = [[1, 1, 0], [1, 0, 0], [1, 1, 0], [1, 0, 0]], B = [[5, 1, 7], [5, 8, 0], [5, 8, 0], [18, 8, 0]], W = [[0, 7, 0], [8, 0, 0], [0, 0, 0], [8, 0, 0]]. Die Lösung ist zulässig und hat den Zielfunktionswert z = 174. richtig falsch <?page no="132"?> 132 4 Kombinatorische Optimierung Aufgabe 4.33 (Losgrößenproblem) Gegeben seien die Instanz aus Abb. 4.15 sowie die folgenden Losgrößen und Rüstentscheidungen: X = [[6, 0, 7], [6, 7, 0], [6, 0, 7], [19, 0, 7]], Y = [[1, 0, 1], [1, 1, 0], [1, 0, 1], [1, 0, 1]]. Berechnen Sie die Bedarfe B und die Lagerbestände W. entsprechend dem Optimierungsmodell. Die Lösung hat den Zielfunktionswert z = 208. Die Lösung hat den Zielfunktionswert z = 108. Die Lösung hat den Zielfunktionswert z = 308. <?page no="133"?> Teil II Künstliche Intelligenz <?page no="135"?> 5 Grundbegriffe der Künstlichen Intelligenz Schlagwörter und Prüfungstipps Was erwartet mich in diesem Kapitel? Es wird eine kurze Einführung in das Gebiet der Künstlichen Intelligenz gegeben. Wesentliche Begriffe, die für die thematische Einordnung der in den nachfolgenden Kapiteln behandelten Methoden wichtig sind, werden kurz definiert. Um einen umfassenden Überblick über Künstliche Intelligenz zu erhalten, sei auf die einführenden Standardwerke von Russell und Norvig (2012) sowie Weiss (1999) verwiesen. Welche Schlagwörter lerne ich kennen? Künstliche Intelligenz Turing Test Methoden der Künstlichen Intelligenz maschinelles Lernen intelligente Agenten Eigenschaften intelligenter Agenten (Autonomie, Rationalität und Flexibilität) Computational Intelligence Verteilte Künstliche Intelligenz Koordination Kooperation Kommunikation Wofür benötige ich dieses Wissen? Es wird ein Überblick der im Teil II des Buches beschriebenen Methoden der Künstlichen Intelligenz gegeben. Welche Prüfungstipps kann ich aus diesem Kapitel ziehen? In Prüfungen wird häufig gefordert, Agenten zu klassifizieren, Anwendungsmöglichkeiten sowie Vor- und Nachteile von intelligenten Agenten zu beschreiben. Künstliche Intelligenz Künstliche Intelligenz (KI) ist ein Teilgebiet der Informatik. Der Begriff (engl. artificial intelligence) wurde erstmalig von McCarthy et al. (1955) eingeführt. Um den Begriff „Intelligenz“ in Zusammenhang mit Computern zu definieren, wurde von Alan Turing der sogenannte Turing-Test vorgeschlagen (Turing, 1950). Der Turing-Test besagt grob, dass ein System dann als intelligent bezeichnet werden kann, wenn ein Mensch mit diesem System (indirekt über schriftliche Fragen und Antworten) kommuniziert und dabei nicht herausfinden kann, ob es sich um einen Menschen oder eine Maschine handelt (vgl. Russell und Norvig, 2012). <?page no="136"?> 136 5 Grundbegriffe der Künstlichen Intelligenz „Künstliche Intelligenz beschäftigt sich mit der Studie und Entwicklung von intelligenten Agenten“ (Poole, 1998). In Anlehnung an Russell und Norvig (2012) werden folgende Methoden der Künstlichen Intelligenz unterschieden: Problemlösen: Agenten können komplexe Probleme durch Heuristiken und intelligente Suchstrategien (z.B. Evolutionäre Algorithmen, A*-Verfahren, Ameisenalgorithmen) lösen. Anwendungsbeispiele sind komplexe Optimierungsprobleme, Suchen von Wegen in Netzen oder Spiele. Lernen: Agenten können lernen und damit ihr Verhalten und ihre Handlungen anpassen. Es wird grob zwischen überwachtem Lernen, nicht überwachtem Lernen und Lernen durch Verstärkung unterschieden (vgl. Russell und Norvig, 2012). Häufig erfordert maschinelles Lernen die Lösung komplexer mathematischer Optimierungsprobleme. Wissen, Schließen und Planen: Aufbauend auf dem Lernen können Agenten sich Wissen aneignen (z.B. Wissen über ihre Umgebung), Schlussfolgerungen ziehen und planen. Darüber hinaus können Agenten auch mit unsicherem Wissen umgehen und durch Kooperation auch komplexe Entscheidungen im Verbund treffen (vgl. Multiagenten-Planung, Mechanismus-Design). Kommunizieren, Wahrnehmen und Handeln: Agenten können mit Menschen sprechen - dem sogenannten „Sprachverstehen“ (vgl. Erk et al., 2010) - oder mit anderen Agenten kommunizieren, ihre Umgebung wahrnehmen (z.B. autonome Fahrzeuge erkennen Fußgänger) oder andere Agenten beobachten sowie in der Umgebung handeln, d.h. diese physisch verändern (z.B. Roboter fertigen ein Fahrzeug) oder sich in der Umgebung bewegen (physische Agenten). Ein Verbund aus reaktiven Agenten kann sich als intelligenter Schwarm verhalten. In diesem Buch werden einige ausgewählte Beispiele für verschiedene Methoden behandelt (vgl. Abb. 5.1). Hierbei werden insbesondere Methoden ausgewählt, die den Teilgebieten Computational Intelligence und Verteilte Künstliche Intelligenz zuzuordnen sind. Computational Intelligence ist ein Teilgebiet der Künstlichen Intelligenz. Dieses umfasst drei Klassen an Methoden, deren Vorgehensweisen sich an der Biologie orientieren (vgl. Kruse et al., 2015): Evolutionäre Algorithmen Künstliche Neuronale Netze Algorithmen der Fuzzy-Logik <?page no="137"?> 5.2 Künstliche Intelligenz 137 Abb. 5.1: Methoden der Künstlichen Intelligenz (in Anlehnung an Russell und Norvig, 2012) Im Rahmen des Buches werden exemplarisch die Evolutionären Algorithmen behandelt. Hierunter werden u.a. die Genetischen Algorithmen und die Evolutionsstrategien verstanden. Genetische Algorithmen werden in diesem Buch für nicht überwachtes Lernen bzw. die Berechnung von Clustern sowie zur Lösung kombinatorischen Optimierungsprobleme angewendet. Evolutionsstrategien werden in diesem Buch zur Optimierung von Support-Vektor-Maschinen entwickelt. Dabei wird insbesondere auf die Selbstadaptation von Verfahrensparametern eingegangen. Das Teilgebiet Verteilte Künstliche Intelligenz wurde u.a. von Minsky (1988) definiert. Hierbei wird eine soziale Gemeinschaft von intelligenten Agenten angenommen. Verteilte Künstliche Intelligenz ist ein Teilgebiet der Künstlichen Intelligenz. Dieses umfasst Algorithmen und Mechanismen, welche die Koordination und Kooperation von autonomen Agenten unterstützt. Als Beispiele seien genannt: Schwarmintelligenz Ameisenalgorithmen Multiagenten-Planen <?page no="138"?> 138 5 Grundbegriffe der Künstlichen Intelligenz Intelligente Agenten Intelligenter Agent (Wooldridge, 2002): „Ein intelligenter Agent ist ein Computersystem, das in einer Umgebung eingebettet ist und in dieser autonom Aktionen ausführt, um eigene Ziele zu erreichen“. Ein besonders wichtiges Merkmal eines Agenten ist die Autonomie, d.h. ein Agent kann ohne Einwirkung eines Menschen oder eines anderen Computersystems selbständig handeln und entscheiden (vgl. Wooldridge und Jennings, 1995). Wooldridge und Jennings bezeichnen Agenten dann als intelligent, wenn diese flexibel und rational handeln. Rationalität bedeutet, dass ein Agent seine Aktionen derart auswählt, dass seine Ziele erreicht werden (vgl. Russell und Norvig, 2012). Flexibilität wird durch folgende Eigenschaften definiert (vgl. Wooldridge und Jennings, 1995): Reaktiv: „Ein Agent nimmt seine Umgebung war und reagiert zeitnah und zielorientiert auf Änderungen“ (Wooldridge und Jennings, 1995). Proaktiv: „Ein Agent übernimmt die Initiative und führt zielorientiert Aktionen in der Umgebung aus“ (Wooldridge und Jennings, 1995). Sozial: „Ein Agent interagiert (kommuniziert und kooperiert) mit anderen Agenten, um Ziele zu erreichen“ (Wooldridge und Jennings, 1995). Unter der Umgebung eines Agenten verstehen Wooldridge und Jennings (1995): Physikalische Welt Menschlicher Benutzer über Benutzer-Interface Andere Agenten Internet Um Änderungen in der Umgebung wahrzunehmen und dort Aktionen vorzunehmen oder mit anderen Agenten zu kommunizieren, verfügen Agenten über Aktoren und Sensoren (vgl. Russell und Norvig, 2012). Multiagentensysteme Ein Multiagentensystem (Weiss, 1999) ist ein „System, das aus mehreren intelligenten Agenten besteht, die miteinander und mit ihrer Umgebung interagieren.“ Unter Interaktion versteht man im Allgemeinen das „wechselseitige aufeinander Einwirken“ bzw. Auslösen von Aktionen (vgl. Abels, 2018). Zum einen können <?page no="139"?> 5.4 Multiagentensysteme 139 Agenten untereinander interagieren. So können z.B. Aktionen von Agenten die Aktionen anderer Agenten auslösen. Zum anderen können Agenten mit ihrer Umgebung interagieren. So können z.B. Agenten durch Aktionen ihre Umgebung verändern oder Veränderungen in der Umgebung können Aktionen der Agenten auslösen. Die Interaktion zwischen den Agenten wird als Koordination bezeichnet. Koordination ist eine „zweckgerichtete Form der Abstimmung“ von Aktionen (Scherer, 2006). Je nach Zweck der Koordination werden in Anlehnung an Huhns und Stephens (1999) Kooperation und Konkurrenz als Formen der Koordination unterschieden. Einen detaillierten Überblick über den Zusammenhang der beiden Koordinationsformen findet sich in Weise (1997). Die Agenten in einem Multiagentensystem können individuelle, konkurrierende Ziele verfolgen (Rosenschein und Zlotkin, 1994). Neben den reinen Formen gibt es auch Mischformen, in denen sowohl kooperative als auch konkurrierende Elemente enthalten sind (vgl. Weise, 1997). Als bedeutsame Mischform wird nachfolgend die sogenannte Kollaboration eingeführt. Der hier verwendete Begriff Kollaboration stellt im Sinne der Klassifikation von Weise (1997) eine „egoistische Form der Kooperation“ (eine Art Tausch) dar, bei der die Agenten „versuchen, sich wechselseitig einen Vorteil zu schaffen“. Drei Koordinationsformen werden nachfolgend unterschieden: Kooperation: „Die Agenten verfolgen ein gemeinsames Ziel. Sie koordinieren ihre Aktionen, um dieses Ziel zu erreichen“ (Weise, 1997). Konkurrenz: Die Agenten verfolgen individuelle, konkurrierende Ziele. „Sie variieren ihre Aktionen, um gegenüber anderen Agenten einen höheren Zielerreichungsgrad zu realisieren“ (Weise, 1997). Kollaboration: Die Agenten arbeiten zusammen, um „gemeinsam eine Funktionalität zu erreichen“ oder ein Problem zu lösen (vgl. auch Görtz et al., 2013). Dabei verfolgen sie jedoch individuelle, konkurrierende Ziele. Durch Koordination werden die Aktionen der Agenten derart aufeinander abgestimmt, dass „mögliche (aber gefährdete) Kooperationsgewinne ausgeschöpft und fair verteilt werden“ (vgl. Fink, 2007). <?page no="140"?> 140 5 Grundbegriffe der Künstlichen Intelligenz Beispiel 5.1 Beispiele für Kollaboration finden sich z.B. bei der Zusammenarbeit von selbstständigen Firmen (Lieferant und Abnehmern) in einer Lieferkette, die gemeinsam ein Produkt herstellen (vgl. z.B. Stadtler, 2009). Aber auch in Fällen der sogenannten Koopetition (Synonyme: Kooperationswettbewerb, Coopetition, Koopkurrenz), in denen konkurrierende Firmen ein gemeinsames Produkt entwickeln. Interaktion zwischen Agenten kann direkt oder indirekt erfolgen. Bei einer direkten Interaktion erfolgt eine Kommunikation der Agenten. Eine indirekte Interaktion der Agenten kann durch Veränderung der Umgebung („Stigmergie“) oder Beobachtung des Verhaltens anderer Agenten erfolgen (vgl. Kasinger et al., 2009). Die verschiedenen Formen der Interaktion sind in Abb. 5.2 zusammenfassend dargestellt. Abb. 5.2: Interaktion in Multiagentensystemen Die Interaktion wird über eine Interaktions-Infrastruktur abgewickelt. Diese enthält einerseits Technologien zur Kommunikation und andererseits eine Implementierung von Koordinationsmechanismen. In diesem Buch wird nicht auf technische Komponenten der Interaktions-Infrastruktur eingegangen. Im Fokus stehen verschiedene, innovative Koordinationsmechanismen. Besondere Eigenschaften von Multiagentensystemen (in Anlehnung an Jennings et al., 2001): Private Informationen: Die Agenten verfügen über private Daten und ggf. auch private Ziele (asynchrone Informationsverteilung). Private Informationen sind anderen Agenten nicht zugänglich. Dezentrale Koordination: Es gibt keine zentrale Steuereinheit oder eine den Agenten übergeordnete Koordinationsinstanz. <?page no="141"?> Schlagwörter und Prüfungstipps 141 6 Genetische Algorithmen Schlagwörter und Prüfungstipps Was erwartet mich in diesem Kapitel? Es werden die Konzepte von Genetischen Algorithmen beschrieben und aufgezeigt, wie diese für verschiedene komplexe Optimierungsprobleme (Standortproblem und Losgrößenproblem) und Lernprobleme (Clustering) anzupassen sind. Welche Schlagwörter lerne ich kennen? Individuum Kodierung Bitstring Dekodierung Fitness Population Eltern Kinder Selektion proportionale Selektion Wettkampf-Selektion Ersetzung generationsweise Ersetzung inkrementelle Ersetzung wettkampf-basierte Ersetzung Crossover Ein-Punkt- Crossover Mutation Flip-Mutation Clustering Swap-Mutation Bit-Matrizen Wofür benötige ich dieses Wissen? Zur Entwicklung, Auswahl und Anpassung von Genetischen Algorithmen. Mit Genetischen Algorithmen können viele der im Lehrbuch dargestellten Probleme gelöst werden. Welche Prüfungstipps kann ich aus diesem Kapitel ziehen? In Prüfungen wird häufig gefordert, Genetische Algorithmen zur Lösung kombinatorischer Probleme anzupassen, und die Verfahrensoperatoren (Crossover, Mutation, Selektion) an Beispielen anzuwenden. COMPUTER-PROGRAMME ZUM BUCH Ein Genetischer Algorithmus zur Lösung des Standortproblems wird als Java- Programm bereitgestellt. Grundlegende Ideen 6.2.1 Vorbild Evolutionstheorie Nach der Evolutionstheorie von Charles Darwin (1859) passen sich Lebewesen über Generationen hinweg an ihre Umwelt an. Dies geschieht über Variation und Selektion. <?page no="142"?> 142 6 Genetische Algorithmen Variation: Im Rahmen der Fortpflanzung von Lebewesen findet eine Variation der Erbanlagen (Gene) statt. Die Gene kodieren hierbei die äußeren Merkmale der Lebewesen. Die Variation erfolgt durch Kreuzen (Crossover) und Mutieren (Mutation). Selektion: Die Anpassungsgüte der Lebewesen an Umweltbedingungen wird als Fitness bezeichnet. Lebewesen mit höherer Fitness haben eine höhere Wahrscheinlichkeit zu überleben und sich somit fortzupflanzen („survival of the fittest“, Herbert Spencer). Die äußeren Merkmale der Lebewesen werden auch als Phänotyp, die Erbanlagen als Genotyp bezeichnet. 6.2.2 Konzepte Genetische Algorithmen gehören zur Klasse der Evolutionären Algorithmen. Es handelt sich um stochastische (zufallsbasierte) Methoden, die nach dem „Vorbild der biologischen Evolution“ (Rechenberg, 1973) ablaufen. Sie wurden von John Holland (1992) erfunden und seitdem fortlaufend weiterentwickelt (u.a. Goldberg, 1998, siehe auch Konferenzband der GECCO, Aguirre, 2018). Genetische Algorithmen werden erfolgreich zur Bearbeitung von Lern- und Optimierungsproblemen angewendet. Ihnen liegen folgende Konzepte zugrunde, die in nachfolgenden Abschnitten dargestellt werden. Konzepte von Genetischen Algorithmen: Individuen, welche Problemlösungen kodieren Populationsbasierter Ablauf Variation von Individuen durch Crossover und Mutation Fitnessbasierte Selektion und Ersetzung von Individuen 6.2.3 Anpassung Um ein Problem mit einem Genetischen Algorithmus zu lösen, sind die Konzepte zu konkretisieren und anzupassen. Hierbei werden drei Arten der Anpassung unterschieden: Problembezogene Anpassungen: Festlegung von Individuen, Fitness, Crossover und Mutation. Ablaufbezogene Anpassungen: Festlegung des Ablaufs sowie von Selektion und Ersetzung. In der Literatur existieren viele alternative Abläufe sowie Selektions- und Ersetzungsoperatoren, die unabhängig vom Problem ausgewählt und angewendet werden können. Kalibrierung: Festlegung der Verfahrensparameter des Genetischen Algorithmus (insb. Populationsgröße und Anzahl an durchzuführenden Iterationen). <?page no="143"?> 6.3 Individuen 143 Individuen 6.3.1 Kodierung Individuen sind Variablen des Genetischen Algorithmus, welche kodierte Problemlösungen aufnehmen. Jedes Individuum repräsentiert damit eine Lösung des Problems. Individuen werden nachfolgend mit Großbuchstaben bezeichnet. In der Literatur wird eine Vielzahl an Kodierungsmöglichkeiten beschrieben. Nachfolgend wird eine binäre Kodierung mittels Bitstrings (auch als Bitvektoren, Bitketten, Bitarrays bezeichnet) gewählt (vgl. u.a. Holland, 1992). In diesem Fall nimmt jedes Individuum einen Bitstring auf. Etwas vereinfacht ausgedrückt: „Jedes Individuum ist ein Bitstring“. Bitstring: Eine endliche Folge von n Nullen und Einsen. Folgende Notationen werden verwendet: Alternative Notation: Individuum I = [0, 1, 0, …, 1] I[i] ∈ {0, 1}, i = 1, …, n, bezeichnet das i-te Bit von Individuum I. Individuen können prinzipiell auch gleich sein („Zwillinge“), d.h. identische Bitstrings enthalten. Beispiel 6.1 Gegeben seien drei Individuen A = [1, 1, 1], B = [0, 1, 1] und C = [0, 1, 1]. Die Individuen B und C sind gleich. Bitstrings bzw. Individuen können in mehrere Bereiche eingeteilt werden. Ein Bereich umfasst dann mehrere Bits, die zusammen eine Teillösung repräsentieren. Die zusammengehörenden Bereiche werden auch als Gene bezeichnet (vgl. Nissen, 1994). Mit der Entwicklung einer Kodierung durch Bitstrings wird folgende Frage beantwortet: „Wie können Lösungen eines Problems durch Bitstrings kodiert werden? “ <?page no="144"?> 144 6 Genetische Algorithmen Die Kodierung von Problemlösungen durch Bitstrings erfordert die Festlegung der folgenden Angaben: Länge der Bitstrings bzw. Individuen (Anzahl n der Bits) Aufbau der Bitstrings bzw. Individuen (Einteilung in Bereiche) Wertebereich für Bitstrings bzw. Individuen Der Wertebereich für Bitstrings bzw. Individuen wird als Suchraum G des Genetischen Algorithmus bezeichnet. Tipp Bitstrings können im Rahmen der Programmierung z.B. auch durch Arrays realisiert werden. 6.3.2 Dekodierung Dekodierung: Eine Funktion d: G → L, die jedem Bitstring des Suchraumes G eine Lösung aus dem Lösungsraum L einer Probleminstanz zuordnet. Mit der Dekodierung wird folgende Frage beantwortet: „Wie wird aus einem Bitstring eine zulässige Problemlösung berechnet? “ Beispiel 6.2 Der Zusammenhang zwischen Kodierung, Suchraum, Dekodierung und Lösungsraum ist in Abb. 6.1 an einem abstrakten Beispiel dargestellt. Die Dekodierung in Abb. 6.1 ist surjektiv und injektiv. Häufig werden aber auch andere Arten von Dekodierungen verwendet: Dekodierung als nicht surjektive Funktion: Nicht alle Problemlösungen werden repräsentiert (Eingrenzung des Lösungsraums). Dekodierung als nicht injektive Funktion: Problemlösungen werden durch mehrere Bitstrings repräsentiert (Redundanz). <?page no="145"?> 6.3 Individuen 145 Abb. 6.1: Kodierung, Suchraum, Dekodierung und Lösungsraum Kodierung und Dekodierung haben somit einen erheblichen Einfluss auf die Lösungen, die mit einem Genetischen Algorithmus überhaupt berechnet werden können. So ist z.B. offensichtlich, dass eine optimale Lösung nur dann durch einen Genetischen Algorithmus berechnet werden kann, wenn diese auch durch einen Bitstring kodiert bzw. durch Dekodierung berechnet werden kann. Kodierung und Dekodierung beschreiben quasi die „Sichtweise des Genetischen Algorithmus auf das Problem“ (Nissen, 1994). Häufig können für ein Problem viele alternative Kodierungen definiert werden. Die Dekodierung ist durch eine entsprechende Dekodierungsmethode im Genetischen Algorithmus zu realisieren. Diese erhält ein zu dekodierendes Individuum und berechnet für dieses die repräsentierte Problemlösung. Tipp Im Rahmen der Dekodierung werden oft problemspezifische Heuristiken angewendet. 6.3.3 Anwendung Standortproblem Ein Genetischer Algorithmus zur Lösung des Standortproblems findet sich u.a. in Homberger und Gehring (2008). 6.3.3.1 Kodierung Jedes Individuum I nimmt einen Bitstring auf, der einen zulässigen Standortplan (x, Y) kodiert. <?page no="146"?> 146 6 Genetische Algorithmen Jedes Individuum I enthält pro Standort i ∈ S = {1, …, n} ein Bit. Das Bit I[i] gibt an, ob der Standort i im Rahmen der Dekodierung von Individuum I ausgewählt werden darf (I[i] = 1) oder nicht (I[i] = 0). Mindestens ein Bit muss den Wert 1 haben, damit ein Standort im Rahmen der Dekodierung gewählt und somit eine zulässige Lösung bzw. ein zulässiger Standortplan berechnet werden kann. Der Suchraum G besteht aus 2 n - 1 verschiedenen Bitstrings. 6.3.3.2 Dekodierung Die Dekodierung berechnet aus einem Individuum einen zulässigen Standortplan (vgl. Abb. 6.2). Hierzu wird jedem Nachfrager k ∈ N = {1, …, m} ein Standort i ∈ S* = {i ∈ S | I[i] = 1} zugeordnet, der in I ausgewählt ist . Die Zuordnung erfolgt unter Berücksichtigung der Transportkosten mittels einer Heuristik. Die im Rahmen der Heuristik zugeordneten Standorte werden dann im Standortplan ausgewählt. Heuristik: Dem Nachfrager k ∈ N wird derjenige Standort i ∈ S* zugeordnet, von dem aus die Belieferung von k die niedrigsten Transportkosten verursacht. Input: Individuum I der Länge n / / n ist Anzahl Standorte, m ist Anzahl Nachfrager / / b ist Fixkostenvektor, C ist Transportkostenmatrix [1] Auswahl x = (x i ) T ← 0 n [2] Zuordnung Y = (y i,k ) ← 0 n,m [3] for Nachfrager k ← 1, …, m do / / Spalte in C [4] Minimale Transportkosten min ← ∝ [5] Gewählter Standort j ← 0 [6] for Standort i ← 1, …, n do / / Zeile in C [7] if I[i] = 1 und c i,k < min then [8] min ← c i,k [9] j ← i [10] end if [11] end for [12] y j,k ← 1 <?page no="147"?> 6.3 Individuen 147 [13] x j ← 1 [14] end for Output: Standortplan (x, Y) Abb. 6.2: Dekodierung für Standortproblem Beispiel 6.3 In Abb. 6.3 ist die Dekodierung mit integrierter Heuristik am Beispiel dargestellt. Abb. 6.3: Dekodierung für Standortproblem Die Dekodierung hat folgende Eigenschaften: Die Dekodierung ist redundant (nicht injektiv): Es gibt Standortpläne, die durch verschiedene Bitstrings repräsentiert werden. Im Beispiel aus Abb. 6.3 werden durch die Individuen A = [1, 1, 1] und B = [1, 0, 1] derselbe Standortplan repräsentiert. Der zweite Standort verursacht für jeden Kunden höhere Transportkosten als einer der beiden anderen Standorte. Daher wird der zweite Standort in der Dekodierung von Individuum A nicht ausgewählt. <?page no="148"?> 148 6 Genetische Algorithmen Die Dekodierung ist nicht surjektiv: Es gibt Standortpläne, die nicht durch Bitstrings und somit Individuen repräsentiert werden. Beispielsweise existieren für die Auswahl der Standorte 1 und 3 alternative Zuordnungen und somit Standortpläne. In der Dekodierung wird jedoch lediglich eine dieser Zuordnungen berechnet. 6.3.4 Anwendung quadratisches Optimierungsproblem Mit dem Ziel, verschiedene Facetten von Kodierung und Dekodierung aufzuzeigen, sei folgendes quadratisches Optimierungsproblem betrachtet. Quadratisches Optimierungsproblem Zielfunktion 𝑧𝑧 = 𝑥𝑥 12 + 𝑥𝑥 22 → 𝑚𝑚𝑚𝑚𝑛𝑛 Nebenbedingungen 𝑥𝑥 1 , 𝑥𝑥 2 ∈ [-1, +1] Tipps für Dozenten Die Umwandlung von positiven Dualzahlen in positive Dezimalzahlen an einem Beispiel kurz wiederholen. 6.3.4.1 Kodierung Jedes Individuum I nimmt einen Bitstring auf, der ein zulässiges Tupel (x 1 , x 2 ) kodiert. Zunächst ist zu überlegen, wie Problemlösungen - hier Tupel (x 1 , x 2 ) aus rationalen Zahlen - durch Bitstrings kodiert werden können. Die Idee besteht darin, rationale Zahlen als Dualzahlen darzustellen. Hierzu ist jedes Individuum in zwei gleichgroße Gene mit m bzw. (n - m) Bits eingeteilt. Die beiden Bereiche werden als positive Dualzahlen d 1 und d 2 interpretiert: ( ) 2 1 ] [ ... ] 1 [ m I I d = , ( ) 2 2 ] [ ... ] 1 [ n I m I d + = Alle Folgen von Bitwerten sind zulässig. Der Suchraum G besteht somit aus 2 n Bitstrings. <?page no="149"?> 6.3 Individuen 149 6.3.4.2 Dekodierung Im Rahmen der Dekodierung werden die beiden, in einem Individuum enthaltenen Dualzahlen d 1 und d 2 jeweils in rationale Zahlen x 1 und x 2 aus dem Intervall [- 1, 1] umgewandelt. Hierzu werden drei Schritte durchgeführt: Schritt [1]: Umwandlung der Dualzahlen d 1 und d 2 in positive ganze Dezimalzahlen g 1 und g 2 aus den Intervallen [0, 2 m - 1] bzw. [0, 2 (n-m) - 1] (vgl. auch Stellenwertsystem, b-adische Zahlendarstellung (b>1)). Bei der Umwandlung ist darauf zu achten, dass die höchstwertige Stelle einer Dualzahl ganz links angeordnet ist. ) ( 1 1 2 ] [ i m m i i I g − = ⋅ = ∑ , ) ( 1 2 2 ] [ i n n m i i I g − + = ⋅ = ∑ Schritt [2]: Umwandlung der positiven ganzen Zahlen g 1 und g 2 in rationale Zahlen y 1 und y 2 aus dem Intervall [0, 1]. Dabei wird ein einfacher Trick angewendet, indem die positiven ganzen Zahlen jeweils durch die größte ganze Zahl geteilt werden, die mit m bzw. (m - n) Bits darstellbar ist. 1 2 1 1 − = m g y , 1 2 ) ( 2 2 − = −m n g y Schritt [3]: Umwandlung der rationalen Zahlen y 1 und y 2 in rationale Zahlen x 1 und x 2 aus dem Intervall [-1, 1]. Dabei werden die Zahlen y 1 und y 2 zunächst über das Intervalls [0, 2] „gestreckt“ und anschließend auf dem Zahlenstrahl um 1 „verschoben“. 1 2 1 1 − = y x , 1 2 2 2 − = y x Es ist offensichtlich, dass durch die Kodierung nicht alle Lösungen des Lösungsraumes repräsentiert werden können. Die Dekodierung ist nicht-surjektiv. Beispiel 6.4 In Abb. 6.4 ist exemplarisch ein Individuum I = [1, 0, 1, 0, 0, 0, 1, 1] dargestellt. Im Beispiel wird eine Länge von n = 8 Bits angenommen. Das Individuum ist in zwei Gene eingeteilt, die jeweils als 4-stellige (m = 4) Dualzahlen d 1 = (1010) 2 und d 2 = (0011) 2 interpretiert werden. Die maximale Dualzahl, die mit 4 Stellen dargestellt werden kann, ist bekanntlich (1111) 2 = (15) 10 = 2 4 - 1. Mit m = 8 Bits können (lediglich) 256 verschiedene Bitstrings und somit Lösungen kodiert werden. In Abb. 6.4 ist auch die Dekodierung des Individuums verdeutlicht. Durch Dekodierung wird die Lösung (x 1 , x 2 ) = (1/ 3, -1/ 3) berechnet. <?page no="150"?> 150 6 Genetische Algorithmen Abb. 6.4: Dekodierung für quadratisches Optimierungsproblem Populationsbasierter Ablauf 6.4.1 Population Unter einer Population wird eine Menge von Individuen verstanden. Bezeichnung: POP = {I 1 , …, I μ } Populationsgröße μ Die Populationsgröße ist üblicherweise konstant und vor dem Start des Genetischen Algorithmus vorzugeben. Diese ist in der Regel im Vergleich zu der Größe |G| des Suchraumes G sehr klein (μ << |G|). Häufig wird für die Populationsgröße ein Wert aus dem Intervall μ ∈ [20, 200] empfohlen. Beispiel 6.5 Der Suchraum G einer Probleminstanz des Standortproblems mit n = 30 Standorten besteht aus |G| = 2 30 - 1 = 1.073.741.823 Bitstrings. <?page no="151"?> 6.4 Populationsbasierter Ablauf 151 In den nachfolgenden Beispielen wird aus Übersichtsgründen eine kleine Populationsgröße gewählt (z.B. μ = 4). Für die bislang verwendete Probleminstanz mit n = 3 Standorten ist der Suchraum allerdings ebenfalls sehr klein (|G| = 2 3 - 1 = 7). Somit ist das Verhältnis der Größen der Population (μ = 4) und des Suchraumes (|G| = 7) nicht repräsentativ! 6.4.2 Iteration 6.4.2.1 Populationsbasierte Suche Die Population wird iterativ aktualisiert. Hierzu werden in jeder Iteration (einige oder alle) Individuen der Population durch neu berechnete Individuen ersetzt. Die Population zur Iteration i wird auch als aktuelle Population bezeichnet. Die Population zur Iteration i + 1 heißt nachfolgende Population. Durch iterative Aktualisierung der Population erfolgt eine Durchsuchung des Suchraumes. Da jedes Individuum eine Lösung repräsentiert, wird somit indirekt ein Teil des Lösungsraumes durchsucht (vgl. Abb. 6.5). Abb. 6.5: Durchsuchung des Lösungsraums Individuen und deren Bezeichnungen: Eltern: Individuen, die in einer Iteration aus der Population für eine Reproduktion ausgewählt werden. Kinder: Individuen, die in einer Iteration aus den Eltern durch Reproduktion erzeugt werden. <?page no="152"?> 152 6 Genetische Algorithmen Innerhalb einer Iteration erfolgt die Aktualisierung der Population in drei Schritten: Selektion: Es werden Individuen aus der Population zur Reproduktion als Eltern ausgewählt. Fortpflanzung: Aus je zwei selektierten Eltern werden zwei Kinder nach dem Vorbild einer zwei-geschlechtlichen Fortpflanzung berechnet. Diese umfasst die Operatoren Reproduktion, Crossover und Mutation. Ersetzung: Individuen der aktuellen Population werden durch Kinder ersetzt. Entsprechend findet eine Auswahl statt. Diese betrifft die zu ersetzenden Individuen und die ersetzenden Kinder (wer wird durch wen ersetzt? ). Für den Ablauf einer Iteration existieren verschiedene Modelle in der Literatur. Traditionell wird zwischen generationsweiser Ersetzung und inkrementeller Ersetzung unterschieden. Darüber hinaus existieren auch Mischformen, wie z.B. die wettkampf-basierte Ersetzung. Nachfolgend werden drei Modelle gegenübergestellt. Diese unterscheiden sich hinsichtlich der folgenden Kriterien: Anzahl i der zu erzeugenden Individuen Anzahl j der zu ersetzenden Individuen Selektionsmethode (vgl. Abschnitt 6.5) Ersetzungsmethode (vgl. Abschnitt 6.5) Elitär vs. nicht-elitär (vgl. Abschnitt 6.5) Für Selektion und Ersetzung existieren viele Methoden. Diese können unabhängig von Problem und der gewählten Kodierung angewendet werden. Zusammen steuern diese die Konvergenzgeschwindigkeit des Genetischen Algorithmus (nach wieviel Iterationen konvergiert das Verfahren? ). Steuerung durch Selektion: Individuen der Population, die eine bessere Fitness haben als andere Individuen, erhalten eine höhere Wahrscheinlichkeit, zur Fortpflanzung ausgewählt zu werden. Steuerung durch Ersetzung: Individuen, die eine bessere Fitness haben als andere Individuen, erhalten eine höhere Wahrscheinlichkeit, für die Population der nachfolgenden Iteration ausgewählt zu werden. In beiden Fällen wird die Suche in erfolgversprechende Regionen des Suchraumes intensiviert. Auf diese Weise erhofft man sich, im Laufe der Suche bessere Individuen und damit auch Lösungen finden zu können. 6.4.2.2 Generationsweise Ersetzung In Abb. 6.6 wird eine Iteration eines Genetischen Algorithmus mit generationsweiser Ersetzung schematisch dargestellt (vgl. Holland, 1992). <?page no="153"?> 6.4 Populationsbasierter Ablauf 153 Abb. 6.6: Generationsweise Ersetzung Es werden folgende Bezeichnungen eingeführt: Population (Menge von Individuen) POP Erzeugte Kinder (Menge von Individuen) KIN Der Ablauf hat folgende Charakteristik: Selektion mit Fitness: Die Selektion erfolgt zufallsbasiert anhand der Fitness der Individuen (z.B. mit proportionaler Selektion oder Wettkampf-Selektion). Hierzu ist es erforderlich, zu Beginn jeder Iteration die Fitness der Individuen in der Population POP zu berechnen. Fortpflanzung: Die pro Iteration berechnete Anzahl |KIN| von Kindern entspricht der Populationsgröße |POP|, d.h. i = |POP|. Ersetzung ohne Fitness: Alle Individuen der Population werden durch die Kinder ersetzt, d.h. j = |POP|. Die Ersetzung erfolgt somit deterministisch ohne Berücksichtigung der Fitness der Individuen. 6.4.2.3 Inkrementelle Ersetzung In Abb. 6.7 wird eine Iteration eines Genetischen Algorithmus mit inkrementeller Ersetzung schematisch dargestellt (vgl. Syswerda, 1991). Der Ablauf hat folgende Charakteristik: Selektion mit Fitness: Die Selektion erfolgt zufallsbasiert anhand der Fitness der Individuen (z.B. mit proportionaler Selektion oder Wettkampf-Selektion). Hierzu ist es erforderlich, zu Beginn jeder Iteration die Fitness der Individuen in der Population POP zu berechnen. Fortpflanzung: Pro Iteration werden lediglich genau |KIN| = 2 Kinder berechnet, d.h. i = 2. <?page no="154"?> 154 6 Genetische Algorithmen Abb. 6.7: Inkrementelle Ersetzung Ersetzung mit Fitness: Die Eltern können durch die Kinder ersetzt werden, sofern die Kinder eine bessere Fitness als die Eltern aufweisen (vgl. Abschnitt 6.5). Es können somit 0 ≤ j ≤ 2 Individuen pro Iteration ersetzt werden. 6.4.2.4 Wettkampf-basierte Ersetzung In Abb. 6.8 wird eine Iteration eines Genetischen Algorithmus mit wettkampfbasierter Ersetzung schematisch dargestellt (vgl. Hartmann, 1998). Abb. 6.8: Wettkampf-basierte Ersetzung Der Ablauf hat folgende Charakteristik: Selektion ohne Fitness: Die Selektion erfolgt zufallsbasiert ohne Fitness. Jedes Individuum wird genau einmal zur Reproduktion ausgewählt. <?page no="155"?> 6.4 Populationsbasierter Ablauf 155 Fortpflanzung: Pro Iteration werden genau |KIN| = |POP| Kinder berechnet, d.h. i = |POP|. Ersetzung mit Fitness: Aus der Population und den Kindern werden über einen Wettkampf zufallsbasiert |POP| Individuen ausgewählt, welche die Population ersetzen (vgl. Abschnitt 6.5). Es können somit 0 ≤ j ≤ |POP| Individuen pro Iteration ersetzt werden. 6.4.3 Verfahrensablauf mit generationsweiser Ersetzung Um den Gesamtablauf eines Genetischen Algorithmus mit generationsweiser Ersetzung genauer und formal zu beschreiben, werden folgende Bezeichnungen verwendet. Verfahrensparameter Populationsgröße μ ∈ ℕ Kinderanzahl pro Iteration λ ∈ ℕ Iterationsanzahl maxit ∈ ℕ Verfahrensvariablen Vorgehaltene Population (Menge von Individuen) POP Erzeugte Kinder (Menge von Individuen) KIN Aktuelle Iteration i In Abb. 6.9 ist der Gesamtablauf eines Genetischen Algorithmus nach der generationsweisen Ersetzung dargestellt. Zu Beginn des Algorithmus wird eine erste Population berechnet. Diese wird auch als Startpopulation bezeichnet. Die Berechnung der einzelnen Individuen der Startpopulation erfolgt zufallsbasiert. Hierzu ist ein RandomInit- Operator zu entwickeln (vgl. Abschnitt 6.6). Die Schritte [3] bis [5] werden µ-mal durchgeführt. In jedem Schleifendurchlauf wird genau ein neues Individuum I erzeugt und dieses der Population durch POP ∪ {I} hinzugefügt. Durch wiederholte Ausführung werden auf diese Weise sukzessive die Individuen I 1 , …, I µ erzeugt und in die Population eingetragen. Durch die Schritte [7] bis [23] werden maxit Iterationen durchgeführt. D.h. die Schritte [8] bis [22] werden wiederholend ausgeführt. Durch Selektion wird ein (bereits bestehendes) Individuum aus POP als Elternteil ausgewählt. Besteht beispielsweise die Population aus POP = {I 1 , I 2 }, <?page no="156"?> 156 6 Genetische Algorithmen dann wird durch Selektion entweder I 1 oder I 2 als Elternteil M bzw. V ausgewählt. Die Selektion muss bei der generationsweisen Ersetzung unter Berücksichtigung der Fitness der Individuen erfolgen. Beispielsweise kann die proportionale Selektion oder die Wettkampf-Selektion aus Abschnitt 6.5 angewendet werden. Je nach Implementierung kann darauf geachtet werden, dass pro Fortpflanzung zwei verschiedene Individuen als Eltern ausgewählt werden, so dass M ≠ V gilt. Die pro Iteration durchzuführende zwei-geschlechtliche Fortpflanzung ist grau markiert. Durch Reproduktion wird ein neues Individuum erstellt. Dieses stellt eine Kopie eines Elternteils dar. Auf diese Weise werden die neuen Individuen T („Tochter“) und S („Sohn“) als Kopien der Eltern M („Mutter“) und V („Vater“) erzeugt. Die Operatoren Crossover und Mutation sind entsprechend der gewählten Kodierung auszuwählen bzw. zu entwickeln. Z.B. können, je nach Kodierung, der Ein-Punkt-Crossover und die Flip-Mutation aus Abschnitt 6.5 gewählt werden. Durch Crossover und Mutation werden die als Parameter übergebenen Individuen T und S variiert. Es werden somit keine neuen Individuen erzeugt, sondern lediglich Veränderungen an bereits erzeugten Individuen vorgenommen. Durch POP ← KIN wird zum Ausdruck gebracht, dass der Menge POP die Individuen zugewiesen werden, die in KIN enthalten sind, d.h. durch die Zuweisung gehen diejenigen Individuen „verloren“, die vor der Zuweisung in POP enthalten sind. Anders ausgedrückt: Nach der Ersetzung besteht die Population aus den durch Fortpflanzung erzeugten Kindern. Bestehen beispielsweise vor der Zuweisung die Population aus POP = {A, B} und die Kinder aus KIN = {C, D}, dann gilt nach der Zuweisung: POP = {C, D}. In Schritt [24] wird ein Individuum I ∈ POP deterministisch gewählt. Hierbei handelt es sich um das Individuum mit der besten Fitness in der zuletzt berechneten Population. Im Falle eines Maximierungsproblems wird das Individuum mit der größten Fitness ausgewählt. Im Falle eines Minimierungsproblems wird das Individuum mit der kleinsten Fitness ausgewählt. Die durch I repräsentierte Lösung d(I) stellt das Ergebnis des Genetischen Algorithmus dar. Die repräsentierte Lösung wird durch Dekodierung von I berechnet. Tipps für Dozenten Die Ersetzung von POP kann häufig sehr effizient und einfach programmiert werden, z.B. durch Verwendung von Referenzen oder Zeigern. Alternativ kann die Ersetzung auch durch ein Überschreiben der Eltern mit den Kindern erreicht werden. <?page no="157"?> 6.4 Populationsbasierter Ablauf 157 Input: Populationsgröße μ, Kinderanzahl λ, Anzahl n an Bits, Iterationsanzahl maxit [1] Population POP ← ∅ [2] while |POP| < μ do [3] Neues Individuum I ← RandomInit(n) [4] f(I) ← Fitness(I) [5] POP ← POP ∪ {I} [6] end while [7] for Iterationszähler i ← 1, …, maxit do [8] Kinder KIN ← ∅ [9] while |KIN| < λ do [10] Wähle ein Individuum M ∈ POP durch Selektion [11] Wähle ein Individuum V ∈ POP durch Selektion [12] Neues Individuum T ← Reproduktion(M) [13] Neues Individuum S ← Reproduktion(V) [14] Crossover(T, S) [15] Mutation(T) [16] Mutation(S) [17] KIN ← KIN ∪ {T, S} [18] end while [19] Generationsweise Ersetzung: POP ← KIN [20] for each I ∈ POP do [21] f(I) ← Fitness(I) [22] end for [23] end for [24] I ← Wähle aus POP das Individuum mit der besten Fitness Output: Die durch I repräsentierte Problemlösung Abb. 6.9: Genetischer Algorithmus mit generationsweiser Ersetzung Unter Berücksichtigung der Startpopulation werden insgesamt µ + (maxit ·λ) Individuen erzeugt und auch µ + (maxit ·λ) Fitnessauswertungen ausgeführt. Die als Parameter vorgegebene Iterationsanzahl maxit stellt hierbei ein einfaches Abbruchkriterium für die Suche dar. In der Literatur werden auch alternative Abbruchkriterien genannt: <?page no="158"?> 158 6 Genetische Algorithmen Eine vorgegebene Anzahl an Iterationen wurde berechnet (vgl. Abb. 6.9). Eine vorgegebene Anzahl an Individuen wurde berechnet. Eine vorgegebene Rechenzeit wurde erreicht. Eine vorgegebene Lösungsqualität wurde erreicht. Eine Konvergenz wurde erreicht (vgl. Abschnitt 6.5). Fitness, Selektion und Ersetzung Während die Fitness unter Berücksichtigung des zu lösenden Problems zu definieren ist, können Selektion und Ersetzung problemunabhängig formuliert werden. 6.5.1 Fitness Fitness: Eine Funktion f: M → ℝ , die jedem Individuum I ∈ M eine reelle Zahl zur Bewertung der Güte von I zuordnet. Die Fitness wird im Rahmen der Selektion oder der Ersetzung benötigt, um Individuen aus der Population (M = POP), den Kindern (M = KIN) oder der Population und den Kindern (M = POP ∪ KIN) auszuwählen. Nachfolgend wird folgender einfacher Ansatz gewählt: Die Fitness f(I) = z(l) eines Individuums I ist der Zielfunktionswert z(l) der Lösung l = d(I), die durch I repräsentiert wird. Die Berechnung der Fitness erfolgt in zwei Schritten: Berechne die Lösung l = d(I) durch Dekodierung von I. Berechne den Zielfunktionswert z(l) durch Bewertung von l. Im Rahmen der Fitnessberechnung werden also zwei Funktionen - die Dekodierung und die Zielfunktion des zu lösenden Problems - ausgeführt. Es gilt somit folgender Zusammenhang: Minimierungsproblem: Individuen werden umso besser bewertet, je kleiner deren Fitness ist. Maximierungsproblem: Individuen werden umso besser bewertet, je größer deren Fitness ist. <?page no="159"?> 6.5 Fitness, Selektion und Ersetzung 159 In der Literatur existieren weiterführende Konzepte zur Definition der Fitness (vgl. Nissen, 1994). In diesen Fällen werden neben der Lösungsqualität zusätzlichen Kriterien zur Bewertung von Individuen herangezogen. Hierzu sollen kurz zwei Fälle genannt werden (für eine ausführlichere Darstellung sei auf Nissen (1994) verwiesen). Beispiel 6.6 Die Fitnessfunktion bewertet zusätzlich die Ähnlichkeit von Individuen. Individuen werden umso besser bewertet, je unterschiedlicher sie sind. Dies soll zu einer größeren Heterogenität in der Population führen. Beispiel 6.7 Die Fitnessfunktion bewertet zusätzlich die Verletzung von Nebenbedingungen der Lösungen, die durch Individuen repräsentiert werden. Individuen werden umso besser bewertet, je weniger die Nebenbedingungen verletzt sind. Auf diese Weise sollen im Laufe des Genetischen Algorithmus das Ausmaß der Verletzung von Nebenbedingungen minimiert werden und schließlich zulässige Lösungen berechnet werden. Ein Beispiel findet sich in Domrös und Homberger (2012) zur Lösung von Stundenplanungsproblemen an Hochschulen. Beispiel 6.8 Im Falle des Standortproblems berechnet sich die Fitness eines Individuums I aus den Gesamtkosten z des Standortplanes l, der von I repräsentiert wird (vgl. Abb. 6.10). Die Fitness f(I) des Individuums I = [1, 0, 1] aus Abb. 6.3 errechnet sich zu f(I) = z = (5 + 6 + 7 + 5) + (4 + 7) = 34. Input: Individuum I / / n ist Anzahl Standorte, m ist Anzahl Nachfrager / / b ist Fixkostenvektor, C ist Transportkostenmatrix [1] Standortplan (x, Y) ← Dekodierung(I) [2] Gesamtkosten z ← 0 [3] for Standort i ← 1, …, n do [4] if x i = 1 then [5] z ← z + b i [6] for Nachfrager k ← 1, …, m do [7] z ← z + (y i,k · c i,k ) [8] end for <?page no="160"?> 160 6 Genetische Algorithmen [9] end if [10] end for Output: Gesamtkosten z Abb. 6.10: Fitness für Standortproblem Beispiel 6.9 Im Falle des quadratischen Optimierungsproblems berechnet sich die Fitness f(I) für ein Individuum I aus dem Zielfunktionswert der repräsentierten Lösung (x 1 , x 2 ) (vgl. Abb. 6.11). Das Individuum I = [1, 0, 1, 0, 0, 0, 1, 1] aus Abb. 6.4 hat die Fitness f(I) = z = (1/ 3) 2 + (-1/ 3) 2 = 2/ 9. Input: Individuum I [1] (x 1 , x 2 ) ← Dekodierung(I) [2] Zielfunktionswert z ← POW(x 1 , 2) + POW(x 2 , 2) Output: Zielfunktionswert z Abb. 6.11: Fitness für quadratisches Optimierungsproblem 6.5.2 Selektion Selektion: Ein Operator, der aus der Population POP genau ein Individuum I ∈ POP zur Reproduktion auswählt. In der Literatur existiert eine Vielzahl von Selektions-Operatoren (vgl. Nissen, 1994). Diese können unabhängig vom Problem angewendet werden. Beispiele sind (vgl. Abb. 6.12): Auswahl ohne Fitness: Die Auswahl erfolgt zufallsbasiert ohne Berücksichtigung der Fitness der Individuen („gleichverteilt-zufällige Selektion“). Jedes Individuum der Population hat somit dieselbe Auswahl-Wahrscheinlichkeit. Die Selektion kann dabei mit Wiederholung (vgl. Schwefel, 1995) oder ohne Wiederholung (vgl. Hartmann, 1998) erfolgen. Ohne Wiederholung bedeutet, dass Individuen maximal einmal pro Iteration zur Fortpflanzung ausgewählt werden. Hartmann (1998) wendet die Selektion an, um die Population zufallsbasiert in disjunkte Paare einzuteilen. Proportionale Selektion: Die Selektion gliedert sich in zwei Abschnitte. Zuerst wird jedem Individuum der Population anhand seiner Fitness eine Auswahl-Wahrscheinlichkeit zugeordnet. Anschließend wird ein Individuum unter Berücksichtigung der Auswahl-Wahrscheinlichkeiten ausgewählt. <?page no="161"?> 6.5 Fitness, Selektion und Ersetzung 161 Wettkampf-Selektion: Die Selektion gliedert sich in zwei Abschnitte. Zuerst werden zwei verschiedene Individuen zufallsbasiert ohne Fitness aus der Population ausgewählt. Anschließend werden diese beiden Individuen anhand der Fitness verglichen und ein Gewinner (oder Verlierer) ausgewählt. Input: Menge POP Auswahl ohne Fitness [1] Wähle gleichverteilt zufällig I ∈ POP / / Hierzu existieren Standard-Operatoren in Programmiersprachen Proportionale Selektion [1] for each I ∈ POP do [2] W(I) ← Berechne Auswahl-Wahrscheinlichkeit [3] end for [4] Berechne eine gleichverteilte Zufallszahl zz ∈ [0, 1) [5] Summe sum ← 0 [6] for each I ∈ POP do [7] sum ← sum + W(I) [8] if zz < sum then [9] return I [10] end if [11] end for Wettkampf-Selektion [1] Wähle gleichverteilt zufällig I ∈ POP [2] Wähle gleichverteilt zufällig K ∈ POP, K ≠ I [3] if f(I) ≤ f(K) then / / Minimierungsproblem [4] return I [5] else [6] return K [7] end if Output: Individuum I bzw. K Abb. 6.12: Selektion Für die proportionale Selektion wird nachfolgend die Berechnung der Auswahl- Wahrscheinlichkeiten im Falle eines Maximierungsproblems präzisiert. Hierbei werden Wahrscheinlichkeiten anhand der Fitnesswerte berechnet. Eine Anpas- <?page no="162"?> 162 6 Genetische Algorithmen sung an Minimierungsprobleme ist möglich. Hierbei werden Wahrscheinlichkeiten anhand eines Rankings von Individuen berechnet. Berechnung der Auswahl-Wahrscheinlichkeit W(I) anhand der Fitness bei der proportionalen Selektion (Maximierungsproblem): ∑ ∈ = POP K K f I f I W ) ( ) ( ) ( POP I∈ Die Auswahl von Individuen anhand von berechneten Auswahl-Wahrscheinlichkeiten wird in der Literatur häufig mit Hilfe eines Roulette-Rades erklärt (vgl. Nissen, 1994). Hierzu stellt man sich ein Roulette-Rad vor, das in |POP| Flächen eingeteilt ist. Jedem Individuum I ∈ POP ist eine Fläche zugeordnet, dessen Größe proportional zu seiner Auswahl-Wahrscheinlichkeit ist. Um ein Individuum auszuwählen, wird nun eine Kugel in das Roulette-Rad geworfen. Es wird das Individuum ausgewählt, in dessen Fläche die Kugel zum Erliegen kommt. Um |POP| Individuen zu selektieren, wird das Roulette-Rad entsprechen |POP|-mal ausgeführt. Beispiel 6.10 In Abb. 6.13 ist ein Beispiel für die Auswahl mit Roulette-Rad dargestellt. Im Selektions-Operator wird das Roulette-Rad durch ein Zahlenintervall [0, 1) dargestellt, das in Teilintervalle entsprechend den Auswahl-Wahrscheinlichkeiten eingeteilt ist. Die Kugel im Roulette-Rad wird durch eine gleichverteilte Zufallszahl zz modelliert. <?page no="163"?> 6.5 Fitness, Selektion und Ersetzung 163 Abb. 6.13: Proportionale Selektion 6.5.3 Ersetzung Ersetzung: Ein Operator, der Individuen der Population durch Kinder ersetzt. In der Literatur existiert eine Vielzahl von alternativen Ersetzungs-Operatoren (vgl. u.a. Nissen, 1994). Diese können unabhängig vom Problem angewendet werden. Es werden folgende Beispiele betrachtet (vgl. Abb. 6.14): Input: Menge POP, Menge KIN Generationsweise Ersetzung (für |KIN| = |POP|) [1] POP ← KIN Inkrementelle Ersetzung (für |KIN| = 2) [1] for each I ∈ POP do [2] for each J ∈ KIN do [3] if equal(I, J) then / / I und J sind gleich [4] KIN ← KIN \ {J} [5] end if [6] end for [7] end for [8] for each J ∈ KIN do [9] I ← argmax {f(I) | I ∈ POP} / / Minimierung [10] POP ← POP \ {I} [11] end for [12] POP ← POP ∪ KIN Wettkampf-basierte Ersetzung (für |KIN| > 0) <?page no="164"?> 164 6 Genetische Algorithmen [1] k ← |POP| [2] POP ← POP ∪ KIN [3] while |POP| > k do [4] Wähle gleichverteilt-zufällig I ∈ POP [5] Wähle gleichverteilt-zufällig J ∈ POP, J ≠ I [6] if f(I) >= f(J) then / / Minimierung [7] POP ← POP \ {I} [8] end if [9] end while Output: --- Abb. 6.14: Ersetzung Generationsweise Ersetzung (Holland, 1992): Alle Individuen der Population werden durch die berechneten Kinder ersetzt. Inkrementelle Ersetzung (Syswerda, 1991, siehe auch Nissen, 1994): Die beiden schlechtesten Individuen der Population werden durch die Kinder ersetzt. Ein Kind kann jedoch nur dann ein Individuum in der Population ersetzen, sofern es sich von allen anderen Individuen der Population unterscheidet. In Abb. 6.14 wird die Bedingung, ob zwei Individuen I und J in allen Bits dieselben Werte haben, durch equal überprüft. Die Methode equal liefert den Wert true, falls die Bedingung erfüllt ist, sonst den Wert false. Wettkampf-basierte Ersetzung (vgl. Hartmann, 1998): Zu Beginn der Ersetzung wird die Population zunächst temporär um die Kinder erweitert. Aus der erweiterten Population werden dann solange Individuen mit einem Wettkampf ausgewählt und aus der Population entfernt, bis die ursprüngliche Populationsgröße wieder erreicht ist. Elitismus: Eine Ersetzung kann elitär oder nicht-elitär sein. Bei einer elitären Ersetzung gilt folgende Bedingung: Minimierung: 𝑚𝑚𝑚𝑚𝑛𝑛 { f(I) | I ∈ POP i } ≥ 𝑚𝑚𝑚𝑚𝑛𝑛 { f(I)| I ∈ POP i+1 } Maximierung: 𝑚𝑚𝑚𝑚𝑥𝑥 { f(I) | I ∈ POP i } ≤ 𝑚𝑚𝑚𝑚𝑥𝑥 { f(I)| I ∈ POP i+1 } Eine elitäre Ersetzung (Ersetzung mit Elitismus) ermöglicht es Bereiche des Suchraumes intensiver zu durchsuchen. Umgekehrt eignet sich eine nicht-elitäre Ersetzung (Ersetzung ohne Elitismus) dann, wenn viele lokale Optima vorhanden sind oder sich die Zielfunktion mit <?page no="165"?> 6.5 Fitness, Selektion und Ersetzung 165 der Zeit ändert. Für die dargestellten Ersetzungen gilt: Generationsweise Ersetzung: Nicht elitär Inkrementelle Ersetzung: Elitär Wettkampf-basierte Ersetzung: Elitär 6.5.4 Strategien In der Tab. 6.1 werden in Anlehnung an die Literatur verschiedene Strategien zur Kombination von Selektion und Ersetzung angegeben. Literatur Selektion Ersetzung Holland (1992) Proportional mit Fitness Generationsweise Ersetzung Syswerda (1991) Wettkampf mit Fitness Inkrementelle Ersetzung Hartmann (1998) Auswahl ohne Fitness Wettkampf-basierte Ersetzung Tab. 6.1: Strategien zur Kombination von Selektion und Ersetzung Prinzipiell können verschiedene Selektions- und Ersetzungs-Operatoren kombiniert werden. In mindestens einem der beiden Operatoren sollte jedoch die Fitness der Individuen bei der Auswahl von fortzupflanzenden oder zu ersetzenden Individuen berücksichtigt werden. Anderenfalls kommt es zu einem unerwünschten Random-Walk durch den Suchraum, beispielsweise dann, wenn eine Selektion ohne Fitness mit einer generationsweisen Ersetzung kombiniert wird. 6.5.5 Konvergenz Konvergenz: Die iterative Annäherung der Fitness f(B) des besten Individuums B ∈ POP i gegen einen Wert. Die Konvergenz wird durch Selektion und Ersetzung beeinflusst. Beispiel 6.11 Die Abb. 6.15 zeigt exemplarisch einen Konvergenzverlauf für die Bearbeitung einer Probleminstanz des Standortproblems. Die Fitness des besten Individuums B wird über die Iterationen aufgetragen. <?page no="166"?> 166 6 Genetische Algorithmen Abb. 6.15: Konvergenz (Beispiel für Minimierungsproblem) Initialisierung, Reproduktion, Crossover und Mutation 6.6.1 RandomInit-Operator Input: Anzahl n an Bits [1] Erzeuge ein neues Individuum I mit Länge n [2] for k ← 1, …, n do [3] Zufallszahl zz ∈ [0, 1) [4] if zz < 0,5 then [5] I[k] ← 0 [6] else [7] I[k] ← 1 [8] end if [9] end for Output: Individuum I Abb. 6.16: RandomInit-Operator Zu Beginn des Genetischen Algorithmus sind Individuen zufallsbasiert zu erzeugen. Dies geschieht mit dem RandomInit-Operator aus Abb. 6.16. <?page no="167"?> 6.6 Initialisierung, Reproduktion, Crossover und Mutation 167 6.6.2 Reproduktion Die eigentliche Fortpflanzung, d.h. die Vervielfältigung von Genen, wird durch die Reproduktion in Abb. 6.17 dargestellt. Hierbei wird ein neues Individuum (Kind) erzeugt. Das Kind ist eine Kopie des zu reproduzierenden Eltern-Individuums. Input: Individuum I der Länge n [1] Erzeuge ein neues Individuum K der Länge n [2] for k ← 1, …, n do / / kopiere Bitstring [3] K[k] ← I[k] [4] end for Output: Individuum K Abb. 6.17: Reproduktion 6.6.3 Crossover Crossover: Ein Operator, der zwei Kinder variiert. Hierzu werden einige Bits zufällig ausgewählt und für jedes dieser Bits die Werte zwischen den beiden Kindern getauscht. Zweck des Crossover ist es, Teile der zu variierenden Individuen neu zu kombinieren („Exploitation“) (vgl. Nissen, 1994). Dabei bleiben Bitwerte, die in den zu variierenden Individuen identisch sind, unverändert. In der Literatur existiert eine Vielzahl an Crossover-Operatoren (vgl. Nissen, 1994). Nachfolgend wird der Ein-Punkt-Crossover von De Jong (1975) beschrieben. Bei dem Ein-Punkt-Crossover wird bei jeder Ausführung eine zufällige Trennstelle t ∈ {1, …, n} für den Austausch bzw. der Variation von Bitwerten berechnet (vgl. Abb. 6.18). Input: Individuum T, Individuum S [1] n ← Länge des Individuums T [2] Trennstelle t ← Wähle zufallsbasiert t ∈ {1, …, n} [3] for k ← t, …, n do [4] tmp ← T[k] [5] T[k] ← S[k] [6] S[k] ← tmp <?page no="168"?> 168 6 Genetische Algorithmen [7] end for Output: --- Abb. 6.18: Ein-Punkt-Crossover Beispiel 6.12 In der Abb. 6.19 wird exemplarisch der Ein-Punkt-Crossover für zwei Individuen der Länge n = 6 mit der zufällig gewählten Trennstelle t = 4 durchgeführt. Die Werte des zweiten und dritten Bits bleiben unverändert, da beide Individuen hier identische Werte haben. Abb. 6.19: Ein-Punkt-Crossover 6.6.4 Mutation Mutation: Ein Operator, der ein Individuum zufallsbasiert und geringfügig variiert. Zweck des Mutierens ist es, die Diversität (Verschiedenheit der Individuen) in der Population aufrechtzuerhalten. Dabei werden auch Bitwerte berechnet, die in der Population nicht vorhanden sind („Exploration“) (vgl. Nissen, 1994). Mutation ergänzt den Crossover, da auch Bits verändert werden können, die bei einem Crossover unverändert bleiben. In der Literatur existiert eine Vielzahl an Mutations- Operatoren, die sich für verschiedene Probleme anwenden oder anpassen lassen (vgl. Nissen, 1994). Nachfolgend wird die Flip-Mutation dargestellt (vgl. Holland, 1992). Bei der Flip-Mutation wird jedes Bit eines zu mutierenden Individuums mit einer geringen Mutations-Wahrscheinlichkeit W invertiert, d.h. aus dem Wert 0 wird der Wert 1 bzw. aus dem Wert 1 wird der Wert 0 (vgl. Abb. 6.20). Somit können durch Mutation keines, eines oder mehrere Bits variiert und somit unterschiedlich große Schritte im Suchraum durchgeführt werden. Die Mutations-Wahrscheinlichkeit wird häufig in Abhängigkeit der Länge n der Individuen auf W = 1/ n festgelegt (Mühlenbein, 1992). In diesem Fall beträgt der Erwartungswert für die Anzahl zu invertierender Bits pro Individuum genau Eins. <?page no="169"?> 6.6 Initialisierung, Reproduktion, Crossover und Mutation 169 Input: Individuum I [1] n ← Länge von I [2] Mutations-Wahrscheinlichkeit W ← 1/ n [3] for k ← 1, …, n do [4] Reelle Zufallszahl zz ∈ [0, 1) [5] if zz < W then [6] if I[k] = 0 then [7] I[k] ← 1 [8] else [9] I[k] ← 0 [10] end if [11] end if [12] end for Output: --- Abb. 6.20: Flip-Mutation für Bitstrings Beispiel 6.13 In der Abb. 6.21 wird die Flip-Mutation für Individuen der Größe n = 6 durchgeführt. Im Beispiel werden zwei Bits invertiert. Abb. 6.21: Flip-Mutation 6.6.5 Anpassung der Operatoren Die vorgestellten Operatoren zur Erzeugung von Individuen bzw. Bitstrings sind zufallsbasiert. Häufig müssen Bitstrings jedoch bestimmte Bedingungen einhalten, die in der Kodierung festgelegt sind. In diesen Fällen sind die Operatoren RandomInit, Crossover und Mutation derart anzupassen, dass die berechneten Indivi- <?page no="170"?> 170 6 Genetische Algorithmen duen bzw. Bitstrings die gewünschten Bedingungen erfüllen. Drei Möglichkeiten der Anpassung sind denkbar: Zulässige Erzeugung: Die Operatoren werden derart modifiziert, dass bei der Erzeugung die Einhaltung der Bedingungen sichergestellt ist. Reparatur: Die Operatoren werden derart modifiziert, dass unzulässig erzeugte Individuen im Nachhinein „repariert“ werden. Wiederholung: Die Operatoren werden solange wiederholend ausgeführt, bis die gewünschten Bedingungen eingehalten werden. Beispiel 6.14 Beim Standortproblem muss jeder Bitstring die Bedingung einhalten, dass mindestens ein Bit den Wert 1 hat. Eine Möglichkeit der Anpassung der Operatoren besteht darin, am Ende zu prüfen, ob die Bedingung erfüllt ist. Für den Fall, dass die Bedingung nicht erfüllt ist (erzeugter Bitstring ist der Nullvektor), werden die Operatoren wiederholend ausgeführt. Alternativ kann eine Reparatur leicht durchgeführt werden, indem ein zufällig gewähltes Bit den Wert 1 erhält. Kalibrierung Kalibrierung: Festlegung der Parameterwerte eines Genetischen Algorithmus. Um die Parameter eines Genetischen Algorithmus festzulegen, werden häufig für eine Stichprobe von Probleminstanzen alternative Werte für die Verfahrensparameter systematisch getestet. Zweck ist die Festlegung von Parameterwerten, mit denen im Mittel gute Lösungen zu erwarten sind. Häufig ist die Festlegung von der Größe der Probleminstanzen abhängig. Beispiel 6.15 Für Instanzen des Standortproblems mit n = 250 Standorten und m = 250 Nachfragern können mit folgenden Parameterwerten häufig Lösungen mit niedrigen Gesamtkosten berechnet werden: μ = 100, λ = 100, maxit = 1000. Fallstudie Losgrößenproblem Es soll ein Genetischer Algorithmus zur Lösung des Losgrößenproblems entwickelt und getestet werden (vgl. Homberger, 2008). Hierzu wird folgende Kodierung und Dekodierung vorgeschlagen. <?page no="171"?> 6.8 Fallstudie Losgrößenproblem 171 6.8.1 Kodierung Jedes Individuum I nimmt ein Bitstring auf, das einen zulässigen Losgrößenplan (X, Y, B, W) kodiert. Jedes Individuum enthält für jedes Erzeugnis i ∈ E = {1, …, n} und jede Periode t ∈ T = {1, …, m} ein Bit. Hierzu sind Individuen in n Bereiche mit jeweils m Bits eingeteilt. Um den Umgang mit Individuen jedoch zu vereinfachen, können diese als Bit-Matrizen realisiert werden. Beispiel 6.16 In Abb. 6.22 wird ein Individuum, welches einen Losgrößenplan repräsentiert, als Bit-Matrix realisiert. Abb. 6.22: Kodierung von Losgrößenplänen durch Bit-Matrizen Die einzelnen Bits haben nun folgende Bedeutung: I[i][t] = 1 bedeutet, dass in der Periode t Maschinen zur Herstellung von Erzeugnis i gerüstet werden können, d.h. in Periode t können Teile von Erzeugnis i produziert werden. I[i][t] = 0 bedeutet, dass in der Periode t Maschinen zur Herstellung von Erzeugnis i nicht gerüstet werden können, d.h. in Periode t können keine Teile von Erzeugnis i produziert werden. <?page no="172"?> 172 6 Genetische Algorithmen Die Bits schränken somit die möglichen Werte für die zu treffenden Rüstentscheidungen Y = (y i,t ) ein. In der ersten Spalte eines Bitstrings muss jedes Bit den Wert 1 haben (I[i][1] = 1, i = 1, …, n). Dies ist notwendig, um den Bedarf der ersten Periode termingerecht herstellen zu können. Der Suchraum G besteht somit aus 2 n(m-1) Bitstrings. 6.8.2 Dekodierung und Fitness In Abb. 6.23 ist die Dekodierung dargestellt. Input: Individuum I mit n Zeilen und m Spalten n ist die Anzahl Erzeugnisse, m ist die Anzahl Perioden, g ist die Anzahl Fertigerzeugnisse, (d i,t ) enthält die Primärbedarfe für die Erzeugnisse i = 1, …, g, und die Perioden t = 1, …, m, N i enthalten die Nachfolger von i = 1, …, n [1] Losgrößen X = (x i,t ) ← 0 n,m [2] Lagerbestände W = (w i,t ) ← 0 n,m [3] for Erzeugnis i ← 1, …, n do [4] for Periode t ← 1, …, m do [5] Rüstentscheidung y i,t ← I[i][t] [6] if i ≤ g then / / i ist Fertigerzeugnis [7] Bedarf b i,t ← d i,t [8] else [9] for each Nachfolger k ∈ N i do [10] Bedarf b i,t ← b i,t + x k,t [11] end for [12] end if [13] if y i,t = 1 then [14] Losgröße x i,t ← b i,t [15] else [16] Periode p ← t [17] while y i,p = 0 do [18] Periode p ← p - 1 [19] Lagerbestand w i,p ← w i,p + b i,t [20] end while [21] x i,p ← x i,p + b i,t [22] end if <?page no="173"?> 6.8 Fallstudie Losgrößenproblem 173 [23] end for [24] end for Output: Standortplan (X, Y, B, W) Abb. 6.23: Dekodierung am Beispiel des Losgrößenproblems Abb. 6.24: Dekodierung für Losgrößenproblem (Beispiel für eine Instanz mit n = 4 Erzeugnissen) <?page no="174"?> 174 6 Genetische Algorithmen Beispiel 6.17 In Abb. 6.24 wird die Dekodierung eines Individuums am Beispiel dargestellt. In der Dekodierung wird ein zulässiger Losgrößenplan berechnet. Hierbei wird folgende Heuristik angewendet (vgl. Abb. 6.23): Heuristik: Es werden die Erzeugnisse i ∈ E = {1, …, n} nacheinander entsprechend ihrer Nummerierung ausgewählt und die Losgrößen berechnet. Hierbei wird periodenweise vorgegangen: - In Schritt [5] werden die Rüstentscheidungen entsprechend den Bitwerten im Individuum festgelegt. - In den Schritten [6] - [12] wird für jedes Erzeugnis und jede Periode der Bedarf ermittelt. - In den Schritten [15] - [22] wird u.a. die Periode festgelegt, in der der ermittelte Bedarf hergestellt wird. Ein Bedarf wird in der spätestmöglichen Periode hergestellt, in der gerüstet wird. Auf diese Weise werden für ein Erzeugnis möglichst niedrige Lagerkosten verursacht. Die Fitness von Individuen kann durch die Gesamtkosten z der jeweils repräsentierten Problemlösungen berechnet werden (vgl. Kombinatorische Optimierung). 6.8.3 Zulässige Individuen Im Rahmen der Initialisierung und Mutation ist sicherzustellen, dass zulässige Individuen erzeugt werden. Hierbei ist darauf zu achten, dass in der ersten Spalte eines Individuums ausschließlich Einsen enthalten sind. Auf diese Weise wird sichergestellt, dass jedes Erzeugnis in der ersten Periode produziert werden kann und somit ein gegebener Primärbedarf termingerecht hergestellt werden kann. Beispiel 6.18 In Abb. 6.25 ist eine Population aus μ = 4 zulässigen Individuen für eine kleine Probleminstanz mit lediglich zwei Erzeugnissen dargestellt. Der gegebene Primärbedarf des Fertigerzeugnisses i = 1 beträgt b 1,1 = 20 Einheiten in Periode t = 1, b 1,2 = 30 Einheiten in Periode t = 2 und b 1,3 = 40 Einheiten in Periode t = 3. Die jeweils durch Individuen repräsentierten Losgrößenpläne sind ebenfalls angegeben. <?page no="175"?> 6.9 Fallstudie: Clustering 175 Abb. 6.25: Zulässige Population (Beispiel) Fallstudie: Clustering 6.9.1 Problemstellung Allgemein sind Clusterprobleme dadurch charakterisiert, dass eine Menge von m Objekten gegeben ist, die durch Merkmalsvektoren beschrieben werden. Die Aufgabe besteht dann darin, Gruppen oder Teilmengen - die sogenannten Cluster - von ähnlichen Objekten zu finden. Hierzu ist ein Ähnlichkeitsmaß zu definieren, das die Ähnlichkeit von Objekten berechnet. Mit Hilfe einer Funktion, welche die Ähnlichkeit von Objekten in Clustern berechnet, kann ein Clusterproblem als Optimierungsproblem formuliert und gelöst werden. Beispielsweise können Clusterprobleme häufig als kombinatorische Zuordnungsprobleme beschrieben werden. Im vorliegenden Problem ist eine Menge S von m Standorten gegeben. Jeder Merkmalsvektor besteht hier aus den räumlichen Koordinaten, welche die Lage eines Standortes im euklidischen Raum angeben. Gesucht ist eine Zuordnung der Standorte in n disjunkte Cluster. Beispiel 6.19 Bei den Standorten kann es sich um die Kundenstandorte eines Unternehmens handeln, die durch Clustering in verschiedene Servicebereiche einzuteilen sind. In Abb. 6.26 (oben) ist exemplarisch eine Probleminstanz mit m = 532 Orten in den USA gegebenen (vgl. Padberg und Rinaldi, 1987). In Abb. 6.26 (unten) ist ferner eine mögliche Lösung für die Aufteilung der Orte in n = 5 disjunkte Cluster angegeben. <?page no="176"?> 176 6 Genetische Algorithmen Abb. 6.26: Probleminstanz und mögliche Lösung (Beispiel) Um Lösungen zu bewerten, wird nachfolgend für jeden Standort die Distanz zu dem geografischen Mittelpunkt des ihm zugeordneten Clusters berechnet. Die Summe aller Distanzen der Standorte soll nun minimiert werden. Anstelle eines Ähnlichkeitsmaßes wird somit hier ein Abstandsmaß eingeführt. Dieser Lösungsansatz wird häufig in der Literatur angewendet. Hierbei mache man sich den <?page no="177"?> 6.9 Fallstudie: Clustering 177 Unterschied zwischen Abstand und Ähnlichkeit von Objekten klar. In dem gewählten Fall gilt, dass zwei Objekte dann ähnlich sind, wenn sie einen kleinen Abstand vom Cluster-Mittelpunkt aufweisen. Nachfolgend wird das Clusterproblem als kombinatorisches Zuordnungsproblem modelliert. Problemparameter [1] Menge an Standorten (zu clusternde Objekte) } ..., , 1 { m S = [2] Merkmalsvektoren = 2 , 1 , j j j x x x ∈ ℝ 0+ × ℝ 0+ , S j ∈ [3] Menge an Clustern C = {1,..., n} Variablen [4] Zuordnungen von Standorten zu Clustern j i v , S j C i ∈ ∈ , [5] Mittelpunkt eines Clusters (abhängige Variable) i c C i ∈ [6] Größe eines Clusters (abhängige Variable) i n C i ∈ Zielfunktion [7] Gesamtentfernung von Standorten zu Clustermittelpunkten ∑∑ ∈ ∈ → − ⋅ = C i S j j i j i min x c v z , Nebenbedingungen [8] Mittelpunkte der Cluster ∑∑ ∈ ∈ ⋅ = C i S j j j i i i x v n c , 1 C i ∈ [9] Größe der Cluster 1 , ≥ = ∑ ∈S j j i i v n C i ∈ <?page no="178"?> 178 6 Genetische Algorithmen [10] Eindeutige Clusterung (disjunkte Cluster) ∑ ∈ = C i j i v 1 , S j ∈ [11] Entscheidungsvariablen { } 1 , 0 , ∈ j i v C i ∈ , S j ∈ Problemlösungen werden somit durch (n × m)-Matrizen der Form V = (v i,j ) beschrieben. Die binäre Entscheidungsvariable v i,j gibt die Zugehörigkeit eines Standortes i ∈ C zu einem Cluster j ∈ S an. Hierbei bedeuten: v i,j = 1, Standort j ist dem Cluster i zugeordnet. v i,j = 0, Standort j ist dem Cluster i nicht zugeordnet. Jede Zeile beschreibt somit einen Cluster. Die Spalten, in denen eine Zeile den Wert 1 hat geben die Standorte an, die einem Cluster zugeordnet sind. Beispiel 6.20 Nachfolgend werden exemplarisch m = 5 Merkmalsvektoren für Standorte gegeben sowie eine mögliche Lösung, in der die Standorte in n = 3 Cluster eingeteilt werden (vgl. Abb. 6.27). Ebenfalls wird der Zielfunktionswert der Lösung angegeben und berechnet. = 8 6 1 x , = 1 3 2 x , = 1 0 3 x , = 5 2 4 x , = 2 9 5 x , = 5 6 6 x , = 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 V Die drei Cluster zeichnen sich durch folgende Werte aus: 2 , 2 , 2 3 2 1 = = = n n n = + = 5 , 4 5 , 4 1 3 8 6 2 1 1 c , = + = 3 1 5 2 1 0 2 1 2 c , = + = 5 , 3 5 , 7 5 6 2 9 2 1 1 c Unter Verwendung der v i,j -Werte, die ungleich Null sind, ergibt sich: − + − + − + − + − = 2 9 5 , 3 5 , 7 5 2 3 1 1 0 3 1 1 3 5 , 4 5 , 4 8 6 5 , 4 5 , 4 z − + 5 6 5 , 3 5 , 7 <?page no="179"?> 6.9 Fallstudie: Clustering 179 − + − + − − + + + − − = 5 , 1 5 , 1 5 , 1 5 , 1 2 1 2 1 5 , 3 5 , 1 5 , 3 5 , 1 z ( ) ( ) ( ) ( ) 2 2 2 2 2 2 5 , 1 5 , 1 2 2 1 2 5 , 3 5 , 1 2 + + + + + = z 331 , 16 243 , 4 472 , 4 616 , 7 = + + ≈ z Abb. 6.27: Probleminstanz und mögliche Lösung für Clusterung Schließlich soll das Clusterproblem von dem bereits dargestellten Rundreiseproblem und dem Standortproblem abgegrenzt werden. Im Clusterproblem sind keine Rundreisen von Orten zu berechnen. d.h. es wird keine Reihenfolge für Standorte berechnet. Im Clusterproblem sind keine Zuordnungen von Orten zu Einrichtungen zu berechnen. Vielmehr sind die Standorte zueinander zuzuordnen. 6.9.2 Kodierung und Fitness Jedes Individuum I nimmt ein Bitstring auf, der eine zulässige Lösung V für ein Clusterproblem darstellt. Jedes Individuum enthält für jedes Cluster i ∈ C = {1, …, n} und jeden Standort j ∈ S = {1, …, m} ein Bit. Hierzu sind Individuen in n Bereiche mit jeweils m Bits eingeteilt. Um den Umgang mit Individuen jedoch zu vereinfachen, werden diese, wie in Abb. 6.28 dargestellt, als Bit-Matrizen realisiert (vgl. auch Abschnitt 6.8). <?page no="180"?> 180 6 Genetische Algorithmen D.h. jedes Individuum I stellt unmittelbar eine Lösung V des Clusterproblems dar. Eine Dekodierung von Individuen ist somit hier nicht mehr erforderlich. Beispiel 6.21 In Abb. 6.28 ist ein Individuum, das eine Lösung für ein Clusterproblem darstellt, als Bit-Matrix realisiert. Abb. 6.28: Kodierung von Clustern durch Bit-Matrizen Die einzelnen Bits haben nun folgende Bedeutung: I[i][j] = 1 bedeutet, dass Standort j dem Cluster i zugeordnet wird. I[i][t] = 0 bedeutet, dass Standort j dem Cluster i nicht zugeordnet wird. In jeder Spalte muss genau ein Bit den Wert 1 enthalten. Jede Zeile muss mindestens ein Bit mit dem Wert 1 haben. Die Fitness f(I) eines Individuums I errechnet sich aus dem Zielfunktionswert z der durch I repräsentierten Clusterung. Da Individuen nicht dekodiert werden müssen, gilt: f(I) = z(I). 6.9.3 Crossover Im Ein-Punkt-Crossover wird zunächst eine Trennstelle t ∈ S zufällig gewählt. Anschließend werden alle Spalten j ∈ {t, …, m} zwischen den zu kreuzenden <?page no="181"?> 6.9 Fallstudie: Clustering 181 Individuen ausgetauscht (vgl. Abb. 6.29). Auf diese Weise bleibt die Zulässigkeit von Individuen erhalten. Input: Individuum T mit n Zeilen und m Spalten Individuum S mit n Zeilen und m Spalten [1] for j ← 1, …, m do [2] Trennstelle t ← Wähle zufallsbasiert t ∈ {1, …, m} [3] for j ← t, …, m do [4] tmp ← Kopie der j-ten Spalte von Individuum T [5] for i ← 1, …, n do [6] T[i][j] ← S[i][j] [7] S[i][j] ← tmp[i] [8] end for [9] end if [10] end for Output: --- Abb. 6.29: Ein-Punkt-Crossover für Bit-Matrizen Beispiel 6.22 In Abb. 6.30 ist der Ein-Punkt-Crossover von Bit-Matrizen an einem Beispiel dargestellt. Im Beispiel wurde als zufällige Trennstelle t = 3 gewählt. Abb. 6.30: Crossover für Bit-Matrizen (Beispiel) <?page no="182"?> 182 6 Genetische Algorithmen 6.9.4 Mutation In der Mutation wird jeder Standort mit der Wahrscheinlichkeit 1/ m einem neuen Cluster zugeordnet. Hierbei handelt es sich um eine sogenannte Swap-Mutation, bei der die Anzahl der Bits mit dem Wert 1 unverändert bleibt. In Abb. 6.31 ist die Swap-Mutation für die Clusterung dargestellt. Input: Individuum I mit n Zeilen und m Spalten [1] Mutations-Wahrscheinlichkeit W ← 1/ m [2] for j ← 1, …, m do [3] Reelle Zufallszahl zz ∈ [0, 1) [4] if zz < W then [5] Wähle Zeile i mit I[i][j] = 1 [6] Wähle Zeile k ≠ i zufällig gleichverteilt [7] I[i][j] ← 0 [8] I[k][j] ← 1 [9] end if [10] end for Output: --- Abb. 6.31: Swap-Mutation für Bit-Matrizen Am Ende der Mutation muss überprüft werden, ob jedes Cluster mindestens einen Standort enthält. Falls ein Cluster i ∈ C keinen Standort enthält (d.h. die Zeile i besteht ausschließlich aus Nullen), wird das Individuum zufallsbasiert repariert. Hierzu wird ein Cluster h ∈ C zufällig ausgewählt, der mindestens zwei Standorte enthält (d.h. eine Zeile h mit mindestens zwei Einsen). Anschließend wird dem Cluster h ein zufällig gewählter Standort entnommen und dem Cluster i hinzugefügt. Beispiel 6.23 In Abb. 6.32 ist die Mutation von Bit-Matrizen für das Clusterproblem an einem Beispiel dargestellt. <?page no="183"?> 6.10 Aufgaben 183 Abb. 6.32: Swap-Mutation für Bit-Matrizen (Beispiel) Aufgaben Aufgabe 6.1 (Dekodierung Standortproblem) Gegeben ist die Probleminstanz aus Abb. 6.3 sowie das Individuum I = [1, 1, 0]. Führen Sie eine Dekodierung durch und berechnen Sie die Fitness. Aufgabe 6.2 (Crossover) Gegeben sind die Individuen T = [1, 1, 0, 1, 0, 1, 0, 1] und S = [0, 1, 1, 0, 0, 1, 1, 0]. Führen Sie einen Ein-Punkt-Crossover durch. Verwenden Sie hierbei die Trennstelle t = 4. Aufgabe 6.3 (Mutation) Begründen Sie, warum im Rahmen der Mutation eine relativ kleine Mutations-Wahrscheinlichkeit verwendet werden sollte. Aufgabe 6.4 (Individuen) Definieren Sie eine Kodierung und eine Dekodierung für das Rucksackproblem aus Kapitel 1. Aufgabe 6.5 (Ersetzung mit Wettkampf) Erstellen Sie ein Computerprogramm zur Simulation der Ersetzung mit Wettkampf. - In dem Programm soll zunächst eine Liste mit 100 zufällig gewählten Zahlen im Intervall [50, 100] erzeugt werden. Jedes Element (jede Zahl) der Liste wird sowohl als Individuum als auch dessen Fitness interpretiert. - Berechnen Sie die durchschnittliche Fitness. - Führen Sie nun die wettkampf-basierte Ersetzung durch, bis die Liste μ = 50 Werte enthält. Es sei ein Minimierungsproblem angenommen. <?page no="184"?> 184 6 Genetische Algorithmen - Berechnen Sie die durchschnittliche Fitness. Wie hat sich die durchschnittliche Fitness durch die Selektion verändert? Bemerkung: Die Simulation kann auch ohne Computerprogramm mit Hilfe von Karteikarten händisch durchgeführt werden. Aufgabe 6.6 (Experimente) Zum Buch ist ein in Java programmierter Genetischer Algorithmus für das Standortproblem beigefügt. Führen Sie folgende Experimente durch: - Variieren Sie die Populationsgröße und die Anzahl an Iterationen. Lösen Sie hierzu die beigefügte Probleminstanz jeweils einmal mit den Werten: (maxit, μ) = (1000, 50), (50, 1000). - Modifizieren Sie das Programm, indem die Mutation auskommentiert wird. Lösen Sie anschließend die Probleminstanz erneut. Aufgabe 6.7 (Programmierung) Erweitern Sie den programmierten Genetischen Algorithmus für das Standortproblem. Entwickeln Sie hierzu die in Abschnitt 6.5 vorgestellten Strategien zur Kombination von Selektion und Ersetzung. Aufgabe 6.8 (Dekodierung Losgrößenproblem) Gegeben sei folgende Probleminstanz: - Erzeugnisse i ∈ E = {1, 2} - Fertigerzeugnis F = {1} - Erzeugnisstruktur: K = {(2, 1)} - Rüstkosten: (r i ) = (50, 20) - Lagerkosten: (l i ) = (1, 2) - Perioden: P = {1 , 2, 3} - Primärbedarfe (p 1,t ) = (10 20 30) a) Gegeben ist das Individuum I = [[1, 1, 1], [1, 0, 0]]. Führen Sie eine Dekodierung durch und berechnen Sie die Fitness. b) Gegeben sind die Losgrößen X = (x i,t ) = [[20, 20, 20], [60, 0, 0]]. Berechnen Sie zunächst die Werte der abhängigen Variablen (Rüstentscheidungen, Bedarfe, Lagerbestände) und anschließend die Gesamtkosten. c) Vergleich Sie die beiden Losgrößenpläne aus a) bzw. b). Erklären an diesem Beispiel die Bedeutung der Dekodierung im Hinblick auf die erzielbare Lösungsqualität. <?page no="185"?> 6.10 Aufgaben 185 Aufgabe 6.9 (Anpassung Losgrößenproblem) Entwickeln Sie folgende Methoden für das Losgrößenproblem: - Fitness - RandomInit, Crossover, Mutation Aufgabe 6.10 (Clusterung) Überlegen Sie sich anhand der Abb. 6.27 ein besseres Individuum und berechnen Sie die Fitness. <?page no="186"?> 7 Evolutionsstrategien Schlagwörter und Prüfungstipps Was erwartet mich in diesem Kapitel? Es werden die Konzepte von Evolutionsstrategien, insbesondere deren zugrunde liegenden Lernkonzepte (Selbstadaptation), beschrieben sowie deren Anwendung für reell-wertige Optimierungsprobleme aufgezeigt. Welche Schlagwörter lerne ich kennen? Standardnormalverteilte Zufallszahlen Mutationsschrittweite (kurz: Schrittweite) 1/ 5-Regel zwei-stufiger Lernprozess Rekombination (1+1)-Evolutionsstrategie (µ, λ)-Evolutionsstrategie Selbstadaptation Wofür benötige ich dieses Wissen? Zur numerischen Optimierung von technischen Systemen und Lernverfahren (vgl. Support-Vektor-Maschine) können Evolutionsstrategien erfolgreich angewendet werden. Welche Prüfungstipps kann ich aus diesem Kapitel ziehen? In Prüfungen wird häufig gefordert, die 1/ 5-Regel zu erklären, die Selbstadaptation der Mutationsschrittweiten zu erklären und am Beispiel anzuwenden. Konzepte Wie die Genetischen Algorithmen gehören die Evolutionsstrategien zur Klasse der Evolutionären Algorithmen. Evolutionsstrategien wurden von Rechenberg (1973) und Schwefel (1977) in Deutschland entwickelt. Evolutionsstrategien sind numerische Optimierungsverfahren zur Lösung reell-wertiger Optimierungsprobleme (vgl. u.a. Conti et al., 2018, Ibrahim und Landa-Silva, 2018). Häufig werden sie zur Optimierung von Parametern eines zu entwickelnden technischen Systems eingesetzt. Beispiele für zu entwickelnde Systeme sind Tragflächen eines Flugzeuges (vgl. Bäck et al., 2000). Aber auch Verfahren der künstlichen Intelligenz, wie z.B. Support-Vektor-Maschinen, können mit Evolutionsstrategien optimiert werden (vgl. Abschnitt 11.8). Evolutionsstrategien zeichnen sich durch folgende Konzepte aus: <?page no="187"?> 7.2 Konzepte 187 Konzepte der Evolutionsstrategien: Individuen, welche reell-wertige Vektoren darstellen Lernen einer Mutationsschrittweite Durch das Lernen von Mutationsschrittweiten soll eine ideale Konvergenzgeschwindigkeit erreicht werden. In Abb. 7.1 wird die Anwendung von Evolutionsstrategien zur Optimierung von technischen Systemen bzw. deren Parameter v 1 bis v m dargestellt. Jedes Individuum repräsentiert eine Lösung, d.h. es enthält für jeden Parameter einen Wert. Individuen werden anhand der Zielfunktion, welche zugleich die Fitness darstellt, bewertet. Abb. 7.1: Parameteroptimierung mit Evolutionsstrategien Im Rahmen des Kapitels werden zwei Evolutionsstrategien vorgestellt, die sich insbesondere durch ihre Lernansätze unterscheiden. (1+1)-Evolutionsstrategie: Lernen durch Anpassung einer Schrittweite anhand einer Erfolgsregel (1/ 5-Regel). ( µ , λ )-Evolutionsstrategie: Lernen durch Selbstanpassung von Schrittweiten der Individuen. Im Rahmen des Buches werden wesentliche Grundideen einführend dargestellt. Im Hinblick auf weiterführende Forschungsarbeiten auf dem Gebiet der Evolutionsstrategien sei auf die Literatur verwiesen (vgl. u.a. Beyer und Hellwig, 2017). <?page no="188"?> 188 7 Evolutionsstrategien Beispiele Beispiel 7.1 Um die Evolutionsstrategien leichter erklären und verstehen zu können, sei folgendes quadratisches Optimierungsproblem angenommen. Quadratisches Optimierungsproblem Zielfunktion min v z m i i → = ∑ =1 2 Nebenbedingung ∈ i v ℝ i = 1, …, m Lösungen des quadratischen Optimierungsproblems werden nachfolgend auch als Lösungsvektoren 𝑣𝑣 = � 𝑣𝑣 1 ⋮ 𝑣𝑣 𝑚𝑚 � bezeichnet. Die Zielfunktion ist konvex. Sie hat ein lokales Optimum, das zugleich das globale Optimum darstellt. Für m = 1 stellt die Zielfunktion eine Parabel dar. Das Minimum wird bei dem Wert v 1 = 0 angenommen. Für m = 2 stellt die Zielfunktion ein Paraboloid dar. Das Minimum wird bei (v 1 , v 2 ) T = (0, 0) angenommen. In Abb. 7.2 wird das Paraboloid dargestellt. Abb. 7.2: Paraboloid (Beispiel 7.1) <?page no="189"?> 7.4 Normalverteilte Zufallszahlen 189 Beispiel 7.2 Abb. 7.3: Zielfunktion mit mehreren lokalen Optima (Beispiel 7.2) In Abb. 7.3 ist exemplarisch die Fläche einer Zielfunktion dargestellt, die mehrere lokale Optima hat. Auch diese Probleme können mit Evolutionsstrategien erfolgreich gelöst werden. Normalverteilte Zufallszahlen In Evolutionsstrategien werden im Rahmen von Mutationen standardnormalverteilte Zufallszahlen benötigt. Daher sollen hier kurz die Grundlagen zur Berechnung von standardnormalverteilten Zufallszahlen dargestellt werden. Eine Standardnormalverteilung ist eine Wahrscheinlichkeitsverteilung mit folgenden Eigenschaften: Dichtefunktion: ∈ ⋅ = − x e x , 2 1 2 2 π ϕ ℝ Erwartungswert ist 0. Standardabweichung ist σ = 1. Die Standardnormalverteilung wird auch als N(0, 1)-Verteilung bezeichnet. <?page no="190"?> 190 7 Evolutionsstrategien In Abb. 7.4 ist die Dichtefunktion der Standardnormalverteilung dargestellt. Die Wahrscheinlichkeit, eine Zahl x aus einem Intervall [a, b] auszuwählen, errechnet sich aus dem Integral der Dichtefunktion im Intervall [a, b]. Speziell für das Intervall [-1, 1] gilt, dass die Fläche ungefähr den Wert 0,68 hat, d.h. die Wahrscheinlichkeit, eine Zahl aus dem Intervall [-1, 1] zu erhalten, beträgt ca. 68%. Abb. 7.4: Dichtefunktion einer Standardnormalverteilung In Evolutionsstrategien sind standardnormalverteilte Zufallszahlen zu berechnen. In Programmiersprachen stehen jedoch meistens nur Methoden zur Berechnung gleichverteilter Zufallszahlen aus dem Intervall [0, 1) zur Verfügung (z.B. in Java die Methode Math.random()). Um nun standardnormalverteilte Zufallszahlen mit Hilfe von gleichverteilten Zufallszahlen zu berechnen, werden in der Literatur u.a. folgenden Methoden empfohlen: Box-Muller-Methode (Box und Muller, 1958) Polar-Methode (Marsaglia und Bray, 1964) Beide Methoden berechnen jeweils zwei unabhängige, standardnormalverteilte Zufallszahlen. Berechnung von standardnormalverteilten Zufallszahlen nach der Box-Muller-Methode (Box und Muller, 1958): [1] Erzeuge zwei gleichverteilte Zufallszahlen z 1 , z 2 ∈ (0, 1). [2] ( ) 2 1 1 π 2 cos ln 2 z z y − = ist dann N(0, 1)-verteilt. [3] ( ) 2 1 2 π 2 sin ln 2 z z y − = ist dann N(0, 1)-verteilt. <?page no="191"?> 7.5 (1+1)-Evolutionsstrategie 191 [4] Wähle y 1 oder y 2 als standardnormalverteilte Zufallszahl. Eine standardnormalverteilte Zufallszahl wird nachfolgend mit N(0, 1) bezeichnet. (1+1)-Evolutionsstrategie 7.5.1 Individuen Individuen sind Variablen, welche jeweils einen reell-wertigen Vektor aufnehmen. Folgende Notationen werden verwendet: I[i] bezeichnet die i-te Vektor-Komponente v i von Individuum I. I[i] ∈ ℝ , i = 1, …, m Im Unterschied zu Genetischen Algorithmen wird also auf eine Kodierung von Lösungen verzichtet. Jedes Individuum stellt unmittelbar eine Lösung eines reellwertigen Optimierungsproblems, d.h. einen Vektor, dar. Entsprechend unterscheiden sich die Suchoperatoren in Evolutionsstrategien (insb. Mutation) von den Suchoperatoren in Genetischen Algorithmen. Beispiel 7.3 Das Individuum I = �23� stellt eine mögliche zulässige Lösung �𝑣𝑣 1 𝑣𝑣 2 � des quadratischen Optimierungsproblems für m = 2 dar. Es hat die Komponenten I[1] = 2 und I[2] = 3. Die optimale Lösung wird durch das Individuum K = �00� beschrieben. <?page no="192"?> 192 7 Evolutionsstrategien 7.5.2 Fitness Die Fitness f(I) eines Individuums I berechnet sich als Zielfunktionswert z(I). Die Berechnung der Fitness ist problemspezifisch unter Berücksichtigung der Zielfunktion des zu lösenden Optimierungsproblems zu programmieren. Für das quadratische Optimierungsproblem ist die Fitnessberechnung in Abb. 7.5 dargestellt. Input: Individuum I [1] Zielfunktionswert z ← 0 [2] for Parameter i ← 1, …, m do [3] z ← z + (I[i] · I[i]) [4] end for Output: Zielfunktionswert z Abb. 7.5: Fitness (Beispiel quadratisches Optimierungsproblem) Beispiel 7.4 Das Individuum I = �23� , welches eine Lösung �𝑣𝑣 1 𝑣𝑣 2 � des quadratischen Optimierungsproblems für m = 2 darstellt, hat die Fitness f(I) = z = 2 2 + 3 2 = 13. 7.5.3 Ablauf Verfahrensparameter der (1+1)-Evolutionsstrategie: Initiale Mutationsschrittweite σ* Lernintervall l Anpassungsrate r für Mutationsschrittweite Iterationsanzahl maxit In Abb. 7.6 ist der Ablauf der (1+1)-Evolutionsstrategie in Anlehnung an Rechenberg (1973, 1994) dargestellt. Die Population besteht aus lediglich einem Individuum (Elternteil). In jeder Iteration werden folgende Schritte durchgeführt: <?page no="193"?> 7.5 (1+1)-Evolutionsstrategie 193 Mutation: Es wird eine eingeschlechtliche Fortpflanzung simuliert, bei der aus einem Individuum (dem Elternteil) genau ein Kind durch Reproduktion und Mutation berechnet wird. Das Kind ist eine Variation des Elternteils. Selektion bzw. Ersetzung: Aus dem Kind und dem Elternteil wird das Individuum mit der besseren Fitness als überlebendes Individuum ausgewählt. Im Falle eines Minimierungsproblems (Maximierungsproblems) wird das Individuum mit kleinerer (größeren) Fitness gewählt. Adaptation: Die im Rahmen der Mutation anzuwendende Schrittweite wird alle l Iterationen in Abhängigkeit des Mutationserfolgs angepasst. Diese Anpassung bzw. Adaptation erfolgt nach der sogenannten 1/ 5-Regel. Die Adaptation stellt eine einfache Form des Lernens dar. Bei Erfolg wird die Schrittweite vergrößert, bei Misserfolg verkleinert. Input: Lernintervall l, initiale Schrittweite σ*, Anpassungsrate r, Iterationsanzahl maxit, Parameteranzahl m [1] Schrittweite σ ← σ* [2] Individuum I ← RandomInit(m) [3] f(I) ← Fitness(I) [4] Zähler z ← 0 [5] for Iterationszähler i ← 1, …, maxit do [6] Individuum K ← Reproduktion(I) [7] Mutation(K, σ) [8] f(K) ← Fitness(K) [9] if f(I) < f(K) then / / Minimierungsproblem [10] I ← K [11] f(I) ← f(K) [12] z ← z + 1 [13] end if [14] if i Modulo l = 0 then [15] erfolg ← z / l [16] if erfolg > 1/ 5 then [17] σ ← σ / r / / Vergrößern der Schrittweite [18] else if erfolg < 1/ 5 then [19] σ ← σ · r / / Verkleinern der Schrittweite [20] end if [21] z ← 0 <?page no="194"?> 194 7 Evolutionsstrategien [22] end if [22] end for Output: Individuum I Abb. 7.6: (1+1)-Evolutionsstrategie Die Verfahrensparameter sind problemspezifisch festzulegen. Hierbei finden sich in der Literatur folgende Empfehlungen: Die initiale Schrittweite σ* sollte in Abhängigkeit des geschätzten Abstandes des ersten erzeugten Individuums zum Optimum sowie der Parameteranzahl m des Optimierungsproblems festgelegt werden (vgl. Schwefel, 1981 und Nissen, 1994). Bezeichnet d den geschätzten Abstand, dann kann folgender Wert gewählt werden: m d / * = σ Die Anpassungsrate r muss kleiner 1 gewählt werden. Beyer und Schwefel (2002) empfehlen folgende Werte für r: 1 85 , 0 < ≤ r 7.5.4 Mutation 7.5.4.1 Mutationsschrittweite Die Mutation ist der wichtigste Operator in Evolutionsstrategien. Die Idee einer Mutation besteht darin, jede Komponente eines Individuums additiv unter Berücksichtigung einer Mutationsschrittweite zufallsbasiert zu variieren. Mutationsschrittweite (kurz: Schrittweite) σ : Ein Verfahrensparameter der Evolutionsstrategie. Dieser gibt an, wie stark die einzelnen Komponenten eines Individuums zu variieren sind. 7.5.4.2 Vereinfachte Darstellung der Idee der Mutation In diesem Abschnitt soll zunächst die Idee der additiven und zufallsbasierten Mutation mit Hilfe von Schrittweiten erklärt werden (vgl. Abb. 7.7). Hierbei wird stark vereinfachend zunächst von einer gleichverteilten Mutation ausgegangen. Hierzu sei das quadratische Optimierungsproblem z = 𝑣𝑣 12 → 𝑚𝑚𝑚𝑚𝑛𝑛 betrachtet (m = 1). Der Lösungsraum kann somit als Zahlenstrahl dargestellt werden. In diesem Fall besteht jedes Individuum aus lediglich einer Komponente bzw. Zahl, so dass Individuen auf dem Zahlenstrahl angegeben werden können. <?page no="195"?> 7.5 (1+1)-Evolutionsstrategie 195 Abb. 7.7: Vereinfachte Idee der zufallsbasierten, additiven Mutation Die Idee der additiven Mutation ist: Im Rahmen der Mutation wird eine neue Lösung berechnet, indem die Komponenten eines Individuums variiert werden. Hierzu wird zu jeder Komponente ein positiver oder negativer Wert ∆ hinzuaddiert. Der Betrag |∆| sollte dabei relativ klein gewählt werden, um nicht „wild“ durch den Lösungsraum zu springen. Auf diese Weise wird der Lösungsraum in kleinen Schritten zielorientiert durchwandert, indem von einer Lösung zu einer benachbarten Lösung vorangeschritten wird. Die Idee der zufallsbasierten Mutation ist: Würde man |∆| konstant wählen (z.B. ∆ = -0,1 oder ∆ = 0,1), kann man zum einen lediglich sehr langsam voranschreiten und zum anderen in der Regel das Optimum nicht finden, da man über den optimalen Wert „hinwegschreitet“. Startet man beispielsweise die Suche bei v 1 = 1,05, dann kann das Optimum v = 0 durch sukzessive Addition oder Subtraktion von 0,1 nicht erreicht werden. Daher muss der Betrag von ∆ variiert werden. Da man das Optimum und damit die geeignete Größe von ∆ nicht kennt, motiviert sich die zufallsbasierte Wahl von ∆. Die Idee der schrittweiten-basierten Mutation ist (vereinfacht! ): ∆ wird als gleichverteilte Zufallszahl aus dem Intervall [-σ, σ] berechnet. In dieser vereinfachten Darstellung ist die Schrittweite σ also die maximale mögliche Variation einer Lösungskomponente. Für den Fall, dass σ groß gewählt wird, können somit größere Veränderungen und damit größere Schritte im Lösungsraum vorgenommen werden. Für den Fall, dass σ klein gewählt wird, können folglich nur kleinere Schritte erreicht werden. Über σ kann somit die Geschwindigkeit bei der Wanderung im Lösungsraum festgelegt werden. Um sich die Schrittweite σ und die Zufallszahl ∆ zu verdeutlichen, stelle man sich eine Wanderin oder einen Wanderer im Gebirge vor: Die maximale Schrittweite <?page no="196"?> 196 7 Evolutionsstrategien der Person beträgt σ (z.B. σ = 1m). Die Person wählt nun ihre Schritte zufallsbasiert im Intervall [-1, 1] (z.B. -0,5m). Dabei wird durch das Vorzeichen die Bewegungsrichtung (z.B. Norden oder Süden) angegeben. 7.5.4.3 Normalverteilte Mutationen Für eine Optimierung werden Mutationen mit normalverteilten Zufallszahlen ausgeführt. Auf diese Weise soll erreicht werden, dass kleinere Mutationen häufiger vorkommen als größere. Dies führt zu einer besseren Konvergenz. In Abb. 7.8 ist die normalverteilte Mutation beschrieben. Die Schrittweite σ wird nun mit einer standardnormalverteilten Zufallszahl N(0, 1) multipliziert. Auf diese Weise erhält man die normalverteilte Zufallszahl ∆ = σ · N(0, 1). Es gilt: Da der Erwartungswert von N(0, 1) den Wert 0 hat, entspricht der Erwartungswert von ∆ ebenfalls dem Wert 0. Da die Standardabweichung von N(0, 1) den Wert 1 hat, entspricht die Standardabweichung von ∆ dem Wert σ. Die Mutationsschrittweite σ stellt somit die Standardabweichung einer normalverteilten Zufallszahl mit Erwartungswert 0 dar. Damit liegen ca. 68% der Werte von ∆ im Intervall [-σ, σ]. Kleinere Mutationen werden somit häufiger ausgeführt als größere Mutationen. In ca. 32% der Fälle werden Mutationen vollzogen, bei denen |∆| größer als σ ist. Abb. 7.8: Normalverteilte Mutation <?page no="197"?> 7.5 (1+1)-Evolutionsstrategie 197 Input: Individuum I, Schrittweite σ [1] for Parameter i ← 1, …, m do [2] Normalverteilte Zufallszahl ∆ ← σ · N(0, 1) [3] I[i] ← I[i] + ∆ [4] end for Output: --- Abb. 7.9: Mutation für die (1+1)-Evolutionsstrategie Beispiel 7.5 In Abb. 7.10 wird die Mutation am Beispiel eines Optimierungsproblems mit m = 2 Parameter beschrieben. Es sei angenommen, dass die anzuwendende Mutationsschrittweite den Wert σ = 0,8 hat. Die beiden Lösungskomponenten des zu mutierenden Individuums I werden additiv variiert. Hierzu werden zwei Stichproben einer standardnormalverteilten Zufallszahl vorgenommen und mit der Mutationsschrittweite multipliziert. Abb. 7.10: Mutation der (1+1)-Evolutionsstrategie am Beispiel 7.5.4.4 Anpassung der Mutationsschrittweiten Wie in Abb. 7.6 dargestellt, wird die Schrittweite im Verfahrensablauf in Abhängigkeit vom Erfolg durchgeführter Mutationen angepasst („adaptiert“). Durch die Adaptation bzw. Anpassung der Schrittweite soll eine ideale „Konvergenzgeschwindigkeit“ erreicht werden (vgl. Nissen, 1994). Hierbei wird die 1/ 5-Regel von Rechenberg (1973) angewendet. <?page no="198"?> 198 7 Evolutionsstrategien 1/ 5-Regel (vgl. Rechenberg, 1973, Beyer und Schwefel, 2002): Die Mutationsschrittweite ist derart einzustellen, dass in 1/ 5 der durchgeführten Mutationen eine Verbesserung erzielt wird. Vergrößerung der Mutationsschrittweite: Falls in mehr als 1/ 5 der durchgeführten Mutationen eine Verbesserung erzielt wurde. Verkleinerung der Mutationsschrittweite: Falls in weniger als 1/ 5 der durchgeführten Mutationen eine Verbesserung erzielt wurde. Die Vergrößerung bzw. Verkleinerung der Mutationsschrittweite erfolgt durch Division bzw. Multiplikation der zuletzt angewendeten Mutationsschrittweite mit einer Anpassungsrate r (0 < r < 1) . 7.5.5 Initialisierung und Reproduktion In Abb. 7.11 ist die Initialisierung eines Individuums der Startpopulation anhand der Methode RandomInit dargestellt. Input: Anzahl Parameter m [1] Individuum I [2] for Parameter i ← 1, …, m do [3] I[i] ← gleichverteilte Zufallszahl zz ∈ ℝ [4] end for Output: Individuum I Abb. 7.11: RandomInit Durch Reproduktion wird ein neues Individuum erstellt, das dieselben Lösungskomponenten hat wie die eines Eltern-Individuums I (vgl. Abb. 7.12). Input: Individuum I mit m Parametern [1] Erzeuge neues Individuum K [2] for Parameter i ← 1, …, m do [3] K[i] ← I[i] [4] end for Output: Individuum K Abb. 7.12: Reproduktion <?page no="199"?> Populationsbasierte Evolutionsstrategie 199 Populationsbasierte Evolutionsstrategie Nachfolgend wird eine populationsbasierte Evolutionsstrategie beschrieben. Diese wird auch als (µ, λ)-Evolutionsstrategie bezeichnet. 7.6.1 Konzepte Ein wesentliches Konzept der populationsbasierten Evolutionsstrategie ist es, dass Individuen über eigene Mutationsschrittweiten verfügen, so dass diese im Verfahrensablauf individuell angepasst werden können. Dies wird auch als Selbstadaptation der Individuen bezeichnet. Anhand der Individuen werden somit nicht nur Lösungen, sondern zugleich auch die Parameter des Verfahrens gelernt. Dies wird auch als zweistufiger Lernprozess bezeichnet. Konzepte der populationsbasierten Evolutionsstrategie: Individuen, welche reell-wertige Vektoren und Schrittweiten enthalten Selbstadaptation von Mutationsschrittweiten Rekombination anstelle von Crossover Zweistufige Mutation Deterministische Ersetzung 7.6.2 Individuen und Fitness Individuen sind Variablen, welche jeweils einen reell-wertigen Vektor und eine Schrittweite aufnehmen (vgl. u.a. Schwefel, 1995). Folgende Notationen werden verwendet: <?page no="200"?> 200 7 Evolutionsstrategien I.v bezeichnet die Lösung von Individuum I. I.v[i] bezeichnet die i-te Vektor-Komponente v i von Individuum I. I.σ bezeichnet die Schrittweite von Individuum I. I.v[i] ∈ ℝ , i = 1, …, m I.σ ∈ ℝ 0+ Die Fitness f(I) eines Individuums I berechnet sich unter Berücksichtigung der Zielfunktion z wie folgt: f(I) = z(I.v) In der Literatur werden auch Varianten empfohlen, in denen die Individuen mehrere Schrittweiten enthalten (Beyer und Schwefel, 2002). So ist es z.B. möglich für jeden Parameter eine eigene Schrittweite vorzusehen. 7.6.3 Populationsbasierter Ablauf Verfahrensparameter der ( µ , λ )-Evolutionsstrategie: Populationsgröße µ Kinderanzahl pro Iteration λ (λ > µ) Lernrate α Iterationsanzahl maxit In Abb. 7.13 ist eine Iteration der (µ, λ)-Evolutionsstrategie für die Werte µ = 4, λ = 8 schematisch dargestellt. Abb. 7.13: (4, 8)-Evolutionsstrategie (vgl. Schwefel, 1995) <?page no="201"?> 7.6 Populationsbasierte Evolutionsstrategie 201 Die Iteration basiert auf folgenden Selektions- und Ersetzungsoperatoren (vgl. u.a. Schwefel, 1995). Selektion: Jedes Individuum aus POP hat dieselbe Wahrscheinlichkeit zur Reproduktion ausgewählt zu werden. Die Selektion erfolgt unabhängig von der Fitness gleichverteilt zufällig. Ersetzung: Aus der Menge KIN der Kinder werden die µ besten Individuen anhand ihrer Fitness deterministisch ausgewählt. Im Falle eines Minimierungsproblems werden die µ Individuen mit den kleinsten Fitnesswerten gewählt. Im Falle eines Maximierungsproblems werden die µ Individuen mit den größten Fitnesswerten gewählt. Die ausgewählten Kinder ersetzen die Eltern. Um eine Konvergenz zu erreichen, müssen die Parameter µ und λ wie folgt gewählt werden: µ < λ In diesem Fall werden Individuen bei der Selektion mehrfach zur Reproduktion ausgewählt. Bei der Ersetzung der Population wird ein Selektionsdruck erreicht. Der Selektionsdruck stellt ein Maß dar, mit dem beurteilt werden kann, wie schnell (bezogen auf die durchzuführenden Iterationen) sich Individuen mit besserer Fitness in der Population durchsetzen (vgl. Miller und Goldberg, 1995). Der Selektionsdruck kann bei der (µ, λ)-Evolutionsstrategie durch das Verhältnis von µ zu λ beschrieben werden (Schwefel, 1981). Hierbei muss gelten: 1 0 < < λ µ Starker Selektionsdruck (kleine Werte für µ/ λ): Aus den erzeugten Kindern wird ein relativ kleiner Anteil für die Ersetzung ausgewählt. Schwacher Selektionsdruck (große Werte für µ/ λ): Aus den erzeugten Kindern wird ein relativ großer Anteil für die Ersetzung ausgewählt. Ein schwacher Selektionsdruck führt zu einer eher globalen Suche, während ein starker Selektionsdruck eher zu einer lokalen Suche führt (vgl. Nissen, 1994). Um den in Abschnitt 7.6.4.1 beschriebenen zweistufigen Lernprozess zu ermöglichen, ist ein relativ starker Selektionsdruck erforderlich (vgl. auch Bäck, 1994). In Abb. 7.14 ist der Gesamtablauf der (µ, λ)-Evolutionsstrategie dargestellt (vgl. u.a. auch Nissen, 1994). Das Ergebnis ist der Lösungsvektor des besten Individuums der zuletzt berechneten Population. Das beste Individuum ist im Falle eines Minimierungsproblems das Individuum mit der kleinsten Fitness. <?page no="202"?> 202 7 Evolutionsstrategien Die Ersetzung der (µ, λ)-Evolutionsstrategie ist nicht-elitär. Jedoch kann der Ablauf leicht in einen Ablauf mit elitärer Ersetzung geändert werden. Hierzu sind im Rahmen der Ersetzung lediglich die µ besten Individuen aus der Vereinigung von POP und KIN auszuwählen. Eine entsprechende elitäre Verfahrensvariante wird als (µ+λ)-Evolutionsstrategie bezeichnet (vgl. auch Bäck et al., 1991). Input: Populationsgröße µ, Kinderanzahl λ, Lernrate α, Iterationsanzahl maxit, Parameteranzahl m [1] Population POP ← ∅ [2] while |POP| < μ do [3] Individuum I ← RandomInit(m) [4] POP ← POP ∪ {I} [5] end while [6] for Iterationszähler i ← 1, …, maxit do [7] Kinder KIN ← ∅ [8] while |KIN| < λ do [9] Wähle ein Individuum M ∈ POP mit Selektion [10] Wähle ein Individuum V ∈ POP mit Selektion [11] Individuum T ← Reproduktion(M) [12] Individuum S ← Reproduktion(V) [13] Rekombination(T, S) [14] Mutation(T, α) [15] Mutation(S, α) [16] f(T) ← Fitness(T) [17] f(S) ← Fitness(S) [18] KIN ← KIN ∪ {T, S} [19] end while [20] POP ← Wähle die µ besten Individuen aus KIN [21] end for [22] Wähle das beste Individuum I ∈ POP Output: Lösungskomponente Individuum I.v Abb. 7.14: Ablauf der (µ, λ)-Evolutionsstrategie 7.6.4 Mutation 7.6.4.1 Zweistufige Mutation Die Mutation eines Individuums läuft in zwei Schritten ab (vgl. u.a. Schwefel, 1977). Die Vorgehensweise ist in Abb. 7.15 verdeutlicht. <?page no="203"?> 7.6 Populationsbasierte Evolutionsstrategie 203 1. Multiplikative Variation der Schrittweite des Individuums. 2. Additive Variation der Lösungskomponenten des Individuums. Abb. 7.15: Zweistufige Mutation Im ersten Schritt wird die Schrittweite I.σ eines Individuums I multiplikativ variiert. Durch die Multiplikation wird die Schrittweite zufallsbasiert gestaucht bzw. gestreckt. Die Variation erfolgt unter Berücksichtigung der Lernrate α. Tipps für Dozenten Um das Prinzip der multiplikativen Mutation zu verdeutlichen, empfiehlt es sich, vereinfacht von dem Wert α = 1 auszugehen. Mit Hilfe der Abb. 7.16 soll die multiplikative Mutation der Schrittweite für den Wert α = 1 verdeutlicht werden. Die Abb. 7.16 zeigt zum einen die Exponentialfunktion h(x) = e x und zum anderen die Dichtefunktion ϕ(x) der Standardnormalverteilung. Im Rahmen der multiplikativen Mutation wird nun zuerst eine normalverteilte Zufallszahl ∆ = α · N(0, 1) berechnet. Für α = 1 ist ∆ eine standardnormalverteilte Zufallszahl, die bekanntlich in ca. 68% der Fälle im Intervall [-1, 1] liegt. Die Zufallszahl ∆ wird dann in die e-Funktion (EXP-Funktion) als Argument eingesetzt und man erhält die positive Zufallszahl EXP(∆). Wird die <?page no="204"?> 204 7 Evolutionsstrategien Lernrate α = 1 gewählt, so liegt diese in ca. 68% der Fälle im Intervall von [EXP(-1), EXP(1)] bzw. im Intervall von [0,37, 2,71]. Abb. 7.16: Idee der multiplikativen Mutation der Schrittweite Die positive Zufallszahl EXP(∆) ist der Multiplikator, mit dem die Schrittweite σ multipliziert und somit gestaucht oder gestreckt wird. Wie die Abb. 7.16 verdeutlicht, hat die multiplikative Variation der Schrittweite folgende positive Eigenschaften (vgl. Nissen, 1994): „Kleinere Veränderungen der Schrittweiten finden häufiger statt als größere Veränderungen.“ (in Anlehnung an Nissen, 1994) „Vergrößerungen und Verkleinerungen der Schrittweiten finden gleichhäufig statt.“ (in Anlehnung an Nissen, 1994) Der Erwartungswert der Variation hat den Wert EXP(0) = 1. In diesem Fall hat eine Multiplikation der Schrittweite keine Auswirkung (Nissen, 1994). Die Schrittweiten bleiben durch Stauchung bzw. Streckung positiv (vgl. Nissen, 1994). Im zweiten Schritt werden die Lösungskomponenten eines Individuums - wie bei der (1+1)-Evolutionsstrategie - additiv unter Berücksichtigung der Mutationsschrittweite variiert. Es findet somit eine additive Mutation der Lösungskomponenten statt. Jedoch wird nun bei der Mutation der Lösungskomponenten eines Individuums die eigene, d.h. die im Individuum gespeicherte und zuvor variierte, Mutationsschrittweite verwendet. In Abb. 7.17 und Abb. 7.18 wird die Mutation sowohl algorithmisch als auch am Beispiel dargestellt. Input: Individuum I, Lernrate α [1] Normalverteilte Zufallszahl ∆ ← α · N(0, 1) [2] I.σ ← I.σ · EXP(∆) [3] for Parameter i ← 1, …, m do <?page no="205"?> 7.6 Populationsbasierte Evolutionsstrategie 205 [4] Normalverteilte Zufallszahl ∆ ← I.σ · N(0, 1) [5] I.v[i] ← I.v[i] + ∆ [6] end for Output: --- Abb. 7.17: Mutation der (µ, λ)-Evolutionsstrategie Abb. 7.18: Mutation der (µ, λ)-Evolutionsstrategie am Beispiel Die Lernrate α (0 < α) bestimmt die Anpassungsgeschwindigkeit der Mutationsschrittweiten. Nach Schwefel (1995) wird empfohlen, diese in Abhängigkeit von der Parameteranzahl m festzulegen: m 1 = α <?page no="206"?> 206 7 Evolutionsstrategien 7.6.4.2 Selbstadaptation der Schrittweiten Die zweistufige Mutation ermöglicht nun eine Selbstadaptation der Schrittweiten (vgl. Schwefel, 1995), d.h. die Schrittweiten der Individuen werden automatisch während der Suche angepasst. Dies soll mithilfe der Abb. 7.19 schematisch verdeutlicht werden. Abb. 7.19: Selbstadaptation In Abb. 7.19 sei eine Population aus zwei Individuen A und B angenommen. Ferner sei erneut das quadratische Optimierungsproblem mit m = 1 angenommen, so dass die Individuen auf dem Zahlenstrahl abgebildet werden können. Die beiden Individuen haben dieselbe Fitness und auch dieselbe Schrittweite σ. Von jedem der beiden Individuen werden durch Mutation vier Kinder erzeugt. Dabei sei vereinfacht angenommen, dass die Kinder von A die Schrittweite vergrößern (und somit die neue Schrittweite σ* erhalten), und die Kinder von B die Schrittweite verkleinern (und somit die neue Schrittweite σ** erhalten). Die größere Schrittweite σ* ist in der dargestellten Situation geeigneter als eine kleine Schrittweite σ**, da die Entfernung zum Optimum für beide Individuen noch sehr groß ist. Durch große Schritte kann das Optimum schneller erreicht werden. Bei einer Mutation kann auch in die „falsche“, d.h. vom Optimum abgewandte, Seite mutiert werden. In Abb. 7.19 sei angenommen, dass jeweils zwei Kinder der Individuen A und B in die richtige Richtung und zwei Kinder in die falsche Richtung mutieren. Die zwei Kinder von Individuum A, die in die richtige Richtung mutieren, erzielen aufgrund der großen Schrittweite die beste Lösungsqualität. Im Rahmen der Ersetzung werden daher diese beiden Kinder <?page no="207"?> 7.6 Populationsbasierte Evolutionsstrategie 207 von A als neue Population ausgewählt. Somit pflanzt sich automatisch auch die geeignetere, hier größere, Mutationsschrittweite σ* fort. Je näher sich die Individuen dem Optimum annähern, umso kleinere Schrittweiten sind erforderlich, um Verbesserungen zu erzielen. Die Verkleinerung der Schrittweite wird dann selbständig in analoger Form gelernt. 7.6.5 Rekombination Input: Individuum T, Individuum S [1] Neue Schrittweite σ* ← 0,5 · (T.σ + S.σ) [2] T.σ ← σ* [3] S.σ ← σ* [4] for Parameter i ← 1, …, m do [5] Lösungskomponente von Tochter t ← T.v[i] [6] Lösungskomponente von Sohn s ← S.v[i] [7] Wähle gleichverteilt zufällig zz ∈ [0, 1) [8] if zz < 0,5 then [9] T.v[i] ← s [10] end if [11] Wähle gleichverteilt zufällig zz ∈ [0, 1) [12] if zz < 0,5 then [13] S.v[i] ← t [14] end if [15] end for Output: --- Abb. 7.20: Rekombination In Abb. 7.20 ist die Rekombination von Individuen dargestellt. Die Rekombination in Evolutionsstrategien ist vergleichbar mit dem Crossover in Genetischen Algorithmen. Sie unterscheidet sich jedoch von der Art und Weise der Umsetzung. Intermediäre Rekombination der Schrittweiten (Bäck und Schwefel, 1993): Hierbei werden Mittelwerte der Schrittweiten gebildet. Diskrete Rekombination der Lösungskomponenten (Bäck und Schwefel, 1993): Hierbei werden Lösungskomponenten neu zusammengestellt. In Abb. 7.21 ist eine Rekombination am Beispiel dargestellt. <?page no="208"?> 208 7 Evolutionsstrategien Abb. 7.21: Rekombination am Beispiel 7.6.6 Initialisierung und Reproduktion In Abb. 7.22 ist die Initialisierung eines Individuums der Startpopulation dargestellt. Die Initialisierung umfasst die Festlegung eines Lösungsvektors und der Schrittweite. Initialisierung des Lösungsvektors: Die Werte für die Lösungskomponenten werden gleichverteilt zufällig aus den jeweiligen Wertebereichen gewählt. Initialisierung der Schrittweite: Die Schrittweite wird tendenziell relativ groß gewählt (vgl. Schwefel, 1981, 1995, und Nissen, 1994). Input: Anzahl an Parameter m, initiale Schrittweite σ* [1] Erzeuge neues Individuum I mit m Parameter [2] for Parameter i ← 1, …, m do [3] I.v[i] ← gleichverteilte Zufallszahl zz ∈ ℝ [4] end for [5] I.σ ← σ* Output: Individuum I Abb. 7.22: RandomInit Durch Reproduktion wird ein neues Individuum erstellt, das dieselben Lösungskomponenten und dieselbe Schrittweite hat wie die eines Eltern-Individuums I (vgl. Abb. 7.23). <?page no="209"?> 7.7 Aufgaben 209 Input: Individuum I mit m Parameter [1] Erzeuge neues Individuum K mit m Parameter [2] for Parameter i ← 1, …, m do [3] K.v[i] ← I.v[i] [4] end for [5] K.σ ← I.σ Output: Individuum K Abb. 7.23: Reproduktion Aufgaben Aufgabe 7.1 Gegeben sind die beiden gleichverteilten Zufallszahlen x 1 = 0,3 und x 2 = 0,5. Berechnen Sie zwei standardnormalverteilte Zufallszahlen. Aufgabe 7.2 Gegeben ist ein Individuum für ein 2-dimensionales quadratisches Optimierungsproblem (vgl. Beispiel 7.1). Der Lösungsvektor des Individuums ist . 2 , 0 3 , 0 − = I a) Berechnen Sie die Fitness des Individuums. b) Führen Sie eine Mutation einer (1+1)-Evolutionsstrategie durch. Gehen sie dabei von einer aktuellen Mutationsschrittweite von σ = 0,1 aus. Um die beiden Lösungskomponenten zu mutieren, sind die beiden standardnormalverteilten Zufallszahlen N(0,1) = -0,8 und N(0,1) = 0,8 zu verwenden. Aufgabe 7.3 Begründen Sie, warum bei der (µ, λ)-Evolutionsstrategie µ < λ gelten muss. Aufgabe 7.4 Gegeben ist ein Individuum für das in Abschnitt 7.3 angegebene quadratische Optimierungsproblem (m = 2). Der Lösungsvektor des Individuums <?page no="210"?> 210 7 Evolutionsstrategien ist − = 2 , 0 3 , 0 .v I , der Schrittweitenvektor ist = 2 , 0 1 , 0 .σ I . Berechnen Sie die Lernrate α und führen Sie eine Mutation einer (µ, λ)-Evolutionsstrategie durch. Verwenden Sie hierbei folgende fünf standardnormalverteilte Zufallszahlen: N(0,1) = -0,8, N(0,1) = 0,7, N(0,1) = 0,8, N(0,1) = -1,0, N(0,1) = 1,0 <?page no="211"?> 8 Multiagenten-Planen Schlagwörter und Prüfungstipps Was erwartet mich in diesem Kapitel? Es wird eine Einführung in das Multiagenten-Planen und den damit verbundenen Koordinationsproblemen vorgestellt. Zur Problemlösung werden automatisierte Verhandlungen bzw. verhandlungsbasierte Koordinationsmechanismen beschrieben. Welche Schlagwörter lerne ich kennen? Koordinationsproblem dezentrale Entscheidungsfindung private Information Autonomie individuelle (lokale) Ziele Zielkonflikt Koordinationsziele (globale Ziele) Pareto-Effizienz Pareto-Front soziale Effizienz zentrale Lösung Win-Win-Situation automatisierte Verhandlung Harvard-Konzept Mediator Abstimmung Stagnation einer Verhandlung Gefangenendilemma Koordinationsmechanismus Mechanismus-Design kooperatives Akzeptanzkriterium Ausgleichszahlung Zahlungsvektor Budget-Ausgleich Genetischer Verhandlungsmechanismus Wofür benötige ich dieses Wissen? Automatisierte Verhandlungen können angewendet werden, um Koordinationsprobleme in den Bereichen Supply Chain Management oder Industrie 4.0 zu lösen. Die Bearbeitung dieser Probleme stellt aufgrund von privaten Informationen und Autonomie der Wirtschaftsakteure bzw. der entsprechenden Agenten eine besondere Herausforderung dar. Welche Prüfungstipps kann ich aus diesem Kapitel ziehen? In Prüfungen wird häufig gefordert, die Eigenschaften von Koordinationsproblemen zu beschreiben, Koordinationsprobleme zu modellieren die Herausforderung bei der Koordination darzustellen und automatisierte Verhandlungsmechanismen zu entwerfen. <?page no="212"?> 212 8 Multiagenten-Planen Dezentrale Planung durch mehrere Agenten 8.2.1 Einführungsbeispiel: Dezentrale Stundenplanung Beispiel 8.1 In Abb. 8.1 sind zwei Stundenpläne A und B einer Hochschule gegeben. Eine Gruppe Studierender soll über die Stundenplanalternativen abstimmen, wobei jeder Student den aus seiner Sicht besten Stundenplan wählen soll. Bei dieser Abstimmung werden die Studierenden sicherlich zu unterschiedlichen Ergebnissen kommen. Manche Studierende präferieren einen freien Tag (Plan A), während andere Studierende ein Ende der Lehrveranstaltungen um 17: 30 Uhr lieber haben. Somit ist die Optimierung, d.h. die Berechnung von Stundenplänen, welche bestimmte Ziele erreichen sollen, eine besonders schwierige Aufgabe, da die Entscheidungsträger bzw. Studierende verschiedene Lösungen favorisieren. Abb. 8.1: Alternative Stundenpläne Besondere Punkte bei diesem dezentralen Planungsproblem sind (vgl. auch Fink und Homberger, 2015): Mehrere autonome Akteure (hier Studierende) haben gemeinsam ein komplexes Optimierungsproblem (Stundenplanungsproblem) zu lösen. Es gibt keinen zentralen Entscheidungsträger (z.B. Verwaltung der Hochschule), welche den Stundenplan vorgibt. Die Studierenden verfolgen individuelle, in Konflikt zueinander stehende Ziele. Die Studierenden favorisieren unterschiedliche Stundenpläne. Die individuellen Ziele werden auch als lokale Ziele bezeichnet. Die Ziele der Studierenden sind private Informationen (Student A kennt nicht die Ziele von Studentin B und umgekehrt). <?page no="213"?> 8.2 Dezentrale Planung durch mehrere Agenten 213 Ein entsprechendes Optimierungsproblem wird nachfolgend als auch als dezentrales Optimierungsproblem oder Koordinationsproblem bezeichnet. Die Begriffe leiten sich daher ab, dass die Problemstellung nicht durch einen einzelnen Akteur zentral gelöst werden kann und die Entscheidungsfindung (welcher Stundenplan wird gewählt? ) dezentral durch mehrere autonome Akteure (hier Studierende) erfolgt. Hierzu ist die Entscheidungsfindung der Akteure aufeinander abzustimmen, d.h. zu koordinieren. Aber was bedeutet Koordination? Ein Stundenplan wird als koordiniert bezeichnet, wenn dieser vorgegebene Koordinationsziele erfüllt. Diese sind aus einer den einzelnen Studierenden übergeordneten Sichtweise formuliert. Beispiele für Koordinationsziele könnten sein: Ein Stundenplan muss zulässig sein (z.B. alle Fächer des Curriculums sind enthalten). Ein Stundenplan soll die durchschnittliche Zufriedenheit aller Studierenden maximieren („soziale Wohlfahrt“). Ein Stundenplan soll Pareto-effizient sein (auf diesen wichtigen Punkt gehen wir in Abschnitt 8.2.5 ein). Ein Stundenplan soll fair sein (diese Zielsetzung erfordert jedoch eine Definition von Fairness). Die Koordinationsziele (diese werden auch als globale Ziele bezeichnet) können in Konflikt zu den lokalen Zielen stehen: Ein Stundenplan, der die durchschnittliche Zufriedenheit aller Studierenden maximiert, kann durchaus für einzelne Studierende nicht zufriedenstellend sein und daher von diesen abgelehnt werden. Die Erreichung des globalen Ziels, d.h. die Berechnung eines koordinierten Stundenplans, stellt somit aufgrund der Zielkonflikte, der privaten Informationen und der Autonomie eine besondere Herausforderung dar (die Studierenden entscheiden egoistisch anhand ihrer eigenen lokalen Ziele über die Akzeptanz von Stundenplänen). Vermutlich haben die Studierenden bei der Auswahl des Stundenplanes (Plan A oder Plan B) keine Formeln verwendet und aus dem „Gefühl heraus“ eine Entscheidung getroffen. Dies ist in den nachfolgenden Beispielen jedoch anders: Im Folgenden werden Akteure durch Agenten modelliert. Diese verfügen über mathematische Modelle, nach denen sie über die Akzeptanz von Lösungen (Stundenpläne) entscheiden, d.h. die Agenten verfügen über private (mathematische) Zielfunktionen, mit denen sie Lösungen bewerten. 8.2.2 Eigenschaften von Koordinationsproblemen und Agenten Koordinationsprobleme bestehen darin, die Entscheidungsfindung von kooperierenden Agenten mit individuellen Zielen aufeinander abzustimmen. Ziel der Koordination ist es, die sich bietenden Vorteile einer Kooperation „vollständig auszuschöpfen“ (vgl. Fink, 2007). Ein Koordinationsproblem ist ein Optimierungsproblem, dass durch eine Menge von Agenten dezentral unter folgenden Annahmen zu lösen ist. <?page no="214"?> 214 8 Multiagenten-Planen Autonome Agenten: Die Agenten sind autonom und verhalten sich eigennützig. Konkurrierende Ziele: Die Agenten verfolgen individuelle, in Konflikt stehende Ziele. Private Informationen: Die Zielfunktionen der Agenten sind private Informationen. Gesucht ist eine Lösung, die ein vorgegebenes Koordinationsziel (globales Ziel) erreicht. Im Folgenden werden Probleminstanzen mit zwei Agenten angenommen. Instanzen von Koordinationsproblemen mit zwei Agenten A und B: Gemeinsamer Lösungsraum L der Agenten Private (lokale) Ziele der Agenten: z A : L → ℝ ; z B : L → ℝ Koordinationsziel (globales Ziel) Beispiel 8.2 In Abb. 8.2 ist eine Probleminstanz für das einleitende Stundenplanungsproblem als Koordinationsproblem dargestellt. Der Lösungsraum besteht aus fünf alternativen Stundenplänen. Jeder Student wird durch einen Agenten mit privater Zielfunktion und einem Akzeptanzverhalten modelliert. Abb. 8.2: Koordinationsprobleme <?page no="215"?> 8.2 Dezentrale Planung durch mehrere Agenten 215 Tipps für Dozenten Man kann eine Abgrenzung zu dem Teil I des Buches vornehmen. Dort werden „zentrale“ Planungssituationen mit lediglich einem Entscheidungsträger und vollständiger Information behandelt. 8.2.3 Problemstruktur Folgende Koordinationsprobleme können unterschieden werden: Kombinatorische, ganzzahlige oder reell-wertige Probleme Statische oder dynamische Probleme Stochastische oder deterministische Probleme Nachfolgend werden exemplarisch komplexe kombinatorische Optimierungsprobleme betrachtet. Lösungsräume sind daher Mengen, die Kombinationen enthalten. Beispiele für reell-wertige Probleme finden sich dagegen u.a. in Ethamo et al. (2001). Dort ist eine geographische Aufteilung eines Sees unter Ländern gesucht, die Fischereirechte aushandeln. Nachfolgend werden deterministische Probleme betrachtet. Agenten-basierte Ansätze sind aber auch dann geeignet, wenn stochastische Elemente im Problem zu berücksichtigen sind (z.B. Stundenausfall). Auf diese Aspekte wird nachfolgend nicht eingegangen. Üblicherweise sind die Lösungsräume der zu lösenden Probleminstanzen sehr groß und können daher nicht vollständig berechnet und den Agenten vorgegeben werden (vgl. auch kombinatorische Optimierungsprobleme). Daher werden Lösungsräume auch hier indirekt beschrieben, indem Eigenschaften von Lösungen unter Berücksichtigung von gegebenen Problemgrößen bzw. Parametern formuliert werden. Es wird im Folgenden angenommen, dass die hierzu benötigten Parameter öffentlich sind. Öffentliche Parameter sind allen Agenten bekannt. 8.2.4 Agenten und Informationen Dezentrale Entscheidungsfindung: Die Auswahl einer Lösung aus dem Lösungsraum erfolgt dezentral durch autonome, eigennützige Agenten unter Berücksichtigung von privaten Informationen. <?page no="216"?> 216 8 Multiagenten-Planen Die Agenten, die gemeinsam ein Entscheidungsproblem lösen, sind autonom. Das bedeutet, dass sie selbständig über die Akzeptanz von Lösungen entscheiden. Es gibt keinen, den Agenten übergeordneten (zentralen) Entscheidungsträger. Die Agenten verfolgen eigennützig individuelle Ziele. Die individuellen Ziele werden auch als lokale Ziele bezeichnet. Es können monetäre Ziele (z.B. Kosten) und nicht-monetäre Ziele (z.B. Fertigungsdauer, Nutzen) unterschieden werden. Verfolgen Agenten gleichartige Ziele, so bezeichnet man diese als homogene Agenten. Verfolgen die Agenten dagegen verschiedenartige Ziele (z.B. Nutzen bzw. Kosten), so bezeichnet man diese als heterogene Agenten. Zwecks Bewertung ihrer Zielerreichung verfügt jeder Agent über ein mathematisches Modell bzw. eine lokale Zielfunktion. Mit der Zielfunktion können Agenten alternative Lösungen bewerten. Die Zielfunktionen der Agenten sind privat, d.h. nur den jeweiligen Agenten bekannt. 8.2.5 Koordination Zwischen den individuellen lokalen Zielen der Agenten werden Zielkonflikte angenommen („konkurrierende Ziele“). Das bedeutet, dass eine Erhöhung der Zielerreichung eines Agenten oft mit einer Verringerung der Zielerreichung eines anderen Agenten einhergeht. Insbesondere sind die individuellen optimalen Lösungen der Agenten verschieden. Die angenommen Zielkonflikte machen es erforderlich, dass sich die Agenten bei der Bearbeitung des Optimierungsproblems koordinieren, d.h. sich auf eine Kompromiss-Lösung einigen. Die Akzeptanz einer Kompromiss-Lösung durch die Agenten setzt voraus, dass die Agenten bereit sind, auf ihre best-mögliche Zielerreichung bzw. auf die individuellen Optima zu verzichten. Es stellt sich daher die Frage, welche Bedingungen ein solcher Kompromiss einhalten soll. Hierzu werden Koordinationsziele formuliert (vgl. u.a. Stadtler, 2009). Mögliche Koordinationsziele (globale Ziele) sind: Zulässigkeit Pareto-Effizienz Soziale Effizienz Fairness Die Zulässigkeit von Lösungen wird grundsätzlich gefordert. Sie stellt wie die Pareto-Effizienz ein Ziel dar, das für alle Agenten angestrebt wird. In Anlehnung an Fink (2004) kann folgende Definition für Pareto-Effizienz formuliert werden. <?page no="217"?> 8.2 Dezentrale Planung durch mehrere Agenten 217 Pareto-Effizienz: Eine Lösung ist Pareto-effizient, wenn kein Agent den eigenen Zielfunktionswert verbessern kann, ohne dabei den Zielfunktionswert eines anderen Agenten zu verschlechtern. Eine Pareto-effiziente Lösung wird auch als Pareto-Optimum bezeichnet (benannt nach dem Mathematiker Vilfredo Pareto, 1848-1923). Häufig existiert für eine Probleminstanz eine Menge an Pareto-effizienten Lösungen. Die Menge aller Pareto-effizienten Lösungen wird als Pareto-Menge oder Pareto-Front bezeichnet. Die Pareto-Front beschreibt eine Teilmenge von Lösungen, aus der die Agenten eine Lösung wählen sollten. Denn für jede Lösung, die nicht in der Pareto-Menge enthalten ist, gibt es eine Lösung in der Pareto-Menge, die für mindestens einen Agenten eine höhere Zielerreichung ermöglicht, ohne die Zielerreichung des anderen zu verringern. Beispiel 8.3 In Abb. 8.3 wird die Pareto-Front für zwei Beispiele (Minimierungsbzw. Maximierungsproblem) dargestellt. In jedem Beispiel besteht der Lösungsraum aus sechs Lösungen. Für jede Lösung l des Lösungsraums L werden pro Beispiel die privaten Zielfunktionswerte der Agenten als Tupel (z A (l), z B (l)) sowie die Pareto-Front angegeben. Im Fall des Minimierungsproblems ist z.B. die Lösung mit den Werten (1, 6) optimal für Agent A. Im Fall des Maximierungsproblems ist z.B. die Lösung mit den Werten (1, 6) optimal für Agent B. Im Falle des Minimierungsproblems gehört z.B. die Lösung mit den Werten (3, 5) nicht zur Pareto-Front, da diese nicht Pareto-effizient ist: Bei Wahl der Lösung mit den Werten (3, 3) anstelle der Lösung mit den Werten (3, 5) kann sich Agent B verbessern, ohne dass sich der Agent A verschlechtert. Abb. 8.3: Pareto-Front <?page no="218"?> 218 8 Multiagenten-Planen Die Pareto-Front kann aus einer gegebenen Menge an Lösungen leicht durch Sortierung identifiziert werden. Hierbei werden alle Lösungen anhand des ersten Zielkriteriums aufsteigend (oder absteigend) sortiert. Die Lösungen der Pareto- Front zeichnen sich nun dadurch aus, dass diese bzgl. des zweiten Zielkriteriums absteigend (aufsteigend) sortiert sind. Die Sortierung kann ausschließlich in Rechner-Simulationen für Analysezwecke durchgeführt werden, da die privaten Zielfunktionswerte in realen Umgebungen nicht bekannt sind. Beispiel 8.4 Nachfolgend ist die Sortierung der Lösungsmenge am Minimierungsbeispiel der Abb. 8.3 dargestellt. Durchläuft man die Tab. 8.1 von oben nach unten, so lassen sich leicht die Pareto-effizienten Lösungen erkennen. z A z B Pareto-Front 1 6 X 3 3 X 3 5 5,5 6 6 4 7 2 X Tab. 8.1: Sortierung einer Lösungsmenge Soziale Effizienz: Eine Lösung ist sozial-effizient, wenn sie die Summe der individuellen Zielfunktionswerte optimiert. Maximierungsproblem: z = z A + z B → max Minimierungsproblem: z = z A + z B → min Eine sozial-effiziente Lösung wird auch als zentrale Lösung bezeichnet. Die Summe der lokalen Zielfunktionen kann nur dann als Koordinationsziel angewendet werden, wenn die Agenten ihre Zielfunktionswerte in derselben Einheit messen (z.B. in Geldeinheiten). Jede sozial-effiziente Lösung ist zugleich eine Pareto-effiziente Lösung. Die Umkehrung gilt nicht, da nicht jede Pareto-effiziente Lösung die Summe der einzelnen lokalen Zielfunktionswerte optimiert. <?page no="219"?> 8.3 Koordination durch Verhandlung 219 Beispiel 8.5 Im Minimierungsbeispiel der Abb. 8.3 und der Tab. 8.1 ist die Lösung mit den Werten (3, 3) eine sozial-effiziente Lösung. Diese hat den minimalen Zielfunktionswert z = 3 + 3 = 6. Eine sozial-effiziente Lösung ist aus der Sicht der einzelnen Agenten häufig nicht optimal. Um nun Anreize für die Agenten zu schaffen, sozial-effiziente Lösungen zu akzeptieren, können zur Koordination sogenannte Ausgleichszahlungen zwischen den Agenten vereinbart werden (Gjerdrum et al., 2001). Die Verwendung von Ausgleichszahlungen setzt notwendig voraus, dass die Agenten die Lösungen des Entscheidungsproblems monetär bewerten (z.B. mit Kosten). Schließlich wird in manchen Anwendungen die Erreichung von Fairness- Kriterien gewünscht. Beispiele für Fairness-Kriterien sind das Nash-Kriterium (Nash, 1950) und das Rawls-Kriterium (Rawls, 1971). Aufgrund der privaten Informationen (Zielfunktionswerte) stellt die Erreichung globaler Ziele eine besondere Herausforderung dar („eine Optimierung, ohne die Zielfunktionswerte zu kennen“). Im Folgenden werden zwei Beispiele für Koordinationsprobleme angegeben. Dezentrales Reihenfolgeproblem Dezentrales Losgrößenproblem Lösung Permutation Losgrößenplan Agenten Heterogen Homogen Lokale Ziele Nicht-monetäre Ziele Monetäre Ziele Globales Ziel Pareto-Effizienz Soziale Effizienz Tab. 8.2: Beispiele für Koordinationsprobleme Koordination durch Verhandlung 8.3.1 Koordinationsmechanismen Zur Koordination von autonomen Agenten mit individuellen, konkurrierenden Zielen werden Koordinationsmechanismen entwickelt. <?page no="220"?> 220 8 Multiagenten-Planen Ein Koordinationsmechanismus beinhaltet einen Ablauf und Regeln, nach denen Agenten eine Lösung aus einem gemeinsamen Lösungsraum L auswählen, um ein vorgegebenes Koordinationsziel zu erreichen. Es werden nun alternative Ansätze zur Koordination angegeben. In Abb. 8.4 wird ein grober, nicht-vollständiger Überblick über verschiedene Ansätze gegeben. Hierbei können u.a. Verhandlungen und Abstimmungen (Wahlen) unterschieden werden. Weitere Ansätze sind bei Huhns und Stephens (1999) zu finden. In einigen automatisierten Verhandlungsmechanismen sind Heuristiken bzw. Metaheuristiken integriert (vgl. u.a. Lang und Fink, 2015). Abb. 8.4: Koordinationsmechanismen 8.3.2 Abstimmung und Wahlen Eine automatisierte Abstimmung ist die Auswahl einer Lösung l ∈ N aus einer Lösungsmenge N ⊆ L durch Agenten anhand einer Abstimmungs- Regel bzw. „Voting-Rule“ (in Anlehnung an Conitzer und Sandholm, 2005). <?page no="221"?> 8.3 Koordination durch Verhandlung 221 In Conitzer und Sandholm (2005) findet sich ein umfassender Überblick über Voting-Rules. Nachfolgend werden exemplarisch drei Regeln kurz beschrieben. Borda-Rule: Die Agenten geben jeweils für jede Lösungen l ∈ N eine Bewertung durch Punkte p l ab. Die Lösung, die von allen Agenten in der Summe die meisten Punkten erhält, ist das Ergebnis der Wahl. Condorcet-Rule: Die Agenten vergleichen die Lösungen paarweise miteinander und geben jeweils Präferenzen ab. Diejenige Lösung, die gegenüber allen anderen Lösungen präferiert wird, ist das Ergebnis der Wahl. Approval-Rule: Die Agenten wählen unabhängig voneinander jeweils eine Teilmenge M ⊂ N ohne Ranking aus. Die Lösung, die am häufigsten durch die Agenten ausgewählt wurde, ist das Ergebnis der Wahl. Die in diesem Kapitel behandelten Koordinationsprobleme zeichnen sich durch sehr große Lösungsräume aus, die den Agenten a priori nicht bekannt sind. Insofern können Abstimmungen zunächst nicht unmittelbar zur Lösung dieser Probleme angewendet werden. Jedoch können Abstimmungen in iterative, verhandlungsbasierte Mechanismen integriert werden. 8.3.3 Verhandlung Automatisierte Verhandlung „ist eine kommunikationsbasierte Suche durch Agenten in einem gemeinsamen Lösungsraum L nach einer einstimmig akzeptierten Lösung“ (Jennings et al., 2001). Bei einer Verhandlung werden iterativ Lösungsvorschläge erzeugt, die von den Agenten angenommen oder abgelehnt werden können. Hierbei können grob zwei Arten der Verhandlung unterschieden werden: Angebot-/ Gegenangebot-Verhandlung: Die Verhandlungspartner unterbreiten sich abwechselnd Angebote und Gegenangebote, bis eine Einigung erzielt werden kann oder die Verhandlung ohne Einigung beendet wird. Die Verhandlungspartner gehen bei der Berechnung von Angeboten (Gegenangeboten) von individuellen, optimalen Lösungen aus. Die Verhandlung basiert somit auf den gegensätzlichen Standpunkten der Verhandlungspartner. Mediator-basierte Verhandlung: Hierbei wird die Verhandlung durch einen Mediator bzw. Vermittler unterstützt (vgl. Fisher und Ury, 1987). Diese Form der Verhandlung wird auch als Harvard-Modell bezeichnet. Der Mediator unterbreitet den Verhandlungspartnern iterativ Lösungsvorschläge. Wenn beide Verhandlungspartner einer Lösung zustimmen, wird diese als vorläufige Lösung angenommen. Ziel ist es, die vorläufige Lösung im Laufe der Verhandlung schrittweise für beide Verhandlungspartner zu verbessern, d.h. Win- <?page no="222"?> 222 8 Multiagenten-Planen Win-Situationen zu erzielen (vgl. auch Raiffa, 1982). Die Verhandlung basiert somit auf den gemeinsamen Standpunkten der Verhandlungspartner. Mediator-basierte Mechanismen eigenen sich oft dann, wenn komplexe Lösungen zu verhandeln sind. Daher werden diese auch erfolgreich im Bereich automatisierter Verhandlungen von Agenten bzw. zur Bearbeitung von komplexen Koordinationsproblemen angewendet. Im Rahmen automatisierter Verhandlungen gilt folgende Definition: Ein Mediator ist ein neutraler Agent, der den Verhandlungsablauf steuert und die Einhaltung von Verhandlungsregeln durch verhandelnde Agenten überwacht. Der Mediator hat keine Entscheidungsbefugnis und unterscheidet sich somit von zentralen Entscheidungsträgern. Ferner sind dem Mediator die privaten Zielfunktionen der Agenten nicht bekannt. Prinzipiell ist es jedoch denkbar, dass Mediatoren Verfahren des maschinellen Lernens anwenden, um Präferenzen der Agenten zu erlernen. In Abb. 8.5 ist exemplarisch das Grundprinzip einer automatisierten, mediatorgestützten Verhandlung zur Koordination von Agenten in Anlehnung an Klein et al. (2003) bzw. Fink (2004) dargestellt. Die Idee der verhandlungsbasierten Koordination ist es, ausgehend von einer zufälligen Startlösung (vorläufig akzeptierte Lösung) einen gemeinsamen Lösungsraum L der Agenten iterativ nach Win- Win-Lösungen zu durchsuchen. Hierzu werden bei jeder Iteration alternative Lösungen aus der Nachbarschaft N(w) der vorläufig akzeptierten Lösung w durch den Mediator gewählt und den Agenten vorgeschlagen. Ein Agent a ∈ {A, B} stimmt mit „Ja“, wenn dieser eine Lösung v akzeptiert. Ein Agent a ∈ {A, B} stimmt mit „Nein“, wenn dieser eine Lösung v nicht akzeptiert. Wird eine Lösung v von beiden Agenten akzeptiert, wird die bislang akzeptierte Lösung w durch die alternative Lösung v ersetzt. Input: Mediator M; Agenten A, B; Lösungsraum L; Anzahl Verhandlungsrunden r [1] M erzeugt akzeptierte Lösung w ∈ L [2] for Verhandlungsrunde i ← 1, …, r do [3] M erzeugt alternative Lösung v ∈ N(w) [4] A,B bewerten die Lösungen v, w [5] A,B stimmen mit „Ja“/ „Nein“ ab [6] if A und B stimmen mit „Ja“ then <?page no="223"?> 8.3 Koordination durch Verhandlung 223 [7] M aktualisiert akzeptierte Lösung w ← v [8] end if [9] end for Output: Akzeptierte Lösung w Abb. 8.5: Mediator-basierter Verhandlungsmechanismus Der Ablauf in Abb. 8.5 ist generisch und kann über die zu definierende Nachbarschaft problemspezifisch angepasst werden. Beispiel 8.6 Der Lösungsraum L beim Stundenplanungsproblem besteht aus der Menge aller zulässigen Stundenpläne. Unter der Nachbarschaft N(w) eines Stundenplans w werden alle Stundenpläne bezeichnet, die sich durch Verlegung einer zufällig gewählten Vorlesung in einen freien Terminblock ergeben. In jeder Iteration wird durch den Mediator ein neuer Stundenplan aus der Nachbarschaft N(w) erzeugt. Zur Bewertung der Stundenpläne verwenden die Agenten A und B lokale Zielfunktionen z A und z B , mit denen sie für jeden Stundenplan einen Nutzen (z.B. „Studierbarkeit“) berechnen. Die durch Verhandlung erreichbare Lösungsgüte bezüglich vorgegebener globaler Koordinationsziele hängt entscheidend von dem Akzeptanzverhalten der Agenten ab. Das Akzeptanzverhalten beschreibt Bedingungen, nach denen Agenten mit „Ja“ stimmen, d.h. eine Lösung akzeptieren. Um mögliche Akzeptanzverhalten der Agenten und deren Einfluss auf die Lösungsgüte zu beschreiben, werden zunächst folgende Begriffe eingeführt. Gegeben sei ein Agent a ∈ {A, B} sowie zwei Lösungen w, v ∈ L. Es sei ein Maximierungsproblem des Agenten a angenommen. Die Lösung v wird als Verbesserung gegenüber der Lösung w bezeichnet, wenn gilt: z a (v) > z a (w). Die Lösung v wird als Verschlechterung gegenüber der Lösung w bezeichnet, wenn gilt: z a (v) < z a (w). Es werden zwei Verhaltensweisen unterschieden. Akzeptanzverhalten Gieriges Verhalten: Ein Agent a ∈ {A, B} akzeptiert ausschließlich Verbesserungen. <?page no="224"?> 224 8 Multiagenten-Planen Kooperatives Verhalten: Ein Agent akzeptiert gelegentlich auch geringfügige Verschlechterungen. Durch kooperatives Verhalten soll eine frühzeitige Stagnation der Verhandlungen vermieden werden. Diese Idee ist vergleichbar mit der Idee im Operations Research, lokale Optima bei einer lokalen Suche durch Akzeptanz von Verschlechterungen wieder zu verlassen. Schließlich sollen Win-Win-Situationen erreicht werden. Anhand der nachfolgenden Szenarien soll aufgezeigt werden, dass Agenten sich jedoch bei freier Verhaltenswahl nicht automatisch kooperativ verhalten (ähnlich der Situation im Gefangenen-Dilemma, das aus der Spieltheorie bekannt ist). Szenario I: Agent A und Agent B sind gierig. Szenario II: Agent A und Agent B sind kooperativ. Szenario III: Agent A ist kooperativ und Agent B ist gierig. Die drei Szenarien werden an Beispielen verdeutlicht. Beispiel 8.7 Abb. 8.6: Szenario I (Maximierungsproblem) In Abb. 8.6 bis Abb. 8.8 sind alternative Lösungen (Stundenpläne) angegeben, die vom Mediator über drei Iterationen vorgeschlagen werden. Es wird ein Maximierungsproblem angenommen. Um das Beispiel überschaubar zu gestalten, seien hier folgende Lösungen {l 0 , l 1 , l 2 , l 3 } bzw. Nachbarschaften N(l 0 ) = {l 1 }, N(l 1 ) = {l 0 , l 2 }, N(l 2 ) = {l 1 , l 3 }, N(l 3 ) = {l 2 } angenommen. Es sei be- <?page no="225"?> 8.3 Koordination durch Verhandlung 225 merkt, das die nachfolgend dargestellte Problematik auch bei großen Nachbarschaften zu beobachten ist. Die Verhandlung startet mit der Lösung w = l 0 . In Abb. 8.6 ist das Ergebnis einer beispielhaft angenommenen Verhandlung für Szenario I dargestellt. Die Verhandlung terminiert bereits sehr früh nach der ersten Verhandlungsrunde, da Agent A den Stundenplan v = l 1 nicht akzeptiert. Der Vorschlag v = l 1 ist für Agent A eine Verschlechterung gegenüber w = l 0 , da z A (l 1 ) < z A (l 0 ) gilt. Die Verhandlung stagniert bzw. wird beendet. Die Abb. 8.6 verdeutlicht weiter, dass das Ergebnis w = l 0 der Verhandlung nicht Pareto-effizient ist. Der Stundenplan l 3 hat für beide Agenten im Vergleich zu Stundenplan l 0 einen höheren Nutzen. Ein gieriges Verhalten führt somit in der Regel nicht zu Pareto-effizienten Lösungen. Abb. 8.7: Szenario II (Maximierungsproblem) Beispiel 8.8 In Abb. 8.7 ist das mögliche Ergebnis einer beispielhaft angenommenen Verhandlung für Szenario II dargestellt. In diesem Szenario akzeptieren beiden Agenten die vorgeschlagenen Lösungen unter der Annahme, dass es sich um relativ geringfügige Verschlechterungen handelt. Auf diese Weise kann schließlich eine Win-Win-Situation erreicht werden. Die Verhandlung terminiert mit dem Stundenplan l 3 , der gegenüber der Startlösung l 0 für beide Agenten eine Verbesserung darstellt. Auf diese Weise kann eine höhere Zielerreichung bezüglich des Koordinationsziels Pareto-Effizienz erreicht werden. <?page no="226"?> 226 8 Multiagenten-Planen Beispiel 8.9 In Abb. 8.8 ist das mögliche Ergebnis einer beispielhaft angenommenen Verhandlung für Szenario III dargestellt. Die Verhandlung terminiert relativ früh mit der Lösung w = l 1 . Jedoch im Vergleich zu Szenario I stellt w = l 1 eine sehr gute Lösung für den gierigen Agenten B und eine sehr schlechte Lösung für den kooperativen Agenten A dar. Um einen schlechteren Nutzen zu verhindern, wird sich Agent A bei zukünftigen Verhandlungen auf das „gemeine“ Verhalten von Agent B einstellen und sich selber auch gierig verhalten. Abb. 8.8: Szenario III (Maximierungsproblem) Wir erkennen folgendes Dilemma (vgl. auch Gefangenen-Dilemma der Spieltheorie): Ein gieriges Verhalten aller Agenten führt zu einer frühen Stagnation (keine Pareto-effizienten Lösungen). Ein kooperatives Verhalten aller Agenten kann hingegen zu einer Win-Win- Situation führen. Ein einzelner Agent kann sich durch Wechsel des Verhaltens (von gierig zu kooperativ) nicht verbessern (ggf. sogar verschlechtern). Bei freier Verhaltenswahl der Agenten stellt sich keine Kooperation ein; die Agenten verhalten sich gierig! <?page no="227"?> 8.4 Dezentrales Reihenfolgeproblem 227 8.3.4 Mechanismus-Design Für den Entwurf von verhandlungsbasierten Koordinationsmechanismen werden häufig folgende Anforderungen formuliert (vgl. Kersten, 2003, Fink, 2004): Fairness Hohe Lösungsqualität Von Fink (2004) werden verschiedene Fairness-Kriterien genannt. Ein Beispiel für ein Fairness-Kriterium besteht darin, dass Agenten nicht durch falsche Angaben (z.B. bzgl. Präferenzen für Lösungen) profitieren können. Fairness stellt eine Voraussetzung dar, dass Agenten einen Koordinationsmechanismus und die mit dem Mechanismus berechneten Lösungen akzeptieren. Durch Koordinationsmechanismen soll das Verhalten der Agenten im Hinblick auf die Erreichung globaler Ziele (z.B. Pareto-Effizienz, soziale Effizienz) ausgerichtet werden. Um eine hohe Lösungsqualität bezüglich vorgegebener Koordinationsziele zu erreichen, werden nachfolgend zwei Ansätze verfolgt. Kooperatives Verhalten aller Agenten auslösen bzw. sicherstellen. Konzepte von intelligenten Suchstrategien in die Verhandlung integrieren. Um ein kooperatives Verhalten aller Agenten auszulösen oder sicherzustellen, und damit eine vorzeitige Stagnation zu vermeiden, können im Verhandlungsmechanismus spezielle Regeln integriert werden, die von den Agenten bei der Abstimmung über Lösungen einzuhalten sind. Ein Beispiel stellt die Mindestakzeptanz- Regel von Fink (2004) dar. Diese erweitert den in Abb. 8.5 dargestellten Koordinationsmechanismus dahingehend, dass Agenten über mehrere Verhandlungsrunden hinweg eine vom Mediator vorgegebene Mindestanzahl an Lösungsvorschlägen akzeptieren müssen. Die Einhaltung der Regel lässt sich durch den Mediator leicht überprüfen. Bei Einhaltung der Regel ist es wahrscheinlich, dass Agenten auch Verschlechterungen akzeptieren müssen (sich also auch kooperativ verhalten), so dass eine frühe Stagnation der Verhandlung vermieden werden kann. Metaheuristiken wurden erfolgreich entwickelt, um eine hohe Lösungsqualität bei der Bearbeitung kombinatorischer Optimierungsprobleme zu erzielen. Die strukturelle Analogie zwischen mediator-basierten Verhandlungen einerseits und Metaheuristiken andererseits legt es nun nahe, metaheuristische Konzepte in automatisierte, mediator-basierte Verhandlungen zu integrieren (vgl. u.a. Homberger, 2009, Lang und Fink, 2015). Dezentrales Reihenfolgeproblem 8.4.1 Problemstruktur Gegeben sind zwei Agenten A und B sowie eine Menge J von Jobs, die von den Agenten gemeinsam auszuführen sind. Somit wird das Problem durch folgende öffentlich bekannte Informationen beschrieben: <?page no="228"?> 228 8 Multiagenten-Planen Öffentliche Parameter: Menge von Agenten {A, B} Menge von Jobs J = {1, …, n} Die Aufgabe der beiden Agenten besteht darin, eine Ausführungsreihenfolge der Jobs festzulegen. Diese wird auch als Permutation bezeichnet. Lösungen des dezentralen Reihenfolgeproblems sind Permutationen. Eine Permutation ist ein Tupel π = (π(1), π(2), …, π(n)), das jeden Job j ∈ J genau einmal enthält. Es bezeichnet π(j) ∈ J den Job, der an Position j ∈ J ausgeführt wird. Der Lösungsraum L ist die Menge aller Permutationen von n Jobs. L besteht aus |L| = n! Permutationen. Für jede Permutation π = (π(1), π(2), …, π(n)) gilt somit: {π(1), π(2), …, π(n)} = J. In Anlehnung an Fink (2004) wird als Anwendungsbeispiel die Just-In-Sequence- Produktion angenommen. Ein Lieferant und ein Abnehmer (z.B. Automobilhersteller) müssen sich auf die Reihenfolge („Sequenz“) bzgl. der Herstellung und Lieferung von Teilen einigen. In diesem Beispiel ist der Lieferant der Agent A und der Abnehmer der Agent B. Die Schritte „Herstellung und Lieferung eines Teiles durch den Lieferanten“ und die anschließende „Verbauung des Teils im Fahrzeug durch den Abnehmer“ werden zusammen als ein Job aufgefasst. Beispiel 8.10 Abb. 8.9: Reihenfolgeplanung (Just-In-Sequence) <?page no="229"?> 8.4 Dezentrales Reihenfolgeproblem 229 Gegeben ist eine Menge J = {1, 2, 3, 4} von n = 4 Jobs (vgl. Abb. 8.9). Die Permutation π = (3, 4, 1, 2) drückt aus, dass an erster Position der Job 3, an zweiter Position der Job 4 usw. ausgeführt werden. In diesem Fall gilt: π(1) = 3, π(2) = 4, usw. Der Lösungsraum besteht aus 4! = 24 verschiedenen Permutationen. Neben dem dargestellten Beispiel aus der Betriebswirtschaft findet sich die Aufgabe einer dezentralen Reihenfolgeplanung häufig auch bei der Zusammenarbeit von Robotern oder autonomen Fahrzeugen wieder. Die Problemstellung ist deterministisch und statisch. Es handelt sich um ein NP-schweres kombinatorisches Optimierungsproblem, dass dezentral durch die Agenten zu lösen ist. 8.4.2 Agenten und private Informationen Im Folgenden seien heterogene Agenten angenommen, die über verschiedenartige lokale Zielfunktionen verfügen, um Permutationen zu bewerten. Die Zielfunktionen der Agenten und die zur Berechnung von Zielfunktionswerten benötigten Problemdaten sind private Informationen. Nachfolgend werden die Agenten in Anlehnung an Fink (2004) bzw. Fink und Voß (2003) modelliert. 8.4.2.1 Agent A (Lieferant) Der Agent A bewertet eine Permutation π einer Menge J = {1, …, n} von Jobs anhand anfallender Rüstkosten. Private Parameter von Agent A: Rüstkosten ∈ i h r , ℝ 0+ , h, i ∈ J Private lokale Zielfunktion von Agent A: Gesucht ist eine Permutation π = (π(1), …, π(n)), so dass die Summe z A der anfallenden Rüstkosten minimiert wird: min r z n j j j → = ∑ = − 2 ) ( ), 1 ( A π π Der Agent A bewertet Permutationen mit anfallenden Rüstkosten (monetäres Ziel). Hierzu sei angenommen, dass alle Jobs auf derselben Maschine ausgeführt werden. Um einen Job auszuführen, ist die Maschine einzurichten, d.h. „zu rüsten“. Die Einrichtung der Maschine zur Durchführung eines Jobs i ist mit Rüstkosten verbunden. Es sei angenommen, dass die Rüstkosten eines Jobs i ∈ J von dem zuvor auf der Maschine ausgeführten Job h ∈ J abhängig sind. Agent A <?page no="230"?> 230 8 Multiagenten-Planen verfügt über eine private Rüstkostenmatrix R = (r h,i ), h, i = 1, …, n. In der Matrix sind für jeden Job i und jeden Vorgänger h die verbundenen Rüstkosten r h,i abgelegt. Die Kosten werden mit Geldeinheiten angegeben. Tipps für Dozenten Hinweisen, dass die Rüstkosten im Reihenfolgeproblem anders definiert sind als im Losgrößenproblem. Beispiel 8.11 In Abb. 8.10 sind für eine Probleminstanz mit n = 4 Jobs und eine Lösung die Berechnung des Zielfunktionswertes des Agenten A beschrieben. Abb. 8.10: Lokaler Zielfunktionswert von Agent A für eine Lösung einer Probleminstanz mit n =4 Jobs. 8.4.2.2 Agent B (Abnehmer) Der Agent B bewertet eine Permutation π mit der benötigten Fertigungsdauer der Jobs (kein monetäres Ziel). Sein lokales Ziel ist die Minimierung der Fertigungsdauer (vgl. Fink und Voß, 2003). Es sei dabei angenommen, dass Agent B die Jobs auf einer Menge M von Maschinen ausführt. Hierbei ist ein Kontinuier- <?page no="231"?> 8.4 Dezentrales Reihenfolgeproblem 231 liches Flow Shop Scheduling Problem zu lösen. Das Kontinuierliche Flow Shop Scheduling Problem ist ein deterministisches, statisches, kombinatorisches Optimierungsproblem. Kontinuierliches Flow Shop Scheduling Problem Parameter: Gegeben ist eine Menge M = {1, …, m} von Maschinen, auf denen eine gegebene Menge J = {1, …, n} von Jobs bearbeitet werden. Alle Jobs durchlaufen die Maschinen in der vorgegebenen Maschinen-Anordnung 1, …, m. Für jeden Job h ∈ J und jede Maschine i ∈ M ist eine Bearbeitungszeit t h,i ∈ ℝ 0+ bekannt. Zielfunktion: Gesucht ist eine Reihenfolge (Permutation) der Jobs, nach der Jobs nacheinander gestartet werden, so dass unter Berücksichtigung der Nebenbedingungen die Fertigungsdauer bzw. Zeitspanne (engl. makespan) zur Bearbeitung aller Jobs minimiert wird. Nebenbedingungen: Jeder Job muss auf jeder Maschine genau einmal bearbeitet werden. Jede Maschine kann zu jedem Zeitpunkt maximal einen Job bearbeiten. Die Bearbeitung von Jobs muss ohne Unterbrechung, also „kontinuierlich“, durchgeführt werden, d.h. vor den Maschinen 2, …, m dürfen keine Wartezeiten für die Jobs entstehen. Jeder Job muss ohne Wartezeit auf den Maschinen 2, …, m bearbeitet werden. Da Maschinen immer nur einen Job bearbeiten können, kann die Vermeidung von Wartezeiten es erfordern, dass der Start der Bearbeitung von Jobs auf der ersten Maschine verzögert wird. Um diesen Aspekt und die lokale Zielfunktion von Agent B formulieren zu können, werden folgende Definitionen eingeführt. Wartezeit und Verzögerung eines Jobs (vgl. Fink und Voß, 2003). Wartezeit: Sollen auf einer Maschine i ∈ M zunächst der Job h ∈ J und anschließend der Job j ∈ J gestartet werden, so muss Job j vor der Maschine 1 mindestens w h,j,i Perioden warten, damit dieser an der Maschine i ohne Wartezeit ausgeführt werden kann. − = ∑ ∑ = − = 0 , max 2 1 , 1 , , , i k k j i k k h i j h t t w Verzögerung: Sollen zunächst der Job h ∈ J und anschließend der Job j ∈ J gestartet werden, so kann der Job j erst mit einer Verzögerung von d h,j Perioden auf Maschine 1 gestartet werden, um Wartezeiten an den Maschinen 2, …, m zu vermeiden. <?page no="232"?> 232 8 Multiagenten-Planen { } i j h m i j h w d , , 1 , max ≤ ≤ = Der zuerst gestartete Job π(1) einer Permutation π wird ohne Verzögerung zum Zeitpunkt t = 0 gestartet. Beispiel 8.12 In Abb. 8.11 wird für eine Probleminstanz und einer gegebenen Lösung π = (3, 4, 1, 2) die Verzögerungen und Wartezeiten für den Job 4 erläutert. Es gilt: - Die Wartezeit von Job 4 vor Maschine 1 beträgt w 3,4,1 = t 3,1 = 3. - Die Wartezeit von Job 4 vor Maschine 2 beträgt: w 3,4,2 = (t 3,1 + t 3,2 ) - t 4,1 = (3 + 2) - 1 = 4. - Die Wartezeit von Job 4 vor Maschine 3 beträgt: w 3,4,3 = (t 3,1 + t 3,2 + t 3,3 ) - (t 4,1 + t 4,2 ) = (3 + 2 + 3) - (1 + 2) = 8 - 3 = 5. - Damit ergibt sich eine Verzögerung von Job 4 zu d 3,4 = max{w 3,4,1 , w 3,4,2 , w 3,4,3 } = max{3, 4, 5} = 5 Perioden. <?page no="233"?> 8.4 Dezentrales Reihenfolgeproblem 233 Abb. 8.11: Berechnung von Wartezeiten Abb. 8.12: Lokaler Zielfunktionswert von Agent B für eine Lösung einer Probleminstanz mit vier Jobs <?page no="234"?> 234 8 Multiagenten-Planen Beispiel 8.13 In Abb. 8.12 ist für eine Probleminstanz und deren Lösung die Berechnung des Zielfunktionswertes des Agenten B beschrieben. Die Verzögerungen d h,j , h, j ∈ J, können unabhängig von einer konkreten Lösung vor der Bearbeitung des Problems berechnet werden. Diese stellen somit Eingabeparameter des Problems dar, die aus den gegebenen Bearbeitungszeiten t h,i , mit h ∈ J, i ∈ M, zu ermitteln sind. Der Agent B bewertet eine Permutation π einer Menge J = {1, …, n} von Jobs anhand der Fertigungsdauer. Private Parameter von Agent B: Menge von Maschinen M = {1, …, m} Bearbeitungszeiten t h,i ∈ ℝ 0+ , h ∈ J, i ∈ M Verzögerungen d h,j ∈ ℝ 0+ , h, j ∈ J Private lokale Zielfunktion von Agent B: Gesucht ist eine Permutation π = (π(1), …, π(n)), so dass die Fertigungsdauer (engl. makespan) z B minimiert wird: min t d z m i i n n j j j → + = ∑ ∑ = = − 1 ), ( 2 ) ( ), 1 ( B π π π Die Fertigungsdauer errechnet sich aus der Summe aller Verzögerungen und der Summe der Bearbeitungszeiten des letzten Jobs π(n) auf allen Maschinen. Es sei bemerkt, dass Job π(1) zum Zeitpunkt t = 0 ohne Verzögerung gestartet wird. 8.4.3 Koordination 8.4.3.1 Zielkonflikte Die lokalen Ziele der Agenten - Minimierung der Kosten und Minimierung der Fertigungsdauer - stehen in Konflikt zueinander. Beispiel 8.14 In Tab. 8.3 sind alle Permutationen des Lösungsraumes einer Probleminstanz mit n = 4 Jobs zusammen mit ihren Zielfunktionswerten angegeben. Die Zielfunktionswerte der Agenten verdeutlichen den Zielkonflikt: Die optimale Per- <?page no="235"?> 8.4 Dezentrales Reihenfolgeproblem 235 mutation für Agent A ist die Lösung π 9 = (2, 3, 1, 4) mit dem Zielfunktionswert z A (π 9 ) = 7 (Geldeinheiten). Der Zielfunktionswert von Agent B beträgt z B (π 9 ) = 13 (Zeiteinheiten). Eine optimale Permutation von Agent B ist die Lösung π 8 = (2, 1, 4, 3) mit dem Zielfunktionswert z B (π 8 ) = 12 (Zeiteinheiten). Der Zielfunktionswert von Agent A beträgt z A (π 8 ) = 10 (Geldeinheiten). i π i z A z B i π i z A z B 1 1, 2, 3, 4 14 14 13 3, 1, 2, 4 12 14 2 1, 2, 4, 3 13 13 14 3, 1, 4, 2 13 13 3 1, 3, 2, 4 18 14 15 3, 2, 1, 4 13 14 4 1, 3, 4, 2 22 13 16 3, 2, 4, 1 12 14 5 1, 4, 2, 3 12 14 17 3, 4, 1, 2 14 13 6 1, 4, 3, 2 13 12 18 3, 4, 2, 1 18 14 7 2, 1, 3, 4 18 13 19 4, 1, 2, 3 10 14 8 2, 1, 4, 3 10 12 20 4, 1, 3, 2 17 13 9 2, 3, 1, 4 7 13 21 4, 2, 1, 3 20 14 10 2, 3, 4, 1 10 13 22 4, 2, 3, 1 13 14 11 2, 4, 1, 3 13 13 23 4, 3, 1, 2 13 12 12 2, 4, 3, 1 10 12 24 4, 3, 2, 1 15 13 Tab. 8.3: Lösungsraum und private Zielfunktionswerte für eine Probleminstanz mit n = 4 Jobs (für jede Permutation sind Kosten von Agent A und Fertigungsdauer von Agent B angegeben) 8.4.3.2 Koordinationsziel Ein Koordinationsziel (globales Ziel) ist die Berechnung einer Paretoeffizienten Permutation. Beispiel 8.15 Im Diagramm der Abb. 8.13 sind für jede Permutation des Lösungsraumes aus Tab. 8.3 die Zielfunktionswerte der Agenten als Punkte (z A , z B ) eingetragen. <?page no="236"?> 236 8 Multiagenten-Planen Es sei bemerkt, dass einige Permutationen identische Zielfunktionswerte haben und somit im Diagramm nicht unterschieden werden, da sie übereinander liegen. Die Pareto-Front besteht aus der Menge {π 8 , π 9 , π 12 }. Wie die Abb. 8.13 verdeutlicht, sind Permutationen außerhalb der Pareto-Front für die Agenten nicht sinnvoll: Für jede Lösung außerhalb der Pareto-Front kann eine Lösung in der Pareto-Front gewählt werden, die für mindestens einen der Agenten eine höhere Zielerreichung ermöglicht. Abb. 8.13: Darstellung der Pareto-Front für eine Instanz mit n = 4 Jobs Beispiel 8.16 Um die Komplexität des Problems zu verdeutlichen, sind in Abb. 8.14 exemplarisch die Zielfunktionswerte für eine geringfügig größere, aber immer noch sehr kleine Instanz (n = 6 Jobs) dargestellt. Abb. 8.14: Pareto-Front für eine Instanz mit n = 6 Jobs <?page no="237"?> 8.5 Lokaler Verhandlungsmechanismus 237 Tipps für Dozenten Darauf hinweisen, dass die Pareto-Menge den Agenten nicht bekannt ist, da die Zielfunktionswerte privat sind. Darauf hinweisen, dass den einzelnen Agenten für große Probleminstanzen die individuellen optimalen Lösungen nicht bekannt sind, da ein NPschweres Problem vorliegt. Lokaler Verhandlungsmechanismus Nachfolgend wird ein verhandlungs- und mediator-basierter Koordinationsmechanismus vorgestellt, der auf viele dezentrale Entscheidungsprobleme anwendbar ist. Dem Mechanismus liegt ein generischer Ansatz zugrunde, deren Operatoren problemspezifisch angepasst werden können. Es wird eine Voting-Rule integriert, die im Hinblick auf das zu erreichende Koordinationsziel ausgewählt werden kann. Exemplarisch wird die Anpassung des Mechanismus am Beispiel von Probleminstanzen des dezentralen Reihenfolgeproblems mit zwei Agenten beschrieben. Insofern wird zugleich ein Ansatz zur Lösung des dezentralen Reihenfolgeproblems vorgestellt. 8.5.1 Ablauf In Abb. 8.15 ist der Ablauf des lokalen Verhandlungsmechanismus dargestellt. Der Mechanismus unterscheidet zwei Arten von Lösungen: Eine akzeptierte Lösung ist eine von den Agenten als Verhandlungsergebnis akzeptierte Lösung. Eine alternative Lösung ist eine von den Agenten als Zwischenergebnis gewählte Lösung, bei der die Suche fortgesetzt wird. Die Suche der Agenten wird mit Hilfe eines Mediators M ausgeführt. Der Mediator hat beim lokalen Verhandlungsmechanismus drei wesentliche Aufgaben: Erzeugung einer Menge von Startlösungen: Die Erzeugung sollte zufallsbasiert sein, um möglichst keinen Agenten zu bevorzugen (Neutralität des Mediators). Die Erzeugung ist problemspezifisch festzulegen (Init-Operator). Iterative Erzeugung von Nachbarschaften: Die Berechnung einer Nachbarschaft ist problemspezifisch festzulegen (Neighbor-Operator). Verwaltung von akzeptierter und alternativer Lösung. Um ein kooperatives Verhalten der Agenten sicherzustellen, ist in den Mechanismus eine Voting-Rule integriert. Anhand dieser wählen die Agenten in jeder Iteration gemeinsam eine neue alternative Lösung aus der Nachbarschaft N aus, von der die Suche fortgesetzt wird. Da die Voting-Rule die Auswahl einer Lösung und damit den Fortgang der Suche sicherstellt, wird eine Stagnation der Verhand- <?page no="238"?> 238 8 Multiagenten-Planen lung vermieden. Da bei der Abstimmung die Agenten auch Verschlechterungen akzeptieren, kann von einer Kooperation der Agenten gesprochen werden. Sobald durch die fortgesetzte Suche der Agenten eine Win-Win-Situation eintritt, d.h. eine Lösung v berechnet wird, die für beide Agenten gegenüber der zuletzt akzeptierten Lösung w eine Verbesserung darstellt, stimmen beide Agenten mit „Ja“. In diesem Fall wird die Lösung w durch die Lösung v ersetzt. Input: Mediator M; Agenten A, B; Lösungsraum L; Verhandlungsrunden r; Lösungsanzahl a [1] M erzeugt Lösungsmenge N ← Init(L, a) [2] A,B wählen alternative Lösung v ←Voting(N) [3] M initialisiert akzeptierte Lösung w ← v [4] for Verhandlungsrunde i ← 1, …, r do [5] M erzeugt Lösungsmenge N ← Neighbor(v) [6] A,B wählen alternative Lösung v ← Voting(N) [7] M sendet an A und B das Tupel (w, v) [8] A,B stimmen mit „Ja“/ „Nein“ ab [9] if A und B stimmen mit „Ja“ then [10] M aktualisiert akzeptierte Lösung w ← v [11] end if [12] end for Output: Akzeptierte Lösung w Abb. 8.15: Lokaler Verhandlungsmechanismus Der lokale Verhandlungsmechanismus aus Abb. 8.15 stellt eine Erweiterung des Verhandlungsmechanismus aus Abb. 8.5 dar. In Tab. 8.4 werden die beiden Mechanismen verglichen. Lokaler Verhandlungsmechanismus in Abb. 8.5 Lokaler Verhandlungsmechanismus in Abb. 8.15 Mediator erzeugt in jeder Iteration genau eine alternative Lösung. Mediator erzeugt in jeder Iteration eine Menge alternativer Lösungen. Agenten stimmen in jeder Iteration über Akzeptanz der alternativen Lösung ab. Agenten wählen in jeder Iteration eine alternative Lösung aus der Menge aus. Die Suche wird in jeder Iteration bei der akzeptierten Lösung fortgesetzt. Die Suche wird in jeder Iteration bei der alternativen Lösung fortgesetzt. Tab. 8.4: Unterscheidung lokaler Verhandlungsmechanismen <?page no="239"?> 8.5 Lokaler Verhandlungsmechanismus 239 Durch die Festlegung der Operatoren Init, Neighbor und Voting kann der Mechanismus unterschiedlich ausgestaltet werden. Daher bezeichnet man den Verhandlungsmechanismus auch als generisch. 8.5.2 Problemspezifische Anpassungen Nachfolgend wird am Beispiel des dezentralen Reihenfolgeproblems (vgl. Abschnitt 8.4) die problemspezifische Anpassung des Mechanismus beschrieben. Die Anpassungen betreffen die Eingabe (Parameter), die Variablen und die Operatoren: Eingabe: Lösungsräume L des dezentralen Reihenfolgeproblems bestehen aus Permutationen. Die Lösungsräume sind in der Regel sehr groß und können daher oft nicht a priori berechnet werden. Daher werden anstelle der Lösungsräume die öffentlichen Problemparameter des dezentralen Entscheidungsproblems als Eingabe des Algorithmus vorgegeben. Im Falle des dezentralen Reihenfolgeproblems bedeutet dies, dass anstelle eines Lösungsraumes L lediglich die Anzahl n der zu permutierenden Jobs angegeben wird. Variablen: Die akzeptierte Lösung w und die alternative Lösung v sind Permutationen. Die Lösungsmenge N beinhaltet ebenfalls Permutationen. Operatoren: Die Operatoren Init und Neighbor sind problemspezifisch zu definieren. In Abb. 8.16 und Abb. 8.17 sind mögliche Varianten für die Operatoren Init und Neighbor dargestellt. Input: Mediator M; Jobanzahl n, Lösungsanzahl a [1] M initialisiert Menge N ← ∅ [2] while |N| < a do [3] M initialisiere Menge J ← {1, .., n} [4] for i ← 1, …, n do [5] M wählt gleichverteilt-zufällig j ∈ J [6] M aktualisiert Permutation π(i) ← j [7] M aktualisiert J ← J \ {j} [8] end for [9] M erzeugt Lösung π ← (π(1), …, π(n)) [10] M aktualisiert Menge N ← N ∪ {π} [11] end while Output: Lösungsmenge N Abb. 8.16: Init für dezentrales Reihenfolgeproblem <?page no="240"?> 240 8 Multiagenten-Planen Input: Mediator M; Lösung v [1] M initialisiert Menge N ← ∅ [2] for Position i ← 1, …, (n-1) do [3] for Position j ← (i+1), …, n do [4] M initialisiert Kopie π ← v [5] M merkt Job k ← π(i) [6] M tauscht Job π(i) ← π(j) [7] M tauscht Job π(j) ← k [8] M aktualisiert Menge N ← N ∪ {π} [9] end for [10] end for Output: Lösungsmenge N Abb. 8.17: Neighbor für dezentrales Reihenfolgeproblem Die Nachbarschaft einer Permutation v besteht aus allen Permutationen, die sich ergeben, wenn die Jobs zweier Positionen i, j ∈ {1, …, n}, i ≠ j, getauscht werden. Jede Nachbarschaft besteht aus 𝑛𝑛(𝑛𝑛−1) 2 Permutationen. Beispiel 8.17 In Tab. 8.5 wird die Nachbarschaft einer Lösung bzw. Permutation v am Beispiel verdeutlicht. Die Nachbarschaft besteht aus 4(4 - 1)/ 2 = 6 Permutationen. v N 2, 4, 1, 3 4, 2, 1, 3 Tausche Jobs an den Positionen 1, 2 1, 4, 2, 3 Tausche Jobs an den Positionen 1, 3 3, 4, 1, 2 Tausche Jobs an den Positionen 1, 4 2, 1, 4, 3 Tausche Jobs an den Positionen 2, 3 2, 3, 1, 4 Tausche Jobs an den Positionen 2, 4 2, 4, 3, 1 Tausche Jobs an den Positionen 3, 4 Tab. 8.5: Nachbarschaft für Reihenfolgeproblem (Beispiel) <?page no="241"?> 8.5 Lokaler Verhandlungsmechanismus 241 Unter einem Zyklus einer Verhandlung bzw. Suche wird das Phänomen verstanden, dass in aufeinanderfolgenden Verhandlungsrunden abwechselnd wiederkehrend die gleichen zwei Lösungen gewählt werden. Um Zyklen zu vermeiden, empfiehlt es sich, dass anstelle der vollständigen Nachbarschaft nur ein Teil der Nachbarschaft zufallsbasiert berechnet wird. Hierzu werden die Schritte [4] bis [8] in Neighbor (vgl. Abb. 8.17) nur mit einer bestimmten Wahrscheinlichkeit P < 1 ausgeführt. Beispiel 8.18 Werden beispielsweise in aufeinanderfolgenden Verhandlungsrunden die Lösungen (2, 4, 1, 3), (2, 4, 3, 1), (2, 4, 1, 3), (2, 4, 3, 1), etc. ausgewählt, liegt ein Zyklus vor. Beide Lösungen sind Nachbarn. Bei einer zufallsbasierten Beschränkung der Nachbarschaft kann der Zyklus vermieden werden. 8.5.3 Voting-Rule Prinzipiell können verschiedene Voting-Rules angewendet werden. Bei der Auswahl einer Voting-Rule für den Verhandlungsmechanismus sind folgende Aspekte zu betrachten: Kommunikationsaufwand: Wie hoch ist der Kommunikationsaufwand, um bei einer Wahl das Ergebnis zu ermitteln? Strategisches Verhalten: Können Agenten durch falsche Angaben bzgl. ihrer Präferenzen ihre lokale Zielerreichung zu Lasten der Zielerreichung des anderen Agenten verbessern? Lösungsqualität: Wird durch iterative Anwendung einer Voting-Rule im Rahmen des Verhandlungsmechanismus ein angestrebtes Koordinationsziel erreicht? In Abb. 8.18 ist eine Voting-Rule beschrieben, die sich an die Approval-Voting- Rule anlehnt und mit der für Instanzen des dezentralen Reihenfolgeproblems eine hohe Lösungsqualität erzielt werden kann. Dies Voting-Rule wird nachfolgend als zweistufiges Voting bezeichnet. Hierbei muss einer der beiden Agenten A oder B zunächst eine Teilmenge bzw. Vorauswahl V ⊂ N von d Lösungen mit Approval vorauswählen. Die Größe d der zu wählenden Teilmenge V ist ein Parameter der Voting-Rule (z.B. d = 0,1 · |N|), die vom Mediator vorgegeben wird. Anschließend muss der andere Agent (B oder A) aus der Vorauswahl die alternative Lösung v wählen. In jeder Iteration des Verhandlungsmechanismus, d.h. bei jeder erneuten Ausführung der Voting-Rule, wird die Reihenfolge der Agenten beim Voting getauscht. Auf diese Weise soll eine „faire“ Berücksichtigung der Agenten erfolgen. Verhalten der Agenten: Es sei angenommen, dass die Agenten in den Schritten [4] bzw. [6] in der Methode Voting aus Abb. 8.18 die aus ihrer <?page no="242"?> 242 8 Multiagenten-Planen Sicht besten Lösungen bzw. die beste Lösung auswählen (kein strategisches Verhalten). Die beste Lösung ist diejenige Lösung, mit der ein Agent den höchsten Zielfunktionswert (Maximierung) oder den niedrigsten Zielfunktionswert (Minimierung) erreicht. Input: Mediator M; Agenten A, B; Lösungsmenge N [1] M gibt d (Größe der Vorauswahl) vor [2] M gibt Reihenfolge a, b ∈ {A, B}, a ≠ b vor [3] Agent a bewertet Lösungen in N mit Zielfunktion z a [4] Agent a wählt V ⊂ N mit |V| = d [5] Agent b bewertet Lösungen in V mit Zielfunktion z b [6] Agent b wählt v ∈ V Output: Lösung v Abb. 8.18: Zweistufiges Voting Beispiel 8.19 Abb. 8.19: Abstimmung im lokalen Verhandlungsmechanismus In Abb. 8.19 ist die Voting-Rule am Beispiel des dezentralen Reihenfolgeproblems (Minimierungsproblem) dargestellt. Die vom Mediator M erstellte Nachbarschaft N, bestehend aus |N| = 5 Lösungen, wird von Agent A bewertet. <?page no="243"?> 8.5 Lokaler Verhandlungsmechanismus 243 Dieser muss eine vorgegebene Anzahl d = 3 = |V| von Lösungen auswählen. Agent A wählt die aus seiner Sicht besten drei Lösungen als Vorauswahl V aus (Lösungen mit den geringsten Kosten). Der Agent B bewertet die von Agent A ausgewählten Permutationen und wählt dann die aus seiner Sicht beste Permutation v = (2, 1, 4, 3) ∈ V aus (Lösung mit der geringsten Fertigstellungszeit). Es sei daran erinnert, dass die lokalen Zielfunktionswerte privat sind. 8.5.4 Konvergenzanalyse Eine Konvergenzanalyse sei anhand eines Beispiels diskutiert. Beispiel 8.20 In der zweiteiligen Abbildung 8.20 ist exemplarisch ein möglicher Konvergenzverlauf für eine Probleminstanz mit n = 100 Jobs dargestellt. In dem Testlauf wurden pro Verhandlungsrunde |N| = 1500 alternative Lösungen mit dem Neighbor-Operator erzeugt. Die Anzahl der Vorauswahl im Voting wurde auf d = |V| = 10 Lösungen festgelegt. Im Diagramm oben sind für Agent A pro Verhandlungsrunde die Kosten der gewählten alternativen Lösung v und der akzeptierten Lösung w dargestellt. Es ist zu erkennen, dass die gewählten alternativen Lösungen auch (geringfügige) Verschlechterungen gegenüber den akzeptierten Lösungen darstellen. Somit kann eine frühe Stagnation vermieden werden. Gleiches gilt für den Agenten B. In dem Fall, dass v eine Win- Win-Lösung gegenüber der bislang akzeptierten Lösung w darstellt, wird w durch v aktualisiert. <?page no="244"?> 244 8 Multiagenten-Planen Abb. 8.20: Konvergenzverlauf (Minimierungsproblem) Dezentrales Losgrößenproblem 8.6.1 Koordination in Lieferketten Zur Modellierung der Koordination von Lieferketten (engl. supply chains) werden häufig Losgrößenprobleme verwendet (vgl. Dudek, 2004). Nachfolgend wird eine dezentrale Variante des Losgrößenproblems aus Abschnitt 4.6 beschrieben (vgl. Homberger, 2010). Dieses Problem wird nachfolgend als dezentrales Losgrößenproblem bezeichnet. Es unterscheidet sich von dem Losgrößenproblem aus Abschnitt 4.6 durch folgende zusätzliche Annahmen: Verteilung der Produktion: Die Produktion von Erzeugnissen ist auf mehrere selbstständige Firmen (Agenten) disjunkt verteilt. Verteilung der Kosten: Jede Firma trägt (lediglich) die Rüst- und Lagerkosten, die für die eigenen Erzeugnisse anfallen. Autonomie: Die Berechnung einer Lösung (Losgrößenplan) erfolgt dezentral durch die beteiligten Firmen. Die Firmen sind gleichberechtigte Entscheidungsträger. Private Informationen: Die Kosten der Firmen und deren lokale Zielfunktionen sind private Informationen. Tipps für Dozenten Das Losgrößenproblem aus Abschnitt 4.6 sollte vorab dargestellt oder zumindest an einem Beispiel verdeutlicht werden. <?page no="245"?> 8.6 Dezentrales Losgrößenproblem 245 8.6.2 Problemstruktur Die Produktion einer Menge E von Erzeugnissen ist auf zwei Firmen (z.B. ein Lieferant und ein Abnehmer) disjunkt verteilt. Die Firmen werden nachfolgend durch zwei Agenten A und B modelliert. Die Menge E wird in zwei Teilmengen E A und E B zerlegt, d.h. E A ∩ E B = ∅, E A ∪ E B = E. Damit ergeben sich die nachfolgenden öffentlichen Eingabedaten des Problems: Öffentliche Parameter Menge von Agenten: {A, B} Menge von Erzeugnissen: E = {1, …, n} Menge von Erzeugnissen von Agent A: E A ⊂ E Menge von Erzeugnissen von Agent B: E B ⊂ E Menge von Fertigerzeugnissen: F = {1, …, g} Menge von Baugruppen: B = {g+1, …, n} Erzeugnisstruktur: K ⊂ {(i, k)| i ∈ B, k ∈ E, i > k} Menge von Perioden: T = {1, …, m} Primärbedarfe: d i,t , i ∈ F, t ∈ T Beispiele 8.21 und 8.22 In Abb. 8.21 ist eine Verteilung der Produktion auf zwei Firmen bzw. Agenten an zwei Beispielen dargestellt. Abb. 8.21: Beispiele für die Verteilung der Produktion (Beispiel 8.21 in linkem Teil der Abbildung bzw. Beispiel 8.22 in rechtem Teil der Abbildung) <?page no="246"?> 246 8 Multiagenten-Planen Das Koordinationsproblem der beiden Agenten A und B besteht darin, einen gemeinsamen Losgrößenplan festzulegen. Lösungen des Koordinationsproblems sind Losgrößenpläne. Jeder Losgrößenplan wird durch ein Tupel l = (B, Y, X, W) ∈ L beschrieben (vgl. Abschnitt 4.6). Bedarfe B = (b i,t ), b i,t ∈ ℕ 0 , i ∈ E, t ∈ T Rüstperioden Y = (y i,t ), y i,t ∈ {0, 1}, i ∈ E, t ∈ T Losgrößen X = (x i,t ), x i,t ∈ ℕ 0 , i ∈ E, t ∈ T Lagerbestände W = (w i,t ), w i,t ∈ ℕ 0 , i ∈ E, t ∈ T Der Lösungsraum L einer Probleminstanz des dezentralen Losgrößenproblems ist eine Menge von Losgrößenplänen. 8.6.3 Agenten und private Informationen Die Agenten verfolgen eigennützig individuelle Ziele. Im Folgenden seien homogene Agenten angenommen, die über gleichartige lokale Zielfunktionen verfügen, um Lösungen (Losgrößenpläne) zu bewerten. Private Parameter von Agent a ∈ {A, B} Rüstkosten ∈ h r ℝ + , a E h ∈ Lagerkosten ∈ h l ℝ + , a E h ∈ Private lokale Zielfunktion von Agent a ∈ {A, B} Minimierung der Kosten von Agent a min w l y r z a E h T i i h h i h h a → ⋅ + ⋅ = ∑ ∑ ∈ ∈ , , E a bezeichnet die Erzeugnisse von Agent a. T bezeichnet die Perioden. Die lokale private Zielfunktion eines Agenten a ∈ {A, B} berechnet die anfallenden Kosten z a . Diese berechnen sich aus der Summe der Rüst- und Lagerkosten, die durch Produktion der Erzeugnisse E a anfallen, die vom Agenten a hergestellt werden. <?page no="247"?> 8.6 Dezentrales Losgrößenproblem 247 8.6.4 Koordination 8.6.4.1 Zielkonflikte Zwischen den lokalen Zielfunktionen der Agenten besteht ein Konflikt. Die jeweiligen kostenminimalen Losgrößenpläne sind verschieden. Beispiel 8.23 Es sei eine Probleminstanz mit n = 2 Erzeugnissen und m = 3 Perioden mit der Erzeugnisstruktur aus Abb. 8.21 (Beispiel 8.21) gegeben. Die Eingabe der Probleminstanz besteht ferner aus den folgenden Primärbedarfen für Erzeugnis 1: d 1,1 = 20, d 1,2 = 30, d 1,3 = 40. Ferner gelten die folgenden Rüst- und Lagerkosten für die Erzeugnisse: r 1 = 40, r 2 = 50, l 1 = 2, l 2 = 3. In Tab. 8.6 ist exemplarisch ein Teil L* ⊂ L des Lösungsraums L gegeben. Ferner sind für jeden Losgrößenplan die Kosten der Agenten und die Gesamtkosten angegeben. Die erste Zeile eines Losgrößenplans bezieht sich auf Erzeugnis 1, das von Agent A hergestellt wird. Die zweite Zeile bezieht sich auf Produkt i = 2, das von Agent B hergestellt wird. Die Menge L* enthält die individuellen optimalen Losgrößenpläne der Agenten sowie den sozialeffizienten Losgrößenplan. In der Tab. 8.6 sind die vier Losgrößenpläne l 13 bis l 16 die kostenminimalen Lösungen für Agent A. Der Losgrößenplan l 1 ist die kostenminimale Lösung für Agent B. Das Beispiel verdeutlicht die Zielkonflikte zwischen den lokalen Zielen der Agenten. Lösungsraum L* Ziel z A Ziel z B Ziel z l Rüste. (y h,i ) Bedarf (b h,i ) Lose (x h,i ) Lagerb. (w h,i ) l 1 1 0 0 1 0 0 20 30 40 90 0 0 90 0 0 90 0 0 70 40 0 0 0 0 260 50 310 l 2 1 0 0 1 0 1 20 30 40 90 0 0 90 0 0 90 0 0 70 40 0 0 0 0 260 100 360 l 3 1 0 0 1 1 0 20 30 40 90 0 0 90 0 0 90 0 0 70 40 0 0 0 0 260 100 360 l 4 1 0 0 1 1 1 20 30 40 90 0 0 90 0 0 90 0 0 70 40 0 0 0 0 260 150 410 l 5 1 0 1 1 0 0 20 30 40 50 0 40 50 0 40 90 0 0 30 0 0 40 40 0 140 290 430 l 6 1 0 1 1 0 1 20 30 40 50 0 40 50 0 40 50 0 40 30 0 0 0 0 0 140 100 240 l 7 1 0 1 20 30 40 50 0 40 30 0 0 140 360 <?page no="248"?> 248 8 Multiagenten-Planen 1 1 0 50 0 40 50 40 0 0 40 0 220 l 8 1 0 1 1 1 1 20 30 40 50 0 40 50 0 40 50 0 40 30 0 0 0 0 0 140 150 290 l 9 1 1 0 1 0 0 20 30 40 20 70 0 20 70 0 90 0 0 0 40 0 70 0 0 160 260 420 l 10 1 1 0 1 0 1 20 30 40 20 70 0 20 70 0 90 0 0 0 40 0 70 0 0 160 310 470 l 11 1 1 0 1 1 0 20 30 40 20 70 0 20 70 0 20 70 0 0 40 0 0 0 0 160 100 260 l 12 1 1 0 1 1 1 20 30 40 20 70 0 20 70 0 20 70 0 0 40 0 0 0 0 160 150 310 l 13 1 1 1 1 0 0 20 30 40 20 30 40 20 30 40 90 0 0 0 0 0 70 40 0 120 380 500 l 14 1 1 1 1 0 1 20 30 40 20 30 40 20 30 40 50 0 40 0 0 0 30 0 0 120 190 310 l 15 1 1 1 1 1 0 20 30 40 20 30 40 20 30 40 20 70 0 0 0 0 0 40 0 120 220 340 l 16 1 1 1 1 1 1 20 30 40 20 30 40 20 30 40 20 30 40 0 0 0 0 0 0 120 150 270 Tab. 8.6: Lösungsraum L* 8.6.4.2 Koordinationsziel Eine Supply Chain wird in der Literatur als „koordiniert“ bezeichnet, wenn die Gesamtkosten der Lieferkette minimiert werden (vgl. Stadtler, 2009). Daher wird folgendes globales Ziel formuliert: Koordinationsziel ist die Berechnung eines sozial-effizienten Losgrößenplans, so dass die Gesamtkosten z beider Agenten minimiert werden: min w l y r z a E h T i i h h i h h a → ⋅ + ⋅ = ∑ ∑ ∈ ∈ , , Beispiel 8.24 In der Tab. 8.6 ist der Losgrößenplan l 6 sozial-effizient. Das Beispiel verdeutlicht somit auch den Zielkonflikt zwischen lokalen Zielen der Agenten einerseits und dem globalen Ziel, die Gesamtkosten zu minimieren, andererseits. <?page no="249"?> 8.7 Genetischer Verhandlungsmechanismus 249 Tipps für Dozenten Darauf hinweisen, dass die Gesamtkosten in der Praxis nicht ermittelt werden können, da die lokalen Ziele der Agenten privat sind. Insofern ist die Zielerreichung eine Herausforderung. Genetischer Verhandlungsmechanismus Es wird nun ein verhandlungsbasierter, mediator-gestützter Koordinationsmechanismus mit folgenden Eigenschaften angegeben (vgl. Abb. 8.22): Generischer, zweiphasiger Ansatz Integration eines Genetischen Algorithmus Koordination mithilfe von Ausgleichszahlungen Der Mechanismus ist auf viele dezentrale Entscheidungsprobleme anwendbar, in denen die zu koordinierenden Agenten monetäre Zielfunktionen verfolgen und Ausgleichszahlungen akzeptieren. Dem Mechanismus liegt ein generischer zweiphasiger Ansatz zugrunde, deren Phasen problemspezifisch angepasst werden können. Exemplarisch wird die Anpassung des Mechanismus am Beispiel von Instanzen des dezentralen Losgrößenproblems mit zwei Agenten beschrieben. Insofern wird zugleich ein Lösungsansatz für das dezentrale Losgrößenproblem vorgestellt. 8.7.1 Individuen und Fitness Im Genetischen Verhandlungsmechanismus wird durch einen Mediator eine Population POP von Individuen verarbeitet. Die Vorgehensweise orientiert sich hierbei an einem Genetischen Algorithmus. Individuen repräsentieren Lösungen des von mehreren Agenten gemeinsam zu lösenden Problems. Aufgrund der privaten Informationen werden Individuen nicht anhand einer Fitness, sondern anhand eines Votings bewertet. In dem Verhandlungsmechanismus wird - im Unterschied zu der üblichen Vorgehensweise bei Genetischen Algorithmen keine Fitness von Individuen berechnet. Dies ist damit zu begründen, dass die zur Berechnung der Fitness eines Individuums I die Zielfunktionswerte z A (l) und z B (l) der Agenten für die repräsentierte Lösung l = d(I) benötigt werden. Mit d(I) wird die durch Dekodierung von I berechnete Problemlösung verstanden (vgl. Abschnitt 6.8). Die Zielfunkti- <?page no="250"?> 250 8 Multiagenten-Planen onswerte werden jedoch als private Informationen angenommen und sind daher dem Mediator nicht bekannt. In beiden Phasen wird von den Agenten jeweils die durchschnittliche Lösungsqualität für eine Menge von Lösungen berechnet, die durch Individuen repräsentiert werden. Es bezeichne d(I) die durch Individuum I repräsentierte Problemlösung. Die durchschnittliche Lösungsqualität eines Agenten a ∈ {A, B} für eine Menge M von Individuen ist wie folgt definiert: ∑ ∈ ⋅ = M I a a M I d z M d )) ( ( | | 1 Die durchschnittliche Lösungsqualität kann nur dezentral von den Agenten berechnet werden. Die berechneten durchschnittlichen Werte stellen, wie die Zielfunktionswerte selber, private Informationen der Agenten dar. 8.7.2 Ablauf In der ersten Phase P-I findet eine Suche der Agenten im gemeinsamen Lösungsraum L in Anlehnung an einen Genetischen Algorithmus mit inkrementeller Ersetzung statt. Hierzu werden durch den Mediator in jeder Verhandlungsrunde aus zwei Eltern genau zwei Kinder berechnet. In der Phase werden keine Ausgleichszahlungen berücksichtigt, um ein strategisches Verhalten der Agenten zu vermeiden (vgl. Homberger und Fink, 2017). In der zweiten Phase P-II wird mithilfe von Ausgleichszahlungen ein Individuum I, und damit eine Lösung d(I), aus der zuletzt in Phase P-I berechneten Population ausgewählt. Ziel ist die Auswahl des Individuums, das eine Lösung mit minimalen Gesamtkosten repräsentiert. Input: Mediator M; Agenten A, B; Anzahl Verhandlungsrunden r; Populationsgröße μ; Lösungsraum L Phase P-I [1] M initialisiert Population POP ← ∅ [2] for i ← 1, …, µ do [3] M erzeugt Individuum: I ← RandomInit() [4] M dekodiert Individuum: I ← Dekodieren(I) [5] M aktualisiert Population: POP ← POP ∪ {I} [6] end for <?page no="251"?> 8.7 Genetischer Verhandlungsmechanismus 251 [7] for Verhandlungsrunde i ← 1, …, r do [8] M selektiert E1 ∈ POP zufällig-gleichverteilt [9] M selektiert E2 ∈ POP zufällig-gleichverteilt [10] M erzeugt Kind: K1 ← Reproduktion(E1) [11] M erzeugt Kind: K2 ← Reproduktion(E2) [12] M variiert Kinder: Crossover(K1, K2) [13] M variiert Kind K1: Mutation(K1) [14] M variiert Kind K2: Mutation(K2) [15] M dekodiert Individuum: d(E1) ← Dekodieren(E1) [16] M dekodiert Individuum: d(E2) ← Dekodieren(E2) [17] M dekodiert Individuum: d(K1) ← Dekodieren(K1) [18] M dekodiert Individuum: d(K2) ← Dekodieren(K2) [19] Kooperative Ersetzung(POP, {E1, E2}, {K1, K2}) [20] end for Phase P-II [21] for each I ∈ POP do [22] M dekodiert Individuum: d(I) ← Dekodieren(I) [23] end for [24] A, B geben verdeckt Gebote für jedes I ∈ POP ab [25] M wählt ein Individuum I ∈ POP anhand der Gebote aus [26] M legt Ausgleichszahlungen anhand der Gebote fest Output: Die durch Indivdiuum I repräsentierte Lösung d(I) Abb. 8.22: Genetischer Verhandlungsmechanismus [1]-[6] Der Mediator erzeugt zufallsbasiert eine Population POP von Individuen. Durch die zufallsbasierte Erzeugung wird der Forderung nach Neutralität des Mediators Rechnung getragen. [7] Es wird eine vorgegebene Anzahl an Verhandlungsrunden (Iterationen) durchgeführt. [8]-[9] Der Mediator selektiert gleichverteilt-zufällig, d.h. ohne Berücksichtigung der Lösungsqualität, zwei Eltern aus der Population. Alle Individuen werden aufgrund der Neutralität des Mediators mit derselben Wahrscheinlichkeit ausgewählt (kein Agent wird bevorzugt). [10]-[14] Der Mediator berechnet zwei Kinder. Hierzu werden Reproduktion, Crossover und Mutation eingesetzt. Da es sich um zufallsbasierte Operatoren handelt, bleibt wiederum die Neutralität des Mediators gewährleistet. <?page no="252"?> 252 8 Multiagenten-Planen [15]-[18] Der Mediator dekodiert Eltern und erzeugte Kinder. Eine Fitnessberechnung, wie bei Genetischen Algorithmen üblich, entfällt. [19] Es findet je nach Abstimmung der Agenten eine Ersetzung von Eltern durch Kinder statt. [20] Die erste Phase P-I ist beendet. Aus der in der letzten Verhandlungsrunde berechneten Population POP wird in der zweiten Phase P-II ein Individuum ausgewählt. [21]-[23] Der Mediator dekodiert die Individuen der Population. [24] Die Agenten geben jeweils verdeckt Gebote für die Individuen in der Population POP ab. Hierbei ist eine Regel zu Gebotsabgabe von den Agenten einzuhalten. [25] Der Mediator wählt auf der Basis der Gebote ein Individuum aus. Hierzu wird eine Regel zur Auswahl angewendet. [26] Der Mediator legt auf der Basis der Gebote, die für das in Schritt [25] gewählte Individuum I abgegeben wurden, die Ausgleichszahlungen fest. Die durch das Individuum repräsentierte Lösung d(I) ist das Ergebnis der Verhandlung. Nachfolgend soll der Unterschied zwischen dem Genetischen Verhandlungsmechanismus und klassischen Verhandlungen einerseits bzw. Genetischen Algorithmen andererseits verdeutlicht werden: Genetischer Verhandlungsmechanismus vs. Verhandlung Im Unterschied zu klassischen Verhandlungen wird im Genetischen Verhandlungsmechanismus pro Verhandlungsrunde über zwei Individuen und damit über zwei Lösungen, und nicht nur über eine Lösung, so wie in Verhandlungen sonst üblich, abgestimmt (vgl. Homberger, 2009). Diese Vorgehensweise ermöglicht die Entwicklung von neuen, abstimmungsbasierten Ersetzungsoperatoren, die ein kooperatives Verhalten der Agenten auslösen (Mechanismus- Design). Genetischer Verhandlungsmechanismus vs. Genetischer Algorithmus Der Mechanismus läuft verteilt ab. Während Selektion, Reproduktion, Crossover und Mutation durch den Mediator durchführt werden, entscheiden die Agenten über die Ersetzung von Eltern anhand einer Abstimmung. Im Unterschied zu einem Genetischen Algorithmus werden keine Fitnesswerte berechnet. Die Bewertung von Individuen findet dezentral durch die Agenten statt. Wenn beide Agenten für die Ersetzung von Eltern durch Kinder mit „Ja“ stimmen, so ist dies wie folgt zu interpretieren: Die ersetzenden Kinder haben eine höhere Fitness als die zu ersetzenden Eltern. Bei der inkrementellen Ersetzung in Genetischen Algorithmen werden die Individuen mit schlechtester Fitness - und nicht die Eltern - durch die Kinder ersetzt. <?page no="253"?> 8.7 Genetischer Verhandlungsmechanismus 253 8.7.3 Phase P-I 8.7.3.1 Problemspezifische Anpassungen Der Genetische Verhandlungsmechanismus ist problemspezifisch anzupassen. Die Anpassungen betreffen die Festlegung einer Kodierung, einer Dekodierung und die Definition von genetischen Suchoperatoren. Nachfolgend wird exemplarisch das dezentrale Losgrößenproblem betrachtet (siehe Abschnitt 6.8). Folgende Anpassungen sind zu nennen: Der Lösungsraum L einer Probleminstanz besteht somit aus einer Menge von Losgrößenplänen. Der Lösungsraum wird implizit über die Problemdaten Ω des dezentralen Losgrößenproblems beschrieben. Die Eingabe des Verhandlungsmechanismus besteht u.a. aus der Anzahl an Erzeugnissen, der Periodenanzahl, den Primärbedarfen für Fertigerzeugnisse und der Erzeugnisstruktur (vgl. Abschnitt 4.6). In Abschnitt 6.8 wurde bereits dargestellt, wie Losgrößenpläne kodiert und dekodiert werden können. In Abschnitt 6.8 wurde bereits dargestellt, wie Suchoperatoren zur Lösung des Losgrößenproblems anzupassen sind. 8.7.3.2 Kooperative Ersetzung Die Ersetzung ist im Genetischen Verhandlungsmechanismus über eine Abstimmung der Agenten realisiert. Diese wird als kooperative Ersetzung bezeichnet. Durch Anwendung einer Abstimmung wird berücksichtigt, dass die Zielfunktionen der Agenten private Informationen darstellen. Die Abstimmung über zu ersetzende Elternteile ist aus folgendem Grund nicht trivial: Aufgrund vorhandener Zielkonflikte werden die Agenten üblicherweise verschiedene Individuen zur Ersetzung auswählen wollen. Es stellt sich daher die Frage, wie ein Konsens der Agenten bei der Abstimmung erreicht werden kann. Die Idee der nachfolgend vorgestellten kooperativen Ersetzung ist nun, dass den Agenten jeweils Paare von Individuen zur Abstimmung vorgelegt werden. Jedes Paar SEL = {I1, I2} enthält mindestens eines der Kinder. Konkret sind folgende fünf Paare bzw. Mengen SEL möglich: {E1, K1}, {E1, K2}, {E2, K1}, {E2, K2}, {K1, K2}. Jeder Agent stimmt nun für jedes vom Mediator ausgewählte Paar darüber ab, ob die Eltern ELT = {E1, E2} durch das ausgewählte Paar SEL zu ersetzen sind. Das Abstimmungsergebnis wird wie folgt zur Ersetzung herangezogen: <?page no="254"?> 254 8 Multiagenten-Planen Die Eltern ELT werden durch das Paar SEL vom Mediator ersetzt, genau dann (und nur dann), wenn beide Agenten mit „Ja“ stimmen. Im Falle, dass beide Agenten mit „Ja“ stimmen, werden folgende Schritte vom Mediator durchgeführt (vgl. Abb. 8.25): POP ← POP \ ELT und POP ← POP ∪ SEL. In dem Fall, dass ELT ∩ SEL ≠ ∅ gilt, d.h. ein Elternteil in dem Paar SEL enthalten ist, bleibt dieses Elternteil in der Population erhalten. Interessant ist nun, dass bei der Abstimmung über Paare bzw. Mengen von Lösungen häufiger ein Konsens der Agenten erreicht und somit eine frühe Stagnation der Verhandlung vermieden werden kann. Beispiel 8.25 In Abb. 8.23 ist die Verteilung von Operatoren auf die Agenten bei dem Genetischen Verhandlungsmechanismus verdeutlicht. Abb. 8.23: Abstimmung im Genetischen Verhandlungsmechanismus Die Agenten können aufgrund ihrer Autonomie individuell Kriterien wählen und anwenden, nach denen sie entscheiden, ob die Eltern ELT durch ein Paar SEL ersetzt werden sollen. Nachfolgend wird ein mögliches Akzeptanzkriterium emp- <?page no="255"?> 8.7 Genetischer Verhandlungsmechanismus 255 fohlen, das auf der durchschnittlichen Lösungsqualität von Lösungen basiert, die durch Individuen repräsentiert werden. Das kooperative Akzeptanzkriterium lautet für ein Minimierungsproblem: Es wird einem Agenten a ∈ {A, B} empfohlen, ein Paar SEL zu akzeptieren und mit „Ja“ für die Ersetzung der Eltern ELT zu stimmen, wenn gilt: a ELT a SEL d d < Bei Anwendung des kooperativen Akzeptanzkriteriums vergleicht ein Agent seine durchschnittliche Lösungsqualität a SEL d des Paares mit der durchschnittlichen Lösungsqualität a ELT d der Eltern. Die Bewertung der Lösungsqualität erfolgt anhand der privaten Zielfunktionen. Durch Anwendung des Akzeptanzkriteriums versuchen die Agenten jeweils ihre durchschnittliche Lösungsqualität in der Population zu verbessern. Dies hat folgende Auswirkungen: Die Agenten verhalten sich kooperativ, da sie ggf. auch Verschlechterungen akzeptieren. Die durchschnittlichen Gesamtkosten der Lösungen in der Population werden bei Akzeptanz der Kinder verbessert. Durch Experimente kann gezeigt werden, dass Agenten am Ende der Verhandlungen jeweils dann eine hohe Güte bezüglich ihrer lokalen Zielfunktionen erzielen können, wenn sie das kooperative Akzeptanzkriterium anwenden. Beispiel 8.26 In Abb. 8.24 wird das kooperative Akzeptanzkriterium an einem Beispiel verdeutlicht. Hierbei werden exemplarisch mögliche Zielfunktionswerte der Agenten für die Eltern und den möglichen fünf Paaren SEL 1 , …, SEL 5 angegeben. Die Zielfunktionswerte stellen beispielhaft „ausgedachte“ Werte dar, um das Prinzip der Konsensfindung zu verdeutlichen. Im Beispiel wird mit dem Paar SEL 5 ein Konsens erzielt, da sich im Mittel beide Agenten verbessern, wenn das Elternteil E1 durch das Kind K2 in der Population ersetzt wird. <?page no="256"?> 256 8 Multiagenten-Planen Abb. 8.24: Konsens bei der Abstimmung über Paare von Lösungen Beispiel 8.27 Ein weiteres Beispiel ist in Tab. 8.7 gegeben. Hierbei wird das Beispiel aus Tab. 8.6 aufgegriffen. Jedes Individuum enthält eine Lösung für das dezentrale Losgrößenproblem. In Tab. 8.7 sind die Eltern- und Kinder-Lösungen einer Verhandlungsrunde angegeben (vgl. auch Tab. 8.6). Von den vier Lösungen favorisieren der Agent A das zweite Elternteil (Kosten von 120 Geldeinheiten) und der Agent B das erste Elternteil (Kosten von 50 Geldeinheiten). Im Durchschnitt jedoch verbessern sich jedoch beide Agenten, wenn anstelle der Eltern die Kinder überleben (für Agent A gilt: Eltern verursachen durchschnittliche Kosten von 190 Geldeinheiten; Kinder verursachen durchschnittliche Kosten von 150 Geldeinheiten). Unter der Annahme des kooperativen Akzeptanzkriteriums stimmen daher beide Agenten für die Ersetzung der Eltern durch die Kinder. Dabei akzeptieren beide Agenten jeweils auch Verschlechterungen gegenüber den individuell favorisierten Lösungen. Durch die Akzeptanz nimmt die durchschnittliche Lösungsqualität bzgl. des Koordinationszieles (Minimierung der Gesamtkosten) in der Population zu. Insbesondere wird die sozial-effiziente Lösung l 6 , welche die geringsten Gesamtkosten verursacht, akzeptiert. Eltern ELT = {E1, E2} Ziel z A Ziel z B Ziel z l Rüste. (y h,i ) Bedarf (b h,i ) Lose (x h,i ) Lagerb. (w h,i ) d(E1) = l 1 1 0 0 1 0 0 20 30 40 90 0 0 90 0 0 90 0 0 70 40 0 0 0 0 260 50 310 <?page no="257"?> 8.7 Genetischer Verhandlungsmechanismus 257 d(E2) = l 13 1 1 1 1 0 0 20 30 40 20 30 40 20 30 40 90 0 0 0 0 0 70 40 0 120 380 500 ( ) 190 120 260 2 1 A = + = ELT d ( ) 215 380 50 2 1 B = + = ELT d Paar SEL = {K1, K2} Ziel z A Ziel z B Ziel z L Rüste. (y h,i ) Bedarf (b h,i ) Lose (x h,i ) Lagerb. (w h,i ) d(K1) = l 6 1 0 1 1 0 1 20 30 40 50 0 40 50 0 40 50 0 40 30 0 0 0 0 0 140 100 240 d(K2) = l 9 1 1 0 1 0 0 20 30 40 20 70 0 20 70 0 90 0 0 0 40 0 70 0 0 160 260 420 ( ) 150 160 140 2 1 A = + = SEL d ( ) 180 260 100 2 1 B = + = SEL d → Beide Agenten akzeptieren die Kinder bzw. SEL Tab. 8.7: Kooperative Ersetzung am Beispiel Bei Anwendung des kooperativen Akzeptanzkriteriums wird die Suche nach sozial-effizienten Lösungen begünstigt. Eine frühe Stagnation der Verhandlung wird vermieden, da auch Verschlechterungen durch die Agenten akzeptiert werden. Die Festlegung der Paare, die den Agenten zur Abstimmung vorgelegt werden, erfolgt durch den Mediator iterativ. Der Mediator wählt nacheinander in der zufälligen Reihenfolge die Paare aus und schlägt diese den Agenten vor. Sobald beide Agenten mit „Ja“ für die Ersetzung zustimmen, wird die Abstimmung beendet und die Ersetzung vorgenommen. Die Ersetzung ist in Abb. 8.25 dargestellt. Input: Population POP, ELT = {E1, E2}, KIN = {K1, K2} [1] M erzeugt R ← {{E1,K1},{E1,K2},{E2,K1},{E2,K2},{K1,K2}} [2] while R ≠ ∅ do [3] M wählt Paar SEL ∈ R zufallsbasiert [4] M aktualisiert R ← R \ {SEL} [5] M sendet den Agenten SEL und ELT zur Abstimmung [6] A und B bewerten die Individuen dezentral, d.h.: <?page no="258"?> 258 8 Multiagenten-Planen A berechnet: z A (d(I)), z A (d(J)), I ∈ SEL, J ∈ ELT B berechnet: z B (d(I)), z B (d(J)), I ∈ SEL, J ∈ ELT [7] A und B stimmen jeweils mit „Ja“ oder „Nein“ ab [8] if Agenten A und B stimmen mit „Ja“ then [9] M aktualisiert POP ← POP \ ELT [10] M aktualisiert POP ← POP ∪ SEL [11] break [12] end if [13] end while Output: --- Abb. 8.25: Kooperative Ersetzung 8.7.4 Phase P-II 8.7.4.1 Ausgleichszahlungen Ausgangspunkt der Phase P-II ist eine Population bzw. Menge POP von Individuen, die in Phase P-I berechnet wurde. In der Phase P-II geben die Agenten für jedes Individuum ein Gebot ab. Auf der Basis der Gebote wählt der Mediator das Ergebnis aus. Nachfolgend wird die Phase P-II am Beispiel des dezentralen Losgrößenproblems behandelt. Beispiel 8.28 In Tab. 8.8 ist exemplarisch eine Population POP angegeben, die in Phase P-I über mehrere Verhandlungsrunden hinweg berechnete wurde. Die Agenten verfolgen jeweils das Ziel, ihre Kosten zu minimieren. Individuum I2 repräsentiert den Losgrößenplan l 6 (vgl. Tab. 8.6). Dieser stellt die sozial-effiziente Lösung dar, da dieser die minimalen Gesamtkosten aufweist. Das Individuum I2 sollte daher von den Agenten gewählt werden. Agent B bevorzugen jedoch Individuum I1 (Lösung l 1 ) und Agent A bevorzugt Individuum I4 (Lösung l 14 ). Population POP = {I1, I2, I3, I4} (Ergebnis aus Phase P-I) Ziel z A Ziel z B Ziel z l Rüste. (y h,i ) Bedarf (b h,i ) Lose (x h,i ) Lagerb. (w h,i ) d(I1) = l 1 1 0 0 1 0 0 20 30 40 90 0 0 90 0 0 90 0 0 70 40 0 0 0 0 260 50 310 d(I2) 1 0 1 20 30 40 50 0 40 30 0 0 140 240 <?page no="259"?> 8.7 Genetischer Verhandlungsmechanismus 259 = l 6 1 0 1 50 0 40 50 0 40 0 0 0 100 d(I3) = l 9 1 1 0 1 0 0 20 30 40 20 70 0 20 70 0 90 0 0 0 40 0 70 0 0 160 260 420 d(I4) = l 14 1 1 1 1 0 1 20 30 40 20 30 40 20 30 40 50 0 40 0 0 0 30 0 0 120 190 310 Tab. 8.8: Population POP (Beispiel) Es stellt sich die Frage, wie Anreize geschaffen werden können, dass die Agenten die sozial-effiziente Lösung bzw. das entsprechende Individuum auswählen. Dies geschieht über Ausgleichszahlungen. Ausgleichszahlungen sind Zahlungen zwischen den Agenten, die von diesen als Anreiz für die Akzeptanz von Individuen bzw. Lösungen ausgehandelt werden können. p A ist die Ausgleichszahlung von Agent A. p B ist die Ausgleichszahlung von Agent B. Positive Ausgleichszahlungen sind Auszahlungen. Negative Ausgleichszahlungen sind Einzahlungen. In Supply Chains können Ausgleichszahlungen z.B. durch Preisnachlässe oder Preisaufschläge seitens des Lieferanten umgesetzt werden (vgl. u.a. Gjerdrum et al., 2001). Die Modellierung von Ausgleichszahlungen erfolgt anhand von Zahlungsvektoren. Ein Zahlungsvektor ist ein Vektor p, der Ausgleichszahlungen der Agenten enthält. ⊂ = + = ∈ 0 B A B A p p p p P p ℝ × ℝ Die Nebenbedingung p A + p B = 0 wird als Budget-Ausgleich bezeichnet. Sie drückt aus, dass die Summe aller Ausgleichszahlungen den Wert Null ergibt. Somit ist sichergestellt, dass die Zahlung eines Agenten vollständig an den anderen Agenten erfolgt. Die Ausgleichszahlungen haben keinen Einfluss auf die Gesamtkosten, da sich diese aufgrund des Budget-Ausgleichs gegenseitig aufheben. Jedoch ermöglichen die Ausgleichszahlungen einen finanziellen Anreiz an die Agenten, sich auf die <?page no="260"?> 260 8 Multiagenten-Planen sozial-effiziente Lösung zu einigen, da sich für jede Lösung durch Ausgleichszahlungen die Zielfunktionswerte der Agenten auf einer Gerade mit der Steigung -1 „verschieben lassen“. Durch Ausgleichzahlungen können somit die Lösungen derart verschoben werden, dass sich alle Agenten auf die sozial-effiziente Lösung einigen, da diese gegenüber den anderen Lösungen der Population eine Win-Win- Situation darstellt. Beispiel 8.29 In Abb. 8.26 ist die „Verschiebung“ von Lösungen bzw. Zielfunktionswerten durch Ausgleichszahlungen beispielhaft dargestellt. Abb. 8.26: Soziale Effizienz (Koordination mit Ausgleichszahlungen bei einem Minimierungsproblem) 8.7.4.2 Regeln Die Phase P-II erfolgt nach verbindlichen Regeln, die entweder vom Mediator M ausgeführt werden oder deren Einhaltung durch die Agenten A und B von dem Mediator M überwacht wird (vgl. Homberger und Fink, 2017). Regel für die Abgabe von Geboten Regel für die Auswahl eines Individuums Regel für die Festlegung der Ausgleichszahlungen Der Entwurf der verbindlichen Regeln ist Teil des Mechanismus-Design. Neben den verbindlichen Regeln wird noch eine empfohlene Regel für die Agenten zur Berechnung von Geboten angegeben. <?page no="261"?> 8.7 Genetischer Verhandlungsmechanismus 261 8.7.4.3 Abgabe von Geboten In Schritt [24] der Phase P-II - vgl. Abb. 8.22 - gibt jeder Agent a ∈ {A, B} für jedes Individuum I ∈ POP verdeckt ein Gebot g a (I) ab. Hierbei ist g a : POP → ℝ eine Funktion des Agenten a, nach der dieser jedem Individuum I ∈ POP ein Gebot zuordnet. Unter einem Gebot g a (I) eines Agenten a ∈ {A, B} für ein Individuum I ∈ POP wird entweder eine Zahlungsbereitschaft oder eine Zahlungsaufforderung verstanden. Für ein Minimierungsproblem gilt: Positive Werte g a (I) > 0 stellen eine Zahlungsaufforderung dar. Agent a fordert g a (I) Geldeinheiten, wenn Individuum I ausgewählt wird. Negative Werte g a (I) < 0 stellen eine Zahlungsbereitschaft dar. Agent a ist bereit, g a (I) Geldeinheiten zu bezahlen, wenn Individuum I ausgewählt wird. Bei der Abgabe von Geboten ist die folgende Regel einzuhalten: Regel für die Abgabe von Geboten: Die Summe der Gebote, die ein Agent a ∈ {A, B} für die Lösungen der Population POP abgibt, muss den Wert Null haben: 0 ) ( = ∑ ∈POP I a I g Autonome Agenten können prinzipiell die Gebote individuell festlegen. Da jedoch die Agenten a priori nicht wissen, welches Individuum vom Mediator in Schritt [25] der Phase P-II - vgl. Abb. 8.22 - ausgewählt wird und welche Gebote der jeweils andere Agent abgibt, empfiehlt sich die nachfolgende Regel zur Festlegung von Geboten. Empfohlene Regel für Agenten zur Berechnung von Geboten (bei einem Minimierungsproblem): Die Agenten a ∈ {A, B} berechnen ihre Gebote g a (I) für Individuum I ∈ POP anhand ihrer durchschnittlichen Lösungsqualität a POP d wie folgt: <?page no="262"?> 262 8 Multiagenten-Planen a POP a a d I d z I g − = )) ( ( ) ( Für Individuen, die Lösungen repräsentieren, die geringere Kosten als die durchschnittlichen Kosten a POP d verursachen, ist ein Agent a ∈ {A, B} bereit, eine Zahlung zu leisten. Umgekehrt fordert ein Agent eine Zahlung für Individuen, deren Lösungen höhere Kosten als die durchschnittlichen Kosten a POP d verursachen. 8.7.4.4 Auswahl eines Individuums In Schritt [25] der Phase P-II - vgl. Abb. 8.22 - werden die Gebote der Agenten offengelegt, und es wird Individuum I ∈ POP vom Mediator ausgewählt. Es wird das Individuum ausgewählt, für das insgesamt die höchste Summe geboten wird. Regel für die Auswahl eines Individuums (Minimierung): Der Mediator wählt das Individuum I ∈ POP aus, so dass die Gebotssumme beider Agenten minimiert wird. } ) ( ) ( argmin{ A POP I I g I g I B ∈ + = Unter der Annahme, dass die Agenten entsprechend der empfohlenen Regel ihre Gebote berechnen, wird „automatisch“ die sozial-effiziente Lösung ausgewählt. Beispiel 8.30 In Tab. 8.9 werden die Berechnung der Gebote durch Agenten und die Auswahl eines Individuums anhand der Gebote für die Population aus Tab. 8.8 beschrieben. Agent A hat im Mittel über alle vier Lösungen eine Lösungsqualität von 170 Geldeinheiten. Der Agent legt die Gebote nun derart fest, dass er bei jeder Lösung einen Zielfunktionswert von 170 erhalten würde. Für das Individuum I2 (mit d(I2) = l 6 ) beispielsweise ist Agent A bereit maximal 30 Geldeinheiten zu zahlen. Das Individuum I2 hat die minimale Gebotssumme von -30 - 50 = -80 Geldeinheiten. Dies kann man so interpretieren, dass beide Agenten zusammen bereit wären, 80 Geldeinheiten abzugeben. Entsprechend wird das Individuum I2 vom Mediator aus der Population als Ergebnis der Verhandlung ausgewählt. Das Beispiel verdeutlicht, dass über die Auswahl anhand der mini- <?page no="263"?> 8.7 Genetischer Verhandlungsmechanismus 263 malen Gebotssumme „automatisch“ die sozial-effiziente Lösung l 6 mit den minimalen Gesamtkosten von z = 240 Geldeinheiten ausgewählt wird. Population POP = {I1, I2, I3, I4} (Ergebnis aus Phase P-I) Agent A Agent B Ziel z Gebotssumme z A g A z B g B z A + z B g A + g B d(I1) = l 1 260 90 50 -100 310 -10 d(I2) = l 6 140 -30 100 -50 240 -80 d(I3) = l 9 160 -10 260 110 420 100 d(I4) = l 14 120 -50 190 40 310 -10 150 , 170 B A = = POP POP d d Tab. 8.9: Abgabe von Geboten und Auswahl eines Individuums 8.7.4.5 Festlegung von Ausgleichszahlungen In Schritt [26] der Phase P-II - vgl. Abb. 8.22 - werden die Ausgleichszahlungen p A und p B der beiden Agenten festgelegt. Hierbei werden die Gebote, die für das in Schritt [25] gewählte Individuum abgegeben wurden, berücksichtigt. Dabei wird folgende Regel angewendet. Regel zur Festlegung der Ausgleichszahlungen (Minimierung): Die Ausgleichszahlungen p A und p B der Agenten werden vom Mediator für das ausgewählte Individuum I ∈ POP unter Verwendung der Gebote g A (I) und g B (I) festgelegt: ) ( 2 ) ( ) ( A B A A I g I g I g p − + = ) ( 2 ) ( ) ( B B A B I g I g I g p − + = Der Regel liegt die Idee zugrunde, die Gebotssumme, die für das ausgewählte Individuum I abgegeben wurde, unter Berücksichtigung der abgegebenen Gebote gleichmäßig, und damit fair, auf die Agenten zu verteilen. <?page no="264"?> 264 8 Multiagenten-Planen Beispiel 8.31 Basierend auf den Geboten, die in Tab. 8.9 angegeben wurden, werden folgende Ausgleichszahlungen durch den Mediator für das gewählte Individuum I2, mit d(I2) = l 6 , festgelegt: 10 ) 30 ( 2 ) 50 ( 30 ) 2 ( 2 ) 2 ( ) 2 ( A A B A A − = − − − + − = − + = p I g I g I g p 10 ) 50 ( 2 ) 50 ( 30 ) 2 ( 2 ) 2 ( ) 2 ( B B B A B + = − − − + − = − + = p I g I g I g p Damit ergibt sich der Zahlungsvektor p = (p A , p B ) T = (-10, 10) T . Agent A erhält von Agent B eine Ausgleichszahlung von 10 Geldeinheiten. Die Gebotssumme für das Individuum I2 bzw. die Lösung d(I2) = l 6 von -30 + (-50) = - 80 wird somit gleichmäßig auf die Agenten unter Berücksichtigung ihrer Gebote verteilt: -30 - 10 = -40 für Agent A bzw. -50 + 10 = -40 für Agent B. Aufgaben Aufgabe 8.1 (Koordinationsprobleme) Nennen Sie die wesentlichen Annahmen, die Koordinationsproblemen zugrunde liegen. Aufgabe 8.2 (Koordinationsprobleme) Erklären Sie, warum die Erreichung von Koordinationszielen eine besondere Herausforderung darstellt. Aufgabe 8.3 (Koordinationsziele) Nennen Sie mögliche Koordinationsziele. Aufgabe 8.4 (Zielkonflikte) Beschreiben Sie mögliche Zielkonflikte in Koordinationsproblemen. Aufgabe 8.5 (Koordinationsmechanismen) Nennen Sie Anforderungen an einen Koordinationsmechanismus. <?page no="265"?> 8.8 Aufgaben 265 Aufgabe 8.6 (Ausgleichszahlungen) Nennen Sie Bedingungen für die Verwendung von Ausgleichszahlungen zur Koordination. Aufgabe 8.7 (Automatisierte Verhandlungen) Erklären Sie Gemeinsamkeiten und Unterschiede von Metaheuristiken und automatisierten Verhandlungen und leiten Sie daraus Möglichkeiten zur Integration von Metaheuristiken in automatisierte Verhandlungen ab. Aufgabe 8.8 (Koordinationsziele) Gegeben ist der Lösungsraum L = {l 1 , …, l 10 } eines Koordinationsproblems. Angenommen sei ein Minimierungsproblem. Die privaten Zielfunktionswerte der Agenten A und B sind nachfolgend angegeben: (z A (l 1 ), z B (l 1 )) = (30, 200) (z A (l 2 ), z B (l 2 )) = (170, 100) (z A (l 3 ), z B (l 3 )) = (100, 185) (z A (l 4 ), z B (l 4 )) = (60, 180) (z A (l 5 ), z B (l 5 )) = (80, 170) (z A (l 6 ), z B (l 6 )) = (70, 195) (z A (l 7 ), z B (l 7 )) = (130, 150) (z A (l 8 ), z B (l 8 )) = (90, 190) (z A (l 9 ), z B (l 9 )) = (50, 190) (z A (l 10 ), z B (l 10 )) = (100, 160) Ermitteln Sie die Pareto-Front zum einen algorithmisch durch Sortierung der Lösungen und zum anderen graphisch. Ermitteln Sie ferner die sozialeffiziente Lösung. Aufgabe 8.9 (Dezentrales Reihenfolgeproblem) Gegeben sei eine Instanz mit n = 10 Jobs. Berechnen Sie die Größe des Lösungsraumes. Aufgabe 8.10 (Dezentrales Reihenfolgeproblem) Gegeben sei eine Instanz mit n = 3 Jobs. Berechnen Sie alle Permutationen des Lösungsraumes. Aufgabe 8.11 (Dezentrales Reihenfolgeproblem) Definieren Sie eine „eigene“ Probleminstanz für n = 5 Jobs, d.h. geben Sie hierzu für jeden Parameter beider Agenten einen (frei wählbaren) Wert vor. <?page no="266"?> 266 8 Multiagenten-Planen Aufgabe 8.12 (Dezentrales Reihenfolgeproblem) Gegeben ist die in Abb. 8.10 und Abb. 8.11 beschriebene Instanz des dezentralen Reihenfolgeproblems. Berechnen Sie für die Lösung π = (2, 1, 4, 3) die privaten Zielfunktionswerte der Agenten. Zeichnen Sie für den Agenten B (Flow Shop Scheduling Problem) den entsprechenden Schedule. Aufgabe 8.13 (Mediator) Nennen Sie die Aufgaben und Eigenschaften eines Mediators. Unterscheiden Sie einen Mediator von einem zentralen Entscheidungsträger. Aufgabe 8.14 (Lokaler Verhandlungsmechanismus) Angenommen ist ein Minimierungsproblem. Gegeben ist die durch einen Mediator berechnete Nachbarschaft N = {l 1 , …, l 10 }. Bestimmen Sie diejenige Lösung der Nachbarschaft, die von den Agenten durch Voting(N) ausgewählt wird. Gehen Sie dabei von folgenden Annahmen aus: Die Agenten führen die zweistufige Voting-Rule aus. Hierbei beginnt Agent A mit der Auswahl und wählt hierzu d = 3 Lösungen aus. Nachfolgend sind die privaten Zielfunktionswerte der Agenten A und B durch Tupel (z A , z B ) gegeben. (z A (l 1 ), z B (l 1 )) = (30, 200) (z A (l 2 ), z B (l 2 )) = (170, 100) (z A (l 3 ), z B (l 3 )) = (100, 185) (z A (l 4 ), z B (l 4 )) = (60, 180) (z A (l 5 ), z B (l 5 )) = (80, 170) (z A (l 6 ), z B (l 6 )) = (70, 195) (z A (l 7 ), z B (l 7 )) = (130, 150) (z A (l 8 ), z B (l 8 )) = (90, 190) (z A (l 9 ), z B (l 9 )) = (50, 190) (z A (l 10 ), z B (l 10 )) = (100, 160) Aufgabe 8.15 (Lokaler Verhandlungsmechanismus) Angenommen ist ein Minimierungsproblem. Gegeben ist die bislang akzeptierte Lösung w und die in einer Iteration ausgewählte alternative Lösung v. Nachfolgend sind die privaten Zielfunktionswerte der Agenten A und B durch Tupel (z A , z B ) gegeben. Geben Sie jeweils die Abstimmung („Ja“ oder „Nein“) der beiden Agenten an, ob diese die Lösung v als neue Lösung w akzeptieren. <?page no="267"?> 8.8 Aufgaben 267 (z A (v), z B (v)) = (130, 200) (z A (w), z B (w)) = (110, 210) Aufgabe 8.16 (Dezentrales Losgrößenproblem) Gegeben ist die Instanz des (zentralen) Losgrößenproblems aus Abschnitt 4.6 (vgl. Abb. 4.15). Die Probleminstanz wird nun durch Einführung von zwei Agenten A und B sowie einer Verteilung der vier Erzeugnisse auf die Agenten zu einer Instanz des dezentralen Losgrößenproblems wie folgt erweitert: E A = {1, 2}, E B = {3, 4}. Berechnen Sie die Kosten der beiden Agenten für den in Abb. 4.15 angegebenen Losgrößenplan. Aufgabe 8.17 (Genetischer Verhandlungsmechanismus - Phase P-I) Gegeben sind die Eltern ELT = {l 1 , l 2 } und die Kinder KIN = {l 3 , l 4 }. Die privaten Zielfunktionswerte (Kosten) der Agenten A und B sind nachfolgend für zwei Szenarien angegeben: Szenario 1: (z A (l 1 ), z B (l 1 )) = (50, 220) (z A (l 2 ), z B (l 2 )) = (90, 120) (z A (l 3 ), z B (l 3 )) = (60, 180) (z A (l 4 ), z B (l 4 )) = (70, 130) Szenario 2: (z A (l 1 ), z B (l 1 )) = (90, 140) (z A (l 2 ), z B (l 2 )) = (60, 230) (z A (l 3 ), z B (l 3 )) = (50, 220) (z A (l 4 ), z B (l 4 )) = (70, 130) Angenommen sei ein Minimierungsproblem. Erklären Sie das kooperative Akzeptanzverhalten der Agenten anhand der beiden Szenarien und denken Sie sich weitere Szenarien aus. Aufgabe 8.18 (Genetischer Verhandlungsmechanismus - Phase P-II) Gegeben ist die in Phase P-I berechnete Population POP = {l 1 , l 2 , l 3 , l 4 } von Lösungen (μ = 4). Die (privaten) Zielfunktionswerte der Agenten A und B sind: (z A (l 1 ), z B (l 1 )) = (40, 200) (z A (l 2 ), z B (l 2 )) = (60, 180). (z A (l 3 ), z B (l 3 )) = (70, 140) <?page no="268"?> 268 8 Multiagenten-Planen (z A (l 4 ), z B (l 4 )) = (90, 130). Angenommen sei ein Minimierungsproblem. Führen Sie die Phase P-II durch, d.h. berechnen Sie die Gebote der Agenten, wählen Sie ein Gebot aus und berechnen Sie die Ausgleichszahlungen. Aufgabe 8.19 (Genetischer Verhandlungsmechanismus - Phase P-I) Gegeben ist die in Aufgabe 8.16 beschriebene Instanz des dezentralen Losgrößenproblems. Führen Sie folgende Schritte durch: Mediator: Zufallsbasierte Initialisierung einer Population von vier alternativen Losgrößenplänen. Mediator: Zufallsbasierte Eltern-Selektion von zwei Eltern. Mediator: Erzeugung von zwei Kindern durch Variation (Reproduktion, Crossover, Mutation). Agenten: Berechnung der privaten Zielfunktionswerte der Agenten für Kinder und Eltern und Abstimmung der Agenten. Mediator: Überlebenden-Selektion, d.h. Aktualisierung der Population bzw. Ersetzung der Eltern durch die Kinder. Aufgabe 8.20 (Genetischer Verhandlungsmechanismus für dezentrales Reihenfolgeproblem) Entwerfen Sie einen Genetischen Verhandlungsmechanismus für das dezentrale Reihenfolgeproblem. Hierzu sind zwei Anpassungen notwendig. Phase P-I: Entwerfen Sie einen Operator zur Variation von Permutationen. Phase P-II: Entwerfen Sie eine Voting-Regel (z.B. Borda-Regel), um aus der Population von Permutationen eine Lösung durch die Agenten auszuwählen (Ausgleichszahlungen sind nicht möglich). <?page no="269"?> 9 Schwarmintelligenz Schlagwörter und Prüfungstipps Was erwartet mich in diesem Kapitel? Es werden Wesensmerkmale der Schwarmintelligenz beschrieben und aufgezeigt, wie in einem System aus reaktiven Agenten, die als Schwarm agieren, eine Zusammenarbeit bzw. Koordination erreicht werden kann. Hierbei wird verdeutlicht, dass durch bestimmte einfache Verhaltensregeln eine kollektive Intelligenz entsteht („Emergenz“). Es wird aufgezeigt, wie Schwarmintelligenz durch Simulation analysiert werden kann. Welche Schlagwörter lerne ich kennen? Schwarmintelligenz Emergenz Schwarm-Simulation reaktive Agenten Boid Flocking Wofür benötige ich dieses Wissen? Die Simulation von Schwärmen ermöglicht es, Schwarmverhalten zu analysieren und künstliche Schwärme (z.B. autonome Fahrzeuge, Drohnen oder Roboter) zu entwerfen. Welche Prüfungstipps kann ich aus diesem Kapitel ziehen? In Prüfungen wird häufig gefordert, die Bewegung von reaktiven Agenten anhand der Regeln „Abstoßung“, „Ausrichtung“ und „Anziehung“ zu berechnen. Definition und Anwendungen Natürliche Individuen leben oft in Schwärmen zusammen, um als „Ganzes“ bestimmte Ziele effizienter erreichen zu können. Fischschwärme nehmen zielorientiert bestimmte Erscheinungsformen an, um gegenüber natürlichen Feinden abschreckend zu wirken oder auf effiziente Weise Nahrung zu suchen. Vogelschwärme fliegen in bestimmten aerodynamisch geeigneten Formationen, so dass sie effizient große Strecken zurücklegen können (vgl. u.a. Oboshi et al., 2003). Von Bedeutung ist nun, dass sich ein intelligentes Schwarmverhalten, z.B. das Annehmen einer geeigneten Formation der Schwarmindividuen, durch das Zusammenwirken (Interaktion) der Schwarmindividuen herausbildet (Emergenz). <?page no="270"?> 270 9 Schwarmintelligenz Die Erscheinungsform bzw. Formation eines Schwarms wird also nicht durch eine zentrale Instanz vorgegeben oder gar berechnet. Vielmehr ergibt sich ein intelligentes Verhalten des Schwarms dadurch, dass sich die Schwarmindividuen gegenseitig beobachten und bei ihren Aktionen (d.h. Bewegungen) einfache Regeln anwenden, welche die Aktionen anderer Schwarmindividuen miteinbeziehen. Schwarmintelligenz: Ein Schwarm bildet aufgrund des Zusammenwirkens der einzelnen Individuen ein intelligentes Verhalten. Der Schwarm agiert zielorientiert und kann komplexe Probleme lösen, ohne dass eine zentrale Instanz Entscheidungen trifft. Schwarmintelligenz stellt einen möglichen dezentralen Koordinationsmechanismus für reaktive Agenten dar. Schwarmintelligenz kann nun als Koordinationsmechanismus für künstliche Schwärme aus reaktiven Agenten verwendet werden. Individuen eines künstlichen Schwarms sind dann z.B. Drohnen oder autonome Fahrzeuge. Diese werden nachfolgend als reaktive Agenten modelliert, die ihre Umgebung wahrnehmen und entsprechend „reagieren“. Das aus mehreren reaktiven Agenten bestehende Multiagentensystem soll zielorientiert im Sinne eines Schwarms ohne zentrale Steuerung agieren. Um eine schwarm-basierte Koordination für künstliche Schwärme zu entwickeln und zu testen, sind Computer-Simulationen erforderlich. Schwarm-Simulation Tipps für Dozenten Grundlagen der Vektorrechnung (Differenzen, Richtung, Betrag, Normierung von Vektoren) sowie der Physik (Geschwindigkeit-Zeit-Gesetz) wiederholen. 9.3.1 Motivation und Lösungsansatz Computersimulation - im Folgenden kurz als Simulation bezeichnet - ist ein bedeutendes Teilgebiet der Informatik. „Eine Simulation ist das Nachbilden von Prozessen realer Systeme in einem Modell und das anschließende Durchführen von Experimenten an diesem Modell“ (Gehring, 1992). <?page no="271"?> 9.3 Schwarm-Simulation 271 Das Ziel einer Computer-Simulation ist es, ein reales System zu analysieren und zu verstehen. Die in einer Simulation verwendeten Modelle werden daher auch als Erklärungsmodelle bezeichnet. Es existieren verschiedene Simulationsansätze in der Literatur. Die Simulation von Vogelschwärmen geht auf die Arbeiten von Reynolds (1987) zurück. Es handelt sich um eine dynamische, zeitdiskrete Multiagenten-Simulation. Simulation von Vogelschwärmen: Nachbildung der zeitlichen und räumlichen Veränderung der Schwarmbildung („Flocking“) mit Hilfe eines „Boid-Modells“. Ziel der Schwarmsimulation ist es, das Verhalten der einzelnen Individuen zu analysieren. Interessant ist hierbei zu untersuchen, wie sich daraus ein schwarmintelligentes Verhalten bzw. eine Schwarmbildung (Flocking) herausbildet. In Abb. 9.1 sind zwei Beispiele für ein Flocking dargestellt. Abb. 9.1: Flocking Jeder Boid wendet drei Verhaltensregeln an, um seine Bewegung zu steuern (vgl. Reynolds, 1987). Abstoßung: Der Boid ändert seine Geschwindigkeit derart, dass eine Kollision mit benachbarten Boids vermieden wird. Ausrichtung: Der Boid ändert seine Geschwindigkeit derart, dass eine Anpassung der Bewegungsrichtung mit benachbarten Boids erreicht wird. Anziehung: Der Boid passt seine Geschwindigkeit so an, dass ein Zusammenbleiben mit benachbarten Boids erreicht wird. Welche Verhaltensregel ein Boid anwendet, hängt vom Abstand des Boids zu den Nachbarn ab (vgl. Reynolds 1987). <?page no="272"?> 272 9 Schwarmintelligenz 9.3.2 Boid-Modell 9.3.2.1 Definition Ein Boid („Bird-oid Object“) ist ein Objekt in einem Computerprogramm, das einen Vogel repräsentiert (Reynolds, 1987). Dieses bewegt sich in einer Ebene mit einem zweidimensionalen kartesischen Koordinatensystem. Ein Boid wird graphisch durch ein Dreieck dargestellt. Der Zustand eines Boids k verändert sich mit der Simulationszeit t und wird durch folgende Vektoren beschrieben: Position ∈ = ) ( ) ( ) ( t y t x t s s k s k k ℝ 2 (Vektorielle) Geschwindigkeit ∈ = ) ( ) ( ) ( t y t x t v v k v k k ℝ 2 Die Position stellt einen Ortsvektor im Koordinatensystem dar. Dieser besteht aus einer x- und einer y-Koordinate. Da diese sich mit der Simulationszeit t ändern, werden die Vektorkomponenten mit ) (t x s k und ) (t y s k bezeichnet. An der vektoriellen Geschwindigkeit lässt sich die Bewegungsrichtung ablesen. Basierend auf den eingeführten Größen werden folgende Bezeichnungen verwendet: Bezeichnungen Der Betrag der vektoriellen Geschwindigkeit eines Boids k ist die skalare Geschwindigkeit: ( ) ( ) 2 2 ) ( ) ( ) ( t y t x t v v k v k k + = Der Abstand zwischen zwei Boids k und l ist als euklidischer Abstand ihrer Position definiert: ( ) ( ) 2 2 ) ( ) ( ) ( ) ( ) ( ) ( t y t y t x t x t s t s s l s k s l s k l k − + − = − <?page no="273"?> 9.3 Schwarm-Simulation 273 In der nachfolgend beschriebenen Simulation wird eine konstante, von Null verschiedene Geschwindigkeit angenommen ( ) (t v k > 0). Die Menge aller Boids, die im Computerprogramm zusammen einen Schwarm simulieren, wird mit SWARM bezeichnet. 9.3.2.2 Erzeugung eines Boids Mit der Erzeugung eines Boids wird sein Zustand initialisiert. Hierzu wird die Position zufällig innerhalb eines gegebenen Bereiches des kartesischen Koordinatensystems gewählt (z.B. Bildschirm), indem die x-Koordinate zufällig im Intervall [x MIN , x MAX ] und die y-Koordinate zufällig im Intervall [y MIN , y MAX ] festgelegt wird. Der Geschwindigkeitsvektor und damit die Bewegungsrichtung eines Boids werden ebenfalls zufällig gewählt. Hierzu wird zunächst ein zufälliger Richtungsvektor v berechnet, dessen x- und y-Koordinaten zufällig im Intervall (0, 1] gewählt werden. Anschließend wird der Richtungsvektor auf die Länge v MAX ∈ ℝ + skaliert. Bei v MAX handelt es sich um die für alle Boids gegebene maximale skalare Geschwindigkeit (vgl. auch Reynolds, 1987) Zustand eines Boids k nach der Erzeugung Position ← y x s k ) 0 ( ] , [ ] , [ MAX MIN MAX MIN y y y x x x ∈ ∈ Geschwindigkeit v v v v k ⋅ ← MAX ) 0 ( , = y x v ] 1 , 0 ( ] 1 , 0 ( ∈ ∈ y x 9.3.2.3 Bewegung eines Boids Bei der Simulation wird in diskreten Zeitschritten vorgegangen, d.h. bei jeder Iteration wird die Simulationszeit t ∈ {1, 2, …, t MAX } um eine Zeiteinheit ∆t = 1 erhöht und der Zustand des Boids aktualisiert und für Analysezwecke als Output zurückgegeben, siehe Abb. 9.2. <?page no="274"?> 274 9 Schwarmintelligenz Input: Nachbarn von Boid k [1] Position: s k (t+1) ← s k (t) + v k (t) [2] Geschwindigkeit: v k (t+1) ← v k (t) + d k (t) Output: (s k (t+1), v k (t+1)) Abb. 9.2: Aktualisierung des Zustands eines Boids k (vgl. auch Vicsek et al., 1995) In Abb. 9.2 wird die Position in Schritt [1] entsprechend dem Geschwindigkeit- Zeit-Gesetz verändert (vgl. Vicsek et al., 1995): s k (t+1) = s k (t) + ∆t · v k (t). Die vektorielle Geschwindigkeitsänderung d k (t) = v k (t+1) - v k (t) wird von jedem Boid anhand der Verhaltensregeln berechnet (vgl. Vicsek et al., 1995). Beispiel 9.1 In Abb. 9.3 wird die Bewegung an einem Beispiel dargestellt. Abb. 9.3: Bewegung eines Boids (Beispiel) Die Berechnung der Geschwindigkeitsänderung d k (t) kann unterschiedlich definiert werden. Je nach Definition ergibt sich ein anderes Schwarmverhalten (Flocking). Die Aktualisierung der vektoriellen Geschwindigkeit eines Boids k hängt davon ab, wie viele Nachbarn wie weit von ihm entfernt sind. Die Nachbarschaft des <?page no="275"?> 9.3 Schwarm-Simulation 275 Boids lässt sich in drei Bereiche gemäß Abb. 9.4 einteilen. Für diese Kreisringeinteilung sind die Radien r AB , r AU , r AN verantwortlich. Die Radien sind Parameter der Schwarmsimulation. Abb. 9.4: Nachbarschaften eines Boids k (vgl. u.a. Oboshi et al., 2003) Im Folgenden wird eine mögliche Definition der Geschwindigkeitsänderung beschrieben. Hierzu werden ein Abstoßungs-Term, ein Ausrichtungs-Term und ein Anziehungs-Term definiert. Die nachfolgenden Beschreibungen orientieren sich an den Beschreibungen von Reynolds (1987). Hierbei wurden teilweise Vereinfachungen vorgenommen. In Reynolds (1987) werden beispielsweise noch Radien für jeden Agenten definiert, in denen diese ihre Nachbarn wahrnehmen. Nachfolgend wird vereinfachend angenommen, dass jeder Agent einen Wahrnehmungswinkel von 360° hat. 9.3.2.4 Abstoßungs-Term Zur Umsetzung der Abstoßungsregel wird zunächst folgende Nachbarschaft anhand des Radius r AB definiert: Nachbarschaft bzgl. Verhaltensweise „Abstoßung“ Die Menge der Nachbarn eines Boids k ist { } AB ) ( ) ( , ) ( r t s t s k l SWARM l t AB l k k ≤ − ≠ ∈ = Die Anzahl der Nachbarn in AB k (t) wird mit ) (t AB k bezeichnet. Um sich von den Nachbarn abzustoßen, wird folgender Abstoßungs-Term a k (t) definiert. <?page no="276"?> 276 9 Schwarmintelligenz Abstoßungs-Term Fall 1: Es sind keine Nachbarn vorhanden, d.h. 0 ) ( = t AB k . Setze = 0 0 ) (t a k . Fall 2: Es sind Nachbarn vorhanden, d.h. 0 ) ( > t AB k . Setze nun ( ) ) ( ) ( ) ( ) ( 1 ) ( 1 ) ( ) ( 2 t s t s t s t s t AB t a l k t k AB l l k k k − ⋅ − = ∑ ∈ . Die Idee bei der Berechnung des Abstoßungs-Terms besteht darin, für jeden Nachbarn l des Boids k zunächst den Verbindungsvektor (s k (t) - s l (t)) der beiden Positionen s k (t) und s l (t) zu berechnen und dann durch Skalierung einen Vektor zu erhalten, dessen Betrag umso größer ist, je kleiner der Abstand von k und l ist. Der Vektor a k (t) errechnet sich schließlich als Durchschnitt dieser skalierten Verbindungsvektoren. Für s k (t) = s l (t) wäre der Ausdruck von a k (t) nicht definiert. Dieser Fall tritt aber nicht ein, da dies bedeuten würde, dass die Boids k und l identische Positionen hätten, d.h. zusammengestoßen wären. Dies stellt jedoch eine unzulässige Situation dar, die zum Abbruch der Simulation führt. Beispiel 9.1 (Fortsetzung) In der Abb. 9.5 wird der Fall 2 der Abstoßung am Beispiel dargestellt. Abb. 9.5: Abstoßung (Beispiel) <?page no="277"?> 9.3 Schwarm-Simulation 277 9.3.2.5 Ausrichtungs-Term Zur Umsetzung der Ausrichtungsregel wird zunächst folgende Nachbarschaft anhand der Radien r AB und r AU definiert: Nachbarschaft bzgl. Verhaltensweise „Ausrichtung“ Die Menge der Nachbarn für Boid k ist definiert als { } AU AB ) ( ) ( , ) ( r t s t s r k l SWARM l t AU l k k ≤ − < ≠ ∈ = . Die Anzahl der Nachbarn ist ) (t AU k . Um sich mit den Nachbarn auszurichten, wird folgender Ausrichtungs-Term b k (t) für Boid k definiert. Ausrichtungs-Term Fall 1: Es sind keine Nachbarn vorhanden, d.h. 0 ) ( = t AU k . Setze = 0 0 ) (t b k . Fall 2: Es sind Nachbarn vorhanden, d.h. 0 > k AU . Dann setze man ∑ ∈ = ) ( ) ( ) ( 1 ) ( t k AU l l k k t v t AU t b . Der Ausrichtungs-Term b k (t) beschreibt die durchschnittliche Geschwindigkeit und damit die Richtung der Nachbarn (vgl. auch Reynolds, 1987). Beispiel 9.1 (Fortsetzung) Abb. 9.6: Ausrichtung (Beispiel) <?page no="278"?> 278 9 Schwarmintelligenz In der Abb. 9.6 ist ein Beispiel für den Fall 2 der Ausrichtung angegeben. 9.3.2.6 Anziehungs-Term Zur Umsetzung der Anziehungsregel wird zunächst folgende Nachbarschaft anhand der Radien r AN und r AU definiert: Nachbarschaft bzgl. der Verhaltensweise „Anziehung“ Die Menge der Nachbarn von Boid k ist { } AN AU ) ( ) ( , ) ( r t s t s r k l SWARM l t AN l k k ≤ − < ≠ ∈ = . Die Anzahl der Nachbarn ist ) (t AN k . Das Verhalten „Anziehung“ wird durch folgenden Anziehungs-Term c k beschrieben. Anziehungs-Term Fall 1: Es sind keine Nachbarn vorhanden, d.h. 0 ) ( = t AN k . Setze = 0 0 ) (t c k . Fall 2: Es sind Nachbarn vorhanden, d.h. 0 ) ( > t AN k . Dann setze ) ( ) ( ) ( 1 ) ( ) ( t s t s t AN t c k t k AN l l k k ∑ ∈ − ⋅ = . Bei der Berechnung des Anziehungs-Terms wird zunächst für jeden Nachbarn l des Boids k der Differenzvektor (s l (t) - s k (t)) berechnet, danach wird der Durchschnitt über alle Differenzvektoren gebildet. Beispiel 9.1 (Fortsetzung) In der Abb. 9.7 wird die zu berechnende Geschwindigkeitsänderung für den Fall 2 der Anziehung anhand eines Beispiels dargestellt. <?page no="279"?> 9.3 Schwarm-Simulation 279 Abb. 9.7: Anziehung (Beispiel) 9.3.2.7 Geschwindigkeitsänderung Der Vektor d k (t) gibt die erforderliche Änderung der Geschwindigkeit v k (t) eines Boids k entsprechend den Verhaltensregeln (Abstoßung, Ausrichtung, Anziehung) an. Häufig ist es schwierig den Änderungsvektor anzugeben. Stattdessen wird die neue Geschwindigkeit v k (t+1) berechnet. Der Änderungsvektor ergibt sich dann indirekt zu d k (t) = v k (t+1) - v k (t). Die gewünschte Geschwindigkeit v k (t+1) errechnet sich aus den Abstoßungs-, Ausrichtungs- und Anziehungs-Termen wie folgt: Aktualisierung der vektoriellen Geschwindigkeit eines Boids k (in Anlehnung an Reynolds, 1987): Zuerst wird eine Zielgeschwindigkeit v ZIEL berechnet durch ) ( ) ( ) ( ) ( ZIEL t c t b t a t v v k k k k + + + = Die neue Geschwindigkeit ist dann ZIEL ZIEL MAX ) 1 ( v v v t v k ⋅ = + Es gilt somit ) 1 ( + t v k = ) (t v k = MAX v Damit ergibt sich eine Geschwindigkeitsänderung von ) ( ) 1 ( ) ( t v t v t d k k k − + = . <?page no="280"?> 280 9 Schwarmintelligenz Beispiel 9.1 (Fortsetzung) In Abb. 9.8 ist die Berechnung der neuen Geschwindigkeit und damit der Geschwindigkeitsänderung am Beispiel dargestellt. Abb. 9.8: Geschwindigkeitsänderung (Beispiel) 9.3.3 Ablauf der Simulation Für die Simulation werden folgende Eingabeparameter benötigt. Simulationsparameter Simulationszeit t MAX ∈ ℕ Schwarmgröße n ∈ ℕ Intervall für Positionierung [x MIN , x MAX ] Intervall für Positionierung [y MIN , y MAX ] Geschwindigkeitsbetrag der Boids v MAX ∈ ℝ + <?page no="281"?> 9.3 Schwarm-Simulation 281 Radius für Abstoßung r AB ∈ ℝ + Radius für Ausrichtung r AU ∈ ℝ + Radius für Anziehung r AN ∈ ℝ + Durch Variation der Parameterwerte kann das zu beobachtende Flocking beeinflusst werden. In Abb. 9.9 ist der Ablauf der Simulation dargestellt (vgl. auch Reynolds, 1987). Input: Werte für Simulationsparameter [1] Simulationszeit t ← 0 [2] Erzeuge Schwarm SWARM aus n Boids [3] while t < t MAX do [4] foreach k ∈ SWARM do [5] (s k (t+1), v k (t+1)) ← Bewege Boid k [6] end foreach [7] t ← t + 1 [8] end while Output: Analyse des Schwarmverhaltens Abb. 9.9: Schwarm-Simulation Zu Beginn der Simulation wird ein Schwarm erzeugt. Im Laufe der Simulation werden die Zustände der Boids verändert. Um den Zeitverlauf abzubilden, wird bei Schritt [3] die Simulation durch einen iterativen Programmablauf implementiert. Jede Iteration repräsentiert einen Zeitpunkt. Die Zeitdifferenz zwischen zwei Iterationen beträgt ∆t = 1 Zeiteinheiten. In jeder Iteration werden die Zustände der Boids sequentiell verändert. In einer alternativen Implementierung könnten die Zustände aller Boids auch gleichzeitig verändert werden. Als Ergebnis der Simulation erhält man die Positions- und Geschwindigkeitsvektoren der Boids über den Zeitablauf. Anhand der Daten kann das Schwarmverhalten analysiert werden. Beispielsweise können die Schwarmbildung (Flocking) am Bildschirm visualisiert oder die Wahrscheinlichkeiten von Kollisionen analysiert werden. <?page no="282"?> 282 9 Schwarmintelligenz Aufgaben Aufgabe 9.1 Berechnen Sie die drei Nachbarschaften AN 1 , AU 1 und AB 1 für Boid k = 1 unter Berücksichtigung folgender Angaben: = 2 1 ) ( 1 t s , = 4 3 ) ( 2 t s , = 6 1 ) ( 3 t s , = 7 9 ) ( 4 t s , = 5 5 ) ( 5 t s r AB = 3, r AU = 6, r AN = 9 Aufgabe 9.2 Berechnen Sie die neue Position s k (t+1) für Boid k = 1 unter Berücksichtigung folgender Angaben: = 2 1 ) ( 1 t s , = 1 1 ) ( 1 t v Aufgabe 9.3 Berechnen Sie den Abstoßungs-Term a k (t) für Boid k = 1 unter Berücksichtigung folgender Angaben: = 2 1 ) ( 1 t s , = 4 3 ) ( 2 t s , = 6 1 ) ( 3 t s , = 7 9 ) ( 4 t s , = 5 5 ) ( 5 t s } 3 , 2 { ) ( 1 = t AB Aufgabe 9.4 Berechnen Sie den Ausrichtungs-Term b k (t) für Boid k = 1 unter Berücksichtigung folgender Angaben: = 2 1 ) ( 1 t s , = 4 3 ) ( 2 t s , = 6 1 ) ( 3 t s , = 7 9 ) ( 4 t s , = 5 5 ) ( 5 t s } 5 , 3 { ) ( 1 = t AU Aufgabe 9.5 Berechnen Sie den Anziehungs-Term c k (t) für Boid k = 1 unter Berücksichtigung folgender Angaben: <?page no="283"?> 9.4 Aufgaben 283 = 2 1 ) ( 1 t s , = 4 3 ) ( 2 t s , = 6 1 ) ( 3 t s , = 7 9 ) ( 4 t s , = 5 5 ) ( 5 t s } 5 , 4 { ) ( 1 = t AN Aufgabe 9.6 Berechnen Sie die neue Geschwindigkeit v k (t+1) für Boid k = 1 unter Berücksichtigung folgender Angaben: = 3 4 ) ( 1 t a , − − = 5 3 ) ( 1 t b , = 7 8 ) ( 1 t c , = 1 1 ) ( 1 t v <?page no="284"?> 10 Ameisenalgorithmen Schlagwörter und Prüfungstipps Was erwartet mich in diesem Kapitel? Es werden Ameisenalgorithmen am Beispiel des Rundreiseproblems beschrieben. Hierbei wird insbesondere der MAX-MIN-Ameisenalgorithmus detailliert beschrieben. Welche Schlagwörter lerne ich kennen? Ameisen-Optimierung (künstliche) Ameise (künstliche) Pheromone MAX-MIN-Ameisenalgorithmus Vergessen durch Verdunstung Lernen durch Verstärkung von Pheromonen Auswahl-Wahrscheinlichkeit von Knoten Wofür benötige ich dieses Wissen? Zur Entwicklung, Auswahl und Anpassung von Ameisenalgorithmen, um kombinatorische Optimierungsprobleme lösen zu können. Welche Prüfungstipps kann ich aus diesem Kapitel ziehen? In Prüfungen wird häufig gefordert, Ameisenalgorithmen zur Lösung eines gegebenen kombinatorischen Problems anzupassen, die Bewegung von künstlichen Ameisen anhand von Pheromonen zu berechnen. Vorbild Natur Natürliche Ameisen sind sehr effizient bei der Futtersuche. Dabei koordinieren sie im Rahmen eines Schwarms ihre Suche nach kurzen Wegen über Pheromone (Duftstoffe). Das Prinzip soll anhand der nachfolgenden Abb. 10.1 verdeutlicht werden. Abb. 10.1: Ameisen bei der Futtersuche (in Anlehnung an Dorigo und Gambardella, 1997) <?page no="285"?> 10.3 Graphen und Pheromone 285 Ameisen suchen Wege von ihrem Nest zur Futterquelle und wieder zurück. Dabei entscheiden Sie an Weggabelungen (in der Abb. 10.1 durch „? “ dargestellt) zufällig, welchen Abschnitt sie weiterverfolgen möchten. Auf ihrem Weg versprühen Ameisen Pheromone. Betrachtet man nun eine vorgegebene Zeitspanne, so werden kürzere Wege häufiger durchlaufen als längere Wege. Dies führt dazu, dass kürzere Wege häufiger und somit auch stärker mit Duftstoffen markiert werden, d.h. im Umkehrschluss, dass Wegabschnitte, die stärker mit Pheromonen markiert sind, sich auf kürzeren Wegen befinden. Die Pheromone können nun von nachfolgenden Ameisen bei der Entscheidungsfindung an Weggabelungen genutzt werden. Gabelt sich ein Weg in zwei Richtungen, dann entscheidet sich die Ameise mit größerer Wahrscheinlichkeit für die Richtung, die bereits stärker mit Pheromonen markiert wurde. Auf diese Weise bilden sich somit die bekannten Ameisenstraßen. Pheromone ermöglichen somit das Erlernen von erfolgversprechenden Wegabschnitten. Pheromone verdunsten aber auch mit der Zeit (Evaporation). Durch Verdunstung wird eine Begrenzung der Pheromonwerte erreicht. Damit erhalten Wegabschnitte, die bislang noch nicht ausprobiert und somit nicht mit Pheromonen markiert wurden, weiterhin eine reale Chance, von zukünftigen Ameisen ausgewählt zu werden. Z.B. wurde in Abb. 10.1 der kürzeste Weg noch nicht durchlaufen und daher noch nicht mit Pheromonen belegt. Die Verdunstung unterstützt somit das Lernen von neuen Ameisenstraßen. Unter Ameisenalgorithmen versteht man iterative Optimierungsverfahren, welche die Vorgehensweise natürlicher Ameisenschwärme bei der Futtersuche aufgreifen. Die Idee der Ameisen-Optimierung geht auf Dorigo und Gambardella (1997) zurück. Ameisenoptimierung ist somit ein Beispiel für die Anwendung von Schwarmintelligenz. Ein intelligentes Verhalten ergibt sich durch die Koordination aller Ameisen durch künstliche Pheromone (Emergenz). Die Koordination der Ameisen erfolgt hierbei ohne Kommunikation, aber durch Interaktion über die Umgebung (Stigmergie). Graphen und Pheromone Um ein kombinatorisches Optimierungsproblem mit Ameisenalgorithmen zu lösen, ist ein Graph zu definieren, der das Problem beschreibt. Nachfolgend wird das Rundreiseproblem als Beispiel verwendet (vgl. Abschnitt 4.3). Es können jedoch auch andere kombinatorische Probleme mit Ameisen- Optimierung gelöst werden (z.B. Losgrößenproblem (Homberger und Gehring, 2009)). Nachfolgend gilt: <?page no="286"?> 286 10 Ameisenalgorithmen Gegeben sei ein Graph G = (E, K), der das Rundreiseproblem beschreibt (vgl. Abschnitt 4.3). Menge der Knoten bzw. Standorte: E = {1, …, n} Menge der Kanten: K = {(h, i)| h, i ∈ E} Ameisenalgorithmen sind iterative Optimierungsverfahren. In jeder Iteration durchwandern mehrere künstliche Ameisen einen definierten Graphen. Die Iterationen werden mit t = 0, 1, … gezählt. Die Iterationen repräsentieren verschiedene Zeitpunkte in der Natur. Es werden Gewichte für jede Kante im Graphen definiert, die von künstlichen Ameisen bei der Auswahl von Kanten verwendet werden (Dorigo und Gambardella, 1997). Dabei werden zwei Arten von Kantengewichten unterschieden. Problemspezifische Kantengewichte. Diese Gewichte sind über die Zeit bzw. über die durchgeführten Iterationen konstant. Zur Lösung des Rundreiseproblems werden Distanzen verwendet. In diesem Falle bedeutet ein kleiner Wert (kleine Distanz) einen hohen Nutzen der Kante bei der Berechnung von kurzen Rundreisen. Pheromone: Diese Kantengewichte sind variabel, d.h. sie werden während der Optimierung (im Laufe der Iterationen) angepasst. Diese Kantengewichte repräsentieren die natürlichen Pheromone. Sie haben den Zweck, den Nutzen von Kanten bei der Berechnung von kurzen Rundreisen zu erlernen. Hierzu werden Pheromone verstärkt. Ein großer Wert bedeutet einen hohen Nutzen der Kante bei der Berechnung von kurzen Rundreisen. Pheromone sind variable Kantengewichte eines Graphen G = (E, K). Diese werden im Verfahrensablauf durch Ameisen bzw. anhand der von ihnen berechneten Lösungen verändert. Die Pheromone in der Iteration t werden wie folgt bezeichnet: ∈ ) ( , t i h τ ℝ + , ∈ i h, E, t ∈ ℕ 0 = = ) ( ) ( ) ( ) ( )) ( ( ) ( , 1 , , 1 1 , 1 , t t t t t t T n n n n i h τ τ τ τ τ <?page no="287"?> 10.4 Künstliche Ameisen 287 Beispiel 10.1 In Abb. 10.2 wird das Rundreiseproblem als Graph dargestellt. Ferner sind exemplarisch Distanzen und Pheromone als Kantengewichte angegeben. Es handelt sich um die Werte zu einer Iteration t. Abb. 10.2: Graph mit Distanzen und Pheromonen Künstliche Ameisen 10.4.1 Definition Ameise: Objekt im Computerprogramm, das in einem Graphen G = (E, K) einen geschlossenen Kantenzug (Tour) erwandert. Jede Ameise k hat zwei Attribute: Kantenzug X k = (x h,i ), x h,i ∈ {0, 1} h, i ∈ E Menge der Knoten, die noch nicht besucht wurden OK k ⊆ E Der Kantenzug X k einer Ameise enthält alle Kanten, die diese erwandert hat. Die Variable x h,i gibt für jede Kante (h, i) an, ob diese von Ameise k ausgewählt und durchwandert wurde (x h,i = 1) oder nicht (x h,i = 0). Die Menge OK k enthält die- <?page no="288"?> 288 10 Ameisenalgorithmen jenigen Knoten, welche die Ameise noch nicht besucht hat. Diese Knoten darf die Ameise als nächstes auswählen. Rundreiseproblem: X k beschreibt den von der Ameise k berechneten Kantenzug bzw. die berechnete Tour. 10.4.2 Erzeugung einer Ameise In jeder Iteration t werden Ameisen erzeugt. Jede erzeugte Ameise erhält folgenden Initialzustand. Zustand einer Ameise k nach der Erzeugung Kantenzug X k ← 0 0 0 0 Menge der noch nicht besuchten Knoten OK k ← E Der Initialzustand einer Ameise k gibt an, dass noch keine Kante besucht wurde und damit noch alle Knoten E im Graphen G = (E, K) durch die Ameise k wählbar sind. 10.4.3 Start einer Ameise (Berechnung einer Tour) Von jeder Ameise wird dabei unter Berücksichtigung der Pheromone (Kantengewichte) T(t) schrittweise eine Lösung konstruiert, d.h. ein Kantenzug berechnet. Beispiel 10.1 (Fortsetzung) Der Start einer Ameise bedeutet, dass eine Rundreise (Hamiltonkreis) berechnet wird (vgl. Abb. 10.3 in Anlehnung an Stützle und Hoos (2000)). Input: Graph G = (E, K), Distanzen D, Pheromone T(t) [1] Wähle aktuellen Knoten h ∈ OK k [2] Entferne Knoten h aus OK k [3] Merke Startknoten start ← h [4] while OK k ≠ ∅ do [5] Knotenauswahl: Wähle Knoten i ∈ OK k <?page no="289"?> 10.4 Künstliche Ameisen 289 [6] Gehe von h nach i: x h,i ← 1 [7] Aktueller Knoten h ← i [8] Entferne Knoten h aus OK k [9] end while [10] Wähle Knoten i ← start [11] Gehe von h nach i: x h,i ← 1 Output: Lösung der Ameise: X k = (x h,i ), h, i ∈ E Abb. 10.3: Start einer Ameise k [1] Es wird ein erster Knoten h aus der Menge der noch zu besuchenden Knoten OK k ausgewählt. Es handelt sich um den Start bzw. um das Ende der zu berechnenden Tour. Die Auswahl erfolgt gleichverteilt zufällig, d.h. jeder Standort hat dieselbe Wahrscheinlichkeit als Start ausgewählt zu werden. [2] Der in [1] ausgewählte Standort h wird aus OK k entfernt (d.h. OK k : = OK k \ {h}). Somit kann der Standort h nicht erneut aus OK k ausgewählt werden. Auf diese Weise werden Subtouren verhindert. [3] Der in [1] ausgewählte Standort h wird als Start der Tour in Erinnerung gehalten. [4] Solange nicht alle Standorte bzw. Knoten einmal bereist worden sind, d.h. OK k noch mindestens einen Knoten enthält, werden die Schritte [5] - [8] wiederholt. [5] Knotenauswahl: Es wird der nächste (noch nicht bereiste) Knoten i ∈ OK k ausgewählt. Die Auswahl erfolgt zufällig anhand von Auswahl-Wahrscheinlichkeiten. [6] Der Kantenzug wird aktualisiert, indem die Entscheidungsvariable x h,i den Wert 1 erhält. D.h. die Ameise wandert von h nach i. [7] Der aktuelle Knoten h wird aktualisiert. [8] Der aktuelle Knoten h wird aus der Menge der noch zu besuchenden Knoten OK k entfernt. [9] Die Schleife wird beendet. [10] Der Startknoten der Tour wird als nächster Ort i ausgewählt. [11] Von dem zuletzt besuchten Knoten h der Rundreise wird wieder zurück zu dem Startknoten gereist. <?page no="290"?> 290 10 Ameisenalgorithmen Beispiel 10.1 (Fortsetzung) In Abb. 10.4 - Abb. 10.6 ist der Start einer Ameise am Beispiel dargestellt. Abb. 10.4: Start einer Ameise - Teil 1 (Beispiel) <?page no="291"?> 10.4 Künstliche Ameisen 291 Abb. 10.5: Start einer Ameise - Teil 2 (Beispiel) <?page no="292"?> 292 10 Ameisenalgorithmen Abb. 10.6: Start einer Ameise - Teil 3 (Beispiel) 10.4.4 Knotenauswahl Nachfolgend wird der Schritt [5] - die Knotenauswahl durch Ameisen in Abb. 10.3 - detailliert beschrieben. Die Knotenauswahl besteht aus zwei Teilschritten: Berechnung einer Wahrscheinlichkeitsverteilung Auswahl eines Knotens 10.4.4.1 Wahrscheinlichkeitsverteilung Für jede Ameise wird bei jeder Auswahl eines Knotens eine Wahrscheinlichkeitsverteilung berechnet. Diese enthält für jeden noch wählbaren Knoten eine Auswahl-Wahrscheinlichkeit. Die Berechnung der Wahrscheinlichkeitsverteilung erfolgt unter Berücksichtigung der Pheromone T(t) und der problemspezifischen Kantengewichte. Somit ist die Berechnung problemspezifisch anzupassen. Im Folgenden wird die Berechnung der Wahrscheinlichkeitsverteilung am Beispiel des Rundreiseproblems dargestellt. Wahrscheinlichkeitsverteilung (am Beispiel des Rundreiseproblems, Dorigo und Gambardella, 1997): Betrachtet sei eine Ameise k, die in der Iteration t gestartet wurde und sich im Knoten h befindet. Für jeden wählbaren Knoten i ∈ OK k wird eine Auswahl-Wahrscheinlichkeit berechnet: [10] [11] <?page no="293"?> 10.4 Künstliche Ameisen 293 ∑ ∈ ⋅ ⋅ = k OK l l h l h i h i h k i h d t d t t P , , , , , 1 ) ( 1 ) ( ) ( τ τ i ∈ OK k Bezeichnungen: OK k Knoten, die noch nicht von k besucht wurden i, l Knoten der Menge OK k τ h,i (t) Pheromon der Kante (h, i) in Iteration t τ h,l (t) Pheromon der Kante (h, l) in Iteration t d h,i Distanz der Kante (h, i) d h,l Distanz der Kante (h, l) Beispiel 10.1 (Fortsetzung) In Abb. 10.7 wird für jede Durchführung von Schritt [5] in Abb. 10.4 und Abb. 10.5 die Berechnung der Auswahl-Wahrscheinlichkeiten am Beispiel beschrieben. <?page no="294"?> 294 10 Ameisenalgorithmen Abb. 10.7: Wahrscheinlichkeitsverteilung 10.4.4.2 Auswahl eines Knotens In Abb. 10.8 wird die zufällige Auswahl eines Knotens i ∈ OK k anhand der berechneten Wahrscheinlichkeitsverteilung mit einem Zufallsexperiment dargestellt. Input: - Menge OK k der wählbaren Knoten - Aktueller Knoten h von Ameise k - Wahrscheinlichkeiten P kh,i (t), i ∈ OK k [1] Wählbare Knoten ELIG ← OK k [2] Summe der Wahrscheinlichkeiten kum ← 0 [3] Gleichverteilte Zufallszahl zz ∈ [0, 1) [4] while true do [5] Wähle zufällig gleichverteilt i ∈ ELIG [6] Entferne i aus ELIG [7] kum ← kum + P kh,i (t) [8] if zz < kum then [9] break [10] end if [11] end while Output: Knoten i ∈ OK k Abb. 10.8: Zufallsexperiment <?page no="295"?> 10.4 Künstliche Ameisen 295 [1] Es wird eine Kopie ELIG („eligible“) der Menge OK k erzeugt. Diese Knoten sind wählbar. [2] Die Variable kum („kumuliert“) wird mit Null initialisiert. In der Variablen werden die Wahrscheinlichkeiten der Knoten addiert, die bereits aus ELIG entfernt worden sind. [3] Es wird eine gleichverteilte Zufallszahl zz ∈ [0, 1) berechnet. Programmiersprachen stellen hierzu Standardfunktionen bereit. [4] Solange noch kein i ∈ OK k gewählt wurde, werden die nachfolgenden Schritte wiederholt. [5] Es wird gleichverteilt zufällig ein Knoten i aus ELIG als möglicher Kandidat gewählt. [6] Der in [5] gewählte Knoten i wird aus ELIG entfernt. [7] Die Wahrscheinlichkeit P kh,i (t) für Knoten i wird der Variablen kum hinzuaddiert. [8] Es wird die Bedingung geprüft, ob die Zufallszahl zz kleiner als kum ist. Die Wahrscheinlichkeit, dass die Bedingung erfüllt ist, ist identisch mit der Wahrscheinlichkeit P kh,i (t). [9] Falls die Bedingung [8] erfüllt ist, wird die Schleife in Schritt [4] abgebrochen und der zuletzt gewählte Knoten i stellt das Ergebnis der Auswahl dar. [11] Schleifenende. Beispiel 10.1 (Fortsetzung) Die Durchführung eines Zufallsexperimentes zur Auswahl eines Knotens ist in der Abb. 10.9 an einem Beispiel dargestellt. <?page no="296"?> 296 10 Ameisenalgorithmen Abb. 10.9: Zufallsexperiment Verfahrensablauf In der Literatur existieren verschiedene Ansätze zur Ameisen-Optimierung. Nachfolgend wird die MAX-MIN-Ameisen-Optimierung nach Stützle und Hoos (2000) beschrieben (mit diesem Ansatz wurden für das Rundreiseproblem die besten Ergebnisse erzielt). 10.5.1 Verfahrensparameter Der Verfahrensablauf kann durch folgende Parameter gesteuert werden. Die Parameterwerte sind vom Benutzer vor der Optimierung festzulegen (Kalibrierung): Verfahrensparameter Anzahl Iterationen anzI ∈ ℕ Anzahl Ameisen pro Iteration anzA ∈ ℕ Minimaler Pheromonwert 0 < τ MIN Maximaler Pheromonwert τ MIN < τ MAX Verdunstungsfaktor 0 < α < 1 Die Pheromone werden nach dem Ansatz von Stützle und Hoos (2000) auf ein Intervall [τ MIN , τ MAX ] begrenzt. Dies hat den Zweck, eine zu frühe Konvergenz der Suche zu verhindern. Der Verdunstungsfaktor gibt an, „wie schnell“ erlernte <?page no="297"?> 10.5 Verfahrensablauf 297 Pheromonwerte wieder vergessen werden können. Ein großer Wert für α bedeutet ein schnelles Vergessen. 10.5.2 Verfahrensablauf In Abb. 10.10 ist der Ablauf für Minimierungsprobleme dargestellt. Die Zielfunktion sei mit z bezeichnet (z.B. Minimierung der Gesamtdistanz z für Rundreiseproblem). Input: - Werte für Verfahrensparameter - Graph G = (E, K) [1] Iteration t ← 0 [2] Initialisiere Pheromone T(t) [3] Initialisiere beste Lösung X [4] while Iteration t < anzI do [5] for Ameise k ← 1, …, anzA do [6] Erzeuge Ameise k [7] Lösung X k ← Starte Ameise k [8] if z(X k ) ≤ z(X) then [9] Beste Lösung X ← X k [10] end if [11] end for [12] T(t+1) ← Aktualisiere Pheromone T(t) [13] t ← t + 1 [14] end while Output: Beste Lösung X Abb. 10.10: MAX-MIN-Ameisen-Optimierung für Minimierung (in Anlehnung an Stützle und Hoos, 2000) [1] Der Iterationszähler wird initialisiert. [2] Der Pheromone werden initialisiert. [3] Es wird eine Startlösung als vorläufig beste Lösung X berechnet. Die Berechnung kann beispielsweise mit einer ersten Ameise erfolgen. [4] Es werden anzI Iterationen durchgeführt. [5] Es werden anzA Ameisen erzeugt und gestartet. Hierzu werden die Schritte [6] - [9] ausgeführt. Die in einer Iteration gestarteten Ameisen bewegen sich unabhängig voneinander. Jede Ameise benutzt die zur Iteration t gültigen Pheromone T(t). <?page no="298"?> 298 10 Ameisenalgorithmen [6] Es wird eine Ameise k erzeugt. [7] Es wird eine Ameise k gestartet, d.h. diese berechnet eine Lösung X k . [8] Für jede Ameise k wird der Zielfunktionswert (Gesamtdistanz) z(X k ) der konstruierten Tour X k mit dem Zielfunktionswert z(X) der bislang besten Lösung bzw. Tour X verglichen. [9] Wenn die Lösung X k der Ameise nicht schlechter als X bewertet wird, wird die derzeit beste Lösung X durch X k ersetzt. [12] Die Pheromone werden aktualisiert, d.h. es werden die Pheromone T(t+1) berechnet, die in der nächsten Iteration angewendet werden. [13] Der Iterationszähler t wird erhöht. Um die Effizienz der Ameisen-Optimierung zu erhöhen, schlagen Stützle und Hoos vor, nach Schritt [7] problemspezifische Verbesserungsheuristiken zu integrieren. Lernen mit Pheromonen Nachfolgend werden die Initialisierung und Aktualisierung von Pheromonen beschrieben (Schritte [2] und [12] der Abb. 10.10). 10.6.1 Initialisierung Nach Stützle und Hoos (2000) werden die Pheromone zu Beginn der Optimierung wie folgt initialisiert (Schritt [2] in Abb. 10.10): Initialisierung der Pheromone: Initialisierung mit maximalem Wert MAX , τ τ = i h E i h ∈ , Auf diese Weise sollen zu Beginn der Suche möglichst viele verschiedene Bereiche des Lösungsraumes aufgesucht werden. 10.6.2 Aktualisierung Die Aktualisierung der Pheromone wird von Ameisen durchgeführt, welche besonders gute Lösungen berechnet haben. Auf diese Weise soll eine intensivere Verwertung guter Lösungen bei der Berechnung von neuen Lösungen erfolgen. Um nun die Pheromone in einer Iteration zu aktualisieren, wird zunächst eine Ameise bestimmt, welche die Aktualisierung vornimmt. Stützle und Hoos schla- <?page no="299"?> 10.6 Lernen mit Pheromonen 299 gen zwei Möglichkeiten für die Wahl der Ameise bzw. Lösung vor, die zur Aktualisierung der Pheromone herangezogen werden kann. Möglichkeit 1: Wähle diejenige Ameise, welche über alle Iterationen hinweg die bislang beste Lösung X berechnet hat. Möglichkeit 2: Wähle diejenige Ameise, welche in der aktuellen Iteration t die beste Lösung berechnet hat. Stützle und Hoos schlagen vor, beide Möglichkeiten abwechselnd zu verwenden und im Laufe der Optimierung häufiger die Möglichkeit 1 umzusetzen. Nachfolgend wird exemplarisch die Möglichkeit 1 dargestellt, d.h. in jeder Iteration wird diejenige Ameise zur Aktualisierung der Pheromone herangezogen, welche die bislang beste Lösung berechnet hat. Die Aktualisierung der Pheromone durch eine gewählte Ameise kann man sich so vorstellen, dass die Ameise ihre berechnete Tour erneut durchläuft und dabei die Pheromone auf ihrem Weg aktualisiert. Bei der Ameisen-Optimierung werden Pheromone somit erst im Nachhinein, und somit anders als im natürlichen Vorbild, verteilt. Die Aktualisierung der Pheromone, d.h. die Berechnung von T(t+1) umfasst nun drei Schritte: Verdunstung: Alle Pheromone τ h,i (t) werden mit dem Verdunstungsfaktor α (0 < α < 1) multipliziert, d.h. sie werden verringert. Auf diese Weise soll eine frühe Konvergenz bzw. Stagnation vermieden werden. Verstärkung: Es werden die Pheromone derjenigen Kanten, die in der bislang besten Lösung X gewählt wurden, erhöht. Die Erhöhung erfolgt bei einem Minimierungsproblem mit dem Kehrwert des Zielfunktionswerte z(X), d.h. Pheromone werden umso stärker erhöht, je geringer der Zielfunktionswert der berechneten Lösung X ist (d.h. je besser der Zielfunktionswert ist). Auf diese Weise sollen Kanten, die in guten Lösungen vorhanden sind, in nachfolgenden Iterationen eine höhere Wahrscheinlichkeit erhalten, ausgewählt zu werden. Begrenzung: Alle berechneten Pheromone werden auf das Intervall [τ MIN , τ MAX ] begrenzt, d.h. nach Durchführung von Verdunstung und Markierung werden Pheromone, die kleiner als τ MIN sind, auf den Wert τ MIN gesetzt, und Pheromone, die größer als τ MAX sind, auf den Wert τ MAX gesetzt. Aktualisierung der Pheromone: Verdunstung und Verstärkung ) ( 1 ) ( , , , X z x t i h i h i h ⋅ + ⋅ = τ α τ h, i ∈ E <?page no="300"?> 300 10 Ameisenalgorithmen Begrenzung (Max-Min-Regel) = + i h i h t , MAX MIN , ) 1 ( τ τ τ τ sonst wenn wenn MAX , MIN , τ τ τ τ ≥ ≤ i h i h Bezeichnungen: ) 1 ( , + t i h τ Pheromone der nächsten Iteration t+1 ) ( , t i h τ Pheromone der aktuellen Iteration t α Verdunstungsfaktor } ,..., 1 { n E = Standorte bzw. Knoten ) ( ,i h x X = Beste Lösung mit x h,i ∈ {0, 1} ) ( X z Zielfunktionswert (Gesamtdistanz) Beispiel 10.2 In der Abb. 10.11 ist die Aktualisierung der Pheromone am Beispiel dargestellt. Der angedeutete Kreislauf verdeutlicht das Prinzip des verstärkenden Lernens aussichtsreicher Kanten. Einige Pheromonwerte werden aufgrund der Max- Min-Regel nicht verändert. <?page no="301"?> 10.8 Aufgaben 301 Abb. 10.11: Aktualisierung der Pheromone (Beispiel) Kalibrierung und Anpassung Um Probleminstanzen mit einem programmierten Ameisenalgorithmus lösen zu können, sind die Verfahrensparameter geeignet durch den Benutzer festzulegen. Hierzu sind Computerexperimente durchzuführen. Um andere Probleme als das Rundreiseproblem mit einem Ameisenalgorithmus lösen zu können, sind problemspezifische Anpassungen vorzunehmen: Definition eines Graphen Definition problemspezifischer Kantengewichte Definition einer Wahrscheinlichkeitsverteilung Definition einer Formel zur Aktualisierung der Pheromone Aufgaben Aufgabe 10.1 (Knotenauswahl) Gegeben sind die Distanzen D einer zu lösenden Instanz des Rundreiseproblems mit n = 4 Orten. Ferner sind die im Ameisenalgorithmus verwendeten Pheromone für die aktuelle Iteration t angegeben. Die Ameise k wurde in der Iteration t bereits gestartet und ist vom zufällig gewählten Startknoten 2 zum Knoten h = 3 gewandert. <?page no="302"?> 302 10 Ameisenalgorithmen Berechnen Sie für die Ameise k die Wahrscheinlichkeitsverteilung ) ( , t P k i h , , k OK i ∈ im Knoten h = 3. Aufgabe 10.2 (Knotenauswahl) Angenommen sei eine Instanz des Rundreiseproblems mit n = 5 Orten. Eine Ameise k ist in der Iteration t gestartet worden und befindet sich im zufällig gewählten Startknoten h = 5. Die noch zu wählenden Knoten sind demnach OK k = {1, 2, 3, 4}. Es gilt die folgende Wahrscheinlichkeitsverteilung: 2 , 0 ) ( 1 , = t P k h , 4 , 0 ) ( 2 , = t P k h , 1 , 0 ) ( 3 , = t P k h , 3 , 0 ) ( 4 , = t P k h Führen Sie ein Zufallsexperiment zur Auswahl eines Knotens i ∈ OK k durch. Um hierbei eine gleichverteilte Zufallszahl zz ∈ [0, 1) zu erzeugen, gehen Sie wie folgt vor: Schauen Sie auf Ihre Armbanduhr (oder ihr Smartphone ; -) ) und notieren Sie die Sekunden s ∈ [0, 60), (z.B. s = 36). Berechnen Sie anschließend die Zufallszahl wie folgt: zz = s/ 60. Wiederholen Sie das Zufallsexperiment 10 Mal und beschreiben Sie, was Ihnen auffällt. Aufgabe 10.3 (Aktualisierung der Pheromone) Gegeben sind die Parameterwerte, die aktuellen Pheromone T(t) der Iteration t, die bislang beste Lösung X und deren Zielfunktionswert z(X): <?page no="303"?> 10.8 Aufgaben 303 Aktualisieren Sie die Pheromone, d.h. berechnen Sie die Pheromone T(t+1) unter Berücksichtigung der besten Lösung X. Aufgabe 10.4 (Verdunstung) Angenommen sei eine Kante (h, i), die in keiner der berechneten besten Lösungen (Touren) X enthalten ist. Der Pheromonwert der Kante sei zu Beginn t = 0 der Optimierung mit dem maximalen Wert τ h,i (0) = τ MAX = 1,0 initialisiert. Berechnen Sie, nach wie vielen Iterationen der Pheromonwert τ h,i (t) zum ersten Mal den minimalen Wert τ MIN = 0,1 annimmt. Gehen Sie von einem Verdunstungsfaktor von α = 0,95 aus. <?page no="304"?> 11 Support-Vektor-Maschinen Schlagwörter und Prüfungstipps Was erwartet mich in diesem Kapitel? Es werden Support-Vektor-Maschinen zur lernenden Klassifikation von Objekten oder Ereignissen beschrieben. Support-Vektor-Maschinen gehören zu den maschinellen Lernverfahren (überwachtes Lernen). Für das Trainieren von Support-Vektor-Maschinen wird eine Evolutionsstrategie vorgestellt. Welche Schlagwörter lerne ich kennen? Lernende Klassifikation Eingaberaum Dimension und Merkmal Merkmalsvektor Klasse positive und negative Beispiele Lernen von Funktionen Entscheidungsfunktion Optimierungsproblem einer Support-Vektor-Maschine Hyperebene maximaler Rand Normalenvektor Schwellwert optimale Hyperebene Support-Vektor-Maschine Support-Vektor konvexe Optimierung quadratische Optimierung Entwurf und Training von Support-Vektor-Maschinen Feature-Raum Transformation Kernel Ähnlichkeit von Vektoren Wofür benötige ich dieses Wissen? Support-Vektor-Maschinen werden zur lernenden Klassifikation eingesetzt. Sie können auch in intelligenten Agenten eingesetzt werden. Auf diese Weise können Agenten in die Lage versetzen werden, Modelle ihrer Umgebung zu erlernen. Welche Prüfungstipps kann ich aus diesem Kapitel ziehen? In Prüfungen wird häufig gefordert, eine Support-Vektor-Maschine zu trainieren. Lernende Klassifikation Zu Beginn des Abschnitts wird anhand eines Beispiels die Problematik einer lernenden Klassifikation dargestellt. <?page no="305"?> 11.2 Lernende Klassifikation 305 Beispiel 11.1 Die Frage „Erdbeben oder Explosion? “ stellen sich Wissenschaftlerinnen und Wissenschaftler, wenn durch Seismographen eine unterirdische Erschütterung festgestellt wurde (vgl. Kortström et al., 2016, Russell und Norvig, 2012). Durch den Seismographen werden (stark vereinfacht) die Amplitude und die Frequenz von Erschütterungsereignissen gemessen. Diese beiden Kennzahlen stellen beschreibende Merkmale der Ereignisse dar. Jedes Ereignis wird somit durch einen Datenpunkt (mit einem Wert für die Amplitude und einem Wert für die Frequenz) bzw. einen entsprechenden Merkmalsvektor (Ortsvektor) im Eingaberaum beschrieben. Die Aufgabe besteht darin, ein Ereignis (Erschütterung) einer von zwei gegebenen Klassen (Erdbeben oder Explosion) anhand der beschreibenden Merkmale bzw. deren Ausprägungen richtig zuzuordnen. Dabei soll aus den Beispielen bislang aufgezeichneter und bereits richtig klassifizierter Ereignisse gelernt werden. Abb. 11.1: Problem der Klassifikation eines neuen Ereignisses In Abb. 11.1 ist eine Instanz des Klassifikationsproblems gegeben. Dieses besteht aus m = 7 gegebenen Beispielen. Jedes Beispiel besteht aus einem Datenpunkt im zweidimensionalen Eingaberaum und einer zugeordneten Klasse. Die Klasse Erdbeben wird mit +1 und die Klasse Explosion mit -1 gekennzeichnet. Elemente der ersten Klasse werden positive Beispiele, Elemente der zweiten Klasse negative Beispiele genannt. Im Folgenden werden zu klassifizierende Ereignisse oder Objekte (wie z.B. Erschütterungen, Gesichter, etc.) durch Datenpunkte aus einem n-dimensionalen Eingaberaum X ⊆ ℝ n durch Merkmalsvektoren beschrieben. Die einzelnen Dimensionen werden auch als Merkmale bezeichnet. <?page no="306"?> 306 11 Support-Vektor-Maschinen Ein Merkmalsvektor x = (x 1 , x 2 , …, x n ) T ∈ X ⊆ ℝ n ist ein Ortsvektor, der einen Datenpunkt im Eingaberaum X beschreibt. Um nachfolgend mehrere Merkmalsvektoren zu beschreiben, werden diese indiziert. Die einzelnen Elemente eines Merkmalsvektors werden in diesem Fall dann wie folgt angegeben: x i = (x i,1 , x i,2 , …, x i,n ) T . Ereignisse oder Objekte können in verschiedene gegebene Klassen eingeteilt werden. Im Folgenden wird angenommen, dass es genau zwei Klassen gibt. Eine Übertragung auf mehrere Klassen ist möglich. Die Zuordnung erfolgt aufgrund der beschreibenden Merkmale bzw. Daten der Objekte. Dazu gibt es eine unbekannte Funktion h*, die den Ereignissen bzw. Objekten anhand der beschreibenden Merkmalsvektoren jeweils eine Klasse zuordnet. Für diese Zuordnung liegen Beispiele vor. Diese enthalten für verschiedene Merkmalsvektoren bzw. Objekte oder Ereignisse die tatsächlichen Klassen. Die Aufgabe ist es nun, eine zu h* „ähnliche“ Funktion h zu finden, d.h. anhand der gegebenen Beispiele eine Funktion h zu erlernen, welche eine Klassifikation mit möglichst wenigen Fehlern ermöglicht. Die zu lernende Funktion h wird auch als Entscheidungsfunktion bezeichnet. Diese soll neue Ereignisse bzw. Objekte, von denen die Klasse nicht bekannt ist, möglichst richtig anhand ihrer Merkmalsvektoren klassifizieren. Diese Problematik, eine Funktion zu erlernen, ist in Abb. 11.2 dargestellt. Abb. 11.2: Problem des Auffindens der Entscheidungsfunktion h Problem der lernenden Klassifikation: Gegeben ist eine Menge T von Beispielen. Jedes Beispiel besteht aus einem Merkmalsvektor x und einer Klasse y. Die Klasse wird dem Merkmalsvektor über eine unbekannte Funktion h* zugeordnet: <?page no="307"?> 11.2 Lernende Klassifikation 307 Eingaberaum X ⊆ ℝ n mit der Dimension n Menge der Klassen Y = { -1, +1 } Unbekannte Klassifikationsfunktion h*: X → Y, x → y, y = h*(x) Trainingsmenge T = { (x 1 , y 1 ), (x 2 , y 2 ), …, (x m , y m ) } ⊂ X × Y, (x i , y i ) ∈ T ist ein vorgegebenes Beispiel. Gesucht ist eine Entscheidungsfunktion h: X → Y, welche die unbekannte Funktion h* optimiert, d.h. Merkmalsvektoren x ∈ X möglichst fehlerfrei die richtige Klasse h*(x) zuordnet (Morik et al., 2014). Die Entscheidungsfunktion h soll anhand der vorgegebenen Beispiele erlernt werden. Was versteht man nun unter dem Ausdruck „Erlernen einer Funktion“? Hierunter wird verstanden, dass die Parameter einer Funktion derart festgelegt bzw. optimiert werden, so dass diese eine gewünschte Abbildung realisiert. Beispiel 11.2 Angenommen sei eine unbekannte Funktion h*: ℝ → {-1, +1}, y = h*(x), welche allen Zahlen x ∈ ℝ eine der beiden Klassen (entweder -1 oder +1) zuordnet. Die Lernaufgabe besteht nun darin, eine Vorzeichenfunktion h: ℝ → {-1, +1} mit h(x) = sign(a·x + c) zu lernen, d.h. die beiden Parameter a und c der Funktion derart festzulegen, so dass möglichst h*(x) = h(x) für alle x ∈ ℝ gilt. Werden beispielsweise die Parameterwerte a = 1 und c = -3 gewählt, dann lautet die erlernte Funktion h(x) = sign(x - 3). Diese ordnet z.B. der Zahl x = 2 den Wert bzw. die Klasse h(2) = -1 zu. Die zu erlernende Entscheidungsfunktion wird auch als Klassifikator bezeichnet. Die Trainingsmenge kann in positive und negative Beispiele eingeteilt werden (vgl. Morik et al., 2014): Positive Beispiele: T + = {(x, y) ∈ T| y = +1} Merkmalsvektoren aus T + werden auch mit x + bezeichnet. Negative Beispiele: T - = {(x, y) ∈ T| y = -1} Merkmalsvektoren aus T - werden auch mit x - bezeichnet. Durch die gesuchte Funktion h soll die unbekannte Funktion h* möglichst gut „vertreten“ werden. Insbesondere sollen Merkmalsvektoren, die in den Beispielen nicht enthalten sind, möglichst mit geringem Fehler klassifiziert und damit deren <?page no="308"?> 308 11 Support-Vektor-Maschinen Klasse „vorhergesagt“ werden. Da durch die Trainingsmenge lediglich eine Stichprobe an Merkmalsvektoren gegeben ist, kann der Fehler nicht berechnet werden. Daher verwendet man üblicherweise eine Schätzfunktion für den Fehler. Der geschätzte Fehler wird unter Verwendung der Trainingsdaten berechnet (vgl. Morik et al., 2014). Beim Erlernen einer Funktion h ist nun darauf zu achten, dass eine sogenannte Überanpassung verhindert wird (vgl. Morik et al., 2014). Unter Überanpassung wird die Problematik verstanden, dass die Funktion h zwar die Trainingsdaten mit einem geringen Fehler richtig klassifiziert, jedoch neue Merkmalsvektoren falsch klassifiziert. Idee der Support-Vektor-Maschinen Support-Vektor-Maschinen wurden von Vapnik (2000) entwickelt. Der Begriff „Maschine“ soll dabei ausdrücken, dass es sich um ein maschinelles Lernverfahren handelt. Diese gehören zur Klasse der überwachten Lernverfahren. Der Begriff „Support-Vektor“ (bzw. „Stützvektor“) drückt aus, dass zum Lernen lediglich eine (oft kleine) charakteristische Teilmenge der Trainingsbeispiele verwendet wird. Dies vermeidet eine sogenannte „Überanpassung“ beim Lernen (vgl. Morik et al., 2014). Support-Vektor-Maschinen liegt folgende bedeutsame Idee zugrunde. - Es wird eine optimale Hyperebene im Eingaberaum (oder einem Feature-Raum, vgl. Abschnitt 11.7.3) berechnet, welche positive und negative Beispiele derart voneinander trennt, so dass der minimale Abstand von positiven und negativen Beispielen maximiert wird. - Hyperebenen werden durch parametrisierte Funktionen beschrieben. Um nun eine optimale Hyperebene zu berechnen, ist ein Optimierungsproblem zu lösen. Die Lösung des Optimierungsproblems ergibt dann die Parameterwerte der optimalen Hyperebene. - Die optimale Hyperebene wird im Rahmen der Entscheidungsfunktion verwendet. Die Entscheidungsfunktion berechnet, auf welcher Seite der Hyperebene - die Seite der positiven Beispiele oder die Seite der negativen Beispiele - ein neu zu klassifizierender Merkmalsvektor liegt. Es werden verschiedene Optimierungsprobleme und Entscheidungsfunktionen für Support-Vektor-Maschinen im Hinblick auf ihre praktische Anwendbarkeit unterschieden. Entsprechend wird in diesem Buch von verschiedenen Modellen einer Support-Vektor-Maschine gesprochen. <?page no="309"?> 11.3 Idee der Support-Vektor-Maschinen 309 Ein Modell einer Support-Vektor-Maschine umfasst: Optimierungsproblem, um eine optimale Hyperebene zu berechnen Entscheidungsfunktion, welche die optimale Hyperebene verwendet Im Folgenden werden drei Modelle aus der Literatur vorgestellt. Die ersten beiden Modelle beziehen sich auf Trainingsbeispiele, die im Eingaberaum linear trennbar sind. Für einen zweidimensionalen Eingaberaum bedeutet dies anschaulich, dass positive und negative Beispiele durch eine Gerade getrennt werden können. Entsprechende Support-Vektor-Maschinen werden auch als lineare Support-Vektor-Maschinen bezeichnet. Das dritte Modell bezieht sich dagegen auf Trainingsbeispiele, die im Eingaberaum nicht linear trennbar sind. Entsprechende Support-Vektor-Maschinen werden auch als nicht-lineare Support- Vektor-Maschinen bezeichnet. Modell I (Abschnitt 11.4): Das Modell dient primär der anschaulichen Beschreibung der Idee von Support-Vektor-Maschinen. Das zugrundeliegende Optimierungsproblem I ist jedoch für praktische Zwecke ungeeignet, da es viele Nebenbedingungen enthält und schwierig numerisch lösbar ist. Modell II (Abschnitt 11.5): Das Modell basiert auf einer mathematischen Umformung von Modell I. Beide Modelle sind daher äquivalent. Jedoch ist das Optimierungsproblem II von Modell II relativ gut numerisch lösbar und wird daher in der Praxis eingesetzt. Modell III (Abschnitt 11.7): Das Modell ist eine Verallgemeinerung von Modell II. Es dient der praktischen Lösung von Klassifikationsproblemen, deren Beispiele im Eingaberaum nicht linear trennbar sind. Wesentliches Element dieses Modells ist die Verwendung eines Kernel-Tricks. In Abb. 11.3 werden die beiden äquivalenten Modelle I und II gegenübergestellt. Die Abbildung soll in den nachfolgenden Abschnitten, in denen die Modelle detailliert erklärt werden, den Überblick erleichtern. Zu Beginn jedes Abschnittes wird das zu entwickelnde Modell zusammenfassend dargestellt. <?page no="310"?> 310 11 Support-Vektor-Maschinen Abb. 11.3: Äquivalenz der Modelle I und II Lineare Support-Vektor-Maschinen (Modell I) 11.4.1 Zusammenfassung Modell I (vgl. Vapnik, 2000) Optimierungsproblem Variablen w = (w 1 , …, w n ) T ∈ ℝ n , b ∈ ℝ Zielfunktion ( ) min w w w f → ⋅ = 2 1 ) ( <?page no="311"?> 11.4 Lineare Support-Vektor-Maschinen (Modell I) 311 Nebenbedingungen ( ) 0 1 ≥ − + ⋅ b x w y i i m i ,..., 1 = Die optimale Lösung wird mit T * * 1 * ) , , ( n w w w = und * b bezeichnet. Entscheidungsfunktion ( ) * * sign ) ( b x w x h + ⋅ = Bevor das Modell in den nachfolgenden Abschnitten hergeleitet wird, soll die Entscheidungsfunktion und deren Anwendung kurz an einem Beispiel verdeutlicht werden. Beispiel 11.3 Gegeben seien die folgenden Parameterwerte w* und b* der Entscheidungsfunktion sowie ein zu klassifizierender Merkmalsvektor x: = 5 , 0 5 , 0 * w , 3 * − = b , = 4 3 x Die Entscheidungsfunktion liefert folgendes Ergebnis: ( ) ( ) 1 5 , 0 sign ) 3 ( 5 , 3 sign ) 3 ( 4 3 5 , 0 5 , 0 sign ) ( + = = − + = − + ⋅ = x h Der Merkmalsvektor x wird somit als positives Beispiel klassifiziert. 11.4.2 Hyperebenen Hyperebenen sind (n - 1)-dimensionale „nicht gekrümmte“ Punktmengen im n-dimensionalen euklidischen Raum. Hyperebenen im ℝ 2 sind Geraden. Hyperebenen im ℝ 3 sind Ebenen. Im Modell I wird angenommen, dass die gegebenen Datenpunkte der positiven und negativen Beispiele im Eingaberaum durch eine Hyperebene linear getrennt werden können. Beispiel 11.4 In Abb. 11.4 ist eine Hyperebene (Gerade) dargestellt, welche gegebene Beispiele im Eingaberaum trennt. <?page no="312"?> 312 11 Support-Vektor-Maschinen Abb. 11.4: Eine Hyperebene zur Trennung von Beispielen im Eingaberaum Hyperebenen können bei gegebenem Koordinatensystem durch eine sogenannte Normalenform mit Hilfe eines Normalenvektors beschrieben werden. Ein Normalenvektor w = (w 1 , w 2 , …, w n ) T ∈ ℝ n einer Hyperebene ist ein Vektor, ungleich dem Nullvektor, der auf der Hyperebene senkrecht steht. Durch Normieren von w gelangt man zu einem Normaleneinheitsvektor w w w = 0 der Hyperebene ( 1 0 = w ). Die Normalenform einer Hyperebene lautet w·x + b = 0, wobei w·x das Skalarprodukt von w und x bedeutet und b eine reelle Zahl, der sogenannte Schwellwert, ist. Es ist H = {x ∈ ℝ n | w·x + b = 0} die Hyperebene. Verwendet man in der Normalenform den Normalenvektor w 0 , so spricht man von einer Hesse-Normalenform der Hyperebene: w 0 · x + b 0 = 0. Bei der Hesse-Normalenform ist |b 0 | der Abstand der Hyperebene zum Ursprung des Koordinatensystems. Abb. 11.5: Abstand einer Hyperebene vom Ursprung (vgl. Morik et al., 2012) <?page no="313"?> 11.4 Lineare Support-Vektor-Maschinen (Modell I) 313 In der Abb. 11.5 sind die Hyperebene und der Abstand Hyperebene/ Ursprung für den Fall w · x ≥ 0 bzw. w 0 · x ≥ 0 dargestellt. Daher ist b 0 ≤ 0 und -b 0 der Abstand der Hyperebene vom Ursprung. Durch den eingetragenen Pfeil auf der Hyperebene soll die Bedeutung des Skalarproduktes, nämlich die Projektion von x in Richtung von w 0 , zum Ausdruck gebracht werden. Tipps für Dozenten Normalenformen und Hessesche Normalenformen von Hyperebenen sowie das Skalarprodukt zweier Vektoren können wiederholt werden. Zur graphischen Veranschaulichung im zweidimensionalen euklidischen Raum wird eine Hyperebene durch eine Geradengleichung dargestellt. 1. w · x + b = 0 2. 0 2 1 2 1 = + ⋅ b x x w w 3. 0 2 2 1 1 = + + b x w x w 4. 2 1 2 1 2 w b x w w x − − = für w 2 ≠ 0 Beispiel 11.5 Die Hyperebene aus Abb. 11.4 ist eine Gerade mit der Steigung -1. Die Hyperebene kann nun durch viele alternative Normalenformen beschrieben werden. Hierbei muss jedoch für den festzulegenden Normalenvektor w 1 = w 2 gelten. Zum Beispiel kommen folgende Vektoren in Frage: = = 1 1 2 1 w w w oder = = 2 2 2 1 w w w . Die Hyperebene bzw. Gerade schneidet die x 2 -Achse im Punkt (x 1 , x 2 ) = (0, 6). Unter Verwendung eines Normalenvektors kann die Hyperebene z.B. durch folgende alternative Gleichungen beschrieben werden: = − ⋅ = 0 6 1 1 x x H oder = − ⋅ = 0 12 2 2 x x H . Der Abstand der Geraden vom Ursprung berechnet sich zu 2 3 2 ) 6 ( = − − bzw. <?page no="314"?> 314 11 Support-Vektor-Maschinen 2 3 8 ) 12 ( = − − . 11.4.3 Hyperebenen als Entscheidungsregel Wenn man eine Hyperebene H = {x | w · x + b = 0} kennt, welche die Trainingsmenge korrekt in positive und negative Beispiele trennt, dann kann diese zur Klassifikation neuer Merkmalsvektoren herangezogen werden. Entscheidungsregel zur Klassifikation von Merkmalsvektoren: Ein Vektor x wird positiv klassifiziert, falls w · x + b > 0. Ein Vektor x wird negativ klassifiziert, falls w · x + b < 0. Die Mengen {x | w · x + b > 0} bzw. {x | w · x + b < 0} sind offene Halbräume des Punktraumes. Um die Klassifikation zu verstehen, sei die Abb. 11.6 herangezogen. Abb. 11.6: Klassifikation in zwei Halbräume anhand der Hyperebene (für b < 0) (vgl. Morik et al., 2012) Wenn w · x + b > 0 gilt, liegt der durch den Ortsvektor beschriebene Datenpunkt auf der Seite der Hyperebene, in die der Normalenvektor w zeigt. Anderenfalls liegt der Datenpunkt auf der anderen Seite der Hyperebene. Die Entscheidungsregel kann nun unter Verwendung der Vorzeichenfunktion bzw. Signum-Funktion als gesuchte Entscheidungsfunktion h(x) formuliert <?page no="315"?> 11.4 Lineare Support-Vektor-Maschinen (Modell I) 315 werden. Diese berechnet bekanntermaßen die Werte -1 oder +1. Das Ergebnis der Signum-Funktion liefert somit eine gesuchte Klasse. Gegeben sei eine Hyperebene H = {x | w · x + b = 0}, welche positive und negative Beispiele trennt. Dann lautet die Entscheidungsfunktion h zur Klassifikation von Merkmalsvektoren x ∈ X: h(x) = sign(w · x + b) Die Komponenten w 1 , w 2 , …, w n des Normalenvektors können als Gewichte der n Merkmale interpretiert werden (Morik et al., 2014). Beispiel 11.6 In Abb. 11.7 ist eine Hyperebene H gegeben, welche positive und negative Beispiele der Trainingsmenge trennt. Der Normalenvektor = 1 1 w der Hyperebene hat die Komponenten w 1 = 1 und w 2 = 1, d.h. die Merkmale werden gleichermaßen gewichtet. Ein neuer Merkmalsvektor = 5 3 x wird anhand der Hyperebene bzw. der damit verbundenen Entscheidungsfunktion h als positives Beispiel klassifiziert. Abb. 11.7: Beispiel zur Klassifikation <?page no="316"?> 316 11 Support-Vektor-Maschinen 11.4.4 Optimale Hyperebenen Für den Fall, dass gegebene positive und negative Beispiele linear trennbar sind, existieren unendlich viele alternative Hyperebenen (vgl. Abb. 11.8). Es stellt sich daher die Frage, welche Hyperebene verwendet werden soll. Um diese Frage zu beantworten, werden folgende Größen betrachtet: Minimaler Abstand δ + der Hyperebene von positiven Beispielen Minimaler Abstand δ - der Hyperebene von negativen Beispielen Minimaler Abstand δ = min{δ + , δ - } Breite m = δ - +δ + des Streifens, der positive und negative Beispiele trennt Eine Hyperebene, welche den minimalen Abstand δ zu positiven und negativen Beispielen maximiert, minimiert den zu erwartenden Fehler bei der Klassifikation von neuen Merkmalsvektoren. Dies kann zum einen direkt aus der statistischen Lerntheorie hergeleitet werden (vgl. Vapnik, 2000). Zum anderen lässt sich dieses Ergebnis auch plausibel und anschaulich erklären (vgl. Morik et al., 2012). Eine optimale Hyperebene ist eine Hyperebene, welche den minimalen Abstand δ zu positiven und negativen Beispielen maximiert. Die optimale Hyperebene wird mit H 0 bezeichnet. Es ist offensichtlich, dass bei einer optimalen Hyperebene der minimale Abstand zu negativen Beispielen und der minimale Abstand zu positiven Beispielen identisch sein muss und somit δ = δ + = δ - gilt. Die Hyperebene liegt dann in der Mitte des trennenden Streifens. Für die Breite m des Streifens gilt somit m = δ + + δ - = 2δ, d.h. bei einer optimalen Hyperebene wird durch die Maximierung des minimalen Abstandes δ automatisch die Breite des trennenden Streifens maximiert. Durch die optimale Hyperebene wird ein möglichst breiter Streifen zwischen positiven und negativen Beispielen aus der Trainingsmenge gelegt. Wie die Abb. 11.8 verdeutlicht, wird die Breite des Streifens lediglich durch wenige Beispiele definiert. Nämlich durch diejenigen Beispiele, die auf dem Rand des trennenden Streifens liegen. D.h. für die Beschreibung der optimalen Hyperebene werden lediglich Datenpunkte auf dem Rand des trennenden Streifens benötigt. <?page no="317"?> 11.4 Lineare Support-Vektor-Maschinen (Modell I) 317 Abb. 11.8: Optimale Hyperebene (vgl. Morik et al., 2012) In Abb. 11.8 wird die optimale Hyperebene lediglich durch drei der sechs Datenpunkte beschrieben. Die Merkmalsvektoren, welche diese Datenpunkte beschreiben, sind die Support-Vektoren. 11.4.5 Optimierungsproblem Bislang wurde lediglich motiviert, Merkmalsvektoren anhand einer optimalen Hyperebene zu klassifizieren. Nachfolgend wird nun dargestellt, wie diese optimale Hyperebene berechnet werden kann. Hierzu wird die Herleitung eines Optimierungsproblems zur mathematischen Beschreibung der gesuchten optimalen Hyperebene in Anlehnung an Vapnik (2000) beschrieben (vgl. auch Burges, 1998). Die Herleitung umfasst zwei gedankliche Schritte: Formulierung von Nebenbedingungen Formulierung einer Zielfunktion 11.4.5.1 Nebenbedingungen Es werden Nebenbedingungen eingeführt, welche den Rand des trennenden Streifens zwischen positiven und negativen Beispielen beschreiben. Der Rand wird durch die beiden Hyperebenen H 1 und H 2 beschrieben (vgl. Abb. 11.9). Die Hyperebenen H 1 und H 2 sind Parallelverschiebungen der Ebene H 0 , bis die ersten positiven bzw. negativen Beispiele berührt werden. Es wird definiert: Nebenbedingung für positive Beispiele: w · x + b ≥ 1 Nebenbedingung für negative Beispiele: w · x + b ≤ -1 Die Werte (+1 bzw. -1) auf den rechten Seiten der Ungleichungen können frei gewählt werden, da die Variablen w und b noch nicht festgelegt sind. Beide Seiten einer Ungleichung können mit einer positiven Zahl derart multipliziert werden, so dass auf der rechten Seite jeweils die Werte +1 bzw. -1 stehen. Die gewählten <?page no="318"?> 318 11 Support-Vektor-Maschinen Abb. 11.9: Nebenbedingungen (vgl. Morik et al., 2012) Werte +1 bzw. -1 haben sich für weitere mathematische Herleitungen als komfortabel erwiesen. Die Nebenbedingungen können durch Multiplikation mit den Variablen y i (y i = 1 für positive Beispiele x + und y i = -1 für negative Beispiele x - ) wie folgt vereinfacht werden: Die optimale Hyperebene ist derart festzulegen, dass für die gegebenen Beispiele (x 1 , y 1 ), (x 2 , y 2 ), …, (x m , y m ) die folgenden m Nebenbedingungen erfüllt sind: y i (w · x + b) - 1 ≥ 0 m i ..., , 1 = 11.4.5.2 Zielfunktion Die Breite des Streifens, welcher positive und negative Beispiele trennt, ist zu maximieren. Zur Formulierung einer Zielfunktion wird die Abb. 11.10 herangezogen. In Abb. 11.10 wird von zwei exemplarisch gewählten Beispielen (ein negatives und ein positives Bespiel) auf dem Rand ausgegangen. Der Verbindungsvektor von x - zu x + ist x + - x - . Um nun die Breite des Streifens zu berechnen, ist die Projektion von x + - x - in Richtung des normierten Normalenvektors w 0 zu berechnen. Die Länge m des projizierten Vektors und damit die Breite des Streifens ergibt sich aus dem Skalarprodukt: ) ( 1 ) ( ) ( 0 − + − + − + ⋅ − ⋅ ⋅ = − ⋅ = − ⋅ = x w x w w x x w w x x w m <?page no="319"?> 11.4 Lineare Support-Vektor-Maschinen (Modell I) 319 Abb. 11.10: Zielfunktion In Abschnitt 11.4.5.1 wurden für positive bzw. negative Beispiele die Bedingungen 1 ≥ + ⋅ + b x w bzw. 1 − ≤ + ⋅ − b x w formuliert. Für die positiven und negativen Beispiele, die auf dem Rand liegen, gilt somit 1 = + ⋅ + b x w bzw. 1 − = + ⋅ − b x w . Damit ergibt sich b x w − = ⋅ + 1 bzw. b x w − − = ⋅ − 1 . Diese Ausdrücke können nun in das Skalarprodukt eingesetzt werden. Es folgt: w w w b b w m ⋅ = = − − − − ⋅ = 2 2 )) 1 ( 1 ( 1 Die Breite m des Streifens wird somit dann maximiert, wenn die Länge w des Normalenvektors w minimiert wird. Die Länge des Vektors ist bekanntlich als w w w ⋅ = definiert. Die Aufgabe, die Länge w zu minimieren, ist gleich der Aufgabe, das Skalarprodukt w w ⋅ zu minimieren. Um nun die optimale Hyperebene zu berechnen ist folgendes Optimierungsproblem zu lösen. Optimierungsproblem (vgl. Vapnik, 2000 oder Burges, 1998): Zielfunktion ( ) ( ) min w w w f → ⋅ ⋅ = 2 1 Nebenbedingungen ( ) 0 1 ≥ − + ⋅ b x w y i i m i ..., , 1 = <?page no="320"?> 320 11 Support-Vektor-Maschinen 11.4.6 Entscheidungsfunktion Die optimale Lösung des Optimierungsproblems wird mit ( ) T * * 2 * 1 ..., , , * n w w w w = und b* bezeichnet. Diese beschreiben die optimale Hyperebene. Entsprechend lautet die Entscheidungsfunktion für Support-Vektor-Maschinen unter Verwendung der optimalen Hyperebene: Entscheidungsfunktion (nach Vapnik, 2000): ) sign( ) ( * * b x w x h + ⋅ = Lineare Support-Vektor-Maschinen (Modell II) Nachfolgend wird das Optimierungsproblem von Modell I mit Hilfe der konvexen Optimierung in ein äquivalentes Optimierungsproblem umgewandelt. Dieses wird auch oft als duales Optimierungsproblem bezeichnet. In Abschnitt 11.5.2 werden zunächst einige Konzepte der konvexen Optimierung sehr stark vereinfacht zusammengefasst, um im folgenden Abschnitt 11.5.3 das äquivalente Optimierungsproblem herleiten zu können. 11.5.1 Zusammenfassung Modell II (vgl. Vapnik, 2000) Optimierungsproblem Variablen α = (α 1 , …, α m ) T , 𝛼𝛼 𝑖𝑖 ∈ ℝ, i = 1, …, m Zielfunktion ( ) max x x y y L z m i m i m j j i j i j i i → ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ − = = ∑ ∑∑ = = = 1 1 1 2 1 ) ( α α α α Nebenbedingungen ∑ = = ⋅ m i i i y 1 0 α 0 ≥ i α i = 1, …, m <?page no="321"?> 11.5 Lineare Support-Vektor-Maschinen (Modell II) 321 Die optimale Lösung wird mit T * * 1 * ) ,..., ( m α α α = und die Menge der Support-Vektoren mit } 0 | { * > = i i x S α bezeichnet. Entscheidungsfunktion ( ) ⋅ ⋅ ⋅ + = ∑ ∈S i x i i i x x y b x h * * sign ) ( α ( ) ∑ ∈ ⋅ ⋅ ⋅ − = S i x s i i i s x x y y b * * α S x s ∈ 11.5.2 Einige Konzepte der konvexen Optimierung Das Optimierungsproblem von Modell I ist ein sogenanntes konvexes Optimierungsproblem. Es hat die Form: Minimiere die Funktion f(w) unter den m Nebenbedingungen g 1 (w) ≥ 0, …, g m (w) ≥ 0 und w = (w 1 , …, w n ) T ∈ ℝ 𝑛𝑛 . Bei einem konvexen Optimierungsproblem ist das lokale Minimum zugleich auch das globale Minimum (vgl. Morik et al., 2014). Zur Lösung konvexer Optimierungsprobleme werden im Operations Research sogenannte Lagrange- Funktionen aufgestellt. Diese kombinieren die Zielfunktion und die Nebenbedingungen zu einer Funktion. Um eine Lagrange-Funktion aufzustellen, wird für jede Nebenbedingung g i (x), i = 1, …, m, ein Lagrange-Multiplikator α i ≥ 0 eingeführt. Die Lagrange-Funktion lautet dann: ( ) ∑ = ⋅ − = m i i i w g w f w L 1 ) ( ) ( , α α Die Lagrange-Funktion besteht somit aus den ursprünglichen Variablen w = (w 1 , …, w n ) T und den neuen Variablen bzw. Lagrange-Multiplikatoren α = (α 1 , …, α m ) T . Unter einem Sattelpunkt einer Lagrange-Funktion wird ein Vektor (w*, α*) verstanden, für den folgende Bedingungen gilt: L(w*, α) ≤ L(w*, α*) ≤ L(w, α*). D.h. w* ist globales Minimum der Funktion L(w, α*) für festes α* und α* ist globales Maximum der Funktion L(w*, α) für festes w*. Sattelpunktsatz: Ist (w*, α*) ein Sattelpunkt der Lagrange-Funktion L(w, α), dann ist w* die Minimalstelle der Funktion f(w). <?page no="322"?> 322 11 Support-Vektor-Maschinen In Abb. 11.11 soll die Idee des Sattelpunktsatzes vereinfacht dargestellt werden. Die Abb. 11.11 zeigt eine Funktion L(w, α), die von zwei reellen Variablen α und w abhängig ist, sowie den Sattelpunkt (w*, α*). Abb. 11.11: Sattelpunkt Um einen Sattelpunkt der Lagrange-Funktion zu berechnen, werden notwendige und hinreichende Bedingung formuliert (die sogenannten Karush-Kuhn- Tucker-Bedingungen). Diese besagen u.a., dass für einen Sattelpunkt die partiellen Ableitungen den Wert 0 annehmen. 11.5.3 Herleitung des Optimierungsproblems II Die Lagrange-Funktion für das in Modell I beschriebene Optimierungsproblem der Support-Vektor-Maschinen lautet (Morik et al., 2014): ( ) ( ) ( ) ∑ = − + ⋅ ⋅ − ⋅ = m i i i i b x w y w w b w L 1 1 2 1 , , α α ( ) ∑ ∑ ∑ = = = + ⋅ ⋅ − ⋅ ⋅ ⋅ − ⋅ = m i i m i i i m i i i i b y w x y w w b w L 1 1 1 2 1 , , α α α α Die Lagrange-Funktion enthält als Variablen die n Variablen w 1 , …, w n des Normalenvektors und den Schwellwert b. Ferner wird für jede Nebenbedingung ( ) 0 1 ≥ − + ⋅ b x w y i i , i = 1, …, m, ein Lagrange-Multiplikator α i ≥ 0 eingeführt. <?page no="323"?> 11.5 Lineare Support-Vektor-Maschinen (Modell II) 323 Um nun einen Sattelpunkt der Lagrange-Funktion zu berechnen, werden die folgenden partiellen Ableitungen nach w und b gebildet und gleich Null gesetzt: ∑ = = ⋅ ⋅ − = ∂ ∂ m i i i i x y w L w 1 0 α , d.h. ∑ = ⋅ ⋅ = m i i i i x y w 1 α ∑ = = ⋅ − = ∂ ∂ m i i i y L b 1 0 α , d.h. ∑ = = ⋅ m i i i y 1 0 α Der Normalenvektor w ist eine Linearkombination, deren Koeffizienten Lagrange-Multiplikatoren sind (Vapnik, 2000 bzw. Vapnik, 2006): ∑ = ⋅ ⋅ = m i i i i x y w 1 α Über die Linearkombination können Modell I und Modell II ineinander überführt werden. Die Multiplikatoren α 1 , α 2 , …, α m können als Gewichte der m Beispiele interpretiert werden (Morik et al., 2014). Die beiden durch partielle Ableitung berechneten Ausdrücke können nun wiederum in die ursprüngliche Lagrange-Funktion L(w, b, α) eingesetzt werden. Auf diese Weise erhält man eine vereinfachte Lagrange-Funktion L(α), welche nur noch von α abhängt (vgl. auch Burges, 1998). Die ersten drei Ausdrücke der Lagrange-Funktion L(w, b, α) können zunächst wie folgt vereinfacht werden: ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ = ⋅ ∑ ∑ = = m j j j j m i i i i x y x y w w 1 1 2 1 2 1 α α ⋅ ⋅ ⋅ ⋅ ⋅ = ⋅ ⋅ ⋅ = ⋅ ⋅ ⋅ ∑ ∑ ∑ ∑ = = = = m i i i i m j j j j m i i i i m i i i i x y x y x y w w x y 1 1 1 1 α α α α 0 1 1 = ⋅ ⋅ = ⋅ ⋅ ∑ ∑ = = m i i i m i i i y b b y α α <?page no="324"?> 324 11 Support-Vektor-Maschinen Damit ergibt sich die vereinfachte Lagrange-Funktion zu: ( ) ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ − = ∑ ∑ ∑ = = = m j j j j m i i i i m i i x y x y L 1 1 1 2 1 α α α α ( ) ( ) ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ − = ∑∑ ∑ = = = m i j i m j j i j i m i i x x y y L 1 1 1 2 1 α α α α Aufgrund des Sattelpunktsatzes, ist die Funktion L(α) nun zu maximieren, um die Minimalstelle der Funktion f(w) zu erhalten. Dies führt nun zu folgendem Optimierungsproblem, das äquivalent zum Optimierungsproblem von Modell I ist. Optimierungsproblem II (vgl. Vapnik, 2000 oder Burges, 1998): Zielfunktion ( ) max x x y y L z m i m i m j j i j i j i i → ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ − = = ∑ ∑∑ = = = 1 1 1 2 1 ) ( α α α α Nebenbedingungen 0 1 = ⋅ ∑ = i m i i y α 0 ≥ i α m i ..., , 1 = Die optimale Lösung wird mit ( ) T * * 2 * 1 ..., , , * m α α α α = bezeichnet. Das äquivalente Optimierungsproblem zeichnet sich durch zwei Besonderheiten aus: In der Zielfunktion werden die Skalarprodukte über alle Paare an Merkmalsvektoren gebildet. Es handelt sich um ein quadratisches Optimierungsproblem, in dem die Variablen α i in quadratischer Form vorkommen. <?page no="325"?> 11.5 Lineare Support-Vektor-Maschinen (Modell II) 325 Beispiel 11.7 Am folgenden Beispiel soll verdeutlicht werden, dass die Zielfunktion des äquivalenten Optimierungsproblems eine quadratische Funktion ist. Gegeben sei die folgende Trainingsmenge, die aus m = 3 Beispielen besteht: = 1 , 1 1 ) , ( 1 1 y x , − = 1 , 1 1 ) , ( 2 2 y x , − − = 1 , 1 1 ) , ( 3 3 y x . Das äquivalente Optimierungsproblem hat entsprechend drei Variablen α 1 , α 2 , α 3 , deren Werte zu berechnen sind. Die quadratische Zielfunktion lautet: ( ) 2 3 3 2 2 2 2 1 3 2 1 2 4 2 2 2 1 α α α α α α α α + + + ⋅ − + + = z . 11.5.4 Support-Vektoren Aus der optimalen Lösung * * 2 * 1 ..., , , m α α α des Optimierungsproblems II können die Support-Vektoren der optimalen Hyperebene identifiziert werden. Als Support-Vektoren werden die Merkmalsvektoren x i bezeichnet, für die 0 * > i α gilt (Vapnik, 2000). Die Menge aller Support-Vektoren wird nachfolgend mit S bezeichnet: > = 0 * i i x S α . Tipps für Dozenten Darauf hinweisen, dass die Support-Vektoren erst durch die Lösung des Optimierungsproblems II berechnet werden. Sie sind also nicht a priori bekannt. Bezüglich der Support-Vektoren gelten folgende Aussagen (vgl. Morik et al., 2014): Die durch Support-Vektoren beschriebenen Datenpunkte liegen auf dem Rand des trennenden Bereiches, der durch eine optimale Hyperebene festgelegt wird. Die Support-Vektoren liegen also auf einer der beiden Hyperebenen H 1 oder H 2 . Die Datenpunkte, die durch Merkmalsvektoren beschrieben werden, für die 0 * = i α gilt, liegen entweder ebenfalls auf den Hyperebenen H 1 oder H 2 oder weiter von der optimalen Hyperebene H 0 entfernt. <?page no="326"?> 326 11 Support-Vektor-Maschinen Werden Beispiele aus der Trainingsmenge entfernt, die keine Support- Vektoren enthalten, ändert sich die trainierte Support-Vektor-Maschine nicht. Werden Beispiele der Trainingsmenge hinzugefügt, deren Merkmalsvektoren außerhalb des trennenden Streifens liegen, ändert sich die trainierte Support- Vektor-Maschine nicht. 11.5.5 Entscheidungsfunktion In der Entscheidungsfunktion von Modell I wird nun der optimale Normalenvektor w* durch die Linearkombination der optimalen Gewichte * * 2 * 1 ..., , , m α α α ersetzt. So erhält man: ( ) ( ) ⋅ ⋅ ⋅ + = ⋅ + = + ⋅ = ∑ = x x y b x w b b x w x h i i m i i 1 * * * * * * sign sign sign ) ( α Durch Ausmultiplizieren mit dem Vektor x erhält man schließlich die Entscheidungsfunktion von Modell II. Ferner wurde bei der Entscheidungsfunktion berücksichtigt, dass im Rahmen der Summenberechnung lediglich die Ausdrücke für die Support-Vektoren zu berücksichtigen sind, da für diese 0 * ≠ i α gilt. Entscheidungsfunktion (nach Vapnik, 2000): ( ) ⋅ ⋅ ⋅ + = ∑ ∈S i x i i i x x y b x h * * sign ) ( α Unter Verwendung der identifizierten Support-Vektoren lässt sich der Schwellwert b * der optimalen Hyperebene berechnen. Die Support-Vektoren liegen genau auf dem Rand des trennenden Bereiches (vgl. Abschnitt 11.4.5.1). Für jeden beliebigen Support-Vektor S x s ∈ wurden die Nebenbedingungen derart festgelegt, dass w*·x s + b* = y s gilt. Entsprechend muss hier gelten: ( ) s S i x s i i i y x x y b = ⋅ ⋅ ⋅ + ∑ ∈ * * α Durch Auflösen der Gleichung nach b* erhält man schließlich folgende Berechnungsvorschrift: <?page no="327"?> 11.6 Training einer Support-Vektor-Maschine 327 Der Schwellwert wird anhand eines beliebig wählbaren Support- Vektors x s ∈ S wie folgt berechnet: ( ) ∑ ∈ ⋅ ⋅ ⋅ − = S i x s i i i s x x y y b * * α Training einer Support-Vektor-Maschine Im Folgenden soll die Vorgehensweise, eine lineare Support-Vektor-Maschine zu trainieren, unter Verwendung von Modell II dargestellt werden. Es sei die Trainingsmenge aus Tab. 11.1 angegeben. Training einer Support-Vektor-Maschine: [1] Optimierungsproblem aufstellen [2] Optimierungsproblem lösen [3] Support-Vektoren ermitteln [4] Schwellwert berechnen [5] Entscheidungsfunktion aufstellen Beispiel 11.8 Tab. 11.1: Trainingsbeispiele 11.6.1 Optimierungsproblem aufstellen Es wird das Optimierungsproblem von Modell II unter Verwendung der Trainingsbeispiele formuliert. 1. Zielfunktion: Beispiel Merkmalsvektor Klasse ) , ( 1 1 y x 1 x = 2 2 = 1 y -1 ) , ( 2 2 y x 2 x = 4 4 = 2 y +1 <?page no="328"?> 328 11 Support-Vektor-Maschinen ( ) max z → + − − ⋅ − + = 2 2 2 1 2 1 2 1 2 1 32 16 16 8 2 1 α α α α α α α α 2. Nebenbedingungen: 0 2 1 = + − α α , 0 , 0 2 1 ≥ ≥ α α 11.6.2 Optimierungsproblem lösen Für den hier betrachteten Spezialfall von lediglich zwei Beispielen (m = 2) kann das Optimierungsproblem von Modell II analytisch gelöst werden. 1. Nebenbedingung umstellen: 2 1 α α = 2. Nebenbedingung in die Zielfunktion einsetzen: 2 1 1 4 2 α α − = z 3. Zielfunktion ableiten: 1 8 2 α − = ′ z 4. Nullstellen der ersten Ableitung berechnen: 25 , 0 0 8 2 1 1 = ⇒ = − = ′ α α z 5. Optimale Lösung: 25 , 0 * 1 = α und 25 , 0 * 2 = α Der Zielfunktionswert z* = 0,25 der optimalen Lösung wird für die weitere Entwicklung der Support-Vektor-Maschine nicht benötigt. Tipps für Dozenten Darauf hinweisen, dass das Optimierungsproblem für Modell II bei einer größeren Anzahl an Trainingsbeispielen nicht mehr analytisch gelöst werden kann und dann numerische Verfahren erforderlich sind. 11.6.3 Support-Vektoren ermitteln Da 0 *1 > α und 0 * 2 > α gilt, sind beide Merkmalsvektoren x 1 , x 2 Support- Vektoren. Damit gilt S= {x 1 , x 2 }. 11.6.4 Schwellwert berechnen Um den Schwellwert b* zu berechnen, wird ein (beliebiger) Support-Vektor benötigt. Nachfolgend wird exemplarisch der Support-Vektor = = 2 2 1 x x s gewählt. Damit ist y s = y 1 = -1. ( ) ⋅ ⋅ + ⋅ ⋅ − − − = ⋅ ⋅ ⋅ − = ∑ = 2 2 4 4 25 , 0 2 2 2 2 25 , 0 1 * 1 * m i s i i i s x x y y b α <?page no="329"?> 11.6 Training einer Support-Vektor-Maschine 329 ( ) 3 16 25 , 0 8 25 , 0 1 * − = ⋅ + ⋅ − − − = b 11.6.5 Entscheidungsfunktion aufstellen Die Entscheidungsfunktion für Modell II lautet nun unter Verwendung der gegebenen Trainingsmenge: ⋅ ⋅ + ⋅ + ⋅ ⋅ − ⋅ + − = x x x h 4 4 ) 1 ( 25 , 0 2 2 ) 1 ( 25 , 0 3 sign ) ( ⋅ ⋅ + ⋅ ⋅ − − = x x x h 4 4 25 , 0 2 2 25 , 0 3 sign ) ( Prinzipiell kann aus der Linearkombination der optimalen Gewichte der Normalenvektor der optimalen Hyperebene berechnet werden. Es gilt: = ⋅ + ⋅ − = ⋅ ⋅ = ∑ = 5 , 0 5 , 0 4 4 25 , 0 2 2 25 , 0 * 1 * m i i i i x y w α mit 2 1 * = w Daher kann alternativ zur Entscheidungsfunktion von Modell II auch die äquivalente Entscheidungsfunktion von Modell I berechnet und verwendet werden. Die Entscheidungsfunktion von Modell I lautet: ( ) * * sign ) ( b x w x h + ⋅ = = − + ⋅ ) 3 ( 5 , 0 5 , 0 sign x 11.6.6 Support-Vektor-Maschine anwenden Die Aufgabe besteht nun darin, neue Merkmalsvektoren zu klassifizieren. Hierzu kann entweder die Entscheidungsfunktion von Modell I oder die Entscheidungsfunktion von Modell II verwendet werden. Beide Funktionen sind äquivalent und liefern dieselben Ergebnisse. Dies soll am Beispiel des neu zu klassifizierenden Merkmalsvektor = 4 3 x dargestellt werden. Zunächst soll die Anwendung der Entscheidungsfunktion von Modell II gezeigt werden. Es gilt: ⋅ ⋅ + ⋅ + ⋅ ⋅ − ⋅ + − = 4 3 4 4 ) 1 ( 25 , 0 4 3 2 2 ) 1 ( 25 , 0 3 sign ) (x h ( ) ) 7 5 , 3 3 sign( ) 4 4 3 4 ( 25 , 0 ) 4 2 3 2 ( 25 , 0 3 sign ) ( + − − = ⋅ + ⋅ ⋅ + ⋅ + ⋅ ⋅ − − = x h 1 ) 5 , 0 sign( ) ( + = = x h Nun soll die Anwendung der Entscheidungsfunktion von Modell I gezeigt werden. Es gilt: <?page no="330"?> 330 11 Support-Vektor-Maschinen ( ) ( ) ( ) 1 5 , 0 sign ) 3 ( 2 5 , 1 sign ) 3 ( 4 3 5 , 0 5 , 0 sign ) ( 3 + = = − + + = − + ⋅ = x h In beiden Fällen wird der Merkmalsvektor als positives Beispiel klassifiziert. Mit Hilfe der Entscheidungsfunktion I soll nun exemplarisch ein weiterer Merkmalsvektor = 4 1 x klassifiziert werden. Es gilt: ( ) ( ) ( ) 1 5 , 0 sign ) 3 ( 2 5 , 0 sign ) 3 ( 4 1 5 , 0 5 , 0 sign ) ( − = − = − + + = − + ⋅ = x h Der Merkmalsvektor wird als negatives Beispiel klassifiziert. Zur graphischen Veranschaulichung im zweidimensionalen Raum empfiehlt es sich, die optimale Gerade, welche die Support-Vektor-Maschine definiert, mittels einer Gleichung darzustellen. 6 5 , 0 ) 3 ( 5 , 0 5 , 0 1 1 2 1 2 1 2 + − = − − − = − − = x x w b x w w x Der Abstand |b 0 | der Geraden vom Ursprung berechnet sich wie folgt: 24 , 4 2 3 2 1 3 * 0 ≈ = = = w b b In Abb. 11.12 sind die Trainingsbeispiele, die beiden zu klassifizierenden Merkmalsvektoren und die berechnete optimale Hyperebene H 0 dargestellt. Abb. 11.12: Graphische Darstellung der optimalen Geraden im Beispiel 11.8 <?page no="331"?> 11.7 Nicht-lineare Support-Vektor-Maschinen (Modell III) 331 Nicht-lineare Support-Vektor-Maschinen (Modell III) 11.7.1 Zusammenfassung Modell III (vgl. Vapnik, 2000) Optimierungsproblem Kernelfunktion K: ℝ n x ℝ n → ℝ Variablen α = (α 1 , …, α m ) T Zielfunktion ( ) max x x K y y z m i m i m j j i j i j i i → ⋅ ⋅ ⋅ ⋅ ⋅ − = ∑ ∑∑ = = = 1 1 1 , 2 1 α α α Nebenbedingungen ∑ = = ⋅ m i i i y 1 0 α 0 ≥ i α i = 1, …, m Die optimale Lösung wird mit T * * 1 * ) ,..., ( m α α α = und die Menge der Support-Vektoren mit } 0 | { * > = i i x S α bezeichnet. Entscheidungsfunktion ( ) ⋅ ⋅ + = ∑ ∈ x x K y b x h i i S i x i , sign ) ( * * α ( ) ∑ ∈ ⋅ ⋅ − = S i x s i i i s x x K y y b , * * α S x s ∈ <?page no="332"?> 332 11 Support-Vektor-Maschinen 11.7.2 Nicht-linear trennbare Trainingsmengen Support-Vektor-Maschinen lassen sich auch für Klassifikationsprobleme anwenden, in denen die Trainingsmenge im Eingaberaum nicht-linear in positive und negative Beispiele trennbar ist (vgl. Burges, 1998). Beispiele 11.9 und 11.10 In Abb. 11.13 sind zwei Beispiele für nicht-linear trennbare Trainingsmengen gegeben. Abb. 11.13: Beispiele für nicht-linear trennbare Trainingsmengen (Beispiel 11.9 links, und Beispiel 11.10 rechts) 11.7.3 Feature-Räume und Transformation Um Support-Vektor-Maschinen für nicht-linear trennbare Beispiele zu entwerfen, wird der n-dimensionale Eingaberaum X in einen k-dimensionalen (k > n) Feature-Raum F abgebildet (vgl. Schölkopf und Smola, 2002). D.h. jedem n-dimensionalen Merkmalsvektor im Eingaberaum wird ein k-dimensionaler Merkmalsvektor im Feature-Raum zugeordnet. Die entsprechende Funktion, welche den Eingaberaum in einen Feature-Raum abbildet, wird auch als Transformationsfunktion oder kurz Transformation ϕ : X → F bezeichnet. Es ist vorstellbar, dass eine lineare Trennung von positiven und negativen Beispielen in höher dimensionierten Feature-Räumen möglich ist (vgl. Cover, 1965). Für den Fall, dass eine entsprechende Transformation bekannt ist (üblicherweise ist sie nicht bekannt! ), kann nun das Modell II weiterhin verwendet werden, indem im Optimierungsmodell und der Entscheidungsfunktion anstelle des Skalar- <?page no="333"?> 11.7 Nicht-lineare Support-Vektor-Maschinen (Modell III) 333 produktes (x i · x j ) das Skalarprodukt ϕ (x i )·ϕ (x j ) der transformierten Merkmalsvektoren verwendet wird. Beispiel 11.11 Betrachtet sei eine Transformation ϕ, welche einen zweidimensionalen Eingaberaum X in einen dreidimensionalen Feature-Raum F derart abbildet, so dass die positiven und negativen Merkmalsvektoren aus Beispiel 11.9 im Feature- Raum linear trennbar sind. Hierzu wird die folgende Transformation gewählt (Russell und Norvig, 2012): ( ) = = 2 1 2 2 2 1 2 1 2 x x x x x x x ϕ ϕ . Mit Hilfe der Transformation können nun die gegebenen acht Merkmalsvektoren aus Beispiel 11.9 (vgl. Abb. 11.13) in den Feature-Raum transformiert werden. In Abb. 11.14 werden alle acht transformierten Merkmalsvektoren im dreidimensionalen Feature-Raum dargestellt. Exemplarisch sei die Transformation eines Merkmalvektors vorgerechnet: Der Merkmalsvektor = 10 10 x wird zu ( ) ≈ ⋅ ⋅ = = 141 100 100 10 10 2 10 10 10 10 2 2 ϕ ϕ x . Wie die Abb. 11.14 verdeutlicht, können nun die positiven und negativen (transformierten) Merkmalsvektoren durch eine Ebene getrennt werden. Die optimale Hyperebene hat den Normalenvektor 𝑤𝑤 ∗ = �0,00333 0,00333 0 � sowie den Schwellwert 𝑏𝑏 ∗ = −1,66666 . Um die optimale Hyperebene zu berechnen, ist das Optimierungsproblem von Modell II numerisch zu lösen. Hierbei werden anstelle der Merkmalsvektoren die transformierten Merkmalsvektoren als Eingabe verwendet. Anschließend wird über die beiden nachfolgend modifizierten Formeln der Normalenvektor bzw. der Schwellwert berechnet: ( ) ∑ = ⋅ ⋅ = m i i i i x y w 1 * * ϕ α ( ) ( ) ( ) ∑ = ⋅ ⋅ ⋅ − = m i s i i i s x x y y b 1 * * ϕ ϕ α , mit x s als beliebig gewähltem Support- Vektor. Setzt man z.B. den obigen transformierten Merkmalsvektor in die Entscheidungsfunktion h(x) = sign(w*·ϕ(x) + b*) ein, so erhält man: <?page no="334"?> 334 11 Support-Vektor-Maschinen ( ) 1 1 sign 6666 , 1 10 10 2 10 10 0 00333 , 0 00333 , 0 sign 2 2 2 2 − = − ≈ − ⋅ ⋅ ⋅ = h Der gegebene Merkmalsvektor x wird richtig als negatives Beispiel klassifiziert. Ferner fällt auf, dass der transformierte Merkmalsvektor ϕ(x) im Feature- Raum genau auf der Hyperebene H 1 = {x | w*·x + b* = -1} liegt, d.h. ϕ(x) stellt im Feature-Raum einen Support-Vektor dar, der genau auf dem Rand des trennenden Bereiches liegt (vgl. Abb. 11.14). Abb. 11.14: Transformation von Merkmalsvektoren (Beispiel 11.11) Das Auffinden einer geeigneten Transformation ϕ stellt im Allgemeinen jedoch eine sehr schwierige Aufgabe dar. Durch den nachfolgend beschriebenen Kernel-Trick kann diese Aufgabe umgangen werden. 11.7.4 Kernel-Trick Der Kernel-Trick besteht darin, in dem Modell II das Skalarprodukt (x i · x j ) durch eine Kernel-Funktion K(x i , x j ) zu ersetzen (vgl. Boser et al., 1992, Schölkopf und Smola, 2002). Kernel-Funktion: Eine Funktion K: X × X → ℝ wird als Kernel-Funktion (kurz: Kernel) bezeichnet, wenn diese für je zwei Merkmalsvektoren x i ∈ X <?page no="335"?> 11.7 Nicht-lineare Support-Vektor-Maschinen (Modell III) 335 und x j ∈ X des Eingaberaums X das Skalarprodukt der transformierten Merkmalsvektoren für eine Transformation ϕ berechnet (vgl. Schölkopf und Smola, 2002), d.h. wenn gilt: K(x i , x j ) = ϕ(x i ) · ϕ(x j ) Wird anstelle des Skalarproduktes der transformierten Merkmalsvektoren eine Kernelfunktion verwendet, kann somit auf die Transformation der einzelnen Merkmalsvektoren und somit das Auffinden einer Transformation ϕ verzichtet werden. In Abb. 11.15 ist die Idee des Kernel-Tricks in Anlehnung an Morik et al. (2014) zusammengefasst. Abb. 11.15: Kernel-Trick in Anlehnung an Morik et al. (2014) Beispiel 11.12 Am Beispiel 11.11 aus Abschnitt 11.7.3 soll der Kernel-Trick verdeutlicht werden (vgl. auch Russell und Norvig, 2012). Die in Abschnitt 11.7.3 angegebene Transformation lautete: ( ) = = 2 1 2 2 2 1 2 1 2 x x x x x x x ϕ ϕ Das Skalarprodukt von transformierten Merkmalsvektoren wird durch den Kernel ( ) 2 ) , ( j i j i x x x x K ⋅ = berechnet. Es gilt: ( ) ( ) ( ) j i j i j i x x x x x x K ϕ ϕ ⋅ = ⋅ = 2 ) , ( . Um die Gleichung zu beweisen, wird nachfolgend das Skalarprodukt der transformierten Vektoren ausgerechnet. Hierbei wird u.a. die erste binomische Formel angewendet: ( ) ( ) ⋅ = ⋅ = ⋅ 2 , 1 , 2 2 , 2 1 , 2 , 1 , 22 , 21 , 2 , 1 , 2 , 1 , 2 2 j j j j i i i i j j i i j i x x x x x x x x x x x x x x ϕ ϕ ϕ ϕ <?page no="336"?> 336 11 Support-Vektor-Maschinen ( ) 2 2 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 2 , 22 , 2 1 , 21 , 2 j i j i j j i i j i j i x x x x x x x x x x x x + = + + = ( ) 2 2 2 , 1 , 2 , 1 , j i j j i i x x x x x x ⋅ = ⋅ = Das Beispiel zeigt, dass die Berechnung des Skalarproduktes ( ) ( ) j i x x ϕ ϕ ⋅ durch die Verwendung der Kernelfunktion ( ) 2 ) , ( j i j i x x x x K ⋅ = ersetzt werden kann. D.h. die Transformation der Merkmalsvektoren und damit die Transformationsfunktion ϕ sind im Beispiel nicht mehr erforderlich, um die Entscheidungsfunktion der Support-Vektor-Maschine aufzustellen. Nach Schölkopf und Smola (2002) müssen Funktionen bestimmte Anforderungen erfüllen, um Kernel zu realisieren. Um die Anforderungen zu beschreiben, wird die folgende Kernel-Matrix K unter Verwendung der m gegebenen Merkmalsvektoren der Trainingsmenge aufgestellt: = ) , ( ) , ( ) , ( ) , ( 1 1 1 1 m m m m x x K x x K x x K x x K K Vereinfacht ausgedrückt kann gesagt werden, falls die Kernel-Matrix positiv semidefinit ist, dann stellt K(x i , x j ) eine Kernel-Funktion dar (genauere Ausführungen finden sich u.a. in Mierswa und Morik (2008) oder in Burges, 1998). Dann existiert eine (nicht bekannte) Transformation ϕ, so dass das Skalarprodukt zweier transformierter Merkmalsvektoren durch den Kernel berechnet wird (vgl. auch Morik et al. 2014). Um ein Klassifikationsproblem zu lösen, ist eine geeignete Kernel-Funktion zu entwickeln oder auszuwählen. Von Bedeutung für die praktische Umsetzung ist nun, dass bestimmte Kernel- Funktionen für viele Klassifikationsprobleme anwendbar sind. Auch können durch Kombination von Kernel-Funktionen - z.B. die Addition von Kernel-Funktionen - neue Kernels zusammengesetzt werden (Schölkopf und Smola, 2002). Die Wahl eines geeigneten Kernels stellt somit im Vergleich zum Auffinden einer Transformationsfunktion eine einfachere (aber nicht triviale) Aufgabe dar. Häufig verwendete Kernel (vgl. Schölkopf und Smola, 2002): Linearer Kernel: ( ) ( ) j i j i x x x x K ⋅ = , <?page no="337"?> 11.7 Nicht-lineare Support-Vektor-Maschinen (Modell III) 337 Polynomialer Kernel: ( ) ( ) d j i j i x x c x x K ⋅ + = , RBF-Kernel: − − = 2 2 2 ) , ( β j x i x j i e x x K Wird der lineare Kernel verwendet, erhält man als Spezialfall von Modell III das bereits dargestellte Modell II. Der polynomiale Kernel besitzt die zu wählenden ganzzahligen Parameter c ≥ 0 und d ≥ 2. Der sogenannte RBF-Kernel (RBF steht für „radiale Basisfunktion“) besitzt den zu wählenden Parameter β > 0. Um die Bedeutung von Kernel besser verstehen bzw. neue Kernel entwickeln zu können, hilft es, Kernel als Funktionen zu interpretieren, welche die Ähnlichkeit von Vektoren berechnen (Vert et al., 2004). Um die Interpretation von Kernel als Ähnlichkeitsmaß zu verdeutlichen, sei der RBF- Kernel betrachtet (vgl. Schölkopf und Smola, 2002). Durch 2 j x i x − wird das Quadrat des euklidischen Abstands zwischen den Merkmalsvektoren x i und x j berechnet. Es ist offensichtlich, dass der Wert K(x i , x j ) umso größer ist, je kleiner der Abstand der beiden Vektoren ist bzw. je ähnlicher die Vektoren sind (Vert et al., 2004). Der RBF-Kernel ist für viele Klassifikationsprobleme anwendbar. Der Parameter β kann frei gewählt werden. Relativ kleine Werte für β ermöglichen die Berechnung sehr komplexer Entscheidungsgrenzen. Diese liegen nahe an den Support- Vektoren (vgl. Vert et al., 2004). Relativ große Werte für β ermöglichen dagegen die Berechnung eher „weicher“ Entscheidungsgrenzen (vgl. Vert et al., 2004). 11.7.5 Optimierungsproblem Das Optimierungsproblem von Modell III ergibt sich aus Optimierungsproblem aus Modell II, indem das Skalarprodukt der Merkmalsvektoren durch die Kernelfunktion ersetzt wird. Optimierungsproblem (vgl. Vapnik, 2000 oder Burges, 1998): Zielfunktion: ( ) max x x K y y z m i m i m j j i j i j i i → ⋅ ⋅ ⋅ ⋅ ⋅ − = ∑ ∑∑ = = = 1 1 1 , 2 1 α α α <?page no="338"?> 338 11 Support-Vektor-Maschinen Nebenbedingungen 0 1 = ⋅ ∑ = i m i i y α 0 ≥ i α , i = 1, …, m Die Parameter * * 1 , , m α α werden durch Lösung des Optimierungsproblems von Modell III berechnet. Bei der Berechnung des Schwellwertes wird ebenfalls die Kernelfunktion verwendet. 11.7.6 Entscheidungsfunktion Die Entscheidungsfunktion von Modell III ergibt sich aus der Entscheidungsfunktion aus Modell II, indem das Skalarprodukt der Merkmalsvektoren durch die Kernelfunktion ersetzt wird. Entscheidungsfunktion (vgl. u.a. Vert et al., 2004): ( ) ⋅ ⋅ + = ∑ ∈S i x i i i x x K y b x h , sign ) ( * * α Der zu berechnende Schwellwert ergibt sich analog aus der Berechnungsvorschrift in Modell II. Auch wird das Skalarprodukt der Merkmalsvektoren durch die Kernelfunktion ersetzt: Der Schwellwert wird anhand eines beliebig wählbaren Support- Vektors x s ∈ S wie folgt berechnet: ( ) ∑ ∈ ⋅ ⋅ − = S i x s i i i s x x K y y b , * * α Beispiel 11.13 In Abb. 11.16 werden exemplarisch die Ergebnisse einer trainierten Support- Vektor-Maschine für Beispiel 11.10 angegeben. Die grauen Flächen repräsentieren jeweils die Menge an Merkmalsvektoren, die positiv klassifiziert werden. <?page no="339"?> 11.7 Nicht-lineare Support-Vektor-Maschinen (Modell III) 339 Es wurde das Optimierungsproblem aus Modell III mit dem RBF- Kernel mit verschiedenen Parameterwerten numerisch gelöst. Abb. 11.16: RBF-Kernel (Beispiel 11.13) Beispiel 11.14 In der zweiteiligen Abb. 11.17 werden exemplarisch die Ergebnisse einer trainierten Support-Vektor-Maschine für Beispiel 11.9 angegeben. Die grauen Flächen repräsentieren jeweils die Menge an Merkmalsvektoren, die positiv klassifiziert werden. Es wurde das Optimierungsproblem aus Modell III sowohl mit dem RBF- Kernel als auch mit dem polynomialen Kernel numerisch gelöst. <?page no="340"?> 340 11 Support-Vektor-Maschinen Abb. 11.17: RBF-Kernel vs. Polynomialer Kernel (Beispiel 11.14) Evolutionsstrategie Das Optimierungsproblem von Modell III kann erfolgreich mit numerischen Methoden approximativ gelöst werden. Beispiele für numerische Methoden sind: Evolutionäre Algorithmen (vgl. Mierswa, 2006) Sequential Minimal Optimization (vgl. Platt, 1999) Nachfolgend wird exemplarisch die (µ, λ)-Evolutionsstrategie aus Abschnitt 7.6 zur Lösung des Optimierungsproblems angepasst. Die Anpassung betreffen folgende Aspekte: Individuen und Fitness Initialisierung von Individuen Mutation von Individuen Die Initialisierung und die Mutation sind dahingehend anzupassen, dass die Nebenbedingungen eingehalten werden. 11.8.1 Individuen und Fitness Ein Individuum I = (I.v, I.σ ) besteht aus folgenden Elementen: <?page no="341"?> 11.8 Evolutionsstrategie 341 Jedes Individuum enthält eine Lösung des Optimierungsproblems von Modell III, d.h. jedes Individuum enthält mögliche Werte für die festzulegenden Lagrange-Faktoren α 1 , …, α m . Die Lösungskomponente I.v[i] eines Individuums I enthält einen Wert für den Lagrange-Faktor α i . I.σ ist die Mutationsschrittweite des Individuums I. Die Fitness f(I) eines Individuums I errechnet sich anhand der Zielfunktion z des Optimierungsproblems von Modell III: ( ) ∑ ∑∑ = = = ⋅ ⋅ ⋅ ⋅ ⋅ − = = m i m i m j j i j i x x K j v I i v I y y i v I v I z I f 1 1 1 , ] [ . ] [ . 2 1 ] [ . ) . ( ) ( In Abb. 11.18 ist der Algorithmus zur Berechnung des Zielfunktionswertes bzw. der Fitness angegeben. Hierbei wird der Kernel als gesonderte Methode beschrieben. In Abb. 11.19 wird exemplarisch der lineare Kernel, d.h. das Skalarprodukt (x i · x j ), beschrieben. Input: Individuum I, Trainingsmenge (x 1 , y 1 ), …, (x m , y m ) [1] Zielfunktionswert z ← 0 [2] for i ← 1, …, m do / / m ist die Anzahl der Beispiele [3] for j ← 1, …, m do [4] term ← y i · y j · I.v[i] · I.v[j] · Kernel(x i , x j ) [5] z ← z + term [6] end for [7] end for [8] z ← -0,5 · z [9] for i ← 1, …, m do [10] z ← z + I.v[i] [11] end for Output: Zielfunktionswert z Abb. 11.18: Fitness <?page no="342"?> 342 11 Support-Vektor-Maschinen Input: Merkmalsvektor x i = (x i,1 , …, x i,n ) Merkmalsvektor x j = (x j,1 , …, x j,n ) [1] Skalarprodukt s ← 0 [2] for k ← 1, …, n do / / n ist die Dimension [3] s ← s + (x i,k · x j,k ) [4] end for Output: Skalarprodukt s Abb. 11.19: Linearer Kernel (Skalarprodukt) 11.8.2 Initialisierung Die Initialisierung von Individuen erfolgt mit dem Operator RandomInit. Dieser ist in Abb. 11.20 beschrieben. Die Initialisierung kann in drei Teile eingeteilt werden: Erster Teil (Schritt [1]): Die Schrittweite I.σ wird gleichverteilt-zufällig auf einen Wert im Intervall [0, 1) initialisiert. Zweiter Teil (Schritte [2]-[11]): Die Komponenten I.v[1], …, I.v[m] werden gleichverteilt-zufällig auf Werte im Intervall [ 0, 1) initialisiert. Auf diese Weise wird die Zulässigkeit der Individuen bzgl. der Nebenbedingungen v[i] = α i ≥ 0, i = 1, …, m, sichergestellt. Dritter Teil (Schritte [12]-[16]) Die Zulässigkeit der Individuen bezüglich der Nebenbedingung 0 1 = ⋅ ∑ = i m i i y α wird hergestellt. Hierzu muss lediglich erreicht werden, dass die Summe sp der α-Werte für positive Beispiele (y i = +1) mit der Summe sn der α-Werte für negative Beispiele (y i = -1) übereinstimmt. Zu diesem Zweck werden nun alle α-Werte der negativen Beispiele mit dem Quotienten sp/ sn multipliziert. Input: Trainingsmenge (x 1 , y 1 ), …, (x m , y m ) aus m Beispielen [1] I.σ ← Gleichverteilte Zufallszahl aus [0, 1) [2] Summe der α-Werte für positive Beispiele sp ← 0 [3] Summe der α-Werte für negative Beispiele sn ← 0 [4] for i ← 1, …, m do [5] I.v[i] ← Gleichverteilte Zufallszahl aus [0, 1) [6] if y i = 1 then / / positives Beispiel <?page no="343"?> 11.8 Evolutionsstrategie 343 [7] sp ← sp + I.v[i] [8] else / / negatives Beispiel [9] sn ← sn + I.v[i] [10] end if [11] end for [12] for i ← 1, …, m do [13] if y i = -1 then / / negatives Beispiel [14] I.v[i] ← I.v[i] · (sp/ sn) [15] end if [16] end for Output: Individuum I Abb. 11.20: RandomInit 11.8.3 Mutation Die Mutation von Individuen mit dem Mutations-Operator ist in Abb. 11.21 beschrieben. Die Mutation kann in drei Teile eingeteilt werden: Erster Teil (Schritte [1]-[2]): Die Schrittweite I.σ wird unter Berücksichtigung der Lernrate α multiplikativ variiert (vgl. Abschnitt 7.6). Zweiter Teil (Schritte [3]-[13]): Die Komponenten I.v[1], …, I.v[m] werden unter Berücksichtigung der zuvor variierten Mutationsschrittweite I.σ additiv variiert (vgl. Abschnitt 7.6). Im Unterschied zu Abschnitt 7.6 werden hier jedoch die Beträge der additiv variierten Komponenten gebildet. Auf diese Weise wird die Zulässigkeit der Individuen bzgl. der Nebenbedingungen v[i] = α i ≥ 0, i = 1, …, m, sichergestellt. Dritter Teil (Schritte [14]-[18]): Die Zulässigkeit der Individuen bezüglich der Nebenbedingung 0 1 = ⋅ ∑ = i m i i y α wird hergestellt (vgl. Initialisierung). Input: Trainingsmenge (x 1 , y 1 ), …, (x m , y m ), Individuum I, Lernrate α [1] Normalverteilte Zufallszahl ∆ ← α · N(0,1) [2] I.σ ← I.σ · EXP(∆) [3] Summe der α-Werte für positive Beispiele sp ← 0 [4] Summe der α-Werte für negative Beispiele sn ← 0 [5] for i ← 1, …, m do <?page no="344"?> 344 11 Support-Vektor-Maschinen [6] Normalverteilte Zufallszahl ∆ ← I.σ · N(0,1) [7] I.v[i] ← |I.v[i] + ∆| [8] if y i = 1 then / / positives Beispiel [9] sp ← sp + I.v[i] [10] else / / negatives Beispiel [11] sn ← sn + I.v[i] [12] end if [13] end for [14] for i ← 1, …, m do [15] if y i = -1 then / / negatives Beispiel [16] I.v[i] ← I.v[i] · (sp/ sn) [17] end if [18] end for Output: --- Abb. 11.21: Mutation 11.8.4 Ergebnis Es bezeichne B das Individuum mit der größten Fitness, das über alle Iterationen mit der Evolutionsstrategie berechnet wurde. Dann gilt: 𝛼𝛼 𝑖𝑖∗ = 𝐵𝐵. 𝑣𝑣[𝑚𝑚] , i = 1, …, m, d.h. die zur Aufstellung der Entscheidungsfunktion von Modell III benötigten Werte 𝛼𝛼 1∗ , ⋯ , 𝛼𝛼 𝑚𝑚∗ ergeben sich aus den Komponenten des Individuums mit der größten Fitness. Aufgaben Aufgabe 11.1 Zeichnen Sie die Hyperebene mit folgenden Parametern: w = (2, 8) T , b = -4. Aufgabe 11.2 Unterscheiden Sie Merkmalsvektoren, Normalenvektoren, normierte Normalenvektoren und Support-Vektoren. Aufgabe 11.3 Klassifizieren Sie den Merkmalsvektor x = (4, 3) T anhand der in Abschnitt 11.6 trainierten Support-Vektor-Maschine (w* = (0,5; 0,5) T , b* = -3). <?page no="345"?> 11.9 Aufgaben 345 Aufgabe 11.4 Zu trainieren ist eine Support-Vektor-Maschine. Hierzu sind die Trainingsbeispiele in Tab. 11.2 gegeben. Ferner wurde mit Hilfe der Evolutionsstrategie bereits das äquivalente Optimierungsproblem gelöst. Die berechneten optimalen α-Werte sind ebenfalls angegeben. Erstellen Sie die Support-Vektor-Maschine. Klassifizieren Sie den Vektor x = (1,5, 5,0) T . Stellen die Lösung graphisch dar. Beispiel Merkmalsvektor Klasse Gewicht ) , ( 1 1 y x 1 x = (1,0, 4,0) T = 1 y -1 = 1 α 0 ) , ( 2 2 y x 2 x = (1,2, 2,2) T = 2 y -1 = 2 α 0 ) , ( 3 3 y x 3 x = (2,0, 4,0) T = 3 y -1 ≈ 3 α 0,45 ) , ( 4 4 y x 4 x = (2,5, 1,5) T = 4 y -1 = 4 α 0 ) , ( 5 5 y x 5 x = (4,0, 1,0) T = 5 y -1 = 5 α 0 ) , ( 6 6 y x 6 x = (3,0, 6,0) T = 6 y +1 ≈ 6 α 0,37 ) , ( 7 7 y x 7 x = (5,0, 5,5) T = 7 y +1 = 7 α 0 ) , ( 8 8 y x 8 x = (6,0, 3,0) T = 8 y +1 ≈ 8 α 0,08 ) , ( 9 9 y x 9 x = (6,0, 4,5) T = 9 y +1 = 9 α 0 ) , ( 10 10 y x 10 x = (7,0, 5,0) T = 10 y +1 = 10 α 0 Tab. 11.2: Trainingsmenge für Aufgabe 11.4. Aufgabe 11.5 Berechnen Sie die Ähnlichkeit von zwei Merkmalsvektoren x 1 = (2, 3) T und x 2 = (4, 6) T unter Verwendung des RBF-Kernels und dem Parameter β = 1. <?page no="347"?> Literatur Zu Kapitel 1 und 2: Grundbegriffe des Operations Research und Lineare Optimierung Borgwardt K. H. (2001): Optimierung Operations Research Spieltheorie, Birkhäuser. Dantzig G. B. (1966): Lineare Programmierung und Erweiterungen, Springer. Domschke W., Drexl A., Klein R., Scholl A. (2015): Einführung in Operations Research, 9. Auflage, Springer Gabler. Gohout W. (2009): Operations Research, 4. Auflage, Oldenbourg. Heinrich G. (2013): Operations Research, Oldenbourg. Neumann K., Morlock M. (2002): Operations Research, 2. Auflage, Carl Hanser. Suhl L., Mellouli T. (2009): Optimierungssysteme: Modelle, Verfahren, Software, Anwendungen, 2. Auflage, Springer Zu Kapitel 3: Graphentheorie Aigner M. (2006): Diskrete Mathematik, 6. Auflage, Vieweg. Diestel R. (2017): Graphentheorie, 5. Auflage, Springer Spektrum. Jungnickel D. (1994): Graphen, Netzwerke und Algorithmen, 3. Auflage, BI Wissenschaftsverlag. Kruskal J. B. (1956): On the shortest spanning subtree and the traveling salesman problem. Proceedings of the American Mathematical Society 7(1), S. 48-50. Matoušek J., Nešetřil J. (2007): Diskrete Mathematik, 2. Auflage, Springer. Prim R. C. (1957): Shortest connection networks and some generalizations. Bell System Technical Journal 36(6), S. 1389-1401. Steger A. (2007): Diskrete Strukturen, Band 1: Kombinatorik, Graphentheorie, Algebra, Springer. Zu Kapitel 4: Kombinatorische Optimierung Cornuejols G., Nemhauser G. L., Wolsey L. A. (1990): The uncapacitated facility location problem. In: Mirchandani P. B., Francis R. L. (Hrsg.): Discrete location theory, Wiley, S. 119-171. Dantzig G. B., Fulkerson D. R., Johnson S. M. (1954): Solution of a large-scale traveling-salesman problem. Operations Research 2, S. 393-410. <?page no="348"?> 348 Literatur Fink A., Homberger J. (2015): Decentralized multi-project scheduling. In: Schwindt C., Zimmermann J. (Hrsg.): Handbook on project management and scheduling, Vol. 2, International Handbooks on Information Systems, Springer, S. 685-706. Franck B., Neumann K., Schwindt C. (2001): Truncated branch-and-bound, schedule-construction, and schedule-improvement procedures for resourceconstrained project scheduling. OR Spektrum 23(3), S. 297-324. Hartmann S. (1998): A competitive genetic algorithm for resource-constrained project scheduling. Naval Research Logistics 45(7), S. 733-750. Johnson, D. S., Papadimitriou C. H., (1985): Performance guarantees for heuristics. In: Lawler E. L., Lenstra J. K., Rinnooy Kan A. H. G, Shmoys D. B. (Hrsg.): The traveling salesman problem, Wiley, S. 145-180. Kolisch R., Hartmann S. (1999): Heuristic algorithms for solving the resourceconstrained project scheduling problem: classification and computational analysis. In: Weglarz J. (Hrsg.): Project scheduling: recent models, algorithms and applications, Kluwer Academic Publishers, S. 147-178. Laporte G. (1992): The traveling salesman problem: an overview of exact and approximate algorithms. European Journal of Operational Research 59, S. 231- 247. Steinberg E., Napier H. A. (1980): Optimal multilevel lot sizing for requirements planning systems. Management Science 26(12), S. 1258-1271. Zu Kapitel 5: Grundbegriffe der Künstlichen Intelligenz Abels H. (2018): Interaktion. In: Abels, H.: Einführung in die Soziologie, Band 2: Die Individiuen in ihrer Gesellschaft, 5. Auflage, Springer, S. 184-241. Erk K., Pado S., Pado U. (2010): A flexible, corpus-driven model of regular and inverse selectional preferences. Computational Linguistics, 36(4), S. 723-763. Fink A. (2007): Barwertorientierte Projektplanung mit mehreren Akteuren mittels eines verhandlungsbasierten Koordinationsmechanismus. In: Oberweis A., Weinhardt C., Gimpel H., Koschmider A., Pankratius V., Schnizler B. (Hrsg.): eOrganisation: Service-, Prozess-, Market-Engineering, Band 2. Universitätsverlag Karlsruhe, S. 465-482. Görz G., Schneeberger .J, Schmid U. (2013): Handbuch der künstlichen Intelligenz, Oldenbourg. Huhns M. N., Stephens L. M. (1999): Multiagent systems and society of agents. In Weiss G. (Hrsg.): Multiagent Systems: a modern approach to distributed artificial intelligence, Cambridge et al., S. 79-120. Jennings N. R., Faratin P., Lomuscio A. R., Parsons S., Woolridge M., Sierra C. (2001): Automated negotiation: prospects, methods and challenges. Group Decision and Negotiation 10(2), S. 199-215. <?page no="349"?> Literatur 349 Kasinger H., Denzinger J., Bauer B. (2009): Decentralized coordination of homogeneous and heterogeneous agents by digital infochemicals, ACM Symposium on Applied Computing, S. 1223-1224. Kruse R, Borgelt C, Braune C, Klawonn F, Moewes C, Steinbrecher M (2015). Computational Intelligence. Springer. McCarthy J., Minsky M. L., Rochester N., Shannon C. E. (1955): A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence. http: / / wwwformal.stanford.edu/ jmc/ history/ dartmouth/ dartmouth.html (zuletzt besucht: 17.03.19). Minsky M. (1988): The Society of Mind, Simon & Schuster. Poole D., Mackworth A., Goebel R. (1998): Computational intelligence: A logical approach, Oxford University Press. Rosenschein J. S., Zlotkin G. (1994): Rules of encounter. Designing conventions for automated negotiation among computers, MIT Press. Russell S., Norvig P. (2012): Künstliche Intelligenz: Ein moderner Ansatz, 3. Auflage, Pearson. Scherer A. G. (2006): Kritik der Organisation oder Organisation der Kritik? : Wissenschaftstheoretische Bemerkungen zum kritischen Umgang mit Organisationstheorien. In: Kieser A., Ebers M. (Hrsg.): Organisationstheorien, 6. Auflage, Kohlhammer, S. 19-61. Stadtler H. (2009): A framework for collaborative planning and state-of-the-art. OR Spectrum 31(1), S. 5-30. Turing A. (1950): Computing machinery and intelligence. Mind 49, S. 433-460. Weise P. (1997): Konkurrenz und Kooperation. In: Held M.: Normative Grundfragen der Ökonomik: Folgen für die Theoriebildung, Campus, S. 58-80. Weiss G. (1999): Multiagent Systems: A Modern Approach to Distributed Artificial Intelligence, MIT Press. Wooldridge M. (2002): Intelligent agents: The key concepts. In: Proceedings of the 9th ECCAI-ACAI/ EASSS 2001, AEMAS 2001, HoloMAS 2001 on Multi- Agent-Systems and Applications II, S. 3-43. Wooldridge M., Jennings N. R. (1995): Intelligent agents: Theory and practice. Knowledge Engineering Review 10(2), S. 115-152. Zu Kapitel 6: Genetische Algorithmen Aguirre H. (Hrsg., 2018): Proceedings of the Genetic and Evolutionary Computation Conference Companion, ACM. Bäck T. (1992): Self-adaptation in genetic algorithms. MIT-Press, S. 263-271. Darwin C. (1859): On the Origin of Species, Harvard University Press. <?page no="350"?> 350 Literatur Domrös J., Homberger J. (2012): An evolutionary algorithm for high school timetabling. In: Kjenstad D., A. Riise, T.E. Nordlander, B. McCollum, E. Burke (Hrsg.): Proceedings of the 9th International Conference on the Practice and Theory of Automated Timetabling, Son, Norwegen, 28. - 31. August 2012, SIN- TEF, S. 485 - 488. Goldberg D. E. (1989): Genetic algorithms in search, optimization, and machine learning, 13. Auflage, Addison-Wesley. Hartmann S. (1998): A competitive genetic algorithm for resource-constrained project scheduling. Naval Research Logistics 45(7), S. 733-750. Holland J. H. (1975): Adaptation in natural and artificial systems, University of Michigan Press. (MIT Press ist die Auflage von 1992) Homberger J. (2008): A parallel genetic algorithm for the multilevel unconstrained lot-sizing problem. Informs Journal on Computing 20(1), S. 124-132. Homberger J., Gehring H. (2008): A two-level parallel genetic algorithm for the uncapacitated warehouse location problem. In: Sprague R. H. Jr. (Hrsg.): Proceedings of the 41st Hawaii International Conference on System Sciences, 7.- 10. Januar 2008, IEEE Computer Society Press, 8 Seiten. De Jong K. A. (1975): An analysis of the behavior of a class of genetic adaptive systems. Dissertation, University of Michigan. Miller B. L., Goldberg D. E. (1995): Genetic algorithms, tournament selection, and the effects of noise. Complex Systems 9, S. 193-212. Mühlenbein H. (1992): How genetic algorithms really work: mutation and hillclimbing. In: Männer R., Manderick B. (Hrsg.): Parallel problem solving from nature 2, PPSN-II, Brüssel, S. 15-22. Padberg M., Rinaldi G. (1987): Optimization of a 532-city symmetric traveling salesman problem by branch and cut. Operations Research Letters 6(1), S. 1-7. Rechenberg I. (1973): Evolutionsstrategie: Optimierung technischer Systeme nach Prinzipien der biologischen Evolution, Frommann-Holzboog. Syswerda G. (1991): A study of reproduction in generational and steady state genetic algorithms. In: Rawlins G. J. E. (Hrsg.): Foundations of genetic algorithms. Morgan Kaufmann, S. 94-101. Zu Kapitel 7: Evolutionsstrategien Bäck T. (1994): Selective pressure in evolutionary algorithms: A characterization of selection mechanisms. In: Proceedings of the First IEEE Conference on Evolutionary Computation. IEEE World Congress on Computational Intelligence, IEEE, S. 57-62. Bäck T., Schwefel H.-P. (1993): An overview of evolutionary algorithms for parameter optimization. Evolutionary Computation 1, S. 1-23. <?page no="351"?> Literatur 351 Bäck T., Hoffmeister F., Schwefel H.-P. (1991): A survey of evolution strategies. In: Belew R. K., Booker L. B. (Hrsg.): Proceedings of the 4th International Conference on Genetic Algorithms, S. 2-9. Bäck T., Naujoks B., Schütz M., Willmes L. (2000): Tragflächen-Optimierung mittels Evolutionärer Algorithmen. In: Tagungsband zur VDI/ VDE-GMA- und GI-Tagung Computational Intelligence im industriellen Einsatz, Baden-Baden. VDI Berichte 1526, S. 67-84. Beyer H.-G., Hellwig M. (2017): Analysis of the pcCMSA-ES on the noisy ellipsoid modell. In: Bosmann P. A. N. (Hrsg.), Proceedings of the Genetic and Evolutionary Computation Conference, ACM, S. 689-696. Beyer H-G, Schwefel H-P (2002). Evolution strategies. A comprehensive introduction. Natural Computing 1, S. 3-52. Box G. E. P., Muller M. E. (1958): A note on the generation of random normal deviates. Annals of Mathematical Statistics 29(2), S. 610-611. Conti E., Madhavan V., Such F. P., Lehman J., Stanley K. O., Clune J. (2018): Improving exploration in evolution strategies for deep reinforcement learning via a population of novelty-seeking agents. In: Proceedings of the 32nd Conference on Neural Information Processing Systems (NeurIPS 2018), Montréal. Ibrahim O. A. S., Landa-Silva D. (2018): An evolutionary strategy with machine learning for learning to rank in information retrieval. Soft Computing 22(10), S. 3171-3185. Marsaglia G., Bray T. A. (1964): A convenient method for generating normal variables. SIAM Review 6(3), S. 260-264. Nissen V. (1994): Einführung in Evolutionäre Algorithmen. Springer Vieweg. Rechenberg I. (1973). Evolutionsstrategie. Optimierung technischer Systeme nach Prinzipien der biologischen Evolution, Frommann-Holzboog. Rechenberg I. (1994): Evolutionsstrategie ’94, Frommann-Holzboog. Schwefel H.-P. (1977): Numerische Optimierung von Computermodellen mittels der Evolutionsstrategie, Interdisciplinary systems research 26, Birkhäuser. Schwefel H.-P. (1981): Numerical optimization of computer models, Wiley. Schwefel H.-P. (1995): Evolution and optimum seeking, Wiley. Zu Kapitel 8: Multiagenten-Planen Conitzer V., Sandholm T. (2005): Communication complexity of common voting rules. In: Riedl J., Kearns M., Reiter M. (Hrsg.): Proceedings of the 6th ACM Conference on Electronic Commerce, ACM, S. 78-87. Conti E., Madhavan V., Such F. P., Lehman J., Stanley K. O., Clune J. (2018): Improving exploration in evolution strategies for deep reinforcement learning via <?page no="352"?> 352 Literatur a population of novelty-seeking agents. In: Proceedings of the 32nd Conference on Neural Information Processing Systems (NeurIPS 2018). Dudek, G. (2004): Collaborative planning in supply chains: A negotiation-based approach, Springer. Ehtamo H., Kettunen E., Hämäläinen R. P. (2001): Searching for joint gains in multi-party negotiations. European Journal of Operational Research 130(1), S. 54-69. Fink A. (2004): Supply chain coordination by means of automated negotiations. In: Proceedings of the 37th Hawaii International Conference on System Sciences, IEEE. Fink A., Homberger J. (2013): An ant-based coordination mechanism for resource constrained project scheduling with multiple agents and cash-flow objectives. Flexible Services and Manufacturing Journal 25(1-2), S. 94-121. Fink A., Homberger J. (2015): Decentralized multi-project scheduling. In: Schwindt C., Zimmermann J. (Hrsg.): Handbook on Project Management and Scheduling, Vol. 2, International Handbooks on Information Systems, Springer, S. 685-706. Fink A., Voß S. (2003): Solving the continuous flow-shop scheduling problem by metaheuristics. European Journal of Operational Research 151(2), S. 400-414. Fisher R., Ury W. (1987): Getting to yes: Negotiating agreement without giving in. New York: Penguin Group. Gjerdrum J., Shah N., Papageorgiou L. G. (2001): Transfer prices for multienterprise supply chain optimization. Industrial & Engineering Chemistry Research 40(7), S. 1650-1660. Homberger J. (2009): A (μ, λ)-coordination mechanism for agent-based multiproject scheduling. OR Spectrum 34(1), S. 107-132. Homberger J. (2010): Decentralized multi-level uncapacitated lot-sizing by automated negotiation. 4OR-Q Journal of Operations Research 8(2), S. 155-180. Homberger J., Fink A. (2017): Generic negotiation mechanisms with side payments: Design, analysis and application for decentralized resource-constrained multi-project scheduling problems. European Journal of Operational Research 261(3), S. 1001-1012. Jennings N. R., Faratin P., Lomuscio A. R., Parsons S., Wooldridge M., Sierra C. (2001): Automated negotiation: Prospects, methods and challenges. Group Decision and Negotiation 10(2), S. 199-215. Kersten G. E. (2003): The science and engineering of e-negotiation: an introduction. In: Proceedings of the 36th Hawaii International Conference on System Sciences, IEEE, S. 27-36. <?page no="353"?> Literatur 353 Klein M., Faratin P., Sayama H., Bar-Yam Y. (2003): Negotiating complex contracts. Group Decision and Negotiation 12(2), S. 111-125. Lang F., Fink A. (2015): Learning from the metaheuristics: protocols for automated negotiations. Group Decision and Negotiation 24(2), S. 299-332. Nash J. F. (1950): The bargaining problem. Econometrica 18(2), S. 155-162. Raiffa H. (1982): The art and science of negotiation, Belknap Press of Harvard University. Rawls J. (1971): A theory of justice, Harvard University Press. Zu Kapitel 9: Schwarmintelligenz Gehring H. (1992): Simulation. In: Gal T. (Hrsg.): Grundlagen des Operations Research, Band 3, Springer, S. 290-339. Oboshi T., Kato S., Mutoh A., Itoh H. (2003): A simulation study on the form of fish schooling for escape from predator. Forma 18, S. 119-131. Reynolds C. W. (1987): Flocks, herds, and schools: a distributed behavioral model. Computer Graphics 21(4), SIGGRAPH '87 Conference Proceedings, S. 25-34. Vicsek T., Czirók A., Ben-Jacob E., Cohen I., Shochet O. (1995): Novel type of phase transition in a system of self-driven particles. Physical Review Letters 75(6), S. 1226-1229. Zu Kapitel 10: Ameisenalgorithmen Dorigo M., Gambardella L. M. (1997): Ant colony system: a cooperative learning approach to the traveling salesman problem. IEEE Transactions on Evolutionary Computation 1(1), S. 53-66. Holland J. H. (1992): Adaptation in natural and artificial systems, 2. Auflage, MIT Press. Homberger J., Gehring H. (2009): An ant colony optimization approach for the multi-level unconstrained lot-sizing problem. In: Sprague R. H. Jr. (Hrsg.): Proc. of the 42nd Hawaii International Conference on System Sciences, 5.-8. Januar 2009, IEEE Computer Society Press, 7 Seiten. Stützle T., Hoos H. H. (2000): MAX-MIN-ant system. Future Generation Computer Systems 16, S. 889-914. Zu Kapitel 11: Support-Vektor-Maschinen Boser B. E., Guyon I. M., Vapnik V. (1992): A Training algorithm for optimal margin classifiers. In: Haussler D. (Hrsg.): Fifth Annual Workshop on Computational Learning Theory, ACM, S. 144-152. <?page no="354"?> 354 Literatur Burges C. J. C. (1998): A tutorial on support vector machines for pattern recognition. Data Mining and Knowledge Discovery 2, S. 121-167. Cover T. M. (1965): Geometrical and statistical properties of systems of linear inequalities with applications in pattern recognition. IEEE Transactions on Electronic Computers 14(3), S. 326-334. Kortström J., Uski M., Tiira T. (2016): Automatic classification of seismic events within a regional seismograph network. Computers and Geosciences 87, S. 22-30. Mierswa I. (2006): Evolutionary learning with kernels: a generic solution for large margin problems. Proceedings of the 8th Annual Conference on Genetic and Evolutionary Computation, ACM, S. 1553-1560. Mierswa I., Morik K. (2008): About the non-convex optimization problem induced by non-positive semidefinite kernel learning. Advances in Data Analysis and Classification 2(3), S. 241-258. Morik K., Wrobel S., Joachims T. (2014): Maschinelles Lernen und Data Mining. In: Görz G., Schneeberger J., Schmid U. (Hrsg.): Handbuch der Künstlichen Intelligenz, 5. Auflage, Oldenbourg, S. 405-472. Platt J. C. (1999): Fast training of support vector machines using sequential minimal optimization. In: Schölkopf B., Burges C. J. C., Smola A. J. (Hrsg.): Advances in kernel methods - Support vector learning, MIT Press, S. 185-208. Schölkopf B., Smola A. J. (2002): Learning with kernels: Support vector machines, regularization, optimization, and beyond, MIT Press. Schwefel H.-P. (1995): Evolution and optimum seeking, Wiley Interscience. Vapnik, V. (2000): The nature of statistical learning theory, 2. Auflage, Springer. Vapnik, V. (2006): Estimation of dependences based on empirical data, Springer. Vert J.-P., Tsuda K., Schölkopf B. (2004): A primer on kernel methods. In: Schölkopf B., Tsuda K., Vert J.-P. (Hrsg.): Kernel methods in computational biology, MIT Press, S. 35-70. <?page no="355"?> Index A Abbruchregel.................................. 60 abstraktes Modell........................... 18 abstraktes Problem ........................ 18 Aktivität ........................................ 103 Algorithmus von Kruskal ............. 86 Algorithmus von Prim .................. 84 Anfangsknoten............................... 73 Auslastung .................................... 106 Auslastungsdiagramm ................. 105 B Basislösung ..................................... 41 initiale.......................................... 41 Basisvariable ................................... 40 BV ............................................... 40 Baugruppe............................. 119, 122 Baum ............................................... 79 Blatt............................................. 79 Bedarf.................................... 104, 121 Bergsteiger-Algorithmus ............. 100 Bounding ........................................ 59 Branch-and-Bound-Methode ....... 58 Abbruchregel ............................. 60 Bounding .................................... 59 Branching ................................... 58 Breitensuche .............................. 60 Branching........................................ 58 Breitensuche ................................... 60 BV.................................................... 40 D deterministische Optimierung ..... 19 Digraph ........................................... 73 diskrete Optimierung .................... 19 Distanz ............................................ 94 Distanz-Matrix ............................... 94 dual zulässiges Tableau.................. 55 duale Entartung .............................. 45 dualer Simplex-Algorithmus ......... 54 duales Problem ............................... 52 Dummy-Job .................................. 104 dynamische Optimierung.............. 19 E Endknoten ...................................... 73 Entartung duale ............................................ 45 primale ........................................ 45 Entscheidungsvariable...... 20, 32, 90 Errichtungskosten........................ 114 erweiterter Simplex-Algorithmus . 46 Erzeugnis ...................................... 119 exaktes Verfahren ....................18, 91 F Facetten ........................................... 33 Fertigerzeugnis ............................. 119 Fertigstellungszeit ........................ 106 freie Variable................................... 46 G Gantt-Diagramm.......................... 105 ganzzahlige lineare Optimierung.. 57 Gauß-Klammer .............................. 59 GE ................................................... 30 gerichteter Graph ........................... 73 Gesamtdistanz ................................ 96 Gesamtkosten.............. 113, 118, 121 gesperrte Schlupfvariable .............. 46 Gozinto-Graph ............................ 120 <?page no="356"?> 356 Index Graph............................................... 72 bipartiter ..................................... 76 gerichteter ................................... 73 Größe .......................................... 73 Inzidenzabbildung ..................... 72 Kanten......................................... 72 Knoten ........................................ 72 Ordnung ..................................... 73 vollständiger ............................... 75 vollständiger bipartiter .............. 76 zusammenhängender ................ 78 graphische Lösung eines linearen Optimierungsproblems............. 35 Greedy-Heuristik.......................... 100 H Hamiltonkreis ................................. 95 Handschlag-Lemma ....................... 74 Heuristik....................................18, 91 Greedy....................................... 100 Hyperheuristik ........................... 93 Konstruktions-Heuristik........... 91 Metaheuristik.............................. 92 Nearest-Neighbor...................... 99 Spezifische Heuristiken............. 91 Universelle Heuristiken............. 92 Verbesserungs-Heuristik .......... 91 I initiale Basislösung ......................... 41 Instanz.............................................. 18 Isozielwertgerade............................ 35 J Job ......................................... 103, 104 Dauer......................................... 104 Startzeit ..................................... 106 K kanonische Form ........................... 38 Kantenzug ....................................... 77 Kapazität ....................................... 104 knapsack-Problem ..........................22 Knotengrad .....................................74 Kombination............................ 20, 90 kombinatorische Optimierung ....19, 89 Konstruktions-Heuristik..............109 Kopfspalte .......................................40 Kopfzeile .........................................40 k-regulär...........................................76 Kreis .................................................77 Kreis-Graph ....................................75 L Lagerbestand .................................121 Lagerkosten ...................................119 lineare Optimierung ................ 19, 30 lineare Restriktion...........................32 lineare Zielfunktion ........................32 lokale Suche...................................100 lokales Minimum ..........................101 Losgröße ........................................121 Losgrößenplan ..................... 118, 122 Losgrößenproblem.......................117 Baugruppe ........................ 119, 122 Bedarf ........................................121 Erzeugnis ..................................119 Gesamtkosten.................. 118, 121 Lagerbestand.............................121 Lagerkosten ..............................119 Rüstentscheidung .....................121 Rüstkosten ................................119 Lösung .............................................20 optimale.......................... 20, 33, 90 zulässige.......................................39 zulässige Basislösung .................41 Lösungsraum...................... 20, 90, 95 <?page no="357"?> Index 357 M ME................................................... 50 Modell ............................................. 31 abstraktes.................................... 18 kanonische Form....................... 38 Normalform............................... 31 Move-Operator ............................ 100 multikriterielle Optimierung......... 19 N Nachbarschaft .............................. 100 Nachfolger......................73, 105, 120 Nachfrager.................................... 114 nächster Nachbar........................... 99 NBV ................................................ 40 Nearest-Neighbor-Heuristik ........ 99 Nebenbedingung ........................... 20 Nichtbasisvariable.......................... 40 NBV............................................ 40 Nichtnegativitätsbedingung.... 20, 32 Normalform ................................... 31 O obere Schranke............................... 59 Operations Research ..................... 17 optimale Lösung ................20, 33, 90 optimaler Wert ............................... 33 P Parameter ........................................ 18 Periode .................................. 103, 119 Pfad ................................................. 77 Phase 0 ............................................ 46 Phase 1 ............................................ 47 Phase 2 ............................................ 47 Pivotelement .................................. 42 Pivotschritt ..................................... 42 Pivotspalte....................................... 42 Pivotzeile ......................................... 42 Planungshorizont ........................... 19 Polyeder........................................... 33 Polytop ............................................ 33 primal unzulässiges Tableau ........... 41 primal zulässiges Tableau ............... 41 primale Entartung........................... 45 primales Problem ........................... 50 Primärbedarf.........................119, 121 Prioritätsregel................................ 111 Problem abstraktes .................................... 18 duales........................................... 52 Instanz ........................................ 18 primales....................................... 50 Projektdauer..........................103, 106 Projekt-Scheduling-Problem ...... 103 Aktivität .................................... 103 Auslastungsdiagramm ............. 105 Bedarf........................................ 104 Dummy-Job ............................. 104 Job ............................................. 104 Kapazität................................... 104 R Rechteckregel.................................. 42 Relaxation..................................57, 59 Ressourcentyp .............................. 104 Restriktion....................................... 20 restringierte Optimierung ............. 19 Rucksack-Problem ......................... 22 Rundreiseproblem........................... 93 Distanz-Matrix ........................... 94 Standort ...................................... 94 Rüstentscheidung ......................... 121 Rüstkosten .................................... 119 <?page no="358"?> 358 Index S Schedule ............................... 103, 107 Scheduling ..................................... 111 Schlupfvariable ............................... 38 Sekundärbedarf............................. 122 Serial Schedule Generation Scheme...................................... 109 Simplex-Algorithmus...............38, 46 dualer........................................... 54 erweiterter................................... 46 klassischer ................................... 46 Phase 0 ........................................ 46 Phase 1 ........................................ 47 Phase 2 ........................................ 47 Skalarprodukt.................................. 32 Spannbaum ..................................... 82 minimaler .................................... 84 Standort ...................................94, 114 Standortplan......................... 113, 116 Standortproblem .......................... 113 Errichtungskosten ................... 114 Gesamtkosten .......................... 113 Nachfrager................................ 114 Transportkosten ...................... 114 Subtour ............................................ 96 Suchphase ....................................... 46 Swap-Operator ............................. 101 T Tableau ............................................ 40 Kopfspalte .................................. 40 Kopfzeile .................................... 40 unzulässiges ................................ 41 zulässiges..................................... 41 Teilgraph ......................................... 78 Tour ..94, 97, 99, 101, 102, 103, 125, 126 transponieren ........................... 32, 54 Transportkosten ...........................114 U unrestringiertes lineares Optimierungsproblem .............................33 untere Schranke ..............................59 unzulässiges Tableau .......................41 V Variable ............................................20 freie ..............................................46 gesperrte ......................................46 Verfahren exaktes .........................................18 heuristisches................................18 Verzweigungsregel..........................59 Vorbereitungsphase .......................46 Vorgang .........................................103 Vorgänger .......................73, 105, 120 Vorgangsknotennetz ....................105 W Wald .................................................79 Weg ..................................................77 Z Zielfunktion ............................. 20, 90 Zielfunktionswert ...........................32 zulässige Basislösung .......................41 zulässige Lösung ................ 20, 33, 39 zulässige Menge ................. 20, 33, 90 zulässige Menge der kanonischen Form............................................39 zulässiges Tableau............................41 Zyklus...............................................77 <?page no="359"?> www.uvk.de Michael Nagel, Christian Mieke Strategie 2017, 192 S., Hardcover 978-3-86764-750-2 Michael Nagel, Christian Mieke Marketing und Vertrieb 2017, 154 S., Hardcover 978-3-86764-749-6 Christian Mieke, Michael Nagel Innovationsmanagement 2017, 134 S., Hardcover 978-3-86764-751-9 Christian Mieke, Michael Nagel Produktion und Logistik 2017, 172 S., Hardcover 978-3-86764-752-6 DIE WICHTIGSTEN METHODEN: ANSCHAULICH UND PRAXISNAH STRATEGIEN ENTWICKELN UND KOMPETENT UMSETZEN KOMPAKTER EINBLICK IN DIE RELEVANTEN METHODEN PRAXISRELEVANTES WISSEN FÜR EIN SYSTEMATISCHES INNOVATIONSMANAGEMENT GRUNDLEGENDE METHODEN ZUR LÖSUNG VON PLANUNGS- PROBLEMEN <?page no="360"?> Der richtige Umgang mit Menschen im Beruf und Alltag Nello Gaspardo Von harten Hunden und hyperaktiven Affen Der richtige Umgang mit Menschen im Beruf und Alltag 2017, 158 Seiten, Hardcover ISBN 978-3-86764-834-9 Jeder Mensch ist einzigartig! Das ist fraglos richtig. Dessen ungeachtet finden Sie bei Ihren Mitmenschen wiederkehrende Charaktereigenschaften, mit denen Sie im Beruf und im Alltag umgehen müssen. Denken Sie nur an den harten Hund aus der Chefetage, den cleveren Fuchs aus dem Controlling oder den zappeligen, aber vor Ideen sprühenden Affen aus der Marketingabteilung. Der Kommunikations- und Verhandlungsexperte Nello Gaspardo skizziert neun solcher Typen anhand von Tierbildern. Er zeigt deren Stärken und Schwächen auf und verrät Ihnen pointiert, was Sie im Umgang mit diesen Menschen unbedingt wissen sollten und wie Sie mit diesen Typen richtig kommunizieren. Das Buch ist ein unverzichtbarer Ratgeber für alle, die im Beruf und im Alltag gemeinsam mit anderen Menschen schnell und harmonisch Ziele erreichen möchten. www.uvk.de
