ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ

Σχετικά έγγραφα
Κεφάλαιο 5. Αλγόριθµοι Αναζήτησης σε Παίγνια ύο Αντιπάλων. Τεχνητή Νοηµοσύνη - Β' Έκδοση

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Επίλυση Προβλημάτων 1

Αλγόριθμοι Αναζήτησης σε Παίγνια Δύο Αντιπάλων

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Επίλυση προβληµάτων. Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης

Επίλυση Προβλημάτων και Τεχνικές Αναζήτησης Εισαγωγή

Αλγόριθµοι Ευριστικής Αναζήτησης

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

Κεφάλαιο 3. Αλγόριθµοι Τυφλής Αναζήτησης. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η.

Αλγόριθµοι Ευριστικής Αναζήτησης

Επίλυση Προβλημάτων 1

Εφαρμόζονται σε προβλήματα στα οποία δεν υπάρχει πληροφορία που να επιτρέπει την αξιολόγηση των καταστάσεων του χώρου αναζήτησης.

Τεχνητή Νοημοσύνη. 3η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Επίλυση Προβλημάτων. Αποτελεί ένα από τα βασικά χαρακτηριστικά γνωρίσματα της νοημοσύνης.

Επίλυση προβληµάτων. Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης

Επίλυση Προβλημάτων. Περιγραφή Προβλημάτων Αλγόριθμοι αναζήτησης Αλγόριθμοι τυφλής αναζήτησης. Αλγόριθμοι ευρετικής αναζήτησης Παιχνίδια δύο αντιπάλων

ΤΥΦΛΗ ΑΝΑΖΗΤΗΣΗ (1) ΣΤΡΑΤΗΓΙΚΗ Ή ΑΛΓΟΡΙΘΜΟΣ ΑΝΑΖΗΤΗΣΗΣ

Τεχνητή Νοημοσύνη. 6η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 2η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Επίλυση προβληµάτων. Αλγόριθµοι Αναζήτησης

Ασκήσεις μελέτης της 6 ης διάλεξης

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

Τεχνητή Νοημοσύνη. 4η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Επίλυση προβλημάτων με αναζήτηση

Θεωρία Λήψης Αποφάσεων

Θεωρία Παιγνίων Δρ. Τασσόπουλος Ιωάννης

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 8: Παίγνια πλήρους και ελλιπούς πληροφόρησης

Ε ανάληψη. Α ληροφόρητη αναζήτηση

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Κεφάλαιο 4. Αλγόριθµοι Ευριστικής Αναζήτησης. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ

Επίλυση Προβληµάτων. ! Αποτελεί ένα από τα βασικά χαρακτηριστικά γνωρίσµατα της νοηµοσύνης. ! Χαρακτηριστικά αλγορίθµων:

Επίλυση Προβλημάτων 1

Κεφάλαιο 2. Περιγραφή Προβληµάτων και Αναζήτηση Λύσης. Τεχνητή Νοηµοσύνη - Β' Έκδοση

Επίλυση Προβλημάτων 1

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007

Περιγραφή Προβλημάτων

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Προγραμματισμός Ι (ΗΥ120)

Θεωρία Λήψης Αποφάσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Μαθηματικά των Υπολογιστών και των Αποφάσεων Τεχνητή Νοημοσύνη 1η Σειρά Ασκήσεων

Αλγόριθμοι Ευρετικής Αναζήτησης

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

ΠΑΙΓΝΙΑ Παιχνίδια Γενική Θεώρηση μεγιστοποιήσει την πιθανότητά

Περιεχόμενα και προετοιμασία για τέσσερις παίκτες

ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ

Το Κ2 είναι ένα παιχνίδι για 1 έως 5 παίκτες, ηλικίας 8 ετών και άνω, με διάρκεια περίπου 60 λεπτά.

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 3: Αλγόριθμοι πληροφορημένης αναζήτησης. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

PROJECT ΣΤΟ ΜΑΘΗΜΑ "ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΥΣ"

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεωρία Παιγνίων και Αποφάσεων Διδάσκων: Ε. Μαρκάκης, Εαρινό εξάμηνο 2015

Θεωρήστε ένα puzzle (παιχνίδι σπαζοκεφαλιάς) με την ακόλουθη αρχική διαμόρφωση : b b b w w w e

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 5: Παραδείγματα. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής


Θεωρία Λήψης Αποφάσεων

Chess Academy Free Lessons Ακαδημία Σκάκι Δωρεάν Μαθήματα. Οι κινήσεις των κομματιών Σκοπός της παρτίδας, το Ματ Πατ Επιμέλεια: Γιάννης Κατσίρης

Θεωρία Παιγνίων και Αποφάσεων. Ενότητα 5: Εύρεση σημείων ισορροπίας σε παίγνια μηδενικού αθροίσματος. Ε. Μαρκάκης. Επικ. Καθηγητής

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής

Για παράδειγμα η αρχική και η τελική κατάσταση αναπαριστώνται ως εξής: (ένα λίτρο)

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο

Επίλυση Προβληµάτων. Αποτελεί ένα από τα βασικά χαρακτηριστικά γνωρίσµατα της νοηµοσύνης.

Δομές Δεδομένων. Τι είναι η δομή δεδομένων; Έστω η ακολουθία αριθμών: 8, 10,17,19,22,5,12 Λογικό Επίπεδο. Φυσικό Επίπεδο RAM. Ταξινομημένος.

Δομές Δεδομένων & Αλγόριθμοι

ΑΥΤΟΝΟΜΟΙ ΠΡΑΚΤΟΡΕΣ. ΑΝΑΦΟΡΑ ΕΡΓΑΣΙΑΣ Othello-TD Learning. Βόλτσης Βαγγέλης Α.Μ

Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem

Αναζήτηση σε Γράφους. Μανόλης Κουμπαράκης. ΥΣ02 Τεχνητή Νοημοσύνη 1

Ορολογία Αλγόριθμος, υπολογιστική σκέψη, αλγοριθμική σκέψη, αποδοτικότητα, δοκιμή.

Προγραμματισμός Ι (ΗΥ120)

ΙΚΑΝΟΠΟΙΗΣΗ ΠΕΡΙΟΡΙΣΜΩΝ

Περιεχόμενα του Παιχνιδιού

ιαµέριση - Partitioning

Κατακερματισμός (Hashing)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ

Αυτόνομοι Πράκτορες. Εργασία εξαμήνου. Value Iteration και Q- Learning για Peg Solitaire

Αυτόνομοι Πράκτορες. Εργασία εξαμήνου. Μάθηση του παιχνιδιού British square με χρήση Temporal Difference(TD) Κωνσταντάκης Γιώργος

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Θεωρία Λήψης Αποφάσεων

Προγραμματισμός Ι (ΗΥ120)

1 Διάσχιση κατευθυνόμενων γραφημάτων

Ε ανάληψη. Προβλήµατα ικανο οίησης εριορισµών. ορισµός και χαρακτηριστικά Ε ίλυση ροβληµάτων ικανο οίησης εριορισµών

Ε ανάληψη. Ε αναλαµβανόµενες καταστάσεις. Αναζήτηση µε µερική ληροφόρηση. Πληροφορηµένη αναζήτηση. µέθοδοι αποφυγής

EMOJITO! 7 Δίσκοι Ψηφοφορίας. 100 Κάρτες Συναισθημάτων. 1 Ταμπλό. 7 Πιόνια παικτών. 2-7 Παίκτες

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

ΠΛΗ 405 Τεχνητή Νοηµοσύνη

Θέμα 1: Robbie και Αναζήτηση

Σκοπός του παιχνιδιού Σκοπός του παιχνιδιού είναι να τοποθετήσει πρώτος ο παίκτης όλα τα πλακίδιά του στο τραπέζι.

ΕΡΩΤΗΜΑΤΑ σε ΑΝΑΖΗΤΗΣΗ

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο

4 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων

Ασκήσεις ανακεφαλαίωσης στο μάθημα Τεχνητή Νοημοσύνη

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Τεχνητή Νοημοσύνη. Ενότητα 3: Αναζήτηση

