SlideShare ist ein Scribd-Unternehmen logo
1 von 221
Downloaden Sie, um offline zu lesen
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)
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
einer Fra
gewidmet
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
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
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
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
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
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
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
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
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
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
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.
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.
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.
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:
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
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
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
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
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
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".
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
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.
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)
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.
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.
. 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).
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
. 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)
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).
. D             R      U       H    M        E                                                                               23


   Mit diesem S z           k
aufgestellt werden

          LGORITHMUS                  UALER          I M P L E X - L G O R I T H M U S IN Z E I L E N D A R S T E L L U N G )


     Se           (P, Q) i e 0| i                   Zeiln as          on 1.
     Schritt 0 (Initi lierung):



                                                                     (Z

                                                                 (z
     Schritt 1         (Pricing):
                       Falls g > d terminiere:                   o p t i e r L ö u n g e k t o r de LPs;
                        o n t wähe q, mi
     Schritt 2: A /           <             q

     Schritt 3         (Quotiententest):
                       Falls A / < 0 terminiere: Das LP i t unzulässi
                        o n t wähe p    argmax{/A/          A
     Schrt


     Schritt 5         Up


                                                    9q)/
                                                Mv
                                       ti        +e
                                                g+©
                                            =/ +$
     Schritt 6: G e e zu Schritt 1

     S A T Z 12    ( P A R T I E L L E K O R R E K T H E I T VON           LGORITHMUS

         Alorithmus      2 arbeitet partiell               korrekt

BEWEIS:
Terminiert Algorithmus 2 in Schritt 1 dann ist nach Satz 8 ein optimaler Lösungsvektor
von LP (1.1). Wenn Algorithmus 2 in Schritt 3 terminiert, ist das LP nach Satz 11 un-
zulässig. Schließlich gilt nach den Sätzen 6 und 11, daß in Schritt 6 Z wieder eine optimale
Basis mit dualen Variablen / , Schlupfvariablen und Lösungsvektor is so daß die Vor
aussetzungen für Schritt wieder erfüllt sind
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').
. 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)
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
. 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 :                                     )
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
. 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)
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-
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
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
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)
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
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
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
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
                                                                                                               •
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr
Soplex tr

Weitere ähnliche Inhalte

Andere mochten auch

Seo Campixx Vortrag 2012: Affiliate auf Weltreise
Seo Campixx Vortrag 2012: Affiliate auf WeltreiseSeo Campixx Vortrag 2012: Affiliate auf Weltreise
Seo Campixx Vortrag 2012: Affiliate auf WeltreiseNils Römeling
 
Hefte Helfen - Kinderkrebshilfe
Hefte Helfen - KinderkrebshilfeHefte Helfen - Kinderkrebshilfe
Hefte Helfen - KinderkrebshilfeHefteHelfen
 
Bericht: Zu schön um wahr zu sein?
Bericht: Zu schön um wahr zu sein?Bericht: Zu schön um wahr zu sein?
Bericht: Zu schön um wahr zu sein?littlejig
 
Herbst PR leicht gemacht
Herbst PR leicht gemachtHerbst PR leicht gemacht
Herbst PR leicht gemachtADENION GmbH
 
BANGLARESTORA NEWSLETTER
BANGLARESTORA NEWSLETTERBANGLARESTORA NEWSLETTER
BANGLARESTORA NEWSLETTERBANGLARESTORA
 
Social Media - Chance für den Mittelstand
Social Media - Chance für den MittelstandSocial Media - Chance für den Mittelstand
Social Media - Chance für den MittelstandHeiner Weigand
 
Reise darmstadt 2011(2)
Reise darmstadt 2011(2)Reise darmstadt 2011(2)
Reise darmstadt 2011(2)AndyAustrich
 
Onlinehandel in der EU
Onlinehandel in der EUOnlinehandel in der EU
Onlinehandel in der EUBjörn Rohles
 
Social Media in Talententwicklung und Weiterbildung
Social Media in Talententwicklung und Weiterbildung Social Media in Talententwicklung und Weiterbildung
Social Media in Talententwicklung und Weiterbildung Thomas Jenewein
 
Zwischenpräsentation Enterprise Wikis Revealed
Zwischenpräsentation Enterprise Wikis RevealedZwischenpräsentation Enterprise Wikis Revealed
Zwischenpräsentation Enterprise Wikis RevealedDada_Lin
 
