7.3 Startalgorithmen 7.4 Optimierungsphase

Transcription

7.3 Startalgorithmen 7.4 Optimierungsphase
Ergänzung zu
7.3
Startalgorithmen
Bemerkungen:
• Am Ende sind jeweils genau m+n-1 Felder mit Zahlen (evtl. auch 0) belegt.
Die restlichen Felder bleiben frei
• Die belegten Felder heißen Basisfelder und entsprechen den Basisvariablen
im Simplex-Algorithmus
• die nichtbelegten (freien) Felder heißen Nichtbasisfelder
• Je aufwändiger das Startverfahren, umso besser ist im Allgemeinen die
Startlösung und umso geringer der Aufwand in der späteren Optimierunsgphase
7.4
Optimierungsphase
Ziel: Bestimmung der optimalen Lösung des Transportproblems ausgehend von
einer zulässigen Startlösung
(1) Zyklen
• Ein Zyklus ist eine geschlossene Folge von Tableaufeldern
• Start- und Zielfeld ist ein Nichtbasisfeld
• alle anderen Felder des Zyklus sind Basisfelder
• Zyklus:
Startfeld → Sprung zu Basisfeld in derselben Zeile → Sprung von dort zu
Basisfeld in derselben Spalte → Sprung von dort zu Basisfeld in derselben
Zeile → . . . bis entsprechender Sprung zum Starfeld zurück möglich ist
oder
Startfeld → Sprung zu Basisfeld in derselben Spalte → Sprung von dort zu
Basisfeld in derselben Zeile → Sprung von dort zu Basisfeld in derselben
Spalte → . . . bis entsprechender Sprung zum Starfeld zurück möglich ist
• Zu jedem Nichtbasisfeld existiert genau ein Zyklus
1
Beispiel:
B1
A1
30
A2
20
70
15
20
50
40
A3
bj
B2
12
40
50
B3
B4
17
0
40
60
20
15
25
20
15
10
10
ai
50
30
40
20
120
(2) Die Stepping-Stone-Methode
(2a) Kostenänderungswerte
• Betrachten einen festen Zyklus mit Startfeld (Nichtbasisfeld) (i, j)
• Wir stellen uns vor, daß wir eine Einheit in dieses Nichtbasisfeld eintragen und die verletzten Bedingungen für die Transportmengen entlang des
Zyklus jeweils korrigieren
Beispiel:
B1
A1
A2
A3
bj
B2
B3
B4
ai
70
15
17
20
50
15
25
40
12
20
15
50
40
20
10
60
50
30
40
20
120
• Für diese Transportmengenänderung berechnen wir die Kostenänderung
∆cij durch abwechselnde Addition und Subtraktion der Einheitstransportkosten entlang des Zyklus: c12 = +15 − 70 + 20 − 15 + 20 − 12 = −42
• Bei negativer Transporkostenänderung ergibt sich eine Verringerung der
Gesamtkosten, bei positivem ∆cij dagegen eine Erhöhung
Beispiel:
B1
A1
A2
A3
bj
30
20
B2
B3
B4
70
15
17
20
50
15
25
20
15
40
50
40
12
40
10
0
10
20
60
20
2
ai
50
30
40
120
(2b) Iteration
• Berechne für jedes Nichtbasisfeld die Transprotkostenänderung ∆cij
• wähle dasjenige Nichtbasisfeld (i, j) aus, das den kleinsten negativen (negativen, betragsmäßig größten) Wert ∆cij aufweist.
Gibt es mehrere davon, wähle eines davon beliebig.
• Auf dem zum Feld (i, j) gehörigen Zyklus soll möglichst viel Transportgut
umverteilt werden.
Bilde dazu das Minimum der Transportmengen der Felder von denen im
Zyklus etwas weggenmommen wird, d.h.
- betrachte jedes zweite Feld im Zyklus beginnend mit dem zweiten bzw.
- betrachte alle Felder im Zyklus für die bei der Kostenänderungsberechnung der Betrag subtrahiert wird.
Nehme die entsprechnede Umverteilung vor.
Beispiel:
B1
A1
A2
A3
bj
B2
B3
B4
ai
70
15
17
20
50
15
25
40
12
20
15
50
40
10
20
60
20
50
30
40
120
• Das Startfeld des Zyklus wird Basisfeld und genau ein bisheriges Basisfeld
mit aktuellem Wert xij = 0 wird Nichtbasisfeld. Gibt es davon mehrere
Kandidaten, wähle ein beliebiges, die anderen Kandidaten bekommen eine
Entartungsnull.
• Falls im Zyklus keine Umverteilung stattfinden kann - das Minimum über
die fraglichen Werte ist 0 - so wird trotzdem der Tausch Basis - Nichtbasis
vorgenommen. Das neue Basisfeld bekommt eine Entartungsnull.
• Das Verfahren wird solange wiederholt, bis alle Kostenänderungswerte
nichtnegativ, also ≥ 0 sind.
3
(3) Die MODI-Methode
• wird auch u − v-Methode oder Potentialmethode genannt
• unterscheidet sich nur in der Art der Berechnung der Kostenänderungswerte ∆cij von der Stepping-Stone-Methode
(3a) Zeilenpotentiale ui und Spaltenpotentiale vj
• Initialisierung:
Lege ein beliebiges Potential fest: üblicherweise: v1 = 0
• Für alle Basisfelder gilt: ui + vj = cij
Daraus können wir die restlichen n+m−1 Potentiale eindeutig berechnen.
Beispiel:
B1
A1
A2
A3
bj
30
20
B2
B3
B4
70
15
17
20
50
15
25
20
15
40
50
40
12
40
10
0
10
20
60
20
ai
uj
50
30
40
120
vj
(3b) Kostenänderungswerte ∆cij
∆cij = cij − ui − vj für alle Nichtbasisfelder
Diese Kostenänderungswerte stimmen mit denen im Punkt (2) (Stepping-StoneMethode) ermittelten Werten überein.
(3c) Iteration
s. (2b)
4