1. Konrad-Zuse-Zentrum für Informationstechnik Berlin
Takustraße 7, D-14195 Berlin
SoPlex
4 I
Simplex-Algorithmus
SMoPlex DoPlex
Roland Wundeling
hnical Report R 9 6 9 ( D e m b e r 1996)
2.
3. Paraleler und objektorientierter
implex-Algorithmus
vorgelegt von
Dipl. Phys.
oland Wunderlng
Vom Fachberech Mathematik
der Technischen Universität Berl
zur Erlangung des akademschen Grades
D k t o r der Naturwissenschaften
Dr. rer. nat.
genehmgte Dissertaton
Promotonsausschuß:
Vorsiztender: Prof. r. Thele
Berchter: Prof. r. Martin Grötschel
Berchter: Prof. r. Günter Ziegler
Berln 1996
D83
7. Vorwort
Der Anstoß für die vorliegende Arbe kam aus enem Forschungsprojet m der rma
Cray Research Inc. (CRI) zur Entwicklung eines parallelen Branch-and-ut Framewor für
die Lösung großer kombnatorischer Optimerungsprobleme auf dem Parallelrechner Cray
T3D. In Ermangelung eines LP-Lösers für dese Hardware, begann ch am Konrad Zuse
Institut für Informationstechnik Berlin (ZIB) mit der E n t c k l u n g enes eigenen S i l e x -
Codes, der d e Basis dieser Forschungsarbet darstellt.
Men besonderer an ilt Pof. Dr. Martin Grötschel Er führte ch n das Gebet
der mathematischen Opimierung und insbesondere der Linearen Programmierung en,
und er leitete mch bei dieser Forschungsarbeit an Von Prof. Dr. Robert E. Bixby lernte
ich vel über die mplementerung von Simplex-Algorithmen, und er stellte mir schwerige
Problembeispiele zur Verfügung, die m r zu weiteren Einsichten und entschedenden Ver-
besserungen des Codes verhalfen. Ihm sei dafür gedankt. Viel zum Gelingen dieser Arbe
hat auch mein Freund Martin Grammel beigetragen, dem ich an deser Stelle menen Dan
aussprechen möchte. Er lehrte ch die Konzepte der objektorienterten Programmerung
und des parallelen Rechnens und war ein wichtger Diskussonspartner bei velen Entwurfs-
entscheidungen Michael Ganss danke ch für d e plementierung des parallelen Lösers für
dünnbesetzte unsymmetrische lineare Gleichungssysteme. Bei meinen Kollegen Dr. Dimi
tris Alevras, Dr. Norbert Ascheuer Ralf Borndörfer, Andreas Eisenblätter, Nikla Kamin
und Andreas Label öchte ich mich für d e Beretstellung verschedener Testrobleme be-
danken
icht zuletzt öchte ch mener Frau und menen Eltern dafür danken, daß während
der gesamten Zet mein Zuhause nicht nur eine Unterkunft, sondern ein Ort zum Tanken
neuer Kraft war.
Berln, ezember 1996 oland Wunderlng
8.
9. Abstra
Dipl. Phys. Wunderlng, Roland Paralleler und objetorenterter S l e x - A l g o r t h m u s
In der vorlegenden Arbe werden neue lementerungen des dualen und pimalen re-
iderten Simplex-Algorithmus für die Lösung nearer Programme (LPs) vorgestellt. Dazu
werden die Algorithmen mithilfe einer Zeilenbasis dargestellt, aus der über einen Spezial-
fall d e übliche Darstellung m einer Spaltenbass folgt. Bede Darstellungen sind über die
Dualiät eng mteinander verbunden Außerdem ird eine theoresche Untersuchung der
numerischen Stablität von Smplex-Algorithmen durchgeführt, und es werden verschiedene
Möglchkeiten der Stabilisierung diskutiert.
Beide arstellungen der Basis werden n den plementierungen algorithmsch ausge-
nutzt, wobei der Einsatz der Zeilenbasis für LPs mit mehr Nebenbedingungen als Variablen
Geschwindigkeitsvorteile bringt. Darüberhinaus werden weitere Beschleunigung gegenüber
anderen state-ofthe-art Implentierungen erzielt, und zwar durch den Ensatz eines Phase-1
LPs, das ene größtmöglche Übereinstmmung mit dem Ausgangs-LPs aufwest, durch e
ne dynamsche Anpassung der Fatorisierungsfrequenz für die Bass-Matrix und durch di
Optimierung der Lösung linearer Glechungssysteme für besonders dünnbesetzte Matrizen
und toren
Es wurden drei Implementerungen vorgenommen. Die erste läuft sequentell auf nem
oder einer W o r k t a t o n Ihre hohe numerische Stabiität und Effizienz durch d Inte-
gration der oben genannten Konzepte machen sie zu einem zuverlässigen Hilfsmttel für
den täglichen Ensatz z.B. n Schnttebenenverfahren zur Lösung ganzzahlger Program-
me. Als Programmiersprache wurde C + + verwendet, und es wurde ein objektorientierter
Software-Entwurf zugrundegelegt. Dieser leistet eine hohe Flexibilität und Anpaßbar
z.B. für die Integration benutzerdefinerter Prng-Strategien
Bei den anderen beden mplenterungen handelt es sch um arallele Versonen für
Parallelrechner m t gemeinsamem und für solche m t verteiltem Seicher. Dabe wird der
objektorentierte Entwurf so genutzt, daß ledglich die zusätzlichen Aufgaben für die Par-
allelsierung (Synchronisaton, Kommunikaton und Vertelung der Arbeit) implementiert
werden, während alle Algorithmen von der sequentellen mplementierung geerbt werden
Die Parallelerung setzt an er P u n t e n an er erste und infachste st d par-
allele Berechnung ines M a t r i x - t o r - P r o d u t e s . Als zweites wurden bei Pricing und
Quotiententest parallele Suchalgorithmen eingesetzt. Weiter werden bei teeest-edge
Pricing zwe neare Gleichungssysteme nebenläufig gelöst. Schließlich rd ei aralle-
les Block-Pvoting verwendet, bei dem Gleichungssysteme mehrerer aufnanderfolgender
terationen glechzeitg gelöst werden. Ob und welche der Parallelerungs-Konzepte eine
Beschleunigung bewrken, ist problemabhängig. Es gelingt z.B. m 32 Prozessoren ene
Beschleungung um mehr als enen Faktor 16 zu erzielen
Schleßlich rd d e parallele Lösung ünnbesetzter linearer Glechungssysteme m t un-
symmetrischen Matrzen untersucht und eine I l e m e n t i e r u n g für den Cray T3D vor-
genommen. Sie enthält ein neues Verfahren des Lastausgleichs, das k n e n zusätzlchen
Aufwand verursacht. Die plementerung erzielt vergleichsweise günstge Laufzeiten
10.
11. Inaltsverzeichis
Einleiung
Revidierte Simplex-Algorithmen
1. Notaton und mathematsche Grundlagen
1. Die Grundalgorthmen 11
1.1 Die Z l e n b a s
1.1. Prmaler Algorthmus
1.1. ualer Algorthmus
1. Die Saltenbas 24
1. Prmaler Algorthmus 28
1. ualer Algorthmus
1. ualät
1. Allgemene Bas 32
1. nfügender Algorthmus
1. Entfernender Algorthmus
1. S t a b ä t des S l e x - V e r f a h r e n s 51
1.1 Kondon 51
1. Stabät
1. Analyse der S l e x - A l g o r t h m e n
1. Stable lementerungen 55
1. Die Phasen des S l e x - A l g o r t h m u s
1.5 Kreseln und dessen Vermedung 60
1. Prng-Strategen
12. 1.6.1 Most-Violaton P r n g
1.6. Partal P r n g
1.6. Multiple P r n g
1.6. Partal multiple P r n g
1.6. Steeest-edge P r n g
1.6. vex P r n g 67
1.6. Weghted P r n g 67
1.6. Hybrd P r n g
1.7 ösung lnearer Glechungssysteme der Bassmatr
1.7.1 teratve Löser 69
1.7. D i r e t e Methoden 71
1.7. LU erlegung
1.7. Numersche A s t e be der P v o t - A u s a h l
1.7. vot-Auswahl für dünnbesetzte Matrzen
1.7. lementerung 75
1.7. ösung von Glechungssysteme reecsmatrzen 77
1.7. Bass-Udates 79
1. ips und T 82
1.1 kalerung 82
1. uotententest 83
1. Prng
1. len- versus Saltenbas
1. Reftorerung
1. Die Startbass
Pallelisierung 90
Grundlagen der Parallelverarbetung 91
1.1 erlegung n nebenläufige T e r o b l e m e
1. Parallele Hardware
1. Kontrollfluß
1. chermodelle 95
13. 1. Parallele Programmermodelle 96
1. Grundbegrfe zur Bewertung aralleler Algorthmen 97
Nebenläufig n Slex-Algorthmen 99
1 Paralleles M a t r x - t o r - P r o d u 10
Paralleles P r n g und uotententest 101
Blocvotng 10
Paralleles Lösen verschedener lnearer Glechungssysteme 106
usammenfassung 106
Parallele Lösung dünnbesetzter lnearer Glechungssysteme 10
1 Parallele LU-erlegung 109
1. atenvertelung 109
1. K o m a t b l e Pvot-Elemente 110
1. Auswahl k o m a t b l e r Pvot-Elemente 11
1. Lazy Loadbalancng 115
Parallele Vor- und R ü c ä r t s s u b s t t u t o n 116
mplementierung in C-|—
Grundlagen objetorenterter Programmerung 119
1.1 Programmeraradgmen
1.1. eratve Programmerung
1.1. O b j e t o r e n t e r t e Programmerung
1. nordnung von C+
Klassen und hre Bezehungen
1 Elementare Klassen
tor-Klassen
ünnbesetzte toren 28
Dichtbesetzte toren
Von tormengen zum
Die LP-Bas
Algorthmsche Klassen
uotententest Klassen
14. P r n g Klassen 33
Startbass Klassen 33
öser für lneare Glechungssysteme 34
5 Prerocessng Klassen 34
Klassen für arallele lementerungen 34
1 Gemensamer S c h e r 34
1. ShmemObj
1. Die Klassen zu SMoPlex
Verteter S c h e r 38
DistrObj 38
oPlex
Parallele LU-erlegung
rgebnis
Die Tesrobleme 42
SoPlex
1 uale Algorthmen m t Saltenbas
Prmale Algorthmen m t Saltenbas
len- versus Saltenbas 150
ynamsche eftorerung 15
Glechungssystemlöser 15
kalerung 15
Die Startbass 15
Kreseln 15
er uotentest 156
SMoPlex 156
1 Auftelungsschema 15
Erzelte Beschleungung 15
Blocvotng 159
oPlex 16
1 Parallele Lösung von Glechungssystemen 16
15. Blocvotng 161
Paralleles M a t r x - t o r - P r o d u 16
5 Paralleler Löser für lneare Glechungssysteme 16
5.1 Test-Matrzen 16
5. Parallele LU-erlegung 165
5. ösen gestaffelter Glechungssysteme 167
mmenfsung 16
ellen 71
iteraturverzeichni
16.
17. letu
er Anfang der Lnearen Programmerung als mathematsche Disziplin läßt sch genau auf
das Jahr 1947 datieren, in dem G.B. Dantzig das erste Lneare Programm (LP) aufstellte
und den Smplex-Algorthmus als Lösungsverfahren formulierte. Zu dieser Zeit verwendete
man den Begriff Programm noch nicht in sener heutigen Bedeutung als Ausführungscode
für Computer. Vielmehr verstanden d e Mlitärs unter einem Programm enen Plan zur
Ressourcenverteilung; das erste von G.B. antzi aufgestellte Lineare Programm war eben
militärisches Planungsroblem.
Berets vor 1947 gab es verenzelte Arbeiten, heute der Lnearen Programmerung
zugeordnet werden müssen. Se bleben jedoch ohne Auswrkung auf die F o r t e n t w l u n g
der Mathematik w e die Arbeiten von Fourier 1823 und de la Vallee Poussin 1911, oder
wurden aus polsch-ideologischen Gründen ncht vorangetrieben (Kantorovch 193) [32]
neare Programme snd O e r u n g s r o b l e m e , d e Form
min cTx
s.t. Ax b,
x
gebracht werden önnen Dabei i t A ne Matr und c, b und x snd mensionskompatible
Vektoren. Schon bald stellte sich heraus, daß Lineare Programme weitreichende Anwen-
dungen n zahlreichen wirschaftlchen und gesellschaftlichen Gebieten haben, wi bei der
Transport- und Netzwerkpanung, der Ressourcenvertelung oder be Scheduling, um nu
nige zu nennen. 1949 faßte R Dorfman dese Gebite mit dem Begriff der mathematischen
Programmierung zusammen [32]. E n zentraler Tel davon ist die Lineare Programmerung,
deren Gegenstand die algorthmische Lösung von LPs ist. Solche treten oft bei der Lösung
mathematscher Programme auf. Dabei dient der (im Laufe der Zeit weiterentwickelte
Simplex-Algorthums bis heute als „Arbetspferd". Die heutige Bedeutung von LP-Lösern
zegt sch z.B. darin, daß 1995 mindestens 9 verschiedene Implementierungen kommerzell
angeboten wurden [88]
Obwohl n vielzählgen Anwendungen bewährt, der Splex-Algorthmus besonders
für Mathematiker nicht zufriedenstellend. Dies liegt daran, daß seine Laufzeit ncht be-
friedigend beschränt werden kann. Berets in den 50er Jahren wurde von A J . Hoffman
n LP angegeben, für das der damalige Splex-Algorthmus nicht terminier [65] Dieses
18. Einleitung
Problem des sog. K i n s konnte zwar durch spezelle Varianten umgangen werden ür
die meisten solcher Varanten gibt es aber Problembeispiele, die ein nicht polynomales
Laufzeitverhalten aufwesen. Alle bekannten Beispiele werden in [2] nhetlch zusammen-
gefaßt. Be vielen praktischen Problemen zeigt sch hingegen ne polynomale Laufzeit, was
auch durch statstsche Analysen untermauert werden kann [1]. Ob es jedoch polynomiale
Simplex-Algorthmen gibt, ist eine b s heute ffene Frage 70, 104]
eshalb wurde lange der Frage nachgegangen, ob Lneare Programme überhau po-
lynomaler Zeit gelöst werden können Diese Frage wurde 1979 von L.G. Khachian durch
Angabe der Ellipsoid-Methode positv beantwortet [69, 54]. Trotz ihrer theoretsch überle-
genen Laufzeit konnte die Ellipsoid-Methode oder deren Varianten in realen Anwendungen
ncht mit dem Simplex-Algorthmus konkurieren, und so beschränte sch die Fortentwick
lung der Linearen Programmerung noch wetere fünf Jahre iw. auf Verbesserungen des
Simplex-Verfahrens.
Viellecht durch die Ellipsod-Methode angespornt, stellte N . Karmarkar Jahr
1984 m t einem Innere-Punte-Verfahren einen anderen polynomalen LP-Löser vor [67]
nnere-Punkte-Verfahren wurden bereits set den 60er Jahren zur Lösung nichtlnearer Op
imerungsrobleme eingesetzt [44], jedoch wurden sie erst set 1984 für den lnearen Fall
ezialisiert und seither zu ner mächtigen Konkurrenz zu Splex-Algorithmen fortent-
kelt [76, 87]. Derzeit snd die Innere-Punkte-Verfahren und der Simplex-Algorithmus
glechermaßen etablert, und für viele Anwendungen ist ene Kombinaton beider Metho-
den mttels eines sog. Crossovers e beste Wahl [ 16]
Unabhängg von den Erfolgen der nnere-Punte-Verfahren komm dem implex-
Algorithmus auf absehbare Z i t ene nicht zu vernachlässgende Bedeutung zu. So liefert er
zusätzlich zu einer optimalen Lösung des LPs weitere Informationen wie die Schattenpreise,
die, ökonomisch nterpretiert, eine bessere Beurtelung der Lösung erlauben Darüberhn-
aus werden Splex-Algorthmen n Schnittebenen-Verfahren zur Lösung ganzzahliger Op-
timierungsprobleme eingesetzt. abei wrd eine Folge von jeweils leicht modifizierten LPs
generiert und gelöst. Nur der Splex-Algorthmus ist hierbei in der Lage, auf dem Ergeb-
n s des vorigen LPs aufzusetzen, um das jeweils neue LP schneller zu lösen Deshalb blebt
e Weiterenticklung des Smplex-Algorthmus' ein ständig atuelles Forschungsthema.
Di Verbesserungen des S l e x - A l g o r t h m u s ' haben se sener Erfindung Beachtlches
zustandegebracht. 1953 feierte man die Lösung eines 48 x 72 LPs noch mit Wein und
Schmaus [65 Heute werden auch LPs mit über 100000 Z l e n und Spalten routinemäßig
gelöst, und die Entwicklung immer ausgeklügelterer Verfahren, mit denen immer größere
LPs m immer kürzerer Ze gelöst werden können, ält weter an. Auch ie vorliegende
Arbet trägt dazu be
G.B. Dantzig formulerte den Splex-Algorithmus m t dem sog. Simplex-Tleau Dies
im wesentlchen eine Matrix, d e n jeder Iteration des Algorthmus' vollständg aktua
siert wrd. E n bedeutender Meilenstein be der Entwicklung des Simplex-Algorthmus'
bestand n der Formulierung des revidierten mplex-Algorthmus', be dem mmer nur ei
19. Einleitung
l des Tableaus, d e sog. B a s s m a t r i , aktualiert wrd Dafür üssen pro teraton zwe
Gleichungssysteme mit der Bassmatrx gelöst werden ennoch kann gezegt werden, daß
der Gesamtaufwand geringer ausfällt.
n weterer wichtiger Vorteil des revdierten Splex-Algorithmus' gegenüber der Ta
bleauform st, daß er es erleichtert, Datenstrukturen für dünnbesetzte Matrizen zu verwen-
den, also solche m t vielen Null-Elementen. Typischerweise haben die Nebenbedingungsma-
trizen A heutiger LPs nur 1-2 Ncht-Null-Elemente pro Spalte oder Zeile, ggf. mit einigen
Ausnahmen Insgesamt sind wet weniger als 10% der Elemente von Null verscheden. Be
der A k t u a l e r u n g der Tableaus ohne Ausnutzung der Dünnbesetztheit würden viele Re-
chenoeratonen mit Null-Elementen durchgeführt, e Aufwand, der vermieden werden
sollte.
ne wetere Verbesserung bestand n der Enführung der LU-erlegung der Bassmatrix
für ie Lösung der beden Linearen Gleichungssysteme in jeder teration des revidierten
Simlex-Algorithmus' [77]. Ursprünglich verwandte man d e sog. Produktform der Inver
sen [29]. Für dünnbesetzte Matrizen wurde jedoch gezeigt, daß diese zu mehr Nicht-Null-
Elementen führt als e LU-Zerlegung und somit einen höheren Rechenaufwand bedingt
[11]
Berets 195 wurde von .E. Lemke der duale Siplex-Algorthmus angegeben. Heu-
te st er fester Bestandteil aller effizenten Implementierungen, ncht zuletzt weil er ene
wesentlche Grundlage für die Implementerung von Schnittebenenverfahren darstellt.
ine chtge Verbesserung des Simplex-Algorthmus' war sene Erweterung auf LPs,
be denen die Varablen cht nur untere, sondern auch obere Schranken aufweisen können
Außerdem werden für die Varablenschranken auch von Null verschiedene Werte zugelassen
Das Verfahren wurde 1955 von G B . Dantzg selbst aufgestellt und ist als pperboundin
Technik bekannt.
Das P r n g ist ein wchtger Schrtt beim Simlex-Verfahren, der e g e F r e h e t zuläßt.
aher verwundert es ncht, daß sich eine Vielzahl von Verbesserungsvorschlägen um eine
Konkretierung bemühen, die d Iterationszahl des Algorithmus' reduzieren oder sene
Termnaton sicherstellen sollen Be der ersten Kategorie snd insbesondere d e Arbeten
von P.M.J. Harris ] sowie von D. Goldfarb und J.K Rei [52] bzw. J.J. Forest und
D. Goldfarb [47] zu nennen. Sie befassen sich mit Varianten des sog. steepest-edge Pri
cings, für das schon lange bekannt war, daß es zwar zu einer bemerkenswert geringen
terationszahl führt, dafür aber eines hohen Rechenaufwandes bedarf [71]. Harris stellt e
pproximatives Verfahren vor, das wesentlch weniger Operationen bedarf. Goldfarb und
R entwickeln für den primalen Algorithmus Update-Formeln, die den Rechenaufwand
b e m steepest-edge P r i n g mindern In 7] wurden diese auch für den dualen Algorithmus
aufgestellt.
plex-Varanten, d e ene Terminaton des Splex-Algorthmus' zuschern, benutzen
m e t ene Kombination von Verfahren für den Prcing-Schritt und den sog. Quotiententest.
Bedes wird mit dem Begri ivotRegel zusammengefaßt. Erste Ansätze zur garantierten
20. Einleitung
Termnaton des Splex-Algorthmus' waren e Perturbatonsmethode von Orden und
harnes [24] sowie d e Lexikographische Methode von Dantzig, Orden und Wolfe [30]
Mit der Arbet von Bland 17] begann eine verstärkte Untersuchung von Pivotregeln, d
ne endliche Laufzeit des S l e x - A l g o r i t h m u s ' garantieren. Eine Überscht findet sich
[94] Insgesamt wurde noch n theorescher Ansatz gefunden, der auch in der Praxi
befiedigt. Deshalb werden n heutigen plementierungen Verfahren eingesetzt, die sch
in der Praxs bewährt haben, aber auf ner theoreischen Grundlage basieren 50, 16
Der Quotiententest i auch der Schrtt bei Silex-Algorithmen, der di numersche
S t a b i l ä t des Verfahrens bestmmt. Wenn auch ohne theoretische Stabilitätsanalyse, wur-
de der wesentlche Ansatzunkt zur Gewährleistung der numerischen Stabilität n [60
aufgezeigt. Er st bis heute di Grundlage für robuste Imlementerungen 50, 16]
E n wichtges Arbeitsfeld bei der F o r t e n t k l u n g von Siplex-Algorithmen ist deren
pezalisierung auf LPs t ausgezechneter S t r u t u r . Wichtgstes Beispiel sind Netzwer
probleme, für die der sog. Netzwer-Simplex entwickelt wurde, der von den Datenstru
turen her kaum mehr an Dantzig's Algorithmus ernner [26. E n anderer Spezialfall snd
MultiCommodity-Flow Probleme. Bei desen Problemen zerfällt die Nebenbedngungsma
trix Diagonalblöcke, die durch wenge Z l e n verbunden sind. Herfür wurde von Dantz
und Wolfe eine Dekompostionsmethode entwikelt, bei der iteratv zu jedem Diagonalbloc
ein LP gelöst wrd, um aus diesen Teillösungen ne verbesserte Lösung des Gesamt-LPs zu
konstruieren [ ] . Gerade in der Zeit des Aufkommens von Parallelrechnern, bei denen die
Teilprobleme von verschiedenen Prozessoren berechnet werden können, wurde ies weder
aufgegriffen [74]
Es g b t noch ne Vielzahl weterer Arbeten mi Modikatons- oder Verbesserungs-
vorschlägen zum Simplex-Algorithmus. Den meisten dieser Arbeiten ist jedoch gemein,
daß die evtl. angegebenen Implementierungen nicht alle oben genannten Verbesserungen
enthalten, sondern oft nur auf dem Grundalgorithmus von Dantzig baseren oder sich m
diesem vergleichen (siehe z.B. [25, 37, 82 4]). eshalb bleben diese Ansätze weitgehend
für d e Lösung p r a s c h e r Probleme irrelevant.
Um zur Fortentwklung von Simplex-Algorthmen beizutragen, muß zunächst auf dem
sher geschilderten Stand aufgesetzt werden Dies leiten die in der vorliegenden Ar-
beit entwckelten Implementierungen, und s e treben e Fortenticklung von Simplex-
Algorithmen auf verschieden Ebenen voran
Auf konzeoneller Ebene baseren die plementerungen auf ener neuen arstel-
lung des primalen und dualen mplex-Algorithmus mithilfe einer Zeilenbasis, aus
der die üblche arstellung m t ener Spaltenbasis als Spezalfall folgt. Die gewählte
Darstellung ermöglcht eine einheitliche Formulerung beder Algorithmen für bei
de Arten der Basis und wurde den mplementierungen zugrundegelegt. Desweiteren
wird ene theoretsche Stabiliätsanalyse des Smplex-Verfahrens durchgeführt, und
es werden Methoden der S t a b i e r u n g aufgezegt. Außerdem verwenden die Imple-
menterungen ein Phase 1 LP, das eine größtmöglche Überenstmmung m dem zu
lösenden LP aufweist.
21. Einleitung
Auf Iplementierungsebene kommt ein verbesserter Lösungsalgorthmus für lneare
Glechungssysteme mit extrem dünnbesetzten Matrizen und Vektoren zum Ensatz.
Außerdem wird der Zeitpunkt der erneuten Faktorierung der Bassmatr dyna
misch so festgelegt, daß d e terationsgeschwndket maximiert wird
n software-technscher Hinsicht rd der Splex-Algorthmus enem objetorienter-
ten Entwurf unterzogen Dieser b t e t eine hohe Flexibität und Anpaßbareit, durch
d e es z.B. möglch ist, benutzerdefinierte Pricing- oder uotiententest-Verfahren en-
zusetzen
Als Hardware kommen auch moderne Parallelrechner zum Ensatz. Dies fügt sich
die Tradition der Entwicklung von Simplex-Algorithmen, die stets eng it den jewe
gen Hardwarevoraussetzungen verbunden war. So entwikelte antzg den Simplex-
Algorithmus nur wegen der in Aussicht stehenden V e r f ü g b a r t automatscher Re-
chenmaschinen [32]
Die hier untersuchte Parallelerung setzen an vier Punkten an: Am enfachsten ge-
taltet sich d e Parallelsierung elementarer Operationen der linearen Algebra auf
ünnbesetzten Daten, w die Berechnung des Matrix-ektor-Produktes oder die
Vektorsumme. Dies wurde bereits in anderen Arbeiten erfolgrech durchgeführt [13]
Außerdem kommen in dem Prcing- und Quotiententest-Schrtt parallele Suchalgo-
rithmen zum Einsatz. Ferner werden mit dem BlckPivoting mehrere sequentielle
Iterationen zu einer parallelen zusammengefaßt. Schließlich werden öglichkten
zur parallelen ösung von Glechungssystemen betrachtet. Dabei rd sowohl die
glechzeitge Lösung verschiedener Systeme sowe d e Parallelisierung enes auf der
LU-Zerlegung basierenden Lösers vorgenommen
Es werden drei Implementerungen von r e e r t e n S l e x - A l g o r t h m e n für versche-
dene Hard ware-Archteturen vorgestellt. Sie heßen
Solex für equental bject-orented s l e x
Dolex für strbuted bject-orented s l e x " und
SMlex für hared emory bject-orented s l e x
SoPlex t also ene plementerung für normale s oder W o r t a t o n s mit enem Pro-
zessor. Se enthält alle Konzepte von state-ofthe-art Simplex-Algorithmen nclusive der in
eser Arbeit geleisteten Fortentwicklungen. Wo diese grefen, können Geschwndgkeitsge-
winne gegenüber anderen Imlementerungen e PLEX 27] erzielt werden Damt egne
ch SoPlex für die Benutzung im täglchen Ensatz.
er objektorentierte Entwurf ermöglcht es, alle Egenschaften von SoPlex den ple-
mentierungen DoPlex für Parallelrechner mit verteiltem Speicher und SMoPlex für solche
mit gemeinsamen Speicher zu vererben, nsbesondere seine numerische Stabilität. Für bede
arallele Versionen wurden alle o.g. Parallelierungsansätze imlementert.
22. Einleitung
Die Arbet n vier Kapitel gegliedert. as erste Kapitel enthält eine mathematsche
arstellung der SoPlex zugrundeliegenden Algorthmen. Nach einer kurzen Enfühung der
Notaton und elementaren Sätzen (Abschnitt 1.1) werden zunächst der primale und der
duale Grund-Algorithmus für ene Zeilenbass anhand einfacher LPs aufgestellt (Abschnitt
1.21). Anhand eines Spezialfalles werden daraus in Abschntt 1.2.2 die entsprechenden
Algorithmen für die n der Literatur üblche Spaltenbasis abgeleitet. Der Zusammenhang
zwischen beiden arstellungen der Bas wird i Abschnitt 1. hergestellt. Anschlie-
ßend werden d e Smplex-Algorthmen für allgemenere LPs für beide Bassdarstellungen
beschrieben (Abschnitt 1.24). Abschnitt 1.3 enthält eine Stabilitätsanalyse der Smplex-
Algorthmen und stellt verschiedene s t a b i l e r t e Quotiententest-Methoden vor. Es folgt
eine Beschrebung der Phasen der Simplex-Algorthmen, der Kreselvermeidung-Strategien
sowie der wichtigsten Pricng-Verfahren (Abschnitte 1.4 bis 1.6 In Abschntt 1.7 wer-
den verschedene Verfahren zur Lösung von Glechungssystemen vorgestellt und der für
SoPlex plementerte LU-erlegungs-Algorithmus beschrieben Den Abschluß deses Ka-
pitels bldet Abschntt 1.8 m t ener Zusammenstellung verschiedener Trics, mit denen d
Geschwndigkeit gesteigert werden kann
as zwete Kapitel befaßt sch m t den Parallelerungsansätzen, d e oPlex und SMo-
Plex zugrundeliegen. Zunächst wird in Abschnitt .1 eine kurze inführung i das Gebiet
des parallelen Rechnens gegeben. Anschließend werden die möglichen Parallelisierungs-
ansätze be mplex-Algorithmus aufgezeigt (Abschnitt 22). Ener davon st d e par-
allele Lösung nearer Gleichungssysteme. Wegen der Bedeutung weit über die Grenzen
der mathematschen Programmierung hinaus wrd dies in einem eigenen Abschnitt (2
behandelt.
Der o b j e t o r e n t e r t e Software-Entwurf und di lementerung C + + werden
dritten Kapitel behandelt. Zunächst wird in Abschntt 1 ene inführung n die objekt-
orentierte Programmierung und eine Gegenüberstellung mit der mperativen Programme-
rung gegeben In Abschnitt 3.2 werden die Klassen, mit denen SoPlex aufgebaut ist, und
deren Zusammenspiel beschreben Die Klassen für d e parallelen Versionen DoPlex und
SMoPlex werden n Abschnitt 3 vorgestellt.
I letzten Kapitel werden d t den mplementerungen anhand verschiedener Be
pielprobleme erzielten Testergebnisse ausgewertet. Zunächst wird die Menge der Test-LPs
vorgestellt. In Abschnitt 4 2 werden die Lösung der Test-LPs m t SoPlex diskutert, wobe
der Eifluß der verschedenen Methoden und Parameter aufgezeigt wird. Dabe rd auch
ein Vergleich mit den von CPLEX 407 (aktuelle Version von Dez. 1996) erzelten Ergebnis-
sen vorgenommen Die Auswertung der parallelen Versonen SMoPlex und oPlex erfolgt
den Abschnitten 4 3 und 4 . Eine usammenfassung bildet den Abschluß der Arbeit.
23. aptel
idierte i m l e x - A o r e n
n desem Kapitel werden Splex-Algorthmen, genauer r e d i e r t e Splex-Algorthmen,
von der Theorie bis hin zur praktischen Umsetzung beschreben abe werden sowohl
primale als auch duale Algorthmen jewels für zwei verschiedene arstellungen der Basis
behandelt.
unächst wird Abschntt 1.1 die verwendete Notaton engeführt, und es werden
für Smplex-Algorithmen grundlegenden Sätze der Polyedertheorie zusammengestellt.
arauf aufbauend werden n Abschnitt 1.2 Smplex-Algorithmen m t verschiedenen ar-
stellungen der Basis entwikelt. Um zu lauffähgen mplementierungen zu gelangen, müssen
noch wetere Aspkte b e r ü c i c h t g t werden. Zunächst ist dies die numersche Stabilität,
die n Abschnitt 1.3 analysiert ird. Dor werden auch verschedene Ansätze vorgestellt, um
plex-Algorithmen stabl zu machen. Weiterhin muß n geeigneter Start für S l e x -
Algorthmen gefunden werden Dies gescheht mit der Phase 1, die n Abschnitt 1. d i u -
tiert wird. Schließlich bergen Smplex-Algorithmen das Problem, daß sie evtl. nicht termi-
eren. Strategen dagegen werden n Abschnitt 1.5 vorgestellt. Bei sog. Pricng beten
implex-Algorithmen eine große algorithmische Vielfalt; d wichtgsten Strategien dafür
werden n Abschnitt 1.6 vorgestellt. Auch e numerische ösung linearer Gleichungssy-
steme t ein integraler Bestandte jeder plementerung von Simplex-Algorthmen Da
esem Problem eine Bedeutung we über Smplex-Algorithmen hinaus zukommt, wrd es
n einen eigenen Abschitt, nämlich 1.7, behandelt. Schließlch werden in Abschnitt 1.8 ver-
scheden Tips und T r s für eine effiziente und zuverlässige Implementierung beschreben
1.1 tation und themtishe rundlagen
n diesem Abschntt werden wesentlche Begr und Sätze der Polyedertheore zusammen-
gestellt, und es wrd d e Notaton dazu eingeführt. Dies geschieht in enger Anlehnung an
[55], worauf auch für d e Bewese der hier nur zitierten Sätze verwesen wird. Zuvor sei auf
folgende Schreibweisen hingewesen:
24. KAPITEL 1. REVIDIERTE SIMPLEX-ALGORITHMEN
Di nhetsmatr wird mit / bezeichnet. hre Dimension st allgemenen aus
dem Zusammenhang erschtlich; andernfalls wrd ie durch nen ndex angegeben
Somit bezeichnet In d e rt-dmensionale Einhetsmatrix
ür toren, die nur aus den Werten 1 oder nur aus den Werten 0 bestehen, rd
kurz 1 bzw. 0 geschrieben, wobe Dimension wiederum aus dem Zusammenhang
ersichtlich ist.
Ferner bezeichnet e* den zten E n h e t s v e t o r , wederum der aus dem usammen-
hang vorgegebenen Dimenson
Lineare rogramme nd erungsrobleme der Form
min
1.1
t.
wobe c,x G R , d G Rk und D G R*x seen. Falls es für jedes M G R x GR
gibt, so daß cx < M und Dx > d gilt, so heißt das LP unbeschränkt t hingegen
x G R : Dx > d} = 0, so heißt es unzulässig.
D^ bezechne den i-ten Z l e n v e t o r der Matrx D, Dj entsprechend hren j-ten
altenvetor. Jede Nebenbedngung D^ > dj, mit Z / definert einen Halbraum
n n
i = {x G R : Di.x > di} des R , und d e Hyperebene Gt = x E W : Dix = di} wird
e zugehörige Hyperebene genannt. Lösungsvektoren x von (1.1) müssen alle Nebenbedn-
gungen erfüllen und legen somit im Schnitt aller Halbräume "%, i = , . . . , k. Der Schnitt
von endlch velen Halbräumen st e n Polyeder und wird mi
,d P x G R : D > d} 1.2)
bezechnet. as olyeder , d) heßt das zum 1.1) gehörende Polyeder. Ferner wer-
den später auch Polyeder T , d ) = {x G R : D = d, x > 0} und V{l,D,u = {x G
Rn : l < x < u) benötgt.
ne wichtge Egenschaft von Polyedern st, daß s e ncht nur als Schntt von Halbräum-
en dargestellt werden können. Vielmehr kann jedes Polyeder aus zwe Grundtypen von
Polyedern aufgebaut werden Dies sind für X = x,... xm}
cone x G R : Y7=i Kx» 0} und
conv xtR : Y!t=i ^ >l !}>
wobe xi,..., xm toren und A i , . . . , A kalare bezeichnen, cone X) heßt der von den
Vektoren x^,... ,xm aufgespannte Kgel und conv (X) ihre onvexe Hülle Beide Mengen
nd Polyeder. Für Polyeder P] und P 2 bezeichnet P1P2 = xi+x2 : x G P, x2 G P2}
hre MinkowskiSumme
25. 1.1. NOTATION UND MATHEMATISCHE GRUNDLAGEN
Abbildung 1.1: Geometrische Darstellung eines LPs im ffi2. Jede Ungleichung Dj.x > di, mit I / 0
definiert einen Halbraum, wobei der Vektor I senkrecht zur Grenzebenen steht. Der unzulässige Halbraum
ist jeweils grau dargestellt. Der Schnitt aller Halbräume bildet das Polyeder V{D,d). Es gilt den Punkt
x G V{D,d) zu finden, der am wenigsten weit in der durch den Zielfunktionsvektor c gegebenen Richtung
liegt.
SATZ 1 (DARSTELLUNGSSATZ)
Eine Teilmenge PCR™ ist genau dann ein Polyeder, wenn es endliche Mengen
von Vektoren V,ECWLn gibt, so daß
P = conv(V) +cone(£"). (1.3)
Sofern P Ecken hat, ist dabei conv (V) die konvexe Hülle aller Ecken von P. Zur nach-
folgenden Definition von Ecken eignet sich die Notation von Indexvektoren I = (ii,..., ?m),
wobei die Indizes ii,... ,im paarweise verschieden sein müssen. Zur Vereinfachung der Nota-
tion werden Indexvektoren auch als Mengen von Indizes aufgefaßt, und es wird die übliche
Mengennotation verwendet. Zu einer Matrix Dmxn und Indexvektoren / C { l , . . . , r a } ,
J C { 1 , . . . , n} bezeichnet DTJ die Untermatrix
JJi1j1 ... LJixjj
Du
^iih • • • ^iijj
26. 10 KAPITEL 1. REVIDIERTE SIMPLEX-ALGORITHMEN
Falls / , . . . , m} oder , . . . , n} verwendet man abürzend auch ' ' als ndex.
FINITIO 1 (ECKEN V N PLYEDERN)
Ein Vektor x € V(,d) heißt Ecke von V(,d), falls es einen Indexvekt
I { 1 , . . . , m} mit = n ibt, s daß Di reulär und DT = di ist
Polyeder ,d t rang somt entweder leer, oder es spit es
hat eine Ecke.
ür spitze Polyeder lassen sich d Vektoren E von 1.3) genauer beschreben Es sind
Elemente des Rezessionskegels rec (V(, d)) = D, 0) = cone (E). E wrd eine Kegelbasis
genannt, falls für jede echten Teilmenge E' C glt: cone (£" / cone (E). Die Elemente
einer Kegelbasis heißen Extremalen Sie sind s auf Skalierung ndeutg bestimmt.
SATZ 2
Sei w Extremale eines spitzen Polyeders , 0 . Dann t es ein X > und
einen Indexvekt Iw dd
Diw. =ei.
Insbesondere st auch Xw Dj^e selbst Extremale von (, d). Statt des Enheitsvetors
ei kann durch geeigneter Permutaton von Iw auch jeder andere verwendet werden
er folgende Satz führt d e f i n o n e n und ätze deses Abschnttes zusammen
SATZ 3 (DARSTELLUNGSSATZ FÜR S P T Z E P L Y E D E R )
ei V(D, d) ein spitzes Polyeder. Dann t es Ecken v±,... und Extremalen
,..., wi, s daß ilt
V(D, d conv ,... m} cone ,... wi
Dabei sind die Vektren V eindeuti und die Vektren Wj bis auf Skalierun
eindeutig bestimmt
Schließlch wrd mit dem folgenden Satz d e Grundlage für Splex-Algorthmen gelegt.
Wegen seiner Bedeutung für d e vorliegende Arbeit wird auch e n Beweis angegeben
SATZ 4
Gegen sei ein LP der Frm (1.1) mit n < k und rang (D) = n. Hat das LP
eine optimale Lösun o gt es eine Ecke von V(D, d), an der sie anenmmen
ird
27. 1.. DI GRUNDALGORITHMEN 11
EWS:
Sei x* optimale Lösung des LPs. Wegen rang = n st ,d pitz. Nach Satz kann
x* dargestellt werden als
wobe A 0 und 1 g t . Di toren i snd e Ecken von V(, d und d
Vektoren u, bilden ene Kegelbasis von ^D^). Für alle i mit / > 0 cT 0, denn
sonst gäbe es einen zulässigen Vektor m t gerngerem Zielfunkonswert: Falls c i < 0 gilt
nämlich für den Vektor x+ = x* + W G V(D, d Unglechung cTx+ = cTx* + TW
T
x*, und falls > 0 gilt für den tor x* — ^ i e D,d) e Unglechung
T
x~ = c x* — i < x*. Somt hat auch der Vektor
denselben elfunonswert c ' = x* w e x*, und es ' G ,d ähle nun i*
so, daß für alle 1 i < m gilt Tw T
vj*. D a m t gilt
i* i*
wobei e letzte Ungleichung wegen j*,x {,d) aus der O m a l t ä t von # folgt.
T T
Insgesamt glt c x' = c Vi*. Der o p m a l e Zelfunktionswert rd also auch an der Eck
v^ G V, d angenommen, was den Beweis abschleßt.
•
Aufgrund deses Satzes es das Zel von lex-Algorthmen ne o m a l e Ec des
Polyeders zu finden
1.2 ie rundalgorithmen
esem Abschntt werden e Grundversonen von mplex-Algorthmen beschrieben
abei werden sowohl pimale als auch duale Algorithmen jeweils für zwei verschedene
arstellungen der sog. Basis behandelt.
unächst werden einfache LPs betrachtet, be denen nicht so vel Notaton aufgewendet
werden muß, dafür aber d e mathematischen und geometrschen Gegebenheiten deutlicher
hervortreten. Für sie wrd in Abschnitt 1.21 die Zeilenbass engeführt und dafür der pri-
male und duale Simplex-Algorithmus entwkelt. nächsten Abschnitt werden die Algo-
rithmen erneut aufgestellt, diesmal jedoch n der Formulierung mithilf einer Spaltenbasis.
abei zegen sich große Ähnlichketen zwischen der zeilenweisen und paltenweisen Dar-
stellung, di n der Dualität begründet legen und n Abschntt 1.23 erläutert werden I
28. KAPITEL 1. REVIDIERTE SIMPLEX-ALGORITHMEN
Abschntt 1..4 werden schleßlch allgemene LPs behandelt und d e Splex-Algorthmen
in ener weitgehend von der gewählten Darstellung unabhängigen Form beschrieben. Dies
st die Form, auf der die in der vorlegenden Arbet vorgestellten Imlementierungen ba-
eren
1.2.1 Die Zeilenbasis
Betrachte eder das LP
min
1.1
t.
wobe c, x E R, d e R und D Rkx und k > n gelte und vollen Rang habe. Wenn
nichts weiter gesagt wrd, werden folgenden diese Setzungen zugrundegelegt.
Di dee von Smplex-Algorthmen basert auf Satz 4: Wenn das LP ( 1 . ) ne o m a l e
ösung hat, so gibt es eine Ecke des zugehörigen Polyeders V(D, d) = {x 6 R : Dx > d},
an der sie angenommen wird. Nach Definiton 1 st jede Ecke des Polyeders V(D, d) der
Schnttpunkt von n sener Hyperebenen as Zel des Simplex-Algorithmus' st deshalb, n
(lnear unabhängige) Hyperebenen von D, d zu finden, so daß ihr Schnittunk x*
zulässig, d ,d, und
optimal, d . für alle x < V(D, d lt x*, t.
Zur Beschreibung einer solchen Menge von Hyperebenen rd der Begr ner
SimplexBasis verwendet. Entgegen dem üblchen Vorgehen in der Literatur zum S l e x -
Algorthmus führen wir zunächst eine Zeilenasis n (auch aktive Menge genannt). Wir tun
dies aus zwei Gründen. Zum einen erlaubt d Verwendung der Zilenbasis eine geometrsch
anschaulichere Beschreibung der Splex-Algorthmen, da sinnvolle Beipiele bereits m R
angegeben werden können. Zum anderen kommt die Zeilenbasis auch i den er vorzu-
stellenden Implementierungen zum Einsatz. In Abschntt 1.22 rd übliche finiton
ner Spaltenasis aus enem Spezialfall abgeleitet.
F I I O N 2 (ZEILENBASS)
Ein grdnetes aar Z = (P,Q) n Indexvektren P,Q ,...,A;} heißt
Z l e n b a s (zum (1.1)), falls fendes ilt:
1 PöQ ,...,k
PnQ=0
= n und
Dp, ist nicht sinular
Gemäß Bedngungen 1 und 2 zerlegt ene Zilenbass d e Menge von Unglechungen
zwe Tlmengen P und Q. Die Stützhyperebenen DPx = dp der zu P gehörenden
29. 1.2. DIE GRUNDALGORITHMEN
Abbildung 1.2: Eine Zeilenbasis Z = (P,Q) zu einem LP zeichnet n Stützhyperebenen des Polyeders
aus, die fett dargestellt sind. Ihr Schnittpunkt ist der Basislösungsvektor x(Z).
Ungleichungen dienen der Bestimmung eines Schnittpunktes als mögliche optimale Lösung.
Die Bedingungen 3 und 4 postulieren, daß das Gleichungssystem DPx = dp eindeutig
lösbar ist (vgl. Abb. 1.2).
Zu einer Zeilenbasis werden noch weitere Begriffe und Vektoren eingeführt:
DEFINITION 3
Sei Z = (P, Q) eine Zeilenbasis. Dann heißen die Ungleichungen Dvx > dp,
mit p € P, Basisungleichungen (zur Basis Z); alle anderen heißen Nichtbasis-
ungleichungen. Die Matrix DP_ heißt die Basismatrix. Ferner wird definiert:
der Basislösungsvektor x(Z) = Dp}dp, (1.4)
der Vektor der Schlupfvariablen s(Z) = D • x(Z) (1.5)
und der Vektor der Dualvariablen y(Z)T = cTDp (1.6)
Eine Schlupfvariable wird zur Transformation einer Ungleichung aTx > a in eine Gleichung
aTx — s = 0 und eine Variablenschranke s > a benutzt (vgl. Abschnitt 1.2.4). Die Definition
(1.5) unterscheidet sich von der in der Literatur üblichen, bietet jedoch den Vorteil der
symmetrischen Erweiterbarkeit auf sog. Bereichsungleichungen a' < aTx < a".
30. KAPITEL 1. REVIDIERTE SIMPLEX-ALGORITHMEN
Splex-Algorthmen versuchen ene ass zu finden, deren Basislösungsvetor sowohl
zulässg als auch optimal ist. Dazu wird, ausgehend von einer bestehenden Bass, iterativ
je ei Index aus P mit nem aus Q ausgetauscht, bis ene Bass gefunden wrd, deren
Lösungsvetor bede Bedngungen erfüllt. Ein solcher Austausch wird ein Pivot-Schritt
genannt. abei muß allerdings die Basismatrx regulär bleiben. Wann der Austausch einer
Zeile einer reglären Matrx wieder zu einer regulären Matrx führt, wird durch den folgenden
Satz beschreben
SATZ ZELENTAUSCH)
ei D G E n regulär, r e f f und l e {!,...,n}. Die Matrix D = D + et(rT
D), die durch Austausch der lten Zeile v D mit rT entsteht ist enau dann
reulär enn
(r 0. 1.7
eien in diesem Fall p G R und /, / , / , / , g, g g G W, mit f f,
D-1 und f = f + (p- ) Dann ilt für f = D' f
+ 0-D- , mit 1.8)
T
^
(r !•
und für
+ ( (r - e , mit 1.10
1.11
(r
EWES:
unächst t zu bemerken, daß D' aus D durch l s s e g e Mulipikaton m
= I (rD--e 1.
hervorgeht, denn d a m t glt = D + (r - ef = D {r D)
Nach dem Determinantenprodutsatz ist det(D) det(V • det( a D regulär und
somit d e ( D ) / 0, ist D genau dann regulär, wenn det(V) / 0. Nun glt aber nach dem
Determinantenentwcklungssatz | d e t ( V | = | ( r T D _ | , woraus Behautung (1.7) folgt.
Di Glechungen 1.8) und 1. werden durch Ensetzen n Df gezegt:
(f + 9D- V( + 0DZO
^D- - eff + 0 + O^D' - e
(r + 9 + 9(rD-
+ (r {pT
+ (p-f
31. 1.. DI GRUNDALGORITHMEN 15
Entsrechend gelten 1.10 und 1.11, denn durch Ensetzen ' erhält man
cj>(r-e
4>{rD~l - e
T
( r 1 - e c/>(r - e
T
</>(rD--e(r D--eT)
f 9(r - D + <j>{rT - D + < D - ( r - D
( r ( r - D
( r
ie ilesismatri folg iese tz
SATZ 6 (ZEILENBASISTAUSCH
Sei Z = (P, Q) eine Zeilenbasis zum LP (1.1) Seien i e { 1 , . . . , n} und j 6 Q
Dann ist Z' = (P1, Q') mit P = P {Pi} U {j} und Q' Q {j} U {P;} genau
dann eine Zeilenbasis von (11) enn
Dj p])i ± 1.13)
(Z (Z) + @(l,3)-)i 1.14)
{Z (Z) + Si,j) Dp}) und 1.15)
T T
y (Z y {Z) + ^ h j ) D j - ] - e 1.16)
d
i Sj{Z
M) 1.17)
D3.D-])%
VijZ
und i,j) 1.18)
Dip})i
EWEIS:
Bis auf (1.15) folgt alles aus Satz 5, und zwar mit DP_, D = P>p' 9 = i,j),
<f> = $i,j), f = x{Z), f = x{Z% f = dPlg = (Z), g {Z% g = c p = dj, = D3
und l = i. Gleichung 1.15) gilt dann wegen (Z') (Z') {Z) + ®i,j)Dp})j.
32. 16 KAPIEL 1. R T E S I M P H M E
n Simplex-Algorithmus führt so lange Pivo-Schritt a s , s eine Basis gefunden
wird, dessen Lösungsvektor sowohl optimal als auch zulässig ist, bzw. bis die Unbeschränkt
heit oder Unzulässigkeit des LP nachgewiesen werden kann. Wie aber erkennt man die
Optimalität und Zulässigkeit des Basislösungsvektors? Letzteres erreicht man leicht durch
Testen der Schranken des Schlupfvektors s(Z = D • x(Z) > d, wobei nach definition von s
nur die Elemente SQ überprüft werden müssen. Die Überprüfung der ptimalität geschieht
mit Hilfe von folgendem
SATZ 7 (SIMPLEX-KRITERIUM FÜR EINE ZEILENBASIS)
Sei Z = (P,Q eine Zeilenbasis zum LP (11) (Z ist optimal, wenn
(Z) > 1.19)
EWEIS:
Nach Definition 1 ist x(Z die einzige cke von V(DP,d). Demnach lassen sich gemäß
Satz alle (Dp, d als
(z) + yjr
darstellen wobei die Vektoren ti = Dp^ei, i G {l,...,n}, eine Kegelbasis von V(DP
bilden und , . . . , gilt. Demnach gilt für alle G (DP, d):
(Z) + 2_ D~p
(Z)+(Z^
(Z),
wobei die letzte Ungleichung wegen (Z) > gilt. Da V{DP1d) ~D {D1d) folgt die
ehauptung
•
Anschaulich besagt das Simplex-Kriterium, daß eine Zeilenbasis optimal ist, wenn es
keine Extremale gibt entlang der eine Verbesserung des Zielfunktionswertes möglich wäre
vgl Abb. 1.3).
DEFINITION 4
Sei Z = (P, Q eine Zeilenbasis zum LP (1.1) Z heißt zulässig, wenn
{Z) > d 1.2
und Z heißt optimal, wenn
(Z) > 1.21)
33. 1.2. DIE GRUNDALGORITHMEN 17
Abbildung 1.3: Der Kegel einer optimalen Basis hat keine Extremale, entlang der eine Verbesserung des
Zielfunktionswertes möglich ist.
Diese Definition ermöglicht es, die Ergebnisse dieses Abschnittes mit folgendem Satz
zusammenzufassen.
SATZ 8
Sein, k e N, 0 < n< k, c,x E W1, d e Rk und D E RkXn habe vollen Rang.
Sei Z = (P, Q) eine Zeilenbasis des LPs
min cTx , ,
s.t. Dx > d. ^ >
Der Basislösungsvektor x(Z) ist eine optimale Lösung von (1.1) wenn Z opti-
mal und zulässig ist.
Dieser Satz folgt unmittelbar aus den Definitionen und Satz 7.
Der Basistausch bei Simplex-Algorithmen soll "gerichtet" erfolgen. Dabei unterscheidet
man zwei Strategien: Der primale Algorithmus benötigt eine zulässige Basis und versucht
bei jeder Iteration, den Zielfunktionswert zu verbessern, ohne dabei die Zulässigkeit zu
verlieren. Der entsprechende Algorithmus wird im folgenden Abschnitt entwickelt. Dagegen
arbeitet der duale Simplex auf einer optimalen Basis und versucht bei jeder Iteration, die
Unzulässigkeit zu verringern während die Optimalität erhalten wird. Dieser Algorithmus
wird in Abschnitt 1.2.1.2 beschrieben.
34. KAPITEL 1. REVIDIERTE SIMPLEX-ALGORITHMEN
Abbildung 1.4: Bei einem Schritt des primalen Simplex wird die aktuelle Basislösung so weit entlang der
Extremalen t verschoben, wie es ein Beibehalten der Zulässigkeit erlaubt. Dazu wird eine Stützhyperebene
der Basis durch die neue ausgetauscht. Beide sind gestrichelt dargestellt.
1.2.1.1 Primaler Algorithmus
Es wird nun der primale Simplex-Algorithmus für eine Zeilenbasis beschrieben und seine
partielle Korrektheit1 beweisen. Im allgemeinen kann jedoch nicht gezeigt werden, daß der
Algorithmus terminiert. Auf dieses Problem sowie das Generieren einer zulässigen Anfangs-
basis wird in den Abschitten 1.5 und 1.4 eingegangen.
Der primale Simplex-Algorithmus arbeitet mit einer zulässigen Basis. Diese wird durch
eine Folge von Pivot-Schritten solange abgeändert, bis eine optimale Basis gefunden wird
oder die Unbeschränktheit des LPs nachgewiesen werden kann. Dabei wird die Zulässigkeit
gewahrt, so daß bei Terminierung im beschränkten Fall eine optimale und zulässige Basis
vorliegt, dessen Lösungsvektor nach Satz 8 eine optimale Lösung des LPs ist. Die jeweils
neue Basis wird so gewählt, daß sich der Zielfunktionswert des Basislösungsvektors nicht
verschlechtert.
Sei also Z = (P, Q) eine zulässige Zeilenbasis zum LP (1.1). Ist Z auch optimal, so ist
x(Z) bereits ein optimaler Lösungsvektor von (1.1). Andernfalls gibt es eine Extremale,
1
Ein Algorithmus heißt partiell korrekt, wenn bei seiner Termination die korrekte Lösung vorliegt. Für
die vollständige Korrektheit muß auch die Termination des Algorithmus' gewährleistet sein.
35. . D R U H M E 19
etwa t = ( £ ) p ) p , so daß jeder Vekto (9 x(Z) + 9 für 6 0 einen besseren
T
Zielfunktionswert aufweist als x(Z), d.h c (9) < cx(Z). Nun soll 9 maximal gewählt
werden, so daß x{9 noch zulässig bleibt (vgl Abb. 1.4). Zu jedem Vektor x{9) kann man
einen Schlupfvektor {9) = D • x{9) = s{Z) + 9 Dt einführen Offenbar kann nur so
groß gewählt werden, bis die erste Schlupfvariable, etwa s(9)q, an ihre Grenze dq stößt
Ein Austausch der p-ten Basisungleichung mit Ungleichung q führt dann wieder zu einer
zulässigen asis. Dies ist der Inhalt von folgendem
SATZ 9 (PRIMALER QUOTIENTENTEST FÜR EINE ZEILENBASIS)
Sei Z = (P, Q) eine zulässi Zeilenbasis zum LP (11) { 1 , . . . , N}, mit
yp(Z < 0 und t = D^}ev
Gilt D 0 so ist das LP (11) unbeschränkt Andernfalls ist für
argminJ ^ < 0,1 < i < k 1.22)
Z = (P', Q'), mit P' = P {p} U { und Q{}U eine zulässi
Zeilenbasis von (11) Ferner ilt
{Z
}
{Z (Z) + ). 1.24)
EIS
Fall 1 (Dt > 0):
s ist zu zeigen, daß es für alle M l ein x (D, d) gibt, so daß x < M Für M
x(Z) leistet (Z das gewünschte. Sei also M (Z). Setze
(z) + M~c x(z
h
Dann ist (Z "1"^x(z) {Z + (Z)) M K
M cx(Z)
und wegen y < 0, und M (Z gilt (Z) + ~
(Z) s(Z) > d.
Fall 2 (Dt £ 0):
Zunächst gilt ? G Q denn DPt DPDp^ep ep > 0. Nach Satz 6 ist Z' eine Zeilenbasis
mit Schlupfvariablen s(Z) = (Z)+QDt. Da Z zulässig is d (Z) > d, und 0 gilt
> 0. Wegen 1.22) gilt für i e { 1 , . . . , k} mit DLt < 0: (Z Si(Z) + > {(Z) +
-^i(z)D.t = r Für z e { 1 , . . . , k} mit DLt > 0 gilt Si(Z') = (Z) + QDi.t > Si(Z) > d{
Damit ist auch die Zulässigkeit von bewiesen. Gleichung 1.24) folgt schließlich aus
1.14).
36. EL 1. R T E S I M P H M E
Satz 9 bietet die Grundla für den primalen Simplex-Agorithmus. i seiner Dar
stellung verwenden wir andere Bezeichner für die relevanten Vektoren (vgl. Initialisierung
in Schritt 0), um später die Ähnlichkeit der Algorithmen für Zeilen- und Spaltenbasis zu
verdeutlichen
L G I T H S 1 ( I M L E R S I M L E L G I T H IN Z I L E N D S T L L U N G
Sei (P,Q) eine zulässige Zeilenbas zum LP (1.1)
Schritt 0 (Initilierung):
(Z
(Z
{z
Schritt 1 (Pricing):
Falls / > 0 terminiere: h t o p t i e r Löungsvektor de LPs;
o n t wähe p, mi < 0
Schritt 2: A
A
Schritt 3 (Quotiententest):
Fall A g terminiere: Das LP ist u n b e r ä n k t
S o n t wäh argmin{ ^/A
Schritt 4: A
Schritt 5 Up
)/
= /
Schritt 6: G e e zu S c r i t 1
SATZ 10 (PARTIELLE KORREKTHEIT VON LGORITHMUS 1)
Alorithmus 1 arbeitet partiell korrekt
37. . D R U H M E 21
BEWEIS:
Terminiert Algorithmus 1 in Schritt dann ist h nach Satz 8 ein optimaler Lösungsvek-
tor von LP 1.1). Wenn Algorithmus in Schritt terminier ist das LP nach Satz
unbeschränkt. Da Agq = AT(A1eq = (AT)q_(AT)E]1ep Afp gilt schließlich nach
den Sätzen 6 und 9, daß in Schritt 6 Z wieder eine zulässige Basis mit dualen Variablen
/ , Schlupfvariablen und Lösungsvektor is so daß die Voraussetzungen für Schritt
wieder erfüllt sind
•
Aufgrund von Gleichung (1.24) hat nach jeder Iteration der neue Lösungsvektor h
höchstens denselben Zielfunktionswert wie h. Für dq ^ gq ist er kleiner, während sons
h = h! gilt, d.h. derselbe Lösungsvektor wird von dem neuen Satz von asishyperebenen
definiert. Solch ein Pivot-Schritt heißt degeneriert. Er ist nur möglich wenn sich beim
Basislösungsvektor mehr als Stützherebenen von V(D, d) schneiden Solch eine cke
heißt primal deeneriert
1.2.1.2 ualer Algorithmus
Gegensatz zum primalen Algorithmus arbeitet der duale auf einer optimalen Basis
h. Gleichung (1.21) ist erfüllt. Sofern die Basis nicht auch zulässig ist, gibt es eine verletzte
ngleichung, etwa q. Sie soll in die Basis aufgenommen werden. Dazu muß eine andere die
asis verlassen und zwar so, daß die neue Basis wieder optimal ist. Anschaulich ist es die
Basisungleichung mit der der neue Lösungsvektor einen minimalen Zielfunktionswert
aufweist (vgl Abb 1.5). Nach den Gleichungen (1.14) und (1.17) uß p also so gewählt
werden daß x(Z') = cTx(Z) + Q(pq)(cDp) und somit Q(p,)-(cTDp^)p = y(Z)pdq —
(Z))/(Dg.Dp^ minimiert wird. Da aber dq > sq(Z), ist dies gleichbedeutend mit der
inimierung von (Z/(DqDp^. Dies wird von folgenden Satz präzisier
SATZ 11 ( U A L E R QUOTIENTENTEST FÜR EINE ZEILENBASIS)
Sei Z = (P, Q) eine optimale Zeilenbasis zum LP (11) q der Index einer
verletzten Ungleichung, also s(Z)q < dq, und t = Dq^,
Gilt 0 so ist das LP (1.1) unzulässi Andernfall ist für
y
argmax ^ > 0,1 < i < n 1.25)
Z = (P', Q'), mit P' = P {p} U und Q{}ö { eine optimale
Zeilenbasis von (11) Ferner ilt
Z^l 1 26)
und
{Z = c(Z) + $ (Z ). 1.27)
38. 22 KAPITEL 1. REVIDIFRTE SIMPLEX-ALGORITHMEN
Abbildung 1.5: Bei einem Schritt des dualen Simplex wird eine verletzte Ungleichung in die Basis
aufgenommen, wofür eine andere die Basis verlassen muß. Die beiden betroffenen Stützhyperebenen sind
gestrichelt dargestellt.
BEWEIS:
Fall 1 (t < 0):
Nach Satz 1 ist x(Z) die einzige Ecke von V(DP., dp). Demnach lassen sich gemäß Satz 3
und 2 alle x G V(DPl dp) als
n
x = x(Z) + ^ V j -Dp]ei
j=i
darstellen, wobei TI, . . . , r n > 0 gilt. Für alle x G V(Dp_, dp) gilt somit Dq,x = Dqx(Z) +
YH=iriDg.Dp}ei < dq + S r = i r ^ ^ dq, d.h. es gibt kein x G V(DR,dP), mit Dqx > dg.
Da also 0 = V(DP., dP) D {x : Dqx > dq} D V(D, d) folgt die Behauptung.
Fall 2 (t £ 0):
Wegen £p = [Dq,Dp^)p > 0 ist nach Satz 6 Z' eine Zeilenbasis mit dualen Variablen
yT(Z') = yT(Z) + $(t T - ej). Da j/(Z) > 0 und tp > 0 ist $ < 0. Für i G { 1 , . . . , n) {p}
gilt yi(Z') = yi(Z) + $*<. Falls ^ < 0 gilt somit j/^Z') > ^ ( Z ) > 0. Andernfalls gilt
wegen (1.25) y{{Z>) = Vi{Z) + $i< > ^ ( Z ) + ( - ^ ( Z ) ) / ^ • tt = 0. Ferner gilt yp(Z') =
yp(Z)—yp(Z)/tp-(tp—l) = yp(Z)/tp = —$ > 0, was die Optimalität von Z' zeigt. Schließlich
gilt nach (1.14) cTx(Z') = cTx(Z) + (dq-sq{Z))/tp-cTDp1ep = cTx(Z)-(sq(Z)-dq)/tp-yp =
cTx(Z) + <S>(sq(Z)-dq).
40. 24 EL 1. R T E S I M P H M E
Anstelle die Vektore g und h in den ritten 4 und u aktualisieren, kann man
sie ebenso neu berechnen (dies wird auch z.B. bei partiellem Pricing in der Praxis durch-
geführt). Die gewählte Darstellung verdeutlicht jedoch besser die Anlichkeit von primalem
und dualem Algorithmus und ist bei vollständigem Pricing auch effizienter [16]. Alle nu-
merischen Berechnungen in den Schritten 2, 4 und 5 treten in beiden Algorithmen in glei
cher Weise auf Lediglich die Auswahl der Indizes p und q wurde vertauscht: Der primale
Algorithmus (in Zeilendarstellung) wählt beim Pricing zunächst einen Vektor, der die Ba
sismatrix verlassen soll, während der duale Algorithmus im Pricing einen Vektor auswählt
der in die Basis eintreten soll. Wir nennen daher Algorithmus auch den entfernenden
und Algorithmus 2 den einfüenden Algorithmus
Wie beim primalen Algorithmus ändert sich auch beim dualen der Zielfunktionswert
des Basislösungsvektors falls der Quotiententest einen von Null verschiedenen Wert liefert
Der Fall $ = 0 tritt auf wenn der neue und alte Lösungsvektor auf gleicher Höhe (in bezug
auf liegen (Z = 0 Solch einen P v o t S c h r i t t nennt man wieder deeneriert
1.2.2 Die Spaltenbasis
In diesem Abschnitt werden sowohl der duale als auch primale Simplex-Algorithmus erneut
vorgestellt, diesmal jedoch mit einer Spaltenbasis. Dies ist die Darstellung, wie man sie
üblicherweise in der Literatur findet. Sie wird hier als Umformulierung eines Spezialfalls
der zeilenweisen Darstellung der Basis vorgestellt
Sofern nichts weiteres gesagt wird, sei in diesem Abschnitt folgendes vorausgesetzt
m, n mit n, j , b Rm und A Rm hat vollen Rang etrachte das
LP
min
1.28)
ieses LP ist offenbar der umgeschriebene) Spezialfall eines LP der Form 1.1), mit
2m + n, = (I und (0, 6 nämlich
min
1.29)
b
b.
Für jede zulässige Zeilenbasis von (1.29) müssen die Ungleichungen {n + 1 , . . . , n + 2m} mit
leichheit erfüllt sein. Da A vollen Rang hat kann man zu jeder zulässigen Basislösung
eine zulässige Zeilenbasis Z (P,Q von (1.29) finden ei der alle Ungleichungen
> b zur asis gehören {ro + 1 , . . . , n + und (Z').
41. . D R U H M E
SATZ 1
Sei Z = (P,Q) eine zulässige Zeilenbasis von (129) mit Basislösungsvektor
(Z) ann gibt es eine zulässige Zeilenbasis Z (P von (129), mit
(Z (Z und P n + 1 , . . . , n +
BEWEIS:
Sei Z = (P,Q) eine zulsige Basis von 1.29) mit Lösungsvektor x(Z). Setze M {n +
1,.. .,n + m}, R{P) PnM und S(P MR(P), d.h. S(P) bezeichnet die Menge aller
Nichtbasisungleichungen von Ax > b. Gilt |<S(P = 0 so erfüllt Z bereits das Gewünschte
Andernfalls konstruieren wir eine Basis Z' = ( P , Q) mit x(Z') = x(Z), für die S(P)
S(P 1 gilt. Durch |S'(P)|fache Anwendung dieser Konstruktion erhäl n somit eine
sis die d ewünschte eistet
Betrachten wir für ein G S(P den Vektor x = AkD^. Wir wählen ein j G
{ l , . . . , n } , so d ß Pj ^ (P) und Xj ^ 0. Ein solches muß es geben denn sonst hätte
wegen A = ^2PdRrP) XA^ die Matri A nicht vollen Rang N c h Satz 6 ist Z = ( P , Q
mit P' {] U {k} und Q Q {k} U {P eine Zeilenbasis von (1.29) und wegen
sk{Z) = gi $,k) = 0 Somit ist nach (1.14) (Z) (Z' und Z' zuässig Offenbar
git S(P S(P) 1, as den Bewei beendet
•
Diese Satz erlaubt es sich bei de Suche n c h einer optimalen und zuässigen B a s vo
(1.29) auf solche Baen Z = (P, Q) zu bechränken, fü die P D M gilt. Die Zeilen {n +
1 , . . . ,n + m} können somit tet in de Bas verbleiben, w ä r e n d die Ungleichungen {n +
m + 1 , . . . , n + 2 } nie in die Bass gelangen (sie würde sonst ingular) und daher ignorier
werden können. Beides k n n man durch eine angepaßte Verwaltung der Indexvektoren
m d e l l i e e n bei der nur noch Zeilen { l , . . . , n } ausgetauscht weden Um die ffizient
duchfühen u können eignet ich die efinitin einer Saltenbas
EFINITION 5 (SPALTENBASIS)
Ein geordetes Paar S = (B,N) von exvetore B, C { l n }
Saltenbas (zum LP (1.28)) falls folgees glt:
1. Ui { l f j }
2. nN ®
= un
st nicht sinar
Di es a heißn Basisindizes ud d es a Nichtbasindi
Die Zeilenbass Z = (P Q) zu (1.29), mit P N U {n + 1 . n + } h
die zu S gehörende Zeilenbasis Die Vektoren x(S) = x(Z), (S) = s(Z) n
y{S y{Z) heißn der Basslösungsvektor, der Vektor der Schupfvarialen
resve der duale Vektor von S Eine Spaltenbasi S heiß lässig, wnn
T T
(S V b), und ptimal falls c > c x(S) r alle {A b)
42. EL 1. R T E S I M P H M E
ie D f i n i t n ener Spaltenbasi rlegt also di V a r b l n i asis- und Nichtbasisvaria
blen. Die Variblenschranken der Nichtbasvariablen bilden zusammen mit den Ungei
chungen Ax > b die Basungleichungen de ugehörigen Zeilenbasi zu (129) Dabei i
iori nicht kar, ob wiklich eine Zeilenbas i t , s o f n S eine Spaltenbass i t E bedar
he de folgenden Sat
SATZ 14
Di zu iner Saltenbass gehöree Zelenbas st efniert
EWEIS:
muß gezeigt werden, daß A genau dann regulär wenn e Dp t ch geeignete
m u t t i n h t die Z e i e n b a s x folgende Gesal
D
»= ( t ) *
lso git n c h dem eteminntenentwickungssaz
| d e t ( D P | = det(
wora die ehuptung folgt
•
ie uktur de Zeienbasismaix ( 3 ßt ich uch f die echnung de Vekt
en (S (S und (S snuten
(S A~ mit (S 3
(S ( S , ) 32)
(S und (S (S 33)
Diese Struktur de Vektoren erlaubt es, die Optimalität und Zuässigkeit einer Spaltenbas
mit einem geingeen Rechenufwnd u ü b e ü f e n als mit der ugehörigen Zeilenbasis
SATZ 15
ine Saltenbas
(S (S 34
st zuäss, wnn
{S) > 35)
st oal, wnn
(S) < c 3
43. . D R U H M E
BE
Sei die u S gehörende Zeienbasis. ie Zuässigkeitbedingungen (135) und (1
ind äquivalent, weil ach (131) und 32) sT(Z) perrn (x^(Sx(S)b,—b)
0 ^ , x ( S b b) git bei beeichnet =per Geichheit bei geeignete muttin
T
Fü die ptimalitätsbedingung betrachten wir y(Z) Dpi perm ^(S jy
{SA.N Wenn Z optimal also y(Z) > 0 i , git nach eichung ( 3 3 und (1.34
(S) = J (S) = yZ) > 0 und (S) % wora Geichung
folgt
G i t nun (.36 abe Z) so onstruieren wir eine optimale Zeilenbas mit
demselben Lösungsvektor x(Z) Z'). Zunächt git nach Voraussetung (1.3 und
wegen der Gleichungen ( 3 3 ) und 34) (Z) > . Setze Z' {Qf), mit P'
P {i + n : y(Z) < 0} U {i + 2n (Z)i 0}. Z ehält man also au indem
alle Zeien mit negtiven dualen V a r e n durch die entprechenden Zeien a A
ersett Demnach DPi = diag (er DP und dp' d i g (er) • dp, wobei <7j
Z) und sonst o +1 gilt also eine Basis mit Lösungvektor
pidpi Dpi d i g (a) diag {a)d x(Z) und fü den dualen Vektor gilt yT
T
D p d i g (e Z) d i g (e) > ch de K u k t i n von o
•
Es liegt somit eine A m m e t i e zwischen einer Spaltenbasis S und der ugehöigen
Zeilenbasis vor Mit Z i t stets auch S optimal; die Umkehrung gilt jedoch nicht De
obige Beweis legt ber nahe, wie diese Asymmetrie ufgehoben werden kann D u wird in
Abschnitt 1 2 4 die Definitin einer Zeilenbasis auch auf Gleichungen erweitet Wie soeben
gezeigt unterliegen die Gleichungen gehörenden dualen Variblen keinen chnkun-
gen
Eine p a l t e n b a s i a t r i x beteht aus Spalten von A. Bei jedem votSchitt w i d eine
palte a s g e t a c h t . Dementprechend müssen auch die Vektoren {S und t(S) ktu
i e t weden ie die u gechehen hat b e c h e i b t de folgende Sa
SATZ 16 (SPALTENTAUSCH)
S = (B, N) eine Saltenbass von (1.28) { 1 . , } . E ist
S { N), m B' = B {B} U {i} N {i} U { geu dnn
ine Saltenbass vo (1.28), wnn
3
Ferer sin
(S B(S +Q 38
(S (S + 0 j A A , 39)
{S (S ^ ( A : )
44. EL 1. R T E S I M P H M E
ifSX
* ^ 2
lt
IS
s auf ( 9 ) folgen alle Aussagen s Sa wenn m = (A = j
p= f = y(S), f yB,(S), f c, 9 Q{i,j) g xB(S, g = {S), g
und 4 (i) s e t t Geichung ( 9 ) folgt d m i t n c h efintin ( 3 4 denn e
tT(S {SA = (S + 0 ( ejA^A = tT(S + Qj) jA^
1.2.21 Primaler Algorithmus
Nunmehr sind die Vorbeitungen für die Formulierung der Simpex-Algorithmen für Spal
tenbasen abgechlossen. Beim primalen Algorithmu wird die Zulässigkeit von S verlangt
d.h. X{S) > 0 muß geten. Solange die ptimalitäbedingung nicht gi w i d ein Vektor
in die as h i n e i n g e t c h t
LGORITHMUS PRIMALER S I M P L E X - L G O R I T H M U S IN SPALTENDARSTELLUNG)
Sei S = B,N) eine zuläsige S t e n b a s on (1.28)
Schritt 0 (Initilierung):
T
<% (S
(S
(S
Schritt 1 (Pricing): ll g < c terminiere:
x, mit Xß f und 0 o p t i e r L ö u n g e k t o r de LP
S o n t wäh q, mi
Schritt 2: A B
Schritt 3 (Quotiententest):
Falls A / < 0 terminiere: Das LP i t unbenkt
o n t wähe p a r g m j / A / A/
Schritt 4: A
A
45. . D RU 29
Schritt 5 Up
+Q
+ Q A
+ *(A
Schritt 6: Gee zu S c r i t t 1
ATZ 17 ( P R T I E L L E K E K T H E I T V LGITH
lgorthmu artet artell orre
EWEIS:
Bei Teminierung in Schitt folgt die Behauptung s Satz 15. Wegen Sa t in
chritt 6 B wiede eine as die wegen chitt 3 uch zulässig i t
Für die Unbeschränktheit des LP bei minieung in Schritt 3 betrachte das LP
29) und die u S gehörende Zeienbasi Z (P,Q). Wi identifieren nun die Größen
Agorithmu 3 mit denen a s Sat 9. N c h .33) gilt ]JN{Z) ^ — t(S) und somit
Z) 0. Fener gilt n c h ( fü den Vektor D^} und
A alb i t
Gi also in chitt , so folgt und d m i t n c h Sa die U n b e c h n k t h e i t
de LP
•
Algorithmus a t a t c h eine Umformuieung v n Algorithmus 1 in die N o t i -
n einer Spaltenbasis. Algorihmich e n t r i c h t Algorithmus 3 dem dualen Algorithmus 2:
Bei entsprechender Initialisieung aller reevanten Vektoren und Schranken unterscheidet
ich lediglich das T m i n a t i k i t e r i u m in chitt 1 gemäß de umgekehten Ungeichung
ichtung in (136
1.2.22 ualer Algorithmus
Wie uvor de imale A o r i t h m u w i d nun uch de duale fü eine altenbas umfor
muiet
LGORITHMUS 4 ( U A L E R I M P L E X - L G O R I T H M U S IN SPALTENDARSTELLUNG)
Sei S = B,N) eine opti Zeilenbas on (1.28)
46. TE SIMP
Schritt 0 Iniliung)
hT W (S
(S
(S
Schritt 1 (Pricing):
Falls > terminiere:
x, mit Xß fT und o p t i e r L ö u n g e k t o r de LP
S o n t wäh p, mi
Schritt 2: A
Schritt 3 (Quotiententest):
Falls Ag > 0 terminiere: Das LP ist unzulässi
o n t wähe q argm{ )/ A
Schritt 4: A/
Schritt 5 (Updte):
)/
ti +Q
+e
/' + *(A
Schritt 6: G e e zu S c t 1
SATZ 18 (PARTIELLE KORREKTHEIT VON LGORITHMUS 4)
lgorthmu artet artell orre
EWEIS:
Bei Teminierung in Schitt folgt die Behauptung aus Sa 15 Wegen Sa t in
chritt 6 B wiede eine as die wegen c hitt 3 uch dual z ä s s i g i t
Fü den Fall de m i n t i n in c hitt 3 betrachte as LP
min
Ij
V beeichne das ugehörige Polyeder, und es seien D = (7j^ sowie = ( ° . Au den en
2 und 3 folgt d ß (S) die einige cke n V t und all V als
(S) + ^ D-
47. 2 RU
mit , argestell werden k n n e n r all git d e a l ^
T
{S) + ^ e D - . Fü 1 < i < n t (^D ^ N i A ^
so daß XB{S < 0 folgt un muß be X > 0 für alle x G V(A b) gelten, so d
wegen V (A b) die Unzässigkeit V(A b) 0 bei T e m i n t i n in chitt 3 folgt
•
iederum sei uf die algoithmiche Ähnlichkeit de dualen Algorithmus' mit Spalten-
basis 4 zum primalen mit Zeienbass 1 hingewieen. Bis auf die unterschiedliche Initial
ierung de Vektoren und ihrer Schranken liegt der einzige Unterschied in Schitt Dies
t wieder uf die Ungleichungsrichtung ( 1 6 ) ückufühen
Somit v e a u c h t sich beim Übergang von der zeienweien zur saltenweien arste
ung de Bas de T p de orithmen wie e die folgende belle angibt
alnbas Zenbas
infügend imal dual
ntnend dual imal
Tabel 1.1: usammenhang ishe de B a s i s d a r l l u n g und algorhmische und mathematishe
yp von Simplex-lgorithmen
Dies liegt Zusammenhang der Agorithmen mit den entspechenden orithmen
uf dem duale P de im folgenden Abchnitt bechieben w i d
1.2.3 Dualitä
In Abchnitt 1.2 wude eine Ähnichkeit der Simplex-Algorithmen in Zeilen- und Spal-
tendarstellung de Bass aufgeeigt i e e i t in de nun u erörtenden D a l i t t begündet
u gehen wi ück auf das LP
min ,
t >
t i i e t m n jede Ungeichung i G { 1 , k} mit einer nichtnegtiven Zahl y^ 0, so
da yTD T
ergibt häl n eine unte Schranke fü den ptimalen Z i e f u n k t i w e
T
des LPs, lich c = yD > yTd. Dies gilt für all > 0 mit yD cT, also
insbesonde uch f die b e t m i c h e chranke die man als ösung des so dualen LPs
häl
44
Die LP hat die geeignete For um eine altenbas 5 = B7 N) zu definieen
T
Wenn ( ) c > 0 i t S lässig (135) und wenn d (DT)~^T
T
< dT i t S ptimal (1
48. TE SIMP
Bis auf Transpositn sind das d i b e Bezhungen wie die Zulässigkeits- und p t m a
itätsbedinungen fü die Zeienbasis Z (B,N) zum LP (11). ine Zeienbasis ist somit
äquivalent u einer Saltenbasis auf dem dualen LP. Diese Äquivalen verwenden wir zum
Beweis des folgenden zentralen Sates der Linearen Programmierung, wobei voraugesetzt
wid ß es Simplex-Alorithmen gibt die vollständig korrekt arbeiten (vgl Abchnitt
15)
SATZ 19 ( U A L I T Ä T S S A T DER INEAREN PROGRAMMIERUNG)
ei k EN, 0 < n < x e R e R d D e RkX e volle
as ineare Programm
min
at geu dnn ine o a l e Lösg, wnn sein duales
ine o a l e Lös at ese Fall stmm e Zelfuerte
erein
EWEIS:
Z B,N) ist genau d n n eine ptimal, ässige Zeienbasis on wenn S
T
(B, N) eine ptimale und lässige paltenbas von (144 t In dieem Fall (Z)
cTD-l <?T)-£ <%(DT) + dT0 <F{S
•
ieser Sat lärt die in Tabelle sammengestellten Ähnichkeiten zwichen bei
den Simplex-Algorithmen und beiden Basdarstellungen Der Vorzeichenwechse bei dem
O p t i m a l i t ä i t e r i u m ü h t v de unterschiedichen ptimierungsrichtung v n (144
und ( 2
1.2.4 llgemeine Basis
Die iehung zwischen beiden Simpex-gorithmen mit Zeien- und Spaltenbas über
die Dualität läßt die Frage a u f m m e n ob zwei verschiedene Darstellungen innvoll sind
M a t h e m t i c h gesehen, ist dieer Einwand gerechtfertigt, kann m doch, astelle eine
Zeienbasisbasis zu verwenden, zum dualen LP übergehen und eine Spaltenbas benuten
Vo Standpunkt de Implementieung fü ächich uftetende LPs gibt ich j e d c h
ein nde Bid
49. 2 RU
Oft trifft man auf LPs, bei dene b e e und unt Schrake sowohl die V a r i e
als auch fü echte" edingungen, so Bereichnglechunge vorliegen Betrachte also
das LP
min
5)
bei A e R , all V e k t o n d i m e s k o m p a t i b e l seien und sowie u gelte
bei seien fü /' und l" uch Werte — oo sowie fü ' und u" uch Werte ässig Um
das u dieem LP duale anugeben müssen die Beichsungleichungen < Ax u" in
ein Paar n Ungleichungen u f g e a l t e n weden. nn egibt ich das folgende duale LP
T T
fs y z
ie Bedingungmatrix diese LP t doppelt so groß wie die des AugangsLPs (145) und
damit uch de Rechenaufwand in jeder Simpex-Iteration Dies kann jedoch vermieden
werden indem m telle einer Spaltenbass auf dem dualen LP ( eine (geeignet
weitete) Zeienbass auf dem primalen LP (145) b e n u t t
Im folgenden geht e darum, eine Zeilen- und paltenbasi fü LP der Form (1.45) zu
definieren und d f ü die Simplex-Alorithmen zu formuieen D a u werden Bezeichnungen
eingeführt, die es ermglichen, sowohl den einfügenden als auch den entfnenden A l o
rithmu weitgehend unabhängig v n de Basidarstellung zu formulieen duch t"
jede orithmu gemäß bell 11 für zwei
Eine Zeienbasi kann diekt fü ein LP de For 45) definiet weden. Zu Veein-
chung de N t a t i n hilft e die in
min
t
umuschreiben, wobei = (^, = (" und g e e t t wude n nennt (
das zu (1.45) gehöree ZeileL
Fü die efinitin einer Saltenbas um LP ( 5 ) muß e in das LP
T
min C
48
duch Einfühung der Schlupfvarblen s x tranformiert werden. Hier zeigt sich der
Vorteil d i r Definition gegenüber der in de Literatu üblichen, die ich nicht auf so sym-
m e t c h e Weis auf Beeichsungleichungen eweite äßt Das LP ( 4 8 ) i t in folgendem
Sinn äquivalent um A u n g L P (145)
50. TE SIMP
ür j Lösng ^) vo (1-8) ist x in Lösg vo (1-45) m demsel
elfunonsert Entspreche st für Lösung x vo (1-45) , m
in Lösng vo (1-8) m sel elfunert
BEWEIS:
ei eine Lösung v n (1.48 Dann is x auch Lösung v n (1.45) denn x und
< Ax < Sei nun x eine Lösung von (145) nn gilt fü ( mit s = A'
fenbar < s Ax < u". Außerdem gilt wiede < < ' dh t Lösung v
4 8 . Fene gi jeweils fü den Z i e l f u n k t i w e
Inbesondere folgt au dieem Sa Lösung v n ( 5 ) rsawei uch as LP
48 gelöst werden k n n
ie fü eine Zeilenbas wi V e k ü u n g de tin (48 umgechieben
min cs
9)
wobei = (c ), A ( L (£ und (^ as LP ( 9 )
heißt das zu (1-45 gehöree SalteL
EFINITION 6 ( L L G E M E I N E S I M P L E X - A S I S )
PfP , Q Q vetore Eine georete Mnge B
{PQ), m P Pf,i, Q QQ iß asi vo
(1-45) falls folgees glt:
1. P U Q = { l , n +
2. Pf, P, P, P j ind paarse
P =
f, st nich inar
Pf
UQ
UQ
f, ßt di Z e i e n b a s a t r (er a s i s m i x in Zeilendarstellung,) u
altenbasirix er a s t r i x in altendarstellung,).
Die x A n+ Zeilen. Somit e n t e c h e n die Bedingungen 4 denen au
efiniti Die ix h t hingegen n + S a l t e n und m n e a r t e t d ß die
51. 2 RU
dingunge uch dene fini n t h e t de nhal folgende
Sat
SATZ
ie C {1, + n} Q { 1 , ,m n} P dexvetore
= Die Mat p st geu dnn regär, wnn es st
BEWEIS:
et Fi n { 1 , . . . n}, = P Pu Q = Q n { 1 , . . . , n} und = Q Qi- D m i t
is PiöQ { 1 . n} und U Q = {n + 1,.. m + n}. Für eine Menge von Indi
bezeichne n {i n : i } . ch geeignete r m u t t i n h t die Zeienbasi
die Getal
w ä e n d die a l t e n b a s x wie folgt ssieht
ch dem eteminntenproduktsa gi
|det(A| = | d e t | = |det|
eine x g e n u d n n inguar wenn ih eteminnte folgt die ehuptung
Somit definiert eine allgemeine asis s o w l eine Zeinbasis auf dem ugehörigen
Zeilen-LP als auch eine Saltenbass auf dem zugehörigen Spalten-LP Die Basisbedin-
gung 5 dient nun d die zu einer Basis gehörenden Vektoren zu definieren. Wir tun die
zunächst für eine Bas in Zeilendarstellung fü das Zeilen-LP (1.47). Die I n d i s aus P
weden wie gewohnt ur Bestimmung eines Basslösungsvektors herangeogen. Nun defi-
niert eine Bereichungleichung / < aTx im allgemeinen wei parallele Seitenflächen de
LP-Polyeders, denen ber nur eine ur Definition des Lösungsvektors h e r a n g e g e n
weden k n n alb wi P in die vie Teimengen unteteilt n ä l i c h
wenn die Beeichsungleichung wegen l eine eichung b e c h e i b t die diekt
vewendet weden k n n teht fü fixed
wenn die eitenfläche < a vewendet weden soll teht fü we
wenn die eitenfche aT vewendet weden soll teht f ppe und
52. TE SIMP
Pf wenn wegen l = —oo und keine S e i t e n f h e definie wid ( ht f
Stattdessen w i d küntlich 0 vewendet
Die w i d in der folgenden efinition präzisier in der auch die Teimengen Q^, £
x, l / } fü die dualen V a r b l e n vewendet weden
EFINITION 7
i B ine Basis vo (1-4-5) mt Zelenbasat (AP r i
{! + n} setze
, falls i Pf
, falls i
B) 52)
; falls i Li Q
falls i UQ
falls i Pf
falls i
B)
falls i
falls i UQ
falls i
B) falls i
B) B) falls i
B) falls i
sost
et ferer für i {! n}
falls Pf
p falls
B) z 5)
falls
z
falls
nn
B) = ( B)
er Vektor de alvaren
B) B)
er asslösungvektor
B) B)
er Vektor der S c h u p f v a r e n vo
53. 2 RU
Offenbar is R(B) ein Nullvektor, so aß zT(B) = B gilt. Die Form (1.5 zeigt
jedoch deutlich die Ähnichkeit wischen den Vektoren für eine Zeilen- und den n c h
definieenden Vektoren f eine Spaltenbasis. Außerdem w i d in den Abschnitten
und 1 geeigt, daß e f r r a l Impementierungen ehr w h l ötig weden kann, RB)
von Null verschiedene rte zuuweien. In dieem Fall muß B) in de Tat g e m ß ( 5 6
beechnet weden
Es sollen nun das Zulässigkeit- und das Optimalitätkriteium für allgemeine LPs auf
gestellt weden Dabei i t die Zuässigkeit wiedeum einfch B) i t g e n u d n n ulässig
z z
wenn l < s(B) < u Wegen ( 7 ) und (158 gil B) = z(B), so d ich die
Zulässigkeitbedingung uf
B) < 59)
eduiet
as Optimalitäkriterium i t wiedeum nicht u n m i t t e a r einichtig und w i d d e a l
in folgendem Sa formuiet
SATZ LLGEMEINES SIMPLEX-KRITERIUM
in ass vo (1-4.5). er asislösngsvetor B) st o a l , wnn
B) < B) < B)
lt
EWEIS:
z
Es gete ei {i ß) > und P Für alle F Pf
et
z z
VF = BPl Pl BPux u,
BP > Zf P f,_
z
> /f A f,F}
Nach Sa 7 und Definiti git für alle F Pj die ptimalität v B) übe VF
d h TxB) < cT für all VF Nun i t be
(J VFV(
FCP
wora die ptimalitä uch fü V( folgt
•