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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 1 - Επίλυση Προβλημάτων

Ε ανάληψη. Καταβολές. Ιστορική αναδροµή. Πράκτορες. Περιβάλλοντα. συνεισφορά άλλων επιστηµών στην ΤΝ σήµερα

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΙΑΤΜΗΜΑΤΙΚΟ ΠΜΣ «ΜΑΘΗΜΑΤΙΚΑ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΤΩΝ ΑΠΟΦΑΣΕΩΝ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ η Σειρά Ασκήσεων ΑΠΑΝΤΗΣΕΙΣ

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

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

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

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Ε ανάληψη. Ορισµοί της Τεχνητής Νοηµοσύνης (ΤΝ) Καταβολές. Ιστορική αναδροµή. Πράκτορες. Περιβάλλοντα. κριτήρια νοηµοσύνης

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1

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

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

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

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

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

Τεχνητή Νοημοσύνη Ι. Εργαστηριακή Άσκηση 4-6. Σγάρμπας Κυριάκος. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστων

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

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

Ευφυείς Τεχνολογίες Πράκτορες

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

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

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

Δέντρα Απόφασης (Decision(

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

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

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

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

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

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

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

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

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

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

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

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

Κεφάλαιο 6. Ικανοποίηση Περιορισµών. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η.

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα

Αλγόριθµοι Τύπου Μείωσης Προβλήµατος

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

ΚΕΦΑΛΑΙΟ 5: Αλγόριθµοι

ΗΥ360 Αρχεία και Βάσεις εδοµένων

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

2η Σειρά Γραπτών Ασκήσεων

Αλγόριθµοι Οπισθοδρόµησης

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

Εισαγωγή στους Αλγόριθμους

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

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

1 ΠΡΟΒΛΗΜΑΤΑ ΤΝ ΚΑΙ LISP

3η Σειρά Γραπτών Ασκήσεων

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

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

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων

Αλγόριθµοι και Πολυπλοκότητα

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 12: Αντιμετώπιση Περιορισμών Αλγοριθμικής Ισχύος

Αναζήτηση (Search) Τµήµα Ψηφιακών Συστηµάτων Πανεπιστήµιο Πειραιώς

6η Διάλεξη Διάσχιση Γράφων και Δέντρων

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

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

Αλγοριθμικές Τεχνικές

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

Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL

Δυναµικός Προγραµµατισµός (ΔΠ)

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

Transcript:

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

Εισαγωγή Παράδειγμα: κρυφός συνδυασμός μιας ηλεκτρονικής κλειδαριάς που δέχεται ως κλειδί έναν αριθμό με 2 ψηφία έχουμε να ψάξουμε (δοκιμάσουμε) 100 συνδυασμούς. Αν η κάθε δοκιμή χρειάζεται 1 δευτερόλεπτο τότε θέλουμε 1 min και 40sec. Αν όμως το κλειδί αποτελείται από 4 ψηφία τότε πρέπει να ψάξουμε 10000 συνδυασμούς το οποίο μπορεί να μας πάρει μέχρι και 2 ώρες και 45 λεπτά. με 8 ψηφία; πάνω από 3 χρόνια στην χειρότερη περίπτωση. Εισαγωγή βλέπουμε την εκθετική αύξηση της πολυπλοκότητας που παρουσιάζουν πολλά προβλήματα. για μικρά μεγέθη προβλημάτων ή για πολύ απλά προβλήματα μπορούμε να χρησιμοποιήσουμε τυφλή αναζήτηση. αλλοιώς χρησιμοποιούμε extra πληροφορία. Αν για παράδειγμα, ξέραμε ότι αυτός που όρισε το κλειδί βάζει ως κλειδιά ημερομηνίες γεννήσεως συγγενικών του προσώπων τότε θα χρειαζόταν να δοκιμάσουμε πολύ λίγους συνδυασμούς (ευριστικός τρόπος). εξαρτάται από το πρόβλημα

Μισθοφόροι και κανίβαλοι A B cannibal cannibal cannibal missionary missionary missionary Μισθοφόροι και κανίβαλοι Έχουμε στην όχθη ενός ποταμού 3 μισθοφόρους και 3 κανίβαλους και μία βάρκα που χωράει το πολύ 2 άτομα. Περιορισμοί δεν υπάρχει κανένας τρόπος να περάσει κάποιος το ποτάμι πάρα μόνο με την βάρκα η βάρκα δεν μπορεί να μετακινηθεί παρά μόνο αν υπάρχει κάποιος μέσα. Ζητείται ένα σχέδιο μετακινήσεων με βάση το οποίο θα περάσουν το ποτάμι και οι μισθοφόροι και οι κανίβαλοι με τον επιπλέον περιορισμό ότι ποτέ δεν πρέπει σε μία όχθη να υπάρχουν μισθοφόροι, ο αριθμός των οποίων να είναι μικρότερος από τον αριθμό των κανιβάλων σε εκείνη την όχθη.

Σπαζοκεφαλιά 2 8 3 1 6 4 7 5 1 2 3 8 4 7 6 5 Σπαζοκεφαλιά Έχουμε έναν πίνακα 3 x 3 (9 θέσεων). Η μία θέση του πίνακα είναι κενή ενώ στις άλλες υπάρχει κάποιος από τους αριθμούς 1 μέχρι 8. Ο κάθε αριθμός εμφανίζεται ακριβώς μία φορά. Στον πίνακα αυτόν επιτρέπονται οι μετακινήσεις των αριθμών με τον εξής τρόπο: ένας αριθμός μπορεί να μετακινηθεί μόνο οριζόντια ή κάθετα κατά μία θέση κάθε φορά εφόσον η θέση στην οποία θα μετακινηθεί ήταν προηγουμένως άδεια. Δεδομένου μίας αρχικής διάταξης ζητείται να γίνουν οι κατάλληλες κινήσεις έτσι ώστε ο πίνακας να φτάσει στην τελική του μορφή

Ο κόσμος των κύβων A B C A B C Ο κόσμος των κύβων Έχουμε πάνω σε ένα τραπέζι 3 κύβους ιδίου μεγέθους: Α, B, C. Αρχικά έχουμε τον κύβο C πάνω στον κύβο Α ενώ ο κύβος B βρίσκεται μόνος του πάνω στο τραπέζι. Κάθε φορά μπορούμε να μετακινήσουμε ένα μόνο κύβο και να τον τοποθετήσουμε πάνω στο τραπέζι ή πάνω σε κάποιο άλλο κύβο ο οποίος όμως δεν πρέπει να έχει άλλον κύβο πάνω του (πρέπει να είναι ο πάνω κύβος). Δεν μπορούμε να μετακινήσουμε τους κύβους που έχουν κάποιον άλλο κύβο πάνω τους. Ζητείται ένα σχέδιο κινήσεων έτσι ώστε να καταλήξουμε να έχουμε τον κύβο C πάνω στο τραπέζι, τον B πάνω στο C και τον Α πάνω στο Β.

Το πρόβλημα του πλανόδιου πωλητή C C1 C2 C3 C4 C5 C6 C7 B C8 C10 F C9 C12 A C13 C11 D C14 C15 E Το πρόβλημα του πλανόδιου πωλητή Έχουμε ένα σύνολο από πόλεις οι οποίες συνδέονται με διάφορους δρόμους μεταξύ τους. Για κάθε τέτοιο δρόμο ξέρουμε το μήκος του. Ένας πλανόδιος πωλητής θέλει να περάσει από όλες αυτές τις πόλεις. Ζητείται η σειρά με την οποία πρέπει να επισκεφτεί τις πόλεις ο πλανόδιος πωλητής έτσι ώστε από κάθε πόλη να περάσει ακριβώς μία φορά, να καταλήξει στην πόλη από την οποία ξεκίνησε και να κάνει τα ελάχιστα δυνατά χιλιόμετρα.

Επιλογή οδικής διαδρομής Δεδομένου ενός οδικού χάρτη που περιέχει πόλεις, δρόμους και χιλιομετρικές αποστάσεις για τους δρόμους, ζητείται να βρεθεί ο συντομότερος δρόμος που συνδέει δύο δεδομένες πόλεις. 150 ΙΩΑΝΝΙΝΑ 144 120 ΤΡΙΚΑΛΑ 26 80 ΗΓΟΥΜΕΝΙΤΣΑ ΑΡΤΑ ΚΟΖΑΝΗ 50 ΚΑΤΕΡΙΝΗ 141 197 100 210 60 ΛΑΡΙΣΑ 60 ΒΟΛΟΣ 40 80 ΦΑΡΣΑΛΑ 92 ΛΑΜΙΑ 120 ΔΕΛΦΟΙ 140 212 100 80 45 90 ΑΙΓΙΟ 80 ΑΘΗΝΑ ΠΑΤΡΑ ΚΟΡΙΝΘΟΣ 75 ΝΑΥΠΛΙΟ Τα 12 νομίσματα Μας δίνονται 12 νομίσματα ένα από τα οποία είναι κάλπικο Στην διάθεση μας έχουμε μία ζυγαριά με την οποία μπορούμε να κάνουμε το πολύ 3 ζυγίσεις. Σε κάθε ζύγιση μπορούμε να συγκρίνουμε δύο ομάδες νομισμάτων και να δούμε πια ομάδα είναι βαρύτερη ή αν οι δύο ομάδες έχουν το ίδιο βάρος. Ζητείται ένα σχέδιο ζυγίσεων το οποίο βρίσκει σε κάθε περίπτωση ποιο είναι το κάλπικο νόμισμα.

Οι 8 βασίλισσες Έχουμε μία άδεια σκακιέρα και 8 βασίλισσες Ζητείται να τοποθετήσουμε τις βασίλισσες πάνω στην σκακιέρα έτσι ώστε καμία βασίλισσα να μην απειλεί κάποια άλλη. Αυτή είναι μία αποτυχημένη απόπειρα λύσης του προβλήματος: στην κυρίως λευκή διαγώνιο υπάρχουν 2 βασίλισσες. Κατηγοριοποίηση προβλημάτων Η λύση μπορεί να είναι απλώς μια τελική κατάσταση ή μπορεί να είναι το μονοπάτι προς κάποια τελική κατάσταση. Μπορεί να ψάχνουμε για την καλύτερη λύση ή απλώς για μια λύση. Η αρχική γνώση μπορεί να αρκεί ή μπορεί να μην αρκεί για να βρούμε μια λύση - εξωτερικοί παράγοντες μπορεί να επηρεάζουν τις επιλογές που έχουμε ή τα αποτελέσματα των πράξεων μας.

Επίλυση μέσω αναζήτησης Περιγραφή του προβλήματος ώς πρόβλημα αναζήτησης Μοντελοποίηση καταστάσεων Μοντελοποίηση μεταβάσεων Ορισμός αρχικής κατάστασης Ορισμός μεθόδου αναγνώρισης τελικών καταστάσεων Επιλογή αλγορίθμου αναζήτησης Παράδειγμα μοντελοποίησης Μισθοφόροι και κανίβαλοι: (M,K,O) Μεταβάσεις:» (x, y, Α) (x-1, y, B) αν x > 0.» (x, y, Α) (x-2, y, B) αν x > 1.» (x, y, Α) (x, y-1, B) αν y > 0.» (x, y, Α) (x, y-2, B) αν y > 1.» (x, y, Α) (x-1, y-1, B) αν x > 0 και y > 0.» (x, y, B) (x+1, y, A) αν x < 3.»... Αρχική κατάσταση: (3,3,Α) Τελική κατάσταση: (0,0,Β)

Γράφος καταστάσεων Περιγράφει των χώρο αναζήτησης και όλες τις δυνατές μεταβάσεις B E A C D Δέντρο αναζήτησης Το γενικό δέντρο αναζήτησης περιέχει όλα τα δυνατά μονοπάτια που μπορούν να ακολουθήσουν οι αλγόριθμοι αναζήτησης A C B D C E A D C B A

Παράδειγμα - Μισθ. Και Κανίβαλοι δέντρο αναζήτησης 3, 3, A 3, 2, B 3, 1, B 2, 2, B 1, 3, B 2, 3, B 3, 3, A 3, 2, A 3, 3, A 2, 3, A 3, 2, A 3, 3, A............ 3, 1, B 3, 0, B 2, 1, B 1, 2, B 2, 2, B Παράδειγμα - Μισθ. Και Κανίβαλοι 3, 3, A 3, 1, B 3, 2, B 2, 2, B 2, 3, B 1, 3, B 3, 2, A 1, 2, B 2, 3, A 3, 0, B 2, 1, B 2, 0, B Γράφος καταστάσεων 3, 1, A 1, 1, B 2, 1, A 1, 3, A 1, 2, A 2, 2, A 1, 1, A 0, 2, B 0, 3, A 0, 1, B 0, 2, A 0, 0, B

Περιγραφή Προβληµάτων µε Χώρο Καταστάσεων Κόσµος προβλήµατος Κλειστός κόσµος (closed world) Ανοιχτός κόσµος (open world) Κατάσταση προβλήµατος Κατάσταση ενός κόσµου είναι ένα στιγµιότυπο (instance) ή φωτογραφία (snapshot) µίας συγκεκριµένης χρονικής στιγµής της εξέλιξης του κόσµου. Κατάσταση (state) ενός κόσµου είναι µία επαρκής αναπαράσταση του κόσµου σε µία δεδοµένη χρονική στιγµή. Παράδειγµα Αντικείµενα Ιδιότητες Σχέσεις Κύβος Α Κύβος Α είναι ελεύθερος Κύβος Α πάνω στον κύβο Β Κύβος Β Κύβος Γ είναι ελεύθερος Κύβος Β πάνω στο Τ Κύβος Γ Τ έχει αρκετό ελεύθερο χώρο Κύβος Γ πάνω στο Τ Τ είναι Τραπέζι Κύβος Β δεν είναι ελεύθερος Αντικείµενα Ιδιότητες Σχέσεις 3 Ιεραπόστολοι Βάρκα δύο ατόµων Ιεραπόστολοι στην αριστερή όχθη 3 Κανίβαλοι Κανίβαλοι στην αριστερή όχθη Βάρκα Βάρκα στην αριστερή όχθη Αριστερή Όχθη εξιά Όχθη

Τελεστές µετάβασης Τελεστής µετάβασης (transition operator) είναι µια αντιστοίχηση µίας κατάστασης του κόσµου σε νέες καταστάσεις. Παράδειγµα Τελεστής: Μετέφερε δύο ιεραπόστολους από την αριστερή όχθη στη δεξιά Προϋποθέσεις: Υπάρχουν τουλάχιστον 2 ιεραπόστολοι στην αριστερή όχθη. Η βάρκα είναι στην αριστερή όχθη. Ο αριθµός των ιεραποστόλων που θα προκύψει στην αριστερή όχθη να µην είναι µικρότερος από τον αριθµό των κανιβάλων ή να µην υπάρχει άλλος ιεραπόστολος στην αριστερή όχθη. Αποτελέσµατα: Ο αριθµός των ιεραποστόλων στην αριστερή όχθη µειώνεται κατά 2. Ο αριθµός των ιεραποστόλων στην δεξιά όχθη αυξάνεται κατά 2. Η βάρκα είναι πλέον δεξιά και όχι αριστερά Χώρος Καταστάσεων Χώρος καταστάσεων (state space ή domain space) ενός προβλήµατος ονοµάζεται το σύνολο όλων των έγκυρων καταστάσεων.

Αρχικές και Τελικές καταστάσεις Η αρχική (initial state) και τελική (final ή goal state) κατάσταση εκφράζουν το δεδοµένο και το ζητούµενο αντίστοιχα. Ορισµός προβλήµατος Ένα πρόβληµα (Problem) ορίζεται ως η τετράδα P = ( I, G, T, S ) όπου: I είναι η αρχική κατάσταση, I S G είναι το σύνολο των τελικών καταστάσεων, G S T είναι το σύνολο των τελεστών µετάβασης, T: S S S είναι ο χώρος καταστάσεων. Λύση προβλήµατος Λύση (Solution) σε ένα πρόβληµα (I, G, T, S), είναι µία ακολουθία από τελεστές µετάβασης t 1, t 2,...t n T µε την ιδιότητα g = t n (...(t 2 (t 1 (I)))...), όπου g G Παράδειγµα Μετέφερε 1 ιεραπόστολο και 1 κανίβαλο από την αριστερή στη δεξιά όχθη Μετέφερε 1 ιεραπόστολο από τη δεξιά στην αριστερή όχθη Μετέφερε 2 κανίβαλους από την αριστερή στη δεξιά όχθη Μετέφερε 1 κανίβαλο από τη δεξιά στην αριστερή όχθη Μετέφερε 2 ιεραπόστολους από την αριστερή στη δεξιά όχθη Μετέφερε 1 ιεραπόστολο και 1 κανίβαλο από τη δεξιά στην αριστερή όχθη Μετέφερε 2 ιεραπόστολους από την αριστερή στη δεξιά όχθη Μετέφερε 1 κανίβαλο από τη δεξιά στην αριστερή όχθη Μετέφερε 2 κανίβαλους από την αριστερή στη δεξιά όχθη Μετέφερε 1 ιεραπόστολο από τη δεξιά στην αριστερή όχθη Μετέφερε 1 ιεραπόστολο και 1 κανίβαλο από την αριστερή στη δεξιά όχθη

Περιγραφή µε Αναγωγή (1/2) Μία ακολουθία από τελεστές ανάγουν την περιγραφή ενός προβλήµατος σε υποπροβλήµατα τα οποία είναι άµεσα επιλύσιµα, αρχέγονα (Primitive Problems). Για να µεταφερθούν n>1 δίσκοι από τον στύλο i στο στύλο k, πρέπει: να µεταφερθούν n-1 δίσκοι από το i στο j, να µεταφερθεί 1 δίσκος από το i στο k, να µεταφερθούν n-1 δίσκοι από το j στο k. Αρχική και τελική περιγραφή προβλήµατος Περιγραφή µε Αναγωγή (2/2) Τελεστής αναγωγής Ένας τελεστής αναγωγής (reduction operator) ανάγει ένα πρόβληµα σε υποπροβλή- µατα. Ορισµός προβλήµατος Ένα πρόβληµα ορίζεται τυπικά ως η τετράδα P = ( ID, GD, TR, PP ) όπου ID είναι η αρχική περιγραφή, GD είναι ένα σύνολο από τελικές περιγραφές, TR είναι ένα σύνολο τελεστών αναγωγής και PP είναι ένα σύνολο από αρχέγονα προβλήµατα.

Αλγόριθµοι Αναζήτησης Τυφλοί Όνοµα Αλγορίθµου Συντοµογραφία Ελληνική Ορολογία Depth-First Search DFS Αναζήτηση Πρώτα σε Βάθος Breadth-First Search BFS Αναζήτηση Πρώτα σε Πλάτος Iterative Deepening ID Επαναληπτική Εκβάθυνση Bi-directional Search BiS Αναζήτηση ιπλής Κατεύθυνσης Branch and Bound B&B Επέκταση και Οριοθέτηση Beam Search BS Ακτινωτή Αναζήτηση Ευριστικοί Hill Climbing HC Αναρρίχηση Λόφων Best-First Search BestFS Αναζήτηση Πρώτα στο Καλύτερο A* (A-star) A* Α* (Άλφα Άστρο) Παιχνιδιών 2 ατόµων Minimax Minimax Αναζήτηση Μεγίστου-Ελαχίστου Alpha-Beta AB Άλφα-Βήτα Χώρος Αναζήτησης οθέντος ενός προβλήµατος (I,G,T,S), χώρος αναζήτησης (search space) SP είναι το σύνολο όλων των καταστάσεων που είναι προσβάσιµες από την αρχική κατάσταση. Μία κατάσταση s ονοµάζεται προσβάσιµη (accessible) αν υπάρχει µια ακολουθία τελεστών µετάβασης t 1,t 2,...t k T τέτοια ώστε s=t k (...(t 2 (t 1 (I)))...). O χώρος αναζήτησης είναι υποσύνολο του χώρου καταστάσεων, δηλαδή SP S. Ο χώρος αναζήτησης µπορεί να αναπαρασταθεί µε γράφο. Είναι πάντα εφικτό να µετατραπεί ο γράφος σε δένδρο αναζήτησης (search tree), το οποίο όµως µπορεί να έχει µονοπάτια απείρου µήκους.

Χώρος Αναζήτησης ως ένδρο Αναζήτησης (1/2) Τµήµα ένδρου Κόµβος (Node) Ρίζα (Root) Φύλλο (Tip, Leaf) Κλαδί (Branch) Λύση (Solution) Επέκταση (Expansion) Παράγοντας ιακλάδωσης (Branching Factor) Αναπαράσταση Κατάσταση Αρχική Κατάσταση Τελική Κατάσταση ή Αδιέξοδο (Dead Node), δηλαδή κατάσταση στην οποία δεν µπορεί να εφαρµοστεί κανένας τελεστής µετάβασης. Τελεστής Μετάβασης που µετατρέπει µια κατάσταση-γονέα (Parent State) σε µία άλλη κατάσταση-παιδί (Child State). Μονοπάτι (Path) που ενώνει την αρχική µε µία τελική κατάσταση Η διαδικασία παραγωγής όλων των καταστάσεων-παιδιών ενός κόµβου. Ο αριθµός των καταστάσεων-παιδιών που προκύπτουν από µία επέκταση. Επειδή δεν είναι σταθερός αριθµός, αναφέρεται και ως Μέσος Παράγοντας ιακλάδωσης (Average Branching Factor). Ο παράγοντας διακλάδωσης (branching factor) εκφράζει τον αριθµό των καταστάσεων που προκύπτουν από µία άλλη κατάσταση. Χώρος Αναζήτησης ως ένδρο Αναζήτησης (2/2) Το φαινόµενο της εκθετικής αύξησης του αριθµού των κόµβων του δένδρου ονοµάζεται συνδυαστική έκρηξη (combinatorial explosion).

Χαρακτηριστικά Αλγορίθµων Ένας αλγόριθµος ονοµάζεται εξαντλητικός (exhaustive) όταν το σύνολο των καταστάσεων που εξετάζει ο αλγόριθµος για να βρει τις απαιτούµενες λύσεις είναι ίσο µε το χώρο αναζήτησης, δηλαδή V=SP. Ένας αλγόριθµος αναζήτησης ονοµάζεται πλήρης (complete) αν εγγυάται ότι θα βρει µία λύση για οποιαδήποτε τελική κατάσταση, αν τέτοια λύση υπάρχει. Σε αντίθετη περίπτωση, ο αλγόριθµος ονοµάζεται ατελής (incomplete). Μία λύση ονοµάζεται βέλτιστη (optimal) αν οδηγεί στην καλύτερη, σύµφωνα µε τη διάταξη, τελική κατάσταση. Όταν δεν υπάρχει διάταξη, µία λύση ονοµάζεται βέλτιστη αν είναι η συντοµότερη (shortest). Ένας αλγόριθµος αναζήτησης καλείται αποδεκτός (admissible) αν εγγυάται ότι θα βρει τη βέλτιστη λύση, αν µια τέτοια λύση υπάρχει. ιαδικασία Επιλογής Αλγορίθµου Αναζήτησης Η επιλογή ενός αλγορίθµου βασίζεται στα εξής κριτήρια: αριθµός των καταστάσεων που αυτός επισκέπτεται δυνατότητα εύρεσης λύσεων εφόσον αυτές υπάρχουν αριθµός των λύσεων ποιότητα των λύσεων αποδοτικότητά του σε χρόνο αποδοτικότητά του σε χώρο (µνήµη) ευκολία υλοποίησής του Κλάδεµα ή αποκοπή καταστάσεων (pruning) του χώρου αναζήτησης είναι η διαδικασία κατά την οποία ο αλγόριθµος απορρίπτει, κάτω από ορισµένες συνθήκες, κάποιες καταστάσεις.

Γενικός Αλγόριθµος Αναζήτησης Μέτωπο της αναζήτησης (search frontier) ενός αλγορίθµου είναι το διατεταγµένο σύνολο (λίστα) των καταστάσεων που ο αλγόριθµος έχει ήδη επισκεφτεί, αλλά δεν έχουν ακόµη επεκταθεί. Κλειστό σύνολο (closed set) ενός αλγορίθµου αναζήτησης είναι το σύνολο όλων των καταστάσεων που έχουν ήδη επεκταθεί από τον αλγόριθµο. Με έναν απλό έλεγχο, αν η κατάσταση προς επέκταση ανήκει ήδη στο κλειστό σύνολο, αποφεύγονται οι βρόχοι (loops). Γενικός Αλγόριθµος Αναζήτησης: 1. Βάλε την αρχική κατάσταση στο µέτωπο της αναζήτησης. 2. Αν το µέτωπο αναζήτησης είναι άδειο τότε σταµάτησε. 3. Πάρε την πρώτη σε σειρά κατάσταση του µετώπου της αναζήτησης. 4. Αν είναι η κατάσταση αυτή µέρος του κλειστού συνόλου τότε πήγαινε στο βήµα 2. 5. Αν είναι η κατάσταση αυτή τελική κατάσταση τότε τύπωσε τη λύση και πήγαινε στο βήµα 2. 6. Εφάρµοσε τους τελεστές µετάβασης για να παράγεις τις καταστάσεις-παιδιά. 7. Βάλε τις νέες καταστάσεις-παιδιά στο µέτωπο της αναζήτησης. 8. Κλάδεψε τις καταστάσεις που δε χρειάζονται (σύµφωνα µε κάποιο κριτήριο), βγάζοντάς τες από το µέτωπο της αναζήτησης. 9. Κάνε αναδιάταξη στο µέτωπο της αναζήτησης (σύµφωνα µε κάποιο κριτήριο). 10. Βάλε την κατάσταση-γονέα στο κλειστό σύνολο. 11. Πήγαινε στο βήµα 2.

Γενικός Αλγόριθµος (Ψευδοκώδικας) algorithm general(initialstate, FinalState) begin Closed ; Frontier <InitialState>; CurrentState First(Frontier); while CurrentState FinalState do Frontier delete(currentstate,frontier); if CurrentState ClosedSet then begin Next Expand(CurrentState); Frontier insert(next,frontier); Frontier prune(frontier); Frontier reorder(frontier); Closed Closed {CurrentState}; end; if Frontier= then exit; CurrentState First(Frontier); endwhile; end. Αλγόριθµοι Τυφλής Αναζήτησης Οι αλγόριθµοι τυφλής αναζήτησης (blind search algorithms) εφαρµόζονται σε προβλήµατα στα οποία δεν υπάρχει πληροφορία που να επιτρέπει την αξιολόγηση των καταστάσεων του χώρου αναζήτησης.

Παράδειγµα Το πρόβληµα των ποτηριών Τελεστής Γέµισε το ποτήρι των Χ 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

ένδρο αναζήτησης στο πρόβληµα των ποτηριών Αναζήτηση Πρώτα σε Βάθος Ο αλγόριθµος πρώτα σε βάθος (Depth-First Search - DFS) επιλέγει προς επέκταση την κατάσταση που βρίσκεται πιο βαθιά στο δένδρο. Ο αλγόριθµος DFS: 1. Βάλε την αρχική κατάσταση στο µέτωπο της αναζήτησης. 2. Αν το µέτωπο της αναζήτησης είναι κενό τότε σταµάτησε. 3. Βγάλε την πρώτη κατάσταση από το µέτωπο της αναζήτησης. 4. Αν είναι η κατάσταση µέλος του κλειστού συνόλου τότε πήγαινε στο βήµα 2. 5. Αν η κατάσταση είναι µία από τις τελικές, τότε ανέφερε τη λύση. 6. Αν θέλεις και άλλες λύσεις πήγαινε στο βήµα 2. Αλλιώς σταµάτησε. 7. Εφάρµοσε τους τελεστές µετάβασης για να βρεις τις καταστάσεις-παιδιά. 8. Βάλε τις καταστάσεις-παιδιά στην αρχή του µετώπου της αναζήτησης. 9. Βάλε την κατάσταση-γονέα στο κλειστό σύνολο. 10. Πήγαινε στο βήµα 2.

Ο αλγόριθµος DFS (Ψευδοκώδικας) algorithm dfs(initialstate, FinalStates) begin Closed ; Frontier <InitialState>; CurrentState First(Frontier); while CurrentState FinalStates do Frontier delete(currentstate,frontier); if CurrentState ClosedSet then begin ChildrenStates Expand(CurrentState); Frontier ChildrenStates ^ Frontier; Closed Closed {CurrentState}; end; if Frontier= then exit; CurrentState First(Frontier); endwhile; end. Αναζήτηση Πρώτα σε Βάθος Σχόλια Το µέτωπο της αναζήτησης είναι µια δοµή στοίβας (Stack LIFO, Last In First Out) Η εξέταση αµέσως προηγουµένων (χρονικά) καταστάσεων ονοµάζεται χρονική οπισθοδρόµηση (chronological backtracking). Πλεονεκτήµατα: Έχει µικρές απαιτήσεις σε χώρο διότι το µέτωπο της αναζήτησης δε µεγαλώνει πάρα πολύ. Μειονεκτήµατα: εν εγγυάται ότι η πρώτη λύση που θα βρεθεί είναι η βέλτιστη (µονοπάτι µε το µικρότερο µήκος ή µε µικρότερο κόστος). Εν γένει θεωρείται ατελής (αν δεν υπάρχει έλεγχος βρόχων ή αν ο χώρος αναζήτησης είναι µη πεπερασµένος)

Αναζήτηση Πρώτα σε Βάθος Πρόβληµα των ποτηριών Μέτωπο της αναζήτησης Κλειστό Σύνολο Κατάσταση Παιδιά <Α> {} Α <Β, Γ> <Β, Γ> {Α} Β <Α, > <Α,, Γ> {Α,Β} Α - (βρόχος) <, Γ> {Α,Β} <Β,Ζ,Γ> <Β,Ζ,Γ,Γ> {Α,Β, } Β - (βρόχος) <Ζ,Γ,Γ> {Α,Β, } Ζ <Α,Θ, > <Α,Θ,,Γ,Γ> {Α,Β,,Ζ} Α - (βρόχος) <Θ,,Γ,Γ> {Α,Β,,Ζ} Θ <Ζ,,Ι> <Ζ,,Ι,,Γ,Γ> {Α,Β,,Ζ,Θ} Ζ - (βρόχος) <,Ι,,Γ,Γ> {Α,Β,,Ζ,Θ} - (βρόχος) <Ι,,Γ,Γ> {Α,Β,,Ζ,Θ} Ι <Κ,Γ,Β> <Κ,Γ,Β,,Γ,Γ> {Α,Β,,Ζ,Θ,Ι} Κ ΤΕΛΙΚΗ Αναζήτηση Πρώτα σε Πλάτος Ο αλγόριθµος αναζήτησης πρώτα σε πλάτος (Breadth First Search - BFS) εξετάζει πρώτα όλες τις καταστάσεις που βρίσκονται στο ίδιο βάθος και µετά συνεχίζει στην επέκταση καταστάσεων στο αµέσως επόµενο επίπεδο. Ο αλγόριθµος BFS: 1. Βάλε την αρχική κατάσταση στο µέτωπο της αναζήτησης. 2. Αν το µέτωπο της αναζήτησης είναι κενό τότε σταµάτησε. 3. Βγάλε την πρώτη κατάσταση από το µέτωπο της αναζήτησης. 4. Αν είναι η κατάσταση µέλος του κλειστού συνόλου τότε πήγαινε στο βήµα 2. 5. Αν η κατάσταση είναι µία τελική τότε ανέφερε τη λύση. 6. Αν θέλεις και άλλες λύσεις πήγαινε στο βήµα 2. Αλλιώς σταµάτησε. 7. Εφάρµοσε τους τελεστές µεταφοράς για να βρεις τις καταστάσεις-παιδιά. 8. Βάλε τις καταστάσεις-παιδιά στο τέλος του µετώπου της αναζήτησης. 9. Βάλε την κατάσταση-γονέα στο κλειστό σύνολο. 10. Πήγαινε στο βήµα 2.

Ο αλγόριθµος BFS (Ψευδοκώδικας) algorithm bfs(initialstate, FinalStates) begin Closed ; Frontier <InitialState>; CurrentState First(Frontier); while CurrentState FinalStates do Frontier delete(currentstate,frontier); if CurrentState ClosedSet begin ChildrenStates Expand(CurrentState); Frontier Frontier ^ ChildrenStates; Closed Closed {CurrentState}; end; if Frontier= then exit; CurrentState First(Frontier); endwhile; end. Αναζήτηση Πρώτα σε Πλάτος Σχόλια Το µέτωπο της αναζήτησης είναι µια δοµή ουράς (Queue FIFO, δηλαδή First In First Out). Πλεονεκτήµατα: Βρίσκει πάντα την καλύτερη λύση (µικρότερη σε µήκος). Είναι πλήρης. Μειονεκτήµατα: Το µέτωπο της αναζήτησης µεγαλώνει πολύ σε µέγεθος.

Αναζήτηση Πρώτα σε Πλάτος Πρόβληµα των ποτηριών Μέτωπο αναζήτησης Κλειστό Σύνολο Κατάσταση Παιδιά <Α> {} Α <Β, Γ> <Β, Γ> {Α} Β <Α, > <Γ,Α, > {Α,Β} Γ <Ε,Α> <Α,,Ε,Α> {Α,Β,Γ} Α - (βρόχος) <,Ε,Α> {Α,Β,Γ} <Β,Ζ,Γ> <Ε,Α,Β,Ζ,Γ> {Α,Β,Γ, } Ε <Α,Η> <Α,Β,Ζ,Γ,Α,Η> {Α,Β,Γ,,Ε} Α - (βρόχος) <Β,Ζ,Γ,Α,Η> {Α,Β,Γ,,Ε} Β - (βρόχος) <Ζ,Γ,Α,Η> {Α,Β,Γ,,Ε} Ζ <Α,Θ, > <Γ,Α,Η,Α,Θ, > {Α,Β,Γ,,Ε,Ζ} Γ - (βρόχος) <Α,Η,Α,Θ, > {Α,Β,Γ,,Ε,Ζ} Α - (βρόχος) <Η,Α,Θ, > {Α,Β,Γ,,Ε,Ζ} Η <Ε,Γ> <Α,Θ,,Ε,Γ> {Α,Β,Γ,,Ε,Ζ,Η} Α - (βρόχος) <Θ,,Ε,Γ> {Α,Β,Γ,,Ε,Ζ,Η} Θ <Ζ,,Ι> <,Ε,Γ,Ζ,,Ι> {Α,Β,Γ,,Ε,Ζ,Η} - (βρόχος) <Ε,Γ,Ζ,,Ι> {Α,Β,Γ,,Ε,Ζ,Η} Ε - (βρόχος) <Γ,Ζ,,Ι> {Α,Β,Γ,,Ε,Ζ,Η} Γ - (βρόχος) <Ζ,,Ι> {Α,Β,Γ,,Ε,Ζ,Η} Ζ - (βρόχος) <,Ι> {Α,Β,Γ,,Ε,Ζ,Η} - (βρόχος) <Ι> {Α,Β,Γ,,Ε,Ζ,Η} Ι <Κ,Γ,Β> <Κ,Γ,Β> {Α,Β,Γ,,Ε,Ζ,Η,Ι} Κ ΤΕΛΙΚΗ

Αλγόριθµος Επαναληπτικής Εκβάθυνσης Ο αλγόριθµος επαναληπτικής εκβάθυνσης (Iterative Deepening - ID) συνδυάζει µε τον καλύτερο τρόπο τους DFS και BFS. Ο αλγόριθµος ID: 1. Όρισε το αρχικό βάθος αναζήτησης (συνήθως 1). 2. Εφάρµοσε τον αλγόριθµο DFS µέχρι αυτό το βάθος αναζήτησης. 3. Αν έχεις βρει λύση σταµάτησε. 4. Αύξησε το βάθος αναζήτησης (συνήθως κατά 1). 5. Πήγαινε στο βήµα 2. Ο αλγόριθµος ID (Ψευδοκώδικας) algorithm id(initialstate, FinalStates) begin depth 1 while solution is not found do bounded_dfs(initialstate,finalstates,depth); depth depth+1 endwhile; end. Αναζήτηση ID Σχόλια Μειονεκτήµατα: Όταν αρχίζει ο DFS µε διαφορετικό βάθος δε θυµάται τίποτα από την προηγούµενη αναζήτηση. Πλεονεκτήµατα: Είναι πλήρης. Αν το βάθος αυξάνεται κατά 1 σε κάθε κύκλο και ο ID βρει λύση, τότε αυτή η λύση θα είναι η καλύτερη.

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

Επέκταση και Οριοθέτηση Ο αλγόριθµος επέκτασης και οριοθέτησης (Branch and Bound - B&B) εφαρµόζεται σε προβλήµατα όπου αναζητείται η βέλτιστη λύση, δηλαδή εκείνη µε το ελάχιστο κόστος. Η λειτουργία του Β&Β βασίζεται στο κλάδεµα καταστάσεων (pruning) και κατά συνέπεια στην ελάττωση του χώρου αναζήτησης Ο αλγόριθµος B&B: 1. Βάλε την αρχική κατάσταση στο µέτωπο της αναζήτησης. 2. Αρχική τιµή της καλύτερης λύσης είναι το + (όριο). 3. Αν το µέτωπο της αναζήτησης είναι κενό, τότε σταµάτησε. Η καλύτερη µέχρι τώρα λύση είναι και η βέλτιστη. 4. Βγάλε την πρώτη σε σειρά κατάσταση από το µέτωπο της αναζήτησης. 5. Αν η κατάσταση ανήκει στο κλειστό σύνολο, τότε πήγαινε στο 3. 6. Αν η κατάσταση είναι τελική, τότε ανανέωσε τη λύση ως την καλύτερη µέχρι τώρα και ανανέωσε την τιµή του ορίου µε την τιµή που αντιστοιχεί στην τελική κατάσταση. Πήγαινε στο 3. 7. Εφάρµοσε τους τελεστές µεταφοράς για να παράγεις τις καταστάσειςπαιδιά και την τιµή που αντιστοιχεί σε αυτές. 8. Βάλε τις καταστάσεις-παιδιά, των οποίων η τιµή δεν υπερβαίνει το όριο, µπροστά στο µέτωπο της αναζήτησης. 9. Βάλε την κατάσταση-γονέα στο κλειστό σύνολο. 10. Πήγαινε στο 3.

Ο αλγόριθµος B&B (Ψευδοκώδικας) algorithm b&b(initialstate, FinalStates) begin Closed ; Frontier <InitialState>; BestCost ; while Frontier do CurrentState First(Frontier); CurrentCost Cost(Current_State); Frontier delete(currentstate,frontier); if CurrentState Closed then begin if CurrentState FinalStates and CurrentCost < BestCost then BestCost CurrentCost; else if CurrentCost < BestCost then begin ChildrenStates Expand(CurrentState); Frontier ChildrenStates ^ Frontier; Closed Closed {CurrentState}; end; end; endwhile; end. Ο αλγόριθµος B&B Σχόλια Ο B&B µπορεί να συνδυαστεί µε δυναµικό προγραµµατισµό (dynamic programming), όπου το κλάδεµα δε γίνεται µόνο σε σύγκριση µε το τρέχον όριο, δηλαδή τη βέλτιστη λύση µέχρι εκείνη τη στιγµή, αλλά γίνεται και για κάθε κατάσταση που είναι περιττή.

Ο αλγόριθµος B&B: Το πρόβληµα 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 αβγεδα 32 Τελική Κατάσταση............ <αβδεγα 26,...> 26 αβδεγα Τελική Κατάσταση............ <αβεγδ 26,...> 26 αβεγδ Κλάδεµα............ <αεβγδ 30,...> 26 αεβγδ Κλάδεµα............ <> ΕλάχιστηΤιµή ΤΕΛΟΣ Εφαρµογή των Αλγορίθµων Τυφλής Αναζήτησης Το πρόβληµα του Λαβύρινθου

Ορισµός του Προβλήµατος του Λαβυρίνθου Αρχική κατάσταση είναι η θέση µε συντεταγµένες (1,4). Το σύνολο τελικών καταστάσεων περιέχει µόνο τη θέση (15,10). Οι τελεστές µεταφοράς είναι οι εξής: πήγαινε µία θέση αριστερά, πήγαινε µία θέση επάνω, πήγαινε µία θέση δεξιά, πήγαινε µία θέση κάτω, εφόσον η θέση είναι ελεύθερη. Ο χώρος καταστάσεων είναι όλες οι ελεύθερες θέσεις, χωρίς εµπόδια, του πλέγµατος. Εφαρµογή του αλγορίθµου DFS

Λύση στο πρόβληµα του λαβύρινθου µε χρήση DFS Εφαρµογή αλγορίθµου BFS

Λύση στο πρόβληµα του λαβύρινθου µε χρήση BFS Εφαρµογή του ID στο πρόβληµα του λαβυρίνθου