Studienarbeit im Fach Operations Research am Beispiel des Traveling - Salesman Problems Sommersemester 2001 Dozent: Prof. Dr. rer. nat. Wolf Leiser Referenten: Hakan Kücükyilmaz WI5, Bülent Tiknas TB5, Savas Yildirim WI8, Matr-Nr: 718061 721074 719075 I. Inhaltsverzeichnis I. INHALTSVERZEICHNIS II II. ABBILDUNGSVERZEICHNIS III 1. ZIEL DES OPERATIONS RESEARCH 1 1.1 DEFINITION OR 1.2 EINSATZBEREICHE DES OPERATION RESEARCH 1.3 PROBLEMSTELLUNGEN UND ANWENDUNGEN IM OPERATIONS RESEARCH 1.3 SPEZIALFALL: DAS PROBLEM DES HANDLUNGSREISENDEN (TRAVELING-SALESMANPROBLEM TSP) 2 2 3 12 2. AUFGABENSTELLUNG: ERMITTLUNG DES KÜRZESTEN WEGES MIT DER TRESHOLD ACCEPTING METHODE (TOLERANZSCHWELLEN METHODE) 12 2.1 DEFINITION TRESHOLD ACCEPTING 2.2 INTERPRETATION TRESHOLD ACCEPTING 14 15 3. PROBLEMLÖSUNGSANSATZ AUS DER SICHT DES WIRTSCHAFTSINGENIEURS 16 3.1 DEFINITION DES INVER-OVER OPERATORS 3.2 INTERPRETATION DES INVER-OVER OPERATORS 3.3 INVER-OVER OPERATOR: DIE OPTIMALE LÖSUNG FÜR TSP BIS 100 PUNKTE III. LITERATURVERZEICHNIS 16 19 20 V III SELBSTÄNDIGKEITSERKLÄRUNG DER VERFASSER VI Operations Research II II. Abbildungsverzeichnis Abb. 1: Produktionsproblem, Quelle: Neumann/Morlock, Operations Research, Hanser 1993 Abb. 2: Rettungsplan, Quelle: Neumann/Morlock, Operations Research, Hanser 1993 Abb. 3: Lagerbestand, Quelle: Neumann/Morlock, Operations Research, Hanser 1993 Abb. 4: Warteschlange, Quelle: Neumann / Morlock, Operations Research, Hanser 1993 Abb. 5: Aufgabenstellung: Zufällige Ausgangsstellung, Quelle: Eigen Abb. 6: Aufgabenstellung: Die optimale Tour mit 81.93697 LE, Quelle: Eigen Abb. 7: Bergauf, Quelle: Eigen Abb. 8: Treshold Accepting, Quelle: Eigen Abb. 9: 2-OPT Inversion: Quelle: Eigen Operations Research III 1. Ziel des Operations Research Operations Research im folgenden OR genannt, behandelt quantifizierbare Probleme, bei denen es mehrere Entscheidungsmöglichkeiten gibt. Unter allen möglichen Alternativen soll die beste gemäß eines bestimmten Gütekriteriums gefunden werden. Beim Auffinden aller Alternativen ist zu beachten, dass im allgemeinen eine große Zahl sogenannter Nebenbedingungen, die häufig besagen, dass alle bei dem Problem benötigten Ressourcen (etwa Rohstoffe, Fachkräfte, Kapital, Zeit, Lagerraum, Transportwege oder ähnliches) nur beschränkt verfügbar sind , erfüllt sein muss. Kurz gefaßt: Operations Research bedeutet die Suche nach einer bestmöglichen (optimalen) Entscheidung unter Berücksichtigung von Nebenbedingungen.1 Als Anwendung mathematischer Methoden in der Planung hat sich OR seit dem 2. Weltkrieg entwickelt um Probleme oben genannter Art zu lösen.2 Im größeren Umfang wurde OR erstmals während des 2.Weltkrieges im militärischen Bereich betrieben. Die USA und Großbritannien beschäftigten sich beispielsweise mit der optimalen Größe von Geleitzügen und der optimalen Verteilung der vorhandener Begleitschiffe zur U-Boot-Abwehr. OR-Gruppen bei der Luftwaffe befaßten sich mit der Treffgenauigkeit von Bombern sowie mit der Größe von Bombentepichen. Eine genaue Analyse der deutschen Luftangriffe auf England unterstützte die Planung der britischen Luftangriffe auf Deutschland. 3 Nach dem 2.Weltkrieg verlagerten sich die Schwerpunkte der OR-Forschung von den militärischen in die wirtschaftlichen Problemstellungen. Das Ziel jedes unternehmerischen Handels kann in der Maximierung des langfristigen Gesamtgewinns gesehen werden. Hierbei besteht die Kunst der Unternehmensführung in der optimalen Kombination der Elementarfaktoren 5M + 1 (Mensch, Maschine, Material, Moneten, Management + Information) hinsichtlich diese Zieles.4 1 Vgl.: Neumann / Morlock Operations Research, Hanser 1993, Seite 5 2 Vgl.: Ellinger / Beuermann/ Leisten Operations Research Eine Einführung, Springer 5.Auflage 2001, Seite 1 3 Vgl.: Brusberg Der Entwicklung der Unternehmensforschung mit besonderer Berücksichtigung der Bundesrepublik Deutschland, Wiesbaden 1965, Seite 29 ff. Operations Research 1 1.1 Definition OR Folgende Definition gibt uns die Deutsche Gesellschaft für Operations Research: "Operations Research ist ein auf praktische Anwendung mathematischer Methoden ausgerichteter Wissenszweig und befasst sich mit der Problemanalyse und Vorbereitung optimaler Entscheidungen in Organisationen. Operations Research ist geprägt durch die Zusammenarbeit von Mathematik, Wirtschaftswissenschaften und Informatik."5 Operations Research läßt sich durch folgende vier Merkmale weiter präzisieren: Optimalitätsstreben: Zielsetzung optimieren Modellanalytische Vorgehensweise: Modelldenken und Modellanalyse sind Kernstück des Operations Research Problemquantifizieren: Quantifizierbarkeit der Entscheidungsprobleme Entscheidungsvorbereitung: Bereitstellung von Informationsgrundlage für Entscheidungsträger6 1.2 Einsatzbereiche des Operation Research Im industriellen Bereich wird Operations Research am häufigsten in folgenden Industriezweigen angewandt: Erdölindustrie Eisen– und Stahlindustrie Elektroindustrie Flugzeugindustrie Automobilindustrie 4 Vgl.: Zimmermann, Operations Research Quantitative Methoden zur Entscheidungsvorbereitung, Oldenbourg 8. A. Seite 1 Startseite http://www.gor-ev.de/frame.html, abgerufen am 15.06.2001 6 Vgl.: Zimmermann, Operations Research Quantitative Methoden zur Entscheidungsvorbereitung, Oldenbourg 8.Aufl. Seite 3 f 5 Operations Research 2 Innerhalb der einzelnen Unternehmen kann man folgende Anwendungsbereiche unterscheiden: Beschaffung Lagerhaltung Produktion Absatz Personalwesen Steuerwesen Investition und Finanzierung Integrierte Gesamtmodelle 1.3 Problemstellungen und Anwendungen im Operations Research Beispiel 1: Produktionsplanung Abb. 1: Produktionsproblem Auf einer Produktionsanlage können die Güter 1 und 2 hergestellt werden, wobei drei verschiedene Rohstoffe benötigt werden (Abb. 1). Ein optimaler Produktionsplan besteht dann darin zu entscheiden, welche Mengen x1 und x2 von den Gütern 1 und 2 zu produzieren sind, wobei folgendes zu berücksichtigen ist: · Der erzielte Gesamtgewinn soll maximiert werden, wobei die Gewinne gj pro produzierter Mengeneinheit (ME) von Gut j = 1, 2 jeweils bekannt sind. Operations Research 3 · Die Güter konkurrieren hinsichtlich der zu ihrer Produktion benötigten Rohstoffe, die nur in beschränktem Maß zur Verfügung stehen: Verfügbare Menge von Rohstoff 1: b1 ME Verfügbare Menge von Rohstoff 2: b2 ME Verfügbare Menge von Rohstoff 3: b3 ME. · Für die Produktion einer Mengeneinheit eines jeden Gutes ist eine gewisse ”Faktor-Einsatzmenge” von jedem Rohstoff (”Produktionsfaktor”) erforderlich: Benötigte Menge von Rohstoff i zur Produktion von 1 ME von Gut j: aij ME (i=1, 2, 3; j =1, 2). Damit erhalten wir das folgende Optimierungsproblem: Maximiere die Zielfunktion g1x1 + g2x2 unter den Nebenbedingungen a11x1 + a12x2 <= b1 a21x1 + a22x2 <= b2 a31x1 + a32x2 <= b3 x1>= 0, x2> = 0 Die Restriktionen x1 >= 0, x2 >= 0 besagen, dass die Entscheidungsvariablen x1 und x2 (produzierte ME) nur nichtnegative Werte annehmen können (Nichtnegtivitätsbedingung). Hat man es allgemeiner mit der Produktion von q Gütern zu tun, wobei m verschiedene Rohstoffe benötigt werden, so ist eine Zielfunktion g1x1 + g2x2 + ... + gqxq zu maximieren unter Nebenbedingungen der Form ai1x1 + ai2x2 + ... + aiqxq <= bi (i = 1, ... ,m) x1 >= 0, x2 >= 0, ... ,xq >= 0 An Stelle der oder zusätzlich zu den Ungleichungen können auch Gleichungen unter den Restriktionen auftreten, z.B. Materialbilanz-Gleichungen in der chemischen Verfahrenstechnik. Operations Research 4 Da sowohl die Zielfunktion als auch die linken Seiten der obigen Ungleichungen lineare Funktionen der Entscheidungsvariablen x1, x2 , ... ,xq darstellen, spricht man von einem linearen Optimierungsproblem. Lineare Optimierungsprobleme sind in zweifacher Hinsicht von großer Bedeutung. Zum einen lassen sich viele wirtschaftliche und technische Fragestellungen in dieser Weise übersichtlich modellieren; zum anderen stehen für derartige Aufgabenstellungen eine leistungsfähige Theorie und effiziente Verfahren zur Verfügung. Sie ermöglichen es, Optimierungsprobleme mit Tausenden von Variablen und Nebenbedingungen auf einem Rechner zu lösen. In der Praxis wird die lineare Optimierung z.B. seit vielen Jahren mit großem Erfolg bei der Rohölverarbeitung in Raffinerien angewendet. Hierbei sollen aus einer oder mehreren Rohölsorten durch einen optimierten Produktionsablauf die Endprodukte Motorbenzin, Dieselkraftstoff, leichtes bzw. schweres Heizöl, Heizgas usw. hergestellt werden. Bei der Planung ist das Durchlaufen einer großen Anzahl von Produktionsstufen mit Zwischenprodukten wie Destillaten oder Flüssiggas zu beachten. Dabei treten z.B. folgende Nebenbedingungen auf: Kapazitätsgrenzen der einzelnen Aggregate Lieferverpflichtungen für gewisse Fertigprodukte (durch die Marketingabteilung prognostizierte) Mindest- und Höchstabsatzmengen einzelner Produkte Qualitätsanforderungen bei einigen Produkten z.B. Mindestoktanzahl) Obergrenzen für Stickoxydemission Sicherung eines gewissen Marktanteils. Da unterschiedliche Rohöle alternativ oder als Mischungen verwendet wer- den sowie einige der Aggregate einer Raffinerie (z.B. die Crack-Anlage) auf verschiedenartige Weise eingesetzt werden können und es zudem verschiedene Möglichkeiten gibt, gewisse Endprodukte durch Mischen von Zwischenprodukten herzustellen, resultiert eine große Anzahl von Alternativen für die Fahrweise einer Raffinerie. Jedes Produkt hat eine andere Gewinnspanne, wobei es aber unwirtschaftlich sein kann, ein Produkt mit hoher Gewinnspanne in großen Mengen herzustellen, wenn hierdurch in anderen Bereichen des Produktionsprozesses Engpässe entstehen. Operations Research 5 Gesucht ist dann ein solches Produktionsprogramm (das festlegt, wieviel von jedem Produkt hergestellt werden soll), das einen maximalen Gesamtgewinn für das Unternehmen (innerhalb einer gewissen Planungsperiode) ergibt. Einige spezielle lineare Optimierungsprobleme haben aufgrund ihrer Praxisrelevanz besondere Beachtung gefunden, z.B. Aufgaben im Zusammenhang mit dem Transport von Gütern. Beispiel 2: Kürzeste Wege in Verkehrsnetzen Abb. 2: Rettungsplan Unfallrettung und Feuerwehr stehen ständig vor dem Problem, so schnell wie möglich zum jeweiligen Einsatzort zu gelangen (etwa einer Unfallstelle wie in Abb. 2). Für besonders wichtige oder gefährdete Objekte sind von den Rettungsdiensten vorsorglich geeignete Wege in dem vorliegenden Verkehrsnetz zu bestimmen, Operations Research 6 auf denen das Ziel in kürzest möglicher Zeit erreicht werden kann. An Stelle der Zeit kann auch die Weglänge als Zielkriterium verwendet werden. In diesem Verkehrsnetz sind neben Einbahnstraßenregelungen und Abbiegeverboten vor allem die Fahrzeiten auf den einzelnen Streckenabschnitten zu berücksichtigen, die verkehrsbedingt im Laufe des Tages stark schwanken können. Beispielsweise erhält man für Zeiten des Berufsverkehrs andere Streckenpläne als für verkehrsarme Nachtstunden. Unter dem Schlagwort ”Verkehrsleitplanung” wird die Bestimmung kürzester Wege zur Zeit in der Öffentlichkeit diskutiert. So sollen etwa in der Zukunft Verkehrsleitsysteme auf Autobahnen Verkehrsbelastungs- und Stauinformationen über Induktionsschleifen aufnehmen, in einem Zentralrechner verarbeiten und an den Bordcomputer des Fahrzeugs zurückgeben, der dann für ein zuvor eingegebenes Fahrziel eine konkrete Streckenempfehlung erarbeitet. Für den innerstädtischen Bereich befindet sich das mobile Zielführungssystem EVA der Firma Blaupunkt bereits in der Erprobung. Nach Eingabe von Start- und Zielpunkt werden unter Berücksichtigung von Verkehrsbelastungen und des Verkehrsnetzes ein Streckenvorschlag und gegebenenfalls noch gewisse Varianten vorgeschlagen. Zur Lösung derartiger z.T. einfach erscheinender Probleme sind allerdings sehr große Datenmengen zu berücksichtigen. Anstelle kürzester Wege sind bei manchen Problemstellungen auch längste Wege von Interesse. Die Berechnung längster Wege läßt sich ohne Schwierigkeiten entweder in analoger Weise wie das Minimierungsproblem der Bestimmung kürzester Wege lösen oder in ein solches Problem transformieren. Wir haben es hier mit einem anschaulichen Beispiel für den im Operations Research häufig auftretenden Fall zu tun, daß Maximierungsprobleme auf Minimierungsprobleme (und umgekehrt) zurückgeführt werden können. Tritt bei der Bestimmung eines kürzesten Weges noch die zusätzliche Bedingung auf, daß beispielsweise ein Handlungsreisender auf diesem kürzesten Wege alle seine Kunden besuchen soll, so steht man einem sehr viel schwieriger zu lösenden Problem gegenüber. Operations Research 7 Beispiel 3: Lagerhaltung Ein Party-Service-Unternehmen sei für den kommenden Monat völlig ausgebucht. Beispielsweise sei der tägliche Bedarf an Räucherlachs bekannt. Für das Serviceunternehmen ist es dann einerseits günstig, den Lachs in größeren Mengen einzukaufen, da bei einer Bestellung am Tag j (j = 1,..., 30) Fixkosten K für Arbeitszeit, Telex und die Anfahrt anfallen, die unabhängig von der gelieferten Menge uj sind. Andererseits bringt die Lagerung einer Menge x pro Tag Kosten hx für Kapitalbindung, Kühlung und Lagerorganisation mit sich, die proportional zu der gelagerten Menge sind. Nach einer Entscheidung über die Zeitpunkte und Mengen der Anlieferung von Lachs, der sogenannten Lagerhaltungspolitik, habe die Lagerbestandskurve beispielsweise die Gestalt von Abb. 3. Abb. 3: Lagerbestand Liege etwa am Tag j ein Lieferzugang von uj und ein Bedarf von rj vor, und sei xj >= 0 der Lagerbestand am Tag j vor Lieferung der Menge uj und Abgang der nachgefragten Menge rj, so erfolgt die Fortschreibung des Bestands über die Lagerbilanzgleichung xj+1 = xj + uj - rj mit uj >= 0, rj >= 0 und einem Anfangslagerbestand x1. Operations Research 8 Die zu minimierende Zielfunktion hat dabei die Form 30 ( K (u j 1 j ) hx j 1 ) , wobei (uj) = 1 für uj > 0 und (uj) = 0 für uj = 0 gilt. Bei realen Aufgabenstellungen aus dem Bereich der Lagerhaltung sind neben den bereits genannten vor allem noch folgende Einflußgrö8en zu nennen: mengenabhängige Einkaufspreise Lagerkapazitäten Lieferzeiten Fehlmengen Zufallseinflüsse bei Liefer- und Nachfragemengen. Selbst relativ kleine Unternehmen investieren jährlich Hunderttausende DM im Lager. Von dieser Summe kann man in vielen Fällen 10 - 20% als Fehlinvestitionen bezeichnen, die verursacht werden entweder durch einen unnötig hohen Lagerbestand oder durch Fehlmengenkosten in Form von Kosten für Eilbestellungen oder Produkionsausfallkosten bei zu niedrigem Lagerbestand. Die Behandlung einfacher Lagerhaltungsaufgaben ist heutzutage bereits in Standard-ProduktionsPlanungs-Systemen (PPS) für PCs integriert, während bei größeren Unternehmen jeweils spezielle Software seit vielen Jahren erfolgreich eingesetzt wird. Beispielsweise hat die Lever Sunlicht GmbH 1972 zum Einkauf von Rohstoffen ein Dispositionssystem entwickelt, das seitdem im Einsatz ist. Die Berechnung der optimalen Einkaufsentscheidungen Schätzungen des Sicherheitsbestand (unsicheren) berücksichtigt, erfolgt wöchentlich Bedarfs. mit dem Hierbei ein auf wird der Basis ein unvorhergesehener von gewisser Bedarf abgefangen werden soll. Der Planungshorizont beträgt 5 Monate, und es sind Mengenrabatte des Zulieferers zu berücksichtigen. Ohne die Unterstützung durch ein Rechnerprogramm wäre es insbesondere nicht möglich, diese Rabattstaffel optimal zu nutzen. Kontrollrechnungen haben ergeben, dass mit Hilfe des eingesetzten relativ einfachen Planungsinstruments jährlich etwa 250 000 DM eingespart werden können. Ein weiteres Beispiel soll eine Vorstellung von der möglichen Grö0enordnung praxisrelevanter Lagerhaltungsprobleme vermitteln. Operations Research 9 Die Lufthansa hält zur Wartung ihrer Flotte etwa 200 000 verschiedene Verschleißteile vorrätig, und zwar in den Ersatzteillagern in Hamburg und Frankfurt, ferner zusammen mit anderen europäischen Luftfahrtgesellschaften in Paris, Brüssel, Madrid und Rom. Selbstverständlich ist hier eine wirtschaftliche Lagerhaltung nur mit OR-Methoden möglich, und die Lufthansa verwendet schon seit vielen Jahren solche Verfahren. Beispiel 4: Warteschlangen In einem Supermarkt seien zwei Kassen vorhanden, an denen sich gelegentlich längere Warteschlangen bilden. Die Anzahl der Kunden, die pro Minute an den Kassen ankommen, sei zufallsabhängig, wobei die Zufallsmechanismen aufgrund von Erfahrungswerten als bekannt vorausgesetzt werden können. Neben diesem ”Ankunftsstrom” ist für die Bildung von Warteschlangen auch die Dauer des Kassierens verantwortlich. Die Bedienungszeit kann bei den einzelnen Kunden sehr unterschiedlich sein. Sie werde daher ebenfalls als Zufallsgröße aufgefaßt, wobei der Zufallsmechanismus ebenfalls als bekannt vorausgesetzt werde. Um zu entscheiden, ob in dem Supermarkt noch eine weitere Kasse eingerichtet werden soll, interessiert die Geschäftsleitung, welche Auswirkungen eine derartige Maßnahme auf die mittlere Wartezeit der Kunden haben würde. Abb. 4: Warteschlange Operations Research 10 Warteschlangenprobleme treten sowohl im täglichen Leben (etwa vor Verkehrsampeln oder bei ärztlichen Untersuchungen) als auch in vielen technischen und wirtschaftlichen Telefonzentrale, der Bereichen auf Organisation z.B. bei des der Dimensionierung Abarbeitungsmodus einer wartender Rechnerprogramme durch die Zentraleinheit (Interruptbehandlung) oder der Festlegung der Größe eines Zwischenlagers für Halbfertigfabrikate in einem Produktionsprozeß). Die einfachsten dieser Probleme lassen sich durch ein Modell beschreiben, das einen Bedienungsschalter besitzt, an dem eintreffende ”Kunden” nacheinander abgefertigt werden. Naheliegende Erweiterungen des Modells bestehen darin, mehrere parallele oder hintereinander angeordnete Schalter zu betrachten, unterschiedliches Kundenverhalten in der Wartephase einzubeziehen oder verschiedene Abfertigungsreihenfolgen bei der Abfertigung von Kunden zuzulassen. Im Unterschied zu den bisher behandelten Aufgaben steht bei Warteschlangenproblemen häufig nicht die Optimierung, sondern lediglich die Analyse der Wartesituation im Vordergrund (etwa hinsichtlich der mittleren Wartezeit der Kunden oder der durchschnittlichen Länge der Warteschlange). Abgesehen von wenigen einfachen Aufgabenstellungen, läßt sich aber selbst eine derartige Analyse nicht mehr vollständig durchrechnen. Die notwendige Berücksichtigung von Zufallseinflüssen bringt es meistens mit sich, dass beispielsweise das Verhalten eines Wartesystems oder der Vergleich verschiedener Lösungsalternativen nur noch mit Hilfe eines Rechners ”simuliert” werden kann. Dies bedeutet, daß eine Vielzahl von möglichen Abläufen des Warte- und Bedienungsprozesses auf einem Computer ”durchgespielt” und statistisch ausgewertet wird. Eine bekannte Software hierfür ist eM-Plant von Tecnomatix. Mit Erfolg sind Warteschlangenmodelle für größere Probleme beispielsweise bereits seit 1967 in den USA bei der Planung und dem Betrieb von Computernetzen eingesetzt worden. Durch die Vernetzung zahlreicher Rechner wird eine gute Auslastung und Verfügbarkeit erreicht, wobei es bei dem in großem Umfang durchgeführten Datentransfer zu Warteproblemen kommt. Sie werden mit Hilfe einer eigens erstellten Software untersucht und gelöst.7 7 Vgl.: Neumann / Morlock Operations Research, Hanser 1993, Seite 11-34 Operations Research 11 1.3 Spezialfall: Das Problem des Handlungsreisenden (Traveling-Salesman-Problem TSP) Das klassische Beispiel für ein Wegeproblem bildet das Traveling-SalesmanProblem,8 bei dem es darum geht, dass ein Handelsreisender seine Route vom Ausgangsort über eine bestimmte Anzahl zu bereisender Orte zum Ausgangsort zurück optimal abstimmen will, um einen minimale Wegstrecke zu erreichen.9 Diese kombinatorische Problem bezeichnen Mathematiker als NP-vollständiges Problem. Der Handlungsreisende soll jede Stadt genau einmal besuchen. Wenn man sich die Anzahl der Möglichkeiten ausrechnet, erkennt man schnell, dass mit ansteigender Zahl der Städte, die Möglichkeiten der Rundreisen extrem steigern. Bei drei Städten wären es 3 Startpunkte. Danach kann er eine der 2 folgenden Städte besuchen um schließlich zur letzten zu gelangen. D.h. 3 x (3-1) x (3-2) oder kurz 3! (drei Fakultät) = 6 Möglichkeiten. Nun hat aber 10! schon 3 628 800 Möglichkeiten und die meisten Taschenrechner versagen schon ab 70! (>10100). Diese Problemstellung kann auch auf Rundreisen, Postboten- und Transportwege in Unternehmen übertragen werden. Eine große Bibliothek mit den bekanntesten TSPProblemstellungen (Symmetric Traveling Salesman Problem (TSP)) kann unter der Internetseite: http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/tsp/ abgerufen werden. 2. Aufgabenstellung: Ermittlung des kürzesten Weges mit der Treshold Accepting Methode (Toleranzschwellen Methode) Ein Unternehmen produziert Leiterplatten für elektronische Geräte. Zur Aufnahme der Bauelemente müssen 30 Löcher in die Platten gebohrt werden. Ein Plan mit der Position der Bohrung ist beigelegt. 8 Vgl.: Flood, The traveling-salesman problem, in Operations Research, 1956 Seite 61-75 9Vgl.: Ellinger / Beuermann / Leisten Operations Research Eine Einführung, Springer 5.Auflage 2001, Seite 8 Operations Research 12 Um die Bearbeitungszeit zu optimieren wird der kürzeste Weg zwischen den Bohrlöchern gesucht. Aufgabenstellung: a) Erstellen Sie ein Programm (in VBA für Excel), das den kürzesten Weg ermittelt. Verwenden Sie Dazu das Optimierungsverfahren mit "Toleranzschwelle". b) Zeigen Sie, dass ein "gieriger" Algorithmus eine schlechtere Lösung erbringt. 25 Nebenan ist deutlich zu erkennen, dass diese 20 Anordnung der Bohrlöcher bestimmt nicht die optimale Lösung darstellt. 15 10 5 0 0 2 4 6 8 10 12 14 Abb. 5: Aufgabenstellung: Zufällige Ausgangsstellung Nach ca. 15 Minuten findet das Excel-Programm mit der "Toleranzschwellenmethode" den besten bekannten Weg für das Bohrlochproblem. 25 Bei der näheren Betrachtung der optimalen Tour fällt auf, dass ein einfaches Naheste 20 Nachbar Verfahren diese Tour auf keinen Fall finden kann. 15 10 5 0 0 2 4 6 8 10 12 14 Abb. 6: Aufgabenstellung: Die optimale Tour mit 81.93697 LE Operations Research 13 2.1 Definition Treshold Accepting Hier zunächst der original Pseudocode der Entwickler Gunter Dueck, Tobias Scheuer und Hans-Martin Wallmeier: "Treshold Accepting: Akzeptieren einer neuen Lösung gemäß einer Toleranzschwelle 1.Wähle in der gegebenen Aufgabenstellung irgendeine Lösung (einen Zustand x im Zustandsraum X) als Ausgangspunkt. 2.Wähle einen Nachbarzustand y von x, der durch eine lokale Veränderung aus x hervorgeht. 3.Vergleiche die Zielfunktionswerte f(x) und f(y). Ist f(y) um mehr als T schlechter als f(x), so verwirf y; bleibe bei x stehen und suche einen neuen Nachbarzustand von x. Ist aber f(y) mindestens so groß wie f(x)-T, ist also f(y) höchstens um T schlechter als f(x), so gehe zum Zustand y über. Wir sagen, y wird akzeptiert. Von y aus fahre weiter fort. 4.Wenn längere Zeit keine Verbesserungen auftreten, senke T langsam auf null." 10 Der original Algorithmus gewährt einige Freiheitsgrade hinsichtlich der Implementierung. Es ist zweckmäßig, die beste während eines Treshold Accepting Laufes gefundene Lösung separat festzuhalten und immer zu aktualisieren, wenn eine noch bessere Lösung gefunden wird. So geht die beste bisher gefundene Lösung nicht wieder verloren und bildet auch das Endergebnis. Außerdem kann die Wahl einer neuer Lösung aus der Nachbarschaft der alten Lösung einerseits stochastisch (zufällig) erfolgen. Andererseits kann sie auch deterministisch vorgenommen werden. Wichtig dabei ist, daß ein permanentes Zirkulieren zwischen einzelnen Lösungen möglichst vermieden wird.11 Auch hängt die Qualität der Ergebnisse von der Absenkgeschwindigkeit des Parameters T ab. Hier gibt es verschiedene Ansätze: lineare und verschiedene Formen des exponentiellen Abstiegs. 10 11 Duek/Scheuer/Wallmeier, Toleranzschwelle und Sintflut: neue Ideen zur Optimierung, Spektrum der Wissenschaft 93, S. 7 Vgl.: Nissen, Einführung in Evolutionäre Algorithmen, Vieweg 97, Seite 223 f Operations Research 14 2.2 Interpretation Treshold Accepting Das Treshold Accepting Verfahren entstand wie das Sintflut Verfahren aus der Vereinfachung des Simulated Annealing Verfahren (Simuliertes Erstarren). Alle diese Verfahren nehmen die Evolutionstheorie (Survival of the fitest) als Vorlage. Warum findet man mit diesem Algorithmus so gute Ergebnisse, ist eine einfache Zufallssuche genauso effektiv? Zunächst zur Problemstellung, wir haben es hier mit einem symmetrischen TSP (Der Weg zwischen zwei Punkten ist in beide Richtungen gleich weit bzw. gleich gewichtet) zu tun, die möglichen Kombinationen zwischen den Punkten betragt demnach ½((30-1)!) = 4,4 x 1030. Wenn wir in einer Sekunde eine Million Kombinationen ausprobieren würden, bedeutet das immer noch 1,4 x 10 18 Jahre an Rechenzeit, um alle Kombinationsmöglichkeiten durchzuspielen. Treshold Accepting kann sehr gut mit einem blinden Bergwanderer verglichen werden, der versuchen soll den höchsten Punkt auf der Erdoberfläche zu finden. Wenn wir dem Bergwanderer sagen er solle immer nur aufwärts und nie abwärts gehen, so wird er auf dem nächsten Maulwurfshügel stehenbleiben. Aufwärts aber nicht mehr Abwärts, um noch höher hinauszukommen Abb. 7: Bergauf Genau dieses Problem hatten die Entwickler von Treshold Accepting vor Augen. Um den Bergwanderer auf den höchsten Punkt bringen zu können, muß dem Bergwanderer anfangs erlaubt werden auch eine gewisse Strecke bergab zu steigen. Somit überwindet er die Maulwurfshügel und mit der Zeit darf er immer weniger bergab steigen, um zügig auf den Mount Everest zu kommen. Operations Research 15 Das erklärt auch die Frage warum ein gieriger Algorithmus (nur minimal oder überhaupt nicht absteigen ) also kleine Treshold Anfangswerte schlechtere Ergebnisse erzielen. Wenn der Bergwanderer anfangs nur minimal absteigen darf, wird er nicht beim Maulwurfshügel sonder vielleicht schon bei der Schwäbischen Alb halt machen. Toleriertes Absteigen führt hier zum höheren Aufstieg. Toleranzschwelle Abb. 8: Treshold Accepting 3. Problemlösungsansatz aus der Sicht des Wirtschaftsingenieurs Treshold Accepting unter Excel mit VBA programmiert bringt für ein 30 Punkte Problem zwei große Nachteile mit sich: Einerseits dauert die Ausführung des Algorithmus zu lange (bis zu 15 min auf einem PIII 500 MHz.) andererseits ist die Qualität der Ergebnisse nicht zufriedenstellend ( 8 Optima bei 200 Läufen). Daher haben wir nach einem für dieses Problem angepaßten Algorithmus gesucht und mit dem Inver-Over Operator auch den besten gefunden. Dieser Algorithmus löst TSP bis zu 100 Punkte in jedem Lauf und ist deutlich schneller als das Treshold Accepting Verfahren. Allerdings erweist sich die Implementierung unter VBA für Excel deutlich schwieriger als Treshold-Accepting. 3.1 Definition des Inver-Over Operators Hier zunächst der Pseudocode von Gua Tao und Zbigniew Michalewicz aus dem Jahr 1998: Operations Research 16 “random initialization of the population P while (not satisfied termination-condition) do { for each individual Si P do { S‘ = Si select (randomly) a city c from S‘ repeat { if (rand() <= p) select the city c‘ from the remaining cities in S‘ else { select (randomly) an individual from P assign to c‘ the ‘next‘ city to the city c in the selected individual } if (the next city or the previous city of city c in S‘ is c‘) exit from repeat loop inverse the section from the next city of city c to the city c‘ in S‘ c = c‘ } if (eval(S‘) <= eval (Si )) Si = S‘ } }“12 Auch hier lassen die Autoren hinsichtlich der Realisierung einige Freiheitsgrade. Gute Erfahrungen machten die Autoren mit einer zufällig generierten Population P = 100. Die optimale Anzahl der Population haben wir bei Prof. Dr. Leiser nachgefragt, eine gute Faustregel ist P = 2 x Anzahl Punkte. Der Selektionparameter p wird bei den Autoren mit p = 0,02 angegeben. Man darf nicht vergessen den besten bisherigen Wert festzuhalten. Der Pseudocode von Tao/Michalewicz ist Anfangs nicht einfach umzusetzen, die Implementation gestaltet sich aber dennoch unkompliziert wenn man sich die Beispiele in Ihrer These genauer ansieht. Zunächst wird eine gewisse Anzahl der Population P zufällig generiert. Mit Population ist die Reihenfolge der zu besuchenden Punkte gemeint, z.B.: S‘ [2,5,1,3,6,4]. 12 Tao / Michalewicz, Inver-over Operator for the TSP, ftp://ftp.unncc.edu/coe/evol/p44.ps, Seite 5, abgerufen im April 2001 Operations Research 17 Danach wird in der Schleife jede Population Si bearbeitet. Zunächst wird in der Population S‘ = Si zufällig ein Punkt c gewählt. (z.B. c = 1) Im True-Teil der Bedingung if (rand() <= p) wird einfach in der Population S‘ ein nächster Punkt c‘ ungleich c gesucht. Im False-Teil der Bedingung wird aus dem restlichen Bestand der Population zufällig eine Route P ungleich S‘ gewählt. Sei P [5,3,1,4,2,6] und c = 1 so wird der Nachbar zu 1 in P ausgewählt, im Beispiel wäre das c‘ = 4. Hier tritt das selektive Verhalten des Algorithmus zutage. Nach der Auswahl der Punkte c und c‘ findet eine Inversion in S‘ statt. In unserem Beispiel wird aus S‘[2,5,1,3,6,4] [2,5,1,4,6,3]. Der repeat Teil wird solange wiederholt bis c und c‘ nebeneinander liegen, also keine Inversion mehr durchgeführt werden kann. Ein kleine programmiertechnische Hürde stellt die Inversion im Array dar. In [K&RII] können wir uns folgenden Algorithmus leihen um ihn danach an VBA für Excel anzupassen: “reverse (s) #include <stdio.h> /* reverse: s an Ort und Stelle umkehren */ void reverse (char s[ ]) { int c, i, j; for (i = 0, j = strlen(s)-1; i < j; i++, j--){ c = s[i]; s[i] = s[j]; s[j] = c; } }“[K&RII] Leider kennt Excel keine for-Schleife mit Inkrementierung zweier Variablen. Darum muß der Algorithmus etwas angepaßt werden. Inversion mit VBA für Excel: While i < d sp = weg(i) weg(i) = weg(d) weg(d) = sp i=i+1 d=d-1 Wend Hier entspricht i = c und d = c‘. Die Variablen müssen zwischengespeichert werden, da sie später noch unverändert gebraucht werden. Operations Research 18 3.2 Interpretation des Inver-over Operators Warum bringt diese Inversion Verbesserungen? Die Inversion an sich ist aus dem 2OPT Verfahren bekannt. Das Verbesserungspotential kann man leicht an folgendem Beispiel erkennen: Sei die Route [1,2,3,4,5,6,7,8] und die Inversion [1,2,3,7,6,5,4,8] 5 6 5 6 4 7 4 7 8 3 8 3 1 2 1 2 Abb. 9: 2-OPT Inversion Das Auswahlverfahren der zu vertauschenden Punkt bleibt allerdings schleierhaft. Am ehesten kann es mit Genetischen Algorithmen verglichen werden, wobei wir hier aber nicht die reine Kreuzung vorliegen haben. Es werden auch im geringen Maße Mutationen erzeugt. Die Entwickler des Algorithmus beschreiben den Ansatz als evolutionären Algorithmus für das TSP. Er basiert auf einfacher Inversion. Informationen zur Inversion werden aus anderen Individuen genutzt. Die Operation an sich ist aber unär, da die Inversion nur an einem Segment eines Individuums durchgeführt wird. Die Auswahl des Segments ist dagegen Populationsgetrieben, zeigt somit eine Rekombinationscharakteristik.13 13 Vgl.: Inver-over Operator for the TSP, Tao/Michalewicz, ftp://ftp.unncc.edu/coe/evol/p44.ps, Seite 1, abgerufen im April 2001 Operations Research 19 3.3 Inver-over Operator: Die optimale Lösung für TSP bis 100 Punkte Wir haben diesen Algorithmus zur Lösung des Bohrlochproblems herangezogen, da dieser Algorithmus laut Tao/Michalewicz für TSP bis 100 Punkte in jedem Lauf das bisher beste bekannte Optimum erreicht. Unsere Tests mit diesem Algorithmus unter VBA mit Excel konnten diese Behauptung nicht bestätigen, da wir durch Limitationen durch VBA einige Workarounds einbauen mußten. Dennoch erreicht dieser Algorithmus in neun von zehn Fällen das Optimum. Unsere Programm benötigt hierfür (PIII 500 MHz.) ca. 2,5 Minuten. Nach Rücksprache mit Gua Tao konnten wir den original C++ Code von Ihm ausprobieren. Wie Tao / Michalewicz beschreiben erreicht Ihre Implementierung in C++ bei unserem Problem in jedem Lauf das Optimum von 81,93697 LE, und das deutlich unter einer Sekunde Laufzeit. Zusammenfassend kann man sagen, dass die rasanten Entwicklungen seit dem Treshold Accepting Verfahren den Ingenieuren die Auswahl eines geeigneten Verfahrens für bestimmte Problemklassen und Randbedingungen zuläßt. Es gibt sehr schnelle Algorithmen (Lin/Kernighan), anschauliche (Treshold Accepting) und solche die für ein 30 Punkte Bohrloch Problem immer die beste Lösung erbringen. Für den aktuellen Entwicklungsstand im TSP empfehlen wir “How to Solve It: Modern Heuristics“ von Zbigniew Michalewicz, Springer 2000. Operations Research 20 III. Literaturverzeichnis Brusberg, Der Entwicklung der Unternehmensforschung mit besonderer Berücksichtigung der Bundesrepublik Deutschland, Wiesbaden 1965 Duek / Scheuer / Wallmeier, Toleranzschwelle und Sintflut: neue Ideen zur Optimierung, Spektrum der Wissenschaft 1993, Seite 47 Ellinger / Beuermann / Leisten, Operations Research Eine Einführung, Springer 5.Auflage 2001 Flood, The traveling-salesman problem, in Operations Research, 1956 Seite 61-75 Tao / Michalewicz, Inver-over Operator for the TSP, ftp://ftp.unncc.edu/coe/evol/p44.ps, Seite 5, abgerufen im April 2001 [K&RII] Kernighan / Ritchie, Programmieren in C, ANSI C(2.A). Hanser 1990 Neumann / Morlock, Operations Research, Hanser 1993 Nissen, Einführung in Evolutionäre Algorithmen, Vieweg 1997 Zimmermann, Operations Research Quantitative Methoden zur Entscheidungsvorbereitung, 8. Auflage Oldenbourg 1998 Operations Research V III Selbständigkeitserklärung der Verfasser Hiermit bestätigen wir, daß wir die vorliegende Studienarbeit mit dem Thema “Operations Research am Beispiel des Traveling-Salesman Problems“ Die aus der Literatur verwendeten Daten in Form von Sätzen und Satzteilen sind mit entsprechendem Verweis gekennzeichnet. Esslingen, 27.06.2001 Bülent Tiknas Savas Yildirim Hakan Kücükyilmaz ________________ _________________ _________________ Operations Research VI