Spezialvorlesung Suchalgorithmen

Post on 14-Jan-2016

19 views 0 download

Tags:

description

Spezialvorlesung Suchalgorithmen. Stefan Edelkamp Mi 14-16. Überblick. Struktur der Vorlesung Crashkurs (Gerichtete) Suche Anwendungen Navigation Handlungsplanung Verifikation (Model Checking) Multiple Sequenzalignierung Robotik Literatur. Überblick. Struktur der Vorlesung - PowerPoint PPT Presentation

Transcript of Spezialvorlesung Suchalgorithmen

SpezialvorlesungSuchalgorithmen

Stefan Edelkamp

Mi 14-16

Überblick

Struktur der Vorlesung Crashkurs (Gerichtete) Suche Anwendungen

Navigation Handlungsplanung Verifikation (Model Checking) Multiple Sequenzalignierung Robotik

Literatur

Überblick

Struktur der Vorlesung Crashkurs (Gerichtete) Suche Anwendungen

Navigation Handlungsplanung Verifikation (Model Checking) Multiple Sequenzalignierung Robotik

Literatur

Struktur der Vorlesung: Theorie

Explizite Suche (1 Vorlesung) Speicherplatzbeschränkte Suche (1 Vorlesung) Symbolische und externe Suche (1 Vorlesung) Verteilte Suche (1 Vorlesung) Inkrementelle Suche (1 Vorlesung) Realzeitsuche (1 Vorlesung) Constraintsuche (1 Vorlesung) Selektive Suche (1 Vorlesung) Internetsuche (?)

Struktur der Vorlesung: Anwendungen

Navigation: (GPS-Route) (1 Vorlesung) Handlungsplanung: (MIPS,FF) (1 Vorlesung)

Planen in PDDL

Verifikation (2 Vorlesungen) Modelle und Programme (SPIN, STEAM) Zeitliche Automaten (UPPAAL) Graphtransitionssysteme (GROOVE)

Multiple Sequenzalignierung (IDDP) (1 Vorlesung) Robotik (?!) (1 Vorlesung)

Überblick

Struktur der Vorlesung Crashkurs (Gerichtete) Suche Anwendungen

Navigation Handlungsplanung Verifikation (Model Checking) Multiple Sequenzalignierung Robotik

Literatur

Suche

s

z

s: Startz: Ziel

Breitensuche

Gleichmäßige Entwicklung in die Tiefe

z

0

1

1

1

1

2

2

2

2

2

2

2

2

3

3

3

3

3 3 4

3

3

44

4

Heuristik

Manhattan Distanz = Summe horizontaler und vertikaler Abstand zum Ziel

z

4

3

3

5

5

4

2

2

2

4

6

6

6

1

5

3

7

7 5 4

3

1

04

8

Tiefe + Heuristik

z

0+4

1+3

1+3

6

6

6

2+2

2+2

2+2

6

8

8

8

3+1

8

6

10

10 8 8

6

3+1

4+08

12

Zulässige Heuristik (global): Untere Schranke für die optimale Lösungslänge. Garantiert optimale Lösungen.

Konsistente Heuristik (lokal): Schätzwert fällt nicht schneller als das Kantengewicht. Garantiert zusätzlich minimale Anzahl explorierter/expandierter Knoten.

Gerichtete Suche mit A*

s

g

A*

Breitensuche

z

4

4

4

6

6

6

4

4

4

6

8

8

8

4

8

6

10

10 8 8

6

4

48

12

Einpersonenspiele und Abstraktionen

1 2 3

4 5 6 7

8 9 10 11

12 13 14 15

5 10 14 7

8 3 6 1

15 12 9

2 11 4 13

A*

Annahmen:

Ungewichteter Problemgraph

Konsistente Heuristik

∆h ={-1,0,1,2,…}

g

0

1

2

3

4

5

0 1 2 3 4 5 6

h Fach

Überblick

Struktur der Vorlesung Crashkurs (Gerichtete) Suche Anwendungen

Navigation Handlungsplanung Verifikation (Model Checking) Multiple Sequenzalignierung Robotik

Literatur

Navigation

GPS-Karten

State-of-the-Art:GPS-Route

PDA

Route Planning Input

Start / End Points

Output

Path

Disturbances

Simulation

Vectorization Simulation Data Points

