ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι...

23
ΚΕΦΑΛΑΙΟ 3 1 Αλγόριθμοι Τυφλής Αναζήτησης Σχήμα 3.1: Αρχική και τελικές καταστάσεις του προβλήματος των ποτηριών.

Transcript of ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι...

Page 1: ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η καλύτερη μέχρι τώρα λύση

ΚΕΦΑΛΑΙΟ 3

1 Αλγόριθμοι Τυφλής Αναζήτησης

Σχήμα 3.1: Αρχική και τελικές καταστάσεις του προβλήματος των ποτηριών.

Page 2: ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η καλύτερη μέχρι τώρα λύση

Σχήμα 3.2: Μέρος του χώρου αναζήτησης στο πρόβλημα με τα ποτήρια.

Page 3: ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η καλύτερη μέχρι τώρα λύση

Κεφάλαιο 1: Αλγόριθμοι Τυφλής Αναζήτησης 3

Πίνακας 3.1: Τελεστές μετάβασης στο πρόβλημα των ποτηριών.

Τελεστής ΤελεστήςΓέμισε το ποτήρι των Χ ml μέχρι το χείλος από τη βρύση

Γέμισε το ποτήρι των Χ ml από το ποτήρι των Υ ml

Προϋποθέσεις ΠροϋποθέσειςΤο ποτήρι των Χ ml έχει 0 ml Το ποτήρι των Χ ml έχει Ζ ml

Το ποτήρι των Y ml έχει W ml (W0)ΑποτελέσματαΤο ποτήρι των Χ ml έχει Χ ml Αποτελέσματα

Το ποτήρι των Χ ml έχει Χ ml καιΤο ποτήρι των Υ ml έχει W-(X-Z), αν WX-Z

ήΤο ποτήρι των Χ ml έχει Ζ+W ml καιΤο ποτήρι των Υ ml έχει 0 ml, αν W<X-Z

ΤελεστήςΆδειασε το ποτήρι των Χ ml στο νεροχύτη

ΠροϋποθέσειςΤο ποτήρι έχει περιεχόμενο

ΑποτελέσματαΤο ποτήρι των Χ ml έχει 0 ml

Page 4: ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η καλύτερη μέχρι τώρα λύση

1.1 Αναζήτηση Πρώτα σε Βάθος1. Βάλε την αρχική κατάσταση στο μέτωπο της αναζήτησης.2. Αν το μέτωπο της αναζήτησης είναι κενό τότε σταμάτησε.3. Βγάλε την πρώτη κατάσταση από το μέτωπο της αναζήτησης.4. Αν είναι η κατάσταση μέλος του κλειστού συνόλου τότε πήγαινε στο βήμα 2.5. Αν η κατάσταση είναι μία από τις τελικές, τότε ανέφερε τη λύση.6. Αν θέλεις και άλλες λύσεις πήγαινε στο βήμα 2. Αλλιώς σταμάτησε.7. Εφάρμοσε τους τελεστές μετάβασης για να βρεις τις καταστάσεις-παιδιά.8. Βάλε τις καταστάσεις-παιδιά στην αρχή του μετώπου της αναζήτησης.9. Βάλε την κατάσταση-γονέα στο κλειστό σύνολο.10.Πήγαινε στο βήμα 2.

algorithm dfs(InitialState, FinalStates)begin

Closed¬;Frontier¬<InitialState>;CurrentState¬First(Frontier);while CurrentState FinalStates do

Frontier¬delete(CurrentState,Frontier);if CurrentState Closed then

ChildrenStates ¬Expand(CurrentState);Frontier¬ChildrenStates ^ Frontier;Closed¬ClosedÈ{CurrentState};

endif;if Frontier= then return fail;CurrentState¬First(Frontier);

endwhile;return success;end.

Page 5: ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η καλύτερη μέχρι τώρα λύση

Κεφάλαιο 1: Αλγόριθμοι Τυφλής Αναζήτησης 5

Σχήμα 3.3: Αναζήτηση Πρώτα σε Βάθος σε Χώρο Αναζήτησης με αρχική κατάσταση a και τελικές g1 και g2.