Social Media Einblicke
Social Media Einblicke Social Media Einblicke
Social Media Einblicke Kirche 2.0
 

Andere mochten auch (15)

Studie KMU-PR
Studie KMU-PRStudie KMU-PR
Studie KMU-PR
 
Seo Campixx Vortrag 2012: Affiliate auf Weltreise
Seo Campixx Vortrag 2012: Affiliate auf WeltreiseSeo Campixx Vortrag 2012: Affiliate auf Weltreise
Seo Campixx Vortrag 2012: Affiliate auf Weltreise
 
Open Source ERP talk, Linuxwochen 2010
Open Source ERP talk, Linuxwochen 2010Open Source ERP talk, Linuxwochen 2010
Open Source ERP talk, Linuxwochen 2010
 
Hefte Helfen - Kinderkrebshilfe
Hefte Helfen - KinderkrebshilfeHefte Helfen - Kinderkrebshilfe
Hefte Helfen - Kinderkrebshilfe
 
Bericht: Zu schön um wahr zu sein?
Bericht: Zu schön um wahr zu sein?Bericht: Zu schön um wahr zu sein?
Bericht: Zu schön um wahr zu sein?
 
Herbst PR leicht gemacht
Herbst PR leicht gemachtHerbst PR leicht gemacht
Herbst PR leicht gemacht
 
BANGLARESTORA NEWSLETTER
BANGLARESTORA NEWSLETTERBANGLARESTORA NEWSLETTER
BANGLARESTORA NEWSLETTER
 
Social Media - Chance für den Mittelstand
Social Media - Chance für den MittelstandSocial Media - Chance für den Mittelstand
Social Media - Chance für den Mittelstand
 
Reise darmstadt 2011(2)
Reise darmstadt 2011(2)Reise darmstadt 2011(2)
Reise darmstadt 2011(2)
 
Onlinehandel in der EU
Onlinehandel in der EUOnlinehandel in der EU
Onlinehandel in der EU
 
Power point ....
Power point ....Power point ....
Power point ....
 
Social Media in Talententwicklung und Weiterbildung
Social Media in Talententwicklung und Weiterbildung Social Media in Talententwicklung und Weiterbildung
Social Media in Talententwicklung und Weiterbildung
 
Zwischenpräsentation Enterprise Wikis Revealed
Zwischenpräsentation Enterprise Wikis RevealedZwischenpräsentation Enterprise Wikis Revealed
Zwischenpräsentation Enterprise Wikis Revealed
 
Social Media Einblicke
Social Media Einblicke Social Media Einblicke
Social Media Einblicke
 
Franz Miller: Pressesprecher als Beruf
Franz Miller: Pressesprecher als BerufFranz Miller: Pressesprecher als Beruf
Franz Miller: Pressesprecher als Beruf
 

Soplex tr

  • 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
  • 4.
  • 6.
  • 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).
  • 39. . D R U H M E 23 Mit diesem S z k aufgestellt werden LGORITHMUS UALER I M P L E X - L G O R I T H M U S IN Z E I L E N D A R S T E L L U N G ) Se (P, Q) i e 0| i Zeiln as on 1. Schritt 0 (Initi lierung): (Z (z Schritt 1 (Pricing): Falls g > d terminiere: o p t i e r L ö u n g e k t o r de LPs; o n t wähe q, mi Schritt 2: A / < q Schritt 3 (Quotiententest): Falls A / < 0 terminiere: Das LP i t unzulässi o n t wähe p argmax{/A/ A Schrt Schritt 5 Up 9q)/ Mv ti +e g+© =/ +$ Schritt 6: G e e zu Schritt 1 S A T Z 12 ( P A R T I E L L E K O R R E K T H E I T VON LGORITHMUS Alorithmus 2 arbeitet partiell korrekt BEWEIS: Terminiert Algorithmus 2 in Schritt 1 dann ist nach Satz 8 ein optimaler Lösungsvektor von LP (1.1). Wenn Algorithmus 2 in Schritt 3 terminiert, ist das LP nach Satz 11 un- zulässig. Schließlich gilt nach den Sätzen 6 und 11, daß in Schritt 6 Z wieder eine optimale Basis mit dualen Variablen / , Schlupfvariablen und Lösungsvektor is so daß die Vor aussetzungen für Schritt wieder erfüllt sind
  • 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 •