Produktform der Inversen
Eine numerisch stabilere Form der Basisinversen
Produktform der Inversen 1
Agenda
1.
2.
3.
4.
Elementarmatrizen
Alternative Darstellung der Iterationen
Produktform der Inversen
Implementierung
BTRAN
42. FTRAN
41.
5.
Vorteile der ProduktformImplementierung
Produktform der Inversen 2
1. Elementarmatrizen
1
dBT
ds
ais
0
AB1
ars
...
ams
1


 




1
i
r
m
Produktform der Inversen 3
 1
 
 
0
 
 
1  
dB
AB
T
1








1.1 Berechnung des Eta-Vektors
 ds
a
rs

 1   ais
  a
rs
 i  
 r    1
  
   ars
  
 m 
  ams
 a
rs















Produktform der Inversen 4
1.2 Beispiel
Die Premultiplikation mit der Elementarmatrix ergibt:
1


  1 ds

ais  
 1  ars    0 ais



 0 ars
1

ars  


ds
a
rs
 1 0 d  d s arj 
j
ars 


dj
 
ais arj 
aij    0 0 aij  a 
rs

 
arj  
arj

0 1
ars


Produktform der Inversen 5
1.3 Darstellung der Basisinversen nach k Iterationen
 1 dB 
k
k 1
2
1

E

E

...

E

E

E


-1
 0 AB 
T
Produktform der Inversen 6
2. Alternative Darstellung der Iterationen
Anstelle der Umrechung der gesamten
Basisinversen und deren vollständigen
Aktualisierung beschränkt man sich auf den
Teil, der für den Fortgang der Rechnung
unbedingt auf aktuellem Stand gehalten
werden muss:
die Pivotspalte
Produktform der Inversen 7
2.1 Pivotspalten
Die Zusammenfassung der Pivotspalten von 4 Iterationen mit
Markierung der Position der Pivotelemente:
Iteration
4.
3.
2.
1.
Zielzeile
1
1
2
3
4
2
1
2
3
1
1
1
3
1
0
1
Pivotspalte
Produktform der Inversen 8
2.2 Darstellung der 1. Iteration
3  1
3
1
 1

 
 

1

2
1
1

2
ˆ -1  E1  E  


  B1
A
B

1 1 
1  
1 1

 
 

1 
1 
1

Produktform der Inversen 9
2.3 Darstellung der 2. Iteration
3  1 2
1
1 2
 1

 
 

1
1

2
1

2
ˆ -1  E2  B1  


  B2
A
B

1 1  
1 1  
1 1 1

 
 

0
1
1
0
1

 
 

Produktform der Inversen 10
2.4 Darstellung der 3. Iteration
1
1  1 1 1
1
 1 2

 
 
1
2
1

2
1 2
-1
3
2
ˆ





AB  E  B 



 
1
1 1 1 
1 1

 
 
1 1  
0
1 
1 1

Produktform der Inversen 11
0

0
 B3
1

0
2.5 Darstellung der 4. Iteration
1
1 1 1
1
3 

4 
1 2
1
-1
4
3
3 

ˆ
AB  E  B 


1 1
1 1 

 
1 1
1 

2
0   1 43
3


1
2
0 
3
3

0
0
1 
 
1
 13
0 
3
Produktform der Inversen 12
0

0
 B4
1

0
3. Darstellung der Basisinversen
2
 1 43
3

1
2
0
3
3
ˆ 1  
A
B
0 0
0

1
1
0

3
3

0

0
 E4  E3  E2  E1 
1

0 
1
1  1 2
3
1
 1
3 1

 
 

4 
1
1
2
1
1

2
3 






1 1 
1  
1 1  
1 1

 
 
 

1 
1 1 
0
1 
1
3 

Produktform der Inversen 13
3.1 Implementierung
Anstelle der Basisinversen wird nur die Datei der
Eta-Vektoren in folgender Form gespeichert:
Iteration
4.
3.
2.
1.
Zielzeile
1
3
1
2
3
3
2
1
2
1
1
1
1
3
1
0
1
4.
3.
2.
4.
4
-Vektor
1
Pivotzeile1
Produktform der Inversen 14
3.2 Vorteile der Eta-Datei
Eta-Vektoren werden nicht mehr
umgerechnet.
 Jeder Vektor ist so häufig tranformiert, wie
die laufende Iterationszahl angibt.
 Sie sind anfangs dünn besetzt, wenn die
Problemdatei dünn besetzt ist.
 Solange nicht mehr als m Iterationen
durchgeführt sind, enthält die Datei
weniger Spalten als die vollständige
Basisinverse.