Θεωρία Παιγνίων και Αποφάσεων. Ενότητα 3: Παίγνια με περισσότερους παίκτες και μέθοδοι απλοποίησης παιγνίων. Ε. Μαρκάκης. Επικ.

Κεφ. 9 Ανάλυση αποφάσεων

Transcript:

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΑΛΓΟΡΙΘΜΟΙ ΕΥΡΕΣΗΣ ΛΥΣΗΣ ΑΛΓΟΡΙΘΜΟΙ ΕΥΡΕΣΗΣ ΒΕΛΤΙΣΤΗΣ ΛΥΣΗΣ ΑΛΓΟΡΙΘΜΟΙ ΕΥΡΕΣΗΣ ΛΥΣΗΣ ΣΕ ΠΑΙΓΝΙΑ ΔΥΟ ΑΝΤΙΠΑΛΩΝ Καραγιώργου Σοφία

Γενικά Ο σκοπός των διαλέξεων είναι να παρουσιάσει: Αλγόριθμους που βρίσκουν κάποια λύση στο χώρο καταστάσεων Αλγόριθμους που βρίσκουν την βέλτιστη λύση στο χώρο καταστάσεων Αλγόριθμους που βρίσκουν λύσεις όταν ο χώρος καταστάσεων κατασκευάζεται κατά τη διάρκεια ενός παιγνίου με δύο αντιπάλους που και οι δύο εκτελούν κινήσεις στη προσπάθειά τους να κερδίσουν το παιχνίδι

Ταξινόμηση αλγορίθμων αναζήτησης

Αναζήτηση λύσης Γενικά όταν λέμε ότι αναζητούμε μια λύση σε ένα χώρο καταστάσεων ουσιαστικά μιλάμε για την αναζήτηση ενός μονοπατιού στο χώρο των καταστάσεων που μας οδηγεί από την αρχική κατάσταση σε μια «επιτυχή» τελική κατάσταση Οι διαφορετικές καταστάσεις που μπορούν να προσπελασθούν όταν ήδη είμαστε σε μια κατάσταση ορίζονται από τα χαρακτηριστικά του προβλήματος και δημιουργούν αυτό που ονομάζουμε δένδρο αναζήτησης

Παράδειγμα δέντρου αναζήτησης

Παράδειγμα δέντρου αναζήτησης

Ευριστικοί/Μη αλγόριθμοι αναζήτησης Όταν η απόσταση/κόστος για τη μοντελοποίηση κάθε κόμβου/κατάστασης στο χώρο αναζήτησης από τον κόμβο/κατάσταση που θεωρούμε στόχο δίνεται με βάση κάποια ευριστική μέθοδο τότε λέμε ότι έχουμε ένα αλγόριθμο ευριστικής αναζήτησης Όταν δεν έχουμε κάποια μέθοδο να εστιάσουμε το επόμενο μας βήμα, δηλαδή ψάχνουμε στα τυφλά, τότε έχουμε ένα αλγόριθμο τυφλής αναζήτησης

Αλγόριθμοι τυφλής αναζήτησης Οι αλγόριθμοι τυφλής αναζήτησης (blind search algorithms) εφαρμόζονται σε προβλήματα στα οποία δεν υπάρχει πληροφορία που να επιτρέπει την αξιολόγηση των καταστάσεων του χώρου αναζήτησης (δηλαδή ψάχνουμε στα τυφλά) Έτσι οι αλγόριθμοι αυτοί αντιμετωπίζουν με τον ίδιο ακριβώς τρόπο οποιοδήποτε πρόβλημα καλούνται να λύσουν Για τους αλγορίθμους τυφλής αναζήτησης, το τι απεικονίζει κάθε κατάσταση του προβλήματος είναι παντελώς αδιάφορο Σημασία έχει η χρονική σειρά με την οποία παράγονται οι καταστάσεις από το μηχανισμό επέκτασης

Λίστα αλγορίθμων τυφλής αναζήτησης

Αλγόριθμοι ευριστικής αναζήτησης Οι αλγόριθμοι τυφλής αναζήτησης προχωρούν σε βάθος ή πλάτος χωρίς ένδειξη για το αν πλησιάζουν σε τερματική κατάσταση Σε πολλά προβλήματα ο χώρος αναζήτησης αυξάνεται ραγδαία (συνδυαστική έκρηξη) Σκοπός: Μείωση του αριθμού των καταστάσεων που επισκέπτεται ο αλγόριθμος Απαιτείται: Πληροφορία για αξιολόγηση των καταστάσεων που θα οδηγήσει γρηγορότερα στη λύση ή θα βοηθήσει στο κλάδεμα καταστάσεων που δεν οδηγούν πουθενά Οι αλγόριθμοι που εκμεταλλεύονται τέτοιες πληροφορίες (κάποιον ευριστικό μηχανισμό) ονομάζονται αλγόριθμοι ευριστικής αναζήτησης

Χαρακτηριστικά ευριστικών αλγορίθμων Ευριστικός µηχανισµός (heuristic) είναι µία στρατηγική, βασισµένη στη γνώση για το συγκεκριµένο πρόβληµα, η οποία χρησιµοποιείται σαν βοήθηµα στη γρήγορη επίλυσή του Ο ευριστικός µηχανισµός υλοποιείται µε ευριστική συνάρτηση (heuristic function), που έχει πεδίο ορισµού το σύνολο των καταστάσεων ενός προβλήµατος και πεδίο τιµών το σύνολο τιµών που αντιστοιχεί σε αυτές Σε όμοια προβλήματα χρησιμοποιούμε παρόμοιους ευριστικούς μημανισμούς Ευριστική τιµή (heuristic value) είναι η τιµή της ευριστικής συνάρτησης και εκφράζει το πόσο κοντά βρίσκεται µία κατάσταση σε µία τελική Η ευριστική τιµή δεν είναι η πραγµατική τιµή της απόστασης από µία τερµατική κατάσταση, αλλά µία εκτίµηση (estimate) που πολλές φορές µπορεί να είναι και λανθασµένη

Παράδειγμα Παράδειγμα ευριστικής αναζήτησης είναι η συναρμολόγηση ενός puzzle Με τυφλή αναζήτηση θα έπρεπε να προσπαθήσουμε να το φτάξουμε, χωρίς να δώσουμε καμία σημασία στο χρώμα ή το σχήμα των κομματιών Στην πραγματικότητα όμως, ενεργούμε εντελώς διαφορετικά. Χωρίζουμε τα κομμάτια σε κατηγορίες, π.χ. αυτά που ανήκουν στην περιφέρεια (μία άκρη τους είναι ευθεία τομή), σε αυτά που πιθανά ανήκουν στο χρώμα του ουρανού ή στη θάλασσα ή στα δένδρα κ.ο.κ. Οι ενέργειες αυτές αντιστοιχούν στη χρήση ενός ευριστικού μηχανισμού που έχουμε αναπτύξει μέσω της εμπειρίας μας Ωστόσο, ποτέ δεν είμαστε σίγουροι ότι ο διαχωρισμός των κομματιών είναι και ο σωστός. Για παράδειγμα, υπάρχουν κομμάτια του puzzle που μπορεί να ανήκουν στη θάλασσα ή τον ουρανό Αν δεν υπήρχαν ευριστικοί μηχανισμοί, τότε τα προβλήματα αυτά θα λύνονταν πολύ δύσκολα, γιατί οι συνδυασμοί που πρέπει να γίνουν είναι πάρα πολλοί Θα ήταν σαν να προσπαθεί κάποιος να συναρμολογήσει ένα puzzle από την ανάποδη πλευρά ή σαν να ψάχνει την κεντρική πλατεία της πόλης με τα μάτια κλειστά Ο ευριστικός μηχανισμός εξαρτάται από τη γνώση που έχουμε για το πρόβλημα

Ευριστικές συναρτήσεις σε μικρά προβλήματα Ευριστικός μηχανισμός και συναρτήσεις σε λαβύρινθο Ευκλείδεια απόσταση (Euclidian distance): Απόσταση Manhattan (Manhattan distance):

Ευριστικές συναρτήσεις σε μικρά προβλήματα Ευριστικός μηχανισμός και συναρτήσεις στο N-Puzzle Πόσα πλακίδια βρίσκονται εκτός θέσης Το άθροισμα των αποστάσεων Manhattan κάθε πλακιδίου από την τελική του θέση

