Können Computer programmieren? - rw.cdl.uni-saarland.de · Für eine gegebene Menge X von...

Preview:

Citation preview

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.

Recommended