spezifikation und verifikation kapitel 2 0.2cm ctl model ... · pdf filewiederholung model...

179
Wiederholung Model Checking CTL Spezifikation und Verifikation Kapitel 2 CTL Model Checking Frank Heitmann [email protected] 16. Mai 2014 Frank Heitmann [email protected] 1/138

Upload: vokiet

Post on 06-Feb-2018

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Spezifikation und VerifikationKapitel 2

CTL Model Checking

Frank [email protected]

16. Mai 2014

Frank Heitmann [email protected] 1/138

Page 2: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

CTL

In der Computation Tree Logic (CTL) ist es moglich uber diePfade in einem Transistionssystem zu argumentieren. Hierzu wirddie Logik um Pfadquantoren ‘A’ und ‘E’ erweitert. Die Semantikwird dann uber unendliche, gerichtete Baume definiert, die mandurch ein “unfolding” des Transitionssystems in einenErreichbarkeitsbaum erhalt.

Frank Heitmann [email protected] 2/138

Page 3: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

CTL

In der Computation Tree Logic (CTL) ist es moglich uber diePfade in einem Transistionssystem zu argumentieren. Hierzu wirddie Logik um Pfadquantoren ‘A’ und ‘E’ erweitert. Die Semantikwird dann uber unendliche, gerichtete Baume definiert, die mandurch ein “unfolding” des Transitionssystems in einenErreichbarkeitsbaum erhalt.

Frank Heitmann [email protected] 2/138

Page 4: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

CTL

In der Computation Tree Logic (CTL) ist es moglich uber diePfade in einem Transistionssystem zu argumentieren. Hierzu wirddie Logik um Pfadquantoren ‘A’ und ‘E’ erweitert. Die Semantikwird dann uber unendliche, gerichtete Baume definiert, die mandurch ein “unfolding” des Transitionssystems in einenErreichbarkeitsbaum erhalt.

Frank Heitmann [email protected] 2/138

Page 5: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

Transitionssystem

Definition (Transitionssystem)

Ein labelled transition system (LTS) ist ein TupelTS = (S , s0,R, L)mit

einer endlichen Menge von Zustanden S ,

einem Startzustand s0 ∈ S ,

einer links-totalen Ubergangsrelation R ⊆ S × S und

einer labelling function L : S → P(V ), die jedem Zustand sdie Menge der atomaren Formeln L(s) ⊆ V zuweist, die in sgelten.

Linkstotal bedeutet, dass es zu jedem s ∈ S stets ein s ′ mit(s, s ′) ∈ R gibt.

Frank Heitmann [email protected] 3/138

Page 6: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

Transitionssystem

Definition (Transitionssystem)

Ein labelled transition system (LTS) ist ein TupelTS = (S , s0,R, L)mit

einer endlichen Menge von Zustanden S ,

einem Startzustand s0 ∈ S ,

einer links-totalen Ubergangsrelation R ⊆ S × S und

einer labelling function L : S → P(V ), die jedem Zustand sdie Menge der atomaren Formeln L(s) ⊆ V zuweist, die in sgelten.

Linkstotal bedeutet, dass es zu jedem s ∈ S stets ein s ′ mit(s, s ′) ∈ R gibt.

Frank Heitmann [email protected] 3/138

Page 7: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

Transitionssystem

Definition (Transitionssystem)

Ein labelled transition system (LTS) ist ein TupelTS = (S , s0,R, L)mit

einer endlichen Menge von Zustanden S ,

einem Startzustand s0 ∈ S ,

einer links-totalen Ubergangsrelation R ⊆ S × S und

einer labelling function L : S → P(V ), die jedem Zustand sdie Menge der atomaren Formeln L(s) ⊆ V zuweist, die in sgelten.

Linkstotal bedeutet, dass es zu jedem s ∈ S stets ein s ′ mit(s, s ′) ∈ R gibt.

Frank Heitmann [email protected] 3/138

Page 8: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

Transitionssystem

Definition (Transitionssystem)

Ein labelled transition system (LTS) ist ein TupelTS = (S , s0,R, L)mit

einer endlichen Menge von Zustanden S ,

einem Startzustand s0 ∈ S ,

einer links-totalen Ubergangsrelation R ⊆ S × S und

einer labelling function L : S → P(V ), die jedem Zustand sdie Menge der atomaren Formeln L(s) ⊆ V zuweist, die in sgelten.

Linkstotal bedeutet, dass es zu jedem s ∈ S stets ein s ′ mit(s, s ′) ∈ R gibt.

Frank Heitmann [email protected] 3/138

Page 9: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

Transitionssystem

Definition (Transitionssystem)

Ein labelled transition system (LTS) ist ein TupelTS = (S , s0,R, L)mit

einer endlichen Menge von Zustanden S ,

einem Startzustand s0 ∈ S ,

einer links-totalen Ubergangsrelation R ⊆ S × S und

einer labelling function L : S → P(V ), die jedem Zustand sdie Menge der atomaren Formeln L(s) ⊆ V zuweist, die in sgelten.

Linkstotal bedeutet, dass es zu jedem s ∈ S stets ein s ′ mit(s, s ′) ∈ R gibt.

Frank Heitmann [email protected] 3/138

Page 10: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

Transitionssystem

Definition (Pfad im LTS)

Ein Pfad π in einem LTS TS = (S , s0,R, L) ist eine unendlicheSequenz von Zustanden

π = s1s2s3 . . .

derart, dass (si , si+1) ∈ R fur alle i ≥ 1.

Mit πi , i ≥ 1 bezeichnen wir den Suffix, der an si startet,d.h. den Pfad πi = si si+1 . . .

Mit π(i), i ≥ 1, bezeichnen wir den i-ten Zustand in π,d.h. π(i) = si .

Wenn s1 der Startzustand s0 von TS ist, wird π auch alsRechnung bezeichnet.

Frank Heitmann [email protected] 4/138

Page 11: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

Transitionssystem

Definition (Pfad im LTS)

Ein Pfad π in einem LTS TS = (S , s0,R, L) ist eine unendlicheSequenz von Zustanden

π = s1s2s3 . . .

derart, dass (si , si+1) ∈ R fur alle i ≥ 1.

Mit πi , i ≥ 1 bezeichnen wir den Suffix, der an si startet,d.h. den Pfad πi = si si+1 . . .

Mit π(i), i ≥ 1, bezeichnen wir den i-ten Zustand in π,d.h. π(i) = si .

Wenn s1 der Startzustand s0 von TS ist, wird π auch alsRechnung bezeichnet.

Frank Heitmann [email protected] 4/138

Page 12: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

Transitionssystem

Definition (Pfad im LTS)

Ein Pfad π in einem LTS TS = (S , s0,R, L) ist eine unendlicheSequenz von Zustanden

π = s1s2s3 . . .

derart, dass (si , si+1) ∈ R fur alle i ≥ 1.

Mit πi , i ≥ 1 bezeichnen wir den Suffix, der an si startet,d.h. den Pfad πi = si si+1 . . .

Mit π(i), i ≥ 1, bezeichnen wir den i-ten Zustand in π,d.h. π(i) = si .

Wenn s1 der Startzustand s0 von TS ist, wird π auch alsRechnung bezeichnet.

Frank Heitmann [email protected] 4/138

Page 13: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

Transitionssystem

Definition (Pfad im LTS)

Ein Pfad π in einem LTS TS = (S , s0,R, L) ist eine unendlicheSequenz von Zustanden

π = s1s2s3 . . .

derart, dass (si , si+1) ∈ R fur alle i ≥ 1.

Mit πi , i ≥ 1 bezeichnen wir den Suffix, der an si startet,d.h. den Pfad πi = si si+1 . . .

Mit π(i), i ≥ 1, bezeichnen wir den i-ten Zustand in π,d.h. π(i) = si .

Wenn s1 der Startzustand s0 von TS ist, wird π auch alsRechnung bezeichnet.

Frank Heitmann [email protected] 4/138

Page 14: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

CTL: Syntax

Definition (Syntax von CTL)

Die (wohlgeformten) Formeln der Computation Tree Logic (CTL)werden durch die folgende Grammatik definiert:

φ ::= v | ¬φ | (φ ∧ φ) | (φ ∨ φ) |EXφ | EFφ | EGφ | E [φUφ] |AXφ | AFφ | AGφ | A[φUφ]

wobei v ∈ V ein aussagenlogisches Atom ist.

Kann man auch mit einer induktiven Definition machen.

Frank Heitmann [email protected] 5/138

Page 15: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

CTL: Syntax

Definition (Syntax von CTL)

Die (wohlgeformten) Formeln der Computation Tree Logic (CTL)werden durch die folgende Grammatik definiert:

φ ::= v | ¬φ | (φ ∧ φ) | (φ ∨ φ) |EXφ | EFφ | EGφ | E [φUφ] |AXφ | AFφ | AGφ | A[φUφ]

wobei v ∈ V ein aussagenlogisches Atom ist.

Kann man auch mit einer induktiven Definition machen.

Frank Heitmann [email protected] 5/138

Page 16: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

CTL: Syntax

Definition (Syntax von CTL)

Die (wohlgeformten) Formeln der Computation Tree Logic (CTL)werden durch die folgende Grammatik definiert:

φ ::= v | ¬φ | (φ ∧ φ) | (φ ∨ φ) |EXφ | EFφ | EGφ | E [φUφ] |AXφ | AFφ | AGφ | A[φUφ]

wobei v ∈ V ein aussagenlogisches Atom ist.

Kann man auch mit einer induktiven Definition machen.

Frank Heitmann [email protected] 5/138

Page 17: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

CTL: Semantik