Ευριστικές συναρτήσεις σε μικρά προβλήματα Ευριστικός µηχανισµός και συναρτήσεις στο TSP Η κοντινότερη πόλη έχει περισσότερες πιθανότητες να οδηγήσει σε µία καλή λύση

Λίστα αλγορίθμων ευριστικής αναζήτησης

Αλγόριθμοι μη βέλτιστης λύσης Οι επόμενες διαφάνειες περιλαμβάνουν μη ευριστικούς και ευριστικούς αλγόριθμους που μπορούν να βρούν κάποια λύση στο χώρο καταστάσεων χωρίς απαραίτητα αυτή η λύση να είναι η καλύτερη

Αλγόριθμος αναζήτησης Depth First Βήμα 1: Κατασκεύασε μια λίστα ουρά που περιέχει τη ρίζα του δένδρου (αρχική κατάσταση) Βήμα 2: Μέχρι που η λίστα να αδειάσει ή να βρεθεί ένας τελικός κόμβος στόχος Βήμα 2.α: Εάν ο πρώτος κόμβος στη λίστα είναι κόμβος στόχος μη κάνεις τίποτε Βήμα 2.β: Εάν ο πρώτος κόμβος στη λίστα δεν είναι κόμβος στόχος, τότε βγάλε το πρώτο κόμβο από τη λίστα, και βάλε στη αρχή της λίστας τα παιδιά του κόμβου (δηλαδή όλες τις καταστάσεις που μπορούν να προσπελασθούν με ένα μόνο βήμα από το κόμβο/κατάσταση που μόλις αφαιρέσαμε από τη λίστα) Βήμα 2.γ: Εάν ο πρώτος κόμβος δεν έχει παιδιά απλά αφαίρεσέ τον από τη λίστα και πήγαινε στο βήμα 2 Βήμα 3: Εάν βρήκαμε ένα κόμβο στόχο τότε ανακοινώνουμε επιτυχία αλλιώς ανακοινώνουμε αποτυχία

Παράδειγμα αναζήτησης Depth First Στο παρακάτω πρόβλημα, παρουσιάζεται το μοντέλο, το ολικό δένδρο αναζήτησης και η λίστα που δημιουργείται στη depth first αναζήτηση του δέντρου

Αλγόριθμος αναζήτησης Hill Climbing Βήμα 1: Κατασκεύασε μια λίστα ουρά που περιέχει τη ρίζα του δένδρου (αρχική κατάσταση) Βήμα 2: Μέχρι που η λίστα να αδειάσει ή να βρεθεί ένας τελικός κόμβος στόχος, εξέτασε εάν ο πρώτος κόμβος στη λίστα είναι κόμβος στόχος Βήμα 2.α: Εάν ο πρώτος κόμβος στη λίστα είναι κόμβος στόχος τότε μη κάνεις τίποτε και η επανάληψη σταματά, και πάμε στο Βήμα 3 Βήμα 2.β: Εάν ο πρώτος κόμβος στη λίστα δεν είναι κόμβος στόχος, τότε βγάλε το πρώτο κόμβο από τη λίστα, βρες στο παιδιά αυτού του κόμβου (δηλαδή όλες τις καταστάσεις που μπορούν να προσπελασθούν με ένα μόνο βήμα από το κόμβο/κατάσταση που μόλις αφαιρέσαμε από τη λίστα), ταξινόμησε αυτά τα παιδιά σε αύξουσα σειρά με βάση τη υπολογιζόμενη υπόλοιπη απόστασή τους από το στόχο και βάλε στη αρχή της λίστας τα ταξινομημένα παιδιά αυτού του κόμβου Βήμα 2.γ: Εάν ο πρώτος κόμβος δεν έχει παιδιά απλά αφαίρεσέ τον από τη λίστα και πήγαινε στο βήμα 2 Βήμα 3: Εάν βρήκαμε ένα κόμβο στόχο τότε ανακοινώνουμε επιτυχία αλλιώς ανακοινώνουμε αποτυχία

Παράδειγμα αλγόριθμου Hill Climbing Στο παράδειγμα η Hill Climbing αναζήτηση δημιουργεί την παρακάτω λίστα

Παράδειγμα αλγόριθμου Hill Climbing Στο παρακάτω πρόβλημα, παρουσιάζεται το μοντέλο, το ολικό δένδρο αναζήτησης, και η λίστα που δημιουργείται στη hill climbing αναζήτηση του δένδρου

Προβλήματα με την τεχνική Hill Climbing Ο HC χρησιµοποιείται σε προβλήµατα όπου πρέπει να βρεθεί µία λύση πολύ γρήγορα, έστω και αν αυτή δεν είναι η καλύτερη, παίρνοντας όµως και το ρίσκο να µη βρεθεί καµία λύση, έστω και αν τέτοια υπάρχει (πολύ αποδοτικός σε χρόνο και μνήμη) Η τεχνική Hill Climbing είναι σαν να προσπαθούμε να βρούμε κάποιο σημείο όπου όλα τα σημεία που μπορούμε να πάμε από αυτό το σημείο με ένα βήμα έχουν χειρότερα χαρακτηριστικά από αυτό το σημείο Παραδείγματα είναι όταν μπαίνουμε σε ένα δωμάτιο και αρχίζουμε να ρυθμίζουμε το θερμοστάτη θέρμανσης/ψύξης μέχρι να βρούμε κάποιο σημείο που αισθανόμαστε άνετα. Εδώ δεν υπάρχει κάποιο συγκεκριμένο σημείο «στόχος», αλλά σταματάμε σε κάποιο σημείο (θέση του θερμοστάτη) όπου όλες οι άλλες γειτονικές ρυθμίσεις δεν μας δίνουν καλύτερα αποτελέσματα απ ότι αυτό το σημείο (θέση του θερμοστάτη) Δηλαδή, η τεχνική Hill Climbing, προσπαθεί να βρει μια λύση (σημείο στο χώρο καταστάσεων) όπου έχει βελτιστοποιηθεί η τιμή μιας παραμέτρου του προβλήματος (π.χ. πόσο άνετα αισθανόμαστε) ή ένας συνδυασμός τιμών παραμέτρων του προβλήματος Όπως καταλαβαίνουμε η τεχνική είναι απλή, δηλαδή εύκολο να υλοποιηθεί και να εφαρμοστεί, αλλά έχει και κάποια σημαντικά προβλήματα όπως: Είναι ατελής Πρόποδες (foothill) Οροπέδιο (plateau) Κορυφογραμμή (ridges)

Προβλήματα με την τεχνική Hill Climbing Βελτιώσεις: Εξαναγκασµένη αναρρίχηση λόφου (Enforced Hill-Climbing - EHC) Προσοµοιωµένη εξέλιξη (Simulated Annealing - SA) Αναζήτηση µε απαγορευµένες καταστάσεις (Tabu Search - TS)

Αλγόριθμος Προσομοιωμένης εξέλιξης (Simulated Annealing SA) Στον αλγόριθμο Hill Climbing παίρνουμε πάντα την επόμενη καλύτερη κίνηση που μπορούμε να εκτελέσουμε την κάθε στιγμή Είδαμε όμως ότι ο αλγόριθμος αυτός μπορεί να μας «κολλήσει» σε τοπικά μέγιστα local maxima Μια λύση σε αυτό το πρόβλημα είναι να επιτρέψουμε στον αλγόριθμο να κάνει και «κακές» κινήσεις. Στην αρχή δίνουμε μικρή ποινή για τη πρώτη «κακή» κίνηση αλλά πιο μεγάλη ποινή για την επόμενη «κακή» κίνηση κ.λ.π. Το κόστος των ποινών αυξάνεται εκθετικά. Η ιδέα είναι να επιτρέψουμε κάποιες κακές κινήσεις με την ελπίδα ότι σύντομα θα βρεθούμε εκτός του «τοπικού μέγιστου» και θα βρούμε ένα καλύτερο μονοπάτι που θα μας οδηγήσει στο (ιδανικά) στο «γενικό μέγιστο» (global maximum)

