• Keine Ergebnisse gefunden

15. State-Space Search: Best-first Graph Search

N/A
N/A
Protected

Academic year: 2022

Aktie "15. State-Space Search: Best-first Graph Search"

Copied!
5
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Foundations of Artificial Intelligence

15. State-Space Search: Best-first Graph Search

Malte Helmert

University of Basel

March 24, 2021

M. Helmert (University of Basel) Foundations of Artificial Intelligence March 24, 2021 1 / 20

Foundations of Artificial Intelligence

March 24, 2021 — 15. State-Space Search: Best-first Graph Search

15.1 Introduction 15.2 Best-first Search 15.3 Algorithm Details 15.4 Reopening

15.5 Summary

M. Helmert (University of Basel) Foundations of Artificial Intelligence March 24, 2021 2 / 20

State-Space Search: Overview

Chapter overview: state-space search I 5.–7. Foundations

I 8.–12. Basic Algorithms I 13.–19. Heuristic Algorithms

I 13. Heuristics

I 14. Analysis of Heuristics I 15. Best-first Graph Search

I 16. Greedy Best-first Search, A

, Weighted A

I 17. IDA

I 18. Properties of A

, Part I I 19. Properties of A

, Part II

15. State-Space Search: Best-first Graph Search Introduction

15.1 Introduction

(2)

15. State-Space Search: Best-first Graph Search Introduction

Heuristic Search Algorithms

Heuristic Search Algorithms

Heuristic search algorithms use heuristic functions

to (partially or fully) determine the order of node expansion.

German: heuristische Suchalgorithmen I this chapter: short introduction I next chapters: more thorough analysis

M. Helmert (University of Basel) Foundations of Artificial Intelligence March 24, 2021 5 / 20

15. State-Space Search: Best-first Graph Search Best-first Search

15.2 Best-first Search

M. Helmert (University of Basel) Foundations of Artificial Intelligence March 24, 2021 6 / 20

15. State-Space Search: Best-first Graph Search Best-first Search

Best-first Search

Best-first search is a class of search algorithms that expand the “most promising” node in each iteration.

I decision which node is most promising uses heuristics. . . I . . . but not necessarily exclusively.

Best-first Search

A best-first search is a heuristic search algorithm

that evaluates search nodes with an evaluation function f and always expands a node n with minimal f (n) value.

German: Bestensuche, Bewertungsfunktion

I implementation essentially like uniform cost search I different choices of f different search algorithms

15. State-Space Search: Best-first Graph Search Best-first Search

The Most Important Best-first Search Algorithms

the most important best-first search algorithms:

I f (n) = h(n.state): greedy best-first search only the heuristic counts

I f (n) = g(n) + h(n.state): A

combination of path cost and heuristic I f (n) = g(n) + w · h(n.state): weighted A

w ∈ R + 0 is a parameter

interpolates between greedy best-first search and A German: gierige Bestensuche, A , Weighted A

properties: next chapters

What do we obtain with f (n) := g (n)?

(3)

15. State-Space Search: Best-first Graph Search Best-first Search

Best-first Search: Graph Search or Tree Search?

Best-first search can be graph search or tree search.

I now: graph search (i.e., with duplicate elimination), which is the more common case

I Chapter 17: a tree search variant

M. Helmert (University of Basel) Foundations of Artificial Intelligence March 24, 2021 9 / 20

15. State-Space Search: Best-first Graph Search Algorithm Details

15.3 Algorithm Details

M. Helmert (University of Basel) Foundations of Artificial Intelligence March 24, 2021 10 / 20

15. State-Space Search: Best-first Graph Search Algorithm Details

Reminder: Uniform Cost Search

reminder: uniform cost search Uniform Cost Search

open := new MinHeap ordered by g open.insert(make root node()) closed := new HashSet while not open.is empty():

n := open.pop min() if n.state ∈ / closed:

closed.insert(n.state) if is goal(n.state):

return extract path(n) for each ha, s

0

i ∈ succ(n.state):

n

0

:= make node(n, a, s

0

) open.insert(n

0

)

return unsolvable

15. State-Space Search: Best-first Graph Search Algorithm Details

Best-first Search without Reopening (1st Attempt)

best-first search without reopening (1st attempt) Best-first Search without Reopening (1st Attempt) open := new MinHeap ordered by f

open.insert(make root node()) closed := new HashSet while not open.is empty():

n := open.pop min() if n.state ∈ / closed:

closed.insert(n.state) if is goal(n.state):

return extract path(n) for each ha, s

0

i ∈ succ(n.state):

n

0

:= make node(n, a, s

0

) open.insert(n

0

)