Definition (Semantik von CTL (I))

Sei M = (S , s0,R, L) ein LTS und s ∈ S ein Zustand. Eine CTLFormel φ ist erfullt in s (in M), wenn M, s |= φ gilt, wobei dieRelation |= induktiv definiert ist:

M, s |= v gdw. v ∈ L(s) fur v ∈ VM, s |= ¬φ gdw. M, s 6|= φM, s |= φ1 ∧ φ2 gdw. M, s |= φ1 und M, s |= φ2M, s |= φ1 ∨ φ2 gdw. M, s |= φ1 oder M, s |= φ2

Frank Heitmann [email protected] 6/138

Page 18: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

CTL: Semantik

Definition (Semantik von CTL (I))

Sei M = (S , s0,R, L) ein LTS und s ∈ S ein Zustand. Eine CTLFormel φ ist erfullt in s (in M), wenn M, s |= φ gilt, wobei dieRelation |= induktiv definiert ist:

M, s |= v gdw. v ∈ L(s) fur v ∈ VM, s |= ¬φ gdw. M, s 6|= φM, s |= φ1 ∧ φ2 gdw. M, s |= φ1 und M, s |= φ2M, s |= φ1 ∨ φ2 gdw. M, s |= φ1 oder M, s |= φ2

Frank Heitmann [email protected] 6/138

Page 19: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

CTL: Semantik

Definition (Semantik von CTL (II))

M, s |= EXφ gdw. ein Zustand s ′ ∈ S existiert mit(s, s ′) ∈ R und M, s ′ |= φ

M, s |= EFφ gdw. ein Pfad π = s1s2 . . . beginnend bei s(s1 = s) existiert und ein i ≥ 1, sodass M, si |= φ gilt.

M, s |= EGφ gdw. ein Pfad π = s1s2 . . . beginnend bei s(s1 = s) existiert und fur alle i ≥ 1M, si |= φ gilt.

M, s |= E [φ1Uφ2] gdw. ein Pfad π = s1s2 . . . beginnend bei sexistiert und ein j ≥ 1, so dassM, sj |= φ2und M, si |= φ1 fur alle i < j .

Frank Heitmann [email protected] 7/138

Page 20: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

CTL: Semantik

Definition (Semantik von CTL (III))

M, s |= AXφ gdw. M, s ′ |= φ fur alle s ′ ∈ Smit (s, s ′) ∈ R.

M, s |= AFφ gdw. fur alle Pfade π = s1s2 . . . beginnendbei s ein i ≥ 1 existiert mit M, si |= φ.

M, s |= AGφ gdw. fur alle Pfade π = s1s2 . . . beginnendbei s M, si |= φ fur alle i ≥ 1 gilt.

M, s |= A[φ1Uφ2] gdw. fur alle Pfade π = s1s2 . . . beginnendbei s ein j ≥ 1 existiert derart, dassM, sj |= φ2 undM, si |= φ1 fur alle i < j gilt

Frank Heitmann [email protected] 8/138

Page 21: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

CTL: Semantik

Definition (Semantik von CTL (IV))

Sei M = (S , s0,R, L) ein LTS und φ eine CTL Formel.

Wenn M, s0 |= φ gilt, schreiben wir auch M |= φ und sagen,dass M ein Model fur φ ist oder dass φ erfullt ist in M.

Zwei CTL formulas φ und ψ sind aquivalent, φ ≡ ψ, wenn furalle Modele M und alle Zustande s in M auch M, s |= φgdw. M, s |= ψ gilt.

Frank Heitmann [email protected] 9/138

Page 22: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

CTL: Semantik

Definition (Semantik von CTL (IV))

Sei M = (S , s0,R, L) ein LTS und φ eine CTL Formel.

Wenn M, s0 |= φ gilt, schreiben wir auch M |= φ und sagen,dass M ein Model fur φ ist oder dass φ erfullt ist in M.

Zwei CTL formulas φ und ψ sind aquivalent, φ ≡ ψ, wenn furalle Modele M und alle Zustande s in M auch M, s |= φgdw. M, s |= ψ gilt.

Frank Heitmann [email protected] 9/138

Page 23: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

CTL: Semantik

Definition (Semantik von CTL (IV))

Sei M = (S , s0,R, L) ein LTS und φ eine CTL Formel.

Wenn M, s0 |= φ gilt, schreiben wir auch M |= φ und sagen,dass M ein Model fur φ ist oder dass φ erfullt ist in M.

Zwei CTL formulas φ und ψ sind aquivalent, φ ≡ ψ, wenn furalle Modele M und alle Zustande s in M auch M, s |= φgdw. M, s |= ψ gilt.

Frank Heitmann [email protected] 9/138

Page 24: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

CTL: Aquivalenzen

Gangige Abkurzungen bzw. Aquivalenzen:

φ1 ∨ φ2 ≡ ¬(¬φ1 ∧ ¬φ2)

> ≡ φ ∨ ¬φEFφ ≡ E [>Uφ]

AGφ ≡ ¬EF¬φAFφ ≡ ¬EG¬φAXφ ≡ ¬EX¬φ

A[φ1Uφ2] ≡ ¬(E [¬φ2U¬(φ1 ∨ φ2)] ∨ EG¬φ2)

Frank Heitmann [email protected] 10/138

Page 25: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

CTL: Aquivalenzen

Oft - und besonders beim Model Checking - benutzt man ein Setvon “adequate connectives”, d.h. ein Set von Junktoren, dassAusdrucksstark genug ist, um jede Formel der Logik auszudrucken.

Fur CTL sind solche Sets z.B.

{¬,∧,EX ,AF ,EU}

oder{¬,∧,EX ,EG ,EU}

Alle Formeln, die andere Junktoren benutzen, konnen stets durcheine aquivalente Formeln ersetzt werden, die nur Junktoren obigerMengen benutzen.

Frank Heitmann [email protected] 11/138

Page 26: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Computation Tree Logic

CTL: Aquivalenzen

Oft - und besonders beim Model Checking - benutzt man ein Setvon “adequate connectives”, d.h. ein Set von Junktoren, dassAusdrucksstark genug ist, um jede Formel der Logik auszudrucken.

Fur CTL sind solche Sets z.B.

{¬,∧,EX ,AF ,EU}

oder{¬,∧,EX ,EG ,EU}

Alle Formeln, die andere Junktoren benutzen, konnen stets durcheine aquivalente Formeln ersetzt werden, die nur Junktoren obigerMengen benutzen.

Frank Heitmann [email protected] 11/138

Page 27: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Das Model-Checking-Problem

Das Problem

Das model checking problem fur LTL oder CTL fragt, gegeben einLTS M und eine Formel φ, ob M |= φ gilt, d.h. ob M ein Modelfur φ ist.Eingabe: Ein LTS M und eine LTL oder CTL Formel φ.

Frage: Gilt M |= φ ?

Frank Heitmann [email protected] 12/138

Page 28: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Model Checking. Ergebnisse

Satz

Sei M ein LTS.

1 Sei φ eine LTL Formel. Das model checking problem fur LTL,d.h. die Frage, ob M |= φ gilt, ist PSpace-vollstandig undkann in O(|M| · 2|φ|) Zeit entschieden werden.

2 Sei φ eine CTL Formel. Das model checking problem fur CTL,d.h. die Frage, ob M |= φ gilt, kann in O(|M| · |φ|) Zeitentschieden werden.

Wichtige Anmerkung

Das Modell M wird allerdings i.A. sehr schnell sehr groß. Daherist |M| der dominante Faktor, was zu dem beruhmten Problem derZustandsraumexplosion fuhrt.

Frank Heitmann [email protected] 13/138

Page 29: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Model Checking. Ergebnisse

Satz

Sei M ein LTS.

1 Sei φ eine LTL Formel. Das model checking problem fur LTL,d.h. die Frage, ob M |= φ gilt, ist PSpace-vollstandig undkann in O(|M| · 2|φ|) Zeit entschieden werden.

2 Sei φ eine CTL Formel. Das model checking problem fur CTL,d.h. die Frage, ob M |= φ gilt, kann in O(|M| · |φ|) Zeitentschieden werden.

Wichtige Anmerkung

Das Modell M wird allerdings i.A. sehr schnell sehr groß. Daherist |M| der dominante Faktor, was zu dem beruhmten Problem derZustandsraumexplosion fuhrt.

Frank Heitmann [email protected] 13/138

Page 30: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Die Idee

Sei M ein LTS und φ eine CTL Formel.

Wahle eine Menge von “adequate connectives”.

Behandle die dortigen Operatoren, dazu:

Markiere jene Zustande von M mit den Teilformeln von φ, diein ihnen gelten.Beginne dazu mit den kleinsten Teilformeln und arbeite “nachoben” bis zu φ.

Fallunterscheidung je nach Teilformel ψ...

Frank Heitmann [email protected] 14/138

Page 31: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Die Idee

Sei M ein LTS und φ eine CTL Formel.

Wahle eine Menge von “adequate connectives”.

Behandle die dortigen Operatoren, dazu:

Markiere jene Zustande von M mit den Teilformeln von φ, diein ihnen gelten.Beginne dazu mit den kleinsten Teilformeln und arbeite “nachoben” bis zu φ.

Fallunterscheidung je nach Teilformel ψ...

Frank Heitmann [email protected] 14/138

Page 32: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Die Idee

Sei M ein LTS und φ eine CTL Formel.

Wahle eine Menge von “adequate connectives”.

Behandle die dortigen Operatoren, dazu:

Markiere jene Zustande von M mit den Teilformeln von φ, diein ihnen gelten.Beginne dazu mit den kleinsten Teilformeln und arbeite “nachoben” bis zu φ.