Αλγόριθμος αναζήτησης Breadth First Βήμα 1: Κατασκεύασε μια λίστα ουρά που περιέχει τη ρίζα του δένδρου (αρχική κατάσταση) Βήμα 2: Μέχρι που η λίστα να αδειάσει ή να βρεθεί ένας τελικός κόμβος στόχος Βήμα 2.α: Εάν ο πρώτος κόμβος στη λίστα είναι κόμβος στόχος μη κάνεις τίποτε Βήμα 2.β: Εάν ο πρώτος κόμβος στη λίστα δεν είναι κόμβος στόχος, τότε βγάλε το πρώτο κόμβο από τη λίστα, και βάλε στo τέλος της λίστας τα παιδιά του κόμβου (δηλαδή όλες τις καταστάσεις που μπορούν να προσπελασθούν με ένα μόνο βήμα από το κόμβο/κατάσταση που μόλις αφαιρέσαμε από τη λίστα) Βήμα 2.γ: Εάν ο πρώτος κόμβος δεν έχει παιδία απλά αφαίρεσέ τον από τη λίστα και πήγαινε στο βήμα 2 Βήμα 3: Εάν βρήκαμε ένα κόμβο στόχο τότε ανακοινώνουμε επιτυχία αλλιώς ανακοινώνουμε αποτυχία

Παράδειγμα αναζήτησης Breadth First Στο παρακάτω πρόβλημα παρουσιάζεται το μοντέλο, το ολικό δέντρο αναζήτησης και η λίστα που δημιουργείται στη breadth first αναζήτηση του δέντρου

Αλγόριθμος αναζήτησης Beam Search O αλγόριθμος ακτινωτής αναζήτησης (Beam Search BS) είναι παρόμοιος με τον αλγόριθμο αναζήτησης Κατά Πλάτος διότι προχωράμε στην αναζήτηση ανά επίπεδο του δένδρου αναζήτησης. Όμως η διαφορά είναι ότι δεν κοιτάμε όλους τους κόμβους του επόμενου επιπέδου, αλλά μόνο του w καλύτερους κόμβους όσον αφορά στη βαθμολόγησή τους σε σχέση με την υπολειπόμενη απόσταση από κάποιο κόμβο «στόχο». Δηλαδή σε κάθε βήμα κρατάμε τους w καλύτερους κόμβους στο μέτωπο αναζήτησης Αυτή η μέθοδος όπως και η Hill Climbing είναι ευριστική στη βάση ότι χρησιμοποιεί μια ευριστική εκτίμηση της υπολειπόμενης απόστασης ενός κόμβου (σημείου του χώρου κατάστασης) από ένα κόμβο «στόχο»

Αλγόριθμος αναζήτησης Beam Search Βήμα 1: Κατασκεύασε μια λίστα ουρά που περιέχει τη ρίζα του δένδρου (αρχική κατάσταση) Βήμα 2: Μέχρι που η λίστα να αδειάσει ή να βρεθεί ένας τελικός κόμβος στόχος Βήμα 2.α: Εάν ο πρώτος κόμβος στη λίστα είναι κόμβος στόχος μη κάνεις τίποτε Βήμα 2.β: Εάν ο πρώτος κόμβος στη λίστα δεν είναι κόμβος στόχος, τότε βγάλε το πρώτο κόμβο από τη λίστα, και βάλε στo τέλος της λίστας τα w στο πλήθος καλύτερα παιδιά του κόμβου (δηλαδή όλες τις καταστάσεις που μπορούν να προσπελασθούν με ένα μόνο βήμα από το κόμβο/κατάσταση που μόλις αφαιρέσαμε από τη λίστα) όσον αφορά την ευριστική υπολειπόμενη απόσταση του κόμβου από ένα κόμβο «στόχο» Βήμα 2.γ: Εάν ο πρώτος κόμβος δεν έχει παιδιά απλά αφαίρεσέ τον από τη λίστα και πήγαινε στο βήμα 2 Βήμα 3: Εάν βρήκαμε ένα κόμβο στόχο τότε ανακοινώνουμε επιτυχία αλλιώς ανακοινώνουμε αποτυχία

Παράδειγμα διεύρυνσης του δένδρου αναζήτησης κατά την Beam Search

Αλγόριθμος αναζήτησης Best First Search O αλγόριθμος αναζήτησης Best First είναι όπως ο αλγόριθμος αναζήτησης Hill Climbing, μόνο που εδώ επεκτείνουμε όχι τον καλύτερο κόμβο από τα παιδιά του κόμβου που είμαστε, αλλά επεκτείνουμε κάθε φορά τον καλύτερο κόμβο από όλους τους κόμβους που βρίσκονται στο μέτωπο αναζήτησης του δένδρου Ο αλγόριθμος αναζήτησης Best First Search έχει την πιθανότητα να παράγει τα μικρότερα μονοπάτια από την αρχική κατάσταση (ρίζα του δένδρου αναζήτησης) σε κάποιο κόμβο «στόχο» Η βασική διαφορά αυτού του αλγόριθμου από τον Hill Climbing είναι ότι αντί να ταξινομούμε τα παιδιά του κόμβου που επεκτείνουμε και να εισάγουμε αυτή τη ταξινομημένη λίστα στην ολική λίστα, εισάγουμε τα παιδιά του κόμβου που επεκτείνουμε στη λίστα, και μετά ταξινομούμε όλη τη λίστα. Οπότε ο καλύτερος κόμβος συνολικά πηγαίνει στη κορυφή της λίστας για επέκταση στο επόμενο βήμα

Αλγόριθμος αναζήτησης Best First Search Βήμα 1: Κατασκεύασε μια λίστα ουρά που περιέχει τη ρίζα του δένδρου (αρχική κατάσταση) Βήμα 2: Μέχρι που η λίστα να αδειάσει ή να βρεθεί ένας τελικός κόμβος στόχος, εξέτασε εάν ο πρώτος κόμβος στη λίστα είναι κόμβος στόχος Βήμα 2.α: Εάν ο πρώτος κόμβος στη λίστα είναι κόμβος στόχος τότε μη κάνεις τίποτα και η επανάληψη σταματά, και πάμε στο Βήμα 3 Βήμα 2.β: Εάν ο πρώτος κόμβος στη λίστα δεν είναι κόμβος στόχος, τότε βγάλε το πρώτο κόμβο από τη λίστα, βρες τα παιδιά αυτού του κόμβου (δηλαδή όλες τις καταστάσεις που μπορούν να προσπελασθούν με ένα μόνο βήμα από το κόμβο/κατάσταση που μόλις αφαιρέσαμε από τη λίστα), βάλε στη λίστα τα παιδιά αυτού του κόμβου, και μετά ταξινόμησε σε αύξουσα σειρά ολόκληρη τη λίστα σε σχέση με την υπολειπόμενη απόσταση του κάθε κόμβου της λίστας από ένα κόμβο «στόχο» Βήμα 2.γ: Εάν ο πρώτος κόμβος δεν έχει παιδιά απλά αφαίρεσέ τον από τη λίστα και πήγαινε στο βήμα 2 Βήμα 3: Εάν βρήκαμε ένα κόμβο στόχο τότε ανακοινώνουμε επιτυχία αλλιώς ανακοινώνουμε αποτυχία

Σχόλια για τον αλγόριθμο Best First Search Πλεονεκτήματα: Προσπαθεί να δώσει μια γρήγορη λύση σε κάποιο πρόβλημα. Το αν τα καταφέρει ή όχι εξαρτάται πολύ από τον ευριστικό μηχανισμό Είναι πλήρης (εάν υπάρχει λύση ο αλγόριθμος θα τη βρεί) Μειονεκτήματα: Το μέτωπο αναζήτησης μεγαλώνει με υψηλό ρυθμό και μαζί του ο χώρος που χρειάζεται για την αποθήκευσή του, καθώς και ο χρόνος για την επεξεργασία των στοιχείων του Δεν εγγυάται ότι η λύση που θα βρεθεί είναι η βέλτιστη

Εφαρμογή του Αλγόριθμου Best First