Πίνακας 3.2: Βήματα αλγορίθμου DFS στο πρόβλημα των ποτηριών.

Μέτωπο της αναζήτησης Κλειστό Σύνολο Κατάσταση Παιδιά<Α> {} Α <Β, Γ>

<Β, Γ> {Α} Β <Α, Δ>

<Α, Δ, Γ> {Α,Β} Α - (βρόχος)

<Δ, Γ> {Α,Β} Δ <Β,Ζ,Γ>

<Β,Ζ,Γ,Γ> {Α,Β,Δ} Β - (βρόχος)

<Ζ,Γ,Γ> {Α,Β,Δ} Ζ <Α,Θ,Δ>

<Α,Θ,Δ,Γ,Γ> {Α,Β,Δ,Ζ} Α - (βρόχος)

<Θ,Δ,Γ,Γ> {Α,Β,Δ,Ζ} Θ <Ζ,Δ,Ι>

<Ζ,Δ,Ι,Δ,Γ,Γ> {Α,Β,Δ,Ζ,Θ} Ζ - (βρόχος)

<Δ,Ι,Δ,Γ,Γ> {Α,Β,Δ,Ζ,Θ} Δ - (βρόχος)

<Ι,Δ,Γ,Γ> {Α,Β,Δ,Ζ,Θ} Ι <Κ,Γ,Β>

<Κ,Γ,Β,Δ,Γ,Γ> {Α,Β,Δ,Ζ,Θ,Ι} Κ ΤΕΛΙΚΗ

Page 6: ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η καλύτερη μέχρι τώρα λύση

1.2 Αναζήτηση Πρώτα σε Πλάτος

1. Βάλε την αρχική κατάσταση στο μέτωπο της αναζήτησης.2. Αν το μέτωπο της αναζήτησης είναι κενό τότε σταμάτησε.3. Βγάλε την πρώτη κατάσταση από το μέτωπο της αναζήτησης.4. Αν είναι η κατάσταση μέλος του κλειστού συνόλου τότε πήγαινε στο βήμα 2.5. Αν η κατάσταση είναι μία τελική τότε ανέφερε τη λύση.6. Αν θέλεις και άλλες λύσεις πήγαινε στο βήμα 2. Αλλιώς σταμάτησε.7. Εφάρμοσε τους τελεστές μετάβασης για να βρεις τις

καταστάσεις-παιδιά.8. Βάλε τις καταστάσεις-παιδιά στο τέλος του μετώπου της αναζήτησης.9. Βάλε την κατάσταση-γονέα στο κλειστό σύνολο.10. Πήγαινε στο βήμα 2.

algorithm bfs(InitialState, FinalStates)begin

Closed¬;Frontier¬<InitialState>;CurrentState¬First(Frontier);while CurrentState FinalStates do

Frontier¬delete(CurrentState,Frontier);if CurrentState Closed

ChildrenStates ¬Expand(CurrentState);Frontier¬ Frontier ^ ChildrenStates;Closed¬ClosedÈ{CurrentState};

endif;if Frontier= then return fail;CurrentState¬First(Frontier);

endwhile;return success;

end.

Page 7: ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η καλύτερη μέχρι τώρα λύση

Κεφάλαιο 1: Αλγόριθμοι Τυφλής Αναζήτησης 7

Σχήμα 3.4: Αναζήτηση Πρώτα σε Πλάτος σε Χώρο Αναζήτησης με αρχική κατάσταση a και τελικές g1 και g2.

Πίνακας 3.3: Βήματα αλγορίθμου BFS στο πρόβλημα των ποτηριών.

Μέτωπο Αναζήτησης Κλειστό Σύνολο Κατάσταση Παιδιά<Α> {} Α <Β, Γ>

<Β, Γ> {Α} Β <Α, Δ>

<Γ,Α,Δ> {Α,Β} Γ <Ε,Α>

<Α,Δ,Ε,Α> {Α,Β,Γ} Α - (βρόχος)

<Δ,Ε,Α> {Α,Β,Γ} Δ <Β,Ζ,Γ>