Fallunterscheidung je nach Teilformel ψ...

Frank Heitmann [email protected] 14/138

Page 33: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Algorithmus (1)

Markiere s ∈ S mit

ψ = p, wenn p ∈ L(S).

ψ = ψ1 ∧ ψ2, wenn s bereits mit ψ1 und ψ2 markiert ist.

ψ = ¬ψ1, wenn s nicht bereits mit ψ1 markiert ist.

Frank Heitmann [email protected] 15/138

Page 34: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Algorithmus (1)

Markiere s ∈ S mit

ψ = p, wenn p ∈ L(S).

ψ = ψ1 ∧ ψ2, wenn s bereits mit ψ1 und ψ2 markiert ist.

ψ = ¬ψ1, wenn s nicht bereits mit ψ1 markiert ist.

Frank Heitmann [email protected] 15/138

Page 35: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Algorithmus (1)

Markiere s ∈ S mit

ψ = p, wenn p ∈ L(S).

ψ = ψ1 ∧ ψ2, wenn s bereits mit ψ1 und ψ2 markiert ist.

ψ = ¬ψ1, wenn s nicht bereits mit ψ1 markiert ist.

Frank Heitmann [email protected] 15/138

Page 36: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Algorithmus (2)

Markiere s ∈ S mit

ψ = EXψ1, wenn ein Nachfolger von s mit ψ1 markiert ist.

Fur EU und AF brauchen wir Unterroutinen...

Frank Heitmann [email protected] 16/138

Page 37: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Algorithmus (3)

Ist ψ = E [ψ1Uψ2], dann

markiere zunachst jeden Zustand mit ψ, der bereits mit ψ2

markiert ist.

Wiederhole bis keine Veranderung mehr Eintritt:

Markiere jeden Zustand mit ψ, dermit ψ1 markiert ist undmindestens einen mit ψ markierten Nachfolger hat.

Frank Heitmann [email protected] 17/138

Page 38: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Algorithmus (3)

Ist ψ = E [ψ1Uψ2], dann

markiere zunachst jeden Zustand mit ψ, der bereits mit ψ2

markiert ist.

Wiederhole bis keine Veranderung mehr Eintritt:

Markiere jeden Zustand mit ψ, dermit ψ1 markiert ist undmindestens einen mit ψ markierten Nachfolger hat.

Frank Heitmann [email protected] 17/138

Page 39: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

EU - bildlich

ψ1

99

// E [ψ1Uψ2]

Hier wird der Zustand ganz links mit E [ψ1Uψ2] markiert.

Frank Heitmann [email protected] 18/138

Page 40: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Algorithmus (4)

Ist ψ = AFψ1, dann

markiere zunachst jeden Zustand mit ψ, der bereits mit ψ1

markiert ist.

Wiederhole bis keine Veranderung mehr Eintritt:

Markiere jeden Zustand mit ψ, bei demalle Nachfolger mit ψ markiert sind.

Frank Heitmann [email protected] 19/138

Page 41: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

AF - bildlich

AFψ1;;

// AFψ1

Hier wird der Zustand ganz links mit AFψ1 markiert.

Frank Heitmann [email protected] 20/138

Page 42: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Algorithmus - Laufzeit

Laufzeit?

O(φ · V · (V + E ))

Das “Problem” ist AF . EX und EU kriegt man mit einembackwards breadth-first search effizient hin. (Kein Knoten mussmehr als einmal besucht werden!)

Frank Heitmann [email protected] 21/138

Page 43: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Algorithmus - Laufzeit

Laufzeit?

O(φ · V · (V + E ))

Das “Problem” ist AF . EX und EU kriegt man mit einembackwards breadth-first search effizient hin. (Kein Knoten mussmehr als einmal besucht werden!)

Frank Heitmann [email protected] 21/138

Page 44: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Algorithmus (4a)

Ist ψ = EGψ1, dann

markiere zunachst jeden Zustand mit ψ, der bereits mit ψ1

markiert ist

Wiederhole bis keine Veranderung mehr Eintritt:

Entferne die Markierung ψ bei jedem Zustand, bei demkein Nachfolger mit ψ markiert ist.

Das macht’s noch nicht schneller ...

Frank Heitmann [email protected] 22/138

Page 45: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Algorithmus (4a)

Ist ψ = EGψ1, dann

markiere zunachst jeden Zustand mit ψ, der bereits mit ψ1

markiert ist

Wiederhole bis keine Veranderung mehr Eintritt:

Entferne die Markierung ψ bei jedem Zustand, bei demkein Nachfolger mit ψ markiert ist.

Das macht’s noch nicht schneller ...

Frank Heitmann [email protected] 22/138

Page 46: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Algorithmus (4a)

Ist ψ = EGψ1, dann

markiere zunachst jeden Zustand mit ψ, der bereits mit ψ1

markiert ist

Wiederhole bis keine Veranderung mehr Eintritt:

Entferne die Markierung ψ bei jedem Zustand, bei demkein Nachfolger mit ψ markiert ist.

Das macht’s noch nicht schneller ...

Frank Heitmann [email protected] 22/138

Page 47: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Algorithmus (4a)

Ist ψ = EGψ1, dann

markiere zunachst jeden Zustand mit ψ, der bereits mit ψ1

markiert ist

Wiederhole bis keine Veranderung mehr Eintritt:

Entferne die Markierung ψ bei jedem Zustand, bei demkein Nachfolger mit ψ markiert ist.

Das macht’s noch nicht schneller ...

Frank Heitmann [email protected] 22/138

Page 48: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Algorithmus (4a)

Ist ψ = EGψ1, dann

Schranke das Transitionssystem auf die Zustande ein, in denenψ1 gilt.