Γενικά σχόλια για την επιλογή του κατάλληλου αλγόριθμου Η Κατά Βάθος αναζήτηση είναι καλή όταν το δένδρο αναζήτησης δεν βαθαίνει πολύ Η Κατά Πλάτος αναζήτηση είναι καλή όταν ο Παράγοντας Διακλάδωσης δεν είναι μεγάλος Η τεχνική Hill Climbing είναι καλή όταν έχουμε μια καλή ευριστική μετρική για την υπολειπόμενη απόσταση και όταν μια καλή επιλογή είναι συνήθως σε αυτές που οδηγούν σε λύση (όχι πολλά τοπικά μέγιστα ή τοπικά ελάχιστα) Η Τεχνική Beam Search είναι καλή όταν έχουμε μια καλή ευριστική μετρική για την υπολειπόμενη απόσταση και όταν ένα καλό μονοπάτι είναι συνήθως σε αυτά που μπορούν να επιλεγούν σε κάθε επίπεδο του δένδρου Η τεχνική Best First είναι καλή όταν έχουμε μια καλή ευριστική μετρική για την υπολειπόμενη απόσταση και όταν ένα καλό μονοπάτι μπορεί να μη φαίνεται καλό στην αρχή

Αλγόριθμοι βέλτιστης λύσης Οι επόμενες διαφάνειες περιλαμβάνουν μη ευριστικούς και ευριστικούς αλγόριθμους που μπορούν να βρούν την καλύτερη λύση στο χώρο καταστάσεων

Αλγόριθμος Iterative Deepening Επαναληπτικής Εκβάθυνσης (ΕΕ) Ο αλγόριθμος επαναληπτικής εκβάθυνσης (Iterative Deepening ID) συνδυάζει με τον καλύτερο τρόπο τους DFS και BFS Ο αλγόριθμος ID: Όρισε το αρχικό βάθος αναζήτησης (συνήθως 1) Εφάρμοσε τον αλγόριθμο DFS μέχρι αυτό το βάθος αναζήτησης Αν έχεις βρει λύση σταμάτησε Αύξησε το βάθος αναζήτησης (συνήθως κατά 1) Πήγαινε στο βήμα 2

Αλγόριθμος Επαναληπτικής Εκβάθυνσης (σχόλια) Μειονεκτήματα: Όταν αρχίζει ο DFS με διαφορετικό βάθος δε θυμάται τίποτα από την προηγούμενη αναζήτηση Πλεονεκτήματα: Είναι πλήρης Αν το βάθος αυξάνεται κατά 1 σε κάθε κύκλο και ο ID βρει λύση, τότε αυτή η λύση θα είναι η καλύτερη, γιατί αν υπήρχε άλλη, καλύτερη λύση, αυτή θα βρισκόταν σε προηγούμενο κύκλο αναζήτησης

Αλγόριθμος Bi Directional Search Διπλής Κατεύθυνσης Η ιδέα της αναζήτησης διπλής κατεύθυνσης (Bidirectional Search BiS) πηγάζει από τη δυνατότητα του παραλληλισμού (parallelism) στα υπολογιστικά συστήματα Προϋποθέσεις κάτω από τις οποίες μπορεί να εφαρμοστεί: Οι τελεστές μετάβασης είναι αντιστρέψιμοι (reversible) Είναι πλήρως γνωστή η τελική κατάσταση Τότε Μπορούμε να αρχίσουμε την αναζήτηση από την αρχική και τελική κατάσταση ταυτόχρονα Αν κάποια κατάσταση που επεκτείνεται είναι κοινή και από τις 2 πλευρές, τότε βρέθηκε λύση Λύση είναι η ένωση των μονοπατιών από την κοινή κατάσταση εως την αρχική και εως την τελική κατάσταση Μειονεκτήματα: Υπάρχει επιπλέον κόστος που οφείλεται στην επικοινωνία μεταξύ των δύο αναζητήσεων

Αλγόριθμος αναζήτησης British Museum Είναι αλγόριθμος brute force Η ιδέα είναι ότι για να βρούμε την καλύτερη λύση βρίσκουμε όλα τα μονοπάτια από την αρχική κατάσταση σε όλες τις καταστάσεις «στόχους» και επιλέγουμε το καλύτερο μονοπάτι Μπορούμε να βρούμε όλα τα μονοπάτια με αναζήτηση κατα βάθος ή αναζήτηση κατά πλάτος. Μόνο που εδώ δεν σταματάμε όταν βρούμε κάποια λύση. Συνεχίζουμε μέχρι να βρούμε όλες τις λύσεις για να επιλέξουμε τη καλύτερη Ο αλγόριθμος αυτός δεν είναι πρακτικός στις περισσότερες περιπτώσεις. Για παράδειγμα με παράγοντα διακλάδωσης b=10 και βάθος δένδρου d=10 έχουμε 10 δισεκατομμύρια μονοπάτια!

Αλγόριθμος Branch and Bound Επέκτασης και Οριοθέτησης Βήμα 1: Κατασκεύασε μια λίστα από μονοπάτια που αρχικά είναι κενή. Περιέχει δηλαδή τα μονοπάτια από τη ρίζα του δένδρου (αρχική κατάσταση) στο πουθενά Βήμα 2: Μέχρι που η λίστα να αδειάσει ή, το πρώτο μονοπάτι στη λίστα οδηγεί σε «στόχο» και όλα τα άλλα μονοπάτια έχουν μεγαλύτερο κόστος και δεν έχουν ακόμη οδηγήσει σε στόχο Βήμα 2.α: Εάν το πρώτο μονοπάτι οδηγεί σε στόχο, κράτησέ το σαν πιθανή λύση. Εάν είναι καλύτερο από κάποια προηγούμενη λύση κράτησέ το σαν την καλύτερη πιθανή λύση, προχώρησε στο Βήμα 2.β Βήμα 2.β: Εάν το πρώτο μονοπάτι δεν οδηγεί σε στόχο, ή υπάρχουν άλλα μονοπάτια δεν έχουν ακόμη οδηγήσει σε στόχο έχουν μικρότερο κόστος από το μονοπάτι που ήδη βρήκαμε Βήμα 2.β.1 Βγάλε το πρώτο μονοπάτι από τη λίστα Βήμα 2.β.2 Φτιάξε μονοπάτια που μπορούν να φτιαχτούν από το μονοπάτι που βγάλαμε επεκτείνοντας το κατά ένα βήμα Βήμα 2.β.3 Βάλε τα νέα μονοπάτια στη λίστα Βήμα 2.β.4 Ταξινόμησε σε αύξουσα σειρά όλα τα μονοπάτια στη λίστα σύμφωνα με το κόστος του κάθε μονοπατιού, δηλαδή το κόστος που κάναμε να φτάσουμε από την αρχική κατάσταση στο τελευταίο κόμβο κάθε μονοπατιού Βήμα 2.β.5 Εάν βρήκαμε ένα μονοπάτι που οδηγεί σε κόμβο στόχο τότε ανακοινώνουμε μερική επιτυχία αλλιώς ανακοινώνουμε αποτυχία Βήμα 3: Εάν βρήκαμε ένα μονοπάτι που οδηγεί σε κόμβο στόχο τότε ανακοινώνουμε επιτυχία αλλιώς ανακοινώνουμε αποτυχία

Παράδειγμα εφαρμογής αλγόριθμου Branch and Bound Έστω ότι έχουμε τον παρακάτω χώρο καταστάσεων και το αντίστοιχο δένδρο αναζήτησης

Παράδειγμα εφαρμογής αλγόριθμου Branch and Bound

Παράδειγμα εφαρμογής αλγόριθμου Branch and Bound

Παράδειγμα εφαρμογής αλγόριθμου Branch and Bound

Branch and Bound και υπολογιζόμενη υπολειπόμενη απόσταση από το στόχο Εάν θεωρήσουμε μια επέκταση στον αλγόριθμο Branch and Bound με τη μορφή ότι το κόστος κάθε κόμβου δεν είναι μόνο το κόστος να φτάσουμε σε αυτό το κόμβο από τον αρχικό κόμβο, αλλά δίνεται από το άθροισμα του κόστους να φτάσουμε σε αυτό το κόμβο από τον αρχικό κόμβο συν μια υποεκτίμηση της υπολογιζόμενης υπολειπόμενης απόστασης του κόμβου από τον στόχο, τότε ο αλγόριθμος ΒΒ ελέγχει λιγότερα μονοπάτια Δηλαδή: u(total path length) = d(already traveled) + u(distance remaining)

