anfang präsentation 3. november, 2004 tarjan’s schleifenaufbrechalgorithmus in dieser vorlesung...
TRANSCRIPT
3. November, 2004Anfang Präsentation
Tarjan’s Schleifenaufbrechalgorithmus
• In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist, algebraische Schleifen systematisch und algorithmisch aufzulösen.
• Beim Tarjan Algorithmus handelt es sich um ein graphisches Verfahren, welches dazu dient, Gleichungssysteme gleichzeitig sowohl horizontal wie vertikal zu sortieren. Der Algorithmus kann ausserdem dazu verwendet werden, algebraisch gekoppelte Gleichungssysteme zu erkennen und zu isolieren.
3. November, 2004Anfang Präsentation
Übersicht
• Strukturinzidenzmatrix• Strukturdigraph• Tarjan Algorithmus• Aufbrechen algebraischer Gleichungssysteme
3. November, 2004Anfang Präsentation
Die Strukturinzidenzmatrix I• Die Strukturinzidenzmatrix enthält eine Zeile für jede
Gleichung des Algebrodifferentialgleichungssystems sowie eine Spalte für jede Unbekannte, die das Gleichungssystem erhält.
• Da ein vollständiges Gleichungssystem immer gleich viele Gleichungen wie Unbekannte aufweist, ist die Struktur-inzidenzmatrix quadratisch.
• Das Element <i,j> der Strukturinzidenzmatrix betrachtet die Gleichung #i sowie die Unbekannte #j. Das Element hat einen Wert von 1, falls die angezeigte Variable in der betrachteten Gleichung auftritt, sonst enthält das entsprechende Matrixfeld den Wert 0.
3. November, 2004Anfang Präsentation
Die Strukturinzidenzmatrix: Ein Beispiel
1: U0 = f(t)2: i0 = iL + iR1
3: uL = U0
4: diL/dt = uL / L1
5: v1 = U0
6: uR1 = v1 – v2
7: iR1 = uR1 / R1
8: v2 = uC
9: iC = iR1 – iR2
10: duC/dt = iC / C1
11: uR2 = uC
12: iR2 = uR2 / R2
diL
dtduC
dt
S =
010203040506070809101112
101010000000
010000000000
001100000000
000100000000
000011000000
000001100000
010000101000
000001010000
000000001100
000000000100
000000000011
000000001001
U0 i0 uL v1 v2 iCuR1 iR1 iR2uR2
3. November, 2004Anfang Präsentation
Der Strukturdigraph• Der Strukturdigraph enthält die gleiche
Information wie die Strukturinzidenzmatrix. Die Information ist nur anders dargestellt.
• Der Strukturdigraph listet links die Gleichungen, rechts die Unbekannten. Eine Verbindungslinie zwischen einer Gleichung und einer Unbekannten zeigt an, dass die Unbekannte in der Gleichung vorkommt.
3. November, 2004Anfang Präsentation
Der Strukturdigraph: Ein Beispiel
1: U0 = f(t)2: i0 = iL + iR1
3: uL = U0
4: diL/dt = uL / L1
5: v1 = U0
6: uR1 = v1 – v2
7: iR1 = uR1 / R1
8: v2 = uC
9: iC = iR1 – iR2
10: duC/dt = iC / C1
11: uR2 = uC
12: iR2 = uR2 / R2
010203040506070809101112
GleichungenU0
i0
uL
diL/dt v1
uR1
iR1
v2
iC
duC/dtuR2
iR2
Unbekannte
3. November, 2004Anfang Präsentation
Der Tarjan Algorithmus• Der Tarjan Algorithmus basiert auf dem Strukturdigraphen.• Es handelt sich um ein graphisches Verfahren, bei welchem
der Digraph gefärbt wird. Gleichungen mit nur einer schwarzen Linie, färbe man diese Linie rot und färbe man alle schwarzen Linien, die von der angezeigten Unbekannten ausgehen blau. Man nummeriere die Gleichungen neu aufsteigend und beginnend mit 1.
Unbekannten mit nur einer schwarzen Linie, färbe man diese Linie rot und färbe man alle schwarzen Linien, die von der angezeigten Gleichung ausgehen blau. Man nummeriere die Gleichung neu absteigend und beginnend mit n, der Anzahl Gleichungen.
3. November, 2004Anfang Präsentation
Der Tarjan Algorithmus: Ein Beispiel I
1: U0 = f(t)2: i0 = iL + iR1
3: uL = U0
4: diL/dt = uL / L1
5: v1 = U0
6: uR1 = v1 – v2
7: iR1 = uR1 / R1
8: v2 = uC
9: iC = iR1 – iR2
10: duC/dt = iC / C1
11: uR2 = uC
12: iR2 = uR2 / R2
010203040506070809101112
GleichungenU0
i0
uL
diL/dt v1
uR1
iR1
v2
iC
duC/dtuR2
iR2
Unbekannte
01
02
03
12
11
10
3. November, 2004Anfang Präsentation
Algebraische Schleifen: Ein Beispiel II
1: U0 = f(t)2: i0 = iL + iR1
3: uL = U0
4: diL/dt = uL / L1
5: v1 = U0
6: uR1 = v1 – v2
7: iR1 = uR1 / R1
8: v2 = uC
9: iC = iR1 – iR2
10: duC/dt = iC / C1
11: uR2 = uC
12: iR2 = uR2 / R2
010203040506070809101112
GleichungenU0
i0
uL
diL/dt v1
uR1
iR1
v2
iC
duC/dtuR2
iR2
Unbekannte
01
02
03
12
11
10
04
05
06
09
3. November, 2004Anfang Präsentation
Der Tarjan Algorithmus: Ein Beispiel III
1: U0 = f(t)2: i0 = iL + iR1
3: uL = U0
4: diL/dt = uL / L1
5: v1 = U0
6: uR1 = v1 – v2
7: iR1 = uR1 / R1
8: v2 = uC
9: iC = iR1 – iR2
10: duC/dt = iC / C1
11: uR2 = uC
12: iR2 = uR2 / R2
010203040506070809101112
GleichungenU0
i0
uL
diL/dt v1
uR1
iR1
v2
iC
duC/dtuR2
iR2
Unbekannte
01
02
03
12
11
10
04
05
06
09
0708
3. November, 2004Anfang Präsentation
Der Tarjan Algorithmus: Ein Beispiel IV
010203040506070809101112
GleichungenU0
i0
uL
diL/dt v1
uR1
iR1
v2
iC
duC/dtuR2
iR2
Unbekannte
01
02
03
12
11
10
04
05
06
09
0708
1: U0 = f(t)2: v2 = uC
3: uR2 = uC
4: uL = U0
5: v1 = U0
6: iR2 = uR2 / R2
7: uR1 = v1 – v2
8: iR1 = uR1 / R1
9: iC = iR1 – iR2
10: i0 = iL + iR1
11: diL/dt = uL / L1
12: duC/dt = iC / C1
3. November, 2004Anfang Präsentation
Die Strukturinzidenzmatrix des vollständig sortierten Gleichungssystems ist eine Matrix in der unteren Dreiecksform.
Die Strukturinzidenzmatrix II
1: U0 = f(t)2: v2 = uC
3: uR2 = uC
4: uL = U0
5: v1 = U0
6: iR2 = uR2 / R2
7: uR1 = v1 – v2
8: iR1 = uR1 / R1
9: iC = iR1 – iR2
10: i0 = iL + iR1
11: diL/dt = uL / L1
12: duC/dt = iC / C1
diLdt
duCdt
S =
010203040506070809101112
100110000000
010000100000
001001000000
000100000010
000010100000
000001001000
000000110000
000000011100
000000001001
000000000100
000000000010
000000000001
U0 i0uR2v2 v1 iCuR1 iR1iR2uL
3. November, 2004Anfang Präsentation
Algebraische Schleifen: Ein Beispiel I
1: U0 = f(t)
2: u1 = R1· i1
3: u2 = R2· i2
4: u3 = R3· i3
5: uL = L· diL/dt
6: i0 = i1 + iL
7: i1 = i2 + i3
8: U0 = u1 + u3
9: u3 = u2
10: uL = u1 + u2
01020304050607080910
GleichungenU0
i0
uL
diL/dt u1
i1
u2
i2
u3
i3
Unbekannte
3. November, 2004Anfang Präsentation
Algebraische Schleifen: Ein Beispiel II
1: U0 = f(t)
2: u1 = R1· i1
3: u2 = R2· i2
4: u3 = R3· i3
5: uL = L· diL/dt
6: i0 = i1 + iL
7: i1 = i2 + i3
8: U0 = u1 + u3
9: u3 = u2
10: uL = u1 + u2
01020304050607080910
GleichungenU0
i0
uL
diL/dt u1
i1
u2
i2
u3
i3
Unbekannte
01
10
09
3. November, 2004Anfang Präsentation
Algebraische Schleifen: Ein Beispiel III
1: U0 = f(t)
2: u1 = R1· i1
3: u2 = R2· i2
4: u3 = R3· i3
5: uL = L· diL/dt
6: i0 = i1 + iL
7: i1 = i2 + i3
8: U0 = u1 + u3
9: u3 = u2
10: uL = u1 + u2
01020304050607080910
GleichungenU0
i0
uL
diL/dt u1
i1
u2
i2
u3
i3
Unbekannte
01
10
0908
Der Algorithmus kommt ins Stocken, da es keine einzelnen schwarzen Linien zu Gleichungen oder Variablen mehr gibt.
3. November, 2004Anfang Präsentation
Das Aufbrechen algebraischer Schleifen I• Die folgende Heuristik kann angewandt werden, um
geeignete Schnittvariablen zu suchen:
Im Digraphen bestimmt man diejenigen Gleichungen mit der grössten Anzahl Unbekannter.
Für jede dieser Gleichungen findet man die Unbekannten, die am häufigsten in noch unverwendeten Gleichungen vorkommen.
Für jede dieser Variablen ermittelt man, wie viele zusätzliche Gleichungen kausalisiert werden können, wenn man diese als bekannt annimmt.
Man wählt diejenige Variable als nächste Schnittvariable, die die grösste Anzahl zusätzlicher Gleichungen kausalisiert.
3. November, 2004Anfang Präsentation
Das Aufbrechen algebraischer Schleifen II
• Im gegebenen Beispiel hat Gleichung #7 noch 3 Unbe-kannte. Alle anderen unverwendeten Gleichungen haben nur noch 2 Unbekannte.
• Gleichung #7 beinhaltet die Variablen i1, i2 , and i3 .• Jede dieser Variablen kommt in einer weiteren
unbenutzten Gleichung vor.• Bereits Variable i1 erlaubt es, sämtliche Gleichungen zu
kausalisieren.• Somit wird i1 als Schnittvariable verwendet.
3. November, 2004Anfang Präsentation
Algebraische Schleifen: Ein Beispiel IV
10
0908
01020304050607080910
GleichungenU0
i0
uL
diL/dt u1
i1
u2
i2
u3
i3
Unbekannte
01
02
1: U0 = f(t)
2: u1 = R1· i1
3: u2 = R2· i2
4: u3 = R3· i3
5: uL = L· diL/dt
6: i0 = i1 + iL
7: i1 = i2 + i3
8: U0 = u1 + u3
9: u3 = u2
10: uL = u1 + u2 Wahl
3. November, 2004Anfang Präsentation
Algebraische Schleifen: Ein Beispiel V
1: U0 = f(t)
2: u1 = R1· i1
3: u2 = R2· i2
4: u3 = R3· i3
5: uL = L· diL/dt
6: i0 = i1 + iL
7: i1 = i2 + i3
8: U0 = u1 + u3
9: u3 = u2
10: uL = u1 + u2 Wahl
10
0908
01020304050607080910
GleichungenU0
i0
uL
diL/dt u1
i1
u2
i2
u3
i3
Unbekannte
01
02
03
3. November, 2004Anfang Präsentation
Algebraische Schleifen: Ein Beispiel VI
1: U0 = f(t)
2: u1 = R1· i1
3: u2 = R2· i2
4: u3 = R3· i3
5: uL = L· diL/dt
6: i0 = i1 + iL
7: i1 = i2 + i3
8: U0 = u1 + u3
9: u3 = u2
10: uL = u1 + u2 Wahl
10
0908
01020304050607080910
GleichungenU0
i0
uL
diL/dt u1
i1
u2
i2
u3
i3
Unbekannte
01
02
03
04
3. November, 2004Anfang Präsentation
Algebraische Schleifen: Ein Beispiel VII
1: U0 = f(t)
2: u1 = R1· i1
3: u2 = R2· i2
4: u3 = R3· i3
5: uL = L· diL/dt
6: i0 = i1 + iL
7: i1 = i2 + i3
8: U0 = u1 + u3
9: u3 = u2
10: uL = u1 + u2 Wahl
10
0908
01020304050607080910
GleichungenU0
i0
uL
diL/dt u1
i1
u2
i2
u3
i3
Unbekannte
01
02
03
04
05
06
3. November, 2004Anfang Präsentation
Algebraische Schleifen: Ein Beispiel VIII
1: U0 = f(t)
2: u1 = R1· i1
3: u2 = R2· i2
4: u3 = R3· i3
5: uL = L· diL/dt
6: i0 = i1 + iL
7: i1 = i2 + i3
8: U0 = u1 + u3
9: u3 = u2
10: uL = u1 + u2 Wahl
10
0908
01020304050607080910
GleichungenU0
i0
uL
diL/dt u1
i1
u2
i2
u3
i3
Unbekannte
01
02
03
04
05
06
07
3. November, 2004Anfang Präsentation
Algebraische Schleifen: Ein Beispiel IX
1: U0 = f(t)
2: i1 = i2 + i3
3: u1 = R1· i1
4: u3 = U0 - u1
5: i3 = u3 / R3
6: u2 = u3
7: i2 = u2 / R
8: uL = u1 + u2
9: i0 = i1 + iL
10: diL/dt = uL / LWahl
10
0908
01020304050607080910
GleichungenU0
i0
uL
diL/dt u1
i1
u2
i2
u3
i3
Unbekannte
01
02
03
04
05
06
07
3. November, 2004Anfang Präsentation
Die Strukturinzidenzmatrix hat nun die Form einer unteren Blockdreiecksmatrix (“Block Lower Triangular form” oder BLT form).
Die Strukturinzidenzmatrix III
1: U0 = f(t)
2: i1 = i2 + i3
3: u1 = R1· i1
4: u3 = U0 - u1
5: i3 = u3 / R3
6: u2 = u3
7: i2 = u2 / R
8: uL = u1 + u2
9: i0 = i1 + iL
10: diL/dt = uL / LWahl
diLdt
S =
01020304050607080910
1001000000
0110000010
0011000100
0001110000
0100100000
0000011100
0100001000
0000000101
0000000010
0000000001
U0 i0u2u3 i3u1i1 i2 uL
3. November, 2004Anfang Präsentation
Das Auflösen algebraischer Schleifen I• Der Tarjan Algorithmus identifiziert und isoliert algebraische
Schleifen.• Er formt die Strukturinzidenzmatrix um, so dass sie eine untere
Blockdreiecksform annimmt, wobei die diagonalen Blöcke so klein wie möglich gehalten werden.
• Die Schnittvariabeln werden nicht in einer echt optimalen Form ausgewählt. Dies erweist sich nicht als sinnvoll, da gezeigt wurde, dass das Problem der optimalen Wahl von Schnittvariabeln np-vollständig ist. Stattdessen werden Heuristiken angewandt, welche normalerweise zu einer sehr kleinen Anzahl von Schnittvariabeln führen, obwohl diese Zahl möglicherweise nicht minimal ist.
• Der Tarjan Algorithmus befasst sich nicht mit dem Problem, wie die resultierenden algebraischen Schleifen aufgelöst werden.
3. November, 2004Anfang Präsentation
Das Auflösen algebraischer Schleifen II• Die algebraischen Schleifen können entweder analytisch oder
aber numerisch aufgelöst werden.• Falls die algebraisch gekoppelten Gleichungen nichtlinear sind,
mag eine Newton Iteration über die Schnittvariabeln optimal sein.
• Falls die algebraisch gekoppelten Gleichungen linear sind und falls der Satz ziemlich gross ist, mag eine Newton Iteration immer noch die Methode der Wahl sein.
• Falls die algebraisch gekoppelten Gleichungen linear sind und falls der Satz nicht sehr gross ist, können die Gleichungen entweder mittels Matrizenrechnung oder aber mittels expliziter symbolischer Formelmanipulation gelöst werden.
• Die Modelica Modellierungsumgebung verwendet eine Reihe geeigneter Heuristiken, um in jedem Fall automatisch die beste Methode auszuwählen.
3. November, 2004Anfang Präsentation
Referenzen
• Elmqvist H. and M. Otter (1994), “Methods for tearing systems of equations in object-oriented modeling,” Proc. European Simulation Multi-conference, Barcelona, Spain, pp. 326-332.
• Tarjan R.E. (1972), “Depth first search and linear graph algorithms,” SIAM J. Comp., 1, pp. 146-160.