<Ε,Α,Β,Ζ,Γ> {Α,Β,Γ,Δ} Ε <Α,Η>

<Α,Β,Ζ,Γ,Α,Η> {Α,Β,Γ,Δ,Ε} Α - (βρόχος)

<Β,Ζ,Γ,Α,Η> {Α,Β,Γ,Δ,Ε} Β - (βρόχος)

<Ζ,Γ,Α,Η> {Α,Β,Γ,Δ,Ε} Ζ <Α,Θ,Δ>

<Γ,Α,Η,Α,Θ,Δ> {Α,Β,Γ,Δ,Ε,Ζ} Γ - (βρόχος)

<Α,Η,Α,Θ,Δ> {Α,Β,Γ,Δ,Ε,Ζ} Α - (βρόχος)

<Η,Α,Θ,Δ> {Α,Β,Γ,Δ,Ε,Ζ} Η <Ε,Γ>

<Α,Θ,Δ,Ε,Γ> {Α,Β,Γ,Δ,Ε,Ζ,Η} Α - (βρόχος)

<Θ,Δ,Ε,Γ> {Α,Β,Γ,Δ,Ε,Ζ,Η} Θ <Ζ,Δ,Ι>

<Δ,Ε,Γ,Ζ,Δ,Ι> {Α,Β,Γ,Δ,Ε,Ζ,Η} Δ - (βρόχος)

<Ε,Γ,Ζ,Δ,Ι> {Α,Β,Γ,Δ,Ε,Ζ,Η} Ε - (βρόχος)

<Γ,Ζ,Δ,Ι> {Α,Β,Γ,Δ,Ε,Ζ,Η} Γ - (βρόχος)

<Ζ,Δ,Ι> {Α,Β,Γ,Δ,Ε,Ζ,Η} Ζ - (βρόχος)

<Δ,Ι> {Α,Β,Γ,Δ,Ε,Ζ,Η} Δ - (βρόχος)

Page 8: ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η καλύτερη μέχρι τώρα λύση

<Ι> {Α,Β,Γ,Δ,Ε,Ζ,Η} Ι <Κ,Γ,Β>

<Κ,Γ,Β> {Α,Β,Γ,Δ,Ε,Ζ,Η,Ι} Κ ΤΕΛΙΚΗ

1.3 Αλγόριθμος Επαναληπτικής Εκβάθυνσης1. Όρισε το αρχικό βάθος αναζήτησης (συνήθως 1).2. Εφάρμοσε τον αλγόριθμο DFS μέχρι αυτό το βάθος αναζήτησης.3. Αν έχεις βρει λύση σταμάτησε.4. Αύξησε το βάθος αναζήτησης (συνήθως κατά 1).5. Πήγαινε στο βήμα 2.

algorithm id(InitialState, FinalStates)begin

depth¬1while solution is not found do

bounded_dfs(InitialState,FinalStates,depth);depth¬depth+1

endwhile;end.

Σχήμα 3.5: Αναζήτηση με επαναληπτικής εκβάθυνση σε Χώρο Αναζήτησης με τελικές καταστάσεις g1 και g2.

Page 9: ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η καλύτερη μέχρι τώρα λύση

Κεφάλαιο 1: Αλγόριθμοι Τυφλής Αναζήτησης 9

Σχήμα 3.6: Συμβιβασμός αποδοτικότητας και ποιότητας λύσης στον ID.

1.4 Αναζήτηση Διπλής Κατεύθυνσης

Σχήμα 3.7: Αναζήτηση διπλής κατεύθυνσης στο πρόβλημα εύρεσης διαδρομής σε λαβύρινθο.

Page 10: ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η καλύτερη μέχρι τώρα λύση

1.5 Επέκταση και Οριοθέτηση

Σχήμα 3.8: Κλάδεμα υποδένδρου που δεν οδηγεί σε καλύτερη λύση

Σχήμα 3.9: Πλήρης γράφος για το TSP με 5 πόλεις.

Page 11: ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η καλύτερη μέχρι τώρα λύση

Κεφάλαιο 1: Αλγόριθμοι Τυφλής Αναζήτησης 11

