53
Spezialvorlesung Suchalgorithmen Stefan Edelkamp Mi 14-16

Spezialvorlesung Suchalgorithmen

  • Upload
    malory

  • View
    19

  • Download
    0

Embed Size (px)

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

Citation preview

Page 1: Spezialvorlesung Suchalgorithmen

SpezialvorlesungSuchalgorithmen

Stefan Edelkamp

Mi 14-16

Page 2: Spezialvorlesung Suchalgorithmen

Überblick

Struktur der Vorlesung Crashkurs (Gerichtete) Suche Anwendungen

Navigation Handlungsplanung Verifikation (Model Checking) Multiple Sequenzalignierung Robotik

Literatur

Page 3: Spezialvorlesung Suchalgorithmen

Überblick

Struktur der Vorlesung Crashkurs (Gerichtete) Suche Anwendungen

Navigation Handlungsplanung Verifikation (Model Checking) Multiple Sequenzalignierung Robotik

Literatur

Page 4: Spezialvorlesung Suchalgorithmen

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 (?)

Page 5: Spezialvorlesung Suchalgorithmen

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)

Page 6: Spezialvorlesung Suchalgorithmen

Überblick

Struktur der Vorlesung Crashkurs (Gerichtete) Suche Anwendungen

Navigation Handlungsplanung Verifikation (Model Checking) Multiple Sequenzalignierung Robotik

Literatur

Page 7: Spezialvorlesung Suchalgorithmen

Suche

s

z

s: Startz: Ziel

Page 8: Spezialvorlesung Suchalgorithmen

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

Page 9: Spezialvorlesung Suchalgorithmen

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

Page 10: Spezialvorlesung Suchalgorithmen

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.

Page 11: Spezialvorlesung Suchalgorithmen

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

Page 12: Spezialvorlesung Suchalgorithmen

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

Page 13: Spezialvorlesung Suchalgorithmen

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

Page 14: Spezialvorlesung Suchalgorithmen

Überblick

Struktur der Vorlesung Crashkurs (Gerichtete) Suche Anwendungen

Navigation Handlungsplanung Verifikation (Model Checking) Multiple Sequenzalignierung Robotik

Literatur

Page 15: Spezialvorlesung Suchalgorithmen

Navigation

Page 16: Spezialvorlesung Suchalgorithmen

GPS-Karten

Page 17: Spezialvorlesung Suchalgorithmen

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

Page 18: Spezialvorlesung Suchalgorithmen

Komponenten

+ PDA

+Simulation

+ Karten-Generierung

+Routing

Page 19: Spezialvorlesung Suchalgorithmen

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

Page 20: Spezialvorlesung Suchalgorithmen

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

Page 21: Spezialvorlesung Suchalgorithmen

Planungszustandsraum

adi f

adi f

adi f

adi

f

Page 22: Spezialvorlesung Suchalgorithmen

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))

Page 23: Spezialvorlesung Suchalgorithmen

Model Checking

Exploration formaler Modelle

Page 24: Spezialvorlesung Suchalgorithmen

Model Checking

Exploration formaler Modelle

floor 1

floor 0

Page 25: Spezialvorlesung Suchalgorithmen

Model Checking

Exploration formaler Modelle

floor 1

floor 0

=> at1

open

start

at1

closedclose

moving

open

open

down

Page 26: Spezialvorlesung Suchalgorithmen

Model Checking

Exploration formaler Modelle

floor 1

floor 0

=> at1

open

start

at1

closedclose

moving

open

open

down

moving => ¬open ?

Page 27: Spezialvorlesung Suchalgorithmen

Model Checking

Exploration formaler Modelle

floor 1

floor 0

=> at1

open

start

at1

closedclose

moving

open

open

down

!moving => ¬open ?

Page 28: Spezialvorlesung Suchalgorithmen

Model Checking

Exploration formaler Modelle

floor 1

floor 0

=> at1

open

start

at1

closedclose

moving

open

open

down

!moving => ¬open ?

Fehlerpfad: (start, down)

Page 29: Spezialvorlesung Suchalgorithmen

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

Page 30: Spezialvorlesung Suchalgorithmen

State Explosion

1xKabine

1xTür

2xKnopf

Page 31: Spezialvorlesung Suchalgorithmen

State Explosion

1xKabine

1xTür

2xKnopf

Page 32: Spezialvorlesung Suchalgorithmen

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,…

Page 33: Spezialvorlesung Suchalgorithmen

Software Model Checking

Wasserfallmodell

Anforderungsanalyse

Design

Implementierung

Integration

Wartung

Page 34: Spezialvorlesung Suchalgorithmen

Software Model Checking

Wasserfallmodell

Anforderungsanalyse

Design

Implementierung

Integration

Wartung

Suche nach konzeptionellen Fehlern

Page 35: Spezialvorlesung Suchalgorithmen

Software Model Checking

Wasserfallmodell

Anforderungsanalyse

Design

Implementierung

Integration

Wartung

Suche nach konzeptionellen Fehlern

Suche nach Implementierungs- fehlern

Page 36: Spezialvorlesung Suchalgorithmen

State-of-the-Art: STEAM

Page 37: Spezialvorlesung Suchalgorithmen

Programmzustand

Page 38: Spezialvorlesung Suchalgorithmen

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)

Page 39: Spezialvorlesung Suchalgorithmen

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

Page 40: Spezialvorlesung Suchalgorithmen

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

Page 41: Spezialvorlesung Suchalgorithmen

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

Page 42: Spezialvorlesung Suchalgorithmen

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

Page 43: Spezialvorlesung Suchalgorithmen

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

φ

2-Philosophen

•Zulässig•Konsitent

Page 44: Spezialvorlesung Suchalgorithmen

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

Page 45: Spezialvorlesung Suchalgorithmen

State-of-the-Art: GROOVE

Page 46: Spezialvorlesung Suchalgorithmen

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

Page 47: Spezialvorlesung Suchalgorithmen

Idee: Dynamische Programmierung

Page 48: Spezialvorlesung Suchalgorithmen

State-of-the-Art: IDDP

Page 49: Spezialvorlesung Suchalgorithmen

Robotik

•Pfadplanung in

• bekannter

• unbekannter

Umgebung

•Realzeitanforderungen

•Unsicherheit (Modell, Sensorik)

•Diskretisierungen

Page 50: Spezialvorlesung Suchalgorithmen

Suche

Beispiel

Wissen des Roboters

Page 51: Spezialvorlesung Suchalgorithmen

Überblick

Struktur der Vorlesung Crashkurs (Gerichtete) Suche Anwendungen

Navigation Handlungsplanung Verifikation (Model Checking) Multiple Sequenzalignierung Robotik

Literatur

Page 52: Spezialvorlesung Suchalgorithmen

Literatur zur Vorlesung

Heuristic Search: Theory and Applications

(21 Kapitel, ~ 800 Seiten)

Morgan Kaufmann (~Sommer 2007)

Co-Autoren: Stefan Schroedl und Sven Koenig

Page 53: Spezialvorlesung Suchalgorithmen

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)