Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1
Αλγόριθμοι Τυφλής Αναζήτησης Οι αλγόριθμοι τυφλής αναζήτησης εφαρμόζονται σε προβλήματα στα οποία δεν υπάρχει πληροφορία που να επιτρέπει την αξιολόγηση των καταστάσεων του χώρου αναζήτησης. Δεν έχει σημασία τι απεικονίζει η κάθε κατάσταση, αλλά μόνο η χρονική σειρά με την οποία παράγονται οι καταστάσεις κατά τη διαδικασία της επέκτασης. Όνομα Συντομογραφία Ελληνική Ορολογία Depth-First Search DFS Αναζήτηση Πρώτα σε Βάθος Breadth-First Search BFS Αναζήτηση Πρώτα σε Πλάτος Iterative Deepening ID Επαναληπτική Εκβάθυνση Bi-directional Search BiS Αναζήτηση Διπλής Κατεύθυνσης Branch and Bound B&B Επέκταση και Οριοθέτηση 2
Παράδειγμα: Πρόβλημα ποτηριών (1/3) Αρχική Κατάσταση Τελική Κατάσταση 3
Παράδειγμα: Πρόβλημα ποτηριών (2/3) 4
Παράδειγμα: Πρόβλημα ποτηριών (3/3) Μέρος του χώρου αναζήτησης 5
Depth-First Search (DFS) Ο αλγόριθμος αναζήτησης πρώτα σε βάθος επιλέγει προς επέκταση την κατάσταση που βρίσκεται βαθύτερα στο δέντρο αναζήτησης. 1. Βάλε την αρχική κατάσταση στο μέτωπο αναζήτησης. 2. Αν το μέτωπο αναζήτησης είναι κενό τότε σταμάτησε. 3. Βγάλε την πρώτη κατάσταση από το μέτωπο αναζήτησης. 4. Αν είναι η κατάσταση αυτή μέλος του κλειστού συνόλου τότε πήγαινε στο βήμα 2. 5. Αν είναι η κατάσταση αυτή τελική τότε τύπωσε τη λύση. 6. Αν θέλεις κι άλλες λύσεις πήγαινε στο βήμα 2 αλλιώς σταμάτησε. 7. Εφάρμοσε τους τελεστές μετάβασης για να παράγεις τις καταστάσεις-παιδιά. 8. Βάλε τις καταστάσεις-παιδιά στην αρχή του μετώπου αναζήτησης. 9. Βάλε την κατάσταση-γονέα στο κλειστό σύνολο. 10. Πήγαινε στο βήμα 2. 6
Depth-First Search (DFS) Σχόλια Το μέτωπο αναζήτησης είναι μια δομή στοίβας (LIFO). Η εξέταση αμέσως προηγούμενων χρονικά καταστάσεων ονομάζεται χρονική οπισθοδρόμηση (chronological backtracking). Πλεονεκτήματα: Το μέτωπο αναζήτησης δεν μεγαλώνει πολύ. Μειονεκτήματα: Δεν εγγυάται ότι η πρώτη λύση που θα βρεθεί είναι η βέλτιστη. Θεωρείται μη-πλήρης, όταν όμως ο χώρος αναζήτησης είναι πεπερασμένος και γίνεται χρήση του κλειστού συνόλου, ο DFS θα βρει λύση εάν υπάρχει. 7
Πρόβλημα ποτηριών - Δέντρο αναζήτησης DFS (βασισμένο στο μέρος του χώρου αναζήτησης της διαφάνειας 5) 8
Πρόβλημα ποτηριών Βήματα DFS 9
Breadth-First Search (BFS) Ο αλγόριθμος αναζήτησης πρώτα σε πλάτος εξετάζει πρώτα όλες τις καταστάσεις που βρίσκονται στο ίδιο βάθος και μετά συνεχίζει στην επέκταση καταστάσεων στο επόμενο επίπεδο. 1. Βάλε την αρχική κατάσταση στο μέτωπο αναζήτησης. 2. Αν το μέτωπο αναζήτησης είναι κενό τότε σταμάτησε. 3. Βγάλε την πρώτη κατάσταση από το μέτωπο αναζήτησης. 4. Αν είναι η κατάσταση αυτή μέλος του κλειστού συνόλου τότε πήγαινε στο βήμα 2. 5. Αν είναι η κατάσταση αυτή τελική τότε τύπωσε τη λύση. 6. Αν θέλεις κι άλλες λύσεις πήγαινε στο βήμα 2 αλλιώς σταμάτησε. 7. Εφάρμοσε τους τελεστές μετάβασης για να παράγεις τις καταστάσεις-παιδιά. 8. Βάλε τις καταστάσεις-παιδιά στο τέλος του μετώπου αναζήτησης. 9. Βάλε την κατάσταση-γονέα στο κλειστό σύνολο. 10. Πήγαινε στο βήμα 2. 10
Breadth-First Search (BFS) Σχόλια Το μέτωπο αναζήτησης είναι μια δομή ουράς (FIFO). Πλεονεκτήματα: Βρίσκει πάντα τη καλύτερη λύση (μικρότερη σε μήκος, δηλαδή αριθμό τελεστών). Είναι πλήρης. Μειονεκτήματα: Το μέτωπο της αναζήτησης μεγαλώνει συγκριτικά πολύ σε μέγεθος. 11
Πρόβλημα ποτηριών Βήματα BFS (1/2) 12
Πρόβλημα ποτηριών Βήματα BFS (2/2) 13
Iterative Deepening (ID) Ο αλγόριθμος επαναληπτικής εκβάθυνσης συνδυάζει με τον καλύτερο τρόπο τους DFS και BFS. 1. Όρισε το αρχικό βάθος αναζήτησης (συνήθως 1). 2. Εφάρμοσε τον αλγόριθμο DFS μέχρι αυτό το βάθος αναζήτησης. 3. Αν έχεις βρει λύση τύπωσέ την και σταμάτησε. 4. Αύξησε το βάθος αναζήτησης (συνήθως κατά 1). 5. Πήγαινε στο βήμα 2. 14
Iterative Deepening (ID) - Σχόλια Μειονεκτήματα: Δεν θυμάται τίποτα από τον προηγούμενο κύκλο αναζήτησης. Πλεονεκτήματα: Είναι πλήρης. Αν το βάθος αυξάνεται κατά 1 σε κάθε κύκλο και ο ID βρει λύση, τότε αυτή είναι η βέλτιστη. Έχει αποδειχθεί ότι έχει την ίδια πολυπλοκότητα σε χώρο και χρόνο με τους DFS και BFS. Δεν κινδυνεύει να χαθεί σε κάποιο κλαδί άπειρου μήκους. 15
ID Συμβιβασμός αποδοτικότητας και ποιότητας Αν το βάθος αναζήτησης αυξάνεται με βήμα Β>1, ελαττώνεται η περιττή δουλειά που κάνει ο ID σε κάθε επανάληψη (καλύτερη αποδοτικότητα). Όμως, έτσι μπορεί να θυσιαστεί η εύρεση βέλτιστης λύσης. Βρίσκεται λύση που απέχει το πολύ Β-1 τελεστές από την βέλτιστη. 16
Bi-directional Search (BiS) Η ιδέα της αναζήτησης διπλής κατεύθυνσης πηγάζει από τη δυνατότητα του παραλληλισμού στα υπολογιστικά συστήματα. Προϋποθέσεις για την εφαρμογή του αλγορίθμου: Οι τελεστές μετάβασης είναι αντιστρέψιμοι (reversible). Είναι πλήρως γνωστή η τελική κατάσταση. Πλεονεκτήματα: Παραλληλισμός. Μειονεκτήματα: Επιπλέον κόστος επικοινωνίας μεταξύ των δύο παράλληλων αναζητήσεων. Μπορεί να χρησιμοποιηθεί διαφορετικός αλγόριθμος στα δύο threads Η πολυπλοκότητα δεν μειώνεται αλλά κληρονομείται 17
Bi-directional Search (BiS) Εφαρμογή: Αρχίζει την αναζήτηση ταυτόχρονα από αρχική και τελική κατάσταση. Αν κάποια κατάσταση που επεκτείνεται είναι κοινή, βρέθηκε λύση. Η λύση είναι η ένωση των μονοπατιών από την κοινή κατάσταση ως την αρχική και τελική κατάσταση. 18
Branch & Bound (B&B) Ο αλγόριθμος επέκτασης και οριοθέτησης χρησιμοποιείται σε προβλήματα όπου αναζητείται η βέλτιστη λύση και υπάρχει μια πραγματική εκτίμηση του κόστους. Ο αλγόριθμος κλαδεύει κλαδιά του δέντρου, ελαττώνοντας έτσι τις συνολικές καταστάσεις που θα επισκεφθεί. Παράδειγμα: Έχει ήδη βρεθεί μια λύση με κόστος 159. Κατά την αναζήτηση για άλλες λύσεις, μια κατάταση βρίσκεται να έχει κόστος 167. Αυτή η κατάσταση μπορεί να κλαδευτεί, αφού οποιαδήποτε λύσει προκύψει από αυτή θα έχει μεγαλύτερο κόστος από αυτή που έχει ήδη εντοπισθεί. 19
Branch & Bound (B&B) 1. Βάλε την αρχική κατάσταση στο μέτωπο αναζήτησης. 2. Αρχική τιμή της καλύτερης λύσης είναι το + (όριο). 3. Αν το μέτωπο αναζήτησης είναι κενό τότε σταμάτησε. Η καλύτερη λύση μέχρι τώρα είναι η βέλτιστη. 4. Βγάλε την πρώτη κατάσταση από το μέτωπο αναζήτησης. 5. Αν είναι η κατάσταση αυτή μέλος του κλειστού συνόλου τότε πήγαινε στο βήμα 3. 6. Αν είναι η κατάσταση αυτή τελική τότε ανανέωσε τη λύση ως τη καλύτερη μέχρι τώρα και ανανέωσε τη τιμή του ορίου με την τιμή που αντιστοιχεί στην τελική κατάσταση. Πήγαινε στο βήμα 3. 7. Εφάρμοσε τους τελεστές μετάβασης για να παράγεις τις καταστάσεις-παιδιά και τις τιμές που τους αντιστοιχούν. 8. Βάλε τις καταστάσεις-παιδιά των οποίων η τιμή δεν υπερβαίνει το όριο, στην αρχή του μετώπου αναζήτησης *. 9. Βάλε την κατάσταση-γονέα στο κλειστό σύνολο. 10. Πήγαινε στο βήμα 3. *DFS-B&B 20
Branch & Bound (B&B) Κλάδεμα Το κέρδος από το κλάδεμα εξαρτάται από το πόσο γρήγορα θα βρεθεί μία καλή λύση. Υπάρχει περίπτωση να μη γίνει καθόλου κλάδεμα αν οι λύσεις είναι διατεταγμένες από τη χειρότερη προς τη καλύτερη. Στη χειρότερη περίπτωση συμπεριφέρεται σαν τον DFS. 21
Το Πρόβλημα του Πλανόδιου Πωλητή Το πρόβλημα του πλανόδιου πωλητή (travelling salesman problem TSP), ανήκει στην κατηγορία NP-complete (μη-πολυωνυμικού χρόνου). Είναι πρόβλημα ελαχιστοποίησης κόστους και βρίσκει πολλές εφαρμογές. 22
Ο Β&B στο TSP 23
Εφαρμογή των Αλγορίθμων Τυφλής Αναζήτησης Το πρόβλημα του Λαβύρινθου: Αρχική κατάσταση: (1, 4). Το σύνολο των τελικών καταστάσεων περιέχει μόνο την (15,10). Οι τελεστές μετάβασης είναι οι: πήγαινε μία θέση αριστερά, πήγαινε μία θέση επάνω, πήγαινε μία θέση δεξιά, πήγαινε μία θέση κάτω, όλοι με την προϋπόθεση ότι η θέση είναι ελεύθερη. Ο χώρος καταστάσεων είναι όλες οι θέσεις που δεν περιέχουν εμπόδια του πλέγματος 24
Εφαρμογή DFS 25
Εφαρμογή BFS 26
Εφαρμογή ID 27
Ενδεικτική Βιβλιογραφία Κεφάλαιο 3 (3.1, 3.2, 3.3, 3.4, 3.5 και 3.6) του βιβλίου «Τεχνητή Νοημοσύνη», Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας και Η. Σακελλαρίου. 28