1. Βάλε την αρχική κατάσταση στο μέτωπο της αναζήτησης. 2. Αρχική τιμή της καλύτερης λύσης είναι το +¥ (όριο).3. Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η

καλύτερη μέχρι τώρα λύση είναι και η βέλτιστη.4. Βγάλε την πρώτη σε σειρά κατάσταση από το μέτωπο της αναζήτησης.5. Αν η κατάσταση ανήκει στο κλειστό σύνολο, τότε πήγαινε στο βήμα 3.6. Αν η κατάσταση είναι τελική, τότε ανανέωσε τη λύση ως την καλύτερη

μέχρι τώρα και ανανέωσε την τιμή του ορίου με την τιμή που αντιστοιχεί στην τελική κατάσταση. Πήγαινε στο βήμα 3.

7. Εφάρμοσε τους τελεστές μετάβασης για να παράγεις τις καταστάσεις-παιδιά και την τιμή που αντιστοιχεί σε αυτές.

8. Βάλε τις καταστάσεις-παιδιά, των οποίων η τιμή δεν υπερβαίνει το όριο, μπροστά στο μέτωπο της αναζήτησης.

9. Βάλε την κατάσταση-γονέα στο κλειστό σύνολο.10. Πήγαινε στο βήμα 3.

algorithm b&b(InitialState, FinalStates)begin

Closed¬;Frontier¬<InitialState>;BestCost¬µ;BestState¬null;while Frontier do

CurrentState¬First(Frontier);CurrentCost¬Cost(Current_State);Frontier¬delete(CurrentState,Frontier);if CurrentCost < BestCost then

if CurrentState FinalStates thenBestState¬CurrentState;BestCost¬CurrentCost;

elseNext¬Expand(CurrentState);ChildrenStates¬{s| sNext sFrontier sClosed};Frontier¬ChildrenStates ^ Frontier;Closed¬ClosedÈ{CurrentState};

endif;endif;

endwhile; if BestState = null

then return fail

Page 12: ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η καλύτερη μέχρι τώρα λύση

else return BestState and BestCost;end.

Page 13: ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η καλύτερη μέχρι τώρα λύση

Κεφάλαιο 1: Αλγόριθμοι Τυφλής Αναζήτησης 13

Πίνακας 3.4: Βήματα αλγορίθμου Β&Β στο πρόβλημα TSP.

Μέτωπο της αναζήτησης Κόστος Λύσης Κατάσταση Παιδιά

<α> +¥ α αβ8,αγ5,αδ10,αε8

<αβ8,αγ5,αδ10,αε8> +¥ αβ αβγ15,αβδ14,

αβε14

<αβγ15,αβδ14,αβε14,αγ5,...> +¥ αβγ αβγδ24, αβγε18

<αβγδ24,αβγε18,

αβδ14,αβε14...>

+¥ αβγδ αβγδε28

<αβγδε28,αβγε18, αβδ14,...> +¥ αβγδε αβγδεα36

< αβγδεα36, αβγε18, αβδ14,..> 36 αβγδεα Τελική Κατάσταση

<αβγε18, αβδ14,... > 36 αβγε αβγεδ22

<αβγεδ22,αβδ14,...> 36 αβγεδ αβγεδα32

< αβγεδα32 ,αβδ14,αβε14...> 32 αβγεδα Τελική Κατάσταση

... ... ... ...

<αβδεγα26, ...> 26 αβδεγα Τελική Κατάσταση

... ... ... ...

<αβεγδ26, ...> 26 αβεγδ Κλάδεμα

.... ... ... ...

<αεβγδ30, ...> 26 αεβγδ Κλάδεμα

. . . . . . . . . . . .

<> Ελάχιστη Τιμή ΤΕΛΟΣ

Σχήμα 3.10: Ακραίες περιπτώσεις κλαδέματος από τον αλγόριθμο B&B.

Page 14: ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η καλύτερη μέχρι τώρα λύση

1.6 Σχόλια για την Υλοποίηση των Αλγορίθμων Αναζήτησης

algorithm dfsinputs: InitialState, FinalStatesoutputs: Solution

