anfang präsentation 3. november, 2004 tarjan’s schleifenaufbrechalgorithmus in dieser vorlesung...

27
3. November, 2004 Anfang 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.

Upload: harald-blau

Post on 06-Apr-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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.

Page 2: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

3. November, 2004Anfang Präsentation

Übersicht

• Strukturinzidenzmatrix• Strukturdigraph• Tarjan Algorithmus• Aufbrechen algebraischer Gleichungssysteme

Page 3: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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.

Page 4: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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

Page 5: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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.

Page 6: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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

Page 7: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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.

Page 8: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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

Page 9: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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

Page 10: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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

Page 11: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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

Page 12: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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

Page 13: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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

Page 14: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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

Page 15: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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.

Page 16: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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.

Page 17: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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.

Page 18: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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

Page 19: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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

Page 20: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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

Page 21: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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

Page 22: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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

Page 23: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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

Page 24: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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

Page 25: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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.

Page 26: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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.

Page 27: Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,

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.