Raster Maps

Map Generation

Data points

Start / End points

Path

Over TCP/IP

GPS Traces

Request for the graph Graph

Komponenten

+ PDA

+Simulation

+ Karten-Generierung

+Routing

Handlungsplanung:Blocksworld-Domäne (define (domain BLOCKS) (:requirements :strips :typing) (:predicates (on ?x - block ?y - block) (ontable ?x - block) (clear ?x - block) (handempty) (holding ?x – block)) (:action pick-up :parameters (?x - block) :precondition (and (clear ?x) (ontable ?x) (handempty)) :effect (and (not (ontable ?x)) (not (clear ?x)) (not (handempty)) (holding ?x)))

(:action put-down … ) (:action stack ..) (:action unstack …))

cejbghadi f

cfjehbagi

d

Blocksworld-Instanz

(define (problem BLOCKS-6-0)(:domain BLOCKS)(:objects a b c d e f g h i j - block) (:init (clear c) (clear f) (handempty) (on a d) (on b g) (on c e) (on d i) (on e j) (on g h) (on h a) (on j b) (ontable f) (ontable i)) (:goal (and (on a g) (on b a) (on c f) (on d c) (on e h) (on f j) (on g i) (on h b) (on j e)))

cejbghadi f

cfjehbagi

d

Planungszustandsraum

adi f

adi f

adi f

adi

f

State-of-the-Art: PDDL3 in MIPS Präferenzbedingungen (preference <name> <goal>) (preference p (on a b)) (:metric minimize (is-violated p))

Planbedingungen (modal-operator <goal>)

(always (on-table f)) (sometimes (on-table a)) (at-most-once (on-table a))

Model Checking

Exploration formaler Modelle

Model Checking

Exploration formaler Modelle

floor 1

floor 0

Model Checking

Exploration formaler Modelle

floor 1

floor 0

=> at1

open

start

at1

closedclose

moving

open

open

down

Model Checking

Exploration formaler Modelle

floor 1

floor 0

=> at1

open

start

at1

closedclose

moving

open

open

down

moving => ¬open ?

Model Checking

Exploration formaler Modelle

floor 1

floor 0

=> at1

open

start

at1

closedclose

moving

open

open

down

!moving => ¬open ?

Model Checking

Exploration formaler Modelle

floor 1

floor 0

=> at1

open

start

at1

closedclose

moving

open

open

down

!moving => ¬open ?

Fehlerpfad: (start, down)

State Explosion

#Zustände steigt exponentiell in der Anzahl der Komponenten.

at0 at1

moving

closedopen idlepressedup

downdown

up

open

close release

press

Kabine Tür Knopf

State Explosion

1xKabine

1xTür

2xKnopf

State Explosion

1xKabine

1xTür

2xKnopf

State-of-the-Art: (IO-HSF) SPIN

Modellierungssprache: PromelaZwischenformat: C/C++Frontend: XSPIN

Eigenschaft: Lineare temporale Logik (LTL) Implementation: C/C++ ACM-Preis: Beste Software Suchverfahren: DFS, BFS, A*, Bestensuche , IDA*,

Externes Verteiltes A* Beschleunigungen: POR, inkrementelles Hashing,…

Software Model Checking

Wasserfallmodell

Anforderungsanalyse

Design

Implementierung

Integration

Wartung

Software Model Checking

Wasserfallmodell

Anforderungsanalyse

Design

Implementierung

Integration

Wartung

Suche nach konzeptionellen Fehlern

Software Model Checking

Wasserfallmodell

Anforderungsanalyse

Design

Implementierung

Integration

Wartung

Suche nach konzeptionellen Fehlern

Suche nach Implementierungs- fehlern

State-of-the-Art: STEAM

Programmzustand

Design

VM-basierter MC‘er für (z.B. c/Java) Programme Erweiterung virtuelle Maschinen (JVM, ICVM) Unterstützung von Nebenläufigkeit

(Multithreading) Vorteile:

Existierende Compiler (Java, gcc) Exakte Modellierung der Programmsemantik Gegenbeispiele einfach zu simulieren Detektion von Lowlevel-Fehlern (z.B. illegalen

Speicherzugriff)

Realzeitsysteme

Beispiel: Die Kontrolle einer Weiche muss strikte Zeitrestriktionen einhalten

Systeme werden als zeitliche Automaten modelliert Erweiterung gewöhlicher Automaten mit Uhren und

Bedingungen

s1 s2 s30 ≤ y ≤ 4

y ≤ 4

x ←0

x ←0

x ←0

y ≤ 4

Constraints

Reset

x und y sind Realzeituhren

State-of-the-Art: UPPAAL-CORA

Erweitert TA-Konzept um Kosten

Anwendung: Resourcen-optimales Scheduling

Erste Lösung nicht optimal: Branch-and-Bound

Kosten

Suchfront

Ziel

Beschneidung

Verifikation (Model Checking)

Phase I: Generiere Fehler, nutze Spezifikation des Fehlers bzw. der Eigenschaft zur Richtung

Phase II: Finde kurzes Gegenbeispiel Suchverfahren: finden mitunter kürzeste

Fehlerpfade Pfadverbesserung: Transfer von Information aus

Phase I für Phase II Suchziele:

Sicherheit: Gegenbeispiel ist ein einfacher Pfad Lebendigkeit: Gegenbeispiel ist ein Lasso

Kommunikationsprotokolle Beipielautomat 10 dinierende Philosophen:

state 1 -(tr 3)-> state 6 line 11 => forkl!fork state 6 -(tr 4)-> state 3 line 12 => forkl?fork state 3 -(tr 5)-> state 4 line 14 => forkr?fork state 4 -(tr 3)-> state 5 line 16 => forkl!fork state 5 -(tr 6)-> state 6 line 16 => forkr!fork

Prozess P: Graph (M, trans, init, curr) Kanal Q: Graph (S, head, tail, mess,cont) Suchraum: Kreuzproduktbildung

s1 s6 s3forkl!fork

forkl?fork

s5 s4forkl!fork

forkr!forkforkr!fork

Petri Netze (State-of-the-Art ?)4-Philosophen

φ

2-Philosophen

•Zulässig•Konsitent

Graphtransitionssysteme

Suchraum mitGraphen als ZuständeÜbergängen als Graphmorphismen

Anwendungen: Biologie – Änderungen in der molekulären Strukture Netzwerke – Klienten/Server melden sich an und ab Softwarespezifikation – z.B. in UML/MSC

State-of-the-Art: GROOVE

MSA Das Sequenzalignierungsproblem in der

Algorithmischen Biologie fordert die Alignierung mehrerer Sequenzen (Strings), z.B. verwandter Genen von verschiedenen Organismen, um Ähnlichkeiten und Verschiedenheiten in einer Gruppe zu studieren

Enweder: DNA wird direkt verglichen, und das unterliegende Alphabet besteht aus der Menge {C,G,A,T} der 4 Standartnukleotidenbasen Cytosin, Guanin, Adenin und Thymin

Oder: wir vergleichen Proteine, die in dem Fall aus 20 Aminosäuren zusammengesetzt sind

Idee: Dynamische Programmierung

State-of-the-Art: IDDP

Robotik

•Pfadplanung in

• bekannter

• unbekannter

Umgebung

•Realzeitanforderungen

•Unsicherheit (Modell, Sensorik)

•Diskretisierungen

Suche

Beispiel

Wissen des Roboters

Überblick

Struktur der Vorlesung Crashkurs (Gerichtete) Suche Anwendungen

Navigation Handlungsplanung Verifikation (Model Checking) Multiple Sequenzalignierung Robotik

Literatur

Literatur zur Vorlesung

Heuristic Search: Theory and Applications

(21 Kapitel, ~ 800 Seiten)

Morgan Kaufmann (~Sommer 2007)

Co-Autoren: Stefan Schroedl und Sven Koenig

Relevante Kapitel Suchalgorithmen (1 Kapitel) Speicherplatzbeschränkte Suche (1 Kapitel) Symbolische und externe Suche (2 Kapitel) Verteilte Suche (1 Kapitel) Inkrementelle Suche (1 Kapitel) Realzeitsuche (1 Kapitel) Constraintsuche (1 Kapitel) Selektive Suche (1 Kapitel) Navigation (1 Kapitel) Handlungsplanung (1 Kapitel) Verifikation (1 Kapitel) Sequenzalignierung (1 Kapitel) Robotik (1 Kapitel)