Grundlagen der Wissensverarbeitung

Werbung
Was bisher geschah
I
Daten, Information, Wissen
I
Wissensrepräsentation
I
Wissensverarbeitung
Wissensverarbeitende Systeme
I
I
I
Aufgaben
Komponenten und Aufbau
23
Beispiele
I
Finden von Wegen in einem Graphen
I
Aufgabe:
I
I
I
I
Lösungsidee: Wege als Knoten eines Suchbaumes
3 Krüge
I
Aufgabe:
I
I
I
I
gegeben: Graph G (Tafel)
gesucht: Weg (Pfad) in G von Knoten u zu Knoten v
gegeben: 3 volle Krüge mit verschiedenem Volumen:
4l, 7l, 9l,
gesucht: genau 6l in einem der 3 Krüge
Lösungsidee: Zustände als Knoten eines Suchbaumes
Missionare + Kannibalen
24
Darstellung von Problem und Lösung
Problem:
gegeben:
gesucht:
Menge V von Zuständen (evtl. unendlich)
Startzustand s ∈ V
Menge Z ⊆ V von Zielzuständen
(oder formale Beschreibung der Zielzustände)
mögliche Übergänge zwischen Zuständen
Weg von einem Start- zu einem Zielzustand
Lösung: Folge von Zuständen
(Mitunter interessiert nur der erreichte Endzustand.)
Repräsentation als Graph G = (V , E)
(Zustandsübergangssystem):
I
Knotenmenge V : Zustände
I
(gerichtete) Kanten: Zustandsübergänge
Entfaltung des Graphen zu einem Baum:
Pfade im Graphen = Knoten im Baum
25
Problemlösen durch Suchen
I
I
formale Darstellung des Problemes
als Graph bzw. Baum
formale Beschreibung der Lösung als Eigenschaft von
I
I
Pfaden im Graphen bzw.
Knoten im Baum
Möglichkeiten zum Problemlösen:
I
Pfadsuche im Graphen
I
Knotensuche im Baum
26
Suche in Graphen
(schon bekannte) Verfahren zur Suche in Graphen (und
Bäumen):
I
Tiefensuche (depth-first search):
Suche zuerst in Teilbäumen eines noch nicht besuchten
Nachbarn des aktuellen Knotens
I
Breitensuche (breadth-first search):
Suche zuerst in Teilbäumen eines noch nicht besuchten
Knotens mit der geringsten Tiefe
27
Allgemeines Suchverfahren
Daten:
I
Menge La der noch zu expandierenden Knoten
I
Menge Lx der expandierten Knoten
I
Startknoten s
Allgemeiner Suchalgorithmus:
1. La = {s}, Lx = ∅
2. solange nicht (gefunden oder La = ∅) wiederhole:
2.1 Verschiebe einen festgelegten Knoten u aus La in Lx
2.2 Füge alle Nachbarn von u, die La ∪ Lx nicht enthält, auf
eine festgelegte Art in La ein
Tiefensuche
Breitensuche
I
I
I
Verwaltung von La als Stack
Einfügen der Nachbarn an den Anfang der Liste La
festgelegter Knoten wurde zuletzt in La eingefügt
I
Verwaltung von La als Queue
Einfügen der Nachbarn an das Ende der Liste La
festgelegter Knoten wurde zuerst in La eingefügt
I
I
28
Eigenschaften von Suchverfahren
Fairness: jeder Knoten wird expandiert
Vollständigkeit: jede Lösung wird gefunden
Optimalität: eine beste Lösung wird (zuerst) gefunden
Zeitaufwand: größtmögliche Anzahl der Schritte von einem
Start- zu einem Endzustand
(Speicher-)Platzbedarf: größtmögliche Länge der Liste der
noch nicht expandierten Knoten
Baum mit
I maximaler Tiefe t
I maximalem Verzweigungsgrad d
I
I
Breitensuche: vollständig, (optimal,)
großer Zeitaufwand: O(d t )
großer Platzbedarf: O(d t )
Tiefensuche: unvollständig bei unendlichen Bäumen, nicht
optimal
großer Zeitaufwand: O(d t )
geringerer Platzbedarf: O(td)
29
Heuristische Suche – Motivation
Heuristik: Effizienzsteigerung durch Zusatzinformationen (z.B.
Erfahrungswerte)
I
Problem mit mehreren Lösungen (z.B. Wege in Graphen)
I
unterschiedliche Qualität der Lösungen (z.B. Länge des
Weges)
I
Suche nach optimalen Lösungen (z.B. kürzester Weg)
I
falls vollständige Suche zu aufwendig
Idee: Wahl einer geeigneten Such-Reihenfolge, welche die
besten Lösunge zuerst findet
Ordnung der Liste der noch zu expandierenden Knoten nach
einer Schätzfunktion, die die Zusatzinformationen repräsentiert
Beispiel: Schiebefax
30
Heuristische Funktion
Graph (Baum) (V , E)
Heuristische Funktion h : V →
R≥0
Bedeutung: Für jeden Knoten v ∈ V ist h(v ) eine Abschätzung
der Entfernung des Knotens v zu einem Zielzustand
Ziel: Vergleich der geschätzten Entfernungen
Suchverfahren: Suchreihenfolge nach steigenden Werten der
noch zu expandierenden Knoten
(Knoten mit dem geringsten Wert zuerst)
Beispiele für Schiebefax
31
Bestensuche
Idee: Expansion des Knotens v mit dem geringsten Wert h(v ) einer
heuristischen Funktion h : V → ≥0 zuerst
Daten:
R
I
Liste der noch zu expandierenden Knoten La
I
Liste der expandierten Knoten Lx
I
Startknoten s
Allgemeiner Suchalgorithmus:
1. La = {s}, Lx = ∅
2. solange nicht (gefunden oder La = ∅) wiederhole:
2.1 Verschiebe einen festgelegten Knoten u aus La in Lx
2.2 Füge alle Nachbarn von u, die La ∪ Lx nicht enthält, auf
eine festgelegte Art in La ein
Bestensuche:
I
Verwaltung von La als priority queue (oder sortierte Liste)
I
(sortiertes) Einfügen der Nachbarn in die (sortierte) Liste La
I
festgelegter Knoten hat den kleinsten Wert in La
32
Bestensuche – Eigenschaften
2 Methoden:
1. Knoten mit großen Werten möglichst spät expandieren
2. Knoten mit großen Werten nicht expandieren
I
Bestensuche mit einer beliebigen heuristischen Funktion
ist nicht immer optimal.
I
Bestensuche nach Methode 1 (fair) ist vollständig
I
Bestensuche nach Methode 2 ist nicht immer vollständig
33
(Bisherige) Kosten für Knoten
Baum G = (V , E)
Kostenfunktion k : V →
∀s ∈ S : k (s) = 0
R≥0 mit
Bedeutung: für jeden Knoten v ∈ V bezeichnet k (v ) die
tatsächlichen Kosten von einem Startzustand zu v
Beispiele für Kostenfunktionen:
I
Tiefe des Knotens im Suchbaum,
I
maximale Entfernung vom Startknoten
Kostenfunktion k : V →
R≥0 heißt
streng monoton wachsend , falls für alle Knoten v und alle
Nachfolger u von v gilt k (u) < k (v )
34
Gleiche-Kosten-Suche
Idee: Bestensuche mit (bisherigen) Kosten für Knoten als
heuristische Funktion
Gleiche-Kosten-Suche (uniform-cost search)
Suche zuerst in Teilbäumen der noch nicht besuchten Knoten
mit den bisher geringsten Kosten
Breitensuche als Gleiche-Kosten-Suche (Kosten = Tiefe):
Suche zuerst in Teilbäumen der noch nicht besuchten Knoten
mit der geringsten Tiefe
R
Kostenfunktion k : V → ≥0 ist (nach Voraussetzung) monoton
und damit das Gleiche-Kosten-Suchverfahren fair.
Gleiche-Kosten-Suche ist also vollständig und findet die beste
Lösung zuerst.
Beispiel: kürzeste Wege (als Knoten im Baum)
35
A∗ -Suche
Besten-Suche mit einer Schätzfunktion f : V →
für jeden Knoten v ∈ V gilt
R≥0, wobei
f (v ) = k (v ) + h(v )
mit den Funktionen
R
I
k : V → ≥0 – tatsächliche Kosten von einem
Startzustand zu v
I
h : V → ≥0 – geschätzte Kosten von v zu einem
Endzustand
R
Suche zuerst in Teilbäumen der noch nicht besuchten Knoten
mit dem geringsten Wert der Schätzfunktion (Summe von
bisherigen und geschätzen zukünftigen Kosten)
36
A∗ -Suche: Schätzfunktionen
Schätzfunktion f : V →
R≥0 mit f (v ) = k (v ) + h(v )
Schätzfunktion h heißt nicht überschätzend gdw.
für alle v ∈ V der Wert h(v ) nicht größer als die tatsächlichen
Kosten von v zu einem Lösungsknoten sind.
Unter jeder nicht überschätzenden Funktion h gilt für jeden von
einem Knoten u erreichbaren Lösungsknoten z
h(z) ≤ k (z) − k (u)
37
A∗ -Suche: Eigenschaften
Das A∗ -Suchverfahren mit einer monotonen und
nicht-überschätzenden Schätzfunktion ist
I
korrekt,
d.h. A∗ -Suche findet jeden errichbaren Lösungsknoten
I
optimal,
d.h. der erste gefundene Lösungsknoten ist eine optimale
Lösung
I
hoher Speicherplatzbedarf (wie für Breitensuche)
38
Herunterladen