Αλγόριθμος Αναζήτησης Β&Β με υποεκτίμηση απόστασης Βήμα 1: Κατασκεύασε μια λίστα από μονοπάτια που αρχικά είναι κενή που περιέχει δηλαδή τα μονοπάτια από τη ρίζα του δένδρου (αρχική κατάσταση) στο πουθενά Βήμα 2: Μέχρι που η λίστα να αδειάσει ή, το πρώτο μονοπάτι στη λίστα οδηγεί σε «στόχο» και όλα τα άλλα μονοπάτια που έχουν μεγαλύτερο κόστος δεν έχουν ακόμη οδηγήσει σε στόχο Βήμα 2.α: Εάν το πρώτο μονοπάτι οδηγεί σε στόχο, κράτησέ το σαν πιθανή λύση. Εάν είναι καλύτερο από κάποια προηγούμενη λύση κράτησέ το σαν την καλύτερη πιθανή λύση, προχώρησε στο Βήμα 2.β Βήμα 2.β: Εάν το πρώτο μονοπάτι δεν οδηγεί σε στόχο, ή υπάρχουν άλλα μονοπάτια δεν έχουν ακόμη οδηγήσει σε στόχο έχουν μικρότερο κόστος από το μονοπάτι που ήδη βρήκαμε Βήμα 2.β.1 Βγάλε το πρώτο μονοπάτι από τη λίστα Βήμα 2.β.2 Φτιάξε μονοπάτια που μπορούν να φτιαχτούν από το μονοπάτι που βγάλαμε επεκτείνοντας το κατά ένα βήμα Βήμα 2.β.3 Βάλε τα νέα μονοπάτια στη λίστα Βήμα 2.β.4 Ταξινόμησε σε αύξουσα σειρά όλα τα μονοπάτια στη λίστα σύμφωνα με το συνολικό κόστος του κάθε μονοπατιού, δηλαδή το κόστος που κάναμε να φτάσουμε από την αρχική κατάσταση στο τελευταίο κόμβο κάθε μονοπατιού συν το υπολογιζόμενη (υπο εκτιμόμενο) απόσταση από το στόχο Βήμα 2.β.5 Εάν βρήκαμε ένα μονοπάτι που οδηγεί σε κόμβο στόχο τότε ανακοινώνουμε μερική επιτυχία αλλιώς ανακοινώνουμε αποτυχία Βήμα 3: Εάν βρήκαμε ένα μονοπάτι που οδηγεί σε κόμβο στόχο τότε ανακοινώνουμε επιτυχία αλλιώς ανακοινώνουμε αποτυχία

Παράδειγμα εφαρμογής αναζήτησης ΒΒ με υποεκτίμηση κόστους

Δυναμικός Προγραμματισμός στους αλγόριθμους αναζήτησης Η ιδέα είναι ότι εάν κατασκευάσουμε ένα μονοπάτι που οδηγεί σε κάποιο κόμβο π.χ. D και υπάρχει κάποιο άλλο μονοπάτι που οδηγεί στον ίδιο κόμβο αλλά με μικρότερο κόστος, τότε «κλαδεύουμε» το μονοπάτι με το μεγαύτερο κόστος, και δεν το επεκτείνουμε πια

Ο αλγόριθμος Α* Συνδυάζει την άπληστη αναζήτηση με την αναζήτηση με βάση το κόστος. Χρησιμοποιεί δηλαδή στην ταξινόμηση την συνάρτηση f(s) = d(s) + h(s) Είναι κατά βάσει BestFS, αλλά με ευριστική συνάρτηση και Δυναμικό Προγραμματισμό Η f(s) μας δίνει ουσιαστικά μία εκτίμηση της καλύτερης λύσης που περνάει από τον κόμβο s Προϋπόθεση ότι η h(s) δεν υπερεκτιμά ποτέ το κόστος για να φτάσουμε στο κοντινότερο στόχο (αποδεκτή συνάρτηση) Όπως μπορεί να αποδειχτεί και αυστηρά, αυτή η ιδιότητα της f(s) μας εγγυάται ότι ο αλγόριθμος θα βρει πάντα λύση και μάλιστα θα βρει πρώτα την καλύτερη λύση. Ο αλγόριθμος Α* δηλαδή, είναι πλήρης και βέλτιστος

Ο αλγόριθμος Α* - ιδιότητες Άλλη σημαντική Ιδιότητα: πληροφόρηση Πληροφόρηση: αν h1(n) & h2(n) είναι αποδεκτές συναρτήσεις (δηλαδή δεν υπερεκτιμούν την απόσταση σε στόχο) και & h1(n) >= h2(n), τότε οι κόμβοι που ο A* εξετάζει χρησιμοποιώντας την h1 είναι υποσύνολο αυτών που εξετάζει χρησιμοποιώντας την h2 δηλαδή η h1(n) θα οδηγήσει σε πιο γρήγορη αναζήτηση ακραία περίπτωση: h2(n) = 0 = καθόλου πληροφόρηση - τότε ότι παραπάνω ξέρει η h1 θα βελτίωνε την αναζήτηση θα λέμε ότι η h1 είναι πιο πληροφορημένη από την h2

Ο αλγόριθμος Α* - ιδιότητες Σταθερότητα: Αν η h «σπάνια» υπερεκτιμά την απόσταση το πολυ s, τότε ο A* σπάνια θα βρει λύσεις που είναι χειρότερες από την καλύτερη άρα, είναι χρήσιμο να έχουμε καλή εκτίμηση της h Πληρότητα: Ο A* θα τελειώσει και θα βρει τη βέλτιστη λύση ακόμα και σε άπειρους χώρους αναζήτησης, αν υπάρχει βέλτιστη λύση και όλα τα κόστη είναι θετικά Μονότονη συνάρτηση: Αν για όλα τα n, m όπου m είναι απόγονος του n και h(n) - h(m) <= cost(n, m), τότε όποτε επισκεφτόμαστε ένα κόμβο, θα είμαστε εκεί με τον συντομότερο δρόμο δεν χρειάζεται να «θυμόμαστε» τα μονοπάτια ακραία περίπτωση: h(n) = 0 [κατά πλάτος]

Ο αλγόριθμος Α* Δημιούργησε μία ουρά (queue) που αρχικά έχει τη ρίζα (root) Έως ότου η ουρά είναι άδεια ή ο στόχος έχει βρεθεί, έλεγξε αν το πρώτο στοιχείο είναι ο στόχος Αν είναι μην κάνεις τίποτα Αν δεν είναι, τότε: βγάλε το πρώτο στοιχείο βάλε τα παιδιά του πρώτου στοιχείου πίσω στην ουρά ταξινόμησε όλη την ουρά με βάση την f(s) (ο καλύτερος κόμβος μπροστά) Αν έχει βρεθεί ο στόχος, τότε έχουμε επιτυχία, αλλιώς, αποτυχία

Παράδειγμα

Παράδειγμα Πλήρης - Ο(bm) χρόνου και χώρου -βέλτιστη λύση f(s)=d(s)+h(s) με h(s) αποδεκτή

Σύγκριση αλγορίθμων

Παίγνια 2 αντιπάλων Σε πολλά προβλήματα της ΤΝ, η εξέλιξη των καταστάσεων εξαρτάται από δύο διαφορετικά σύνολα τελεστών μετάβασης που εφαρμόζονται εναλλάξ από δύο ενεργά συστήματα (πράκτορες) Αυτά τα προβλήματα αναφέρονται και ως ανταγωνιστικά παίγνια ή παίγνια δύο αντιπάλων (adversary ή two person games) Επιλύονται με ειδικούς αλγορίθμους αναζήτησης, βασικότεροι των οποίων είναι ο Min-Max και o Alpha Beta Ο όρος «παίγνιο» αφορά στην περιγραφή του τρόπου με τον οποίο παίζεται το παιχνίδι και περιλαμβάνει: Τα αντικείμενα που υπάρχουν (για παράδειγμα, τα πούλια, το ταμπλώ, κ.τ.λ.) Το σύνολο των κανόνων (για παράδειγμα, των επιτρεπτών κινήσεων, των συνθηκών νίκης, κ.τ.λ.) που το διέπουν Αντίθετα, με τον όρο «παιχνίδι» χαρακτηρίζεται μία συγκεκριμένη παρτίδα του παιγνίου Γνωστά παραδείγματα παιγνίων είναι το σκάκι, η τρίλιζα, το τάβλι, κ.τ.λ.

