Zusammenfassung
In diesem Kapitel sollen die wesentlichen Grundlagen erarbeitet werden, die es ermöglichen, bekannte und neue Problemstellungen, die mit der Planung von getakteten Fließbändern verbunden sind, mit Hilfe von verteilten Systemen besser und effizienter als bisher zu bearbeiten. Hierfür werden zunächst einige bekannter Ansätze unter der gegebenen Zielsetzung analysiert und bewertet, um hieraus anschließend neue Instrumente entwerfen zu können, die für diese Aufgaben besser geeignet sind.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Referenzen
Vgl. [REEV93] S.1f.
Vergleiche hierzu den Abschnitt 3.3.2.
Hiermit ist die Komplexität einer beliebigen einzelnen Probleminstanz gemeint.
Diese beiden Begriffe werden in dieser Arbeit synonym verwendet.
Vgl. u.a. [SEDG92] S.673ff.
Vgl. u.a. [PAST82].
Jede erzeugte Teillösung stellt im Baum einen eigenen Knoten dar.
Die Suche nach einer optimalen Lösung ist allerdings nur dann sinnvoll, wenn die gegebene Modellformulierung das tatsächliche Praxisproblem sehr genau abbildet.
Die Ursache hierfür liegt im Zeitpunkt begründet, zu dem ein Prozessor im verteilten und im sequentiellen Fall eine neue, aktuell beste Lösung findet, mit deren Hilfe er unter Umständen große Teile des Suchbaums vorzeitig verwerfen kann. Dabei ist allerdings zu beachten, daß durch diese schwer abschätzbaren Szenarien auch negative Auswirkungen denkbar sind. Diese Problematik wird im Rahmen dieser Arbeit noch ausführlich dargestellt und diskutiert.
Anders zu bewerten ist allerdings die Situation, wenn die zur Verfügung stehende Rechenzeit ohnehin nicht ausreicht, die optimale Lösung zu errechnen, da in diesem Fall kein exaktes Verfahren mehr vorliegt.
Der “Ausfall eines Rechners” kann auch durch die Störung einer Verbindung, die die letzte noch aktive Kommunikationsleitung zu dem betrachteten Personal Computer darstellte, herbeigeführt werden.
Die Parallelrechnersysteme wurden aufgrund ihrer Größe ausgewählt, da nur auf ihnen ein Test mit sehr vielen Prozessoren (bis zu 1024) möglich war, während demgegenüber die verteilten Workstation-Cluster zum Zeitpunkt der Messungen nur über 16 vernetzte Rechner verfügten.
Vgl. u.a. [HOSA78] S.370ff.
Dieses Vorgehen wird entweder mit dem Finden einer neuen besten Lösung abgebrochen oder dann beendet, wenn die untere Schranke der betrachteten Lösung nicht mehr unter dem Zielfunktionswert der besten, bisher gefundenen Variablenbelegung liegt.
Vgl. [HNRA68] o. [NILS82] S.72ff.
Vgl. [HNRA68].
Vgl. [TLMO95] S.2.
Vgl. [KORF85] S.100.
Vgl. [PEAR84b].
“Verworfene Knoten” sind alle Teillösungen mit einer lokalen unteren Schranke, die größer ist als die globale Schranke, die in dieser Iteration dem Tiefensuchverfahren als Höchstwert vorgegeben war.
Der Begriff “Local Lower Bound” wurde bislang-nach Informationen des Autors-lediglich von Scholl (vgl. hierzu [SCHO95] S.133ff) benutzt. Da dieser Begriff die Grundidee des Verfahrens sehr gut “widerspiegelt”, soll er innerhalb dieser Arbeit als klassifizierende Bezeichnung für diese Art von Algorithmen dienen. Allerdings stellt die Arbeit von Scholl nicht die erste Anwendung dieser Technik dar, da zum Beispiel bereits Link (vgl. hierzu [LINK92] S.54ff) eine derartige Vorgehensweise zur Abtaktung einer Variantenfließlinie mit Hilfe eines Branch&Bound-Verfahrens anwendet.
Vgl. [SCHO95] S.134f.
Vgl. [LM89], [LM92] oder [LUEL96] S.81ff.
Allerdings sollen diese Konzepte hier nicht weiter erläutert werden, da das Verfahren innerhalb dieser Arbeit keine Anwendung finden wird. Für detaillierte Informationen muß deshalb auf die genannten Veröffentlichungen verwiesen werden.
Vgl. [BOEH96].
Zu beachten ist hierbei, daß das Speicherplatzproblem, welches durch die Breitensuche entsteht, ungelöst bleibt, da keinerlei Informationen über die derzeitige Speicherplatzauslastung in den Entscheidungen zur Wahl der Abarbeitungsart berücksichtigt werden.
Unter einem “zentralen Lastbalancierungsverfahren” wird ein Ansatz verstanden, der die Verteilung der vorhandenen Arbeitspakete global für das gesamte Netzwerk vornimmt. Dazu werden zunächst Informationen von allen daran beteiligten Prozessoren benötigt.
Dieser wird wie in einem Standard-Breitensuchverfahren verwaltet, wobei die einzelnen Knoten so geordnet werden, daß sich tendenziell die gleiche Abarbeitungsreihenfolge wie beim sequentiellen Verfahren ergibt.
Vgl. [BOEH96] S.25.
Vgl. [WEGE93] S.46.
Vgl. [BOEH96] S.109f.
Vergleiche hierzu den Abschnitt 5.2.2.5.5.
Vgl. [SCHW91] und [SCHW94].
Vgl. [COYR97].
Vgl. [KURA87].
Vgl. [KURA87] S.485f.
In dieser Arbeit wird im folgenden von einem “End-Level” gesprochen.
Zum Studium der genauen Voraussetzungen, die nach Rao und Kumar gegeben sein müssen, um eine der beiden Strategien zu bevorzugen, muß an dieser Stelle auf die Originalveröffentlichung verwiesen werden.
Vgl. [KURA87] S.488.
Ohne Beschränkung der Allgemeinheit wird in diesem Fall von einem Minimierungsproblem ausgegangen.
Vgl. [REIN95] S.9f.
Vgl. [RS94a].
Diese wird als IDA*-Verfahren ausgeführt.
So erhält z.B. der Prozessor i (0 ≤ i ≤ p − 1) die h Pakete i, i + p, …, i + (h − 1)p.
Hierdurch hat das Verfahren auch seinen Namen “AIDA*=Asynchronous Iterative Deepening A*” erhalten, da die sequentiellen IDA*-Verfahren voneinander unabhängig (also nicht synchronisiert) ablaufen.
Vgl. [KORF85].
Dies ist die Aufteilung, die durch die 5p Pakete zu Beginn des Verfahrens realisiert wird.
Vgl. [RS94a] S.275.
Hiermit ist das Level gemeint, bei dem die gemeinsame Breitensuche, die zu Beginn auf allen Prozessoren gemeinsam ausgeführt wird, endet.
Verhindern ließe sich diese Problematik damit, daß die dort eingesetzte einfache Breitensuche durch die best-first-Technik ersetzt wird.
Theoretisch möglich wäre es auch, lediglich den “Standort” von Knoten, die höher im Suchbaum liegen, festzuhalten. Dazu müßten Arbeitspakete unter Umständen mehreren Prozessoren zugeteilt werden, wobei ein Prozessor, der die Arbeit eines ausgefallenen Knotens übernimmt, große Arbeitsteile ausführt, die auf anderen Prozessoren bereits betrachtet wurden. Allerdings ist hiervon abzuraten, da auf diese Weise kaum noch ein Unterschied zu einem Programmneustart bestehen würde.
Zu beachten ist hierbei allerdings, daß ein einzelner Prozessor diese beiden Fälle nicht mit Hilfe der geschickten Daten unterscheiden kann.
Somit werden hierbei nur die Suchbaumknoten in derselben Numerierung erfaßt, die sich auf dem betrachteten Level befinden und denselben Vaterknoten besitzen. Dabei wird im folgenden auch vereinfacht von unterschiedlichen Belegungen des ersten hiervon erzeugten Knoten gesprochen, was strenggenommen nicht korrekt ist, da jeder Knoten nur eine eindeutige Belegung erhält.
Im Rahmen dieser Definitionen wird davon ausgegangen daß die aktuelle obere Schranke S keinen Einfluß auf die Art und die Reihenfolge der untersuchten Belegungen hat, wobei zudem vorausgesetzt wird, daß der Zielfunktionswert einer Lösung ganzzahlig und nicht negativ ist.
Die letztmögliche Belegung ist die Variablenzuweisung, die bei Beibehaltung aller Zuweisungen in höheren Leveln in der oben genannten Einteilung die höchstmögliche Numerierung trägt, wobei die untere Schranke des entstehenden Knotens noch kleiner oder gleich S ist.
Ob der sequentielle Algorithmus diese Belegung tatsächlich untersucht, hängt allerdings davon ab, welche obere Schranke zu diesem Zeitpunkt vorliegt.
Da zudem N = ·1, 2, 3, 4, 5,..º gilt, folgt hieraus sofort k > 0.
Bei “echten” Alternativen muß es mindestens eine weitere Belegung bezüglich der oberen Schranke geben.
Hierbei ist zu beachten, daß der jeweils korrespondierende Arbeitsauftrag ARBAU(x, y) zusätzlich zu der Betrachtung des dargestellten Teilbaums noch die Untersuchung aller Teilbäume unter den rechts benachbarten Knoten gleichen Levels, die denselben Vaterknoten besitzen wie der erreichte Knoten, beinhaltet.
So wird zum Beispiel aus dem Binärcode “011110100110” der String “x = 04102”.
Aufgrund der Definition 5.1 muß es diese Stelle geben da zumindest Xk ≥ 0 ist.
Die y Werte an den Stellen i + 1 bis h − 1 (dort ist der x-Wert ebenfalls gleich −1) werden in diesem Zusammenhang nicht als globale Schranke eingesetzt. Allerdings wird im Verfahrensablauf gelten, daß deren Werte ebenfalls gleich yi sind.
Dies ist der Arbeitsauftrag ARB AU(0, ub), wobei ub eine beliebige, obere Schranke darstellt. Liegt hierfür eine solche Schranke nicht vor, kann auch eine beliebige Zahl für ub eingesetzt werden, die größer als eine mögliche obere Schranke ist.
Dieser Fall kann eintreten, wenn bei der durchgeführten speziellen Art der Breitensuche bereits eine optimale Lösung auftrat, oder aber die maximal erforderliche Zahl an initialen Arbeitsaufträgen nie erreicht und so der Baum bereits in der Startphase komplett bearbeitet wurde.
Dies sind alle möglichen Expansionen, die durch Aufteilung bereits erzeugter Aufträge entstehen.
Dies bedeutet, daß für keinen der bereits erzeugten Knoten die in Definition 5.3 festgelegte Menge S ein Arbeitspaket enthält, dessen initiale untere Schranke kleiner als llb ist.
Dies ist zu Beginn des Verfahrens ARBAU ((0), (ub)).
Hierunter wird die Maximalzahl von Nachfolgern eines Knotens im Suchbaum verstanden.
Bei der “normalen” Breitensuche kann es in diesem Fall Probleme geben, da es hierbei möglich ist, daß der Speicher bereits bei der Ausführung einer einzelnen Expansion nicht mehr ausreicht.
Diese Variablenbelegungen entstehen durch Ausführung der Prozedur in Definition 5.1 bei Abarbeitung des entsprechenden Arbeitsauftrages.
Hieraus wird bereits die durch die Ermöglichung der Fehlertoleranz bedingte enge Anlehnung des Verfahrens an den im BSP*-Modell vorgegebenen Rahmen zur Entwicklung verteilter Algorithmen deutlich (vgl. hierzu den Abschnitt 3.4.2.4).
Streng genommen stellen diese beiden Szenarien denselben Fall dar, da der Besitz einer als optimal bewiesenen Lösung bedeutet, daß alle Aufträge keine Arbeit mehr beinhalten.
Da der Algorithmus aus einer Menge von verschiedenen Runden besteht, genügt zu seiner vollständigen Beschreibung die detaillierte Darstellung einer Runde.
Die Level des Suchbaums sind ausgehend von der Wurzel aufsteigend numeriert, wobei sich die Belegungen der Wurzel auf dem ersten Level befinden.
Dies gilt allerdings nur solange, wie in dem noch zu untersuchenden Teilbaum keine komplette Lösung gefunden werden kann, deren Zielfunktionswert die Überprüfung dieser weiteren Belegung unnötig macht.
Der Wert der Variable lb ist somit die untere Schranke des Startknotens des neuen Arbeitspaketes, das bei einer Aufteilung des aktuell bearbeiteten Auftrages entstehen würde.
Diese Systemzeiten sind in praktischen Implementierungen nicht zu vernachlässigen. So wurden innerhalb dieser Arbeit bei der Nutzung der MPI-Bibliotheken nennenswerte Geschwindigkeitseinbußen gemessen, die aufgrund einer periodischen Prüfung möglicher Nachrichteneingänge entstanden.
Dies ist ein Baum, in dem jeder Knoten höchstens t Nachfolger besitzen kann.
Hierbei ist einer dieser Werte sofort für den Vaterknoten verfügbar, da aufgrund der dargestellten Baumstruktur jeder Vaterknoten zu sich selbst als Sohn auftritt.
Dies kann allerdings wiederum der Knoten selbst sein.
Darüber hinaus ist ein Update der gespeicherten Zustandsvariablen auch dann unnötig, wenn die neue obere Schranke bereits eine als optimal bewiesene Lösung darstellt, da in diesem Fall das gesamte Verfahren beendet ist.
Hierbei ist zu beachten, daß sich die Größe der zum jeweiligen Vaterknoten geschickten Informationen mit jedem Kommunikationsschritt verdoppelt. So erhält im letzten Schritt der Knoten auf Level 1 zwei Listen der Länge p/2, die zur geordneten Gesamtliste gemischt werden.
Dort werden die Variablen hl, bl und lb, nachdem eine verbesserte obere Schranke os = 8 (gegenüber der vorherigen os = 9) gefunden wurde, aktualisiert. Der betrachtete Prozessor führt in diesem Beispiel den Arbeitsauftrag ARBAU((1), (9)) aus und hält vor der Überprüfung der Variablen die zweite Belegung (bl = 1) im Level 1. Aufgrund der oberen Schranke 9 sind zu diesem Zeitpunkt noch zwei weitere Belegungen in diesem Level zu überprüfen. Aber nachdem die neue obere Schranke verteilt wurde, muß hl zweimal erhöht werden, wodurch bl gleich Null gesetzt wird.
Für die Anwendungen, die innerhalb dieser Arbeit betrachtet wurden, wurde hierfür der Wert “−1” gewählt.
Hierbei kann auch eine beliebiggradige Expansion gewählt werden, um in einem Schritt mehrere Prozessoren mit neuen Aufträgen “zu versorgen”.
Im folgenden werden unter dem Begriff Paket des Prozessors i die Werte der drei Zustandsvariablen verstanden, die vom Prozessor i versendet worden sind.
Dies bedeutet niedriger numeriert.
So gelten allgemein die Beziehungen z < hl und z ≥ k − 1, aus denen sich aufgrund der gemachten Annahme hl = k folgern läßt, daß z = hl − 1 gilt.
In der obigen Abbildung sind beispielhaft die beiden neuen Arbeitsaufträge, die durch Anwendung der Aufteilungsoperation auf den Arbeitsauftrag von Prozessor p1 entstehen, dargestellt. Die erste Tabelle zeigt dabei den initialen Auftrag von Prozessor p1 und wie dieser zunächst durch die Variablen hl und bl aktualisiert wird. In der zweiten Tabelle sind darüber hinaus die beiden Arbeitsaufträge dargestellt, die durch die auf ARBAU ((−1, −1, 0), (8, 8, 8)) angewendete Aufteilungsoperation erzeugt werden.
Innerhalb dieser Arbeit wird meist die Expansion vom Grad 2, die die einfache Aufteilungsoperation darstellt, Anwendung finden.
Selbst wenn dies bei höheren Expansionsgraden nicht mehr gesichert ist, garantiert die Prozedur aus Definition 5.1, daß die entstehenden Arbeitsaufträge nicht zu gleichen Knoten im Suchbaum führen.
Hierbei sind allerdings auch andere Vorgehensweisen denkbar.
Diese sind im Praxiseinsatz konkret zu erheben.
Des weiteren wird davon ausgegangen, daß das verwendete Routingverfahren nach KTOL Zeiteinheiten alle Versuche abbricht, die Nachricht an den Zielknoten zu transportieren.
Eine andere Sichtweise könnte zur Folge haben, daß das Verfahren spezifische Netzwerktopologien und andere Hardwareeigenschaften des genutzten Verbindungsnetzwerks berücksichtigen müßte. Hierdurch wäre der entwickelte Algorithmus allerdings nicht mehr universell auf verschiedenen verteilten Systemen einsetzbar, was im Widerspruch zu den Zielen dieser Arbeit stehen würde.
Diese Art von Problemen wird in der Literatur beispielsweise im Rahmen des “Byzantine Models” betrachtet (vgl. hierzu u.a. [ATTI94] S.122ff).
Die Nachrichtenlänge ist bei der empirischen Ermittlung der Parameter KTOL und START auf die maximale Größe festzulegen, die eine der versendeten Botschaften innerhalb der Fehlerroutine haben kann.
Da es aus theoretischer Sicht kein “sicheres Medium” geben kann, soll hierunter eine Speicherungsmöglichkeit verstanden werden, die zumindest unabhängig von Stromversorgung und Prozessorzustand ist.
Allerdings werden im Rahmen dieser Arbeit noch Verallgemeinerungen dieser fehlertoleranten Erweiterung zu finden sein, die wieder von dieser Annahme abweichen werden.
Dieser komplexere Fall wurde in den früheren Veröffentlichungen (vgl. [BORO97a] und [BORO97b]) nicht berücksichtigt. Dort wurde vereinfacht davon ausgegangen, daß während der Ausführung der Fehlererkennungsroutinen keine weiteren Störungen auftreten.
Dies ist ein Prozessor, der auf seiner aktuellen Liste einen anderen Netzwerkknoten gefunden hat, der eine kleinere Numerierung besitzt. Allerdings können hierbei aufgrund unterschiedlicher Listen auch verschiedene Teamchefs ermittelt werden.
Diese sind durch einen Vergleich der aktuellen und vorherigen Besetzungsliste auf jedem Netzwerkknoten zu ermitteln.
Oder der Teamchef eines gleich großen Teams, wobei dieser Teamchef die kleinere Prozessornummer gegenüber dem anfragenden Teamchef besitzen muß.
Diese codierten Arbeitsaufträge wurden vorher vom Teamchef des angefragten Teams mit Hilfe der neuen Zustandsvariablen in der in Abschnitt 5.2.2.5.2.2 beschriebenen Weise aktualisiert.
Diese Zeitspanne könnte z.B. auf einen Wert oberhalb der maximalen Dauer einer internen Rechenphase gesetzt werden. Dann wäre gewährleistet, daß bei einem korrekten Ablauf die potentiellen Antworten eingetroffen sind. Während dieser Zeitspanne finden darüber hinaus keine Kommunikationsphasen statt, was bedeutet, daß jeder Prozessor lediglich seinen Arbeitsauftrag bearbeitet.
Zu beachten ist hierbei, daß alle Berechnungen dieses Teams nun verloren gehen, da angenommen wird, daß ein größeres Team größere Teile des Suchbaumes bereits abgearbeitet hat. Denkbar wäre in diesem Zusammenhang auch, daß die einzelnen Prozessoren versuchen, die Situation in beiden Teams detaillierter zu vergleichen, um zu vermeiden, daß geleistete Arbeit wiederholt ausgeführt werden muß. Hierfür müßten allerdings zusätzliche Mechanismen entwickelt werden, die diese Austauschoperationen in die Verschmelzungsroutinen integrieren.
Hiermit ist die Komplexitätsentwicklung bei steigender Problemgröße N gemeint.
Da hierbei die oberen Schranken der unterschiedlichen Prozessoren in beliebiger Reihenfolge eintreffen, liegt keine Sortierung vor, weshalb vollständiges Durchsuchen notwendig wird.
Dabei ist das Level 1 die Wurzel.
Asymptotisch ist der Aufwand zur Ermittlung der neuen oberen Schranke gegenüber dem, der zur Ermittlung der Paketlisten anfällt, zu vernachlässigen.
Vgl. [BOEH96] S.109ff.
Vgl. [BOEH96] S.31ff.
Wie im Ansatz von Böhm (vgl. [BOEH96]) könnte hierbei ein arbeitslos gewordener Prozessor ein derartiges Ereignis darstellen.
Dies ist umso bemerkenswerter, da bei der implementierten Version nicht auf die gespeicherten initialen Variablenzuweisungen der Aufträge zurückgegriffen wurde. Vielmehr ist die Prozedur aus Definition 5.1 zur Bestimmung aller initialen Variablendefinitionen eingesetzt worden, was einen höheren Aufwand verursacht.
Der betrachtete Prozessor hat den Knoten bereits erzeugt und kennt in jedem Level den Aufwand zur Erzeugung der jeweiligen Belegung.
Um allerdings weiterhin Fehlertoleranz zu gewährleisten, wartet der arbeitslos gewordene Prozessor nur eine bestimmte Zeitspanne auf das Eintreffen der fehlenden Stackbelegung, um nach Ablauf dieses Limits dennoch die Prozedur aus Definition 5.1 auszuführen.
Vgl. [DINK92] S.3f.
Vgl. [HOSA78] S.152ff.
Das dies nicht selbstverständlich ist, wird noch in Kapitel 7 deutlich werden.
In einem Netzwerk mit p Prozessoren könnte z.B. der Prozessor i (0 ≤ i < p) die Prozedur mit den F Parameterwerten i, i +p, i + 2p, … ,i + (F−1)p aufrufen, die somit auf keinem anderen Knoten eingesetzt werden.
Vgl. u.a. [PAST82] S.454ff.
Vgl. [MOLL97] S.127f.
Vgl. u.a. [MOLL97] S.128f.
Diese werden lediglich für die Ermittlung der besten gefundenen Lösung zum Abschluß der Berechnungen benötigt.
Vgl. [GLOV86].
Eine Auflistung verschiedener Anwendungen (mit Literaturverweisen) findet sich z.B. in [REEV93] auf den Seiten 127 bis 136.
Vgl. [REEV93] S.70.
D.h. der Zug der zur alten Lösung zurückführen würde.
In diesem Fall ist allerdings auch gesichert, daß keine zyklische Berechnung vorliegt, da diese Lösung bislang noch nicht betrachtet wurde.
Vgl. u.a. [GLOV90] Teil 2, S.18.
Vgl. [GLLA93] S.119f.
Glover (vgl. [GLOV90] S.18f) spricht in diesem Zusammenhang von einem Ausgleich (“seeking a balance”) der Ansätze, um zu vermeiden, daß bei Zügen eines der beiden Konzepte dominiert.
Allerdings findet sich an dieser Stelle nur eine kleine Auswahl der Techniken, die in [GLLA93] (S.109-127) aufgeführt sind. Daher muß für ein tieferes Studium der verschiedenen Konzepte und deren genaue Vorgehensweise auf die Originalveröffentlichung und die dort angegebenen Quellen verwiesen werden.
Vgl. [GLLA93] S.109-111.
Vgl. [SCHO95] S.192f.
Die hierbei erzielten Ergebnisse werden noch im Rahmen des Kapitels 6.2.2.2.3 betrachtet.
Vgl. [GLOV77].
Vgl. [GLLA93] S.119ff.
Hiermit sind Varianten gemeint, die auf die oben aufgeführten Konzepte verzichten, sonst aber (bzgl. Umgebung usw.) vergleichbar vorgehen.
Ein Tabu Search-Ansatz soll “umgebungseffizient” genannt werden, wenn das Verfahren aufgrund einer kleinen Umgebung in der Lage ist, Übergänge in kurzer Zeit durchzuführen.
Dies wurde zum Teil durch die Anwendung dieser Techniken für spezielle Probleme bereits nachgewiesen.
Wie bereits bei der obigen Analyse der bisherigen Diversifications-und Intensivierungskonzepte soll auch hier die Effizienz eines Ansatzes als Ergebnisverbesserung im Verhältnis zum erforderlichen Implementierungsaufwand gemessen werden.
So ist es auch nicht sinnvoll, den breitensuchorientierten Ansatz für Probleme geringer Komplexität einzusetzen, bei denen sich diese Problematik voraussichtlich erst bemerkbar machen würde.
Vgl. [SEDG92] S.260ff.
Hierbei kann man zum Beispiel an die Berechnung spezieller Prüfsummen denken.
Zu beachten ist hierbei, daß im Priority-Modus ein Pfadwechsel auch dann vorliegt, wenn derselbe Pfad nach m Übergängen auch für die folgenden m Züge wieder aufgenommen wird.
Allerdings stellt auch die Ersetzung der aktuellen Lösung des betrachteten Pfades durch eine neugenerierte Konstellation einen Abbruch dieses Rechenweges dar, da hierdurch die derzeitige Pfadentwicklung beendet und an anderer Stelle neu aufgenommen wird. Deshalb wird dieser Fall im folgenden nicht mehr getrennt aufgeführt.
Vergleiche für eine detaillierte Darstellung und Einordnung dieser Verfahren [FELD99] S.71ff.
Dieses unerwünschte Szenario wird im folgenden als “Pfadkollosion” bezeichnet.
Demgegenüber erscheint-aufgrund der dafür notwendigen Kommunikation-eine Suche nach zeitgleich auftretenden doppelten Pfaden im gesamten Netzwerk als zu aufwendig.
Wie bereits bei der Beschreibung der Startphase dargestellt wurde, kann der Rechenaufwand zur Überprüfung zeitgleich auftretender identischer Lösungen durch vorausgehende Vergleiche der Zielfunktionswerte oder spezieller Prüfsummen reduziert werden, da sich hierdurch häufig die Anzahl detaillierter Variablentests verringern läßt. Dabei werden die jeweils zu vergleichenden Werte der einzelnen Lösungen in einer baumartigen Struktur gespeichert, die das Einfügen und Suchen in logarithmischer Zeit erlaubt.
Diese a Zugmöglichkeiten sind dabei von 0 bis a − 1 durchnumeriert.
Zu beachten ist hierbei, daß der Wert bp + i somit für jeden Pfad im Netzwerk unterschiedlich ist.
Prozessoren und Pfade sind dabei jeweils von Null bis Drei numeriert.
Daher könnte man “First improve” auch als “First improve-mildest descent”-Übergang bezeichnen.
Es wird an einer späteren Stelle dieser Arbeit (siehe Abschnitt 6.2.2.2.1) gezeigt werden, daß sich diese Voraussetzung durch angemessene Umgebungsdefinitionen bei den hier betrachteten Problemstellungen erreichen läßt.
Ein Wechsel vom Zustand 0 nach 2 wäre allerdings nur dann möglich, wenn s1 = 0 und s2 ≠ 0 gilt.
Gerade die Tatsache, daß einzelne Tabu Search-Pfade nach einer bestimmten Zeit kaum noch Ergebnisverbesserungen bei den hier untersuchten Problemen erzielten, war schließlich der Ausgangspunkt zur Entwicklung der breitensuchorientierten Vorgehensweise.
Um dabei auf ausgefallene Prozessoren und Kommunikationsverbindungen zu reagieren, könnten ähnliche Fehlerroutinen wie sie in Abschnitt 5.2.2.5.3 dargestellt sind in den einzelnen Kommunikationsphasen eingesetzt werden.
Die Flexibilität einer Nachbarschaft wird darin gemessen, inwieweit es dem Verfahren möglich ist, in jedem Übergang eine für die gezielte Suche ausreichende Änderung der aktuellen Lösung zu erreichen.
Vergleiche hierzu die Methodik “Intensivierung und Diversifikation durch Verbote” aus Abschnitt 5.3.4.1.2.
So entsteht dieser Suchaufwand auf allen Leveln des imaginären Baumes, bei denen jeweils t verschiedene Züge zu vergleichen sind. Dies führt zu einer Gesamtanzahl von vielen Operationen.
An dieser Stelle soll allerdings erwähnt werden, daß es mehr als ∼p Prozessoren im Netzwerk geben kann und sich deshalb die folgende Analyse (für das BSP*-Modell untypisch) lediglich auf einen Teil der Berechnungen im System beschränkt.
Dabei wird davon ausgegangen, daß die Gesamtzahl der eingesetzten Prozessoren konstant ist.
Hierbei entstünden weitere voneinander unabhängige Berechnungen im Netzwerk, wobei jedem Pfad weniger Prozessoren zugeteilt sind.
Vgl. [MERO53].
k wird in diesem Zusammenhang als Boltzmann-Konstante bezeichnet.
Vgl. [DOWS93] S.23.
Vgl. u.a. [MOLL97] S.129f.
O.B.d.A. wird im folgenden von einem Minimierungsproblem ausgegangen.
Vgl. [CERN85].
Vgl. [DOWS93] S.26. Dabei folgt der Temperaturverlauf in vorgegebenen Zeitabständen einer Funktion α, wobei f die zu minimierende Zielfunktion darstellt. Daneben ist N(S) als Nachbarschaft einer gegebenen zulässigen Lösung S definiert.
Hierbei sind u.a. [CARS87] oder [DAKI87] zu nennen.
Vgl. u.a. [ALCA89], [BAOR89], [BAJS90], [DLS92] oder [DLR92].
Vgl. [ALCA89], [BAJS90] o. [CARS87].
Vgl. [ALCA89].
Vgl. u.a. [DAKI87], [ABRA91] o. [BAOR89].
Vgl. [AAKO89].
Vgl. [DLS92] S.12ff.
Diekmann, Lüling und Simon nennen hierfür insgesamt vier verschiedene Selektionen.
Hierfür ist eine unter Umständen vorhandene systematische Übergangssuche eines zu parallelisierenden SA-Verfahrens durch eine zufällige Überprüfung zu ersetzen.
Im Rahmen dieser Arbeit wird der Generator von Park und Miller (vgl. [PAMI89], [CART90] und [PAMS93]) eingesetzt, der für die hier betrachteten Aufgaben ausreichend gute Ergebnisse liefert.
Vgl. [AAKO89].
Hier werden meist lineare Verläufe, die sich aus den gegebenen Start-und Endtemperaturen sowie der zur Verfügung stehenden Rechenzeit ableiten, unterstellt.
Vgl. [DLS92].
Die Auswahl der Lösungsstrategien erfolgte vor dem Hintergrund der Tatsache, daß sich für eine Reihe von Anwendungsbeispielen des Operations Research Simulated Annealing und vor allem Tabu Search als überlegen erwiesen haben.
Vgl. [HOLL75].
Eine grundlegende Einführung in Genetische Algorithmen bietet z.B. [REEV93b], während sich eine neuere umfassende Darstellung von naturanalogen Verfahren, als deren Spezialfall die Genetischen Algorithmen anzusehen sind, in [FELD99] findet.
In diesem Zusammenhang wird davon gesprochen, daß das Neuron “feuert” und somit eine Eingabe verstärkt weiterleitet.
Vgl. [PESÖ93] S.202.
Vgl. [NIEB95].
Rights and permissions
Copyright information
© 2000 Betriebswirtschaftlicher Verlag Dr. Th. Gabler GmbH, Wiesbaden, und Deutscher Universitäts-Verlag GmbH, Wiesbaden
About this chapter
Cite this chapter
Bock, S. (2000). Verteilte Algorithmen zur kombinatorischen Optimierung. In: Modelle und verteilte Algorithmen zur Planung getakteter Fließlinien. Schriften zur quantitativen Betriebswirtschaftslehre. Deutscher Universitätsverlag. https://doi.org/10.1007/978-3-322-92330-1_5
Download citation
DOI: https://doi.org/10.1007/978-3-322-92330-1_5
Publisher Name: Deutscher Universitätsverlag
Print ISBN: 978-3-8244-7227-7
Online ISBN: 978-3-322-92330-1
eBook Packages: Springer Book Archive