Document

Werbung
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, 2004
Anfang Präsentation
Übersicht
•
•
•
•
3. November, 2004
Strukturinzidenzmatrix
Strukturdigraph
Tarjan Algorithmus
Aufbrechen algebraischer Gleichungssysteme
Anfang 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 Strukturinzidenzmatrix 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, 2004
Anfang 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
3. November, 2004
U0

S=
01
02
03
04
05
06
07
08
09
10
11
12
1
0
1
0
1
0
0
0
0
0
0
0
i0 uL
diL v u i
1
R1 R1 v2
dt
iC duC uR2 iR2
dt
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
Anfang 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, 2004
Anfang Präsentation
Der Strukturdigraph: Ein Beispiel
Gleichungen
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
3. November, 2004

Unbekannte
01
U0
02
i0
03
uL
04
05
diL/dt
v1
06
uR1
07
iR1
08
v2
09
iC
10
duC/dt
11
uR2
12
iR2
Anfang 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, 2004
Anfang Präsentation
Der Tarjan Algorithmus: Ein Beispiel I
Gleichungen
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
3. November, 2004
01

02
03
Unbekannte
01
U0
02
i0
03
uL
04
05
diL/dt
v1
06
uR1
07
iR1
08
v2
09
iC
10
duC/dt
11
uR2
12
iR2
Anfang Präsentation
10
11
12
Algebraische Schleifen: Ein Beispiel II
Gleichungen
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
3. November, 2004
Unbekannte
01
U0
02
i0
03
uL
04
05
diL/dt
v1
06
uR1
07
iR1
08
v2
09
iC
10
duC/dt
03
11
uR2
06
12
iR2
01
04
05

02
Anfang Präsentation
10
11
09
12
Der Tarjan Algorithmus: Ein Beispiel III
Gleichungen
01
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
3. November, 2004
04

Unbekannte
01
U0
02
i0
03
uL
04
05
05
diL/dt
v1
07
06
uR1
07
iR1
08
v2
09
iC
10
duC/dt
03
11
uR2
06
12
iR2
02
Anfang Präsentation
10
11
08
09
12
Der Tarjan Algorithmus: Ein Beispiel IV
Gleichungen
01
04
Unbekannte
01
U0
02
i0
03
uL
04
05
05
diL/dt
v1
07
06
uR1
07
iR1
08
v2
09
iC
10
duC/dt
03
11
uR2
06
12
iR2
02
3. November, 2004
1: U0 = f(t)
10
11
08
09
12

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
Anfang Präsentation
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
3. November, 2004
U0 v2 uR2 uL v1 iR2 uR1 iR1 iC

S=

01
02
03
04
05
06
07
08
09
10
11
12
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
i0 diL duC
dt dt
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
Die Strukturinzidenzmatrix des vollständig
sortierten Gleichungssystems ist eine Matrix
in der unteren Dreiecksform.
Anfang Präsentation
Algebraische Schleifen: Ein Beispiel I
Gleichungen
Unbekannte
1: U0 = f(t)
01
U0
2: u1 = R1· i1
02
i0
3: u2 = R2· i2
03
uL
4: u3 = R3· i3
04
05
diL/dt
u1
06
i1
7: i1 = i2 + i3
07
u2
8: U0 = u1 + u3
08
i2
9: u3 = u2
09
u3
10: uL = u1 + u2
10
i3
5: uL = L· diL/dt
6: i0 = i1 + iL
3. November, 2004

Anfang Präsentation
Algebraische Schleifen: Ein Beispiel II
Gleichungen
1: U0 = f(t)
Unbekannte
01
U0
2: u1 = R1· i1
02
i0
3: u2 = R2· i2
03
uL
4: u3 = R3· i3
04
05
diL/dt
u1
06
i1
7: i1 = i2 + i3
07
u2
8: U0 = u1 + u3
08
i2
9: u3 = u2
09
u3
10: uL = u1 + u2
10
i3
5: uL = L· diL/dt
6: i0 = i1 + iL
3. November, 2004
01

Anfang Präsentation
09
10
Algebraische Schleifen: Ein Beispiel III
Gleichungen
Unbekannte
01
U0
1: U0 = f(t)
02
i0
09
2: u1 = R1· i1
03
uL
3: u2 = R2· i2
04
4: u3 = R3· i3
05
diL/dt
u1
08
10
06
i1
07
u2
7: i1 = i2 + i3
08
i2
8: U0 = u1 + u3
09
u3
9: u3 = u2
10
i3
01
5: uL = L· diL/dt
6: i0 = i1 + iL
10: uL = u1 + u2
3. November, 2004


