Επίλυση προβληµάτων! Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης Παιχνίδια δύο αντιπάλων Προβλήµατα ικανοποίησης περιορισµών Γενικά " Τεχνητή Νοηµοσύνη = Επίλυση προβληµάτων (συνήθως πολύ δύσκολων...) " Εξίσωση της Τ.Ν.: " Τεχνητή Νοηµοσύνη = Αναπαράσταση Γνώσης + Αλγόριθµοι Αναζήτησης Γιάννης Ρεφανίδης 2 1
ιάφορα προβλήµατα (1/3) " Πραγµατικά και πολύπλοκα προβλήµατα (real world problems) " σκάκι (chess), " πλανόδιος πωλητής (traveling salesperson), " Ν-βασίλισσες (N-queens), " σάκος (knapsack), κλπ. " Απλά προβλήµατα (toy problems) " κύβοι (blocks), " Ν-puzzle, " τρίλιζα (tic-tac-toe), " λαβύρινθος (maze), " πύργοι του Ανόι (Hanoi towers), " κανίβαλοι και ιεραπόστολοι (missionaries and cannibals), " ποτήρια (water glass), κλπ. Γιάννης Ρεφανίδης 3 ιάφορα προβλήµατα (2/3) " Κύβοι (blocks world) " Ν-puzzle " Τρίλιζα (tic-tac-toe) " Λαβύρινθος (maze) Γιάννης Ρεφανίδης 4 2
ιάφορα προβλήµατα (3/3) " Πύργοι του Ανόι (Hanoi towers) " Κανίβαλοι και ιεραπόστολοι (missionaries and cannibals) " Ποτήρια (water glass) Γιάννης Ρεφανίδης 5 Περιγραφή Προβληµάτων µε Χώρο Καταστάσεων " Κόσµος προβλήµατος " Κλειστός (closed world) " Ανοιχτός (open world) " Κατάσταση (state) ενός κόσµου είναι ένα στιγµιότυπο (instance) ή φωτογραφία (snapshot) µίας συγκεκριµένης χρονικής στιγµής της εξέλιξης του κόσµου. Γιάννης Ρεφανίδης 6 3
Παράδειγµα 1 " Υπάρχει ο κύβος Α " Υπάρχει ο κύβος Β " Υπάρχει ο κύβος Γ " Υπάρχει το τραπέζι Τ " Ο Α είναι ελεύθερος " Ο Γ είναι ελεύθερος " Το Τ έχει αρκετό ελεύθερο χώρο " Ο Β δεν είναι ελεύθερος " Ο Α είναι πάνω στον Β " Ο Β είναι πάνω στο Τ " Ο Γ είναι πάνω στο Τ Γιάννης Ρεφανίδης 7 Παράδειγµα 2 " 3 Ιεραπόστολοι " 3 Κανίβαλοι " Βάρκα " Αριστερή Όχθη " εξιά Όχθη " Βάρκα δύο ατόµων " 3 Ιεραπόστολοι στην αριστερή όχθη " 3 Κανίβαλοι στην αριστερή όχθη " Βάρκα στην αριστερή όχθη Γιάννης Ρεφανίδης 8 4
Τελεστές µετάβασης " Τελεστής µετάβασης (transition operator) είναι µια αντιστοίχηση µίας κατάστασης του κόσµου σε νέες καταστάσεις. " Η παραγωγή πολλών νέων καταστάσεων ως αποτέλεσµα της εφαρµογής ενός τελεστή µετάβασης δηλώνει αβεβαιότητα όσον αφορά τα αποτελέσµατά του. " Οι τελεστές µετάβασης έχουν συνήθως προϋποθέσεις εφαρµογής (preconditions). Γιάννης Ρεφανίδης 9 Παράδειγµα τελεστή µετάβασης " Τελεστής: Μετέφερε δύο ιεραπόστολους από την αριστερή όχθη στη δεξιά. " Προϋποθέσεις " Υπάρχουν τουλάχιστον 2 ιεραπόστολοι στην αριστερή όχθη. " Η βάρκα είναι στην αριστερή όχθη. " Ο αριθµός των ιεραποστόλων που θα προκύψει στην αριστερή όχθη να µην είναι µικρότερος από τον αριθµό των κανιβάλων ή να µην υπάρχει άλλος ιεραπόστολος στην αριστερή όχθη. " Αποτελέσµατα " Ο αριθµός των ιεραποστόλων στην αριστερή όχθη µειώνεται κατά 2. " Ο αριθµός των ιεραποστόλων στην δεξιά όχθη αυξάνεται κατά 2. " Η βάρκα είναι πλέον δεξιά και όχι αριστερά Γιάννης Ρεφανίδης 10 5
Χώρος καταστάσεων " Χώρος καταστάσεων (state space) ενός προβλήµατος ονοµάζεται το σύνολο όλων των έγκυρων καταστάσεων. Γιάννης Ρεφανίδης 11 Αρχικές και Τελικές καταστάσεις " Η αρχική (initial state) και τελική (final ή goal state) κατάσταση εκφράζουν το δεδοµένο και το ζητούµενο αντίστοιχα. " Μπορεί να έχουµε περισσότερες από µία τελικές καταστάσεις. Γιάννης Ρεφανίδης 12 6
Προβλήµατα και Λύσεις " Ένα πρόβληµα (Problem) ορίζεται ως η τετράδα P = ( I, G, T, S ) όπου: " I είναι η αρχική κατάσταση, I S " G είναι το σύνολο των τελικών καταστάσεων, G S " T είναι το σύνολο των τελεστών µετάβασης, T: S S " S είναι ο χώρος καταστάσεων. " Λύση (Solution) σε ένα πρόβληµα P είναι µία ακολουθία από τελεστές µετάβασης t 1, t 2,...t n T µε την ιδιότητα g = t n (...(t 2 (t 1 (I)))...), όπου g G Γιάννης Ρεφανίδης 13 Παράδειγµα " Λύση στο πρόβληµα των ιεραποστόλων " Μετέφερε 1 ιεραπόστολο και 1 κανίβαλο από την αριστερή στη δεξιά όχθη " Μετέφερε 1 ιεραπόστολο από τη δεξιά στην αριστερή όχθη " Μετέφερε 2 κανίβαλους από την αριστερή στη δεξιά όχθη " Μετέφερε 1 κανίβαλο από τη δεξιά στην αριστερή όχθη " Μετέφερε 2 ιεραπόστολους από την αριστερή στη δεξιά όχθη " Μετέφερε 1 ιεραπόστολο και 1 κανίβαλο από τη δεξιά στην αριστερή όχθη " Μετέφερε 2 ιεραπόστολους από την αριστερή στη δεξιά όχθη " Μετέφερε 1 κανίβαλο από τη δεξιά στην αριστερή όχθη " Μετέφερε 2 κανίβαλους από την αριστερή στη δεξιά όχθη " Μετέφερε 1 ιεραπόστολο από τη δεξιά στην αριστερή όχθη " Μετέφερε 1 ιεραπόστολο και 1 κανίβαλο από την αριστερή στη δεξιά όχθη Γιάννης Ρεφανίδης 14 7
Επίλυση προβληµάτων Περιγραφή προβληµάτων! Αλγόριθµοι αναζήτησης Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης Παιχνίδια δύο αντιπάλων Προβλήµατα ικανοποίησης περιορισµών Κατηγορίες αλγορίθµων αναζήτησης " Τυφλοί " Αναζήτηση Πρώτα σε Βάθος " Αναζήτηση Πρώτα σε Πλάτος " Επαναληπτική Εκβάθυνση " Επέκταση και Οριοθέτηση " Αναζήτηση ιπλής Κατεύθυνσης " Ευρετικοί " Αναζήτηση Πρώτα στο Καλύτερο " Αναρρίχηση Λόφων " Α* " Παιχνιδιών 2 ατόµων " Αναζήτηση Μεγίστου-Ελαχίστου " Άλφα-Βήτα Γιάννης Ρεφανίδης 16 8
Χώρος Αναζήτησης " οθέντος ενός προβλήµατος, χώρος αναζήτησης (search space) SP είναι το σύνολο όλων των καταστάσεων που είναι προσβάσιµες από την αρχική κατάσταση. " Μία κατά-σταση s ονοµάζεται προσβάσιµη (accessible) αν υπάρχει µια ακολουθία τελεστών µετάβασης t 1,t 2,...t k T τέτοια ώστε s=t k (...(t 2 (t 1 (I)))...). " O χώρος αναζήτησης είναι υποσύνολο του χώρου καταστάσεων, δηλαδή SP S. Γιάννης Ρεφανίδης 17 ένδρο αναζήτησης (1/2) " Ο χώρος αναζήτησης µπορεί να αναπαρασταθεί µε γράφο. " Ωστόσο είναι πάντα εφικτό να µετατραπεί ο γράφος αυτός σε δένδρο αναζήτησης (search tree), το οποίο όµως µπορεί να έχει µονοπάτια απείρου µήκους " Ο παράγοντας διακλάδωσης (branching factor) εκφράζει τον αριθµό των τελεστών που µπορούν να εφαρµοστούν σε µία κατάσταση, παράγοντας έτσι άλλες καταστάσεις. Γιάννης Ρεφανίδης 18 9
ένδρο αναζήτησης (2/2) Γιάννης Ρεφανίδης 19 Χαρακτηριστικά Αλγορίθµων " Ένας αλγόριθµος ονοµάζεται εξαντλητικός (exhaustive) όταν το σύνολο των καταστάσεων που εξετάζει για να βρει τις απαιτούµενες λύσεις είναι ίσο µε τοχώροαναζήτησης. " Ένας αλγόριθµος αναζήτησης ονοµάζεται πλήρης (complete) αν εγγυάται ότι θα βρει µία λύση για οποιαδήποτε τελική κατάσταση, αν τέτοια λύση υπάρχει. Σε αντίθετη περίπτωση, ο αλγόριθµος ονοµάζεται ατελής (incomplete). " Αν ένας αλγόριθµος είναι εξαντλητικός, τότε είναι και πλήρης. " Μία λύση ονοµάζεται βέλτιστη (optimal) αν οδηγεί στην καλύτερη, σύµφωνα µε τηδιάταξη, τελική κατάσταση. Όταν δεν υπάρχει διάταξη, µία λύση ονοµάζεται βέλτιστη αν είναι η συντοµότερη (shortest). " Ένας αλγόριθµος αναζήτησης καλείται παραδεκτός (admissible) αν εγγυάται ότι θα βρει τη βέλτιστη λύση, αν µια τέτοια λύση υπάρχει. Γιάννης Ρεφανίδης 20 10
Κριτήρια Επιλογής Αλγορίθµου " Η επιλογή ενός αλγορίθµου βασίζεται στα εξής κριτήρια: " αριθµός των καταστάσεων που αυτός επισκέπτεται " δυνατότητα εύρεσης λύσεων εφόσον αυτές υπάρχουν " αριθµός των λύσεων " ποιότητα των λύσεων " αποδοτικότητά του σε χρόνο " αποδοτικότητά του σε χώρο (µνήµη) " ευκολία υλοποίησής του " δυνατότητα κλαδέµατος καταστάσεων " Κλάδεµα ή αποκοπή καταστάσεων (pruning) του χώρου αναζήτησης είναι η διαδικασία κατά την οποία ο αλγόριθµος απορρίπτει, κάτω από ορισµένες συνθήκες, κάποιες καταστάσεις. Γιάννης Ρεφανίδης 21 Γενικός Αλγόριθµος Αναζήτησης (1/3) " Μέτωπο της αναζήτησης (search frontier) ενός αλγορίθµου είναι το διατεταγµένο σύνολο (λίστα) των καταστάσεων που ο αλγόριθµος έχει ήδη επισκεφτεί, αλλά δεν έχουν ακόµη επεκταθεί. " Κλειστό σύνολο (closed set) ενός αλγορίθµου αναζήτησης είναι το σύνολο όλων των καταστάσεων που έχουν ήδη επεκταθεί από τον αλγόριθµο. " Με έναν απλό έλεγχο, αν η κατάσταση προς επέκταση ανήκει ήδη στο κλειστό σύνολο, αποφεύγονται οι βρόχοι (loops). Γιάννης Ρεφανίδης 22 11
Γενικός Αλγόριθµος Αναζήτησης (2/3) Γιάννης Ρεφανίδης 23 Γενικός Αλγόριθµος Αναζήτησης (3/3) 1. Βάλε την αρχική κατάσταση στο µέτωπο της αναζήτησης. 2. Αν το µέτωπο αναζήτησης είναι άδειο τότε σταµάτησε. 3. Πάρε την πρώτη σε σειρά κατάσταση του µετώπου της αναζήτησης. 4. Αν είναι η κατάσταση αυτή µέρος του κλειστού συνόλου τότε πήγαινε στο βήµα 2. 5. Αν είναι η κατάσταση αυτή τελική κατάσταση τότε τύπωσε τη λύση και πήγαινε στο βήµα 2. 6. Εφάρµοσε τους τελεστές µετάβασης για να παράγεις τις καταστάσειςπαιδιά. 7. Βάλε τις νέες καταστάσεις-παιδιά στο µέτωπο της αναζήτησης. 8. Κλάδεψε τις καταστάσεις που δε χρειάζονται (σύµφωνα µε κάποιο κριτήριο), βγάζοντάς τες από το µέτωπο της αναζήτησης. 9. Κάνε αναδιάταξη στο µέτωπο της αναζήτησης (σύµφωνα µε κάποιο κριτήριο). 10. Βάλε την κατάσταση-γονέα στο κλειστό σύνολο. 11. Πήγαινε στο βήµα 2. Γιάννης Ρεφανίδης 24 12