beginClosed¬;Frontier¬<(InitialState,nil)>;(CurrentState,PathSoFar)¬First(Frontier);while CurrentState FinalStates do

Frontier¬delete((CurrentState,PathSoFar),Frontier);ChildrenStatesAndPaths¬Expand((CurrentState,PathSoFar));ChildrenStatesAndPaths¬ExcludeLoopStates(ChildrenStatesAndPaths,Closed);Frontier¬ChildrenStatesAndPaths ^ Frontier;Closed¬ClosedÈ{CurrentState};if Frontier= then return Solution=nil;(CurrentState,PathSoFar)¬First(Frontier);

endwhile;return Solution=PathSoFar;end.

Page 15: ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η καλύτερη μέχρι τώρα λύση

Κεφάλαιο 1: Αλγόριθμοι Τυφλής Αναζήτησης 15

1.7 Παραδείγματα Εφαρμογής Τυφλής Αναζήτησης

1.7.1 Αεροπορική Εταιρία Αναθέτει Πτήσεις στους Πιλότους της

1.7.2 Εύρεση Διαδρομής

Σχήμα 3.11: Ο χώρος αναζήτησης και η λύση του προβλήματος μετά την εφαρμογή του αλγόριθμου DFS και με επιλογή τον δεξιότερο δρόμο

που ξεκινά από μία διασταύρωση.

Σχήμα 3.12: Ο χώρος αναζήτησης και η λύση του προβλήματος με εφαρμογή του DFS και επιλογή του αριστερότερου δρόμου σε κάθε διασταύρωση.

Page 16: ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η καλύτερη μέχρι τώρα λύση

Σχήμα 3.13: Ο χώρος αναζήτησης και η λύση του προβλήματος με εφαρμογή του BFS και επιλογή του δεξιότερου δρόμου σε κάθε διασταύρωση.

Page 17: ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η καλύτερη μέχρι τώρα λύση

Κεφάλαιο 1: Αλγόριθμοι Τυφλής Αναζήτησης 17

Σχήμα 3.14: Ο χώρος αναζήτησης κατά την εφαρμογή του αλγορίθμου ID μέχρι βάθος 4.

1.7.3 Σύγκριση DFS, BFS και ID

ΒιβλιογραφίαΑναφορές[Bratko, 2012] I. Bratko, Prolog Programming for Artificial Intelligence, 4 Ed. Pearson,2012[Luger, 2008] G.F. Luger, Artificial Intelligence: Structures and Strategies for Complex

Problem-Solving, 6th edition, Pearson, 2008.[Nilsson, 1998] N. Nilsson, Artificial Intelligence: A New Synthesis, Mor. Kaufmann, 1998[Nilsson, 2009], N. Nilsson, The Quest for Artificial Intelligence: A History of Ideas and

Achievements, Cambridge University Press, 2009 Web Version: http://ai.stanford. edu/~nilsson/QAI/qai.pdf

[Poole & Mackworth, 2017] D. Poole and A. Mackworth, Artificial Intelligence: foundations of computational agents. 2nd ed., Cambridge University Press, 2017.

[Russell & Norvig, 2014] S. Russell and P. Norvig, Artificial Intelligence: A Modern Ap-proach, 3rd edition, Pearson, 2014.

[Winston, 1992] P.H. Winston, Artificial Intelligence, 3rd edition, Addison-Wesley, 1992.[Σακελλαρίου, κ.ά., 2015] Η. Σακελλαρίου, Ν. Βασιλειάδης, Π. Κεφαλάς και Δ. Σταμάτης,

Τεχνικές Λογικού Προγραμματισμού - Η Γλώσσα Prolog, [ηλεκτρ. βιβλ.],

Page 18: ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η καλύτερη μέχρι τώρα λύση

Σύνδεσμος Ελληνικών Ακαδημαϊκών Βιβλιοθηκών, 2015. Διαθέσιμο στο: http://hdl.handle.net/ 11419/777

Page 19: ΚΕΦΑΛΑΙΟ 3 · Web view3.Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η καλύτερη μέχρι τώρα λύση