KKöönnen Computer programmieren?nnen Computer programmieren?Bernd Finkbeiner, Universität des Saarlandes
Alonzo Church (1903-1995)
“Given a requirement which a circuit is to
satisfy, we may suppose the requirement
expressed in some suitable logistic system
which is an extension of restricted recursive
arithmetic. The synthesis problem is then to
find recursion equivalences representing a
circuit that satisfies the given requirement (or
alternatively, to determine that there is no
such circuit).”
(Cornell University, 1957)
S7Synth
Meilensteine
1940: Universelle Berechenbarkeit Alan Turing, John von Neumann, Alonzo Church,…
1960: ω-AutomatentheorieRichard Büchi, Robert McNaughton, Michael Rabin,…
1980: Temporale LogikAmir Pnueli, Joseph Sifakis, Ed Clarke, Allan Emerson,…
Heute: Verteilte Systeme
1940
Universelle Berechenbarkeit
...0 1 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 1…
0
1
2
3
4
5
Zustand 0, lese 1 ⇒ schreibe 0, bewege nach rechts,
Zustand 1, lese 0 ⇒ schreibe 0, bewege nach links,
Zustand 2, lese 1 ⇒ schreibe 0, bewege nach rechts,
Zustand 2, lese 0 ⇒ schreibe 1, bewege nach rechts.
Alan Mathison Turing(1912-1954)
Turing-Maschine M
M hält! M hält nicht!
Halteproblem
unentscheidbar
Turing-Maschine M
Spezifikation S
Implementierung von S S unrealisierbar!
Programmsynthese
Spec S: Implementierung soll sich genau wie M verhalten
und anhalten.
M hält! M hält nicht.
unentscheidbar
“In other words, you can build an organ
which can do anything that can be done, but
you cannot build an organ which tells you
whether it can be done.”
(John von Neumann, Theory of Self-
Reproducing Automata)
John von Neumann(1903-1957)
1960
ω-Automatentheorie
Rohteile
Ban
d 1
Ban
d 2
Transporter
Maschine 1 Maschine 2
Verhalten = unendliche Folge von Beobachtungen:
B1,B2 – B1M1, B2M2 – B1,B2 – B1M1,B2M2 – B1,B2 – ….
Rohteile
Ban
d 1
Ban
d 2
Transporter
Maschine 1 Maschine 2
Verhalten = unendliche Folge von Beobachtungen:
B1,B2 – B1M1, B2M2 – B1,B2 – B1M1,B2M2 – B1,B2 – ….
B1 – B1M1 – B1 – B1M1 – B1 – B1M1 – ….
Rohteile
Ban
d 1
Ban
d 2
Transporter
Maschine 1 Maschine 2
Verhalten = unendliche Folge von Beobachtungen:
B1,B2 – B1M1, B2M2 – B1,B2 – B1M1,B2M2 – B1,B2 – ….
B1 – B1M1 – B1 – B1M1 – B1 – B1M1 – ….
B1 – B1M1 – B1 – B1M2 – B1 – B1M1 – ….
korrektes
Verhalten
inkorrektes
Verhalten
Verhalten = unendliche Folge von Beobachtungen:
B1,B2 – B1M1, B2M2 – B1,B2 – B1M1,B2M2 – B1,B2 – ….
B1,B2 – B1M1 – B2 – B2M2 – B1,B2 – B1M1 – ….
B1 – B1M1 – B2 – B1M2 – B1 – B1M1 – ….
B2 – B2M1 – B1 – B1M2 – B2 – ….
B1,B2 – B1M2 – B1,B2 – B1M1 – B1,B2 – ….
B1 – B1M1 – B1 – B1M1 – B1 – B1M2 – ….
B1 – B1M1 – B1 – B1M2 – B1 – B1M1 – ….
B1,B2 – B1M1 – B1,B2 – B1M2 – B1,B2 – ….
B1,B2 – B1M2 – B2 – B1M2 – B1,B2 – B1M2 – ….
B1 – B1M1 – B2 – B1M1 – B1 – B1M1 – ….
B2 – B2M2 – B1 – B1M2 – B2 – ….
B1,B2 – B1M1 – B1,B2 – B1M1 – B1,B2 – ….
B1 – B1M1 – B1 – B1M1 – B1 – B1M2 – ….
B1 – B1M2 – B1 – B1M2 – B1 – B1M1 – ….
…
Büchi-Automaten
Ein Büchi-Automat besteht aus
einem endlichen Alphabet Σeiner endlichen Menge vonZuständen Q
einem Initialzustand q0
einer Zustandsübergangsrelationδ ⊆ Q × Σ × Q
einer Menge von akzeptierendenZuständen F ⊆ Q
J. Richard Büchi(1924-1984)
Es muss immer (entweder auf Band 1 oder auf Band 2) ein Teil verfügbar sein.
B1M2 ∨B2M2
¬B1M2 ∧¬B2M2
B1M2
∨ B2M2
¬B1M2 ∧¬B2M2
B1 ∨ B2
Maschine 2 muss immer wieder (= unendlich oft) beliefert werden
Wenn immer ein Teil verfügbar ist, muss Maschine 2 unendlich oft beliefert werden.
true
B1M2 ∨ B2M2 ∧B1 ∨ B2
¬B1M2 ∧¬B2M2 ∧B1∨B2
¬B1M2 ∧¬B2M2 ∧B1∨B2
¬B1 ∧ ¬B2
¬B1 ∧ ¬B2
B1M2∨B2M2
∧B1∨B2
Rohteile
Ban
d 1
Ban
d 2
Transporter
Maschine 1 Maschine 2
true
B1M2 ∨ B2M2 ∧B1∨B2
¬B1M2 ∧¬B2M2 ∧B1∧B2
¬B1M2 ∧¬B2M2 ∧B1∨B2
¬B1 ∧ ¬B2
¬B1 ∧ ¬B2
B1M2∨B2M2
∧ B1∨B2
Umgebung
System
Das Verhalten der
Umgebung unterliegt
nicht unserer
Kontrolle.
Das System muss so
programmiert werden,
dass es sich dem
Umgebungsverhalten
richtig anpasst.
Spieler „Umgebung“
versucht fehlerhaftes
Verhalten zu
erzeugen.
Spieler „System“
versucht
korrektes
Verhalten zu
erzeugen
Programm = Strategie von Spieler „System“.
¬B1M2∧¬B2M2B1∧B2
B1∧¬B2
¬B1∧B2
¬B1∧¬
B2
¬B1M2
¬B2M2
B1M2∨B2M2
B1M2
B2M2
B1∧B2
B1∧¬B2
¬B1∧B2
¬B1∧¬B2
true
true
Ein Sicherheitsspiel besteht aus
- Der Spielarena: endlicher Graph wobei
Knoten = mögliche Spielpositionen
Kanten = mögliche Spielzüge(getrennt nach Spielern)
- Der Gewinn-Bedingung:eine Menge von „Sieg“-Positionen in denen Spieler Rot das Spiel gewonnen hat.
Sicherheitsspiele
In jeder Spielposition kann höchstens ein Spieler ziehen
B: Positionen von Spieler BlauR: Positionen von Spieler Rot
R
B
B
Eine Strategie für Spieler Rot ist eineFunktion
s: R → R∪B.
Eine Strategie gewinnt für Rotwenn jeder Spielablauf,bei dem Rot derStrategie folgt, in einerSieg-Position für Rotendet.
Eine Strategie für Spieler Blau ist eineFunktion
s: B → R∪B.
Eine Strategie gewinnt für Blauwenn jeder Spielablauf,bei dem Blau derStrategie folgt, nicht in einerSieg-Position für Rotendet.
Für eine gegebene Menge X von Positionen:
Aus welchen Positionen PreR(X) kann
Spieler Rot erzwingen,
dass die nächste Position in X liegt?
1. Alle Positionen in R, so dass ein Nachfolger in X liegt.
X
Für eine gegebene Menge X von Positionen:
Aus welchen Positionen PreR(X) kann
Spieler Rot erzwingen,
dass die nächste Position in X liegt?
X2. Alle Positionen in B,
so dass alle Nachfolger in X liegen.
1. Alle Positionen in R, so dass ein Nachfolger in X liegt.
Aus welchen Positionen hat Spieler Rot eine
gewinnende Strategie?
X1
1. Aus allen Sieg-Positionen für Rot: X1
2. Aus allen Positionen in X1 oder in PreR(X1): X2
X2=X3
3. Aus allen Positionen in X1, X2 oder in PreR(X2): X3
...
Der Fixpunkt (Xi mit Xi = Xi+1) ist die Attraktor-Menge von X1: AttrR(X1) = Xi.
Aus der Attraktor Menge für Spieler Rotergibt sich eine einfache Strategiefür Spieler Blau:
„Vermeide AttrR
wann immer möglich.“
AttrR
Lebendigkeitsspiele
Ein Lebendigkeitsspiel besteht aus
- Der Spielarena(wie bei Sicherheitssspielen)
- Der Gewinn-Bedingung: eine Menge F von Positionen
Für einen unendlich langen Ablauf
wird das Spiel folgendermaßen entschieden:
Wird unendlich oft eine Spielposition in F besucht, dann gewinnt Spieler Blau, ansonsten gewinnt Spieler Rot.
z.B.
F=„Maschine erhält Teil“
Lebendigkeitsspiele
Ein Lebendigkeitsspiel besteht aus
- Der Spielarena(wie bei Sicherheitsspielen)
- Der Gewinn-Bedingung: eine Menge F von Positionen
Für einen unendlich langen Ablauf
wird das Spiel folgendermaßen entschieden:
Wird unendlich oft eine Spielposition in F besucht, dann gewinnt Spieler Blau, ansonsten gewinnt Spieler Rot.
Von welchen Spielpositionen aus ist es Spieler Blau möglich,
mindestens einen Besuch von F
zu erzwingen?
Y1 = AttrB(F)
Attraktormengen-Konstruktion!
Y1
Von welchen Spielpositionen in F aus
ist es Spieler Blau möglich,
mindestens einen
weiteren Besuch
von F zu erzwingen?
Z1 = AttrB( PreB(F) ) ∩ F
PreB(F)
AttrB(PreB(F))Z1
Von welchen Spielpositionen in F aus
ist es Spieler Blau möglich,
unendlich viele
weitere Besuche
von F zu erzwingen?
Z1 = AttrB( PreB(F) ) ∩ F
Z2 = AttrB( PreB(Z1) ) ∩ F
…
Z1=Z2
PreB(Z1)
AttrB(PreB(Z1))
Der Fixpunkt (Zi mit Zi = Zi+1) ist die Revisit-Menge von F : RevisitB(F) = Zi.
Von welchen Spielpositionen aus ist es Spieler Blau möglich,
unendlich viele Besuche von F
zu erzwingen?
AttrB(RevisitB(F))
RevisitB(F)
AttrB(RevisitB(F))
¬B1M2∧¬B2M2B1∧B2
B1∧¬B2
¬B1∧B2
¬B1∧¬
B2
¬B1M2
¬B2M2
B1M2∨B2M2
B1M2
B2M2
B1∧B2
B1∧¬B2
¬B1∧B2
¬B1∧¬B2
true
true
1980
Temporale Logik
Temporale Logik
ϕϕϕ ϕϕϕϕHenceforth
ϕ
ϕϕ ψϕϕ
ϕ
ϕ Eventually
ϕ
ψϕ Until
Nextϕ
pZustandsformelnpAmir Pnueli
Es muss immer (entweder auf Band 1 oder auf Band 2) ein Teil verfügbar sein.
Maschine 2 muss immer wieder (= unendlich oft) beliefert werden
Wenn immer ein Teil verfügbar ist, muss Maschine 2 unendlich oft beliefert werden.
(B1∨ B2)
(B1M2 ∨ B2M2)
(B1∨ B2) ⇒ (B1M2 ∨ B2M2)
Jede temporallogische Formel kann in einen äquivalenten Automaten umgeformt werden.
p
p
qp
p
ptrue
p
ptrue
ptrue true
p
qp true
true
Anwendung 1: Automatische Programmverifikation (Model Checking)
Logische Spezifikation ϕ, System S→ Negation: ¬ϕ→ Automat: A¬ϕ→ Komposition: S×A¬ϕ→ S ist korrekt
genau dann wenn die Sprache von S×A¬ϕ leer ist.
Anwendung 2: Automatische Programmsynthese
Logische Spezifikation ϕ→ Automat: Aϕ→ Spiel: Sϕ :
Spieler System gewinnt genau dann, wennAblauf von Aϕ akzeptiert wird.
→ Jede gewinnende Strategie in Spiel Sϕist eine korrekte Implementierung von ϕ.
2008
Verteilte Systeme
1
6
2
4
3
5
Umgebung
Umgebung Sb
a
2
3
4
5
1 a∧¬b
¬a∧¬b
¬a∧b
a∧b
c
¬c
c
¬c
2
3
4
5
1 ?∧¬b
?∧b
c
¬c
6
7
6
1
1
7
Q 2Q
Umgebung 1
2Q
2 43
2Q
2
2Q2
22
2
22Q
Zusammenfassung
Church‘s
Problem
Unlösbar für
Turing-mächtige
SpezifikationenLösbar für viele
logische Spezifikationen,
z.B. Temporale Logik
komplex für verteilte
Systeme
Fazit
Synthese ist in wichtigen Gebieten dem menschlichen Programmierer überlegen (z.B. Steuerungssoftware, Scheduling).
Der Nachweis, dass keine verteilte Implementierung existiert, ist sehr teuer. (Suche nach verteilten Implementierungen ist aber möglich.)
Viele offene Forschungsfragen.