Παίγνια 2 αντιπάλων Σε ένα παίγνιο δύο ατόμων το πρόβλημα ορίζεται ως εξής: Μια κατάσταση παριστάνει τη διάταξη των πιονιών σε κάποια χρονική στιγμή Ο χώρος καταστάσεων αποτελείται από όλες αυτές τις πιθανές επιτρεπτές καταστάσεις Οι τελεστές μετάβασης είναι οι επιτρεπτές κινήσεις που καθορίζονται από τους κανόνες του παιχνιδιού. Οι κανόνες του παιχνιδιού παίζουν και το ρόλο των προϋποθέσεων αυτών των τελεστών Οι τελικές καταστάσεις του παιχνιδιού έχουν γνωστά χαρακτηριστικά (π.χ. ματ στο σκάκι) Έστω ότι κάποιος συμμετέχει σε ένα παιχνίδι και είναι η σειρά του να κάνει μία κίνηση Αν θέλει να κερδίσει, θα επιδιώξει να κάνει την καλύτερη κίνηση για αυτόν, η οποία αντίστοιχα θα είναι και η χειρότερη για τον αντίπαλο Ο τρόπος που πιθανά σκέφτεται κάποιος για να παίξει είναι ο εξής: «Αν κάνω αυτή την κίνηση, τότε ο αντίπαλος θα κάνει εκείνη, αν όμως κάνω την άλλη κίνηση, τότε θα κάνει αυτήν,...» κ.ο.κ. Ο συλλογισμός αυτός αντιστοιχεί στη δημιουργία ενός δένδρου με όλες τις εναλλακτικές κινήσεις που πηγάζουν από την παρούσα κατάσταση Το δένδρο αυτό ονομάζεται δένδρο του παιχνιδιού (game tree)

Παίγνια 2 αντιπάλων Το χαρακτηριστικό του είναι ότι οι κινήσεις δύο διαδοχικών επιπέδων ανήκουν σε διαφορετικό παίκτη, γιατί οι παίκτες παίζουν εναλλάξ Το δένδρο αυτό αναπτύσσεται νοερά από τον παίκτη του οποίου είναι η σειρά να παίξει Αυτή η διαδικασία μπορεί να συνεχιστεί μέχρι κάποιο βάθος, συνήθως μικρό, και να σταματήσει εκεί όπου αρχίζει η αξιολόγηση των καταστάσεων με βάση κάποια κριτήρια Ο παίκτης αξιολογεί τις καταστάσεις που θα προκύψουν από πιθανές διαφορετικές εξελίξεις του παιχνιδιού και αποφασίζει ποια από τις εναλλακτικές κινήσεις θα τον οδηγήσει σταδιακά στην πιο ευνοϊκή για αυτόν εξέλιξη Έστω ότι ένας από τους δύο αντιπάλους είναι ο υπολογιστής Το πρόγραμμα αναζήτησης και ο άνθρωπος πρέπει να εξετάσουν και να θυμούνται όλες τις πιθανές κινήσεις που παράγονται από μία (αρχική) κατάσταση Ένα τέτοιο πρόγραμμα μπορεί να προβλέψει την έκβαση του παιχνιδιού μετά από 10 κινήσεις (βάθος 10 του δένδρου παιχνιδιού), ενώ ο άνθρωπος σταματά συνήθως μετά την πρόβλεψη 2 ή 3 κινήσεων

Παίγνια 2 αντιπάλων Παραδόξως, οι διαφορές αυτές δεν κάνουν κάποιο πρόγραμμα κυρίαρχο οποιουδήποτε παιχνιδιού Π χ μόλις πρόσφατα κατασκευάστηκε το καλύτερο σύστημα, το Deep Blue (συνδυασμός λογισμικού και υλικού) που μπορεί, κάποιες φορές, να νικήσει τον παγκόσμιο πρωταθλητή στο σκάκι Ο λόγος για την ανωτερότητα των ανθρώπων στο σκάκι είναι από τη μία μεριά απλός να περιγραφεί, αλλά από την άλλη πολύ δύσκολος να υλοποιηθεί σαν πρόγραμμα Η ανωτερότητα τους έγκειται στους εξής παράγοντες: Οι μαιτρ του σκάκι έχουν τη δυνατότητα να επιλέγουν με κάποιον ευριστικό τρόπο τις εναλλακτικές κινήσεις, αλλά δε μπορούν να μετατρέψουν αυτόν τον τρόπο σε αντίστοιχη ευριστική τιμή Οι άνθρωποι διαθέτουν κάποια διαίσθηση για την κατάληξη του παιχνιδιού αν επιλεγεί κάποια από τις εναλλακτικές κινήσεις η οποία επίσης δε μπορεί να αποδοθεί αριθμητικά ώστε να υπάρξει ευριστικό κλάδεμα του χώρου αναζήτησης Τέλος, με την εμπειρία που αποκτούν, μπορούν να σκέφτονται πολλές φορές εντελώς μηχανικά, ιδίως στα πρώτα και τελευταία στάδια του παιχνιδιού

Παίγνια 2 αντιπάλων Το κύριο μέλημα των προγραμμάτων σκάκι είναι να αναζητήσουν το δένδρο του παιχνιδιού σε όσο το δυνατόν μεγαλύτερο βάθος Αν υπήρχε η δυνατότητα να φτάσουν μέχρι τις τελικές καταστάσεις του παιχνιδιού τότε τα προγράμματα θα ήταν ανίκητα Ο λόγος που κάτι τέτοιο είναι αδύνατο πηγάζει από τους χρονικούς περιορισμούς μιας παρτίδας και από το πρόβλημα της συνδυαστικής έκρηξης Αν υποθέσουμε ότι από κάθε κατάσταση στο σκάκι παράγονται άλλες 10 καταστάσεις (Μ.Ο.), και ότι μία παρτίδα τελειώνει σε 40 κινήσεις (20 για κάθε παίκτη), τότε οι πιθανές τελικές καταστάσεις θα ήταν της τάξης του 10^40 Αν ένας υπέρ υπολογιστής ξοδεύει 1 nanosecond (=10^ 9 sec) για να εξετάσει κάθε μία από αυτές, τότε χρειάζεται 10^40x10^ 9=10^31 sec συνολικά για να τις εξετάσει όλες Έχοντας υπόψη πως ένα έτος έχει περίπου 31^6 sec περίπου, ο υπέρ υπολογιστής αυτός θα χρειαζόταν το 1/4 της ηλικίας του σύμπαντος Αφού λοιπόν δε μπορούμε να περιμένουμε τόσο πολύ, οι αλγόριθμοι αναζήτησης που υπάρχουν εξετάζουν το δένδρο του παιχνιδιού μέχρι ένα ορισμένο βάθος, τόσο όσο επιτρέπει ο χρόνος για τη κίνηση

Ο αλγόριθμος Min Max Δεδομένης μίας κατάστασης του παιχνιδιού, ο αλγόριθμος αναζήτησης ελαχίστου-μεγίστου (Min-Μax) καλείται να αποφασίσει ποια θα είναι η επόμενη κίνησή του, έναντι του αντιπάλου Η εξαντλητική αναζήτηση των δένδρων αναζήτησης είναι ανέφικτη Το ζητούμενο είναι: Να χτιστεί το δένδρο μέχρι κάποιο βάθος Να βρεθεί η καλύτερη κίνηση από την παρούσα κατάσταση Το μέτρο της υπεροχής του ενός ή του άλλου αντιπάλου δίνεται από μία ευριστική συνάρτηση που καλείται συνάρτηση αξιολόγησης (evaluation function) και η οποία εφαρμόζεται στα φύλλα του δένδρου του παιχνιδιού Ο ένας παίκτης (πρόγραμμα) ονομάζεται max και ο άλλος (άλλο πρόγραμμα ή άνθρωπος) ονομάζεται min Οι κόμβοι του δένδρου διακρίνονται σε: Αυτούς που σειρά έχει να παίξει ο max Αυτούς που σειρά έχει να παίξει ο min

