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
                                                                                                               •
38                                                                                   TE SIMP


 ine   as          die ( 5 9 ) gi    heßt            äss    und, falls                    gi   pal
   E weden nun das           ptimalitä          und Z u ä s s i g k e i t i t e i u m fü eine        altenbass auf
getellt

             INITIO
            i B   ine Basis vo       (1-45) mt                      Saltenbasatr                       r i
       {1           + 77.} sete

                                                                    falls    i       Pf
                                                                    falls    i
                                          B)                        falls    i
                                                                    falls    i
                                                                    sost



                                                                    , falls i        Pf
                                                                    , falls i
                                          B)                        ; falls i                                 2)
                                                                      falls i
                                                                     sost


                                                                    falls    i       Pf
                                                                    falls    i
                                           B)                       falls    i
                                                                    falls    i
                                                                    sost

        et    ferer für i      {1

                                                 W                   falls       Q
                                     B)          W                   falls
                                                                     falls
                                                                                 Q
                                                                                 Q
                                                           ß)
                                                                     falls       Q

        efniere schch           de    Vetore

                                                B)                    B)                                     65)
                                                B)                   B)                                      66)



                                           B         )          B        )
2             RU


S o r n keine Verwehslung m ö h i                       wid i          Folgenden die A b h n g i k e         n de     as
(£>) nicht expliit n t i e t
   Es muß nun gezeigt weden,                            efinitin (               nicht im        idersuch           üheen
 efinitin der Schupfvariblen (                          teht

      SATZ 23
          st         efniert

 EWEIS:
D r c h Mltiplikation v n (                  mit            hält m                                                  wora
duch i n e t e n v n (151)



                                             )Q
                              
folgt. Fü die echte eite gi
                                                                                                       )R

  nn k n n de                     Tei gechieben weden als



git   n t e c h e n d folgt

                                    Q2                  n P i                                                              9)
Es werden nun die letzten beiden                      eziehungen us der efinitin des Schlupfvektors fü
eine Zeilenbasis hegeeitet Da                         egulär i t folgt dara die Whldefinietheit D c h
  i n t e n von ( 5 ) in      p                       hält m

                                                                                        QX


Somit i               und                (                 A                 .              Fü     < i<      git d e a l
s    A
  Q                               + AQ                     Q P i       + A                                  A'
Fü                                 und                          , so    ß gi


  mit folgt fü
                                     S            A
                                             =                  Pi +     Q2Qi      Q
 un ist abe                   fü 1 <             < n was den              ewei de                definietheit v n (
vollendet
TE SIMP


   M t den Vektoren ur allgemene Spaltnbas werden nun das Z u ä s s g k e - und as
 ptimalitätskiterium ufgetellt D u bedarf es auch de Vektors de D a l variblen

       SATZ
               in      ass vo (1-4-5).      nn        lt fü             alvarle



       Ferer    st B zuäss,       wnn


                    al, wnn
                                                 <d                                                2)

 EWEIS:
 ls erste wi     eichung (          bewiesen.  gi r        , so daß                  cp dp zu eigen i t
                 +m
Definiere y G R"     so d               Sett m      und ( 5 0 in (                    ein und m u t i i i e
mit B, so git wegen


                V
wora    die     eichungen

                                                        {Ä


folgen    ntsprechend folgt               5) mit de             arstellung ( 5 1 ) der Saltenbas         ch
M l t i k t i n mit B

                                     I

                                                        ((

wora tQ               und p2_                    nQ           folgt   mit i
und m n e ä l        chließich
                                                                                           (A
                          JT
                          UPl         l

was    ch de        efinitin v     den     ewei                eichung (         beendet
   Die Zulässigkeitbedingung ( 1 ) folgt wegen Ls =                        und          diekt           59)
 chießlich folgt das O p t i m a l i t ä i t e r i u m (172) wegen                     und               L
  s Sa 22
2            RU


  Veleicht man ( 5 6 ) mit (1.67), ( 1 7 ) mit (1.5) und (.58) mit (1.66), so ekennt
  n, daß die Rechenoperationen bis auf T r a o s i t i o n jeweils übereintimmen iese Be-
  chtung w i d v n der folgenden Definiti ausgenutzt mit deen Hilfe alle für Simplex-
Agorithmen evnten Vektoren in eine m i c h t darstellungunabhängige Form gebracht
weden

       EFINITION 9
         B ein Bass von (1-45) u          chne m        {Z, S} ein arstell      er
       asismatix. Je nach Whl von V      efniere        zechunge gem       folgeer
      Tabelle:


                     B,                Pf
                                                          Pf
                                            )T




         nn                 as

                                                   R)                            5)

       er Zuässigkeitvektor



       er H i v e k t o r

                                                                                77

       er        ngVektor

  ie N m e n Zulässigkeitvektor für / und PricingVekto ür g beziehe  ch auf den u
spünglichen Simplex-Agorithmus, nämlich den primalen Simplex mit Spaltenbasis. Dor
bezeichnet die eduzierten Kosten, die beim Pricing     gewetet weden    hingegen
die ( p i m a l ) Zuässigkeit de Bas betimmt
   Man bechte aß alle Größen direkt fü LPs der Form ( 1 5 ) betimmt werden können
und keine Datenstrukturen benötigen die v der gewählten Basidarstellung abhängen
Inbesondee brauchen die M e n A und A nicht e x p i e t k o n u i e u weden S a t t
PIT          REVIDIERTE                   SIMPEX-ORITHM


dessen k n n der jeweilge /-Teil de              a t x bei der B e h n u n g von / und g alorithmi
   genutt weden. Fü den Vektor                   etwa stimmt die       Teil diekt mit h überein
  Die Beichungen wuden so gew                          ß folgender Sa       u n b h n g i g v n de    arste
ung git

      SATZ
                         chge               efni          st           al     d zuäss,      wnn


                                                                                                     9)

          lt

  EWEIS:
 i e r Sa      folgt u n m i t t e a r a   den       en 22 und      sowie      efiniti
                                                                                                          •
    Nun können implex-lgorithmen formuliet werden, die nu die Gößen us Definitio
9 vewenden und somit i . unbhängig von der gewähten Basisdarstellung sind Das Ziel
der Algorithmen i eine Basis zu finden, die beide Ungeichungen (1.78) und (1.79) erfüllt
Dabei w i d wiede wichen wei algorithmischen Varianten unterschieden Eine arbeitet
mit Basen die (178) füllen, während die ndere Basen benötigt, fü die ( 9 ) git
           gx und / in verschiedenen assdarstellungen jeweils dualen Vektoren zugeordnet
sind kann einer algorithmischen Variante erst n c h Wahl der Basisdarstellung ein m
t h e m t i c h e Algorithmu ugeordnet weden Die Zuordnung efolgt wiede        ch bell
11


1.2.4.1        infügender Algorithmus

Es wird nun der einfügende Simpex-Algorithmu in den von der B a s a r s t e l l u n g un-
 bhängigen Größen au Definition                   ufgestellt. r k n n weitgehend v Algorithmus 2
oder 3 übernmmen weden, wobei as Vorndensein oberer und unterer Schranken ein-
gearbeitet werden muß. Wenn eine paltenbasis vewendet wird h n d e t es sich um einen
primalen, andenfalls um einen dualen implex-Algorithmu (vgl. Tablelle 11). Zur Ve
einfachung der Notatin w i d bei der Formuierung des Alorithmus die Abhängigkeit de
Vektoren von de            as ...(B) nicht explizit aufgeführt.       att dessen weden Größen die
   r a k t u a l i e t e n as einer t e r a t i n gehören mit einem t i c h gekenneichnet

      ALGORITHMUS 5 (EINFÜGENDER S I M P L E X - L G O R I T H M U S )
      Sei B eine Basis zum LP ( 1 4 5 ) und            gelte (1.79). All     rößen       Defnition 9
       eien e n t p r e c e n d i n i t i i e r t
2   DI       R U R I T


    Schritt 1      Priig)
                 Fll       < 9N < N terminiere:
                       x    t o p t i m e r L ö u n g e k t o r des LP
                 S o n t wähl q d e r r t , d ß          (j) mi (ß =                    oder     m i <>


    Schritt 2: Setze
               A                          und
                                                          ll Zeilenbas und
                                                          ll Zeilenbasis und
                                                          ll S t e n b a s und
                                                          ll       tenbas und


    Schritt 3    (Quotiententet):

                    ll         etze:
                           = ^ ^ ± , mit p                           a r g m i n ^
                               L B
                           =         ^             , mit p          argmin^g^                    und
                          = min{0
                    ll               etze:
                               L B / P              mit
                           =                   .           P         a r g m ^
                               t/B
                           =         ^             , mit p          a r g m ^ ^                  und
                          = m

                         = ± o o terminiere:
                          as LP i t unzulässi                  oder u n b e n k t
                                                               ll      $
                 Son            p
                                            p             , so
                 und für                  etze            derrt, d         =     ^ ^


    Schritt 4:      ll                   tz
                                                     und
                                                   A

    Schritt 5    (Updte):

                    ll         $o Setze:
                               /'             + $ A / und
                                              B, N     mi                      für         und
                                                und Nl                          all g      V
                                               und                               ont
KAPIT              REVIDIERTE               SIMPEX-ORITHM


                   ll               See:
                                     ( ( / ) /
                                     h'           +e
                                                  +®
                                                +  <Af
                                             ( B ' , mi
                                             ll
                                                        u n d
                                             II

                                             ll
                                              ll
                                        , falls i = q
                        wobei di      inordnung in die Mengen                   gemä   Defnition
                        erfolgt

                A k t u l i e r e die Vektoren L,

   Schritt 6: G e e zu S c r i t t 1


   SATZ      6 (PARTIELLE KORREKTHEIT VON                       LGORITHMUS 5)
    lgorthmu            artet       artell    orre


EWEIS:


    ei       minieung in chitt folgt die                ehuptung       s Sa

   Es w i d nun geeigt, da                in Schitt eine Bas mit Vektoren f'           und
   die L < f <        git                   ewei folgt in vie Teilschitten

               t eine as
          Falls in Schritt $ ^ 0     , gelten die Basisbedingungen 3 und fü B da
           ie es auch fü    tun Die Basibedingung 4 folgt     s Sa  6 d   ch chitt
                     T
             A/       pAq    ^ 0 git
            t in Schitt 5 hingegen           so folgt nach Schitt , ß e ich um eine
            paltenbas mit o o ^ < o o h n d e l t und desalb q 6            N gilt
          Wie schon B füllt deshalb uch       die asibedingungen 1 3 und
          git auch die asbedingung 4
         ) Die Vektoren und        gehören zu
           Fü den Fall      $     t = und                          wora         und h'  folgt
            etrachte nun den Fall                                   /   p)e git n c h  und ( 9 )
                              T
            us Sa 5      ti                                             bei     ^"fA = ^       6
            t Schießich i t ()T           A =                   + Q A = T + 9
2 DI           R U R I T


       ) D Vektor      g e ö r zu £>   .e    st A B /                         ige
         Im Fall vo     ^ $ sei j =          mit git A                   + (A
             R           und ' = / + $          (i?                     Somit i

                                                 + *
                       A    + $                  $            +
                       (A    A                                (A
                       b R + §
                       (A    A)                                    (A
                            R+
                             $                           + <S> +
                          (A
                          A(
                          AR

        Im Fall                                     und / '             + $             alb gi

                                      /            / + *
                                                  AR + $
                                                  A(R
                                                  AR

         B < f    U'Br.
        Betrachte unächst für $ ^ $ 0 einen beliebigen Index             ^     afü gi
        und ' U und es sind wei Fäll u unterscheiden



                                    +*                 -Jh^
          ii


                                    +*                   7$L
                                                [
        D r obe Fall olgt jeweils wegen chitt             ieben     iehungen geten uch
        im Fall $   $ 0 für a U e Indi
        Fü den v e e i b e n d e n Fall    p und            gu zunächt fp = fp    ^Ap +
             $ —                  fp + Rq §          Rq $ ei eine Zeienbas         t dbei
        Ä,     , so      fp       gilt. Fü         git d n n   j  0< $     /£          t/^
        und f r $ 0 0 git Lp             o < ^ = fp < 0 = ^ !
        Im Fall eine Spaltenbas betrachten wi 3 Fälle Fü              Pj
              ^        oo- Falls q         folgt $ 0       und          Desalb i f
                                            sowie f      R             chießlich folgt f
KAPIT                    REVIDIERTE                        SIMPEX-ORITHM


     q e              und                   und somit
     sowie             §
 e r m i n t i n in Schritt
 ie Interpretatin der Lösung bei T m i n t i o n in Schritt 3 hängt v n der gewählten
Bassdarstellung b; fü eine Zeienbasi        t das LP u n l ä s s i g wähend e fü eine
Spaltenbas u n b e c h n k t i t
     Zeilenbass: E t die U n ä s s i g k e i t des L                      eigen
     Betrachte für all F C B as LP


                                                t.    D
     mit D                 und          e R               s sei fü        {1       n}
                          falls                                                          falls
                                                            und
                          so                                                             so
     sowie
                               falls                                                     , falls
                                                          und
                             , so                                                        , so
            r jedes dieer LPs Z = ( { 1 , . , n}, {n + 1}) eine ässige Zeienbas und
     n + 1 eine verlette Ungeichung i , sind sie nach Satz 11 alle u n ä s s i g . Wei
     P{lz,zz)        C ^      {DFdF        folgt die Behuptung
     Spaltenbas
     In diesem Fall git e   beweien    ß das LP u n b e c h n k t ist d.h daß e
      u jedem M e R ein x    P=(AUS)        mit (cs)T       M gibt ei also ein
          R gegeben Sei x de asislösungvektor, also              und    = f Gi
     ()       M, so t nicht zu zeigen
     Andenfalls definiee A gemä
                                                                falls
                                                                falls i
                                                                sot
                                       -l
       i 7           und A                  ~         den Vektor x                 XA      gi

                     )T                                       = 7                 )T
                                                           =7   M


     Außerdem i t nach chritt 3 L <                                        und          nicht      n de   as
      bhängen was den ewei beendet
2   DI       R    U     R       I   T


    Dieser A g o t h m u s ist nicht vollständig von de g e ä h e n Bassdarstllung un
  bhängig. In chritt 2 geht ie noch in die Definition von $ ein und in Schritt 5 wird ie
zu Aktualisierung de Vektoren L, U l und u benötigt. In allen anden chritten tritt sie
jedoch nicht mehr auf Dies umfßt insbesondere die f verschiedene Implementierungen
variiebaren Schitte, n m i c h das Pricing und den Quotiententest Bei SoPlex w i d die
so ausgenut        aß jede Implementierung eines Pricing- ode Quotiententest-Verfhren
für beide Basisdarstellungen funktioniet und somit gleich fü wei lorithmen je einen
primalen und einen dualen, b e e i t t e h t
    Was die Übersichtichkeit von Algorithmu 5 beeinträchtigt, ist die Definition v      $
und die ugehörige Fallunterscheidung in Schritt 5 Wie im obigen Beweis geeigt, ann
dieser all nur fü eine Spatenbasis, also bei einem primalen Algorithmus eintreten. Hie
kann e nämlich vorkommen daß eine Variabe von i h r aktuellen chranke entfrnt wer-
den soll s aber gerade wiede diese Varable i die als rste auf i h e zweite Schranke trifft
Die betreffende Varible wird also nur von ih     einen chranke uf ih        ndee geet
  ähend die B a s s m i x unverändet beibt


1.2.4.2   Enfernender Algorithmus

   w i d nun der entfernende Simplex-Algorithmu in den arstellungunabhängigen Gößen
au Definition 9 formuliet. Gemäß Tabell 11 handelt es sich im Fall eine Zeilenbas um
den primalen und im Fall einer Spaltenbas um den dualen A o r i t h m u

     ALGORITHMUS 6 (ENTFERNENDER S I M P E X - A L G O R I T H M U S )
     Sei B eine Basis zum LP ( 1 4 5 ) und e gelte (1.78). All            ößen    Defnition 9
      eien e n t p r e c e n d i n i t i i e r t

     Schritt 1    (Pricing):
                  Fll L                 terminiere:
                         x   t optimaer L ö u n g v e k t o r de LP
                  S o n t wähle p, mi fp > UBp oder fp < LBp

     Schritt 2: Setze
                A                    A~Bx und
                                      T
                                       '-A

                    ll            tenbas   etze:
                                   +               und      + ,    wenn fp > UBp und
                             0   = —               und    = —        ont
                    ll   Zeilenbass setze:
                           = —     und               , wenn fp >      , und
                                   und                  ont

     Schritt 3    (Quotiententet):
48                                      KAPIT                     REVIDERTE                      SIMPEX-RITHM


                                           ze
                                                 mit
                                    -%^-               9+ G argmin^2i . Ag                  0}

                                   %?^' mit 5                     argmin^gi : AÄ           0} und
                                 = m i n } .

                Fall                    etze:
                                                mit
                                    %2^.               9+ G a r g ^ f              : A& 0},
                                                 mit
                                    ^f">               5 e a           r   g   ^   .Aft     0}   und
                                 = m { 0 + 0 } .
                I       0 = ±o          termiere:
                         Das LP           unlässig o e r               unbschnk
                                                           fall
                                  ze

                und f> d e r r t                              ^

     Schritt 4: Fall q <£ B etze A /                               ^
      chritt        (Ute):
                                   h!       +0 A
                    9       -            g+        QAg
                Fall   G ß etze:
                           F =   ' A , mi B'i = i falls «                                 und
                       U   BUU     und     BU B        fall                                G £
                     B'U = BU B und        Buö
                Fall q^LB etze:
                                                 fp)/p
                                                 Z + ^ A Z + CÄ
                                                  {B'),           mit
                                                falls i            upd
                             *                    alls «
                                                 falls z

                        w                       dnung in d e Me                                        ef
                        er

                A u a r e               e Ve

     Schritt 6: G e e z            chtt 1


     SATZ 27 (PARTIELLE KORREKTHEIT VON A L G R I T H M U S 6
     Algorithmus 6 arbeitet partiell korrekt.
2                  GRUDALORITHME


    WEI


1. Bei Termiieru             n Schritt 1 folt die B e t u           us    tz 25

2 Es wird n n gezeigt, d ß £             n Schritt 6 e i e B s i s mit Vetore               h! ist für
  die wieder 178 ilt
         ß B e i e Basis ist, folgt für q £ B a a l o zum Beweis n Satz 26. Für
      beachte man zunächst, daß q Bp denn es gilt Ag^ =          AB    e^A~^B      ej
      Ferner ist in diesem Fall — oo < lq ^            so d      Bu B folt     mit ist
         eine Basis d B e i e Basis ist
          n t s p r e c h d wie im Beweis von S t z 26 fol      ch S t z 5, d     die Vetore
               h! zu ' gehören.
      Daß n Schritt 6 die U l e i c h          V < ' < v! gilt s i e t ma für eine Z e i l e s i s wie
      folt D    diesem F l l                      = u ilt für lle i für 0A#, > 0:

                                  /            A   f    9i + ^ ^ A f t = u
                                                        y%

           d für ÖA^ < 0

                                  : =   ft +   A f t ^,^A f t
                                                         9%

      Für ei Spltenbasis wird zunächst lp bzw. up n Schritt gemäß der zu erwartende
        eue Basis      für den Fall q 0 B itilisiert Daher ann in Schritt 6 der Fall £ B
      nicht eintreten. Mit diesen S c h n k  / und    elte wieder die obigen Bezieungen
      für alle       Schließlich ist        ^^-Ag = < d u = l = 4 so daß            esmt
      V< '<         ilt

3. Zuletzt wird die Termination in Schritt 3 b d e l t , w o e i wieder zwisch                  eide
   Bsisdarstellu      unterschieden werden mu

             Zeilenbasis:      LP ist unbeschrnkt
             Es ist zu z e i , daß es für jede Z a l M G E einen V e t o r x G             VlzAZu
              ibt mit cx      M. Gilt dies bereits für den asislösusvektor                    , so ist
               chts zu z e i . Andernflls sei x = x + 9Ah, mit             ~T~^h              mit ist
                     T
             c = c x + 9A                 1< M        nach Schritt 3 ilt
             Spaltenbasis: Das L ist u z u l s s i
             Betrachte zu d e r s e l n Basis B    (P,Q das Zeilen-LP ( 1 7 ) . Alle dazu
             gehöreden G r ß e n       rkiere wir mit dem Exponent . . z , w ä r e n d wir die
             Grö     zum Splten-        mit s kennzeichn. N c h den Definition 7 8 u
TEL                                                          P L E H M E


      lt         f o e          Zummehä



                                                                               Is
                                                                               L




                                                                     Us
                                                   lz                Ls


   emna gilt für die Zeilebasis       < gq <            7     d smit k      ie f
Algoritmus 5 verwendet werden. esweiteren gilt g = _/jf > UQ                 UQ
bzw. g^ = f < LQ = I je ach F l l in Schritt 1 vo Algoritmus 6 omit
eignet sich q = Qz als eintretender I d e x von Algoritmus 5. Wenn wir och
—Agp1 Af zeigen, folgt mit den o e r e n Beziehungen, daß Algorithmus 5 in
Schritt 3 terminiert, da dies auch A l o r i t m u s 6 tut. Nach Satz 26 bedeuted
dies aber die Uzulässikeit des L s u d , da Zeilen- nd Spalten-LP äquivle
s i d , die B e u p t u n g
Es m ß also och A / ) = A% • [Ap] L~ev                 ^Q1           Ag     ezei
werde Wir weisen die d z u ä q u i v l e t e Bezie

                                                           (^S                           (A                                        i8i
     ch          zu erechn           wir      ch e e i e t e r                 ermuttio              mit 150)

                                           ÄQ2-nPl               0                           Pl
                                                           -Tll
                                                            1
                                                 -nPi                    J                  -nP1          -n
                                                 -n                                                                                182
                                                                          -n

Ferer            ilt für              {A~}                ch 151

                                            Q2_n          q2_n                      _n             _n             Q2_n
                                                                                                                                   183

Nu          s i d zwei F l l e ZU           nterscheide                   Flls                               fol               -n
                 es           -n                                                     mit ist                 (A
       -n          —n           —n     -nQi                P                        , d.                8   wu                wie
                           ll                        is     f                        T
                                                                     -n               —n wo                  -n               -n
 T
             '                       mit ilt                                                            T     '
                   -n       f                                                                                            Pl         -n
                                                                                                              Q2—n
      -n                                             d     Bewe
3     TABITA        DE           PLEVERF

       r Beweis zu    all der T e m i n i o in Schritt 3 f r e   S p a l t e a s i s basier
der Dualitätsbeziehung zwischen beiden      sisdarstellungen und eide Alorithmustyen
Auch der Fall einer Zeilenasis hätte so bewiese werden können          azu würde m die
Bedeutung von Zeilen- d Spalten-LP vertauschn, und es müßte n c h der F l l 6 = 9o
ausgeschlossen werden. er direkte Beweis schie da einfacher, zum              hnliche Beweise
 ereits vorestellt wurde



1.       S t a b i t ä t des Siplex-Verfahrens
Die A u f e umerischer Agorithmen ist die Berechnung e i e r Abbildug W1 —• Rm       >
Bei der Implementierung auf realen Comutern ist man stets mit dem P r o l e m edlicher
Genauigkeit konfrontiert Da ein Rechner nur ein Gitter von endlich viele      ahlenwerte
darstellen kann wird jede reelle Z l durch die nächstliegende Z a l i diesem Gitter appro
ximiert. Also repräsentiert jede im Comuter dargestellte Gleitkommazah ei Intervll und
ist somit a priori f e h l e r f t e t er reltive Feler eutiger 6BitGleitkommaaritmetik
liegt in der Größeord              vo   ~16
    Ein numerischer Algorithmus e s t e t us einer Reihe von R e c h o p e r a t i o e bei de
sich Fehler akkumuliere könne Dies kann so ravierende Ausmaße n n e m e , da as
berechnete Resultat keine v e r n ü f t i e Aussage ü e r die zu lösende A u f b e mehr erlaubt
Auch der Simlex-Algorithmus leibt von diesem Problem ncht verschont. Desha wird
er i diesem      chnitt uf sei numerisch                  chften h untersucht
    In de    bschnitten 1.3.1 und 1.3.2 werden die Begriffe der Kondition eines numerischen
  roblems d der Stabilität eines numerischen Algorithmus e i g e f ü r t . Wir orientiere
 ns dabei an den Darstellunge in [34] und 39]. Anschließed wird in             schnitt 13.3 die
 telle im implex-Algorithmus aufezeigt, die umerische Schwierigkeite             sich birgt, un
worauf zu achte ist um eine I s t b i l i t ä t zu umehen. Schließlich werde in Abchnitt 1.3.4
drei verschiede        ilisieru      vorestellt u d diskutiert die für       lex imlementiert
wurde



1.3.      Kondition
Ein numerisches Problem r = f(e) esteht dari ei      Eingabevektor e £ l ™ uf einen Re
                  m
sultatvektor 6 E abzubilde. Nun kann der Egabevektor auf keiem Comuter exakt
dargestellt sodern nur durch Gleitkommazahle pproximiert werde. Also reräsentiert
jeder Gleitkommavektor    Wirklichkeit e i e U m g E von Eingabevektore, die Feh-
lermenge von e Der o m u t e r ist icht in der Lage, zwisch verschiede      Elemente
von zu unterscheide. aher ist es sinnvoll zu studieren wie E durch         bildet wird.
  ies wird vo dem Beriff der Kondition e i e s Prolems eschrie
TEL                                        P L E H M E


      D E I T O N    10 ( K O N D I T O N )
      Sei      ein numerisches roblem,                             l e e von                   und
                                                                        -x<
      f(     D    ist it der Bezeichnung              [X         sux,eX    ?j für
                                                                               NI

                                                       j§                                            18
      die Kondition des Problems f. Ist K ~ 1, so nennt ma das                           roblem ut kon-
      ditioniert für K >    nent ma es chlecht k o d i t i o i e r t                     nd für   =
       nsachgem gestellt
      Ferner definiere die K d i t i o        eier r e u l r e         atrix        al
                                          (A                     -i                                   8

Die K o i t i o n eines numerisch Prolems hängt somit nicht vo                            em e w l t e     Al
ritmus         sodern ist e i e E s c h f t des Problems s e l s t
    Wir betrachten die Kondition der Lösung vo linaren G l e i c h s s y s t e m e , d diese
für S i m l e x - A l o r i t m e vo z e t r l e r Bedeutu ist Schritte 2 u

      SATZ 28 (KONDITIO           E I E R REGULÄREN MATRIX)
      Für n G N sei b x, b,    Ab M A, Ä, AA           RnXn und A ncht singular
      derart daß A = A + AA b = b + Ab, und x = x + Ax, sowie Ax = b und
      Ax    b. Die Größen mit bezeichnen fehlerbehaftete Größen und die Werte A
      den Fehler Ferner sei e     4 ^ nd e(A         % ^ . Fall      (A) < ist
      gilt

                                                                           ))                        186
                                         T3ÄÄJ
BEWEIS:
Nach V o r u s s e t z u g gilt      AA                 +        d somit    = ||A _1 ( +
     AAx - AAA)               A'1]] • A       WA^W • AA • x + WA'1]] • AA • Ax We
 A"1!! • lAA|| = ü^- 1 !! • lUll • | | A A | A | | = «(A) (A) <        ilt (1 - K{A) e(A))Aa
   1
 A- !! • lA& + « ) c(A) • x D u s fol
                 (   =    | | / | |


                         1-(A           (A              |A|| • ||x||



                               <A
                                              MA           ))
                         1-     {A      {A
                                nr                         n man f r [X] auch e n a           Maß wä        Ma
3     TABITA           DE                PLEVERF


   tz 28 g t e i e A h ä t z u n g für den ehler des Resultats e{x durc den           ler der E
   bedaten e(A + e(b). Insbesodere ist für gut konditioierte Matrize mit (A) ~ 1 u
e(A) < 1, die Matrixkondition          ) eine gute Approximation für die        ditio der ösung
des lineare Gleichungssystems Ax           b denn nn ist e( < (A) (e(A)                 )). D die
  ondition K(A) ncht von der rechten Seite b            gt, repsentiert sie die Konditio für
 lle l i r e Gleichgssysteme mit der Matri              d e i e r e l i e e n rechten Seite


1.3.2      Stabilität
Bei der    plementierug e i e s Algoritmus zur Lösung e i e s numerischen Problems, wer
den im llemeinen Zwischenresultate berechnet, ei d e e n zusätzliche Feler auftrete
könn    Das bedeutet, d ß eine Imlementierung eines Alorithmus nicht e x k t die Abbil
dung / berechnet sodern eine etwas andere Abbildung / . Diese bildet nun e auf f = f(e)
statt uf r    f(e a . Wie dieser Feler zu ewerte ist, wird durch die Stabilität e i e s
Aloritmus eschrien
    Es ibt zwei A ä t z e zur Behandlu         der   bilität vo A l g o r i t m e , die Vorwärts
   d die Rückwärtsanalyse Wir beschnken uns ier uf den zweite Ansatz, der für die
 tabilitätsanlyse der LU-Faktorisierung zur Lösung liearer Gleichussysteme verwendet
wird. ie Grundidee dabei ist, de Feler des Alorithmus / durch einen erweiterten Fehler
der Eigabedate zu modellieren. Dabei repräsentiert e i e Implementierung des Algorith-
mus eine ganze Fmilie F vo      b b i l d u n g , mit E F s o s t wäre die           lementieru
nicht korrekt


      D E F I I T I O N 11 ( S T A B I I T Ä T )
      Sei f(e) ein numerisches roblem nd             eine Implementierung zur Lösung von
      f. etze E = {e : f(       f(                      F}      eiß s t i l , falls [ «
      und s t i l , falls [E   E]


1.3.3         nalyse der Simplex-Algorithme
   a bei der Defiitio e i e r B s i s nur azzahli Werte auftrete ist die          ndition des ro
blems "Löse ein P mit dem i m l e x - A l o r i t m u s " gerade die Kondition des Gleichung
systems der optimalen, zulässi          Basis3. ie numerisch stabile Lösung von dünnbesetzten
l i r e n Gleichungssystemen — und B s i s m t r i z e n s i d tyischerweise d n n e s e t z t wird
         chnitt 1 7 se       behadelt.
  3
     Dieses numerische Problem ist nicht äquivalent zu dem Problem "Löse ein LP" etwa mit einem
Innere-Punkte Verfahren Dies liegt daran daß der Simplex-Algorithmus stets noch andere Resultate
liefert, nämlich die Basi und alle damit usammenhängenden Vektoren auch wenn man sich n r den
      ngsvektor und den Zielfunktionswert asgeben läßt
TEL                     IDI                                     PLEITHME


        Laufe des Simlex-Algoitmus werde imme          e B a s i s m t r i z n e r i e r t mit
den jeweils Gleichungssysteme gelöst werde müsse Damit der SimpleAlgorithmus
nicht ufgrund explodierender numerischer Fehler zusammenbricht, muß darauf geachtet
werden, d ß alle uftretende Basismatrizen gut konditioniert leiben. Dazu untersuch
wir die     ditio vo     sismtrize   ch e i e m  sistusch      l atz 5

      SAZ   29
       ei D eine Basismatrix und D' = VD, mit V         I + ep{rT D~l                                                    j ) ; die
      Basismatrix nach einem Basistausch, bei dem die i-te Zeile durch                                                     ersetz
      wird. D     ist die ondition von D beschrnkt durch
                                                              rl                               -
                                     JV                                                            !
                                                                                                                           187
                            x
      wobei     ' = ~            p    ist

BEWEIS:
Nach 185 ist die                 ditio von D                                durch
                                                                                               1
                                                                              -  D ) -
                                                                                                                                     188
                                                       l l l _ 1 | | • IDIHID- 1 !! =
 s m u ß lso die            ditio vo                         eschätzt werde                        zu e d r f es der nverse

                                                                                                                                     1 8 9
                                          "             ^          %             "
                                      l
denn es ist m i t       t        ~

         yy-X                   eP            c              - |             -
                                Gp        &p&            ~V~"P           &&               Cp             6pt6   &p   ~     &£

                                          &p&            &            ^p^




Also s

                                                  su

                                                                   epr                             ep
                                                  
                                                  su               xep               su                 epr~1

                                                                 -l
3      TABITA        DE        PLEVERF



                 -1        su     _1



                           s u — - e   v   r             :Xe

                                                                           -1
                           su          -j—- su      pe         su   —epr
                                               -1



worus mit 188 die B e t u          folt
                                                                                      •
     ieser atz bt ledilich e i e o e r e Schrake für die K d i t i o der neuen  sis
  amit ist ncht esagt, aß die Konditio der Basismatrizen stetig          ächst.     ge
 immt aber die Stailität der versen (vg. A c h n i t t 1.73) steti ab, wenn       n sie
mithilfe der      tematrizen ^ erechnet. Desalb ist es uerläßlich die Inverse besser
die    -Zerlegung) nach e i e n p d t e s immer wieder neu zu berechne Wie i     chnitt
1 8 5 ezeit wird, ist dies ch us Geschwindigkeitsnde sinnvoll


1.3.4     Stabile Implementierunge
N c h Satz 29 müssen "kleie" Werte r vermieden werden. Dies leuchtet ch unmittelbar
e i , denn kleine Werte    können immer auch von umerischen Felern bei der Berech-
    ng von r resultiere. I diesem Fall k n n t e in mthematischer Genauigkeit r = 0 sei
was nach den Sätze 5 u        6 nicht e r l t ist. A e r  ch chon "kleie" Werte er
  umerisch Schwierikeite       sich
    Wird bei den Simplex-Algorithme (1)           der Vektor q mit der p t e      asis
                                                      1
zeile getauscht, so f r t dies zu dem Wert r = (q.Dp )^. Beim einfügnden Simlex
Algorithmus wird p und beim entferende wird q beim Quotiententest estimmt
thematisch gesehen, ist die Auswhl (bei Abwesenheit von Degeneriertheit) eindeutig be
stimmt Vom numerischen Standpunkt aus muß man sich jedoch Alternativen schaffen,
indem man die Optimalitäts oder Zulässigkeitsbedingun leicht relaxiert   ieser Grund-
 ednke wurde 1973 erstmls von P arris v o r e s c h e n
    Im folgenden werden drei Stabilisierungs-Strategien am Beispiel von Alorithmus 1 vor
gestellt; ihre Übertraung auf andere SimplexAlgoritmen ist offensichtlich ei dazu s > d
der Vektor der Schlupfvariablen. Er soll zu s = s + (dq — sq)/Asq As mit As = DDp1e
aktualisiert werden, so daß anschließend weiterin s' > d gilt Beim mathematischen Quo
tiententest erfolgt dies nach S t z 9 er

                                rg ma          ——-       SJ   < 0
                                                As,;
TEL               IDI                       PLEITHME


  Alle Varianen von stailisierten Quotiententst b e t i g e n einen Toleranzparameter 5
um den s seine Schanken d verletzen darf. Bei   lex eträgt der voreingestellter Wert



1. Ansatz („Textbook" Quotiententest)
Die einfachste Stabilisierung esteht darin, daß man zur A u s w l des nde q die Schan
ken d — statt d verwendet4

                                        {    d% — Si —
                                                                s <ü

  ie dee dabei ist, daß Indizes mit großem | S J eine größere C a n c e en, an die um
S erweiterten Schranken zu gelangen. Für den Update wird der Wert © = (dq — s)/Asq
wie gewohnt nach (1.23) ne S berechnet, damit s' auch zur neuen Basis gehört Dieser
Quotiententest sichert das Einhalten der Schranken    d — zu (vgl Abb. 16) E önnen
jedoch zweierlei robleme auftreten:

  1 Da 0 mit den originalen Schranken d geildet wird, können ivotSchritte geschehen,
    bei denen 0 < 0 ist, also ein Rückschritt bei der Lösung gemach wird. Dadurch wird
    ein Kreiseln als Folge von leichten Verbesserungen und Verschlechterungen öglich
      ieses Problem wird in Abchnitt 15 wieder aufgegriffen.

  2. Für alle i, für die (nach einigen Iterationen) Sj = di — S gilt, bietet auch dieser Quo-
     tiententest keine Vorzüge me g e g e n e r dem maematischen. ies tritt llerdings
     nicht so äufig auf

Trotz dieser Probleme ist dieser Quotiententest für numerisch unproblematische LPs gut
geeignet. Aufgrund des geringeren Rechenaufwands g e g e n e r den folgenden Anstzen
sollte er ihnen ei einfachen rolemen vorgezogen werden.


2. Ansatz (Harris Quotiententest)
Der von P. Harris vorgeschlagenen Quotiententest [60 besteht aus zwei asen. In der
ersten  ase wird ein maximaler Wert Qma    estimmt is zu dem s' > d —   lei:

                                             di — Si —
                             ma    ma                           si <0
                                                Asi
In der zweiten Phase wählt man unter llen ndizes i die zu einem                     ma    ren
dasjenige aus für das | S J mximal ist ( g l Abb. 16)

                       q = arg max l    si    -^——-            ma        <0              (1

         me       Gr                   gf                           8a        We
1.3. STABILITAT        DES       SIMPLEX-VERFAHRENS                                                     57




Abbildung 1.6: Stabilisierungen des Quotiententests. Das mathematische Verfahren nach (1.22) würde
die neue Basislösung auf den Kreis positionieren. Aufgrund des geringen Winkels der Stützhyperebenen an
diesem Schnittpunkt ist die zugehörige Basis jedoch schlecht konditioniert. Zur Stabilisierung werden daher
die um einen Betrag ö verschobenen Schranken betrachtet, die gepunktet und mit dunklerer Schraffur dar-
gestellt sind. Die Stabilisierung gemäß Ansatz 1 liefert den mit der Raute gekennzeichneten Schnittpunkt
als neue Basislösung, da in diesem die zugehörige verschobene Schranke als erste erreicht wird. Dieser
Schnittpunkt ist durch das Kreuz gekennzeichnet. Die Ansätze 2 und 3 wählen unter allen Schnittpunkten,
die vor dem Kreuz liegen, den numerisch stabilsten aus. Dieser ist durch das Dreieck markiert.



Dieses Verfahren ist offenbar das "stabilste", das mit der Idee der Toleranz S möglich
ist. Dennoch birgt auch dieses Verfahren dieselben Probleme wie das zuvor beschriebene.
Varianten des Quotiententests von Harris werden z.B. in MPSX und CPLEX eingesetzt
[12, 13].


3. Ansatz (SoPlex Quotiententest)
Es folgt eine Beschreibung des für SoPlex standardmäßig empfohlenen Verfahrens. Wie das
von Harris benötigt es auch zwei Phasen, wovon die zweite Phase mit der von Harris über-
einstimmt. Zur Bestimmung von Qmax wird jedoch erlaubt, daß sich die Schrankenüber-
schreitung um S verschärft. Setze also
                                    c _ j     5 , falls Si > di
                                     %
                                         Si — S sonst.
Damit wird Qmax bestimmt gemäß
                              „           f di — Si — 5i          1
                              Qmax = max t      —      : As» < 0 ^ .

Anschließend wird q gemäß (1.90) bestimmt.
TEL           IDI                        PLEITHME


    Dieses Verfahren schließt das zweite Problem aus. Das erste kann sich jedoch
verschärfen. Da nun über mehrere Pivot-Schritte die Verletzung von Schranken deutlich
größer als S werden kann, ist es auch möglich daß ein substantieller Rückschritt auftritt
Um dies zu vermeiden, wird für den Fall sq < dq die Schranke auf dq = sq geschiftet
Wie in Abschnitt 1.5 beschrieben wird, werden solche Shifts u.U. ohnehin zur Vermeidung
von Kreiseln vorgenommen. ort wird auch erklärt wie man dennoch zu einer Lösung des
ungesifteten L gelangt




1.                 hasen des S i p l e x - A l g o r i t h m u s
Um einen Simplex-Algorithmus starten zu können, bedarf es im Falle des primalen Algo
rithmus einer zulässigen und im Falle des dualen einer optimalen Basis. Es gibt verschiedene
Methoden solche Basen zu generieren, von denen nun einige für eine zulssige Spaltenasis
zu folgendem P vorgestellt werden:

                                     min
                                     st             b                                 (1
                                                    0

     ei gelte oB.d.A.      ; sonst kann man die Zeile mit —1 multilizieren.
   Generell unterscheidet man zwischen Ein- und Zwei-PhasenAlgorithmen. Bei in
PhasenAlgorithmen wird das LP so modifiziert daß eine zulässige Basis direkt angegeben
und aus der Lösung des modifizierten LPs eine Lösung des A u s g a n g s P s konstruiert wer
den kann. Für eine "geeignet große" Z l M bildet man das L

                              min
                              s.t
                                                           0                          (192
                                                           0.

Für dieses L ist die aus den Variablen s estehende Spaltenbasis zulässig da s = b >
gilt. M muß so groß gewählt werden, daß jede zulässige Basislösung von (191) einen
geringeren Zielfunktionswert aufweist als jede zulässige Basislösung von (192 für die ein
Si > 0 ist. Terminiert der Simplex-Algorithmus mit s = 0, so ist x eine optimale Lösung
von (191); andernfalls wurde die Unzulässigkeit des LPs nachgewiesen. Ein konkreter Wert
für M kann z B . über die Kodierungslänge von (1.91) theoretisch bestimmt werden. Die
Größe von M führt jedoch zu numerischen Schwierigkeiten, die dieses Verfahren für eine
praktische I l e m e n t i e r u n g e n ausschließen.
    Bei   raktischen Implementierungen werden deshalb ZweiPasen-Algorithmen einge
setzt       ei wird zunchst ein sog    a s e L P aufgestellt, für das eine zulässige Basis
DI             DE           P     L     E   T    H


direk agegeben weden kann. A l i e d                 wird a s d       g eine z i g e    Bis
für das Ausgangs-LP konstruiert
    In Lehrbchern findet man meistens einfache Varianten des P a s e - 1 - L s die zwar eine
numerisch stabile Imlementierung erlauben, jedoch eine hoh Itertionsza         edingen. er
einfachste Fall eines h a s e r o b l e m zu (191) ist das L
                                min
                                st
                                                                                       (193)
                                                              o
                                                              0.
Auch hier ist die Basis aus den Varialen s zulässig. Gilt für die optimale Basis-Lösung
von (193) s ^ 0, so ist das Ausgangs-LP unzulässig. Andernfalls ist die optimale Basis
von (193) eine zulässige Basis des zu (191) quivalenten L
                                 min
                                 st
                                                                                       (1
                                                              0.
Der Effizienznacteil dieses Verfahrens ist, daß einmal die Basis komplett ausget
werden muß, damit alle "künstlichen" Variablen s aus der Basis entfernt werden.
    Das composite Simplex-Verfahren arbeitet deshalb direkt auf den Varialen des
AusgangsLPs und modifiziert das LP dynamisch zur jeweils aktuellen Basis 00]. ei
S = {B,N) eine eliebige Basis von (191) Dann definiert man das zugehörige   ase
 r o l e m als
                            min c{BxB
                                           BxB         AN
                                                                                       (195
                                            xB

wobei c(B)i = —xBi für xBi < 0 und c(B)i = sonst ist. Dieses Verfahren h t sich ls ef
zient erwiesen und kommt in kommerziellen Imlementierungen zum Einsatz (zB. CPLEX
[16]). Trotzdem erscheint es noch verbesserungsbedürftig, denn dieses hase-1-Problem ist
ausschließlich mit Blic auf das Erreichen der Zulässigkeit konstruiert ercksichtigt aber
nicht die Zielfunktion.
    Bei SoPlex wird daher einen andere Strategie verfolgt, die auch in der Phase-1 die Ziel
funktion so gut wie möglich mitberücksichtigt. Außerdem werden wieder keine künstlichen
Varialen dem LP hinzugefügt. Es sei           (B,N) eine beliebige Basis von (191) Als
   a s e - P r o l e m wird das L
                              min         xB
                                       BxB           AN
                                                                                       (196)
                                         xB
TEL            IDI                       PLEITHME


v e r w e n d , wobe k = xBi ür xBi < 0 u d k = 0 s o s t ist ieses LP behält s m i t s v i e
von der truktur des AusgangsLPs bei, wie es die Basis S zuläßt. Außerdem wird die
Schrank / im Laufe der Phase-1 weiter hochgesetzt, sofern es die jeweilige Basis zuläßt
  adurch kommt es nicht selten vor, daß ein LP ereits nach der Phase 1 gelöst ist.
    Per Konstruktion ist S für das LP (196) zulässig, so daß der primale Simlex gestartet
werden kann. Terminiert er mit einer Optimallösung von (1.96) so ist die optimale Basis
für (1.91) immer noch dual zulässig, und es kann der duale Simplex gestartet werden.
Andernfalls ist mit (1.96) auch das Ausgangs-LP unbeschränkt. Entsprechend kann auch
ein Pse-1-Problem durch Manipulation der Zielfunktion konstruiert werden, für das die
  asis 5 dual zulässig ist. n diesem Fall wird zunchst der duale implex verwendet
   Eine Implementierung für allgemeine Basen gemäß Abschnitt 1.2 gestaltet sich be
sonders einfach. Es muß lediglich eine andere Initialisierung der S c h n k e n erfolgen und
zwischen eiden Algorithmustyen umgeschaltet werden.


1.5         reiseln u n d dessen V e r m e i d u n
Wenn der primale oder duale Algorithmus eine unendliche Folge degenerierter Pivot
Schritte durchführt, spricht man vom Kreiseln. Das ist die einzige öglichkeit dafür, daß
ein SimplexAlgorithmus nicht terminiert. ies sieht man wie folgt: Es gibt maximal Q)
verschiedene Basen zum LP (1.1). Bei jedem nicht degenerierten PivotSchritt ändert sich
der Zielfunktionswert des Basislösungsvektors streng monoton fallend für den primalen
und streng monoton steigend für den dualen Algorithmus emnach kann die alte Basis
nie wieder angenommen werden, so daß maximal ^) — 1 nicht degenerierte PivotSchritte
  öglich sind. amit ist folgender Satz bewiesen

      SATZ 30
             ei Simpex-Algorithmus          ht termiiert,   kreiselt er

      ie Vermeidung des Kreiseins ist somit eine wichtige Anforderung für die Brauchbarkeit
von Simplex-Algorithmen. In [26] wird das Kreiseln zwar als ein rares Phänomen beschrie
ben, das in den meisten Implementierungen aufgrund numerischer Feler nicht auftrete und
somit nicht berücksichtigt zu werden brauche Heute werden Simplex-Algorithmen jedoch
vielfach für kombinatorische Optimierungsroleme eingesetzt, ei denen die Nebenedin
gungsmatrix oft nur aus Werten 0, 1 und         besteht und das LP sowohl primal als auch
dual degeneriert ist Die dabei auftretenden Basismatrizen sind häufig so gut konditioniert
daß die egeneriertheit auch numerisch erhalten l e i t Desalb kann das Kreiselrolem
nicht m e r unercksichtigt leiben.
   Es gibt eine R e i e theoretischer Ansätze [17, 99, 9 103], die ü e r pezielle Pricing und
Quotiententest verfahren ein Kreiseln ausschließen. In praktischen Implementierungen wer-
den sie jedoch kaum eingesetzt. Ein Grund dafür ist daß eine strikte Verwendung solcher
1.5. KREISELN U         DESSE       VERMEIDU


Pivot-Verfaren in de Regel zu wesentlich mehr Iteratioen führt. Dies kann z B . d d u r c
umangen werden, daß, solange ein Fortschritt bei der Lösung erzielt wird, eine besse
re Pivo-Strategie verwendet und erst, wenn mehrere degenerierte Schritte nacheinander
a u s g e f r t worden sind, zeitweise auf eine Kreiselvermeidungsstrtegie umgeschaltet wird


    Ein anderer Grund, theoretische Kreiselvermeidungsverfaren nicht in praktischen Im
plementierungen einzuseztzen, ist, daß sie bei numerisch stabilen Implementierung nich
mehr anwendbar sind. Sie basieren meist daauf, daß die Basislösung während des Krei
seins unverändert bleibt Wie in Abschnitt 1.3 beschrieben wurde, trifft diese Voraussetzung
bei numerisch stabilen Implementierungen auch im degenerierten Fall nicht immer zu, da
eine leichte nzulässigkeit toleriert wird. Dadurch ist es möglich, daß ein "numerisches
Kreiseln" mit leicht variierenden Lösungsvektoren und schwankendem Zielfunktionswert
entsteht. Z.B. kann bei Algorithmus 1 eine Verschlechterung des Zielfunktionswertes auf
treten, wenn eine Variable di — 5 < Si < di die Basis verläßt. Dies kann durch sog Shifting
verindert werden, ei dem die Schrank di z.B. auf s erasetzt wird.
      as Shifting bildet die Grundlage für die Kreiselvermeidung von SoPlex, die nun anhand
von Algoritmus 1 eschrieben werden soll. Sie ähnelt der in [12] vorgeschlagenen M e t o d e
die bei MPSX zum Einsatz kam. Nach maxcycle Pivot-Schrtten ohne Fotschritt
beim nächsten PivotSchritt enen Fotschritt ezwungen, ndem fü alle i, mit s* di + 5
und Asi < 0, d e Schranke di auf di « s and(1005, 10005) gesiftet wid.                  i ist
  nd(1005, 10005) ein zufälli aus de Intevall (100,10005) gewälter Wert. Für den
  aameter maxcycle hat sch          We n de        rößenodung 1      e w h r (vgl A c h t t
  2.8).
        er Zwek de zufälligen W a l von di ist, d e e g e n e e t auch              zukünftige
PivotSchrtte aufzubechen. Andee Verfhren p e t u e n deshalb das gesamte LP, even
tuell soga gleich zu Beginn. ies eschent jedoch           e ungünstig, da so meist m h r
SimplexIteationen notwendig weden als ohne P t u b a t o n : Oft at man nämlich Gl
und der SimplexAlgorithmus v e ä ß t ene degeneriete cke o n e weiteres Zutun. Beim
g e s t t e n LP ist eine solche Ecke n eine Sch von Eken aufgebrochen, die der Simplex
Algoithmus nun einzeln travesieen muß. Entsprechend eicht es völli aus, wenn de
SimlexAlgoithmus eie optimale Basis findet           im g e s t t e n Fall st des zwangsläufig
auch e enzge und somit schwe            zu finden.
   Handelt es sich m e P h a s e 1 b l e , so ist das Shiften des LPs u n p r o l e m a t c h
handelt es sch doch n e n schon um ein LP mit v e ä n d e t e n Schranken. Andefalls muß
nach T e m i n i u n g mit de jeweils dualen Algoritmus fotgefahren weden. es w d so
lange t e t        s e n A l g o m u s au de unverändeten L t e m i n i t .
    Es g b t keinen Terminationsbeweis fü ine solche Kreiselvemeidungsstatege. In de
P x i s sind jedoch noch kene Fälle aufgeteten,           denen de A l g o t m u s ad nfintum
zwschen den       asen u s c h a l t e t , wel das LP imm weder verändet wude.        es kann
dadurch wete        chwet weden, ndem man d e Anza maxcycle d e g e n e t e Pivot
62                                        TEL 1. REIDIER                             PLEORITHME


Schrtte vo de       Stufte       jede         chalte      chsetzt.

  Ein weiter Vorteil von Kreiselvereidungsstategen mittels Shifng gegen           dem
Umschalten auf theoretisch S t a t e g e n st, daß d gewählte ing-Strateg beibehalten
weden kann. Außede         d en s t k e        odulater Seentwu           öglcht.

     N e e n den Arbiten zu             eoetischen Kreiselvermeidung g b t es kau Liteatur übe
p r a k t a b l e Strategien. I         b e s c h r e n Gll Murray, Sauders und W r g t eine Strate
   e, bei der de T o l e r a n z a r a e t e r 5 beim Harrs-Quotiententest mi jedem PivotSchrtt
hochgesetzt w d . Wenn anscheßend in de zweten                    ase des Quotententests kein Fort
schritt e i e l t wid, siften s e die Schranke um den aktuellen                , und da 5 öße st
als n de vorigen I t e a t o n , w d so e n Fotschrtt ezwungen.

    Zwei Nachtele sind b i diesem Vefahren gegen                dem zuvor beschrbenen zu ver
zechnen. Zum enen wchst de Toleanzparamete S mit jede Iteation.                            es entsprcht
ab einer glechzeitigen R e l a r u n g aer Schranken, auch wenn des icht notwendg wäre.
 nsbesondee st nach T e m i u n g d e Lösung bis auf das geade aktuelle zulässig, und
 n aller Regel muß ene w e t e e P a s e angeschlossen werden. Zum anderen hren degene
rierte Pivot-Schritte a. w e t e e V a b l e n n die um 5 relaxierte Schranke heran. Dadurch
schränkt man die W a l f r e i e i t b i m n u m e c h e n Quotententest wiede unnötig ein. Ins
besondee ist die Erhöhung von essentiell fü ine numerisch stabile Impleentierung. I
 57] wird scheßlich eine Gegeneispiel angegeben,               das diese K r e i s e l v e r d u n g nch
funktioniert. Di Konstukton eines solchen Gegenbispiels s c h t e t jedoch r r n d o m i
    te Ansätze w e s       r S l e x zugundegelegt wuden.




1.6           ricg-Straten

Be de Aufstellung der S i m l e A l g o i m e n wude im jeweiligen Pricing-Schritt ledg-
 ch e Bedingung fü w ä b a r e ndizes genannt. S m i t snd vele Varianten von Algoith-
  en öglch, die sch in der konketen Auswal, der sog. Pricng-Strategie, unterscheiden.
      i ist geade sie von entschidende Bedeutung ür die Anzahl von Iteratonen und
somi für di Effizenz von i m p l e x A l g o r e n . Es ist jedoch keine Strateg ekannt
    für alle L P P o l e e a   ffizentesten a t e t .    eshal weden nun ene       e von
     ng-Srategen vogestellt.

   Der nfchheit h a l e r gehen w dazu au das L 1.1 und die Algorithmen 1 und
zurück. Die Eweiterung au e A l g o e n mit allgemener Basisdastellung ist prblem
los öglich, fordet jedoch ine k o t e e Notaton       e d e zugundelegenden deen
nu v e c h l e n w r d e .
1.6.       R    I   C    G    I


1.6.           o s t - V l a t i o n Picing
Dies ist das V e h r e n das usprünglch von Dantz     geschlagen wude. Beim e n t r
nenden A l g o m u s
                                 p=    mm{f      < 0}
und beim       fügenden A l g o h m u s

                                  q=      m i n j ^ - di

gewählt. F einen dualen A l g o h m u s bedeutet dies, daß d am strksten     letzte U
glechung f den PivotSchrtt heangezogen           d. Beim primalen hingegen wird der In
dex mit den edigsten e d u z t e n osten g e l t . Desalb st deses V e h r e n auch als
 eduedcost P n g b n n t .


1.6.2           tial Picing
Das patial P r n g stammt aus der Ze         n der C m p u t e nur übe wenge ilobyte
an auptspechr vefügten. Um dennoch größee P o b l e e lösen zu können, wude ei
sog. o u t f c n s a t z verfolgt. Dabei wird jewels nur       Tel der Vektoen der Be
   ngungsmatr im Hauptspeche gealten. Wenn deses T L               gelöst st weden d e
  ichtbaschen V e t o e n durch ande aus dem Massenspecher setzt. Des w i d so lange
 teiert    s das gesmte L       ausgepriced" und das Gesmt-L gelöst ist. Als P n g
    ateg              eTLPs        eist das ostvolated P n g engesetzt.
     Auch o n e Hauptspeichezwänge at dese Pricng-Stategie ihre Bedeutung zur R
duktion des echenauwands. tatt tatsächch nen Teil des Ps auszulagern, beschrän
man das Pricing übe ene gewsse Anzah von t e a t o n e n auf ne Temenge der Ncht
b a s s v e t o e n . Dementspchend muß auch der P n g V e t o r nu fü diese T e e n g e von
 ndizes beechnet weden, wodurch de Rechenaufwand mitunte stark reduziert weden
kann. nsbesonde für LPs mit m             führt des zu erheblchen Beschleungungen.
    Das partial P i n g kann nur für infügende Algorhmen eingesetzt werden da fü ent
   nende A l g o r i t e n stets der gesamte Vektor Ag berchnet werden muß. Damit gewinnt
 ie Wamöglichkeit zwischen ener zelenwesen und ene spaltenweisen Dastellung de
Bass zusätzlich an Bedeutung, denn s e emöglcht es auch den dualen als efügenden
A l g o m u s zu        wenden und dadurch das p a e l l e P n g enzusetzen.


1.6.3          ultiple Picing
Auch das multiple P r n g zelt auf eine R e d u z u n g des Rechnenauwandes fü die Matri
V e t o r u l t p l i k a t o n b i m infügenden A l g o h m u s . Es bas auf de Beobachtung daß
e n beim ricng w ä l b a r Index mi                        hrchnlchk      auch n de    chsten te
 aton           lba blebt.
KAPITEL 1. REVIDIERTE                         SPLEX-LGORITHMEN

        unchst w i d ein Satz von wählbaen ndizes sog. Kanddaten bestimmt. Von ihnen
wir eine (meist nach de        ostviolated P n g - S t a t e g e ) fü den nchsten       votSchrtt
benutzt. In den folgenden PivotSchrtten w i d das Priing au die z u o r gewählte Kandi
d a t e n e n g e beschränt. Des eduz       ede den R e c h e n a u a n d zu B e c h n u n g von g.


1.6.4            rtial     ultiple           ricing
Eine wichtige P i c n g S t a t e g e e b t sich aus der Kobination de beden zuletzt genann
ten Metoden. Es ist das p a a l multple P i c n g , bei dem zu Auswal de Kanddaten
menge nu ein Teil de Matrix benutzt wird. Es st dabei esondes ünst wenn man be
jedem P r n g S c h r i t t die Kandidatenmenge wie folgt neu aufbaut. an nimmt alle noch
wählbaen Indizes de alten Kanddatenmenge und durchsucht einen Teil der R e s t a t
nach w e t e e n w l b a e n ndzes. Dese weden de          anddatenmenge zugefügt.
   Mit desem Verfahren       d schnelle als beim multiple P i c n g die gesamte Nebenb
dingungsatrix durchsuch was n de Regel zu ene g e n g e e n t e a t o n s z a l ührt. De
Rechenaufwand s c h n t etwas        als beim p a i a l ode multiple P n g zu sein, was
man jedoch durch npassung de         öße de   a n d d a t e n e n g e und de le   pens
 en kann.


1.6.5     Steepestedg                   ricing
Das steepestedge P i c i n g V e h r e n begründet sch a besten aus der geoetrischen
t e e t a t o n des P n g s b i m imalen implex gl. Abb. 1.7). B e t c h t e   das

                                              mi         cTx
                                                                                                        (i.i)
                                                                    d,

den pimalen A l g o u s in Zeilendastellung (Algorithmus 1). S S         (P Q) eine primal
                                                                       1
zulässige Bass. Beim r i n g soll aus mehreen Richtungen x^        Dp e entlang denen
  ne Verbesserung öglich w ä e , ine öglchst günstige gewhlt werden. D e steepestedge
Picing-Stategie     lt diejenge aus     e im Sinne des e l f u n o n s t o        stelsten
 st. Dazu weden d e W e t e ff = | | c | | durch
                                 J l     l              ll



                                               o = I                                                   (1.97
                                                   l   — I


getelt und unte          esen     len        d das           axim    ausgewlt

                                                               P           1                           (1.98
                                                       ax      — fi < 0
             2
          f
Die W t e — nd p o p o o n a l zu             Quadrat des Cosinus des W k e l s z w c h              Zielfk-
            Pi
 onsto       und     öglch      Fotschrttschtung                         und geben somit d   t e t    an.
1.6.      R I C T E G I E N




Abbildung 1.7: Das steepest-edge-Pricing rhindert, daß aufgrund unterschiedlicher Normierungen de
Richtungsvektoren A#W eine weniger steile Richtung gewählt wird. Diese Situation ist in der Abbildung
dargestellt. Obwohl Ax^ einen geringeren inkel zum Zielfunktionsvektor —c aufweist als AxW s m c i di e
zugehörigen reduzierten Kosten höher




      e B e c h u g de     erte pi ach (1.97) e d e t e e i n h h e R e c h n a w a d .
jeden W r t müßte ein l i a r e s Glechungssystem zur Bestimmng        n AxW gelöst un
darüberhnaus ein Skaarprodut b c h n e t weden. Aus dese Grund galt d s steepest
edge P n g ang Zet als zu aufwendg obwol bekannt war daß es zu e e               rheblche
Redu       de      ahl der votSchritte fhren kann       st als Goldfarb u Red U p a t e
Foel         die Göße pi m u l t e n , wude es zu e         rakkable V e f a h r n [    7]

   Es weden nu die UpdateFomel                  pi f de    i m l e n Simplex in Z l e d a r s t e l l u n g
aufgestellt. Dese Darstellung ubt e             essees e o e t c h e s Vestän          ls de n [2]
beschrttee W

    ei Z         Q) d              ass nach e i m Pvot-Schrtt mi Indzes p u d q. Nach (1.1
st die neue B                       p = VP
                                     >          mit V = I epqD^1    — £) u nach (1.89) lt
V-1 = I       e
                *u                p              x^      Z    ann glt mi   'x®      ^
T
    =       p}:


                                   1
           'j(            ~   -

                        -]fß
                                                             x®    f • x^              i
                              p]       e   ££             f    x^                   sost.
66                                KAPITEL 1. REVIERTE                    SPLEX-LGORTHMEN

 a r u s e b t sch


                                                 -^                                           (1-99)


          ^   mi      x =    x^

                                    (
                                                                                             L100)
                                    fH      | ^ -     i    +(|)

Also muß r das A t u a e n der Multplkatoen pi bei          asistausch                     zustzli-
ches Gleichngssyste nmlich £ = AxTp     gelöst w e d e . Fü den all                              r
   de A l m u s         x durch Ah     durch A / esetzt.
           e entsprechede F o e l         de       ü d e      A l t m u s ufzustellen, betrach
te       wiede den Spezlfall (1.2) u g             zu             e Fo   1.30) de
   amit kann         x b e c h n e t wede  ls   XN ep                      ~ß
   r £ glt          ^ 1                         N.

     ü de    n f ü d e A l g o h m u s mi S p a l t e n b i s bezechne q den  tetede   dp
de    us de  asi u s t e t e d e n Index. Diese e t s p r c h      im tfernede    Algmus
mi       lenbs q                  Bp    q. Deshalb st Dq            ßp woraus     mi 1.30)
       A      AhT u
     4 7B                %         ep7ß                folt-
      r ie      {q   st deshalb nach 1.100)


                             P!         »   *&+(%;)                                          1 W

                                        ft2|*^, ££



                                                                                             1.1


De zustzliche Rechaufwand für steepest-ed                 P i i g beim n f g e d e n Simplex ist
 lso d e ösung  es Glechngssyste     r £                  d d e B e c h n n g de S k a a r o d u t e
       sorn A      st.
     b w o l d e U p a t e F o e l wege der besse     eometisch      schauung anhan de
 rimale Algoi                     kelt wuden,   nn    e ebso        e dule    A l g m e
  ngesetzt w e d e . Des g l t uch        e Algoritmen mi l l e i e B s . D b e i müsse
 ie W e t e pi jedoch ich a k t u l i e werden, wenn k          sstusch   fol   wel e
Varble          hr        na      hr ande Schrank       chob wude.
1.6.                    RICTEGIEN


1.6.                          rici

Beim Devex    cing handelt es sich u eine Appoximat     des steepest-ede P r n g
be de ei      ichst     inge Rechnaufwand anällt, indem    Multplkato    pi ch
exakt bestimm w e d e . Es wude     P. Harr  rgeschag      ]
   ü de e f ü g d e              A l m u s                            anstelle        1.1   f o l d e Upate
Foel   wedet5


                                                     fH + ( ! £ )      W                                1-1

ür i q kann weite 1.12)         w e d e t weden. Man erhält (1.13) durch enfaches W g -
 sse des Smmanden n (1.101 de               ösung des zusätzlche G l e c h n g s s y s t e s u
 e B e c h n u n g der Skalarpodute e o d e r n wüde. E n t s p c h d e r h l t    an        de
    r n d e n Simplex r i ^ p d e U p t e F o e l


                                                         Pi + (j                                        1-1

wobi f r i =            ede     1.99         w e d e t wid.
   Die U p d t e F o e l n des Devex P r i n g s führ                      zu     ß die Gewichte pi stetig an-
wachsen. m dieses Wachstum zu begrenzen, wede                              sie auf 1 zuckgesetzt, sobald e
Gewcht e n Schwellwe ü b e c h r t e t . Es hat sch                        n Schwellwe         06 bewährt.


1.6.7             igh                ricin

W e das steepestede ode Devex Picing            utzt a c h da weighted P c i n g r ä f e r z p a -
r a e t e pi fü    e PivotAuswah m G e g s a t z zu de erstgnannten werde iese s t c h
beim art des i m p l e x A l g m u s festgesetzt u ncht b jeder SimplexItera                  ak-
t u l i s t . olch      Verfahren eignet sich, wenn man über ne gute H e u s t i k v e r g
die I n f m a o e       zu lieern kann, welche Bedingnge bei de optimlen Lösung mi
Gleichht efüllt se wird. Es ö n n n ber a c h Gewchte r allgeeine Ps onstuie
weden, e des           Abschntt 1.8.    ch        Kost             r S a r t b s beschrebe
    d.
          arris               spglic


                                             i   =   j    ,   [^-zM    q



vorgeschlagen. Diese Approximation e r s c i n je                           als (11          sic              st
mit SoPlex als die schlechtere erwiesen.
68                                 KAPITEL 1. REVIERTE                     SPLEX-LGORITHMEN

1.6.8      Hybrid Prici
Beim hybriden Pricing vrsucht man, a h ä n g g vom zu lsende LP, der B a s r s t e l l u n g
   d des Simplex-Typs den eweils b e t e Price    t a t i c h einusetzen. In eine vorläuf
gen Implementierung für SoPl wi beim e n t e r n d e Algorithmus das s t e e e s t e d g
Pricing eingesetzt Beim e i n f ü d e   impl w i d da       ti multipl Pricing v w e d e t
wenn die Dimension de          smatrix ei       n die A         der sonstig    eken i
andenfalls kommt d s D v e x Pricing m Einstz. Besse äre j e d c h ei            fan,
die S t t e i e u s h  namich a n a n von Lafzeitdate          urcht



1.7       Lösung linearer Gleichungssysteme mit der Basis-
           atrix
Dantzig formulierte den impex-Algorithmus mit sog. T a b a u s . In d i e r F u l i e r u n g
b e d r f es keine expliziten Lösung von Gleichungssystemen mit der        i i x , denn
ein Simplex-Tabau besteht i        aus dem Produkt us der Inversn de                 ix und
der gesamten       enbedingungatrix. Nach jedem B i s t u s c h w i d de                 mte
Simpex-Tab          urch Multiplition mit V~x nach (189        t l i e t
   Diees Vogehen h t zwei Nachteie g e n ü r dem hie vorgestellten reidierte Sim-
plex. Zum einen akkumuliere sich m e c h e Fehle die uch dann nicht behob we
den, wenn sich die Kondition de    asismatrix wieder v e s s e r t . Zu a n d e n b ö t i g t
der Simpex-Algoithmus      T a b f o m w e t l i c h meh Rechenopetion                  pei
chetz
     Für de revidierten impex-Algorithmus stellt sich ls                Probem wie die Lösung
von Gleichungssystemen m              ten vorgenommen wede           ollte Basismatizen beim
  implex-Agoithmus enthalten typicherweie e i e n großen Przentsatz von E h e i t k -
t o n . Diese       mmen bei e i e r s t e n w e i n arstellung von chlupfvariab        u  bei
ei      Zeienba      von den Schanke der Vaablen. Die ande               S t e n ode Zei  der
B a s i m a i x sin     alten ode Zeilen der N e b e n b e d i n g n g i x     d enthte   mit
  a. a c h nur we       von Null verschiede Eemente NN
     Bmatizen       d als ia. nicht symmetrisch       d dünnbesetzt was so vie heißt wie
   s l h n ich us   schwidigkeitsgrden, beim g e b e n e n numerchen Poblem nur die
NNEs der Matrix statt ein zweidimesional Feldes u speichern" (dichtesetzt. Offen
ba andet es sich hiebei m k e i e s t n g e Defiition. Vielmeh hängt die D n n b s e t z t h e i t
ei      M i x von de e w t e R e c h c h i t e u r 6     d den ewhlte       tepe              ur
     6
    Ein Vektor- oder Parallelrechner kann linear abgespeicherte Daten wesentlich schneller berechnen als
bei einem unstrukturierten Zugriff auf den Speicher. Dementsprechend kann für derartige Architekturen
ein Algorithmus auf dichten Daten effizienter ausgeführt werden als ein Algorithmus der auf dünnen Daten
operiert und weniger Operationen ausführt
17. LÖSU         LINEARER GLEICHUNGSSYSTEME                      MIT DER BASISMATRIX                 69


R e p r ä s t a t i o n d r N N s e i n r M i x ab. eute     f g t e l l t e LPs s   f a t imme      nn
    etzt nabängig von der R e c h c h i t e t u r
    Es g t zwei Anätze zur u m e c h e n ösung von linearn Gleichungssystemen n i c h
direkte u d iterativ ö . Wie i Abschitt 7 aufgezeit wird, rscheien letzte
den rste Blick vieverspreched scheiden jedoch aus da ihre Konvergen nicht g n ü g n d
abgsichert werden kann. Dehalb werden bei Impemetierung des Simpex-Algorithmus
direkte M e t h d e eingeetzt. ie werden in den A b c h i t t e n 1 . 2 und 17. diskutiet. In
letzteem wird auch die für SoPlex impementierte ersion ein LU-erlegung de Ba-
        ix beschiebn. In A b c h i t t 17.4 w i d die Lsung von Gleichngssystemen ei
ggebene L U - e r l g u n g de        ix b e c h i e b n . Aus Effiziengrnde          t e angezeigt
eine L U - Z r l e n g der B s i s i x für ein          lge von P i v o t c h i t t e     tzen. Zwei
Methden, die           t n , wede         chitt         5 votell


1.7            rative Lös
Itertive Löse für l e a r e      eichungssysteme        bess i t e t i v (daher der N m e eine
Approximation de ö s u n g s v r s bis die ewünschte Gnauigkeit erreicht wird. In jede
I t e t i o n geht meist ur die Matrix der Vektor der rechten eite d die ktulle Appr
ximtion de Lösungsvektrs ein, wdurch der Speicheed                     im G a t z z d i k t e
L n für d n n b e t z t e M a i z e n b c h ä n k t bleib
      ür die Impementierung von implex-Agorithmen erscheint ein weiteer P u n t vor-
teihaft. G i t es etwa beim duaen Simplex noch „ehr sark" vrletzte Ungeichungen,
    erknnt man diee uch wenn die Genaukeit des k t u l l n B s l ö s u n g k t o r s noch
     ng ist. Mit Fotschreiten der Lösung des LPs kann die G n a k e i t der L ö s u n g s k
     n angepaßt werden. Dabei kann de Lösungsvektor der vor                   implex-Iteration ls
     t w e t für die i t e t i v e Lösung de Geichngssystems für den neu           asslsungsk
to         tzt weden.                 iete iteative L e     ssere Ansätze zur      llelierung als
die       wärts- u d                rtssubstittion, da ihnen w e n i r Sequetialität i h ä n t ist
[83 8, 66]. G r u d genu also, die A n w e b a r k e i t i t e t i e r Geichungssystemsl       für
den impex-Agoithmus u untersuchen. Dazu be w r ein kurze E i n f r u n g                       die
M t e i e ür ei               fassde            blick sei z  a f [ 4 6]    wien.
    E gibt zwei Anätze für iteativ         eichngssystem              Klssche        tetionfa
b a i e n af e i r Fixpktitetion

                     xfc   = Gxk + gmit                    ~lB                 ~lb                (110

wobei Q~l ein (regulär Appoximation von B~l ist. Offenba                 nach Konv       x
                                                                               1
Xfc    Xk die Lösung des Gleichngssystem denn aus x = Gx + g =                ~ (B      folg
Bx = b. Verschiedene I t e r a t i o n s v f a e n nterscheide ich in der W     von Q chon
beim einfache F l l symmetrche positiv d e i t e r M i z e n B k o n v r g i e n d e r t i g e
 tetionfa          j e d c h nur falls der S p e k t l r d i u s              mit cheide ie
KATEL        1. REIERTE                   MPLEX-ALGORITHMEN


für die A n w e g n SimplexAlgoithme                 us d e n für l l m e e              B   i   z
kei Konv         g a a n t i e t weden. 7
    Modeere teationsfahr                      nd Varianten des V f a n s der konjgierten G d i e
ten. Ihr V t e i l i t , aß für b e l i e g e s y m m e t c h p o i t i definite Matize die Konvrgen
nachgewie         weden kann. Die o n v c h w i d i k e i t hängt j e d c h von der Kondi
tion de          ix B ab


                      xk           xk)<       ^3ß                    X   o   x   0   )               (110
                                                          lJ
Erweiterungen von Konugierte-Gdienten-Methoden a                         s y m m e t c h e M i z e n ba
 i e n a der S y m m e t i e r u n g de Gleichngssystem

                                                    = B                                              (110

Die     rschechtet j e d c h die K o n v g c h w i d i k e i t , denn
     E n e erbessrung der Konvegenzgeschwindikeit von K o n i e t e n - G r a d i e n t e M e
t h d e n beteht in der sog. Vorkonditionierung. D       w i d die M r i x B von beiden Sei
ten mit e i r Vorkonditionierungsmatrix C zw              ultiplizie Die Matrix C w i d s
  ewählt, d ß mit ih die Geichungssysteme direkt ösbar s , und die Kondition von
   BCT klein t Für Gleichungssysteme die aufgrud i h r r Hrkunft (etw der Lösung
partieller Dierentialgleichungn) eine vohersagbare Struktur a b n , önn           wirkung
volle poblempezifische       rkonditionie    n t w i c t weden.
   Für den      satz in e i e m llgemeinen Simpex-Agoithmus bed                           es jedoch eines
 rläßlichen allemeingültig       orkonditioniers Die  ntsäche                            r einer Approxi
mation ei   dirkte L ö r s      amit llte         de  axi ew                             ein vollständi
dite          de                ten.
    Auch wenn iterative Löse für Simpex-Algoithmen ausscheiden, könnten sie den-
noch für die Lineare Pogammierung von Nutzen sein. Der H a p t f w a n d innre-Punkte
V f a h e n beteht i de ösung von Gleichngssystemen mit de M i x ATA, wobei A die
N e b e n b e d i n g u n g t i x ezeichet Diee ist         nbar symmetrisch und e bleibt zu unte
suchen, ob damit nügend Sruktur vorhanden i                     m ein geeigneten Vorkonditionierer
   d e f i i e n . Ein mögicher Vorteil bei de Anwendung iteratier öser läge i de                sse
  n P l l e l i s i e b a r k e i t und in der öglichkeit, inexate Methoen zu r e s i e n , d die
G n a u k e i t de Lösung von Gleichngssysteme de k t l l                    fodess         i n n l
de n n P t e f a                            a n s s n .
   7
    Es gibt sogar eine Publikation [37], die eine Implementierung des Simplex-Algorithmus mit dem Gauß
Seidel-Verfahrens (Q ist die obere Dreiecksmatrix von B) beschreibt Allerdings ist diese Implementierung
eher ein Kuriosum als ein zuverlässiger Algorithmus
17. LÖSUNG LINEARER GLEICHUNGSSYSTEME                      MIT DER       BASISMATRIX


1.7.2     Diekte Metoden

Bei d i t e n Lösungsvrfahn wird die M i x                    ein P r u k t von Matizen trans-
formiert, mit denen Geichungssysteme dire                   st wede können. Beim Simpex-
   gorithmen k m m e n       ei zwei Typen von Mtrizen zum Einatz, Rang-1Updte
M r i z e und Deiecksmtrizen. Andee d i t e Lösungmethden, wie z.B mit Gi
R o t i o n n ode HousehdeReflexionen [4] werden trotz bssere                  m e r c h e Egen
schaften       fgrund ihres ö h e n R e c h e n a a n d s u d der schechte      A u s t z n g de
B e e t z n g r u k u r icht  wedet
   RangUpdteMize                ab die

                                                     T
                                                ei(ri                                  (110


u d wurden b e i t s für de B a s u s c h (vgl. (1   e i n g e h r t . Die Invrse solcher tri
zen kann nach (189) d i r e t anggeben werden,       aß sie ich zur Kontruktion diekte
   sungfa          e i g n . Die ksseitige Multipikation e i e r Matrix B mit V e r g i t die
Matrix            = B ei(rT              die us    urch A u s u s c h der lten Zeie mit j1B
  sultie
    H i s r i s c h wurde für den idiete Simplex-Agoithmus z c h s t die og. Produkt
fom der Invrsen (PFI) erwendet 5 63] Bei de PF w i d die           h e i t a t i x durch d
  a x i m l nfache P u k von R a n g U p d a t e M i z e i die M i x         anfomiet


                                           Vn

Stimmen       ei e i g e Zeilen von B mit de Einheitmatix überein, so bedar             ntspe-
chend wen      Matrixmultiplikationn. Die eihenfoge der u s e t u s c h t e n Zeile     t dabei
  tcheide     für die m e c h e       bilitä  d de p e i c h e c h de P I
   Beim Simplex-Algoithmus werde die Vektoren r/ ohnehin für die Update                 echnet
 o daß die PFI als die für Simplex-Algoithmen naürliche Wahl r s c h e i . Im             fe de
Simplex-Algoithmus immt j e d c h die numeische Stabilität der   I ab und de            enöti
te S p e i c h e r a a n d zu Deshalb m ß die P I von eit z Zeit    mit ei               ss
Pivoteihenfog              e c h e t weden.
    Untersuchunge   aben gezei      aß die PFI a. e i n öß       Speicherbedf afweist
 ls die im nächsten Abschitt dargestellte LU-Zerlegung 11 a der Speicheredaf et
wa der Berechungzeit zur Lösung von Gleichungssysteme enspicht, v w e n d e n heutig
 mplementierung des Simpex-Algorithmus die L U - e r l e g n g de B a m t r i x Dennoch
blei     ch die PF weitehin inteessant denn R a n g U p d t e M i z e wede m i t n t e
für        uschchitte    w e d e t vg b c h i t t   5)
KATEL         1. REIERTE                   MPLEALGITHME

1.7.3      LU          rlgu
           ei ei               eichngssystem der F

                                                   Bx                                          (110
                                            de                                                 (1110

wobei      £ R nx           x, £ R W n n nichts weite geagt wi                    eie     im   f d e
    ize                   n e e c h e d e Dimenonn v o u s e t z t
   Bei de L U - r l n g        oder F k t i s i e r u n g ) e i r r g u l    Matrix B werde Pe
 ationizen P                   owie     ule Mizen L                 d U     timmt d e t daß

                                                    = L                                         (1Hl

gil, wobei L    PLQ eine untere und Ü                             eine o b e Dreiecksmatrix ist
schlie     önn      eichngssysteme der F                   (110     mit f d e      peationn g
wede
 1.           Subtitution:        Ly = b
 2             Sustittion     L e Ux = y
        eche        st man Geichngssysteme der F                  (1110 mit
 1.                s-Substitution                 =b
 2                 Substittion                    =y
Die P e a t i o n von L        d U w i d d i t i de S u t i t t i o n A g o i t h m u s    nteie
    Die L U - r l e g n g von geschieht mit G u ß c h e Elimination.            abei w i d die M i x
   e i r F l von a n f a t i o n        t e o g n , d e t daß

                                    = B1^B2                                                    (111

E n e T a n f o a t i o n wird PivtSchri       nannt 8 Bei jedem Pivot-Schitt weden ei Spa
te von L ze              d die P e a t i o n i z e      f g b a t Die etzte   lte von L t ei
    heit
      ür jede Tranfrmation s            l , . . . , n — w i d z ä c h t ein NNE, etwa B?a^a, de
a k l l n M t r i x , das sog. PivotElement gewählt Die ei is heißt die Pivot-Zele und
die Spalte j die PivtSpalte der s-ten T r a n f r m t i o n .         r p e k t i v e J bezeichne die
Menge der Zeiln- bzw. S p a l t e i d i z e aus d e n b s zur te T a n s f o r a t i o n noch kein
PivotEleme          e w ä t wurde omit lt I1 = { l n } = J . chielich weden die
P e t i o n s m a i z e n usehe       von P = Q                   d de L U - r l n g a f g t e l l t
   8
    Es muß also zwischen Pivot-Schritten beim Simplex- und beim LU-Zerlegungs-Algorithmus unterschie
den werden. Ursprünglich stammt die Bezeichnung Pivot-Schritt jedoch aus der LU-Zerlegung. Der Grund
auch beim Simplex-Algorithmus von Pivot-Schritten zu sprechen, liegt bei seiner ursprünglichen Formulie
rung in Tableau-Form, wo die Iterationen eine größere Ähnlichkeit zu den liminationsSchritten bei der
LU-Zerlegung aufweisen
7. LOSUNG       INEARER GLEICHUNGSSYSTEME                              MT DER          BASISMATR


      ALGORITHMUS 7 ( L U - Z E R L E G U N G )
      Für                n:
      Schritt 1   (PivotAuswahl):
                  Wähle ein P i v o t E e m e n t B?aj              0,   is G      nd           s



      Schritt 2    (Permution
                        tze
                        s     <          nd


      Schritt 3    (LLoop)
                    ür i G I s
                             S t z Li                  s/

      Schritt 4     etz
                  p+1              / s   ^ | .S   nd
                        +1
                                          {
      Schritt 5   (UpdateLoop
                  Für i G Is+1 j
                             Setz B + 1           B?, - Lie • B°
                  Für i 0 J s+1                             n}:
                             Stz         ^        5?

Bei Terminatio von Algoithmus 7 sind          nd Q P e m u t a t i s m a t r i z e n und = PBQ
ist eine obere Deiecksmaix, wähend L            PLQ ntere D e i e c k s g t a t ha        lls die
Matix ingula        chlä  ei eine I t e a t i    chitt fehl
    Die Matrizen B b s Bn werden nicht alle neu zeugt. Stattdessen wird eine Abeit
matrix in jeder teration manipuliert; die jeweils vorige geht dabei v e r l e n Deshalb wi
die zweite Schleife in Schritt 5 die ediglich alle Elemente, die nicht zur aktiven Sumatrix
gehören, in die nächste Matrix ü b e t r g t nicht explizit durchgeüht Dass          lt a c h
für lle Matixelemente die z        w e e n L^     0      ände      eien


1.7.3.1     Numerische Aspekte bei der Pivot-Auswahl

 ur Untersuchun de      mechen                     t a i t t in                 analys     gl          chnitt
    die    m de M a i x

                                                            = LÜ                                           (111

a b c h ä t z t weden wobei L und U die umerisch gewonnenen F e n                                   ezeichnen   ür
die emente von H kann folgende A b c h ä t z g gewnnen weden

                                                            01ema                                          (111
KATEL        1. REIERTE                 MPLEALGITHME

 obei e die Maschinenauigkeit       eichnet 39] Somit muß da               c h m de      Maix
 emente wähend de l i m i n a t i z e s s s k n t l l i e t weden
    Bei der Pivot-Auswah ietet ich eine Mglichkeit das Wachstum de K o z i e n t e n
während des iminationspozesses zu teuern. Offenbar f ü e n kleine Werte           ^  in
Schritt 3 ehe zu einem Anstieg der Koeffizienten als groß. erschieden stab           ian-
ten des LU-Zerlegungsalgoithmus unterscheiden ich dahe dain, mit welchem Aufwand
nach betagsgroßen Pivot-Eementen gesucht w i . Beste S t a i t ä t bietet natürlich die
 og. vollsändige PivotSuche, bei der jeweils das betragsgrößte Element der ativen Ma
 rix BfsJ gewählt w i . Dessen Betimmu        bedeutet ab     ft einen nicht azeptablen
Rechenafwand,      daß meist weniger s t e n Vaianten z       Einsatz kommen. Oft wird
da betragsgrößte Element einer Spalte ode Zeil gewäht (partielle PivotSuche). Wie
im folgenden Abchnitt eschieben weden ei d n n            etzten Matizen      ch weni
   ene Anfoderuen        tell


1.7.3.2   Pivot-Auswahl für dünnbesetzte Matrizen

Während eine         iminatinsschittes kann in Schitt 5 ein lemente B? +1     werden
für das Bf     0 g a t Derati Elemente heißen Fülelemente Damit auch die Faktoren L
und U d ü n n e t z t l e i e n   da      eachtet weden da   öglicht wenig Fülemente
enttehen
   Das folgende i t das Standardeispiel für den entscheidenden Einflß der Pivot-Auswah
   die A n z h l vo Fillementen    ä h t man bei einer Matix mit de B e e t z g s s t r u k t u r
                                                         



                                     V
als Pivot-Eement •, o entsteht nach diesem Eliminatinsschritt       eine dicht setzte Matrix
Wählt man hingegen ein andere Diagonalelement, so entteht            kein weiteres Fillelement
Leider ist die B e t i m m g der Folg von Pivot-ementen die         zur g i n g s t e n Menge vo
Fillelementen f ü , ein P-schwer        oblem [10] D e h a b        urden rschiedene Heuri
 tiken entwic         m den F l l g i n  haten.
     s g b t zwei grundlegende Ansätze zur Fillminimierun Der eine steht darin, die
Matrix worder Ftorisierung so z permutieren daß anschließend die Diagonalemente als
Pivot-emente verwendet werden können und möglichst wenig Fülelemente aftreten Ein
Beispie hiefür sind s     Skyline Slve bei denen eine Permtation de Zeilen und Spaten
de Matrix esucht wi            daß lle NNEs „nahe" an der Diagonalen liegen. Dadurch i t bei
der anschlieenden F a t o r i s i e r u g gewährleistet daß sich der Fill uf einen engen Beeich
um die Diagonale (die Skyline) beschänkt. Diee M e t h d e e i n e t sich b e n d e r s für den
symmetischen F l l , wenn zustzlich noch eine peziell Struktur de M a i x usgentzt
weden kann (etw vo F i n i t e e m e n t e G i t t e n )
17. LÖSUNG LINEARER GLEICHUNGSSYSTEME                        MIT DER       BASISMATRIX


   Der zweite Ansatz ist die lokale Fllminimierung. Dabei weden während des liminati
 nsvorgan       die Pivot-Elemente     gewählt, daß in jedem Schitt nur ein geringer Fill z
  waten is Für M a i z e n hne bekannte Strukur haben sich kale Methoden als ü n t i
ge wiesen. Seien rf nd cj die Anzahl der NNEs in der i-ten eil bzw de j-ten pate
de aktiven Matrix BaJa im s-ten Eiminationsschitt Dann ist m|-              (r|   )(c^ —
ween Schritt 4 eine o b r Schrank für die Anzah vo Fillelementen die ei de Wahl vo
Bf ls P i v o t e m e n t im s-ten Schitt entstehen kann Man nennt m?„ die MarkowtzZahl
de Eementes B Lokale Pivottrategien wählen als PivotElemente s c h e mit ringe
Markowitzahl. Verschiedene           ianten unterscheiden sich darin, wieie Afwand für die
Suche nach ementen mit n i e d g MarkowitzZhl getieben w i d
    Bei der Fillminimierug muß j e d c h auch die Stabilität der LU-Zerlegug berksichtig
werden Wie in 17.3. beschrieben müssen dafür Pivot-Elemente mit möglich großem
B e t r g gewählt werden. Es g t also, einen Kompromiss zwischen Fillminimierung (kleinste
MarkowitzZahl) und Stabilität betragsgrößtes NNE) zu schließen. In der P a x i ha ich
dafür die Schwellwertpivotsuche bewährt ür einen v o r g e n e n Schwellwe 0 < u
weden als PivotElemente ll NN             r l b t , für die
                                           >      ma                                         11

gil  ür u = 1 entspicht dies der partiellen PivotSuche K e i n e e Werte von u r l a e n
die Wahl von P i v o t e m e n t e n mit kleinere Markowitz-Zah   glicherweie j e d c h
Koten der S t a b i t    Als        ti h a e n ich Schwellwete   01 wieen


1.7.3.3    Implementierung

In den v o e n beiden Abschnitten wurde de Rahmen für die Wah des             sugsvefahren
für line      Geichungssysteme im Simplex-Algoithmus bgestect. Nun oll die für So-
Plex g e w ä t e Vaiante nd deren mpementierung vorgestellt weden. Dabei git es zwei
A s p e t e z b c h e i b e n , in denen ich Unterschiede verschiedener m p l e n t i e r u e n vo
LU-Zrlegungsalgorithmen für dünnbesetzte nicht symmetrische Matizen m a n i t i e r e n
Die ist z m einen das zugrundeieende Datenlayout zur Speicherung der dünnbesetzten
Marizen und zum anderen die S t r t e i e bei der Suche nach ü t i e n P i v o t e m e n t e n
im inne der Schwellwetpivotsuche
    E gib eine Reihe unterschiedicher Speicherschemata für          n n e t z e Matrizen
 39, 89]. D a e i nterscheidet man zwichen der Speicheru der NN in Feldern nd ihrer
  peicherung in verketteten Listen Von der Komplexitätabschätzng her sind für LU-
Zerlegugsalgoithmen, bei der F l i e m e n t e entstehen nd ander Eemente Null weden
können, doppe verkettete Liten b o n d e r s geeinet [89]. Auf heutien Cachechitekt
 en t e t e n ab   ei einem L i t e n a n t z häufig s CacheMisss 9  f da kein gul
    Ein Cache-Miss führt dazu, daß der Prozessor seine Arbeit einige Taktzyklen unterbrechen muß
bis die geforderten Daten vom Hauptseicher nachgeladen w r d e n . D a d r c h verlangsamt sich di
  earbeitngsgeschwindigkeit
KATEL        1. REIERTE                    MPLEALGITHME

                                   HstartDL]                        HStartEj]

                   Feld


                                           num[i]
                                               max[i]


Abbildung 1.8: Speicherlayout für di            NNEs der Zeilen der Arbeitsmatrix beim LU
Zerlegungsalgorithmus von SoPlex: Alle NNEs aller Zeilen werden in einem gemeinsamen NNE-Feld
gehalten. ür die ite Zeile wird jeweils ein Zeiger s t a r t [ i ] a f das erste NNE in dem Feld sowi di
Anzahl num[i] der NNEs der i-ten Zeile geseichert chließlich wird di Anzahl der NNE i Feld bi
  r nächsten Zeil in max [ i ] verwaltet




 peicheug                 lg
    D e h a b urde für SoPlex einer Speicherung in Feldern der Vrzug ggeben, ähnich de
in 92] bschriebenen. Die A e i t m a t i x w i d zeienweise a b p e i c h e r t : Die NN      all
Zeilen weden in einem Fel             ltet. Für Zeile i w i d in s t a r t [i] ein Zeiger      da
erste NN in dieem         in num [i] die Anzahl der NNE des Zeilenektrs und in max [i]
die Anza de im            f ü g b e n NNESpeichelätze i ur ächten Zeil                    peiche
(gl Abbd          8
       s weden als nicht nur die NNEs sndern auch die          cher dazwischen vewaltet: Die
D i r e n z max [i] - num [i] b c h r e i b t unbenutzten NNE-Speicher, in dem Fillemente für
die te eile erzeugt weden können. Entstehen hingeen Fllelemente wenn max[i] ==
num[i]            w i d die betffene Zeile an da Ende de benutzten Teils des NNEFldes
kopiert w         ch genügend peicherplatz für die Fill-Elemente breitsteht (andernfalls
w i d das Fed rgrößrt). Dabei wird der von de verschobenen Zeile z v o b e a n r u c h t e
Platz de davor efindichen Zeile als freier N N E p e i c h e hinzugefügt. Um dies effizient
durchfüren zu können, werden all eien in eine d p p e l          rketteten L i t e watet die
nach de Anfangsaddsse im NN                       tiet i
     chließlich weden die Indizes de Matrix-NNEs auch paltenweise a e s p e i c h e t , wobei
dasselbe L a y o t benutzt w i d Dies  glicht a c h einen patenweien u g r f         minde
    die Indize der NNE de M a i x
      Das zweite Unterscheidungskriterium für vrschiedene L U - F i e r u g s l g o r i t h m e n
ist die Pivot-Ausah A c h hie         ientiert sich SoPlex an der in 92]   chriebenen Stra
t e i e , die wiederu gerinfügi      geändet wurde. E werden d p p e l t verkettete Listen
Zi und St für i = l . . n g e r t . Jede Zeilenindex i und Spaltenindex j der aktiven
T e i m a i x wird in der Liste Zr bzw Sc* verwaltet. Wenn ich die Anzahlen der NNEs r
oder         ei einem PivotSchitt ände     weden die Indize bzw j in die e n t e c h e n d e n
Liten rschoben
17. LÖSUNG LINEARER GLEICHUNGSSYSTEME                             MIT DER        BASISMATRIX


    Die Liten ermglichen einen schnellen Zugrf a f Zeien bzw Spaten mit enau i
N N E . Insbesonde kann schnell von kleinen W t e n auwä       die Zeile oder Spalte mit
der g i n g s t e n Anzahl von NNEs sucht weden Aus einigen (1-4) in diesem Sinne ersten
Zeilen oder Spalten w i d dasjenie NNE als Pivot-Element ausgewählt da die         ingste
Markowitzzahl fwei            nd die chwellwebedingu    füllt
    Zur Ü e r p f u n g der Schwellwertbedingung mu de größte Bet           in eine Zeie be
 timmt weden Um dies nicht für jedes untersuchte NNE r n e t zu bestimmen wird ein
  eld axabs v e l t e t . Ein Wert axabs [i]        0 zeigt an daß der größte Bet      in der
  ten Zeile nicht bekannt is mmer wenn e b e c h n e t wird, w i d e in axab [i] einge
tragen. Ändert sich abe etwas an der i t e n Z e i , so w i d wiede axab [i] = -1 g e t z t
Dadurch w i d das Maximum imme ur dann              timmt wenn e e n ö t i t w i d  vo
   ch nicht     echnet wurde
     Eine weitere wesentiche Eienschaft de Implementierung für S o e x ist, da sie gleich-
zeiti ein Maß für die Stabilitt de LU-Zerlegung bestimmt. Daz w i d da Maximum
m a x j l ß l } mitgrechnet nd auch ei den im folgenden Abchnitt z beschreibenden Up-
date der LU-Zerlegung ktulisiert. Falls nach efolgter Fktoriierung keine hinreichende
S t a i l i t t erreicht wurde wi die LU-erlegun mit erhöhtem Parameter u w i e d e h l t
Dies wird so lange iterier, bis entweder eine stabil Zrlegung g f n d e n der mit u —
eine patielle PivotSuche         wendet wurde Letzte    itt in de P x i nur sehr s t e n
ein


1.7.4      Lösng v n G l e i c h n g e m e m t                          D r a t r i z

Wie im vorigen Abchnitt          schieben müssen zur ösu von linearen Gleichungssystemen
 ei gegebener L U - r l e g u    de Matix B LU Gleichngssysteme mit den p e t i e t e n
Dreiecksmatizen          nd          t weden ür      eichgssysteme der F     (        ind
die

                                                                                                     11
                                           nd                                                        H

wofür nun die zugehören Algorithmen die Vowä         und Rückwärtssubstitti      da
   tellt werden Die entsprechenden Algrithmen für Geichngssysteme der F r      (110
     t man einfach durch T a n i t i   nd weden d e h a nicht nähe b c h i e e n
   Betachte zunächst die L s u n des System (1.116) wobei L eine untere Deiecksmatrix
mit D i a n a l e m e n t e n 1 sei. Der L ö s u g s l g r i t h m u s arbeiten in n Schitten wobei n die
Dimensio von L               Ausgehend von y                wid        in jedem chritt a k t s i e , wobei
jeweils ein weite         Eement de Lösungsveors von (1.116) beechnet wird. Dabei wir
ausgenutzt, da           ween de D e i e c k s g t a vo               jeweils eine eile mit nur    ch eine
Unkannten
KATEL          1. REIERTE                   MPLEALGITHME

      ALGORITHMUS 8               VORWÄRTSUBSTITUTION)
      Sei y b £ M und L £ R                       e untere Dreecksmax.
      Für = 1 , n:
               ür     = i+          n:
                       tz                 j/j


Ersichtlich berechet      gorithmus 8 y gemäß ijj — bj — YllZi ^jiVii wobei die Summe über
mehrer Iterationen von i verteilt ausgewertet wird. Dies ermöglicht es Dünnbesetztheit
von b und y algorithmisch uszunutzen. Wann immer in einer Iterati          y^    0 auftritt
kann die Schleife über j ausgelassen werden. Die Besetzusstruktur v L wird bei der
Schleife über   u s u t z t i d e m man sie uf die NNEs der te palte v L eischränkt
     er   gorithmus zur            su           n (11     f u t i i e r t anaog zu    gorithmus 8

      ALGORITHMUS 9 (RÜCKWÄRTSSUBSTITUTION)
      Sei x         y £ M    nd    £ R              obere Dreecksmax.
      Für           i . .

              Für     = i


Bei beiden Algorithme 8 u 9 können die e r m u t t i                      P u         d i r e t i die Verw
tu der Idizes       d e i r b e i t e t werde
     m die Besetzusstruktur von y bzw. x wie oben beschrieben auszunutze, müssen L
un U spaltenweise bgespeichert werden. Entspreched bedarf es für Gleichunssysteme
der Form xTB     b bei L und U e i e r zeilenweisen Speicherung der Matrize. Da bei
Simlex-Agorithme beide Formen von Gleichungsssteme gelöst werde       üsse werde
die      re L u d U      hl zeilen- als uch spaltenweise eseichert
    Schließlich kann bei besoders dünnbesetzten Gleichugssysteme un                 ktoren b ein
weitere Geschwindigkeitssteigeru       erzielt werden. Die Algorithmen 8 und 9 durchlaufen
immer die gesamte Schleife für von 1 bis n. Dabei muß dann j e d c h nur für wenige In-
dizes % die Schleife über j durchgeführt werden, d meistens y, 0 bzw. X{ 0 gilt. Um
 uch die Schleife über i zu verkürzen kann man in einem dheap die Indizes der NNE im
Arbeitsvektor x oder y mitführen. Ei dheap bietet e i n direkten Zugrif uf den jeweils
niedristen bzw. höchsten Index, so daß s o r t auf da        chste NNE in der Schleife zug
 riffn werden kann. Natürlich bedingt die Verwendu           e i e s d H a p s einen zusätzlichen
Verwaltugsaufwand. Deshalb schltet die für SoPlex vgenommene Implementierun uf
den heaplosen Agorithmus um, sobld der Heap zu voll" wird. Bezeichne h die A n h l
der Idizes im H a p . Es wird auf de o r i n a l e n Algorithmus 9 zurückgeschaltet, s l d
d > Ki, bzw. bei Algorithmus 8, wenn d > (           i) ilt. Für K hat sich ein Wert von 0.05
bewährt Damit wird der dHeap nur i seltenen Fällen verwendet. Es gibt jedoch Beisiele
bei de     er e i e deutliche Beschleu         des Simlex-Algorithmus verurscht
1.7. LÖSUNG LINEARER GEICHUNGSSYSTEME                       MIT DER    BASISMATRIX


1.7.5     Bas-Up
 n jeder Iteration        Simplex-Algorithmen sin zwei linare Gleichungssysteme mit der
Basismatri zu lösen, wobei sich diese von Iteration zu Iteration ändert. Jedesmal ei neue
LU-Zerlegung zu berechnen wäre zu aufwendi, zumal sich die Basismatri nur in einer
Zeile oder Spalte genüber der aus der vrigen Itertion unterscheidet und es geeignete
Verfahre gibt, um die alte LU-Zerle            weiter zu verwenden. Zwei slcher sog. LU
 Uates     nämlich die       duktform    F) [29] nd der ForestTomlin Update [46] in der
Implemetierung nach [93], werden in diesem Abschnitt am Beisiel des in der iteratur
üblicheren Falles e i e s Spaltentausches beschriebe. Beide wurden für SoPlex implemen-
tiert, d s zweite ween seier besonderen Effiziez [46] nd PF wegen seiner Anwendun
beim parallelen Simple         l. Abschitt 2.2.3) Nicht imlementiert wurde das Verfahre
von Bartels und G l u b 10 mit sei        Weiterentwicklu      [84, 86] oder sezielle Upd
teverfhre für V r c u t e r
   Betrachte die Matri B, zu der die LU-Zerlegng B            LU bekannt sei ie Matrix
B'   BV, mit V       (I + (B~1r — efief   eht aus B durch ustausch der /-ten palte mit
dem Vektor hervr. Das Ziel ist es, ei Verfhre zu fnden, mit dem G l e i c h u s s s t e m e
mit B' unter V e r w e d u g der LU-Zerle           e l s t werde könn
    Das u r s p r ü l i c h e Verfahren, d s für SimplexAgorithmen verwendet wurde, basiert
auf (der t r a n s p i e r t e n Version v n ) Gleichung (18 Damit kann man Gleichungssysteme
der F r m B = b lösen, i d e m an zuächst Bx                 b mit der bekannten LU-Zerle
          st u        anschließed

                                                     - e                             (111

bestimmt. Dabei wird der V e k t r B r ohehin als A / im Simplex-Agorithmus berechnet
Bei mehreren U p d t e s müsse ntspreched iele Krrekturschritte nach (1118 durch
 eführt werde
      hrend das obige Verfhren die LU-Zerlegun von B aufrechterhält, wird diese durch
da nun zu beschreibende Verfhren v F r e s t u d Tomin anipuliert. Betrchte d z u
die LU-Zerle       nB i        der     (1112)    eleitete   rm

                                                             U7

wobei PU eine obere Dreiecksmatrix ist Da ft iele Spalten von L mit der Eiheitsma-
trix ü b e r e i s t i m m e , s i d meist w e i e r ls ang1-Matrize Lj öti
   Betrchte L             V.

                                             +iB-ef
                                              U B U .
                                                   U.
KAPITE         1. REVIERTE                             SIMPRITHME

 ür die permutierte Matrix P                  b e i c h e k de permutierten Index , d.h.
  d x PL~1 Dann ilt
                                     u                                       k+




                                                                        k+k+




  bei        ax{    Sj ^ 0}. Sfern B              icht s i u l r ist, muß d b e i               elte
     folgenden wird diese Matrix durch geeignete Permutation und Multiplikati                                 mit
 an1-Matrizen Aj i e i e permutierte reiecksmtri U' transfrmiert, s d
                                          J                 ^
 ilt, wobei P'UQ' eine obere Dreiecksmatrix, mit geeignete P e r m u t t i s m t r i z e                   P' u
  ', ist Defiere d z u z u c h s t die P e r m u t t i s m t r i x .
                                                                                            




die die Indizes k bis       um e i s durchrtiert Damit ist
                        u    • • •                  k   +       . . .




                                                        fc+
                                                  k+k+                  k+        k+   k+              k+




                                                   kk+




                                                                                                       "
1.7. LÖSUNG LINEARER GEICHUNGSSYTEME                            MIT DER      BASISMTRIX


Diese Matrix kann mit      ußscher Eliminati            ei    bere   reiecksmtrix Ü transfrmiert
werden:

                                                                     ^                    (111



              mit             +A       ej                        T


  b e i . . .           k + . . . . . .          ist. Setze


                                                   U,




Dann
                                            LU       LL




Diese Art von LU-Update führt somit zu neue Permutatinsmatrizen P und , zu einer
 eue permutierte oberen Dreiecksmtri U nd zu einer zusätzlichen Ran1-Matrix
 n+i. Da Gleichungssysteme mit           , +i un    direkt elöst werde könn kann an
  mit uch d     l e i c h u s s s t e m für ' l s e
      Der Vorteil dieser p d t e M e t h d e g e ü b e r der zuerst geschilderte ist, daß L
i . . weniger NNEs hat als Br)         so d ß die L s u n von Gleichunssystemen anschließen
eines gerineren Rechenaufwandes bedarf. Der Update selbst bedingt j e d c h e i n h h e r e
   ufwand, d der Vekt A per Gaußscher Elimination berechet werden muß. Der Vekt
    fällt h i n g e w ä h r e d des SimplexVerfhrens an, denn L r wird bei der Berechnun
von A / beötigt, muß als lediglich zwischengespeichert werde. Bei eschickter Speicher
verwltu          erfrdert dies icht e i l e i n K p i e r a n
       Der ForestTomli      pdate ist eine Vereiachung des BartelsGoloub Updtes. Bei letz
terem werden bei der Gußschen Elimination n (1119) eventuell noch weitere Zeilenpermu
t a t i n e n eingebaut, um e i e bessere Stabilit zu gewhrleisten. Bei Simplex-Agorithme
bringt dieser zusätzliche Aufwand i der R e l kei              rteil. Ohnehi wird die Stabi-
lität der (aktulisierten) LU-Zerle           überwcht, u      e b e f l l s e r f g t ei eue LU-
  erle                bschitt 8.5
KAPITE       1. REVIERTE                       SIMPEXRITHMEN


1.        Tips und Tricks
Nachdem          de     o r i g n Abschnitten die r u d l a g e n für eine numerisch stabile Imple
mentierung v            sisdrstellungsunabhängigen SimplexAlgorithme z u s a m m e g e t r a
wurden, solle nun einge Kniffe vorgestellt werden, mit d e e n die Geschwindikeit und
Stabilität der mplementierung gesteigert werden kann Von zentraler B e d e u t u g für die
Effizienz ist i jedem Fall die s g f ä l t i     Auswahl und Implementieru         der z u r u d e
l e t e n D a t e p e , die i A b s c h i t t 3.   estellt werde


1.8.1      Skalierung
  ie Zahlenwerte in der Nebenbedingungsmatrix eines Ps k n n e n von unterschiedlicher
G ö ß e n r d u n g sein. Dies kann zu LU-Zerlegungen der B s i s m a t r i z e n mit einer schlechten
S t a b i l i t t führen, da die Schwellwertbedingung (1.115) kaum Wahlmöglichkeiten zuläßt
Durch sog. Skalierung kann die Stabilität der LU-Zerlegung verbessert werden. Dazu wird
die Matrix von rechts und links mit Dagonalmatrizen so multipliziert, daß die NNEs der
skalierten Matrix möglichst eng b e i e i n n d e r liegen. Dadurch erhöht sich die Wahlmöglich
keit bei der S c h w e l l w e r t P i t s u c h e , w s zu einer besseren S t b i l i t ä t führt
    Die Berechnung solcher Skalierungsmtrizen für jede Basismatrix und ihre Multiplika-
tion würde jedoch einen e r h h t e n Rechenaufwand bei der LU-Zerlegung der B a s i s m t r i
und der Lösung der l i n e r e n Gleichungssysteme bedeuten. U diesen zu vermeiden, ver-
sucht man, das gesamte P skalieren, s d ß beliebige Basismatrizen bereits gut skaliert
sind. Dazu multipliziert man je eine D i a g o l m a t r i x R und C von rechts und links an die
Nebenbedingungsmtri des LPs A, d m i t               ßenunterschiede der Zahlenwerte in RAC
nivelliert werden
            min                                         min               cC
             t     I <                                   t       l <     RAC

     Es wurden verschiedene Ansätze zur Aufstellung der Diagonalwerte von C und R vor
geschlgen [96, 28, 48]. Einfache Skalierungsverfahren d i i d i e r e n jede eile des LPs mit
einem aus der Zeile gewonnen Wert, wie den Wert mit m a x i m l e m Absolutbetrag (Equi
librierung) oder dem geometrischen oder rithmetischen Mittel aller NNEs der Zeile. An
schließend wird jede Spalte entsprechend skaliert. Derartige Verfahren haben einen geringen
R e c h e n u f w n d , denn jedes NNE der Nebenbedinungsmatrix wird nur z w e i m l verwendet
      Neben solch einfachen Methoden gibt es ufwendigere Verfahren, die die „Gleicha
tigkeit" der NNEs ptimieren: Das Verfahren von FulkersonWolfe [48] löst ein Optimie
r u n g s p r b l e m zur Minimierung der ifferenz zwischen maximalen und minimalen NNE.
Dagegen bestimmt das Verfahren von Curtis und Reid [28] die S k l i e r u n g s f k t r e n s , d ß
die V a r i n z der NNEs des Ps minimiert wird.
    Aus verschiedenen Tests schließt Tomlin in [96] daß die Skalierungsverfahren nur einen
geringen Einfluß uf die S t b i l i t t des S i m p l e x A l g r i t h m u s h b e n , jedenflls für hl
1.8 TIPS UN         TRICK


modellierte LPs. Um den Agorthmus or schlechten PModellen abzusichern, sollten
hingegen einfache Skalierungsverfahren ausreichen. Deshalb wurde für S P l e x ähnlich wie
für CPLEX 15] lediglich ein Equilibrierungsverfahren implementiert, d jedoch im Ge
gensatz zu C L E X uch abgeschaltet werden ann. Darüberhinaus bietet SoPlex die Wahl
 b zuerst die Zeilen der zuerst die Splten skliert werden sllen. W s günstiger ist hängt
   n dem zu lsenden LP b.
     ber den Stbilitätsspekt h i n u s wird häufig als Argument für eine Skalierung des
LPs och eine mögliche Reduktin der Anzahl der Simplex-Iterationen gennnt [96]. In
der Tat kann die Sklierung einen Einfluß auf die A n z h l der SimplexIterationen h b e n .
Dieser k n n sich j e d c h s h l p s i t i ls uch negati uswirken ( g l bschnitt 4 . 6 )


1.8.2         uotientntes
  ie bereits in Abschnitt 1.3 bemerkt wurde, ist die stbilisierte Variante des „Textbook"
Quotiententests oft hinreichend stabil. Mit nur einer P h s e ist sie effizienter als zweiphasige
Varianten. Die mplementierung des stabilen SoPlex Quotiententest bricht deshalb direkt
nach der ersten Phase b, wenn das Qmax bestimmende Element bereits zu einem Pivo
Schritt hinreichender Stabilität führt. Solch eine Wahl entspricht bis uf d s Shifting dem
stbilisierten Textbook"Qtiententest
   Darüberhinaus speichert der SoPlex Quotiententest in seiner ersten Phase die Indizes
der NNEs von Ax. Dadurch kann in der zweiten P h s e direkt auf die NNEs zugegriffen
werden, und unnötige Zugriffe auf Nullelemente werden vermieden. Auch wenn keine zweite
Phase benötigt wird, wurden die Indizes der NNEs n A nicht unnötig gespeichert; sie
werden in jedem F l l beim Update         benutzt
   Für die meisten LPs liefert der S P l e x Quotiententest mit festem Toleranzparameter
5 eine hinreichende Stabilität. Dem Autor liegen j e d c h LPs10 v r , bei denen erst zwei
weitere Techniken zur erfolgreichen Lsung verhelfen. ies ist zum einen die dynamische
Toleranzanpassung und zum nderen d s Zurückweisen n P i t E l e m e n t e n .
    Für das Zurückweisen von Pivot-Elementen wird ein weiterer Parameter minstab ein
geführt. Führt der Quotiententest zu einem PivotSchritt mit Asq <minstab, so wird
kein Bsisupdate durchgeführt, denn ein solcher würde ach Satz 29 zu einer zu schlecht
  nditionierten B s i s führen. Stttdessen wird direkt zum Pricing-Schritt 1 übergegangen,
wo ein neues Pivot-Element gewählt wird. Dabei werden Vrkehrungen getrffen, die eine
erneute Wahl desselben Elementes vermeiden.
     Ein zurückgewiesenes Piot-Element zeigt somit an, daß sich der Simplex-Algorithmus
in einem numerisch problematischen Bereich des zugrundeliegenen Polyeders bewegt. Des
h l b wird der T l e r n z p m e t e r S ( d m i s c h ) herufgesetzt um eine grßere Wahlfrei
  10
    Diese besonders schwierigen LPs dürfen leider nicht weitergegeben werden nd w r d e n deshalb a c h
nicht z r Bewertng der Implementierng in Kapitel 4 herangezogen.
KAPITE      1. REVIDIERTE             SIMPEXORITHMEN

heit beim Quotiententt und d m i t einen numerisch sabilieren B a s u p d a t e zu emögl
chen. Gleichzeitig wird auch der Parameter minstab herabgesetzt, um nicht wegen überzo
gener Stabilitätsnfrderungen in einer unendlichen Folge zurückgewiesener P i S c h r i t t e
zu enden. Beide Parameter 5 und minstab werden wieder gestrfft, wenn die röße der
Werte Asq nzeigt, d ß der numerisch prblemtische Bereich des Plyeders verlssen
wurde




1.8.3     Pricng

Die Auswahl der für ein roblem „richtigen" PricingStrategie ist essentiell für die Lösungs
geschwidigkeit von SimplexAlgorithmen. Dabei führt das steepestedge Pricing meist zu
sigifikant weniger Iterationn als andere Verfahren, ist jedoch aufrund des erhöhten Re
cheaufwandes dennoch oft langsamer Insbesondere ei einfügenden Algorithmen sollte oft
das partial multile Pricing oder das Deve Pricing vorgezogn werden. Welche Pricing
Strategie am schnellsten arbeitet, h n g t überdies von der zugrudelieenden Hardware
 b. Bei Computern mit hoher Gleitkomma-ArithmetiLeistung            nn as s t e e e s t e d
 ä u e r eingesetzt werde als z B . auf einem     er

    Beim steepestedge Pricing kann der Rechenaufwad dadurch in Grenzen gehalten wer
den, daß beim Start die Werte pi = 1 esetzt werden, anstatt sie korret durch Lösung der
entsprechende Gleichungssysteme zu bestimmen. Dies führt meist zu keiner nennenswer
ten Steigerung der Iterationszahl. Isbesondere eim e n t f e r d e Alorithmus u d e i e r
S c h l u a s i s ist diese Iitialisierung s o a r e

    Wiederum für das steepested Pricing kann die Lösung des zusätzliche Gleichungs
 ystems beschleuigt werden. s kann ämlich zu jedem eliebign Zeitp              nach der
  ösung des ersten Gleichungsssstems in Schritt 2 der SimlexAlorithmen nd vor der
Aktualisierung der Basismatrix in Schritt 5 elöst werden, inbesondere auch gleichzeitig
mit dem zweiten S s t e m in Schritt 4. Dann kann man eide Gleichungssysteme mit ur
einer aversierung der LU-Zerlegung lösen. Dabei muß die Schleife über i in den Algo-
rithmen 8 und 9 nur einmal durchlaufen werden. Gleiches ilt für die j-Schleife wenn sie
für beide Gleichungssysteme erforderlich ist Insgesamt erg   sich dadurch weniger Spei
cherzuriffe als ei zweifacher Ausführung der Alorithme            9,   d es elingt ei
  essere utzung des Caches

    Allemein kann man e i e n Pricer oft dadurch etwas verbessern, daß    n eim e i g e n
den Alorithmus Vektoren preferiert, die die Basis nicht wieder verlassen önnen, bzw. beim
 ntfernenden Algorithmus solche, die icht wieder i die Basis eintrete werden. Für eine
Spaltenbasis würde man also zuächst       ierte Variable aus der Basis entferen. Dabei ist
 edoch zu e m e r n , daß — wie ei allen heuristischen A ä t z e n — auch Prolembeisiele
  istieren, ei de     diese Strateie verheerede A u s w i r n g    ha     nn.
1.8. TIPS UN       TRICK


1.8.4     Zelen- vers            Spalnbas
Die Möglichkeit, sowohl eine Zeilen- als auch eine paltenbasis zu verwenden, erlaubt es
bei der Dimesion der Basismatrix zwischen der Anzahl der Spalten oder der Anzahl der
Zeilen der Nebenbedingsmatrix des Ps zu wählen. Dabei sollte die kleiere Dimensio
vorgezogen werden, da so die ösung der lieare Gleichungsssteme ei             eringere
Recheaufw       erfordert
     D a r ü e r h i a u s kann die Wahl der asisdarstellung einen Einfluß auf die Wahl der Pricer
h b e n . E i i g e Pricing-Strategien, insesondere das partial multile ricing, sind nur für
e i n f ü n d e Algorithmen sinnvoll. Weiß man nun zusätzlich, ß ein LP gnstiger mit einem
dualen als mit einem primalen Algorithmus elöst wird so kann dieses ricing-Verfahre
dennoch eingesetzt werden, dem die Zeilearstellung verwedet wird


1.8.5      Refaktorisierung
Wie i Abschnitt 7.3 dargelegt wird zur Lösung der bei SimplexAlgorithmen auftre
tenden Gleichungssysteme eine LUZerlegung der Basismatrix vorgenommen. Nach e i e m
Basistausch wird i.a. nicht wieder eine ölli neue LUZerlegung berechnet, sondern die
stehende in einer der in 1.7.5 beschrienen Arten manipuliert. Nun stellt sich die
wie oft solche Updates sinnvoll s i . D e i ist zweierlei zu e r ü c s i c h t i n :

      die Stailität der      torisierung

      die Gesamteschwidigkeit des SimplexAorithmus

   Dem ersten Punkt muß stets Vorrang gewährt werden. Deshalb wird wie in 1.7.3
schriebe die Stabilität der Faktorisierung überwacht und bei Überschreiten eines Gre
wertes eine neue LUZerlegung der asismatrix berechet      der axis hat sich ei Gre
                              6      8
wert i der G r o r d n g 10 — 0 ewährt
    Der zweite       kt ist immer dann zu beachten, wenn die Stabilitätsforderung oh
nehin erfüllt ist, u    dies ist bei über 90% der dem Autor vorliegende LPs der Fall
Somit lohnt sich ein genaueres Studium des Geschwindigkeitsaspektes         [26] wird dies
unter statische Voraussetzungen durcheführt, was zu einer konstanten Faktorisierungs
frequenz führt. In [6 wird die „optimale kostante Faktorisierungsfrequez a n h n d eines
Testlaufes bestimmt. SoPlex verfolgt hingegn e i n dynamischen Ansatz bei dem der op
timale Zeitpunkt der erneute L U Z e r l e n g der asismatrix a a n d des eweils aktuelle
Zustads bestimmt wird
    Da i . bei edem Update der Faktorisierung zusätzliche Werte espeichert werden,
die bei anschließe gelöste Gleichungssystemen bearbeitet werden müssen, wächst mit
 edem Update der ufw       zur Lösung vo Gleichungssstemen. Ziel ist es daher de
KAPITEL 1. REVIDIERTE                SIMPLEXALGORITHMEN


Zeitpunkt der ereuten LU-Zerle              so zu   ählen,      die Gesamteschwidikeit des
SimplexVerfahres optimiert wird
    Sei i die Anzahl der NichtNullElemente der Basismatrix und rii die der ifach aufda
tierten LUZerlegung. <f> = UQ/N ibt den Anteil der Füllelemente bei der LUZerlegung an.
Die mittlere Zeit zur ösung e i e s Gleichungssystems ti ist proportional zu n, Ferner setzen
wir die Zeit für die    Z e r l e n g T als proportioal zur     zahl der i c h t u l l E l e m e n t e
der Faktore             n:

                                     U     = 9n%                                             (1.1)
                                             n9n = r)9                                       (1.11)

Die Werte 9 rj > 0 sind architekturabhngig Kostanten. Natürlich ist 4> vor einer Fak
torisierung nicht bekannt. Statt dessen kann ma edoch de Wert       vo der vori
Faktorisierung als ute pproximatio verweden.
    Optimierung der Geschwidigkeit bedeutet offenbar die Minimierung der eit pro Ite
 ation. Sei die Anzahl der    Updates seit der letzte Faktorisierung, nn ist dies

                           m        T + JjLu        =g       +Ef^                             (L122


 er Faktorisierungszeitpukt /* muß also so ewählt werden, daß               /*) m i i m a l ist

                                           f                 + Ef                           ,-, 1 o 
                            = a r m i / j       armm             ——^—                        (1.13)
Somit rechet m         ä h r e d des SimplexAorithmus die Größe


                                      (/
                                                    + EL

mit. Zunächst fällt sie mit wachsendem / . Sobald sie wieder zu s t e i n beginn wird die Re
faktorisierung der asismatrix v o r n o m m e n . Der Rechenaufwnd für diese uchführung
umfaßt ledilich eine Additio          ei       visio pro SimplexIteratio         kann somit
verachlässit werden.
    Der Parameter 7 repräsentiert das Verhältnis von dem Rechenaufwand für die Faktori
                     7
sierung zu dem für die Lösung der Gleichungssysteme. Er h n g t sowohl von der Architektur
als auch von dem gewählten Pricer ab. Letzteres liegt daran, daß etwa bei steepestedge
Pricing ein zusätzliches Gleichungssystem pro Iteration gelöst werden muß, so daß in jeder
Iteration dem Lösen von Gleichungssystemen mehr Aufwand zuzuordnen ist. Dementspre
chend lohnt sich hier e i e häufigere Refaktorisierung, was durch einen niedrigeren Wert für
7 modelliert wird. Für jede Klasse von LPs sollte der beste Wert für r über ei Reihe
 7
vo Testläufe     estimmt werde         . Abschitt 4 . 4 ) .
1.8. TIPS UN        TRICK


1.8.                 artbas
Für allgemeine L        der Form (1.45) ist Z       P,Q), mit        { l , . . . , n } und Q =
 n + . . . ,n + m} eine mögliche Startbasis zum zuehörige Phase-1-LP, die Schlupf
basis genannt wird. E kann jedoch zur Reduktion der gesamten Iterationszahl von Vorteil
sein, auf heuristischem Weg e i e bessere Startbasis zu konstruieren, die sich weniger von
e i e r zulässig und optimalen asis unterscheidet Solch ei Verfahre heißt e i e Crash-
      zedur die    erierte Basis e i e Crash-Basis.
      uch für S o l e x wurde eine CrashProzedur entwickelt, die sich stark an [15] orientiert
  d nun für eine Basis i Zeiledarstellung vorgestellt wird. Sie arbeitet in drei          asen.
   der ersten Phase, wird eder Zeile von (1.5) ein Präferenzparameter CJ, (i = 1 , . . . , n +
m) zugewiesen, der eine Präferenz für die Aufnahme der i t e Zeile in die Basismatrix
 arstellt. A s c h l i e ß e d werden alle Zeilen nach a b e h m e d e m äfereparameter sortiert
     schließlich r e e d a r t i ei       asis konstruiert
      ie Festsetzung der räferenzparameter erfolgt auf heuristischem W e . Dazu überlegt
man sich welche Bedingng / < a < u eher in der asis sei sollte nd welche eher
nicht. So werden Bedingungen mit /       —o        u    +oo eher selte     der optimalen
  asis zu finden sein, wohl aber Gleichunge (l u). Allgemein wird an vermuten, daß
je größer der Wert l — u ist desto wahrscheinlicher wird die zuehöri    edingng     eier
zulässi          optimalen Basis zu de sein.
   Dieses heuristische rgument berücksichtigt zwar die S c h r k e n der Bedingngen, nicht
aber die Zielfunktion. bbildung 1.1 le jedoch nahe, daß i einer optimalen Basis eher
Nebenedingungen zu finde si      dere   ormalenvektor ei           ering W i k e l zum iel
fuktiosvektor aufweisen.
    Schließlich sollte auch die numerischen Eigenschafte der zu konstruierenden Startba
sis Berücksichtiung finden. Dabei sind (Vielfache von) Einheitsvektoren numerisch beson-
ders gutarti      d sollte deshalb Vektore mit mehreren Nichtnullelemente vorezo
werden.
     iese drei Aspekte werden durch die f o l g d e Initialisierung der P r ä f e r e a r a m e t e r
                                                                                                  10
aufgegriffen. Sie verwendet e i n Strafwert M der z.B. auf eine Wert vo
 esetzt wird ür die ite    e b e d i n g n g lf    f < uf setze zuächst

                                                 falls lf     uf
                                     lf   uf     falls             lf   uf
                                                 falls
                                                 falls             lf   uf
                                                 sost


                                  falls f ei     skalierter         heitsvektor ist
                                  sost
88                                 KAPTEL             1. REVIDIERTE                SIPLEXLGORITHMEN


 amit setze als Präferezparameter

                                        ui      6 - f c     u}'iu)?                                (1.14)

Mit dem Parameter      kann bestimmt werden, wie stark der Einfluß der ielfuktion gewählt
sei soll  n Wert          0~3 hat sich abei als    sti erwiesen.
   Bei der reedyartige Konstruktion der Basis muß darauf geachtet werden, daß die
Basismatrix gut konditioniert bleibt Dazu wird ein Parameter e > 0 benutzt, der t p i
scherweise auf e i e n Wert e = 0.01 gesetzt wird. Außerdem sollte der Rechenaufwand
vertretbare G r e z e bleiben, denn die Präfereze basiere ohehin nur auf heuristische
Überlengn.

     ALGORITHMUS 10 (KONSTRUKTION EINER STARTBASIS)
     Sei x E Wm+n und n e i e P e r m u t a t n der Indzes 1,            m    n,    e r t daß uV
     uVi+1 fü all i gilt
     Schritt 0    (Itialsierung):
                 Seze
                 X 4 0,
                 i 4 0 und
                          0
     Schritt 1: i    ( i
                    all i =              ermiiere

     Schritt 2   Sei       A%._ und f    max{                         < m + n
                  all für alle 1 < j < m + n g                         er ,j <
                       ehe zu Schritt 1.
                 So    seze k        armax{

     Schritt 3   Seze xk       <   1

     Schritt 4         all j, mit a   0 und
                        Setze     — 1
                        und         PU{i

     Schritt 5   Seze
                          P U          } und


     Schritt 6: Gehe z        Schritt 1.


     SATZ 31
     Nach Ablauf von Algrithmus              10 ist       eine permutierte Dreiecksmatrix. Fall
        = n ist diese reguär
1.8. TIPS UND TRICKS


  EWEIS:
Sei    der e t e i de Schritten 4 oder 5 zu       h i z u e f t e I d e x . Wir zei

                                            e =     fef,                                 (1.1

d.h. A ist e i e permutierte reiecksmatrix. Dies gilt i jedem Fall für e = 1. Nach edem
Schritten gilt jeweils [xh       > ^ 4 ^ = 0). Nun wird i Schritt 4 P um ei     I d e x j mit
Xj 0 erweitert h. (1.125 ilt auch ach Schritt 4. Schritt 5 wird k zu P hinzugefügt
wobei in Schritt 2 noch (1.125 galt. Da in Schritt 4 j ^ k sein muß trifft dies auch noch
in Schritt 5 zu. Da die Schritte 4 d 5 die einzi      Schritte s i d , die manipulieren, ilt
(1.     auch ach Termiatio vo Alorithmus 10                    P. ist ei Dreiecksmatrix
     Eine Dreiecksmatrix ist nau d n n regulär, wenn es in jeder Zeile und Spalte mindeste
ein von Null verschiedenes Element (kurz NichtNullElemet, NNE) gbt. Falls P =
trifft dies für die Zeilen trivialerweise zu. Wird i Schritt 4 P um einen I d e x j erweitert
so enthält anschließend die Spalte j ein NNE, d         = ej. a dabei zuvor X             alt ab
es zuvor in dieser Spalte noch kein NNE. Wird in Schritt              r» ZU P hinzugefügt, so war
  ach Schritt     n der Spalte k noch kein NNE. Dies gilt auch noch ach Schritt 4. Da aber
                   z
nach Schritt          ^ 0 ist gibt es nach Schritt 5 in der Spalte ein NNE. sgesamt gibt
es also stets in P Spalten mindestes ein NNE. Terminiert               orithmus    mit P = n
so f d e t sich in jeder eile ei NNE, as de         eweis b e e d e t
apitel

    arallelisieru

Aufgrund der wirtschaftlichen Bedeutun der Linaren Progammierung ist es nicht ver
wunderlich daß es bereits verschiedene Untersuchungen g e b                  hat, wie LPs durch Nut
zung von Parallelität schneller gelöst werden könnn. Ei                      utoren beschreiben par
allele Implementierung       des S i m p l e x o r i t h m u s , währe    a d e r e spezielle Varinte
   B. NetzwerkSimplex [9]) oder völlig andere                   orithmen zugrundeleen [97,
     wird s o a r ei spezieller arallelrecher für               Probleme v o r e s c h l n .
    In der Literatur zur Parallelisierung des SimplexAlgorithmus gibt es Veröffentlichun-
gen, die LPs mit spezieller Struktur betrachten, die für e i e Parallelisierung nutzbar g
macht werden kann [51, 74] Die Mehrzahl der Publikationen befaßt sich jedoch mit dem
üblichen primalen SimplexAlgorithmus. Allerdings gibt es bis auf [13] kein Arbeit die zu
einer Implementierung führt, die mit stateofthe-art sequentiellen Implementierungen kon-
kurriere könnte. ies l i e t zum eine        aran, daß entweder vom SimplexAorithmus in
TableauForm ausgegange wird [20 9 8] oder zum andere die vorgestellten Implemen-
tierungen auf dichtbesetzte Vektoren d Matrizen operiere [91, 78, 43]. Mit dnnbesetz
te Matrizen arbeiten hingegen die in [62, 58, 59] vorgestellte Implementierungen. Jedoch
ist nicht ersichtlich, ob tatsächlich ein leistungsfähiger Code entwickelt wurde. Dies ist nur
für [13] sicherestellt wobei sich die Parallelisierung jedoch nur auf das MatrixVektor
Produkt beim duale SimplexAorithmus mit S p a l t e a s i s b e s c h r k t (vg      bschitt
    1).
    In diesem Kapitel werden die SMoPlex nd oPlex zugrudeelegten arallelisierungs
 nsätze vorgestellt Z ä c h s t wird in Abschnitt 2 1 eine kurze Einführung in das Gebiet des
Parallelen R e c h n s geeben, wobei den drei zentralen Aspekten, nämlich der Zerleung
von Algorithmen in nebenläufig bearbeitbare Teilprobleme, den wichtigsten Klasse vo
 arallelen HardwareArchitekturen sowie den hier zum Ensatz kommenden arallelen Pro
 rammiermodellen je ein TeilAbschitt ewidmet wird. Schließlich werden in Abschnitt
  1.4 die wichtisten G r u d b e r i f       u s a m m e n g für die eurteilung aralleler
    orithme vorestellt
1. GRUNDLEN              DER            PALLELVERRBEI


    Die n u t z a r e N e b ä u f i g k e i t im SimplexAlgorithmus wird   Abschnitt 2.2 heraus
gearbeitet. In je einem Unterabschnitt werden dort die parallele Berechnung des Matrix
VektorProduktes, die Parallelisierung des Pricings und Quotiententest, das B l o c P i v o t i n g
sowie die gleichzeiti Lösung zweier linearer Gleichungsssteme beim steepestedge Pricing
erklärt. Abschnitt 2.25 faßt die Parallelisierungskonzepte          han eines L a u f z e i t d i a a m m s
noch einmal zusammen. Schließlich behandelt Abschnitt 2 3 die parallele ösung dünnbe
setzter linearer Gleichungsssteme auf asis e i e s arallelen L Z e r l e n g o r i t h m u s '



2.1       Grundlagen der Paralelverarbeitung
  is heute hält eine intensive Jagd nach immer schnelleren Rechnern an, um damit immer
 rößere Probleme zu lösen. Als Faustregel gilt eine Verdopplung der Recheneschwindikeit
 lle    M o n t e . Doch wie l g e noch ist diese ntwicklun fortsetzbr?
    Vom theoretischen Standpunkt aus ist die Lichteschwindigkeit als bsolute Grenze
jeder Signlübertragung eine            wenn auch noch lange nicht erreichte        Schranke für
die Rechengeschwindigkeit. Technisch wird es jedoch schon heute immer schwieriger, noch
höhere Taktfrequenzen zu realisieren, da bei Frequenzen im Mikrowellenbereich die Lei
terbahnen innerhalb einer i n t e r i e r t e n Schaltung induktive und kapazitive W i d e r s t n d e
darstellen die d s logische Verhalten des Chips stören können. Mit immer höheren Takt
frequenzen llein können also schon heute d e r a r t i e Beschleuniungen nicht mehr erzielt
werden. Ein Ausweg ist die Ausnutzung von Paralllität, d h das leichzeitige Zusammen
  rbeiten mehrerer Funktionseinheiten um so mehr esultate pro eit zu erechnen
    Vom normalen PC oder WorkstationNutzer unbemerkt wird schon heute bei llen
moderen Computern arallelität ausgenutzt nämlich innerhalb von RISC (reduced in
struction set computer Prozessoren. Vereinfacht sind zur usführun eines ISCBefehls
vier Teilschritte die so RISCPipeline erforderlich [ 8 ]
     1.   fetch:           aden des efehlsbytes
     2.   decode           estimmung des auszuführenden             efehls
     3.   execute          usführun der Operation
          write           Rückschreien der      bnisdaten
    Jeder dieser Schritte erfordert einen T k t z y k l u s so daß ein einzelner Befehl erst nach
4 Zyklen tatsächlich abgearbeitet ist. Beim Pipelining werden die Teilschritte ufeinander
folgender Prozessorbefehle so ineinander verschachtelt daß n c h den ersten              ktzyklen
mit jedem     kt ein neues R e s u l t t produziert wird g . Abb        1)
    Ähnliche Prinzipien werden bei modernen Prozessoren immer weiter ausgenutzt. Mehre
re Pipelines rbeiten arallel superpipelined architecture), es werden mehrer arithmetische
Einheiten parallel eingesetzt (superscalar), bei V e r z w e i g u n n w e i s u n g e n wird jeder Zwei
in einer Pipeline weiter bearbeitet, wobei nicht benötigte Ergebnisse dann verworfen wer
den s p e c u l r execution und vieles mehr   uf ll dies soll nicht tiefer e i n g a e n werden
KAPITEL              PALLELIERUN

                                   Eingabedaten |
                                    i      i     i       i       i       i       i
                                    i      i     i       i       i       i       i
                                    i      i     i       i       i       i       i

                           fetch



                         decode



                                        ^ssssss^;
                                    i

                      write back




                                                                                      **
                                                                                     eittkt
                                                     V       V       V       V
                                                     Ergebnisdaten
Abbildung 2.1: Das Prinzip des Pipelining moderner RISC-Architekturen. Jeder Befehl ist in vier Mi
crobefehle unterteilt, die jeweils einen Zeittakt beanspruchen. Si werden zeitversetzt abgearbeitet so daß
nach einer Startzeit in jedem Takt ein Ergebnis gewonnen wird.




da hier nur verdeutlicht werden soll, wieviel Parallelitt derzeit schon bei der               usführun
 rein sequentieller" P r o m m e intern usenutzt wird
     uch auf einer groben" Ebene ist die Nutzung von Parallelität zur unbemerkten
Alltäglichkeit eworden. Bei jeder MultiprozessorWorkstation r e e l t das Betriebssystem
die parallele Bearbeitung verschiedener Prozesse auf verschiedenen Prozessoren eder ein
zelne Prozess wird jedoch weiterhin sequentiell useführt
    Das parllele Rechnen beschäftigt sich mit der Nutzung von P a r l l e l i t t , die zwischen
den beiden o.g. Ebenen nzusiedeln ist: der alorithmischen Parallelität die bei der Lösun
mancher Probleme n u t z a r gemacht werden kann. Während die Nutzung von Nebenläufig
keit auf Microcode und Betriebssystemebene ohne Zutun des Benutzers gewährleistet wird
muß der P r o m m i e r e r für die Nutzung aorithmischer   llelitt selbst soren
     Um algorithmische Parllelität nutzbar zu machen, müssen drei Voraussetzungen erfüllt
sein. Es muß eine geeinete Zeregung des Problems in unabhängige Teilprobleme erfolgen
es bedarf geeigneter paraller Progrmmiermodelle zur Formulierung des parallelen Pro
 ramms, und schließlich brucht man eeignete Hardwre, auf der parallele Programme
ausgeführt werden können. Diese drei spekte werden in den folgenden drei Abschnit
ten beleuchtet Anschließend werden in Abschnitt 2.1. einige rundlegende         riffe und
  u s m m e n h ä e für die ewertun von p l l e l e n P r o m m e n vorestellt
1. GRUNDLEN             DER            PALLELVERRBE


2.1.       Zerlegung in n l ä u f i g e                Telprolem
Um einen parallelen Algorithmus zu entwerfen, muß das Problem in voneinander un
 b h ä g i berechenbre Teilprobleme zerlegt werden. M n unterscheidet zwei grundlegende
 e r l e u n s p r i n z i p i e n zwischen denen jedoch eine V i e l z h l von Mischformen m l i c h sind

Funktionale D e k o m p o s i t i o n
           Bei diesem Zerlegungsprinzip werden u n a b h ä n i g e Teilfunktionen identif
           ziert in Beispiel dafür sind die Teilschritte beim Pipelining in RISC Prozes
           soren. Offenbr erlaubt dieses Prinzip nur die Nutzung von so viel Prozessor
             lementen ( P s ) wie Teilfunktionen identifiziert werden

Datenparallelismus
           Dieses Zerleungsprinzi findet oft Anwendung, wenn gleichartie Funktio
           nen auf einem großen D a t e n s t z ausgeführt werden üssen, etwa bei der Be
           rechnung einer Vektorsumme. Jedes P E bearbeitet dabei eine Teilmenge des
           Datensatzes, wobei alle PEs d i e s e l e Funktion (z.B. die Summenberechnung
           ausführen. Genügend Daten vorausgesetzt e r m g l i c h t dieses ekompositions
           schem die effiziente Nutzun einer roßen n z h l von P

     Nur in einfachsten Fällen sind Compiler in der Lage, bestehende (sequentielle) Pro
    mme auf      ten und Kontrollflußabhängigkeiten zu untersuchen und in entsprechende
parallele Programme umzuwandeln Oft ist es jedoch möglich und ö t i , den Programma
blauf zu modifizieren um mehr Nebenläufigkeit zu erschließen. Derartiges wird jedoch nie
von einem Compiler geleistet werden können, denn woher sollte dieser wissen, ob d s modi
fizierte Programm das ursprüngliche Problem immer noch löst? Dies kann bereits n dem
einfchen Problem der Maximumsbestimmung verdeutlicht werden. Bestimmt man das ma
ximale Element in einem Feld mit einem sequentiellen Computer, so wird dies üblicherweise
mit einer Schleife über lle lemente implementiert. Gibt es nun in dem Feld mehrere le
mente von denen der maximale Wert a n e n o m m e n wird, so findet der Algorithmus je nach
Implementierung d s erste oder letzte maximale Element. Ein parallelisierender Compiler
müßte dies genau nachbilden auch wenn für die Korrektheit des P r o a m m e s die Bestim
mung eines beliebigen m a x i m l e n Elements hinreichend wäre in p a l l e l e r Algorithmus
bei dem jedes P E ein maximales Element aus einer Teilmenge aller Elemente bestimmt
von denen anschließend eines a u s g e w h l t wird, önnte z.B. das zeitlich zuerst oder d s von
dem P E mit der kleinsten Nummer gefundene auswählen. Dementsprechend k n n auch
der Ablauf des p r a l l e l e n Programmes von dem des sequentiellen abweichen        Kapitel 4
wird dies bei den Testlufen der            llelen Implementierunen des S i m p l e x o r i t h m u s
erkenn
    U n a b h g i g von dem gewählten ekompositionsprinzip bedarf es zur Koordinierun
der Arbeit eeigneter Kommunikati       und Synchronisation. Beides führt i.a. zu einem
zusätzlichen Zeitufwand zum reinen Rechenaufwand       ußerdem können Wartezeiten ent
stehen wenn eini Prozessoren uf d       intrefen von Daten oder die Snchronisation mit
KAPTEL       2         PALLELISIERUN


 nderen PEs warten müssen. eshalb ist die mittlere Rechenzeit zwischen aufeinnderfol
 enden Kommunikationen bzw Synchronisationen eine wichtige Kenngröße von            allelen
Algorithmen, die man die Granularitä eines paallelen         gorithmus nennt. Man unter
scheidet zwischen feiner mittlerer und rober G r n u l r i t  wobei jedoch keine definierte
 uordnun vorlie


2.1.             lele H r d w
Erste Computer die P a l l e l i t ä nutzen wurden in Form von Vektorrechnern entwickelt
Sie trugen der Tatsche Rechnung, aß häufig Operationen auf Vektoren hoher Dimension
auseführt werden, was sich gut zum Pipelining eignet. Dfür wurden sog. Vektoroperatio
nen in den ProzessorBefehlsstz aufenommen, die eine PipelineBearbeitun initiieren
Dies verhalf Vektorrechnern zu einem beachtlichen Geschwindigkeitsvorteil genüber se
quentiell arbeitenden Mikroprozessoren, der nun      er durch die Verbesserun von ISC
Prozessoren immer weiter dhinschwindet
   Die Idee lag lso (nicht zuletzt auch aus Kostengründen) nahe viele leistungsfähi
RISCProzessoren zu einem Prallelrechner zusammenzuschließen. amit erschließt ma
über vektorartige h i n u s noch anders strukturierte Parallelität, z u m l moderne orith
men oft kompliziertere Datenstrukturen statt dicht besetzter Vektoren verwenden     s eine
Vektorisierung ausschließt
    Es gibt eine Vielzhl technischer Möglichkeiten, einen Zusammenschluß von Mikropro
zessoren zu einem Pallelrechner auszuführen, die jeweils Vorzüge für gewisse nwen
dungsgebiete aufweisen. Die wichtisten Unterscheidungsmerkmale verschiedener P l l e l
rechnerrchitekturen bestehen beim Korollfluß und dem Specherlaou


2.1.2.1     ontrollfuß

Flynn führte folgende     robe Klassifizerun      de Kontrollfluss        von        llelRechner
  rchtekturen e n [


SIS            ingle intructiostream     single data)
                erbe     ndelt es sich um enen normlen equentellen Computer.

SIM           single inructinstrea           multiple data)
             Alle PE      nes solchen arllelrechners führen           jedem Takt dieselbe In-
             struktion au (oder überspringen diese), allerdigs jede auf eigenen D t e n .
             Beispiele für solche P l l e l r e c h n e r sind MASPAR und die Connection Ma
             chine CM- von Think            Machines Inc.. Heute gibt e jedoch keine aktuellen
             Implementerunen d               Modell mehr, d s sich       zu r e t r k t i v e r w e n
              at.
GRUNDLGEN           DER        PALLELVER                                                95


  IM            (multiple inctionstream          multiple daa)
                Bei solchen Pallelrechnern verfügt jedes PE ber einen eigenen Kontrollfluß
                und b e a r b t e t eigene Daten. Insbesondere kann jede Workston-Cluster
                als MIMD-Rechner aufgefßt werden, was nde der 80er Jahre dazu führte,
                spezelle MIMD-Rechner al unnötige Dinosaurer des Supercomputing abzu-
                tun. s t sich jedoch herusgestellt, d ß nur solche SpezelRechner uch
                über genügend K o m m u n o n l e i s t u n verfüen, um wete A p p l o n f e l
                der abzudecken.

    In dieer N o t i o n bleibend, hat an mit SPMD (single proram multiple daa) eine
    ondere Betriebsart" von MIMD-Rechnern enannt, bei der alle P s dasselbe Pro
    mm b e a t e n . Des ist eine ute Modellierun      ne IMD-Rechners auf einer MIMD-
Maschne. S bietet sowohl Vor- a s auch N c h t e l e gegenüer enem echten SIMD-Rechner.
Der     chteil besteht darin, da keine mplizite Snchronisierung aller      s vorliet, so d
explzit nchronisiert werden uß. Dfür kann aber im SPMD-Fll be ner Verzwe
 ung, die bei verschiedenen PE unterchedlich            fällt, jede PE einen eigenen Zweig
 usführen entsprechend dem lokalen Ergebis der T t b e d i n u n , whrend dies bei iner
SIMD-Maschne zu einer gewissen Sequentialisierung führt. Die dam verundenen Ge-
 c h w n d i g k e u ß e n haben d e A k e h r von SIMD weter efördert.


2.1.2.2     peichermodelle

N e e n dem Kontrollfluß ist das Specherlayout ein wchtiges Unterschedungskrterum für
      llelrechner. M n unterchedet ro zwischen P l l e l r e c h n e r n m

       gemeinsamem Speicher,          denen   lle P s auf den       mten Specher zurefen
       können, und olchen m
        ertem      Specher, b i denen jede           er igenen Specher verfgt,      uf das
        uch        nzig zurefen k n n .

        chtig ist diese Unterschedung aus zweierlei insicht. Vom technischen Stndpunkt
ist es (in finnziell reistischen Grenzen) nicht möglich, Paallelrechner mit gemeinsamem
Speicher für mehr a heute etwa 16 rozessoren zu reisieren. Noch mehr rozessoren
  lockieren sich      e n t i g b m Zug   uf d     aten   Specher, was      Skerbarke
     . Abschntt              eentrchtigt.
    Dagegen können Parallelrechner m verteltem Specher aus mehreren ausend P
zusammengesetzt werden, die mit einem Kommunikionnetzwerk verbunden sind. Som
sind Pallerechner    verteltem Speicher   onder für olche A l o r t h m e n eeignet, d
 ut     eren.
  Parallelrechner m gemeinsamem Specher gelten        ie leichter zu programmierenden
Computer. D s gilt   onder für d     llelisierung b t e h e n d e r P r o m m e , denn
KAPEL        2     PALLELISIERUN

 emensamem Speicher ist            möglich, sgehend vom quentelle         gramm, die P
allelisierung schrittweise zu vollziehen. Die gute Skalierbarkeit von Parallelrechnern m
verteltem Speicher g e e n b e r der einfcheren Progrmmierbarke von Architekturen m
gemeisamem Speicher hat zu vielerle Entwcklunen eführt, physikaisch verteilten Spei
cher logisch      e m e s a m e n Specher ddressierba zu      lten (virtu     red memory).


2.1.3        aralele      P o g r a o d e l l e

Die Nutzung agorthmischer P a l l e l i t ä t erfordert neue Programme, b der d e Arbe
mehrerer Funktonsnheiten eeignet koordniert wird. Zur Formulierung derrtiger Pro
gramme, wurden verchiedene     . parallele Programmiermodelle entwickelt. Drunter ver
 teht m n d e Men der e r e t e l l t e n M ö c h k e t e n zur Formulerun von

      Neenlufket,

      K o m m u n o n und

         nchronison.

  rinzipiell sind e verschiedenen P r o m m i e r m o d e l l e glech mächtig. Sie unterscheiden
sich jedoch erhebch in dem Komfort ei ihrer Anwendun für verschiedene Algorithmen
und der effizienten Implementerbarkeit für verschiedene Prallelrechnerarchitekturen. Ins
  esondere können sie de       cht losgelö von der jewe z u r u n d e l e n d e n Archtektur
  etrchtet werden.
    Bei verteiltem Speicher m s s e n Daten von einem E zum anderen g e l e n , sie müssen
k o m m u n e r t werden. Message-Passing ist e n Programmermodell, das di Kommunka
  on expliit dem Programmerer           erläßt. D e Synchronisaon erfolgt dann mpliz            ber
     Kommunikation, ndem e n PE auf die intreffenden Daten w r t e t . Bei disem Pro
grammermodell unterchedet der P r o m m i e r e r expliz zwischen chnellen lokalen Spe
cherzuffen und dem ngsameren Zugr auf entfernte D t e n . Dies fördert d e Lokalitä
und d a m t d      ffizenz olcher p l l e l e n r o m m e uf P l l e l r e c h n e r n m verteltem
Specher.
    Dasselbe Programmiermodell könnte auch für enen Parallelrechner mit gemeinsamem
Speicher verwendet werden. Allerdings bedeutet das Packen und Verschcken von N c h -
 ichten zwischen den Prozessen enen unnötigen Aufwnd                     genüber dem rekten Zu
 uf die Daten, der a für alle PE möglich ist. Solch ein drekter Zugff muß a l l e r d g s
   s Gründen der atenkonsistenz ynchronisiert werden. Das hared-Memory Program
miermodell stellt daher explizite Synchronisationsmögchkeiten zur Verfügun                  ährend
  ne K o m m u n t i o n mplizit ü e r Synchronisation r e i s i e r t wrd. Tabelle          ßt d
  igenchften        der p l l e l e n P r o m m e r m o d e l l e z u m m e n .
GRUNDLGEN             DER       PALLELVER

                   Prommermodell                nchronisaon          Kommunon
                   Message-Passin                 mpl                  expl
                   Shred-Memory                  expl                   mpl
Tabelle 2.1: R e a l u n g         Synchrnin        und K o m m u n i n bei v c h i d e n e n p a n     Pro-
grammiermodellen.



    arüberhinas gibt es noch eine Vielzahl anderer paalleler P r a m m i e r m o d e l l e , uf
di ncht näher eingegangen wird, da sie für die Parallelisierun de Simplex-Alorthm
uneeignet sind oder für d verfügbaren P l l e l r e c h n e r cht e r e t e h e n .


2.1.4          u n d b i f f e z r B e w r t u n g paraleler A l g o t h
E bezeichne Ts ie Auführungszeit eine A l g o r t h m s auf einem Prozessor und Tp d
Zet d e der A l o r t h m uf p Prozessoren enötigt, d n n nennt m

                                                S = ^                                                 (2.

die Beschleunigung peedup) de Algorithms für p Prozessoren. Bechränkt man sich
auf Algorithmen, b denen alle rallelen Algorthmen          selbe A r e i t verrichten1, und
vernchlässigt CachigEffekte,    ist offenbar p d m a x i a l errechbare Bechleunigung
Doch wi nahe kommt man an diese Schrnke? Das A m d h l c h e G e t z gib ne ere
Schrnke für d e errechbare Bechleunigung an [


       SATZ 32 (AMDAHL'SCHES GESETZ)
        ei Ts  TQ + Tj e Zit für die sequentielle Ausführung ines Alorithmus
        obe der Antel T0 im Gegensatz zu T nicht parallelisierba sei. Dan i
         a x l erzielbre Beschleuning  (abngig     v der Anzl       der PEs)

                                                       T
                                                                                              (2.2


  EWEIS:
Für p Prozessoren gilt Tp          T0 + T/p wor          t (2.   für p —         e Behuptun         folt.

   1
     Anders ist es z.B. bei manchen Suchalgorithmen wie Branch-and-Bound. Wenn im parallelen Fall das
erste PE das gesuchte Element findet, so terminiert der Algorithmus evtl. schon, nachdem insgesamt weni
ger Elemente untersucht wurden als im sequentiellen Fall. Somit leisten der parallele und der sequentiell
Algorithmus nicht dieselbe Arbeit — ein superlinearer Speedup, d.h. S > p, ist möglich.
KAPITEL 2               PALLELISIERUNG


   Diese Schrnke ist nur theoretisch zu vertehen. Im Normlfall wird si ncht erreicht,
weil durch zusätzlichen Aufwand b der Parallelisierung (etwa zur Kommunikation oder
  n c h r o n i s o n ) z u t z l c h Ze vereht, n der ken Betrag zur un eleistet wrd.
    D Schrnke kann aber uch erschritten werden, ja sogar ne superlneare Beschleu-
nigun ist mölich. Dies lie        Cache heutiger Computerarchitekturen. Typischerweise
verfügt jeder Prozessor enes Prallelrechners auch über eigenen Cache (d gilt cht für
den T3D von CRAY). Dadurch können bei mehreren Prozessoren mehr Daten             ache
  gen und somt schneller       betet werden,          n enzelner rozessor (m      nem
   chrnkten Cche) n der age w r e .
    Dem etwas entmutigenden Amdahl'schen Gesetz, daß e Skaierbarkei                  rk ein-
schränkt, setzte Gustavson ne Beziehun e n t e n , d e d e Nützlichket de              allelen
Rechnen für die Berechnung größerer Probleme bechreib scale-up) [56]. Dabei geht er
davon      , daß sich  m Übergang zu größeren Probleminanzen a. der p a l l e l e Antei
der A r i t erhöht, se equentieller Anteil jedoch konstnt leibt. Wenn so auch die Be-
 chleunigung bei der Löun     nes Prolems b c h r ä n k t leibt, o e r m ö c h t P l l e l
  e Löun rößerer r o l e m n z e n .

      SATZ 33 (GUSTAVSON'S GESETZ)
         i N in Maß für e Größe iner Probleminsanz. Se Ts         T0 +
      Zit de ein inzelner roessor u dessen Lösung beansprucht, wobei Xj                 Np
      de parallelisierbare ntl beichet  und der inherent sequentielle Antl              T0
            nt sei. Dn i       it Proessore errechre       Beschleunigng



 EWEIS:
Für p Prozessoren gilt Tp T0+T/p = T0 + N wor             it (2.      S = (T0 + Np)/(T0 +
p+l-    p)T0/(T0 +        p+1-   p)T0/   ween p              folt.
                                                                                              •
Ende der 80er J h r e veruchte Gustavson          t sener Bezehun einen mental lock ge-
 en „massive P a r l l e l t ä zu bekämpfen [56]. Zu dieser Zeit erwrtete m für die Zukunft
Parllelrechner, d au tausenden bis mllonen Prozessoren zusammengeetzt sind. Heu-
te h man von desen Vorstellungen weitgehend b s n d enommen und verteht unter
   assiver P l l e l t ä eher e i g e Hundert PE
      n definert ferner d e Efizinz     ne       llelen A l o r t h m

                                              -                                       (2.3
                                              p
Sie ist ein M ß dafür, n wi weit d e PE eine Parallelrechners t a c h l i c h genutzt wer
den. Der B e i f f der Sklierbkeit   chreibt, wie sich d e Effizienz mi zunehmender ro
zessoranzahl verhält: Ein parllele   r o a m m heßt        erbar, wenn     ne Effizenz
   nzunhme weterer PE nur wenig a b m m " .
BENLA UFIGKEIT I                     SIEX-GORITHM


    Es gibt noch eine Vielzahl weterer Maße zur Bewertung von parallelen Alorithmen.
  e alle vorzustellen, ist nicht da Ziel dieser Einführun Stattdessen h a e n r un auf
    in d e r A r t relevanten G r ß e n     chränkt.



2.        Nebenläufigkeit i                   Siplex-Algorthmen
Das Amdahl'che Geetz (Satz 32 gibt eine obere Schranke für die maximal erreichbare
Bechleunigung durch Nutzung von Nebenläufigkeit. Vor einer Parallelisierung des Smplex-
Algorthmus sollte man deshalb untersuchen, wo der A l o r t h m u s wieviel Zet verbraucht
und ob die für den Hauptanteil verantwortlichen Teile überhaupt parallelisiert werden
können. Taelle 2.2 zeigt d Auftelun der Laufzet für zwei verchedene             tLP

                                          rolem             fit2d    tocfor
                                   Anzahl Zeilen               25      1667
                                  Anzahl Spalten              500         69
                                          Prici          0.00         30.
                                  Quotiententest          23.3          2.
                           Matrx-VektorProdukt            66.6          0.5
                                 U-Faktorisierun         0.002          3.
                           neare leichungssystem          0.02          8.5
Tabelle 2.2: Zeitverbrauch des dualen S i m p l A l h m u s mit s p e d g e P r n g für zwei B e p i
probleme bei Verwendung einer Spaltenbasis

      ffenbar untercheidet sich die Zevertelung für bede LPs erheblich, so da zu erwar
ten ist, daß es bei der Parallelisierung unterchiedlicher Konzepte bedarf. Pricing, Quoti
ententest und Matrix-Vektor-Produkt eignen sich aufgrund hrer ittleren Granulariät zu
einem datenparallelen Ansatz. Für das LP fit2d nehmen d i s e eile insgesamt über 99%
des gesamten Zeitverrauchs in Anpruch. Damit kann für eine geeignete Hardware nach
dem Amdahlchen          etz ne ute Skalerbarket erwartet werden.
    Daggen wrd man für da P r o l e m stocfor bei d e r Art der Parallelisierung nach dem
Amdahl'chen Gesetz die Lösungszet auf maximal 0% reduzeren können. Um darüber
hinau zu kommen, muß eine Parallelisierung auch bei der Lösung inearer Gleichungssyste-
me anetzen. Dazu werden zwei Wege unterschiedlcher Granularität verfolgt. Auf mittler
er bis grober Granularität wrd der Simplex-Algorithmus o umstrukturiert, daß mehrere
Glechungssysteme gleichzeig gelöst werden (vgl. Abschnitte 2.2.3 und 2.2.4). Al zwei
ter Weg rd ein paralleler Löser für lineare Glechungssysteme entwickelt (vgl. Abschnitt
2.3). D a e i ist d e Granularität für LP-Probleme jedoch o fein, daß kene Beschleunigun
erzielt wrd. Für Matrizen au anderen Berechen             en erreicht e Implementerun
  ne ute Bechleunigun
     In den folenden Abschntten wrd d e N e e n l ä u f k e t aufezeigt, d         sich zur Paralle-
00                                                  KAPIEL      2            PALLIERUNG


 isierung der im ersen Kapitel beschriebenen Simplex-Algorithmen bietet. Dies g c h e h t
exemplarisch für B a e n i Spaltendarstellung, w o e i jedoch alle auf die Verwendung einer
Z e l e n s i s üertragbar ist. Dabei bezechnet p d e Anzahl der zur V e r f u n g stehenden
PEs, d von 0 bis (p 1 durchnumerert seen. Ferner s e n n und m die Anzahl der
Spalten zw Zelen der N e e n e d u n g s m a t r x A de zu l e n d e n LP


2.2.1     Paalleles M r i x - V e k t o r - r o d u
In Schritt 2 oder 4 der Simplex-Alorithmen wird das Matrix-VektorProdukt
                                       AgT     AhT                                      (2.4)
berechnet. Diese Operation kann ohne Kommunikation oder Synchronisation nebenläufi
durchgeführt werden, indem jedes PE das Produkt für eine Teilmenge der Spalten von A
berechnet. Im einfachsten Fall bearbeitet PE i die Spalten _(i 1) • n/p,..., i • n/p. Dies
führt i.a. jedoch nur für eine dichtesetzte Matrix A zu einer effizienten Implementierung.
Im dünnbesetzten Fall können die NNEs ungleichmäßig auf die Spalten von A verteilt sein,
so daß einigen PEs mehr Arbeit zufällt als anderen. Dadurch warten letztere auf die, denen
mehr Arbeit zuewiesen wurde.
    Dieses Problem wird durch den Begriff des Lastausgleichs (load balancing) umschrieben.
Die Aufgabe des Lastausgleichs ist es, allen PEs in etwa gleich viel Arbeit zuzuweisen, da-
mit keine unnötigen Wartezeiten auftreten und so die Arbeit insgesamt möglichst schnell
bewältigt wird. Man unterscheidet zwischen statischem und dynamischen Lastausgleich.
Während im ersten Fall die Arbeit zu Beginn aufeteilt wird und diese Aufteilung anschlie
ßend unverändert bleibt, wird beim dnamischen Lastausleich anhand von Laufzeitdaten
die Aufteilun    namisch a n ß t .
   Für das Matrix-VektorProdukt im Simplex-Algorithmus wird ein statisches Vertei
lungsschema gewählt, um keinen zusätzlichen Aufwand zu erzeugen. Die Zerleun der
Indexmene ist jedoch für beide Rechnerarchitekturen unterschiedlich.
   Bei der Parallelisierung für Multiprozessoren mit verteiltem Speicher, erfolgt die Vertei
lung durch Aufteilung der Nebenbedingungsmatrix auf die Prozessoren. Die dabei gewählte
Aufteilung hat jedoch noch Implikationen für die Parallelisierung anderer Operationen im
Simplex-Algorithmus als das Matrix-VektorProdukt, nämlich beim Update des Vektors g
und beim Pricing- bzw. Quotiententest (vgl. Abschnitt 2.2.2), aber auch bei der Aktualisie
rung der Werte /?, beim s t e e e s t e d e Pricin. Daher kommt der Verteilun eine besondere
Bedeutun zu.
   Für DoPlex hat sich eine zklische Verteilun als ünsti erwiesen. Diese ist durch

                                     pe(i)      mod p                                   (2.5)
bestimmt, wobei pe(i) die Nummer des PEs angibt, das die i-te Spalte von A speichert.
Durch die Verteilun der Daten auf die PEs wird imlizit die Parallelisierun der Arbeit
BENLA UF                             EX-GORITHM


vorgenommen: Jedes PE berchnet de Tel de Matx-VektorProdukts, zu de                    es di
Vektoren von A eichert.
    Das mit der Verteilung des LPs und damit der Arbeit g e m ß (2.5) ein vernünftiger Last
ausgleich erzielt wird, entspricht der Beobachtung, daß meist ähnliche Strukturen des LPs
in der Nebenbedingungsmatrix nahe beieinander zu finden sind. Jede Struktur wird daher
gleichmäßig auf alle PEs verteilt, so daß jedes PE von jeder Struktur einen Teil verwaltet.
Dadurch wird insbesondere auch vermieden, daß einige PEs nicht an dem Lösungsprozess
teilnehmen, weil sie zufälli an den relevanten Strukturen nicht artiziieren. Davon wird
in Abschnitt 2.2.3 noch die Rede sein.
    Die Version für Parallelrechner mit gemeinsamem Speicher, SMoPlex, arbeitet auf der-
selben Datenstruktur wie die sequentielle Implementierung SoPlex. Dadurch wird eine Ver-
teilung der Arbeit von (2.4) gemäß (2.5) nicht mehr sinnvoll möglich. Sie würde es erforder
lich machen, daß die Matrix spaltenweise traversiert wird, und jedes Ag, als Ag, = AhT -AA
berechnet wird. Da aber Ah in der R e e l dünnbesetzt ist, werden so mehr Rechenoera-
tionen durcheführt, als wenn man
                                                 A
                                     Ag     ^        M*

berechnet.
    Um solch eine zeilenweise Berechnung auch im parallelen Fall durchzuführen, ist es
sinnvoller, A in Blöcke zu unterteilen, die jeweils zeilenweise bearbeitet werden. Die Blöcke
werden dabei so erzeugt, daß in jedem Block etwa gleichviel NEs sind. In der R e e l
entstehen so Blöcke mit unterschiedlich vielen S a l t e n von A.


2.2.2     Paalleles        ricin und Q u o t i n t n t e s
Beim Pricing und Quotiententest handelt es sich um einen einfachen Suchalgorithmus, bei
dem aus einer M e n e von Werten ein maximales (bzw. minimales) Element bestimmt wird.
Die Parallelisierung solch eines Suchalgorithmus liegt auf der Hand. Man zerlegt die Men-
ge in Teilmengen, aus denen jeweils ein PE das maximale (minimale) Element bestimmt.
Anschließend wird von den p Elementen das beste ausgewählt. Diese Auswahl kann mit ver
schiedenen Algorithmen erfolen, wobei der ünstiste jeweils von der zurundelieenden
Hardware a b h ä n t
    Im verteilten Fall, ist die Aufteilung des Suchraumes bereits durch die Verteilung des
LPs und damit einhergehend von den Vektoren g und Ag vorgegeben. Hat nun jedes PE
das lokale maximale bzw. minimale Element bestimmt, gilt es, aus diesen p Kandidaten
das global beste zu finden und allen PEs bekanntzugeben. Einen Algorithmus der solches
leistet nennt man Gossiping. Eine optimaler Algorithmus für dieses Problem 73] ist als
Algorithmus 11 für das ite von p 2P PEs anegeben. Die anderen PEs führen gleichzeitig
denselben Alorithmus aus, wobei i die jeweilie PE-Nummer ist. Die Operation c = a xor
02                                                 KAPITEL 2          PALLELERUNG

 b e r h n e t bitweise das ausschließende Oder von den im Duals     d a r e l l t n Zahle
 und b. Sie wird von heutien Prozessoren direkt unterstützt.

      ALGORITHMUS 11 (GOSSIPING)
      Sei g das lokale Datum des i t e n PEs.
      Für j         0,...,p-l:
      Schritt 1   Setze
                  k «     (i xor 2j)
      Schritt 2   Sende g zu PE k und
                  Empfange / von PE

      Schritt 3   Setze
                          log

Nach Termination enhält g auf allen PEs das globale Ergebnis. Für den Fall der Maxi
mumsbildung berechnet die Operation l o g     maxlj, g}. Allgemein kann für „o" jedoch
jede kommutative und assoziative Operation verwendet werden. Andere mögliche Opera-
tionen währen z.B. die Berechung einer Summe oder eines Produktes. Die Assoziativität
der GossipingOperation „o" ist wichtig, da die Operationsreihenfole von der Kommuni
kationsstruktur und nicht von der Operation v o r e b e n wird.
    Die Arbeitsweise des GossipingAlgorithmus ist in Abbildung 2.2 dargestellt. Er arbei
tet in p Phasen, die jeweils aus einer zweiseitigen Kommunikation und einer Berechnung
der GossipOperation „o" besteht. In Schritt 1 wählt PE i einen Partner k für die Kommu-
nikation. Dies geschieht so, daß PE k gerade PE i als Partner wählt. Beide PEs tauschen
in Schritt 2 ihre lokalen Daten g aus und führen mit den eigenen und den vom Partner
empfangenen Daten die GossiOperation aus. Da diese kommutativ ist, ist das Ergebnis
für beide PEs dasselbe. In der nächsten Iteration wählen sich i und k neue Partner so, da
die jeweiligen PEs gerade in der vorigen Iteration ihre Daten abgeglichen haben. Dadurch
haben anschließend schon vier PEs dasselbe Erebnis bestimmt. Dies wird fortesetzt, bis
die Daten aller 2P PEs a b l i c h e n sind.
    Die Struktur des GossipingAlgorithmus besteht aus p ineinander verschachtelten Fan-
in- und Fan-outBäumen. Von jedem PE eht ein binärer Fan-out-Baum los, der nach p
Schritten alle PEs erreicht hat. Gleichzeitig ist jedes PE der Endpunkt eines binären Fan-
in-Baumes, der sich von allen PEs nach p Schritten auf das eine zusammenzieht. Somit
erreicht die Information jedes PEs jedes andere.
   Für Parallelrechner mit gemeinsamem Speicher könnte im Prinzip ein Äquivalent zum
Gossiping-Algorithmus implementiert werden, wobei an die Stelle der Kommunikation
die Synchronisation tritt. Da solche Rechner nur aus wenigen PEs bestehen (vgl. Ab-
schnitt 2.1.2.2) muß das beste Element nur unter wenigen Kandidaten ausgewählt wer
den. Diese Aufgabe wird aber schneller von einem einzigen PE mit einer sequentiellen
Schleife auseführt, in der keine (zeitaufwendie) Snchronisation notwendi ist. Deshalb
NLA UFKE                             PLEX-GORITHM                                              03




                             Ä
                              7                      V
                PE                           ^

                PE

                PE

                PE

                PE


    bbildung 2.2: Kommunikations und Bearbitungsstruktur von GossipingAlgorithm für p = 8 PEs
    de Säule präsentirt d n Z i t v e a u f ein PEs. Graue Be              darin s y m b o i s i n die Beechnung
der G o s s i p O r a t i o n „o", ä h r n d weiße B e e c e di durch Kommunikation b d i n g t n Wartezeitn dar
stelln. Die Nachrichtn sind dur P f l dargstellt. Di Kommunikationsstruktur wird am b e s t n a p
ineinand verflocht             binäre Bäume schriebn. Bei j r Kommunikation werd zwe PEs synchroni
s i r t , so daß am nd lle PEs s y n h r o n i s i r t sind.



 chreibt jedes PE sein Maximum in eine Variable und w a r t t n enem sog. Barrier
Synchronisationsunkt, bis alle diesen erreichen. Dann wählt ein PE das lobale Maimum
aus


2.2.3           ock-Pivoting
Das nun vorzustellende Block-Pivoting unterscheidet sich grundsätzlich von den in den vo-
rigen Abschnitten beschriebenen Parallelisierungsansätzen, die einen datenparallelen An-
satz verfolgen. Beim Block-Pivoting handelt es sich hingegen um eine Umformulierung des
Simplex-Algorithmus derart, daß auf funktionaler Ebene mehr Nebenläufigkeit entsteht.
Eine solche Parallelisierun wird nie von einem Comiler erbracht werden können.
    Das Block-Pivoting begegnet dem Problem, daß mit den Parallelisierungen aus den vo-
rigen Abschnitten zwar gute Beschleunigungen der Lösung von LPs mit ähnlicher Struktur
wie „fit2d" zu erwarten sind, jedoch nicht, wenn die Lösung von linearen Gleichungssyste
men einen roßen Anteil des Rechenaufwandes beansrucht. Für diesen Fall erschließt es
KAPITEL 2          PALLELERUNG

zusätzliche Nebenläufkeit, be der m e h r e G l e i c h u n m e      arallel elöst weden.
     Grundlage ist eine Beobachtung, die bereits für das multiple Pricing ausgenutzt wurde,
daß nämlich beim Pricing wählbare Indizes nach einer SimpleIteration oft wählbar blei
ben. Nach jedem PricingSchritt wird zu dem gewählten Index ein Gleichungssystem mit
der aktuellen Basismatrix gelöst. Wählt man statt eines einzien Index eine M e n e von p
Indizes, so können alle Prozessoren je ein lineares Gleichunssystem für jeden Index lösen.
Anschließend wird zunächst nur ein Index für die Simplex-Iteration verwendet. Ist beim
nächsten Pricing einer der Indizes der vorien Iteration weiterhin wählbar, so wurde das
zugehörige Gleichungssystem bereits (fast) gelöst, wenn auch mit der Basismatrix aus der
vorigen Iteration. Die Lösun muß also lediglich auf die neue Basismatrix aktualisiert wer
den, was i.a. einen wesentlich geringeren Arbeitsaufwand erfordert. Die Aktualisierung wird
gleich für alle noch wählbaren Indizes durchgeführt, damit weniger Wartezeiten anfallen
wenn in den folgenden Iterationen andere Indizes gewählt und für diese die Lösungen ak-
tualiesiert werden. Dies wird so lange fortgesetzt, bis kein wählbarer Inde mehr verfübar
ist. In diesem Fall wird eine neue I n d e m e n e bestimmt.
    Der folgende Satz stellt die Gleichungen für die Aktualisierung der Lösungsvektoren
bei einer Zeilenbasis auf. Die entsprechenden Resulate für eine Spaltenbasis folgen einfach
durch Transposition. Da für den einfügenden und den entfernenden Simle unterschiedli
che T e n von Gleichunssstemen elöst werden müssen, werden beide T e n betrachtet.


     SATZ 3
      ei D G WkXn regulär Af    = rD~      nd Ah = D~e. Dann gilt für die
     Matr D'     + e p(    , ) 1 die aus D du
                                 nie nii   nvirm ustausch dete
                                                 ti oinm er        ile mit
        hergeht     dj ^

                                               MAÄ                               (2.6)

                                                   ^
                                                   ^       ^    Af                 2.7


 EWEIS:
Gleichung (2.7) ensricht (1.10) aus Satz 5, wurde also bereits bewiesen. Dort wurde auch
 ezeigt, da D' = V für V = I + e{D~x            j ) ilt. Nach    8 ) ist demnach

                              D'            D-
                                           D-'(        +       ^e)
                                           D
                                               ~           ffA^
was Gleichun (2.6) beweist.
NLA UFKE                       PLEX-GORITHM                                   05


   Die Vektoren A / und Ag werden bei dem PivotSchritt ohnehin berechnet. Damit
beschränkt sich der Rechenaufwand auf die Addition des Vielfachen eines Vektors und ist
damit wesentlich niedriger als der für die Lösung eines Gleichungssystems. Gleichung (2.7)
wird für den einfüenden Simle benötigt, während (2.6) beim entfernenden Alorithmus
anewendet wird.
    Um überhaupt genügend wählbare Pivot-Indizes zu finden, muß die Suche nach den ein-
zelnen Indizes geeignet aufgeteilt werden. Hier hat sich die Verteilung gemäß (2.5) bewährt.
Daggen wurde bei einer blockweisen Verteilung oft nur ein wählbarer Index gefunden,
denn alle wählbaren Indizes liegen häuf nah beieinander und somit in einem Block. Des
halb wird auch bei der Implementierung für Parallelrechner mit gemeinsamem Speicher
die Arbeit nach (2.5) verteilt und somit anders als für die Berechnun des MatrixVektor
Produktes.
   Damit im verteilten Fall die PEs überhaupt die Gleichungsssteme lösen können, ist
es notwendig, daß jedes PE auch die Basis-Matrix samt ihrer LU-Zerleung lokal zur
Verfügung hat. Dazu muß der jeweils in die Basis eintretende Vektor allen PEs z u ä n
 emacht werden. Dies verursacht einen zusätzlichen Kommunikationsaufwand.
    Man beachte, daß Block-Pivoting den Ablauf des Algorithmus beeinflußt. Während
im sequentiellen Fall das Pricing in jeder Iteration den (im Sinne der jeweiligen Pricing
Strategie) besten Index auswählt, werden beim Block-Pivoting zunächst die p besten In-
dizes gewählt. In der (p l)-ten Iteration danach, wird somit der ptbeste Index einer
frühreren Iteration als PivotIndex verwendet. Der sequentielle Pricer würde wahrschein-
lich einen anderen Index präferieren. Inwieweit sich dies auf die Anzahl der Iterationen
auswirkt, hängt von dem zu lösenden LP ab. Im allgemeinen wird man eine Erhöhun
erwarten, aber auch Verbesserunen werden beobachtet.
    Einen nicht zu vernachlässigen Nachteil hat das Block-Pivoting in Bezug auf die LU-
Updates der Basismatrix. Da beim einfügenden Simlex nicht mehr vor dem Einfügen
eines Vektors in die Basis das Gleichungssystem B         gelöst wird, steht auch der Vektor
Lxr nicht zur Verfügung, der für den Forest-Tomlin Update notwendig ist. Diesen Vektor
explizit neu zu berechnen, impliziert einen nicht vertretbaren Rechenaufwand, so daß beim
Block-Pivotin für den einfüenden SimlexAlorithmus der PF U d a t e benutzt werden
muß.
    M. Padberg gibt in [80] eine andere Interpretation für das Block-Pivoting. Dabei steht
die Frage im Vordergrund, wie der einfügende SimlexAlgorithmus umzuformulieren wäre,
wenn pro Iteration statt nur einem Pivot-Index eine M e n e C von PivotKandidaten
gewählt würde. Am Ende der Iteration erwartet man eine optimale und zulässie Basis
für das LP, das aus der Anfangsbasis und der Kandidatenmene besteht. Für C
entspricht dies gerade den üblichen Gegebenheiten, während für C n das gesamte LP
mit nur einem Block-Pivot gelöst wäre. Die gesuchte Basis erhält man, indem man das aus
der aktuellen Basis und C bestehende LP löst, für das die aktuelle Basis als Startbasis ver
wendet werden kann. Zur Lösun dieses Sub-LPs s c h l t Padber das SimleVerfahren
KAPITEL 2           PALLELERUNG

in Tableau-Form vor, zu dessen Aufstellung lineare Gleichungssysteme für alle Vektore
aus C gelöst und in jeder Iteration aktualisiert werden müssen. Dies entspricht genau dem
oben beschriebenen, das jedoch auch für entfernende Alorithmen erweitert wurde.


2.2.        aralleles Löse       v e r s c h i e r l e a r e r Glechungssysteme

In jeder SimplexIteration sind zwei lineare Gleichungssysteme zu lösen. Beim Block-
Pivoting wird das jeweils erste von mehreren Iterationen zusammengefaßt und parallel
gelöst. Dadurch ergibt sich eine Parallelisierung bei der Lösung des ersten Gleichungssy
stems. Der Rechte-SeiteVektor des zweiten zu lösenden Gleichungssystems wird jedoch
erst von dem Quotiententest f e s t e l e t , so daß ein entsrechender Parallelisierunsansatz
nicht durchführbar ist.
    Für den wichtien Spezialfall des steepestedge Pricings muß jedoch noch ein drittes
Gleichungssystem pro Iteration elöst werden. Hier setzt nun eine funktionale Dekompo-
sition an, bei der das zweite und dritte Gleichungssystem nebenläufig gelöst werden. Im
verteilten Fall löst dazu je eine Hälfte der PEs das zweite und die andere Hälfte das dritte
Gleichungssystem, und anschließend werden die Ergebnisvektoren paarweise ausgetauscht.
Dagegen lösen im Fall von gemeinsamem Speicher nur zwei PEs nebenläufig die beiden
Gleichungssysteme, während alle anderen PEs warten, bis nach Lösun der Gleichunss
steme eine BarrierSnchronisation erfolt.
   Wie bei einer funktionalen Dekomposition von Algorithmen üblich, führt dieser Ansatz
zu keinem skalierbaren Programm; es können lediglich 2 Prozessoren mit sinnvollen Aufga-
ben beschäftigt werden. Allerdings findet man heute immer öfter Workstations mit erade
2 Prozessoren, wofür dieser Ansatz vom Prinzi her besonders ut eeinet ist.


2.2.5         sammenfassung

Abbildung 2.3 zeigt die Wirkung der in den vorigen Abschnitten dargestellten Paralle-
lisierungsansätze mit Hilfe von (nachempfundenen) Laufzeitdiagrammen für den entfer
nenden SimplexAlgorithmus. Für den parallelen Algorithmus werden zwei volle Simplex
Iterationen darestellt, während der entsprechende sequentielle Algorithmus in derselben
Zeit lediglich 1,5 Iterationen bewerkstelligt. Die Teilaufgaben sind mit den Buchstaben a
bis e bezeichnet, wobei der Index die Iterationen numeriert. Die Diagramme zeien zwar
den verteilten Fall, jedoch ergeben sich auch für Parallelrechner mit gemeinsamem Speicher
kaum Unterschiede. An die Stelle des Gossiin tritt dann jeweils eine Snchronisation mit
entsrechendem Aufwand.
   Betrachten wir zunächst den sequentiellen Alorithmus. Er beginnt mit dem Pricing
Schritt (ai), innerhalb dessen das lineare Gleichungssystem aus Schritt 2 von Algorithmus
6 gelöst wird. Dies wird zum Pricing dazugerechnet, um später den Effekt des Block-
Pivotin im arallelen Fall deutlicher zu machen. Es folt die Berechnun des Matri
NLA UFKE                                           PLEX-GORITHM


                           i                                                                                                    i                               i
                                                                                                                                                                i



                                                                                            ;             >                                                     1
                                                       /
                                   
                                                                 i                 '    '             C             "                                  1 1
      |
                                                                 !l                1 1 1                                                   II
      l
               i


               i
                      :• :         i

                                   i
                                                    i            1

                                                                 i         l   l
                                                                                   1    1             1             1           i                       I I



      eo              a                                     c                     . ei .       0,2   .       t>2
                                                                                                              b2    I      C2              &2         I e2 i 03




          Gossiping                    ojuotiententest               Pricing                          Vektor-Operationen            Lineares Gleichungssystem




   bildung 2 3 : Laufitdiagramm für d                                n t n d           i m p A l g o r i t h m u s mit s d g e                          Ping
für in bzw zwei PEs




VektorProduktes AgT = AhA (bi) und der Quotiententest (ci). Anschließend werden
die beiden linearen Gleichungssysteme für A / und für die Aktualisierung der Normen pi
gelöst (di). Schließlich werden alle relevanten Vektoren aktualisiert ( e ) und die nächste
Iteration b e i n n t (a^)
    Wir betrachten nun den parallelen Fall. Die Index-Auswahl im PricingSchritt (ai) be
ansprucht etwas weniger Zeit als im sequentiellen Fall, da jedes PE nur einen Teil der
Indexmenge durchsucht. Jedoch muß am Schluß mit einem Gossi der tatsächlich zu be-
nutzende Index ausgewählt werden. Beide PEs lösen nun mit ihrem Kandidaten ein linears
Gleichungssystem, wobei anschließend der Lösungsvektor zum Pivot-Index dem anderen
PE übermittelt wird. Dies geschieht mit dem Gossip am Ende des Pricing-Schrittes. Man
erkennt, daß der Kommunikationsaufwand den Geschwindigkeitsgewinn durch die Paralle
lisierung der Index-Auswahl wieder zunichte machen kann. Die enauen Verhältnisse sind
  roblem- und architekturabhän
    Nun kann jedes PE seinen Teil des MatrixVektorProduktes berechnen (6i). Hierfür ist
keinerlei Kommunikation erforderlich, so daß die Laufzeit bei einem utem Lastausleich
   enüber dem sequentiellen Alorithmus halbiert werden kann.
    Beim Quotiententest ergibt sich ein ähnliches Bild wie beim Pricing. Zwar wird die Zeit
für die Index-Auswahl auf beide PEs verteilt, jedoch kann die notwendige Kommunikation
zur Bestimmung des wirklich in die Basis eintretenden Vektors den Zeitgewinn wieder
relativieren. Dabei sind zwei Gossis nöti je einer für jede Phase des stabilen SoPle
  uotiententests.
          Anshluß an de                    uotientntest werden die beiden weitern linearn Gleichun
KAPITEL 2           PALLELERUNG

steme gelöst (ci). Zuvor wird edoch mit einem weiteren Gossip der in die Basis eintretende
Vektor allen PEs zugeschickt. Nun löst je eines PE eines der beiden Gleichungssysteme und
schickt den Lösungsvektor dem jeweils andern PE. Bei mehr als zwei PEs werden die PEs
dazu zu Paaren gruppiert. Auch in diesem Schritt ist für die Nutzun der Parallelität ein
zusätzlicher Kommunikationsaufwand öti
    Nach erfolgreicher Lösun der Gleichungssysteme können alle involvierten Vektoren ak-
tualisiert werden (ei). Diese Operation benötigt keine weitere Kommunikation oder S n -
chronisation, so daß wieder eine ute Effizienz erwartet werden kann.
    In dem PricingSchritt der folgenden Iteration wirkt sich das Block-Pivoting aus. Kein
PE muß nun noch einen Index auswählen, da jedes PE ja bereits in der vorigen Iterati
on einen Kandidaten bestimmt hatte. Einer davon wurde für den vorigen Pivot-Schritt
benutzt. Sind die anderen (im Fall von 2 PEs der andere) immernoch wählbar, und die
ser Fall wird in Abbildung 2.3 dargestellt, so muß der in der vorigen Iteration bestimmte
Lösungsvektor lediglich aktualisiert und zu den anderen PEs übertraen werden. So wird
der PricinSchritt über mehrere Iterationen hinwe beschleunigt.
    Die folgenden Schritte unterscheiden sich nicht weiter von der vorigen Iteration. Ledig
lich bei Schritt (02) wurde angedeutet, daß häufig beide Gleichungssysteme unterschiedlich
viel Zeit für die Lösung beanspruchen, was die Effizienz weiter reduziert. Insgesamt bleibt
festzustellen, daß der Kommunikations- (oder Synchronisations) Aufwand sowie Lastaus
gleichsprobleme die Effizienz des parallelen Algorithmus beeinträchtigen können. Je größer
die zu lösenden Problem, desto röber wird die Granularität, und damit die erreichbare
Effizienz.


2.3        arllele ösu                       nnbetzte              linar             lei
              gssystem
Die im vorigen Abschnitt vorgestellten Ansätze zur Beschleunigung der Lösung von Glei
chungssstemen im SimplexAlgorithmus befriedigen nicht vollständig, da sie zu keinem
skalierbaren Algorithmus führen. Deshlb wurde uch ein d a t e n l l e l e r Löser für dünn-
besetzte Gleichungsssteme entwickelt.
   Um es gleich vorweg zu sagen: Wegen der besonders dünnbesetzten Struktur von B s i s
  atrizen und Rechte-SeiteVektoren, die bei derzeit behandelten LPs auftreten, konnte
damit keine weitere Beschleunigung des SimplexVerfahrens erzielt werden. Aufgrund der
zentralen Bedeutung der Lösung dünnbesetzter linearer Gleichungssysteme weit über den
Rahmen der Lineren Programmierung hinaus, wird in den folgenden Abschnitten den-
noch der parallele LU-ZerlegungsAlgorithmus für dünnbesetzte Matrizen und der d a u f
basierende verteilte Löser vorgestellt. Für Matrizen aus anderen Bereichen rbeitet er er
formnter ls eine vergleichbre Imlementierung (vgl. Abschnitt 4.5)
   Die Imlementierung wurde für den T3D von Cray Reserch Inc. vorgenommen,
PALLELE        LOSUNG                        LEICUNGSSYSTEME                       109


ein Parallelrechner mit verteiltem Speicher. Da die Synchronisationszeiten derzeitige
MultiprozessorWorkstations die Kommunikationszeit des Cray T3D übertreffen, wurde
auf eine Implementierung für Architekturen mit gemeinsamen Speicher verzichtet. Im fol
genden wird deshlb direkt der Algorithmus für Architekturen mit verteiltem Seicher
vorgestellt.


2.3.1       arallele L U e r l e g u n g
Das Verfahren der LU-Zerlegung wurde bereits mit Algorithmus 7 beschrieben. D b e i liegt
der hauptsächliche Rechenaufwand im U p d t e L o o p , ber auch die PivotAuswahl und
der L-Loop benötigen eine gewisse Zeit. Die nutzbare Parallelität in diesen drei Schrit
ten hängt von der Verteilung der Daten auf die PEs ab. Sie wird in Abschnitt 2.3.1.1
vorgestellt. Ähnlich dem Block-Pivoting beim Simplex-Algorithmus können auch bei der
LU-Zerlegung dünnbesetzter Matrizen bei gewissen Gegebenheiten mehrere Iterationen zu
einer „Block-Iteration zusammengefaßt werden, die zusätzliche Nebenläufigkeit bietet. Die
dazu nötige Kompatibilität von PivotElementen und deren Ausnutzung wird in Abschnitt
2 . 3 . 2 erläutert. Schließlich wird in Abschnitt 2.3.1.4 ein neues Verfahren zum d y a m i
schen Lastausgleich vorgestellt, ß ohne zustzliche Kommuniktion oder Snchronistion
 uskommt.


2.3.1.1   Datenvereilung

Die Verteilung der Daten auf die PEs bestimmt die nutzbare Nebenläufigkeit und sollte so
erfolgen, daß alle PEs in etwa dieselbe Last erhalten. Es gibt zwei gundsätzliche Ansätze
für die Datenverteilung. Bei einem wird die Beseztungsstruktur der Matri a n a s i e r t und
 uf dieser Grundlage eine günstige Verteilung ermittelt, die ein Maximum n Prallelitä
und in Minimum an entfernten Datenzugriffen gewährleistet [61]. Dieser Ansatz ähnelt den
Verfahren der Fillminimierung bei der LU-Zerlegung, bei denen die Permutationsmatrizen
vor der Faktorisierung ermittelt werden. Deshlb eignet er sich uch besonders für solche
Verfhren.
    Beim zweiten Ansatz wird eine feste Verteilung der Daten auf die PEs zugrundegelegt
[49, 9]. Dies erfordert ggfs. einen dynamischen Lastausgleich. Da beides ohne zusätz
lichen Rechen- und Kommunikations- bzw. Synchronisationsaufwand erfolgen (vgl. Ab-
schnitt 2.3.1.4) k n n , wurde dieser Ansatz verfolgt. In [85] wurden verschiedene (feste)
Verteilungsschemata von Zeilen und Spalten auf PEs untersucht, wobei eine gitterartige
Verteilung zu einem besonders geringen Kommunikationsaufwand führt. Deshlb wurde sie
wie in [89 uch für die hier vorgestellte Imlementierung verwendet.
   Seip = rc die Anzahl der verfügbaren PEs. Die PEs werden logisch ls ein rx Gitter
angeordnet (vgl. uch Abb. 3.16), und deshalb mit (kl) für 0 < k < r und 0 < l <
bezeichnet. Jedem atrielement B^ wird einem PE zugeordnet, d s es seichert, sofern
110                                                     KAPITEL 2                    PALLELUNG


es von Null vechieden ist. Die Zuordnung von                  elementen zu    Es erfolgt gemä
                             pe(i         (i      mod        mod c)                             2.8)
d.h. das atrixelement B^ wird auf dem PE (i mod r, j mod c) gespeichert. Jedes PE
verwaltet also eine (dünnbesetzte) Submatrix, wobei dieselben Datenstrukturen wie bei
der sequentiellen Implementierung verwendet werden. Die Verteilung (2.8) erschließt P r
allelität beim UpdateLoop, beim L-Loop, bei der PivotAuswhl und bei der Berechnung
der m i m l e n Absolutbetrge ro Zeile.
   In [101] wurde eine Implementierung vorgestellt, bei der lediglich die Zeilen auf die
PEs verteilt wurden, jedes PE aber lle Spalten verwltet. Diese Verteilung benötigt we
niger Kommunikationen als (2.8) da u.a. die Maxima in jeder Zeile von jedem PE ohne
Kommunikation mit anderen bestimmt werden können. Deshalb eignet sich diese Imple
mentierung besonders für Parallelrechner, die eine hohe Latenzzeit bei der Kommunikation
aufweisen. Die Reduzierung der Anzahl von Kommunikationen erfolgt jedoch auf Kosten
der nutzbren Nebenläufigkeit, w s die Sklierbrkeit dieser Imlementierung einschränkt.


2.3.1.2   Kompatible P v o t - E l e e n

Bei der LU-Zerlegung dichtbesetzter Matrizen ist die nutzbare Parallelität vollständig
durch die Verteilung vorgegeben. Es ist nicht möglich, mehrer PivotSchritte nebenläuf
zu berbeiten, d sich die ktive Submtri mit jedem Schritt ändert.
    Für dünnbesetzte Matrizen gilt diese Aussage nicht mehr. Sofern kmpatible Pivot-
Elemente benutzt werden, stören sich die Änderungen der aktiven Submatrix nicht ge
genseitig, so daß solche PivotElemente parallel eliminiert werden können. Ähnlich dem
Block-Pivoting beim SimplexAlgorithmus werden so mehrer Iterationen zu einer       lle
len Itertion zusmmengefßt.

      DEFINITION 12
      Die Elemente B ^ . , Bi        einer Matri        £ Wixn mit            heiße kom
      tibel, fall für               gil
                                           Biük                                        2.

     Die Submatrix aus den Zeilen und S l t e n von kompatiblen Elementen bilden also eine
D i g o n a l m a t r i . Die Bedeutung von kompatiblen Elementen für die llele LU-Zerlegung
dünnbesetzter atrizen wird von dem folgenden Satz beschrieben.

      SATZ 35
                                                                                            1
       eien £>jUl ^ 0 nd Bi2j2 ^ 0 kompatible Elemente einer                 Matri
      Nach Eliminati   beider Elemente gil

                               B3    B-        BjlBi    B nBh
                                                         '                            2.10
PALLELE        LÖSUNG                      LEICUNGSSYSTEME                                11

          nabhngi     der Eliminatinsreihelge              B^           nd Bi




     EI
Wir zeigen (2.10) für die Elimintionsreihenfolge Bi             B   i   . N c h Schritt 3 und 5 von
Algorithmus 7 gilt




                                                   B                       B
                                                                               

                                                                    




wobei die l e t e Gleichung us der Kompaibilitätsbeziehung Bixj2       0     Bi2j1 folgt.
Gleichung (2.10) zeigt man analog für die umgekehrte Pivotreihenfolge, wobei die Indizes
 und 2 jeweils vertuscht werden müssen.
                                                                                                 •
      Nach Satz 5 können komatible Elemente in einer beliebigen Reihenfolge eliminiert
werden, ohne daß dies zu einer Änderung der aktiven Submatrix führt. Insbesondere können
verschiedene PEs eine unterschiedliche Reihenfolgen bei der Elimination wählen. Dies kann
man sich für einen parallelen LU-ZerlegungsAlgorithmus zunutze mchen, der weniger
s t r k synchronisiert und somit von gröberer G r n u l r i t t ist.

         Konzept der Kompatibilität wurde zunächst in [33] für die Implementierung ei
nes parallelen LU-Zerlegungs-Algorithmus auf Multiprozessoren mit gemeinsamen Seicher
eingeführt. In 89] wurde es für Transputer-Systeme eingesetzt. Für symmetrische Matri
zen hat die Kompatibilität eine einfache Darstellung als sog. elimination Trees, die bereits
früher die Grundlge bei der parallelen CholeskiZerlegung symmetrischer dünnbesetzter
Matrizen bildete 41, 61]. Sie wurden durch Übergang zur symmetrisierten Matri B + B
oder BTB uch auf den unsymmetrischen Fall erweitert [3]. In [33] wird jedoch gezeigt,
daß diese Matrizen meist dichter besetzt sind als B, so d ß mehr Arbeit bei der LU-
Zerlegung anfällt und die durch Dünnbesetztheit gebotene Parallelität reduziert wird. Aus
diesem Grund wird hier ähnlich zu [89] die Kompatibilität direkt uf der unsymmetrischen
Besetzungsstruktur der zu fktorisierenden      tri usgenutzt.
11                                                        KAPITEL                  PALLELUNG


     A L I T H M U      12 ( A R L L E          L U - Z U N G )
     Setzte s
     Solange s
     Schritt 1    PivotAuswahl):
                   ähle eine Menge von           kompatiblen PivotElementen.

     Schritt 2: Berechne L L o o p für okale Teie der PivotSpalten.

     Schritt 3   Schicke lokalen Teil der LVektoren den anderen PEs derelben Prozes
                 sorzeile, und
                 schicke lokalen Teil der P i v o t Z e i e n den anderen PEs derelben Pr
                 zesorspalte

     Schritt 4    a)     ür alle lokalen PivotElemente
                         erechne okalen UpdateLoop

     Schritt 4   (b)   Für alle weiteren Pivot-Elemente
                        erechne okalen UpdateLoop

     Schritt 5     eilenGossip:
                   k t u a l e r e di   Werte maxabs und di    nzahl der NNEs pr   eie.

     Schritt 6   SpaltenGsi              ktualsier   nzahlen der NNEs pro Spalte

     Schritt 7              + e


    Der U d a t e L o o p für die kompatiblen PivotElemente wurde in zwei Teile zerlegt: In
Schritt 4.a werden die lokalen PivotElemente eliminiert und in Schritt 4.b die von den an-
deren PE erhaltenen. Dadurch k n n Schritt 4.a gleichzeitig mit Schritt 3 erfolgen. Gängige
Paallelrechner mit verteiltem Seicher verfügen über geeignete Hardware, die Kommu-
nikation ohne Prozessorbeteiligung abwickeln kann. Der Prozessor initiiert lediglich die
Kommunikation, die anschließend asynchron zur weiteren Ausführung des Progrmms er
folgt. D m i t gelingt es in Grenzen, den Kommuniktionsufwnd zu verbergen.
    In den Schritten 5 und 6 wird jeweils ein Gossiping-Algorithmus auf Teilmengen der
Prozessoren ausgeführt, nämlich eweils die Menge der Prozessoren einer Zeile bzw. Spalte
des xc Prozessorgitters. Sie sind nötig, d m i t jede PE für die PivotAuswahl der folgenden
Iteration die korrekte Information der globalen Matrix hat. Die A n z h l der NNEs pro Zeile
und Spalte wird für die Berechnung der Markowitzzhlen benötigt. D FillElemente uf an-
dern PEs entstehen können, müssen diese Zahlen nach jeder paralleln Iteration aktualisiert
werden. Um d s Kommuniktionsvolumen gering zu h l t e n , werden nur die nderungen
kommuniziert.
    Auch die Werte des betragsgrösten NNEs pro Zeile in maxabs müssen aktualisiert wer-
den. Im Gegensatz zum sequentiellen Algorithmus können diese Werte nicht erst bei Bedarf
berechnet werden, da zu ihrer Bestimmung jeweils alle PEs einer Prozessorzeile kooerie
ren müssen. Wenn ein PE einen neuen Wert benötig, w r e ein ufwendiges Protokoll nötig,
PALLELE           LOSUNG LI                             LEIUNGSSYSTEME                 11


damit die anderen involvieren PEs davon erahren und bei der Bestimmung mitrbei
ten. Statt dessen werden die Maxima zu Anfang für alle Zeilen bestimmt und nach jeder
     llelen Iteration ktulisiert. D b e i werden wieder nur die Änderungen kommuniziert.
    Algorithmus 12 benötigt eine Synchronisation aller PEs lediglich am n f n g einer p r
allelen Iteration bei der Auswahl komptibler PivotElemente (su.) und am Ende, wenn
die Zeilen- und Spalteninformation ktualisiert wird. Also erfolgt nur alle e Eliminations
schritte eine Synchronisation und damit wesentlich seltener, als wenn ohne Nutzung von
Kompatibilität ach jedem Eliminationsschritt synchronisiert werden müßte. Da bei jeder
Synchronisation alle PEs auf den letzten warten müssen, erwartet m n durch die selteneren
Synchronisationsoertionen insgesmt kürzere         rtezeiten.


2.3.1.3          uswahl kompatibler             ivot-Eleen

Zu den beiden Zielen bei der PivotAuswahl für die sequentielle LU-Zerlegung, nämlich
der numerischen Stabilität und der FillMinimierung, muß für den p a l l e l e n Fall ein
weiteres Kriterium hinzugezogen werden, nämlich das Auffinden einer möglichst großen
Menge kompatibler PivotElemente. Glücklicherweise ist letzteres gut vereinbar mit der
FillMinimierung, denn PivotElemente mit niedriger M r k o w i t z Z h l haben wenige NNEs
in derselben Zeile oder S l t e und sind somit eher kompatibel zu anderen Elementen als
solche mit einer höheren MarkowitzZahl. Aus diesem Grund kann die Auswhl der Pivot
Elemente weitgehend von der sequentiellen Version übernommen werden.
    Der Algorithmus 3 für die Auswahl kompatibler PivotElemente erfolgt in drei Pha-
sen. In der ersten Phase wählt jedes PE aus seinen lokalen NNEs eine Menge von Pivot
Kndidaten aus, die zu einer globalen Kandidatenmenge zusammengefaßt wird. Zu jedem
Paar von PivotKandidaten wird in der zweiten Phase die Kompatibilitt überprüft und
gespeichert. Schließlich wird in der letzten Phase greedy-rtig eine Teilmenge k o m t i b l e r
PivotElemente us der Kndidtenmenge e t r h i e r t .

      A L I T H M U                   TIMMUNG K A T I B                   I V O - E N T E


          hase       (KandidatenAuswahl):
                      ilde lokale s o r e r t e Liste   von PivotKandidaten

      Gossip          ilde g l b a l e s o r e r t e Liste G von PivoKandidaten

          hase 2     (Inkompatibiliätsbestimmung):
                      ilde lokale L i t e von Paaren inkompatibler        PivoKandidaten

      Gossip          ilde g l b a l e L i t e von Paaren inkompatibler    PivoKandidaten

          hase 3     (KompatiblenAuswahl)
                    Setze (7 = 0.
                    Solange     n i h t leer
11                                                      KAPTEL                PALLELIUNG


                 Schritt 1   Sei G das e r e Element i     G.
                             Setze              { }
                 Schritt 2   Entferne     und alle zu     nkompatiblen Elemente aus G

                    st die Menge kompatibler PivoElemente


    In der ersten Phase wählt zunächst edes PE eine lokale Menge von Pivot-Kandidaten
aus, wobei jeder Kandidat ch derselben Strategie bestimmt wird wie die Pivot-Elemente
im sequentiellen Fall. Diese Kandidaten werden lokal nach aufsteigender Markowitz-Zahl
sortiert. Anschließend wird mit einem Gossiping-Algorithmus aus den lokalen sortierten
Kandidatenlisten eine globale sortierte Liste erzeugt. Die Gossiping-Operation ist dabei
die Vereinigung zweier sortierter Listen in eine sortierte Liste und rbeitet in linerer Zeit.
    In der zweiten P h s e bestimmt jedes PE Paare inkompatibler Pivot-Elemente, indem
es lokal die relevanten Matrix-Elemente überprüft. Typischerweise treten aufgrund der
niedrigen Markowitz-Zahl der Kandidaten nur wenige Inkompatibilitäten auf. Mit einem
weiteren Gossiping-Algorithmus wird die Menge lle inkomptibler Pivot-Kndidtenpaare
 ufgestellt.
    In der dritten Phase wird schließlich die Menge der kompatiblen Pivot-Elemente aus der
sortierten Kandidatenliste mit einem Greedy-Algorithmus extrahiert. Das erste Element
der Kandidatenliste wird herausgenommen und der Menge der Pivot-Elemente zugefügt.
Anschließend werden alle zu diesem Element inkompatiblen Kandidaten aus der Liste ent-
fernt. Mit dem nun ersten Element in der Kndidtenliste wird ebenso verfhren. Dies wird
iteriert, bis die Kndidtenliste leer ist.
    Die Bestimmung einer maximalen Teilmenge kompatibler Pivot-Elemente ist ein
Stabile-Mengen-Problem, zu dessen Lösung aufwendigere Algorithmen existieren, die bes-
sere Lösungen versprechen. Sie werden jedoch aus zwei Gründen nicht benutzt. Zum einen
wurde die Kndidatenmenge selbst ohne weitere Berücksichtigung von Komptiblität auf
gestellt, so daß eine etwaige „Verbesserung bereits dort ansetzen müßte. Zum anderen be-
vorzugt der Greedy-Algorithmen Kandidaten am Anfang der Liste, also solche mit geringer
Markowitz-Zhl. Diese sind ber ch wegen ihrer FillMinimierungseigenschft vorzuzie-
hen.
    Es gibt zwei Spezialfälle, für den sich eine spezielle Implementierung lohnt, nämlich für
Zeilen oder Spalten mit nur einem NNE. Solche werden Singletons genannt. Offenbr führt
jede Menge von Zeilensingletons mit paarweise verschiedenen Zeilenindizes zu kompatiblen
Pivot-Elementen; gleiches gilt für Spaltensingletons. Für solche Mengen bedarf es also
keiner weiteren Überprüfung der Komptibilität. Ferner entfällt der Updte-Loop und für
Spltensingletons ch der L-Loop.
    Singletons treten bei den Basis-Matrizen im Simplex-Algorithmus besonders häufg auf,
   diese meist auch Schlupfvariablen (bzw. Variablenschrnken bei einer Zeilenbasis) ent-
halten. Aus diesem Grund werden Algorithmus 12 zwei P h s e n vorgeschaltet. In der ersten
werden lle Zeilen-Singletons und in der zweiten lle Splten-Singletons eliminiert. Die
PARA             OSUNG                                     UNGSSYST                  11


verbleibende ktive Submatrix heißt der Nukleus der Matrix und enthält keine weiteren
Singletons. Im Nukleus können zwar nach einigen Pivot-Eliminationen neue Singletons ent-
stehen, jedoch geschieht dies i . in so niedriger Z h l , d ß eine s e p a t e Behndlung nicht
mehr lohnt.


2.3.1.4   Lazy L a d n c i n g

Da die zu verrichtende Arbeit mit Abnahme der Dimension der ktiven Submatrix dyna
misch von Iteration zu Itertion variiert, und zwar wohl möglich unterschiedlich uf ver-
schiedenen PEs, muß ein dynamischer Lastusgleich erfolgen. D z u b e d r f es eines M ß e s
für die L s t eines PEs im Vergleich zur G e s m t l s t .
    Eine Möglichkeit für solch ein Maß wäre das Verhältnis der Anzahl der NNEs der aktiven
Submatrix eines PEs zur Gesamtzahl der NNEs. Letztere zu bestimmen würde jedoch einen
weiteren Kommunikationsufwand erfordern, der vermieden werden sollte. Statt dessen
wird ein approximtives Maß verwendet, die von einer gleichmäßigen Verteilung der NNEs
auf die Submatrix ausgeht. Dies ist durch die Verteilung (2.8) reltiv gut gewährleistet. Für
jedes P (i) bezeichne r s (i,j) die Anzahl der Zeilen und c(i,j) die A n z h l der Splten
von der ten aktiven Submtrix, die von dem PE verwltet werden. D n n wird die              st
des z-ten Es ls

                                    (i               (t)-(t,j                            2.11

defniert. Wegen ^rs(ij)     =n             ^2c(ij)        ist die G e s m t l s t

                                         = (n)-(                                         2.1

   Die Aufgabe des Lastausgleichs ist es, I (i) Ls/p möglichst gut zu erreichen. Aktive
Verfahren spüren Abweichungen davon auf und transferieren Last von überlasteten PEs
zu unterforderten. Bei der LU-Zerlegung würde dies durch die Übergabe von Zeilen oder
Splten erfolgen, w s zu einem zusätzlichen Kommunikationsufwnd führte.
    Dieser kann mit einem ssiven Lastusgleichsverfahren vermieden werden, der in [101]
zuerst vorgestellt wurde. Da in jeder parallelen Iteration Last abgebaut wird, k n n die
Lastverteilung ausgeglichen werden, indem PEs mit einer höheren Last versuchen in der
folgenden Iteration mehr L s t abzubauen als solche mit einer geringern Last. Dies wird
über die Anzahl der P i v o t - n d i d a t e n ks(ij) erreicht, die edes PE (ij) in der -ten
Itertion uswählt

                                    (ij)                                                2.1

  amit werden insgesamt ca K Kandidaten ausgewählt, wozu jedes PE anteilig zu seiner
Last viele beiträgt. Abbildung 2.4 zeigt, d ß d m i t in der t eine bessere Lstverteilung
erreicht wird.
KAP                 P A R A U N G

                                     1
                           mit Lastausgleich
                           ohne Lastausgleich
                           optimale Lastverteilung




                 -
  CO


   _>



  M

                 -
   0
  CS
   0
  Ü




                                  5 0 • 105             1.0 • 106          1 5 • 106
                                          röße der globalen aktiven Submatrix

Abbildung 2.4: Effekt des lazy load-balancing. Es ist die maximale und minimale Last     max{ls(i,j)}
bzw. mm{ls(i,j)}   über der Gesamtlast aufgetragen. Durch das lazy load-balancing wird die Differenz
beider Werte kleiner gehalten als ohne




2.3.2       Parallele Vor- und Rückwärtssubstitution
Bei der Behandlung der parallelen Lösung gestffelter linerer Gleichungssysteme be-
schränken wir uns exemplrisch uf den F l l

                                                 Ly = b                                       1.11

wobei L eine untere Dreiecksmatrix mit Diagonalen 1 sei. Die Lösung von Gleichungssy-
stemen mit einer oberen Dreiecksmatrix gestaltet sich analog. Der Lösungslgorithmus zu
 1.116) wurde bereits in Abschnitt 1.7.4 vorgestellt und sei hier wiederholt:

        Für i = 1 , . . . n:
             Für j = i + 1,       , n:
                     Setze yj <   yj     -yi    Lj)
PA             LOSUNG                              ICHUNGSSYST


    Die Berechnungen in der Schleife über j sind für verschiedene Indizes vollkommen un-
abhängig. Deshalb kann diese Schleife parallelisiert werden, indem jedes PE eine Teilmenge
der Indizes berbeitet. Die Schleife über i bleibt hingegen inherent sequentiell.

    Wie schon bei der LU-Zerlegung bietet die dünnbesetzte Struktur von L weitere Ne-
benläufigkeit. L     t nämlich ach der p l l e l e n LU-Zerlegung eine besondere Struk-
tur, bei der sich entlang der Diagonalen je-
weils digonale Submatrizen befinden. Bezeich-            r>
ne mit Bi, B 2 . , - & die zugehörigen Indexmen-
                   B
gen, d.h. die atrizen Bii sind für i = 1,
                                                                    R
                                                                     2
Einheitsmtrizen. D b e i gelte bi    bj für lle
k e Bi und bj e Bj mit        (vgl. Abb. 2 . ) .
    Wegen der Struktur von L k n n für i e Bi
die Schleife über j auf j 6 Bi+i U      U Bk be-
schränkt werde. Insbesodere fällt keine Arbeit
für j E Bt an. D dies für alle i < Bt zutrifft und
                                 E                                              Bx        B2
die Operation in der Schleife über j assoziativ
   ii           ,.   -J.U-J-J.-1                 4. v -u   Abbildung 2.5: Struktur der Dreiecksmatrix
                                                                    &
und kommutativ ist, bietet sich eine zusätzliche           r    ,        .. .    T TT   „ ,
                .                  n                       L nach paralleler LU-Zerlegung mit kompati
Nebeläungkeit innerhlb der Schleife über %.                ^j   Pivot Elementen

        ALGORITHMUS 14
         ür l = 1, ,
             Für j E Bl+1              ßt
                   ür i e Bf
                       Setze yj         yj   yi Lj



    In Algorithmus 14 kann wieder die Schleife über j parallel ausgeführt werden. Dies gilt
nicht für die Schleife über i, d die Schreib- und Lesezugriffe auf jj Synchronisiert werden
m ü s s e . Es ist jedoch (bis auf numerische Fehler) uerheblich, i welcher Reihefolge die
Elemete vo Bt traversiert werde
     Algorithmus 4 impliziert eine zeilenweise Verteilung der Matrix L. Dabei legt die
Schleife über i eine zeilenweise Speicherung von L nahe. Wie in Abschnitt 1.7.4 ist dies
jedoch für dünnbesetzte Vektoren b ungünstig, da bei der Schleife über i häufig unnötige
Operatioen mit Vi = 0 usgeführt werden. Aus diesem Grund wurde eine spaltenweise
Speicherung beibehlten        L gleichzeitig zeilenweise auf die PEs verteilt: Sind p = k PEs
vorhande, so verwaltet PE i die Submatrix Bi. mit in einer spaltenweise Speicherug.
   lls nur p < k PEs verfügbr sind, erhält da PE i alle Submatrize L', mit j mod p = i.
    durch ergibt sich bei p <k gleichzeitig ei      stverteilug.
KAPIT                     PAISIERUNG


   PE q führt folgede     Algorithmus us:

      ALGORITHMUS 15 ( P A L L E L E        VORWÄRTSSBSTITUTION

      Schritt 1     earbeitung):
                   ür / = 1 , . . . ,q
                       W t e auf PE
                        ür i e Bt
                               ür j e Bq.
                                 Setze yj     yj - Vi Lj
      Schritt 2 (Synchronisation
                Signalisie Termation

Dabei wartet jedes PE in Schritt 1 drauf, daß PE / Schritt 2 erreicht. Diese Synchronisation
erzwingt die sequentielle B e r b e i t u g der globalen Schleife über / in Algorithmus 14. Die
Schleife über j wird wieder nur dann usgeführt, wenn i/i j               gilt. Ddurch k n n die
Dünnbesetztheit vo       usgeutzt werde
     Bei e i e m Parallelrechner mit verteiltem Speicher erfolgt die Synchronisation bei der
Übertrgung des TeilVektors ysv der für die Berechungen in Schritt 1 erforderlich ist. Für
e i e Shred-Memory-Architektur würde higege e i e explizite Sychroisatio b e u t z t .
apitel

Imlementieru                               in

Diess Kapitel b e i b t d n objktorientieren Software-Entwurf für die d i Imlemen-
tierungen SoPlex, SMoPlex und DoPlex. Als slcher gliedert er sich in eine Menge von Klas-
sen. Die Klassen für die sequentielle Implementierung werden in Abschnitt 32 vorgestellt
In Abschnittt 3 3 werden die zusätzlichen Klassen beschrieben, die für die Parallelisieru
für Parllelrechner mit gemeinsamen und verteiltem Speicher entwickelt wurden. Zuv
wird jedoch in Abschnitt 3 1 e i e kurze Einführug i die Konzete der objektrientierte
P r g r m m i e r u n g gegeben


3.1      Grundlagen objektorientierter P r o g r a m i e r u n g
Seit i den 50er Jahre erste elektronische Datenverarbeitungsanlagen a dem Markt er-
schienen sind, ist die Hardware einer rasanten Weiterentwicklung unterwofe. Mit dieser
Entwicklug einher geht die Möglichkeit immer schwierigere Probleme zu l s e n Allerdings
bedar es dazu uch immer k p l e x e r e r Software. Dabei traten die Grenzen der jeweils bis
d a o ntwickelten Entwurfs- u Implementierungstechike zum Vorschei was wiederum
Anaß zu Fortentwicklungen au de Gebieten des Softwarntwurfs, der Programmiersa-
chen und der formalen Spezifikation war Diese Entwicklungen gemei ist die Zielsetzug
folgede allgemeie Qulitätsanforderugen an Sofare zu unterstütze

  1. Die Anforderug der Korrektheit verlangt, daß ein Progrmm seiner Spezifikation
     genügt. Sie ist natürlich die wichtigste Anforderug, die an Software zu stellen ist
     Dazu wurden Methoden der formalen Verifikatio entwickelt mit denen die Korrekt
     heit eines Progrmms gegenüber seiner Spezifikation formal nachgewiesen werden
     kann. Der Aufwand für solch einen Beweis ist jedoch so erheblich, daß diese Tech-
     niken in der Regel nicht zum Einsatz kommen Vielmehr wird statt dessen durch
     umfangreiches und systematisches Testen die Korrektheit von Software überprüft
        mit man jedoch nur i der      ge ist d s evtl  rhandensein von Fehlern nachzu-
20                                             KAPITEL 3. IMPLEMETIERUNG                  IN C++


       weisn, nic aber dere A b w e s h e i t . Mit dem A u f m m e n von Nichtdeterminismus
       etwa bei paallelen Algorithmen werden die Grenzen des Testens immer deutlicher
           aß formle M e t h d e eine zunehmede Bedeutug beigemessen wird.
  2. Erweiterbarkeü beschreibt die Möglichkeit die Softwre n (zuknftige)                   deruge
     und Erweiteruge der Spezifiktion anzupasse
  3        ter Wiederverwendbarkeit versteht man die Mglichkeit, die Softwre oder Teile
         avon bei der Programmierung anderer A n w e d u g e zu benutze. D b e i ist Kom-
         atibilität von zentrler Bedeutug
      . Effizienz beschreibt die „gute" Nutzung vorhandeer Ressourcen In wisseschaftli-
        chen Applikationn wird der Begriff meist mit "Laufzeiteffizienz", lso der möglichst
        schnellen erechnng des gewnschten Ergebnisses, gleichgesetzt Für icht wissen
        schaftliche Awendunge umfaßt der Effizienz jedoch auch de E i a t z anderer
        Ressurce wie S p e i c h e r t z , E i - u d Ausgbe der K m m u i k a t i o n e t z w e r k e

Darüberhinaus stelle sich in der Praxis oft weitere wichtige Anforderuge             etw hisicht
lich der   utzerfreudlichkeit, der Fehlertoleranz u.v.m.


3.1.1          rogrammierparadigmen
Die Entwicklungen a f den Gebieten der SoftwareTechnik und Programmiersrache ist
durch verschiedene s g . Programmierpadigmen (oder -modelle) gekennzeichnet. Unter
einem Prgrammierpardigm versteht man die bereitgestellte abstrakten Ausdrucksmit
tel zur Formulierug von Programmen. Auf grober Ebene unterscheidet man zwische
imperativer fuktionaler logischer un objektrientierter P r o g r m m i e r u g
    Im folgenden werden kurz imperative Progrmmierparadigmen sowie Grudzüge der
objektorientierten Prgrammierung skizziert und auf ihre Leistungsfähigkeit in bezug a
die Anforderungen 1 4 verglichen. Dabei wird kei    nspruch auf Vollständigkeit erhben
sondern lediglich ei Überblick verschafft, der eine Einordug der P r o g r m m i e r s a c h e
C + + ermöglicht, da die i dieser Arbeit beschriebene Software i C + + entwo
imlementiert wurde


3.1.1.1     Imperative Programmierung

Die i m e r t i v e Programmierug ist die älteste Art der Programmierug und wurde e i e r
Reihe von trukturierungen unterzogen. Zunächst bestand sie in der Beschreibung von
Algorithmen als Folge elementarer Oerationen auf elementaren Daten. Zur graphische
Drstellung solcher Programme e i g n sich Flußdiagrmme
   Die Anforderugen 1-4 wurden bei dieser Art der Programmierung kaum unterstützt. So
kann etw kei Prgrammteil frei in e i e m andere Z u s m m e n a n g verwedet werde d
3.       UNDEN           OBJRINTIERTER                         PRMMIERUNG

dort V a l e        öglicerweise a n d w e i t i g b e n z t weden Dies widespricht Anfoderun
3. Ebens kann prinzipiell jeder Punkt in einem Programm von einem beliebigen anderem
a n g e s r u g e werden. Ddurch ist eine Änderung stets mit kaum lkulierbre Risike
v e r b u d e , was wiederum    Widersruch zu Anforderung 2 steht [5]

      Dieser Problematik wurde durch Bereitstellung weiterer Abstraktionsmittel                   on
t r o l l f l - und Dateebene begegnet die zur strukturierten Programmierung führte [36. Sie
h t den früheren imperativen Prgrammierstil vollständig abgelöst. Hierbei wird ein Pr
gramm als F l g e strukturierter Operationen (Ausdrücke, Schleif              Prozeduren, Blöcke) a
strukturierte Daten (lokale Namesräume, strukturierte D a t e n y p n wie Verbünde u
Reihungen) formuliert. Durch die trukturierung des Namensraum der V r i b l e k n n
sichergestellt werden, daß Variablen nicht i verschieden Zusammenhängen                       kopati
bel b e u t z t werden, und durch strukturierte Operationn (Schleifen etc.) werden Sprünge
mit den amit verbunden              Risike vermieden. Zur Darstellun strukturierter Program-
me werden meist Nassichneiderman Struktogramme verwendet [79 ie ermöglichen eine
übersichtliche D r s t e l l u g strukturierter O e r t i o n e n u d sehe kei     öglichkeit zur D r
stellug von S p g e            or

      Zunächst erscheint die Restriktion bei der Benutzug von Sprngen oder beim Zugrif
a f Daten als hinderlich. Es zeigt sich jedoch, daß z.B. Sprünge geerell durch äquiv
l e t e strukturierte Ausdrucksmittel (wie Schleife) ersetzt werden önnen. Dafür gewinn
   an groß Vorteile hinsichtlich der Anforderungen 1-4: (Seiteneffektfreie) Prozeduren etw
könnn in e i e m beliebigen anderen Programm eingesetzt werde             nforderug 3), w
zur Entwicklung umfangreicher Fuktionsbibliotheken führte

     Dennoch unterstützt auch die strukturierte Prgrammierung icht alle g. Anforde
r u n g e . Isbesondere zeigten sich Mängel bei der Wiederverwendbrkeit. Man denke etw
an e i n Satz von Funktionn, die O e r t i o n e n auf einer komplexen Datestruktur, z.B ei
ner dünnbesetzten Matrix, usführe. Oft wird diese Datenstruktur global zur Verfügung
gestellt, damit alle Funktionen daauf zugreifen können. Dies kann aber zu Kmpatibi
litätsoblemen mit andere SoftwreKomponnten führen, die evtl. dieselbe g l l e
    ten anders v e r w e d e , w s zu Ikonsistenze führen kann

    Diese Problematik hat zur Entwicklug der modularen Programmierung geführt Sie
stellt zusätzliche Ausdrucksmittel zur Trennung von Schnittstelle und der zugehörigen Im-
 lementierung zur Verfügung. Die Implementierung e i e s Moduls umfaßt lle benötigten
   tenstrukture nd internen Funktionen zu deren M p u l a t i o n . Au diese kann aber „von
auerhalb" des Moduls nicht direkt zugegriffen werden ielmehr kann nur die Schnittstelle
benutzt werden. Die Mdulschnittstelle ist eine Auflistung aller D e k l t i o n n (Funktionen
Variablen, etc.), die von außerhalb des Moduls angesprchen werde önnen Dementsre
chend stellt sich ein mdulorientiertes Progrmm als eine Menge von odulen dar, die nur
über ihre Schnittstellen i n t e r g i e r e . Die Darstellung eines slchen Prgramms geschieht
mithilfe von             dulgraphe i d e n n verschiedene Beziehunge zwische den M d u l e wie
B e u t z t r e l t i o n n oder Kontrllflu     rgestellt werde
22                                            KAPITEL         IMPLEMETIERUNG             IN C++


    Die Einschränkung hisichtlich des Zugiffes e r s h e t z u n ä c t als h d e r l i c h . Wieder-
um zeigt sich jedoch, daß bei sorgfältiger Wahl der chnittstellen keine Nachteile erwach-
sen. Dafür gewinnt man ber groß Vorteile bei der nterstützug der Anforderunge des
Softwrentwurfs:

      . Die Anforderung nach Korrektheit wird von der mdularen Programmierun                 er
        heblichem Maße unterstützt. Kapselt man etwa die D t e s t r u k t u r e n auf denen ein
        Algorithmus rbeitet, in Module ein, s kann bei der Imlementierung eines diese
        Module nutzende Algorithmus die Konzentration allein a f dessen Funktionalität
        gerichtet werden, anstatt stets dabei Sorge tragen zu müsse, die Itegrität der ver
        wendeten Datenstrukturen aufrechtzuerhalte Diese wird j von de              tsrechende
        M d u l e selbst gewhrleistet
   2. Die Erweiterbarkeit wird durch eine modulare Strukturierierung der Software inoweit
      unterstützt als zum einen die Erweiterug der Schnittstelle eines M d u l s also da
      Hizufügen weiterer Vereinbarunge, keinerlei Rückwirkungen uf Code a ß e r h l b
      des Moduls hat. Dies trifft selbst dann zu, wenn die Erweiterung eine vollkmmene
      Umstrukturierung der Implementierung der internn Datenstrukturen des Moduls
      b e d i g t Zum ander wird die Erweiterung von Softwre um zustzliche M d u l e über
      die K p a t i b i l i t t unterstützt
   3. Die Kompatibilität verschiedeer M d u l e zueinander wird ebenfalls durch die Tren-
      nung von Schnittstelle u d Imlemetierung gewhrleistet; kei Modul kann die Inte
      grität eines deren beeinflußen, da interne Daten nicht a n g e s c h e werde önn
         mit ist e i e gute Wiederverwendbarkeit gesichert
       Wie die (Laufzeit) Effizienz von der modulren Programmierung berührt wird, hängt
       im wesentliche von der Ausgestaltung der Schnittstellen ab. Gleichzeitig ermöglicht
       die geringere Komplexität der Software durch die modulare Programmierung ei bes
       seres Verständis, und bietet somit bessere Mglichkeiten zur Optimierung z . . in-
       dem man die D t e s t r u k t u r e n hinter e i e r Mdulschittstelle durch effizienter aus
         uscht

    Module eignen sich besonders zur Implementierung bstrakter D a t e p e n . Das sin
beutzerdefinierte Datentpe die ausschließlich über die Schnittstelle m a n u l i e r t werden
können. Daher kommt der chittstelle ( n d ihrer Semantik) e i e besondere Bedeutung zu,
denn sie definiert den D a t e n . Die chittstelle wird deshalb als Teil des D t e y p s an
gesehen. Zu e i e m abstrakte     a t e n p önn wie bei elementaren Datenty         Varible
erzeugt werde. Diese werde         nn s t z e    der auch Objekte genannt


3.1.1.2     Objektorientierte Programmierung

Zur Motivation der objektorierten Programmierung zeigen wir zunächst am Beispiel des
Simlex-Algrithmus, daß dieser Progrmmierstil die Wiederverwedbrkeit besser u
UNDEN           OBJRINTIERTER                         PRMMIERUNG

t e r s t als die imperative Programmierug Wie in Abschnitt 1.6 d a r g t e l l t , gibt es eine
große Vielfalt unterschiedlicher Pricing-Strategien, die jeweils zu einem korrekten Simplex-
Algrithmus führen ( e i e geeignetes Kreiselvermeidungsverfahren vorausgesetzt). Um diese
Vielfalt programmtechisch mit einem imperativen Progrmmierstil zu erfassen, wird in
der implex-chleife eine Verzweigug eingesetzt, die bhängig von einem Parameter die
e i e oder die andere Pricing-Funktion aufruft. Will man nun eine weitere Pricing-Strategie
hinzufügen so ist man azu nur in der Lage, wenn man über den Quellcode verfügt und die
Verzweigug entsprechend erweitert Dies widersricht den Anforderugen nach Erweiter
    r keit u d Wiederverwendbarkeit
   Der G r u d für die eigeschränkte Wiederverwedbarkeit liegt in Art, wie bei der im
 erativen Programmierug Fuktionsafruf aufgelöst werden. Dies geschieht bereits zur
Übersetzungszeit, so daß die Integration einer weiteren Pricing-Fuktion eine Ä d e r u
des Aufrufes u d eine e r e u t e Übersetzug erfordert
    Um eine generische (also allgemein verwendbare) Simplex-Schleife zu programmieren
muß die Auflösug des Fuktionsaufrufs für das Pricing erst zur Laufzeit erfolgen. Dies
wird von objektorientierten Programmiersprachen besonders uterstützt 1 . D m i t kann
die implex-chleie geerisch formuliert werden, s daß sie für alle zuknftigen Pricing-
Verfahre         hne Änderug geeignet ist Verschiedene Pricing-trategie werden i ver
schieden          bstrakten D t e n y p e n implementiert, die j e d c h ntereinander große Ähn
lichkeite         fweisen: Die Schittstelle jedes dieser Datentypn nthält z.B. eine Funkti
on s e l e c t E n t e r O , um den I d e x der in die Basis eintretenden Variable auszuwählen.
Jeder Dtentyp implementiert jedoch bei dieser Funktion ein andere Pricing-Stategie
Zur L ö s u g eines LPs wird dem Simplex-Algorithmus e i e Instanz eines solchen Pricig-
Datentyp übergeben das wir das Pricing-Objekt n e n n e . I der implex-Schleife wird n
die zu dem ü b e r g e b e n Objekt gehörende Funktion s e l e c t E n t e r O aufgerufen. Dabei h
der aufrufende C d e (also die Simplex-Schleife) keine Kontrolle darüber welche Funktion
und damit welche Pricing-Strtegie tatsächlich ausgeführt wird. Dies ist allei durch d
Pricig-Objekt bestimmt; ihm wird s m i t e i e eigee Autonomie z u g e s c h e
   Die zentralen Begriffe der objektorientierte Programmierung sind Klasse, Objekt und
Methode. Eine Klasse ist ein (abstrkter) Datetyp. Ihre Instanzen heiße Objekte und die
Funktionen ihrer Schnittstelle heiße M e t h d e . Zwei zugehrige Konzete unterscheide
Klsse von ihre imerativen Gegestücke

Dynamic Typing: Darunter versteht man die Möglichkeit, beliebig Objekte als Para-
         meter v n Methoden der Funktionen zu übergeben ohne Rücksicht auf ihre
         Klasse (oder ihren Typ). Dies steht im Gegensatz zum static Typing, bei
         dem der Typ von Parametern zur Übersetzungszeit festgelegt ist. Dies ist der
          tandard bei gängigen imperativen Programmiersprachen wie , FORTRAN
          der PASCAL. Für das bi         eispiel bedeutet dynamic T i n , daß der
   ^ s ist auch möglich per Funktionszeiger eine generische Simplex-Schleife zu reaisieren. Dies kann
e d c h a s eine obektrientierte Strukturierun per Hand angesehen werden.
KAPITEL             PLEMETIERUNG     IN C++


                SimlexLöser jedes beliebie Objekt akzeptieren muß. Dies gilt insbesonder
                auch für Objekte von PricingKlassen, die erst später entwickelt wurden. So
                fern die Methode s e l e c t E n t e r O korrekt implementiert wurde, erhält man
                stets einen funktionierenden Simplex-Algorithmus hne da eine Änderun
                des Programmtextes ntwendi              äre

 ate Binding: Als late Binding wird die Art des Methodenaufrufs bei der objektorien-
           tierten Programmierung bezeichnet, daß ämlich erst zur Laufzeit anhand
           des benutzten Objektes und der gewählten Methode festgelegt wird, welche
           Funktion tatsächlich ausgeführt wird. Im imperativen Fall steht dagegen die
           auszuführende Funktin bereits zur Übersetzunszeit fest

    Die Folge dieser Konzepte ist der sog. Paradimenwechsel beim Übergang von der im-
perativen zur objektrientierten Programmierung Bei der imperativen Programmierung
befiehlt (imperare = befehlen) stets der aufrufende C d e , welche Funktion a u s f ü h r t wird.
Daegen werden bei der objektrientierten Programmierung Objekte als autonome Instan-
zen angesehen, die eigenständi zur Laufzeit entscheiden", welche A k t i n sie bei einem
Methodenaufruf ausführen.
    Zur Beschreibung eines weiteren Konzeptes der objektorientierten Programmierung
nämlich der Ableitung, kehren wir zum Beisiel der Pricing-Klassen zurück. Offenbar
ähneln sich alle PricingKlassen insofern, als daß sie (jedenfalls in Teilen) dieselbe Schnitt
stelle aufweisen. Um Ähnlichkeiten zwischen Klassen programmtechnisch auszudrücken
und dabei eventuell redundante Implementierungen zu vermeiden, bietet die objektorien-
tierte Programmierung den Mechanismus der Ableitung v n Klassen. Sie ist über folgenden
Zusammenhang definiert2: Seien A und B Klassen, wobei B von A abgeleitet sei. Dann kann
jede Methode der Klasse A auch von Objekten der Klasse B ausgeführt werden. Dies hat
zur Folge, daß Objekte von B überall dort eingesetzt werden knnen, wo Objekte von A
erwartet werden. Man nennt A Basisklse v

                                            Die Ableitung von Klassen kann für zweierlei
                                     Konstruktionen verwendet werden, nämlich zur Er
                                     weiterung und zur Änderung von Klassen. Benötigt
                                     man eine Klasse, die zusätzlich zur Schnittstelle einer
                                     bereits bestehenden Klasse einige weitere Methoden
                                     anbietet, so kann dies durch Ableitung realisiert wer-
    Abbildung 3.1: Ableitunggraph    d e n > b e i d e r lediglich die zusätzlichen Methden im-
plementiert werden müssen. Wird hingegen eine Klasse gebraucht, die bei gleicher Schnitt-
stelle eine andere Implementierung oder Semantik einiger Methoden aufweist, so kann dies
wiederum per Ableitung geschehen, wobei lediglich die zu ändernden Methoden implemen-
tiert werden müssen. atürlich sind auch Mischformen beider K n s t r u k t i n e n möglich.
      Zur Darstellun      n Ableitunsbeziehunen zwischen Klassen werden sog Ableituns
  2
      G n a u m m e n e ä r t di   den w i h t n Fall   r „public"   blitun
UNDEN            OBJRINTIERTER                                  MMIERUNG


graphen eingesetzt (vgl Abb. 3 ) . Jede Klasse wird durch einen Kasten repäsentiert, und
eine Ableitunsbeziehung durch einen Pfeil von der abeleiteten Klasse zur asisklasse


3.1.2      E i n o r d n u n g von C-—

Die Programmiersprache C + + erfreut sich derzeit weiter Verbreitung, ist sie doch aufgrund
ihrer Ähnlichkeit zu C schnell zu erlernen, und bietet darüber hinaus ein genügendes Ma an
Unterstützung für bjektorientierte SoftwareEntwicklung. Dabei wurde au eine vollkom-
mene Unterstützung aller Leistungsanforderungen der bjektorientierten Programmierung
zugunsten einer Übersetzbarkeit in ebenso effizienten Code wie C verzichtet. Aus diesem
Grund wurde C + + auch für die hier v e s t e l l t e n Implementierungen verwendet.
   Ableitung von Klassen wird v n C + + mittels Vererbung realisiert. Dies bedeutet, daß
der Compiler für die abgeleitete Klasse eine Kopie der Basisklasse erzeugt und dieser die
zusätzlichen Methden und internen Daten hinzufügt4
    C + + ist wie C eine statisch getypte Sprache und bietet somit kein echtes dynamic
Typing. Es gibt jedoch zwei Ansätze eine Vereinfachung davon zu unterstützen. Zum einen
sind dies parametrisierte (template) Klassen der Funktionen, bei der ein Typ Parameter
sein kann. Damit läßt sich z B . ein Stapel für Objekte einer beliebigen aber festen Klas
se realisieren. Zum anderen eschieht eine automatische Tpanpassung, wenn ein Objekt
einer abgeleiteten Klasse als Parameter übergeben wird, wo eigentlich ein Objekt seiner
  asisklasse erwartet wird. Dies ist möglich, da die abgeleitete Klasse stets eine Kopie der
Basisklasse beinhaltet Um vom abgeleiteten Typ wieder zum Ursrungstyp eines Objektes
zu gelanen, sieht der C + + tandard das sog. RTT runtime t e informatin) vor. Dies
wird j e d c h n c h kaum v        pilern unterstützt
     Im Normalfall werden nach einer automatischen Typanpassung die Methoden der Ba-
sisklasse benutzt, selbst wenn diese von der abgeleiteten Klasse überlagert wurden. Der
Grund dafür ist, daß so eine Codeoptimierung mit Method-Inlining5 öglich ist. Ist es für
die Krrektheit des Programms hingegen wichtig, daß ein late Binding geschieht, d.h. die
ü b e r l e r t e n Methoden der abgeleiteten Klasse benutzt werden, so kann dies für jede Me
thode esondert spezifiziert werden ( v i r t u a l Methoden). Für solche Methoden ist jedoch
oft ein Inlinin nicht möglich, s da ein Methodenaufru etwa den Aufwand eines Funkti
 nsaufrufes in bedingt.
   C + + weist somit Einschränkungen s o o h l hinsichlich des late Bindings wie auch beim
dynamic T y i n g auf Da beides nicht stren unterstützt wird, handelt es sich bei C + + auch
   3
      Es herrscht ein erbitterter Streit unter den Informatikern, ob die Pfeie in der oben beschriebenen
 der in der umgekehrten Richtung zu zeichnen seien. Sowoh für als auch gegen beide Varianten sprechen
verschiedene uffassungen. Die hier verwendete Pfeirichtun entspricht der Bedeutun er                     er
 ist ein" [45].
    4
      Dies gilt nicht für den Fall on virtual-Vererbung
    5
      Beim function-inlining wird anstelle eines Unterprogrammaufrufes der Funktionscoe direkt in den
aufrufenden C e k p i e r t . Dadurch entfällt der Beareitunsaufwand für die P a r a m e t e r ü e r e .
KAPITEL          PLEMENTIERUNG         IN C++


nicht um eine „ehte" objektorientierte Programmieprache. Dafür werden aber Appro-
ximationen bereitgestellt, die im überwiegenden Teil von Anwendungen, insbesondere aus
dem mathematisch-naturwissenschaftlichen ereich, den Anforderungen nach Objektorien-
tierung gengen. Sie wurden s auselegt, daß der Rechenaufwand eines Methodenaufrufes
auf den Aufwand eines Funktinsaufrufes in einem gewhnlichen C-Programm beschränkt
bleibt. Damit eignet sich C + + wie für die effiziente Imlementierun mathematischer
Algorithmen.



3.2     Klassen und ihre                 eziehungen
 n diesem Abschnitt wird der SoPlex zugrundeliegende objektrientierte SoftwareEntwurf
beschrieben; die beiden parallelen Erweiterunen D P l e x und   Plex werden im folgen-
den Abschnitt 3 3 diskutiert
    Einem objektrientierten Entwurf folgend, gliedert sich SoPlex in eine Vielzahl mitein-
ander in Beziehung stehender Klassen. Es werden keine globalen Datenstrukturen verwen-
det, da solche stets das Problem der Inkompatibilität zu Datenstrukturen anderer Kom-
ponenten eines komplexen Programms in sich bergen. Dies ist besonders wichtig für einen
LP-Lser, der in einer ielzahl von Anwendungen eingesetzt werden ll
    Es werden drei Kategorien von Klassen unterschieden. Ein Satz von elementaren Klas
sen implementiert grundlegende Datentypen, die auch in anderen Projekten Anwendung
finden können. Etwas mehr auf die Implementierung        n SoPlex ausgerichtet sind die
Vektor-Klassen. Sie implementieren verschiedene Datentypen zur Repräsentation v n Vek-
toren bis hin zu ganzen LPs. Auch wenn sie über umfangreiche Schnittstellen zur Manipu-
lation oder Operati (etwa der Vektoraddition) verfügen, ist ihr primärer Charakter doch
der der Einkaselung von Daten. Im Geensatz dazu dienen die algorithmischen Klassen
der K s e l u n      Teil)Algorithmen.


3.2.1    Elementare Klasse
Es wurden eine Reihe von Klassen implementiert, die grundlegende Datentypen wie dyna-
mische Felder oder verkettete Listen bereitstellen. Entsprechende Klassen finden sich wohl
in jedem Projekt, weshalb inzwischen eine standardisierte Klassenbibliothek für C + + ent
wickelt wurde ie stand j e d c h zu eginn des Prjektes noch nicht zur Verfüun
    An dieser telle s l l exemplarisch die template-Klasse DataArray vorgestellt werden
um daran den Nutzen auch s l c h einfacher Klassen bei der Programmentwicklung aufzu-
zeien. Die Klasse DataArray<T> dient zur Bereitstellung von Feldern über einem festen
Typ T. Somit entspricht ein DataArray<double> lediglich einem Feld von Gleitkmma-
zahlen. Es bestehen jedoch mehrere Unterschiede in der Nutzbarkeit gegenüber norma-
len CFeldern. ährend für ein Feld exlizit der Speicheratz a n f o r d e r t und schielich
. KLASSEN          IHRE      EZIEHUNGEN                                              27


wie     freigegeben werden muß, kann man ein ataArray<double> wie eine auomati-
sche Variable instantiieren. Dabei wird der verlangte Speicherplatz automatisch alloziiert
und sobald der Geltungsbereich der Variablen endet, wird der Speicherpatz ohne Zutun
des Programmierers wieder freigegeben. Dies zu vergessen, ist eine häufige Fehlerquelle
bei der Speicherverwaltung „von Hand" Ferner kann zur Fehlersuche der Zugriff auf die
Feldelemente mit einer Schrankenüberpfung versehen werden, die man für optimierte
Versionen abschaltet. Die Klasse DataArray bietet somit eine sichere Speicherverwaltung
für Felder eines beliebigen aber festen Typs. Redundanz, die bei Reimplementierung der
Speicherverwaltung für jedes benutzte Feld aufkommt, wird durch die Lokalisierung in der
Klasse DataArray vermieden. Dies zeigt eine rundlegende Vorgehensweise bei der ob-
jektorientierten Programmierung, nämlich mehrfach verwendbare Knzepte in Klassen zu
imlementieren.
        ende weitere Grundklassen wurden für SoPlex entwickelt:
     sList            einfach verkettete Liste
     dList            doppelt verkettete Liste
     dRing            zu einem Rin eschlssene, doppelt verkettete Liste
     ataHashTable     Hash-Tabelle
     orter            Sortierklasse
     mdLine           Parser für die Argumentenliste v n Programmen
    Random            Zufallszahlengenerato
    Timer             eine    oppuhr"
   Bis auf die letzten drei Klassen handelt es sich wieder um template-Klassen, die in
unterschiedlichsten Zusammenhängen eingesetzt werden können. Die Klassen CmdLine
Random und Timer entsrechen h i n e n einem rein mdulrientierten Programmierstil



3.2.2     Vektor-Klasse

Die Vektor-Klassen implementieren abstrakte Datentypen zur Linearen Algebra, und zwar
vom Einheitsvektoren bis hin zum vollständigen LP. Sie können wie Variablen benutzt wer
den, also als slche instantiiert und in Ausdrücken verwendet werden. Dabei beschränken
sich jedoch die Schnittstellen auf Zugriffs- und Manipulationsmethden sowie einfache Ope-
rationen, deren algorithmische Umsetzung kaum Alternativen z u l ä t . Wo dies der Fall ist
etwa bei der Lösung linearer Gleichungssysteme oder ganzer LPs kmmen h i n e n algo
rithmische Klassen zum Einsatz ( l Abschnitt 3 3 )
   Im folgenden werden die wichtigsten Ableitungs-Hierarchien und Benutzt-Relationen
zwischen den Vektor-Klassen skizziert. Dies stellt keine Dokumentation der Klassen dar
 ondern soll lediglich die Struktur des Entwurfes aufzeigen. Dennoch wird in manchen
Fällen auch die interne Verwaltung der Daten auezeigt, soweit es dem Verständnis der
Imlementierung dienlich erscheint
28                                        KAPITEL           PLEMENTIERUNG         IN C++


3.22.     Dünnbesetzte V e k o r e n

Wie in Abschnitt 1.7 beschrieben, bedeutet die Dünnbesetztheit eines Vektrs, daß es sich
lohnt, nur die NNEs zu verwalten. Es gibt eine Vielzahl von Vorschlägen für geeignete
Darstellungen, die sich in der Effizienz für verschiedene Operationen unterscheiden [39]. In
Abschnitt 1.7.3.3 wurden verschiedene Speicherschemata für dünnbesetzte Matrizen vor-
gestellt und bewertet. Dieselben Überlegungen treffen auch für dünnbesetzte Vektren zu.
Deshalb verwaltet die Klasse SVector (Sparse Vector) die NNEs in einem Feld von Wert-
Index-Paaren Klasse SVector: :Element). Eine andere, wegen früherer Implementierun-
gen in FORTRAN oft eingesetzte Lösung, ist die getrennte Verwaltun der Indizes und
Werte in je einem Feld. ie wurde aus zwei Gründen nicht gewählt. Zum einen benötigte
das Verschicken eines SVectorObjektes in diesem Fall zwei Kommunikationen, während
bei der verwendeten Darstellung eine Kommunikation ausreicht. Zum anderen kann es
bei zwei Feldern leichter zu CacheMisses kommen, falls Indizes und Werte au dieselben
Cachelines abebildet werden.

                                            Da NNE-Feld selbt wird nicht von SVector allo
                                       ziiert. Stattdessen muß der zu verwendende Speicher
          SVector
                                       platz bei der Instantiierung eines SVector-Objektes
                                       übergeben werden. Die Größe des Feldes bestimmt
                 SVector               wieviele NNEs der SVector maximal aufnehmen
                                       kann. Benötigt man einzelne dünnbesetzte Vektoren,
                                           ist diese Instantiierung und Restriktion unnötig
               UnitVector              kompliziert. Deshalb wird mit DSVector eine weite-
Abbildung 3.2                          re Klasse bereitestellt, die per Ableitung die Funk-
setzte Vektren                         tionalität vo SVectoren um eine dynamische Spei
cherverwaltung erweitert. DSVectoren stellen den NNE-Speicher intern zur Verfügung und
verwalten ihn dynamisch je nach Anforderung. Somit braucht von außen kein Speicher
bereitestellt zu werden, und es k n n e n hne eschränkunen NNEs hinzugefügt werden.
    Benötigt man j e d c h eine ielzahl von dünnbesetzten Vektoren, so ist die Instanti-
ierung vieler DSVectoren nicht geeignet, da dabei viele Speicherblöcke alloziiert würden,
was eine hohen Ressourcenverbrauch bedingt. tattdessen kann eine Menge von SVectoren
einer gemeinsamen Speicherverwaltung unterworfen werden, die von der Klasse SVSet im-
  lementiert wird. Die Details der interne Speicherverwaltung wurden bereits in Abschnitt
    33 vgestellt
    Als zweite von SVector abgeleitete Klasse implementiert UnitVector Einheitsvektoren
 ie treten in SoPlex für die Darstellung von SchlupfVariablen oder einfache Schrankenun-
gleichungen auf. An dieser Stelle wird der Ableitunsmechanismus statt zur Erweiterung
einer Klasse zu ihrer Spezialisierung eingesetzt: Ein UnitVector ist ein SVector mit nur
einem NNE, das immer den Wert 1 hat. Alle mathematischen Operationen von dünnbe-
setzten Vektoren sind aber auch für Einheitsvektren sinnvll, was durch die Ableitungs
beziehun oftwaretechnisch ausedrückt wird.
. KLASSEN             IHRE        EZIEHUNGEN


3.22.2       icbesetzt        Vekoren

Abbildung 3 3 zeigt die Klassenhierarchie für dichtbesetzte Vektoren. Wie schon bei den
Klassen für dünnbesetzte Vektoren implementiert Vector die chnittstelle für den Zugrif
auf Elemente sowie für mathematische O p e r a t i n e n auf V e k t r e n , während DVector die
Speicherverwaltung übernimmt

    Von Vector sind zwei weitere Klassen abgeleitet, die s e z i e l l für die Implementie
rung des Simlex-Algorithmus konzipiert wurden. Die Klasse UpdateVector wird für die
Simplex-Vektren / , g und h verwendet. Diesen wer
den in jeder teration das Vielfache eines Vektors
                                                               Vector
  /,          bzw. Ah hinzuaddiert. Deshalb erweitert
 p d a t e V e c t o r die Klasse DVector um M e t h d e n zur
Verwaltung des Faktors und des zusätzlichen V e k t r s                Vector
 owie eine M e t h d e zur Ausführun des            dates
    Aus Effizienzgrünen ist e oft               twendig, so-                  SSVector
wohl einen direkten Zuriff sowohl au das i-te Ele
ment als auch auf die NNEs eines dünnbesetzten
Vektors zu haben. Die erste Anforderung erfüllt die                         UpdateVector
Klasse Vector, während der Zugriff auf NNEs v                Abbildung 3.3: Kassen für dichte
SVectoren unterstützt wird. Die Klasse SSVector setzte Vektren
(Semi Sparse Vector) erlaubt beides, indem sie der
Funktionalität ihrer Basisklasse DVector die Verwaltung der ndizes der Nicht-Null
Elemente hinzufügt. SSVectoren werden in SoPlex für die V e k t r e n A / ,        g bzw.
der U p d a t e e c t o r e n e i n e s e t z t


3.22.      Von V e o r e n g e n z u m

Zur Repräsentati      eines allemeinen LPs der F r m ( 1 ) müssen f o e n d e Daten                  esei
chert werden

   Optimierungsrichtun
   Zielfunktionsvektor
   rechte und linke eite
    bere und untere Schranken
    dünnbesetzte)    ebenbedingunsmatri
    Statt alles in nur eine Klasse zu implementieren, lohnt es sich, dies mit einer Ableitungs
hierarchie zu realisieren, da die auftretenden Klassen auch in anderen Zusammenhängen
verwendet werden können, insbesondere als Parameter bei den M a n i u l a t i o n s m e t h d e n für
das LP. Die Ableitunshierarchie wird v n Abbildung 3           ezeigt
   Die Klasse S V e t Sparse Vect        et) wurde bereits ben erwähnt         ie i m l e m e n t i e r t die
KAPITEL              PLEMENTIERUNG            IN C++


S p i c h e v e r w a l t u n g für ein Menge von SVectoren und bietet M t h o e n zu Hinufügen
und Entfernen ganzer SVectoren sowie solche zum Hinzufüen und Entfernen von NNEs für
einzelne SVectoren in einem SVSet Intern speichert ein SVSet die NNEs seiner SVectoren
in einem Feld, das wie in Abschnitt               3 3 beschrieben verwaltet wird.

     Die Klasse SVSet benutzt ( r c h die g p u n k t e t e Linie symbolisiert) die Klasse DataSet
die sog. Key für die in einem a t a S e t e s e i c h e r t e Einträge verwaltet. Fügt man einen Ein-
                                                         trag einem D a t a e t hinzu, so vergibt dieses
           D a e t             <--                       ein eindeutigs Key ber das der Eintrag je
                                                         derzeit in dem a t a S e t referenziert werden
                                                         kann. Dieses Key bleibt s a n g e gültig, wie
                   SVSet                                 sich der Eintra im DataSet befindet, ins
                                                         besondere auch dann, wenn andere Daten
                                                         hinzugefügt der entfernt werden. Dagegen
                          LPColSet
                                                         kann sich die Numerierung der E i n t r g e bei
                                                         solchen Operationen ändern. Diese Funk-
           D a e t                                       tionalität wird bis hin zur Verwaltung der
                                                         Zeilen und Spalten des LPs durchgereicht
                                                         Dort eignet sie sich z.B. für die Implementie-
                   SVSet                                 rung v n Schnittebenen-Verfahren, bei de
                                                         nen laufend U n l e i c h u n e n von einem LP
                                                         entfernt bzw. ihm hinzugefügt werden. Da-
                          LPRowSet
                                                         bei ändert sich zwar stets die Numerierung
                                                         der Unleichungen, ihre Key (die dann al
                                        PxLP             lerding SPxRowId bzw. SPxColId h e i e n )
                                                         bleiben j e d c h unverändert
     Abbildung 3.4:          assengraph für SPxLP
     Die Klasse S P x P dient der Repräsentation von LPs. Sie ist s o h l von LPColSet als
auch von      RowSet abgeleitet. Letztere dient der Verwaltung vo Bereichsungleichungen
 Klasse LRow), und bietet dafür umfangreiche Zugriffs- und Manipulationsmethoden. Ent
 prechend stellt die Klasse LPColSet Methoden für den Zuriff auf LP-Spalten (Klasse
LPCol) bestehend aus Zielfunktinswert, oberer und unterer chranke sowie (dünnbesetz
tem) Spaltenvektr, und zu deren Manipulation bereit. Sowohl LPRowSet als auch LPColSet
sind von S V e t a b e l e i t e t , das die Verwaltung der Zeilen- bzw. Spaltenvektoren übernimmt
Somit ist in SPxLP die Nebenbedingungsmatrix zweifach gespeichert, und zwar zeilen- und
spaltenweise. Dies erlaubt eine besonders einfache Implementierung des transparenten Um-
schaltens zwischen beiden Basisdarstellungen und hat darüber hinaus Vorteile bei der ef
fizienten Implementierun des M a t r i x - V e k t r P r d u k t e s
. KLASSEN               IHRE          EZIEHUNGEN


3.22.4        ie     P-B

Die Klasse SPxBasis verwaltet eine allemeine L P - a s i s        l. Definiti   6). Dies um
folgende A u a b e n

       Verwaltun der         asisndexvektren,

       Verwaltun der        asismatrix und

       mathematische O e r a t i n e n mit der      asismatrix.

Die asismatrix wird als DataArray von Zeigern auf ihre Vektoren gespeichert Einfa-
che Operationen, wie die Multiplikation mit einem Vektor werden direkt von SPxBasis
implementiert. Dagegen werden komplexe Algorithmen zur Lösung von Gleichungssyste
men einem Objekt einer Gleichunssystem-LöserKlasse (eine Imlementierunsklasse v
SLinSolver, v l Abschnitt 3 3 ) übertraen.
    Jeder Index befindet sich zu einem Zeitpunkt in genau einem der Basisindexvekto
ren Bx,... ,Nf (Basisbedingung ). Deshalb wird der Mengencharakter der Indexvektoren
durch eine Abbildung jedes Index auf einen Status (in einem DataArray gespeichert) im-
plementiert. Lediglich für die Basisindizes ist eine Reihenfolge wichtig. Dies wird erreicht
indem die Basisindizes zusätzlich in einem DataArray eseichert werden.


3.2.          l g o r t h i s c h e Klasse
Innerhalb eines Simplex-Algorithmus kann eine Reihe von Teilproblemen identifiziert wer
den, für die jeweils unterschiedliche Imlementierungen denkbar sind. Diese sind

       das Pricin

       der Qutiententest

       das Generieren einer       tartbasis

       die L s u n   linearer Gleichunssysteme und

       eventuell ein P r e c e s s i n    des LPs

  ür jedes dieser Teilprobleme nnen verschiedene Algorithmen eingesetzt werden. Dies
soll durch den Software-Entwurf so unterstützt werden, daß die Implementierung offen für
zukünftige Varianten ist Wie in Abschnitt 3 1 1 erläutert, e i n e t sich dafür ein objekt
 rientierter Entwurf besnders gut.
   Jedes Teilproblem wird durch eine abstrakte Basisklasse repräsentiert. Eine solche weist
nur v i r t u a l M e t h d e n auf und beschreibt damit die Schnitstelle die ein Algorithmus zur
KAPITEL             PLEMENTIERUNG            IN C++


Lösung e i n s Teilprolems imlementieren muß. Die I m l e m e n t i e r u n g eines A l g o r i t m u s
zur Lösung eines Teilproblems geschieht daher in einer v n der jeweiligen abstrakten Ba-
sisklasse a b e l e i t e t e n Klasse Solche Klassen werden Implementierungsklsen       enannt


    Für jedes Teilproblem gibt es einen eigenen K l a s s e n b a m . Die Wurzel bildet jeweils
die abstrakte Basisklasse, die die Schnittstelle für das Teilproblem definiert. Verschiedene
abgeleiteten Klassen implementieren diese chnittstelle mit unterschiedlichen Algorithmen
zur L s u n g des Teilprblems
    Die Klasse SoPlex implementiert den Simplex-Algorithmus nur unter Verwendung der
abstrakten Basisklassen für die zu lösenden Teilprobleme. Zum Lösen der Teilpobleme
werden SoPlex Instanzen der Implementierungsklassen zur jeweils gewünschten algorithmi
schen Variante übergeben. SoPlex arbeitet mit jeder Implementierungsklasse korrekt. Dies
gilt insbesondere auch für jede in Zukunft entwickelte Implementierungsklasse. Dadurch
ist es möglich, z      blemsezifische Pricer zu entwickeln und mit SoPlex einzusetzen.

                                                  Da SoPlex in gößeren Programmen, bei denen
                                              LPs gelöst werden müssen, eingesetzt werden soll ist
       LPSolver
                                              es selbst auch nur eine mögliche Implementierung ei-
                                              nes LP-Lösers. Deshalb wurde die Klasse S o l e x der-
                 le                           selben Struktur unterzogen. Sie ist eine I m l e m e n -
                                              tierungsklasse der abstrakten Basisklasse LPSolver
Abbildung 3.5 Kassengraph für SPlex Algorithmen, die mit Hilfe der Schnittstellenklasse
LPSolver formuliert werden, können somit ohne Änderung au andere I m l e m e n t i e r u n s
klassen dieser Schnittstelle u m e s t e l l t werden.


3.23.1     Quotiententest Klassen


                                            Verschiedene Implementierungen des Q t i e n t e n
                                        tests zeichnen sich durch unterschiedliche Effizienz
          PxRaoTester
                                        und numerische tabilität aus. Die optimale Wahl
                                        kann von den zu lösenden LPs abhängen. Für So-
                  PxDefault             Plex wurden die drei in Klassengraph 3.6 a n g e b e
                                        nen Implementierungsklassen der abstrakten asis-
                                        klasse für den Quotiententest S P x R a t i o T e s t e r ent-
                  PxHarr                wickelt. Die zugrundeliegenden Algorithmen wur-
                                        den inhaltlich bereits in Abschnitt 1.3.4 behandelt
                                        Klasse S P x e f a u l t R T implementiert die einfachste
                   PxFast
                                        stabilisierte Version, also den „Textbook" Q u t i
Abbildung     3.6: K a s a p h          ententest. Die tabilisierung nach Harris wird von
   tiententestassen
                                        Klasse SPxHarrisR i m l e m e n t i e r t während Klasse
SPxFastR     en     S o P l x e n w i e n t a e n Q u e n e n t rea
. KLASSEN               IHRE         EZIEHUNGEN


3.23.2      Pricing Klassen



    Der Klassengraph 3 der Pricing-Klassen weis
SPxPricer als abstrakte Basisklasse für das Pricing                           PxPcer
aus. Derzeit existieren 6 verschiedene I m l e m e n t i e
rungsklassen. ie i m l e m e n t i e r e n f o e n d e Verfahren
aus Abschnitt 6:                                                                     PxDefaultPR
     SPefault             Most-violation Pricin
     SPxStee              Steepest-edge Pricin                                       PxWighPR
     SPvexP               Devex Pricin
     SPxParult            Partial multiple Pricin
     SPxWight             Weighted Pricing                                            PxStepPR
     SPybri               Hybrid Pricin
                                                                                      PxDevexPR


                                                                                     PxParMltPR


                                                                                     PxHybdPR
                                                                   Abbildung  3.7:      a s a p h
                                                                   Priciassen




3.23.              bas     Klassen



     Die Generierung einer eeigneten Startbasis kann einen g o ß e n Einfuß au die Ite-
rationszahl bei der L s u n g des LPs haben. Eventuell k n n e n dabei I f o r m a t i n e n aus
dem mathematischen               dell, das zu dem LP führt ge
nutzt w e d e n , um so              b e s s e e Startbasis zu kon     PxStter
struieren. Um solch eine problemspezifische Startbasis in
SoPlex integrieren zu können, wurde die abstrakte Ba-
sisklasse S P x S t a r t e r eingeführt. Derzeit ibt es ledi                  PxWightS
lich eine Implementierungsklasse, nämlich SPxWeightST Abbildung 3.8: assengraph er
  ie versucht, anhand von Gewichten für die Indizes eine StartbasisKlassen
möglichst leichte" Basis zu konstruieren, so wie es in Abschnitt 1.8.6 beschrieben wurde
Mittels abgeleiteter Klassen können auch andere Gewichte verwendet werden, indem die
M e t h d e zur erechnun der Gewichte ü b e r l a e r t wird.
KAPITEL          PLEMENTIERUNG   IN C++


3.23.4         er für i n e a e G l e i c h u n g s s e m e

                                          Die Lösung linearer Gleichungssysteme ist einer
            Solver                    der wichtigsten und rechenintensivsten Teilschritte
                                      von Simplex-Algorithmen. Auch wenn für SoPlex
                                      derzeit ledilich die in 1.7.3 beschriebene Imple-
               LUFactor               mentierung vorliegt, wurde auch hier das Entwurfs
Abbildung 3.9: Klassengraph der Löser konze für algorithmische Komponenten zugrunde
für dünnesetzte ineare   eichunssteme        ele        l Klassengrah 39)



3.23.5    P r e p r c e s s i n g Klassen

Oft werden LPs maschinell von anderen Programmen erzeugt. Dabei kommt es z.B. vor
daß Ungleichungen (oder Spalten) mehrfach erzeugt werden. Mathematisch ist dies kein
Problem, algorithmisch erhöht sich damit jedoch der Rechenaufwand bei der Lösung. Aber
auch weniger offensichtliche „überflüssige" Zeilen oder Spalten können auftreten, wenn
z.B. ledilich gültige Ungleichungen statt Facetten verwendet werden. In solchen Fällen
kann eine Vereinfachung des LPs zu erheblichen Geschwindigkeitsgewinnen bei der Lösung
führen [18 . Obwohl für SoPlex noch keine Implementierung dafür vrliegt, ist mit der
abstrakten asisklasse SPxSimplif ier eine chnittstelle für ein P r e c e s s i n der LPs
    esehen.



3.3      Klassen für parallele Implementierungen
In diesem Abschnitt werden die zusätzlichen Klassen für die Imlementierungen SMoPlex
für Parallelrechner mit gemeinsamem Speicher und DoPlex für solche mit verteiltem Spei
cher beschrieben. Beiden parallelen Implementierungen gemeinsam ist, daß sie wesentliche
Teile per Ableitung v n der sequentiellen Version SoPlex erben und lediglich die Zusätze
für die Datenverteilung, Kommunikation und Synchronisation hinzufüen. Dadurch übert
ragen sich wichtige Eigenschaften     SoPlex wie z die numerische tabilität direkt au
die parallelen Versionen.


3.3.1        eminsamer Speher
Die Parallelisierung des implex-Algorithmus für Rechner mit gemeinsamem Speicher SMo-
Plex arbeitet direkt au den Datenstrukturen der sequentiellen Implementierung SoPlex.
Lediglich die Arbeit muß zwischen den beteiligten PEs augeteilt werden, was einer Syn-
chronisation derselben bedarf. Dazu wurde die Klasse ShmemObj entwickelt, die im fol
 enden Abschnitt beschrieben wird. Anschließend wird ihr Einsatz für die arallelisierun
. KLASSEN FUR                     LLELE          PLEMENTIERUNGEN


b e b e n .


3.1.1                mem

MultiprocessorArchitekturen erfreuen sich z.Z. wachsender Beliebtheit, zumal sie immer
preisgünstiger angeboten werden. Meist werden sie als Server eigesetzt, jedoch bietet je
der Hersteller auch eine Bibliothek, mit deren Hilfe arallele Programme entwickelt werden
 önnen. Eine solche bietet Funktionen zur Erzeugun und Terminierung sog. Threads, sowie
 chloßvariablen, Semaphoren o.a. Primitive zu deren Synchronisation. Threads sind „leicht-
 ewichtie" Prozesse die alle Ressourcen, also Speicheratz, F i l e D e s c r i r e n etc teilen.

    Inzwischen wurde v n der Normungskmmission POSIX ein Standard für solche Funk-
tionen definiert, der jedoch bislang nur von wenigen Anbietern implementiert ist. Deshalb
wurde die Klasse ShmemObj entwickelt, die die wesentliche Funktionalität in einer objekt
orientierten Schnittstelle zur Verfügung stellt. Dadurch beschränkt sich der Portierungsauf-
wand für verschiedene Parallelrechner mit verteiltem Speicher auf eine Anassun dieser
Klasse

    Die wichtiere Aufgabe der Klasse ShmemObj ist jedoch die Implementierung eines
Programmiermodells, das eine Parallelisierung objektorientierter Implementierungen auf
Multiprozessren mit gemeinsamem Speicher unterstützt. Dabei eht es darum, einzel
ne Methden durch Parallelität zu beschleunigen. Dazu bietet ShmemOb die Metho-
de d o P a r a l l e l ( f ) an, mit der eine Funkti bzw. M e t h d e   leichzeiti mehre
ren Threads aufgerufen wird. Dadurch wird folgende
Vogehensweise bei der Parallelisierung unterstützt                    hmmObj
(v Abbildung 310):
    Ausgehend von einer sequentiellen Implementie
                                                                               eq
rung in einer Klasse SeqClass wird eine abgeleitete
Klasse ParClass implementiert, in der eine zu ar-
allelisierenden Methode v einer neuen überlagert                                     Pa
wird. Diese veranlaßt mit d o a r a l l e l ( f ) die paral-
n   ,    .   ,,..,       ,   . , ,,   i    ,. / ,   ,x    •,   i   Abbdung        3.10: Eins      der        Kss
lele Ausführung der M e t h d e f (thread) mit mehre- c ,               n,                        M     ,,
                     °                                             ShmemObj zur Ü b e r e r u n   n Methoden
ren (auf unterschiedlichen Es laufenden) Threads e i n e r sequentiellen Klasse SeqClass mit
wobei jeweils die zugehörige Threadnummer thread parallen Impementierunen i eine as
übergeben wird. Anhand der Threadnummer und der se ParClass
Anzahl der beteiligten Threads kann die Arbeit in der Methode f aufgeteilt werden. Bei
der Implementierung der Methode f für die Klasse ParClass, wird idealerweise die Fuk-
tionalität von SeqClass wiederverwendet. Durch die Ableitung von SeqClass kann die
parallelisierte Klasse ParClass transparent eingesetzt werden, ohne daß andere Teile im
Programm dies „bemerken". Dadurch wird eine schrittweise Parallelisierun der rechenin-
tensiven Methden unterstützt
36                                            KAPITEL            PLEMENTIERUNG           IN C++


    Über die e r i t e l l u n g de M e t d e d o a r a l l e l hinaus ist die Klass ShmemObj auch
für die Erzeugung Vernichtung und Synchronisation der Threads verantwrtlich. Bei der
Konstruktion eines Shmembj-Objektes wird die Anzahl der bei doParallel zu verwenden-
den Threads angegeben. Diese werden sofort erzeugt warten jedoch bis auf einen an einer
  chloßvariablen. Der verbleibende Thread führt das weitere sequentielle Programm aus
Erst bei Aufruf der Methode doParallel (f) wird die chloßvariable freigeeben, so da
die anderen Threads bei der parallelen Bearbeitung von f kollaborieren. ach Terminati
 ynchronsisieren sich die Threads wieder über eine chloßvariable
    Eine andere Möglichkeit die Methode doParallel zu implementieren wäre die Erzeu-
gung der Threads bei jedem Aufru und deren Vernichtung nach Termination. Da jedoch
die Erzeugung und Vernichtung von Threads einen hohen Aufwand gegenüber der ynchro-
nisatin an einer Schloßvariablen bedeutet wurde der oben beschriebene Ansatz ewählt
    Mithilfe der Klasse hmemObj kann somit eine objektorientierte sequentielle Implemen-
tierun auf Methodenaufrufsebene parallelisiert werden. Dabei bleibt die sequentielle Rei-
henfolge der Methodenaufrufe erhalten, so daß bei dieser Parallelisierung zu einem Zeit
punkt immer nur ein paralleler Methodenaufruf in einem Objekt erfolgen kann. Damit nun
nicht unnötig viele Threads verbraucht werden, die die meiste Zeit darauf warten, ange
stoßen zu werden, können verschiedene ShmemObjObjekte dieselben Threads verwenden.


3.1.2        ie Klassen zu          oPlex

    Die parallele Implementierung     l e für Parallelrechner mit emeinsamem Spei
cher stützt sich auf die Klasse hmemObj (vgl. Abbildun 3.11). Da SoPlex nur einen
Teil des imlex-Algorithmus imlementiert, bietet SMoPlex auch nur für diesen Teil eine
                                   parallele Implementierung. Dies ist die Berechnung
                                   des Matrix-Vektor-Produktes für die erechnun des
          hmmObj                   Vektors Ag sowie die Aktualisierun der Vektoren.
                                   Die entsrechenden Methoden von oPlex werden in
          So                       SMoPle durch parallelisierte Methoden überlagert
                                   die hmemObj zur Parallelisierung verwenden.
                                                  Andere zur Parallelisierun geeignete Funktiona
                  Mo
                                          lität sind wie in Abschnitt 2 beschrieben das Pri
Abbildung 3.11 P a a l l i i u n          c i n g ) d e r Q uo tiententest sowie die Lösung linearer
                                          Gleichungssysteme. Diese Funktionalität wurde ja in
spezielle Klassen a u s e l a e r t s da ihre arallelisierung auch in entsrechend abeleiteten
Klassen erfogt
Abbildung 3.12 zeigt den Klassengraphen für die arallelisierte Versi    der steepest
e d e Pricing-Klasse SMxSteepPR. Diese Klasse ist sowohl von SPxSteepPR als auch von
 MxPricer abgeleitet. Die Klasse SMxPricer implementiert die Pricing-Methoden ihrer
  asisklasse S P x i c e r . Dadurch sind Objekte   SMxSteepR als PricingObjekte für
. KLASSEN FUR              LLELE         PLEMENTIERUNGEN


   le              le         ba

    Die Klasse SMxPricer implementiert zwei Parallelisierungskonzepte für das Pricing
Zum einen ist dies das parallele Ausführen einer P r i c i n e r a t i n . Dazu werden die ndi
zes in soviele Teilmengen wie von ShmemObj bereitge
stellte Threads unterteilt, so daß jeder Thread einen
                                                                      PxPcer
Kandidatenindex aus einer Teilmene auswählt. Um
dies zu tun, ruft die PricingMethode eine weitere
Methode auf, die das Pricing nur auf der Teilmen-                           PxSteepPR
ge durchführt. Diese wurde bereits in SPxSteepPR
implementiert, so daß die Pricing-Strategie bereits
vollständig von der sequentiellen Klasse implemen-                    PxPcer
tiert wird. Anschließend wählt xPricer den besten
  andidaten aus
                                                                   hmmObj
    Zu     andeen    implemeniert     die    Klasse
SMxPricer das Bck-Pivoting. Dazu wird für
                                                                     SMxPcer
jeden ausgewählten Kandidaten das zugehörige
Lineare Gleichungssystem gelst, und der beste
Kandidat dem Simplex-Löser übergeben. n den                             SMSteepPR
folenden Iterationen werden aber die anderen zuv
gewählten Kandidaten benutzt, für die die Lösung Abbildung 3.12 P a r a l l u n
                                                     steepestedge Prici
der Linearen Gleichunssysteme lediglich aktualisiert
werden muß

    Der Vorteil dieser Vorgehensweise ist, da sämtliche Komplikatien und neuen Prin-
zipien, die durch Parallelität ins Spiel elangen, in der Klasse SMxPricer realisiert wer
den können. Dadurch kann mit Hilfe v n abeleiteten Klassen eine neue Pricing-Strategie
einfach hinzugefügt werden, ohne daß man sich dabei Gedanken über Parallelität ma-
chen müßte. Existiert bereits eine sequentielle Versi
on, wie das beim Beispiel des steepestedge Pricings
                                                                  olver
mit SPxPricer der Fall ist, kann die dort implemen-
tierte Funktinalität direkt verwendet werden.
   Der soeben vorgestellten Strukturierung wurden                        LUFactor
auch die Quotiententest-Klassen unterzogen. Dabei
wurde jedoch lediglich eine Parallelisierung über der                    h m b j
Indexmenge implementiert, da es kein Äquivalent
zum Block-Pivoting für den Quotiententest gibt
                                                                         LUFactor
   Auch für die L s u n     n linearen Gleichungssy-
stemen wurde mit SmSLUFactor eine parallelisier Abbildung 3.13: Kass SmSLUFactor
te Klasse bereitgestellt, die die in Abschnitt 2.2.4 ietet die parall sun zwei inearer
                                                      eichunssstem
beschriebene arallele L s u n verschiedener Glei
  u n m e       i m e n         S o f n in Z u u n     r a e L         r dünnbee        lea
KAPITEL            PLEMENTIERUNG          IN C++


Gleichungssysteme verfügbar weden, die shneller sin als die sequentielle Imlementie
rung, können sie an dieser Stelle auch zur arallelen Lsung einzelner Gleichunssysteme
einestetzt werden.




3.3.2         r t e t e r Speche
Auch die Implementierung für Parallelrechner mit verteiltem Speicher DoPle nutzt per
Ableitun den bestehenden sequentiellen C d e von SoPlex. Lediglich die für die Verteilun
notwendige Kommunikation wird h i n z u f ü g t Die dazu benötigte Funktinalität wird v
der Klasse DistrObj bereitgestellt



3.2.1            Ob

Die Klasse DistrObj spielt für Imlementierungen auf Parallelrechnern mit verteiltem Spei
cher eine ähnliche Rolle wie ShmemObj für solche mit gemeinsamem Speicher. Sie bietet eine
Abstraktin v n der zu der zugrundeliegenden Architektur gebotenen Kommunikationsbi-
blithek, so da sich eine Portierun ledilich auf eine Anpassun dieser Klasse beschränkt
   Darüberhinaus implementiert die Klasse DistrObj eine wichtige Operation, nämlich das
Gossiping (vg. Algorithmus 11). Dabei wird die Kommunikationsstruktur sowie die Ver
waltung der Kommunikationspuffer implementiert; lediglich die auszuführende Gossipin
Oeration muß von dem Benutzer bereitgestellt werden. Damit eignen sich von D i s t r b j
abeleitet Klassen besnders zur Implementierung datenparalleler Algorithmen.
       chließlich unterstützt die Klasse DistrObj eine Partitionierun des Parallelrechners
DistrObjs werden SPMD-artig instantiiert, wobei eine Teilmene v PEs angegeben wer-
den kann. Dabei wird auf jedem PE ein Objekt der Klasse DistrObj erzeugt; die Gesamt
heit der lokalen DistrObjObjekte wird verteiltes Objekt genannt. Bei der Imlementierung
von parallelen Algorithmen in abgeleiteten Klassen, sehen" lokale istrObj-Objekte nur
die zu ihrem verteilten Objekt zugehörien DistrObj-Objekte. So liefert etwa die Methode
  PesO die Anzahl der zum verteilten Objekt gehörenden PEs, die als logisch von 0 bis
n P e s ( ) - l durchnumeriert erscheinen. Auch die Kommunikation erfolgt lediglich innerhalb
eines verteilten Objektes. Insbesonder kommt es zu keinen Fehlern, wenn Nachrichten ver
schiedener verteilter Objekte mit derselben Identifikationssnummer verschickt werden; die
Klasse DistrObj rgt für eine eindeutige Zuordnung zu den verteilten Objekten. Schließ
lich arbeitet die G o s s i i n g M e t h d e nur auf den zu einem verteilten Objekt gehörenden
PEs. Somit können als DistrObj formulierte Algorithmen sicher in einem anderen Zusam-
menhang verwendet werden, eine wichtie Anforderung an Software
. KLASSEN          FUR             LLELE                 PLEMENTIERUNGEN


3.2.2           oPex


    Die Klasse DoPlex dient zur Parallelisierun              l e x für Parallelrechner mit verteil
tem Speicher als ein verteiltes Objekt. Als v n D i s t r b j abgeleitete Klasse wird auf jeder
zum verteilten Objekt gehörende E eine lokales D P l e x - O b j e k t instanziiert. Jedes die
ser lokalen Objekte verwaltet eine Sub-LP bestehend aus einer T e i l m e n e der Zeilen oder
Spalten des gesamt LPs. Ob eine zeilen- oder spaltenweise Verteilung             rgenommen wird,
richtet sich nach der Wahl der Basisdarstellung. Die
Verteilun der V e k t r e n au die PEs erfo     emä
                                                                         strbj
    )
    Zusäzlich zum jeweiligen Teil-LP verwaltet jed
P E die vollständige Basis samt ihrer Faktorisierung            So
Dadurch wird jedes P E in die Lage versetzt, lineare
Gleichungssysteme mit der Basismatrix zu lösen, wie
es für das Block-Pivotin erforderlich ist. Dazu ist
es jedoch notwendig, daß jedes P E einen Puffer für Abbildung 3.14: P a r a l l u n
Basisvektoren verwaltet, die nicht zum l k a l e n Teil S o e x
LP e h r e n .

    Auf jedem E wird im Prin                  der in o P l x implementierte implex-Algorithmu
ausgeführt. Da der sequentielle Code nur das jeweilige T e i l L P sieht, wird s das
Matrix-Vektor-Produkt implizit parallel ausgeführt
Das Pricing und der Quotiententest werden ohnehin
                                                                               PxPcer
  on algorithmischen Klassen implementiert, deren
Parallelisierung im Anschluß diskutiert wird. Dem-
nach üssen       n DoPlex lediglich die M e t h d e n von                             PxSteepPR
S o l e x überlagert werden, die sich auf die Verwal
tun der Basis beziehen. Wann immer ein auf ei-
nem anderen P E befindlicher Vektor in die Basis ein-                          PxPcer
tritt, muß dieser empfangen und in den Puffer einsor-
tiert werden. Entsprechend verschickt dasjenige PE,                             hmmObj
das den in die Basis eintretenden Vektor verwaltet
diesen an alle anderen PEs des verteilten DoPlex-
Objektes. Diese F u n k t i n a l i t ä t wird durch Überla-                         DPxPcer
gerung der Zugriffsmethode auf LP-Vektoren imple
mentiert. Damit der Puffer für fremde Basisvektren
nicht überläuft, müssen fremde Vektoren, die die Ba-                                       DPxSteepPR
sis verlassen, aus dem Puffer entfernt werden. Dies Abbildung 3.15 Parallisierun
wird mittels Ü b e r l a e r u n g der asistausch-Methode s t e e P e s t e d g e Prici
implementiert
   Die I m l e m e n t i e r u n   er Pricer- und Q u t i e n t e n t e s t K l a s s e n   le   estaltet sich
KAPITEL              PLEMENTIERUNG             IN C++




Abbildung 3.16: B e p i e eines 4 x 4 Prozessorgittrs für d e p a r l l l e LUZerlegung. Die PEs des globalen
verteite Objekts sind grau h i n t e r g t . Entsprechend sind zu zeien zw. spatenweisen verteiten Obekten
zugehri PEs schraffiert h i n t e r g t




analog zu dem Vorgehen bei MoPlex, wobei die Kasse i s t r b j die Rolle von ShmemObj
     rnimmt (vgl. Abbildung 315). Dabei           d zu B e t i m m u g eine    aximaln b      mi-
 imalen Elemente die G o s s i p i g - e t h d e von DistrObj b u t z t . Die Klasse DPxPicer
d i e t als abstrakte Basisklasse fü mit D P l e x zu v e d e d e Pricig-Klassn. Sie imple-
mentiet ieder das B l o i v o t i . E n t s e c h e d wird e i e Klass DPxRatioTester fü
die Quotiententet-Klass        definiet. F r n      i d i eine Klass        i n o l v e r ei Glei-
chugssystemöser u t e Nutzung von S a c t o r impemetiert, de die parallele ös
 weier Gleichugssysteme mit d e r s l b n M i untersützt Wichtig ei dem nsatz die
    ass mit D o l e ist, daß alle zugehörige v e t e i t e O b j t e physkalich uf derslb
       ge von PEs insantiie        den.

  ie Klasse   le       d die zugehörigen a r a l l n Pricig- der Qutientetet-Klassen
    de von i s t r b j abgeleitet. Dies erlaubt es mehree LPSolver DoPlex uf verschie-
denen Teimengen der PEs e i s P a r a l l e c h r s zu i n s a n z i i e , was bsonders die
R a l i e g von Branch-and-ut-Alorithme geeiget i
KLASSEN FUR             LL               IMENTIERUNG


3.2.      P a l e l e LU-Zerlegung

Bei der p a r a l l n U-Zerlegung für ünnbesetzte    tizen nach Abschnitt 2 werde die
Prozessoren logisch als ein Gitter angeordnet. Für unterschiediche perationen kooperie-
      weils nterschiedliche Gruppe von Prozessorn. So b e c h n jeweils die Prozessoren
einer eie die globaln A n a h l n der NNEs pro ei sowie ih        eweils ößten Absolut-
betra und die Prozessorn einer S a l t e b t i m m e die A n l NNEs fü jede          alte de
  a t . Alle Prozessor gemeinsa          timme die M g e der P i v t - a n d i d t e    d die
   te de nkompatiblitäten.
    All die      perationn könn als Gossipig-Operatione implementie            den. Die
    d von de Klass DistrObj unterstützt, w h a l b die Es in verschiedene v e t e i t e Ob
  kte untetei wrden. All PEs zusamme biden das globale veteilte O b j k t der LU
   rlegu     Zätzlich      den all PEs e i r Prozessor-Zeie ode Spalte in jweils einem
veteilten ( S - ) O b j t zusammegefaß (vg. Abb. 3.16). Daduch kann ede perati-
on o h e viel Verwaltugsaufwand      dem v e t e i t e O b j t implementie  de dess
    t e i c h e m der Operation        icht
apitel

     rgebisse

   dieem Kpitel      den die Impementierungen a n a n d von Probeläufn auf i h n Nut
zen zu ö s g von LPProblemen hi ntersucht. Die dazu herangezge                       LPs erde
Abschitt      vorgetell      de folgeden      ei Abschitte werden die jweiligen Lauf
zeite      die ei mplementienge SoPlex, MoPl u D o P l x angegeen. Dabei
werden auch die       irkunge verschieder algorithmicher Paramete aufgezeigt.
 etzte Abschitt steht etwas a ß a l b d i e r Betrachtungen, d          die parallle Lösu
von Gleichussysteme       ehande die icht i die p a r a l l l n I m p e m e n t i e g e n DoPl
         Pl    ufgenomme       de
    Die folgede Tablle g i t ei             uc         den Umfang des Codes samt Dokume
 ation
                                       SoPl        MoPl       DoPl
                               eil      52000        3900        300
                              mfan     1.MB           5kB      33kB

   Man     nnt daß der o b j o r i e n t i e t e E u f t ä c h l i c h die ehachvewendu
von Code unterstützt. A u d e m           deutlich, aß die a r a l l i e g f ei    Parall
 echn mit gemeinsamem peiche                iger a u f d i g i



4.       Di Testproblem
In T a b l l A.l s n d die fü die              läufe herangezog     LPs zusammengetellt u war
jeweils mit einigen statistische W t e n . Die A n a h l de Z e i n oder Spalte b t i m m t
nach W h l der Basisarstellung die imenson der B a s m x . Die Anzahl der NNEs i
der N n b e d i n g u n g s m a t r x b t i m m t i etw den Rechenaufwand für das M a t i V e k o r
Produkt ei der Beechung de                   ktors g. Die Kondition de optimaln B a s m a i x g
 chließlich e i n Anhaltpunk                  die u m e c h e  chieigkeite die ei de ö s n g de
.1          TESTPROB


 wei      LPs zu rwarten s . Sie wurde weils mit                              echet u        ezieht ich
 uf die ptimale altenbas des skalierten LPs
      ie    tmenge der LPs besteht aus Problemen a der N e t b [ 7 ]                     d verschiedee
      IB   ehandelte P r o t e n [106]. Aus der Netl                 t m m e n die LPs 1 1 1 . Die meisten
 urde       die T t m e n g aufgnommen, wei von i h e n die Problembeispiel 220 abge-
eitet      den. Dies       j e d c h nicht f r „stocfor3" as LP mit de meiten Zeile
Salte      us der Netlib, pilo        ei n u m e c h bsonders schwieigs N e t P r o b l e m
 fd"       as das Problem mit de meite            i c h t - l l E l e m e n t e n de Net
      ie Probleme   20 mit de Endung ob       d LP-Reaxieungen e i n s verallgemei
ten     ckingProblems. Sie stamm a s dem Wuzelknoten e i s Branch-and-ut Verfh-
  ns zur optimaln Dkomposition von Matizen in unabhängge Bl            [19]. Sie enthalte
    eits Schitte      und haben meh Zei    als Spalten. Die Name vor ,,.ob4" ezeich-
nen de Namen des NetlibProblem dess         ptimale B a s i a t r i dekomponie        de
soll; bei agg3ob4" also die ptimal B a s t      von agg3"
       eim Fequezzuweingsproblem im o b u n k geht                       arum Bassstation       Fre-
quenzen so zuzuweien, aß sich möglicht                 g Intefeeze            g b e wobei g s s e
technologche u          echtiche  n s c h ä n k n g n berücksichtigt         de     s s n . Die LPs
„ S M 6 8 " und „SM50k-68                d L P - R e a x i e u n g , die im Rahme e i e s Branch-
a n d - u t Verfahrens zur Lösung die     Problem           t e h e . Sie enthalte   al Date de
   obfnkAnbieters E P l s
    it „ k a m i 8 0 u d „ k m i 2 7 0 wude             wei LPs bezeichet, die e i e m P r o j e t zu
  mmissonierung von Glückwunschkarte                      mmen. Sie thalte          al Date von
dem K o o p e a t i o n s a r r Hrlitz G.
      ei den Problemen „ c h c "             „s     handet es sich um L P - R e i e n g              von
q u a t i c a s s g n m e t Problemen a     de Q A L I B [ 3 ].
    Das Problem „stolle" hat seinn Ursprung i der P l a n n g von N e t z r k Es ande
 ich um ei Steinerbaumproblem mit Längenrtiktionen und osten uf de                 de
  uch f die Problem t m m e die Daten a e i r r a l n A n d u n g .
    em Projekt zur optimal    Fazeugumufplanung           tamme die LPs „anse-
    u     ansecoml"     . Die beide Probleminstanzen etstehen bei der A f ü h r n g
ei column-gneration         ns. Sie ethalten Date   s r a l A n d u n g der Ham-
b r Hochban AG.
      ie Ps 30-35 s m m e von e t a r t i t i o n n g Probleme etwa zur E n s a t z p a n n g von
C r w s bei groß F l u g n t e e h m e (aa = meican i r l s ) . Sie u d e n b e i t n [
    utzt um die a r a l l i e n g de duale S i m p n s zu                   ten.
     ie Auwah der LPs t etwas voreingenomme da                     als blich LPs mit meh
 ei    als S a l t e vorkommen. In dieem Fall sollte ich die V e r d u n g einer eilnbas
  szahlen, was auch zu bobachte st. Der G r u d d f ü , aß „typische" LPs ehe mehr
  alten als e i n aufwei        t e d c h uch dar zu ehe bi d t o kei          mplementie-
44                                                                   KA                ERGEBNIS


   g v e r g b a r ware die eine Zeinbasis nutze                ute L P d e l l i e r hab         he
   eits bei der Mdellierung darauf g c h t e t daß die LPs mehr S a l t e als eilen h
     notfalls duch den Übegang zu ei                dual    Formuierung. Duch         f ü h n g de
 einbasis n s a t e - f t h e - a r t Code i t es edoch wahrscheinlich aß z u f t i             i
L P d e l l e e t e h e die meh Zei           als S a l t e ab
    Tablle A. nthält die ufzeite                  die An        der Iterationen die C P E 07
die ösung der Tst-LPs b ö t i ,             d zwar so         mit dem rimaln als auch mit dem
dualen Algorithmus. C P L X w d e weils mit de Voreinstellngen verendet. Da dies
I m p e m e t i e n g sicherlich als state-of-the-art a n g e h e       de arf dient die T a b l l
als R e f z f die B t u n g von SoPlx.
      ür ein       ss          gleichbarkeit seien nu Inforation           ü               X zusammenge-
faßt soweit die ö f f e i c h verfügbar snd [15, 16, 1 3 . All LPs erde vor ihre Lösung
skalie      dem z u ä c h        ede palte duch den größten ar              u f t e t e d e Absolutbetrag
geteit und anschießend jede Zeie e t p e c h e n d behande wird C E X v e d e t
 chließlich ein Spaltenbasis. Somit ist de dual Algorithmus stets ein n t f d e                        nd
der imal ein einfügender Als Pricingtrategie f r de dualen Algorithmus i das
 teepet-ed        Pricing e i n g e t z t wobei die initiale Norme           icht exak bestimmt son
der     uf         etzt w d e n . Beim primaln Algorithmus kommt ein dynamiches Pricing
das wiche partial mutiple Pricing u                   eve Pricing umschaltet zum Ensatz Dabei
       edoch keine w e i t e n I n f o r t i o n e n      die D e t l s beider P r i c i n g a h n ode
der U c h a l t r a t e g i e ekann               hase wird ein mpementierung de Composite
Simp         e t h d e (vgl (1-9)) v e d e t . Die von SoPl benutzte Crashbasis                   de von
CPL        eh hnlich [15]. Die                   sonders an den Tst-Problemen deutich, bei den
sow      C P E als auch SoPle d i t mit Phase 2 b n n n könnn. Diese älle eign
 ich sonders             e i e vegleichede B e u t e i n g beide m p e m e t i e n g n .


4.2          oPlex
In de ersten Abschnitten       1         2 werden T u f e von SoPlex mit einer S a l t e
basis betrachtet um so eine ssere Vegleich mit PLEX zu ermöglichen. Da sich beide
Impemetieungn         der Art der B e h a n u n g von P a s 1 unterscheide gl. Abschitt
1.4), wede z u c h s nu die Probleme e t c h t e t e t c h t e t     ei de  ufgr       de
  a r b a s s kei  as 1 b ö t i      d
     ie ich a n s c h i e n d   Abschnitte heben die   sondeheiten von SoPle g
ande     mpemetieng              hevor. Als rste i t i diesem         sammenang die ei
basis zu nn         de        utze n Abschitt 4 . 3      ertet          . Anschließnd ird i
Abschitt 4.2 der Effekt der dynamische F a k o r i s i e u n g s q u e n z a u f e z e i . Der Vor
tei de Gleichungsstemlösrs r bsonders               nnbetzte M t i z e            d        Abschitt
425 ufezeit
    In de     aruf f o l d e     Abschitte          de die          rkng       verschiede      weite
OPEX

               Iterationen beim dualen Simplex                       Laufzeiten beim dualen Simplex




A b b i d u n g 4.1: Summe der Iterationen und Laufeiten beim dualen Simplex über Mengen von Tes
LPs. Bei den mit „Phase 2 LPs" bezeichneten Werten wurden die Summen über alle LPs der Testmenge
gebildet, die keine Phase 1 benötigen. Die mit „alle LPs" bezeichneten Werte enthalten die Zahlen zu allen
LPs, sofern diese verfügbar waren.



algorithmischer Parameter untersucht. Es beginnt in Abschnitt 4.26 mit dem Einfluß der
Skalierung auf die Anzahl der Iterationen. Als nächstes wird in Abschnitt    7 der Effekt
der Crashbasis gegenüber einer Schlupfbasis studiert, und in Abschnitt 4.2.8 folgt eine
Untersuchung der Kreiselvermeidungsstrategie von SoPlex. Schließlich wird in Abschnitt
4     die ichtigkeit eines numerisch stabilen Quotiententests unterstrichen.


4.2.1      Duale Algorithmen mit Spaltenbasis
Es wird nun die Auswirkung der Pricing-Strategie auf die Geschwindigkeit von SoPlex
untersucht und eine Bewertung im Vergleich zu CPLEX beim dualen Simplex vorgenom-
men. Die Testergebnisse zu CPLEX sind in Tabelle A.2 aufgelistet. Für den Vergleich
mit CPLEX werden zunächst Testläufe betrachtet, bei denen eine größtmögliche Überein-
stimmung der algorithmischen Parameter erreicht wird. Es werden also die Ergebnisse für
SoPlex mit Spaltenbasis, Crashbasis und skaliertem LP betrachtet. Sie sind in de Tabelle
A.3 bis A. aufgeführt.
    Ein wichtiger Unterschied zwischen CPLEX und SoPlex ist die Behandlung der Phase
1. Um auch hier eine gute Vergleichbarkeit zu erzielen, beschränken wir uns zunächst auf
die LPs, bei denen beide Implementierungen keine Phase 1 benötigen, weil die gefundene
Startbasis bereits dual zulässig ist. Dabei handelt es sich um 22 Problembeispiele, nämlich
die LPs mit den Nummern 3-5, 13-24 7 und 30-35. Sie werden im folgenden Phase LPs
genannt.
    Die Summen der Anzahl der Iterationen und der Laufzeiten über diese Probleme für
KATEL       4. ERGEBNIS

SoPlex mit verchiedenen Pricing-Stratgien sowie für C L E X sind in den ersten Reihen
von Abbildung 4.1 aufgeführt und grafisch dargestellt. Man beachte jedoch, daß solche
Summen immer nur statistische Aussagen erlauben, wogege bei einzelne Probleme die
Ergebnisse vollkomme anders ausfallen können.

    Beide Implementierungen, CPLEX und SoPlex, starten bei den Phase 2 LPs mit einer
Schlupfbasis und benutzen beim steepestedge Pricing mit 1 initialisierte Normen. Somit
sind die zugehörigen Werte gut miteinander vergleichbar. SoPlex beötigt deutlich weni
                                             ger Iterationen als CPLEX. Dies wirkt sich
                                             auch auf die Laufzeit aus, obwohl CPLEX
                                             etwas weniger Zeit pro Iteration benötigt
                                             (vgl. Abb.
                                                        Das Devex-Pricing führt zu einer gerin-
                                                    geren Iterationszahl als das partial multiple
                                                    Pricing. Da letzteres ein Pricing-Verfahren
                                                    für de einfügenden Simplex ist, wurde
                                                    für den entfernenden Simplex die most
                                                    violation Pricing-Strategie implementiert.
                                                    Die geringfügigen Unterschiede in den Ite-
                                                    rationen und Laufzeiten kommen von den
Abbildung 4.2: Durchschnittliche Iterationszahl pro einfügenden Simplex-Iterationen, die zur
Sekunde beim dualen Simplex für CPLEX und SoPlex Behebung eines Shiftes notwendig wurden,
mit verschiedenen Pricing-Startegien.                   •            • u     A u • i,
                        fa      ö
                                                    sowie aus numerischen Abweichungen.
    Eine interessante Beobachtung ist, daß obwohl der Rechenaufwand pro Iteration (bei
gleicher Basis) beim steepest-edge und Devex Pricing höher ist als beim mostviolation
Pricing, letzteres weniger Iterationen pro Sekunde erreicht. Dies liegt an der geringeren
Iterationszahl: In den ersten Iterationen ist die Basismatrix fast eine Einheitsmatrix. Dann
werden die anfallenden linearen Gleichungssysteme schneller gelöst und der Lösungsvektor
hat weniger NNEs als bei einer späteren Basismatrix, die mehr NNEs enthält.
    In Abbildung 4.1 finden sich auch die über alle LPs gebildeten Summen der Iterationen
und Laufzeiten. Dabei sind jedoch die Werte für das Devex, partial multiple und most-
violation Pricing untere Schranken, da bei den Testläufen einige LPs nicht innerhalb des
Zeitfensters von 3 0 0 Sekunden gelöst werden konnte ( g l . Anhang A
    Während C P E X auch in Phase 1 einen entfernenden Algorithmus ausführt, benutzt
SoPlex dabei den primalen und somit einfügenden Simplex. Beim steepestedge Pricing
ist der Rechenaufwand pro Iteration beim einfügenden Simplex höher als beim entfernen-
den, da ein zusätzliches Matrix-VektorProdukt berechnet werden muß. Aus diesem Grund
übertrifft nun die Laufzeit von SoPlex auch beim steepest-edge Pricing die von CPLEX
geringfügig, obwohl die Iterationszahl weiterhin niedriger ausfällt. Dies wird auch in Ab-
bildung      an der nunmehr höheren Iterationsgeschwindigkeit von C E X deutlich.
      ie bei de Phase      LPs sind die andere     Pricing-Strategien sowohl von der Iterati
4.      OP


 nszahl als auch von der Laufzeit her weit abgeschlagen. Das Devex Pricing scheint eine
höhere Iterationszahl als das mostviolation oder partial multiple Pricing zu benötigen.
Dies kann jedoch nicht festgestellt werden, da alle drei Pricer einige LPs nicht im vorge-
gebenen Zeitfenster lösen konnten. Beim Devex Pricing handelt es sich dabei lediglich um
ein LP, während mit partial multiple und mostviolation Pricing drei bzw. vier LPs nicht
 nnerhalb von 3 0 0 s gelöst werden konnten.
    Insgesamt erwartet man, daß das Devex Pricing weniger Iterationen benötigt, als das
partial multiple oder mostviolation Pricing. Dies trifft auch meistens zu. Eklatante Aus
nahmen sind die LPs 25 und 26. Offenbar enthalten diese LPs Strukturen, die sich negativ
auf das Devex Pricing auswirken. Solche „Überraschungen zeigen, daß es sich bei allen
Pricing-Strategien nicht um Verfahren mit garantierter Iterationszahl handelt. an kann
also immer Pech — aber auch Glück — haben.
   Zusammengefaßt kann folgendes für den dualen Simplex mit Spaltenbasis festgestellt
werden:

      Das steepestedge Pricing ist die erfolgreichste Pricing-Strategie.

     Phase 1 von SoPlex unterliegt aufgrund des höheren Rechenaufwandes beim steepest
     edge Pricing für den einfügenden Simplex dem Composite Simplex

     SoPlex übertrifft beim entfernenden Algorithmus          EX — edenfalls bei de zu-
     grundegelegten Test-LPs.


4.2.2        Primale    lgorithmen         it Spaltenbasis
Wie im vorigen Abschnitt beschränken wir uns bei der Bewertung des primalen Simplex-
Algorithmus zunächst auf die LPs, für die eine primal zulässige Startbasis gefunden und
nur der Phase 2 Algorithmus durchgeführt werden muß. Dabei handelt es sich um 11 LPs,
nämlich die Probleme mit den Nummern 3, 5 und         20. Die über diese LPs gebildeten
Summen der Iterationszahlen und Laufzeiten sind im Vordergund von Abbildung 3 für
    EX und SoPlex mit verschiedenen Pricern dargestellt.
    Bei de Phase 2 LPs zeigt SoPlex mit steepest-edge Pricing die geringste Interationszahl
während CPLEX die geringste Laufzeit aufweist. CPLEX benutzt beim primalen Simplex
ein dynamisches Pricing-Verfahren, das zur Laufzeit zwischen partial multiple und Devex
Pricing umschaltet. Dabei sind die Umschaltstrategie und die Interna beim partial mul
tiple Pricing nicht bekannt. Um einen Hinweis darauf zu erhalten, wie SoPlex mit einer
entsprechenden Pricing-Strategie arbeiten würde, sind mit „MIN die Werte für einen hy
pothetischen semidynamischen Pricer aufgeführt, der zu Beginn der Lösung eines LPs die
jeweils für ein Problem schnellere Pricing-Strategie zwischen Devex und partial multiple
auswählt. ür die Summen wurden also, e nachdem welche aufzeit niedriger ausfällt,
KATEL                    4. ERGEBNIS

                                                                                           Laufzeit beim primal en Simplex
                Iterationen beim primalen Simplex
                                                                  30000




                                                                  20000
                                                                                                                    P
                                                                  15000


                                                                  10000




                                                     Alle LPs
                                                    Phase 2 LPs
                                                                   5000


                                                                      0       f   5   yi   JW       ^ ^i        i     ta      Alle LPs
                                                                                                                             Phase 2 LPs




                                                                                  8
                                                                          X
Abbildung 4 . : Summe der Iteationen und Laufzeiten des primalen Simplex über Mengen von Test
LPs. Bei den mit „Phase 2 LPs" bezeichneten Werten wurden die Summen über alle LPs der Testmenge
gebildet, die keine Phase 1 benötigen. Die mit „alle LPs" bezeichneten Werte enthalten die Zahlen zu allen
LPs bis auf die Probleme 27 und 29, sofern diese verfügbar waren. Die beiden LPs wurden weggelassen,
da CPLEX sie nicht innerhalb des vorgegebenen Zeitrahmens von 3000 Sekunden lösen konnte.



jeweils die Werte vom Devex oder vom partial multiple Pricing benutzt. Ein echter dyna-
mischer Pricer, der die Entscheidung während der aufzeit trifft, könnte die aufzeit noch
weiter senken.
    Per Definition zeigt dieser hypothetische Pricer eine geringer Laufzeit sowohl als das
Devex wie auch das partial multiple Pricing. Jedoch erreicht er noch nicht die Geschwindig-
keit des Pricing-Verfahrens von CPLEX. Dieses scheint meist ein partial multiple Pricing
durchzuführen, wofür die hohe Anzahl von Iterationen pro Sekunde spricht (vgl. Abb. 4.4)
Jedoch gelingt es CPLEX, dabei signikant weniger Iterationen auszuführen als SoPlex
mit partial multiple Pricing.
    Interessant ist die Beobachtung, daß das mostviolation Pricing zu einer etwa fünfmal
höheren Iterationszahl führt als das partial multiple Pricing. Eigentlich erwartet man von
einem Pricing-Verfahren, das stets das gesamte LP berücksichtigt, eine geringere Itera-
tionszahl als von einem, das immer nur einen Teil betrachtet. Eine plausible Erklärung
für dieses Phänomen könnte sein, daß das most-violation Pricing immer wieder denselben
Fehler macht, scheinbar „gute PivotElemente auszuwählen, die jedoch de facto keinen
Fortschritt bringen. Vor solchen Fehlern ist das partial multiple Pricing geschützt, da es
solche irreführenden PivotElemente gar nicht erst „sieht, wenn sie nicht zufällig im ak-
tuellen Teil-LP liegen.
    Dieser Erklärungsversuch trifft nicht in allen Fällen zu: Bei den Problemen im vorigen
Abschnitt zeigte das partial multiple Pricing eine höhere Anzahl von Iterationen als das
most-violation Pricing. Somit liegt es wohl eher an den zugrundeliegenden LPs, welche
Pricing-Strategie am erfolgreichsten ist. Dies gilt auch für das steepestedge Pricing. Auch
wenn dafür die akkumulierte Laufzeit bei SoPlex am geringsten ausfällt, gilt dies nicht
4.    OP


bei allen LPs. Ein besonders eklatantes Beispiel hierfür ist das Problem 3 (fit2d): Mit
steepestedge Pricing beötigt SoPlex für dessen ösung         5, s, mit partial multiple
Pricing lediglich     s.

    Insgesamt zeigen diese Ergebnisse                       Iterationen pro Sekunde beim primalen Simplex
und die des vorigen Abschnittes, daß              140


die Pricing-Strategie einen extremen                          II
Einfluß auf die Lösungsgeschwindigkeit            100



eines LPs hat. Dabei gibt es jedoch keine          80



allgemeine „optimale Pricing-Strategie.            60
                                                                                                      ^
Vielmehr sollte für ede Problemklasse              40               s-
                                                                                          L^
nach einer optimale Strategie gesucht
werden. Mit seinem objektorientierten
                                                   20


                                                    0
                                                             f
                                                        -<^i—'/     w      /y      /         V
                                                                                              >   1
                                                                                                               Alle LPs
                                                                                                              1 Phase 2 LPs




                                                        s
Software-Entwurf bietet SoPlex hierfür
optimale Voraussetzungen.
      enden wir uns nun den verbleiben- Abbildung 4.4: Durchschnittliche Iterationszahl pro
                                          Sekunde beim primalen Simplex für CPLEX und So-
den LPs zu, bei denen auch ein Phase-1 Plex mit verschiedenen Pricing-Startegien.
Problem gelöst werden muß. Aus dem Ver-
gleich mit den Werten der Phase 2 LPs können Rückschlüsse auf den Unterschiede bei der
Phase zwischen CPLEX und SoPlex für den dualen Simplex gewonnen werden.
   Die über alle TestBeispiele aufsummierten Iterationszahlen und Laufzeiten sind in der
zweiten Reihe von Abbildung 4.3 angegeben. Dabei wurde jedoch die Probleme 27 und
29 weggelassen, da CPLEX sie nicht in dem vorgegebenen Zeitrahmen von 3000 Sekun-
den lösen konnte. Auch sind die Werte für das Devex und most-violation Pricing lediglich
untere Schranken, da einige weitere LPs nicht innerhalb der Zeitbeschränkung gelöst wer
den konnten. Diese Probleme wurden jedoch nicht aus der Summenbildung ausgeschlossen,
um die Anzahl der Problembeispiele nicht noch weiter zu verringern. Eine aussagekräftige
Bewertung der ahlen ist auch so möglich.
    Die wichtigste Beobachtung ist, daß sich das Verhältnis der Iterationszahle gegenüber
den Phase 2 LPs signifikant zugunsten von SoPlex verändert hat. Somit zahlt sich
aus, daß SoPlex bei seinem Phase-1 Problem soviel Information des AusgangsLPs bei
behält wie möglich. Insbesondere liegt bei einigen Problemen (Tabelle A.3, Probleme
2,21,22,23,2434) die Lösung des Ausgangs-LPs bereits vor, nachdem die Phase abge-
schlossen ist. CPLEX gelingt dies nur in einem Fall Tabelle A. Problem 24)
    Durch die geringere Iterationszahl löst SoPlex mit steepestedge Pricing alle LPs in
deutlich kürzerer Zeit als CPLEX. Dabei wirkt sich zusätzlich die Tatsache positiv aus,
daß in der Phase 1 eine entfernender Simplex benutzt wird, bei dem das steepestedge
Pricing weniger Rechenaufwand benötigt als im einfügende Fall
    Die Phase 1 von SoPlex scheint für den primalen Simplex also günstiger als eine Imple-
mentierung nach [100] Wieder ist dies keine beweisbare Aussage, sondern spiegelt lediglich
die Ergebnisse bei der gewählte Testmenge wider. Es wird immer Probleme geben, bei
50                                                             KATEL      4. ERGEBNIS

denen sich ei gegenteiliger Effekt zeigt (z.B. Problem
    Sowohl mit Devex Pricing als auch mit partial multiple Pricing bleibt SoPlex hinter
der Geschwindigkeit von CPLEX zurück. Der hypothetische Pricer „MIN könnte hingegen
CPLEX überholen, ohne jedoch die Geschwindigkeit des steepest-edge Pricing zu erreichen.
   Aufgrund der hohen Iterationszahl pro Sekunde ist anzunehmen, das CPLEX vorwie-
gend ein partial multiple Pricing verwendet. Daß die Iterationsgeschwindigkeit beim partial
multiple Pricing von SoPlex deutlich niedrieger ausfällt, liegt wieder daran, daß in Phase
1 ein entfernender Algorithmus ausgeführt wird, bei dem im partial multiple Pricer eine
most-violation Pricing-Strategie implementiert ist.


4.2.3     Zeilen- versus Spaltenbasis
Die Untersuchung der Abhängigkeit der Simplex-Algorithmen von der gewählten Basis
darstellung geschieht anhand von Abbildung 4.5. Jeder Punkt beschreibt das Verhältnis
von Zeit, Iterationszahl oder Iterationszeit bei der Lösung eines LPs mit einer Zeilenbasis
gegenüber der Lösung mit einer Spaltenbasis. Dazu wurden die Werte aus Tabelle A.7 zu
denen aus A.3 in Beziehung gesetzt, wobei sowohl die Ergebnisse vom primalen als auch
vom dualen Algorithmus berücksichtigt wurden.
    Als Abszisse ist der Logarithmus (zur Basis 10) des Verhältnisses der Anzahl von Zeilen
zur Anzahl von Spalten jedes LPs aufgetragen: log( Zeilen / Spalten ). Somit repräsentieren
negative Werte LPs mit mehr Spalten als Zeilen und positive solche mit mehr Zeilen als
Spalten.
     Die Ordinate dient dem Vergleich der Laufzeit, Iterationszahl oder Iterationszeit (Zeit
pro Iteration) zur Lösung eines LPs bei der Verwendung eine Zeilen- oder einer Spaltenba-
sis: Bezeichne z.B. mit tz und ts die Lösungszeit eines LPs für eine Zeilen- bzw. Spaltenbasis,
so wird als Ordinate og(tz/ts) aufgetragen. Ein Punkt überhalb der Achse beschreibt also
eine Lösung, bei der die Verwendung der Zeilenbasis mehr Zeit benötigt als bei Verwen-
dung der Spaltenbasis. Entsprechend wurden die Iterationszahlen und die Iterationszeit
aufgetragen.
    Für die Iterationszeit wurde eine Ausgleichsgerade bestimmt und in Abbildung 4.5
eingezeichnet. Sie zeigt deutlich den zu erwartenden Zusammenhang zwischen der vorzu-
ziehenden Basisdarstellung und der Gestalt des LPs: Die Darstellung sollte so gewählt
werden, daß die Dimension der Basismatrix geringer ausfällt.
    Für die Iterationszahl und Lösungszeit wurden die Ausgleichsgeraden nicht eingetra-
gen, da sie aufgrund der Streuung der Datenpunkte im Gegensatz zur Iterationszeit nur
sehr ungenau bestimmt sind. Daher ist es auch nicht verwunderlich, daß sich die höhere
Iterationsgeschwindigkeit bei der Wahl der geeigneteren Basisdarstellung nicht immer bei
der Gesamtlaufzeit auszahlt. Insbesondere für den dualen Simplex bei den Problemen 1220
kommt es zu einer drastische Erhöhung der Iterationszahl bei Verwendung der Zeilenbasis,
4.      OP


                                                                               •
                                                                                                                  D




                   1
                                   o                                                                              ••
                        .           •
                                                                               e
                                               m   ^        o   O   O                                             ft»
                                                                                   n O     I
              o
                                                                                       0
                   5
                                                                                               O
                   ,
                                   o
                                                                    o          D
                                                                                                                             £
                                                        -D-
                                   B                     D D        D          •   D   D   •0
                   0




                                                                                       •                                             '
                                                                                                      D
                                                                                                          D                  •
              -,
              0
                   5




                                                                                                                  8
                                                                                                                  o
                            Zeit                                                                                  &
                   •                                                +
                            Iterationen
                   o        Zeit/Iteration
                            Linear (Zeit/Iteration)

              -1,5
                       -3               -2,5           -2               -1,5       -1          -0,5           0         0,5      1
                                                                                                   log( Zeilen / Spalten )



Abbildung 4 . : Logarithmisches Vehältnis der I a t i o n s a h l , Lösungszeit und I t a t i o n s i t für SoPle
mit Zeilenbasis gegenüber Spaltenbasis. Alle Werte wurden mit steepestedge Pricing bestimmt



wodurch bei diesen Problemen die Laufzeiten höher als mit einer Spaltenbasis ausfallen.
    Unterschiede bei der Iterationszahl kommen zustande, wenn beim Pricing „gleich gute
Pivot-Elemente zur Verfügung stehen. Durch die unterschiedliche Traversierung der Indi
zes in den Schleifen bei Verwendung einer Zeilen- oder Spaltenbasis kommt es zu einer
unterschiedlichen Auswahl und somit zu differierenden Iterationszahlen. Diese Unterschie-
de können sich positiv für den einen oder andere Fall auswirken; im Mittel ist edoch
keine Präferenz zu erwarten.
    Ein wichtiger Aspekt bei der Wahl der Basisdarstellung wird von Abbildung 4.5 nicht
beschrieben, nämlich ihre Auswirkung auf die verwendbaren Pricing-Strategien. Soll ein
LP mit mehr Ungleichungen als Variablen mit dem dualen Simplex gelöst werden, so wird
bei einer Zeilenbasis ein einfügender Algorithmus benutzt. Für das steepest-edge Pricing
bedeutet dies einen erhöhten Rechenaufwand pro Iteration, weshalb es ünstiger sein kann,
dennoch eine Spaltenbasis zu verwenden.
    Die Zeilenbasis ermöglicht in diesem Zusammenhang auch die Verwendung anderer
Pricing-Verfahren beim dualen Simplex, insbesondere das partial multiple Pricing. Dies
kann zu bemerkenswerten Leistungssteigerungen verhelfen. Beispiele hierfür, die einzeln
gerechnet wurden und somit nicht aus den Tabelle im Anhang entnommen werden können,
KATEL       4. ERGEBNIS

 nd (dualer Simplex mit Zeilenbasis
                           Problem       steepest-edge          artial multiple
                                                                         0,5 s
                                                     03,0               08,3 s
                                                    530,83 s
                                                      7,


4.2.4          namische Refaktorisierung
Im Gegensatz zu 64] darf sich zur Bewertung des Erfolges der dynamischen Faktorisie-
rungsfrequenz der Vergleich nicht auf eine einzelne Faktorisierungsfrequenz beschränken,
sondern muß sich an dem „ p t i m u m für eine konstante Faktorisierungsfrequenz messen.
Dazu wurden die Zeiten pro 100 Iterationen für eine Reihe fester Faktorisierungsfrequenzen
zwischen 10 und 320 gemessen. Sie sind im einzelnen i Tabelle A. aufgeführt und die
Summen in Abbildung       dargestellt.
   Auch für die dynamische Faktorisierungsfrequenz wurde eine Testreihe über verschiede-
ne Werte von r§ zwischen 1 und 32 durchgeführt. Die ermittelten Iterationszeiten stehen in
Tabelle A . . Die mittleren Geschwindigkeiten wurden mit in Abbildung 4.6 aufgenommen,
obwohl die Werte r/cß nicht mit den statischen Faktorisierungsfrequenzen vergleichbar sind.
Dennoch bietet die gewählte Darstellung eine gute Gegenüberstellung beider Ansätze.

    270
                                                                Für die statischen Faktorisierungsfre-
                                                            quenz ist ein eindeutiges Minimum der Zeit
                                   —•—dynamisch
                                                            pro Iteration bei einer Faktorisierung der
                                     D   statisch           Basismatrix alle 80 Iterationen festzustel
                                                            len. Bei seltenerer oder häufigerer Faktori
    250
                                                            sierung sinkt die Iterationsgeschwindigkeit,
                                                            weil im ersten Fall der Rechenaufwand für
    240                                                     die Faktorisierung zunimmt und im zwei
                                                            ten Fall der Rechenaufwand für die Lösung
    230                                                     der Gleichungsssteme steigt.
          10   20     40      80         160          320
           1   2      4                  16           32Dagegen zeigt die dynamische Einstel-
                                                    lung der Faktorisierungsfrequenz eine deut
Abbildung 4.6: Summe der Iterationsgeschwindig-
keit über alle Testprobleme für dynamische und sta- lich geringere Abhängigkeit von dem Ein-
tische Faktorisierungsfrequenz der BasisMatri nach stellparameter rj<p, sofern er größer als etwa
den Tabellen A.ll und A.12.                         6 gewählt wird. Darunter kommt es zu ei
nem steilen Anstieg der Zeit pro Iteration, da die Basismatrix zu häufig faktorisiert wird.
Für rj<p > 6 ist die Iterationsgeschwindigkeit öher als die höchste mit fester Faktorisie-
rungsfreuenz erreichbare.
   Schließlich wäre eine Heuristik denkbar, die vor Begin des Simplex-Algorithmus
4.      OP                                                                              53


z.B. anhand der Anzahl von Zeilen und Spalten des zu lösnden LPs den optimalen Para-
meter für die statische oder dynamische Faktorisierungsfrequenz einstellt. Wir simulieren
dies, indem wir die mittlere Iterationszeit über alle LPs bestimmen, wobei für edes LP
der eweils optimale Parameter Wert benutzt wird. Dann erhält man als mittlere Laufzeit
pro 100 Iterationen 230,5 für den statischen und 227,5 für den dynamischen Fall, d.h. die
dynamische Refaktorisierungsfreuenz führt auch dann noch zu einer höheren Iterations
geschwindigkeit.


4.2.          leichungssstemlöser
Es sei nun auf ein einzelnes Problem hingewiesen, bei dem SoPlex von der effizienten Imple-
mentierung des Lösers für gestaffelte Gleichungsssteme für besonders dünnbesetzte Vek-
toren profitiert. Es handelt sich um das Problem 7 (stolle), das im Schnitt 4,9 NNEs pro
Spalte enthält. Insgesamt sind weniger als 0.004% der Matrixelemente seiner Nebenbedin-
gungsmatrix von Null verschieden. Die optimale Spaltenbasisatrix hat durchschnittlich
sogar nur        NEs pro Spalte.
    Für derart dünnbesetzte Matrizen lohnt es sich bei der Lösung der gestaffelten Glei
chungssysteme über die Positionen der NNEs im Arbeitsvektor Buch zu führen, wie es i
Abschnitt 1.7.4 beschrieben wurde. Dies zeigt ein Vergleich der Laufzeiten beim dualen
Simplex zwischen CPLEX und SoPlex mit Spaltenbasis. Da keine Phase 1 nötig ist, führen
CPLEX und SoPlex mit steepest-edge Pricing denselben Algorithmus aus. Nun ist zwar die
Iterationszahl bei SoPlex deutlich höher, die Laufzeit hingegen wesentlich geringer 437,8s
vs. 735,


4.2.6        Skalierung
Die Auswirkungen der Skalierung des LPs können durch Vergleich von Tabelle A.3 mit A.8
untersucht werden. Oft stimmen Iterationszahlen und Laufzeiten mit und ohne Skalierung
überein, jedoch gibt es auch Probleme, bei der die Skalierung einen großen Einfluß hat.
Sie kann sich sowohl positiv als auch negativ auf die Lösungszeit niederschlagen. Beispiele
für eine Verschlechterung durch Skalierung sind die Probleme 3 und 27, während sie sich
z.B. bei den Problemen 8 und 14 positiv auswirkt. Für einzelne Probleme ist es somit nicht
  öglich, eine Vorhersage über den Nutzen der Skalierung des LPs zu machen.
    Eine statistische Aussage gewinnen wir wiederum durch Summenbildung. Dazu sind i
der folgenden Tabelle die Summen der Iteratione über alle Testläufe aufgeführt


                                     primaler Simplex dualer Simplex
                   ohne Skalierung               9943          5478
                    mit Skalierung                  22         5370
                        Verhältnis               0,            993
KATEL       4. ERGEBNIS




                                    50 Iterationen                                       50 Iterationen


        Schlupfbasis   Crashbasis                         Schlupfbasis      Crashbasis




Abbildung 4.7: Laufzeit und Iterationszahl/50 beim dualen (links) und primalen (rechts) Simplex mit
steepestedge Pricing für eine Crash- und eine Schlupfbasis.



Beim primalen Simplex führt das Skalieren des LPs somit im Schnitt zu 10% mehr Ite-
rationen, während es beim dualen Simplex kein signikanter Einfluß ausgemacht werden
kann.


4.2.7       Die Startbasis
In Tabelle A.9 sind die Laufzeiten und Iterationszahlen für die Lösung der Test-LPs bei
Verwendung einer Schlupfbasis aufgelistet. Diese Startbasis ist für die Probleme mit den
Nummern 3-5, 1224 sowie 27-35 dual zulässig. Aufgrund der Phase 1 von SoPlex unter
scheiden sich (bis auf numerische Verschiedenheiten) der primale und duale Algorithmus
für diese Probleme nicht. In der Sprache des primalen Simplex bedeutet dies, daß die LPs
bereits in der Phase gelöst wurden.
    Zur statistischen Bewertung des Nutzen der Crashbasis gegenüber einer Schlupfbasis
wurden wiederum die Summen der Laufzeiten und Iterationen über alle LPs bestimmt und
in Abbildung 4.7 dargestellt. Sowohl für den primalen als auch für den dualen Simplex führt
die Crashbasis zu einer geringeren Iterationszahl als die Schlupfbasis, wobei der Unterschied
beim dualen Simplex höher ausfällt.
    Auf die Laufzeit wirkt sich die Reduktion der Iterationszahl jedoch nur beim dualen
Simplex aus. Beim primalen Algorithmus fällt die akkumulierte Lösungszeit trotz höherer
Iterationszahl für die Schlupfbasis geringer aus als bei der Crashbasis. Der Grund dafür
ist wiederum beim steepest-edge Pricing zu suchen. Bei vielen Probleme ist die Schlupf
basis dual zulässig, so daß SoPlex sie bereits mit Phase 1 vollständig löst. Dabei wird
jedoch der duale Simplex benutzt. Bei der verwendeten Spaltenbasis ist dies der entfer
nende Algorithmus, bei dem das steepestedge Pricing einen geringeren Rechenaufwand
4.      OP




Abbildung 4 . : Ierationszahl in Abhängigkeit von de Anzahl maxcycle d e g e n e r i e r PivotSchritten bis
zur Perturbation des LPs, gemessen beim primalen Simplex mit steepestedge Pricing. Die dick gezeichnete
Linie repräsentiert die Summe über alle Testprobleme.



pro Iteration benötigt als beim einfügenden. Mit der Crashbasis werden zwar insgesamt
weniger Iterationen benötigt, edoch ist der Anteil von einfügenden Iterationen höher.


4.2.8        Kreiseln

Um den Effekt der Kreiselvermeidungsstrategie von SoPlex zu beurteilen, wurden die Ite-
rationszahlen für verschiedene Parameter maxcycle (vgl. Abschnitt    gemesse Tabelle
A.     und in Abbildung 8 dargestellt.
    An der Summe über alle Probleme (fettgedruckte Linie ist zu erkennen, daß sich so-
wohl zu häufiges als auch zu seltenes Perturbieren im Mittel negativ auf die Iterationszahl
auswirkt. Bei zu häufiger Perturbation wird nach Beenden einer Phase ein stark veränder
tes LP vorliegen, so daß für die Lösung des Ausgangs-LPs eine weitere Phase mit den
dafür nötigen Simplex-Iterationen erforderlich wird. Entsprechend können bei zu seltenem
KATEL      4. ERGEBNIS

Aufbrechen der Degeneriertheit lange PivotSequenzen ohne Forschritt entstehen. Das
 ptimum liegt für die gegebene Testmenge bei etwa maxcycle = 16 Iterationen.



4.2.     Der Quotientest
In den Tabellen A.13 und A.14 sind die TestErgebnisse von SoPlex bei Verwendung des
Quotiententests nach Harris bzw. des Textbook-Quotiententests verzeichnet. Dabei sind
die Ergebnisse im einzelnen von geringer Bedeutung. Vielmehr soll deutlich werden, daß i
beiden ällen nicht alle LPs gelöst werden konnten.
    In den Fällen, die von beide Versionen mit gleicher Iterationszahl korrekt gelöst wer
den, stellt sich der Textbook-Quotiententest als der effizientere heraus. Dies ist aufgrund
des geringeren Rechenaufwandes im Vergleich zum zweiphasigen Harris Verfahren auch
zu erwarten. In diesem Zusammenhang ist die Beobachtung interessant, daß bei gleicher
Iterationszahl der Textbook-Quotiententest nur selten effizienter als der von SoPlex ist
(Ausnahmen bei den Problemen 11 und 23). Dies liegt am Weglassen von Phase , sofer
 n Phase bereits ein stabiles PivotElement gefunden wurde.
    Es ist jedoch zu bemerken, daß die drei Implementierungen des Quotiententests nicht
wirklich miteinander vergleichbar sind. Es ist zu erwarten, daß die Stabilität auch für
den Harris und den Textbook-Quotiententest durch eine dnamische Toleranzanpassung
und das Zurückweisen von PivotElementen (vgl. Abschnitt 1.8.2) weiter gesteigert werden
kann. Dergleichen wird vermutlich auch bei CPLEX vorgenommen, dessen Quotiententest
auf dem Ansatz von Harris basiert 5, 6]



4.3      SMoPl
Die in diesem Abschnitt vorgestellten Testergebnisse wurden auf einer SGI Challenge
mit 2 MIPS 4000 Prozessoren a 150 MHz durchgeführt. Die benutzte Maschine wird als
File-Server genutzt, so daß bessere Ergebnisse auf einem ausschließlich für SMoPlex zur
Verfügung stehenden Rechner zu erwarten sind. Ferner zeigt die Hardware Engpässe beim
Speicherbus: Die sequentielle ösung von nwlö beansprucht 1 2 9 . s , während die zwei
fache sequentielle Lösung von „nwl6 auf je einem Prozessor eweils 144.63s dauerte (user
time). Somit kann man für einen Parallelrechner, der keinen solchen Engpaß zeigt, eine
Verbesserung der Ergebnisse für Prozessoren um etwa         erwarten.
    Die Basisdarstellung wurde bei allen Testläufen so gewählt, daß die Dimension der
Basismatrix geringer ausfällt. Es wurde immer eine Schlupfbasis verwendet und der dua-
le Simplex-Algorithmus ausgeführt. Als Pricing-Strategie wurde das steepest-edge Pricing
verwendet, denn nur für dieses kann die parallele Lösung zweier Gleichungsssteme ver
wendet werden. Alle Zeiten wurden als wallclock time (real verstrichene Zeit gemessen.
4.       OPL                                                                                57


4.3.1          fteilungsschema

    In Abschnitt 2.2.1 wurde für die Parallelisierung des Matrix-Vektor-Produktes eine
blockweise Aufteilung der Arbeit und somit der Nebenbedingungsmatrix vorgeschlagen.
Um die optimale Anzahl von Blöcken zu bestimmen, wurden die aufzeiten und Iterationen
für eine Aufteilung in 2, , 8 und 16 Blöcke gemessen; sie sind in Tabelle A.15 vezeichnet.
Dabei wurden die anderen Parallelisierungsstrategien (Block-Pivoting und das gleichzeitige
Lösen zweier linearer Gleichungssysteme
nicht eingesetzt. In Abbildung 4.9 sind nun
die daraus gewonnenen Ergebnisse grafisch
dargestellt. Es wird für jede Anzahl von
Blöcken die mittlere Iterationsgeschwindig-
keit als der Quotient aus der Summe al
ler Iterationszahlen und der Summe der
Laufzeiten über alle Probleme aufgetragen.
Ersichtlich wird mit der geringsten Block-
zahl die höchste Iterationsgeschwindigkeit
erreicht. Als Grund dafür wurde bereits
in Abschnitt 2.2 auf die Dünnbesetzt
heit des Vektors Ah angeführt. Schließ-
lich ist festzustellen, daß eine Geschwindig-                      4    8
keitssteigerung durch die parallele Berech-                       Anzahl Blöcke
nung des Matrix-Vektor-Produktes erzielt Abbildung 4.9: Durchschnittliche Iterationszahl pro
wprHpn kann                                  Sekunde in Abhängigkeit von der Anzahl von Blöcke,
                                             in die das LP aufgeteilt wird.



4.3.2    Erzielte Beschleunigung
Für die Testläufe zur Bewertung der i SMoPlex eingesetzten Parallelisierungskonzepte
wurde aufgrund der oben geschilderten Ergebnisse eine Aufteilung in 2 Blöcke benutzt.
Es wurden Testläufe für alle vier möglichen Kombinationen der Verwendung des Block-
Pivotings und der parallelen Lösung zweier Gleichungsssteme durchgeführt. Die Meßer
gebnisse sind i Tabelle A.    aufgeführt.
    Abbildung 4.10 zeigt die Summen der Laufzeiten und der Iterationen sowie das Verhält-
nis derselben zueinander in bezug auf die entsprechenden Werte bei der ösung mit nur
einen Prozessor. Letztere stammen aus Tabelle A.15
    In bezug auf die Laufzeit kann nur mit den Versionen ohne Block-Pivoting eine Be-
schleunigung erzielt werden, jedenfalls wenn man alle Testprobleme betrachtet. Eine ge-
nauere Untersuchung des Block-Pivoting erfolgt in Abschnitt 4.3.3. Der Grund für das
schlechte Abschneiden der parallelen Versionen mit Block-Pivoting liegt in der Erhöhung
der Iterationszahl   ährend sie ohne Block-Pivoting im Mittel gegenüber dem seuentiel
15                                                                  KATEL        4.   ERGEBNIS




A b b i d u n g 4 . : Summen der Lösungseit und terationszahl sowie beider Quotient für den parallelen
Algorithmus auf 2 PEs im Verhältnis zu den entsprechenden Werten bei 1 PE.




len Algorithmus konstant bleibt, zeigt sich eine durchschnittliche Erhöhung der Iterations
zahl von etwa 20% durch das Block-Pivoting. Diese ist offenbar zu groß, um dennoch eine
Beschleunigung zu gewährleisten.

   Bei der Iterationsgeschwindigkeit (dritte Reihe in Abbildung 410) ist zweierlei zu be-
obachten. Zum einen zeigt sich eine Beschleunigung durch die parallele Lösung von zwei
Gleichungssystemen, und zwar sowohl für die Testläufe mit als auch für die ohne Block-
Pivoting. Den Daten kann jedoch kein Zusammenhang zwischen der erreichbaren Beschleu-
nigung und anderen Größen wie die Dimension oder die Anzahl von NEs der Basismatrix
entnommen werden.

    Zum anderen zeigt sich ein ähnlicher Effekt wie er bereits bei SoPlex festgestellt wurde,
daß nämlich die Iterationsgeschwindigkeit mit zunehmender Anzahl von Iterationen sinkt.
Aus diesem Grund fallen die Iterationsgeschwindigkeiten mit Block-Pivoting geringer aus
als ohne. Im folgenden Abschnitt wird jedoch gezeigt, daß das Block-Pivoting in der Tat
zusätzliche Parallelität erschließt, die sich in einer Beschleunigung auswirken kann.
4.       OPL                                                                                 159




Abbildung 4.11: Beschleunigung durch Block-Pivoting in Abhängigkeit von (a) der Dimension der Ba-
sismatrix (b) der Zunahme der Iterationszahl



4.3.3          l o v o t i n g

Abbildung 4.11.a zeigt das Verhältnis der Laufzeit für die Lösung der Testprobleme mit
Block-Pivoting zu ohne Block-Pivoting in Abhängigkeit von der Dimension der Basisma-
trix. Die eingetragene Ausgleichsgerade zeigt an, daß je höher die Dimension ist, desto eher
eine Beschleunigung durch das Block-Pivoting erzielt werden kann. Wie so oft ist auch dies
kein streng gültiger Zusammenhang. Anschaulich leuchtet er ein, denn die Lösungszeit für
die Gleichungssysteme korreliert mit der Dimension der Matrizen, so daß sich eine aral
lelisierung mit Hilfe vom Block-Pivoting für große Matrizen eher lohnt.
    Die unbefriedigenden Ergebnisse zum Block-Pivoting wurden auf die Zunahme der An-
zahl der Iterationen zurückgeführt. Um diese These zu untermauern, wurden aus Tabelle
A.16 verschiedene Teilmengen der LPs betrachtet, bei denen die Iterationszahl um weniger
als einen vorgegebenen Prozentsatz zunimmt. In Abbildung 4.11b wurden zwei Größen
für verschiedene Schranken der maximalen prozentualen Zunahme der Iterationszahl auf
getragen. Die erste Reihe zeigt den Prozensatz der Testprobleme, bei denen sich die Ite-
rationszahl beim Block-Pivoting um weniger als vorgegeben erhöht. Z.B. erhöht sich die
Iterationszahl bei über     der Testprobleme um nicht mehr als
    In der zweiten Reihe von Abbildung 4.11.b wird angegeben, wieviel Prozent der Laufzeit
für die Lösung der jeweilige Teilmenge von Testproblemen mit gegenüber ohne Block-
Pivoting benötigt wird. Für 11,4% der Probleme nimmt die Iterationszahl nicht zu, und
die Laufzeit kann mit Hilfe des Block-Pivotings auf etwa 81% herabgesetzt werden. Dies
ist beachtlich, wenn man exemplarisch die Verteilung der Laufzeit bei der Lösung von
stocfor3 in Tabelle 2.2 betrachtet: 60% wird im sequentiellen Fall auf die Lösung von
Gleichungssstemen verwendet. Davon sind         Stück pro Iteration zu lösen, so daß für
KATEL       4. ERGEBNIS

jedes 20% der Laufzeit angesetzt werden kann. Geht man von optimalen Verhältnissen
aus, so wird durch die anderen Parallelisierungen (Pricing, Quotiententest, Matrix-Vektor
Produkt und gleichzeitige Lösung von zwei Gleichungssstemen            der Gesamtlaufzeit
halbiert, so daß ohne Block-Pivoting die Laufzeit auf 60% 80% / 2 + 20% reduziert wird.
Das Block-Pivoting kann die 20% Laufzeit für das verbleibende Gleichungssystem auf 10%
reduzieren, so daß mit Block-Pivoting idealerweise ein vollständig paralleler Algorithmus
nur 50% der sequentiellen Lösungszeit benötigt. Gegeüber den 60% ohne Block-Pivoting
entspricht dies einer Reduktion auf 83%. Das dieser Wert sogar unterschritten wird, liegt
an den Beispielen, bei denen die Iterationenszahl mit Block-Pivoting niedriger als ohne
ausfällt (Probleme       8,   und 3 beim primalen Simplex und        5 23, 8 und     beim
dualen Simplex
    Bei mehr als 57% der Probleme kann im Mittel eine Beschleunigung um knapp 5%
erreicht werden. Somit ist das Block-Pivoting zwar nicht für den allgemeinen Einsatz sinn-
voll, edoch lohnt es sich bei jeder Klasse von LPs zu überprüfen, wie sehr die Iterationszahl
durch das Block-Pivoting zunimmt. In über 50% der Fälle ist damit zu rechnen, daß es
sich lohnt, einen parallelen Algorithmus mit Block-Pivoting einzusetzen.


4.4           Pl
Zur Auswertung der Implementierung für arallelrechner mit verteiltem Speicher, DoPlex,
wurden die Test-Probleme auf einem Cray T3D eweils mit verschiedenen Anzahlen von
Prozessoren gelöst. Die Meßergebnisse sind in den Tabellen A . 7 bis A.19 aufgelistet. Die
dort auftretenden „Lücken haben mehrer Ursachen. Um den Rechenaufwand in Grenzen
zu halten, wurden immer nur dann mehr PEs eingesetzt, wenn dies eine weitere Beschleu-
nigung versprach. Außerdem konnten nicht alle LPs in dem von der Systemadministrati
on vorgegebenen Zeitfenster von 1800 Sekunden gelöst werden. Schließlich konnten einige
Probleme nicht gelöst werden, weil der Speicherplatz pro PE nicht ausreichte. Ein Beispiel
dafür ist das Problem 35. Werden dafür oder mehr PEs eingesetzt, so kann das LP trotz-
dem gelöst werden, weil das LP auf die PEs verteilt wird. Bei den Problemen 14 und 17
hilft auch die Verteilung auf mehrere PEs nicht, weil die B a s i s a t r i x , die auf alle Es
repliziert wird, zu groß wird.
    Für die Meßreihen wurde wie bei SMoPlex der duale Simplex mit steepestedge Pri
cing und Schlupfbasis verwendet. Für LPs mit mehr Zeile als Spalten wurde eine Zeilen-
andernfalls eine Spaltenbasis verwendet.


4.4.1     Parallele Lösung von              leichungssstemen
Wir untersuchen zunächst die Auswirkungen der parallelen Lösung von linearen Glei
chungssystemen. Dieser Ansatz nutzt lediglich Parallelität für zwei PEs aus, so daß keine
Abhängigkeit von der Anzahl der eingesetzte Prozessoren zu erwarten ist.
4.4.    OPL


    Dies wird bestätigt von der in Abbildung 4.12 dargestellten durchschnittlichen Laufzeit
pro Iteration mit und ohne parallele Lösung von Gleichungssstemen. Die Nutzung dieser
Parallelität reduziert die Arbeit pro Itera-
                                              0,055
tion um einen festen Betrag, unabhängi
von der Anzahl der PEs.
    Die Darstellung wurde nur anhand der
LPs gewonnen, für die auch noch mit 16 0,045
PEs Meßwerte bestimmt wurden. Betrach-
tet man hingegen alle LPs, die mit ei
nem oder zwei PEs gelöst wurden, so wird      0,035
mit 2 Es im Durchschnitt eine Redukti
on der Laufzeit auf 77% ohne und auf 70%
mit paralleler Lösung von Gleichungssyste-
                                              0,025
men erreicht (ohne Block-Pivoting). Die-
se Werte sind besser als die von SMoPlex
erreichten (88% bzw. 84% vgl. Abbildung
4.10). Das ist darauf zurückzuführen, daß     0,015
der T3D ein Parallelrechner mit verteiltem                                                 16

Speicher ist, bei dem der Zugriff auf den Abbildung 4.12: Summe der Zeit pro Summe der
Speicher zu keiner Verstopfung des Busses Iterationen mit und ohne gleichzeitigem Lösen zwei-
führen kann, wie es bei Architekturen mit e r Gleichungssysteme in Abhängigkeit von der Anzahl
                                             der   P E s
               c   • -u      i.- i,+
gemeinsamem Speicher geschieht.


4.4.2         l o v o t i n g

Das Problem beim Einsatz des Block-Pivotings ist die häufig damit verbundene Erhöhun
der Iterationszahl. Sind mehr als 2 PEs beteiligt, so werden die Blöcke größer und es kann
eine weiter Verschärfung des Problems erwartet werden. Die Auswirkunge auf die Laufzeit
werden in Abbildung 4.13 gezeigt, in der die Zunahme der Laufzeit beim Block-Pivoting
   Abhängigkeit von der Anzahl der PEs dargestellt ist. Es scheint ein logarithmisches
Wachstum der aufzeit in Abhängigkeit von der Anzahl der PEs vorzuliegen.
    Bereits bei SMoPlex wurde festgestellt, daß es für das Block-Pivoting auch „gutartige
LPs gibt, bei denen es zu keinem oder nur zu einem geringfügigen Wachstum der Itera-
tionszahl kommt.    ir untersuchen daher, wie sich solche LPs bei Hinzunahme weiterer
  Es verhalten.
    In Abbildung 4.14 werden für verschiedene Anzahlen von PEs Mittelwerte über die LPs
betrachtet, bei denen sich die Iterationszahl durch das Block-Pivoting um weniger als 10%
erhöht. Da mit zunehmender Anzahl von PEs die Anzahl der betrachteten Test-LPs sinkt,
  ächst die Unsicherheit bei den beobachteten Ergebnissen. ür         Es wurden nur noch
  Testbeispiele betrachtet.
KATEL        4. ERGEBNIS

   Der prozentuale Anteil der LPs für die das oben gesagte zutfft ist in der mittleren Zeile
von Abbildung 4 dargestellt. Es gibt also LPs, bei denen auch bei größeren PivotBlöcken
                                                die Anzahl der Iterationen nicht wesentlich
                                                zunimmt. Der Anteil solcher LPs scheint
                                                sich nicht zu ändern, so daß es es sinnvoll
                                                ist, zwischen gutartigen und und nicht gut-
                                                artigen LPs zu unterscheiden.
                                                                  Wie die hintere Zeile von Abbildung
                                                             4.14 zeigt, führt bei gutartigen LPs das
                                                             Block-Pivoting auch bei mehreren PEs zu
                                                             einer Beschleunigung von 8 0 - 9 0 . Die Be-
                                                             schleunigung scheint nicht von der An-
                                     Anzahl Pes              zahl der PEs abzuhängen. Damit kann das
                                                             Block-Pivoting bei gutartigen LPs zu ei
. b b.i l,d u n g 4.13: «Verhältnis, der T
A
  ,               . -     , , ,                 • mit zu oh- n e m skalierbaren parallelen Algorithmus
                                         Laufzeit
                                                   •      ,            .                       "
                                                         fuhren
ne Block-Pivoting in Abhängigkeit von der Anzahl der              > Wle m der erste   Zelle m
                                                                                                Abbildung
PEs. Für jede Anzahl von PEs wurde die jeweils ma-                dargestellt ist.
ximale Menge von LPs benutzt, für die Meßwerte vor
liegen. Es wurden die Zeiten ohne paralleles Lösen von
  leichungssystemen verwendet.



4.4.3      Paralleles           atrixVektorProdukt
Schließlich betrachten wir die Beschleunigung, die durch Parallelisierung des Matrix-
Vektor-Produktes erzielt wird. Die Parallelisierung geschieht implizit durch die Verteilung
der Daten, die gleichzeitig eine arallelisierung der VektorUpdates für g und des Pricings
bzw. Quotiententests bedingt.
    Die parallele Ausführung des Matrix-VektorProduktes und der Aktualisierung des Vek-
tors g erfordert keine Kommunikation oder Synchronisation. Deshalb ist dafür eine gute
Skalierbarkeit zu erwarten. Sofer diese Operationen den größten Anteil der sequentiel
len Laufzeit einnehmen, kann die Parallelisierung dieser Schritte nach dem Amdahl'schen
Gesetz auch zu einer Beschleunigung des gesamten Algorithmus führen.
    In Abbildung 4.15 wurde die Beschleunigung des Simplex-Algorithmus ohne Block-
Pivoting und paralelles Lösen von Gleichungssystemen für einige Test-Beispiele in
Abhängigkeit von der Anzahl der Es aufgetragen. Die Test-Beispiele wurden nach auf
steigendem Wert
                                                 log(n-£
sortiert, wobei n die Anzahl der NNEs der Nebenbedingungsmatrix und d die Dimension
der Basis-Matrix bezeichnen. Bei einer Zeilenbasis ist die Anzahl der Zeilen der Neben-
bedingungsmatrix, andernfalls die Anzahl der Spalten.
4.               EL       LÖSER FÜ            NEA        GL




A b b i d u n g 4.14: Veschiedene W e t e für LPs, bei denen sich die Iterationszahl beim Block-Pivoting nicht
mehr als um 10% erhöht, in Abhängigkeit von der Anzahl der PEs. Es werden dargestellt: Die Laufzeit
im Verhältnis zur Laufzeit für 1 PE, der Anteil der PEs, die diese Bedingung erfüllt und die Laufzeit mit
Block-Pivoting im Verhältnis zu ohne.



    Insgesamt is s ein Maß für die zu erwartende Skalierbarkeit durch Ausnutzung der
oben genannten Parallelität bei der Lösung eines LPs n ist eine Abschätzung für die
Arbeit zur Berechnung des Matrix-Vektor-Produktes. ^ gibt den Anteil der Laufzeit für
die Berechnung des Matrix-VektorProduktes an der Gesamtlaufzeit an: Je kleiner die
Dimension der Basismatrix gegenüber c ausfällt, desto geringer ist der Anteil der Arbeit
für die Lösung der Gleichungssysteme mit der BasisMatrix. Der Logarithmus wird nur
benutzt, damit die Werte kleiner ausfallen.
    Abbildung 4.15 bestätigt die zu erwartende gute Skalierbarkeit von LPs mit hohem s
Bei dem fünften Beispiel von hinten handelt es sich um das Problem 34. Hier tritt eine
ungewöhnliche Änderung der Iterationszahl bei unterschiedlichen Anzahlen von PEs, was
den „Zacken verursacht. Bei den LPs mit s         ist eine weitere Beschleunigung durch
Hinzunahme weiterer Prozessoren zu erwarten.



4.5       P a r a e l e r Löser fü                  ineare              eichngssystem
Zur Bewertung der Implementierung des parallelen Lösers für unsymmetrische dünnbesetz-
te lineare Gleichungsssteme wurden Testläufe auf einem C r y T3D durchgeführt. Die dazu
verwendete Menge von Test-Matrizen wird in Abschnitt 4.5.1 vorgestellt. In Abschnitt 4.5.
wird der parallele LU ZerlegungsAlgorithmus evaluiert und mit der seuentiellen Version
verglichen, die in SoPlex eingesetzt wird. Schließlich wird in Abschnitt 4.5.3 der parallele
LösungsAlgorithmus für gestffelte Gleichungsssteme begewertet. Die Implementierun-
KATEL        4. ERGEBNIS




                   32     16     8      4     2


                         Anzahl Pes

Abbildung 4 . 1 : Beschleunigung in Abhängigkeit von der Anzahl von PEs für einige TestLPs.



gen dieses Abschnittes wurden von Michael G n s s vorgenommen.


4..1      Testatrizen
Die Dimensionen und Anzahlen der NNEs der Test-atrizen sind in den ersten Spalte
von Tabelle A . 0 aufgelistet. Die Matrizen stammen von zwei Quellen: Bei den Matri
zen SM-50a bis stocfor3 handelt es sich um die mit SoPlex bestimmten optimalen Spal
tenbasismatrizen der gleichnamigen LPs. Dabei wurden nur Matrizen höherer Dimension
ausgewählt. Sie dienen zur Beurteilung der Anwendbarkeit des parallelen Loseres für den
Simplex-Algorithmus.
    Die restlichen Matrizen kommen aus dem HarwellBoeing Testset [0]. Er ist fast schon
ein Standard bei der Evaluierung von Gleichungssystemlösern und ermöglicht somit einen
Vergleich mit anderen Implementierungen. Hierbei ist vor allem die i 5] vorgestellte Im-
plementierung für den T3D interessant.
4.             EL      LOSER FU         NEA         GL


4.        Parallele L Z e r l e g u n g
Tabelle A.20 ermöglicht zunächst einen Vergleich zwischen der sequentiellen Implemen-
tierung für SoPlex und der auf einem Prozessor laufenden parallelen Version des LU-
Zerlegungs-Algorithmus'. Dieser Vergleich ist interessant, denn durch Kompatibilitätscheck
und Bereithalten der maximalen Absolutbeträge für ede Zeile der aktiven Submatrix lei
sten beide Algorithmen unterschiedlich viel Arbeit.

    Es wäre zu erwarten, daß die parallele Version mehr Arbeit leistet und somit höhere
Laufzeiten aufweist. Dies trifft auch für alle Basis-Matrizen zu; die sequentielle Implemen-
tierung für SoPlex ist bis zu einem Faktor 546 schneller als die parallele Version (bnll) In-
teressanterweise gilt dies nicht mehr für alle Probleme aus dem HarwellBoeing Testset. Für
„wattl benötigt der sequentielle Algorithmus doppelt so lange wie der parallele mit einem
Prozessor. Der Grund dafür liegt in der verstärkten Suche nach PivotElementen mit ge-
ringer Markowitzzahl. Während die sequentielle Implementierung pro Iteration nicht mehr
als 1 2 Zeilen oder Spalten nach guten Pivot-Elementen durchsucht, versucht die parallele
Implementierung auch bei einem PE eine Menge von kompatiblen PivotElementen zu kon-
struieren. Dazu untersucht sie mehr (hier 4) Zeilen oder Spalten und hat somit eine größere
Chance PivotElemente geringerer Marko-
witzzahl zu finden. Offenbar führt dies zu                     LU Zerlegung
einer Folge von Pivot-Schritten mit weni
ger Fill, so daß der parallele Algorithmus
 nsgesamt weniger Arbeit leistet.
    Die verbleibenden Spalten von Tabel
le A.20 erlauben eine Beurteilung der Ska-
lierbarkeit des parallelen U Zerlegungs
Algorithmus'. Verschiedene Durchschnitte
der erzielten Beschleunigungen sind in Ab-
bildung 4.16 dargestellt. Man erkennt, daß
selbst bei den LP BasisMatrizen eine Be-                        -•       LP           •    HB
schleunigung erzielt werden kann. Sie ist                       -A       Gesamt       X    Maximum
vornehmlich für die Probleme, bei denen                         -*       Minimum   - - - - Optimum
die parallele Version auf einem PE signi             0,1
  kant langsamer läuft als die sequentielle                          2                 4    8        16
(fitlp, grow22, agg3, pilots, b n l , scfxm2                                  Anzahl PEs
ganges.ob4, maros, nesm, pilotwe) zu beob-       Abbildung 4.16: Beschleunigung des verteilten LU-
achten. Der Geschwindigkeitsgewinn durch         Zerlegungsalgorithmus' in Abhängigkeit von der An-
Parallelität kann dies kaum wett machen.         zahl von Prozessoren. Es werden die Beschleunigung
Somit bleibt festzustellen, daß der Ein-         für alle LP-Matrizen, die Harwell-Boeing Matrizen und
satz der parallelen LU-Zerlegung für den         alle Matrizen zusammen sowie für die am besten (35)
                                                 und die am schlechtesten (1) skalierende Matrix dar
Simplex-Algorithmus inadequat ist          je-   gestellt
denfalls bei den gewählten Probleminstan-
66                                                           KATEL       4. ERGEBNIS

zen. Dies gilt umso mehr, als optimale BasisMatrizen in der Regel die dichtbesetzteste
Matrizen während der Ausführung des Simplex-Algorithmus' sind. Gleichungssysteme mit
zwischenzeitlichen Basen werden somit meist mit weniger Aufwand gelöst, was de Nutzen
von Parallelität für den Simplex-Algorithmus weiter einschränkt.
    Liegt das unerfreuliche Ergebnis für die parallele Lösung von BasisMatrizen vielleicht
an einer schlechten Implementierung? Die Antwort ist Nein, was anhand der Testmatrizen
aus dem HarwellBoeing Testset im Vergleich zu anderen publizierten Ergebnissen auch
nachgeweisen werden kann. R. Asenjo und E.L. Zapata berichten in [5] folgende aufzeite
ihres FaktorisierungsAlgorithmus auf einem Cr T3D
                            Problem                  Es       Es
                              steam       989      3.       1.
                            jpwh9        16.22              3.
                           sherman        3.02     1        1.3
                           sherman          08    228       8.
                              ns337                  8      8.

    Lediglich bei „sherman2 und 1 PEs überholt die Implementierung von R. Asen
und E.L. Zapata die hier vorgestellte Version. In allen anderen Fällen sind die Laufzeiten
mitunter erheblich höher. Zwar ist ihre Effizienz nach (23) besser, jedoch ist die Bedeutung
dieser Maßzahl angesichts der absoluten Laufzeiten i       age zu stellen.
    Insgesamt ist somit festzustellen, daß die im Rahmen dieser Arbeit erstellte parallele
Implementierung vergleichsweise günstige Laufzeiten erreicht und somit nicht für den Miß-
erfolg bei den LP BasisMatrizen verantwortlich gemacht werden kann. Die Skalierbarkeit
der Implementierung steigt mit zunehmender Arbeit, was sie für den Einsatz in anderen
Anwendungsfeldern interessant macht. Der Einsatz für die ösung partieller Differential
gleichung ist geplant.
    Als besonders interessantes Phänomen ist in Tabelle A.20 eine superlineare Beschleuni
gung für „lns2927" bei 2 PEs zu erkennen. Dies ist darauf zurückzuführen, daß der parallele
Algorithmus für unterschiedliche Anzahlen von PEs meist unterschiedlich viel Arbeit lei
stet. Je mehr PEs eingesetzt werden desto größer wird die Menge der PivotKandidaten,
was jeweils zu einer anderen Eliminationsfolge führt. Durch die größere Kandidatenmenge
können zweierelei Effekte eintreten. Zum einen können so PivotElemente mit geringerer
Markowitz-Zahl gefunden werden, was zu einer Verringerung der Gesamtarbeit führt und
die superlineare Beschleunigung für ns         erklärt.
    Leider kann zum anderen auch der gegenteilige Effekt eintreten, was leider häufiger
geschieht. In die größere Kanidatenmenge werden mangels Alternativen auch NNEs mit
höherer Markowitz-Zahl aufgenommen. Fallen diese Kandidaten nicht durch den Kompati
bilitätscheck, führen sie zu Eliminationsschritten, bei denen viel Fill erzeugt wird. Dadurch
erhöht sich die Gesamtarbeit. Beim Problem „sherman3 zeigt sich dieser Effekt so deut
lich, daß die Laufzeit für 2 PEs die für 1 PE sogar übertrifft. Hier könnte eine Begrenzung
der maximalen arkowitz-ahl weiterhelfen.
4.              EL      LOSER FU          NEA       GL


           dünnbesetzte rechte Seite                          dichtbesetzte rechte Seite




     0,1
                                             16
                     Anzahl PEs                                         Anzahl PEs



Abbildung 4.17: Beschleunigung des v e r t i l t n Lösung von Gleichungssystemen mit dünn- und dicht
besetztem RechteSeite-Vektor in Abhängigkeit von der Anzahl von Prozessoren. Es werden die Beschleu-
nigung für alle LP-Matrizen, die HarwellBoeing Matrizen und alle Matrizen zusammen sowie für die am
besten 5) und die am schlechtesten (1) skalierende Matrizen dargestellt.



4.3         ösen gestaffelter             leichungsssteme
Bei der Bewertung der Implementierungen der Gleichungssystemlöser bei gegebener LU-
Zerlegung müssen zwei Fälle unterschieden werden: Der Rechte-Seite-Vektor kann dicht
oder dünnbesetzt sein. In letzteren Fall ist weniger Arbeit zu verrichten und somit ei
ne schlechtere Skalierbarkeit zu erwarten. Die Gleichungssysteme, die im ahmen von
Simplex-Algorithmen zu lösen sind, gehören fast immer zu dieser Kategorie.
   Tabelle A.        nthält   aufzeite   für die verteilte Lösung von Gleichungssteme           der
Form

                                             LUx = b

für verschiedenen Anzahlen von PEs. In den ersten Spalten wurde für b ein Einheitsvektor
benutzt. Die Ergebnisse werden in Abbildung 4.17.a zusammengefaßt. Bei den LP Basis
Matrizen zeigt sich in fast allen Fällen eine Verlangsamung schon bei 2 Es. Dagegen kann
bei den meiste HarwellBoeing Matrizen eine Beschleunigung bis zu 8 PEs erzielt werden.
Diese spiegelt jedoch nicht die reine Beschleunigung bei der Lösung von (4.1) wieder.
Vielmehr stammen die Faktoren L und U aus einer zuvor verteilten LU-Zerlegung. Wie im
vorigen Abschnitt beschrieben wurde, ist zu erwarten, daß die Faktoren bei verschiedenen
KATEL       4. ERGEBNIS

Anzahlen von PEs unterschiedlich viele NNEs haben. Damit fällt bei der Lösung von
Gleichungssystemen auch unterschiedlich viel Arbeit an, typischerweise also mehr Arbeit,
e mehr PEs beteiligt sind. Demnach würden die Beschleunigungen für eine fest vorgegebene
 U-Zerlegung leicht besser ausfallen als in Abbildung   7 dargestellt.
    Dasselbe gilt auch für die Lösung von Gleichungssystemen mit dichtbesetztem Rechte-
Seite-Vektor. Die entsprechenden Ergebnisse sind in Abbildung 4.17.b zusammengefaßt.
Sie unterscheiden sich zu den Ergebnissen mit dünnbesetztem Rechte-Seite-Vektor lediglich
darin, daß insgesamt eine bessere Skalierbarkeit erreicht wird. Dies ist aufgrund der höheren
zu verrichtenden Arbeitsleistung auch zu erwarten.
samenfassu

Es wurden drei Implementierungen des revidierten Simplex-Algorithmus vorgestellt, je ei
ne für sequentielle Workstations, für Parallelrechner mit gemeinsamem Speicher und für
solche mit verteiltem Speicher. Sowohl der primale als auch der duale Algorithmus wurden
implementiert. Es werden dünnbesetzte Vektoren und Matrizen eingesetzt, insbesondere
auch bei der LU-Zerlegung der Basismatrizen. Beim Pricing kommen effiziente Strategien,
u.a. das steepestedge Pricing, zum Einsatz, und der auf einer theoretischen Untersuchung
der numerischen Stabilität basierende Quotiententest zeichnet sich durch eine hervorragen-
de numerische Stabilität aus. Alles zusammen führt zu einer Implementierung, die sich mit
state-ofthe-art LP-Lösern wie CPLEX messen kann und für den täglichen Einsatz z.B. in
Schnittebenenverfahren geeignet ist.
    Die Implementierungen basieren auf einer neuen Darstellung, die den primalen und
dualen Algorithmus mit einer Zeilen- und Spaltenbasis einheitlich zusammenfaßt. Dadurch
können beide Algorithmen mit beiden Basisdarstellungen verwendet werden. Der Einsatz
der Zeilenbasis bei LPs mit mehr Nebenbedingungen als Variablen kann den Implementie-
rungen zu einer weiteren Geschwindigkeitssteigerung verhelfen. Dies gelingt auch mit Hilfe
einer neuen Phase 1, die durch das Umschalten zwischen primalen und dualem Algorithmus
funktioniert. Dadurch kann in Phase 1 ein LP verwendet werden, das sich so wenig wie
möglich von dem Ausgangs-LP unterscheidet, wodurch insgesamt weniger Iterationen ver
wendet werden als bei den sonst verwendeten Phase 1 LPs. Desweiteren wird der Zeitpunkt
der erneuten Faktorisierung der Basismatrix dynamisch so festgesetzt, daß die Iterations
geschwindigkeit maximiert wird. Schließlich kommt ein Löser für lineare Gleichungssyteme
zum Einsatz, der für extrem dünnbesetze Matrizen und echte-Seite-Vektoren optimiert
wurde.
    Den Implementierungen liegt ein objektorientierter Software-Entwurf zugrunde. Dieser
ermöglicht es, für die parallelen Versionen wesentliche Teile durch Ableitung von der se-
quentiellen Version zu übernehmen. Lediglich die zusätzlichen Aufgaben zur Synchronisati
on, Kommunikation und Verteilung der Arbeit müssen hinzu implementiert werden. Außer
dem unterstützt der objektorientierte Entwurf die Integration etwa von Pricing-Verfahren,
die vielleicht in Zukunft entwickelt werden.
   Bei den parallelen Versionen wurden vier Parallelisierungsansätze verfolgt. Beim Pricing
und Quotiententest werden parallele Such-Algorithmen zur Bestimmung eines maximalen
70                                                           KAPITEL 4       ERGEBNI


oder minimalen Elementes eingesetzt. Die Parallelisierung des Matrix-Vektor-Produktes
und der Vektoraddition lohnt sich besonders für Probleme mit einer sehr unterschiedlichen
Anzahl von Zeilen und von Spalten. Für derartige LPs können durch den Einsatz vieler
Prozessoren hohe Beschleunigungen erzielt werden, etwa um den Faktor 20 mit 32 PEs.
    Wird das steepestedge Pricing verwendet, so fällt ein zusätzliches lineares Gleichungs
system pro Iteration an. Dieses wird parallel zu einem der weiteren Gleichungssysteme
jeder Iteration gelöst. Die Nutzung dieser Parallelität zahlt sich jedoch nicht immer aus.
Dies liegt zum einen an dem damit verbundenen Kommunikations- oder Synchronisations
aufwand, zum anderen an der effizienten sequentiellen Implementierung, die beide Glei
chungssysteme mit einer Traversierung der LU-Zerlegung löst. Sie benötigt weniger Zeit,
als die zweifache Ausführung des ösungs-Algorithmus für ein Gleichungssstem.
    Die interessanteste Parallelisierung ist das Block-Pivoting. Dazu wird der Algorithmus
so umstrukturiert, daß Gleichungssysteme aus an sich aufeinanderfolgenden Iterationen
gleichzeitig parallel gelöst werden. Dies hat jedoch oft eine Erhöhung der Iterationszahl zur
Folge, was eine Beschleunigung zunichte macht. Für die Problembeispiele, bei denen sich die
Iterationszahl jedoch nur geringfügig erhöht, können für wenige PEs gute Beschleunigungen
erzielt werden.
    Schließlich wurde die verteilte LU-Zerlegung dünnbesetzter und unsymmetrischer Ma-
trizen sowie die darauf basierende parallele Lösung linearer Gleichungssysteme untersucht.
Es wurde eine Implementierung für den Cray T3D vorgenommen, die kompatible Pivot-
Elemente für die parallele Elimination verwendet. Außerdem wird ein neues Lastausgleichs
Verfahren benutzt, das keinen zusätzlichen Kommunikations-Aufwand erfordert. Die Imple-
mentierung hat zwar eine geringere parallele Effizienz als vergleichbare Implementierungen,
benötigt aber insgesamt weniger Zeit. Im Rahmen des Simplex-Algorithmus kommt sie je-
doch nicht zum Einsatz, da für die extrem dünnbesetzten Basismatrizen heutiger LPs keine
sinnvolle Beschleunigung erzielt werden konnte. Treten bei der Lösung von LPs dichter be-
setzte BasisMatrizen auf, so könnte der parallele Löser für lineare Gleichungsssteme auch
eine Beschleunigung des Simplex-Algorithmus bewirken.
    Abschließend kann festgestellt werden, daß mit dieser Arbeit die Fortentwicklung von
Simplex-Algorithmen auf mehreren Ebenen weiter vorangetrieben wurde. Die Parallelisie-
rung für 2 PEs scheint für allgemeine LPs einsetzbar zu sein, wobei das Block-Pivoting
jedoch nur für Problemklassen verwendet werden sollte, bei denen es zu keiner großen
Erhöhung der Iterationszahl führt. Mehr als zwei PEs können nur für LPs sinnvoll ein-
gesetzt werden, bei denen ein großer Unterschied in der Anzahl von Zeilen zur Anzahl
von Spalten vorliegt. Bei solchen Problemen skaliert der parallele Algorithmus gut, und es
  önnen große Beschleunigungen erzielt werden.
an

Tabelle

Dieser Anhang enthält alle MeßwertTabellen, die für die Bewertung der Implementierun-
gen SoPlex, SMoPlex und DoPlex sowie für den parallelen Löser für dünnbesetzte lineare
Gleichungssysteme erstellt wurden. Ihre Auswertung und ggfs. graphische Aufbereitung
 ndet sich in Kapitel
   Die Ergebnisse zu SoPlex und CPLEX wurden auf einer Sun UltraSPAR 1 Model
170E gemessen, die zu SMoPlex auf einer SGI Challange mit zwei 150MHz MIPS 00
Prozessoren. Die Werte für DoPlex sowie für die parallele LU-Zerlegung und Lösung ünn-
besetzter linearer Gleichungssysteme wurden auf einem Cray T3D gemessen. Jede PE hat
   MB Speicher und einen 15 MHz DE alpha Prozessor ohne 2nd level cache.
   Bei allen Simplex-Testläufen wurde die maximale Berechnungszeit auf 3000 Sekunden
beschränkt, auf dem Parallelrechner Cray T3D (aus administrativen Gründen sogar auf
1800s. Konnte ein LP in dieser Zeit nicht gelöst werden, so wird dies durch „>" angezeigt.
Konnte ein LP hingegen aufgrund anderer Probleme, insbesondere aufgrund der numeri
schen Stabilität, nicht gelöst werden, so wird dies durch        gekennzeichnet. Auf dem
T3D wurde ausgehend von 1 PE ein LP nur dann mit mehr PEs gelöst, wenn eine weitere
Beschleunigung erwartet werden konnte.
   Bei den Meßergebnissen zu SoPlex wurden folgende Einstellungen verwendet

     steepestedge Pricing
     SoPlex Quotiententest
     Spaltenbasis
     skaliertes LP
     Crashbasis
     maxcycle = 100 ( g l . Abschnitt
     T]9 = 10 (vgl. Abschnitt      8.
   • S    l e - 6 vgl. Abschnitt   3
ANHANG A. T


Nur die Abweichungen davon werden bei den Tabellen aufgeführt.       ür die Mesungen zu
SMoPlex und DoPlex wurden folgende Einstellungen verwendet

     steepestedge Pricing
     SoPlex Quotiententest
     Basisdarstellung jeweils so, daß die Dimension niedriger ausfällt
     unskaliertes LP
     Schlupfbasis
     maxcycle = 100         gl. Abschnitt
     7]9 = 10 (vgl. Abschnitt       8.
              -6
   • S   le        vgl. Abschnitt   3
73

                                      Anzahl       Anzahl       Anzahl     Kondition
             Nr.            ame        Zeilen      Spalten       NNEs    der opt. Basis
                            agg3           16          302         30          1.    04
                            bnl                        17          12                0
                            fit2d                     000                         6 03
                         ganges            30         1681                     1.    05
                        grow2              44                      82          1.
                          maros            84            443       9614        1.    05
                           nesm            66             23       3288        1.    0
                           pilots          44            65         16         3.6 07
                        pilotwe            72            78           26       1.5 08
                         scfxm             66                         83
                       stocfor3           66          1595         48             5 05
                      agg3.ob             23           128         23          4     05
                      bnll.ob             3345           92       76596        9.    05
                      fitlp.ob            3766         2508     1588810           6
                   ganges.ob              3320         230        8856         6.
               16  grow22.ob                                      159
                    maros. ob                             80      0280         2.    0
                     nesm.ob                              88     15845         6.    05
                   pilotwe. ob            4                      17730
                   scfxm2.ob              38                        26
                  SM-0.k-68a                272           23        894        4 5 04
               22 SM-50.k-8b                288           23       7083        6.    04
               23   kamin07              20                        266         1.
                    kamin2702            33                        7882
                          ehr15             96                                    6
                           scrl2          273           992
               27          stolle        2396          3288        96
               28  hansecom                 96         07         31                      03
                  hansecoml                 96         5919      166               3.5    03
               30  a a O .                  837           28      44               1.
                     aaO.p                  837         33           038           1.     04
               32    aa000.p                837          44       1520             1.     0
               33          aa6.p             32        416        24553            5.     03
                      osa030.p                        9619         28                     01
                           nwl6                           33    1520                      02

T a b e l e A l : Die T e s L P s mit einigen Kenngrößen. Die Konditionswere für die optimalen Basismatize
wurden mit Hilfe von CPLEX bestimmt und gelten somit für das von CPLEX skalierte LP. Aufgrund der
hohen Dimension von Problem „stolle" konnte die zugehörige Konditionszahl von CPLEX nicht in einer
akzeptablen Zeit berechnet werden; sie liegt vermutlich um 0 4 .
ANHANG A. T

                                    Lösung mit C P E X 4.0.7
          Nr.             primaler Simplex                   dualer Simplex
                    Zeit in        Iteratione           Zeit in      Iteratione
                 Sekunden        gesamt Phase        Sekunden gesamt Phase
                                                                       28        16
                       2.8                                    3
                          8                              78.          56
                                     60         32
                       3.           106
                                                60        3.          38
                       3.                      1050       8.        288
                    1008                                              73
                       8.             37       10
            10                                                                  16
                                                        287.           28      883
                     33.44                                            00
                          33          56                  8.          56
                                      28                 50           44
                       2.                                87.
                       7.                                           33
                    10                                    8.44        82
                     5623            232
                       2.                                  7.                    10
                    160           10238                  1016
                       7.           150         82
                       7.                         78          23
            23         8.                         73          10   10
                                     27                 668.          50
                                                  23          96
                          50         600                 16            33
                                  15000       15000     73            23
            28         8.                                 7.        733
                                  50000     2338           7.8     1088
                    962.         37                           90      15
                       7.             60                      50    1050
            32            37          96
            33                                  44            44
                     28.8                      160            00       27
                          8       2388                   66
Tabelle A.2: Laufzeiten und Anzahl der Iteationen für Phase 1 und 2 bei Lösung der TestLPs mit
CPLEX 4.0.7. Es wurden die Voreinstellungen verwendet, die man bei Aufruf des Programms erhält
Nr.            primaler Simplex                dualer Simplex
                           Zeit in     Iterationen        Zeit in     Iterationen
                        Sekunden gesamt Phase          Sekunden gesamt Phase
                                12       29                 0.          96
                                83     944                  2.       1078
                                       33                  90
                             1.                    32       0.        13
                             3.       100                   3.        44
                             4.05                  47       5.
                             7.56     26            33      8.                    43
                            28.3      44                   1015                 5638
                            16                                 55                28
                 10                                                              27
                             2.          59                                       88
                                         44                           4
                                10                        104.        44
                                         00                47.32      82
                                3        56                56
                            44.                            38.       2100
                            88.24                              8     28
                             4.23                           4.        06
                           153.                            37.       319
                           117.                            91        337
                             3.77        10         10      3.88      838
                 22          8.42        38        36      10.3       328
                 23          3.      1006       1006      168.      106
                             7.       9316          16     17.       99
                                      44                   78.       10
                             9.                  33         5.
                 27          7.                   370      37.      1050
                 28                               683      68.87      83         10
                                         10               333.45    1096
                                                           78.        007
                           152.                            32.          90
                 32        458.45     315          48       9.
                 33          4.78     3850          83      7.          24
                             2.3         78         78     45           96
                                3                          56           16
T a b e l e A . : L a u f i t n und I a t i o n s a h l e n bei der Lösung mit SoPlex.
ANHANG A. T



            Nr.             primaler Simplex                   dualer Simplex
                        Zeit in      Iterationen         Zeit in       Iterationen
                     Sekunden     gesamt Phase        Sekunden       gesamt Phase
                                                   56       0.
                           1.        10         10          3.
                        822.        23                         32
                           1.3         37                   0.82         150
                          3.          10                    8.         378
                          7.                                   10         44      37
                         103         500                   10          6077
                              8      23            00      66          1655
                              8                                                  1015
              10                       15       106                                860
                              3      9963                  28.73                   32
                         43          3333                              7             66
                        1650            96                 50.        16460           0
                              2         28                 37.         282
                              66                           75          66
                           2.                              27.10       37
                           5.         64                 106.          6900
                         82.00        28                 163.          823
                                        16                 703           38
                        15                                 96         10
                          2.3          90        90         2.37
              22          8.                                7.79
              23           1.           10         10       3.        2305
                           2.          878       878    178               16
                                       732      774     28
                                                                                 27
              27                     82                  383.18           96
              28                    10          9587       28.78          20       10
                              8                 1609       83.38          56
                         06                    96          33.50       87
                                     28         233                    240
              32                     600                   108         444
              33          4.                                             57
                           2.                            25.             96          37
                          3.                            1668.3           16           0
T a b e l e A.4: L a u f i t n und I a t i o n s a h l e n bei der Lösung mit SoPlex mit Devex Pricing.
Nr.            primaler Simplex                  dualer Simplex
                         Zeit in      Iterationen        Zeit in        Iterationen
                      Sekunden gesamt Phase           Sekunden gesamt Phase
                            0.                              0.           73         349
                            3.                              3.         2880         283
                                       004          0    283          1644
                               3      1528         56                     37
                                      17                                  83
                                                   90                  39
                               37    37         26                     3358            7
                         157        1050        44                       828      4088
                          2            57       10                       657      96
                10                     782                               238
                          87.37                           73.8         2346       737
                          80.82     10                      5.       2496            5
                          12.       15852                   7.37     160
                          83.          733               122.67
                                     787                 387.
                          37.        5                    44.3         3
                          348        16                   23.        28
                         32         156                   1037       21500
                            1.      17                  1094         280
                            3.50    15                         82      06
                            2.8       1         1           2.
                22          2.26     4460       44          4.3          10
                23        37.83          18        18     82.          828
                          11.        0483       0483     60               49
                          23.        78        106                        78
                            3.          10              151.              60
                27      133.                    10       47.         15
                28      1600        8610       82                    906            10
                                    382        38292
                         106         83           388   167.
                            5.                     04          87        37
                32       508.3                     33       6.07         08
                33       109.8      15          10          8.
                          53.10      60         60             79        59
                          16                             3238            33
T a b e l e A . : L a u f i t n und I a t i o n s a h l e n bei der Lösung mit SoPlex mit parial multiple Pricing.
78                                                                       ANHANG A. T



            Nr.           primaler Simplex                          dualer Simplex
                      Zeit in      Iterationen                 Zeit in      Iterationen
                   Sekunden     gesamt Phase                Sekunden gesamt Phase
                         0.                                                  604
                         3.           14                            66      3316
                      38              96          0            2857        1644
                         1.        1506          56                 82         37
                         3.        12                                          83
                         5.3          10      1590                          28          282
                         7.3         906      26                            33
                                              44               38            15          56
                            82    10          10                             48          93
              10                                                    8
                         1.          10                                   10912
                       807.87          87                      600         3233
                      2388.62          80                                 160
                         7.            160                          8
                                      1616
                          1.37                                    5.        16
                         37.20       3                            7.3       66
                         453         78259                           22   21500
                                     83333                    1083        280
                                        90                           50    06
                         3.            1          1               2.
              22         4.           4460        44            1560         10
              23       152.52             18           18       00.         828
                       663.33            83            83      662.
                                      9006       106           40
                         1.15       1073                      154.                        28
              27      207.37            50        10           52.10      15
              28      1641              23       82                       34             10
                                       9079       9079              >     44
                                         44         388       166628
                                       73                      253          437
             32                                                786.         784
             33           8.                      10             2.66
                         50.          60          60             3.27          55
                          3.32                                 323             33


T a b e l e A.6: L a u f i t n und Ierationszahlen bei der Lösung mit SoPlex mit mosviolation Pricing.
Nr.           primaler Simplex                        dualer Simplex
                        Zeit in     Iterationen                Zeit in     Iterationen
                     Sekunden gesamt Phase                  Sekunden gesamt Phase
                             09       7          38              0.60        28        30
                             23     1056                         3.        9           28
                          5.       606                         500        44
                          2.15     108                           1.8       22
                             30    100                           2.        83
                          4.40                                            15          87
                         32.44                   10                       2832         2
                             90    4810         660                 8     79         66
                             15    237          714                       28
               10            22      73          16                 3
                         88.                                     3.02     9245
                         32.         150                       108.33     3388
                                     113                         9.          10
                             8        28                         2.       10
                                                                 7.15     50
                                                               1023          10
                           9.            59                    2714          90
                           3.            73                    724.73        73
                         106              55                     7.
                          86              16                     8.
                           2.                                    2.40
               22                                                   23       9
               23          40         10          10           1003          66       50
                           16          8250        8250                      93       87
                                       5637                         8     5073        70
                            38        10600         44              1    10773       15
               27        8615          00                       30.83    105
               28        2834                       05          28.        28
                                                  1033          5040      923
                                                                    73    16
                                                     82        1073          60
               32                                               457
               33          7.          59                       44.78
                        156.96              04      37           7.                   16
                           2.91             83

T a b e l e A . : L a u f i t n und Ierationszahlen bei der Lösung mit SoPlex mit Zeilenbasis.
ANHANG A. T



              Nr.            primaler Simplex                 dualer Simplex
                          Zeit in     Iterationen        Zeit in      Iterationen
                       Sekunden gesamt Phase          Sekunden gesamt Phase
                               16     120         40                  23         106
                                      783        783        1.                   107
                           50         25                  82.
                                      28         15                   15
                               00     10                  108         94
                            5.27                 602       8.0       25
                            7.60                  44        7.73     28
                            8.       49         2726     23          820         06
                            7.       23          744           7     283         187
                10                                             38                 97
                           00.                           239.           88       282
                            7.                              7.        5
                               82                        103.8        44
                               73       20                53.90
                               3        56                5696
                            7.3                           38.         100
                            4.8       66                    2.84
                          152.8       52                       56     06
                          185.                                       319
                            7.59                                     337
                                        10         10          00     838
                22                      38        36           10     328
                23          5.      1006       1006      171.73     106
                            8.       9316          16    833.8       99
                                     44                              10
                           48.       86         33
                27        373.3      782          75        6.8       35
                28         78.3                    83     68.         83         10
                            7.          10               332.       1096
                            2.                                        007
                          152.                                 90       90
                32        4563       315          48        9.
                33          4.       3850        483        7.        42
                            8.8      323         23                   78
                                                                        16
T a b e l e A . : L a u f i t n und I a t i o n s a h l e n bei der Lösung mit SoPlex für das unskaliee LP.
Nr.            primaler Simplex                 dualer Simplex
                          Zeit in     Iterationen        Zeit in      Iterationen
                       Sekunden gesamt Phase          Sekunden gesamt Phase
                                        73         50                             16
                             1.8     104        104         1.       10
                           88.8       160        160      88.
                             1.         66         66          10       58
                             2.       150        150           60     506
                             5.                 100         8.       26         10
                             8.       798       27          8.68     2875
                           2987      4388       25          7.73      423          00
                           1644      237         700                              13
                 10                   9          83                   87          23
                             2.       15                    7.                 10
                                      27                       90
                                03    15         15       95          15
                          1016        43         43      106.32       43
                                00                          7.96
                                                 56         2.
                          22                     47      24.
                          446.          60               443.65         60
                          507.3     10225      10219     50683      1022
                                      238        238                  238
                             3.       838        838        3.69      838
                22           2.       37         37         2.38      37
                23         90.3       790        790      90.16       790
                          797.                              7.       97
                          167.       606         60                  33
                          152.3                                43       65      1028
                27        42        1087       1087       21.16     1088
                28         7            96         96     73.           96
                          339.      1096       1096      339.       1096
                           78.                            78.           39
                           35.42     10         10             73    10
                32         73.88                               3
                33                      18         18
                          283           73         73    28
                           59         32         32            8      32
T a b e l e A.9: L a u f i t n und I a t i o n s a h l e n bei der Lösung mit SoPlex mit Schlupfbasis
82                                                                    ANHANG A. T



                                        iteation       maxcycle)
          Nr.                                            16    32                   128

                                         38       38       38        38       38       38
                     33       33        33       33       33        33       33       33

                    1097     10       10        10

                     67                57
                                      44                                     670
                              177     23                            10       10       10
              10                                 700
                    66       66         50               66       66                 66
                    338      332      323                                     16
                              50       597       170       44       779      676      97
                              670                66       444
                     66                                             677               677
                                                  23     282
              17     10                         3832
                                                 67         97
                      15                          56       50
                      10        50    160
                     667          83 566   28   560    838 50
                      10               10   10    10    10   10
                     16     70    50   56
              23   10    10    1033 1006 1006 1006 1006 1006
                          96
                                                 96   5916   23
                                       82   32               28
                           506 577    97   15 233
              28          506             50           33  567
                   10     444   32    666      15    1610 1683
                                      32                   77
                     67          67        077 238         333
              32                      177 338              5097
              33          3876 38      56        000
                    3233   17   3200  17   17    17    17   17



Tabelle A.1    Anzahl der I t a t i o n e n von SoPlex bei vechiedenen W e n von maxcycle.
time              iteation
                    Nr.                                                                32
                                                                  10           10
                                 50
                                 82                                                    66
                                            15                              13         13
                                            42                    3         38         3
                                 8          3          3                    28
                                            3        0.29      0.32       0.3        0.32
                                 57                  3.38      2.8        3.07       2.
                                 8          8          82                               8
                      10         50         15
                                                                               10
                              10.10       1.8        1.        1.         1.         1.
                               2.16       2.8        2.        2.50       2.         2.
                               7.        15          3.82      3.10       2.         2.3
                               8.         1                       57
                                  35      1.67       1.        1.                       67
                      17      1088        2.03       2.        2.         1.         1.88
                              1539        3.28       2.        2.70       2.         2.77
                              2056        3.96       3.        3.23       3.3        3.
                                          2.63       2.        2.23       2.         2.32
                               3.
                      22       3.82                    90                    86        8
                      23       8.         1.50       1.46      1.         1.38       1.
                                          3.         3.88      3.         3.60       3.63
                                          3.17       2.88      2.70       2.         2.88
                                 17                    7                     77
                      27          >          3         16                    17
                      28       4.56          60        67
                               8.68       5.3          36      4.         4.    4.
                                 83       2.           83      2.       23.57   2.
                                             44        82      8.8        8.    9.
                      32      17.                             15        15      3.
                      33       2.       0.98        0.         0.89       0.    0.96
                              108       8.76        8.         8.66       8.    8.72
                              10       1007        1050      1007      10     108.

Tabelle A . l l : Zeit für 100 I t a t i o n e n von SoPlex bei dynamische Refaktorisierung in Abhängigkeit von
dem Parameter rQ.
ANHANG A. T



                                       time               iteation
                  Nr.                                                      16          32
                               12                    10          10
                               23                                2                       3
                                                                 44
                                         17
                                         38          3                                   66
                              36         32                                  3
                              33      0.32      0.29           0.         0.3       0.
                                      3.97      3.44           2.8        2.        3.
                              8          8        8               83        90
                    10                   15                                  16
                             5.3      4.             3                       15          3
                             2.       2.17      1.             1.         1.72         1.
                                      3.        2.             2.         2.           2.7
                            7.97         97          8         3.         2.           3.06
                            2.           83          70
                            2.        2.17      1.             1.         1.           1.
                    17      3.        2.66      2.             2.         2.           2.
                               97     3.82      3.3            2.8        2.96         2.8
                                      4.        3.             3.         3.48         3.3
                                      3.17      2.             2.3        2.           2.

                    22      1.32      1.                          82        8
                    23      2.        2.0                      1.                        56
                            6.25      4.38      4.             3.         4.17         4.16
                            3.28      3.16      2.90           2.90       3.15         3.83
                            2.        1.           82                                  2.3
                    27                8.           82               8                    17
                    28                                              60
                            4.8       5.08     4.70         4.            4.        4.
                           23.        2.44     2.8         23.            2.3       2.
                            8.05        8      8.8          8.32             3     1059
                    32     1556               15                                       60
                    33      1.04     0.        0.90            0.93       1.
                            8.88     8.        8.              8.76        8.8
                           10       1007      103         10             1000     10

Tabelle A.12: Zeit für 100 Iterationen von SoPlex bei statischer         efaktorisierung in Abhängigkeit von
der Anzahl von BasisUpdates zwischen zwei LU-Zerlegungen.
Nr.           primaler Simplex                 dualer Simplex
                         Zeit in     Iterationen        Zeit in       Iterationen
                      Sekunden gesamt Phase          Sekunden gesamt Phase
                           0.                             1.00         608         90
                           2.        86                   2.16       1083
                              66     38                 108          507
                              92                17        1.         1
                                       50                 2.         28
                                    15         1023                    667        667
                          10        29         238                     682
                                     90         90                   2          75
                          1783         93         45         30      38         28
                10                     96       606          16
                                     62                            10
                              —      88                   8.
                          83.96      56                      12      3210
                          88.                           1756            46
                                                             60         38
                                     977                     97      2344
                17                                                   30
                         1003                            10          3367
                              60                                        83
                                     67                  1044
                           3.8         10         10      3.8           15
                22         9.          50                 3.            14
                23         8.96    1010       1010      163.8      10
                         79012                                          80           0
                                       07      15                       28         28
                                                                        07         07
                27                 17                    32.3       1090
                28                  43                   76          70           10
                                    7667
                                     92        1757
                                     83         705
                32                  13          233      19.         15
                33                  2869          30     23.66       270
                          158         176       176      6709
                         1068        232                                17

T a b e l e A . : Laufeiten und I a t i o n s z a h l e n bei der Lösung mit SoPlex mit H a r i s Quotientntest.
ANHANG A. T


               Nr.            primaler Simplex                           dualer Simplex
                           Zeit in     Iterationen                   Zeit in     Iterationen
                        Sekunden gesamt Phase                     Sekunden gesamt Phase
                                10                                        64     44
                                       95                                 96     97
                            57         38                                       506
                                                  170                     10     19
                                                                                   77
                                                                                17
                                           107          107
                                            67           67                          17            17
                               3.8          07                                      1560          1560
                 10                                                                  797           288
                                                          838            9.        106
                              3.10                                       8.         29
                            102.3
                             83.3           632                         5.
                                           28                           8.
                                 88         253                        44            23
                                 82        3233                                      28
                             9083           17                                        68
                             24.                                                      167
                             28.           67
                              3.3          8             8               3.
                 22          10.           28            28                   74
                 23         152.         1038          1038                   56   100
                            728

                                          4               076
                 27                      1640              76          32.         1048
                 28            8.59         88            97            4.5          56             10
                                          8297                          2.76          66
                                             82                         8.3           10
                                          100            66             2.           157
                 32                       13            114            82.00         40
                 33          28.3         33            233            215          276
                            333.25        338           338           2887          2832
                            103.88          23                                        07

Tabelle A.14: Laufzeiten und I a t i o n s z a h l e n bei der Lösung mit SoPlex mit der s a b i l i s i e e n V e i o n
des „Textbook" Quotiententests.
Es     r      f bck
                                         2               4                    8                   16
  Nr.        Zeit       Iter.        Zeit Iter.       Zeit Iter.         Zeit Iter.           Zeit Iter.
                17       15             23 15                                    154                  15
             4.         10              17 103        4.      97            3    988          5.94 1050
             2.          677         5.75 677         3.3     677        6.17 677             2.23 677
             3.         14           3.33 507         3.     151         3.     1505          3.38     9
            28.         23                   67          3   3123       38.17 3123                      16
             0.3                    2 3 4 23                  288        2.17 2367           22.      288
            22.              97     1656                                                     23.0
            56                          28 7400       4.     7400        14    7400          28.38 7400
           109.         57         109.56 56          2.     56          16.17 56             1.     56
    10       2.                      3.               3.32                3.                  3.
           983         15077       931.               5.17                                1075.57
           236.8        2          238.      90       2.        90                  90        3.8       90
            83.                                       2.                     10            843.84
                        100         77    1008               1008            8 1008        882.16 1008
            90             32                76                 76      9657        76     703.         76
           233.07       283         82.32 28                 28                  28                  28
    17                  50         695.24  327        4.        27                327                 327
             10         69         062.66 6796     102.      6796            00 6796             69 6796
                        76          1523     90    003.       590         9.        90     074.23       90
                          17        80                   90               3.               838.67
                  3       836          17 83          6.      83          5.8     83          5.97 83
    22                    288       1788     19       8.        19        8.3       19        8.        19
    23                 10          33     10823    33       10823      339      10823            26 10823
            5404           17          97 83       2 8 6 2 8346        316       83          7788 83
            1644        6706       153             16633        76     16        5667                5617
           295.          10            8    45        3.      14             3    310         3.49 1
    27     233.            17     104.57 16       103         16      103         16      1 0 8 6 6 16
    28     202.8        6706       262.83           1060                          38       23         16
           887.        1060        832.70           978 150            970                   9796 10
             8.                        83                    21         9797                     35 970
                        10          58.3    97        8.     1010       72.      10          73.70 1082
    32                             160             153.                168.                16788
    33                   66            00           46.         17        7.                 51.
                  97     14                         38.         32        3.        10     562.       15
                  3      32                32                                00 32                    32

Tabel A . 5 : Laufzeitn und I r a t i o n e n von SMoPlex bei 2 P r o z e s o r n ohne Block-Pivoting und der
parallelen Lösung zweier Gleichungssysteme in Abhängigkeit von der Anzahl von Blöcken, in die die Ne
benbedingungsmatrix für das Matrix-VektorProdukt unterteilt wird. Außerdem wird die Laufzeit und
Iterationszahl für SMoPlex auf einem Prozessor angegeben.
88                                                                   ANHANG A. T

                        parallel ystems                        no paral« systems
       Nr.      block pivoting no block pivots          block pivoting no block pivots
                   Zeit    Iter.     Zeit  Iter.           Zeit    Iter.    Zeit  Iter.
                             166            15                      166       23   15
                              57     4.    100                90   1022           103
                   9.         38     3.3    677            5.      677     5.75    677
                   2.86    15        3.                    3.15    1510    3.33   1507
                   2.66    22                                 37 300              3267
                   3.07                    233                     60     234     23
                  244         93        8                     8           1656     59
                768          823        67 7400            5.      17         28  7400
                   9.        90   105.     56             32.70    670   109.56   56
         10        3.      10        3.                    3.      10      3.
                  82.     15         1.50     32           2.57 15       931.
                  74       497       8.3      90           5.66    4 9 7 238.        90
                 1568        906     5.90                  3.04     906
                89707      1073      8.70  1008            2.      1073   77      1008
                                              76              8                      76
                   2.             176.9    28             70               2.3    28
               102.64      6706   668.76    327           17.      6706    5.
               2866        9028   9616     6796          102.      9028  062.66   6796
               33            10   9073        90        60          10   01523     590
                82         57                           8800       57     80
                              55     5.     83                        55      17   83
         22       15          56     8.32     19          15.10       56      88     19
         23     2868      108     3 2 0 6 10823           03.06 1080     33      10823
               100.        8397         03 83          1044.64     838        97 83
                   2.77    83     15          32           8.23    67    153
                3282         24      8.50   490                     27        8    45
         27                823    10        16                8    823 104.57      16
         28      173       706     50                              7090  262.83
                759           77 965.                   697.15 10679     832.70
                444           33 353.3                  448.9      2576       83
                           1000      8.8   105             2.3     1014   58.3     97
         32       96       17     153       44             2.82    1733  160
         33       66         60    4        670            8.                 00
                  90         66         8                     82    70
                  00                    3   32                                     32


T a b e l e A.16: Laufzeit und Iterationen von SMoPle auf 2 PEs für veschiedene Einstellungen für das
Block-Pivoting und die parallele Lösung von leichungssystemen (bei 2 Blöcken für das Matrix-Vektor
Produkt)
Nr           Name            Iters.      Blocks
                agg3             27         156
                bnl                        1015
                 t 2d         98.27        5103
             g a e s              77        48
              row22           47.          274
              maros                        222
               nes           2.92          31
              piots       1124.               27
            piotwe          22.65          99
 10         scf                 94          87
 11        stocfor         667.             36
          agg3ob4            2.            299
 13       bnlob4          1047.
               p.ob4      not enough        ory
 15    gaes.ob4            662.98          5003
 16     row22.ob4          279.            30
        maros. ob4              16          66
          nesob4
       piotwe.ob4
       scf2.ob4               8884         5324
      SM-50-6                  8.            55
 22   SM-50-68b                8.            35
        kam                               11278
 24     kamn27            1605             8416
                 l5         1035           331
               scr          97.
 27            stol       not enough        ory
 28    hanseco             361             7936
 29   hansecoml            499.15         228
 30    aalOOOOO             1082           229
 31      aa50000              8.36
         aa5000            154.            135
 33            aa6            4.99           47
          osa030           27                78
 35            nwl6       not enough        ory

                                                                      2 PEs
                            no Block P i v o t n g                                             Block-Pivotng
          no p a r a      Sysem                 ara      sysem               no para      sys e m             ara       sysem
 Nr        Zei       Iters.   Blocks        Zei       Iters.  Blocks          Zei    Iters.    Blocks     Zei       Iters.   Blocks
             29        153       153           29       153      153            28     161           92      28       161         92
             28        97        97                                             29    10                     61      1024         79
        10501         510       510      104.         510       510          2.                  3622     2.                   3622
             50                                72                                     1510         772       42      151        77
             77       228       2282        2.                   924            42    247                            1689         66
          2.82        2906      294       3165        2978      3003        47.50      792         15                2800      153
                      311       3116                  315       315         27.       36                 3010         11       2253
           13          35         78      789.         50       928       1107.77    10022       61      53         100        61
                                         167.          727         78       74.       633        47          24         47
 10                     56        56                     56        56                    31        50        61         31      50
 11      97.10        4284      4288     632.61       4299       300                 1572        828     77.97      15588
          9.65         228       228                  30        30           4.03     42          27    332.         3510       163
 13     7944          499       499         9.        499       499       1364.82      24          992  228.88        24        992
 14
 15     44                                  479.28      66       66       10           27        05      978.         27        05
 16         9.03      3031        3031         2.66    298      298        2728        47       22       331         3642      228
              55      4901        4901        49.      4901     4901      11           292              1082.         292
           16          99          99      13           99       99
      13              5692        5692        5003     5692     5692
              13      49          49        65684      4822     4822         9.63    6042        01        4.78      6029       013
                         55          55                  55       55         4.
 22     1603           27          27        16         27       27         1365      1349       82       1388       1349       82
         2.49        11322       11322        8.      1151     1151        36044     115         156      88.       1174        300
 24   1142.           7865        7865     1135        7865     7865      1178.       9822      4874    116303       9806      48
       13603          2872        2872      113        2706     2706        1105      4228      27        77.61        63      2494
 26     98.48         6131        6131       16         053      053       53655       30       48       569.        9284       444
 27
 28    4716     1036     1036               28         77       77         89.35     31      4244        166        115
 29   1566        156       156            1108.      2451     2451       8828      1516       000      106631    249      1378
 30    2422        74        74                4.                         2765       51      153         2878       63      1610
 31     29.63     89        89                 2.         65       65               1044       65          7.      1005        29
           48    131      131                  8.       28        28       84.74    13         87                  150
 33     47.53     51        51                 8.89    227      227                 353        056                 3529       03
       557.79               844              84.       635      635       315       365        113                    36      16
 35      not enough m o r y                    not enough m o r y           not enough m o r y             not enough m o r y


Tabelle A.17: Laufzeiten, I a t i o n e n und Anzahl der Block-Pivots für die Lösung der LPs auf eine
Cray T3D mit 1 und 2 PEs
90                                                                                            ANHANG A. T


                                                                       PEs
                             no Block P i o t n g                                              Block-Piotng
              no para      Sysem               ara     sys s m                 no ara     sys e m           ara       sys s m
      Nr       Zei    Iters.  Blocks        Zei      Iters.   Blocks            Zei   Iters.   Blocks    Zei       Iters.    Blocks
                 30     15       15           30       15        15               31    163         51     31         163         51
                 05     992      992          24        53        53                   1129        351              1127         44
              55       510      510       5548        510       510           48.24    998              42.27       9713        501
                                                                                  13   1561                30       1550         06
               7.         2297     303        92                              47.      30               28.          36          42
               9.          013     03      3088       3003     3050           28.      297        1001  3582           60
              29.49       333     33       24.06      3179     31               2.     4487        27                311       1328
            105133       10347   11374    879.74     10244    11198          4748      472          50  1360          56       5689
               9.50      10449     055    15556        82      992                                      30         11          47
      10                   844     844                 844      844            4.      1078        331              1088          29
      11                   063     065                4266     42            472.03   1563         55  497.92      156         4477
              31          3149    3149      4.78        66        66
      13      89.         477     477         49      4948     4948
      14
      15     533          47     47        6300      48        48
      16      1147        297    297       15         22        22            82.        44     742      1082.       292


            1599          6088   6088

                                                                                                              82
      22       2.82         30      30     1316                             9.         13        55         9.      13            55
                         1105    1105     359.97     111      111         299.        11924    660        33377    1100        65
      24    11            8756    8756   1133         8750     8750      1152.55                33       1063       0603       2256
             13511          15      15    13051        29       29         79.         429      97         1088     51          335
      26       13          77      77         44       798      798       613         111                 65689     272        448
      27
      28    848.         22111   22111     3678        50       50           601       36           00     47.28     10        2411
      29    82              56      56      9.          63       63           72.89    161          16        31   16303       5148
      30    150           2429    2429        66      2416     2416           84.10   287      11                   2942       116
      31         36         03      03     16                                    88   1066          15              1088        42
                 16                           24      24        24            6135    15                   6310     1665        665
      33       8.          31     31       42.        553       553           6135    282                  82.01     305        44
            242.60        4244   4247      5177      472       472               84    00       922        99.47      77
      35         92         82     82       8.00                             49       35         61       517.61      56       1033

                                                                       PEs
                            no Block P i o t n g                                               Block-Pivotng
              no ara      sysem               ara      sys B m                no para     sys e m           ara       sysem
      Nr       Zei   Iters.  Blocks        Zei       Iters.   Blocks           Zei    Iters.   Blocks     Zei      Iters.  Blocks

                    56                       42       103      103                       06      228
              30          510     510      3035       510      510           104.       55      1661      102.       55        1661
                 30       1513    1513                1513     1513                    1647      229          50    1647        229
               4.63       22      228      3310       244      24              7.        10      510        2.       350         22



        9
       10
       11
       12
       13
       14
       15
       16




               4.          849     849      4.          849      849           2.98     87       15          30      87         15
      22      13          1333    1333     13         1333     1333            8.92      36                9.         36
      23     333         111     111       44.       11       11             279.       303     51        2992                   35
      24
             10348        28      28          13      28       28            312.       15      24        307.       50         56

      27
      28      27.88       8794    8794    272.06      827      827                              163                  666       166
      29                    77      77               1628     1628             2.28   1542      2750        4.28   1644        2998
      30         44       224     224                 228      228           168.        06     101       152.97    3544       1015
      31       2.                          1128                               13                            4.28    106         30
               8.          427     427      4.01        35        35          44.      1631                 2.                  53
      33       7.50       2484    2484     3388       2488     2488              01    5528     11         77.16      11       1148
             16360         603     603     89.        5389     5389          114.        33       60                 994
      35       4.         13      13        4.        11       11             65                 560       22.      4413          77




Tabelle A . 1 : Laufzeiten, I a t i o n e n und Anzahl der Block-Pivots für die Lösung der LPs auf eine
Cray T3D mit 4 und 8 PEs
16 P E s
                               no Block P i o t n g                                       Block-Piotng
               no para       Sysem               ara    Sysem            no para       Sysem           ara     Sysem
       Nr      Zei     Iters.   Blocks       Zei     Iters. Blocks       Zei     Iters.   Blocks   Zei     Iters.  Blocks

               9.79      494      494                   536        536              77   44      10                    44        10

              65                            61               56        482    48.        3142                7.        24             89



        9
       10
       11

       13

       15
       16




               4.35        849      849      4.78           849        849     2.          872                    31    872
       22

       24
             11582       31       31       112.98
       27
       28      7.61        631      631    227.         7477       7477       88.99       7866   1122                   166      1166
       29    429.        1510     1510     355         13         13                05   1536     722      360         48        161
       30     63          2230     2230      4.06                            117.         3548             115          884       879
       31     10                            1050            92         92     16                            1656       131        279
                    88    13       13       22.         1363       1363       3563         848     82             88   22         474
       33     3310         33       33      3044             98         98   106            61    897      119.00                  60
                             35       35   135          53         53
       35     22.            15       15                     10         10     8.        6099     53        6547                  535

                                                                  32 P E s
                               no Block P i v o t n g                                       Block-Piotng
               no para       sysem                ara    sys 2m            no para       sysem           ara     sysem
       Nr      Zei     Iters.   Blocks       Zei      Iters.  Blocks       Zei     Iters.   Blocks   Zei     Iters.  Blocks

               2.         4928     4928      2.         4928       4928       48.        15000    77        44.99      4915       79




         9
        10
        11

        13

        15
        16




        22

        24


        27
        28   2460                          222.06                            222.         8455        33    15           606      88
        29   429.        13988    13988    33342        297        297       36688       1572    11        353         151       10
        30    47.55        136      136           44      84         84      134.42       5022     35      11105                    31
        31    1024                           8.          94         94        15          1328    224       13          1348
                    61     298      298     15                                              88                    78     600      479
        33    42.         2461     2461     28.         2253       2253       22.         747         27   103           15       601
              28.03       6374     6374           42    63         63
        35     2.          89       89      10           788        788      137.         611         28    79.             44        11




Tabelle A.19: Laufzeiten, I t a t i o n e n und Anzahl der Block-Pivots für die Lösung der LPs auf
Cray T3D mit 16 und 32 PEs
ANHANG A. T

                                                                       Anzahl           Es
                      lem        di      NNEs                                                  16
                  SM-50            23                  06              17                17    25
                  SM-50         2723         60        09       20     17                17    23
                   ehr15        16          6077                23             0.2             28
                    scrl                      50       13       3          3    28             33
                                  50                   28       77
                   ganges                   70                                           18    0.2
                   osa0          27           32                32                       23     28
                  grow2         1760        1215       15              3        3               33
              hansecom           967        3812       22                       57       50
             hansecoml7          967                   17
                       gg3        28         67        5       2.
              kaminl809          54         2968       33       1.
                     pilots      44         8376                2.    .3
                      bnl       179                             4.3   2.        6
                   scfxm                                        3.    2.        33       8     67
              ganges. ob4       23        28           67       2.    1.                       57
                    maros                 34           8        3.    2.            3    8
              kamin270          9092      33                          1.                       58
                     nesm         88       90                         2.                 1.0   83
                  pilotwe                              50             3.        8         16
                 stocfor       1667                    70       2.         8
                west0           20                                         3        3           3
               sherman           10         78         07                  8
                   steam         600        760        97
               sherman          1000          50
                      mcfe       76         382       2.              2.       2.               3
                jpwh             99        60                         3.       2.        1.8
                orani67                   90158            3          4.4      3.        2.3
                  orsreg                    133                        16       10
                    watt           56         60                       16
                    wat         1856       1550                 29                              8
               sherman          3312      207          18       33     17
               sherman2         10        2394         28                                15    10
               sherman3         500        0033        17                       36       23    16
                  lns3                        07                                28       15


T a b e l e A . : Statisische Daten zu den T e s M a t i z e n für die parallele LU-Zerlegung und Laufzeitn für
die verteilte und sequentielle LU-Zerlegung dünnbesetzter Matrizen auf dem Cray T3D. Die Spalte „seq"
enthält die Zeiten für den in SoPlex benutzten Solver auf einer PE. Die folgenden Spalten enthalten die
Laufzeiten für den verteilten Algorithmus in Abhängigkeit von der Anzahl der eingesetzten PEs.
nr         et zt            ^.nzah      Es    dihl            et zt          Lnzah      Es
          Problem                                                  16                                             16
           SM-50                                                  3.     2.3       2.8       3.          3.
           SM-50                     3                            2.     2.        3.        3.          3.       4.3
            chrlö                                 3     1.        2.     2.        2.        2.3         2.       2.
             scrl         8          8            8     2.        2.     3.        3.        2.          3.       3.
                                                  8     2.        3.     3.3       3.        3.          3.
            ganges                           1.         1.        2.     2.8       2.        2.          2.       3.3
            osa0          8                  2.         2.        3.8    3.        4.3       4.          5.       6.
           grow2        1.      1.3          1.3                  2.     3.        3.3       3.          2.       3.
       hansecom         3.      3.           3.                             3      8.        8.          8.      103
      hansecom          3.3     3.           3.                                    8.        8.3         8.8     10
                  g3            1.           1.                   2.               3.8       2.8         2.       2.8
       kaminl809                8.           8.        10.8       4.    15.       16        17                       3
              pilots    5.3     4.           3.         3.        3.     8.           8                 4.
               bnl      2.      2.           2.         2.        2.          3                   3     3.
            scfxm       2.      2.           2.         2.        2.                    3
       ganges. ob4      2.      2.3          2.         2.        3.     7.
             maros      2.3     2.3          2.         2.3       3.     8.                                  3
       kamin270         2.8     3.           5.         9.        5.     2.
              nesm      2.      2.           2.         2.        3.
           pilotwe      2.      2.           3.         3.        3.3   103                        8
          stocfor3      8.      8.8          9.         1.       16.                            4.
         west0          2.3     2.           2.         2.3       3.     4.8       4.3          3.      4.        4.
        sherman         1.      1.           1.3           8      2.     3.        3.           2.8     2.        3.
            steam       2.      2.           2.                   2.               3.           3.3     2.        2.
        sherman         2.      2.                           8    2.               3.           2.8     2.        3.
               mcfe                          4.         3.        4.8   10                         3    4.
         jpwh                                3.                   3.     9.8       6.                   3.
         orani67                6.                                       8.       12.
           orsreg               8.       10             9.       10      9.       23.       15
              watt         8         8   10             8.              32.8                15                   10
              watt      6.3     3.        2.3                           28.        8.8                            1.
        sherman        13.      9.3                          8                    20.                             2.
        sherman2       16.     12.                      6.              39        23.                             8.8
        sherman3       23.     23.           4.         3.       148    56                  26.3                  9.
           lns3        38.                   8.                  16           3             28.              3    8.3

Tabelle A.21: Laufzeit für die veteilte Lösung dünnbesetzter lineare Gleichungssysteme mit dünn- und
dichtbesetzem RechteSeiteVektor nach verteilter LU-Zerlegung in Abhängigkeit von der Anzahl der PEs.
iteratrverzeic

 1] G.M. AMDAHL, Validity of the single-processor approach to achieving largescale
    computing capabilities, AFIPS Conference Proceedings, 30 (1967, pp. 83-
  ] N. AMENTA AND G.M. ZIEGLER, Deformed products and maximal shadows of
    polytopes, TU Berlin Preprint Reihe Mathematik, Report No. 502/1996
  ] E.D. ANDERSEN AND K.D. ANDERSEN, Presolving in linear programming
    Math. Prog. 71 (1995), pp. 221245
  ] K.M. ANSTREICHER AND T. TERLAKY A monotonic build-up simplex algorithm
    for linear programming Op. Res. , 42, 3 (1991), pp. 55656
 5] R. ASENJO AND E.L. ZAPATA, Sparse LU factorization on the Cray T3D, Lec
    ture Notes in Computer Science 919 (1995), pp. 90, Springer Verlag
 6] O. AXELSSON, A survey of preconditioned iterative methods for linear systems of
    algebraic equations, BIT 25 (1985), pp. 166187
 7] D.A. BABAYEV AND S.S. MARDANOV, Reducing the number of variables in
    integer and linear programming problems Comp. Opt Appl. 3 (1994) pp. 10
 8] M.A. BADDOURAH AND D.T. NGUYEN, Parallelvector processing for linear
    programming Computers & Structures No. 38, Vol. 3 (191), pp. 69281
 9] R.S. B A R R AND B.L. HICKMAN, Parallel simplex for large pure network pro-
    blems: Computational testing and sources of speedup, Op. Res 42, 1 (1994) pp. 6
    80
10] R.H. BARTELS AND G.H. GOLUB, The simplex method of linear programming
    using LU decomposition, Comm. ACM 12 (1969), pp. 266268
11] R.K. BARYTON, F.G. GUSTAVSON, AND R.A. WILLOUGHBY, Some results on
    sparse matrices Math. Comp. 24 122 (1970), pp. 937954
  ] M. BENICHOU, J.M. GAUTHIER, G. HENTGES AND G. RIBIERI, The effi-
    cient solution of largescale linear programming problems, Math. Prog. 13 (1977)
    pp. 28032
LITERURVERZE                                                                     195

      R.E. BIXBY AND A. MARTIN, Pallelizing         the dual simplex algorithm, ZIB
      Preprint SC 9545 (1995)

      R.E. BIXBY, J.W. GREGORY, I.J. LUSTIG, Very largescale linear program-
      ming: A case study in combining interior point and simplex methods, Report
      (1991), Department of Mathematical Sciences Rice University Houston Texas

      R.E. BIXBY, Das Implementieren des Simplex-Verfahrens: Die Startbasis, ZIB
      Preprint SC 92-11 (1992

      R.E. BIXBY Progress in linear programming ORSA J. Comp.        1 (1994) pp. 15
      22

      R.G. BLAND, New finite pivoting rules for the simplex method, Math, of Op. Res
      2 (1977), pp. 103-107

      A.L. BREARLEY, G. M I T R A AND H.P. WILLIAMS, Analysis of mathematical
      programming problems prior to applying the simplex algorithm, Math. Prog.
      (1975), pp. 548

      R. BORNDÖRFER, C. FERREIRA AND A. MARTIN, Decomposing matrices into
      blocks, ZIB preprint, to appear

      T.B. B O F F E Y AND R. HAY, Implementing parallel simplex algorithms

      K.H. BORGWARDT, The simplex method: A probabilistic analysis, Algorithms
      and Combinatorics, Vol 1. Springer Verlag

      E.D. BROOKS III, Massively parallel computing, in „The 199 MPCI Yearly
      Report: Harnessing the Killer Micros", E.D. Brooks et al eds., Massively Par-
      alle Computing Initiative, Lawrence Livermore National Laboratory, Livermore
      California 94550 (199

      R. BURKARD, S. KARISCH AND F. RENDL, QAPLIB — a quadratic assignment
      problem library, Eur. J. Op. Res 55 (1991), pp. 115119

      A. CHARNES, Optimality and degeneracy in linear programming Econometrica,
      20 (1952), pp. 160170

      H . D . CHEN, P.M. PARDALOS AND M.A. SAUNDERS, The simplex algorithm
      with a new primal and dual pivot rule, Op. Res. Let 16 (1994), pp. 2112

      V. CHVATAL, Linear Programming, W H . Freeman, New York (198

      Using the CPLEX callable library, CPLEX Optimization, Inc, Suite 279,
      93 Tahoe Blvd., Bldg. 802, Incline Village, NV 89451, USA (1995) URL:
      http://www.cplex.com/
96                                                           LITERURVERZEIC


      8] A.R. CURTIS AND J.K. R E I D , On the automatic scaling of matrices for Gaussian
         elimination, J.o.tInst. of Math. a.i. Appl 10 ( 1 9 7 , pp. 118

      9] G.B. DANTZIG AND W. ORCHARD-HAYS, The product form for the inverse in
         the simplex method Math. Comp. 8 (1954), pp. 6467

      0] G.B. DANTZIG, A. ORDEN AND P. W O L F E , The generalized simplex method
         for minimizing a linear form under linear inequality retraints, Pacific Journal of
           athematics 5 (1955), pp. 183-195

      1] G.B. DANTZIG AND P. W O L F E , Decomposition principle for linear programs
         Op. Res 8 (1960), pp. 101111

     32] G.B. DANTZIG, Linear programming, in „Histroy of Mathematical Program-
         ming", J.K. Lenstra, A.H.G. Rinnooy Kan and A. Schrijver eds, North-Holland
         Amsterdam, 1991

     33] T.A. DAVIS AND P. Y E W , A nondeterministic parallel algorithm for general
         unsymmetric sparse LU factorization, SIAM J. Matrix Anal. Appl 11, 3 (1990)
         pp. 383-4

      4] P. DEUFLHARD      AND   A.   HOHMANN,    Numerische Mathematik I de Gruyter
         (1993)

      5] E . . DlJKSTRA, GO TO statement considered harmful, CACM V, 11 No. 3

      6] E.W. DlJKSTRA, Structured programming, Nato Science Comittee - Software
         Engineering Techniques (1970)

      7] A. DONESCU, The simplex algorithm with the aid of the Gauss-Seidel method
         Econ. Comput and Econ. Cybernetics Studies and Research, 4 (1989) pp. 12
         132

      8] LS. D U F F AND J.K. R E I D , The multifrontal solution of unsymmetric sets of
         linear equations, SIAM J. Sei. Stat. Comp. 5 (1984), pp. 633-641

      9] LS. D U F F , A.M. ERISMAN AN J.K.     REID   Direct Methods for Sparse Matrices
         Clarendon Press, Oxford (1986)

      0] LS. D U F F , R.G. GRIMES, AND J.G. LEWIS, Sparse matrix test problems AC
         Trans Math. Soft 15 1 (1989), pp. 114

     41] LS. D U F F , Parallel implementation of multifrontal schemes Parallel Computing,
         3 (1986), pp. 193-04

       ] S.K. ELDERSVELD AND M.A. SAUNDERS, A block-LU update for largescale
         linear programming, SIAM J. Matrix Anal. Appl 2, 1 (1992), pp. 1 9 1 0 1
LITERURVERZEIC                                                                         197


      D.J. EVANS AND G.M. MEGSON                            tolic   imple        lrithm,
      Int. J. Comp. Math. 38 (1991), pp. 138

      A.V. FlACCO AND G.P. Mc C O R M I C , Nonlinear programming: Sequential
      unconstraint minimization techniques, John Wiley & Sons, New York, 1968

      D.G.   FIRESMITH,   Inheritance diagrams: which way is up, JOOP       1 (1994)

      J.J.H. F O R E S T AND J.A. TOMLIN, Updated triangular factors of the basis to
      maintain sparsity in the product form simplex method Math. Prog. 2 (1972,
      pp. 263-278

      J.J. F O R E S T AND D. GOLDFARB, Steepestedge simplex algorithms for linear
      programming, Math. Prog. , 57 (1992), pp. 341374

      D.R. FULKERSON AND P . W O L F E , An algorithm for scaling matrices, SIAM
      Review, 4 (1962), pp. 142-146

      A. G E O R G E , M.T. HEATH, J. Liu, AND E. N G , Sparse cholesky factorization on
      a localmemory multiprocessor, SIAM J. Sei Stat. Comp. 9 (1988) pp. 32734

      P.E. GILL, W. MURRAY, M.A. SAUNDERS AND M.H. W R I G H T , A practical
      anticycling procedure for linear constraint optimization, Math. Prog. 45 (1989)
      pp.       74

      S.K. GRANENDRAN AND J.K. H O , Load balancing in the parallel optimization
      of block-angular linear programs Math. Prog. 62 (1993), pp. 4167

      D. GOLDFARB AND J.K. R E I D , A practicable steepestedge simplex algorithm,
      Math. Prog. 12 (1977), pp. 361371

      M. GRÖTSCHEL, A. LÖBEL AND M. VÖLKER, Optimierung des Fahrzeugumlaufs
      im öffentlichen Nahverkehr, ZIB Preprint SC 968 (1996)

      M. GRÖTSCHEL, L. LOVASZ, AND A. SCHRIJVER, Geometrie Algorithms and
      Combinatorial Optimization, Algorithms and Combinatorics 2, SpringerVerlag
      (1988)

      M. GRÖTSCHE         Optimierungsmethoden     I, Vorlesungsskriptum, Universität
      Augsburg (1985)

      J.L. G U S T F S O N , Reevaluating Amdahl's law, Comm. ACM, Vol      No.5 (1988)
      pp. 532-533

      J.A.J. HALL AND K.I.M. M C KINNON, A class of cycling counter-examples
      to the EXPAND anticycling procedure, Dep. of Math, and Stat, University of
      Edinburgh EH9 3JZ, UK (1995)
LITERURVERZEIC


58] J.A.J. HALL AND K.I.M. M C KINNON An asynchronous parallel revised simplex
    algorithm, Department of Math, and Stat. University of Edinburgh, MS 95050
    (1995)

59] J.A.J. HALL AND K.I.M. Mc KINNON, PARSMI, a parallel revised simplex
    algorithm incorporating minor iterations and Devex pricing, PARA96: Workshop
    on Applied Parallel Computing in Industrial Problems and Optimization Copen-
    hagen (1996)

60] P.M.J. HARRIS, Pivot selection methods for the Devex LP code, Math. Prog.
    (1973), pp. 128

61] M. HEATH, E. N G , AND B. PEYTON, Parallel algorithms for sparse linear sy-
    stems, SIAM J. Comp. 21 1 (1991), pp. 1 1 1 9

  ] R.V. HELGASON AND J.L. KENNINGTON, A parallelization of the simplex me
    thod, An. Op. Res 14 (1988), pp. 1740

  ] E. HELLERMAN AND D. RARICK, Reinversion with the preassigned pivot proce
    dure Math. Prog. 1 2 (1971), pp. 195215

64] J.K. Ho AND R.P. SUNDARRAJ, A timing model for the revised simplex method
    Op. Res. Letters 13 (1993), pp. 677

65] A.J. HOFFMAN, Linear programming at the National Bureau of Standards, in
    „History of Mathematical Programming", J.K. Lenstra, A.H.G. Rinnooy Kan
    and A. Schrijver eds, North-Holland Amsterdam, 1991

66] M.T. JONES AND P.E. PLASSMANN, Scalable iterative solution of sparse linear
    systems, Par. Comp. 20 (1994), pp. 753-77

67] N.K. KARMARKAR, A new polynomialtime         algorithm for linear programming
    Combinatorica, 4 (1984), pp. 33-395

68] M. KATEVENIS, RISC Architectures, in „Parallel & Distributed Computing
    Handbook", A.Y. Zomaya ed. McGrawHill (1996)

69] L.G. KHACHIAN, A polynomial algorithm in linear programming, Soviet
    Math. Doklady 20 (1979), pp. 191194

70] V. K L E E AND P. KLEINSCHMIDT The d-step conjecture and its relatives Math, of
    Op. Res 12, 4 (1987), pp. 718755

71] H.W. KUHN AND R.E. QUANDT, An experimental study of the simplex method
    Proceedings of Symposia in Applied Mathematics 15 (1963), pp. 107124
LITERURVERZEIC                                                                       199

     ] E.V. KRISHNAMURTHY, Complexity issues in parallel and distributed computing
       in „Parallel &: Distributed Computing Handbook, A.Y. Zomaya ed., McGraw
       Hill (1996)

     ] D.W. KRUMME Fast gossiping for the hypercube SIAM J. Comput                (199
       pp. 365380

   74] A. LÖBEL, Optimal vehicle scheduling in public transit, PhD thesis, Technical
       University of Berlin, in preparation

   75] J. Luo, A.N.M. HULSBOSCH AND G.L. R E I J N S , An MIMD work-station for
       large LP problems, Par. Proc and Appl, Proc. Int. Conf. , L'Aquila (1987)

   76] I.J. LUSTIG, R.E. MARSTEN AND D.F. SHANNO, Interior point methods for
       linear programming: computational state of the art, ORSA J. Comp. 6 1 (1994)
       pp. 114

   77] H.M. MARKOWITZ, The elimination form of the inverse and its application to
       linear programming, Management Sei. 3 (1957), pp. 255269

   78] K. MARGARITIS AND D.J. EVANS, Parallel systolic LU factorization for simplex
       updates, in „Lecture Notes in Computer Science G. Goos an J. artmanis eds
       Springer Verlag 1988

   79] I. NASSI AND B. SCHNEIDERMAN Flowchart techniques for structured program-
       ming, SIGPLAN Notices (1973)

   80] M. PADBERG, Linear Programming and Extensions, Algorithms an            Combina-
       torics, Vol 12. Springer Verlag (1995)

   81] M. PADBERG AND M.P. RIJAL, Location, Scheduling Design and Integer Pro-
       gramming Kluwers's International Series (1996)

     ] P . Q . PAN, A Simplex-like method with bisection for linear programming, Opti
       mization, 22 (1991), pp. 717743

     ] D.A. R E E D AND M.L. PATRICK, Parallel iterative solution of sparse linear sy-
       stems: Models and architectures, Par. Comp. (1985), pp. 4567

   84] J.K. R E I D , A sparsity-exploiting variant of the BartelsGolub decomposition for
       linear programming bases, Math. Prog. 24 (1982), pp. 5569

   85] P. SADAYAPPAN AND S.K. R A O , Communication reduction for distributed sparse
       matrix factorization on a processor mesh, Supercomputing '89, AC Press New
       York (1989), pp. 371379
00                                                     LITERURVERZEIC


     M.A. SAUNDERS, A fas sable implementation of the simplex method using
     Bartels-Golub updating, in Sparse Matrix Computations", J. Bunch and D. Rose
     eds, Academic Press, New York (1976), pp. 213-2
     D.F. SHANNO, Computational methods for linear programming, Rutcor Research
     Report RRR 1993 (199
     R. SHARDA, Linear programming solver software for personal computers: 1995
     Report, OR/MS Today, October 1995, pp. 4957
     A.F. V.D.STAPPEN, R.H. BISSELING AND J.G.G. v . D F O R S T , Parallel sparse
     LU decomposition on a mesh network of transputers SIAM J. Matrix Anal Appl,
     Vol14 No.3 (1993), pp. 853-879
     C.B. STUNKEL AND D.A. R E E D , Hypercube implementation of the simplex al
     gorithm, 3rd Conf. on Hypercube Concurrent Programming, Pasadena (1988)
     pp. 1473-1482

     C.B. STUNKEL, Linear optimization via messagebased parallel processing
     Proc. Int. Conf. Par. Processing III (1988), pp. 64271
     U.H. SUHL AND L.M. SUHL, Computing sparse LU factoriztions for largescale
     linear programming bases, ORSA J. Comp. 2, 4 (1990), pp. 3 2 3 3 5
     U.H. SUHL AND L.M. SUHL, A fast LU update for linear programming
     An. Oper Res 43, 1 4 (1993), pp. 33-

     T. TERLAKY AND S. ZHANG A survey on pivot rules for linear programming, IS-
     SN 0922-5641, Reports of the Faculty of Technical Mathematics and Informatics
     Delft University of Technology 1999 (1991)
     R.P. TEWARSON, The product form of inverses of sparse matrices and graph
     theory, SIAM Review, 9 1 (1667), pp. 9199
     J.A. TOMLIN, On scaling linear programming problems, Math. Prog. Study
     (1975), pp. 146166
     P. TSENG, Distributed computation for linear programming problems satisfying a
     certain diagonal dominance condition, Math. Op. Res 15 1 (1990), pp. 33-48
     R.A. WAGNER,       arallel solution    of arbitrarily sparse linear    systems
     Par. Comp. 9 (198889), pp. 33-33
     P. W O L F E , A technique for resolving degeneracy in linear programming, SIAM
     J. Appl Math. 11 (1993), pp. 0 5 1 1

     P. W O L F E The composite simplex algorithm, SIAM Review,     1 (1965), pp. 2-
     54
LITERURVERZEIC                                                                       01

   101] R. WUNDERLING, H.C. H E G E , AND M. GRAMMEL, On the impact of commu-
        nication latencies on distributed sparse LU factorization, ZIB Preprint SC 93-28
        (199

   1 0 ] M. YANNAKAKIS, Computing the minimum fillin              is NP-complete   SIAM
         J. Alg. Disc Meth. 1 (1981), pp. 7779

   1 0 ] S. ZHANG, On anticycling pivoting rules for the simplex method Op. Res Letters
         10 (1991), pp. 189192

   104] G.M. Z I E G L E , Lectures on Polytopes, Graduate Texts in Mathematics 152,
        Springer Verlag (1995)

   105] X. ZHU, S. ZHANG AND A.G. CONSTANTINIDES, Lagrange neural networks for
        linear programming, J. Par. Distr. Compt 14 (1992), pp. 354360

   106] ZIB Jahresbericht 1995

   107] anonymous ftp: r e s e a c h . a t t   com:/dist/lpdata
Inex
abstrakter Datentyp,                                  iterative L s u n g von, 69
A m h l s c h e s Gesetz 97                           konjugierte Gradienten, 70
                                                      LU-Zerlegung, siehe LU-Zerlegun^
  rrier, 103                                          Vorkonditionierung, 70
Basislösungsvektor, 3, 26, 36                      Gossiping, 102, 1
Bereichsungleichung, 1                             Granularität, 94 99
Beschleunigung, 97                                 Gustavsonsches Gesetz 98
Block-Pivoting, 10
                                                      lbraum,
C + + , 125                                        Harris, 56, 67
Cache, 75 98 128                                   Hilfsvektor, 41
CPLEX, 6                                           Hyperebene 8
Crash-Basis 87
                                                   InnerePunkteVerhren,
  ünnbesetztheit, 68
      bei Lösung gestaffelter Gleichungssy-        Kegelbasis 10
              steme, 78                            K l s s e , 123
      Speicherschem 75 128                                 bstrakte Basis
Dantzig, 1                                                 lgorithmische
Degeneriertheit, 21, 24, 60                              Basis-, 124, 13
d u l e Variablen, 13, 6, 36                             Implementierungs
D u l i t ä t s s a t z , 32                             template, 125, 12
d y n m i c typing, 12                             Kommunikation, 94 96
                                                   Kompatibilität 120 122
Efzienz, 120, 122                                  Kondition, 51
      parallele, 98                                      einer Matrix, 52
Ellipsoid-Methode                                  Korrektheit, 120 122
Erweiterbarkeit 120                                      partielle 18
E x t r e m l e 10                                 Kreiseln, 6

Fill, 74                                            astausgleich, 100 115
Flynn, 94                                          ate binding, 124
                                                   Laufzeitdiagramm, 10
  ußsche     Elimination,       he     LU-         Lineares Programm
        Zerlegung                                      allgemeines, 33
Gleichungssystem                                       Beschränktheit, 8
    direkte Lösung von, 71                             in Gleichungsform, 24

                                              20
DEX                                                                            20


    in U n g l e i c h u n g m ,              m u l t p l e , 3, 10
    Skalierung, 82                            partial, 63
    Zulässigkeit, 8                           partial multiple, 6
LP, siehe L i n e r e s P r o g r m m         steepestedge, 64
LU-Zerlegung                                  weighted, 67
    parallele, 109                      Pricingvektor, 41
    sequentielle 72                     Produktform der Inversen, 71
    Update der 79                       P r o g r a m m i e r p a d i g m 120
                                        Programmierung
Markowitz-Zhl 75                              imperative, 120
Methode 123                                   modulare, 121
   virtual 125                                objektorientierte 122
  MD, 94                                      strukturierte 121
Nebenläufigkeit, 96                       uotiententest
NichtNullElement, 68                        dualer, 21
NNE, siehe NichtNullElement                 primaler, 19
                                            Stbilisierung, 57
Objekt, 123
   verteiltes                           RückwärtsSubstitution, 72 78
                                        R a n g - 1 U p d a t e 14 71
       llelität                         RISC, 91 94
      Daten-, 3
      funktionale, 93                   SchlupfBasis, 87
PFI, siehe Produktform der Inversen     Schlupfvariablen, 3, 6, 33, 36
P h a s e 1 , 59                        Schnittstelle, 121
Pivot-Element, 72                       Shifting, 6 , 62
      Kompatibilität 110                SIMD, 94
Pivot-Kandidaten                        Simplex-Algorithmus
      bei LU-Zerlegung, 113                 d u l e r , 23, 29
      beim Simplex-Algorithmus 10           einfügender, 20 28 42
Pivot-Schritt                               entfernender 19 29 4
      bei LU-Zerlegung, 72                  primaler, 20 28
      beim Simplex-Algorithmus 14           Stabilität 54
Pivot-Suche, 74                         Simplex-Basis
      Schwellwert 75                        darstellungsunabhngige, 34
Polyeder, 8                                 in Spaltendarstellung, siehe S p l t e n -
      Darstellungssatz                            basis
      Ecken von, 10                         in Zeilendrstellung, siehe Zeilenbsis
      spitze 10                             Optimalität 40, 42
Pricing, 62, 84                             Wahl der Darstellung, 85
      Devex, 6                              Zulässigkeit, 40 42
      hybrid, 6                         Simplex-Kriterium, 6, 3
      mostviolation, 63                 Simplex-Tableu, 6
20


SID,
Skalierrkeit, 98
S p l t e n b s i s , 25
      Optimalität
      Zulässigkeit
Spaltentusch, 27
Speicher
      gemeinsamer 95
      verteilter 95 96
SPMD, 95
Stbilität, 53
      bei der LU-Zerlegung, 74
Synchronisation, 94 96, 1

Thred, 1 5
Toleranz 6,

Vererbung, 125
Verteilung, 101, 110
Vorwrts-Substitution, 72
   parallele, 118
   sequentielle 78

Wiederverwendbrkeit 120 122

Zeilenbasis 12
    Optimalität
    Zulässigkeit
Zeilentausch, 14
Zulssigkeitsvektor 41
slau

              Persönliche Angab
               Name:                   Rol       Wunderling

                eburtsdatum:           27. Oktober 19

                    rt                 Belin

                 miliand:                 heir

                tatsahörigke           deutsch




1971 1975     Grundschule       der Euroäischen Schule n Vrese       Iten

1976 - 1979   Oberschule n der Europäischen Schule n Vrese          Iten

1979 1984     D r o s t e H ü l s h o G y m u m n Berl

   SS 1985    Beginn des     plomstuengngs          n der FU-Berl     den     chern
              Physik und     athemik

 Nov. 1987    Vordplom           themik

 Nov. 1987    Vordplom n Physik

 Dez 1991       plom n Physik

   n. 1992    Wechsel zur      athemik         t Studenzel Promoton         der TU-
              Berli

Soplex tr

  • 1.
    Konrad-Zuse-Zentrum für InformationstechnikBerlin 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)
  • 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
  • 5.
  • 7.
    Vorwort Der Anstoß fürdie 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
  • 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
  • 11.
    Inaltsverzeichis Einleiung RevidierteSimplex-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 ng 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
  • 17.
    letu erAnfang 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 UNDMATHEMATISCHE 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 aufTranspositn 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 Pfwenn 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 •
  • 54.
    38 TE SIMP ine as die ( 5 9 ) gi heßt äss und, falls gi pal E weden nun das ptimalitä und Z u ä s s i g k e i t i t e i u m fü eine altenbass auf getellt INITIO i B ine Basis vo (1-45) mt Saltenbasatr r i {1 + 77.} sete falls i Pf falls i B) falls i falls i sost , falls i Pf , falls i B) ; falls i 2) falls i sost falls i Pf falls i B) falls i falls i sost et ferer für i {1 W falls Q B) W falls falls Q Q ß) falls Q efniere schch de Vetore B) B) 65) B) B) 66) B ) B )
  • 55.
    2 RU S o r n keine Verwehslung m ö h i wid i Folgenden die A b h n g i k e n de as (£>) nicht expliit n t i e t Es muß nun gezeigt weden, efinitin ( nicht im idersuch üheen efinitin der Schupfvariblen ( teht SATZ 23 st efniert EWEIS: D r c h Mltiplikation v n ( mit hält m wora duch i n e t e n v n (151) )Q folgt. Fü die echte eite gi )R nn k n n de Tei gechieben weden als git n t e c h e n d folgt Q2 n P i 9) Es werden nun die letzten beiden eziehungen us der efinitin des Schlupfvektors fü eine Zeilenbasis hegeeitet Da egulär i t folgt dara die Whldefinietheit D c h i n t e n von ( 5 ) in p hält m QX Somit i und ( A . Fü < i< git d e a l s A Q + AQ Q P i + A A' Fü und , so ß gi mit folgt fü S A = Pi + Q2Qi Q un ist abe fü 1 < < n was den ewei de definietheit v n ( vollendet
  • 56.
    TE SIMP M t den Vektoren ur allgemene Spaltnbas werden nun das Z u ä s s g k e - und as ptimalitätskiterium ufgetellt D u bedarf es auch de Vektors de D a l variblen SATZ in ass vo (1-4-5). nn lt fü alvarle Ferer st B zuäss, wnn al, wnn <d 2) EWEIS: ls erste wi eichung ( bewiesen. gi r , so daß cp dp zu eigen i t +m Definiere y G R" so d Sett m und ( 5 0 in ( ein und m u t i i i e mit B, so git wegen V wora die eichungen {Ä folgen ntsprechend folgt 5) mit de arstellung ( 5 1 ) der Saltenbas ch M l t i k t i n mit B I (( wora tQ und p2_ nQ folgt mit i und m n e ä l chließich (A JT UPl l was ch de efinitin v den ewei eichung ( beendet Die Zulässigkeitbedingung ( 1 ) folgt wegen Ls = und diekt 59) chießlich folgt das O p t i m a l i t ä i t e r i u m (172) wegen und L s Sa 22
  • 57.
    2 RU Veleicht man ( 5 6 ) mit (1.67), ( 1 7 ) mit (1.5) und (.58) mit (1.66), so ekennt n, daß die Rechenoperationen bis auf T r a o s i t i o n jeweils übereintimmen iese Be- chtung w i d v n der folgenden Definiti ausgenutzt mit deen Hilfe alle für Simplex- Agorithmen evnten Vektoren in eine m i c h t darstellungunabhängige Form gebracht weden EFINITION 9 B ein Bass von (1-45) u chne m {Z, S} ein arstell er asismatix. Je nach Whl von V efniere zechunge gem folgeer Tabelle: B, Pf Pf )T nn as R) 5) er Zuässigkeitvektor er H i v e k t o r 77 er ngVektor ie N m e n Zulässigkeitvektor für / und PricingVekto ür g beziehe ch auf den u spünglichen Simplex-Agorithmus, nämlich den primalen Simplex mit Spaltenbasis. Dor bezeichnet die eduzierten Kosten, die beim Pricing gewetet weden hingegen die ( p i m a l ) Zuässigkeit de Bas betimmt Man bechte aß alle Größen direkt fü LPs der Form ( 1 5 ) betimmt werden können und keine Datenstrukturen benötigen die v der gewählten Basidarstellung abhängen Inbesondee brauchen die M e n A und A nicht e x p i e t k o n u i e u weden S a t t
  • 58.
    PIT REVIDIERTE SIMPEX-ORITHM dessen k n n der jeweilge /-Teil de a t x bei der B e h n u n g von / und g alorithmi genutt weden. Fü den Vektor etwa stimmt die Teil diekt mit h überein Die Beichungen wuden so gew ß folgender Sa u n b h n g i g v n de arste ung git SATZ chge efni st al d zuäss, wnn 9) lt EWEIS: i e r Sa folgt u n m i t t e a r a den en 22 und sowie efiniti • Nun können implex-lgorithmen formuliet werden, die nu die Gößen us Definitio 9 vewenden und somit i . unbhängig von der gewähten Basisdarstellung sind Das Ziel der Algorithmen i eine Basis zu finden, die beide Ungeichungen (1.78) und (1.79) erfüllt Dabei w i d wiede wichen wei algorithmischen Varianten unterschieden Eine arbeitet mit Basen die (178) füllen, während die ndere Basen benötigt, fü die ( 9 ) git gx und / in verschiedenen assdarstellungen jeweils dualen Vektoren zugeordnet sind kann einer algorithmischen Variante erst n c h Wahl der Basisdarstellung ein m t h e m t i c h e Algorithmu ugeordnet weden Die Zuordnung efolgt wiede ch bell 11 1.2.4.1 infügender Algorithmus Es wird nun der einfügende Simpex-Algorithmu in den von der B a s a r s t e l l u n g un- bhängigen Größen au Definition ufgestellt. r k n n weitgehend v Algorithmus 2 oder 3 übernmmen weden, wobei as Vorndensein oberer und unterer Schranken ein- gearbeitet werden muß. Wenn eine paltenbasis vewendet wird h n d e t es sich um einen primalen, andenfalls um einen dualen implex-Algorithmu (vgl. Tablelle 11). Zur Ve einfachung der Notatin w i d bei der Formuierung des Alorithmus die Abhängigkeit de Vektoren von de as ...(B) nicht explizit aufgeführt. att dessen weden Größen die r a k t u a l i e t e n as einer t e r a t i n gehören mit einem t i c h gekenneichnet ALGORITHMUS 5 (EINFÜGENDER S I M P L E X - L G O R I T H M U S ) Sei B eine Basis zum LP ( 1 4 5 ) und gelte (1.79). All rößen Defnition 9 eien e n t p r e c e n d i n i t i i e r t
  • 59.
    2 DI R U R I T Schritt 1 Priig) Fll < 9N < N terminiere: x t o p t i m e r L ö u n g e k t o r des LP S o n t wähl q d e r r t , d ß (j) mi (ß = oder m i <> Schritt 2: Setze A und ll Zeilenbas und ll Zeilenbasis und ll S t e n b a s und ll tenbas und Schritt 3 (Quotiententet): ll etze: = ^ ^ ± , mit p a r g m i n ^ L B = ^ , mit p argmin^g^ und = min{0 ll etze: L B / P mit = . P a r g m ^ t/B = ^ , mit p a r g m ^ ^ und = m = ± o o terminiere: as LP i t unzulässi oder u n b e n k t ll $ Son p p , so und für etze derrt, d = ^ ^ Schritt 4: ll tz und A Schritt 5 (Updte): ll $o Setze: /' + $ A / und B, N mi für und und Nl all g V und ont
  • 60.
    KAPIT REVIDIERTE SIMPEX-ORITHM ll See: ( ( / ) / h' +e +® + <Af ( B ' , mi ll u n d II ll ll , falls i = q wobei di inordnung in die Mengen gemä Defnition erfolgt A k t u l i e r e die Vektoren L, Schritt 6: G e e zu S c r i t t 1 SATZ 6 (PARTIELLE KORREKTHEIT VON LGORITHMUS 5) lgorthmu artet artell orre EWEIS: ei minieung in chitt folgt die ehuptung s Sa Es w i d nun geeigt, da in Schitt eine Bas mit Vektoren f' und die L < f < git ewei folgt in vie Teilschitten t eine as Falls in Schritt $ ^ 0 , gelten die Basisbedingungen 3 und fü B da ie es auch fü tun Die Basibedingung 4 folgt s Sa 6 d ch chitt T A/ pAq ^ 0 git t in Schitt 5 hingegen so folgt nach Schitt , ß e ich um eine paltenbas mit o o ^ < o o h n d e l t und desalb q 6 N gilt Wie schon B füllt deshalb uch die asibedingungen 1 3 und git auch die asbedingung 4 ) Die Vektoren und gehören zu Fü den Fall $ t = und wora und h' folgt etrachte nun den Fall / p)e git n c h und ( 9 ) T us Sa 5 ti bei ^"fA = ^ 6 t Schießich i t ()T A = + Q A = T + 9
  • 61.
    2 DI R U R I T ) D Vektor g e ö r zu £> .e st A B / ige Im Fall vo ^ $ sei j = mit git A + (A R und ' = / + $ (i? Somit i + * A + $ $ + (A A (A b R + § (A A) (A R+ $ + <S> + (A A( AR Im Fall und / ' + $ alb gi / / + * AR + $ A(R AR B < f U'Br. Betrachte unächst für $ ^ $ 0 einen beliebigen Index ^ afü gi und ' U und es sind wei Fäll u unterscheiden +* -Jh^ ii +* 7$L [ D r obe Fall olgt jeweils wegen chitt ieben iehungen geten uch im Fall $ $ 0 für a U e Indi Fü den v e e i b e n d e n Fall p und gu zunächt fp = fp ^Ap + $ — fp + Rq § Rq $ ei eine Zeienbas t dbei Ä, , so fp gilt. Fü git d n n j 0< $ /£ t/^ und f r $ 0 0 git Lp o < ^ = fp < 0 = ^ ! Im Fall eine Spaltenbas betrachten wi 3 Fälle Fü Pj ^ oo- Falls q folgt $ 0 und Desalb i f sowie f R chießlich folgt f
  • 62.
    KAPIT REVIDIERTE SIMPEX-ORITHM q e und und somit sowie § e r m i n t i n in Schritt ie Interpretatin der Lösung bei T m i n t i o n in Schritt 3 hängt v n der gewählten Bassdarstellung b; fü eine Zeienbasi t das LP u n l ä s s i g wähend e fü eine Spaltenbas u n b e c h n k t i t Zeilenbass: E t die U n ä s s i g k e i t des L eigen Betrachte für all F C B as LP t. D mit D und e R s sei fü {1 n} falls falls und so so sowie falls , falls und , so , so r jedes dieer LPs Z = ( { 1 , . , n}, {n + 1}) eine ässige Zeienbas und n + 1 eine verlette Ungeichung i , sind sie nach Satz 11 alle u n ä s s i g . Wei P{lz,zz) C ^ {DFdF folgt die Behuptung Spaltenbas In diesem Fall git e beweien ß das LP u n b e c h n k t ist d.h daß e u jedem M e R ein x P=(AUS) mit (cs)T M gibt ei also ein R gegeben Sei x de asislösungvektor, also und = f Gi () M, so t nicht zu zeigen Andenfalls definiee A gemä falls falls i sot -l i 7 und A ~ den Vektor x XA gi )T = 7 )T =7 M Außerdem i t nach chritt 3 L < und nicht n de as bhängen was den ewei beendet
  • 63.
    2 DI R U R I T Dieser A g o t h m u s ist nicht vollständig von de g e ä h e n Bassdarstllung un bhängig. In chritt 2 geht ie noch in die Definition von $ ein und in Schritt 5 wird ie zu Aktualisierung de Vektoren L, U l und u benötigt. In allen anden chritten tritt sie jedoch nicht mehr auf Dies umfßt insbesondere die f verschiedene Implementierungen variiebaren Schitte, n m i c h das Pricing und den Quotiententest Bei SoPlex w i d die so ausgenut aß jede Implementierung eines Pricing- ode Quotiententest-Verfhren für beide Basisdarstellungen funktioniet und somit gleich fü wei lorithmen je einen primalen und einen dualen, b e e i t t e h t Was die Übersichtichkeit von Algorithmu 5 beeinträchtigt, ist die Definition v $ und die ugehörige Fallunterscheidung in Schritt 5 Wie im obigen Beweis geeigt, ann dieser all nur fü eine Spatenbasis, also bei einem primalen Algorithmus eintreten. Hie kann e nämlich vorkommen daß eine Variabe von i h r aktuellen chranke entfrnt wer- den soll s aber gerade wiede diese Varable i die als rste auf i h e zweite Schranke trifft Die betreffende Varible wird also nur von ih einen chranke uf ih ndee geet ähend die B a s s m i x unverändet beibt 1.2.4.2 Enfernender Algorithmus w i d nun der entfernende Simplex-Algorithmu in den arstellungunabhängigen Gößen au Definition 9 formuliet. Gemäß Tabell 11 handelt es sich im Fall eine Zeilenbas um den primalen und im Fall einer Spaltenbas um den dualen A o r i t h m u ALGORITHMUS 6 (ENTFERNENDER S I M P E X - A L G O R I T H M U S ) Sei B eine Basis zum LP ( 1 4 5 ) und e gelte (1.78). All ößen Defnition 9 eien e n t p r e c e n d i n i t i i e r t Schritt 1 (Pricing): Fll L terminiere: x t optimaer L ö u n g v e k t o r de LP S o n t wähle p, mi fp > UBp oder fp < LBp Schritt 2: Setze A A~Bx und T '-A ll tenbas etze: + und + , wenn fp > UBp und 0 = — und = — ont ll Zeilenbass setze: = — und , wenn fp > , und und ont Schritt 3 (Quotiententet):
  • 64.
    48 KAPIT REVIDERTE SIMPEX-RITHM ze mit -%^- 9+ G argmin^2i . Ag 0} %?^' mit 5 argmin^gi : AÄ 0} und = m i n } . Fall etze: mit %2^. 9+ G a r g ^ f : A& 0}, mit ^f"> 5 e a r g ^ .Aft 0} und = m { 0 + 0 } . I 0 = ±o termiere: Das LP unlässig o e r unbschnk fall ze und f> d e r r t ^ Schritt 4: Fall q <£ B etze A / ^ chritt (Ute): h! +0 A 9 - g+ QAg Fall G ß etze: F = ' A , mi B'i = i falls « und U BUU und BU B fall G £ B'U = BU B und Buö Fall q^LB etze: fp)/p Z + ^ A Z + CÄ {B'), mit falls i upd * alls « falls z w dnung in d e Me ef er A u a r e e Ve Schritt 6: G e e z chtt 1 SATZ 27 (PARTIELLE KORREKTHEIT VON A L G R I T H M U S 6 Algorithmus 6 arbeitet partiell korrekt.
  • 65.
    2 GRUDALORITHME WEI 1. Bei Termiieru n Schritt 1 folt die B e t u us tz 25 2 Es wird n n gezeigt, d ß £ n Schritt 6 e i e B s i s mit Vetore h! ist für die wieder 178 ilt ß B e i e Basis ist, folgt für q £ B a a l o zum Beweis n Satz 26. Für beachte man zunächst, daß q Bp denn es gilt Ag^ = AB e^A~^B ej Ferner ist in diesem Fall — oo < lq ^ so d Bu B folt mit ist eine Basis d B e i e Basis ist n t s p r e c h d wie im Beweis von S t z 26 fol ch S t z 5, d die Vetore h! zu ' gehören. Daß n Schritt 6 die U l e i c h V < ' < v! gilt s i e t ma für eine Z e i l e s i s wie folt D diesem F l l = u ilt für lle i für 0A#, > 0: / A f 9i + ^ ^ A f t = u y% d für ÖA^ < 0 : = ft + A f t ^,^A f t 9% Für ei Spltenbasis wird zunächst lp bzw. up n Schritt gemäß der zu erwartende eue Basis für den Fall q 0 B itilisiert Daher ann in Schritt 6 der Fall £ B nicht eintreten. Mit diesen S c h n k / und elte wieder die obigen Bezieungen für alle Schließlich ist ^^-Ag = < d u = l = 4 so daß esmt V< '< ilt 3. Zuletzt wird die Termination in Schritt 3 b d e l t , w o e i wieder zwisch eide Bsisdarstellu unterschieden werden mu Zeilenbasis: LP ist unbeschrnkt Es ist zu z e i , daß es für jede Z a l M G E einen V e t o r x G VlzAZu ibt mit cx M. Gilt dies bereits für den asislösusvektor , so ist chts zu z e i . Andernflls sei x = x + 9Ah, mit ~T~^h mit ist T c = c x + 9A 1< M nach Schritt 3 ilt Spaltenbasis: Das L ist u z u l s s i Betrachte zu d e r s e l n Basis B (P,Q das Zeilen-LP ( 1 7 ) . Alle dazu gehöreden G r ß e n rkiere wir mit dem Exponent . . z , w ä r e n d wir die Grö zum Splten- mit s kennzeichn. N c h den Definition 7 8 u
  • 66.
    TEL P L E H M E lt f o e Zummehä Is L Us lz Ls emna gilt für die Zeilebasis < gq < 7 d smit k ie f Algoritmus 5 verwendet werden. esweiteren gilt g = _/jf > UQ UQ bzw. g^ = f < LQ = I je ach F l l in Schritt 1 vo Algoritmus 6 omit eignet sich q = Qz als eintretender I d e x von Algoritmus 5. Wenn wir och —Agp1 Af zeigen, folgt mit den o e r e n Beziehungen, daß Algorithmus 5 in Schritt 3 terminiert, da dies auch A l o r i t m u s 6 tut. Nach Satz 26 bedeuted dies aber die Uzulässikeit des L s u d , da Zeilen- nd Spalten-LP äquivle s i d , die B e u p t u n g Es m ß also och A / ) = A% • [Ap] L~ev ^Q1 Ag ezei werde Wir weisen die d z u ä q u i v l e t e Bezie (^S (A i8i ch zu erechn wir ch e e i e t e r ermuttio mit 150) ÄQ2-nPl 0 Pl -Tll 1 -nPi J -nP1 -n -n 182 -n Ferer ilt für {A~} ch 151 Q2_n q2_n _n _n Q2_n 183 Nu s i d zwei F l l e ZU nterscheide Flls fol -n es -n mit ist (A -n —n —n -nQi P , d. 8 wu wie ll is f T -n —n wo -n -n T ' mit ilt T ' -n f Pl -n Q2—n -n d Bewe
  • 67.
    3 TABITA DE PLEVERF r Beweis zu all der T e m i n i o in Schritt 3 f r e S p a l t e a s i s basier der Dualitätsbeziehung zwischen beiden sisdarstellungen und eide Alorithmustyen Auch der Fall einer Zeilenasis hätte so bewiese werden können azu würde m die Bedeutung von Zeilen- d Spalten-LP vertauschn, und es müßte n c h der F l l 6 = 9o ausgeschlossen werden. er direkte Beweis schie da einfacher, zum hnliche Beweise ereits vorestellt wurde 1. S t a b i t ä t des Siplex-Verfahrens Die A u f e umerischer Agorithmen ist die Berechnung e i e r Abbildug W1 —• Rm > Bei der Implementierung auf realen Comutern ist man stets mit dem P r o l e m edlicher Genauigkeit konfrontiert Da ein Rechner nur ein Gitter von endlich viele ahlenwerte darstellen kann wird jede reelle Z l durch die nächstliegende Z a l i diesem Gitter appro ximiert. Also repräsentiert jede im Comuter dargestellte Gleitkommazah ei Intervll und ist somit a priori f e h l e r f t e t er reltive Feler eutiger 6BitGleitkommaaritmetik liegt in der Größeord vo ~16 Ein numerischer Algorithmus e s t e t us einer Reihe von R e c h o p e r a t i o e bei de sich Fehler akkumuliere könne Dies kann so ravierende Ausmaße n n e m e , da as berechnete Resultat keine v e r n ü f t i e Aussage ü e r die zu lösende A u f b e mehr erlaubt Auch der Simlex-Algorithmus leibt von diesem Problem ncht verschont. Desha wird er i diesem chnitt uf sei numerisch chften h untersucht In de bschnitten 1.3.1 und 1.3.2 werden die Begriffe der Kondition eines numerischen roblems d der Stabilität eines numerischen Algorithmus e i g e f ü r t . Wir orientiere ns dabei an den Darstellunge in [34] und 39]. Anschließed wird in schnitt 13.3 die telle im implex-Algorithmus aufezeigt, die umerische Schwierigkeite sich birgt, un worauf zu achte ist um eine I s t b i l i t ä t zu umehen. Schließlich werde in Abchnitt 1.3.4 drei verschiede ilisieru vorestellt u d diskutiert die für lex imlementiert wurde 1.3. Kondition Ein numerisches Problem r = f(e) esteht dari ei Eingabevektor e £ l ™ uf einen Re m sultatvektor 6 E abzubilde. Nun kann der Egabevektor auf keiem Comuter exakt dargestellt sodern nur durch Gleitkommazahle pproximiert werde. Also reräsentiert jeder Gleitkommavektor Wirklichkeit e i e U m g E von Eingabevektore, die Feh- lermenge von e Der o m u t e r ist icht in der Lage, zwisch verschiede Elemente von zu unterscheide. aher ist es sinnvoll zu studieren wie E durch bildet wird. ies wird vo dem Beriff der Kondition e i e s Prolems eschrie
  • 68.
    TEL P L E H M E D E I T O N 10 ( K O N D I T O N ) Sei ein numerisches roblem, l e e von und -x< f( D ist it der Bezeichnung [X sux,eX ?j für NI j§ 18 die Kondition des Problems f. Ist K ~ 1, so nennt ma das roblem ut kon- ditioniert für K > nent ma es chlecht k o d i t i o i e r t nd für = nsachgem gestellt Ferner definiere die K d i t i o eier r e u l r e atrix al (A -i 8 Die K o i t i o n eines numerisch Prolems hängt somit nicht vo em e w l t e Al ritmus sodern ist e i e E s c h f t des Problems s e l s t Wir betrachten die Kondition der Lösung vo linaren G l e i c h s s y s t e m e , d diese für S i m l e x - A l o r i t m e vo z e t r l e r Bedeutu ist Schritte 2 u SATZ 28 (KONDITIO E I E R REGULÄREN MATRIX) Für n G N sei b x, b, Ab M A, Ä, AA RnXn und A ncht singular derart daß A = A + AA b = b + Ab, und x = x + Ax, sowie Ax = b und Ax b. Die Größen mit bezeichnen fehlerbehaftete Größen und die Werte A den Fehler Ferner sei e 4 ^ nd e(A % ^ . Fall (A) < ist gilt )) 186 T3ÄÄJ BEWEIS: Nach V o r u s s e t z u g gilt AA + d somit = ||A _1 ( + AAx - AAA) A'1]] • A WA^W • AA • x + WA'1]] • AA • Ax We A"1!! • lAA|| = ü^- 1 !! • lUll • | | A A | A | | = «(A) (A) < ilt (1 - K{A) e(A))Aa 1 A- !! • lA& + « ) c(A) • x D u s fol ( = | | / | | 1-(A (A |A|| • ||x|| <A MA )) 1- {A {A nr n man f r [X] auch e n a Maß wä Ma
  • 69.
    3 TABITA DE PLEVERF tz 28 g t e i e A h ä t z u n g für den ehler des Resultats e{x durc den ler der E bedaten e(A + e(b). Insbesodere ist für gut konditioierte Matrize mit (A) ~ 1 u e(A) < 1, die Matrixkondition ) eine gute Approximation für die ditio der ösung des lineare Gleichungssystems Ax b denn nn ist e( < (A) (e(A) )). D die ondition K(A) ncht von der rechten Seite b gt, repsentiert sie die Konditio für lle l i r e Gleichgssysteme mit der Matri d e i e r e l i e e n rechten Seite 1.3.2 Stabilität Bei der plementierug e i e s Algoritmus zur Lösung e i e s numerischen Problems, wer den im llemeinen Zwischenresultate berechnet, ei d e e n zusätzliche Feler auftrete könn Das bedeutet, d ß eine Imlementierung eines Alorithmus nicht e x k t die Abbil dung / berechnet sodern eine etwas andere Abbildung / . Diese bildet nun e auf f = f(e) statt uf r f(e a . Wie dieser Feler zu ewerte ist, wird durch die Stabilität e i e s Aloritmus eschrien Es ibt zwei A ä t z e zur Behandlu der bilität vo A l g o r i t m e , die Vorwärts d die Rückwärtsanalyse Wir beschnken uns ier uf den zweite Ansatz, der für die tabilitätsanlyse der LU-Faktorisierung zur Lösung liearer Gleichussysteme verwendet wird. ie Grundidee dabei ist, de Feler des Alorithmus / durch einen erweiterten Fehler der Eigabedate zu modellieren. Dabei repräsentiert e i e Implementierung des Algorith- mus eine ganze Fmilie F vo b b i l d u n g , mit E F s o s t wäre die lementieru nicht korrekt D E F I I T I O N 11 ( S T A B I I T Ä T ) Sei f(e) ein numerisches roblem nd eine Implementierung zur Lösung von f. etze E = {e : f( f( F} eiß s t i l , falls [ « und s t i l , falls [E E] 1.3.3 nalyse der Simplex-Algorithme a bei der Defiitio e i e r B s i s nur azzahli Werte auftrete ist die ndition des ro blems "Löse ein P mit dem i m l e x - A l o r i t m u s " gerade die Kondition des Gleichung systems der optimalen, zulässi Basis3. ie numerisch stabile Lösung von dünnbesetzten l i r e n Gleichungssystemen — und B s i s m t r i z e n s i d tyischerweise d n n e s e t z t wird chnitt 1 7 se behadelt. 3 Dieses numerische Problem ist nicht äquivalent zu dem Problem "Löse ein LP" etwa mit einem Innere-Punkte Verfahren Dies liegt daran daß der Simplex-Algorithmus stets noch andere Resultate liefert, nämlich die Basi und alle damit usammenhängenden Vektoren auch wenn man sich n r den ngsvektor und den Zielfunktionswert asgeben läßt
  • 70.
    TEL IDI PLEITHME Laufe des Simlex-Algoitmus werde imme e B a s i s m t r i z n e r i e r t mit den jeweils Gleichungssysteme gelöst werde müsse Damit der SimpleAlgorithmus nicht ufgrund explodierender numerischer Fehler zusammenbricht, muß darauf geachtet werden, d ß alle uftretende Basismatrizen gut konditioniert leiben. Dazu untersuch wir die ditio vo sismtrize ch e i e m sistusch l atz 5 SAZ 29 ei D eine Basismatrix und D' = VD, mit V I + ep{rT D~l j ) ; die Basismatrix nach einem Basistausch, bei dem die i-te Zeile durch ersetz wird. D ist die ondition von D beschrnkt durch rl - JV ! 187 x wobei ' = ~ p ist BEWEIS: Nach 185 ist die ditio von D durch 1 - D ) - 188 l l l _ 1 | | • IDIHID- 1 !! = s m u ß lso die ditio vo eschätzt werde zu e d r f es der nverse 1 8 9 " ^ % " l denn es ist m i t t ~ yy-X eP c - | - Gp &p& ~V~"P && Cp 6pt6 &p ~ &£ &p& & ^p^ Also s su epr ep su xep su epr~1 -l
  • 71.
    3 TABITA DE PLEVERF -1 su _1 s u — - e v r :Xe -1 su -j—- su pe su —epr -1 worus mit 188 die B e t u folt • ieser atz bt ledilich e i e o e r e Schrake für die K d i t i o der neuen sis amit ist ncht esagt, aß die Konditio der Basismatrizen stetig ächst. ge immt aber die Stailität der versen (vg. A c h n i t t 1.73) steti ab, wenn n sie mithilfe der tematrizen ^ erechnet. Desalb ist es uerläßlich die Inverse besser die -Zerlegung) nach e i e n p d t e s immer wieder neu zu berechne Wie i chnitt 1 8 5 ezeit wird, ist dies ch us Geschwindigkeitsnde sinnvoll 1.3.4 Stabile Implementierunge N c h Satz 29 müssen "kleie" Werte r vermieden werden. Dies leuchtet ch unmittelbar e i , denn kleine Werte können immer auch von umerischen Felern bei der Berech- ng von r resultiere. I diesem Fall k n n t e in mthematischer Genauigkeit r = 0 sei was nach den Sätze 5 u 6 nicht e r l t ist. A e r ch chon "kleie" Werte er umerisch Schwierikeite sich Wird bei den Simplex-Algorithme (1) der Vektor q mit der p t e asis 1 zeile getauscht, so f r t dies zu dem Wert r = (q.Dp )^. Beim einfügnden Simlex Algorithmus wird p und beim entferende wird q beim Quotiententest estimmt thematisch gesehen, ist die Auswhl (bei Abwesenheit von Degeneriertheit) eindeutig be stimmt Vom numerischen Standpunkt aus muß man sich jedoch Alternativen schaffen, indem man die Optimalitäts oder Zulässigkeitsbedingun leicht relaxiert ieser Grund- ednke wurde 1973 erstmls von P arris v o r e s c h e n Im folgenden werden drei Stabilisierungs-Strategien am Beispiel von Alorithmus 1 vor gestellt; ihre Übertraung auf andere SimplexAlgoritmen ist offensichtlich ei dazu s > d der Vektor der Schlupfvariablen. Er soll zu s = s + (dq — sq)/Asq As mit As = DDp1e aktualisiert werden, so daß anschließend weiterin s' > d gilt Beim mathematischen Quo tiententest erfolgt dies nach S t z 9 er rg ma ——- SJ < 0 As,;
  • 72.
    TEL IDI PLEITHME Alle Varianen von stailisierten Quotiententst b e t i g e n einen Toleranzparameter 5 um den s seine Schanken d verletzen darf. Bei lex eträgt der voreingestellter Wert 1. Ansatz („Textbook" Quotiententest) Die einfachste Stabilisierung esteht darin, daß man zur A u s w l des nde q die Schan ken d — statt d verwendet4 { d% — Si — s <ü ie dee dabei ist, daß Indizes mit großem | S J eine größere C a n c e en, an die um S erweiterten Schranken zu gelangen. Für den Update wird der Wert © = (dq — s)/Asq wie gewohnt nach (1.23) ne S berechnet, damit s' auch zur neuen Basis gehört Dieser Quotiententest sichert das Einhalten der Schranken d — zu (vgl Abb. 16) E önnen jedoch zweierlei robleme auftreten: 1 Da 0 mit den originalen Schranken d geildet wird, können ivotSchritte geschehen, bei denen 0 < 0 ist, also ein Rückschritt bei der Lösung gemach wird. Dadurch wird ein Kreiseln als Folge von leichten Verbesserungen und Verschlechterungen öglich ieses Problem wird in Abchnitt 15 wieder aufgegriffen. 2. Für alle i, für die (nach einigen Iterationen) Sj = di — S gilt, bietet auch dieser Quo- tiententest keine Vorzüge me g e g e n e r dem maematischen. ies tritt llerdings nicht so äufig auf Trotz dieser Probleme ist dieser Quotiententest für numerisch unproblematische LPs gut geeignet. Aufgrund des geringeren Rechenaufwands g e g e n e r den folgenden Anstzen sollte er ihnen ei einfachen rolemen vorgezogen werden. 2. Ansatz (Harris Quotiententest) Der von P. Harris vorgeschlagenen Quotiententest [60 besteht aus zwei asen. In der ersten ase wird ein maximaler Wert Qma estimmt is zu dem s' > d — lei: di — Si — ma ma si <0 Asi In der zweiten Phase wählt man unter llen ndizes i die zu einem ma ren dasjenige aus für das | S J mximal ist ( g l Abb. 16) q = arg max l si -^——- ma <0 (1 me Gr gf 8a We
  • 73.
    1.3. STABILITAT DES SIMPLEX-VERFAHRENS 57 Abbildung 1.6: Stabilisierungen des Quotiententests. Das mathematische Verfahren nach (1.22) würde die neue Basislösung auf den Kreis positionieren. Aufgrund des geringen Winkels der Stützhyperebenen an diesem Schnittpunkt ist die zugehörige Basis jedoch schlecht konditioniert. Zur Stabilisierung werden daher die um einen Betrag ö verschobenen Schranken betrachtet, die gepunktet und mit dunklerer Schraffur dar- gestellt sind. Die Stabilisierung gemäß Ansatz 1 liefert den mit der Raute gekennzeichneten Schnittpunkt als neue Basislösung, da in diesem die zugehörige verschobene Schranke als erste erreicht wird. Dieser Schnittpunkt ist durch das Kreuz gekennzeichnet. Die Ansätze 2 und 3 wählen unter allen Schnittpunkten, die vor dem Kreuz liegen, den numerisch stabilsten aus. Dieser ist durch das Dreieck markiert. Dieses Verfahren ist offenbar das "stabilste", das mit der Idee der Toleranz S möglich ist. Dennoch birgt auch dieses Verfahren dieselben Probleme wie das zuvor beschriebene. Varianten des Quotiententests von Harris werden z.B. in MPSX und CPLEX eingesetzt [12, 13]. 3. Ansatz (SoPlex Quotiententest) Es folgt eine Beschreibung des für SoPlex standardmäßig empfohlenen Verfahrens. Wie das von Harris benötigt es auch zwei Phasen, wovon die zweite Phase mit der von Harris über- einstimmt. Zur Bestimmung von Qmax wird jedoch erlaubt, daß sich die Schrankenüber- schreitung um S verschärft. Setze also c _ j 5 , falls Si > di % Si — S sonst. Damit wird Qmax bestimmt gemäß „ f di — Si — 5i 1 Qmax = max t — : As» < 0 ^ . Anschließend wird q gemäß (1.90) bestimmt.
  • 74.
    TEL IDI PLEITHME Dieses Verfahren schließt das zweite Problem aus. Das erste kann sich jedoch verschärfen. Da nun über mehrere Pivot-Schritte die Verletzung von Schranken deutlich größer als S werden kann, ist es auch möglich daß ein substantieller Rückschritt auftritt Um dies zu vermeiden, wird für den Fall sq < dq die Schranke auf dq = sq geschiftet Wie in Abschnitt 1.5 beschrieben wird, werden solche Shifts u.U. ohnehin zur Vermeidung von Kreiseln vorgenommen. ort wird auch erklärt wie man dennoch zu einer Lösung des ungesifteten L gelangt 1. hasen des S i p l e x - A l g o r i t h m u s Um einen Simplex-Algorithmus starten zu können, bedarf es im Falle des primalen Algo rithmus einer zulässigen und im Falle des dualen einer optimalen Basis. Es gibt verschiedene Methoden solche Basen zu generieren, von denen nun einige für eine zulssige Spaltenasis zu folgendem P vorgestellt werden: min st b (1 0 ei gelte oB.d.A. ; sonst kann man die Zeile mit —1 multilizieren. Generell unterscheidet man zwischen Ein- und Zwei-PhasenAlgorithmen. Bei in PhasenAlgorithmen wird das LP so modifiziert daß eine zulässige Basis direkt angegeben und aus der Lösung des modifizierten LPs eine Lösung des A u s g a n g s P s konstruiert wer den kann. Für eine "geeignet große" Z l M bildet man das L min s.t 0 (192 0. Für dieses L ist die aus den Variablen s estehende Spaltenbasis zulässig da s = b > gilt. M muß so groß gewählt werden, daß jede zulässige Basislösung von (191) einen geringeren Zielfunktionswert aufweist als jede zulässige Basislösung von (192 für die ein Si > 0 ist. Terminiert der Simplex-Algorithmus mit s = 0, so ist x eine optimale Lösung von (191); andernfalls wurde die Unzulässigkeit des LPs nachgewiesen. Ein konkreter Wert für M kann z B . über die Kodierungslänge von (1.91) theoretisch bestimmt werden. Die Größe von M führt jedoch zu numerischen Schwierigkeiten, die dieses Verfahren für eine praktische I l e m e n t i e r u n g e n ausschließen. Bei raktischen Implementierungen werden deshalb ZweiPasen-Algorithmen einge setzt ei wird zunchst ein sog a s e L P aufgestellt, für das eine zulässige Basis
  • 75.
    DI DE P L E T H direk agegeben weden kann. A l i e d wird a s d g eine z i g e Bis für das Ausgangs-LP konstruiert In Lehrbchern findet man meistens einfache Varianten des P a s e - 1 - L s die zwar eine numerisch stabile Imlementierung erlauben, jedoch eine hoh Itertionsza edingen. er einfachste Fall eines h a s e r o b l e m zu (191) ist das L min st (193) o 0. Auch hier ist die Basis aus den Varialen s zulässig. Gilt für die optimale Basis-Lösung von (193) s ^ 0, so ist das Ausgangs-LP unzulässig. Andernfalls ist die optimale Basis von (193) eine zulässige Basis des zu (191) quivalenten L min st (1 0. Der Effizienznacteil dieses Verfahrens ist, daß einmal die Basis komplett ausget werden muß, damit alle "künstlichen" Variablen s aus der Basis entfernt werden. Das composite Simplex-Verfahren arbeitet deshalb direkt auf den Varialen des AusgangsLPs und modifiziert das LP dynamisch zur jeweils aktuellen Basis 00]. ei S = {B,N) eine eliebige Basis von (191) Dann definiert man das zugehörige ase r o l e m als min c{BxB BxB AN (195 xB wobei c(B)i = —xBi für xBi < 0 und c(B)i = sonst ist. Dieses Verfahren h t sich ls ef zient erwiesen und kommt in kommerziellen Imlementierungen zum Einsatz (zB. CPLEX [16]). Trotzdem erscheint es noch verbesserungsbedürftig, denn dieses hase-1-Problem ist ausschließlich mit Blic auf das Erreichen der Zulässigkeit konstruiert ercksichtigt aber nicht die Zielfunktion. Bei SoPlex wird daher einen andere Strategie verfolgt, die auch in der Phase-1 die Ziel funktion so gut wie möglich mitberücksichtigt. Außerdem werden wieder keine künstlichen Varialen dem LP hinzugefügt. Es sei (B,N) eine beliebige Basis von (191) Als a s e - P r o l e m wird das L min xB BxB AN (196) xB
  • 76.
    TEL IDI PLEITHME v e r w e n d , wobe k = xBi ür xBi < 0 u d k = 0 s o s t ist ieses LP behält s m i t s v i e von der truktur des AusgangsLPs bei, wie es die Basis S zuläßt. Außerdem wird die Schrank / im Laufe der Phase-1 weiter hochgesetzt, sofern es die jeweilige Basis zuläßt adurch kommt es nicht selten vor, daß ein LP ereits nach der Phase 1 gelöst ist. Per Konstruktion ist S für das LP (196) zulässig, so daß der primale Simlex gestartet werden kann. Terminiert er mit einer Optimallösung von (1.96) so ist die optimale Basis für (1.91) immer noch dual zulässig, und es kann der duale Simplex gestartet werden. Andernfalls ist mit (1.96) auch das Ausgangs-LP unbeschränkt. Entsprechend kann auch ein Pse-1-Problem durch Manipulation der Zielfunktion konstruiert werden, für das die asis 5 dual zulässig ist. n diesem Fall wird zunchst der duale implex verwendet Eine Implementierung für allgemeine Basen gemäß Abschnitt 1.2 gestaltet sich be sonders einfach. Es muß lediglich eine andere Initialisierung der S c h n k e n erfolgen und zwischen eiden Algorithmustyen umgeschaltet werden. 1.5 reiseln u n d dessen V e r m e i d u n Wenn der primale oder duale Algorithmus eine unendliche Folge degenerierter Pivot Schritte durchführt, spricht man vom Kreiseln. Das ist die einzige öglichkeit dafür, daß ein SimplexAlgorithmus nicht terminiert. ies sieht man wie folgt: Es gibt maximal Q) verschiedene Basen zum LP (1.1). Bei jedem nicht degenerierten PivotSchritt ändert sich der Zielfunktionswert des Basislösungsvektors streng monoton fallend für den primalen und streng monoton steigend für den dualen Algorithmus emnach kann die alte Basis nie wieder angenommen werden, so daß maximal ^) — 1 nicht degenerierte PivotSchritte öglich sind. amit ist folgender Satz bewiesen SATZ 30 ei Simpex-Algorithmus ht termiiert, kreiselt er ie Vermeidung des Kreiseins ist somit eine wichtige Anforderung für die Brauchbarkeit von Simplex-Algorithmen. In [26] wird das Kreiseln zwar als ein rares Phänomen beschrie ben, das in den meisten Implementierungen aufgrund numerischer Feler nicht auftrete und somit nicht berücksichtigt zu werden brauche Heute werden Simplex-Algorithmen jedoch vielfach für kombinatorische Optimierungsroleme eingesetzt, ei denen die Nebenedin gungsmatrix oft nur aus Werten 0, 1 und besteht und das LP sowohl primal als auch dual degeneriert ist Die dabei auftretenden Basismatrizen sind häufig so gut konditioniert daß die egeneriertheit auch numerisch erhalten l e i t Desalb kann das Kreiselrolem nicht m e r unercksichtigt leiben. Es gibt eine R e i e theoretischer Ansätze [17, 99, 9 103], die ü e r pezielle Pricing und Quotiententest verfahren ein Kreiseln ausschließen. In praktischen Implementierungen wer- den sie jedoch kaum eingesetzt. Ein Grund dafür ist daß eine strikte Verwendung solcher
  • 77.
    1.5. KREISELN U DESSE VERMEIDU Pivot-Verfaren in de Regel zu wesentlich mehr Iteratioen führt. Dies kann z B . d d u r c umangen werden, daß, solange ein Fortschritt bei der Lösung erzielt wird, eine besse re Pivo-Strategie verwendet und erst, wenn mehrere degenerierte Schritte nacheinander a u s g e f r t worden sind, zeitweise auf eine Kreiselvermeidungsstrtegie umgeschaltet wird Ein anderer Grund, theoretische Kreiselvermeidungsverfaren nicht in praktischen Im plementierungen einzuseztzen, ist, daß sie bei numerisch stabilen Implementierung nich mehr anwendbar sind. Sie basieren meist daauf, daß die Basislösung während des Krei seins unverändert bleibt Wie in Abschnitt 1.3 beschrieben wurde, trifft diese Voraussetzung bei numerisch stabilen Implementierungen auch im degenerierten Fall nicht immer zu, da eine leichte nzulässigkeit toleriert wird. Dadurch ist es möglich, daß ein "numerisches Kreiseln" mit leicht variierenden Lösungsvektoren und schwankendem Zielfunktionswert entsteht. Z.B. kann bei Algorithmus 1 eine Verschlechterung des Zielfunktionswertes auf treten, wenn eine Variable di — 5 < Si < di die Basis verläßt. Dies kann durch sog Shifting verindert werden, ei dem die Schrank di z.B. auf s erasetzt wird. as Shifting bildet die Grundlage für die Kreiselvermeidung von SoPlex, die nun anhand von Algoritmus 1 eschrieben werden soll. Sie ähnelt der in [12] vorgeschlagenen M e t o d e die bei MPSX zum Einsatz kam. Nach maxcycle Pivot-Schrtten ohne Fotschritt beim nächsten PivotSchritt enen Fotschritt ezwungen, ndem fü alle i, mit s* di + 5 und Asi < 0, d e Schranke di auf di « s and(1005, 10005) gesiftet wid. i ist nd(1005, 10005) ein zufälli aus de Intevall (100,10005) gewälter Wert. Für den aameter maxcycle hat sch We n de rößenodung 1 e w h r (vgl A c h t t 2.8). er Zwek de zufälligen W a l von di ist, d e e g e n e e t auch zukünftige PivotSchrtte aufzubechen. Andee Verfhren p e t u e n deshalb das gesamte LP, even tuell soga gleich zu Beginn. ies eschent jedoch e ungünstig, da so meist m h r SimplexIteationen notwendig weden als ohne P t u b a t o n : Oft at man nämlich Gl und der SimplexAlgorithmus v e ä ß t ene degeneriete cke o n e weiteres Zutun. Beim g e s t t e n LP ist eine solche Ecke n eine Sch von Eken aufgebrochen, die der Simplex Algoithmus nun einzeln travesieen muß. Entsprechend eicht es völli aus, wenn de SimlexAlgoithmus eie optimale Basis findet im g e s t t e n Fall st des zwangsläufig auch e enzge und somit schwe zu finden. Handelt es sich m e P h a s e 1 b l e , so ist das Shiften des LPs u n p r o l e m a t c h handelt es sch doch n e n schon um ein LP mit v e ä n d e t e n Schranken. Andefalls muß nach T e m i n i u n g mit de jeweils dualen Algoritmus fotgefahren weden. es w d so lange t e t s e n A l g o m u s au de unverändeten L t e m i n i t . Es g b t keinen Terminationsbeweis fü ine solche Kreiselvemeidungsstatege. In de P x i s sind jedoch noch kene Fälle aufgeteten, denen de A l g o t m u s ad nfintum zwschen den asen u s c h a l t e t , wel das LP imm weder verändet wude. es kann dadurch wete chwet weden, ndem man d e Anza maxcycle d e g e n e t e Pivot
  • 78.
    62 TEL 1. REIDIER PLEORITHME Schrtte vo de Stufte jede chalte chsetzt. Ein weiter Vorteil von Kreiselvereidungsstategen mittels Shifng gegen dem Umschalten auf theoretisch S t a t e g e n st, daß d gewählte ing-Strateg beibehalten weden kann. Außede d en s t k e odulater Seentwu öglcht. N e e n den Arbiten zu eoetischen Kreiselvermeidung g b t es kau Liteatur übe p r a k t a b l e Strategien. I b e s c h r e n Gll Murray, Sauders und W r g t eine Strate e, bei der de T o l e r a n z a r a e t e r 5 beim Harrs-Quotiententest mi jedem PivotSchrtt hochgesetzt w d . Wenn anscheßend in de zweten ase des Quotententests kein Fort schritt e i e l t wid, siften s e die Schranke um den aktuellen , und da 5 öße st als n de vorigen I t e a t o n , w d so e n Fotschrtt ezwungen. Zwei Nachtele sind b i diesem Vefahren gegen dem zuvor beschrbenen zu ver zechnen. Zum enen wchst de Toleanzparamete S mit jede Iteation. es entsprcht ab einer glechzeitigen R e l a r u n g aer Schranken, auch wenn des icht notwendg wäre. nsbesondee st nach T e m i u n g d e Lösung bis auf das geade aktuelle zulässig, und n aller Regel muß ene w e t e e P a s e angeschlossen werden. Zum anderen hren degene rierte Pivot-Schritte a. w e t e e V a b l e n n die um 5 relaxierte Schranke heran. Dadurch schränkt man die W a l f r e i e i t b i m n u m e c h e n Quotententest wiede unnötig ein. Ins besondee ist die Erhöhung von essentiell fü ine numerisch stabile Impleentierung. I 57] wird scheßlich eine Gegeneispiel angegeben, das diese K r e i s e l v e r d u n g nch funktioniert. Di Konstukton eines solchen Gegenbispiels s c h t e t jedoch r r n d o m i te Ansätze w e s r S l e x zugundegelegt wuden. 1.6 ricg-Straten Be de Aufstellung der S i m l e A l g o i m e n wude im jeweiligen Pricing-Schritt ledg- ch e Bedingung fü w ä b a r e ndizes genannt. S m i t snd vele Varianten von Algoith- en öglch, die sch in der konketen Auswal, der sog. Pricng-Strategie, unterscheiden. i ist geade sie von entschidende Bedeutung ür die Anzahl von Iteratonen und somi für di Effizenz von i m p l e x A l g o r e n . Es ist jedoch keine Strateg ekannt für alle L P P o l e e a ffizentesten a t e t . eshal weden nun ene e von ng-Srategen vogestellt. Der nfchheit h a l e r gehen w dazu au das L 1.1 und die Algorithmen 1 und zurück. Die Eweiterung au e A l g o e n mit allgemener Basisdastellung ist prblem los öglich, fordet jedoch ine k o t e e Notaton e d e zugundelegenden deen nu v e c h l e n w r d e .
  • 79.
    1.6. R I C G I 1.6. o s t - V l a t i o n Picing Dies ist das V e h r e n das usprünglch von Dantz geschlagen wude. Beim e n t r nenden A l g o m u s p= mm{f < 0} und beim fügenden A l g o h m u s q= m i n j ^ - di gewählt. F einen dualen A l g o h m u s bedeutet dies, daß d am strksten letzte U glechung f den PivotSchrtt heangezogen d. Beim primalen hingegen wird der In dex mit den edigsten e d u z t e n osten g e l t . Desalb st deses V e h r e n auch als eduedcost P n g b n n t . 1.6.2 tial Picing Das patial P r n g stammt aus der Ze n der C m p u t e nur übe wenge ilobyte an auptspechr vefügten. Um dennoch größee P o b l e e lösen zu können, wude ei sog. o u t f c n s a t z verfolgt. Dabei wird jewels nur Tel der Vektoen der Be ngungsmatr im Hauptspeche gealten. Wenn deses T L gelöst st weden d e ichtbaschen V e t o e n durch ande aus dem Massenspecher setzt. Des w i d so lange teiert s das gesmte L ausgepriced" und das Gesmt-L gelöst ist. Als P n g ateg eTLPs eist das ostvolated P n g engesetzt. Auch o n e Hauptspeichezwänge at dese Pricng-Stategie ihre Bedeutung zur R duktion des echenauwands. tatt tatsächch nen Teil des Ps auszulagern, beschrän man das Pricing übe ene gewsse Anzah von t e a t o n e n auf ne Temenge der Ncht b a s s v e t o e n . Dementspchend muß auch der P n g V e t o r nu fü diese T e e n g e von ndizes beechnet weden, wodurch de Rechenaufwand mitunte stark reduziert weden kann. nsbesonde für LPs mit m führt des zu erheblchen Beschleungungen. Das partial P i n g kann nur für infügende Algorhmen eingesetzt werden da fü ent nende A l g o r i t e n stets der gesamte Vektor Ag berchnet werden muß. Damit gewinnt ie Wamöglichkeit zwischen ener zelenwesen und ene spaltenweisen Dastellung de Bass zusätzlich an Bedeutung, denn s e emöglcht es auch den dualen als efügenden A l g o m u s zu wenden und dadurch das p a e l l e P n g enzusetzen. 1.6.3 ultiple Picing Auch das multiple P r n g zelt auf eine R e d u z u n g des Rechnenauwandes fü die Matri V e t o r u l t p l i k a t o n b i m infügenden A l g o h m u s . Es bas auf de Beobachtung daß e n beim ricng w ä l b a r Index mi hrchnlchk auch n de chsten te aton lba blebt.
  • 80.
    KAPITEL 1. REVIDIERTE SPLEX-LGORITHMEN unchst w i d ein Satz von wählbaen ndizes sog. Kanddaten bestimmt. Von ihnen wir eine (meist nach de ostviolated P n g - S t a t e g e ) fü den nchsten votSchrtt benutzt. In den folgenden PivotSchrtten w i d das Priing au die z u o r gewählte Kandi d a t e n e n g e beschränt. Des eduz ede den R e c h e n a u a n d zu B e c h n u n g von g. 1.6.4 rtial ultiple ricing Eine wichtige P i c n g S t a t e g e e b t sich aus der Kobination de beden zuletzt genann ten Metoden. Es ist das p a a l multple P i c n g , bei dem zu Auswal de Kanddaten menge nu ein Teil de Matrix benutzt wird. Es st dabei esondes ünst wenn man be jedem P r n g S c h r i t t die Kandidatenmenge wie folgt neu aufbaut. an nimmt alle noch wählbaen Indizes de alten Kanddatenmenge und durchsucht einen Teil der R e s t a t nach w e t e e n w l b a e n ndzes. Dese weden de anddatenmenge zugefügt. Mit desem Verfahren d schnelle als beim multiple P i c n g die gesamte Nebenb dingungsatrix durchsuch was n de Regel zu ene g e n g e e n t e a t o n s z a l ührt. De Rechenaufwand s c h n t etwas als beim p a i a l ode multiple P n g zu sein, was man jedoch durch npassung de öße de a n d d a t e n e n g e und de le pens en kann. 1.6.5 Steepestedg ricing Das steepestedge P i c i n g V e h r e n begründet sch a besten aus der geoetrischen t e e t a t o n des P n g s b i m imalen implex gl. Abb. 1.7). B e t c h t e das mi cTx (i.i) d, den pimalen A l g o u s in Zeilendastellung (Algorithmus 1). S S (P Q) eine primal 1 zulässige Bass. Beim r i n g soll aus mehreen Richtungen x^ Dp e entlang denen ne Verbesserung öglich w ä e , ine öglchst günstige gewhlt werden. D e steepestedge Picing-Stategie lt diejenge aus e im Sinne des e l f u n o n s t o stelsten st. Dazu weden d e W e t e ff = | | c | | durch J l l ll o = I (1.97 l — I getelt und unte esen len d das axim ausgewlt P 1 (1.98 ax — fi < 0 2 f Die W t e — nd p o p o o n a l zu Quadrat des Cosinus des W k e l s z w c h Zielfk- Pi onsto und öglch Fotschrttschtung und geben somit d t e t an.
  • 81.
    1.6. R I C T E G I E N Abbildung 1.7: Das steepest-edge-Pricing rhindert, daß aufgrund unterschiedlicher Normierungen de Richtungsvektoren A#W eine weniger steile Richtung gewählt wird. Diese Situation ist in der Abbildung dargestellt. Obwohl Ax^ einen geringeren inkel zum Zielfunktionsvektor —c aufweist als AxW s m c i di e zugehörigen reduzierten Kosten höher e B e c h u g de erte pi ach (1.97) e d e t e e i n h h e R e c h n a w a d . jeden W r t müßte ein l i a r e s Glechungssystem zur Bestimmng n AxW gelöst un darüberhnaus ein Skaarprodut b c h n e t weden. Aus dese Grund galt d s steepest edge P n g ang Zet als zu aufwendg obwol bekannt war daß es zu e e rheblche Redu de ahl der votSchritte fhren kann st als Goldfarb u Red U p a t e Foel die Göße pi m u l t e n , wude es zu e rakkable V e f a h r n [ 7] Es weden nu die UpdateFomel pi f de i m l e n Simplex in Z l e d a r s t e l l u n g aufgestellt. Dese Darstellung ubt e essees e o e t c h e s Vestän ls de n [2] beschrttee W ei Z Q) d ass nach e i m Pvot-Schrtt mi Indzes p u d q. Nach (1.1 st die neue B p = VP > mit V = I epqD^1 — £) u nach (1.89) lt V-1 = I e *u p x^ Z ann glt mi 'x® ^ T = p}: 1 'j( ~ - -]fß x® f • x^ i p] e ££ f x^ sost.
  • 82.
    66 KAPITEL 1. REVIERTE SPLEX-LGORTHMEN a r u s e b t sch -^ (1-99) ^ mi x = x^ ( L100) fH | ^ - i +(|) Also muß r das A t u a e n der Multplkatoen pi bei asistausch zustzli- ches Gleichngssyste nmlich £ = AxTp gelöst w e d e . Fü den all r de A l m u s x durch Ah durch A / esetzt. e entsprechede F o e l de ü d e A l t m u s ufzustellen, betrach te wiede den Spezlfall (1.2) u g zu e Fo 1.30) de amit kann x b e c h n e t wede ls XN ep ~ß r £ glt ^ 1 N. ü de n f ü d e A l g o h m u s mi S p a l t e n b i s bezechne q den tetede dp de us de asi u s t e t e d e n Index. Diese e t s p r c h im tfernede Algmus mi lenbs q Bp q. Deshalb st Dq ßp woraus mi 1.30) A AhT u 4 7B % ep7ß folt- r ie {q st deshalb nach 1.100) P! » *&+(%;) 1 W ft2|*^, ££ 1.1 De zustzliche Rechaufwand für steepest-ed P i i g beim n f g e d e n Simplex ist lso d e ösung es Glechngssyste r £ d d e B e c h n n g de S k a a r o d u t e sorn A st. b w o l d e U p a t e F o e l wege der besse eometisch schauung anhan de rimale Algoi kelt wuden, nn e ebso e dule A l g m e ngesetzt w e d e . Des g l t uch e Algoritmen mi l l e i e B s . D b e i müsse ie W e t e pi jedoch ich a k t u l i e werden, wenn k sstusch fol wel e Varble hr na hr ande Schrank chob wude.
  • 83.
    1.6. RICTEGIEN 1.6. rici Beim Devex cing handelt es sich u eine Appoximat des steepest-ede P r n g be de ei ichst inge Rechnaufwand anällt, indem Multplkato pi ch exakt bestimm w e d e . Es wude P. Harr rgeschag ] ü de e f ü g d e A l m u s anstelle 1.1 f o l d e Upate Foel wedet5 fH + ( ! £ ) W 1-1 ür i q kann weite 1.12) w e d e t weden. Man erhält (1.13) durch enfaches W g - sse des Smmanden n (1.101 de ösung des zusätzlche G l e c h n g s s y s t e s u e B e c h n u n g der Skalarpodute e o d e r n wüde. E n t s p c h d e r h l t an de r n d e n Simplex r i ^ p d e U p t e F o e l Pi + (j 1-1 wobi f r i = ede 1.99 w e d e t wid. Die U p d t e F o e l n des Devex P r i n g s führ zu ß die Gewichte pi stetig an- wachsen. m dieses Wachstum zu begrenzen, wede sie auf 1 zuckgesetzt, sobald e Gewcht e n Schwellwe ü b e c h r t e t . Es hat sch n Schwellwe 06 bewährt. 1.6.7 igh ricin W e das steepestede ode Devex Picing utzt a c h da weighted P c i n g r ä f e r z p a - r a e t e pi fü e PivotAuswah m G e g s a t z zu de erstgnannten werde iese s t c h beim art des i m p l e x A l g m u s festgesetzt u ncht b jeder SimplexItera ak- t u l i s t . olch Verfahren eignet sich, wenn man über ne gute H e u s t i k v e r g die I n f m a o e zu lieern kann, welche Bedingnge bei de optimlen Lösung mi Gleichht efüllt se wird. Es ö n n n ber a c h Gewchte r allgeeine Ps onstuie weden, e des Abschntt 1.8. ch Kost r S a r t b s beschrebe d. arris spglic i = j , [^-zM q vorgeschlagen. Diese Approximation e r s c i n je als (11 sic st mit SoPlex als die schlechtere erwiesen.
  • 84.
    68 KAPITEL 1. REVIERTE SPLEX-LGORITHMEN 1.6.8 Hybrid Prici Beim hybriden Pricing vrsucht man, a h ä n g g vom zu lsende LP, der B a s r s t e l l u n g d des Simplex-Typs den eweils b e t e Price t a t i c h einusetzen. In eine vorläuf gen Implementierung für SoPl wi beim e n t e r n d e Algorithmus das s t e e e s t e d g Pricing eingesetzt Beim e i n f ü d e impl w i d da ti multipl Pricing v w e d e t wenn die Dimension de smatrix ei n die A der sonstig eken i andenfalls kommt d s D v e x Pricing m Einstz. Besse äre j e d c h ei fan, die S t t e i e u s h namich a n a n von Lafzeitdate urcht 1.7 Lösung linearer Gleichungssysteme mit der Basis- atrix Dantzig formulierte den impex-Algorithmus mit sog. T a b a u s . In d i e r F u l i e r u n g b e d r f es keine expliziten Lösung von Gleichungssystemen mit der i i x , denn ein Simplex-Tabau besteht i aus dem Produkt us der Inversn de ix und der gesamten enbedingungatrix. Nach jedem B i s t u s c h w i d de mte Simpex-Tab urch Multiplition mit V~x nach (189 t l i e t Diees Vogehen h t zwei Nachteie g e n ü r dem hie vorgestellten reidierte Sim- plex. Zum einen akkumuliere sich m e c h e Fehle die uch dann nicht behob we den, wenn sich die Kondition de asismatrix wieder v e s s e r t . Zu a n d e n b ö t i g t der Simpex-Algoithmus T a b f o m w e t l i c h meh Rechenopetion pei chetz Für de revidierten impex-Algorithmus stellt sich ls Probem wie die Lösung von Gleichungssystemen m ten vorgenommen wede ollte Basismatizen beim implex-Agoithmus enthalten typicherweie e i e n großen Przentsatz von E h e i t k - t o n . Diese mmen bei e i e r s t e n w e i n arstellung von chlupfvariab u bei ei Zeienba von den Schanke der Vaablen. Die ande S t e n ode Zei der B a s i m a i x sin alten ode Zeilen der N e b e n b e d i n g n g i x d enthte mit a. a c h nur we von Null verschiede Eemente NN Bmatizen d als ia. nicht symmetrisch d dünnbesetzt was so vie heißt wie s l h n ich us schwidigkeitsgrden, beim g e b e n e n numerchen Poblem nur die NNEs der Matrix statt ein zweidimesional Feldes u speichern" (dichtesetzt. Offen ba andet es sich hiebei m k e i e s t n g e Defiition. Vielmeh hängt die D n n b s e t z t h e i t ei M i x von de e w t e R e c h c h i t e u r 6 d den ewhlte tepe ur 6 Ein Vektor- oder Parallelrechner kann linear abgespeicherte Daten wesentlich schneller berechnen als bei einem unstrukturierten Zugriff auf den Speicher. Dementsprechend kann für derartige Architekturen ein Algorithmus auf dichten Daten effizienter ausgeführt werden als ein Algorithmus der auf dünnen Daten operiert und weniger Operationen ausführt
  • 85.
    17. LÖSU LINEARER GLEICHUNGSSYSTEME MIT DER BASISMATRIX 69 R e p r ä s t a t i o n d r N N s e i n r M i x ab. eute f g t e l l t e LPs s f a t imme nn etzt nabängig von der R e c h c h i t e t u r Es g t zwei Anätze zur u m e c h e n ösung von linearn Gleichungssystemen n i c h direkte u d iterativ ö . Wie i Abschitt 7 aufgezeit wird, rscheien letzte den rste Blick vieverspreched scheiden jedoch aus da ihre Konvergen nicht g n ü g n d abgsichert werden kann. Dehalb werden bei Impemetierung des Simpex-Algorithmus direkte M e t h d e eingeetzt. ie werden in den A b c h i t t e n 1 . 2 und 17. diskutiet. In letzteem wird auch die für SoPlex impementierte ersion ein LU-erlegung de Ba- ix beschiebn. In A b c h i t t 17.4 w i d die Lsung von Gleichngssystemen ei ggebene L U - e r l g u n g de ix b e c h i e b n . Aus Effiziengrnde t e angezeigt eine L U - Z r l e n g der B s i s i x für ein lge von P i v o t c h i t t e tzen. Zwei Methden, die t n , wede chitt 5 votell 1.7 rative Lös Itertive Löse für l e a r e eichungssysteme bess i t e t i v (daher der N m e eine Approximation de ö s u n g s v r s bis die ewünschte Gnauigkeit erreicht wird. In jede I t e t i o n geht meist ur die Matrix der Vektor der rechten eite d die ktulle Appr ximtion de Lösungsvektrs ein, wdurch der Speicheed im G a t z z d i k t e L n für d n n b e t z t e M a i z e n b c h ä n k t bleib ür die Impementierung von implex-Agorithmen erscheint ein weiteer P u n t vor- teihaft. G i t es etwa beim duaen Simplex noch „ehr sark" vrletzte Ungeichungen, erknnt man diee uch wenn die Genaukeit des k t u l l n B s l ö s u n g k t o r s noch ng ist. Mit Fotschreiten der Lösung des LPs kann die G n a k e i t der L ö s u n g s k n angepaßt werden. Dabei kann de Lösungsvektor der vor implex-Iteration ls t w e t für die i t e t i v e Lösung de Geichngssystems für den neu asslsungsk to tzt weden. iete iteative L e ssere Ansätze zur llelierung als die wärts- u d rtssubstittion, da ihnen w e n i r Sequetialität i h ä n t ist [83 8, 66]. G r u d genu also, die A n w e b a r k e i t i t e t i e r Geichungssystemsl für den impex-Agoithmus u untersuchen. Dazu be w r ein kurze E i n f r u n g die M t e i e ür ei fassde blick sei z a f [ 4 6] wien. E gibt zwei Anätze für iteativ eichngssystem Klssche tetionfa b a i e n af e i r Fixpktitetion xfc = Gxk + gmit ~lB ~lb (110 wobei Q~l ein (regulär Appoximation von B~l ist. Offenba nach Konv x 1 Xfc Xk die Lösung des Gleichngssystem denn aus x = Gx + g = ~ (B folg Bx = b. Verschiedene I t e r a t i o n s v f a e n nterscheide ich in der W von Q chon beim einfache F l l symmetrche positiv d e i t e r M i z e n B k o n v r g i e n d e r t i g e tetionfa j e d c h nur falls der S p e k t l r d i u s mit cheide ie
  • 86.
    KATEL 1. REIERTE MPLEX-ALGORITHMEN für die A n w e g n SimplexAlgoithme us d e n für l l m e e B i z kei Konv g a a n t i e t weden. 7 Modeere teationsfahr nd Varianten des V f a n s der konjgierten G d i e ten. Ihr V t e i l i t , aß für b e l i e g e s y m m e t c h p o i t i definite Matize die Konvrgen nachgewie weden kann. Die o n v c h w i d i k e i t hängt j e d c h von der Kondi tion de ix B ab xk xk)< ^3ß X o x 0 ) (110 lJ Erweiterungen von Konugierte-Gdienten-Methoden a s y m m e t c h e M i z e n ba i e n a der S y m m e t i e r u n g de Gleichngssystem = B (110 Die rschechtet j e d c h die K o n v g c h w i d i k e i t , denn E n e erbessrung der Konvegenzgeschwindikeit von K o n i e t e n - G r a d i e n t e M e t h d e n beteht in der sog. Vorkonditionierung. D w i d die M r i x B von beiden Sei ten mit e i r Vorkonditionierungsmatrix C zw ultiplizie Die Matrix C w i d s ewählt, d ß mit ih die Geichungssysteme direkt ösbar s , und die Kondition von BCT klein t Für Gleichungssysteme die aufgrud i h r r Hrkunft (etw der Lösung partieller Dierentialgleichungn) eine vohersagbare Struktur a b n , önn wirkung volle poblempezifische rkonditionie n t w i c t weden. Für den satz in e i e m llgemeinen Simpex-Agoithmus bed es jedoch eines rläßlichen allemeingültig orkonditioniers Die ntsäche r einer Approxi mation ei dirkte L ö r s amit llte de axi ew ein vollständi dite de ten. Auch wenn iterative Löse für Simpex-Algoithmen ausscheiden, könnten sie den- noch für die Lineare Pogammierung von Nutzen sein. Der H a p t f w a n d innre-Punkte V f a h e n beteht i de ösung von Gleichngssystemen mit de M i x ATA, wobei A die N e b e n b e d i n g u n g t i x ezeichet Diee ist nbar symmetrisch und e bleibt zu unte suchen, ob damit nügend Sruktur vorhanden i m ein geeigneten Vorkonditionierer d e f i i e n . Ein mögicher Vorteil bei de Anwendung iteratier öser läge i de sse n P l l e l i s i e b a r k e i t und in der öglichkeit, inexate Methoen zu r e s i e n , d die G n a u k e i t de Lösung von Gleichngssysteme de k t l l fodess i n n l de n n P t e f a a n s s n . 7 Es gibt sogar eine Publikation [37], die eine Implementierung des Simplex-Algorithmus mit dem Gauß Seidel-Verfahrens (Q ist die obere Dreiecksmatrix von B) beschreibt Allerdings ist diese Implementierung eher ein Kuriosum als ein zuverlässiger Algorithmus
  • 87.
    17. LÖSUNG LINEARERGLEICHUNGSSYSTEME MIT DER BASISMATRIX 1.7.2 Diekte Metoden Bei d i t e n Lösungsvrfahn wird die M i x ein P r u k t von Matizen trans- formiert, mit denen Geichungssysteme dire st wede können. Beim Simpex- gorithmen k m m e n ei zwei Typen von Mtrizen zum Einatz, Rang-1Updte M r i z e und Deiecksmtrizen. Andee d i t e Lösungmethden, wie z.B mit Gi R o t i o n n ode HousehdeReflexionen [4] werden trotz bssere m e r c h e Egen schaften fgrund ihres ö h e n R e c h e n a a n d s u d der schechte A u s t z n g de B e e t z n g r u k u r icht wedet RangUpdteMize ab die T ei(ri (110 u d wurden b e i t s für de B a s u s c h (vgl. (1 e i n g e h r t . Die Invrse solcher tri zen kann nach (189) d i r e t anggeben werden, aß sie ich zur Kontruktion diekte sungfa e i g n . Die ksseitige Multipikation e i e r Matrix B mit V e r g i t die Matrix = B ei(rT die us urch A u s u s c h der lten Zeie mit j1B sultie H i s r i s c h wurde für den idiete Simplex-Agoithmus z c h s t die og. Produkt fom der Invrsen (PFI) erwendet 5 63] Bei de PF w i d die h e i t a t i x durch d a x i m l nfache P u k von R a n g U p d a t e M i z e i die M i x anfomiet Vn Stimmen ei e i g e Zeilen von B mit de Einheitmatix überein, so bedar ntspe- chend wen Matrixmultiplikationn. Die eihenfoge der u s e t u s c h t e n Zeile t dabei tcheide für die m e c h e bilitä d de p e i c h e c h de P I Beim Simplex-Algoithmus werde die Vektoren r/ ohnehin für die Update echnet o daß die PFI als die für Simplex-Algoithmen naürliche Wahl r s c h e i . Im fe de Simplex-Algoithmus immt j e d c h die numeische Stabilität der I ab und de enöti te S p e i c h e r a a n d zu Deshalb m ß die P I von eit z Zeit mit ei ss Pivoteihenfog e c h e t weden. Untersuchunge aben gezei aß die PFI a. e i n öß Speicherbedf afweist ls die im nächsten Abschitt dargestellte LU-Zerlegung 11 a der Speicheredaf et wa der Berechungzeit zur Lösung von Gleichungssysteme enspicht, v w e n d e n heutig mplementierung des Simpex-Algorithmus die L U - e r l e g n g de B a m t r i x Dennoch blei ch die PF weitehin inteessant denn R a n g U p d t e M i z e wede m i t n t e für uschchitte w e d e t vg b c h i t t 5)
  • 88.
    KATEL 1. REIERTE MPLEALGITHME 1.7.3 LU rlgu ei ei eichngssystem der F Bx (110 de (1110 wobei £ R nx x, £ R W n n nichts weite geagt wi eie im f d e ize n e e c h e d e Dimenonn v o u s e t z t Bei de L U - r l n g oder F k t i s i e r u n g ) e i r r g u l Matrix B werde Pe ationizen P owie ule Mizen L d U timmt d e t daß = L (1Hl gil, wobei L PLQ eine untere und Ü eine o b e Dreiecksmatrix ist schlie önn eichngssysteme der F (110 mit f d e peationn g wede 1. Subtitution: Ly = b 2 Sustittion L e Ux = y eche st man Geichngssysteme der F (1110 mit 1. s-Substitution =b 2 Substittion =y Die P e a t i o n von L d U w i d d i t i de S u t i t t i o n A g o i t h m u s nteie Die L U - r l e g n g von geschieht mit G u ß c h e Elimination. abei w i d die M i x e i r F l von a n f a t i o n t e o g n , d e t daß = B1^B2 (111 E n e T a n f o a t i o n wird PivtSchri nannt 8 Bei jedem Pivot-Schitt weden ei Spa te von L ze d die P e a t i o n i z e f g b a t Die etzte lte von L t ei heit ür jede Tranfrmation s l , . . . , n — w i d z ä c h t ein NNE, etwa B?a^a, de a k l l n M t r i x , das sog. PivotElement gewählt Die ei is heißt die Pivot-Zele und die Spalte j die PivtSpalte der s-ten T r a n f r m t i o n . r p e k t i v e J bezeichne die Menge der Zeiln- bzw. S p a l t e i d i z e aus d e n b s zur te T a n s f o r a t i o n noch kein PivotEleme e w ä t wurde omit lt I1 = { l n } = J . chielich weden die P e t i o n s m a i z e n usehe von P = Q d de L U - r l n g a f g t e l l t 8 Es muß also zwischen Pivot-Schritten beim Simplex- und beim LU-Zerlegungs-Algorithmus unterschie den werden. Ursprünglich stammt die Bezeichnung Pivot-Schritt jedoch aus der LU-Zerlegung. Der Grund auch beim Simplex-Algorithmus von Pivot-Schritten zu sprechen, liegt bei seiner ursprünglichen Formulie rung in Tableau-Form, wo die Iterationen eine größere Ähnlichkeit zu den liminationsSchritten bei der LU-Zerlegung aufweisen
  • 89.
    7. LOSUNG INEARER GLEICHUNGSSYSTEME MT DER BASISMATR ALGORITHMUS 7 ( L U - Z E R L E G U N G ) Für n: Schritt 1 (PivotAuswahl): Wähle ein P i v o t E e m e n t B?aj 0, is G nd s Schritt 2 (Permution tze s < nd Schritt 3 (LLoop) ür i G I s S t z Li s/ Schritt 4 etz p+1 / s ^ | .S nd +1 { Schritt 5 (UpdateLoop Für i G Is+1 j Setz B + 1 B?, - Lie • B° Für i 0 J s+1 n}: Stz ^ 5? Bei Terminatio von Algoithmus 7 sind nd Q P e m u t a t i s m a t r i z e n und = PBQ ist eine obere Deiecksmaix, wähend L PLQ ntere D e i e c k s g t a t ha lls die Matix ingula chlä ei eine I t e a t i chitt fehl Die Matrizen B b s Bn werden nicht alle neu zeugt. Stattdessen wird eine Abeit matrix in jeder teration manipuliert; die jeweils vorige geht dabei v e r l e n Deshalb wi die zweite Schleife in Schritt 5 die ediglich alle Elemente, die nicht zur aktiven Sumatrix gehören, in die nächste Matrix ü b e t r g t nicht explizit durchgeüht Dass lt a c h für lle Matixelemente die z w e e n L^ 0 ände eien 1.7.3.1 Numerische Aspekte bei der Pivot-Auswahl ur Untersuchun de mechen t a i t t in analys gl chnitt die m de M a i x = LÜ (111 a b c h ä t z t weden wobei L und U die umerisch gewonnenen F e n ezeichnen ür die emente von H kann folgende A b c h ä t z g gewnnen weden 01ema (111
  • 90.
    KATEL 1. REIERTE MPLEALGITHME obei e die Maschinenauigkeit eichnet 39] Somit muß da c h m de Maix emente wähend de l i m i n a t i z e s s s k n t l l i e t weden Bei der Pivot-Auswah ietet ich eine Mglichkeit das Wachstum de K o z i e n t e n während des iminationspozesses zu teuern. Offenbar f ü e n kleine Werte ^ in Schritt 3 ehe zu einem Anstieg der Koeffizienten als groß. erschieden stab ian- ten des LU-Zerlegungsalgoithmus unterscheiden ich dahe dain, mit welchem Aufwand nach betagsgroßen Pivot-Eementen gesucht w i . Beste S t a i t ä t bietet natürlich die og. vollsändige PivotSuche, bei der jeweils das betragsgrößte Element der ativen Ma rix BfsJ gewählt w i . Dessen Betimmu bedeutet ab ft einen nicht azeptablen Rechenafwand, daß meist weniger s t e n Vaianten z Einsatz kommen. Oft wird da betragsgrößte Element einer Spalte ode Zeil gewäht (partielle PivotSuche). Wie im folgenden Abchnitt eschieben weden ei d n n etzten Matizen ch weni ene Anfoderuen tell 1.7.3.2 Pivot-Auswahl für dünnbesetzte Matrizen Während eine iminatinsschittes kann in Schitt 5 ein lemente B? +1 werden für das Bf 0 g a t Derati Elemente heißen Fülelemente Damit auch die Faktoren L und U d ü n n e t z t l e i e n da eachtet weden da öglicht wenig Fülemente enttehen Das folgende i t das Standardeispiel für den entscheidenden Einflß der Pivot-Auswah die A n z h l vo Fillementen ä h t man bei einer Matix mit de B e e t z g s s t r u k t u r V als Pivot-Eement •, o entsteht nach diesem Eliminatinsschritt eine dicht setzte Matrix Wählt man hingegen ein andere Diagonalelement, so entteht kein weiteres Fillelement Leider ist die B e t i m m g der Folg von Pivot-ementen die zur g i n g s t e n Menge vo Fillelementen f ü , ein P-schwer oblem [10] D e h a b urden rschiedene Heuri tiken entwic m den F l l g i n haten. s g b t zwei grundlegende Ansätze zur Fillminimierun Der eine steht darin, die Matrix worder Ftorisierung so z permutieren daß anschließend die Diagonalemente als Pivot-emente verwendet werden können und möglichst wenig Fülelemente aftreten Ein Beispie hiefür sind s Skyline Slve bei denen eine Permtation de Zeilen und Spaten de Matrix esucht wi daß lle NNEs „nahe" an der Diagonalen liegen. Dadurch i t bei der anschlieenden F a t o r i s i e r u g gewährleistet daß sich der Fill uf einen engen Beeich um die Diagonale (die Skyline) beschänkt. Diee M e t h d e e i n e t sich b e n d e r s für den symmetischen F l l , wenn zustzlich noch eine peziell Struktur de M a i x usgentzt weden kann (etw vo F i n i t e e m e n t e G i t t e n )
  • 91.
    17. LÖSUNG LINEARERGLEICHUNGSSYSTEME MIT DER BASISMATRIX Der zweite Ansatz ist die lokale Fllminimierung. Dabei weden während des liminati nsvorgan die Pivot-Elemente gewählt, daß in jedem Schitt nur ein geringer Fill z waten is Für M a i z e n hne bekannte Strukur haben sich kale Methoden als ü n t i ge wiesen. Seien rf nd cj die Anzahl der NNEs in der i-ten eil bzw de j-ten pate de aktiven Matrix BaJa im s-ten Eiminationsschitt Dann ist m|- (r| )(c^ — ween Schritt 4 eine o b r Schrank für die Anzah vo Fillelementen die ei de Wahl vo Bf ls P i v o t e m e n t im s-ten Schitt entstehen kann Man nennt m?„ die MarkowtzZahl de Eementes B Lokale Pivottrategien wählen als PivotElemente s c h e mit ringe Markowitzahl. Verschiedene ianten unterscheiden sich darin, wieie Afwand für die Suche nach ementen mit n i e d g MarkowitzZhl getieben w i d Bei der Fillminimierug muß j e d c h auch die Stabilität der LU-Zerlegug berksichtig werden Wie in 17.3. beschrieben müssen dafür Pivot-Elemente mit möglich großem B e t r g gewählt werden. Es g t also, einen Kompromiss zwischen Fillminimierung (kleinste MarkowitzZahl) und Stabilität betragsgrößtes NNE) zu schließen. In der P a x i ha ich dafür die Schwellwertpivotsuche bewährt ür einen v o r g e n e n Schwellwe 0 < u weden als PivotElemente ll NN r l b t , für die > ma 11 gil ür u = 1 entspicht dies der partiellen PivotSuche K e i n e e Werte von u r l a e n die Wahl von P i v o t e m e n t e n mit kleinere Markowitz-Zah glicherweie j e d c h Koten der S t a b i t Als ti h a e n ich Schwellwete 01 wieen 1.7.3.3 Implementierung In den v o e n beiden Abschnitten wurde de Rahmen für die Wah des sugsvefahren für line Geichungssysteme im Simplex-Algoithmus bgestect. Nun oll die für So- Plex g e w ä t e Vaiante nd deren mpementierung vorgestellt weden. Dabei git es zwei A s p e t e z b c h e i b e n , in denen ich Unterschiede verschiedener m p l e n t i e r u e n vo LU-Zrlegungsalgorithmen für dünnbesetzte nicht symmetrische Matizen m a n i t i e r e n Die ist z m einen das zugrundeieende Datenlayout zur Speicherung der dünnbesetzten Marizen und zum anderen die S t r t e i e bei der Suche nach ü t i e n P i v o t e m e n t e n im inne der Schwellwetpivotsuche E gib eine Reihe unterschiedicher Speicherschemata für n n e t z e Matrizen 39, 89]. D a e i nterscheidet man zwichen der Speicheru der NN in Feldern nd ihrer peicherung in verketteten Listen Von der Komplexitätabschätzng her sind für LU- Zerlegugsalgoithmen, bei der F l i e m e n t e entstehen nd ander Eemente Null weden können, doppe verkettete Liten b o n d e r s geeinet [89]. Auf heutien Cachechitekt en t e t e n ab ei einem L i t e n a n t z häufig s CacheMisss 9 f da kein gul Ein Cache-Miss führt dazu, daß der Prozessor seine Arbeit einige Taktzyklen unterbrechen muß bis die geforderten Daten vom Hauptseicher nachgeladen w r d e n . D a d r c h verlangsamt sich di earbeitngsgeschwindigkeit
  • 92.
    KATEL 1. REIERTE MPLEALGITHME HstartDL] HStartEj] Feld num[i] max[i] Abbildung 1.8: Speicherlayout für di NNEs der Zeilen der Arbeitsmatrix beim LU Zerlegungsalgorithmus von SoPlex: Alle NNEs aller Zeilen werden in einem gemeinsamen NNE-Feld gehalten. ür die ite Zeile wird jeweils ein Zeiger s t a r t [ i ] a f das erste NNE in dem Feld sowi di Anzahl num[i] der NNEs der i-ten Zeile geseichert chließlich wird di Anzahl der NNE i Feld bi r nächsten Zeil in max [ i ] verwaltet peicheug lg D e h a b urde für SoPlex einer Speicherung in Feldern der Vrzug ggeben, ähnich de in 92] bschriebenen. Die A e i t m a t i x w i d zeienweise a b p e i c h e r t : Die NN all Zeilen weden in einem Fel ltet. Für Zeile i w i d in s t a r t [i] ein Zeiger da erste NN in dieem in num [i] die Anzahl der NNE des Zeilenektrs und in max [i] die Anza de im f ü g b e n NNESpeichelätze i ur ächten Zeil peiche (gl Abbd 8 s weden als nicht nur die NNEs sndern auch die cher dazwischen vewaltet: Die D i r e n z max [i] - num [i] b c h r e i b t unbenutzten NNE-Speicher, in dem Fillemente für die te eile erzeugt weden können. Entstehen hingeen Fllelemente wenn max[i] == num[i] w i d die betffene Zeile an da Ende de benutzten Teils des NNEFldes kopiert w ch genügend peicherplatz für die Fill-Elemente breitsteht (andernfalls w i d das Fed rgrößrt). Dabei wird der von de verschobenen Zeile z v o b e a n r u c h t e Platz de davor efindichen Zeile als freier N N E p e i c h e hinzugefügt. Um dies effizient durchfüren zu können, werden all eien in eine d p p e l rketteten L i t e watet die nach de Anfangsaddsse im NN tiet i chließlich weden die Indizes de Matrix-NNEs auch paltenweise a e s p e i c h e t , wobei dasselbe L a y o t benutzt w i d Dies glicht a c h einen patenweien u g r f minde die Indize der NNE de M a i x Das zweite Unterscheidungskriterium für vrschiedene L U - F i e r u g s l g o r i t h m e n ist die Pivot-Ausah A c h hie ientiert sich SoPlex an der in 92] chriebenen Stra t e i e , die wiederu gerinfügi geändet wurde. E werden d p p e l t verkettete Listen Zi und St für i = l . . n g e r t . Jede Zeilenindex i und Spaltenindex j der aktiven T e i m a i x wird in der Liste Zr bzw Sc* verwaltet. Wenn ich die Anzahlen der NNEs r oder ei einem PivotSchitt ände weden die Indize bzw j in die e n t e c h e n d e n Liten rschoben
  • 93.
    17. LÖSUNG LINEARERGLEICHUNGSSYSTEME MIT DER BASISMATRIX Die Liten ermglichen einen schnellen Zugrf a f Zeien bzw Spaten mit enau i N N E . Insbesonde kann schnell von kleinen W t e n auwä die Zeile oder Spalte mit der g i n g s t e n Anzahl von NNEs sucht weden Aus einigen (1-4) in diesem Sinne ersten Zeilen oder Spalten w i d dasjenie NNE als Pivot-Element ausgewählt da die ingste Markowitzzahl fwei nd die chwellwebedingu füllt Zur Ü e r p f u n g der Schwellwertbedingung mu de größte Bet in eine Zeie be timmt weden Um dies nicht für jedes untersuchte NNE r n e t zu bestimmen wird ein eld axabs v e l t e t . Ein Wert axabs [i] 0 zeigt an daß der größte Bet in der ten Zeile nicht bekannt is mmer wenn e b e c h n e t wird, w i d e in axab [i] einge tragen. Ändert sich abe etwas an der i t e n Z e i , so w i d wiede axab [i] = -1 g e t z t Dadurch w i d das Maximum imme ur dann timmt wenn e e n ö t i t w i d vo ch nicht echnet wurde Eine weitere wesentiche Eienschaft de Implementierung für S o e x ist, da sie gleich- zeiti ein Maß für die Stabilitt de LU-Zerlegung bestimmt. Daz w i d da Maximum m a x j l ß l } mitgrechnet nd auch ei den im folgenden Abchnitt z beschreibenden Up- date der LU-Zerlegung ktulisiert. Falls nach efolgter Fktoriierung keine hinreichende S t a i l i t t erreicht wurde wi die LU-erlegun mit erhöhtem Parameter u w i e d e h l t Dies wird so lange iterier, bis entweder eine stabil Zrlegung g f n d e n der mit u — eine patielle PivotSuche wendet wurde Letzte itt in de P x i nur sehr s t e n ein 1.7.4 Lösng v n G l e i c h n g e m e m t D r a t r i z Wie im vorigen Abchnitt schieben müssen zur ösu von linearen Gleichungssystemen ei gegebener L U - r l e g u de Matix B LU Gleichngssysteme mit den p e t i e t e n Dreiecksmatizen nd t weden ür eichgssysteme der F ( ind die 11 nd H wofür nun die zugehören Algorithmen die Vowä und Rückwärtssubstitti da tellt werden Die entsprechenden Algrithmen für Geichngssysteme der F r (110 t man einfach durch T a n i t i nd weden d e h a nicht nähe b c h i e e n Betachte zunächst die L s u n des System (1.116) wobei L eine untere Deiecksmatrix mit D i a n a l e m e n t e n 1 sei. Der L ö s u g s l g r i t h m u s arbeiten in n Schitten wobei n die Dimensio von L Ausgehend von y wid in jedem chritt a k t s i e , wobei jeweils ein weite Eement de Lösungsveors von (1.116) beechnet wird. Dabei wir ausgenutzt, da ween de D e i e c k s g t a vo jeweils eine eile mit nur ch eine Unkannten
  • 94.
    KATEL 1. REIERTE MPLEALGITHME ALGORITHMUS 8 VORWÄRTSUBSTITUTION) Sei y b £ M und L £ R e untere Dreecksmax. Für = 1 , n: ür = i+ n: tz j/j Ersichtlich berechet gorithmus 8 y gemäß ijj — bj — YllZi ^jiVii wobei die Summe über mehrer Iterationen von i verteilt ausgewertet wird. Dies ermöglicht es Dünnbesetztheit von b und y algorithmisch uszunutzen. Wann immer in einer Iterati y^ 0 auftritt kann die Schleife über j ausgelassen werden. Die Besetzusstruktur v L wird bei der Schleife über u s u t z t i d e m man sie uf die NNEs der te palte v L eischränkt er gorithmus zur su n (11 f u t i i e r t anaog zu gorithmus 8 ALGORITHMUS 9 (RÜCKWÄRTSSUBSTITUTION) Sei x y £ M nd £ R obere Dreecksmax. Für i . . Für = i Bei beiden Algorithme 8 u 9 können die e r m u t t i P u d i r e t i die Verw tu der Idizes d e i r b e i t e t werde m die Besetzusstruktur von y bzw. x wie oben beschrieben auszunutze, müssen L un U spaltenweise bgespeichert werden. Entspreched bedarf es für Gleichunssysteme der Form xTB b bei L und U e i e r zeilenweisen Speicherung der Matrize. Da bei Simlex-Agorithme beide Formen von Gleichungsssteme gelöst werde üsse werde die re L u d U hl zeilen- als uch spaltenweise eseichert Schließlich kann bei besoders dünnbesetzten Gleichugssysteme un ktoren b ein weitere Geschwindigkeitssteigeru erzielt werden. Die Algorithmen 8 und 9 durchlaufen immer die gesamte Schleife für von 1 bis n. Dabei muß dann j e d c h nur für wenige In- dizes % die Schleife über j durchgeführt werden, d meistens y, 0 bzw. X{ 0 gilt. Um uch die Schleife über i zu verkürzen kann man in einem dheap die Indizes der NNE im Arbeitsvektor x oder y mitführen. Ei dheap bietet e i n direkten Zugrif uf den jeweils niedristen bzw. höchsten Index, so daß s o r t auf da chste NNE in der Schleife zug riffn werden kann. Natürlich bedingt die Verwendu e i e s d H a p s einen zusätzlichen Verwaltugsaufwand. Deshalb schltet die für SoPlex vgenommene Implementierun uf den heaplosen Agorithmus um, sobld der Heap zu voll" wird. Bezeichne h die A n h l der Idizes im H a p . Es wird auf de o r i n a l e n Algorithmus 9 zurückgeschaltet, s l d d > Ki, bzw. bei Algorithmus 8, wenn d > ( i) ilt. Für K hat sich ein Wert von 0.05 bewährt Damit wird der dHeap nur i seltenen Fällen verwendet. Es gibt jedoch Beisiele bei de er e i e deutliche Beschleu des Simlex-Algorithmus verurscht
  • 95.
    1.7. LÖSUNG LINEARERGEICHUNGSSYSTEME MIT DER BASISMATRIX 1.7.5 Bas-Up n jeder Iteration Simplex-Algorithmen sin zwei linare Gleichungssysteme mit der Basismatri zu lösen, wobei sich diese von Iteration zu Iteration ändert. Jedesmal ei neue LU-Zerlegung zu berechnen wäre zu aufwendi, zumal sich die Basismatri nur in einer Zeile oder Spalte genüber der aus der vrigen Itertion unterscheidet und es geeignete Verfahre gibt, um die alte LU-Zerle weiter zu verwenden. Zwei slcher sog. LU Uates nämlich die duktform F) [29] nd der ForestTomlin Update [46] in der Implemetierung nach [93], werden in diesem Abschnitt am Beisiel des in der iteratur üblicheren Falles e i e s Spaltentausches beschriebe. Beide wurden für SoPlex implemen- tiert, d s zweite ween seier besonderen Effiziez [46] nd PF wegen seiner Anwendun beim parallelen Simple l. Abschitt 2.2.3) Nicht imlementiert wurde das Verfahre von Bartels und G l u b 10 mit sei Weiterentwicklu [84, 86] oder sezielle Upd teverfhre für V r c u t e r Betrachte die Matri B, zu der die LU-Zerlegng B LU bekannt sei ie Matrix B' BV, mit V (I + (B~1r — efief eht aus B durch ustausch der /-ten palte mit dem Vektor hervr. Das Ziel ist es, ei Verfhre zu fnden, mit dem G l e i c h u s s s t e m e mit B' unter V e r w e d u g der LU-Zerle e l s t werde könn Das u r s p r ü l i c h e Verfahren, d s für SimplexAgorithmen verwendet wurde, basiert auf (der t r a n s p i e r t e n Version v n ) Gleichung (18 Damit kann man Gleichungssysteme der F r m B = b lösen, i d e m an zuächst Bx b mit der bekannten LU-Zerle st u anschließed - e (111 bestimmt. Dabei wird der V e k t r B r ohehin als A / im Simplex-Agorithmus berechnet Bei mehreren U p d t e s müsse ntspreched iele Krrekturschritte nach (1118 durch eführt werde hrend das obige Verfhren die LU-Zerlegun von B aufrechterhält, wird diese durch da nun zu beschreibende Verfhren v F r e s t u d Tomin anipuliert. Betrchte d z u die LU-Zerle nB i der (1112) eleitete rm U7 wobei PU eine obere Dreiecksmatrix ist Da ft iele Spalten von L mit der Eiheitsma- trix ü b e r e i s t i m m e , s i d meist w e i e r ls ang1-Matrize Lj öti Betrchte L V. +iB-ef U B U . U.
  • 96.
    KAPITE 1. REVIERTE SIMPRITHME ür die permutierte Matrix P b e i c h e k de permutierten Index , d.h. d x PL~1 Dann ilt u k+ k+k+ bei ax{ Sj ^ 0}. Sfern B icht s i u l r ist, muß d b e i elte folgenden wird diese Matrix durch geeignete Permutation und Multiplikati mit an1-Matrizen Aj i e i e permutierte reiecksmtri U' transfrmiert, s d J ^ ilt, wobei P'UQ' eine obere Dreiecksmatrix, mit geeignete P e r m u t t i s m t r i z e P' u ', ist Defiere d z u z u c h s t die P e r m u t t i s m t r i x . die die Indizes k bis um e i s durchrtiert Damit ist u • • • k + . . . fc+ k+k+ k+ k+ k+ k+ kk+ "
  • 97.
    1.7. LÖSUNG LINEARERGEICHUNGSSYTEME MIT DER BASISMTRIX Diese Matrix kann mit ußscher Eliminati ei bere reiecksmtrix Ü transfrmiert werden: ^ (111 mit +A ej T b e i . . . k + . . . . . . ist. Setze U, Dann LU LL Diese Art von LU-Update führt somit zu neue Permutatinsmatrizen P und , zu einer eue permutierte oberen Dreiecksmtri U nd zu einer zusätzlichen Ran1-Matrix n+i. Da Gleichungssysteme mit , +i un direkt elöst werde könn kann an mit uch d l e i c h u s s s t e m für ' l s e Der Vorteil dieser p d t e M e t h d e g e ü b e r der zuerst geschilderte ist, daß L i . . weniger NNEs hat als Br) so d ß die L s u n von Gleichunssystemen anschließen eines gerineren Rechenaufwandes bedarf. Der Update selbst bedingt j e d c h e i n h h e r e ufwand, d der Vekt A per Gaußscher Elimination berechet werden muß. Der Vekt fällt h i n g e w ä h r e d des SimplexVerfhrens an, denn L r wird bei der Berechnun von A / beötigt, muß als lediglich zwischengespeichert werde. Bei eschickter Speicher verwltu erfrdert dies icht e i l e i n K p i e r a n Der ForestTomli pdate ist eine Vereiachung des BartelsGoloub Updtes. Bei letz terem werden bei der Gußschen Elimination n (1119) eventuell noch weitere Zeilenpermu t a t i n e n eingebaut, um e i e bessere Stabilit zu gewhrleisten. Bei Simplex-Agorithme bringt dieser zusätzliche Aufwand i der R e l kei rteil. Ohnehi wird die Stabi- lität der (aktulisierten) LU-Zerle überwcht, u e b e f l l s e r f g t ei eue LU- erle bschitt 8.5
  • 98.
    KAPITE 1. REVIERTE SIMPEXRITHMEN 1. Tips und Tricks Nachdem de o r i g n Abschnitten die r u d l a g e n für eine numerisch stabile Imple mentierung v sisdrstellungsunabhängigen SimplexAlgorithme z u s a m m e g e t r a wurden, solle nun einge Kniffe vorgestellt werden, mit d e e n die Geschwindikeit und Stabilität der mplementierung gesteigert werden kann Von zentraler B e d e u t u g für die Effizienz ist i jedem Fall die s g f ä l t i Auswahl und Implementieru der z u r u d e l e t e n D a t e p e , die i A b s c h i t t 3. estellt werde 1.8.1 Skalierung ie Zahlenwerte in der Nebenbedingungsmatrix eines Ps k n n e n von unterschiedlicher G ö ß e n r d u n g sein. Dies kann zu LU-Zerlegungen der B s i s m a t r i z e n mit einer schlechten S t a b i l i t t führen, da die Schwellwertbedingung (1.115) kaum Wahlmöglichkeiten zuläßt Durch sog. Skalierung kann die Stabilität der LU-Zerlegung verbessert werden. Dazu wird die Matrix von rechts und links mit Dagonalmatrizen so multipliziert, daß die NNEs der skalierten Matrix möglichst eng b e i e i n n d e r liegen. Dadurch erhöht sich die Wahlmöglich keit bei der S c h w e l l w e r t P i t s u c h e , w s zu einer besseren S t b i l i t ä t führt Die Berechnung solcher Skalierungsmtrizen für jede Basismatrix und ihre Multiplika- tion würde jedoch einen e r h h t e n Rechenaufwand bei der LU-Zerlegung der B a s i s m t r i und der Lösung der l i n e r e n Gleichungssysteme bedeuten. U diesen zu vermeiden, ver- sucht man, das gesamte P skalieren, s d ß beliebige Basismatrizen bereits gut skaliert sind. Dazu multipliziert man je eine D i a g o l m a t r i x R und C von rechts und links an die Nebenbedingungsmtri des LPs A, d m i t ßenunterschiede der Zahlenwerte in RAC nivelliert werden min min cC t I < t l < RAC Es wurden verschiedene Ansätze zur Aufstellung der Diagonalwerte von C und R vor geschlgen [96, 28, 48]. Einfache Skalierungsverfahren d i i d i e r e n jede eile des LPs mit einem aus der Zeile gewonnen Wert, wie den Wert mit m a x i m l e m Absolutbetrag (Equi librierung) oder dem geometrischen oder rithmetischen Mittel aller NNEs der Zeile. An schließend wird jede Spalte entsprechend skaliert. Derartige Verfahren haben einen geringen R e c h e n u f w n d , denn jedes NNE der Nebenbedinungsmatrix wird nur z w e i m l verwendet Neben solch einfachen Methoden gibt es ufwendigere Verfahren, die die „Gleicha tigkeit" der NNEs ptimieren: Das Verfahren von FulkersonWolfe [48] löst ein Optimie r u n g s p r b l e m zur Minimierung der ifferenz zwischen maximalen und minimalen NNE. Dagegen bestimmt das Verfahren von Curtis und Reid [28] die S k l i e r u n g s f k t r e n s , d ß die V a r i n z der NNEs des Ps minimiert wird. Aus verschiedenen Tests schließt Tomlin in [96] daß die Skalierungsverfahren nur einen geringen Einfluß uf die S t b i l i t t des S i m p l e x A l g r i t h m u s h b e n , jedenflls für hl
  • 99.
    1.8 TIPS UN TRICK modellierte LPs. Um den Agorthmus or schlechten PModellen abzusichern, sollten hingegen einfache Skalierungsverfahren ausreichen. Deshalb wurde für S P l e x ähnlich wie für CPLEX 15] lediglich ein Equilibrierungsverfahren implementiert, d jedoch im Ge gensatz zu C L E X uch abgeschaltet werden ann. Darüberhinaus bietet SoPlex die Wahl b zuerst die Zeilen der zuerst die Splten skliert werden sllen. W s günstiger ist hängt n dem zu lsenden LP b. ber den Stbilitätsspekt h i n u s wird häufig als Argument für eine Skalierung des LPs och eine mögliche Reduktin der Anzahl der Simplex-Iterationen gennnt [96]. In der Tat kann die Sklierung einen Einfluß auf die A n z h l der SimplexIterationen h b e n . Dieser k n n sich j e d c h s h l p s i t i ls uch negati uswirken ( g l bschnitt 4 . 6 ) 1.8.2 uotientntes ie bereits in Abschnitt 1.3 bemerkt wurde, ist die stbilisierte Variante des „Textbook" Quotiententests oft hinreichend stabil. Mit nur einer P h s e ist sie effizienter als zweiphasige Varianten. Die mplementierung des stabilen SoPlex Quotiententest bricht deshalb direkt nach der ersten Phase b, wenn das Qmax bestimmende Element bereits zu einem Pivo Schritt hinreichender Stabilität führt. Solch eine Wahl entspricht bis uf d s Shifting dem stbilisierten Textbook"Qtiententest Darüberhinaus speichert der SoPlex Quotiententest in seiner ersten Phase die Indizes der NNEs von Ax. Dadurch kann in der zweiten P h s e direkt auf die NNEs zugegriffen werden, und unnötige Zugriffe auf Nullelemente werden vermieden. Auch wenn keine zweite Phase benötigt wird, wurden die Indizes der NNEs n A nicht unnötig gespeichert; sie werden in jedem F l l beim Update benutzt Für die meisten LPs liefert der S P l e x Quotiententest mit festem Toleranzparameter 5 eine hinreichende Stabilität. Dem Autor liegen j e d c h LPs10 v r , bei denen erst zwei weitere Techniken zur erfolgreichen Lsung verhelfen. ies ist zum einen die dynamische Toleranzanpassung und zum nderen d s Zurückweisen n P i t E l e m e n t e n . Für das Zurückweisen von Pivot-Elementen wird ein weiterer Parameter minstab ein geführt. Führt der Quotiententest zu einem PivotSchritt mit Asq <minstab, so wird kein Bsisupdate durchgeführt, denn ein solcher würde ach Satz 29 zu einer zu schlecht nditionierten B s i s führen. Stttdessen wird direkt zum Pricing-Schritt 1 übergegangen, wo ein neues Pivot-Element gewählt wird. Dabei werden Vrkehrungen getrffen, die eine erneute Wahl desselben Elementes vermeiden. Ein zurückgewiesenes Piot-Element zeigt somit an, daß sich der Simplex-Algorithmus in einem numerisch problematischen Bereich des zugrundeliegenen Polyeders bewegt. Des h l b wird der T l e r n z p m e t e r S ( d m i s c h ) herufgesetzt um eine grßere Wahlfrei 10 Diese besonders schwierigen LPs dürfen leider nicht weitergegeben werden nd w r d e n deshalb a c h nicht z r Bewertng der Implementierng in Kapitel 4 herangezogen.
  • 100.
    KAPITE 1. REVIDIERTE SIMPEXORITHMEN heit beim Quotiententt und d m i t einen numerisch sabilieren B a s u p d a t e zu emögl chen. Gleichzeitig wird auch der Parameter minstab herabgesetzt, um nicht wegen überzo gener Stabilitätsnfrderungen in einer unendlichen Folge zurückgewiesener P i S c h r i t t e zu enden. Beide Parameter 5 und minstab werden wieder gestrfft, wenn die röße der Werte Asq nzeigt, d ß der numerisch prblemtische Bereich des Plyeders verlssen wurde 1.8.3 Pricng Die Auswahl der für ein roblem „richtigen" PricingStrategie ist essentiell für die Lösungs geschwidigkeit von SimplexAlgorithmen. Dabei führt das steepestedge Pricing meist zu sigifikant weniger Iterationn als andere Verfahren, ist jedoch aufrund des erhöhten Re cheaufwandes dennoch oft langsamer Insbesondere ei einfügenden Algorithmen sollte oft das partial multile Pricing oder das Deve Pricing vorgezogn werden. Welche Pricing Strategie am schnellsten arbeitet, h n g t überdies von der zugrudelieenden Hardware b. Bei Computern mit hoher Gleitkomma-ArithmetiLeistung nn as s t e e e s t e d ä u e r eingesetzt werde als z B . auf einem er Beim steepestedge Pricing kann der Rechenaufwad dadurch in Grenzen gehalten wer den, daß beim Start die Werte pi = 1 esetzt werden, anstatt sie korret durch Lösung der entsprechende Gleichungssysteme zu bestimmen. Dies führt meist zu keiner nennenswer ten Steigerung der Iterationszahl. Isbesondere eim e n t f e r d e Alorithmus u d e i e r S c h l u a s i s ist diese Iitialisierung s o a r e Wiederum für das steepested Pricing kann die Lösung des zusätzliche Gleichungs ystems beschleuigt werden. s kann ämlich zu jedem eliebign Zeitp nach der ösung des ersten Gleichungsssstems in Schritt 2 der SimlexAlorithmen nd vor der Aktualisierung der Basismatrix in Schritt 5 elöst werden, inbesondere auch gleichzeitig mit dem zweiten S s t e m in Schritt 4. Dann kann man eide Gleichungssysteme mit ur einer aversierung der LU-Zerlegung lösen. Dabei muß die Schleife über i in den Algo- rithmen 8 und 9 nur einmal durchlaufen werden. Gleiches ilt für die j-Schleife wenn sie für beide Gleichungssysteme erforderlich ist Insgesamt erg sich dadurch weniger Spei cherzuriffe als ei zweifacher Ausführung der Alorithme 9, d es elingt ei essere utzung des Caches Allemein kann man e i e n Pricer oft dadurch etwas verbessern, daß n eim e i g e n den Alorithmus Vektoren preferiert, die die Basis nicht wieder verlassen önnen, bzw. beim ntfernenden Algorithmus solche, die icht wieder i die Basis eintrete werden. Für eine Spaltenbasis würde man also zuächst ierte Variable aus der Basis entferen. Dabei ist edoch zu e m e r n , daß — wie ei allen heuristischen A ä t z e n — auch Prolembeisiele istieren, ei de diese Strateie verheerede A u s w i r n g ha nn.
  • 101.
    1.8. TIPS UN TRICK 1.8.4 Zelen- vers Spalnbas Die Möglichkeit, sowohl eine Zeilen- als auch eine paltenbasis zu verwenden, erlaubt es bei der Dimesion der Basismatrix zwischen der Anzahl der Spalten oder der Anzahl der Zeilen der Nebenbedingsmatrix des Ps zu wählen. Dabei sollte die kleiere Dimensio vorgezogen werden, da so die ösung der lieare Gleichungsssteme ei eringere Recheaufw erfordert D a r ü e r h i a u s kann die Wahl der asisdarstellung einen Einfluß auf die Wahl der Pricer h b e n . E i i g e Pricing-Strategien, insesondere das partial multile ricing, sind nur für e i n f ü n d e Algorithmen sinnvoll. Weiß man nun zusätzlich, ß ein LP gnstiger mit einem dualen als mit einem primalen Algorithmus elöst wird so kann dieses ricing-Verfahre dennoch eingesetzt werden, dem die Zeilearstellung verwedet wird 1.8.5 Refaktorisierung Wie i Abschnitt 7.3 dargelegt wird zur Lösung der bei SimplexAlgorithmen auftre tenden Gleichungssysteme eine LUZerlegung der Basismatrix vorgenommen. Nach e i e m Basistausch wird i.a. nicht wieder eine ölli neue LUZerlegung berechnet, sondern die stehende in einer der in 1.7.5 beschrienen Arten manipuliert. Nun stellt sich die wie oft solche Updates sinnvoll s i . D e i ist zweierlei zu e r ü c s i c h t i n : die Stailität der torisierung die Gesamteschwidigkeit des SimplexAorithmus Dem ersten Punkt muß stets Vorrang gewährt werden. Deshalb wird wie in 1.7.3 schriebe die Stabilität der Faktorisierung überwacht und bei Überschreiten eines Gre wertes eine neue LUZerlegung der asismatrix berechet der axis hat sich ei Gre 6 8 wert i der G r o r d n g 10 — 0 ewährt Der zweite kt ist immer dann zu beachten, wenn die Stabilitätsforderung oh nehin erfüllt ist, u dies ist bei über 90% der dem Autor vorliegende LPs der Fall Somit lohnt sich ein genaueres Studium des Geschwindigkeitsaspektes [26] wird dies unter statische Voraussetzungen durcheführt, was zu einer konstanten Faktorisierungs frequenz führt. In [6 wird die „optimale kostante Faktorisierungsfrequez a n h n d eines Testlaufes bestimmt. SoPlex verfolgt hingegn e i n dynamischen Ansatz bei dem der op timale Zeitpunkt der erneute L U Z e r l e n g der asismatrix a a n d des eweils aktuelle Zustads bestimmt wird Da i . bei edem Update der Faktorisierung zusätzliche Werte espeichert werden, die bei anschließe gelöste Gleichungssystemen bearbeitet werden müssen, wächst mit edem Update der ufw zur Lösung vo Gleichungssstemen. Ziel ist es daher de
  • 102.
    KAPITEL 1. REVIDIERTE SIMPLEXALGORITHMEN Zeitpunkt der ereuten LU-Zerle so zu ählen, die Gesamteschwidikeit des SimplexVerfahres optimiert wird Sei i die Anzahl der NichtNullElemente der Basismatrix und rii die der ifach aufda tierten LUZerlegung. <f> = UQ/N ibt den Anteil der Füllelemente bei der LUZerlegung an. Die mittlere Zeit zur ösung e i e s Gleichungssystems ti ist proportional zu n, Ferner setzen wir die Zeit für die Z e r l e n g T als proportioal zur zahl der i c h t u l l E l e m e n t e der Faktore n: U = 9n% (1.1) n9n = r)9 (1.11) Die Werte 9 rj > 0 sind architekturabhngig Kostanten. Natürlich ist 4> vor einer Fak torisierung nicht bekannt. Statt dessen kann ma edoch de Wert vo der vori Faktorisierung als ute pproximatio verweden. Optimierung der Geschwidigkeit bedeutet offenbar die Minimierung der eit pro Ite ation. Sei die Anzahl der Updates seit der letzte Faktorisierung, nn ist dies m T + JjLu =g +Ef^ (L122 er Faktorisierungszeitpukt /* muß also so ewählt werden, daß /*) m i i m a l ist f + Ef ,-, 1 o = a r m i / j armm ——^— (1.13) Somit rechet m ä h r e d des SimplexAorithmus die Größe (/ + EL mit. Zunächst fällt sie mit wachsendem / . Sobald sie wieder zu s t e i n beginn wird die Re faktorisierung der asismatrix v o r n o m m e n . Der Rechenaufwnd für diese uchführung umfaßt ledilich eine Additio ei visio pro SimplexIteratio kann somit verachlässit werden. Der Parameter 7 repräsentiert das Verhältnis von dem Rechenaufwand für die Faktori 7 sierung zu dem für die Lösung der Gleichungssysteme. Er h n g t sowohl von der Architektur als auch von dem gewählten Pricer ab. Letzteres liegt daran, daß etwa bei steepestedge Pricing ein zusätzliches Gleichungssystem pro Iteration gelöst werden muß, so daß in jeder Iteration dem Lösen von Gleichungssystemen mehr Aufwand zuzuordnen ist. Dementspre chend lohnt sich hier e i e häufigere Refaktorisierung, was durch einen niedrigeren Wert für 7 modelliert wird. Für jede Klasse von LPs sollte der beste Wert für r über ei Reihe 7 vo Testläufe estimmt werde . Abschitt 4 . 4 ) .
  • 103.
    1.8. TIPS UN TRICK 1.8. artbas Für allgemeine L der Form (1.45) ist Z P,Q), mit { l , . . . , n } und Q = n + . . . ,n + m} eine mögliche Startbasis zum zuehörige Phase-1-LP, die Schlupf basis genannt wird. E kann jedoch zur Reduktion der gesamten Iterationszahl von Vorteil sein, auf heuristischem Weg e i e bessere Startbasis zu konstruieren, die sich weniger von e i e r zulässig und optimalen asis unterscheidet Solch ei Verfahre heißt e i e Crash- zedur die erierte Basis e i e Crash-Basis. uch für S o l e x wurde eine CrashProzedur entwickelt, die sich stark an [15] orientiert d nun für eine Basis i Zeiledarstellung vorgestellt wird. Sie arbeitet in drei asen. der ersten Phase, wird eder Zeile von (1.5) ein Präferenzparameter CJ, (i = 1 , . . . , n + m) zugewiesen, der eine Präferenz für die Aufnahme der i t e Zeile in die Basismatrix arstellt. A s c h l i e ß e d werden alle Zeilen nach a b e h m e d e m äfereparameter sortiert schließlich r e e d a r t i ei asis konstruiert ie Festsetzung der räferenzparameter erfolgt auf heuristischem W e . Dazu überlegt man sich welche Bedingng / < a < u eher in der asis sei sollte nd welche eher nicht. So werden Bedingungen mit / —o u +oo eher selte der optimalen asis zu finden sein, wohl aber Gleichunge (l u). Allgemein wird an vermuten, daß je größer der Wert l — u ist desto wahrscheinlicher wird die zuehöri edingng eier zulässi optimalen Basis zu de sein. Dieses heuristische rgument berücksichtigt zwar die S c h r k e n der Bedingngen, nicht aber die Zielfunktion. bbildung 1.1 le jedoch nahe, daß i einer optimalen Basis eher Nebenedingungen zu finde si dere ormalenvektor ei ering W i k e l zum iel fuktiosvektor aufweisen. Schließlich sollte auch die numerischen Eigenschafte der zu konstruierenden Startba sis Berücksichtiung finden. Dabei sind (Vielfache von) Einheitsvektoren numerisch beson- ders gutarti d sollte deshalb Vektore mit mehreren Nichtnullelemente vorezo werden. iese drei Aspekte werden durch die f o l g d e Initialisierung der P r ä f e r e a r a m e t e r 10 aufgegriffen. Sie verwendet e i n Strafwert M der z.B. auf eine Wert vo esetzt wird ür die ite e b e d i n g n g lf f < uf setze zuächst falls lf uf lf uf falls lf uf falls falls lf uf sost falls f ei skalierter heitsvektor ist sost
  • 104.
    88 KAPTEL 1. REVIDIERTE SIPLEXLGORITHMEN amit setze als Präferezparameter ui 6 - f c u}'iu)? (1.14) Mit dem Parameter kann bestimmt werden, wie stark der Einfluß der ielfuktion gewählt sei soll n Wert 0~3 hat sich abei als sti erwiesen. Bei der reedyartige Konstruktion der Basis muß darauf geachtet werden, daß die Basismatrix gut konditioniert bleibt Dazu wird ein Parameter e > 0 benutzt, der t p i scherweise auf e i e n Wert e = 0.01 gesetzt wird. Außerdem sollte der Rechenaufwand vertretbare G r e z e bleiben, denn die Präfereze basiere ohehin nur auf heuristische Überlengn. ALGORITHMUS 10 (KONSTRUKTION EINER STARTBASIS) Sei x E Wm+n und n e i e P e r m u t a t n der Indzes 1, m n, e r t daß uV uVi+1 fü all i gilt Schritt 0 (Itialsierung): Seze X 4 0, i 4 0 und 0 Schritt 1: i ( i all i = ermiiere Schritt 2 Sei A%._ und f max{ < m + n all für alle 1 < j < m + n g er ,j < ehe zu Schritt 1. So seze k armax{ Schritt 3 Seze xk < 1 Schritt 4 all j, mit a 0 und Setze — 1 und PU{i Schritt 5 Seze P U } und Schritt 6: Gehe z Schritt 1. SATZ 31 Nach Ablauf von Algrithmus 10 ist eine permutierte Dreiecksmatrix. Fall = n ist diese reguär
  • 105.
    1.8. TIPS UNDTRICKS EWEIS: Sei der e t e i de Schritten 4 oder 5 zu h i z u e f t e I d e x . Wir zei e = fef, (1.1 d.h. A ist e i e permutierte reiecksmatrix. Dies gilt i jedem Fall für e = 1. Nach edem Schritten gilt jeweils [xh > ^ 4 ^ = 0). Nun wird i Schritt 4 P um ei I d e x j mit Xj 0 erweitert h. (1.125 ilt auch ach Schritt 4. Schritt 5 wird k zu P hinzugefügt wobei in Schritt 2 noch (1.125 galt. Da in Schritt 4 j ^ k sein muß trifft dies auch noch in Schritt 5 zu. Da die Schritte 4 d 5 die einzi Schritte s i d , die manipulieren, ilt (1. auch ach Termiatio vo Alorithmus 10 P. ist ei Dreiecksmatrix Eine Dreiecksmatrix ist nau d n n regulär, wenn es in jeder Zeile und Spalte mindeste ein von Null verschiedenes Element (kurz NichtNullElemet, NNE) gbt. Falls P = trifft dies für die Zeilen trivialerweise zu. Wird i Schritt 4 P um einen I d e x j erweitert so enthält anschließend die Spalte j ein NNE, d = ej. a dabei zuvor X alt ab es zuvor in dieser Spalte noch kein NNE. Wird in Schritt r» ZU P hinzugefügt, so war ach Schritt n der Spalte k noch kein NNE. Dies gilt auch noch ach Schritt 4. Da aber z nach Schritt ^ 0 ist gibt es nach Schritt 5 in der Spalte ein NNE. sgesamt gibt es also stets in P Spalten mindestes ein NNE. Terminiert orithmus mit P = n so f d e t sich in jeder eile ei NNE, as de eweis b e e d e t
  • 106.
    apitel arallelisieru Aufgrund der wirtschaftlichen Bedeutun der Linaren Progammierung ist es nicht ver wunderlich daß es bereits verschiedene Untersuchungen g e b hat, wie LPs durch Nut zung von Parallelität schneller gelöst werden könnn. Ei utoren beschreiben par allele Implementierung des S i m p l e x o r i t h m u s , währe a d e r e spezielle Varinte B. NetzwerkSimplex [9]) oder völlig andere orithmen zugrundeleen [97, wird s o a r ei spezieller arallelrecher für Probleme v o r e s c h l n . In der Literatur zur Parallelisierung des SimplexAlgorithmus gibt es Veröffentlichun- gen, die LPs mit spezieller Struktur betrachten, die für e i e Parallelisierung nutzbar g macht werden kann [51, 74] Die Mehrzahl der Publikationen befaßt sich jedoch mit dem üblichen primalen SimplexAlgorithmus. Allerdings gibt es bis auf [13] kein Arbeit die zu einer Implementierung führt, die mit stateofthe-art sequentiellen Implementierungen kon- kurriere könnte. ies l i e t zum eine aran, daß entweder vom SimplexAorithmus in TableauForm ausgegange wird [20 9 8] oder zum andere die vorgestellten Implemen- tierungen auf dichtbesetzte Vektoren d Matrizen operiere [91, 78, 43]. Mit dnnbesetz te Matrizen arbeiten hingegen die in [62, 58, 59] vorgestellte Implementierungen. Jedoch ist nicht ersichtlich, ob tatsächlich ein leistungsfähiger Code entwickelt wurde. Dies ist nur für [13] sicherestellt wobei sich die Parallelisierung jedoch nur auf das MatrixVektor Produkt beim duale SimplexAorithmus mit S p a l t e a s i s b e s c h r k t (vg bschitt 1). In diesem Kapitel werden die SMoPlex nd oPlex zugrudeelegten arallelisierungs nsätze vorgestellt Z ä c h s t wird in Abschnitt 2 1 eine kurze Einführung in das Gebiet des Parallelen R e c h n s geeben, wobei den drei zentralen Aspekten, nämlich der Zerleung von Algorithmen in nebenläufig bearbeitbare Teilprobleme, den wichtigsten Klasse vo arallelen HardwareArchitekturen sowie den hier zum Ensatz kommenden arallelen Pro rammiermodellen je ein TeilAbschitt ewidmet wird. Schließlich werden in Abschnitt 1.4 die wichtisten G r u d b e r i f u s a m m e n g für die eurteilung aralleler orithme vorestellt
  • 107.
    1. GRUNDLEN DER PALLELVERRBEI Die n u t z a r e N e b ä u f i g k e i t im SimplexAlgorithmus wird Abschnitt 2.2 heraus gearbeitet. In je einem Unterabschnitt werden dort die parallele Berechnung des Matrix VektorProduktes, die Parallelisierung des Pricings und Quotiententest, das B l o c P i v o t i n g sowie die gleichzeiti Lösung zweier linearer Gleichungsssteme beim steepestedge Pricing erklärt. Abschnitt 2.25 faßt die Parallelisierungskonzepte han eines L a u f z e i t d i a a m m s noch einmal zusammen. Schließlich behandelt Abschnitt 2 3 die parallele ösung dünnbe setzter linearer Gleichungsssteme auf asis e i e s arallelen L Z e r l e n g o r i t h m u s ' 2.1 Grundlagen der Paralelverarbeitung is heute hält eine intensive Jagd nach immer schnelleren Rechnern an, um damit immer rößere Probleme zu lösen. Als Faustregel gilt eine Verdopplung der Recheneschwindikeit lle M o n t e . Doch wie l g e noch ist diese ntwicklun fortsetzbr? Vom theoretischen Standpunkt aus ist die Lichteschwindigkeit als bsolute Grenze jeder Signlübertragung eine wenn auch noch lange nicht erreichte Schranke für die Rechengeschwindigkeit. Technisch wird es jedoch schon heute immer schwieriger, noch höhere Taktfrequenzen zu realisieren, da bei Frequenzen im Mikrowellenbereich die Lei terbahnen innerhalb einer i n t e r i e r t e n Schaltung induktive und kapazitive W i d e r s t n d e darstellen die d s logische Verhalten des Chips stören können. Mit immer höheren Takt frequenzen llein können also schon heute d e r a r t i e Beschleuniungen nicht mehr erzielt werden. Ein Ausweg ist die Ausnutzung von Paralllität, d h das leichzeitige Zusammen rbeiten mehrerer Funktionseinheiten um so mehr esultate pro eit zu erechnen Vom normalen PC oder WorkstationNutzer unbemerkt wird schon heute bei llen moderen Computern arallelität ausgenutzt nämlich innerhalb von RISC (reduced in struction set computer Prozessoren. Vereinfacht sind zur usführun eines ISCBefehls vier Teilschritte die so RISCPipeline erforderlich [ 8 ] 1. fetch: aden des efehlsbytes 2. decode estimmung des auszuführenden efehls 3. execute usführun der Operation write Rückschreien der bnisdaten Jeder dieser Schritte erfordert einen T k t z y k l u s so daß ein einzelner Befehl erst nach 4 Zyklen tatsächlich abgearbeitet ist. Beim Pipelining werden die Teilschritte ufeinander folgender Prozessorbefehle so ineinander verschachtelt daß n c h den ersten ktzyklen mit jedem kt ein neues R e s u l t t produziert wird g . Abb 1) Ähnliche Prinzipien werden bei modernen Prozessoren immer weiter ausgenutzt. Mehre re Pipelines rbeiten arallel superpipelined architecture), es werden mehrer arithmetische Einheiten parallel eingesetzt (superscalar), bei V e r z w e i g u n n w e i s u n g e n wird jeder Zwei in einer Pipeline weiter bearbeitet, wobei nicht benötigte Ergebnisse dann verworfen wer den s p e c u l r execution und vieles mehr uf ll dies soll nicht tiefer e i n g a e n werden
  • 108.
    KAPITEL PALLELIERUN Eingabedaten | i i i i i i i i i i i i i i i i i i i i i fetch decode ^ssssss^; i write back ** eittkt V V V V Ergebnisdaten Abbildung 2.1: Das Prinzip des Pipelining moderner RISC-Architekturen. Jeder Befehl ist in vier Mi crobefehle unterteilt, die jeweils einen Zeittakt beanspruchen. Si werden zeitversetzt abgearbeitet so daß nach einer Startzeit in jedem Takt ein Ergebnis gewonnen wird. da hier nur verdeutlicht werden soll, wieviel Parallelitt derzeit schon bei der usführun rein sequentieller" P r o m m e intern usenutzt wird uch auf einer groben" Ebene ist die Nutzung von Parallelität zur unbemerkten Alltäglichkeit eworden. Bei jeder MultiprozessorWorkstation r e e l t das Betriebssystem die parallele Bearbeitung verschiedener Prozesse auf verschiedenen Prozessoren eder ein zelne Prozess wird jedoch weiterhin sequentiell useführt Das parllele Rechnen beschäftigt sich mit der Nutzung von P a r l l e l i t t , die zwischen den beiden o.g. Ebenen nzusiedeln ist: der alorithmischen Parallelität die bei der Lösun mancher Probleme n u t z a r gemacht werden kann. Während die Nutzung von Nebenläufig keit auf Microcode und Betriebssystemebene ohne Zutun des Benutzers gewährleistet wird muß der P r o m m i e r e r für die Nutzung aorithmischer llelitt selbst soren Um algorithmische Parllelität nutzbar zu machen, müssen drei Voraussetzungen erfüllt sein. Es muß eine geeinete Zeregung des Problems in unabhängige Teilprobleme erfolgen es bedarf geeigneter paraller Progrmmiermodelle zur Formulierung des parallelen Pro ramms, und schließlich brucht man eeignete Hardwre, auf der parallele Programme ausgeführt werden können. Diese drei spekte werden in den folgenden drei Abschnit ten beleuchtet Anschließend werden in Abschnitt 2.1. einige rundlegende riffe und u s m m e n h ä e für die ewertun von p l l e l e n P r o m m e n vorestellt
  • 109.
    1. GRUNDLEN DER PALLELVERRBE 2.1. Zerlegung in n l ä u f i g e Telprolem Um einen parallelen Algorithmus zu entwerfen, muß das Problem in voneinander un b h ä g i berechenbre Teilprobleme zerlegt werden. M n unterscheidet zwei grundlegende e r l e u n s p r i n z i p i e n zwischen denen jedoch eine V i e l z h l von Mischformen m l i c h sind Funktionale D e k o m p o s i t i o n Bei diesem Zerlegungsprinzip werden u n a b h ä n i g e Teilfunktionen identif ziert in Beispiel dafür sind die Teilschritte beim Pipelining in RISC Prozes soren. Offenbr erlaubt dieses Prinzip nur die Nutzung von so viel Prozessor lementen ( P s ) wie Teilfunktionen identifiziert werden Datenparallelismus Dieses Zerleungsprinzi findet oft Anwendung, wenn gleichartie Funktio nen auf einem großen D a t e n s t z ausgeführt werden üssen, etwa bei der Be rechnung einer Vektorsumme. Jedes P E bearbeitet dabei eine Teilmenge des Datensatzes, wobei alle PEs d i e s e l e Funktion (z.B. die Summenberechnung ausführen. Genügend Daten vorausgesetzt e r m g l i c h t dieses ekompositions schem die effiziente Nutzun einer roßen n z h l von P Nur in einfachsten Fällen sind Compiler in der Lage, bestehende (sequentielle) Pro mme auf ten und Kontrollflußabhängigkeiten zu untersuchen und in entsprechende parallele Programme umzuwandeln Oft ist es jedoch möglich und ö t i , den Programma blauf zu modifizieren um mehr Nebenläufigkeit zu erschließen. Derartiges wird jedoch nie von einem Compiler geleistet werden können, denn woher sollte dieser wissen, ob d s modi fizierte Programm das ursprüngliche Problem immer noch löst? Dies kann bereits n dem einfchen Problem der Maximumsbestimmung verdeutlicht werden. Bestimmt man das ma ximale Element in einem Feld mit einem sequentiellen Computer, so wird dies üblicherweise mit einer Schleife über lle lemente implementiert. Gibt es nun in dem Feld mehrere le mente von denen der maximale Wert a n e n o m m e n wird, so findet der Algorithmus je nach Implementierung d s erste oder letzte maximale Element. Ein parallelisierender Compiler müßte dies genau nachbilden auch wenn für die Korrektheit des P r o a m m e s die Bestim mung eines beliebigen m a x i m l e n Elements hinreichend wäre in p a l l e l e r Algorithmus bei dem jedes P E ein maximales Element aus einer Teilmenge aller Elemente bestimmt von denen anschließend eines a u s g e w h l t wird, önnte z.B. das zeitlich zuerst oder d s von dem P E mit der kleinsten Nummer gefundene auswählen. Dementsprechend k n n auch der Ablauf des p r a l l e l e n Programmes von dem des sequentiellen abweichen Kapitel 4 wird dies bei den Testlufen der llelen Implementierunen des S i m p l e x o r i t h m u s erkenn U n a b h g i g von dem gewählten ekompositionsprinzip bedarf es zur Koordinierun der Arbeit eeigneter Kommunikati und Synchronisation. Beides führt i.a. zu einem zusätzlichen Zeitufwand zum reinen Rechenaufwand ußerdem können Wartezeiten ent stehen wenn eini Prozessoren uf d intrefen von Daten oder die Snchronisation mit
  • 110.
    KAPTEL 2 PALLELISIERUN nderen PEs warten müssen. eshalb ist die mittlere Rechenzeit zwischen aufeinnderfol enden Kommunikationen bzw Synchronisationen eine wichtige Kenngröße von allelen Algorithmen, die man die Granularitä eines paallelen gorithmus nennt. Man unter scheidet zwischen feiner mittlerer und rober G r n u l r i t wobei jedoch keine definierte uordnun vorlie 2.1. lele H r d w Erste Computer die P a l l e l i t ä nutzen wurden in Form von Vektorrechnern entwickelt Sie trugen der Tatsche Rechnung, aß häufig Operationen auf Vektoren hoher Dimension auseführt werden, was sich gut zum Pipelining eignet. Dfür wurden sog. Vektoroperatio nen in den ProzessorBefehlsstz aufenommen, die eine PipelineBearbeitun initiieren Dies verhalf Vektorrechnern zu einem beachtlichen Geschwindigkeitsvorteil genüber se quentiell arbeitenden Mikroprozessoren, der nun er durch die Verbesserun von ISC Prozessoren immer weiter dhinschwindet Die Idee lag lso (nicht zuletzt auch aus Kostengründen) nahe viele leistungsfähi RISCProzessoren zu einem Prallelrechner zusammenzuschließen. amit erschließt ma über vektorartige h i n u s noch anders strukturierte Parallelität, z u m l moderne orith men oft kompliziertere Datenstrukturen statt dicht besetzter Vektoren verwenden s eine Vektorisierung ausschließt Es gibt eine Vielzhl technischer Möglichkeiten, einen Zusammenschluß von Mikropro zessoren zu einem Pallelrechner auszuführen, die jeweils Vorzüge für gewisse nwen dungsgebiete aufweisen. Die wichtisten Unterscheidungsmerkmale verschiedener P l l e l rechnerrchitekturen bestehen beim Korollfluß und dem Specherlaou 2.1.2.1 ontrollfuß Flynn führte folgende robe Klassifizerun de Kontrollfluss von llelRechner rchtekturen e n [ SIS ingle intructiostream single data) erbe ndelt es sich um enen normlen equentellen Computer. SIM single inructinstrea multiple data) Alle PE nes solchen arllelrechners führen jedem Takt dieselbe In- struktion au (oder überspringen diese), allerdigs jede auf eigenen D t e n . Beispiele für solche P l l e l r e c h n e r sind MASPAR und die Connection Ma chine CM- von Think Machines Inc.. Heute gibt e jedoch keine aktuellen Implementerunen d Modell mehr, d s sich zu r e t r k t i v e r w e n at.
  • 111.
    GRUNDLGEN DER PALLELVER 95 IM (multiple inctionstream multiple daa) Bei solchen Pallelrechnern verfügt jedes PE ber einen eigenen Kontrollfluß und b e a r b t e t eigene Daten. Insbesondere kann jede Workston-Cluster als MIMD-Rechner aufgefßt werden, was nde der 80er Jahre dazu führte, spezelle MIMD-Rechner al unnötige Dinosaurer des Supercomputing abzu- tun. s t sich jedoch herusgestellt, d ß nur solche SpezelRechner uch über genügend K o m m u n o n l e i s t u n verfüen, um wete A p p l o n f e l der abzudecken. In dieer N o t i o n bleibend, hat an mit SPMD (single proram multiple daa) eine ondere Betriebsart" von MIMD-Rechnern enannt, bei der alle P s dasselbe Pro mm b e a t e n . Des ist eine ute Modellierun ne IMD-Rechners auf einer MIMD- Maschne. S bietet sowohl Vor- a s auch N c h t e l e gegenüer enem echten SIMD-Rechner. Der chteil besteht darin, da keine mplizite Snchronisierung aller s vorliet, so d explzit nchronisiert werden uß. Dfür kann aber im SPMD-Fll be ner Verzwe ung, die bei verschiedenen PE unterchedlich fällt, jede PE einen eigenen Zweig usführen entsprechend dem lokalen Ergebis der T t b e d i n u n , whrend dies bei iner SIMD-Maschne zu einer gewissen Sequentialisierung führt. Die dam verundenen Ge- c h w n d i g k e u ß e n haben d e A k e h r von SIMD weter efördert. 2.1.2.2 peichermodelle N e e n dem Kontrollfluß ist das Specherlayout ein wchtiges Unterschedungskrterum für llelrechner. M n unterchedet ro zwischen P l l e l r e c h n e r n m gemeinsamem Speicher, denen lle P s auf den mten Specher zurefen können, und olchen m ertem Specher, b i denen jede er igenen Specher verfgt, uf das uch nzig zurefen k n n . chtig ist diese Unterschedung aus zweierlei insicht. Vom technischen Stndpunkt ist es (in finnziell reistischen Grenzen) nicht möglich, Paallelrechner mit gemeinsamem Speicher für mehr a heute etwa 16 rozessoren zu reisieren. Noch mehr rozessoren lockieren sich e n t i g b m Zug uf d aten Specher, was Skerbarke . Abschntt eentrchtigt. Dagegen können Parallelrechner m verteltem Specher aus mehreren ausend P zusammengesetzt werden, die mit einem Kommunikionnetzwerk verbunden sind. Som sind Pallerechner verteltem Speicher onder für olche A l o r t h m e n eeignet, d ut eren. Parallelrechner m gemeinsamem Specher gelten ie leichter zu programmierenden Computer. D s gilt onder für d llelisierung b t e h e n d e r P r o m m e , denn
  • 112.
    KAPEL 2 PALLELISIERUN emensamem Speicher ist möglich, sgehend vom quentelle gramm, die P allelisierung schrittweise zu vollziehen. Die gute Skalierbarkeit von Parallelrechnern m verteltem Speicher g e e n b e r der einfcheren Progrmmierbarke von Architekturen m gemeisamem Speicher hat zu vielerle Entwcklunen eführt, physikaisch verteilten Spei cher logisch e m e s a m e n Specher ddressierba zu lten (virtu red memory). 2.1.3 aralele P o g r a o d e l l e Die Nutzung agorthmischer P a l l e l i t ä t erfordert neue Programme, b der d e Arbe mehrerer Funktonsnheiten eeignet koordniert wird. Zur Formulierung derrtiger Pro gramme, wurden verchiedene . parallele Programmiermodelle entwickelt. Drunter ver teht m n d e Men der e r e t e l l t e n M ö c h k e t e n zur Formulerun von Neenlufket, K o m m u n o n und nchronison. rinzipiell sind e verschiedenen P r o m m i e r m o d e l l e glech mächtig. Sie unterscheiden sich jedoch erhebch in dem Komfort ei ihrer Anwendun für verschiedene Algorithmen und der effizienten Implementerbarkeit für verschiedene Prallelrechnerarchitekturen. Ins esondere können sie de cht losgelö von der jewe z u r u n d e l e n d e n Archtektur etrchtet werden. Bei verteiltem Speicher m s s e n Daten von einem E zum anderen g e l e n , sie müssen k o m m u n e r t werden. Message-Passing ist e n Programmermodell, das di Kommunka on expliit dem Programmerer erläßt. D e Synchronisaon erfolgt dann mpliz ber Kommunikation, ndem e n PE auf die intreffenden Daten w r t e t . Bei disem Pro grammermodell unterchedet der P r o m m i e r e r expliz zwischen chnellen lokalen Spe cherzuffen und dem ngsameren Zugr auf entfernte D t e n . Dies fördert d e Lokalitä und d a m t d ffizenz olcher p l l e l e n r o m m e uf P l l e l r e c h n e r n m verteltem Specher. Dasselbe Programmiermodell könnte auch für enen Parallelrechner mit gemeinsamem Speicher verwendet werden. Allerdings bedeutet das Packen und Verschcken von N c h - ichten zwischen den Prozessen enen unnötigen Aufwnd genüber dem rekten Zu uf die Daten, der a für alle PE möglich ist. Solch ein drekter Zugff muß a l l e r d g s s Gründen der atenkonsistenz ynchronisiert werden. Das hared-Memory Program miermodell stellt daher explizite Synchronisationsmögchkeiten zur Verfügun ährend ne K o m m u n t i o n mplizit ü e r Synchronisation r e i s i e r t wrd. Tabelle ßt d igenchften der p l l e l e n P r o m m e r m o d e l l e z u m m e n .
  • 113.
    GRUNDLGEN DER PALLELVER Prommermodell nchronisaon Kommunon Message-Passin mpl expl Shred-Memory expl mpl Tabelle 2.1: R e a l u n g Synchrnin und K o m m u n i n bei v c h i d e n e n p a n Pro- grammiermodellen. arüberhinas gibt es noch eine Vielzahl anderer paalleler P r a m m i e r m o d e l l e , uf di ncht näher eingegangen wird, da sie für die Parallelisierun de Simplex-Alorthm uneeignet sind oder für d verfügbaren P l l e l r e c h n e r cht e r e t e h e n . 2.1.4 u n d b i f f e z r B e w r t u n g paraleler A l g o t h E bezeichne Ts ie Auführungszeit eine A l g o r t h m s auf einem Prozessor und Tp d Zet d e der A l o r t h m uf p Prozessoren enötigt, d n n nennt m S = ^ (2. die Beschleunigung peedup) de Algorithms für p Prozessoren. Bechränkt man sich auf Algorithmen, b denen alle rallelen Algorthmen selbe A r e i t verrichten1, und vernchlässigt CachigEffekte, ist offenbar p d m a x i a l errechbare Bechleunigung Doch wi nahe kommt man an diese Schrnke? Das A m d h l c h e G e t z gib ne ere Schrnke für d e errechbare Bechleunigung an [ SATZ 32 (AMDAHL'SCHES GESETZ) ei Ts TQ + Tj e Zit für die sequentielle Ausführung ines Alorithmus obe der Antel T0 im Gegensatz zu T nicht parallelisierba sei. Dan i a x l erzielbre Beschleuning (abngig v der Anzl der PEs) T (2.2 EWEIS: Für p Prozessoren gilt Tp T0 + T/p wor t (2. für p — e Behuptun folt. 1 Anders ist es z.B. bei manchen Suchalgorithmen wie Branch-and-Bound. Wenn im parallelen Fall das erste PE das gesuchte Element findet, so terminiert der Algorithmus evtl. schon, nachdem insgesamt weni ger Elemente untersucht wurden als im sequentiellen Fall. Somit leisten der parallele und der sequentiell Algorithmus nicht dieselbe Arbeit — ein superlinearer Speedup, d.h. S > p, ist möglich.
  • 114.
    KAPITEL 2 PALLELISIERUNG Diese Schrnke ist nur theoretisch zu vertehen. Im Normlfall wird si ncht erreicht, weil durch zusätzlichen Aufwand b der Parallelisierung (etwa zur Kommunikation oder n c h r o n i s o n ) z u t z l c h Ze vereht, n der ken Betrag zur un eleistet wrd. D Schrnke kann aber uch erschritten werden, ja sogar ne superlneare Beschleu- nigun ist mölich. Dies lie Cache heutiger Computerarchitekturen. Typischerweise verfügt jeder Prozessor enes Prallelrechners auch über eigenen Cache (d gilt cht für den T3D von CRAY). Dadurch können bei mehreren Prozessoren mehr Daten ache gen und somt schneller betet werden, n enzelner rozessor (m nem chrnkten Cche) n der age w r e . Dem etwas entmutigenden Amdahl'schen Gesetz, daß e Skaierbarkei rk ein- schränkt, setzte Gustavson ne Beziehun e n t e n , d e d e Nützlichket de allelen Rechnen für die Berechnung größerer Probleme bechreib scale-up) [56]. Dabei geht er davon , daß sich m Übergang zu größeren Probleminanzen a. der p a l l e l e Antei der A r i t erhöht, se equentieller Anteil jedoch konstnt leibt. Wenn so auch die Be- chleunigung bei der Löun nes Prolems b c h r ä n k t leibt, o e r m ö c h t P l l e l e Löun rößerer r o l e m n z e n . SATZ 33 (GUSTAVSON'S GESETZ) i N in Maß für e Größe iner Probleminsanz. Se Ts T0 + Zit de ein inzelner roessor u dessen Lösung beansprucht, wobei Xj Np de parallelisierbare ntl beichet und der inherent sequentielle Antl T0 nt sei. Dn i it Proessore errechre Beschleunigng EWEIS: Für p Prozessoren gilt Tp T0+T/p = T0 + N wor it (2. S = (T0 + Np)/(T0 + p+l- p)T0/(T0 + p+1- p)T0/ ween p folt. • Ende der 80er J h r e veruchte Gustavson t sener Bezehun einen mental lock ge- en „massive P a r l l e l t ä zu bekämpfen [56]. Zu dieser Zeit erwrtete m für die Zukunft Parllelrechner, d au tausenden bis mllonen Prozessoren zusammengeetzt sind. Heu- te h man von desen Vorstellungen weitgehend b s n d enommen und verteht unter assiver P l l e l t ä eher e i g e Hundert PE n definert ferner d e Efizinz ne llelen A l o r t h m - (2.3 p Sie ist ein M ß dafür, n wi weit d e PE eine Parallelrechners t a c h l i c h genutzt wer den. Der B e i f f der Sklierbkeit chreibt, wie sich d e Effizienz mi zunehmender ro zessoranzahl verhält: Ein parllele r o a m m heßt erbar, wenn ne Effizenz nzunhme weterer PE nur wenig a b m m " .
  • 115.
    BENLA UFIGKEIT I SIEX-GORITHM Es gibt noch eine Vielzahl weterer Maße zur Bewertung von parallelen Alorithmen. e alle vorzustellen, ist nicht da Ziel dieser Einführun Stattdessen h a e n r un auf in d e r A r t relevanten G r ß e n chränkt. 2. Nebenläufigkeit i Siplex-Algorthmen Das Amdahl'che Geetz (Satz 32 gibt eine obere Schranke für die maximal erreichbare Bechleunigung durch Nutzung von Nebenläufigkeit. Vor einer Parallelisierung des Smplex- Algorthmus sollte man deshalb untersuchen, wo der A l o r t h m u s wieviel Zet verbraucht und ob die für den Hauptanteil verantwortlichen Teile überhaupt parallelisiert werden können. Taelle 2.2 zeigt d Auftelun der Laufzet für zwei verchedene tLP rolem fit2d tocfor Anzahl Zeilen 25 1667 Anzahl Spalten 500 69 Prici 0.00 30. Quotiententest 23.3 2. Matrx-VektorProdukt 66.6 0.5 U-Faktorisierun 0.002 3. neare leichungssystem 0.02 8.5 Tabelle 2.2: Zeitverbrauch des dualen S i m p l A l h m u s mit s p e d g e P r n g für zwei B e p i probleme bei Verwendung einer Spaltenbasis ffenbar untercheidet sich die Zevertelung für bede LPs erheblich, so da zu erwar ten ist, daß es bei der Parallelisierung unterchiedlicher Konzepte bedarf. Pricing, Quoti ententest und Matrix-Vektor-Produkt eignen sich aufgrund hrer ittleren Granulariät zu einem datenparallelen Ansatz. Für das LP fit2d nehmen d i s e eile insgesamt über 99% des gesamten Zeitverrauchs in Anpruch. Damit kann für eine geeignete Hardware nach dem Amdahlchen etz ne ute Skalerbarket erwartet werden. Daggen wrd man für da P r o l e m stocfor bei d e r Art der Parallelisierung nach dem Amdahl'chen Gesetz die Lösungszet auf maximal 0% reduzeren können. Um darüber hinau zu kommen, muß eine Parallelisierung auch bei der Lösung inearer Gleichungssyste- me anetzen. Dazu werden zwei Wege unterschiedlcher Granularität verfolgt. Auf mittler er bis grober Granularität wrd der Simplex-Algorithmus o umstrukturiert, daß mehrere Glechungssysteme gleichzeig gelöst werden (vgl. Abschnitte 2.2.3 und 2.2.4). Al zwei ter Weg rd ein paralleler Löser für lineare Glechungssysteme entwickelt (vgl. Abschnitt 2.3). D a e i ist d e Granularität für LP-Probleme jedoch o fein, daß kene Beschleunigun erzielt wrd. Für Matrizen au anderen Berechen en erreicht e Implementerun ne ute Bechleunigun In den folenden Abschntten wrd d e N e e n l ä u f k e t aufezeigt, d sich zur Paralle-
  • 116.
    00 KAPIEL 2 PALLIERUNG isierung der im ersen Kapitel beschriebenen Simplex-Algorithmen bietet. Dies g c h e h t exemplarisch für B a e n i Spaltendarstellung, w o e i jedoch alle auf die Verwendung einer Z e l e n s i s üertragbar ist. Dabei bezechnet p d e Anzahl der zur V e r f u n g stehenden PEs, d von 0 bis (p 1 durchnumerert seen. Ferner s e n n und m die Anzahl der Spalten zw Zelen der N e e n e d u n g s m a t r x A de zu l e n d e n LP 2.2.1 Paalleles M r i x - V e k t o r - r o d u In Schritt 2 oder 4 der Simplex-Alorithmen wird das Matrix-VektorProdukt AgT AhT (2.4) berechnet. Diese Operation kann ohne Kommunikation oder Synchronisation nebenläufi durchgeführt werden, indem jedes PE das Produkt für eine Teilmenge der Spalten von A berechnet. Im einfachsten Fall bearbeitet PE i die Spalten _(i 1) • n/p,..., i • n/p. Dies führt i.a. jedoch nur für eine dichtesetzte Matrix A zu einer effizienten Implementierung. Im dünnbesetzten Fall können die NNEs ungleichmäßig auf die Spalten von A verteilt sein, so daß einigen PEs mehr Arbeit zufällt als anderen. Dadurch warten letztere auf die, denen mehr Arbeit zuewiesen wurde. Dieses Problem wird durch den Begriff des Lastausgleichs (load balancing) umschrieben. Die Aufgabe des Lastausgleichs ist es, allen PEs in etwa gleich viel Arbeit zuzuweisen, da- mit keine unnötigen Wartezeiten auftreten und so die Arbeit insgesamt möglichst schnell bewältigt wird. Man unterscheidet zwischen statischem und dynamischen Lastausgleich. Während im ersten Fall die Arbeit zu Beginn aufeteilt wird und diese Aufteilung anschlie ßend unverändert bleibt, wird beim dnamischen Lastausleich anhand von Laufzeitdaten die Aufteilun namisch a n ß t . Für das Matrix-VektorProdukt im Simplex-Algorithmus wird ein statisches Vertei lungsschema gewählt, um keinen zusätzlichen Aufwand zu erzeugen. Die Zerleun der Indexmene ist jedoch für beide Rechnerarchitekturen unterschiedlich. Bei der Parallelisierung für Multiprozessoren mit verteiltem Speicher, erfolgt die Vertei lung durch Aufteilung der Nebenbedingungsmatrix auf die Prozessoren. Die dabei gewählte Aufteilung hat jedoch noch Implikationen für die Parallelisierung anderer Operationen im Simplex-Algorithmus als das Matrix-VektorProdukt, nämlich beim Update des Vektors g und beim Pricing- bzw. Quotiententest (vgl. Abschnitt 2.2.2), aber auch bei der Aktualisie rung der Werte /?, beim s t e e e s t e d e Pricin. Daher kommt der Verteilun eine besondere Bedeutun zu. Für DoPlex hat sich eine zklische Verteilun als ünsti erwiesen. Diese ist durch pe(i) mod p (2.5) bestimmt, wobei pe(i) die Nummer des PEs angibt, das die i-te Spalte von A speichert. Durch die Verteilun der Daten auf die PEs wird imlizit die Parallelisierun der Arbeit
  • 117.
    BENLA UF EX-GORITHM vorgenommen: Jedes PE berchnet de Tel de Matx-VektorProdukts, zu de es di Vektoren von A eichert. Das mit der Verteilung des LPs und damit der Arbeit g e m ß (2.5) ein vernünftiger Last ausgleich erzielt wird, entspricht der Beobachtung, daß meist ähnliche Strukturen des LPs in der Nebenbedingungsmatrix nahe beieinander zu finden sind. Jede Struktur wird daher gleichmäßig auf alle PEs verteilt, so daß jedes PE von jeder Struktur einen Teil verwaltet. Dadurch wird insbesondere auch vermieden, daß einige PEs nicht an dem Lösungsprozess teilnehmen, weil sie zufälli an den relevanten Strukturen nicht artiziieren. Davon wird in Abschnitt 2.2.3 noch die Rede sein. Die Version für Parallelrechner mit gemeinsamem Speicher, SMoPlex, arbeitet auf der- selben Datenstruktur wie die sequentielle Implementierung SoPlex. Dadurch wird eine Ver- teilung der Arbeit von (2.4) gemäß (2.5) nicht mehr sinnvoll möglich. Sie würde es erforder lich machen, daß die Matrix spaltenweise traversiert wird, und jedes Ag, als Ag, = AhT -AA berechnet wird. Da aber Ah in der R e e l dünnbesetzt ist, werden so mehr Rechenoera- tionen durcheführt, als wenn man A Ag ^ M* berechnet. Um solch eine zeilenweise Berechnung auch im parallelen Fall durchzuführen, ist es sinnvoller, A in Blöcke zu unterteilen, die jeweils zeilenweise bearbeitet werden. Die Blöcke werden dabei so erzeugt, daß in jedem Block etwa gleichviel NEs sind. In der R e e l entstehen so Blöcke mit unterschiedlich vielen S a l t e n von A. 2.2.2 Paalleles ricin und Q u o t i n t n t e s Beim Pricing und Quotiententest handelt es sich um einen einfachen Suchalgorithmus, bei dem aus einer M e n e von Werten ein maximales (bzw. minimales) Element bestimmt wird. Die Parallelisierung solch eines Suchalgorithmus liegt auf der Hand. Man zerlegt die Men- ge in Teilmengen, aus denen jeweils ein PE das maximale (minimale) Element bestimmt. Anschließend wird von den p Elementen das beste ausgewählt. Diese Auswahl kann mit ver schiedenen Algorithmen erfolen, wobei der ünstiste jeweils von der zurundelieenden Hardware a b h ä n t Im verteilten Fall, ist die Aufteilung des Suchraumes bereits durch die Verteilung des LPs und damit einhergehend von den Vektoren g und Ag vorgegeben. Hat nun jedes PE das lokale maximale bzw. minimale Element bestimmt, gilt es, aus diesen p Kandidaten das global beste zu finden und allen PEs bekanntzugeben. Einen Algorithmus der solches leistet nennt man Gossiping. Eine optimaler Algorithmus für dieses Problem 73] ist als Algorithmus 11 für das ite von p 2P PEs anegeben. Die anderen PEs führen gleichzeitig denselben Alorithmus aus, wobei i die jeweilie PE-Nummer ist. Die Operation c = a xor
  • 118.
    02 KAPITEL 2 PALLELERUNG b e r h n e t bitweise das ausschließende Oder von den im Duals d a r e l l t n Zahle und b. Sie wird von heutien Prozessoren direkt unterstützt. ALGORITHMUS 11 (GOSSIPING) Sei g das lokale Datum des i t e n PEs. Für j 0,...,p-l: Schritt 1 Setze k « (i xor 2j) Schritt 2 Sende g zu PE k und Empfange / von PE Schritt 3 Setze log Nach Termination enhält g auf allen PEs das globale Ergebnis. Für den Fall der Maxi mumsbildung berechnet die Operation l o g maxlj, g}. Allgemein kann für „o" jedoch jede kommutative und assoziative Operation verwendet werden. Andere mögliche Opera- tionen währen z.B. die Berechung einer Summe oder eines Produktes. Die Assoziativität der GossipingOperation „o" ist wichtig, da die Operationsreihenfole von der Kommuni kationsstruktur und nicht von der Operation v o r e b e n wird. Die Arbeitsweise des GossipingAlgorithmus ist in Abbildung 2.2 dargestellt. Er arbei tet in p Phasen, die jeweils aus einer zweiseitigen Kommunikation und einer Berechnung der GossipOperation „o" besteht. In Schritt 1 wählt PE i einen Partner k für die Kommu- nikation. Dies geschieht so, daß PE k gerade PE i als Partner wählt. Beide PEs tauschen in Schritt 2 ihre lokalen Daten g aus und führen mit den eigenen und den vom Partner empfangenen Daten die GossiOperation aus. Da diese kommutativ ist, ist das Ergebnis für beide PEs dasselbe. In der nächsten Iteration wählen sich i und k neue Partner so, da die jeweiligen PEs gerade in der vorigen Iteration ihre Daten abgeglichen haben. Dadurch haben anschließend schon vier PEs dasselbe Erebnis bestimmt. Dies wird fortesetzt, bis die Daten aller 2P PEs a b l i c h e n sind. Die Struktur des GossipingAlgorithmus besteht aus p ineinander verschachtelten Fan- in- und Fan-outBäumen. Von jedem PE eht ein binärer Fan-out-Baum los, der nach p Schritten alle PEs erreicht hat. Gleichzeitig ist jedes PE der Endpunkt eines binären Fan- in-Baumes, der sich von allen PEs nach p Schritten auf das eine zusammenzieht. Somit erreicht die Information jedes PEs jedes andere. Für Parallelrechner mit gemeinsamem Speicher könnte im Prinzip ein Äquivalent zum Gossiping-Algorithmus implementiert werden, wobei an die Stelle der Kommunikation die Synchronisation tritt. Da solche Rechner nur aus wenigen PEs bestehen (vgl. Ab- schnitt 2.1.2.2) muß das beste Element nur unter wenigen Kandidaten ausgewählt wer den. Diese Aufgabe wird aber schneller von einem einzigen PE mit einer sequentiellen Schleife auseführt, in der keine (zeitaufwendie) Snchronisation notwendi ist. Deshalb
  • 119.
    NLA UFKE PLEX-GORITHM 03 Ä 7 V PE ^ PE PE PE PE bbildung 2.2: Kommunikations und Bearbitungsstruktur von GossipingAlgorithm für p = 8 PEs de Säule präsentirt d n Z i t v e a u f ein PEs. Graue Be darin s y m b o i s i n die Beechnung der G o s s i p O r a t i o n „o", ä h r n d weiße B e e c e di durch Kommunikation b d i n g t n Wartezeitn dar stelln. Die Nachrichtn sind dur P f l dargstellt. Di Kommunikationsstruktur wird am b e s t n a p ineinand verflocht binäre Bäume schriebn. Bei j r Kommunikation werd zwe PEs synchroni s i r t , so daß am nd lle PEs s y n h r o n i s i r t sind. chreibt jedes PE sein Maximum in eine Variable und w a r t t n enem sog. Barrier Synchronisationsunkt, bis alle diesen erreichen. Dann wählt ein PE das lobale Maimum aus 2.2.3 ock-Pivoting Das nun vorzustellende Block-Pivoting unterscheidet sich grundsätzlich von den in den vo- rigen Abschnitten beschriebenen Parallelisierungsansätzen, die einen datenparallelen An- satz verfolgen. Beim Block-Pivoting handelt es sich hingegen um eine Umformulierung des Simplex-Algorithmus derart, daß auf funktionaler Ebene mehr Nebenläufigkeit entsteht. Eine solche Parallelisierun wird nie von einem Comiler erbracht werden können. Das Block-Pivoting begegnet dem Problem, daß mit den Parallelisierungen aus den vo- rigen Abschnitten zwar gute Beschleunigungen der Lösung von LPs mit ähnlicher Struktur wie „fit2d" zu erwarten sind, jedoch nicht, wenn die Lösung von linearen Gleichungssyste men einen roßen Anteil des Rechenaufwandes beansrucht. Für diesen Fall erschließt es
  • 120.
    KAPITEL 2 PALLELERUNG zusätzliche Nebenläufkeit, be der m e h r e G l e i c h u n m e arallel elöst weden. Grundlage ist eine Beobachtung, die bereits für das multiple Pricing ausgenutzt wurde, daß nämlich beim Pricing wählbare Indizes nach einer SimpleIteration oft wählbar blei ben. Nach jedem PricingSchritt wird zu dem gewählten Index ein Gleichungssystem mit der aktuellen Basismatrix gelöst. Wählt man statt eines einzien Index eine M e n e von p Indizes, so können alle Prozessoren je ein lineares Gleichunssystem für jeden Index lösen. Anschließend wird zunächst nur ein Index für die Simplex-Iteration verwendet. Ist beim nächsten Pricing einer der Indizes der vorien Iteration weiterhin wählbar, so wurde das zugehörige Gleichungssystem bereits (fast) gelöst, wenn auch mit der Basismatrix aus der vorigen Iteration. Die Lösun muß also lediglich auf die neue Basismatrix aktualisiert wer den, was i.a. einen wesentlich geringeren Arbeitsaufwand erfordert. Die Aktualisierung wird gleich für alle noch wählbaren Indizes durchgeführt, damit weniger Wartezeiten anfallen wenn in den folgenden Iterationen andere Indizes gewählt und für diese die Lösungen ak- tualiesiert werden. Dies wird so lange fortgesetzt, bis kein wählbarer Inde mehr verfübar ist. In diesem Fall wird eine neue I n d e m e n e bestimmt. Der folgende Satz stellt die Gleichungen für die Aktualisierung der Lösungsvektoren bei einer Zeilenbasis auf. Die entsprechenden Resulate für eine Spaltenbasis folgen einfach durch Transposition. Da für den einfügenden und den entfernenden Simle unterschiedli che T e n von Gleichunssstemen elöst werden müssen, werden beide T e n betrachtet. SATZ 3 ei D G WkXn regulär Af = rD~ nd Ah = D~e. Dann gilt für die Matr D' + e p( , ) 1 die aus D du nie nii nvirm ustausch dete ti oinm er ile mit hergeht dj ^ MAÄ (2.6) ^ ^ ^ Af 2.7 EWEIS: Gleichung (2.7) ensricht (1.10) aus Satz 5, wurde also bereits bewiesen. Dort wurde auch ezeigt, da D' = V für V = I + e{D~x j ) ilt. Nach 8 ) ist demnach D' D- D-'( + ^e) D ~ ffA^ was Gleichun (2.6) beweist.
  • 121.
    NLA UFKE PLEX-GORITHM 05 Die Vektoren A / und Ag werden bei dem PivotSchritt ohnehin berechnet. Damit beschränkt sich der Rechenaufwand auf die Addition des Vielfachen eines Vektors und ist damit wesentlich niedriger als der für die Lösung eines Gleichungssystems. Gleichung (2.7) wird für den einfüenden Simle benötigt, während (2.6) beim entfernenden Alorithmus anewendet wird. Um überhaupt genügend wählbare Pivot-Indizes zu finden, muß die Suche nach den ein- zelnen Indizes geeignet aufgeteilt werden. Hier hat sich die Verteilung gemäß (2.5) bewährt. Daggen wurde bei einer blockweisen Verteilung oft nur ein wählbarer Index gefunden, denn alle wählbaren Indizes liegen häuf nah beieinander und somit in einem Block. Des halb wird auch bei der Implementierung für Parallelrechner mit gemeinsamem Speicher die Arbeit nach (2.5) verteilt und somit anders als für die Berechnun des MatrixVektor Produktes. Damit im verteilten Fall die PEs überhaupt die Gleichungsssteme lösen können, ist es notwendig, daß jedes PE auch die Basis-Matrix samt ihrer LU-Zerleung lokal zur Verfügung hat. Dazu muß der jeweils in die Basis eintretende Vektor allen PEs z u ä n emacht werden. Dies verursacht einen zusätzlichen Kommunikationsaufwand. Man beachte, daß Block-Pivoting den Ablauf des Algorithmus beeinflußt. Während im sequentiellen Fall das Pricing in jeder Iteration den (im Sinne der jeweiligen Pricing Strategie) besten Index auswählt, werden beim Block-Pivoting zunächst die p besten In- dizes gewählt. In der (p l)-ten Iteration danach, wird somit der ptbeste Index einer frühreren Iteration als PivotIndex verwendet. Der sequentielle Pricer würde wahrschein- lich einen anderen Index präferieren. Inwieweit sich dies auf die Anzahl der Iterationen auswirkt, hängt von dem zu lösenden LP ab. Im allgemeinen wird man eine Erhöhun erwarten, aber auch Verbesserunen werden beobachtet. Einen nicht zu vernachlässigen Nachteil hat das Block-Pivoting in Bezug auf die LU- Updates der Basismatrix. Da beim einfügenden Simlex nicht mehr vor dem Einfügen eines Vektors in die Basis das Gleichungssystem B gelöst wird, steht auch der Vektor Lxr nicht zur Verfügung, der für den Forest-Tomlin Update notwendig ist. Diesen Vektor explizit neu zu berechnen, impliziert einen nicht vertretbaren Rechenaufwand, so daß beim Block-Pivotin für den einfüenden SimlexAlorithmus der PF U d a t e benutzt werden muß. M. Padberg gibt in [80] eine andere Interpretation für das Block-Pivoting. Dabei steht die Frage im Vordergrund, wie der einfügende SimlexAlgorithmus umzuformulieren wäre, wenn pro Iteration statt nur einem Pivot-Index eine M e n e C von PivotKandidaten gewählt würde. Am Ende der Iteration erwartet man eine optimale und zulässie Basis für das LP, das aus der Anfangsbasis und der Kandidatenmene besteht. Für C entspricht dies gerade den üblichen Gegebenheiten, während für C n das gesamte LP mit nur einem Block-Pivot gelöst wäre. Die gesuchte Basis erhält man, indem man das aus der aktuellen Basis und C bestehende LP löst, für das die aktuelle Basis als Startbasis ver wendet werden kann. Zur Lösun dieses Sub-LPs s c h l t Padber das SimleVerfahren
  • 122.
    KAPITEL 2 PALLELERUNG in Tableau-Form vor, zu dessen Aufstellung lineare Gleichungssysteme für alle Vektore aus C gelöst und in jeder Iteration aktualisiert werden müssen. Dies entspricht genau dem oben beschriebenen, das jedoch auch für entfernende Alorithmen erweitert wurde. 2.2. aralleles Löse v e r s c h i e r l e a r e r Glechungssysteme In jeder SimplexIteration sind zwei lineare Gleichungssysteme zu lösen. Beim Block- Pivoting wird das jeweils erste von mehreren Iterationen zusammengefaßt und parallel gelöst. Dadurch ergibt sich eine Parallelisierung bei der Lösung des ersten Gleichungssy stems. Der Rechte-SeiteVektor des zweiten zu lösenden Gleichungssystems wird jedoch erst von dem Quotiententest f e s t e l e t , so daß ein entsrechender Parallelisierunsansatz nicht durchführbar ist. Für den wichtien Spezialfall des steepestedge Pricings muß jedoch noch ein drittes Gleichungssystem pro Iteration elöst werden. Hier setzt nun eine funktionale Dekompo- sition an, bei der das zweite und dritte Gleichungssystem nebenläufig gelöst werden. Im verteilten Fall löst dazu je eine Hälfte der PEs das zweite und die andere Hälfte das dritte Gleichungssystem, und anschließend werden die Ergebnisvektoren paarweise ausgetauscht. Dagegen lösen im Fall von gemeinsamem Speicher nur zwei PEs nebenläufig die beiden Gleichungssysteme, während alle anderen PEs warten, bis nach Lösun der Gleichunss steme eine BarrierSnchronisation erfolt. Wie bei einer funktionalen Dekomposition von Algorithmen üblich, führt dieser Ansatz zu keinem skalierbaren Programm; es können lediglich 2 Prozessoren mit sinnvollen Aufga- ben beschäftigt werden. Allerdings findet man heute immer öfter Workstations mit erade 2 Prozessoren, wofür dieser Ansatz vom Prinzi her besonders ut eeinet ist. 2.2.5 sammenfassung Abbildung 2.3 zeigt die Wirkung der in den vorigen Abschnitten dargestellten Paralle- lisierungsansätze mit Hilfe von (nachempfundenen) Laufzeitdiagrammen für den entfer nenden SimplexAlgorithmus. Für den parallelen Algorithmus werden zwei volle Simplex Iterationen darestellt, während der entsprechende sequentielle Algorithmus in derselben Zeit lediglich 1,5 Iterationen bewerkstelligt. Die Teilaufgaben sind mit den Buchstaben a bis e bezeichnet, wobei der Index die Iterationen numeriert. Die Diagramme zeien zwar den verteilten Fall, jedoch ergeben sich auch für Parallelrechner mit gemeinsamem Speicher kaum Unterschiede. An die Stelle des Gossiin tritt dann jeweils eine Snchronisation mit entsrechendem Aufwand. Betrachten wir zunächst den sequentiellen Alorithmus. Er beginnt mit dem Pricing Schritt (ai), innerhalb dessen das lineare Gleichungssystem aus Schritt 2 von Algorithmus 6 gelöst wird. Dies wird zum Pricing dazugerechnet, um später den Effekt des Block- Pivotin im arallelen Fall deutlicher zu machen. Es folt die Berechnun des Matri
  • 123.
    NLA UFKE PLEX-GORITHM i i i i ; > 1 / i ' ' C " 1 1 | !l 1 1 1 II l i i :• : i i i 1 i l l 1 1 1 1 i I I eo a c . ei . 0,2 . t>2 b2 I C2 &2 I e2 i 03 Gossiping ojuotiententest Pricing Vektor-Operationen Lineares Gleichungssystem bildung 2 3 : Laufitdiagramm für d n t n d i m p A l g o r i t h m u s mit s d g e Ping für in bzw zwei PEs VektorProduktes AgT = AhA (bi) und der Quotiententest (ci). Anschließend werden die beiden linearen Gleichungssysteme für A / und für die Aktualisierung der Normen pi gelöst (di). Schließlich werden alle relevanten Vektoren aktualisiert ( e ) und die nächste Iteration b e i n n t (a^) Wir betrachten nun den parallelen Fall. Die Index-Auswahl im PricingSchritt (ai) be ansprucht etwas weniger Zeit als im sequentiellen Fall, da jedes PE nur einen Teil der Indexmenge durchsucht. Jedoch muß am Schluß mit einem Gossi der tatsächlich zu be- nutzende Index ausgewählt werden. Beide PEs lösen nun mit ihrem Kandidaten ein linears Gleichungssystem, wobei anschließend der Lösungsvektor zum Pivot-Index dem anderen PE übermittelt wird. Dies geschieht mit dem Gossip am Ende des Pricing-Schrittes. Man erkennt, daß der Kommunikationsaufwand den Geschwindigkeitsgewinn durch die Paralle lisierung der Index-Auswahl wieder zunichte machen kann. Die enauen Verhältnisse sind roblem- und architekturabhän Nun kann jedes PE seinen Teil des MatrixVektorProduktes berechnen (6i). Hierfür ist keinerlei Kommunikation erforderlich, so daß die Laufzeit bei einem utem Lastausleich enüber dem sequentiellen Alorithmus halbiert werden kann. Beim Quotiententest ergibt sich ein ähnliches Bild wie beim Pricing. Zwar wird die Zeit für die Index-Auswahl auf beide PEs verteilt, jedoch kann die notwendige Kommunikation zur Bestimmung des wirklich in die Basis eintretenden Vektors den Zeitgewinn wieder relativieren. Dabei sind zwei Gossis nöti je einer für jede Phase des stabilen SoPle uotiententests. Anshluß an de uotientntest werden die beiden weitern linearn Gleichun
  • 124.
    KAPITEL 2 PALLELERUNG steme gelöst (ci). Zuvor wird edoch mit einem weiteren Gossip der in die Basis eintretende Vektor allen PEs zugeschickt. Nun löst je eines PE eines der beiden Gleichungssysteme und schickt den Lösungsvektor dem jeweils andern PE. Bei mehr als zwei PEs werden die PEs dazu zu Paaren gruppiert. Auch in diesem Schritt ist für die Nutzun der Parallelität ein zusätzlicher Kommunikationsaufwand öti Nach erfolgreicher Lösun der Gleichungssysteme können alle involvierten Vektoren ak- tualisiert werden (ei). Diese Operation benötigt keine weitere Kommunikation oder S n - chronisation, so daß wieder eine ute Effizienz erwartet werden kann. In dem PricingSchritt der folgenden Iteration wirkt sich das Block-Pivoting aus. Kein PE muß nun noch einen Index auswählen, da jedes PE ja bereits in der vorigen Iterati on einen Kandidaten bestimmt hatte. Einer davon wurde für den vorigen Pivot-Schritt benutzt. Sind die anderen (im Fall von 2 PEs der andere) immernoch wählbar, und die ser Fall wird in Abbildung 2.3 dargestellt, so muß der in der vorigen Iteration bestimmte Lösungsvektor lediglich aktualisiert und zu den anderen PEs übertraen werden. So wird der PricinSchritt über mehrere Iterationen hinwe beschleunigt. Die folgenden Schritte unterscheiden sich nicht weiter von der vorigen Iteration. Ledig lich bei Schritt (02) wurde angedeutet, daß häufig beide Gleichungssysteme unterschiedlich viel Zeit für die Lösung beanspruchen, was die Effizienz weiter reduziert. Insgesamt bleibt festzustellen, daß der Kommunikations- (oder Synchronisations) Aufwand sowie Lastaus gleichsprobleme die Effizienz des parallelen Algorithmus beeinträchtigen können. Je größer die zu lösenden Problem, desto röber wird die Granularität, und damit die erreichbare Effizienz. 2.3 arllele ösu nnbetzte linar lei gssystem Die im vorigen Abschnitt vorgestellten Ansätze zur Beschleunigung der Lösung von Glei chungssstemen im SimplexAlgorithmus befriedigen nicht vollständig, da sie zu keinem skalierbaren Algorithmus führen. Deshlb wurde uch ein d a t e n l l e l e r Löser für dünn- besetzte Gleichungsssteme entwickelt. Um es gleich vorweg zu sagen: Wegen der besonders dünnbesetzten Struktur von B s i s atrizen und Rechte-SeiteVektoren, die bei derzeit behandelten LPs auftreten, konnte damit keine weitere Beschleunigung des SimplexVerfahrens erzielt werden. Aufgrund der zentralen Bedeutung der Lösung dünnbesetzter linearer Gleichungssysteme weit über den Rahmen der Lineren Programmierung hinaus, wird in den folgenden Abschnitten den- noch der parallele LU-ZerlegungsAlgorithmus für dünnbesetzte Matrizen und der d a u f basierende verteilte Löser vorgestellt. Für Matrizen aus anderen Bereichen rbeitet er er formnter ls eine vergleichbre Imlementierung (vgl. Abschnitt 4.5) Die Imlementierung wurde für den T3D von Cray Reserch Inc. vorgenommen,
  • 125.
    PALLELE LOSUNG LEICUNGSSYSTEME 109 ein Parallelrechner mit verteiltem Speicher. Da die Synchronisationszeiten derzeitige MultiprozessorWorkstations die Kommunikationszeit des Cray T3D übertreffen, wurde auf eine Implementierung für Architekturen mit gemeinsamen Speicher verzichtet. Im fol genden wird deshlb direkt der Algorithmus für Architekturen mit verteiltem Seicher vorgestellt. 2.3.1 arallele L U e r l e g u n g Das Verfahren der LU-Zerlegung wurde bereits mit Algorithmus 7 beschrieben. D b e i liegt der hauptsächliche Rechenaufwand im U p d t e L o o p , ber auch die PivotAuswahl und der L-Loop benötigen eine gewisse Zeit. Die nutzbare Parallelität in diesen drei Schrit ten hängt von der Verteilung der Daten auf die PEs ab. Sie wird in Abschnitt 2.3.1.1 vorgestellt. Ähnlich dem Block-Pivoting beim Simplex-Algorithmus können auch bei der LU-Zerlegung dünnbesetzter Matrizen bei gewissen Gegebenheiten mehrere Iterationen zu einer „Block-Iteration zusammengefaßt werden, die zusätzliche Nebenläufigkeit bietet. Die dazu nötige Kompatibilität von PivotElementen und deren Ausnutzung wird in Abschnitt 2 . 3 . 2 erläutert. Schließlich wird in Abschnitt 2.3.1.4 ein neues Verfahren zum d y a m i schen Lastausgleich vorgestellt, ß ohne zustzliche Kommuniktion oder Snchronistion uskommt. 2.3.1.1 Datenvereilung Die Verteilung der Daten auf die PEs bestimmt die nutzbare Nebenläufigkeit und sollte so erfolgen, daß alle PEs in etwa dieselbe Last erhalten. Es gibt zwei gundsätzliche Ansätze für die Datenverteilung. Bei einem wird die Beseztungsstruktur der Matri a n a s i e r t und uf dieser Grundlage eine günstige Verteilung ermittelt, die ein Maximum n Prallelitä und in Minimum an entfernten Datenzugriffen gewährleistet [61]. Dieser Ansatz ähnelt den Verfahren der Fillminimierung bei der LU-Zerlegung, bei denen die Permutationsmatrizen vor der Faktorisierung ermittelt werden. Deshlb eignet er sich uch besonders für solche Verfhren. Beim zweiten Ansatz wird eine feste Verteilung der Daten auf die PEs zugrundegelegt [49, 9]. Dies erfordert ggfs. einen dynamischen Lastausgleich. Da beides ohne zusätz lichen Rechen- und Kommunikations- bzw. Synchronisationsaufwand erfolgen (vgl. Ab- schnitt 2.3.1.4) k n n , wurde dieser Ansatz verfolgt. In [85] wurden verschiedene (feste) Verteilungsschemata von Zeilen und Spalten auf PEs untersucht, wobei eine gitterartige Verteilung zu einem besonders geringen Kommunikationsaufwand führt. Deshlb wurde sie wie in [89 uch für die hier vorgestellte Imlementierung verwendet. Seip = rc die Anzahl der verfügbaren PEs. Die PEs werden logisch ls ein rx Gitter angeordnet (vgl. uch Abb. 3.16), und deshalb mit (kl) für 0 < k < r und 0 < l < bezeichnet. Jedem atrielement B^ wird einem PE zugeordnet, d s es seichert, sofern
  • 126.
    110 KAPITEL 2 PALLELUNG es von Null vechieden ist. Die Zuordnung von elementen zu Es erfolgt gemä pe(i (i mod mod c) 2.8) d.h. das atrixelement B^ wird auf dem PE (i mod r, j mod c) gespeichert. Jedes PE verwaltet also eine (dünnbesetzte) Submatrix, wobei dieselben Datenstrukturen wie bei der sequentiellen Implementierung verwendet werden. Die Verteilung (2.8) erschließt P r allelität beim UpdateLoop, beim L-Loop, bei der PivotAuswhl und bei der Berechnung der m i m l e n Absolutbetrge ro Zeile. In [101] wurde eine Implementierung vorgestellt, bei der lediglich die Zeilen auf die PEs verteilt wurden, jedes PE aber lle Spalten verwltet. Diese Verteilung benötigt we niger Kommunikationen als (2.8) da u.a. die Maxima in jeder Zeile von jedem PE ohne Kommunikation mit anderen bestimmt werden können. Deshalb eignet sich diese Imple mentierung besonders für Parallelrechner, die eine hohe Latenzzeit bei der Kommunikation aufweisen. Die Reduzierung der Anzahl von Kommunikationen erfolgt jedoch auf Kosten der nutzbren Nebenläufigkeit, w s die Sklierbrkeit dieser Imlementierung einschränkt. 2.3.1.2 Kompatible P v o t - E l e e n Bei der LU-Zerlegung dichtbesetzter Matrizen ist die nutzbare Parallelität vollständig durch die Verteilung vorgegeben. Es ist nicht möglich, mehrer PivotSchritte nebenläuf zu berbeiten, d sich die ktive Submtri mit jedem Schritt ändert. Für dünnbesetzte Matrizen gilt diese Aussage nicht mehr. Sofern kmpatible Pivot- Elemente benutzt werden, stören sich die Änderungen der aktiven Submatrix nicht ge genseitig, so daß solche PivotElemente parallel eliminiert werden können. Ähnlich dem Block-Pivoting beim SimplexAlgorithmus werden so mehrer Iterationen zu einer lle len Itertion zusmmengefßt. DEFINITION 12 Die Elemente B ^ . , Bi einer Matri £ Wixn mit heiße kom tibel, fall für gil Biük 2. Die Submatrix aus den Zeilen und S l t e n von kompatiblen Elementen bilden also eine D i g o n a l m a t r i . Die Bedeutung von kompatiblen Elementen für die llele LU-Zerlegung dünnbesetzter atrizen wird von dem folgenden Satz beschrieben. SATZ 35 1 eien £>jUl ^ 0 nd Bi2j2 ^ 0 kompatible Elemente einer Matri Nach Eliminati beider Elemente gil B3 B- BjlBi B nBh ' 2.10
  • 127.
    PALLELE LÖSUNG LEICUNGSSYSTEME 11 nabhngi der Eliminatinsreihelge B^ nd Bi EI Wir zeigen (2.10) für die Elimintionsreihenfolge Bi B i . N c h Schritt 3 und 5 von Algorithmus 7 gilt B B wobei die l e t e Gleichung us der Kompaibilitätsbeziehung Bixj2 0 Bi2j1 folgt. Gleichung (2.10) zeigt man analog für die umgekehrte Pivotreihenfolge, wobei die Indizes und 2 jeweils vertuscht werden müssen. • Nach Satz 5 können komatible Elemente in einer beliebigen Reihenfolge eliminiert werden, ohne daß dies zu einer Änderung der aktiven Submatrix führt. Insbesondere können verschiedene PEs eine unterschiedliche Reihenfolgen bei der Elimination wählen. Dies kann man sich für einen parallelen LU-ZerlegungsAlgorithmus zunutze mchen, der weniger s t r k synchronisiert und somit von gröberer G r n u l r i t t ist. Konzept der Kompatibilität wurde zunächst in [33] für die Implementierung ei nes parallelen LU-Zerlegungs-Algorithmus auf Multiprozessoren mit gemeinsamen Seicher eingeführt. In 89] wurde es für Transputer-Systeme eingesetzt. Für symmetrische Matri zen hat die Kompatibilität eine einfache Darstellung als sog. elimination Trees, die bereits früher die Grundlge bei der parallelen CholeskiZerlegung symmetrischer dünnbesetzter Matrizen bildete 41, 61]. Sie wurden durch Übergang zur symmetrisierten Matri B + B oder BTB uch auf den unsymmetrischen Fall erweitert [3]. In [33] wird jedoch gezeigt, daß diese Matrizen meist dichter besetzt sind als B, so d ß mehr Arbeit bei der LU- Zerlegung anfällt und die durch Dünnbesetztheit gebotene Parallelität reduziert wird. Aus diesem Grund wird hier ähnlich zu [89] die Kompatibilität direkt uf der unsymmetrischen Besetzungsstruktur der zu fktorisierenden tri usgenutzt.
  • 128.
    11 KAPITEL PALLELUNG A L I T H M U 12 ( A R L L E L U - Z U N G ) Setzte s Solange s Schritt 1 PivotAuswahl): ähle eine Menge von kompatiblen PivotElementen. Schritt 2: Berechne L L o o p für okale Teie der PivotSpalten. Schritt 3 Schicke lokalen Teil der LVektoren den anderen PEs derelben Prozes sorzeile, und schicke lokalen Teil der P i v o t Z e i e n den anderen PEs derelben Pr zesorspalte Schritt 4 a) ür alle lokalen PivotElemente erechne okalen UpdateLoop Schritt 4 (b) Für alle weiteren Pivot-Elemente erechne okalen UpdateLoop Schritt 5 eilenGossip: k t u a l e r e di Werte maxabs und di nzahl der NNEs pr eie. Schritt 6 SpaltenGsi ktualsier nzahlen der NNEs pro Spalte Schritt 7 + e Der U d a t e L o o p für die kompatiblen PivotElemente wurde in zwei Teile zerlegt: In Schritt 4.a werden die lokalen PivotElemente eliminiert und in Schritt 4.b die von den an- deren PE erhaltenen. Dadurch k n n Schritt 4.a gleichzeitig mit Schritt 3 erfolgen. Gängige Paallelrechner mit verteiltem Seicher verfügen über geeignete Hardware, die Kommu- nikation ohne Prozessorbeteiligung abwickeln kann. Der Prozessor initiiert lediglich die Kommunikation, die anschließend asynchron zur weiteren Ausführung des Progrmms er folgt. D m i t gelingt es in Grenzen, den Kommuniktionsufwnd zu verbergen. In den Schritten 5 und 6 wird jeweils ein Gossiping-Algorithmus auf Teilmengen der Prozessoren ausgeführt, nämlich eweils die Menge der Prozessoren einer Zeile bzw. Spalte des xc Prozessorgitters. Sie sind nötig, d m i t jede PE für die PivotAuswahl der folgenden Iteration die korrekte Information der globalen Matrix hat. Die A n z h l der NNEs pro Zeile und Spalte wird für die Berechnung der Markowitzzhlen benötigt. D FillElemente uf an- dern PEs entstehen können, müssen diese Zahlen nach jeder paralleln Iteration aktualisiert werden. Um d s Kommuniktionsvolumen gering zu h l t e n , werden nur die nderungen kommuniziert. Auch die Werte des betragsgrösten NNEs pro Zeile in maxabs müssen aktualisiert wer- den. Im Gegensatz zum sequentiellen Algorithmus können diese Werte nicht erst bei Bedarf berechnet werden, da zu ihrer Bestimmung jeweils alle PEs einer Prozessorzeile kooerie ren müssen. Wenn ein PE einen neuen Wert benötig, w r e ein ufwendiges Protokoll nötig,
  • 129.
    PALLELE LOSUNG LI LEIUNGSSYSTEME 11 damit die anderen involvieren PEs davon erahren und bei der Bestimmung mitrbei ten. Statt dessen werden die Maxima zu Anfang für alle Zeilen bestimmt und nach jeder llelen Iteration ktulisiert. D b e i werden wieder nur die Änderungen kommuniziert. Algorithmus 12 benötigt eine Synchronisation aller PEs lediglich am n f n g einer p r allelen Iteration bei der Auswahl komptibler PivotElemente (su.) und am Ende, wenn die Zeilen- und Spalteninformation ktualisiert wird. Also erfolgt nur alle e Eliminations schritte eine Synchronisation und damit wesentlich seltener, als wenn ohne Nutzung von Kompatibilität ach jedem Eliminationsschritt synchronisiert werden müßte. Da bei jeder Synchronisation alle PEs auf den letzten warten müssen, erwartet m n durch die selteneren Synchronisationsoertionen insgesmt kürzere rtezeiten. 2.3.1.3 uswahl kompatibler ivot-Eleen Zu den beiden Zielen bei der PivotAuswahl für die sequentielle LU-Zerlegung, nämlich der numerischen Stabilität und der FillMinimierung, muß für den p a l l e l e n Fall ein weiteres Kriterium hinzugezogen werden, nämlich das Auffinden einer möglichst großen Menge kompatibler PivotElemente. Glücklicherweise ist letzteres gut vereinbar mit der FillMinimierung, denn PivotElemente mit niedriger M r k o w i t z Z h l haben wenige NNEs in derselben Zeile oder S l t e und sind somit eher kompatibel zu anderen Elementen als solche mit einer höheren MarkowitzZahl. Aus diesem Grund kann die Auswhl der Pivot Elemente weitgehend von der sequentiellen Version übernommen werden. Der Algorithmus 3 für die Auswahl kompatibler PivotElemente erfolgt in drei Pha- sen. In der ersten Phase wählt jedes PE aus seinen lokalen NNEs eine Menge von Pivot Kndidaten aus, die zu einer globalen Kandidatenmenge zusammengefaßt wird. Zu jedem Paar von PivotKandidaten wird in der zweiten Phase die Kompatibilitt überprüft und gespeichert. Schließlich wird in der letzten Phase greedy-rtig eine Teilmenge k o m t i b l e r PivotElemente us der Kndidtenmenge e t r h i e r t . A L I T H M U TIMMUNG K A T I B I V O - E N T E hase (KandidatenAuswahl): ilde lokale s o r e r t e Liste von PivotKandidaten Gossip ilde g l b a l e s o r e r t e Liste G von PivoKandidaten hase 2 (Inkompatibiliätsbestimmung): ilde lokale L i t e von Paaren inkompatibler PivoKandidaten Gossip ilde g l b a l e L i t e von Paaren inkompatibler PivoKandidaten hase 3 (KompatiblenAuswahl) Setze (7 = 0. Solange n i h t leer
  • 130.
    11 KAPTEL PALLELIUNG Schritt 1 Sei G das e r e Element i G. Setze { } Schritt 2 Entferne und alle zu nkompatiblen Elemente aus G st die Menge kompatibler PivoElemente In der ersten Phase wählt zunächst edes PE eine lokale Menge von Pivot-Kandidaten aus, wobei jeder Kandidat ch derselben Strategie bestimmt wird wie die Pivot-Elemente im sequentiellen Fall. Diese Kandidaten werden lokal nach aufsteigender Markowitz-Zahl sortiert. Anschließend wird mit einem Gossiping-Algorithmus aus den lokalen sortierten Kandidatenlisten eine globale sortierte Liste erzeugt. Die Gossiping-Operation ist dabei die Vereinigung zweier sortierter Listen in eine sortierte Liste und rbeitet in linerer Zeit. In der zweiten P h s e bestimmt jedes PE Paare inkompatibler Pivot-Elemente, indem es lokal die relevanten Matrix-Elemente überprüft. Typischerweise treten aufgrund der niedrigen Markowitz-Zahl der Kandidaten nur wenige Inkompatibilitäten auf. Mit einem weiteren Gossiping-Algorithmus wird die Menge lle inkomptibler Pivot-Kndidtenpaare ufgestellt. In der dritten Phase wird schließlich die Menge der kompatiblen Pivot-Elemente aus der sortierten Kandidatenliste mit einem Greedy-Algorithmus extrahiert. Das erste Element der Kandidatenliste wird herausgenommen und der Menge der Pivot-Elemente zugefügt. Anschließend werden alle zu diesem Element inkompatiblen Kandidaten aus der Liste ent- fernt. Mit dem nun ersten Element in der Kndidtenliste wird ebenso verfhren. Dies wird iteriert, bis die Kndidtenliste leer ist. Die Bestimmung einer maximalen Teilmenge kompatibler Pivot-Elemente ist ein Stabile-Mengen-Problem, zu dessen Lösung aufwendigere Algorithmen existieren, die bes- sere Lösungen versprechen. Sie werden jedoch aus zwei Gründen nicht benutzt. Zum einen wurde die Kndidatenmenge selbst ohne weitere Berücksichtigung von Komptiblität auf gestellt, so daß eine etwaige „Verbesserung bereits dort ansetzen müßte. Zum anderen be- vorzugt der Greedy-Algorithmen Kandidaten am Anfang der Liste, also solche mit geringer Markowitz-Zhl. Diese sind ber ch wegen ihrer FillMinimierungseigenschft vorzuzie- hen. Es gibt zwei Spezialfälle, für den sich eine spezielle Implementierung lohnt, nämlich für Zeilen oder Spalten mit nur einem NNE. Solche werden Singletons genannt. Offenbr führt jede Menge von Zeilensingletons mit paarweise verschiedenen Zeilenindizes zu kompatiblen Pivot-Elementen; gleiches gilt für Spaltensingletons. Für solche Mengen bedarf es also keiner weiteren Überprüfung der Komptibilität. Ferner entfällt der Updte-Loop und für Spltensingletons ch der L-Loop. Singletons treten bei den Basis-Matrizen im Simplex-Algorithmus besonders häufg auf, diese meist auch Schlupfvariablen (bzw. Variablenschrnken bei einer Zeilenbasis) ent- halten. Aus diesem Grund werden Algorithmus 12 zwei P h s e n vorgeschaltet. In der ersten werden lle Zeilen-Singletons und in der zweiten lle Splten-Singletons eliminiert. Die
  • 131.
    PARA OSUNG UNGSSYST 11 verbleibende ktive Submatrix heißt der Nukleus der Matrix und enthält keine weiteren Singletons. Im Nukleus können zwar nach einigen Pivot-Eliminationen neue Singletons ent- stehen, jedoch geschieht dies i . in so niedriger Z h l , d ß eine s e p a t e Behndlung nicht mehr lohnt. 2.3.1.4 Lazy L a d n c i n g Da die zu verrichtende Arbeit mit Abnahme der Dimension der ktiven Submatrix dyna misch von Iteration zu Itertion variiert, und zwar wohl möglich unterschiedlich uf ver- schiedenen PEs, muß ein dynamischer Lastusgleich erfolgen. D z u b e d r f es eines M ß e s für die L s t eines PEs im Vergleich zur G e s m t l s t . Eine Möglichkeit für solch ein Maß wäre das Verhältnis der Anzahl der NNEs der aktiven Submatrix eines PEs zur Gesamtzahl der NNEs. Letztere zu bestimmen würde jedoch einen weiteren Kommunikationsufwand erfordern, der vermieden werden sollte. Statt dessen wird ein approximtives Maß verwendet, die von einer gleichmäßigen Verteilung der NNEs auf die Submatrix ausgeht. Dies ist durch die Verteilung (2.8) reltiv gut gewährleistet. Für jedes P (i) bezeichne r s (i,j) die Anzahl der Zeilen und c(i,j) die A n z h l der Splten von der ten aktiven Submtrix, die von dem PE verwltet werden. D n n wird die st des z-ten Es ls (i (t)-(t,j 2.11 defniert. Wegen ^rs(ij) =n ^2c(ij) ist die G e s m t l s t = (n)-( 2.1 Die Aufgabe des Lastausgleichs ist es, I (i) Ls/p möglichst gut zu erreichen. Aktive Verfahren spüren Abweichungen davon auf und transferieren Last von überlasteten PEs zu unterforderten. Bei der LU-Zerlegung würde dies durch die Übergabe von Zeilen oder Splten erfolgen, w s zu einem zusätzlichen Kommunikationsufwnd führte. Dieser kann mit einem ssiven Lastusgleichsverfahren vermieden werden, der in [101] zuerst vorgestellt wurde. Da in jeder parallelen Iteration Last abgebaut wird, k n n die Lastverteilung ausgeglichen werden, indem PEs mit einer höheren Last versuchen in der folgenden Iteration mehr L s t abzubauen als solche mit einer geringern Last. Dies wird über die Anzahl der P i v o t - n d i d a t e n ks(ij) erreicht, die edes PE (ij) in der -ten Itertion uswählt (ij) 2.1 amit werden insgesamt ca K Kandidaten ausgewählt, wozu jedes PE anteilig zu seiner Last viele beiträgt. Abbildung 2.4 zeigt, d ß d m i t in der t eine bessere Lstverteilung erreicht wird.
  • 132.
    KAP P A R A U N G 1 mit Lastausgleich ohne Lastausgleich optimale Lastverteilung - CO _> M - 0 CS 0 Ü 5 0 • 105 1.0 • 106 1 5 • 106 röße der globalen aktiven Submatrix Abbildung 2.4: Effekt des lazy load-balancing. Es ist die maximale und minimale Last max{ls(i,j)} bzw. mm{ls(i,j)} über der Gesamtlast aufgetragen. Durch das lazy load-balancing wird die Differenz beider Werte kleiner gehalten als ohne 2.3.2 Parallele Vor- und Rückwärtssubstitution Bei der Behandlung der parallelen Lösung gestffelter linerer Gleichungssysteme be- schränken wir uns exemplrisch uf den F l l Ly = b 1.11 wobei L eine untere Dreiecksmatrix mit Diagonalen 1 sei. Die Lösung von Gleichungssy- stemen mit einer oberen Dreiecksmatrix gestaltet sich analog. Der Lösungslgorithmus zu 1.116) wurde bereits in Abschnitt 1.7.4 vorgestellt und sei hier wiederholt: Für i = 1 , . . . n: Für j = i + 1, , n: Setze yj < yj -yi Lj)
  • 133.
    PA LOSUNG ICHUNGSSYST Die Berechnungen in der Schleife über j sind für verschiedene Indizes vollkommen un- abhängig. Deshalb kann diese Schleife parallelisiert werden, indem jedes PE eine Teilmenge der Indizes berbeitet. Die Schleife über i bleibt hingegen inherent sequentiell. Wie schon bei der LU-Zerlegung bietet die dünnbesetzte Struktur von L weitere Ne- benläufigkeit. L t nämlich ach der p l l e l e n LU-Zerlegung eine besondere Struk- tur, bei der sich entlang der Diagonalen je- weils digonale Submatrizen befinden. Bezeich- r> ne mit Bi, B 2 . , - & die zugehörigen Indexmen- B gen, d.h. die atrizen Bii sind für i = 1, R 2 Einheitsmtrizen. D b e i gelte bi bj für lle k e Bi und bj e Bj mit (vgl. Abb. 2 . ) . Wegen der Struktur von L k n n für i e Bi die Schleife über j auf j 6 Bi+i U U Bk be- schränkt werde. Insbesodere fällt keine Arbeit für j E Bt an. D dies für alle i < Bt zutrifft und E Bx B2 die Operation in der Schleife über j assoziativ ii ,. -J.U-J-J.-1 4. v -u Abbildung 2.5: Struktur der Dreiecksmatrix & und kommutativ ist, bietet sich eine zusätzliche r , .. . T TT „ , . n L nach paralleler LU-Zerlegung mit kompati Nebeläungkeit innerhlb der Schleife über %. ^j Pivot Elementen ALGORITHMUS 14 ür l = 1, , Für j E Bl+1 ßt ür i e Bf Setze yj yj yi Lj In Algorithmus 14 kann wieder die Schleife über j parallel ausgeführt werden. Dies gilt nicht für die Schleife über i, d die Schreib- und Lesezugriffe auf jj Synchronisiert werden m ü s s e . Es ist jedoch (bis auf numerische Fehler) uerheblich, i welcher Reihefolge die Elemete vo Bt traversiert werde Algorithmus 4 impliziert eine zeilenweise Verteilung der Matrix L. Dabei legt die Schleife über i eine zeilenweise Speicherung von L nahe. Wie in Abschnitt 1.7.4 ist dies jedoch für dünnbesetzte Vektoren b ungünstig, da bei der Schleife über i häufig unnötige Operatioen mit Vi = 0 usgeführt werden. Aus diesem Grund wurde eine spaltenweise Speicherung beibehlten L gleichzeitig zeilenweise auf die PEs verteilt: Sind p = k PEs vorhande, so verwaltet PE i die Submatrix Bi. mit in einer spaltenweise Speicherug. lls nur p < k PEs verfügbr sind, erhält da PE i alle Submatrize L', mit j mod p = i. durch ergibt sich bei p <k gleichzeitig ei stverteilug.
  • 134.
    KAPIT PAISIERUNG PE q führt folgede Algorithmus us: ALGORITHMUS 15 ( P A L L E L E VORWÄRTSSBSTITUTION Schritt 1 earbeitung): ür / = 1 , . . . ,q W t e auf PE ür i e Bt ür j e Bq. Setze yj yj - Vi Lj Schritt 2 (Synchronisation Signalisie Termation Dabei wartet jedes PE in Schritt 1 drauf, daß PE / Schritt 2 erreicht. Diese Synchronisation erzwingt die sequentielle B e r b e i t u g der globalen Schleife über / in Algorithmus 14. Die Schleife über j wird wieder nur dann usgeführt, wenn i/i j gilt. Ddurch k n n die Dünnbesetztheit vo usgeutzt werde Bei e i e m Parallelrechner mit verteiltem Speicher erfolgt die Synchronisation bei der Übertrgung des TeilVektors ysv der für die Berechungen in Schritt 1 erforderlich ist. Für e i e Shred-Memory-Architektur würde higege e i e explizite Sychroisatio b e u t z t .
  • 135.
    apitel Imlementieru in Diess Kapitel b e i b t d n objktorientieren Software-Entwurf für die d i Imlemen- tierungen SoPlex, SMoPlex und DoPlex. Als slcher gliedert er sich in eine Menge von Klas- sen. Die Klassen für die sequentielle Implementierung werden in Abschnitt 32 vorgestellt In Abschnittt 3 3 werden die zusätzlichen Klassen beschrieben, die für die Parallelisieru für Parllelrechner mit gemeinsamen und verteiltem Speicher entwickelt wurden. Zuv wird jedoch in Abschnitt 3 1 e i e kurze Einführug i die Konzete der objektrientierte P r g r m m i e r u n g gegeben 3.1 Grundlagen objektorientierter P r o g r a m i e r u n g Seit i den 50er Jahre erste elektronische Datenverarbeitungsanlagen a dem Markt er- schienen sind, ist die Hardware einer rasanten Weiterentwicklung unterwofe. Mit dieser Entwicklug einher geht die Möglichkeit immer schwierigere Probleme zu l s e n Allerdings bedar es dazu uch immer k p l e x e r e r Software. Dabei traten die Grenzen der jeweils bis d a o ntwickelten Entwurfs- u Implementierungstechike zum Vorschei was wiederum Anaß zu Fortentwicklungen au de Gebieten des Softwarntwurfs, der Programmiersa- chen und der formalen Spezifikation war Diese Entwicklungen gemei ist die Zielsetzug folgede allgemeie Qulitätsanforderugen an Sofare zu unterstütze 1. Die Anforderug der Korrektheit verlangt, daß ein Progrmm seiner Spezifikation genügt. Sie ist natürlich die wichtigste Anforderug, die an Software zu stellen ist Dazu wurden Methoden der formalen Verifikatio entwickelt mit denen die Korrekt heit eines Progrmms gegenüber seiner Spezifikation formal nachgewiesen werden kann. Der Aufwand für solch einen Beweis ist jedoch so erheblich, daß diese Tech- niken in der Regel nicht zum Einsatz kommen Vielmehr wird statt dessen durch umfangreiches und systematisches Testen die Korrektheit von Software überprüft mit man jedoch nur i der ge ist d s evtl rhandensein von Fehlern nachzu-
  • 136.
    20 KAPITEL 3. IMPLEMETIERUNG IN C++ weisn, nic aber dere A b w e s h e i t . Mit dem A u f m m e n von Nichtdeterminismus etwa bei paallelen Algorithmen werden die Grenzen des Testens immer deutlicher aß formle M e t h d e eine zunehmede Bedeutug beigemessen wird. 2. Erweiterbarkeü beschreibt die Möglichkeit die Softwre n (zuknftige) deruge und Erweiteruge der Spezifiktion anzupasse 3 ter Wiederverwendbarkeit versteht man die Mglichkeit, die Softwre oder Teile avon bei der Programmierung anderer A n w e d u g e zu benutze. D b e i ist Kom- atibilität von zentrler Bedeutug . Effizienz beschreibt die „gute" Nutzung vorhandeer Ressourcen In wisseschaftli- chen Applikationn wird der Begriff meist mit "Laufzeiteffizienz", lso der möglichst schnellen erechnng des gewnschten Ergebnisses, gleichgesetzt Für icht wissen schaftliche Awendunge umfaßt der Effizienz jedoch auch de E i a t z anderer Ressurce wie S p e i c h e r t z , E i - u d Ausgbe der K m m u i k a t i o n e t z w e r k e Darüberhinaus stelle sich in der Praxis oft weitere wichtige Anforderuge etw hisicht lich der utzerfreudlichkeit, der Fehlertoleranz u.v.m. 3.1.1 rogrammierparadigmen Die Entwicklungen a f den Gebieten der SoftwareTechnik und Programmiersrache ist durch verschiedene s g . Programmierpadigmen (oder -modelle) gekennzeichnet. Unter einem Prgrammierpardigm versteht man die bereitgestellte abstrakten Ausdrucksmit tel zur Formulierug von Programmen. Auf grober Ebene unterscheidet man zwische imperativer fuktionaler logischer un objektrientierter P r o g r m m i e r u g Im folgenden werden kurz imperative Progrmmierparadigmen sowie Grudzüge der objektorientierten Prgrammierung skizziert und auf ihre Leistungsfähigkeit in bezug a die Anforderungen 1 4 verglichen. Dabei wird kei nspruch auf Vollständigkeit erhben sondern lediglich ei Überblick verschafft, der eine Einordug der P r o g r m m i e r s a c h e C + + ermöglicht, da die i dieser Arbeit beschriebene Software i C + + entwo imlementiert wurde 3.1.1.1 Imperative Programmierung Die i m e r t i v e Programmierug ist die älteste Art der Programmierug und wurde e i e r Reihe von trukturierungen unterzogen. Zunächst bestand sie in der Beschreibung von Algorithmen als Folge elementarer Oerationen auf elementaren Daten. Zur graphische Drstellung solcher Programme e i g n sich Flußdiagrmme Die Anforderugen 1-4 wurden bei dieser Art der Programmierung kaum unterstützt. So kann etw kei Prgrammteil frei in e i e m andere Z u s m m e n a n g verwedet werde d
  • 137.
    3. UNDEN OBJRINTIERTER PRMMIERUNG dort V a l e öglicerweise a n d w e i t i g b e n z t weden Dies widespricht Anfoderun 3. Ebens kann prinzipiell jeder Punkt in einem Programm von einem beliebigen anderem a n g e s r u g e werden. Ddurch ist eine Änderung stets mit kaum lkulierbre Risike v e r b u d e , was wiederum Widersruch zu Anforderung 2 steht [5] Dieser Problematik wurde durch Bereitstellung weiterer Abstraktionsmittel on t r o l l f l - und Dateebene begegnet die zur strukturierten Programmierung führte [36. Sie h t den früheren imperativen Prgrammierstil vollständig abgelöst. Hierbei wird ein Pr gramm als F l g e strukturierter Operationen (Ausdrücke, Schleif Prozeduren, Blöcke) a strukturierte Daten (lokale Namesräume, strukturierte D a t e n y p n wie Verbünde u Reihungen) formuliert. Durch die trukturierung des Namensraum der V r i b l e k n n sichergestellt werden, daß Variablen nicht i verschieden Zusammenhängen kopati bel b e u t z t werden, und durch strukturierte Operationn (Schleifen etc.) werden Sprünge mit den amit verbunden Risike vermieden. Zur Darstellun strukturierter Program- me werden meist Nassichneiderman Struktogramme verwendet [79 ie ermöglichen eine übersichtliche D r s t e l l u g strukturierter O e r t i o n e n u d sehe kei öglichkeit zur D r stellug von S p g e or Zunächst erscheint die Restriktion bei der Benutzug von Sprngen oder beim Zugrif a f Daten als hinderlich. Es zeigt sich jedoch, daß z.B. Sprünge geerell durch äquiv l e t e strukturierte Ausdrucksmittel (wie Schleife) ersetzt werden önnen. Dafür gewinn an groß Vorteile hinsichtlich der Anforderungen 1-4: (Seiteneffektfreie) Prozeduren etw könnn in e i e m beliebigen anderen Programm eingesetzt werde nforderug 3), w zur Entwicklung umfangreicher Fuktionsbibliotheken führte Dennoch unterstützt auch die strukturierte Prgrammierung icht alle g. Anforde r u n g e . Isbesondere zeigten sich Mängel bei der Wiederverwendbrkeit. Man denke etw an e i n Satz von Funktionn, die O e r t i o n e n auf einer komplexen Datestruktur, z.B ei ner dünnbesetzten Matrix, usführe. Oft wird diese Datenstruktur global zur Verfügung gestellt, damit alle Funktionen daauf zugreifen können. Dies kann aber zu Kmpatibi litätsoblemen mit andere SoftwreKomponnten führen, die evtl. dieselbe g l l e ten anders v e r w e d e , w s zu Ikonsistenze führen kann Diese Problematik hat zur Entwicklug der modularen Programmierung geführt Sie stellt zusätzliche Ausdrucksmittel zur Trennung von Schnittstelle und der zugehörigen Im- lementierung zur Verfügung. Die Implementierung e i e s Moduls umfaßt lle benötigten tenstrukture nd internen Funktionen zu deren M p u l a t i o n . Au diese kann aber „von auerhalb" des Moduls nicht direkt zugegriffen werden ielmehr kann nur die Schnittstelle benutzt werden. Die Mdulschnittstelle ist eine Auflistung aller D e k l t i o n n (Funktionen Variablen, etc.), die von außerhalb des Moduls angesprchen werde önnen Dementsre chend stellt sich ein mdulorientiertes Progrmm als eine Menge von odulen dar, die nur über ihre Schnittstellen i n t e r g i e r e . Die Darstellung eines slchen Prgramms geschieht mithilfe von dulgraphe i d e n n verschiedene Beziehunge zwische den M d u l e wie B e u t z t r e l t i o n n oder Kontrllflu rgestellt werde
  • 138.
    22 KAPITEL IMPLEMETIERUNG IN C++ Die Einschränkung hisichtlich des Zugiffes e r s h e t z u n ä c t als h d e r l i c h . Wieder- um zeigt sich jedoch, daß bei sorgfältiger Wahl der chnittstellen keine Nachteile erwach- sen. Dafür gewinnt man ber groß Vorteile bei der nterstützug der Anforderunge des Softwrentwurfs: . Die Anforderung nach Korrektheit wird von der mdularen Programmierun er heblichem Maße unterstützt. Kapselt man etwa die D t e s t r u k t u r e n auf denen ein Algorithmus rbeitet, in Module ein, s kann bei der Imlementierung eines diese Module nutzende Algorithmus die Konzentration allein a f dessen Funktionalität gerichtet werden, anstatt stets dabei Sorge tragen zu müsse, die Itegrität der ver wendeten Datenstrukturen aufrechtzuerhalte Diese wird j von de tsrechende M d u l e selbst gewhrleistet 2. Die Erweiterbarkeit wird durch eine modulare Strukturierierung der Software inoweit unterstützt als zum einen die Erweiterug der Schnittstelle eines M d u l s also da Hizufügen weiterer Vereinbarunge, keinerlei Rückwirkungen uf Code a ß e r h l b des Moduls hat. Dies trifft selbst dann zu, wenn die Erweiterung eine vollkmmene Umstrukturierung der Implementierung der internn Datenstrukturen des Moduls b e d i g t Zum ander wird die Erweiterung von Softwre um zustzliche M d u l e über die K p a t i b i l i t t unterstützt 3. Die Kompatibilität verschiedeer M d u l e zueinander wird ebenfalls durch die Tren- nung von Schnittstelle u d Imlemetierung gewhrleistet; kei Modul kann die Inte grität eines deren beeinflußen, da interne Daten nicht a n g e s c h e werde önn mit ist e i e gute Wiederverwendbarkeit gesichert Wie die (Laufzeit) Effizienz von der modulren Programmierung berührt wird, hängt im wesentliche von der Ausgestaltung der Schnittstellen ab. Gleichzeitig ermöglicht die geringere Komplexität der Software durch die modulare Programmierung ei bes seres Verständis, und bietet somit bessere Mglichkeiten zur Optimierung z . . in- dem man die D t e s t r u k t u r e n hinter e i e r Mdulschittstelle durch effizienter aus uscht Module eignen sich besonders zur Implementierung bstrakter D a t e p e n . Das sin beutzerdefinierte Datentpe die ausschließlich über die Schnittstelle m a n u l i e r t werden können. Daher kommt der chittstelle ( n d ihrer Semantik) e i e besondere Bedeutung zu, denn sie definiert den D a t e n . Die chittstelle wird deshalb als Teil des D t e y p s an gesehen. Zu e i e m abstrakte a t e n p önn wie bei elementaren Datenty Varible erzeugt werde. Diese werde nn s t z e der auch Objekte genannt 3.1.1.2 Objektorientierte Programmierung Zur Motivation der objektorierten Programmierung zeigen wir zunächst am Beispiel des Simlex-Algrithmus, daß dieser Progrmmierstil die Wiederverwedbrkeit besser u
  • 139.
    UNDEN OBJRINTIERTER PRMMIERUNG t e r s t als die imperative Programmierug Wie in Abschnitt 1.6 d a r g t e l l t , gibt es eine große Vielfalt unterschiedlicher Pricing-Strategien, die jeweils zu einem korrekten Simplex- Algrithmus führen ( e i e geeignetes Kreiselvermeidungsverfahren vorausgesetzt). Um diese Vielfalt programmtechisch mit einem imperativen Progrmmierstil zu erfassen, wird in der implex-chleife eine Verzweigug eingesetzt, die bhängig von einem Parameter die e i e oder die andere Pricing-Funktion aufruft. Will man nun eine weitere Pricing-Strategie hinzufügen so ist man azu nur in der Lage, wenn man über den Quellcode verfügt und die Verzweigug entsprechend erweitert Dies widersricht den Anforderugen nach Erweiter r keit u d Wiederverwendbarkeit Der G r u d für die eigeschränkte Wiederverwedbarkeit liegt in Art, wie bei der im erativen Programmierug Fuktionsafruf aufgelöst werden. Dies geschieht bereits zur Übersetzungszeit, so daß die Integration einer weiteren Pricing-Fuktion eine Ä d e r u des Aufrufes u d eine e r e u t e Übersetzug erfordert Um eine generische (also allgemein verwendbare) Simplex-Schleife zu programmieren muß die Auflösug des Fuktionsaufrufs für das Pricing erst zur Laufzeit erfolgen. Dies wird von objektorientierten Programmiersprachen besonders uterstützt 1 . D m i t kann die implex-chleie geerisch formuliert werden, s daß sie für alle zuknftigen Pricing- Verfahre hne Änderug geeignet ist Verschiedene Pricing-trategie werden i ver schieden bstrakten D t e n y p e n implementiert, die j e d c h ntereinander große Ähn lichkeite fweisen: Die Schittstelle jedes dieser Datentypn nthält z.B. eine Funkti on s e l e c t E n t e r O , um den I d e x der in die Basis eintretenden Variable auszuwählen. Jeder Dtentyp implementiert jedoch bei dieser Funktion ein andere Pricing-Stategie Zur L ö s u g eines LPs wird dem Simplex-Algorithmus e i e Instanz eines solchen Pricig- Datentyp übergeben das wir das Pricing-Objekt n e n n e . I der implex-Schleife wird n die zu dem ü b e r g e b e n Objekt gehörende Funktion s e l e c t E n t e r O aufgerufen. Dabei h der aufrufende C d e (also die Simplex-Schleife) keine Kontrolle darüber welche Funktion und damit welche Pricing-Strtegie tatsächlich ausgeführt wird. Dies ist allei durch d Pricig-Objekt bestimmt; ihm wird s m i t e i e eigee Autonomie z u g e s c h e Die zentralen Begriffe der objektorientierte Programmierung sind Klasse, Objekt und Methode. Eine Klasse ist ein (abstrkter) Datetyp. Ihre Instanzen heiße Objekte und die Funktionen ihrer Schnittstelle heiße M e t h d e . Zwei zugehrige Konzete unterscheide Klsse von ihre imerativen Gegestücke Dynamic Typing: Darunter versteht man die Möglichkeit, beliebig Objekte als Para- meter v n Methoden der Funktionen zu übergeben ohne Rücksicht auf ihre Klasse (oder ihren Typ). Dies steht im Gegensatz zum static Typing, bei dem der Typ von Parametern zur Übersetzungszeit festgelegt ist. Dies ist der tandard bei gängigen imperativen Programmiersprachen wie , FORTRAN der PASCAL. Für das bi eispiel bedeutet dynamic T i n , daß der ^ s ist auch möglich per Funktionszeiger eine generische Simplex-Schleife zu reaisieren. Dies kann e d c h a s eine obektrientierte Strukturierun per Hand angesehen werden.
  • 140.
    KAPITEL PLEMETIERUNG IN C++ SimlexLöser jedes beliebie Objekt akzeptieren muß. Dies gilt insbesonder auch für Objekte von PricingKlassen, die erst später entwickelt wurden. So fern die Methode s e l e c t E n t e r O korrekt implementiert wurde, erhält man stets einen funktionierenden Simplex-Algorithmus hne da eine Änderun des Programmtextes ntwendi äre ate Binding: Als late Binding wird die Art des Methodenaufrufs bei der objektorien- tierten Programmierung bezeichnet, daß ämlich erst zur Laufzeit anhand des benutzten Objektes und der gewählten Methode festgelegt wird, welche Funktion tatsächlich ausgeführt wird. Im imperativen Fall steht dagegen die auszuführende Funktin bereits zur Übersetzunszeit fest Die Folge dieser Konzepte ist der sog. Paradimenwechsel beim Übergang von der im- perativen zur objektrientierten Programmierung Bei der imperativen Programmierung befiehlt (imperare = befehlen) stets der aufrufende C d e , welche Funktion a u s f ü h r t wird. Daegen werden bei der objektrientierten Programmierung Objekte als autonome Instan- zen angesehen, die eigenständi zur Laufzeit entscheiden", welche A k t i n sie bei einem Methodenaufruf ausführen. Zur Beschreibung eines weiteren Konzeptes der objektorientierten Programmierung nämlich der Ableitung, kehren wir zum Beisiel der Pricing-Klassen zurück. Offenbar ähneln sich alle PricingKlassen insofern, als daß sie (jedenfalls in Teilen) dieselbe Schnitt stelle aufweisen. Um Ähnlichkeiten zwischen Klassen programmtechnisch auszudrücken und dabei eventuell redundante Implementierungen zu vermeiden, bietet die objektorien- tierte Programmierung den Mechanismus der Ableitung v n Klassen. Sie ist über folgenden Zusammenhang definiert2: Seien A und B Klassen, wobei B von A abgeleitet sei. Dann kann jede Methode der Klasse A auch von Objekten der Klasse B ausgeführt werden. Dies hat zur Folge, daß Objekte von B überall dort eingesetzt werden knnen, wo Objekte von A erwartet werden. Man nennt A Basisklse v Die Ableitung von Klassen kann für zweierlei Konstruktionen verwendet werden, nämlich zur Er weiterung und zur Änderung von Klassen. Benötigt man eine Klasse, die zusätzlich zur Schnittstelle einer bereits bestehenden Klasse einige weitere Methoden anbietet, so kann dies durch Ableitung realisiert wer- Abbildung 3.1: Ableitunggraph d e n > b e i d e r lediglich die zusätzlichen Methden im- plementiert werden müssen. Wird hingegen eine Klasse gebraucht, die bei gleicher Schnitt- stelle eine andere Implementierung oder Semantik einiger Methoden aufweist, so kann dies wiederum per Ableitung geschehen, wobei lediglich die zu ändernden Methoden implemen- tiert werden müssen. atürlich sind auch Mischformen beider K n s t r u k t i n e n möglich. Zur Darstellun n Ableitunsbeziehunen zwischen Klassen werden sog Ableituns 2 G n a u m m e n e ä r t di den w i h t n Fall r „public" blitun
  • 141.
    UNDEN OBJRINTIERTER MMIERUNG graphen eingesetzt (vgl Abb. 3 ) . Jede Klasse wird durch einen Kasten repäsentiert, und eine Ableitunsbeziehung durch einen Pfeil von der abeleiteten Klasse zur asisklasse 3.1.2 E i n o r d n u n g von C-— Die Programmiersprache C + + erfreut sich derzeit weiter Verbreitung, ist sie doch aufgrund ihrer Ähnlichkeit zu C schnell zu erlernen, und bietet darüber hinaus ein genügendes Ma an Unterstützung für bjektorientierte SoftwareEntwicklung. Dabei wurde au eine vollkom- mene Unterstützung aller Leistungsanforderungen der bjektorientierten Programmierung zugunsten einer Übersetzbarkeit in ebenso effizienten Code wie C verzichtet. Aus diesem Grund wurde C + + auch für die hier v e s t e l l t e n Implementierungen verwendet. Ableitung von Klassen wird v n C + + mittels Vererbung realisiert. Dies bedeutet, daß der Compiler für die abgeleitete Klasse eine Kopie der Basisklasse erzeugt und dieser die zusätzlichen Methden und internen Daten hinzufügt4 C + + ist wie C eine statisch getypte Sprache und bietet somit kein echtes dynamic Typing. Es gibt jedoch zwei Ansätze eine Vereinfachung davon zu unterstützen. Zum einen sind dies parametrisierte (template) Klassen der Funktionen, bei der ein Typ Parameter sein kann. Damit läßt sich z B . ein Stapel für Objekte einer beliebigen aber festen Klas se realisieren. Zum anderen eschieht eine automatische Tpanpassung, wenn ein Objekt einer abgeleiteten Klasse als Parameter übergeben wird, wo eigentlich ein Objekt seiner asisklasse erwartet wird. Dies ist möglich, da die abgeleitete Klasse stets eine Kopie der Basisklasse beinhaltet Um vom abgeleiteten Typ wieder zum Ursrungstyp eines Objektes zu gelanen, sieht der C + + tandard das sog. RTT runtime t e informatin) vor. Dies wird j e d c h n c h kaum v pilern unterstützt Im Normalfall werden nach einer automatischen Typanpassung die Methoden der Ba- sisklasse benutzt, selbst wenn diese von der abgeleiteten Klasse überlagert wurden. Der Grund dafür ist, daß so eine Codeoptimierung mit Method-Inlining5 öglich ist. Ist es für die Krrektheit des Programms hingegen wichtig, daß ein late Binding geschieht, d.h. die ü b e r l e r t e n Methoden der abgeleiteten Klasse benutzt werden, so kann dies für jede Me thode esondert spezifiziert werden ( v i r t u a l Methoden). Für solche Methoden ist jedoch oft ein Inlinin nicht möglich, s da ein Methodenaufru etwa den Aufwand eines Funkti nsaufrufes in bedingt. C + + weist somit Einschränkungen s o o h l hinsichlich des late Bindings wie auch beim dynamic T y i n g auf Da beides nicht stren unterstützt wird, handelt es sich bei C + + auch 3 Es herrscht ein erbitterter Streit unter den Informatikern, ob die Pfeie in der oben beschriebenen der in der umgekehrten Richtung zu zeichnen seien. Sowoh für als auch gegen beide Varianten sprechen verschiedene uffassungen. Die hier verwendete Pfeirichtun entspricht der Bedeutun er er ist ein" [45]. 4 Dies gilt nicht für den Fall on virtual-Vererbung 5 Beim function-inlining wird anstelle eines Unterprogrammaufrufes der Funktionscoe direkt in den aufrufenden C e k p i e r t . Dadurch entfällt der Beareitunsaufwand für die P a r a m e t e r ü e r e .
  • 142.
    KAPITEL PLEMENTIERUNG IN C++ nicht um eine „ehte" objektorientierte Programmieprache. Dafür werden aber Appro- ximationen bereitgestellt, die im überwiegenden Teil von Anwendungen, insbesondere aus dem mathematisch-naturwissenschaftlichen ereich, den Anforderungen nach Objektorien- tierung gengen. Sie wurden s auselegt, daß der Rechenaufwand eines Methodenaufrufes auf den Aufwand eines Funktinsaufrufes in einem gewhnlichen C-Programm beschränkt bleibt. Damit eignet sich C + + wie für die effiziente Imlementierun mathematischer Algorithmen. 3.2 Klassen und ihre eziehungen n diesem Abschnitt wird der SoPlex zugrundeliegende objektrientierte SoftwareEntwurf beschrieben; die beiden parallelen Erweiterunen D P l e x und Plex werden im folgen- den Abschnitt 3 3 diskutiert Einem objektrientierten Entwurf folgend, gliedert sich SoPlex in eine Vielzahl mitein- ander in Beziehung stehender Klassen. Es werden keine globalen Datenstrukturen verwen- det, da solche stets das Problem der Inkompatibilität zu Datenstrukturen anderer Kom- ponenten eines komplexen Programms in sich bergen. Dies ist besonders wichtig für einen LP-Lser, der in einer ielzahl von Anwendungen eingesetzt werden ll Es werden drei Kategorien von Klassen unterschieden. Ein Satz von elementaren Klas sen implementiert grundlegende Datentypen, die auch in anderen Projekten Anwendung finden können. Etwas mehr auf die Implementierung n SoPlex ausgerichtet sind die Vektor-Klassen. Sie implementieren verschiedene Datentypen zur Repräsentation v n Vek- toren bis hin zu ganzen LPs. Auch wenn sie über umfangreiche Schnittstellen zur Manipu- lation oder Operati (etwa der Vektoraddition) verfügen, ist ihr primärer Charakter doch der der Einkaselung von Daten. Im Geensatz dazu dienen die algorithmischen Klassen der K s e l u n Teil)Algorithmen. 3.2.1 Elementare Klasse Es wurden eine Reihe von Klassen implementiert, die grundlegende Datentypen wie dyna- mische Felder oder verkettete Listen bereitstellen. Entsprechende Klassen finden sich wohl in jedem Projekt, weshalb inzwischen eine standardisierte Klassenbibliothek für C + + ent wickelt wurde ie stand j e d c h zu eginn des Prjektes noch nicht zur Verfüun An dieser telle s l l exemplarisch die template-Klasse DataArray vorgestellt werden um daran den Nutzen auch s l c h einfacher Klassen bei der Programmentwicklung aufzu- zeien. Die Klasse DataArray<T> dient zur Bereitstellung von Feldern über einem festen Typ T. Somit entspricht ein DataArray<double> lediglich einem Feld von Gleitkmma- zahlen. Es bestehen jedoch mehrere Unterschiede in der Nutzbarkeit gegenüber norma- len CFeldern. ährend für ein Feld exlizit der Speicheratz a n f o r d e r t und schielich
  • 143.
    . KLASSEN IHRE EZIEHUNGEN 27 wie freigegeben werden muß, kann man ein ataArray<double> wie eine auomati- sche Variable instantiieren. Dabei wird der verlangte Speicherplatz automatisch alloziiert und sobald der Geltungsbereich der Variablen endet, wird der Speicherpatz ohne Zutun des Programmierers wieder freigegeben. Dies zu vergessen, ist eine häufige Fehlerquelle bei der Speicherverwaltung „von Hand" Ferner kann zur Fehlersuche der Zugriff auf die Feldelemente mit einer Schrankenüberpfung versehen werden, die man für optimierte Versionen abschaltet. Die Klasse DataArray bietet somit eine sichere Speicherverwaltung für Felder eines beliebigen aber festen Typs. Redundanz, die bei Reimplementierung der Speicherverwaltung für jedes benutzte Feld aufkommt, wird durch die Lokalisierung in der Klasse DataArray vermieden. Dies zeigt eine rundlegende Vorgehensweise bei der ob- jektorientierten Programmierung, nämlich mehrfach verwendbare Knzepte in Klassen zu imlementieren. ende weitere Grundklassen wurden für SoPlex entwickelt: sList einfach verkettete Liste dList doppelt verkettete Liste dRing zu einem Rin eschlssene, doppelt verkettete Liste ataHashTable Hash-Tabelle orter Sortierklasse mdLine Parser für die Argumentenliste v n Programmen Random Zufallszahlengenerato Timer eine oppuhr" Bis auf die letzten drei Klassen handelt es sich wieder um template-Klassen, die in unterschiedlichsten Zusammenhängen eingesetzt werden können. Die Klassen CmdLine Random und Timer entsrechen h i n e n einem rein mdulrientierten Programmierstil 3.2.2 Vektor-Klasse Die Vektor-Klassen implementieren abstrakte Datentypen zur Linearen Algebra, und zwar vom Einheitsvektoren bis hin zum vollständigen LP. Sie können wie Variablen benutzt wer den, also als slche instantiiert und in Ausdrücken verwendet werden. Dabei beschränken sich jedoch die Schnittstellen auf Zugriffs- und Manipulationsmethden sowie einfache Ope- rationen, deren algorithmische Umsetzung kaum Alternativen z u l ä t . Wo dies der Fall ist etwa bei der Lösung linearer Gleichungssysteme oder ganzer LPs kmmen h i n e n algo rithmische Klassen zum Einsatz ( l Abschnitt 3 3 ) Im folgenden werden die wichtigsten Ableitungs-Hierarchien und Benutzt-Relationen zwischen den Vektor-Klassen skizziert. Dies stellt keine Dokumentation der Klassen dar ondern soll lediglich die Struktur des Entwurfes aufzeigen. Dennoch wird in manchen Fällen auch die interne Verwaltung der Daten auezeigt, soweit es dem Verständnis der Imlementierung dienlich erscheint
  • 144.
    28 KAPITEL PLEMENTIERUNG IN C++ 3.22. Dünnbesetzte V e k o r e n Wie in Abschnitt 1.7 beschrieben, bedeutet die Dünnbesetztheit eines Vektrs, daß es sich lohnt, nur die NNEs zu verwalten. Es gibt eine Vielzahl von Vorschlägen für geeignete Darstellungen, die sich in der Effizienz für verschiedene Operationen unterscheiden [39]. In Abschnitt 1.7.3.3 wurden verschiedene Speicherschemata für dünnbesetzte Matrizen vor- gestellt und bewertet. Dieselben Überlegungen treffen auch für dünnbesetzte Vektren zu. Deshalb verwaltet die Klasse SVector (Sparse Vector) die NNEs in einem Feld von Wert- Index-Paaren Klasse SVector: :Element). Eine andere, wegen früherer Implementierun- gen in FORTRAN oft eingesetzte Lösung, ist die getrennte Verwaltun der Indizes und Werte in je einem Feld. ie wurde aus zwei Gründen nicht gewählt. Zum einen benötigte das Verschicken eines SVectorObjektes in diesem Fall zwei Kommunikationen, während bei der verwendeten Darstellung eine Kommunikation ausreicht. Zum anderen kann es bei zwei Feldern leichter zu CacheMisses kommen, falls Indizes und Werte au dieselben Cachelines abebildet werden. Da NNE-Feld selbt wird nicht von SVector allo ziiert. Stattdessen muß der zu verwendende Speicher SVector platz bei der Instantiierung eines SVector-Objektes übergeben werden. Die Größe des Feldes bestimmt SVector wieviele NNEs der SVector maximal aufnehmen kann. Benötigt man einzelne dünnbesetzte Vektoren, ist diese Instantiierung und Restriktion unnötig UnitVector kompliziert. Deshalb wird mit DSVector eine weite- Abbildung 3.2 re Klasse bereitestellt, die per Ableitung die Funk- setzte Vektren tionalität vo SVectoren um eine dynamische Spei cherverwaltung erweitert. DSVectoren stellen den NNE-Speicher intern zur Verfügung und verwalten ihn dynamisch je nach Anforderung. Somit braucht von außen kein Speicher bereitestellt zu werden, und es k n n e n hne eschränkunen NNEs hinzugefügt werden. Benötigt man j e d c h eine ielzahl von dünnbesetzten Vektoren, so ist die Instanti- ierung vieler DSVectoren nicht geeignet, da dabei viele Speicherblöcke alloziiert würden, was eine hohen Ressourcenverbrauch bedingt. tattdessen kann eine Menge von SVectoren einer gemeinsamen Speicherverwaltung unterworfen werden, die von der Klasse SVSet im- lementiert wird. Die Details der interne Speicherverwaltung wurden bereits in Abschnitt 33 vgestellt Als zweite von SVector abgeleitete Klasse implementiert UnitVector Einheitsvektoren ie treten in SoPlex für die Darstellung von SchlupfVariablen oder einfache Schrankenun- gleichungen auf. An dieser Stelle wird der Ableitunsmechanismus statt zur Erweiterung einer Klasse zu ihrer Spezialisierung eingesetzt: Ein UnitVector ist ein SVector mit nur einem NNE, das immer den Wert 1 hat. Alle mathematischen Operationen von dünnbe- setzten Vektoren sind aber auch für Einheitsvektren sinnvll, was durch die Ableitungs beziehun oftwaretechnisch ausedrückt wird.
  • 145.
    . KLASSEN IHRE EZIEHUNGEN 3.22.2 icbesetzt Vekoren Abbildung 3 3 zeigt die Klassenhierarchie für dichtbesetzte Vektoren. Wie schon bei den Klassen für dünnbesetzte Vektoren implementiert Vector die chnittstelle für den Zugrif auf Elemente sowie für mathematische O p e r a t i n e n auf V e k t r e n , während DVector die Speicherverwaltung übernimmt Von Vector sind zwei weitere Klassen abgeleitet, die s e z i e l l für die Implementie rung des Simlex-Algorithmus konzipiert wurden. Die Klasse UpdateVector wird für die Simplex-Vektren / , g und h verwendet. Diesen wer den in jeder teration das Vielfache eines Vektors Vector /, bzw. Ah hinzuaddiert. Deshalb erweitert p d a t e V e c t o r die Klasse DVector um M e t h d e n zur Verwaltung des Faktors und des zusätzlichen V e k t r s Vector owie eine M e t h d e zur Ausführun des dates Aus Effizienzgrünen ist e oft twendig, so- SSVector wohl einen direkten Zuriff sowohl au das i-te Ele ment als auch auf die NNEs eines dünnbesetzten Vektors zu haben. Die erste Anforderung erfüllt die UpdateVector Klasse Vector, während der Zugriff auf NNEs v Abbildung 3.3: Kassen für dichte SVectoren unterstützt wird. Die Klasse SSVector setzte Vektren (Semi Sparse Vector) erlaubt beides, indem sie der Funktionalität ihrer Basisklasse DVector die Verwaltung der ndizes der Nicht-Null Elemente hinzufügt. SSVectoren werden in SoPlex für die V e k t r e n A / , g bzw. der U p d a t e e c t o r e n e i n e s e t z t 3.22. Von V e o r e n g e n z u m Zur Repräsentati eines allemeinen LPs der F r m ( 1 ) müssen f o e n d e Daten esei chert werden Optimierungsrichtun Zielfunktionsvektor rechte und linke eite bere und untere Schranken dünnbesetzte) ebenbedingunsmatri Statt alles in nur eine Klasse zu implementieren, lohnt es sich, dies mit einer Ableitungs hierarchie zu realisieren, da die auftretenden Klassen auch in anderen Zusammenhängen verwendet werden können, insbesondere als Parameter bei den M a n i u l a t i o n s m e t h d e n für das LP. Die Ableitunshierarchie wird v n Abbildung 3 ezeigt Die Klasse S V e t Sparse Vect et) wurde bereits ben erwähnt ie i m l e m e n t i e r t die
  • 146.
    KAPITEL PLEMENTIERUNG IN C++ S p i c h e v e r w a l t u n g für ein Menge von SVectoren und bietet M t h o e n zu Hinufügen und Entfernen ganzer SVectoren sowie solche zum Hinzufüen und Entfernen von NNEs für einzelne SVectoren in einem SVSet Intern speichert ein SVSet die NNEs seiner SVectoren in einem Feld, das wie in Abschnitt 3 3 beschrieben verwaltet wird. Die Klasse SVSet benutzt ( r c h die g p u n k t e t e Linie symbolisiert) die Klasse DataSet die sog. Key für die in einem a t a S e t e s e i c h e r t e Einträge verwaltet. Fügt man einen Ein- trag einem D a t a e t hinzu, so vergibt dieses D a e t <-- ein eindeutigs Key ber das der Eintrag je derzeit in dem a t a S e t referenziert werden kann. Dieses Key bleibt s a n g e gültig, wie SVSet sich der Eintra im DataSet befindet, ins besondere auch dann, wenn andere Daten hinzugefügt der entfernt werden. Dagegen LPColSet kann sich die Numerierung der E i n t r g e bei solchen Operationen ändern. Diese Funk- D a e t tionalität wird bis hin zur Verwaltung der Zeilen und Spalten des LPs durchgereicht Dort eignet sie sich z.B. für die Implementie- SVSet rung v n Schnittebenen-Verfahren, bei de nen laufend U n l e i c h u n e n von einem LP entfernt bzw. ihm hinzugefügt werden. Da- LPRowSet bei ändert sich zwar stets die Numerierung der Unleichungen, ihre Key (die dann al PxLP lerding SPxRowId bzw. SPxColId h e i e n ) bleiben j e d c h unverändert Abbildung 3.4: assengraph für SPxLP Die Klasse S P x P dient der Repräsentation von LPs. Sie ist s o h l von LPColSet als auch von RowSet abgeleitet. Letztere dient der Verwaltung vo Bereichsungleichungen Klasse LRow), und bietet dafür umfangreiche Zugriffs- und Manipulationsmethoden. Ent prechend stellt die Klasse LPColSet Methoden für den Zuriff auf LP-Spalten (Klasse LPCol) bestehend aus Zielfunktinswert, oberer und unterer chranke sowie (dünnbesetz tem) Spaltenvektr, und zu deren Manipulation bereit. Sowohl LPRowSet als auch LPColSet sind von S V e t a b e l e i t e t , das die Verwaltung der Zeilen- bzw. Spaltenvektoren übernimmt Somit ist in SPxLP die Nebenbedingungsmatrix zweifach gespeichert, und zwar zeilen- und spaltenweise. Dies erlaubt eine besonders einfache Implementierung des transparenten Um- schaltens zwischen beiden Basisdarstellungen und hat darüber hinaus Vorteile bei der ef fizienten Implementierun des M a t r i x - V e k t r P r d u k t e s
  • 147.
    . KLASSEN IHRE EZIEHUNGEN 3.22.4 ie P-B Die Klasse SPxBasis verwaltet eine allemeine L P - a s i s l. Definiti 6). Dies um folgende A u a b e n Verwaltun der asisndexvektren, Verwaltun der asismatrix und mathematische O e r a t i n e n mit der asismatrix. Die asismatrix wird als DataArray von Zeigern auf ihre Vektoren gespeichert Einfa- che Operationen, wie die Multiplikation mit einem Vektor werden direkt von SPxBasis implementiert. Dagegen werden komplexe Algorithmen zur Lösung von Gleichungssyste men einem Objekt einer Gleichunssystem-LöserKlasse (eine Imlementierunsklasse v SLinSolver, v l Abschnitt 3 3 ) übertraen. Jeder Index befindet sich zu einem Zeitpunkt in genau einem der Basisindexvekto ren Bx,... ,Nf (Basisbedingung ). Deshalb wird der Mengencharakter der Indexvektoren durch eine Abbildung jedes Index auf einen Status (in einem DataArray gespeichert) im- plementiert. Lediglich für die Basisindizes ist eine Reihenfolge wichtig. Dies wird erreicht indem die Basisindizes zusätzlich in einem DataArray eseichert werden. 3.2. l g o r t h i s c h e Klasse Innerhalb eines Simplex-Algorithmus kann eine Reihe von Teilproblemen identifiziert wer den, für die jeweils unterschiedliche Imlementierungen denkbar sind. Diese sind das Pricin der Qutiententest das Generieren einer tartbasis die L s u n linearer Gleichunssysteme und eventuell ein P r e c e s s i n des LPs ür jedes dieser Teilprobleme nnen verschiedene Algorithmen eingesetzt werden. Dies soll durch den Software-Entwurf so unterstützt werden, daß die Implementierung offen für zukünftige Varianten ist Wie in Abschnitt 3 1 1 erläutert, e i n e t sich dafür ein objekt rientierter Entwurf besnders gut. Jedes Teilproblem wird durch eine abstrakte Basisklasse repräsentiert. Eine solche weist nur v i r t u a l M e t h d e n auf und beschreibt damit die Schnitstelle die ein Algorithmus zur
  • 148.
    KAPITEL PLEMENTIERUNG IN C++ Lösung e i n s Teilprolems imlementieren muß. Die I m l e m e n t i e r u n g eines A l g o r i t m u s zur Lösung eines Teilproblems geschieht daher in einer v n der jeweiligen abstrakten Ba- sisklasse a b e l e i t e t e n Klasse Solche Klassen werden Implementierungsklsen enannt Für jedes Teilproblem gibt es einen eigenen K l a s s e n b a m . Die Wurzel bildet jeweils die abstrakte Basisklasse, die die Schnittstelle für das Teilproblem definiert. Verschiedene abgeleiteten Klassen implementieren diese chnittstelle mit unterschiedlichen Algorithmen zur L s u n g des Teilprblems Die Klasse SoPlex implementiert den Simplex-Algorithmus nur unter Verwendung der abstrakten Basisklassen für die zu lösenden Teilprobleme. Zum Lösen der Teilpobleme werden SoPlex Instanzen der Implementierungsklassen zur jeweils gewünschten algorithmi schen Variante übergeben. SoPlex arbeitet mit jeder Implementierungsklasse korrekt. Dies gilt insbesondere auch für jede in Zukunft entwickelte Implementierungsklasse. Dadurch ist es möglich, z blemsezifische Pricer zu entwickeln und mit SoPlex einzusetzen. Da SoPlex in gößeren Programmen, bei denen LPs gelöst werden müssen, eingesetzt werden soll ist LPSolver es selbst auch nur eine mögliche Implementierung ei- nes LP-Lösers. Deshalb wurde die Klasse S o l e x der- le selben Struktur unterzogen. Sie ist eine I m l e m e n - tierungsklasse der abstrakten Basisklasse LPSolver Abbildung 3.5 Kassengraph für SPlex Algorithmen, die mit Hilfe der Schnittstellenklasse LPSolver formuliert werden, können somit ohne Änderung au andere I m l e m e n t i e r u n s klassen dieser Schnittstelle u m e s t e l l t werden. 3.23.1 Quotiententest Klassen Verschiedene Implementierungen des Q t i e n t e n tests zeichnen sich durch unterschiedliche Effizienz PxRaoTester und numerische tabilität aus. Die optimale Wahl kann von den zu lösenden LPs abhängen. Für So- PxDefault Plex wurden die drei in Klassengraph 3.6 a n g e b e nen Implementierungsklassen der abstrakten asis- klasse für den Quotiententest S P x R a t i o T e s t e r ent- PxHarr wickelt. Die zugrundeliegenden Algorithmen wur- den inhaltlich bereits in Abschnitt 1.3.4 behandelt Klasse S P x e f a u l t R T implementiert die einfachste PxFast stabilisierte Version, also den „Textbook" Q u t i Abbildung 3.6: K a s a p h ententest. Die tabilisierung nach Harris wird von tiententestassen Klasse SPxHarrisR i m l e m e n t i e r t während Klasse SPxFastR en S o P l x e n w i e n t a e n Q u e n e n t rea
  • 149.
    . KLASSEN IHRE EZIEHUNGEN 3.23.2 Pricing Klassen Der Klassengraph 3 der Pricing-Klassen weis SPxPricer als abstrakte Basisklasse für das Pricing PxPcer aus. Derzeit existieren 6 verschiedene I m l e m e n t i e rungsklassen. ie i m l e m e n t i e r e n f o e n d e Verfahren aus Abschnitt 6: PxDefaultPR SPefault Most-violation Pricin SPxStee Steepest-edge Pricin PxWighPR SPvexP Devex Pricin SPxParult Partial multiple Pricin SPxWight Weighted Pricing PxStepPR SPybri Hybrid Pricin PxDevexPR PxParMltPR PxHybdPR Abbildung 3.7: a s a p h Priciassen 3.23. bas Klassen Die Generierung einer eeigneten Startbasis kann einen g o ß e n Einfuß au die Ite- rationszahl bei der L s u n g des LPs haben. Eventuell k n n e n dabei I f o r m a t i n e n aus dem mathematischen dell, das zu dem LP führt ge nutzt w e d e n , um so b e s s e e Startbasis zu kon PxStter struieren. Um solch eine problemspezifische Startbasis in SoPlex integrieren zu können, wurde die abstrakte Ba- sisklasse S P x S t a r t e r eingeführt. Derzeit ibt es ledi PxWightS lich eine Implementierungsklasse, nämlich SPxWeightST Abbildung 3.8: assengraph er ie versucht, anhand von Gewichten für die Indizes eine StartbasisKlassen möglichst leichte" Basis zu konstruieren, so wie es in Abschnitt 1.8.6 beschrieben wurde Mittels abgeleiteter Klassen können auch andere Gewichte verwendet werden, indem die M e t h d e zur erechnun der Gewichte ü b e r l a e r t wird.
  • 150.
    KAPITEL PLEMENTIERUNG IN C++ 3.23.4 er für i n e a e G l e i c h u n g s s e m e Die Lösung linearer Gleichungssysteme ist einer Solver der wichtigsten und rechenintensivsten Teilschritte von Simplex-Algorithmen. Auch wenn für SoPlex derzeit ledilich die in 1.7.3 beschriebene Imple- LUFactor mentierung vorliegt, wurde auch hier das Entwurfs Abbildung 3.9: Klassengraph der Löser konze für algorithmische Komponenten zugrunde für dünnesetzte ineare eichunssteme ele l Klassengrah 39) 3.23.5 P r e p r c e s s i n g Klassen Oft werden LPs maschinell von anderen Programmen erzeugt. Dabei kommt es z.B. vor daß Ungleichungen (oder Spalten) mehrfach erzeugt werden. Mathematisch ist dies kein Problem, algorithmisch erhöht sich damit jedoch der Rechenaufwand bei der Lösung. Aber auch weniger offensichtliche „überflüssige" Zeilen oder Spalten können auftreten, wenn z.B. ledilich gültige Ungleichungen statt Facetten verwendet werden. In solchen Fällen kann eine Vereinfachung des LPs zu erheblichen Geschwindigkeitsgewinnen bei der Lösung führen [18 . Obwohl für SoPlex noch keine Implementierung dafür vrliegt, ist mit der abstrakten asisklasse SPxSimplif ier eine chnittstelle für ein P r e c e s s i n der LPs esehen. 3.3 Klassen für parallele Implementierungen In diesem Abschnitt werden die zusätzlichen Klassen für die Imlementierungen SMoPlex für Parallelrechner mit gemeinsamem Speicher und DoPlex für solche mit verteiltem Spei cher beschrieben. Beiden parallelen Implementierungen gemeinsam ist, daß sie wesentliche Teile per Ableitung v n der sequentiellen Version SoPlex erben und lediglich die Zusätze für die Datenverteilung, Kommunikation und Synchronisation hinzufüen. Dadurch übert ragen sich wichtige Eigenschaften SoPlex wie z die numerische tabilität direkt au die parallelen Versionen. 3.3.1 eminsamer Speher Die Parallelisierung des implex-Algorithmus für Rechner mit gemeinsamem Speicher SMo- Plex arbeitet direkt au den Datenstrukturen der sequentiellen Implementierung SoPlex. Lediglich die Arbeit muß zwischen den beteiligten PEs augeteilt werden, was einer Syn- chronisation derselben bedarf. Dazu wurde die Klasse ShmemObj entwickelt, die im fol enden Abschnitt beschrieben wird. Anschließend wird ihr Einsatz für die arallelisierun
  • 151.
    . KLASSEN FUR LLELE PLEMENTIERUNGEN b e b e n . 3.1.1 mem MultiprocessorArchitekturen erfreuen sich z.Z. wachsender Beliebtheit, zumal sie immer preisgünstiger angeboten werden. Meist werden sie als Server eigesetzt, jedoch bietet je der Hersteller auch eine Bibliothek, mit deren Hilfe arallele Programme entwickelt werden önnen. Eine solche bietet Funktionen zur Erzeugun und Terminierung sog. Threads, sowie chloßvariablen, Semaphoren o.a. Primitive zu deren Synchronisation. Threads sind „leicht- ewichtie" Prozesse die alle Ressourcen, also Speicheratz, F i l e D e s c r i r e n etc teilen. Inzwischen wurde v n der Normungskmmission POSIX ein Standard für solche Funk- tionen definiert, der jedoch bislang nur von wenigen Anbietern implementiert ist. Deshalb wurde die Klasse ShmemObj entwickelt, die die wesentliche Funktionalität in einer objekt orientierten Schnittstelle zur Verfügung stellt. Dadurch beschränkt sich der Portierungsauf- wand für verschiedene Parallelrechner mit verteiltem Speicher auf eine Anassun dieser Klasse Die wichtiere Aufgabe der Klasse ShmemObj ist jedoch die Implementierung eines Programmiermodells, das eine Parallelisierung objektorientierter Implementierungen auf Multiprozessren mit gemeinsamem Speicher unterstützt. Dabei eht es darum, einzel ne Methden durch Parallelität zu beschleunigen. Dazu bietet ShmemOb die Metho- de d o P a r a l l e l ( f ) an, mit der eine Funkti bzw. M e t h d e leichzeiti mehre ren Threads aufgerufen wird. Dadurch wird folgende Vogehensweise bei der Parallelisierung unterstützt hmmObj (v Abbildung 310): Ausgehend von einer sequentiellen Implementie eq rung in einer Klasse SeqClass wird eine abgeleitete Klasse ParClass implementiert, in der eine zu ar- allelisierenden Methode v einer neuen überlagert Pa wird. Diese veranlaßt mit d o a r a l l e l ( f ) die paral- n , . ,,.., , . , ,, i ,. / , ,x •, i Abbdung 3.10: Eins der Kss lele Ausführung der M e t h d e f (thread) mit mehre- c , n, M ,, ° ShmemObj zur Ü b e r e r u n n Methoden ren (auf unterschiedlichen Es laufenden) Threads e i n e r sequentiellen Klasse SeqClass mit wobei jeweils die zugehörige Threadnummer thread parallen Impementierunen i eine as übergeben wird. Anhand der Threadnummer und der se ParClass Anzahl der beteiligten Threads kann die Arbeit in der Methode f aufgeteilt werden. Bei der Implementierung der Methode f für die Klasse ParClass, wird idealerweise die Fuk- tionalität von SeqClass wiederverwendet. Durch die Ableitung von SeqClass kann die parallelisierte Klasse ParClass transparent eingesetzt werden, ohne daß andere Teile im Programm dies „bemerken". Dadurch wird eine schrittweise Parallelisierun der rechenin- tensiven Methden unterstützt
  • 152.
    36 KAPITEL PLEMENTIERUNG IN C++ Über die e r i t e l l u n g de M e t d e d o a r a l l e l hinaus ist die Klass ShmemObj auch für die Erzeugung Vernichtung und Synchronisation der Threads verantwrtlich. Bei der Konstruktion eines Shmembj-Objektes wird die Anzahl der bei doParallel zu verwenden- den Threads angegeben. Diese werden sofort erzeugt warten jedoch bis auf einen an einer chloßvariablen. Der verbleibende Thread führt das weitere sequentielle Programm aus Erst bei Aufruf der Methode doParallel (f) wird die chloßvariable freigeeben, so da die anderen Threads bei der parallelen Bearbeitung von f kollaborieren. ach Terminati ynchronsisieren sich die Threads wieder über eine chloßvariable Eine andere Möglichkeit die Methode doParallel zu implementieren wäre die Erzeu- gung der Threads bei jedem Aufru und deren Vernichtung nach Termination. Da jedoch die Erzeugung und Vernichtung von Threads einen hohen Aufwand gegenüber der ynchro- nisatin an einer Schloßvariablen bedeutet wurde der oben beschriebene Ansatz ewählt Mithilfe der Klasse hmemObj kann somit eine objektorientierte sequentielle Implemen- tierun auf Methodenaufrufsebene parallelisiert werden. Dabei bleibt die sequentielle Rei- henfolge der Methodenaufrufe erhalten, so daß bei dieser Parallelisierung zu einem Zeit punkt immer nur ein paralleler Methodenaufruf in einem Objekt erfolgen kann. Damit nun nicht unnötig viele Threads verbraucht werden, die die meiste Zeit darauf warten, ange stoßen zu werden, können verschiedene ShmemObjObjekte dieselben Threads verwenden. 3.1.2 ie Klassen zu oPlex Die parallele Implementierung l e für Parallelrechner mit emeinsamem Spei cher stützt sich auf die Klasse hmemObj (vgl. Abbildun 3.11). Da SoPlex nur einen Teil des imlex-Algorithmus imlementiert, bietet SMoPlex auch nur für diesen Teil eine parallele Implementierung. Dies ist die Berechnung des Matrix-Vektor-Produktes für die erechnun des hmmObj Vektors Ag sowie die Aktualisierun der Vektoren. Die entsrechenden Methoden von oPlex werden in So SMoPle durch parallelisierte Methoden überlagert die hmemObj zur Parallelisierung verwenden. Andere zur Parallelisierun geeignete Funktiona Mo lität sind wie in Abschnitt 2 beschrieben das Pri Abbildung 3.11 P a a l l i i u n c i n g ) d e r Q uo tiententest sowie die Lösung linearer Gleichungssysteme. Diese Funktionalität wurde ja in spezielle Klassen a u s e l a e r t s da ihre arallelisierung auch in entsrechend abeleiteten Klassen erfogt Abbildung 3.12 zeigt den Klassengraphen für die arallelisierte Versi der steepest e d e Pricing-Klasse SMxSteepPR. Diese Klasse ist sowohl von SPxSteepPR als auch von MxPricer abgeleitet. Die Klasse SMxPricer implementiert die Pricing-Methoden ihrer asisklasse S P x i c e r . Dadurch sind Objekte SMxSteepR als PricingObjekte für
  • 153.
    . KLASSEN FUR LLELE PLEMENTIERUNGEN le le ba Die Klasse SMxPricer implementiert zwei Parallelisierungskonzepte für das Pricing Zum einen ist dies das parallele Ausführen einer P r i c i n e r a t i n . Dazu werden die ndi zes in soviele Teilmengen wie von ShmemObj bereitge stellte Threads unterteilt, so daß jeder Thread einen PxPcer Kandidatenindex aus einer Teilmene auswählt. Um dies zu tun, ruft die PricingMethode eine weitere Methode auf, die das Pricing nur auf der Teilmen- PxSteepPR ge durchführt. Diese wurde bereits in SPxSteepPR implementiert, so daß die Pricing-Strategie bereits vollständig von der sequentiellen Klasse implemen- PxPcer tiert wird. Anschließend wählt xPricer den besten andidaten aus hmmObj Zu andeen implemeniert die Klasse SMxPricer das Bck-Pivoting. Dazu wird für SMxPcer jeden ausgewählten Kandidaten das zugehörige Lineare Gleichungssystem gelst, und der beste Kandidat dem Simplex-Löser übergeben. n den SMSteepPR folenden Iterationen werden aber die anderen zuv gewählten Kandidaten benutzt, für die die Lösung Abbildung 3.12 P a r a l l u n steepestedge Prici der Linearen Gleichunssysteme lediglich aktualisiert werden muß Der Vorteil dieser Vorgehensweise ist, da sämtliche Komplikatien und neuen Prin- zipien, die durch Parallelität ins Spiel elangen, in der Klasse SMxPricer realisiert wer den können. Dadurch kann mit Hilfe v n abeleiteten Klassen eine neue Pricing-Strategie einfach hinzugefügt werden, ohne daß man sich dabei Gedanken über Parallelität ma- chen müßte. Existiert bereits eine sequentielle Versi on, wie das beim Beispiel des steepestedge Pricings olver mit SPxPricer der Fall ist, kann die dort implemen- tierte Funktinalität direkt verwendet werden. Der soeben vorgestellten Strukturierung wurden LUFactor auch die Quotiententest-Klassen unterzogen. Dabei wurde jedoch lediglich eine Parallelisierung über der h m b j Indexmenge implementiert, da es kein Äquivalent zum Block-Pivoting für den Quotiententest gibt LUFactor Auch für die L s u n n linearen Gleichungssy- stemen wurde mit SmSLUFactor eine parallelisier Abbildung 3.13: Kass SmSLUFactor te Klasse bereitgestellt, die die in Abschnitt 2.2.4 ietet die parall sun zwei inearer eichunssstem beschriebene arallele L s u n verschiedener Glei u n m e i m e n S o f n in Z u u n r a e L r dünnbee lea
  • 154.
    KAPITEL PLEMENTIERUNG IN C++ Gleichungssysteme verfügbar weden, die shneller sin als die sequentielle Imlementie rung, können sie an dieser Stelle auch zur arallelen Lsung einzelner Gleichunssysteme einestetzt werden. 3.3.2 r t e t e r Speche Auch die Implementierung für Parallelrechner mit verteiltem Speicher DoPle nutzt per Ableitun den bestehenden sequentiellen C d e von SoPlex. Lediglich die für die Verteilun notwendige Kommunikation wird h i n z u f ü g t Die dazu benötigte Funktinalität wird v der Klasse DistrObj bereitgestellt 3.2.1 Ob Die Klasse DistrObj spielt für Imlementierungen auf Parallelrechnern mit verteiltem Spei cher eine ähnliche Rolle wie ShmemObj für solche mit gemeinsamem Speicher. Sie bietet eine Abstraktin v n der zu der zugrundeliegenden Architektur gebotenen Kommunikationsbi- blithek, so da sich eine Portierun ledilich auf eine Anpassun dieser Klasse beschränkt Darüberhinaus implementiert die Klasse DistrObj eine wichtige Operation, nämlich das Gossiping (vg. Algorithmus 11). Dabei wird die Kommunikationsstruktur sowie die Ver waltung der Kommunikationspuffer implementiert; lediglich die auszuführende Gossipin Oeration muß von dem Benutzer bereitgestellt werden. Damit eignen sich von D i s t r b j abeleitet Klassen besnders zur Implementierung datenparalleler Algorithmen. chließlich unterstützt die Klasse DistrObj eine Partitionierun des Parallelrechners DistrObjs werden SPMD-artig instantiiert, wobei eine Teilmene v PEs angegeben wer- den kann. Dabei wird auf jedem PE ein Objekt der Klasse DistrObj erzeugt; die Gesamt heit der lokalen DistrObjObjekte wird verteiltes Objekt genannt. Bei der Imlementierung von parallelen Algorithmen in abgeleiteten Klassen, sehen" lokale istrObj-Objekte nur die zu ihrem verteilten Objekt zugehörien DistrObj-Objekte. So liefert etwa die Methode PesO die Anzahl der zum verteilten Objekt gehörenden PEs, die als logisch von 0 bis n P e s ( ) - l durchnumeriert erscheinen. Auch die Kommunikation erfolgt lediglich innerhalb eines verteilten Objektes. Insbesonder kommt es zu keinen Fehlern, wenn Nachrichten ver schiedener verteilter Objekte mit derselben Identifikationssnummer verschickt werden; die Klasse DistrObj rgt für eine eindeutige Zuordnung zu den verteilten Objekten. Schließ lich arbeitet die G o s s i i n g M e t h d e nur auf den zu einem verteilten Objekt gehörenden PEs. Somit können als DistrObj formulierte Algorithmen sicher in einem anderen Zusam- menhang verwendet werden, eine wichtie Anforderung an Software
  • 155.
    . KLASSEN FUR LLELE PLEMENTIERUNGEN 3.2.2 oPex Die Klasse DoPlex dient zur Parallelisierun l e x für Parallelrechner mit verteil tem Speicher als ein verteiltes Objekt. Als v n D i s t r b j abgeleitete Klasse wird auf jeder zum verteilten Objekt gehörende E eine lokales D P l e x - O b j e k t instanziiert. Jedes die ser lokalen Objekte verwaltet eine Sub-LP bestehend aus einer T e i l m e n e der Zeilen oder Spalten des gesamt LPs. Ob eine zeilen- oder spaltenweise Verteilung rgenommen wird, richtet sich nach der Wahl der Basisdarstellung. Die Verteilun der V e k t r e n au die PEs erfo emä strbj ) Zusäzlich zum jeweiligen Teil-LP verwaltet jed P E die vollständige Basis samt ihrer Faktorisierung So Dadurch wird jedes P E in die Lage versetzt, lineare Gleichungssysteme mit der Basismatrix zu lösen, wie es für das Block-Pivotin erforderlich ist. Dazu ist es jedoch notwendig, daß jedes P E einen Puffer für Abbildung 3.14: P a r a l l u n Basisvektoren verwaltet, die nicht zum l k a l e n Teil S o e x LP e h r e n . Auf jedem E wird im Prin der in o P l x implementierte implex-Algorithmu ausgeführt. Da der sequentielle Code nur das jeweilige T e i l L P sieht, wird s das Matrix-Vektor-Produkt implizit parallel ausgeführt Das Pricing und der Quotiententest werden ohnehin PxPcer on algorithmischen Klassen implementiert, deren Parallelisierung im Anschluß diskutiert wird. Dem- nach üssen n DoPlex lediglich die M e t h d e n von PxSteepPR S o l e x überlagert werden, die sich auf die Verwal tun der Basis beziehen. Wann immer ein auf ei- nem anderen P E befindlicher Vektor in die Basis ein- PxPcer tritt, muß dieser empfangen und in den Puffer einsor- tiert werden. Entsprechend verschickt dasjenige PE, hmmObj das den in die Basis eintretenden Vektor verwaltet diesen an alle anderen PEs des verteilten DoPlex- Objektes. Diese F u n k t i n a l i t ä t wird durch Überla- DPxPcer gerung der Zugriffsmethode auf LP-Vektoren imple mentiert. Damit der Puffer für fremde Basisvektren nicht überläuft, müssen fremde Vektoren, die die Ba- DPxSteepPR sis verlassen, aus dem Puffer entfernt werden. Dies Abbildung 3.15 Parallisierun wird mittels Ü b e r l a e r u n g der asistausch-Methode s t e e P e s t e d g e Prici implementiert Die I m l e m e n t i e r u n er Pricer- und Q u t i e n t e n t e s t K l a s s e n le estaltet sich
  • 156.
    KAPITEL PLEMENTIERUNG IN C++ Abbildung 3.16: B e p i e eines 4 x 4 Prozessorgittrs für d e p a r l l l e LUZerlegung. Die PEs des globalen verteite Objekts sind grau h i n t e r g t . Entsprechend sind zu zeien zw. spatenweisen verteiten Obekten zugehri PEs schraffiert h i n t e r g t analog zu dem Vorgehen bei MoPlex, wobei die Kasse i s t r b j die Rolle von ShmemObj rnimmt (vgl. Abbildung 315). Dabei d zu B e t i m m u g eine aximaln b mi- imalen Elemente die G o s s i p i g - e t h d e von DistrObj b u t z t . Die Klasse DPxPicer d i e t als abstrakte Basisklasse fü mit D P l e x zu v e d e d e Pricig-Klassn. Sie imple- mentiet ieder das B l o i v o t i . E n t s e c h e d wird e i e Klass DPxRatioTester fü die Quotiententet-Klass definiet. F r n i d i eine Klass i n o l v e r ei Glei- chugssystemöser u t e Nutzung von S a c t o r impemetiert, de die parallele ös weier Gleichugssysteme mit d e r s l b n M i untersützt Wichtig ei dem nsatz die ass mit D o l e ist, daß alle zugehörige v e t e i t e O b j t e physkalich uf derslb ge von PEs insantiie den. ie Klasse le d die zugehörigen a r a l l n Pricig- der Qutientetet-Klassen de von i s t r b j abgeleitet. Dies erlaubt es mehree LPSolver DoPlex uf verschie- denen Teimengen der PEs e i s P a r a l l e c h r s zu i n s a n z i i e , was bsonders die R a l i e g von Branch-and-ut-Alorithme geeiget i
  • 157.
    KLASSEN FUR LL IMENTIERUNG 3.2. P a l e l e LU-Zerlegung Bei der p a r a l l n U-Zerlegung für ünnbesetzte tizen nach Abschnitt 2 werde die Prozessoren logisch als ein Gitter angeordnet. Für unterschiediche perationen kooperie- weils nterschiedliche Gruppe von Prozessorn. So b e c h n jeweils die Prozessoren einer eie die globaln A n a h l n der NNEs pro ei sowie ih eweils ößten Absolut- betra und die Prozessorn einer S a l t e b t i m m e die A n l NNEs fü jede alte de a t . Alle Prozessor gemeinsa timme die M g e der P i v t - a n d i d t e d die te de nkompatiblitäten. All die perationn könn als Gossipig-Operatione implementie den. Die d von de Klass DistrObj unterstützt, w h a l b die Es in verschiedene v e t e i t e Ob kte untetei wrden. All PEs zusamme biden das globale veteilte O b j k t der LU rlegu Zätzlich den all PEs e i r Prozessor-Zeie ode Spalte in jweils einem veteilten ( S - ) O b j t zusammegefaß (vg. Abb. 3.16). Daduch kann ede perati- on o h e viel Verwaltugsaufwand dem v e t e i t e O b j t implementie de dess t e i c h e m der Operation icht
  • 158.
    apitel rgebisse dieem Kpitel den die Impementierungen a n a n d von Probeläufn auf i h n Nut zen zu ö s g von LPProblemen hi ntersucht. Die dazu herangezge LPs erde Abschitt vorgetell de folgeden ei Abschitte werden die jweiligen Lauf zeite die ei mplementienge SoPlex, MoPl u D o P l x angegeen. Dabei werden auch die irkunge verschieder algorithmicher Paramete aufgezeigt. etzte Abschitt steht etwas a ß a l b d i e r Betrachtungen, d die parallle Lösu von Gleichussysteme ehande die icht i die p a r a l l l n I m p e m e n t i e g e n DoPl Pl ufgenomme de Die folgede Tablle g i t ei uc den Umfang des Codes samt Dokume ation SoPl MoPl DoPl eil 52000 3900 300 mfan 1.MB 5kB 33kB Man nnt daß der o b j o r i e n t i e t e E u f t ä c h l i c h die ehachvewendu von Code unterstützt. A u d e m deutlich, aß die a r a l l i e g f ei Parall echn mit gemeinsamem peiche iger a u f d i g i 4. Di Testproblem In T a b l l A.l s n d die fü die läufe herangezog LPs zusammengetellt u war jeweils mit einigen statistische W t e n . Die A n a h l de Z e i n oder Spalte b t i m m t nach W h l der Basisarstellung die imenson der B a s m x . Die Anzahl der NNEs i der N n b e d i n g u n g s m a t r x b t i m m t i etw den Rechenaufwand für das M a t i V e k o r Produkt ei der Beechung de ktors g. Die Kondition de optimaln B a s m a i x g chließlich e i n Anhaltpunk die u m e c h e chieigkeite die ei de ö s n g de
  • 159.
    .1 TESTPROB wei LPs zu rwarten s . Sie wurde weils mit echet u ezieht ich uf die ptimale altenbas des skalierten LPs ie tmenge der LPs besteht aus Problemen a der N e t b [ 7 ] d verschiedee IB ehandelte P r o t e n [106]. Aus der Netl t m m e n die LPs 1 1 1 . Die meisten urde die T t m e n g aufgnommen, wei von i h e n die Problembeispiel 220 abge- eitet den. Dies j e d c h nicht f r „stocfor3" as LP mit de meiten Zeile Salte us der Netlib, pilo ei n u m e c h bsonders schwieigs N e t P r o b l e m fd" as das Problem mit de meite i c h t - l l E l e m e n t e n de Net ie Probleme 20 mit de Endung ob d LP-Reaxieungen e i n s verallgemei ten ckingProblems. Sie stamm a s dem Wuzelknoten e i s Branch-and-ut Verfh- ns zur optimaln Dkomposition von Matizen in unabhängge Bl [19]. Sie enthalte eits Schitte und haben meh Zei als Spalten. Die Name vor ,,.ob4" ezeich- nen de Namen des NetlibProblem dess ptimale B a s i a t r i dekomponie de soll; bei agg3ob4" also die ptimal B a s t von agg3" eim Fequezzuweingsproblem im o b u n k geht arum Bassstation Fre- quenzen so zuzuweien, aß sich möglicht g Intefeeze g b e wobei g s s e technologche u echtiche n s c h ä n k n g n berücksichtigt de s s n . Die LPs „ S M 6 8 " und „SM50k-68 d L P - R e a x i e u n g , die im Rahme e i e s Branch- a n d - u t Verfahrens zur Lösung die Problem t e h e . Sie enthalte al Date de obfnkAnbieters E P l s it „ k a m i 8 0 u d „ k m i 2 7 0 wude wei LPs bezeichet, die e i e m P r o j e t zu mmissonierung von Glückwunschkarte mmen. Sie thalte al Date von dem K o o p e a t i o n s a r r Hrlitz G. ei den Problemen „ c h c " „s handet es sich um L P - R e i e n g von q u a t i c a s s g n m e t Problemen a de Q A L I B [ 3 ]. Das Problem „stolle" hat seinn Ursprung i der P l a n n g von N e t z r k Es ande ich um ei Steinerbaumproblem mit Längenrtiktionen und osten uf de de uch f die Problem t m m e die Daten a e i r r a l n A n d u n g . em Projekt zur optimal Fazeugumufplanung tamme die LPs „anse- u ansecoml" . Die beide Probleminstanzen etstehen bei der A f ü h r n g ei column-gneration ns. Sie ethalten Date s r a l A n d u n g der Ham- b r Hochban AG. ie Ps 30-35 s m m e von e t a r t i t i o n n g Probleme etwa zur E n s a t z p a n n g von C r w s bei groß F l u g n t e e h m e (aa = meican i r l s ) . Sie u d e n b e i t n [ utzt um die a r a l l i e n g de duale S i m p n s zu ten. ie Auwah der LPs t etwas voreingenomme da als blich LPs mit meh ei als S a l t e vorkommen. In dieem Fall sollte ich die V e r d u n g einer eilnbas szahlen, was auch zu bobachte st. Der G r u d d f ü , aß „typische" LPs ehe mehr alten als e i n aufwei t e d c h uch dar zu ehe bi d t o kei mplementie-
  • 160.
    44 KA ERGEBNIS g v e r g b a r ware die eine Zeinbasis nutze ute L P d e l l i e r hab he eits bei der Mdellierung darauf g c h t e t daß die LPs mehr S a l t e als eilen h notfalls duch den Übegang zu ei dual Formuierung. Duch f ü h n g de einbasis n s a t e - f t h e - a r t Code i t es edoch wahrscheinlich aß z u f t i i L P d e l l e e t e h e die meh Zei als S a l t e ab Tablle A. nthält die ufzeite die An der Iterationen die C P E 07 die ösung der Tst-LPs b ö t i , d zwar so mit dem rimaln als auch mit dem dualen Algorithmus. C P L X w d e weils mit de Voreinstellngen verendet. Da dies I m p e m e t i e n g sicherlich als state-of-the-art a n g e h e de arf dient die T a b l l als R e f z f die B t u n g von SoPlx. ür ein ss gleichbarkeit seien nu Inforation ü X zusammenge- faßt soweit die ö f f e i c h verfügbar snd [15, 16, 1 3 . All LPs erde vor ihre Lösung skalie dem z u ä c h ede palte duch den größten ar u f t e t e d e Absolutbetrag geteit und anschießend jede Zeie e t p e c h e n d behande wird C E X v e d e t chließlich ein Spaltenbasis. Somit ist de dual Algorithmus stets ein n t f d e nd der imal ein einfügender Als Pricingtrategie f r de dualen Algorithmus i das teepet-ed Pricing e i n g e t z t wobei die initiale Norme icht exak bestimmt son der uf etzt w d e n . Beim primaln Algorithmus kommt ein dynamiches Pricing das wiche partial mutiple Pricing u eve Pricing umschaltet zum Ensatz Dabei edoch keine w e i t e n I n f o r t i o n e n die D e t l s beider P r i c i n g a h n ode der U c h a l t r a t e g i e ekann hase wird ein mpementierung de Composite Simp e t h d e (vgl (1-9)) v e d e t . Die von SoPl benutzte Crashbasis de von CPL eh hnlich [15]. Die sonders an den Tst-Problemen deutich, bei den sow C P E als auch SoPle d i t mit Phase 2 b n n n könnn. Diese älle eign ich sonders e i e vegleichede B e u t e i n g beide m p e m e t i e n g n . 4.2 oPlex In de ersten Abschnitten 1 2 werden T u f e von SoPlex mit einer S a l t e basis betrachtet um so eine ssere Vegleich mit PLEX zu ermöglichen. Da sich beide Impemetieungn der Art der B e h a n u n g von P a s 1 unterscheide gl. Abschitt 1.4), wede z u c h s nu die Probleme e t c h t e t e t c h t e t ei de ufgr de a r b a s s kei as 1 b ö t i d ie ich a n s c h i e n d Abschnitte heben die sondeheiten von SoPle g ande mpemetieng hevor. Als rste i t i diesem sammenang die ei basis zu nn de utze n Abschitt 4 . 3 ertet . Anschließnd ird i Abschitt 4.2 der Effekt der dynamische F a k o r i s i e u n g s q u e n z a u f e z e i . Der Vor tei de Gleichungsstemlösrs r bsonders nnbetzte M t i z e d Abschitt 425 ufezeit In de aruf f o l d e Abschitte de die rkng verschiede weite
  • 161.
    OPEX Iterationen beim dualen Simplex Laufzeiten beim dualen Simplex A b b i d u n g 4.1: Summe der Iterationen und Laufeiten beim dualen Simplex über Mengen von Tes LPs. Bei den mit „Phase 2 LPs" bezeichneten Werten wurden die Summen über alle LPs der Testmenge gebildet, die keine Phase 1 benötigen. Die mit „alle LPs" bezeichneten Werte enthalten die Zahlen zu allen LPs, sofern diese verfügbar waren. algorithmischer Parameter untersucht. Es beginnt in Abschnitt 4.26 mit dem Einfluß der Skalierung auf die Anzahl der Iterationen. Als nächstes wird in Abschnitt 7 der Effekt der Crashbasis gegenüber einer Schlupfbasis studiert, und in Abschnitt 4.2.8 folgt eine Untersuchung der Kreiselvermeidungsstrategie von SoPlex. Schließlich wird in Abschnitt 4 die ichtigkeit eines numerisch stabilen Quotiententests unterstrichen. 4.2.1 Duale Algorithmen mit Spaltenbasis Es wird nun die Auswirkung der Pricing-Strategie auf die Geschwindigkeit von SoPlex untersucht und eine Bewertung im Vergleich zu CPLEX beim dualen Simplex vorgenom- men. Die Testergebnisse zu CPLEX sind in Tabelle A.2 aufgelistet. Für den Vergleich mit CPLEX werden zunächst Testläufe betrachtet, bei denen eine größtmögliche Überein- stimmung der algorithmischen Parameter erreicht wird. Es werden also die Ergebnisse für SoPlex mit Spaltenbasis, Crashbasis und skaliertem LP betrachtet. Sie sind in de Tabelle A.3 bis A. aufgeführt. Ein wichtiger Unterschied zwischen CPLEX und SoPlex ist die Behandlung der Phase 1. Um auch hier eine gute Vergleichbarkeit zu erzielen, beschränken wir uns zunächst auf die LPs, bei denen beide Implementierungen keine Phase 1 benötigen, weil die gefundene Startbasis bereits dual zulässig ist. Dabei handelt es sich um 22 Problembeispiele, nämlich die LPs mit den Nummern 3-5, 13-24 7 und 30-35. Sie werden im folgenden Phase LPs genannt. Die Summen der Anzahl der Iterationen und der Laufzeiten über diese Probleme für
  • 162.
    KATEL 4. ERGEBNIS SoPlex mit verchiedenen Pricing-Stratgien sowie für C L E X sind in den ersten Reihen von Abbildung 4.1 aufgeführt und grafisch dargestellt. Man beachte jedoch, daß solche Summen immer nur statistische Aussagen erlauben, wogege bei einzelne Probleme die Ergebnisse vollkomme anders ausfallen können. Beide Implementierungen, CPLEX und SoPlex, starten bei den Phase 2 LPs mit einer Schlupfbasis und benutzen beim steepestedge Pricing mit 1 initialisierte Normen. Somit sind die zugehörigen Werte gut miteinander vergleichbar. SoPlex beötigt deutlich weni ger Iterationen als CPLEX. Dies wirkt sich auch auf die Laufzeit aus, obwohl CPLEX etwas weniger Zeit pro Iteration benötigt (vgl. Abb. Das Devex-Pricing führt zu einer gerin- geren Iterationszahl als das partial multiple Pricing. Da letzteres ein Pricing-Verfahren für de einfügenden Simplex ist, wurde für den entfernenden Simplex die most violation Pricing-Strategie implementiert. Die geringfügigen Unterschiede in den Ite- rationen und Laufzeiten kommen von den Abbildung 4.2: Durchschnittliche Iterationszahl pro einfügenden Simplex-Iterationen, die zur Sekunde beim dualen Simplex für CPLEX und SoPlex Behebung eines Shiftes notwendig wurden, mit verschiedenen Pricing-Startegien. • • u A u • i, fa ö sowie aus numerischen Abweichungen. Eine interessante Beobachtung ist, daß obwohl der Rechenaufwand pro Iteration (bei gleicher Basis) beim steepest-edge und Devex Pricing höher ist als beim mostviolation Pricing, letzteres weniger Iterationen pro Sekunde erreicht. Dies liegt an der geringeren Iterationszahl: In den ersten Iterationen ist die Basismatrix fast eine Einheitsmatrix. Dann werden die anfallenden linearen Gleichungssysteme schneller gelöst und der Lösungsvektor hat weniger NNEs als bei einer späteren Basismatrix, die mehr NNEs enthält. In Abbildung 4.1 finden sich auch die über alle LPs gebildeten Summen der Iterationen und Laufzeiten. Dabei sind jedoch die Werte für das Devex, partial multiple und most- violation Pricing untere Schranken, da bei den Testläufen einige LPs nicht innerhalb des Zeitfensters von 3 0 0 Sekunden gelöst werden konnte ( g l . Anhang A Während C P E X auch in Phase 1 einen entfernenden Algorithmus ausführt, benutzt SoPlex dabei den primalen und somit einfügenden Simplex. Beim steepestedge Pricing ist der Rechenaufwand pro Iteration beim einfügenden Simplex höher als beim entfernen- den, da ein zusätzliches Matrix-VektorProdukt berechnet werden muß. Aus diesem Grund übertrifft nun die Laufzeit von SoPlex auch beim steepest-edge Pricing die von CPLEX geringfügig, obwohl die Iterationszahl weiterhin niedriger ausfällt. Dies wird auch in Ab- bildung an der nunmehr höheren Iterationsgeschwindigkeit von C E X deutlich. ie bei de Phase LPs sind die andere Pricing-Strategien sowohl von der Iterati
  • 163.
    4. OP nszahl als auch von der Laufzeit her weit abgeschlagen. Das Devex Pricing scheint eine höhere Iterationszahl als das mostviolation oder partial multiple Pricing zu benötigen. Dies kann jedoch nicht festgestellt werden, da alle drei Pricer einige LPs nicht im vorge- gebenen Zeitfenster lösen konnten. Beim Devex Pricing handelt es sich dabei lediglich um ein LP, während mit partial multiple und mostviolation Pricing drei bzw. vier LPs nicht nnerhalb von 3 0 0 s gelöst werden konnten. Insgesamt erwartet man, daß das Devex Pricing weniger Iterationen benötigt, als das partial multiple oder mostviolation Pricing. Dies trifft auch meistens zu. Eklatante Aus nahmen sind die LPs 25 und 26. Offenbar enthalten diese LPs Strukturen, die sich negativ auf das Devex Pricing auswirken. Solche „Überraschungen zeigen, daß es sich bei allen Pricing-Strategien nicht um Verfahren mit garantierter Iterationszahl handelt. an kann also immer Pech — aber auch Glück — haben. Zusammengefaßt kann folgendes für den dualen Simplex mit Spaltenbasis festgestellt werden: Das steepestedge Pricing ist die erfolgreichste Pricing-Strategie. Phase 1 von SoPlex unterliegt aufgrund des höheren Rechenaufwandes beim steepest edge Pricing für den einfügenden Simplex dem Composite Simplex SoPlex übertrifft beim entfernenden Algorithmus EX — edenfalls bei de zu- grundegelegten Test-LPs. 4.2.2 Primale lgorithmen it Spaltenbasis Wie im vorigen Abschnitt beschränken wir uns bei der Bewertung des primalen Simplex- Algorithmus zunächst auf die LPs, für die eine primal zulässige Startbasis gefunden und nur der Phase 2 Algorithmus durchgeführt werden muß. Dabei handelt es sich um 11 LPs, nämlich die Probleme mit den Nummern 3, 5 und 20. Die über diese LPs gebildeten Summen der Iterationszahlen und Laufzeiten sind im Vordergund von Abbildung 3 für EX und SoPlex mit verschiedenen Pricern dargestellt. Bei de Phase 2 LPs zeigt SoPlex mit steepest-edge Pricing die geringste Interationszahl während CPLEX die geringste Laufzeit aufweist. CPLEX benutzt beim primalen Simplex ein dynamisches Pricing-Verfahren, das zur Laufzeit zwischen partial multiple und Devex Pricing umschaltet. Dabei sind die Umschaltstrategie und die Interna beim partial mul tiple Pricing nicht bekannt. Um einen Hinweis darauf zu erhalten, wie SoPlex mit einer entsprechenden Pricing-Strategie arbeiten würde, sind mit „MIN die Werte für einen hy pothetischen semidynamischen Pricer aufgeführt, der zu Beginn der Lösung eines LPs die jeweils für ein Problem schnellere Pricing-Strategie zwischen Devex und partial multiple auswählt. ür die Summen wurden also, e nachdem welche aufzeit niedriger ausfällt,
  • 164.
    KATEL 4. ERGEBNIS Laufzeit beim primal en Simplex Iterationen beim primalen Simplex 30000 20000 P 15000 10000 Alle LPs Phase 2 LPs 5000 0 f 5 yi JW ^ ^i i ta Alle LPs Phase 2 LPs 8 X Abbildung 4 . : Summe der Iteationen und Laufzeiten des primalen Simplex über Mengen von Test LPs. Bei den mit „Phase 2 LPs" bezeichneten Werten wurden die Summen über alle LPs der Testmenge gebildet, die keine Phase 1 benötigen. Die mit „alle LPs" bezeichneten Werte enthalten die Zahlen zu allen LPs bis auf die Probleme 27 und 29, sofern diese verfügbar waren. Die beiden LPs wurden weggelassen, da CPLEX sie nicht innerhalb des vorgegebenen Zeitrahmens von 3000 Sekunden lösen konnte. jeweils die Werte vom Devex oder vom partial multiple Pricing benutzt. Ein echter dyna- mischer Pricer, der die Entscheidung während der aufzeit trifft, könnte die aufzeit noch weiter senken. Per Definition zeigt dieser hypothetische Pricer eine geringer Laufzeit sowohl als das Devex wie auch das partial multiple Pricing. Jedoch erreicht er noch nicht die Geschwindig- keit des Pricing-Verfahrens von CPLEX. Dieses scheint meist ein partial multiple Pricing durchzuführen, wofür die hohe Anzahl von Iterationen pro Sekunde spricht (vgl. Abb. 4.4) Jedoch gelingt es CPLEX, dabei signikant weniger Iterationen auszuführen als SoPlex mit partial multiple Pricing. Interessant ist die Beobachtung, daß das mostviolation Pricing zu einer etwa fünfmal höheren Iterationszahl führt als das partial multiple Pricing. Eigentlich erwartet man von einem Pricing-Verfahren, das stets das gesamte LP berücksichtigt, eine geringere Itera- tionszahl als von einem, das immer nur einen Teil betrachtet. Eine plausible Erklärung für dieses Phänomen könnte sein, daß das most-violation Pricing immer wieder denselben Fehler macht, scheinbar „gute PivotElemente auszuwählen, die jedoch de facto keinen Fortschritt bringen. Vor solchen Fehlern ist das partial multiple Pricing geschützt, da es solche irreführenden PivotElemente gar nicht erst „sieht, wenn sie nicht zufällig im ak- tuellen Teil-LP liegen. Dieser Erklärungsversuch trifft nicht in allen Fällen zu: Bei den Problemen im vorigen Abschnitt zeigte das partial multiple Pricing eine höhere Anzahl von Iterationen als das most-violation Pricing. Somit liegt es wohl eher an den zugrundeliegenden LPs, welche Pricing-Strategie am erfolgreichsten ist. Dies gilt auch für das steepestedge Pricing. Auch wenn dafür die akkumulierte Laufzeit bei SoPlex am geringsten ausfällt, gilt dies nicht
  • 165.
    4. OP bei allen LPs. Ein besonders eklatantes Beispiel hierfür ist das Problem 3 (fit2d): Mit steepestedge Pricing beötigt SoPlex für dessen ösung 5, s, mit partial multiple Pricing lediglich s. Insgesamt zeigen diese Ergebnisse Iterationen pro Sekunde beim primalen Simplex und die des vorigen Abschnittes, daß 140 die Pricing-Strategie einen extremen II Einfluß auf die Lösungsgeschwindigkeit 100 eines LPs hat. Dabei gibt es jedoch keine 80 allgemeine „optimale Pricing-Strategie. 60 ^ Vielmehr sollte für ede Problemklasse 40 s- L^ nach einer optimale Strategie gesucht werden. Mit seinem objektorientierten 20 0 f -<^i—'/ w /y / V > 1 Alle LPs 1 Phase 2 LPs s Software-Entwurf bietet SoPlex hierfür optimale Voraussetzungen. enden wir uns nun den verbleiben- Abbildung 4.4: Durchschnittliche Iterationszahl pro Sekunde beim primalen Simplex für CPLEX und So- den LPs zu, bei denen auch ein Phase-1 Plex mit verschiedenen Pricing-Startegien. Problem gelöst werden muß. Aus dem Ver- gleich mit den Werten der Phase 2 LPs können Rückschlüsse auf den Unterschiede bei der Phase zwischen CPLEX und SoPlex für den dualen Simplex gewonnen werden. Die über alle TestBeispiele aufsummierten Iterationszahlen und Laufzeiten sind in der zweiten Reihe von Abbildung 4.3 angegeben. Dabei wurde jedoch die Probleme 27 und 29 weggelassen, da CPLEX sie nicht in dem vorgegebenen Zeitrahmen von 3000 Sekun- den lösen konnte. Auch sind die Werte für das Devex und most-violation Pricing lediglich untere Schranken, da einige weitere LPs nicht innerhalb der Zeitbeschränkung gelöst wer den konnten. Diese Probleme wurden jedoch nicht aus der Summenbildung ausgeschlossen, um die Anzahl der Problembeispiele nicht noch weiter zu verringern. Eine aussagekräftige Bewertung der ahlen ist auch so möglich. Die wichtigste Beobachtung ist, daß sich das Verhältnis der Iterationszahle gegenüber den Phase 2 LPs signifikant zugunsten von SoPlex verändert hat. Somit zahlt sich aus, daß SoPlex bei seinem Phase-1 Problem soviel Information des AusgangsLPs bei behält wie möglich. Insbesondere liegt bei einigen Problemen (Tabelle A.3, Probleme 2,21,22,23,2434) die Lösung des Ausgangs-LPs bereits vor, nachdem die Phase abge- schlossen ist. CPLEX gelingt dies nur in einem Fall Tabelle A. Problem 24) Durch die geringere Iterationszahl löst SoPlex mit steepestedge Pricing alle LPs in deutlich kürzerer Zeit als CPLEX. Dabei wirkt sich zusätzlich die Tatsache positiv aus, daß in der Phase 1 eine entfernender Simplex benutzt wird, bei dem das steepestedge Pricing weniger Rechenaufwand benötigt als im einfügende Fall Die Phase 1 von SoPlex scheint für den primalen Simplex also günstiger als eine Imple- mentierung nach [100] Wieder ist dies keine beweisbare Aussage, sondern spiegelt lediglich die Ergebnisse bei der gewählte Testmenge wider. Es wird immer Probleme geben, bei
  • 166.
    50 KATEL 4. ERGEBNIS denen sich ei gegenteiliger Effekt zeigt (z.B. Problem Sowohl mit Devex Pricing als auch mit partial multiple Pricing bleibt SoPlex hinter der Geschwindigkeit von CPLEX zurück. Der hypothetische Pricer „MIN könnte hingegen CPLEX überholen, ohne jedoch die Geschwindigkeit des steepest-edge Pricing zu erreichen. Aufgrund der hohen Iterationszahl pro Sekunde ist anzunehmen, das CPLEX vorwie- gend ein partial multiple Pricing verwendet. Daß die Iterationsgeschwindigkeit beim partial multiple Pricing von SoPlex deutlich niedrieger ausfällt, liegt wieder daran, daß in Phase 1 ein entfernender Algorithmus ausgeführt wird, bei dem im partial multiple Pricer eine most-violation Pricing-Strategie implementiert ist. 4.2.3 Zeilen- versus Spaltenbasis Die Untersuchung der Abhängigkeit der Simplex-Algorithmen von der gewählten Basis darstellung geschieht anhand von Abbildung 4.5. Jeder Punkt beschreibt das Verhältnis von Zeit, Iterationszahl oder Iterationszeit bei der Lösung eines LPs mit einer Zeilenbasis gegenüber der Lösung mit einer Spaltenbasis. Dazu wurden die Werte aus Tabelle A.7 zu denen aus A.3 in Beziehung gesetzt, wobei sowohl die Ergebnisse vom primalen als auch vom dualen Algorithmus berücksichtigt wurden. Als Abszisse ist der Logarithmus (zur Basis 10) des Verhältnisses der Anzahl von Zeilen zur Anzahl von Spalten jedes LPs aufgetragen: log( Zeilen / Spalten ). Somit repräsentieren negative Werte LPs mit mehr Spalten als Zeilen und positive solche mit mehr Zeilen als Spalten. Die Ordinate dient dem Vergleich der Laufzeit, Iterationszahl oder Iterationszeit (Zeit pro Iteration) zur Lösung eines LPs bei der Verwendung eine Zeilen- oder einer Spaltenba- sis: Bezeichne z.B. mit tz und ts die Lösungszeit eines LPs für eine Zeilen- bzw. Spaltenbasis, so wird als Ordinate og(tz/ts) aufgetragen. Ein Punkt überhalb der Achse beschreibt also eine Lösung, bei der die Verwendung der Zeilenbasis mehr Zeit benötigt als bei Verwen- dung der Spaltenbasis. Entsprechend wurden die Iterationszahlen und die Iterationszeit aufgetragen. Für die Iterationszeit wurde eine Ausgleichsgerade bestimmt und in Abbildung 4.5 eingezeichnet. Sie zeigt deutlich den zu erwartenden Zusammenhang zwischen der vorzu- ziehenden Basisdarstellung und der Gestalt des LPs: Die Darstellung sollte so gewählt werden, daß die Dimension der Basismatrix geringer ausfällt. Für die Iterationszahl und Lösungszeit wurden die Ausgleichsgeraden nicht eingetra- gen, da sie aufgrund der Streuung der Datenpunkte im Gegensatz zur Iterationszeit nur sehr ungenau bestimmt sind. Daher ist es auch nicht verwunderlich, daß sich die höhere Iterationsgeschwindigkeit bei der Wahl der geeigneteren Basisdarstellung nicht immer bei der Gesamtlaufzeit auszahlt. Insbesondere für den dualen Simplex bei den Problemen 1220 kommt es zu einer drastische Erhöhung der Iterationszahl bei Verwendung der Zeilenbasis,
  • 167.
    4. OP • D 1 o •• . • e m ^ o O O ft» n O I o 0 5 O , o o D £ -D- B D D D • D D •0 0 • ' D D • -, 0 5 8 o Zeit & • + Iterationen o Zeit/Iteration Linear (Zeit/Iteration) -1,5 -3 -2,5 -2 -1,5 -1 -0,5 0 0,5 1 log( Zeilen / Spalten ) Abbildung 4 . : Logarithmisches Vehältnis der I a t i o n s a h l , Lösungszeit und I t a t i o n s i t für SoPle mit Zeilenbasis gegenüber Spaltenbasis. Alle Werte wurden mit steepestedge Pricing bestimmt wodurch bei diesen Problemen die Laufzeiten höher als mit einer Spaltenbasis ausfallen. Unterschiede bei der Iterationszahl kommen zustande, wenn beim Pricing „gleich gute Pivot-Elemente zur Verfügung stehen. Durch die unterschiedliche Traversierung der Indi zes in den Schleifen bei Verwendung einer Zeilen- oder Spaltenbasis kommt es zu einer unterschiedlichen Auswahl und somit zu differierenden Iterationszahlen. Diese Unterschie- de können sich positiv für den einen oder andere Fall auswirken; im Mittel ist edoch keine Präferenz zu erwarten. Ein wichtiger Aspekt bei der Wahl der Basisdarstellung wird von Abbildung 4.5 nicht beschrieben, nämlich ihre Auswirkung auf die verwendbaren Pricing-Strategien. Soll ein LP mit mehr Ungleichungen als Variablen mit dem dualen Simplex gelöst werden, so wird bei einer Zeilenbasis ein einfügender Algorithmus benutzt. Für das steepest-edge Pricing bedeutet dies einen erhöhten Rechenaufwand pro Iteration, weshalb es ünstiger sein kann, dennoch eine Spaltenbasis zu verwenden. Die Zeilenbasis ermöglicht in diesem Zusammenhang auch die Verwendung anderer Pricing-Verfahren beim dualen Simplex, insbesondere das partial multiple Pricing. Dies kann zu bemerkenswerten Leistungssteigerungen verhelfen. Beispiele hierfür, die einzeln gerechnet wurden und somit nicht aus den Tabelle im Anhang entnommen werden können,
  • 168.
    KATEL 4. ERGEBNIS nd (dualer Simplex mit Zeilenbasis Problem steepest-edge artial multiple 0,5 s 03,0 08,3 s 530,83 s 7, 4.2.4 namische Refaktorisierung Im Gegensatz zu 64] darf sich zur Bewertung des Erfolges der dynamischen Faktorisie- rungsfrequenz der Vergleich nicht auf eine einzelne Faktorisierungsfrequenz beschränken, sondern muß sich an dem „ p t i m u m für eine konstante Faktorisierungsfrequenz messen. Dazu wurden die Zeiten pro 100 Iterationen für eine Reihe fester Faktorisierungsfrequenzen zwischen 10 und 320 gemessen. Sie sind im einzelnen i Tabelle A. aufgeführt und die Summen in Abbildung dargestellt. Auch für die dynamische Faktorisierungsfrequenz wurde eine Testreihe über verschiede- ne Werte von r§ zwischen 1 und 32 durchgeführt. Die ermittelten Iterationszeiten stehen in Tabelle A . . Die mittleren Geschwindigkeiten wurden mit in Abbildung 4.6 aufgenommen, obwohl die Werte r/cß nicht mit den statischen Faktorisierungsfrequenzen vergleichbar sind. Dennoch bietet die gewählte Darstellung eine gute Gegenüberstellung beider Ansätze. 270 Für die statischen Faktorisierungsfre- quenz ist ein eindeutiges Minimum der Zeit —•—dynamisch pro Iteration bei einer Faktorisierung der D statisch Basismatrix alle 80 Iterationen festzustel len. Bei seltenerer oder häufigerer Faktori 250 sierung sinkt die Iterationsgeschwindigkeit, weil im ersten Fall der Rechenaufwand für 240 die Faktorisierung zunimmt und im zwei ten Fall der Rechenaufwand für die Lösung 230 der Gleichungsssteme steigt. 10 20 40 80 160 320 1 2 4 16 32Dagegen zeigt die dynamische Einstel- lung der Faktorisierungsfrequenz eine deut Abbildung 4.6: Summe der Iterationsgeschwindig- keit über alle Testprobleme für dynamische und sta- lich geringere Abhängigkeit von dem Ein- tische Faktorisierungsfrequenz der BasisMatri nach stellparameter rj<p, sofern er größer als etwa den Tabellen A.ll und A.12. 6 gewählt wird. Darunter kommt es zu ei nem steilen Anstieg der Zeit pro Iteration, da die Basismatrix zu häufig faktorisiert wird. Für rj<p > 6 ist die Iterationsgeschwindigkeit öher als die höchste mit fester Faktorisie- rungsfreuenz erreichbare. Schließlich wäre eine Heuristik denkbar, die vor Begin des Simplex-Algorithmus
  • 169.
    4. OP 53 z.B. anhand der Anzahl von Zeilen und Spalten des zu lösnden LPs den optimalen Para- meter für die statische oder dynamische Faktorisierungsfrequenz einstellt. Wir simulieren dies, indem wir die mittlere Iterationszeit über alle LPs bestimmen, wobei für edes LP der eweils optimale Parameter Wert benutzt wird. Dann erhält man als mittlere Laufzeit pro 100 Iterationen 230,5 für den statischen und 227,5 für den dynamischen Fall, d.h. die dynamische Refaktorisierungsfreuenz führt auch dann noch zu einer höheren Iterations geschwindigkeit. 4.2. leichungssstemlöser Es sei nun auf ein einzelnes Problem hingewiesen, bei dem SoPlex von der effizienten Imple- mentierung des Lösers für gestaffelte Gleichungsssteme für besonders dünnbesetzte Vek- toren profitiert. Es handelt sich um das Problem 7 (stolle), das im Schnitt 4,9 NNEs pro Spalte enthält. Insgesamt sind weniger als 0.004% der Matrixelemente seiner Nebenbedin- gungsmatrix von Null verschieden. Die optimale Spaltenbasisatrix hat durchschnittlich sogar nur NEs pro Spalte. Für derart dünnbesetzte Matrizen lohnt es sich bei der Lösung der gestaffelten Glei chungssysteme über die Positionen der NNEs im Arbeitsvektor Buch zu führen, wie es i Abschnitt 1.7.4 beschrieben wurde. Dies zeigt ein Vergleich der Laufzeiten beim dualen Simplex zwischen CPLEX und SoPlex mit Spaltenbasis. Da keine Phase 1 nötig ist, führen CPLEX und SoPlex mit steepest-edge Pricing denselben Algorithmus aus. Nun ist zwar die Iterationszahl bei SoPlex deutlich höher, die Laufzeit hingegen wesentlich geringer 437,8s vs. 735, 4.2.6 Skalierung Die Auswirkungen der Skalierung des LPs können durch Vergleich von Tabelle A.3 mit A.8 untersucht werden. Oft stimmen Iterationszahlen und Laufzeiten mit und ohne Skalierung überein, jedoch gibt es auch Probleme, bei der die Skalierung einen großen Einfluß hat. Sie kann sich sowohl positiv als auch negativ auf die Lösungszeit niederschlagen. Beispiele für eine Verschlechterung durch Skalierung sind die Probleme 3 und 27, während sie sich z.B. bei den Problemen 8 und 14 positiv auswirkt. Für einzelne Probleme ist es somit nicht öglich, eine Vorhersage über den Nutzen der Skalierung des LPs zu machen. Eine statistische Aussage gewinnen wir wiederum durch Summenbildung. Dazu sind i der folgenden Tabelle die Summen der Iteratione über alle Testläufe aufgeführt primaler Simplex dualer Simplex ohne Skalierung 9943 5478 mit Skalierung 22 5370 Verhältnis 0, 993
  • 170.
    KATEL 4. ERGEBNIS 50 Iterationen 50 Iterationen Schlupfbasis Crashbasis Schlupfbasis Crashbasis Abbildung 4.7: Laufzeit und Iterationszahl/50 beim dualen (links) und primalen (rechts) Simplex mit steepestedge Pricing für eine Crash- und eine Schlupfbasis. Beim primalen Simplex führt das Skalieren des LPs somit im Schnitt zu 10% mehr Ite- rationen, während es beim dualen Simplex kein signikanter Einfluß ausgemacht werden kann. 4.2.7 Die Startbasis In Tabelle A.9 sind die Laufzeiten und Iterationszahlen für die Lösung der Test-LPs bei Verwendung einer Schlupfbasis aufgelistet. Diese Startbasis ist für die Probleme mit den Nummern 3-5, 1224 sowie 27-35 dual zulässig. Aufgrund der Phase 1 von SoPlex unter scheiden sich (bis auf numerische Verschiedenheiten) der primale und duale Algorithmus für diese Probleme nicht. In der Sprache des primalen Simplex bedeutet dies, daß die LPs bereits in der Phase gelöst wurden. Zur statistischen Bewertung des Nutzen der Crashbasis gegenüber einer Schlupfbasis wurden wiederum die Summen der Laufzeiten und Iterationen über alle LPs bestimmt und in Abbildung 4.7 dargestellt. Sowohl für den primalen als auch für den dualen Simplex führt die Crashbasis zu einer geringeren Iterationszahl als die Schlupfbasis, wobei der Unterschied beim dualen Simplex höher ausfällt. Auf die Laufzeit wirkt sich die Reduktion der Iterationszahl jedoch nur beim dualen Simplex aus. Beim primalen Algorithmus fällt die akkumulierte Lösungszeit trotz höherer Iterationszahl für die Schlupfbasis geringer aus als bei der Crashbasis. Der Grund dafür ist wiederum beim steepest-edge Pricing zu suchen. Bei vielen Probleme ist die Schlupf basis dual zulässig, so daß SoPlex sie bereits mit Phase 1 vollständig löst. Dabei wird jedoch der duale Simplex benutzt. Bei der verwendeten Spaltenbasis ist dies der entfer nende Algorithmus, bei dem das steepestedge Pricing einen geringeren Rechenaufwand
  • 171.
    4. OP Abbildung 4 . : Ierationszahl in Abhängigkeit von de Anzahl maxcycle d e g e n e r i e r PivotSchritten bis zur Perturbation des LPs, gemessen beim primalen Simplex mit steepestedge Pricing. Die dick gezeichnete Linie repräsentiert die Summe über alle Testprobleme. pro Iteration benötigt als beim einfügenden. Mit der Crashbasis werden zwar insgesamt weniger Iterationen benötigt, edoch ist der Anteil von einfügenden Iterationen höher. 4.2.8 Kreiseln Um den Effekt der Kreiselvermeidungsstrategie von SoPlex zu beurteilen, wurden die Ite- rationszahlen für verschiedene Parameter maxcycle (vgl. Abschnitt gemesse Tabelle A. und in Abbildung 8 dargestellt. An der Summe über alle Probleme (fettgedruckte Linie ist zu erkennen, daß sich so- wohl zu häufiges als auch zu seltenes Perturbieren im Mittel negativ auf die Iterationszahl auswirkt. Bei zu häufiger Perturbation wird nach Beenden einer Phase ein stark veränder tes LP vorliegen, so daß für die Lösung des Ausgangs-LPs eine weitere Phase mit den dafür nötigen Simplex-Iterationen erforderlich wird. Entsprechend können bei zu seltenem
  • 172.
    KATEL 4. ERGEBNIS Aufbrechen der Degeneriertheit lange PivotSequenzen ohne Forschritt entstehen. Das ptimum liegt für die gegebene Testmenge bei etwa maxcycle = 16 Iterationen. 4.2. Der Quotientest In den Tabellen A.13 und A.14 sind die TestErgebnisse von SoPlex bei Verwendung des Quotiententests nach Harris bzw. des Textbook-Quotiententests verzeichnet. Dabei sind die Ergebnisse im einzelnen von geringer Bedeutung. Vielmehr soll deutlich werden, daß i beiden ällen nicht alle LPs gelöst werden konnten. In den Fällen, die von beide Versionen mit gleicher Iterationszahl korrekt gelöst wer den, stellt sich der Textbook-Quotiententest als der effizientere heraus. Dies ist aufgrund des geringeren Rechenaufwandes im Vergleich zum zweiphasigen Harris Verfahren auch zu erwarten. In diesem Zusammenhang ist die Beobachtung interessant, daß bei gleicher Iterationszahl der Textbook-Quotiententest nur selten effizienter als der von SoPlex ist (Ausnahmen bei den Problemen 11 und 23). Dies liegt am Weglassen von Phase , sofer n Phase bereits ein stabiles PivotElement gefunden wurde. Es ist jedoch zu bemerken, daß die drei Implementierungen des Quotiententests nicht wirklich miteinander vergleichbar sind. Es ist zu erwarten, daß die Stabilität auch für den Harris und den Textbook-Quotiententest durch eine dnamische Toleranzanpassung und das Zurückweisen von PivotElementen (vgl. Abschnitt 1.8.2) weiter gesteigert werden kann. Dergleichen wird vermutlich auch bei CPLEX vorgenommen, dessen Quotiententest auf dem Ansatz von Harris basiert 5, 6] 4.3 SMoPl Die in diesem Abschnitt vorgestellten Testergebnisse wurden auf einer SGI Challenge mit 2 MIPS 4000 Prozessoren a 150 MHz durchgeführt. Die benutzte Maschine wird als File-Server genutzt, so daß bessere Ergebnisse auf einem ausschließlich für SMoPlex zur Verfügung stehenden Rechner zu erwarten sind. Ferner zeigt die Hardware Engpässe beim Speicherbus: Die sequentielle ösung von nwlö beansprucht 1 2 9 . s , während die zwei fache sequentielle Lösung von „nwl6 auf je einem Prozessor eweils 144.63s dauerte (user time). Somit kann man für einen Parallelrechner, der keinen solchen Engpaß zeigt, eine Verbesserung der Ergebnisse für Prozessoren um etwa erwarten. Die Basisdarstellung wurde bei allen Testläufen so gewählt, daß die Dimension der Basismatrix geringer ausfällt. Es wurde immer eine Schlupfbasis verwendet und der dua- le Simplex-Algorithmus ausgeführt. Als Pricing-Strategie wurde das steepest-edge Pricing verwendet, denn nur für dieses kann die parallele Lösung zweier Gleichungsssteme ver wendet werden. Alle Zeiten wurden als wallclock time (real verstrichene Zeit gemessen.
  • 173.
    4. OPL 57 4.3.1 fteilungsschema In Abschnitt 2.2.1 wurde für die Parallelisierung des Matrix-Vektor-Produktes eine blockweise Aufteilung der Arbeit und somit der Nebenbedingungsmatrix vorgeschlagen. Um die optimale Anzahl von Blöcken zu bestimmen, wurden die aufzeiten und Iterationen für eine Aufteilung in 2, , 8 und 16 Blöcke gemessen; sie sind in Tabelle A.15 vezeichnet. Dabei wurden die anderen Parallelisierungsstrategien (Block-Pivoting und das gleichzeitige Lösen zweier linearer Gleichungssysteme nicht eingesetzt. In Abbildung 4.9 sind nun die daraus gewonnenen Ergebnisse grafisch dargestellt. Es wird für jede Anzahl von Blöcken die mittlere Iterationsgeschwindig- keit als der Quotient aus der Summe al ler Iterationszahlen und der Summe der Laufzeiten über alle Probleme aufgetragen. Ersichtlich wird mit der geringsten Block- zahl die höchste Iterationsgeschwindigkeit erreicht. Als Grund dafür wurde bereits in Abschnitt 2.2 auf die Dünnbesetzt heit des Vektors Ah angeführt. Schließ- lich ist festzustellen, daß eine Geschwindig- 4 8 keitssteigerung durch die parallele Berech- Anzahl Blöcke nung des Matrix-Vektor-Produktes erzielt Abbildung 4.9: Durchschnittliche Iterationszahl pro wprHpn kann Sekunde in Abhängigkeit von der Anzahl von Blöcke, in die das LP aufgeteilt wird. 4.3.2 Erzielte Beschleunigung Für die Testläufe zur Bewertung der i SMoPlex eingesetzten Parallelisierungskonzepte wurde aufgrund der oben geschilderten Ergebnisse eine Aufteilung in 2 Blöcke benutzt. Es wurden Testläufe für alle vier möglichen Kombinationen der Verwendung des Block- Pivotings und der parallelen Lösung zweier Gleichungsssteme durchgeführt. Die Meßer gebnisse sind i Tabelle A. aufgeführt. Abbildung 4.10 zeigt die Summen der Laufzeiten und der Iterationen sowie das Verhält- nis derselben zueinander in bezug auf die entsprechenden Werte bei der ösung mit nur einen Prozessor. Letztere stammen aus Tabelle A.15 In bezug auf die Laufzeit kann nur mit den Versionen ohne Block-Pivoting eine Be- schleunigung erzielt werden, jedenfalls wenn man alle Testprobleme betrachtet. Eine ge- nauere Untersuchung des Block-Pivoting erfolgt in Abschnitt 4.3.3. Der Grund für das schlechte Abschneiden der parallelen Versionen mit Block-Pivoting liegt in der Erhöhung der Iterationszahl ährend sie ohne Block-Pivoting im Mittel gegenüber dem seuentiel
  • 174.
    15 KATEL 4. ERGEBNIS A b b i d u n g 4 . : Summen der Lösungseit und terationszahl sowie beider Quotient für den parallelen Algorithmus auf 2 PEs im Verhältnis zu den entsprechenden Werten bei 1 PE. len Algorithmus konstant bleibt, zeigt sich eine durchschnittliche Erhöhung der Iterations zahl von etwa 20% durch das Block-Pivoting. Diese ist offenbar zu groß, um dennoch eine Beschleunigung zu gewährleisten. Bei der Iterationsgeschwindigkeit (dritte Reihe in Abbildung 410) ist zweierlei zu be- obachten. Zum einen zeigt sich eine Beschleunigung durch die parallele Lösung von zwei Gleichungssystemen, und zwar sowohl für die Testläufe mit als auch für die ohne Block- Pivoting. Den Daten kann jedoch kein Zusammenhang zwischen der erreichbaren Beschleu- nigung und anderen Größen wie die Dimension oder die Anzahl von NEs der Basismatrix entnommen werden. Zum anderen zeigt sich ein ähnlicher Effekt wie er bereits bei SoPlex festgestellt wurde, daß nämlich die Iterationsgeschwindigkeit mit zunehmender Anzahl von Iterationen sinkt. Aus diesem Grund fallen die Iterationsgeschwindigkeiten mit Block-Pivoting geringer aus als ohne. Im folgenden Abschnitt wird jedoch gezeigt, daß das Block-Pivoting in der Tat zusätzliche Parallelität erschließt, die sich in einer Beschleunigung auswirken kann.
  • 175.
    4. OPL 159 Abbildung 4.11: Beschleunigung durch Block-Pivoting in Abhängigkeit von (a) der Dimension der Ba- sismatrix (b) der Zunahme der Iterationszahl 4.3.3 l o v o t i n g Abbildung 4.11.a zeigt das Verhältnis der Laufzeit für die Lösung der Testprobleme mit Block-Pivoting zu ohne Block-Pivoting in Abhängigkeit von der Dimension der Basisma- trix. Die eingetragene Ausgleichsgerade zeigt an, daß je höher die Dimension ist, desto eher eine Beschleunigung durch das Block-Pivoting erzielt werden kann. Wie so oft ist auch dies kein streng gültiger Zusammenhang. Anschaulich leuchtet er ein, denn die Lösungszeit für die Gleichungssysteme korreliert mit der Dimension der Matrizen, so daß sich eine aral lelisierung mit Hilfe vom Block-Pivoting für große Matrizen eher lohnt. Die unbefriedigenden Ergebnisse zum Block-Pivoting wurden auf die Zunahme der An- zahl der Iterationen zurückgeführt. Um diese These zu untermauern, wurden aus Tabelle A.16 verschiedene Teilmengen der LPs betrachtet, bei denen die Iterationszahl um weniger als einen vorgegebenen Prozentsatz zunimmt. In Abbildung 4.11b wurden zwei Größen für verschiedene Schranken der maximalen prozentualen Zunahme der Iterationszahl auf getragen. Die erste Reihe zeigt den Prozensatz der Testprobleme, bei denen sich die Ite- rationszahl beim Block-Pivoting um weniger als vorgegeben erhöht. Z.B. erhöht sich die Iterationszahl bei über der Testprobleme um nicht mehr als In der zweiten Reihe von Abbildung 4.11.b wird angegeben, wieviel Prozent der Laufzeit für die Lösung der jeweilige Teilmenge von Testproblemen mit gegenüber ohne Block- Pivoting benötigt wird. Für 11,4% der Probleme nimmt die Iterationszahl nicht zu, und die Laufzeit kann mit Hilfe des Block-Pivotings auf etwa 81% herabgesetzt werden. Dies ist beachtlich, wenn man exemplarisch die Verteilung der Laufzeit bei der Lösung von stocfor3 in Tabelle 2.2 betrachtet: 60% wird im sequentiellen Fall auf die Lösung von Gleichungssstemen verwendet. Davon sind Stück pro Iteration zu lösen, so daß für
  • 176.
    KATEL 4. ERGEBNIS jedes 20% der Laufzeit angesetzt werden kann. Geht man von optimalen Verhältnissen aus, so wird durch die anderen Parallelisierungen (Pricing, Quotiententest, Matrix-Vektor Produkt und gleichzeitige Lösung von zwei Gleichungssstemen der Gesamtlaufzeit halbiert, so daß ohne Block-Pivoting die Laufzeit auf 60% 80% / 2 + 20% reduziert wird. Das Block-Pivoting kann die 20% Laufzeit für das verbleibende Gleichungssystem auf 10% reduzieren, so daß mit Block-Pivoting idealerweise ein vollständig paralleler Algorithmus nur 50% der sequentiellen Lösungszeit benötigt. Gegeüber den 60% ohne Block-Pivoting entspricht dies einer Reduktion auf 83%. Das dieser Wert sogar unterschritten wird, liegt an den Beispielen, bei denen die Iterationenszahl mit Block-Pivoting niedriger als ohne ausfällt (Probleme 8, und 3 beim primalen Simplex und 5 23, 8 und beim dualen Simplex Bei mehr als 57% der Probleme kann im Mittel eine Beschleunigung um knapp 5% erreicht werden. Somit ist das Block-Pivoting zwar nicht für den allgemeinen Einsatz sinn- voll, edoch lohnt es sich bei jeder Klasse von LPs zu überprüfen, wie sehr die Iterationszahl durch das Block-Pivoting zunimmt. In über 50% der Fälle ist damit zu rechnen, daß es sich lohnt, einen parallelen Algorithmus mit Block-Pivoting einzusetzen. 4.4 Pl Zur Auswertung der Implementierung für arallelrechner mit verteiltem Speicher, DoPlex, wurden die Test-Probleme auf einem Cray T3D eweils mit verschiedenen Anzahlen von Prozessoren gelöst. Die Meßergebnisse sind in den Tabellen A . 7 bis A.19 aufgelistet. Die dort auftretenden „Lücken haben mehrer Ursachen. Um den Rechenaufwand in Grenzen zu halten, wurden immer nur dann mehr PEs eingesetzt, wenn dies eine weitere Beschleu- nigung versprach. Außerdem konnten nicht alle LPs in dem von der Systemadministrati on vorgegebenen Zeitfenster von 1800 Sekunden gelöst werden. Schließlich konnten einige Probleme nicht gelöst werden, weil der Speicherplatz pro PE nicht ausreichte. Ein Beispiel dafür ist das Problem 35. Werden dafür oder mehr PEs eingesetzt, so kann das LP trotz- dem gelöst werden, weil das LP auf die PEs verteilt wird. Bei den Problemen 14 und 17 hilft auch die Verteilung auf mehrere PEs nicht, weil die B a s i s a t r i x , die auf alle Es repliziert wird, zu groß wird. Für die Meßreihen wurde wie bei SMoPlex der duale Simplex mit steepestedge Pri cing und Schlupfbasis verwendet. Für LPs mit mehr Zeile als Spalten wurde eine Zeilen- andernfalls eine Spaltenbasis verwendet. 4.4.1 Parallele Lösung von leichungssstemen Wir untersuchen zunächst die Auswirkungen der parallelen Lösung von linearen Glei chungssystemen. Dieser Ansatz nutzt lediglich Parallelität für zwei PEs aus, so daß keine Abhängigkeit von der Anzahl der eingesetzte Prozessoren zu erwarten ist.
  • 177.
    4.4. OPL Dies wird bestätigt von der in Abbildung 4.12 dargestellten durchschnittlichen Laufzeit pro Iteration mit und ohne parallele Lösung von Gleichungssstemen. Die Nutzung dieser Parallelität reduziert die Arbeit pro Itera- 0,055 tion um einen festen Betrag, unabhängi von der Anzahl der PEs. Die Darstellung wurde nur anhand der LPs gewonnen, für die auch noch mit 16 0,045 PEs Meßwerte bestimmt wurden. Betrach- tet man hingegen alle LPs, die mit ei nem oder zwei PEs gelöst wurden, so wird 0,035 mit 2 Es im Durchschnitt eine Redukti on der Laufzeit auf 77% ohne und auf 70% mit paralleler Lösung von Gleichungssyste- 0,025 men erreicht (ohne Block-Pivoting). Die- se Werte sind besser als die von SMoPlex erreichten (88% bzw. 84% vgl. Abbildung 4.10). Das ist darauf zurückzuführen, daß 0,015 der T3D ein Parallelrechner mit verteiltem 16 Speicher ist, bei dem der Zugriff auf den Abbildung 4.12: Summe der Zeit pro Summe der Speicher zu keiner Verstopfung des Busses Iterationen mit und ohne gleichzeitigem Lösen zwei- führen kann, wie es bei Architekturen mit e r Gleichungssysteme in Abhängigkeit von der Anzahl der P E s c • -u i.- i,+ gemeinsamem Speicher geschieht. 4.4.2 l o v o t i n g Das Problem beim Einsatz des Block-Pivotings ist die häufig damit verbundene Erhöhun der Iterationszahl. Sind mehr als 2 PEs beteiligt, so werden die Blöcke größer und es kann eine weiter Verschärfung des Problems erwartet werden. Die Auswirkunge auf die Laufzeit werden in Abbildung 4.13 gezeigt, in der die Zunahme der Laufzeit beim Block-Pivoting Abhängigkeit von der Anzahl der PEs dargestellt ist. Es scheint ein logarithmisches Wachstum der aufzeit in Abhängigkeit von der Anzahl der PEs vorzuliegen. Bereits bei SMoPlex wurde festgestellt, daß es für das Block-Pivoting auch „gutartige LPs gibt, bei denen es zu keinem oder nur zu einem geringfügigen Wachstum der Itera- tionszahl kommt. ir untersuchen daher, wie sich solche LPs bei Hinzunahme weiterer Es verhalten. In Abbildung 4.14 werden für verschiedene Anzahlen von PEs Mittelwerte über die LPs betrachtet, bei denen sich die Iterationszahl durch das Block-Pivoting um weniger als 10% erhöht. Da mit zunehmender Anzahl von PEs die Anzahl der betrachteten Test-LPs sinkt, ächst die Unsicherheit bei den beobachteten Ergebnissen. ür Es wurden nur noch Testbeispiele betrachtet.
  • 178.
    KATEL 4. ERGEBNIS Der prozentuale Anteil der LPs für die das oben gesagte zutfft ist in der mittleren Zeile von Abbildung 4 dargestellt. Es gibt also LPs, bei denen auch bei größeren PivotBlöcken die Anzahl der Iterationen nicht wesentlich zunimmt. Der Anteil solcher LPs scheint sich nicht zu ändern, so daß es es sinnvoll ist, zwischen gutartigen und und nicht gut- artigen LPs zu unterscheiden. Wie die hintere Zeile von Abbildung 4.14 zeigt, führt bei gutartigen LPs das Block-Pivoting auch bei mehreren PEs zu einer Beschleunigung von 8 0 - 9 0 . Die Be- schleunigung scheint nicht von der An- Anzahl Pes zahl der PEs abzuhängen. Damit kann das Block-Pivoting bei gutartigen LPs zu ei . b b.i l,d u n g 4.13: «Verhältnis, der T A , . - , , , • mit zu oh- n e m skalierbaren parallelen Algorithmus Laufzeit • , . " fuhren ne Block-Pivoting in Abhängigkeit von der Anzahl der > Wle m der erste Zelle m Abbildung PEs. Für jede Anzahl von PEs wurde die jeweils ma- dargestellt ist. ximale Menge von LPs benutzt, für die Meßwerte vor liegen. Es wurden die Zeiten ohne paralleles Lösen von leichungssystemen verwendet. 4.4.3 Paralleles atrixVektorProdukt Schließlich betrachten wir die Beschleunigung, die durch Parallelisierung des Matrix- Vektor-Produktes erzielt wird. Die Parallelisierung geschieht implizit durch die Verteilung der Daten, die gleichzeitig eine arallelisierung der VektorUpdates für g und des Pricings bzw. Quotiententests bedingt. Die parallele Ausführung des Matrix-VektorProduktes und der Aktualisierung des Vek- tors g erfordert keine Kommunikation oder Synchronisation. Deshalb ist dafür eine gute Skalierbarkeit zu erwarten. Sofer diese Operationen den größten Anteil der sequentiel len Laufzeit einnehmen, kann die Parallelisierung dieser Schritte nach dem Amdahl'schen Gesetz auch zu einer Beschleunigung des gesamten Algorithmus führen. In Abbildung 4.15 wurde die Beschleunigung des Simplex-Algorithmus ohne Block- Pivoting und paralelles Lösen von Gleichungssystemen für einige Test-Beispiele in Abhängigkeit von der Anzahl der Es aufgetragen. Die Test-Beispiele wurden nach auf steigendem Wert log(n-£ sortiert, wobei n die Anzahl der NNEs der Nebenbedingungsmatrix und d die Dimension der Basis-Matrix bezeichnen. Bei einer Zeilenbasis ist die Anzahl der Zeilen der Neben- bedingungsmatrix, andernfalls die Anzahl der Spalten.
  • 179.
    4. EL LÖSER FÜ NEA GL A b b i d u n g 4.14: Veschiedene W e t e für LPs, bei denen sich die Iterationszahl beim Block-Pivoting nicht mehr als um 10% erhöht, in Abhängigkeit von der Anzahl der PEs. Es werden dargestellt: Die Laufzeit im Verhältnis zur Laufzeit für 1 PE, der Anteil der PEs, die diese Bedingung erfüllt und die Laufzeit mit Block-Pivoting im Verhältnis zu ohne. Insgesamt is s ein Maß für die zu erwartende Skalierbarkeit durch Ausnutzung der oben genannten Parallelität bei der Lösung eines LPs n ist eine Abschätzung für die Arbeit zur Berechnung des Matrix-Vektor-Produktes. ^ gibt den Anteil der Laufzeit für die Berechnung des Matrix-VektorProduktes an der Gesamtlaufzeit an: Je kleiner die Dimension der Basismatrix gegenüber c ausfällt, desto geringer ist der Anteil der Arbeit für die Lösung der Gleichungssysteme mit der BasisMatrix. Der Logarithmus wird nur benutzt, damit die Werte kleiner ausfallen. Abbildung 4.15 bestätigt die zu erwartende gute Skalierbarkeit von LPs mit hohem s Bei dem fünften Beispiel von hinten handelt es sich um das Problem 34. Hier tritt eine ungewöhnliche Änderung der Iterationszahl bei unterschiedlichen Anzahlen von PEs, was den „Zacken verursacht. Bei den LPs mit s ist eine weitere Beschleunigung durch Hinzunahme weiterer Prozessoren zu erwarten. 4.5 P a r a e l e r Löser fü ineare eichngssystem Zur Bewertung der Implementierung des parallelen Lösers für unsymmetrische dünnbesetz- te lineare Gleichungsssteme wurden Testläufe auf einem C r y T3D durchgeführt. Die dazu verwendete Menge von Test-Matrizen wird in Abschnitt 4.5.1 vorgestellt. In Abschnitt 4.5. wird der parallele LU ZerlegungsAlgorithmus evaluiert und mit der seuentiellen Version verglichen, die in SoPlex eingesetzt wird. Schließlich wird in Abschnitt 4.5.3 der parallele LösungsAlgorithmus für gestffelte Gleichungsssteme begewertet. Die Implementierun-
  • 180.
    KATEL 4. ERGEBNIS 32 16 8 4 2 Anzahl Pes Abbildung 4 . 1 : Beschleunigung in Abhängigkeit von der Anzahl von PEs für einige TestLPs. gen dieses Abschnittes wurden von Michael G n s s vorgenommen. 4..1 Testatrizen Die Dimensionen und Anzahlen der NNEs der Test-atrizen sind in den ersten Spalte von Tabelle A . 0 aufgelistet. Die Matrizen stammen von zwei Quellen: Bei den Matri zen SM-50a bis stocfor3 handelt es sich um die mit SoPlex bestimmten optimalen Spal tenbasismatrizen der gleichnamigen LPs. Dabei wurden nur Matrizen höherer Dimension ausgewählt. Sie dienen zur Beurteilung der Anwendbarkeit des parallelen Loseres für den Simplex-Algorithmus. Die restlichen Matrizen kommen aus dem HarwellBoeing Testset [0]. Er ist fast schon ein Standard bei der Evaluierung von Gleichungssystemlösern und ermöglicht somit einen Vergleich mit anderen Implementierungen. Hierbei ist vor allem die i 5] vorgestellte Im- plementierung für den T3D interessant.
  • 181.
    4. EL LOSER FU NEA GL 4. Parallele L Z e r l e g u n g Tabelle A.20 ermöglicht zunächst einen Vergleich zwischen der sequentiellen Implemen- tierung für SoPlex und der auf einem Prozessor laufenden parallelen Version des LU- Zerlegungs-Algorithmus'. Dieser Vergleich ist interessant, denn durch Kompatibilitätscheck und Bereithalten der maximalen Absolutbeträge für ede Zeile der aktiven Submatrix lei sten beide Algorithmen unterschiedlich viel Arbeit. Es wäre zu erwarten, daß die parallele Version mehr Arbeit leistet und somit höhere Laufzeiten aufweist. Dies trifft auch für alle Basis-Matrizen zu; die sequentielle Implemen- tierung für SoPlex ist bis zu einem Faktor 546 schneller als die parallele Version (bnll) In- teressanterweise gilt dies nicht mehr für alle Probleme aus dem HarwellBoeing Testset. Für „wattl benötigt der sequentielle Algorithmus doppelt so lange wie der parallele mit einem Prozessor. Der Grund dafür liegt in der verstärkten Suche nach PivotElementen mit ge- ringer Markowitzzahl. Während die sequentielle Implementierung pro Iteration nicht mehr als 1 2 Zeilen oder Spalten nach guten Pivot-Elementen durchsucht, versucht die parallele Implementierung auch bei einem PE eine Menge von kompatiblen PivotElementen zu kon- struieren. Dazu untersucht sie mehr (hier 4) Zeilen oder Spalten und hat somit eine größere Chance PivotElemente geringerer Marko- witzzahl zu finden. Offenbar führt dies zu LU Zerlegung einer Folge von Pivot-Schritten mit weni ger Fill, so daß der parallele Algorithmus nsgesamt weniger Arbeit leistet. Die verbleibenden Spalten von Tabel le A.20 erlauben eine Beurteilung der Ska- lierbarkeit des parallelen U Zerlegungs Algorithmus'. Verschiedene Durchschnitte der erzielten Beschleunigungen sind in Ab- bildung 4.16 dargestellt. Man erkennt, daß selbst bei den LP BasisMatrizen eine Be- -• LP • HB schleunigung erzielt werden kann. Sie ist -A Gesamt X Maximum vornehmlich für die Probleme, bei denen -* Minimum - - - - Optimum die parallele Version auf einem PE signi 0,1 kant langsamer läuft als die sequentielle 2 4 8 16 (fitlp, grow22, agg3, pilots, b n l , scfxm2 Anzahl PEs ganges.ob4, maros, nesm, pilotwe) zu beob- Abbildung 4.16: Beschleunigung des verteilten LU- achten. Der Geschwindigkeitsgewinn durch Zerlegungsalgorithmus' in Abhängigkeit von der An- Parallelität kann dies kaum wett machen. zahl von Prozessoren. Es werden die Beschleunigung Somit bleibt festzustellen, daß der Ein- für alle LP-Matrizen, die Harwell-Boeing Matrizen und satz der parallelen LU-Zerlegung für den alle Matrizen zusammen sowie für die am besten (35) und die am schlechtesten (1) skalierende Matrix dar Simplex-Algorithmus inadequat ist je- gestellt denfalls bei den gewählten Probleminstan-
  • 182.
    66 KATEL 4. ERGEBNIS zen. Dies gilt umso mehr, als optimale BasisMatrizen in der Regel die dichtbesetzteste Matrizen während der Ausführung des Simplex-Algorithmus' sind. Gleichungssysteme mit zwischenzeitlichen Basen werden somit meist mit weniger Aufwand gelöst, was de Nutzen von Parallelität für den Simplex-Algorithmus weiter einschränkt. Liegt das unerfreuliche Ergebnis für die parallele Lösung von BasisMatrizen vielleicht an einer schlechten Implementierung? Die Antwort ist Nein, was anhand der Testmatrizen aus dem HarwellBoeing Testset im Vergleich zu anderen publizierten Ergebnissen auch nachgeweisen werden kann. R. Asenjo und E.L. Zapata berichten in [5] folgende aufzeite ihres FaktorisierungsAlgorithmus auf einem Cr T3D Problem Es Es steam 989 3. 1. jpwh9 16.22 3. sherman 3.02 1 1.3 sherman 08 228 8. ns337 8 8. Lediglich bei „sherman2 und 1 PEs überholt die Implementierung von R. Asen und E.L. Zapata die hier vorgestellte Version. In allen anderen Fällen sind die Laufzeiten mitunter erheblich höher. Zwar ist ihre Effizienz nach (23) besser, jedoch ist die Bedeutung dieser Maßzahl angesichts der absoluten Laufzeiten i age zu stellen. Insgesamt ist somit festzustellen, daß die im Rahmen dieser Arbeit erstellte parallele Implementierung vergleichsweise günstige Laufzeiten erreicht und somit nicht für den Miß- erfolg bei den LP BasisMatrizen verantwortlich gemacht werden kann. Die Skalierbarkeit der Implementierung steigt mit zunehmender Arbeit, was sie für den Einsatz in anderen Anwendungsfeldern interessant macht. Der Einsatz für die ösung partieller Differential gleichung ist geplant. Als besonders interessantes Phänomen ist in Tabelle A.20 eine superlineare Beschleuni gung für „lns2927" bei 2 PEs zu erkennen. Dies ist darauf zurückzuführen, daß der parallele Algorithmus für unterschiedliche Anzahlen von PEs meist unterschiedlich viel Arbeit lei stet. Je mehr PEs eingesetzt werden desto größer wird die Menge der PivotKandidaten, was jeweils zu einer anderen Eliminationsfolge führt. Durch die größere Kandidatenmenge können zweierelei Effekte eintreten. Zum einen können so PivotElemente mit geringerer Markowitz-Zahl gefunden werden, was zu einer Verringerung der Gesamtarbeit führt und die superlineare Beschleunigung für ns erklärt. Leider kann zum anderen auch der gegenteilige Effekt eintreten, was leider häufiger geschieht. In die größere Kanidatenmenge werden mangels Alternativen auch NNEs mit höherer Markowitz-Zahl aufgenommen. Fallen diese Kandidaten nicht durch den Kompati bilitätscheck, führen sie zu Eliminationsschritten, bei denen viel Fill erzeugt wird. Dadurch erhöht sich die Gesamtarbeit. Beim Problem „sherman3 zeigt sich dieser Effekt so deut lich, daß die Laufzeit für 2 PEs die für 1 PE sogar übertrifft. Hier könnte eine Begrenzung der maximalen arkowitz-ahl weiterhelfen.
  • 183.
    4. EL LOSER FU NEA GL dünnbesetzte rechte Seite dichtbesetzte rechte Seite 0,1 16 Anzahl PEs Anzahl PEs Abbildung 4.17: Beschleunigung des v e r t i l t n Lösung von Gleichungssystemen mit dünn- und dicht besetztem RechteSeite-Vektor in Abhängigkeit von der Anzahl von Prozessoren. Es werden die Beschleu- nigung für alle LP-Matrizen, die HarwellBoeing Matrizen und alle Matrizen zusammen sowie für die am besten 5) und die am schlechtesten (1) skalierende Matrizen dargestellt. 4.3 ösen gestaffelter leichungsssteme Bei der Bewertung der Implementierungen der Gleichungssystemlöser bei gegebener LU- Zerlegung müssen zwei Fälle unterschieden werden: Der Rechte-Seite-Vektor kann dicht oder dünnbesetzt sein. In letzteren Fall ist weniger Arbeit zu verrichten und somit ei ne schlechtere Skalierbarkeit zu erwarten. Die Gleichungssysteme, die im ahmen von Simplex-Algorithmen zu lösen sind, gehören fast immer zu dieser Kategorie. Tabelle A. nthält aufzeite für die verteilte Lösung von Gleichungssteme der Form LUx = b für verschiedenen Anzahlen von PEs. In den ersten Spalten wurde für b ein Einheitsvektor benutzt. Die Ergebnisse werden in Abbildung 4.17.a zusammengefaßt. Bei den LP Basis Matrizen zeigt sich in fast allen Fällen eine Verlangsamung schon bei 2 Es. Dagegen kann bei den meiste HarwellBoeing Matrizen eine Beschleunigung bis zu 8 PEs erzielt werden. Diese spiegelt jedoch nicht die reine Beschleunigung bei der Lösung von (4.1) wieder. Vielmehr stammen die Faktoren L und U aus einer zuvor verteilten LU-Zerlegung. Wie im vorigen Abschnitt beschrieben wurde, ist zu erwarten, daß die Faktoren bei verschiedenen
  • 184.
    KATEL 4. ERGEBNIS Anzahlen von PEs unterschiedlich viele NNEs haben. Damit fällt bei der Lösung von Gleichungssystemen auch unterschiedlich viel Arbeit an, typischerweise also mehr Arbeit, e mehr PEs beteiligt sind. Demnach würden die Beschleunigungen für eine fest vorgegebene U-Zerlegung leicht besser ausfallen als in Abbildung 7 dargestellt. Dasselbe gilt auch für die Lösung von Gleichungssystemen mit dichtbesetztem Rechte- Seite-Vektor. Die entsprechenden Ergebnisse sind in Abbildung 4.17.b zusammengefaßt. Sie unterscheiden sich zu den Ergebnissen mit dünnbesetztem Rechte-Seite-Vektor lediglich darin, daß insgesamt eine bessere Skalierbarkeit erreicht wird. Dies ist aufgrund der höheren zu verrichtenden Arbeitsleistung auch zu erwarten.
  • 185.
    samenfassu Es wurden dreiImplementierungen des revidierten Simplex-Algorithmus vorgestellt, je ei ne für sequentielle Workstations, für Parallelrechner mit gemeinsamem Speicher und für solche mit verteiltem Speicher. Sowohl der primale als auch der duale Algorithmus wurden implementiert. Es werden dünnbesetzte Vektoren und Matrizen eingesetzt, insbesondere auch bei der LU-Zerlegung der Basismatrizen. Beim Pricing kommen effiziente Strategien, u.a. das steepestedge Pricing, zum Einsatz, und der auf einer theoretischen Untersuchung der numerischen Stabilität basierende Quotiententest zeichnet sich durch eine hervorragen- de numerische Stabilität aus. Alles zusammen führt zu einer Implementierung, die sich mit state-ofthe-art LP-Lösern wie CPLEX messen kann und für den täglichen Einsatz z.B. in Schnittebenenverfahren geeignet ist. Die Implementierungen basieren auf einer neuen Darstellung, die den primalen und dualen Algorithmus mit einer Zeilen- und Spaltenbasis einheitlich zusammenfaßt. Dadurch können beide Algorithmen mit beiden Basisdarstellungen verwendet werden. Der Einsatz der Zeilenbasis bei LPs mit mehr Nebenbedingungen als Variablen kann den Implementie- rungen zu einer weiteren Geschwindigkeitssteigerung verhelfen. Dies gelingt auch mit Hilfe einer neuen Phase 1, die durch das Umschalten zwischen primalen und dualem Algorithmus funktioniert. Dadurch kann in Phase 1 ein LP verwendet werden, das sich so wenig wie möglich von dem Ausgangs-LP unterscheidet, wodurch insgesamt weniger Iterationen ver wendet werden als bei den sonst verwendeten Phase 1 LPs. Desweiteren wird der Zeitpunkt der erneuten Faktorisierung der Basismatrix dynamisch so festgesetzt, daß die Iterations geschwindigkeit maximiert wird. Schließlich kommt ein Löser für lineare Gleichungssyteme zum Einsatz, der für extrem dünnbesetze Matrizen und echte-Seite-Vektoren optimiert wurde. Den Implementierungen liegt ein objektorientierter Software-Entwurf zugrunde. Dieser ermöglicht es, für die parallelen Versionen wesentliche Teile durch Ableitung von der se- quentiellen Version zu übernehmen. Lediglich die zusätzlichen Aufgaben zur Synchronisati on, Kommunikation und Verteilung der Arbeit müssen hinzu implementiert werden. Außer dem unterstützt der objektorientierte Entwurf die Integration etwa von Pricing-Verfahren, die vielleicht in Zukunft entwickelt werden. Bei den parallelen Versionen wurden vier Parallelisierungsansätze verfolgt. Beim Pricing und Quotiententest werden parallele Such-Algorithmen zur Bestimmung eines maximalen
  • 186.
    70 KAPITEL 4 ERGEBNI oder minimalen Elementes eingesetzt. Die Parallelisierung des Matrix-Vektor-Produktes und der Vektoraddition lohnt sich besonders für Probleme mit einer sehr unterschiedlichen Anzahl von Zeilen und von Spalten. Für derartige LPs können durch den Einsatz vieler Prozessoren hohe Beschleunigungen erzielt werden, etwa um den Faktor 20 mit 32 PEs. Wird das steepestedge Pricing verwendet, so fällt ein zusätzliches lineares Gleichungs system pro Iteration an. Dieses wird parallel zu einem der weiteren Gleichungssysteme jeder Iteration gelöst. Die Nutzung dieser Parallelität zahlt sich jedoch nicht immer aus. Dies liegt zum einen an dem damit verbundenen Kommunikations- oder Synchronisations aufwand, zum anderen an der effizienten sequentiellen Implementierung, die beide Glei chungssysteme mit einer Traversierung der LU-Zerlegung löst. Sie benötigt weniger Zeit, als die zweifache Ausführung des ösungs-Algorithmus für ein Gleichungssstem. Die interessanteste Parallelisierung ist das Block-Pivoting. Dazu wird der Algorithmus so umstrukturiert, daß Gleichungssysteme aus an sich aufeinanderfolgenden Iterationen gleichzeitig parallel gelöst werden. Dies hat jedoch oft eine Erhöhung der Iterationszahl zur Folge, was eine Beschleunigung zunichte macht. Für die Problembeispiele, bei denen sich die Iterationszahl jedoch nur geringfügig erhöht, können für wenige PEs gute Beschleunigungen erzielt werden. Schließlich wurde die verteilte LU-Zerlegung dünnbesetzter und unsymmetrischer Ma- trizen sowie die darauf basierende parallele Lösung linearer Gleichungssysteme untersucht. Es wurde eine Implementierung für den Cray T3D vorgenommen, die kompatible Pivot- Elemente für die parallele Elimination verwendet. Außerdem wird ein neues Lastausgleichs Verfahren benutzt, das keinen zusätzlichen Kommunikations-Aufwand erfordert. Die Imple- mentierung hat zwar eine geringere parallele Effizienz als vergleichbare Implementierungen, benötigt aber insgesamt weniger Zeit. Im Rahmen des Simplex-Algorithmus kommt sie je- doch nicht zum Einsatz, da für die extrem dünnbesetzten Basismatrizen heutiger LPs keine sinnvolle Beschleunigung erzielt werden konnte. Treten bei der Lösung von LPs dichter be- setzte BasisMatrizen auf, so könnte der parallele Löser für lineare Gleichungsssteme auch eine Beschleunigung des Simplex-Algorithmus bewirken. Abschließend kann festgestellt werden, daß mit dieser Arbeit die Fortentwicklung von Simplex-Algorithmen auf mehreren Ebenen weiter vorangetrieben wurde. Die Parallelisie- rung für 2 PEs scheint für allgemeine LPs einsetzbar zu sein, wobei das Block-Pivoting jedoch nur für Problemklassen verwendet werden sollte, bei denen es zu keiner großen Erhöhung der Iterationszahl führt. Mehr als zwei PEs können nur für LPs sinnvoll ein- gesetzt werden, bei denen ein großer Unterschied in der Anzahl von Zeilen zur Anzahl von Spalten vorliegt. Bei solchen Problemen skaliert der parallele Algorithmus gut, und es önnen große Beschleunigungen erzielt werden.
  • 187.
    an Tabelle Dieser Anhang enthältalle MeßwertTabellen, die für die Bewertung der Implementierun- gen SoPlex, SMoPlex und DoPlex sowie für den parallelen Löser für dünnbesetzte lineare Gleichungssysteme erstellt wurden. Ihre Auswertung und ggfs. graphische Aufbereitung ndet sich in Kapitel Die Ergebnisse zu SoPlex und CPLEX wurden auf einer Sun UltraSPAR 1 Model 170E gemessen, die zu SMoPlex auf einer SGI Challange mit zwei 150MHz MIPS 00 Prozessoren. Die Werte für DoPlex sowie für die parallele LU-Zerlegung und Lösung ünn- besetzter linearer Gleichungssysteme wurden auf einem Cray T3D gemessen. Jede PE hat MB Speicher und einen 15 MHz DE alpha Prozessor ohne 2nd level cache. Bei allen Simplex-Testläufen wurde die maximale Berechnungszeit auf 3000 Sekunden beschränkt, auf dem Parallelrechner Cray T3D (aus administrativen Gründen sogar auf 1800s. Konnte ein LP in dieser Zeit nicht gelöst werden, so wird dies durch „>" angezeigt. Konnte ein LP hingegen aufgrund anderer Probleme, insbesondere aufgrund der numeri schen Stabilität, nicht gelöst werden, so wird dies durch gekennzeichnet. Auf dem T3D wurde ausgehend von 1 PE ein LP nur dann mit mehr PEs gelöst, wenn eine weitere Beschleunigung erwartet werden konnte. Bei den Meßergebnissen zu SoPlex wurden folgende Einstellungen verwendet steepestedge Pricing SoPlex Quotiententest Spaltenbasis skaliertes LP Crashbasis maxcycle = 100 ( g l . Abschnitt T]9 = 10 (vgl. Abschnitt 8. • S l e - 6 vgl. Abschnitt 3
  • 188.
    ANHANG A. T Nurdie Abweichungen davon werden bei den Tabellen aufgeführt. ür die Mesungen zu SMoPlex und DoPlex wurden folgende Einstellungen verwendet steepestedge Pricing SoPlex Quotiententest Basisdarstellung jeweils so, daß die Dimension niedriger ausfällt unskaliertes LP Schlupfbasis maxcycle = 100 gl. Abschnitt 7]9 = 10 (vgl. Abschnitt 8. -6 • S le vgl. Abschnitt 3
  • 189.
    73 Anzahl Anzahl Anzahl Kondition Nr. ame Zeilen Spalten NNEs der opt. Basis agg3 16 302 30 1. 04 bnl 17 12 0 fit2d 000 6 03 ganges 30 1681 1. 05 grow2 44 82 1. maros 84 443 9614 1. 05 nesm 66 23 3288 1. 0 pilots 44 65 16 3.6 07 pilotwe 72 78 26 1.5 08 scfxm 66 83 stocfor3 66 1595 48 5 05 agg3.ob 23 128 23 4 05 bnll.ob 3345 92 76596 9. 05 fitlp.ob 3766 2508 1588810 6 ganges.ob 3320 230 8856 6. 16 grow22.ob 159 maros. ob 80 0280 2. 0 nesm.ob 88 15845 6. 05 pilotwe. ob 4 17730 scfxm2.ob 38 26 SM-0.k-68a 272 23 894 4 5 04 22 SM-50.k-8b 288 23 7083 6. 04 23 kamin07 20 266 1. kamin2702 33 7882 ehr15 96 6 scrl2 273 992 27 stolle 2396 3288 96 28 hansecom 96 07 31 03 hansecoml 96 5919 166 3.5 03 30 a a O . 837 28 44 1. aaO.p 837 33 038 1. 04 32 aa000.p 837 44 1520 1. 0 33 aa6.p 32 416 24553 5. 03 osa030.p 9619 28 01 nwl6 33 1520 02 T a b e l e A l : Die T e s L P s mit einigen Kenngrößen. Die Konditionswere für die optimalen Basismatize wurden mit Hilfe von CPLEX bestimmt und gelten somit für das von CPLEX skalierte LP. Aufgrund der hohen Dimension von Problem „stolle" konnte die zugehörige Konditionszahl von CPLEX nicht in einer akzeptablen Zeit berechnet werden; sie liegt vermutlich um 0 4 .
  • 190.
    ANHANG A. T Lösung mit C P E X 4.0.7 Nr. primaler Simplex dualer Simplex Zeit in Iteratione Zeit in Iteratione Sekunden gesamt Phase Sekunden gesamt Phase 28 16 2.8 3 8 78. 56 60 32 3. 106 60 3. 38 3. 1050 8. 288 1008 73 8. 37 10 10 16 287. 28 883 33.44 00 33 56 8. 56 28 50 44 2. 87. 7. 33 10 8.44 82 5623 232 2. 7. 10 160 10238 1016 7. 150 82 7. 78 23 23 8. 73 10 10 27 668. 50 23 96 50 600 16 33 15000 15000 73 23 28 8. 7. 733 50000 2338 7.8 1088 962. 37 90 15 7. 60 50 1050 32 37 96 33 44 44 28.8 160 00 27 8 2388 66 Tabelle A.2: Laufzeiten und Anzahl der Iteationen für Phase 1 und 2 bei Lösung der TestLPs mit CPLEX 4.0.7. Es wurden die Voreinstellungen verwendet, die man bei Aufruf des Programms erhält
  • 191.
    Nr. primaler Simplex dualer Simplex Zeit in Iterationen Zeit in Iterationen Sekunden gesamt Phase Sekunden gesamt Phase 12 29 0. 96 83 944 2. 1078 33 90 1. 32 0. 13 3. 100 3. 44 4.05 47 5. 7.56 26 33 8. 43 28.3 44 1015 5638 16 55 28 10 27 2. 59 88 44 4 10 104. 44 00 47.32 82 3 56 56 44. 38. 2100 88.24 8 28 4.23 4. 06 153. 37. 319 117. 91 337 3.77 10 10 3.88 838 22 8.42 38 36 10.3 328 23 3. 1006 1006 168. 106 7. 9316 16 17. 99 44 78. 10 9. 33 5. 27 7. 370 37. 1050 28 683 68.87 83 10 10 333.45 1096 78. 007 152. 32. 90 32 458.45 315 48 9. 33 4.78 3850 83 7. 24 2.3 78 78 45 96 3 56 16 T a b e l e A . : L a u f i t n und I a t i o n s a h l e n bei der Lösung mit SoPlex.
  • 192.
    ANHANG A. T Nr. primaler Simplex dualer Simplex Zeit in Iterationen Zeit in Iterationen Sekunden gesamt Phase Sekunden gesamt Phase 56 0. 1. 10 10 3. 822. 23 32 1.3 37 0.82 150 3. 10 8. 378 7. 10 44 37 103 500 10 6077 8 23 00 66 1655 8 1015 10 15 106 860 3 9963 28.73 32 43 3333 7 66 1650 96 50. 16460 0 2 28 37. 282 66 75 66 2. 27.10 37 5. 64 106. 6900 82.00 28 163. 823 16 703 38 15 96 10 2.3 90 90 2.37 22 8. 7.79 23 1. 10 10 3. 2305 2. 878 878 178 16 732 774 28 27 27 82 383.18 96 28 10 9587 28.78 20 10 8 1609 83.38 56 06 96 33.50 87 28 233 240 32 600 108 444 33 4. 57 2. 25. 96 37 3. 1668.3 16 0 T a b e l e A.4: L a u f i t n und I a t i o n s a h l e n bei der Lösung mit SoPlex mit Devex Pricing.
  • 193.
    Nr. primaler Simplex dualer Simplex Zeit in Iterationen Zeit in Iterationen Sekunden gesamt Phase Sekunden gesamt Phase 0. 0. 73 349 3. 3. 2880 283 004 0 283 1644 3 1528 56 37 17 83 90 39 37 37 26 3358 7 157 1050 44 828 4088 2 57 10 657 96 10 782 238 87.37 73.8 2346 737 80.82 10 5. 2496 5 12. 15852 7.37 160 83. 733 122.67 787 387. 37. 5 44.3 3 348 16 23. 28 32 156 1037 21500 1. 17 1094 280 3.50 15 82 06 2.8 1 1 2. 22 2.26 4460 44 4.3 10 23 37.83 18 18 82. 828 11. 0483 0483 60 49 23. 78 106 78 3. 10 151. 60 27 133. 10 47. 15 28 1600 8610 82 906 10 382 38292 106 83 388 167. 5. 04 87 37 32 508.3 33 6.07 08 33 109.8 15 10 8. 53.10 60 60 79 59 16 3238 33 T a b e l e A . : L a u f i t n und I a t i o n s a h l e n bei der Lösung mit SoPlex mit parial multiple Pricing.
  • 194.
    78 ANHANG A. T Nr. primaler Simplex dualer Simplex Zeit in Iterationen Zeit in Iterationen Sekunden gesamt Phase Sekunden gesamt Phase 0. 604 3. 14 66 3316 38 96 0 2857 1644 1. 1506 56 82 37 3. 12 83 5.3 10 1590 28 282 7.3 906 26 33 44 38 15 56 82 10 10 48 93 10 8 1. 10 10912 807.87 87 600 3233 2388.62 80 160 7. 160 8 1616 1.37 5. 16 37.20 3 7.3 66 453 78259 22 21500 83333 1083 280 90 50 06 3. 1 1 2. 22 4. 4460 44 1560 10 23 152.52 18 18 00. 828 663.33 83 83 662. 9006 106 40 1.15 1073 154. 28 27 207.37 50 10 52.10 15 28 1641 23 82 34 10 9079 9079 > 44 44 388 166628 73 253 437 32 786. 784 33 8. 10 2.66 50. 60 60 3.27 55 3.32 323 33 T a b e l e A.6: L a u f i t n und Ierationszahlen bei der Lösung mit SoPlex mit mosviolation Pricing.
  • 195.
    Nr. primaler Simplex dualer Simplex Zeit in Iterationen Zeit in Iterationen Sekunden gesamt Phase Sekunden gesamt Phase 09 7 38 0.60 28 30 23 1056 3. 9 28 5. 606 500 44 2.15 108 1.8 22 30 100 2. 83 4.40 15 87 32.44 10 2832 2 90 4810 660 8 79 66 15 237 714 28 10 22 73 16 3 88. 3.02 9245 32. 150 108.33 3388 113 9. 10 8 28 2. 10 7.15 50 1023 10 9. 59 2714 90 3. 73 724.73 73 106 55 7. 86 16 8. 2. 2.40 22 23 9 23 40 10 10 1003 66 50 16 8250 8250 93 87 5637 8 5073 70 38 10600 44 1 10773 15 27 8615 00 30.83 105 28 2834 05 28. 28 1033 5040 923 73 16 82 1073 60 32 457 33 7. 59 44.78 156.96 04 37 7. 16 2.91 83 T a b e l e A . : L a u f i t n und Ierationszahlen bei der Lösung mit SoPlex mit Zeilenbasis.
  • 196.
    ANHANG A. T Nr. primaler Simplex dualer Simplex Zeit in Iterationen Zeit in Iterationen Sekunden gesamt Phase Sekunden gesamt Phase 16 120 40 23 106 783 783 1. 107 50 25 82. 28 15 15 00 10 108 94 5.27 602 8.0 25 7.60 44 7.73 28 8. 49 2726 23 820 06 7. 23 744 7 283 187 10 38 97 00. 239. 88 282 7. 7. 5 82 103.8 44 73 20 53.90 3 56 5696 7.3 38. 100 4.8 66 2.84 152.8 52 56 06 185. 319 7.59 337 10 10 00 838 22 38 36 10 328 23 5. 1006 1006 171.73 106 8. 9316 16 833.8 99 44 10 48. 86 33 27 373.3 782 75 6.8 35 28 78.3 83 68. 83 10 7. 10 332. 1096 2. 007 152. 90 90 32 4563 315 48 9. 33 4. 3850 483 7. 42 8.8 323 23 78 16 T a b e l e A . : L a u f i t n und I a t i o n s a h l e n bei der Lösung mit SoPlex für das unskaliee LP.
  • 197.
    Nr. primaler Simplex dualer Simplex Zeit in Iterationen Zeit in Iterationen Sekunden gesamt Phase Sekunden gesamt Phase 73 50 16 1.8 104 104 1. 10 88.8 160 160 88. 1. 66 66 10 58 2. 150 150 60 506 5. 100 8. 26 10 8. 798 27 8.68 2875 2987 4388 25 7.73 423 00 1644 237 700 13 10 9 83 87 23 2. 15 7. 10 27 90 03 15 15 95 15 1016 43 43 106.32 43 00 7.96 56 2. 22 47 24. 446. 60 443.65 60 507.3 10225 10219 50683 1022 238 238 238 3. 838 838 3.69 838 22 2. 37 37 2.38 37 23 90.3 790 790 90.16 790 797. 7. 97 167. 606 60 33 152.3 43 65 1028 27 42 1087 1087 21.16 1088 28 7 96 96 73. 96 339. 1096 1096 339. 1096 78. 78. 39 35.42 10 10 73 10 32 73.88 3 33 18 18 283 73 73 28 59 32 32 8 32 T a b e l e A.9: L a u f i t n und I a t i o n s a h l e n bei der Lösung mit SoPlex mit Schlupfbasis
  • 198.
    82 ANHANG A. T iteation maxcycle) Nr. 16 32 128 38 38 38 38 38 38 33 33 33 33 33 33 33 33 1097 10 10 10 67 57 44 670 177 23 10 10 10 10 700 66 66 50 66 66 66 338 332 323 16 50 597 170 44 779 676 97 670 66 444 66 677 677 23 282 17 10 3832 67 97 15 56 50 10 50 160 667 83 566 28 560 838 50 10 10 10 10 10 10 16 70 50 56 23 10 10 1033 1006 1006 1006 1006 1006 96 96 5916 23 82 32 28 506 577 97 15 233 28 506 50 33 567 10 444 32 666 15 1610 1683 32 77 67 67 077 238 333 32 177 338 5097 33 3876 38 56 000 3233 17 3200 17 17 17 17 17 Tabelle A.1 Anzahl der I t a t i o n e n von SoPlex bei vechiedenen W e n von maxcycle.
  • 199.
    time iteation Nr. 32 10 10 50 82 66 15 13 13 42 3 38 3 8 3 3 28 3 0.29 0.32 0.3 0.32 57 3.38 2.8 3.07 2. 8 8 82 8 10 50 15 10 10.10 1.8 1. 1. 1. 1. 2.16 2.8 2. 2.50 2. 2. 7. 15 3.82 3.10 2. 2.3 8. 1 57 35 1.67 1. 1. 67 17 1088 2.03 2. 2. 1. 1.88 1539 3.28 2. 2.70 2. 2.77 2056 3.96 3. 3.23 3.3 3. 2.63 2. 2.23 2. 2.32 3. 22 3.82 90 86 8 23 8. 1.50 1.46 1. 1.38 1. 3. 3.88 3. 3.60 3.63 3.17 2.88 2.70 2. 2.88 17 7 77 27 > 3 16 17 28 4.56 60 67 8.68 5.3 36 4. 4. 4. 83 2. 83 2. 23.57 2. 44 82 8.8 8. 9. 32 17. 15 15 3. 33 2. 0.98 0. 0.89 0. 0.96 108 8.76 8. 8.66 8. 8.72 10 1007 1050 1007 10 108. Tabelle A . l l : Zeit für 100 I t a t i o n e n von SoPlex bei dynamische Refaktorisierung in Abhängigkeit von dem Parameter rQ.
  • 200.
    ANHANG A. T time iteation Nr. 16 32 12 10 10 23 2 3 44 17 38 3 66 36 32 3 33 0.32 0.29 0. 0.3 0. 3.97 3.44 2.8 2. 3. 8 8 8 83 90 10 15 16 5.3 4. 3 15 3 2. 2.17 1. 1. 1.72 1. 3. 2. 2. 2. 2.7 7.97 97 8 3. 2. 3.06 2. 83 70 2. 2.17 1. 1. 1. 1. 17 3. 2.66 2. 2. 2. 2. 97 3.82 3.3 2.8 2.96 2.8 4. 3. 3. 3.48 3.3 3.17 2. 2.3 2. 2. 22 1.32 1. 82 8 23 2. 2.0 1. 56 6.25 4.38 4. 3. 4.17 4.16 3.28 3.16 2.90 2.90 3.15 3.83 2. 1. 82 2.3 27 8. 82 8 17 28 60 4.8 5.08 4.70 4. 4. 4. 23. 2.44 2.8 23. 2.3 2. 8.05 8 8.8 8.32 3 1059 32 1556 15 60 33 1.04 0. 0.90 0.93 1. 8.88 8. 8. 8.76 8.8 10 1007 103 10 1000 10 Tabelle A.12: Zeit für 100 Iterationen von SoPlex bei statischer efaktorisierung in Abhängigkeit von der Anzahl von BasisUpdates zwischen zwei LU-Zerlegungen.
  • 201.
    Nr. primaler Simplex dualer Simplex Zeit in Iterationen Zeit in Iterationen Sekunden gesamt Phase Sekunden gesamt Phase 0. 1.00 608 90 2. 86 2.16 1083 66 38 108 507 92 17 1. 1 50 2. 28 15 1023 667 667 10 29 238 682 90 90 2 75 1783 93 45 30 38 28 10 96 606 16 62 10 — 88 8. 83.96 56 12 3210 88. 1756 46 60 38 977 97 2344 17 30 1003 10 3367 60 83 67 1044 3.8 10 10 3.8 15 22 9. 50 3. 14 23 8.96 1010 1010 163.8 10 79012 80 0 07 15 28 28 07 07 27 17 32.3 1090 28 43 76 70 10 7667 92 1757 83 705 32 13 233 19. 15 33 2869 30 23.66 270 158 176 176 6709 1068 232 17 T a b e l e A . : Laufeiten und I a t i o n s z a h l e n bei der Lösung mit SoPlex mit H a r i s Quotientntest.
  • 202.
    ANHANG A. T Nr. primaler Simplex dualer Simplex Zeit in Iterationen Zeit in Iterationen Sekunden gesamt Phase Sekunden gesamt Phase 10 64 44 95 96 97 57 38 506 170 10 19 77 17 107 107 67 67 17 17 3.8 07 1560 1560 10 797 288 838 9. 106 3.10 8. 29 102.3 83.3 632 5. 28 8. 88 253 44 23 82 3233 28 9083 17 68 24. 167 28. 67 3.3 8 8 3. 22 10. 28 28 74 23 152. 1038 1038 56 100 728 4 076 27 1640 76 32. 1048 28 8.59 88 97 4.5 56 10 8297 2.76 66 82 8.3 10 100 66 2. 157 32 13 114 82.00 40 33 28.3 33 233 215 276 333.25 338 338 2887 2832 103.88 23 07 Tabelle A.14: Laufzeiten und I a t i o n s z a h l e n bei der Lösung mit SoPlex mit der s a b i l i s i e e n V e i o n des „Textbook" Quotiententests.
  • 203.
    Es r f bck 2 4 8 16 Nr. Zeit Iter. Zeit Iter. Zeit Iter. Zeit Iter. Zeit Iter. 17 15 23 15 154 15 4. 10 17 103 4. 97 3 988 5.94 1050 2. 677 5.75 677 3.3 677 6.17 677 2.23 677 3. 14 3.33 507 3. 151 3. 1505 3.38 9 28. 23 67 3 3123 38.17 3123 16 0.3 2 3 4 23 288 2.17 2367 22. 288 22. 97 1656 23.0 56 28 7400 4. 7400 14 7400 28.38 7400 109. 57 109.56 56 2. 56 16.17 56 1. 56 10 2. 3. 3.32 3. 3. 983 15077 931. 5.17 1075.57 236.8 2 238. 90 2. 90 90 3.8 90 83. 2. 10 843.84 100 77 1008 1008 8 1008 882.16 1008 90 32 76 76 9657 76 703. 76 233.07 283 82.32 28 28 28 28 17 50 695.24 327 4. 27 327 327 10 69 062.66 6796 102. 6796 00 6796 69 6796 76 1523 90 003. 590 9. 90 074.23 90 17 80 90 3. 838.67 3 836 17 83 6. 83 5.8 83 5.97 83 22 288 1788 19 8. 19 8.3 19 8. 19 23 10 33 10823 33 10823 339 10823 26 10823 5404 17 97 83 2 8 6 2 8346 316 83 7788 83 1644 6706 153 16633 76 16 5667 5617 295. 10 8 45 3. 14 3 310 3.49 1 27 233. 17 104.57 16 103 16 103 16 1 0 8 6 6 16 28 202.8 6706 262.83 1060 38 23 16 887. 1060 832.70 978 150 970 9796 10 8. 83 21 9797 35 970 10 58.3 97 8. 1010 72. 10 73.70 1082 32 160 153. 168. 16788 33 66 00 46. 17 7. 51. 97 14 38. 32 3. 10 562. 15 3 32 32 00 32 32 Tabel A . 5 : Laufzeitn und I r a t i o n e n von SMoPlex bei 2 P r o z e s o r n ohne Block-Pivoting und der parallelen Lösung zweier Gleichungssysteme in Abhängigkeit von der Anzahl von Blöcken, in die die Ne benbedingungsmatrix für das Matrix-VektorProdukt unterteilt wird. Außerdem wird die Laufzeit und Iterationszahl für SMoPlex auf einem Prozessor angegeben.
  • 204.
    88 ANHANG A. T parallel ystems no paral« systems Nr. block pivoting no block pivots block pivoting no block pivots Zeit Iter. Zeit Iter. Zeit Iter. Zeit Iter. 166 15 166 23 15 57 4. 100 90 1022 103 9. 38 3.3 677 5. 677 5.75 677 2.86 15 3. 3.15 1510 3.33 1507 2.66 22 37 300 3267 3.07 233 60 234 23 244 93 8 8 1656 59 768 823 67 7400 5. 17 28 7400 9. 90 105. 56 32.70 670 109.56 56 10 3. 10 3. 3. 10 3. 82. 15 1.50 32 2.57 15 931. 74 497 8.3 90 5.66 4 9 7 238. 90 1568 906 5.90 3.04 906 89707 1073 8.70 1008 2. 1073 77 1008 76 8 76 2. 176.9 28 70 2.3 28 102.64 6706 668.76 327 17. 6706 5. 2866 9028 9616 6796 102. 9028 062.66 6796 33 10 9073 90 60 10 01523 590 82 57 8800 57 80 55 5. 83 55 17 83 22 15 56 8.32 19 15.10 56 88 19 23 2868 108 3 2 0 6 10823 03.06 1080 33 10823 100. 8397 03 83 1044.64 838 97 83 2.77 83 15 32 8.23 67 153 3282 24 8.50 490 27 8 45 27 823 10 16 8 823 104.57 16 28 173 706 50 7090 262.83 759 77 965. 697.15 10679 832.70 444 33 353.3 448.9 2576 83 1000 8.8 105 2.3 1014 58.3 97 32 96 17 153 44 2.82 1733 160 33 66 60 4 670 8. 00 90 66 8 82 70 00 3 32 32 T a b e l e A.16: Laufzeit und Iterationen von SMoPle auf 2 PEs für veschiedene Einstellungen für das Block-Pivoting und die parallele Lösung von leichungssystemen (bei 2 Blöcken für das Matrix-Vektor Produkt)
  • 205.
    Nr Name Iters. Blocks agg3 27 156 bnl 1015 t 2d 98.27 5103 g a e s 77 48 row22 47. 274 maros 222 nes 2.92 31 piots 1124. 27 piotwe 22.65 99 10 scf 94 87 11 stocfor 667. 36 agg3ob4 2. 299 13 bnlob4 1047. p.ob4 not enough ory 15 gaes.ob4 662.98 5003 16 row22.ob4 279. 30 maros. ob4 16 66 nesob4 piotwe.ob4 scf2.ob4 8884 5324 SM-50-6 8. 55 22 SM-50-68b 8. 35 kam 11278 24 kamn27 1605 8416 l5 1035 331 scr 97. 27 stol not enough ory 28 hanseco 361 7936 29 hansecoml 499.15 228 30 aalOOOOO 1082 229 31 aa50000 8.36 aa5000 154. 135 33 aa6 4.99 47 osa030 27 78 35 nwl6 not enough ory 2 PEs no Block P i v o t n g Block-Pivotng no p a r a Sysem ara sysem no para sys e m ara sysem Nr Zei Iters. Blocks Zei Iters. Blocks Zei Iters. Blocks Zei Iters. Blocks 29 153 153 29 153 153 28 161 92 28 161 92 28 97 97 29 10 61 1024 79 10501 510 510 104. 510 510 2. 3622 2. 3622 50 72 1510 772 42 151 77 77 228 2282 2. 924 42 247 1689 66 2.82 2906 294 3165 2978 3003 47.50 792 15 2800 153 311 3116 315 315 27. 36 3010 11 2253 13 35 78 789. 50 928 1107.77 10022 61 53 100 61 167. 727 78 74. 633 47 24 47 10 56 56 56 56 31 50 61 31 50 11 97.10 4284 4288 632.61 4299 300 1572 828 77.97 15588 9.65 228 228 30 30 4.03 42 27 332. 3510 163 13 7944 499 499 9. 499 499 1364.82 24 992 228.88 24 992 14 15 44 479.28 66 66 10 27 05 978. 27 05 16 9.03 3031 3031 2.66 298 298 2728 47 22 331 3642 228 55 4901 4901 49. 4901 4901 11 292 1082. 292 16 99 99 13 99 99 13 5692 5692 5003 5692 5692 13 49 49 65684 4822 4822 9.63 6042 01 4.78 6029 013 55 55 55 55 4. 22 1603 27 27 16 27 27 1365 1349 82 1388 1349 82 2.49 11322 11322 8. 1151 1151 36044 115 156 88. 1174 300 24 1142. 7865 7865 1135 7865 7865 1178. 9822 4874 116303 9806 48 13603 2872 2872 113 2706 2706 1105 4228 27 77.61 63 2494 26 98.48 6131 6131 16 053 053 53655 30 48 569. 9284 444 27 28 4716 1036 1036 28 77 77 89.35 31 4244 166 115 29 1566 156 156 1108. 2451 2451 8828 1516 000 106631 249 1378 30 2422 74 74 4. 2765 51 153 2878 63 1610 31 29.63 89 89 2. 65 65 1044 65 7. 1005 29 48 131 131 8. 28 28 84.74 13 87 150 33 47.53 51 51 8.89 227 227 353 056 3529 03 557.79 844 84. 635 635 315 365 113 36 16 35 not enough m o r y not enough m o r y not enough m o r y not enough m o r y Tabelle A.17: Laufzeiten, I a t i o n e n und Anzahl der Block-Pivots für die Lösung der LPs auf eine Cray T3D mit 1 und 2 PEs
  • 206.
    90 ANHANG A. T PEs no Block P i o t n g Block-Piotng no para Sysem ara sys s m no ara sys e m ara sys s m Nr Zei Iters. Blocks Zei Iters. Blocks Zei Iters. Blocks Zei Iters. Blocks 30 15 15 30 15 15 31 163 51 31 163 51 05 992 992 24 53 53 1129 351 1127 44 55 510 510 5548 510 510 48.24 998 42.27 9713 501 13 1561 30 1550 06 7. 2297 303 92 47. 30 28. 36 42 9. 013 03 3088 3003 3050 28. 297 1001 3582 60 29.49 333 33 24.06 3179 31 2. 4487 27 311 1328 105133 10347 11374 879.74 10244 11198 4748 472 50 1360 56 5689 9.50 10449 055 15556 82 992 30 11 47 10 844 844 844 844 4. 1078 331 1088 29 11 063 065 4266 42 472.03 1563 55 497.92 156 4477 31 3149 3149 4.78 66 66 13 89. 477 477 49 4948 4948 14 15 533 47 47 6300 48 48 16 1147 297 297 15 22 22 82. 44 742 1082. 292 1599 6088 6088 82 22 2.82 30 30 1316 9. 13 55 9. 13 55 1105 1105 359.97 111 111 299. 11924 660 33377 1100 65 24 11 8756 8756 1133 8750 8750 1152.55 33 1063 0603 2256 13511 15 15 13051 29 29 79. 429 97 1088 51 335 26 13 77 77 44 798 798 613 111 65689 272 448 27 28 848. 22111 22111 3678 50 50 601 36 00 47.28 10 2411 29 82 56 56 9. 63 63 72.89 161 16 31 16303 5148 30 150 2429 2429 66 2416 2416 84.10 287 11 2942 116 31 36 03 03 16 88 1066 15 1088 42 16 24 24 24 6135 15 6310 1665 665 33 8. 31 31 42. 553 553 6135 282 82.01 305 44 242.60 4244 4247 5177 472 472 84 00 922 99.47 77 35 92 82 82 8.00 49 35 61 517.61 56 1033 PEs no Block P i o t n g Block-Pivotng no ara sysem ara sys B m no para sys e m ara sysem Nr Zei Iters. Blocks Zei Iters. Blocks Zei Iters. Blocks Zei Iters. Blocks 56 42 103 103 06 228 30 510 510 3035 510 510 104. 55 1661 102. 55 1661 30 1513 1513 1513 1513 1647 229 50 1647 229 4.63 22 228 3310 244 24 7. 10 510 2. 350 22 9 10 11 12 13 14 15 16 4. 849 849 4. 849 849 2.98 87 15 30 87 15 22 13 1333 1333 13 1333 1333 8.92 36 9. 36 23 333 111 111 44. 11 11 279. 303 51 2992 35 24 10348 28 28 13 28 28 312. 15 24 307. 50 56 27 28 27.88 8794 8794 272.06 827 827 163 666 166 29 77 77 1628 1628 2.28 1542 2750 4.28 1644 2998 30 44 224 224 228 228 168. 06 101 152.97 3544 1015 31 2. 1128 13 4.28 106 30 8. 427 427 4.01 35 35 44. 1631 2. 53 33 7.50 2484 2484 3388 2488 2488 01 5528 11 77.16 11 1148 16360 603 603 89. 5389 5389 114. 33 60 994 35 4. 13 13 4. 11 11 65 560 22. 4413 77 Tabelle A . 1 : Laufzeiten, I a t i o n e n und Anzahl der Block-Pivots für die Lösung der LPs auf eine Cray T3D mit 4 und 8 PEs
  • 207.
    16 P Es no Block P i o t n g Block-Piotng no para Sysem ara Sysem no para Sysem ara Sysem Nr Zei Iters. Blocks Zei Iters. Blocks Zei Iters. Blocks Zei Iters. Blocks 9.79 494 494 536 536 77 44 10 44 10 65 61 56 482 48. 3142 7. 24 89 9 10 11 13 15 16 4.35 849 849 4.78 849 849 2. 872 31 872 22 24 11582 31 31 112.98 27 28 7.61 631 631 227. 7477 7477 88.99 7866 1122 166 1166 29 429. 1510 1510 355 13 13 05 1536 722 360 48 161 30 63 2230 2230 4.06 117. 3548 115 884 879 31 10 1050 92 92 16 1656 131 279 88 13 13 22. 1363 1363 3563 848 82 88 22 474 33 3310 33 33 3044 98 98 106 61 897 119.00 60 35 35 135 53 53 35 22. 15 15 10 10 8. 6099 53 6547 535 32 P E s no Block P i v o t n g Block-Piotng no para sysem ara sys 2m no para sysem ara sysem Nr Zei Iters. Blocks Zei Iters. Blocks Zei Iters. Blocks Zei Iters. Blocks 2. 4928 4928 2. 4928 4928 48. 15000 77 44.99 4915 79 9 10 11 13 15 16 22 24 27 28 2460 222.06 222. 8455 33 15 606 88 29 429. 13988 13988 33342 297 297 36688 1572 11 353 151 10 30 47.55 136 136 44 84 84 134.42 5022 35 11105 31 31 1024 8. 94 94 15 1328 224 13 1348 61 298 298 15 88 78 600 479 33 42. 2461 2461 28. 2253 2253 22. 747 27 103 15 601 28.03 6374 6374 42 63 63 35 2. 89 89 10 788 788 137. 611 28 79. 44 11 Tabelle A.19: Laufzeiten, I t a t i o n e n und Anzahl der Block-Pivots für die Lösung der LPs auf Cray T3D mit 16 und 32 PEs
  • 208.
    ANHANG A. T Anzahl Es lem di NNEs 16 SM-50 23 06 17 17 25 SM-50 2723 60 09 20 17 17 23 ehr15 16 6077 23 0.2 28 scrl 50 13 3 3 28 33 50 28 77 ganges 70 18 0.2 osa0 27 32 32 23 28 grow2 1760 1215 15 3 3 33 hansecom 967 3812 22 57 50 hansecoml7 967 17 gg3 28 67 5 2. kaminl809 54 2968 33 1. pilots 44 8376 2. .3 bnl 179 4.3 2. 6 scfxm 3. 2. 33 8 67 ganges. ob4 23 28 67 2. 1. 57 maros 34 8 3. 2. 3 8 kamin270 9092 33 1. 58 nesm 88 90 2. 1.0 83 pilotwe 50 3. 8 16 stocfor 1667 70 2. 8 west0 20 3 3 3 sherman 10 78 07 8 steam 600 760 97 sherman 1000 50 mcfe 76 382 2. 2. 2. 3 jpwh 99 60 3. 2. 1.8 orani67 90158 3 4.4 3. 2.3 orsreg 133 16 10 watt 56 60 16 wat 1856 1550 29 8 sherman 3312 207 18 33 17 sherman2 10 2394 28 15 10 sherman3 500 0033 17 36 23 16 lns3 07 28 15 T a b e l e A . : Statisische Daten zu den T e s M a t i z e n für die parallele LU-Zerlegung und Laufzeitn für die verteilte und sequentielle LU-Zerlegung dünnbesetzter Matrizen auf dem Cray T3D. Die Spalte „seq" enthält die Zeiten für den in SoPlex benutzten Solver auf einer PE. Die folgenden Spalten enthalten die Laufzeiten für den verteilten Algorithmus in Abhängigkeit von der Anzahl der eingesetzten PEs.
  • 209.
    nr et zt ^.nzah Es dihl et zt Lnzah Es Problem 16 16 SM-50 3. 2.3 2.8 3. 3. SM-50 3 2. 2. 3. 3. 3. 4.3 chrlö 3 1. 2. 2. 2. 2.3 2. 2. scrl 8 8 8 2. 2. 3. 3. 2. 3. 3. 8 2. 3. 3.3 3. 3. 3. ganges 1. 1. 2. 2.8 2. 2. 2. 3.3 osa0 8 2. 2. 3.8 3. 4.3 4. 5. 6. grow2 1. 1.3 1.3 2. 3. 3.3 3. 2. 3. hansecom 3. 3. 3. 3 8. 8. 8. 103 hansecom 3.3 3. 3. 8. 8.3 8.8 10 g3 1. 1. 2. 3.8 2.8 2. 2.8 kaminl809 8. 8. 10.8 4. 15. 16 17 3 pilots 5.3 4. 3. 3. 3. 8. 8 4. bnl 2. 2. 2. 2. 2. 3 3 3. scfxm 2. 2. 2. 2. 2. 3 ganges. ob4 2. 2.3 2. 2. 3. 7. maros 2.3 2.3 2. 2.3 3. 8. 3 kamin270 2.8 3. 5. 9. 5. 2. nesm 2. 2. 2. 2. 3. pilotwe 2. 2. 3. 3. 3.3 103 8 stocfor3 8. 8.8 9. 1. 16. 4. west0 2.3 2. 2. 2.3 3. 4.8 4.3 3. 4. 4. sherman 1. 1. 1.3 8 2. 3. 3. 2.8 2. 3. steam 2. 2. 2. 2. 3. 3.3 2. 2. sherman 2. 2. 8 2. 3. 2.8 2. 3. mcfe 4. 3. 4.8 10 3 4. jpwh 3. 3. 9.8 6. 3. orani67 6. 8. 12. orsreg 8. 10 9. 10 9. 23. 15 watt 8 8 10 8. 32.8 15 10 watt 6.3 3. 2.3 28. 8.8 1. sherman 13. 9.3 8 20. 2. sherman2 16. 12. 6. 39 23. 8.8 sherman3 23. 23. 4. 3. 148 56 26.3 9. lns3 38. 8. 16 3 28. 3 8.3 Tabelle A.21: Laufzeit für die veteilte Lösung dünnbesetzter lineare Gleichungssysteme mit dünn- und dichtbesetzem RechteSeiteVektor nach verteilter LU-Zerlegung in Abhängigkeit von der Anzahl der PEs.
  • 210.
    iteratrverzeic 1] G.M.AMDAHL, Validity of the single-processor approach to achieving largescale computing capabilities, AFIPS Conference Proceedings, 30 (1967, pp. 83- ] N. AMENTA AND G.M. ZIEGLER, Deformed products and maximal shadows of polytopes, TU Berlin Preprint Reihe Mathematik, Report No. 502/1996 ] E.D. ANDERSEN AND K.D. ANDERSEN, Presolving in linear programming Math. Prog. 71 (1995), pp. 221245 ] K.M. ANSTREICHER AND T. TERLAKY A monotonic build-up simplex algorithm for linear programming Op. Res. , 42, 3 (1991), pp. 55656 5] R. ASENJO AND E.L. ZAPATA, Sparse LU factorization on the Cray T3D, Lec ture Notes in Computer Science 919 (1995), pp. 90, Springer Verlag 6] O. AXELSSON, A survey of preconditioned iterative methods for linear systems of algebraic equations, BIT 25 (1985), pp. 166187 7] D.A. BABAYEV AND S.S. MARDANOV, Reducing the number of variables in integer and linear programming problems Comp. Opt Appl. 3 (1994) pp. 10 8] M.A. BADDOURAH AND D.T. NGUYEN, Parallelvector processing for linear programming Computers & Structures No. 38, Vol. 3 (191), pp. 69281 9] R.S. B A R R AND B.L. HICKMAN, Parallel simplex for large pure network pro- blems: Computational testing and sources of speedup, Op. Res 42, 1 (1994) pp. 6 80 10] R.H. BARTELS AND G.H. GOLUB, The simplex method of linear programming using LU decomposition, Comm. ACM 12 (1969), pp. 266268 11] R.K. BARYTON, F.G. GUSTAVSON, AND R.A. WILLOUGHBY, Some results on sparse matrices Math. Comp. 24 122 (1970), pp. 937954 ] M. BENICHOU, J.M. GAUTHIER, G. HENTGES AND G. RIBIERI, The effi- cient solution of largescale linear programming problems, Math. Prog. 13 (1977) pp. 28032
  • 211.
    LITERURVERZE 195 R.E. BIXBY AND A. MARTIN, Pallelizing the dual simplex algorithm, ZIB Preprint SC 9545 (1995) R.E. BIXBY, J.W. GREGORY, I.J. LUSTIG, Very largescale linear program- ming: A case study in combining interior point and simplex methods, Report (1991), Department of Mathematical Sciences Rice University Houston Texas R.E. BIXBY, Das Implementieren des Simplex-Verfahrens: Die Startbasis, ZIB Preprint SC 92-11 (1992 R.E. BIXBY Progress in linear programming ORSA J. Comp. 1 (1994) pp. 15 22 R.G. BLAND, New finite pivoting rules for the simplex method, Math, of Op. Res 2 (1977), pp. 103-107 A.L. BREARLEY, G. M I T R A AND H.P. WILLIAMS, Analysis of mathematical programming problems prior to applying the simplex algorithm, Math. Prog. (1975), pp. 548 R. BORNDÖRFER, C. FERREIRA AND A. MARTIN, Decomposing matrices into blocks, ZIB preprint, to appear T.B. B O F F E Y AND R. HAY, Implementing parallel simplex algorithms K.H. BORGWARDT, The simplex method: A probabilistic analysis, Algorithms and Combinatorics, Vol 1. Springer Verlag E.D. BROOKS III, Massively parallel computing, in „The 199 MPCI Yearly Report: Harnessing the Killer Micros", E.D. Brooks et al eds., Massively Par- alle Computing Initiative, Lawrence Livermore National Laboratory, Livermore California 94550 (199 R. BURKARD, S. KARISCH AND F. RENDL, QAPLIB — a quadratic assignment problem library, Eur. J. Op. Res 55 (1991), pp. 115119 A. CHARNES, Optimality and degeneracy in linear programming Econometrica, 20 (1952), pp. 160170 H . D . CHEN, P.M. PARDALOS AND M.A. SAUNDERS, The simplex algorithm with a new primal and dual pivot rule, Op. Res. Let 16 (1994), pp. 2112 V. CHVATAL, Linear Programming, W H . Freeman, New York (198 Using the CPLEX callable library, CPLEX Optimization, Inc, Suite 279, 93 Tahoe Blvd., Bldg. 802, Incline Village, NV 89451, USA (1995) URL: http://www.cplex.com/
  • 212.
    96 LITERURVERZEIC 8] A.R. CURTIS AND J.K. R E I D , On the automatic scaling of matrices for Gaussian elimination, J.o.tInst. of Math. a.i. Appl 10 ( 1 9 7 , pp. 118 9] G.B. DANTZIG AND W. ORCHARD-HAYS, The product form for the inverse in the simplex method Math. Comp. 8 (1954), pp. 6467 0] G.B. DANTZIG, A. ORDEN AND P. W O L F E , The generalized simplex method for minimizing a linear form under linear inequality retraints, Pacific Journal of athematics 5 (1955), pp. 183-195 1] G.B. DANTZIG AND P. W O L F E , Decomposition principle for linear programs Op. Res 8 (1960), pp. 101111 32] G.B. DANTZIG, Linear programming, in „Histroy of Mathematical Program- ming", J.K. Lenstra, A.H.G. Rinnooy Kan and A. Schrijver eds, North-Holland Amsterdam, 1991 33] T.A. DAVIS AND P. Y E W , A nondeterministic parallel algorithm for general unsymmetric sparse LU factorization, SIAM J. Matrix Anal. Appl 11, 3 (1990) pp. 383-4 4] P. DEUFLHARD AND A. HOHMANN, Numerische Mathematik I de Gruyter (1993) 5] E . . DlJKSTRA, GO TO statement considered harmful, CACM V, 11 No. 3 6] E.W. DlJKSTRA, Structured programming, Nato Science Comittee - Software Engineering Techniques (1970) 7] A. DONESCU, The simplex algorithm with the aid of the Gauss-Seidel method Econ. Comput and Econ. Cybernetics Studies and Research, 4 (1989) pp. 12 132 8] LS. D U F F AND J.K. R E I D , The multifrontal solution of unsymmetric sets of linear equations, SIAM J. Sei. Stat. Comp. 5 (1984), pp. 633-641 9] LS. D U F F , A.M. ERISMAN AN J.K. REID Direct Methods for Sparse Matrices Clarendon Press, Oxford (1986) 0] LS. D U F F , R.G. GRIMES, AND J.G. LEWIS, Sparse matrix test problems AC Trans Math. Soft 15 1 (1989), pp. 114 41] LS. D U F F , Parallel implementation of multifrontal schemes Parallel Computing, 3 (1986), pp. 193-04 ] S.K. ELDERSVELD AND M.A. SAUNDERS, A block-LU update for largescale linear programming, SIAM J. Matrix Anal. Appl 2, 1 (1992), pp. 1 9 1 0 1
  • 213.
    LITERURVERZEIC 197 D.J. EVANS AND G.M. MEGSON tolic imple lrithm, Int. J. Comp. Math. 38 (1991), pp. 138 A.V. FlACCO AND G.P. Mc C O R M I C , Nonlinear programming: Sequential unconstraint minimization techniques, John Wiley & Sons, New York, 1968 D.G. FIRESMITH, Inheritance diagrams: which way is up, JOOP 1 (1994) J.J.H. F O R E S T AND J.A. TOMLIN, Updated triangular factors of the basis to maintain sparsity in the product form simplex method Math. Prog. 2 (1972, pp. 263-278 J.J. F O R E S T AND D. GOLDFARB, Steepestedge simplex algorithms for linear programming, Math. Prog. , 57 (1992), pp. 341374 D.R. FULKERSON AND P . W O L F E , An algorithm for scaling matrices, SIAM Review, 4 (1962), pp. 142-146 A. G E O R G E , M.T. HEATH, J. Liu, AND E. N G , Sparse cholesky factorization on a localmemory multiprocessor, SIAM J. Sei Stat. Comp. 9 (1988) pp. 32734 P.E. GILL, W. MURRAY, M.A. SAUNDERS AND M.H. W R I G H T , A practical anticycling procedure for linear constraint optimization, Math. Prog. 45 (1989) pp. 74 S.K. GRANENDRAN AND J.K. H O , Load balancing in the parallel optimization of block-angular linear programs Math. Prog. 62 (1993), pp. 4167 D. GOLDFARB AND J.K. R E I D , A practicable steepestedge simplex algorithm, Math. Prog. 12 (1977), pp. 361371 M. GRÖTSCHEL, A. LÖBEL AND M. VÖLKER, Optimierung des Fahrzeugumlaufs im öffentlichen Nahverkehr, ZIB Preprint SC 968 (1996) M. GRÖTSCHEL, L. LOVASZ, AND A. SCHRIJVER, Geometrie Algorithms and Combinatorial Optimization, Algorithms and Combinatorics 2, SpringerVerlag (1988) M. GRÖTSCHE Optimierungsmethoden I, Vorlesungsskriptum, Universität Augsburg (1985) J.L. G U S T F S O N , Reevaluating Amdahl's law, Comm. ACM, Vol No.5 (1988) pp. 532-533 J.A.J. HALL AND K.I.M. M C KINNON, A class of cycling counter-examples to the EXPAND anticycling procedure, Dep. of Math, and Stat, University of Edinburgh EH9 3JZ, UK (1995)
  • 214.
    LITERURVERZEIC 58] J.A.J. HALLAND K.I.M. M C KINNON An asynchronous parallel revised simplex algorithm, Department of Math, and Stat. University of Edinburgh, MS 95050 (1995) 59] J.A.J. HALL AND K.I.M. Mc KINNON, PARSMI, a parallel revised simplex algorithm incorporating minor iterations and Devex pricing, PARA96: Workshop on Applied Parallel Computing in Industrial Problems and Optimization Copen- hagen (1996) 60] P.M.J. HARRIS, Pivot selection methods for the Devex LP code, Math. Prog. (1973), pp. 128 61] M. HEATH, E. N G , AND B. PEYTON, Parallel algorithms for sparse linear sy- stems, SIAM J. Comp. 21 1 (1991), pp. 1 1 1 9 ] R.V. HELGASON AND J.L. KENNINGTON, A parallelization of the simplex me thod, An. Op. Res 14 (1988), pp. 1740 ] E. HELLERMAN AND D. RARICK, Reinversion with the preassigned pivot proce dure Math. Prog. 1 2 (1971), pp. 195215 64] J.K. Ho AND R.P. SUNDARRAJ, A timing model for the revised simplex method Op. Res. Letters 13 (1993), pp. 677 65] A.J. HOFFMAN, Linear programming at the National Bureau of Standards, in „History of Mathematical Programming", J.K. Lenstra, A.H.G. Rinnooy Kan and A. Schrijver eds, North-Holland Amsterdam, 1991 66] M.T. JONES AND P.E. PLASSMANN, Scalable iterative solution of sparse linear systems, Par. Comp. 20 (1994), pp. 753-77 67] N.K. KARMARKAR, A new polynomialtime algorithm for linear programming Combinatorica, 4 (1984), pp. 33-395 68] M. KATEVENIS, RISC Architectures, in „Parallel & Distributed Computing Handbook", A.Y. Zomaya ed. McGrawHill (1996) 69] L.G. KHACHIAN, A polynomial algorithm in linear programming, Soviet Math. Doklady 20 (1979), pp. 191194 70] V. K L E E AND P. KLEINSCHMIDT The d-step conjecture and its relatives Math, of Op. Res 12, 4 (1987), pp. 718755 71] H.W. KUHN AND R.E. QUANDT, An experimental study of the simplex method Proceedings of Symposia in Applied Mathematics 15 (1963), pp. 107124
  • 215.
    LITERURVERZEIC 199 ] E.V. KRISHNAMURTHY, Complexity issues in parallel and distributed computing in „Parallel &: Distributed Computing Handbook, A.Y. Zomaya ed., McGraw Hill (1996) ] D.W. KRUMME Fast gossiping for the hypercube SIAM J. Comput (199 pp. 365380 74] A. LÖBEL, Optimal vehicle scheduling in public transit, PhD thesis, Technical University of Berlin, in preparation 75] J. Luo, A.N.M. HULSBOSCH AND G.L. R E I J N S , An MIMD work-station for large LP problems, Par. Proc and Appl, Proc. Int. Conf. , L'Aquila (1987) 76] I.J. LUSTIG, R.E. MARSTEN AND D.F. SHANNO, Interior point methods for linear programming: computational state of the art, ORSA J. Comp. 6 1 (1994) pp. 114 77] H.M. MARKOWITZ, The elimination form of the inverse and its application to linear programming, Management Sei. 3 (1957), pp. 255269 78] K. MARGARITIS AND D.J. EVANS, Parallel systolic LU factorization for simplex updates, in „Lecture Notes in Computer Science G. Goos an J. artmanis eds Springer Verlag 1988 79] I. NASSI AND B. SCHNEIDERMAN Flowchart techniques for structured program- ming, SIGPLAN Notices (1973) 80] M. PADBERG, Linear Programming and Extensions, Algorithms an Combina- torics, Vol 12. Springer Verlag (1995) 81] M. PADBERG AND M.P. RIJAL, Location, Scheduling Design and Integer Pro- gramming Kluwers's International Series (1996) ] P . Q . PAN, A Simplex-like method with bisection for linear programming, Opti mization, 22 (1991), pp. 717743 ] D.A. R E E D AND M.L. PATRICK, Parallel iterative solution of sparse linear sy- stems: Models and architectures, Par. Comp. (1985), pp. 4567 84] J.K. R E I D , A sparsity-exploiting variant of the BartelsGolub decomposition for linear programming bases, Math. Prog. 24 (1982), pp. 5569 85] P. SADAYAPPAN AND S.K. R A O , Communication reduction for distributed sparse matrix factorization on a processor mesh, Supercomputing '89, AC Press New York (1989), pp. 371379
  • 216.
    00 LITERURVERZEIC M.A. SAUNDERS, A fas sable implementation of the simplex method using Bartels-Golub updating, in Sparse Matrix Computations", J. Bunch and D. Rose eds, Academic Press, New York (1976), pp. 213-2 D.F. SHANNO, Computational methods for linear programming, Rutcor Research Report RRR 1993 (199 R. SHARDA, Linear programming solver software for personal computers: 1995 Report, OR/MS Today, October 1995, pp. 4957 A.F. V.D.STAPPEN, R.H. BISSELING AND J.G.G. v . D F O R S T , Parallel sparse LU decomposition on a mesh network of transputers SIAM J. Matrix Anal Appl, Vol14 No.3 (1993), pp. 853-879 C.B. STUNKEL AND D.A. R E E D , Hypercube implementation of the simplex al gorithm, 3rd Conf. on Hypercube Concurrent Programming, Pasadena (1988) pp. 1473-1482 C.B. STUNKEL, Linear optimization via messagebased parallel processing Proc. Int. Conf. Par. Processing III (1988), pp. 64271 U.H. SUHL AND L.M. SUHL, Computing sparse LU factoriztions for largescale linear programming bases, ORSA J. Comp. 2, 4 (1990), pp. 3 2 3 3 5 U.H. SUHL AND L.M. SUHL, A fast LU update for linear programming An. Oper Res 43, 1 4 (1993), pp. 33- T. TERLAKY AND S. ZHANG A survey on pivot rules for linear programming, IS- SN 0922-5641, Reports of the Faculty of Technical Mathematics and Informatics Delft University of Technology 1999 (1991) R.P. TEWARSON, The product form of inverses of sparse matrices and graph theory, SIAM Review, 9 1 (1667), pp. 9199 J.A. TOMLIN, On scaling linear programming problems, Math. Prog. Study (1975), pp. 146166 P. TSENG, Distributed computation for linear programming problems satisfying a certain diagonal dominance condition, Math. Op. Res 15 1 (1990), pp. 33-48 R.A. WAGNER, arallel solution of arbitrarily sparse linear systems Par. Comp. 9 (198889), pp. 33-33 P. W O L F E , A technique for resolving degeneracy in linear programming, SIAM J. Appl Math. 11 (1993), pp. 0 5 1 1 P. W O L F E The composite simplex algorithm, SIAM Review, 1 (1965), pp. 2- 54
  • 217.
    LITERURVERZEIC 01 101] R. WUNDERLING, H.C. H E G E , AND M. GRAMMEL, On the impact of commu- nication latencies on distributed sparse LU factorization, ZIB Preprint SC 93-28 (199 1 0 ] M. YANNAKAKIS, Computing the minimum fillin is NP-complete SIAM J. Alg. Disc Meth. 1 (1981), pp. 7779 1 0 ] S. ZHANG, On anticycling pivoting rules for the simplex method Op. Res Letters 10 (1991), pp. 189192 104] G.M. Z I E G L E , Lectures on Polytopes, Graduate Texts in Mathematics 152, Springer Verlag (1995) 105] X. ZHU, S. ZHANG AND A.G. CONSTANTINIDES, Lagrange neural networks for linear programming, J. Par. Distr. Compt 14 (1992), pp. 354360 106] ZIB Jahresbericht 1995 107] anonymous ftp: r e s e a c h . a t t com:/dist/lpdata
  • 218.
    Inex abstrakter Datentyp, iterative L s u n g von, 69 A m h l s c h e s Gesetz 97 konjugierte Gradienten, 70 LU-Zerlegung, siehe LU-Zerlegun^ rrier, 103 Vorkonditionierung, 70 Basislösungsvektor, 3, 26, 36 Gossiping, 102, 1 Bereichsungleichung, 1 Granularität, 94 99 Beschleunigung, 97 Gustavsonsches Gesetz 98 Block-Pivoting, 10 lbraum, C + + , 125 Harris, 56, 67 Cache, 75 98 128 Hilfsvektor, 41 CPLEX, 6 Hyperebene 8 Crash-Basis 87 InnerePunkteVerhren, ünnbesetztheit, 68 bei Lösung gestaffelter Gleichungssy- Kegelbasis 10 steme, 78 K l s s e , 123 Speicherschem 75 128 bstrakte Basis Dantzig, 1 lgorithmische Degeneriertheit, 21, 24, 60 Basis-, 124, 13 d u l e Variablen, 13, 6, 36 Implementierungs D u l i t ä t s s a t z , 32 template, 125, 12 d y n m i c typing, 12 Kommunikation, 94 96 Kompatibilität 120 122 Efzienz, 120, 122 Kondition, 51 parallele, 98 einer Matrix, 52 Ellipsoid-Methode Korrektheit, 120 122 Erweiterbarkeit 120 partielle 18 E x t r e m l e 10 Kreiseln, 6 Fill, 74 astausgleich, 100 115 Flynn, 94 ate binding, 124 Laufzeitdiagramm, 10 ußsche Elimination, he LU- Lineares Programm Zerlegung allgemeines, 33 Gleichungssystem Beschränktheit, 8 direkte Lösung von, 71 in Gleichungsform, 24 20
  • 219.
    DEX 20 in U n g l e i c h u n g m , m u l t p l e , 3, 10 Skalierung, 82 partial, 63 Zulässigkeit, 8 partial multiple, 6 LP, siehe L i n e r e s P r o g r m m steepestedge, 64 LU-Zerlegung weighted, 67 parallele, 109 Pricingvektor, 41 sequentielle 72 Produktform der Inversen, 71 Update der 79 P r o g r a m m i e r p a d i g m 120 Programmierung Markowitz-Zhl 75 imperative, 120 Methode 123 modulare, 121 virtual 125 objektorientierte 122 MD, 94 strukturierte 121 Nebenläufigkeit, 96 uotiententest NichtNullElement, 68 dualer, 21 NNE, siehe NichtNullElement primaler, 19 Stbilisierung, 57 Objekt, 123 verteiltes RückwärtsSubstitution, 72 78 R a n g - 1 U p d a t e 14 71 llelität RISC, 91 94 Daten-, 3 funktionale, 93 SchlupfBasis, 87 PFI, siehe Produktform der Inversen Schlupfvariablen, 3, 6, 33, 36 P h a s e 1 , 59 Schnittstelle, 121 Pivot-Element, 72 Shifting, 6 , 62 Kompatibilität 110 SIMD, 94 Pivot-Kandidaten Simplex-Algorithmus bei LU-Zerlegung, 113 d u l e r , 23, 29 beim Simplex-Algorithmus 10 einfügender, 20 28 42 Pivot-Schritt entfernender 19 29 4 bei LU-Zerlegung, 72 primaler, 20 28 beim Simplex-Algorithmus 14 Stabilität 54 Pivot-Suche, 74 Simplex-Basis Schwellwert 75 darstellungsunabhngige, 34 Polyeder, 8 in Spaltendarstellung, siehe S p l t e n - Darstellungssatz basis Ecken von, 10 in Zeilendrstellung, siehe Zeilenbsis spitze 10 Optimalität 40, 42 Pricing, 62, 84 Wahl der Darstellung, 85 Devex, 6 Zulässigkeit, 40 42 hybrid, 6 Simplex-Kriterium, 6, 3 mostviolation, 63 Simplex-Tableu, 6
  • 220.
    20 SID, Skalierrkeit, 98 S pl t e n b s i s , 25 Optimalität Zulässigkeit Spaltentusch, 27 Speicher gemeinsamer 95 verteilter 95 96 SPMD, 95 Stbilität, 53 bei der LU-Zerlegung, 74 Synchronisation, 94 96, 1 Thred, 1 5 Toleranz 6, Vererbung, 125 Verteilung, 101, 110 Vorwrts-Substitution, 72 parallele, 118 sequentielle 78 Wiederverwendbrkeit 120 122 Zeilenbasis 12 Optimalität Zulässigkeit Zeilentausch, 14 Zulssigkeitsvektor 41
  • 221.
    slau Persönliche Angab Name: Rol Wunderling eburtsdatum: 27. Oktober 19 rt Belin miliand: heir tatsahörigke deutsch 1971 1975 Grundschule der Euroäischen Schule n Vrese Iten 1976 - 1979 Oberschule n der Europäischen Schule n Vrese Iten 1979 1984 D r o s t e H ü l s h o G y m u m n Berl SS 1985 Beginn des plomstuengngs n der FU-Berl den chern Physik und athemik Nov. 1987 Vordplom themik Nov. 1987 Vordplom n Physik Dez 1991 plom n Physik n. 1992 Wechsel zur athemik t Studenzel Promoton der TU- Berli