Produktform der Inversen 15
3.3 Nachteile der Eta-Datei?
Sind mehr als m Iterationen
durchzuführen, wird die Eta-Datei größer
als die Basisinverse.
 Wird bei Verwendung der komplizierten
Basisinversen der Rechenaufwand durch
die vielen Matrixmultiplikationen nicht
sehr groß?
 … und in Folge nicht auch der
Rundungsfehler immer größer?

Produktform der Inversen 16
4. Implementierung


1.
Erst durch die Implementierung wird die Wirksamkeit der
Produktform verständlich!
Dazu muss untersucht werden, an welchen Stellen die
Inverse benutzt werden muss:
Berechnung der Simplex-Multiplikatoren, die ja nun nicht
mehr abgelesen werden können:
T
π
2.
T
-1
 dB  AB
Bei der Aktualisierung der Pivotspalte:
*
as
1
 AB  as
Produktform der Inversen 17
41. BTRAN
Zur Berechnung der Simplex-Multipikatoren wird der
Zeilenvektor der Zielzeile von rechts mit der
Basisinversen multipliziert:
T
π
T
-1
 dB  AB
In der Ausgangslösung ist dBT der Einheitsvektor:
π  1 0
T
0  E  E
k
k 1

Produktform der Inversen 18
E E
2
1
41.1 Reihenfolge der Auswertungsschritte: rückwärts
Auswertung besteht aus Multiplikation eines
Zeilenvektors mit einer Elementarmatrix von rechts:
z T  E j   z1
zi
zr
1
1

1 i

zm  

r

m


  z für i  r
   i
 z T  η j für i  r

1
Produktform der Inversen 19
42. FTRAN
Zur Berechnung der aktuellen Pivotspalte wird der
Spaltenvektor der entsprechenden Spalte der
Problemdatei von links mit der Basisinversen
multipliziert:
*
as
-1
 AB  a s
k 1
 E E
k
 ...  E  E  as
2
1
Die s-te Spalte des Ausgangsproblems wird nun also
vorwärts mit allen Elementarmatrizen multipliziert.
Produktform der Inversen 20
42.1 Reihenfolge der Auswertungsschritte: vorwärts
Jede Multiplikation mit einer Elementarmatrix umfaßt
folgende Rechung:
1
1

1

i
j

E  as 

r

m

  a1s   a1s  1  ars 
 
 

a
a



a
is
is
i
rs 


  ars   r  ars

 
 

1   ams   ams  m  ars 
Produktform der Inversen 21
42.3 Aktualisierung der Basis


Einerseits wird jeweils die Rechte Seite durch
direkte Umrechung aktualisiert (wird für das
Quotientenkriterium benötigt!)
Andererseits braucht die umgerechnete Pivotspalte
nur der Eta-Datei hinzugefügt werden:
k 1
η
k
η
k 1
η
1
η
Produktform der Inversen 22
5. Vorteile der Produktform-Implementierung
1.
Speicherplatz-Vorteile
2.
Rechenzeit-Einsparungen
3.
Rechengenauigkeit
Produktform der Inversen 23
5.1 Kompakte Speicherung
Es wird praktisch nur mit der Problemdatei
und der Etadatei gearbeitet.
 Beide werden nicht umgerechnet, sondern
nur benutzt.
 Da die Eta-Vektoren anfangs jedenfalls nur
wenig transformiert sind, sind sie auch
ähnlich dünn besetzt wie die Problemdatei.
 Folglich können beide Dateien kompakte
gespeichert werden.

Produktform der Inversen 24
5.2 Rechenzeiteinsparung


Die kompakte Speicherung lässt eine effiziente
Auswertung der Skalarprobdukte zu.
Partial-Pricing und vor allem Multiple-pricing sind
beschleunigende Techniken:
Max
xs1
...
xsq
RS
z
ds1
...
dsq
z0
xB

AS
b
Nun wird nur noch das Mini-LP gelöst, mit der
ersten Major- und nachfolgenden MinorIterationen.
Produktform der Inversen 25
5.3 Rechengenauigkeit : Reinversion
INVERT
 In relativ kurzen Abständen wird die
Basislösung jeweils neu berechnet, so
dass die geringste Anzahl Iterationen
benötigt werden:


Dünne Besetzung
Verkürzung der ETA-Datei
Da der Pricing-Schritt praktisch entfällt,
kann man die alternative, verkürzte
Basisdarstellung schnell berechnen.
 Inversionen werden sehr häufig
durchgeführt.

Produktform der Inversen 26

Produktform der Inversen