Επίλυση προβληµάτων Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης! Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης Παιχνίδια δύο αντιπάλων Προβλήµατα ικανοποίησης περιορισµών Αλγόριθµοι τυφλής αναζήτησης " Οι αλγόριθµοι τυφλής αναζήτησης (blind search algorithms) εφαρµόζονται σε προβλήµατα στα οποία δεν υπάρχει πληροφορία που να επιτρέπει την αξιολόγηση των καταστάσεων του χώρου αναζήτησης. " Παράδειγµα: Έστω το πρόβληµα των ποτηριών: Γιάννης Ρεφανίδης 26 1
Παράδειγµα (1/2) " Τελεστής: Γέµισε το ποτήρι των Χ ml µέχρι το χείλος από τη βρύση " Προϋποθέσεις: Το ποτήρι των Χ ml έχει 0 ml " Αποτελέσµατα: Το ποτήρι των Χ ml έχει Χ ml " Τελεστής: Γέµισε το ποτήρι των Χ ml από το ποτήρι των Υ ml " Προϋποθέσεις " Το ποτήρι των Χ ml έχει Ζ ml " Το ποτήρι των Y ml έχει W ml (W 0) " Αποτελέσµατα " Το ποτήρι των Χ ml έχει Χ ml και το ποτήρι των Υ ml έχει W-(X-Z), αν W X-Z # ή " Το ποτήρι των Χ ml έχει Ζ+W ml και Το ποτήρι των Υ ml έχει 0, αν W<X-Z " Τελεστής: Άδειασε το ποτήρι των Χ ml στο νεροχύτη " Προϋποθέσεις: Το ποτήρι έχει περιεχόµενο " Γιάννης Ρεφανίδης ΑποτελέσµαταΤο ποτήρι των Χ ml έχει 0 ml 27 Παράδειγµα (2/2) Γιάννης Ρεφανίδης 28 2
Αναζήτηση Πρώτα σε Βάθος (Depth-First Search, DFS) " Ο αλγόριθµος πρώτα σε βάθος επιλέγει προς επέκταση την κατάσταση που βρίσκεται πιο βαθιά στο δένδρο. " Βήµατα: 1. Βάλε την αρχική κατάσταση στο µέτωπο της αναζήτησης. 2. Αν το µέτωπο της αναζήτησης είναι κενό τότε σταµάτησε. 3. Βγάλε την πρώτη κατάσταση από το µέτωπο της αναζήτησης. 4. Αν είναι η κατάσταση µέλος του κλειστού συνόλου τότε πήγαινε στο βήµα 2. 5. Αν η κατάσταση είναι µία από τις τελικές, τότε ανέφερε τη λύση. 6. Αν θέλεις και άλλες λύσεις πήγαινε στο βήµα 2. Αλλιώς σταµάτησε. 7. Εφάρµοσε τους τελεστές µετάβασης για να βρεις τις καταστάσεις-παιδιά. 8. Βάλε τις καταστάσεις-παιδιά στην αρχή του µετώπου της αναζήτησης. 9. Βάλε την κατάσταση-γονέα στο κλειστό σύνολο. Γιάννης Ρεφανίδης 10. Πήγαινε στο βήµα 2. 29 Αναζήτηση πρώτα σε βάθος Παράδειγµα (1/2) Γιάννης Ρεφανίδης 30 3
Αναζήτηση πρώτα σε βάθος Παράδειγµα (2/2) <Α> Μέτωπο της αναζήτησης <Β, Γ> <Α,, Γ> <, Γ> <Β,Ζ,Γ,Γ> <Ζ,Γ,Γ> <Α,Θ,,Γ,Γ> <Θ,,Γ,Γ> <Ζ,,Ι,,Γ,Γ> <,Ι,,Γ,Γ> <Ι,,Γ,Γ> <Κ,Γ,Β,,Γ,Γ> Κλειστό Σύνολο {} {Α} {Α,Β} {Α,Β} {Α,Β, } {Α,Β, } {Α,Β,,Ζ} {Α,Β,,Ζ} {Α,Β,,Ζ,Θ} {Α,Β,,Ζ,Θ} {Α,Β,,Ζ,Θ} {Α,Β,,Ζ,Θ,Ι} Κατάσταση Παιδιά Α <Β, Γ> Β <Α, > Α -(βρόχος) <Β,Ζ,Γ> Β -(βρόχος) Ζ <Α,Θ, > Α -(βρόχος) Θ <Ζ,,Ι> Ζ -(βρόχος) -(βρόχος) Ι Γιάννης Ρεφανίδης 31 Κ <Κ,Γ,Β> ΤΕΛΙΚΗ Παρατηρήσεις " Το µέτωπο της αναζήτησης είναι µια δοµή στοίβας(stack LIFO, Last In First Out) " Η εξέταση αµέσως προηγουµένων (χρονικά) καταστάσεων ονοµάζεται χρονική οπισθοδρόµηση (chronological backtracking). " Πλεονεκτήµατα: " Έχει µικρές απαιτήσεις σε χώρο διότι το µέτωπο της αναζήτησης δε µεγαλώνει πάρα πολύ. " Μειονεκτήµατα: " εν εγγυάται ότι η πρώτη λύση που θα βρεθεί είναι η βέλτιστη (µονοπάτι µε το µικρότερο µήκος ή µε µικρότερο κόστος). " Εν γένει θεωρείται ατελής (αν δεν υπάρχει έλεγχος βρόχων ή αν ο χώρος αναζήτησης είναι µη πεπερα-σµένος) Γιάννης Ρεφανίδης 32 4
Αναζήτηση Πρώτα σε Πλάτος (Breadth-First Search, BFS) " Ο αλγόριθµος αναζήτησης πρώτα σε πλάτος εξετάζει πρώτα όλες τις καταστάσεις που βρίσκονται στο ίδιο βάθος και µετά συνεχίζει στην επέκταση καταστάσεων στο αµέσως επόµενο επίπεδο. " Βήµατα: 1. Βάλε την αρχική κατάσταση στο µέτωπο της αναζήτησης. 2. Αν το µέτωπο της αναζήτησης είναι κενό τότε σταµάτησε. 3. Βγάλε την πρώτη κατάσταση από το µέτωπο της αναζήτησης. 4. Αν είναι η κατάσταση µέλος του κλειστού συνόλου τότε πήγαινε στο βήµα 2. 5. Αν η κατάσταση είναι µία τελική τότε ανέφερε τη λύση. 6. Αν θέλεις και άλλες λύσεις πήγαινε στο βήµα 2. Αλλιώς σταµάτησε. 7. Εφάρµοσε τους τελεστές µεταφοράς για να βρεις τις καταστάσειςπαιδιά. 8. Βάλε τις καταστάσεις-παιδιά στο τέλος του µετώπου της αναζήτησης. 9. Βάλε την κατάσταση-γονέα στο κλειστό σύνολο. 10. Πήγαινε στο βήµα 2. Γιάννης Ρεφανίδης 33 Αναζήτηση πρώτα σε πλάτος Παράδειγµα (1/3) Γιάννης Ρεφανίδης 34 5
Αναζήτηση πρώτα σε πλάτος Παράδειγµα (2/3) Μέτωπο αναζήτησης <Α> <Β, Γ> <Γ,Α, > <Α,,Ε,Α> <,Ε,Α> <Ε,Α,Β,Ζ,Γ> <Α,Β,Ζ,Γ,Α,Η> <Β,Ζ,Γ,Α,Η> <Ζ,Γ,Α,Η> <Γ,Α,Η,Α,Θ, > <Α,Η,Α,Θ, > {} {Α} {Α,Β} {Α,Β,Γ} {Α,Β,Γ} Κλειστό Σύνολο {Α,Β,Γ, } {Α,Β,Γ,,Ε} {Α,Β,Γ,,Ε} {Α,Β,Γ,,Ε} {Α,Β,Γ,,Ε,Ζ} {Α,Β,Γ,,Ε,Ζ} Κατάσταση Α Β Γ Α Ε Α Β Ζ Γ Γιάννης Ρεφανίδης 35 Α <Β, Γ> <Α, > <Ε,Α> -(βρόχος) <Β,Ζ,Γ> <Α,Η> Παιδιά -(βρόχος) -(βρόχος) <Α,Θ, > -(βρόχος) -(βρόχος) Αναζήτηση πρώτα σε πλάτος Παράδειγµα (3/3) <Α,Θ,,Ε,Γ> <Θ,,Ε,Γ> <,Ε,Γ,Ζ,,Ι> <Ε,Γ,Ζ,,Ι> <Γ,Ζ,,Ι> <Ζ,,Ι> <,Ι> <Ι> Μέτωπο αναζήτησης <Η,Α,Θ, > <Κ,Γ,Β> Κλειστό Σύνολο Κατάσταση Παιδιά {Α,Β,Γ,,Ε,Ζ} Η <Ε,Γ> {Α,Β,Γ,,Ε,Ζ,Η} Α -(βρόχος) {Α,Β,Γ,,Ε,Ζ,Η} Θ <Ζ,,Ι> {Α,Β,Γ,,Ε,Ζ,Η} -(βρόχος) {Α,Β,Γ,,Ε,Ζ,Η} Ε -(βρόχος) {Α,Β,Γ,,Ε,Ζ,Η} Γ -(βρόχος) {Α,Β,Γ,,Ε,Ζ,Η} Ζ -(βρόχος) {Α,Β,Γ,,Ε,Ζ,Η} -(βρόχος) {Α,Β,Γ,,Ε,Ζ,Η} Ι <Κ,Γ,Β> {Α,Β,Γ,,Ε,Ζ,Η,Ι} Κ ΤΕΛΙΚΗ Γιάννης Ρεφανίδης 36 6
Παρατηρήσεις " Το µέτωπο της αναζήτησης είναι µια δοµή ουράς (Queue FIFO, δηλαδή First In First Out). " Πλεονεκτήµατα: " Βρίσκει πάντα την καλύτερη λύση (µικρότερη σε µήκος). " Είναι πλήρης. " Μειονεκτήµατα: " Το µέτωπο της αναζήτησης µεγαλώνει πολύ σε µέγεθος. Γιάννης Ρεφανίδης 37 Επαναληπτική Εκβάθυνση (Iterative deepening, ID) " Ο αλγόριθµος επαναληπτικής εκβάθυνσης συνδυάζει τους DFS και BFS ως εξής: " Ορίζει ένα αρχικό βάθος αναζήτησης, έστω d. " Εκτελεί τον DFS σε όλο το χώρο αναζήτησης µέχρι κάποιο συγκεκριµένο βάθος. " Εάν δεν βρεθεί λύση, αυξάνει το d και ξαναεκτελεί τον DFS εξαρχής και µέχρι το νέο βάθος. Γιάννης Ρεφανίδης 38 7
Επαναληπτική Εκβάθυνση Παράδειγµα (1/3) Έστω βήµα=2 d=2 Γιάννης Ρεφανίδης 39 Επαναληπτική Εκβάθυνση Παράδειγµα (2/3) d=4 Γιάννης Ρεφανίδης 40 8
Επαναληπτική Εκβάθυνση Παράδειγµα (3/3) Γιάννης Ρεφανίδης 41 d=6 Παρατηρήσεις " Μειονεκτήµατα: " Όταν ο αλγόριθµος ID ξαναρχίσει µε διαφορετικό βάθος, δεν θυµάται τίποτα από την προηγούµενη αναζήτηση. " Πλεονεκτήµατα: " Είναι πλήρης. " Έχει µικρές απαιτήσεις σε µνήµη. " εν χάνεται σε κλαδιά άπειρου µήκους. " Αν το βάθος αυξάνεται κατά 1 σε κάθε κύκλο και ο ID βρει λύση, τότε αυτή η λύση θα είναι η καλύτερη. " Αν το βάθος αυξάνεται κατά d σε κάθε βήµα, τότε η πρώτη λύση που θα βρεθεί θα είναι το πολύ κατά d-1 µεγαλύτερη της βέλτιστης. Γιάννης Ρεφανίδης 42 9
Αναζήτηση ιπλής Κατεύθυνσης (Bidirectional Search, BiS) " Γενική ιδέα: " Ξεκινούµε να ψάχνουµε ταυτόχρονα από την αρχική προς την τελική κατάσταση, αλλά και από την τελική προς την αρχική. " Οι δύο κατευθύνσεις της αναζήτησης µπορούν να εκτελεστούν παράλληλα. " Όταν οι δύο κατευθύνσεις αναζήτησης συναντήσουν την ίδια κατάσταση, ο αλγόριθµος τερµατίζει. " εν µας ενδιαφέρει ποιος αλγόριθµος αναζήτησης χρησιµοποιείται σε κάθε κατεύθυνση (µπορεί να είναι και διαφορετικοί). " Προϋποθέσεις κάτω από τις οποίες µπορεί να εφαρµοστεί: " Οι τελεστές µετάβασης είναι αντιστρέψιµοι (reversible), και " Είναι πλήρως γνωστή η τελική κατάσταση. " Μειονεκτήµατα " Υπάρχει επιπλέον κόστος που οφείλεται στην επικοινωνία µεταξύ των δύο αναζητήσεων. Γιάννης Ρεφανίδης 43 Αναζήτηση ιπλής Κατεύθυνσης Παράδειγµα Ηαναζήτηση ξεκινά ταυτόχρονα από τα τετράγωνα (1,4) και (15,10). Με κίτρινο φαίνονται οι θέσεις (καταστάσεις) κατά την αναζήτηση προς τα εµπρός και µε µπλε οι θέσεις που επισκέπτεται ο αλγόριθµος κατά την αναζήτηση προς τα πίσω. Γιάννης Ρεφανίδης 44 Το πράσινο τετράγωνο είναι εκεί που "συναντήθηκαν" οι δύο αναζητήσεις. 10
Επέκταση και Οριοθέτηση (Branch and Bound, B&B) " Ο αλγόριθµος επέκτασης και οριοθέτησης εφαρµόζεται σε προβλήµατα όπου: " Κάθε τελεστής (ενέργεια) χαρακτηρίζεται από ένα θετικό κόστος. " Αναζητείται η βέλτιστη λύση, δηλαδή εκείνη µε το ελάχιστο συνολικό κόστος. " Γενική ιδέα: " Βρίσκει την πρώτη λύση χρησιµοποιώντας οποιονδήποτε αλγόριθµο (π.χ. DFS B&B, BFS B&B, κλπ). " Στη συνέχεια απορρίπτει κάθε κατάσταση που συναντά στο χώρο αναζήτησης, της οποίας το κόστος επίτευξης είναι µεγαλύτερο από το κόστος επίτευξης της καλύτερης µέχρι εκείνη τη στιγµή λύσης. Γιάννης Ρεφανίδης 45 Παράδειγµα Το πρόβληµα TSP (1/3) (Travelling Salesperson Problem) Αναζητούµε την καλύτερη σειρά (µικρότερο κόστος) µε την οποία πρέπει ένας πωλητής να επισκεφθεί τις 5 πόλεις, µια φορά κάθε πόλη, και να επιστρέψει στην αρχική. Γιάννης Ρεφανίδης 46 11
Παράδειγµα Το πρόβληµα TSP (2/3) " Έστω ότι ακολουθούµε DFS B&B στρατηγική. Μέτωπο αναζήτησης <α> <αβ 8, αγ 5, αδ 10, αε 8 > <αβγ 15,αβδ 14,αβε 14,αγ 5,... > <αβγδ 24,αβγε 18, αβδ 14, αβε 14...> <αβγδε 28, αβγε 18, αβδ 14,...> < αβγδεα 36, αβγε 18, αβδ 14,..> Κόστος λύσης + + + + + 36 Τρέχουσα Κατάσταση α αβ αβγ αβγδ αβγδε αβγδεα αβ 8,αγ 5,αδ 10,αε 8 αβγ 15,αβδ 14, αβε 14 αβγδ 24, αβγε 18 αβγδε 28 αβγδεα 36 Παιδιά Τελική Κατάσταση Γιάννης Ρεφανίδης 47 Παράδειγµα Το πρόβληµα TSP (3/3)... Μέτωπο αναζήτησης <αβγε 18, αβδ 14,... > <αβγεδ 22,αβδ 14,...> < αβγεδα 32,αβδ 14,αβε 14...> <αβδεγα 26,...> Κόστος λύσης 36 36 32... 26 Τρέχουσα Κατάσταση αβγε αβγεδ αβγεδα... αβδεγα Παιδιά αβγεδ 22 αβγεδα 32 Τελική Κατάσταση... Τελική Κατάσταση... <αβεγδ 26,...>... <αεβγδ 30,...>...... 26... 26......... αβεγδ Κλάδεµα...... αεβγδ Γιάννης Ρεφανίδης 48...... Κλάδεµα 12
Επίλυση προβληµάτων Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Αλγόριθµοι τυφλής αναζήτησης! Αλγόριθµοι ευρετικής αναζήτησης Παιχνίδια δύο αντιπάλων Προβλήµατα ικανοποίησης περιορισµών Αλγόριθµοι Ευρετικής Αναζήτησης (Heuristic Search Algorithms) " Ευρετικός µηχανισµός (heuristic) είναι µία στρατηγική, βασισµένη στη γνώση για το συγκεκριµένο πρόβληµα, η οποία χρησιµοποιείται ως βοήθηµα στη γρήγορη επίλυσή του. " Ο ευρετικός µηχανισµός υλοποιείται συνήθως µε ευρετική συνάρτηση (heuristic function), που έχει πεδίο ορισµού το σύνολο των καταστάσεων ενός προβλήµατος και πεδίο τιµών το σύνολο τιµών που αντιστοιχεί σε αυτές. " Ευρετική τιµή (heuristic value) είναι η τιµή της ευρετικής συνάρτησης για µια συγκεκριµένη κατάσταση του προβλήµατος και εκφράζει το πόσο κοντά βρίσκεται η κατάσταση αυτή σε µία τελική. " Η ευρετική τιµή δενείναιη πραγµατική τιµή της απόστασης από µία τερµατική κατάσταση, αλλά µία εκτίµηση (estimate) που πολλές φορές µπορείναείναικαιλανθασµένη. Γιάννης Ρεφανίδης 50 13
Ευρετικές Συναρτήσεις σε Μικρά Προβλήµατα (1/3) " Προβλήµατα λαβυρίνθου " Ευκλείδειος απόσταση (Euclidian distance) " d( S, F) = ( X S X F ) 2 + ( Y " Απόσταση Manhattan (Manhattan distance): " Md(S,F) = XS - XF + YS -YF S Y F ) 2 Γιάννης Ρεφανίδης 51 Ευρετικές Συναρτήσεις σε Μικρά Προβλήµατα (2/3) " N-Puzzle " Το πλήθος των πλακιδίων που είναι εκτός θέσης. " Το άθροισµα των αποστάσεων Manhattan κάθε πλακιδίου από την τελική του θέση. Εκτός Θέσης = 11 Άθροισµα Manhattan αποστάσεων = 25 Αρχική κατάσταση 7 14 3 6 8 10 2 12 9 1 5 11 13 15 4 7 8 15 5 14 10 2 12 9 1 6 11 13 4 3 Ευρετική Τιµή (εκτίµηση απόστασης) Τυχαία κατάσταση 1 2 3 4 5 6 7 8 Γιάννης9 Ρεφανίδης 10 11 12 52 13 14 15 Τελική κατάσταση 14
Ευρετικές Συναρτήσεις σε Μικρά Προβλήµατα (3/3) " Ευρετικός µηχανισµός (όχι συνάρτηση) στο πρόβληµα TSP " Η κοντινότερη πόλη έχει κάθε φορά περισσότερες πιθανότητες να οδηγήσει σε µία καλή λύση. " Ακολουθώντας τον παραπάνω µηχανισµό και ξεκινώντας από την α, θα επιλέγαµε: α γ ε δ β α µε κόστος 26. Γιάννης Ρεφανίδης 53 Αναζήτηση Πρώτα στο Καλύτερο (Best-First Search, BestFS) " Γενική ιδέα: Οι καταστάσεις στο µέτωπο αναζήτησης ταξινοµούνται βάση της τιµής της ευρετικής συνάρτησης, ενώ σε κάθε επανάληψη επιλέγεται αυτή µε την µικρότερη ευρετική τιµή. " Πλεονεκτήµατα: " Προσπαθεί να δώσει µια γρήγορη λύση σε κάποιο πρόβληµα. Το αν τα καταφέρει ή όχι εξαρτάται πολύ από τον ευρετικό µηχανισµό. " Είναι πλήρης. " Μειονεκτήµατα: " Το µέτωπο αναζήτησης µεγαλώνει µε υψηλό ρυθµό και µαζί του ο χώρος που χρειάζεται για την αποθήκευσή του, καθώς και ο χρόνος για την επεξεργασία των στοιχείων του. " εν εγγυάται ότι η λύση που θα βρεθεί είναι η βέλτιστη. Γιάννης Ρεφανίδης 54 15
Παράδειγµα: Το πρόβληµα του λαβύρινθου (1/2) <5-5> <5-4 5,5-6 7,4-5 7 > <6-4 4,5-5 6,5-6 7,4-5 7 > 6 5 4 3 2 1 Μέτωπο αναζήτησης <6-3 3,7-4 3,5-5 6,5-6 7,...> <7-3 2,6-2 3,7-4 3,6-4 4,5-5 6,...> <6-3 3,6-2 3,7-4 3,6-4 4,5-5 6,...> <6-2 3,7-4 3,6-4 4,5-5 6,5-6 7,...> 9 8 <> 9 7 8 7 S Κλειστό σύνολο <5-5> <5-5,5-4> <5-5,5-4,6-4> <5-5,5-4,...> <...,6-3,...> <...> 5 7 6 5 6 5 4 4 3 2 3 4 3 1 2 3 2 F 1 4 1 8 7 6 4 3 2 3 1 2 3 4 5 6 7 8 9 10 Τρέχουσα κατάσταση 5-5 5-4 6-4 6-3 7-3 6-3 Γιάννης Ρεφανίδης 55 6-2 5-4 5,5-6 7,4-5 7 5-5 6,6-4 4 5-4 7,6-3 3,7-4 3 6-4 4,6-2 3,7-3 2 6-3 3,6-4 4 Βρόχος Παιδιά 5-2 5,6-3 3 Παράδειγµα: Το πρόβληµα του λαβύρινθου (2/2) <7-4 3,6-4 4,5-2 5,...> <7-5 4,6-4 4,5-2 5,...> <8-5 3,7-4 3,6-4 4,...> <9-4 1,8-5 3,7-4 3,...> <9-3 0,9-5 2,10-4 2,...> 6 5 4 3 2 1 Μέτωπο αναζήτησης <7-3 2,7-5 4,6-4 4,5-2 5,...> <9-5 2,7-4 3,6-4 4,8-6 4,...> 9 8 9 7 8 7 S <...> <..,7-3,..> <...> <...> <...> <...> <...> 5 7 6 5 Κλειστό σύνολο 6 5 4 4 3 2 3 4 3 1 2 3 2 F 1 4 1 8 7 6 4 3 2 3 1 2 3 4 5 6 7 8 9 10 Τρέχουσα κατάσταση 7-4 7-3 7-5 8-5 9-5 9-4 Γιάννης Ρεφανίδης 56 9-3 7-5 4,6-4 4,7-3 2 Βρόχος 7-4 3,8-5 3,7-6 5 8-6 4,7-5 4,9-5 2 8-5 3,9-4 1 9-3 0,9-5 2,10-4 2 ΤΕΛΙΚΗ Παιδιά 16
Παράδειγµα-2: BestFS σε N-puzzle (1/2) Γιάννης Ρεφανίδης 57 Παράδειγµα-2: BestFS σε N-puzzle (2/2) Ευρετική συνάρτηση = Πλακάκια σε λάθος θέση Γιάννης Ρεφανίδης 58 17
Αναρρίχηση Λόφων (1/2) (Hill-Climbing, HC) " Η αναρρίχηση λόφων µοιάζει µε την αναζήτηση πρώτα-στο-καλύτερο, µε τις εξής διαφορές: " εν έχει σύνορο αναζήτησης. " εν έχει κλειστό σύνολο " Μειονεκτήµατα: " εν θυµάται και άρα δεν επιστρέφει να εξετάσει τις εναλλακτικές "διαδροµές". " Άρα µπορεί να µην βρει λύση, ακόµη και όταν υπάρχει. " Μπορεί να επισκεφθεί πολλές φορές την ίδια κατάσταση. " Πλεονέκτηµα: " Μηδενικές απαιτήσεις σε µνήµη. Γιάννης Ρεφανίδης 59 Αναρρίχηση Λόφων (2/2) " Βασικά προβλήµατα του HC: " Λόφοι (hills). " Οροπέδιο (plateau). " Κορυφογραµµή (ridges). " Βελτιώσεις: " Τυχαίες επανεκινήσεις (Random restarts) " Εξαναγκασµένη αναρρίχηση λόφου (Enforced Hill- Climbing - EHC) " Προσοµοιωµένη εξέλιξη (Simulated Annealing - SA) " Αναζήτηση µε απαγορευµένες καταστάσεις (Tabu Search - TS). Γιάννης Ρεφανίδης 60 18
Παράδειγµα: Το πρόβληµα των βασιλισσών (1/2) " Θέλουµε να βάλουµε 4 βασίλισσες σε µια σκακιέρα 4x4, έτσι ώστε καµία να µην απειλεί τις άλλες. " Προφανώς σε κάθε στήλη θα υπάρχει µία µόνο βασίλισσα. " Ξεκινάµε µε όλες τις βασίλισσες στην κάτω γραµµή. " Σε κάθε βήµα µπορούµε να µετακινήσουµε µια βασίλισσα σέ µια άλλη θέση στη στήλη της, άρα οι δυνατές κινήσεις είναι 4x3=12. " Χρησιμοποιούμε ως ευρετική συνάρτηση το πόσες απειλές υπάρχουν κάθε φορά (όλες οι απειλές είναι διπλές, εμείς τις μετράμε ως μία απειλή κάθε φορά). Γιάννης Ρεφανίδης 61 Παράδειγµα: Το πρόβληµα των βασιλισσών (2/2) 6 3 1 0 Στο συγκεκριµένο παράδειγµα είµασταν τυχεροί, µιας και όλες οι επιλογές µας βγήκαν σωστές. οκιµάστε να λύσετε το ίδιο πρόβληµα σε σκακιέρα 8x8 µε 8 βασίλλισες. Γιάννης Ρεφανίδης 62 19
Παράδειγµα (προς αποφυγή): Λαβύρινθος 6 5 4 3 2 1 9 7 6 5 4 8 7 S 4 3 2 3 5 4 3 1 2 9 8 3 2 F 1 7 6 5 4 1 8 7 6 4 3 2 3 1 2 3 4 5 6 7 8 9 10 Στο παράδειγµα αυτό η εφαρµογή της αναζήτησης µε αναρρίχηση λόφων θα οδηγούσε στην εξής ακολουθία καταστάσεων: (5,5) (5,4) (6,4) (7,4) (7,3) (7,4) (7,3) (7,4) (7,3)... µε αποτέλεσµα να µην βρεθεί ποτέ λύση. Γενικά, η αναρρίχηση λόφου δεν είναι καλή αναζήτηση σε προβλήµατα όπου υπάρχουν αδιέξοδα, τοπικά µέγιστα, οροπέδια κλπ. Γιάννης Ρεφανίδης 63 ΟΑλγόριθµος Α* (A-star) " Ο αλγόριθµος Α* είναι ίδιος µε την αναζήτηση πρώτα-στο-καλύτερο, µε την εξής διαφορά: " Η ευρετική συνάρτηση στον Α* αποτελείται από το άθροισµα της εκτίµησης της απόστασης της τρέχουσας κατάστασης από το τέλος και τη γνωστή απόσταση της τρέχουσας κατάστασης από την αρχική. " F(S)=g(S)+h(S), όπου: " S : η τρέχουσα κατάσταση " g(s) : Η απόσταση της τρέχουσας κατάστασης από την αρχική. " h(s) : Η εκτίµηση της απόστασης της τρέχουσας κατάστασης από το τέλος. Γιάννης Ρεφανίδης 64 20
Σηµαντική ιδιότητα " Αν για κάθε κατάσταση η τιµή h(s) είναι µικρότερη ή το πολύ ίση µε την πραγµατική απόσταση της S από την τελική κατάσταση, τότε ο Α* βρίσκει πάντα τη βέλτιστη λύση. " Ευρετικές συναρτήσεις που επιστρέφουν πάντα εκτιµήσεις µικρότερες της κανονικής (υπο-εκτιµήσεις) ονοµάζονται παραδεκτές συναρτήσεις (admissible functions). Γιάννης Ρεφανίδης 65 Παράδειγµα: Μη-Παραδεκτή Συνάρτηση A h=4 F=0+4=4 Αρχική h=2 Β 4 F=4+2=6 3 3 Γ h=5 F=3+5=8 3 h=0 F1=7+0=7 F2=6+0=6 Τελική Μέτωπο αναζήτησης Κλειστό σύνολο Τρέχουσα κατάσταση Παιδιά Α 4 Α ΑΒ 6, ΑΓ 8 ΑΒ 6, ΑΓ 8 Α ΑΒ 6 ΑΒ 7 ΑΒ 7, ΑΓ 8 Α, ΑΒ ΑΒ 7 Λύση Γιάννης Ρεφανίδης 66 21
Παράδειγµα: Παραδεκτή Συνάρτηση A h=4 F=0+4=4 Αρχική h=2 Β 4 F=4+2=6 3 3 Γ h=3 F=3+3=6 3 h=0 F1=7+0=7 F2=6+0=6 Τελική Μέτωπο αναζήτησης Κλειστό σύνολο Τρέχουσα κατάσταση Παιδιά Α 4 Α ΑΒ 6, ΑΓ 6 ΑΒ 6, ΑΓ 6 A ΑΒ 6 ΑΒ 7 ΑΓ 6, ΑΒ 7 Α, ΑΒ ΑΓ 6 ΑΓ 6 ΑΓ 6, ΑΒ 7 Α, ΑΓ, ΑΒ ΑΓ 6 Λύση Γιάννης Ρεφανίδης 67 Παράδειγµα: Σύγκριση BestFS και A* A Αρχική h=4 4 h=2 Β 3 3 Γ 3 h=3 h=0 Τελική Λύση στο προηγούµενο παράδειγµα µε χρήση BestFS: Μέτωπο αναζήτησης Α ΑΒ, ΑΓ ΑΒ, ΑΓ Κλειστό σύνολο Α Γιάννης Ρεφανίδης 68 Α, ΑΒ Τρέχουσα κατάσταση Α ΑΒ ΑΒ Παιδιά ΑΒ, ΑΓ ΑΒ Λύση 22