• Keine Ergebnisse gefunden

17. State-Space Search: IDA ∗

N/A
N/A
Protected

Academic year: 2022

Aktie "17. State-Space Search: IDA ∗"

Copied!
5
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Foundations of Artificial Intelligence

17. State-Space Search: IDA

Malte Helmert

University of Basel

March 29, 2021

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

Foundations of Artificial Intelligence

March 29, 2021 — 17. State-Space Search: IDA

17.1 IDA : Idea 17.2 IDA : Algorithm 17.3 IDA : Properties 17.4 Summary

M. Helmert (University of Basel) Foundations of Artificial Intelligence March 29, 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

17. State-Space Search: IDA IDA: Idea

17.1 IDA : Idea

(2)

17. State-Space Search: IDA IDA: Idea

IDA

The main drawback of the presented best-first graph search algorithms is their space complexity.

Idea: use the concepts of iterative-deepening DFS

I depth-limited depth-first search with increasing limits I instead of depth we limit f

(in this chapter f (n) := g (n) + h(n.state) as in A ) IDA (iterative-deepening A )

I tree search, unlike the previous best-first search algorithms

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

17. State-Space Search: IDA IDA: Algorithm

17.2 IDA : Algorithm

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

17. State-Space Search: IDA IDA: Algorithm

Reminder: Iterative Deepening Depth-first Search

reminder: iterative deepening depth-first search Iterative Deepening DFS

for depth limit ∈ {0, 1, 2, . . . }:

solution := depth limited search(init(), depth limit) if solution 6= none:

return solution

function depth limited search(s, depth limit):

if is goal(s):

return hi if depth limit > 0:

for each ha, s

0

i ∈ succ(s):

solution := depth limited search(s

0

, depth limit − 1) if solution 6= none:

solution.push front(a)

17. State-Space Search: IDA IDA: Algorithm

First Attempt: IDA Main Function

first attempt: iterative deepening A (IDA ) IDA (First Attempt)

for f limit ∈ {0, 1, 2, . . . }:

solution := f limited search(init(), 0, f limit) if solution 6= none:

return solution

(3)

17. State-Space Search: IDA IDA: Algorithm

First Attempt: f -Limited Search

function f limited search(s, g , f limit):

if g + h(s ) > f limit:

return none if is goal(s):

return hi

for each ha, s 0 i ∈ succ(s):

solution := f limited search(s 0 , g + cost(a), f limit) if solution 6= none:

solution.push front(a) return solution return none

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

17. State-Space Search: IDA IDA: Algorithm

IDA First Attempt: Discussion

I The pseudo-code can be rewritten to be even more similar to our IDDFS pseudo-code. However, this would make our next modification more complicated.

I The algorithm follows the same principles as IDDFS, but takes path costs and heuristic information into account.

I For unit-cost state spaces and the trivial heuristic h : s 7→ 0 for all states s , it behaves identically to IDDFS.

I For general state spaces, there is a problem with this first attempt, however.

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

17. State-Space Search: IDA IDA: Algorithm

Growing the f Limit

I In IDDFS, we grow the limit from the smallest limit that gives a non-empty search tree (0) by 1 at a time.

I This usually leads to exponential growth of the tree

between rounds, so that re-exploration work can be amortized.

I In our first attempt at IDA*, there is no guarantee that increasing the f limit by 1 will lead to a larger search tree than in the previous round.

I This problem becomes worse if we also allow non-integer (fractional) costs, where increasing the limit by 1 would be very arbitrary.

17. State-Space Search: IDA IDA: Algorithm

Setting the Next f Limit

idea: let the f -limited search compute the next sensible f limit I Start with h(init()), the smallest f limit

that results in a non-empty search tree.

I In every round, increase the f limit to the smallest value that ensures that in the next round at least one

additional path will be considered by the search.

f limited search now returns two values:

I the next f limit that would include at least one new node in the search tree (∞ if no such limit exists;

none if a solution was found), and

I the solution that was found (or none).

(4)

17. State-Space Search: IDA IDA: Algorithm

Final Algorithm: IDA Main Function

final algorithm: iterative deepening A (IDA ) IDA

f limit = h(init()) while f limit 6= ∞:

hf limit, solutioni := f limited search(init(), 0, f limit) if solution 6= none:

return solution return unsolvable

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

17. State-Space Search: IDA IDA: Algorithm

Final Algorithm: f -Limited Search

function f limited search(s , g , f limit):

if g + h(s) > f limit:

return hg + h(s), nonei if is goal(s):

return hnone, hii new limit := ∞

for each ha, s

0

i ∈ succ(s):

hchild limit, solutioni := f limited search(s

0

, g + cost(a), f limit) if solution 6= none:

solution.push front(a) return hnone, solutioni

new limit := min(new limit, child limit) return hnew limit, nonei

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

17. State-Space Search: IDA IDA: Algorithm

Final Algorithm: f -Limited Search

function f limited search(s, g , f limit):

if g + h(s) > f limit:

return hg + h(s), nonei if is goal(s):

return hnone, hii new limit := ∞

for each ha, s

0

i ∈ succ(s):

hchild limit, solutioni := f limited search(s

0

, g + cost(a), f limit) if solution 6= none:

solution.push front(a) return hnone, solutioni

new limit := min(new limit, child limit) return hnew limit, nonei

17. State-Space Search: IDA IDA: Properties

17.3 IDA : Properties

(5)

17. State-Space Search: IDA IDA: Properties

IDA : Properties

Inherits important properties of A and depth-first search:

I semi-complete if h safe and cost(a) > 0 for all actions a I optimal if h admissible

I space complexity O(`b), where

I `: length of longest generated path

(for unit cost problems: bounded by optimal solution cost) I b: branching factor

proofs?

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

17. State-Space Search: IDA IDA: Properties

IDA : Discussion

I compared to A potentially considerable overhead because no duplicates are detected

exponentially slower in many state spaces often combined with partial duplicate elimination (cycle detection, transposition tables)

I overhead due to iterative increases of f limit often negligible, but not always

I especially problematic if action costs vary a lot:

then it can easily happen that each new f limit only considers a small number of new paths

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

17. State-Space Search: IDA Summary

17.4 Summary

17. State-Space Search: IDA Summary

Summary

I IDA is a tree search variant of A

based on iterative deepening depth-first search I main advantage: low space complexity

I disadvantage: repeated work can be significant

I most useful when there are few duplicates

Referenzen

ÄHNLICHE DOKUMENTE

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

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 (

uniform cost search: expand nodes in order of ascending path costs. I usually as a

I often very fast: one of the fastest search algorithms in practice I monotonic transformations of h (e.g. scaling, additive. constants) do not affect behaviour (Why is

In IDDFS, we grow the limit from the smallest limit that gives a non-empty search tree (0) by 1 at a time. This usually leads to exponential growth of

I f -bound lemma: The minimum f value in the open list at the beginning of each A ∗ iteration is a lower bound on the optimal solution cost. Helmert (University of Basel) Foundations

I f values never decrease along paths considered by A ∗ I sequence of f values of expanded nodes is non-decreasing I time complexity depends on heuristic and shape of state space.