Ο αλγόριθμος Min Max Βήμα 1. Εφάρμοσε τη συνάρτηση αξιολόγησης σε όλους τους κόμβους φύλλα του δένδρου Βήμα 2. Έως ότου η ρίζα του δένδρου αποκτήσει τιμή, επανέλαβε: Βήμα 3. Αρχίζοντας από τα φύλλα του δένδρου και προχωρώντας προς τη ρίζα, μετέφερε τις τιμές προς τους ενδιάμεσους κόμβους του δένδρου ως εξής: Βήμα 3.1 Η τιμή κάθε κόμβου Max είναι η μέγιστη (maximum) των τιμών των κόμβων παιδιών του Βήμα 3.2 Η τιμή κάθε κόμβου Min είναι η ελάχιστη (minimum) των τιμών των κόμβων παιδιών του Βήμα 4. Καλύτερη κίνηση είναι η κίνηση που οδηγεί στον κόμβο που έδωσε την πιο συμφέρουσα στη ρίζα τιμή (μέγιστη για το Max, ελάχιστη για το Min) Ο αλγόριθμος εγγυάται την πιο συμφέρουσα εξέλιξη μετά από κάποιες κινήσεις, έστω και αν ο αντίπαλος διαλέγει τις καλύτερες για αυτόν κινήσεις

Ο αλγόριθμος Min Max (σχόλια) Κατά σύμβαση, ο παίκτης που βρίσκεται στη ρίζα θεωρείται πως είναι ο Max Οι καταστάσεις φύλλα του δένδρου ονομάζονται και τερματικές καταστάσεις, οι οποίες όμως δεν είναι απαραίτητα τελικές καταστάσεις, απλά αποτελούν το όριο της αναζήτησης Οι τιμές των τερματικών καταστάσεων υπολογίζονται από τη συνάρτηση αξιολόγησης ενώ οι άλλες προκύπτουν από τη διάδοση αυτών

Παράδειγμα Min Max

Παράδειγμα εφαρμογής Min Max στη τρίλιζα Το παίγνιο τρίλιζα είναι ένα πρόβλημα με μικρό χώρο αναζήτησης, της τάξης των 9! καταστάσεων Όλες οι καταστάσεις μπορούν κάλλιστα να κωδικοποιηθούν σε κάποιο πρόγραμμα το οποίο σαν αποτέλεσμα δε θα χάνει ποτέ Αποτελεί καλό παράδειγμα εφαρμογής του αλγορίθμου Μin-Max Έστω ότι ο παίκτης Max είναι ένα πρόγραμμα που σημειώνει Χ και αντιμετωπίζει έναν άνθρωπο ή ένα άλλο πρόγραμμα, τον Μin Έστω ότι ο Μax αποφασίζει να δει μέχρι βάθος τριών κινήσεων Στο βάθος αυτό εφαρμόζει τη συνάρτηση αξιολόγησης για όλες τις καταστάσεις που έχουν προκύψει

Παράδειγμα εφαρμογής Min Max στη τρίλιζα Μία συνάρτηση αξιολόγησης στην τρίλιζα θα μπορούσε να είναι η: 3 Χ2 + Χ1 (3 Ο2 + Ο1) Χ2 ο αριθμός γραμμών, στηλών ή διαγωνίων με δύο Χ και χωρίς κανένα Ο Χ1 ο αριθμός γραμμών, στηλών ή διαγωνίων με ένα Χ και χωρίς κανένα Ο Ο2 ο αριθμός γραμμών, στηλών ή διαγωνίων με δύο Ο και χωρίς κανένα Χ Ο1 ο αριθμός γραμμών, στηλών ή διαγωνίων με ένα Ο και χωρίς κανένα Χ Προφανώς, θετικές τιμές επιστρέφουν οι καταστάσεις που ωφελούν αυτόν που σημειώνει Χ, ενώ αρνητικές τιμές αυτές που ωφελούν αυτόν που σημειώνει Ο Για παράδειγμα, στο επόμενο Σχήμα απεικονίζεται μία κατάσταση της οποίας η συνάρτηση αξιολόγησης επιστρέφει 4, δηλαδή αυτός που σημειώνει το Χ έχει εμφανές πλεονέκτημα

Παράδειγμα εφαρμογής Min Max στο σκάκι Το κύριο μέλημα των προγραμμάτων σκάκι είναι να αναζητήσουν το δένδρο του παιχνιδιού σε όσο το δυνατόν μεγαλύτερο βάθος. Αν υπήρχε η δυνατότητα να φτάσουν μέχρι τις τελικές καταστάσεις του παιχνιδιού, τότε τα προγράμματα θα ήταν ανίκητα Μία συνάρτηση αξιολόγησης στο σκάκι: Υπεροχή κομματιών: Κάθε κομμάτι έχει κάποια αξία, π.χ. Βασιλιάς=10, Άλογο=5, Πιόνι=1 κ.λ.π. Η αξία όλων των κομματιών κάθε χρώματος προστίθεται Υπεροχή θέσης: Κάθε κομμάτι που βρίσκεται στα 4 κεντρικά τετράγωνα παίρνει επιπλέον 2 πόντους Απειλές: Για κάθε απειλή που προβάλει ένας παίκτης παίρνει 3 επιπλέον πόντους, εκτός αν απειλεί το βασιλιά του άλλου παίκτη, οπότε παίρνει 20 πόντους

Παράδειγμα εφαρμογής Min Max στο σκάκι

Ο αλγόριθμος Alpha Beta Ο αλγόριθμος Άλφα Βήτα (Alpha Beta) αποφεύγει την αξιολόγηση καταστάσεων που ικανοποιούν ορισμένες συνθήκες Ο Alpha-Βeta είναι όμοιος με τον Min-Max, αλλά με κλάδεμα υποδένδρων, όπως κατά αντιστοιχία ο B&B με τον DFS Το κλάδεμα που κάνει ο Alpha-Βeta, όπως άλλωστε και ο Β&Β, δεν είναι ευριστικό γιατί βασίζεται σε πραγματικά νούμερα

Σύγκριση του ΑΒ με τον Min Max Παράδειγμα Min Max

Σύγκριση του ΑΒ με τον Min Max Παράδειγμα Alpha Beta Εξηγήσεις: Αξιολογούνται οι πρώτοι αριστεροί κόμβοι (4, 10, 7) και δίνουν την τιμή 4 στον κόμβο πατέρα Η αξιολόγηση προχωρά στο δεύτερο κλαδί και βρίσκει 5 και 1 οπότε και σταματά γιατί η τιμή του είναι μικρότερη από τη μεγαλύτερη τιμή του ανωτέρου επιπέδου (δηλαδή το 4) Όμοια γίνεται και στους επόμενους κόμβους

Σύγκριση του ΑΒ με τον Min Max Κατά προσέγγιση ο ΑΒ εξετάζει τερματικούς κόμβους, όπου Ν είναι οι τερματικοί κόμβοι που εξετάζει ο αλγόριθμος Min-Max Η απόδοσή του βελτιώνεται με διάφορες μεθόδους, όπως: Ευριστικό κλάδεμα του δένδρου παιχνιδιού Δυναμική αντί στατικής συνάρτησης αξιολόγησης Αποθήκευση τιμών των τερματικών καταστάσεων (transposition tables) Προκαθορισμένες κινήσεις (χωρίς αναζήτηση) σε αρχικές και τελικές φάσεις του παιγνιδιού (Openings, End Game moves)

Το πρόβλημα του ορίζοντα Μειονεκτήματα: Το φαινόμενο του ορίζοντα (horizon effect), αντιμετωπίζεται με ανιχνευτές (scouts)