Der Algorithmus kommt ins Stocken, da
es keine einzelnen schwarzen Linien zu
Gleichungen oder Variablen mehr gibt.
Anfang 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, 2004
Anfang Präsentation
Das Aufbrechen algebraischer Schleifen II
• Im gegebenen Beispiel hat Gleichung #7 noch 3 Unbekannte. 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, 2004
Anfang Präsentation
Algebraische Schleifen: Ein Beispiel IV
Gleichungen
1: U0 = f(t)
Unbekannte
01
U0
2: u1 = R1· i1
02
i0
09
3: u2 = R2· i2
03
uL
4: u3 = R3· i3
04
05
diL/dt
u1
08
10
06
i1
07
u2
8: U0 = u1 + u3
08
i2
9: u3 = u2
09
u3
10: uL = u1 + u2
10
i3
5: uL = L· diL/dt
6: i0 = i1 + iL
7: i1 = i2 + i3
01

02
Wahl
3. November, 2004
Anfang Präsentation
Algebraische Schleifen: Ein Beispiel V
Gleichungen
Unbekannte
1: U0 = f(t)
01
01
U0
2: u1 = R1· i1
03
02
i0
09
3: u2 = R2· i2
03
uL
4: u3 = R3· i3
04
05
diL/dt
u1
08
10
06
i1
07
u2
8: U0 = u1 + u3
08
i2
9: u3 = u2
09
u3
10: uL = u1 + u2
10
i3
5: uL = L· diL/dt
6: i0 = i1 + iL
7: i1 = i2 + i3

02
Wahl
3. November, 2004
Anfang Präsentation
Algebraische Schleifen: Ein Beispiel VI
Gleichungen
Unbekannte
1: U0 = f(t)
01
01
U0
2: u1 = R1· i1
03
02
i0
09
3: u2 = R2· i2
03
uL
4: u3 = R3· i3
04
05
diL/dt
u1
08
10
06
i1
5: uL = L· diL/dt
6: i0 = i1 + iL

7: i1 = i2 + i3
02
07
u2
8: U0 = u1 + u3
04
08
i2
9: u3 = u2
09
u3
10: uL = u1 + u2
10
i3
Wahl
3. November, 2004
Anfang Präsentation
Algebraische Schleifen: Ein Beispiel VII
Gleichungen
Unbekannte
1: U0 = f(t)
01
01
U0
2: u1 = R1· i1
03
02
i0
09
03
uL
04
05
diL/dt
u1
08
10
06
i1
3: u2 = R2· i2
4: u3 = R3· i3
5: uL = L· diL/dt
6: i0 = i1 + iL

05
7: i1 = i2 + i3
02
07
u2
8: U0 = u1 + u3
04
06
08
i2
09
u3
10
i3
9: u3 = u2
10: uL = u1 + u2
Wahl
3. November, 2004
Anfang Präsentation
Algebraische Schleifen: Ein Beispiel VIII
Gleichungen
Unbekannte
1: U0 = f(t)
01
01
U0
2: u1 = R1· i1
03
02
i0
09
3: u2 = R2· i2
07
05
03
uL
04
05
diL/dt
u1
08
10
06
i1
4: u3 = R3· i3
5: uL = L· diL/dt
6: i0 = i1 + iL

7: i1 = i2 + i3
02
07
u2
8: U0 = u1 + u3
04
06
08
i2
09
u3
10
i3
9: u3 = u2
10: uL = u1 + u2
Wahl
3. November, 2004
Anfang Präsentation
Algebraische Schleifen: Ein Beispiel IX
Gleichungen
Unbekannte
1: U0 = f(t)
01
01
U0
03
02
i0
09
2: i1 = i2 + i3
07
05
03
uL
3: u1 = R1· i1
04
05
diL/dt
u1
08
10
06
i1
02
07
u2
7: i2 = u2 / R
04
06
08
i2
8: uL = u1 + u2
09
u3
9: i0 = i1 + iL
10
i3
10: diL/dt = uL / L
4: u3 = U0 - u1

5: i3 = u3 / R3
6: u2 = u3
Wahl
3. November, 2004
Anfang Präsentation
Die Strukturinzidenzmatrix III
1: U0 = f(t)
2: i1 = i2 + i3
3: u1 = R1· i1
4: u3 = U0 - u1
U0
01
02
03
04
05
06
07
08
09
10

S=
5: i3 = u3 / R3
6: u2 = u3
1
0
0
1
0
0
0
0
0
0
i1 u1 u3 i3 u2 i2
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
uL
0
0
0
0
0
0
0
1
0
1
i0 diL
dt
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
7: i2 = u2 / R
8: uL = u1 + u2
9: i0 = i1 + iL
10: diL/dt = uL / L
Wahl
3. November, 2004

Die Strukturinzidenzmatrix hat nun die
Form einer unteren Blockdreiecksmatrix
(“Block Lower Triangular form” oder
BLT form).
Anfang 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 npvollstä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, 2004
Anfang 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, 2004
Anfang 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.
3. November, 2004
Anfang Präsentation
Herunterladen