return unsolvable

(4)

15. State-Space Search: Best-first Graph Search Algorithm Details

Best-first Search w/o Reopening (1st Attempt): Discussion

Discussion:

This is already an acceptable implementation of best-first search.

two useful improvements:

I discard states considered unsolvable by the heuristic saves memory in open

I if multiple search nodes have identical f values, use h to break ties (preferring low h)

I not always a good idea, but often

I obviously unnecessary if f = h (greedy best-first search)

M. Helmert (University of Basel) Foundations of Artificial Intelligence March 24, 2021 13 / 20

15. State-Space Search: Best-first Graph Search Algorithm Details

Best-first Search without Reopening (Final Version)

Best-first Search without Reopening open := new MinHeap ordered by hf , hi if h(init()) < ∞:

open.insert(make root node()) closed := new HashSet

while not open.is empty():

n := open.pop min() if n.state ∈ / closed:

closed.insert(n.state) if is goal(n.state):

return extract path(n) for each ha, s

0

i ∈ succ(n.state):

if h(s

0

) < ∞:

n

0

:= make node(n, a, s

0

) open.insert(n

0

)

return unsolvable

M. Helmert (University of Basel) Foundations of Artificial Intelligence March 24, 2021 14 / 20

15. State-Space Search: Best-first Graph Search Algorithm Details

Best-first Search: Properties

properties:

I complete if h is safe (Why?)

I optimality depends on f next chapters

15. State-Space Search: Best-first Graph Search Reopening

15.4 Reopening

(5)

15. State-Space Search: Best-first Graph Search Reopening

Reopening

I reminder: uniform cost search expands nodes in order of increasing g values

guarantees that cheapest path to state of a node has been found when the node is expanded

I with arbitrary evaluation functions f in best-first search this does not hold in general

in order to find solutions of low cost, we may want to expand duplicate nodes

when cheaper paths to their states are found (reopening) German: Reopening

M. Helmert (University of Basel) Foundations of Artificial Intelligence March 24, 2021 17 / 20

15. State-Space Search: Best-first Graph Search Reopening

Best-first Search with Reopening

Best-first Search with Reopening open := new MinHeap ordered by hf , hi if h(init()) < ∞:

open.insert(make root node()) distances := new HashTable while not open.is empty():

n := open.pop min()

if distances.lookup(n.state) = none or g (n) < distances[n.state]:

distances[n.state] := g (n) if is goal(n.state):

return extract path(n) for each ha, s

0

i ∈ succ(n.state):

if h(s

0

) < ∞:

n

0

:= make node(n, a, s

0

) open.insert(n

0

)

return unsolvable

distances controls reopening and replaces closed

M. Helmert (University of Basel) Foundations of Artificial Intelligence March 24, 2021 18 / 20

15. State-Space Search: Best-first Graph Search Summary

15.5 Summary

15. State-Space Search: Best-first Graph Search Summary

Summary

I best-first search: expand node with minimal value of evaluation function f

I f = h: greedy best-first search I f = g + h: A

I f = g + w · h with parameter w ∈ R

+0

: weighted A

I here: best-first search as a graph search

I reopening: expand duplicates with lower path costs

to find cheaper solutions

Referenzen

ÄHNLICHE DOKUMENTE

Quality and Robustness of Heuristics The number of states that GBFS potentially expands and the numbers of states expansions in best-case and worst-case search runs of GBFS

I recognize duplicates: when a state is reached on multiple paths, only keep one search node I search nodes correspond 1:1 to reachable states I search tree bounded, as number of

I breadth-first search ( this chapter) I uniform cost search ( Chapter 11) I depth-first search ( Chapter 12) I depth-limited search ( Chapter 12) I iterative deepening search (

Theorem (time complextive of iterative deepening DFS) Let b be the branching factor and d be the minimal solution length of the given state space. State-Space Search: Depth-first

Best-first search is a class of search algorithms that expand the “most promising” node in each iteration?. decision which node is most promising

Nach BRAYSHER (1971) kann es bei Echsen, deren Speisezettel einen hohen Anteil pflanzlicher Nahrung enthält, zu einem Überschuß an Salzen im Körper kommen. Dies gilt

Auch unter Berücksichtigung aller laufenden Infra- strukturvorhaben für die Universität (das von Roll-Areal bringt einen Flächenzuwachs für die Universität von rund 15'000m 2 HNF)

1900 Studium der Malerei an der Berliner Kunstakademie, 1903 Karlsruher Kunstakademie, 1904 Meisteratelier an der Akademie der Künste, Berlin, 1908 Mitglied der Berliner Sezession,