Anfang Präsentation 3. November, 2004 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.
Anfang Präsentation 3. November, 2004 Übersicht Strukturinzidenzmatrix Strukturdigraph Tarjan AlgorithmusTarjan Algorithmus Aufbrechen algebraischer GleichungssystemeAufbrechen algebraischer Gleichungssysteme
Anfang Präsentation 3. November, 2004 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 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.
Anfang Präsentation 3. November, 2004 Die Strukturinzidenzmatrix: Ein Beispiel 1: U 0 = f(t) 2: i 0 = i L + i R1 3: u L = U 0 4: di L /dt = u L / L 1 5: v 1 = U 0 6: u R1 = v 1 – v 2 7: i R1 = u R1 / R 1 8: v 2 = u C 9: i C = i R1 – i R2 10: du C /dt = i C / C 1 11: u R2 = u C 12: i R2 = u R2 / R 2 di L dt du C dt S = U0U0 i0i0 uLuL v1v1 v2v2 iCiC u R1 i R1 i R2 u R2
Anfang Präsentation 3. November, 2004 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.
Anfang Präsentation 3. November, 2004 Der Strukturdigraph: Ein Beispiel 1: U 0 = f(t) 2: i 0 = i L + i R1 3: u L = U 0 4: di L /dt = u L / L 1 5: v 1 = U 0 6: u R1 = v 1 – v 2 7: i R1 = u R1 / R 1 8: v 2 = u C 9: i C = i R1 – i R2 10: du C /dt = i C / C 1 11: u R2 = u C 12: i R2 = u R2 / R 2 Gleichungen U0U0 i0 i0 uLuL di L /dt v1 v1 u R1 i R1 v2 v2 iC iC du C /dt u R2 i R2 Unbekannte
Anfang Präsentation 3. November, 2004 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.
Anfang Präsentation 3. November, 2004 Der Tarjan Algorithmus: Ein Beispiel I 1: U 0 = f(t) 2: i 0 = i L + i R1 3: u L = U 0 4: di L /dt = u L / L 1 5: v 1 = U 0 6: u R1 = v 1 – v 2 7: i R1 = u R1 / R 1 8: v 2 = u C 9: i C = i R1 – i R2 10: du C /dt = i C / C 1 11: u R2 = u C 12: i R2 = u R2 / R 2 Gleichungen U0U0 i0 i0 uLuL di L /dt v1 v1 u R1 i R1 v2 v2 iC iC du C /dt u R2 i R2 Unbekannte
Anfang Präsentation 3. November, 2004 Algebraische Schleifen: Ein Beispiel II 1: U 0 = f(t) 2: i 0 = i L + i R1 3: u L = U 0 4: di L /dt = u L / L 1 5: v 1 = U 0 6: u R1 = v 1 – v 2 7: i R1 = u R1 / R 1 8: v 2 = u C 9: i C = i R1 – i R2 10: du C /dt = i C / C 1 11: u R2 = u C 12: i R2 = u R2 / R Gleichungen U0U0 i0 i0 uLuL di L /dt v1 v1 u R1 i R1 v2 v2 iC iC du C /dt u R2 i R2 Unbekannte
Anfang Präsentation 3. November, 2004 Der Tarjan Algorithmus: Ein Beispiel III 1: U 0 = f(t) 2: i 0 = i L + i R1 3: u L = U 0 4: di L /dt = u L / L 1 5: v 1 = U 0 6: u R1 = v 1 – v 2 7: i R1 = u R1 / R 1 8: v 2 = u C 9: i C = i R1 – i R2 10: du C /dt = i C / C 1 11: u R2 = u C 12: i R2 = u R2 / R 2 Gleichungen U0U0 i0 i0 uLuL di L /dt v1 v1 u R1 i R1 v2 v2 iC iC du C /dt u R2 i R2 Unbekannte
Anfang Präsentation 3. November, 2004 Der Tarjan Algorithmus: Ein Beispiel IV Gleichungen U0U0 i0 i0 uLuL di L /dt v1 v1 u R1 i R1 v2 v2 iC iC du C /dt u R2 i R2 Unbekannte 1: U 0 = f(t) 2: v 2 = u C 3: u R2 = u C 4: u L = U 0 5: v 1 = U 0 6: i R2 = u R2 / R 2 7: u R1 = v 1 – v 2 8: i R1 = u R1 / R 1 9: i C = i R1 – i R2 10: i 0 = i L + i R1 11: di L /dt = u L / L 1 12: du C /dt = i C / C 1
Anfang Präsentation 3. November, 2004 Die Strukturinzidenzmatrix des vollständig sortierten Gleichungssystems ist eine Matrix in der unteren Dreiecksform. Die Strukturinzidenzmatrix II 1: U 0 = f(t) 2: v 2 = u C 3: u R2 = u C 4: u L = U 0 5: v 1 = U 0 6: i R2 = u R2 / R 2 7: u R1 = v 1 – v 2 8: i R1 = u R1 / R 1 9: i C = i R1 – i R2 10: i 0 = i L + i R1 11: di L /dt = u L / L 1 12: du C /dt = i C / C 1 di L dt du C dt S = U0U0 i0i0 u R2 v2v2 v1v1 iCiC u R1 i R1 i R2 uLuL
Anfang Präsentation 3. November, 2004 Algebraische Schleifen: Ein Beispiel I 1: U 0 = f(t) 2: u 1 = R 1 · i 1 3: u 2 = R 2 · i 2 4: u 3 = R 3 · i 3 5: u L = L· di L /dt 6: i 0 = i 1 + i L 7: i 1 = i 2 + i 3 8: U 0 = u 1 + u 3 9: u 3 = u 2 10: u L = u 1 + u 2 Gleichungen U0U0 i0 i0 uLuL di L /dt u1 u1 i1i1 u2u2 i2 i2 u3 u3 i3i3 Unbekannte
Anfang Präsentation 3. November, 2004 Algebraische Schleifen: Ein Beispiel II 1: U 0 = f(t) 2: u 1 = R 1 · i 1 3: u 2 = R 2 · i 2 4: u 3 = R 3 · i 3 5: u L = L· di L /dt 6: i 0 = i 1 + i L 7: i 1 = i 2 + i 3 8: U 0 = u 1 + u 3 9: u 3 = u 2 10: u L = u 1 + u 2 Gleichungen U0U0 i0 i0 uLuL di L /dt u1 u1 i1i1 u2u2 i2 i2 u3 u3 i3i3 Unbekannte
Anfang Präsentation 3. November, 2004 Algebraische Schleifen: Ein Beispiel III 1: U 0 = f(t) 2: u 1 = R 1 · i 1 3: u 2 = R 2 · i 2 4: u 3 = R 3 · i 3 5: u L = L· di L /dt 6: i 0 = i 1 + i L 7: i 1 = i 2 + i 3 8: U 0 = u 1 + u 3 9: u 3 = u 2 10: u L = u 1 + u 2 Gleichungen U0U0 i0 i0 uLuL di L /dt u1 u1 i1i1 u2u2 i2 i2 u3 u3 i3i3 Unbekannte Der Algorithmus kommt ins Stocken, da es keine einzelnen schwarzen Linien zu Gleichungen oder Variablen mehr gibt.
Anfang Präsentation 3. November, 2004 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.
Anfang Präsentation 3. November, 2004 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 i 1, i 2, and i 3. Jede dieser Variablen kommt in einer weiteren unbenutzten Gleichung vor. Bereits Variable i 1 erlaubt es, sämtliche Gleichungen zu kausalisieren. Somit wird i 1 als Schnittvariable verwendet.
Anfang Präsentation 3. November, 2004 Algebraische Schleifen: Ein Beispiel IV Gleichungen U0U0 i0 i0 uLuL di L /dt u1 u1 i1i1 u2u2 i2 i2 u3 u3 i3i3 Unbekannte : U 0 = f(t) 2: u 1 = R 1 · i 1 3: u 2 = R 2 · i 2 4: u 3 = R 3 · i 3 5: u L = L· di L /dt 6: i 0 = i 1 + i L 7: i 1 = i 2 + i 3 8: U 0 = u 1 + u 3 9: u 3 = u 2 10: u L = u 1 + u 2 Wahl
Anfang Präsentation 3. November, 2004 Algebraische Schleifen: Ein Beispiel V 1: U 0 = f(t) 2: u 1 = R 1 · i 1 3: u 2 = R 2 · i 2 4: u 3 = R 3 · i 3 5: u L = L· di L /dt 6: i 0 = i 1 + i L 7: i 1 = i 2 + i 3 8: U 0 = u 1 + u 3 9: u 3 = u 2 10: u L = u 1 + u 2 Wahl Gleichungen U0U0 i0 i0 uLuL di L /dt u1 u1 i1i1 u2u2 i2 i2 u3 u3 i3i3 Unbekannte
Anfang Präsentation 3. November, 2004 Algebraische Schleifen: Ein Beispiel VI 1: U 0 = f(t) 2: u 1 = R 1 · i 1 3: u 2 = R 2 · i 2 4: u 3 = R 3 · i 3 5: u L = L· di L /dt 6: i 0 = i 1 + i L 7: i 1 = i 2 + i 3 8: U 0 = u 1 + u 3 9: u 3 = u 2 10: u L = u 1 + u 2 Wahl Gleichungen U0U0 i0 i0 uLuL di L /dt u1 u1 i1i1 u2u2 i2 i2 u3 u3 i3i3 Unbekannte
Anfang Präsentation 3. November, 2004 Algebraische Schleifen: Ein Beispiel VII 1: U 0 = f(t) 2: u 1 = R 1 · i 1 3: u 2 = R 2 · i 2 4: u 3 = R 3 · i 3 5: u L = L· di L /dt 6: i 0 = i 1 + i L 7: i 1 = i 2 + i 3 8: U 0 = u 1 + u 3 9: u 3 = u 2 10: u L = u 1 + u 2 Wahl Gleichungen U0U0 i0 i0 uLuL di L /dt u1 u1 i1i1 u2u2 i2 i2 u3 u3 i3i3 Unbekannte
Anfang Präsentation 3. November, 2004 Algebraische Schleifen: Ein Beispiel VIII 1: U 0 = f(t) 2: u 1 = R 1 · i 1 3: u 2 = R 2 · i 2 4: u 3 = R 3 · i 3 5: u L = L· di L /dt 6: i 0 = i 1 + i L 7: i 1 = i 2 + i 3 8: U 0 = u 1 + u 3 9: u 3 = u 2 10: u L = u 1 + u 2 Wahl Gleichungen U0U0 i0 i0 uLuL di L /dt u1 u1 i1i1 u2u2 i2 i2 u3 u3 i3i3 Unbekannte
Anfang Präsentation 3. November, 2004 Algebraische Schleifen: Ein Beispiel IX 1: U 0 = f(t) 2: i 1 = i 2 + i 3 3: u 1 = R 1 · i 1 4: u 3 = U 0 - u 1 5: i 3 = u 3 / R 3 6: u 2 = u 3 7: i 2 = u 2 / R 8: u L = u 1 + u 2 9: i 0 = i 1 + i L 10: di L /dt = u L / L Wahl Gleichungen U0U0 i0 i0 uLuL di L /dt u1 u1 i1i1 u2u2 i2 i2 u3 u3 i3i3 Unbekannte
Anfang Präsentation 3. November, 2004 Die Strukturinzidenzmatrix hat nun die Form einer unteren Blockdreiecksmatrix (“Block Lower Triangular form” oder BLT form). Die Strukturinzidenzmatrix III 1: U 0 = f(t) 2: i 1 = i 2 + i 3 3: u 1 = R 1 · i 1 4: u 3 = U 0 - u 1 5: i 3 = u 3 / R 3 6: u 2 = u 3 7: i 2 = u 2 / R 8: u L = u 1 + u 2 9: i 0 = i 1 + i L 10: di L /dt = u L / L Wahl di L dt S = U0U0 i0i0 u2u2 u3u3 i3i3 u1u1 i1i1 i2i2 uLuL
Anfang Präsentation 3. November, 2004 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.
Anfang Präsentation 3. November, 2004 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.
Anfang Präsentation 3. November, 2004 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 Methods for tearing systems of equations in object-oriented modeling Tarjan R.E. (1972), “Depth first search and linear graph algorithms,” SIAM J. Comp., 1, pp