Bestimme die maximalen strengenZusammenhangskomponenten (maximal strongly connectedcomponents, SCCs.

Benutze backwards breadth-first search auf demeingeschrankten Transitionssystem, um alle Zustande zubestimmen, von denen aus eine (nicht-triviale) SCC zuerreichen ist.

Das macht’s schneller – wenn man die SCCs schnell bestimmenkann!

Frank Heitmann [email protected] 23/138

Page 49: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Algorithmus (4a)

Ist ψ = EGψ1, dann

Schranke das Transitionssystem auf die Zustande ein, in denenψ1 gilt.

Bestimme die maximalen strengenZusammenhangskomponenten (maximal strongly connectedcomponents, SCCs.

Benutze backwards breadth-first search auf demeingeschrankten Transitionssystem, um alle Zustande zubestimmen, von denen aus eine (nicht-triviale) SCC zuerreichen ist.

Das macht’s schneller – wenn man die SCCs schnell bestimmenkann!

Frank Heitmann [email protected] 23/138

Page 50: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Algorithmus (4a)

Ist ψ = EGψ1, dann

Schranke das Transitionssystem auf die Zustande ein, in denenψ1 gilt.

Bestimme die maximalen strengenZusammenhangskomponenten (maximal strongly connectedcomponents, SCCs.

Benutze backwards breadth-first search auf demeingeschrankten Transitionssystem, um alle Zustande zubestimmen, von denen aus eine (nicht-triviale) SCC zuerreichen ist.

Das macht’s schneller – wenn man die SCCs schnell bestimmenkann!

Frank Heitmann [email protected] 23/138

Page 51: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Algorithmus (4a)

Ist ψ = EGψ1, dann

Schranke das Transitionssystem auf die Zustande ein, in denenψ1 gilt.

Bestimme die maximalen strengenZusammenhangskomponenten (maximal strongly connectedcomponents, SCCs.

Benutze backwards breadth-first search auf demeingeschrankten Transitionssystem, um alle Zustande zubestimmen, von denen aus eine (nicht-triviale) SCC zuerreichen ist.

Das macht’s schneller – wenn man die SCCs schnell bestimmenkann!

Frank Heitmann [email protected] 23/138

Page 52: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breiten- und Tiefensuche

Wir brauchen zur Bestimmung der SCCs die Tiefensuche.

Außerdem brauchten wir im Algorithmus oben noch dieBreitensuche.

Nachfolgend erst die Breiten- dann die Tiefensuche und dann dieSCCs ...

(Im Anhang sind zudem Grundlagen zu Graphen zu finden.)

Frank Heitmann [email protected] 24/138

Page 53: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - Die Idee

Gegeben ein Graph G und ein Startknoten s ’entdeckt’ dieBreitensuche alle Knoten, die von s aus erreichbar sind. Zudemwird der Abstand (in Kanten) von s aus berechnet (tatsachlichwird sogar der kurzeste Abstand ermittelt).

Man kann auch zusatzlich einen ’Breitensuchbaum’ (mit Wurzel s)und damit die kurzesten Pfade von s zu den anderen Knotenermitteln.

Der Algorithmus entdeckt zunachst die Knoten mit Entfernung kund dann die mit Entfernung k + 1, daher der Name. Er geht erstin die Breite...

Frank Heitmann [email protected] 25/138

Page 54: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - Die Idee

Starte mit Knoten s in einer Queue Q.

Wiederhole solange Q nicht leer...

Nimm vordersten Knoten v aus Q.(Bearbeite diesen und Farbe diesen so, dass er nicht wiederbesucht wird.)Tue alle Nachbarn von v , die bisher nicht besucht wurden indie Queue.

Anmerkung

Durch die Queue wird sichergestellt, dass die Knoten ’in der Breite’besucht werden.

Frank Heitmann [email protected] 26/138

Page 55: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - Die Idee

Starte mit Knoten s in einer Queue Q.

Wiederhole solange Q nicht leer...

Nimm vordersten Knoten v aus Q.(Bearbeite diesen und Farbe diesen so, dass er nicht wiederbesucht wird.)Tue alle Nachbarn von v , die bisher nicht besucht wurden indie Queue.

Anmerkung

Durch die Queue wird sichergestellt, dass die Knoten ’in der Breite’besucht werden.

Frank Heitmann [email protected] 26/138

Page 56: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - Kernidee als Algorithmus

Algorithmus 1 BFS(G , s)

1: farbe[s] = pink2: Q = ∅, enqueue(Q, s)3: while Q 6= ∅ do4: u = dequeue(Q)5: for each v ∈ Adj [u] do6: if farbe[v ] == weiss then7: farbe[v ] = pink8: enqueue(Q, v)9: end if

10: end for11: farbe[u] = schwarz12: end while

Frank Heitmann [email protected] 27/138

Page 57: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Zur Nachbereitung

Anmerkung (zur Nachbereitung)

Wir verzichten fur das nachste Beispiel auf die Angabe der einzelnenAdjazenzlisten. Man kann sie aus dem Beispiel ablesen.Man beachte noch, dass je nachdem wie die Knoten in der Adja-zenzliste angeordnet sind, der Algorithmus verschiedene Ergebnisseliefern kann. Waren die Knoten 7 und 9 bspw. in der Adjazenzlisteder 8 in umgekehrter Reihenfolge, so wurde zuerst die 9 abgearbeitetwerden, bevor man bei 7 und 5 weiter im Baum hinabsteigt. (Beider Tiefensuche spater ist dieser Unterschied noch merklicher.)

Frank Heitmann [email protected] 28/138

Page 58: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - im Graphen

3

102

5

6

87

9

A:

s

Q:

Frank Heitmann [email protected] 29/138

Page 59: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - im Graphen

3

102

5

6

87

9

6A:

s

2 3 8Q:

Frank Heitmann [email protected] 30/138

Page 60: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - im Graphen

3

102

5

6

87

9

6A:

s

3 8Q:

Frank Heitmann [email protected] 31/138

Page 61: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - im Graphen

3

102

5

6

87

9

6 2A:

s

3 8 10Q:

Frank Heitmann [email protected] 32/138

Page 62: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - im Graphen

3

102

5

6

87

9

6 2 3A:

s

8 10Q:

Frank Heitmann [email protected] 33/138

Page 63: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - im Graphen

3

102

5

6

87

9

6 2 3 8 10A:

s

7 9Q:

Frank Heitmann [email protected] 34/138

Page 64: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - im Graphen

3

102

5

6

87

9

6 2 3 8 10 7A:

s

9 5Q:

Frank Heitmann [email protected] 35/138

Page 65: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - im Graphen

3

102

5

6

87

9

6 2 3 8 10 7 9 5A:

s

Q:

Frank Heitmann [email protected] 36/138

Page 66: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - mehr Informationen

Reichern wir die Breitensuche etwas an, so konnen wir mehrInformationen gewinnen, z.B. den Abstand der einzelnen Knotenvon s und den Breitensuchbaum.

Der folgende Algorithmus ist wie im [Cormen].

Frank Heitmann [email protected] 37/138

Page 67: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - Initialisierung

Algorithmus 2 BFS(G , s) - Teil 1, Initphase

1: for each u ∈ V (G ) \ {s} do2: farbe[u] = weiss, d [u] =∞, π[u] = nil

3: end for4: farbe[s] = grau5: d [s] = 0, π[s] = nil

6: Q = ∅, enqueue(Q, s)

Anmerkung

Farben: weiss heißt ’noch nicht besucht’, grau ’besucht, aber nochunbesuchte Nachbarn’, schwarz ’besucht, alle Nachbarn entdeckt’.d [u] ist die Anzahl der Schritt von s zu u, π[u] der Vorganger vonu auf diesem Pfad.

Frank Heitmann [email protected] 38/138

Page 68: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - Hauptschleife

Algorithmus 3 BFS(G , s) - Teil 2, Hauptteil

1: while Q 6= ∅ do2: u = dequeue(Q)3: for each v ∈ Adj [u] do4: if farbe[v ] == weiss then5: farbe[v ] = grau6: d [v ] = d [u] + 1, π[v ] = u7: enqueue(Q, v)8: end if9: end for

10: farbe[u] = schwarz11: end while

Frank Heitmann [email protected] 39/138

Page 69: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Zur Nachbereitung

Anmerkung (zur Nachbereitung)

Fur das nachfolgende Beispiel verzichten wir erneut auf die Angabeder Adjazenzlisten.Die Zahl in einem Knoten v ist nun nicht mehr der Schlussel o.a.,sondern der Wert von d [v ]. Die Farbe ’grun’ in den Bildern ent-spricht der Farbe ’schwarz’ im Quellcode (d.h. ein gruner Knoten istvollstandig abgearbeitet und alle seine Kinder sind ’entdeckt’ (alsomindestens ’grau’)).Die dicken Kanten stellen die Baumkanten dar, die mittels der πFunktion gewonnen werden konnen, die jeden Knoten auf seinenVorganger im Baum abbildet.

Frank Heitmann [email protected] 40/138

Page 70: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - Beispiel

Q:

sa

b

c

fe

g

d

Frank Heitmann [email protected] 41/138

Page 71: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - Beispiel

0

sQ:

sa

b

c

fe

g

d

Frank Heitmann [email protected] 42/138

Page 72: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - Beispiel

01

1

a cQ:

sa

b

c

fe

g

d

Frank Heitmann [email protected] 43/138

Page 73: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - Beispiel

01

2

12

c b eQ:

sa

b

c

fe

g

d

Frank Heitmann [email protected] 44/138

Page 74: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - Beispiel

01

2

1

2

2

b e fQ:

sa

b

c

fe

g

d

Frank Heitmann [email protected] 45/138

Page 75: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - Beispiel

01

2

1

2

2

e fQ:

sa

b

c

fe

g

d

Frank Heitmann [email protected] 46/138

Page 76: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - Beispiel

01

2

31

2

2

f dQ:

sa

b

c

fe

g

d

Frank Heitmann [email protected] 47/138

Page 77: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - Beispiel

01

2

31

2

2

3

d gQ:

sa

b

c

fe

g

d

Frank Heitmann [email protected] 48/138

Page 78: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - Beispiel

01

2

31

2

2

3

gQ:

sa

b

c

fe

g

d

Frank Heitmann [email protected] 49/138

Page 79: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - Beispiel

01

2

31

2

2

3

Q:

sa

b

c

fe

g

d

Frank Heitmann [email protected] 50/138

Page 80: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Analyse (Laufzeit)

Zu Anfang ist jeder Knoten weiß. Der Test in der Schleifestellt daher sicher, dass jeder Knoten nur einmal in die Queueeingefugt und aus ihr entnommen wird.

Fur die Warteschlangenoperationen brauchen wir also O(V ).

Die Adjazenzliste jedes Knotens wird nur einmal gepruft(wenn der Knoten aus der Queue entnommen wird).

Die Summe aller Adjazenzlisten ist in Θ(E ), folglich benotigtdas Prufen der Adjazenzlisten O(E ).

Initialisierung geht auch in O(V ).

Insgesamt ergibt sich so: O(V + E ), was linear in der Großeder Adjazenzliste ist.

Anmerkung

Diese Laufzeitanalyse stimmt nur, wenn der Graph durch Adjazenz-listen gegeben ist!

Frank Heitmann [email protected] 51/138

Page 81: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Analyse (Laufzeit)

Zu Anfang ist jeder Knoten weiß. Der Test in der Schleifestellt daher sicher, dass jeder Knoten nur einmal in die Queueeingefugt und aus ihr entnommen wird.

Fur die Warteschlangenoperationen brauchen wir also O(V ).

Die Adjazenzliste jedes Knotens wird nur einmal gepruft(wenn der Knoten aus der Queue entnommen wird).

Die Summe aller Adjazenzlisten ist in Θ(E ), folglich benotigtdas Prufen der Adjazenzlisten O(E ).

Initialisierung geht auch in O(V ).

Insgesamt ergibt sich so: O(V + E ), was linear in der Großeder Adjazenzliste ist.

Anmerkung

Diese Laufzeitanalyse stimmt nur, wenn der Graph durch Adjazenz-listen gegeben ist!

Frank Heitmann [email protected] 51/138

Page 82: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Analyse (Laufzeit)

Zu Anfang ist jeder Knoten weiß. Der Test in der Schleifestellt daher sicher, dass jeder Knoten nur einmal in die Queueeingefugt und aus ihr entnommen wird.

Fur die Warteschlangenoperationen brauchen wir also O(V ).

Die Adjazenzliste jedes Knotens wird nur einmal gepruft(wenn der Knoten aus der Queue entnommen wird).

Die Summe aller Adjazenzlisten ist in Θ(E ), folglich benotigtdas Prufen der Adjazenzlisten O(E ).

Initialisierung geht auch in O(V ).

Insgesamt ergibt sich so: O(V + E ), was linear in der Großeder Adjazenzliste ist.

Anmerkung

Diese Laufzeitanalyse stimmt nur, wenn der Graph durch Adjazenz-listen gegeben ist!

Frank Heitmann [email protected] 51/138

Page 83: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Analyse (Laufzeit)

Zu Anfang ist jeder Knoten weiß. Der Test in der Schleifestellt daher sicher, dass jeder Knoten nur einmal in die Queueeingefugt und aus ihr entnommen wird.

Fur die Warteschlangenoperationen brauchen wir also O(V ).

Die Adjazenzliste jedes Knotens wird nur einmal gepruft(wenn der Knoten aus der Queue entnommen wird).

Die Summe aller Adjazenzlisten ist in Θ(E ), folglich benotigtdas Prufen der Adjazenzlisten O(E ).

Initialisierung geht auch in O(V ).

Insgesamt ergibt sich so: O(V + E ), was linear in der Großeder Adjazenzliste ist.

Anmerkung

Diese Laufzeitanalyse stimmt nur, wenn der Graph durch Adjazenz-listen gegeben ist!

Frank Heitmann [email protected] 51/138

Page 84: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Analyse (Laufzeit)

Zu Anfang ist jeder Knoten weiß. Der Test in der Schleifestellt daher sicher, dass jeder Knoten nur einmal in die Queueeingefugt und aus ihr entnommen wird.

Fur die Warteschlangenoperationen brauchen wir also O(V ).

Die Adjazenzliste jedes Knotens wird nur einmal gepruft(wenn der Knoten aus der Queue entnommen wird).

Die Summe aller Adjazenzlisten ist in Θ(E ), folglich benotigtdas Prufen der Adjazenzlisten O(E ).

Initialisierung geht auch in O(V ).

Insgesamt ergibt sich so: O(V + E ), was linear in der Großeder Adjazenzliste ist.

Anmerkung

Diese Laufzeitanalyse stimmt nur, wenn der Graph durch Adjazenz-listen gegeben ist!

Frank Heitmann [email protected] 51/138

Page 85: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Analyse (Laufzeit)

Zu Anfang ist jeder Knoten weiß. Der Test in der Schleifestellt daher sicher, dass jeder Knoten nur einmal in die Queueeingefugt und aus ihr entnommen wird.

Fur die Warteschlangenoperationen brauchen wir also O(V ).

Die Adjazenzliste jedes Knotens wird nur einmal gepruft(wenn der Knoten aus der Queue entnommen wird).

Die Summe aller Adjazenzlisten ist in Θ(E ), folglich benotigtdas Prufen der Adjazenzlisten O(E ).

Initialisierung geht auch in O(V ).

Insgesamt ergibt sich so: O(V + E ), was linear in der Großeder Adjazenzliste ist.

Anmerkung

Diese Laufzeitanalyse stimmt nur, wenn der Graph durch Adjazenz-listen gegeben ist!

Frank Heitmann [email protected] 51/138

Page 86: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Analyse (Laufzeit)

Zu Anfang ist jeder Knoten weiß. Der Test in der Schleifestellt daher sicher, dass jeder Knoten nur einmal in die Queueeingefugt und aus ihr entnommen wird.

Fur die Warteschlangenoperationen brauchen wir also O(V ).

Die Adjazenzliste jedes Knotens wird nur einmal gepruft(wenn der Knoten aus der Queue entnommen wird).

Die Summe aller Adjazenzlisten ist in Θ(E ), folglich benotigtdas Prufen der Adjazenzlisten O(E ).

Initialisierung geht auch in O(V ).

Insgesamt ergibt sich so: O(V + E ), was linear in der Großeder Adjazenzliste ist.

Anmerkung

Diese Laufzeitanalyse stimmt nur, wenn der Graph durch Adjazenz-listen gegeben ist!

Frank Heitmann [email protected] 51/138

Page 87: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Analyse (Korrektheit)

Die Korrektheit kann man mittels einer Schleifeninvarianten zeigen,die besagt, dass die Queue aus der Menge der grauen Knotenbesteht.

Alternativ kann man mit mehreren Lemmata zeigen, dass dieermittelten Abstande tatsachlich die kurzesten sind und ein Baumentsteht. Man erhalt so (siehe [Cormen]):

Satz

Gegeben G = (V ,E ) (gerichtet oder ungerichtet) und s ∈ V . BFSermittelt jeden von s aus erreichbaren Knoten v. Bei Terminierunggilt d [v ] = δ(s, v) fur alle v . Zudem ist fur jeden von s auserreichbaren Knoten v (v 6= s) einer der kurzesten Pfade von snach v ein kurzester Pfad von s nach π[v ] gefolgt von der Kante(π[v ], v).

Frank Heitmann [email protected] 52/138

Page 88: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Analyse (Korrektheit)

Die Korrektheit kann man mittels einer Schleifeninvarianten zeigen,die besagt, dass die Queue aus der Menge der grauen Knotenbesteht.

Alternativ kann man mit mehreren Lemmata zeigen, dass dieermittelten Abstande tatsachlich die kurzesten sind und ein Baumentsteht. Man erhalt so (siehe [Cormen]):

Satz

Gegeben G = (V ,E ) (gerichtet oder ungerichtet) und s ∈ V . BFSermittelt jeden von s aus erreichbaren Knoten v. Bei Terminierunggilt d [v ] = δ(s, v) fur alle v . Zudem ist fur jeden von s auserreichbaren Knoten v (v 6= s) einer der kurzesten Pfade von snach v ein kurzester Pfad von s nach π[v ] gefolgt von der Kante(π[v ], v).

Frank Heitmann [email protected] 52/138

Page 89: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breitensuche - Ergebnis

Zur Betonung:

Satz

In einem ungewichteten Graphen (bzw. einem Graph in dem jedeKante das Gewicht 1 hat) ermittelt der BFS-Algorithmus fur jedenKnoten v den kurzesten Abstand zu s sowie einen kurzesten Pfadvon s zu v (den man erhalt indem man den π[v ] ruckwarts folgt).Der Algorithmus lauft in O(V + E ), wenn der Graph alsAdjazenzliste gegeben ist.

Beweis.

Beweise kann man im [Cormen] nachlesen (ca. 3 Seiten).

Frank Heitmann [email protected] 53/138

Page 90: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Die Idee

Bei der Tiefensuche geht man einfach immer weiter nochungeprufte Kanten entlang, so lange dies moglich ist. Mein folgtalso ’einem Pfad’ so lange es moglich ist. Erst wenn man einenKnoten erreicht von dem aus man nur bereits besuchte Knotenerreichen kann, geht man einen Schritt zuruck.

Bleiben unentdeckte Knoten ubrig wahlt man diese als neueStartknoten. So kann sich (bei einem unzusammenhangendenGraphen) ein Tiefensuchwald ergeben. (Die Breitensuche kann manauch so anpassen, aber typischerweise werden die Algorithmen sobenutzt.)

Frank Heitmann [email protected] 54/138

Page 91: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Die Idee

Starte mit Knoten s in einem Stack S .

Wiederhole solange S nicht leer...

Nimm obersten Knoten v aus S .(Bearbeite diesen und Farbe diesen so, dass er nicht wiederbesucht wird.)Tue alle Nachbarn von v , die bisher nicht besucht wurden aufden Stack.

Anmerkung

Durch den Stack wird sichergestellt, dass die Knoten ’in der Tiefe’besucht werden.

Frank Heitmann [email protected] 55/138

Page 92: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Die Idee

Starte mit Knoten s in einem Stack S .

Wiederhole solange S nicht leer...

Nimm obersten Knoten v aus S .(Bearbeite diesen und Farbe diesen so, dass er nicht wiederbesucht wird.)Tue alle Nachbarn von v , die bisher nicht besucht wurden aufden Stack.

Anmerkung

Durch den Stack wird sichergestellt, dass die Knoten ’in der Tiefe’besucht werden.

Frank Heitmann [email protected] 55/138

Page 93: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Idee

Algorithmus 4 DFS(G , s)

1: farbe[s] = pink2: S = ∅, push(S , s)3: while S 6= ∅ do4: u = pop(S)5: for each v ∈ Adj [u] do6: if farbe[v ] == weiss then7: farbe[v ] = pink8: push(S , v)9: end if

10: end for11: farbe[u] = schwarz12: end while

Frank Heitmann [email protected] 56/138

Page 94: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefen- vs. Breitensuche

Beobachtung

Der einzige Unterschied zur Breitensuche ist die Benutzung einesStacks statt einer Queue!

Frank Heitmann [email protected] 57/138

Page 95: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Zur Nachbereitung

Anmerkung (zur Nachbereitung)

Wie bei der Breitensuche verzichten wir auch im nachfolgenden Bei-spiel auf die Angabe der Adjazenzlisten.

Frank Heitmann [email protected] 58/138

Page 96: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - im Graphen

3

102

5

6

87

9

A:

s

S:

Frank Heitmann [email protected] 59/138

Page 97: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - im Graphen

3

102

5

6

87

9

6A:

s

3 2S:

Frank Heitmann [email protected] 60/138

Page 98: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - im Graphen

3

102

5

6

87

9

6 8A:

s

9 7 3 2S:

Frank Heitmann [email protected] 61/138

Page 99: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - im Graphen

3

102

5

6

87

9

6 8 9A:

s

3 2S:

Frank Heitmann [email protected] 62/138

Page 100: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - im Graphen

3

102

5

6

87

9

6 8 9 7 5A:

s

3 2S:

Frank Heitmann [email protected] 63/138

Page 101: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - im Graphen

3

102

5

6

87

9

6 8 9 7 5A:

s

2S:

Frank Heitmann [email protected] 64/138

Page 102: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - im Graphen

3

102

5

6

87

9

6 8 9 7 5 3 10 2A:

s

S:

Frank Heitmann [email protected] 65/138

Page 103: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - mehr Informationen

Reichern wir nun die Tiefensuche etwas an, so konnen wir mehrInformationen gewinnen, was insb. spater nutzlich wird. (Derfolgende Algorithmus ist wieder wie im [Cormen].)

Anmerkung

Farben: weiss heißt ’noch nicht besucht’, grau ’besucht, abernoch unbesuchte Nachbarn’, schwarz ’besucht, alle Nachbarnverarbeitet’.

d [u] ist ’discovery’ Zeit, f [u] ist ’finished’ Zeit. (Beachte:Immer wenn d [u] oder f [u] gesetzt werden, wird vorher dieZeit erhoht!)

π[u] ist der Vorganger von u in diesem Tiefensuchbaum.

Frank Heitmann [email protected] 66/138

Page 104: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - mehr Informationen

Reichern wir nun die Tiefensuche etwas an, so konnen wir mehrInformationen gewinnen, was insb. spater nutzlich wird. (Derfolgende Algorithmus ist wieder wie im [Cormen].)

Anmerkung

Farben: weiss heißt ’noch nicht besucht’, grau ’besucht, abernoch unbesuchte Nachbarn’, schwarz ’besucht, alle Nachbarnverarbeitet’.

d [u] ist ’discovery’ Zeit, f [u] ist ’finished’ Zeit. (Beachte:Immer wenn d [u] oder f [u] gesetzt werden, wird vorher dieZeit erhoht!)

π[u] ist der Vorganger von u in diesem Tiefensuchbaum.

Frank Heitmann [email protected] 66/138

Page 105: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefenensuche - Initialisierung

Algorithmus 5 DFS(G ) - Initphase und Aufruf

1: for each u ∈ V (G ) do2: farbe[u] = weiss, π[u] = nil

3: end for4: zeit = 05: for each u ∈ V (G ) do6: if farbe[u] == weiss then7: DFS VISIT(u)8: end if9: end for

Frank Heitmann [email protected] 67/138

Page 106: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Hauptroutine

Algorithmus 6 DFS VISIT(u) - Teil 2, Hauptteil

1: farbe[u] = grau2: zeit = zeit + 13: d [u] = zeit4: for each v ∈ Adj [u] do5: if farbe[v ] == weiss then6: π[v ] = u7: DFS VISIT(v)8: end if9: end for

10: farbe[u] = schwarz11: zeit = zeit + 112: f [u] = zeit

Frank Heitmann [email protected] 68/138

Page 107: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Zur Nachbereitung

Anmerkung (zur Nachbereitung)

Fur das nachfolgende Beispiel verzichten wir erneut auf die Angabeder Adjazenzlisten.Die Zahlen x/y in einem Knoten v sind die Werte d [v ](= x) undf [v ](= y). Die Farbe ’grun’ in den Bildern entspricht wieder derFarbe ’schwarz’ im Quellcode, dicke Kanten stellen wieder Baum-kanten dar. Die gestrichelten Kanten, sind entdecke Kanten, die alsRuckwartskanten (B) oder Querkanten (C) klassifiziert worden. Fer-ner gibt es Vorwartskanten, die im Beispiel aber nicht auftreten. EineKante von s zu b ware bei ansonsten gleichen Ablauf (d.h. wenn zu-erst die Kante (s, a) gewahlt wird) eine Vorwartskante.

Frank Heitmann [email protected] 69/138

Page 108: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Beispiel

sa

b

c

ed

Frank Heitmann [email protected] 70/138

Page 109: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Beispiel

1/sa

b

c

ed

Frank Heitmann [email protected] 71/138

Page 110: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Beispiel

1/2/sa

b

c

ed

Frank Heitmann [email protected] 72/138

Page 111: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Beispiel

1/2/

3/

sa

b

c

ed

Frank Heitmann [email protected] 73/138

Page 112: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Beispiel

1/2/

3/

sa

b

c

ed

B

Frank Heitmann [email protected] 74/138

Page 113: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Beispiel

1/2/

3/4

sa

b

c

ed

B

Frank Heitmann [email protected] 75/138

Page 114: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Beispiel

1/2/5

3/4

sa

b

c

ed

B

Frank Heitmann [email protected] 76/138

Page 115: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Beispiel

1/2/5

3/4

6/sa

b

c

ed

B

Frank Heitmann [email protected] 77/138

Page 116: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Beispiel

1/2/5

3/4

6/sa

b

c

ed

B C

Frank Heitmann [email protected] 78/138

Page 117: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Beispiel

1/2/5

3/4

6/7sa

b

c

ed

B C

Frank Heitmann [email protected] 79/138

Page 118: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Beispiel

1/82/5

3/4

6/7sa

b

c

ed

B C

Frank Heitmann [email protected] 80/138

Page 119: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Beispiel

1/82/5

3/4

6/7

9/

sa

b

c

ed

B C

Frank Heitmann [email protected] 81/138

Page 120: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Beispiel

1/82/5

3/4

10/

6/7

9/

sa

b

c

ed

B C

Frank Heitmann [email protected] 82/138

Page 121: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Beispiel

1/82/5

3/4

10/11

6/7

9/

sa

b

c

ed

B C

Frank Heitmann [email protected] 83/138

Page 122: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Beispiel

1/82/5

3/4

10/11

6/7

9/

sa

b

c

ed

B C

C

Frank Heitmann [email protected] 84/138

Page 123: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Beispiel

1/82/5

3/4

10/11

6/7

9/12

sa

b

c

ed

B C

C

Frank Heitmann [email protected] 85/138

Page 124: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Besondere Kanten

Man kann bei der Tiefensuche die Kanten klassifizieren jenachdem, welche Farbe der Knoten v bei einer Kanten (u, v) hat(u ist der Knoten der gerade bearbeitet wird, v ist in Adj [u]):

farbe[v ] = weiss: Baumkante.

farbe[v ] = grau: Ruckwartskante.

farbe[v ] = schwarz: Vorwarts- oder Querkante.

Vorwartskante, falls d [u] < d [v ].Querkante, falls d [u] > d [v ].

Anmerkung (zur Nachbereitung)

Im Beispiel eben ist dies bereits geschehen!

Frank Heitmann [email protected] 86/138

Page 125: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Besondere Kanten

Dabei ist

Baumkante. Kanten, die zum Baum gehoren. v wurde bei derSondierung der Kante (u, v) entdeckt (erstmalig besucht).

Ruckwartskante. Kante (u, v), die u mit einem Vorfahren vim Tiefensuchbaum verbindet.

Vorwartskante. (Nicht-Baum-)Kante (u, v), die u mit einemNachfahre in v im Tiefensuchbaum verbindet.

Querkanten. Die ubrigen Kanten. Im gleichenTiefensuchbaum, wenn der eine Knoten nicht Vorfahre desanderen ist oder zwischen zwei Knoten verschiedenerTiefensuchbaume (im Wald).

Anmerkung

Bei einem ungerichteten Graphen gibt es nur Baum- und Ruckwarts-kanten.

Frank Heitmann [email protected] 87/138

Page 126: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Analyse

Satz

Die Tiefensuche ist korrekt und ihre Laufzeit ist wieder inO(V + E ).

Frank Heitmann [email protected] 88/138

Page 127: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breiten- und Tiefensuche - Zusammenfassung

Zusammenfassung

Breitensuche nutzt eine Queue, Tiefensuche einen Stack. (DieTiefensuche wie im [Cormen] kommt ohne Stack aus, arbeitetdafur aber rekursiv und mit Zeitstempeln.)

Beide Operationen laufen in Θ(V + E ), wenn der Graphmittels Adjazenzlisten gegeben ist.

Die Breitensuche hat (meist) nur einen Startknoten. Sie wirdoft verwendet, um kurzeste Abstande und denVorgangerteilgraphen zu ermitteln.

Die Tiefensuche ermittelt einen Tiefensuchwald (mehrereStartknoten). Sie wird oft als Unterroutine in anderenAlgorithmen verwendet.

Frank Heitmann [email protected] 89/138

Page 128: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breiten- und Tiefensuche - Zusammenfassung

Zusammenfassung

Breitensuche nutzt eine Queue, Tiefensuche einen Stack. (DieTiefensuche wie im [Cormen] kommt ohne Stack aus, arbeitetdafur aber rekursiv und mit Zeitstempeln.)

Beide Operationen laufen in Θ(V + E ), wenn der Graphmittels Adjazenzlisten gegeben ist.

Die Breitensuche hat (meist) nur einen Startknoten. Sie wirdoft verwendet, um kurzeste Abstande und denVorgangerteilgraphen zu ermitteln.

Die Tiefensuche ermittelt einen Tiefensuchwald (mehrereStartknoten). Sie wird oft als Unterroutine in anderenAlgorithmen verwendet.

Frank Heitmann [email protected] 89/138

Page 129: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breiten- und Tiefensuche - Zusammenfassung

Zusammenfassung

Breitensuche nutzt eine Queue, Tiefensuche einen Stack. (DieTiefensuche wie im [Cormen] kommt ohne Stack aus, arbeitetdafur aber rekursiv und mit Zeitstempeln.)

Beide Operationen laufen in Θ(V + E ), wenn der Graphmittels Adjazenzlisten gegeben ist.

Die Breitensuche hat (meist) nur einen Startknoten. Sie wirdoft verwendet, um kurzeste Abstande und denVorgangerteilgraphen zu ermitteln.

Die Tiefensuche ermittelt einen Tiefensuchwald (mehrereStartknoten). Sie wird oft als Unterroutine in anderenAlgorithmen verwendet.

Frank Heitmann [email protected] 89/138

Page 130: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breiten- und Tiefensuche - Zusammenfassung

Zusammenfassung

Breitensuche nutzt eine Queue, Tiefensuche einen Stack. (DieTiefensuche wie im [Cormen] kommt ohne Stack aus, arbeitetdafur aber rekursiv und mit Zeitstempeln.)

Beide Operationen laufen in Θ(V + E ), wenn der Graphmittels Adjazenzlisten gegeben ist.

Die Breitensuche hat (meist) nur einen Startknoten. Sie wirdoft verwendet, um kurzeste Abstande und denVorgangerteilgraphen zu ermitteln.

Die Tiefensuche ermittelt einen Tiefensuchwald (mehrereStartknoten). Sie wird oft als Unterroutine in anderenAlgorithmen verwendet.

Frank Heitmann [email protected] 89/138

Page 131: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breiten- und Tiefensuche - Erweiterungen

In der ganz grundlegenden Variante werden mit derBreiten- bzw. Tiefensuche nur Knoten in einer bestimmtenReihenfolge besucht (wobei die genaue Reihenfolge noch von derReihenfolge, in der die Nachbarn eines Knotens gegeben sind,abhangt). Zudem kann

die Breitensuche mit ’distance’-Stempeln angereichert werden,um so die kurzesten Abstande von s zu ermitteln und

die Tiefensuche mit ’discovery’ und ’finished’ Zeitangereichert werden. So konnen die Kanten klassifiziertwerden und man kann z.B. Kreise finden und noch andereDinge tun. Wie oben kann man mit dem Vorganger einenTiefensuchbaum konstruieren.

Frank Heitmann [email protected] 90/138

Page 132: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Wichtige Eigenschaften

Es folgen einige wichtige - und nutzliche - Eigenschaften derTiefensuche...

(Beweise kann man im [Cormen] nachlesen. Nur ca. eine Seite)

Frank Heitmann [email protected] 91/138

Page 133: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Klammerungstheorem (1/2)

1/82/5

3/4

10/11

6/7

9/12

sa

b

c

ed

B C

C

Satz

Bei der Tiefensuche erfullt jedes Paar u, v von Knoten genau eineder folgenden Bedingungen:

1. Die Intervalle [d [u], f [u]] und [d [v ], f [v ]] sind paarweisedisjunkt und keiner der Knoten u und v ist Nachfahre desanderen.

Frank Heitmann [email protected] 92/138

Page 134: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Klammerungstheorem (2/2)

1/82/5

3/4

10/11

6/7

9/12

sa

b

c

ed

B C

C

Satz

Bei der Tiefensuche erfullt jedes Paar u, v von Knoten genau eineder folgenden Bedingungen:

2. Das Intervall [d [u], f [u]] ist vollstandig im Intervall [d [v ], f [v ]]enthalten und u ist im Tiefensuchwald ein Nachfahre von v.

3. Wie 2. nur mit u und v vertauscht.

Frank Heitmann [email protected] 93/138

Page 135: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Intervalle der Nachfahren

1/82/5

3/4

10/11

6/7

9/12

sa

b

c

ed

B C

C

Satz

Im Tiefensuchwald von G ist v genau dann ein echter Nachfahrevon u, wenn d [u] < d [v ] < f [v ] < f [u] gilt.

Frank Heitmann [email protected] 94/138

Page 136: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Tiefensuche - Theorem der weißen Pfade

1/2/sa

b

c

ed

Satz

Im Tiefensuchwald von G ist v genau dann ein Nachfahre von u,wenn v zur Zeit d [u] (u wird entdeckt) von u aus entlang eines nuraus weißen Knoten bestehenden Pfades erreichbar ist.

Frank Heitmann [email protected] 95/138

Page 137: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Problemstellung

Definition (Bestimmung starker Zusammenhangskomponenten)

Eingabe: Gegeben ein gerichteter Graph G = (V ,E ).Gesucht: Die starken Zusammenhangskomponenten (SCCs) desGraphen, d.h. maximale Menge C ⊆ V derart, dass fur jedes Paaru, v ∈ C sowohl u ⇒ v als auch v ⇒ u gilt (es gibt einen Pfad vonu nach v und andersherum).

Anmerkung

Dieses Problem tritt oft bei gerichteten Graphen auf. Zunachst wirdder Graph in seine starken Zusammenhangskomponenten zerlegt unddann werden diese separat betrachtet. (Oft werden die Losungen an-schließend noch entsprechend der Verbindungen zwischen den ein-zelnen Komponenten zusammengefugt.)

Frank Heitmann [email protected] 96/138

Page 138: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Ein Beispiel

sa

b

c

ed f

Frank Heitmann [email protected] 97/138

Page 139: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Ein Beispiel

sa

b

c

ed f

Frank Heitmann [email protected] 98/138

Page 140: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Ein Beispiel

sa

b

c

ed f

Frank Heitmann [email protected] 99/138

Page 141: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Komponentengraph

Oft ist auch der Komponentengraph gesucht...

Definition

Sei G ein gerichteter Graph mit ZusammenhangskomponentenC1, . . . ,Ck . Der Komponentengraph G scc = (V scc ,E scc) istdefiniert durch V scc = {v1, . . . , vk} (jeder Knoten vi reprasentiertdabei eine Zusammenhangskomponente Ci ) und (vi , vj) ist genaudann eine Kante in E scc , wenn es in G einen Knoten x ∈ Ci , einenKnoten y ∈ Cj und eine Kante (x , y) gibt.

Anmerkung

Der Komponentengraph lasst sich aus den SCCs ermitteln.

Frank Heitmann [email protected] 100/138

Page 142: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Komponentengraph - Beispiel

sa

b

c

ed f

Frank Heitmann [email protected] 101/138

Page 143: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Komponentengraph - Beispiel

sabc

de f

Frank Heitmann [email protected] 102/138

Page 144: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Der Komponentengraph - Beispiel

sabc

de f

Frank Heitmann [email protected] 103/138

Page 145: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

SCC - Algorithmus und Idee

Algorithmus 7 SCC(G )

1: Aufruf von DFS(G ) zur Berechnung der Endzeiten f [v ].2: Berechne GT (transponierter Graph).3: Aufruf von DFS(GT ), betrachte in der Hauptschleife von DFS

die Knoten jedoch in der Reihenfolge fallender f [v ] (in Zeile 1berechnet).

4: Die Knoten jedes in Zeile 3 berechneten Baumes sind eine (se-parate) strenge Zusammenhangskomponente.

Anmerkung

Der zu einem Graphen G = (V ,E ) transponierte Graph ist definiertdurch GT = (V ,ET ) mit ET = {(u, v) | (v , u) ∈ E}. Ist G inAdjazenzlisten-Darstellung gegeben, kann GT in Zeit O(V + E )berechnet werden.

Frank Heitmann [email protected] 104/138

Page 146: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

SCC - Beispiel

sa

b

c

ed f

Frank Heitmann [email protected] 105/138

Page 147: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

SCC - Beispiel

1/86/7

3/4

9/14

2/5

10/13

sa

b

c

ed11/12

f

Frank Heitmann [email protected] 106/138

Page 148: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

SCC - Beispiel

1/86/7

3/4

9/14

2/5

10/13

sa

b

c

ed11/12

f

Frank Heitmann [email protected] 107/138

Page 149: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

SCC - Beispiel

1/86/7

3/4

9/14

2/5

10/13

sa

b

c

ed11/12

f

1/ 2/

Frank Heitmann [email protected] 108/138

Page 150: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

SCC - Beispiel

1/86/7

3/4

9/14

2/5

10/13

sa

b

c

ed11/12

f

1/ 2/

Frank Heitmann [email protected] 109/138

Page 151: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

SCC - Beispiel

1/86/7

3/4

9/14

2/5

10/13

sa

b

c

ed11/12

f

1/4 2/3

Frank Heitmann [email protected] 110/138

Page 152: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

SCC - Beispiel

1/86/7

3/4

9/14

2/5

10/13

sa

b

c

ed11/12

f

1/4 2/3 5/

Frank Heitmann [email protected] 111/138

Page 153: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

SCC - Beispiel

1/86/7

3/4

9/14

2/5

10/13

sa

b

c

ed11/12

f

1/4 2/3 5/6

Frank Heitmann [email protected] 112/138

Page 154: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

SCC - Beispiel

1/86/7

3/4

9/14

2/5

10/13

sa

b

c

ed11/12

f

1/4 2/3 5/6

7/

Frank Heitmann [email protected] 113/138

Page 155: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

SCC - Beispiel

1/86/7

3/4

9/14

2/5

10/13

sa

b

c

ed11/12

f

1/4 2/3 5/6

7/14 9/10

8/13

11/12

Frank Heitmann [email protected] 114/138

Page 156: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

SCC - Beispiel

1/86/7

3/4

9/14

2/5

10/13

sa

b

c

ed11/12

f

1/4 2/3 5/6

7/14 9/10

8/13

11/12

Frank Heitmann [email protected] 115/138

Page 157: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

SCC - Beispiel

1/86/7

3/4

9/14

2/5

10/13

sa

b

c

ed11/12

f

1/4 2/3 5/6

7/14 9/10

8/13

11/12

Frank Heitmann [email protected] 116/138

Page 158: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

SCC - Analyse

Satz

G und GT haben die gleichen SCCs.

Seien C und C ′ zwei verschiedene SCCs eines DAGG = (V ,E ).

Seien u, v ∈ C und u′, v ′ ∈ C ′. Gibt es in G einen Pfadu ⇒ u′, so gibt es keinen Pfad v ′ ⇒ v in G .Gibt es (u, v) ∈ E mit u ∈ C und v ∈ C ′, so giltf (C ) > f (C ′).Gibt es (u, v) ∈ ET mit u ∈ C und v ∈ C ′, so giltf (C ) < f (C ′).

SCC(G ) ist korrekt und hat eine Laufzeit in Θ(V + E ).

Fur Interessierte

Interessierte Leser finden die Beweise in Kapitel 22 im [Cormen](ca. 3 Seiten)

Frank Heitmann [email protected] 117/138

Page 159: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Anhang

Anhang

Graphen

Frank Heitmann [email protected] 118/138

Page 160: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Einfuhrung

Graphen sind eine grundlegende Datenstruktur, die in vielenBereichen der Informatik (und auch in anderen Bereichen)Anwendung findet. Man kann ohne Einschrankung zwei Elementeeiner Mengen (den Knoten) in Beziehung setzen (durch eineKante).

Anmerkung

Erlaubt man verschiedene Kanten-’Typen’, so kann man sogar ver-schiedene Beziehungen ausdrucken.

Frank Heitmann [email protected] 119/138

Page 161: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Definitionen

Definition

Ein Graph ist ein Tupel G = (V ,E ) bestehend aus einer Menge V(auch V (G )) von Knoten oder Ecken und einer Menge E (auchE (G )) von Kanten.Ist G ein ungerichteter Graph, so ist

E ⊆ {{v1, v2} | v1, v2 ∈ V , v1 6= v2},

ist G ein gerichteter Graph, so ist

E ⊆ V 2.

Ist |E | viel kleiner als |V |2, so nennt man den Graphen dunnbesetzt. Ist |E | nahe an |V |2, so spricht man von dicht besetztenGraphen.

Frank Heitmann [email protected] 120/138

Page 162: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Gewichteter Graph

Definition

Bei einem gewichteten Graphen ist neben dem Graph G = (V ,E )(gerichtete oder ungerichtet) noch eine Gewichtsfunktionw : E → R+ gegeben, die jeder Kante e ∈ E ihre Kosten w(e)zuweist.

Frank Heitmann [email protected] 121/138

Page 163: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Definitionen

Definition

Sind je zwei Knoten von G mit einer Kante verbunden, so istG ein vollstandiger Graph. Bei n Knoten: Kn.

Eine Menge paarweise nicht benachbarter Knoten nennt manunabhangig.

Der Grad d(v) eines Knotens v ist die Anzahl mit v inzidenterKanten.

Die Menge der Nachbarn eines Knotens v bezeichnet man mitN(v) (hier gilt d(v) = |N(v)|).

δ(G ) ist der Minimalgrad von G , ∆(G ) der Maximalgrad.

Frank Heitmann [email protected] 122/138

Page 164: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Definitionen

Definition

Ein Weg ist ein nicht leerer Graph P = (V ,E ) mitV = {x0, x1, . . . , xk}, E = {x0x1, x1x2, . . . , xk−1xk}, wobei diexi paarweise verschieden sind. x0 und xk sind die Enden vonP, sie sind durch P verbunden. Die Anzahl der Kanten einesWeges ist seine Lange.

Ist P wie oben ein Weg, so ist P + xkx0 ein Kreis (der Langek + 1).

Der Abstand zweier Knoten x und y voneinander wird mitd(x , y) bezeichnet und ist die geringste Lange einesx-y -Weges.

Frank Heitmann [email protected] 123/138

Page 165: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Definitionen

Definition

Seien G = (V ,E ) und G ′ = (V ′,E ′) Graphen. Gilt V ′ ⊆ Vund E ′ ⊆ E , so nennt man G ′ einen Teilgraphen von G .

Ist G = (V ,E ) ein Graph und V ′ ⊆ V , so nennt man denGraphen G ′ = (V ′,E ′) mit E ′ = {{v1, v2} ∈ E | v1, v2 ∈ V ′}den von V ′ induzierten Graphen.

Frank Heitmann [email protected] 124/138

Page 166: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Darstellung von Graphen

Ein Graph G = (V ,E ) wird dargestellt indem man seine Knotenals Punkte und die Tupel oder Mengen aus E als (gerichtete)Kanten zwischen die Knoten einzeichnet.

Im Computer speichert man einen Graphen meist mittels einerAdjazenzmatrix oder einer Adjazenzliste. (Man kann die Mengen Vund E aber auch direkt speichern.)

Anmerkung

Bei Graphen schreibt man (und wir) oft O(V + E ) etc., wennO(|V |+ |E |) gemeint ist. Man beacht zudem, dass dies die Komple-xitat bzgl. der Kenngroßen V und E ausdruckt und nicht umbedingtdie Große der Eingabe wiederspiegelt!

Frank Heitmann [email protected] 125/138

Page 167: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Darstellung von Graphen - Adjazenzmatrix

x

wv

y

vv

w

w

x

x

y

y

V = {v ,w , x , y}E = {{v ,w}, {v , x}, {v , y}, {w , x}, {x , y}}

Frank Heitmann [email protected] 126/138

Page 168: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Darstellung von Graphen - Adjazenzmatrix

0

x0

wv

y 00

vv

w

w

x

x

y

y

V = {v ,w , x , y}E = {{v ,w}, {v , x}, {v , y}, {w , x}, {x , y}}

Frank Heitmann [email protected] 127/138

Page 169: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Darstellung von Graphen - Adjazenzmatrix

0 1 1 1

x1 0

wv

y 1 01 0

vv

w

w

x

x

y

y

V = {v ,w , x , y}E = {{v ,w}, {v , x}, {v , y}, {w , x}, {x , y}}

Frank Heitmann [email protected] 128/138

Page 170: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Darstellung von Graphen - Adjazenzmatrix

0 1 1 1

x1 0 1 0

wv

y 1 1 0 11 0 1 0

vv

w

w

x

x

y

y

V = {v ,w , x , y}E = {{v ,w}, {v , x}, {v , y}, {w , x}, {x , y}}

Frank Heitmann [email protected] 129/138

Page 171: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Darstellung von Graphen - Adjazenzmatrix

0 1 1 1

x1 0 1 0

wv

y 1 1 0 11 0 1 0

vv

w

w

x

x

y

y

Bei einer Adjazenzmatrix hat man eine n × n-Matrix, bei der ander Stelle (i , j) genau dann eine 1 steht, wenn vi und vj verbundensind.

Der Speicherplatzbedarf ist in Θ(V 2) (unabhangig von derKantenzahl).

Frank Heitmann [email protected] 130/138

Page 172: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Darstellung von Graphen - Adjazenzlisten

x

wv

y

v

w

x

y

Frank Heitmann [email protected] 131/138

Page 173: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Darstellung von Graphen - Adjazenzlisten

x

wv

y

v

w

x

y

w x y

Frank Heitmann [email protected] 132/138

Page 174: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Darstellung von Graphen - Adjazenzlisten

x

wv

y

v

w

x

y

w x y

v x

Frank Heitmann [email protected] 133/138

Page 175: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Darstellung von Graphen - Adjazenzlisten

x

wv

y

v

w

x

y

w x y

x v

y v w

v x

Frank Heitmann [email protected] 134/138

Page 176: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Darstellung von Graphen - Adjazenzlisten

x

wv

y

v

w

x

y

w x y

x v

y v w

v x

Bei der Adjazenzlistendarstellung haben wir ein Array von |V |Listen, fur jeden Knoten eine. Die Adjazenzliste Adj [v ] zu einemKnoten v enthalt alle Knoten, die mit v adjazent sind.

Bei einem gerichteten Graphen ist die Summe aller Adjazenzlisten|E |, bei einem ungerichteten Graphen |2E |. DerSpeicherplatzbedarf ist folglich Θ(V + E ).

Frank Heitmann [email protected] 135/138

Page 177: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Darstellung von Graphen - Zusammenfassung

Adjazenzmatrix: |V | × |V |-Matrix A = (aij) mit aij = 1 falls(i , j) ∈ E und 0 sonst. Große in Θ(V 2).

Adjazenzliste: Liste Adj [v ] fur jeden Knoten v ∈ V in der dieKnoten, die mit v adjazent sind gespeichert sind. Große inΘ(V + E ).

Bei einer Adjazenzmatrix kann man schnell herausfinden, obzwei Knoten benachbart sind oder nicht. Dafur ist eslangsamer alle Knoten zu bestimmen, die mit einem Knotenbenachbart sind. (Bei Adjazenzlisten genau andersherum.)

Beide Darstellungen sind ineinander transformierbar.

Beide Darstellungen sind leicht auf den Fall eines gewichtetenGraphen anpassbar.

Frank Heitmann [email protected] 136/138

Page 178: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Die Struktur eines Graphen

Oft mochte man etwas grundlegendes uber die Struktur einesgegebenen Graphen erfahren. Hierzu ist es zunachst praktischAlgorithmen zu haben, die den Graphen durchwandern, d.h. insystematischer Weise die Kanten entlangwandern und die Knotenbesuchen. Oft ist es auch nutzlich einen Spannbaum zu ermitteln.

Definition

Ein Spannbaum ist ein Teilgraph T eines Graphen G , wobei T einBaum ist und alle Knoten von G enthalt.

Frank Heitmann [email protected] 137/138

Page 179: Spezifikation und Verifikation Kapitel 2 0.2cm CTL Model ... · PDF fileWiederholung Model Checking CTL Spezi kation und Veri kation Kapitel 2 CTL Model Checking Frank Heitmann heitmann@

WiederholungModel Checking CTL

Grober AblaufDer EG Operator

Breiten- und Tiefensuche

Die Breiten- und Tiefensuche in einem Graphen erreichen (imPrinzip) beide Ziele! Es wird zwar i.A. nicht der minimaleSpannbaum ermittelt, doch dazu gibt es speziellere Algorithmen.

Breiten- und Tiefensuche sind oft ’Urtypen’ fur weitereGraphalgorithmen entweder

als wichtige Subroutine oder

als ’Ideengeber’

Beides wurde im Hauptteil dieser Vorlesung behandelt.

Frank Heitmann [email protected] 138/138