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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αναζήτηση στους γράφους. - Αναζήτηση η κατά βάθος Συνεκτικές Συνιστώσες - Αλγόριθμος εύρεσης συνεκτικών συνιστωσών

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

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

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

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

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

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

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

Πληροφορική 2. Αλγόριθμοι

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

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

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

Διορθώσεις σελ

Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό

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

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

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

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

Διαχείριση Εφοδιαστικής Αλυσίδας ΙΙ

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

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

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

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

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

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

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

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

ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ

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

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

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

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

Δένδρα επικάλυψης ελάχιστου κόστους και το πρόβλημα του πλανόδιου πωλητή (Traveling Salesman Problem: TSP)

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

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

Δομές Δεδομένων (Data Structures)

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

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος

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

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

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

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

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

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων

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

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές

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

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

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

Κλάσεις Πολυπλοκότητας

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην Επιστήμη των Υπολογιστών

Transcript:

Τεχνητή Νοημοσύνη 04 Αλγόριθμοι Τυφλής Αναζήτησης Αλγόριθμοι Τυφλής Αναζήτησης (Blind Search Algorithms) Εφαρμόζονται σε προβλήματα στα οποία δεν υπάρχει πληροφορία που να επιτρέπει αξιολόγηση των καταστάσεων. Στους αλγορίθμους τυφλής αναζήτησης έχει σημασία η χρονική σειρά με την οποία παράγονται οι καταστάσεις από το μηχανισμό επέκτασης. Όνομα Αλγορίθμου Συντομογραφία Ελληνική Ορολογία Depth-First Search DFS Αναζήτηση Πρώτα σε Βάθος Breadth-First Search BFS Αναζήτηση Πρώτα σε Πλάτος Iterative Deepening ID Επαναληπτική Εκβάθυνση Bi-directional Search BiS Αναζήτηση Διπλής Κατεύθυνσης Branch and Bound B&B Επέκταση και Οριοθέτηση Φώτης Κόκκορας Τμ.Τεχν/γίας Πληροφορικής & Τηλ/νιών - ΤΕΙ Λάρισας Φώτης Κόκκορας -2- Τεχνητή Νοημοσύνη Παράδειγμα Το πρόβλημα των ποτηριών (1/2) Τελεστής (1) Γέμισε πλήρως άδειο ποτήρι των Χ ml από τη βρύση Προϋποθέσεις Το ποτήρι των Χ ml έχει 0 ml Αποτελέσματα Το ποτήρι των Χ ml έχει Χ ml Φώτης Κόκκορας -3- Τεχνητή Νοημοσύνη Παράδειγμα Το πρόβλημα των ποτηριών (2/2) Τελεστής (2) Άδειασε το ποτήρι των Υ ml στο ποτήρι των Χ ml. Προϋποθέσεις Το ποτήρι των Y ml έχει W ml (W 0) Το ποτήρι των Χ ml έχει Ζ ml Αποτελέσματα Το ποτήρι των Χ ml έχει Χ ml και Το ποτήρι των Υ ml έχει W-(X-Z), αν W X-Z ή Το ποτήρι των Χ ml έχει Ζ+W ml και Το ποτήρι των Υ ml έχει 0, αν W<X-Z Τελεστής (3) Άδειασε το ποτήρι των Χ ml στο νεροχύτη Προϋποθέσεις Το ποτήρι έχει περιεχόμενο Αποτελέσματα Το ποτήρι των Χ ml έχει 0 ml Φώτης Κόκκορας -4- Τεχνητή Νοημοσύνη

Μέρος του χώρου αναζήτησης στο πρόβλημα με τα ποτήρια Β Α Γ Αναζήτηση Πρώτα σε Βάθος (DFS) Depth-First Search - DFS Επιλέγει προς επέκταση την κατάσταση που βρίσκεται πιο βαθιά στο δένδρο. Δ 20 Ζ 20 70 50 50 Ι Θ 20 70 20 Κ 40 50 ΤΕΛΙΚΗ Ε 50 Η 50 50... Ο αλγόριθμος DFS: 1. Βάλε την αρχική κατάσταση στο μέτωπο της αναζήτησης. 2. Αν το μέτωπο της αναζήτησης είναι κενό τότε σταμάτησε. 3. Βγάλε την πρώτη κατάσταση από το μέτωπο της αναζήτησης. 4. Αν η κατάσταση ανήκει στο κλειστό σύνολο τότε πήγαινε στο βήμα 2. 5. Αν η κατάσταση είναι μία από τις τελικές, τότε ανέφερε τη λύση. 6. Αν θέλεις και άλλες λύσεις πήγαινε στο βήμα 2. Αλλιώς σταμάτησε. 7. Εφάρμοσε τους τελεστές μετάβασης για να βρεις τις καταστάσεις-παιδιά. 8. Βάλε τις καταστάσεις-παιδιά στην αρχή του μετώπου της αναζήτησης. 9. Βάλε την κατάσταση-γονέα στο κλειστό σύνολο. 10. Πήγαινε στο βήμα 2. Φώτης Κόκκορας -5- Τεχνητή Νοημοσύνη Φώτης Κόκκορας -6- Τεχνητή Νοημοσύνη Ο αλγόριθμος DFS (Ψευδοκώδικας) algorithm dfs(initialstate, FinalStates) Closed ; Frontier <InitialState>; while CurrentState FinalStates do Frontier delete(currentstate,frontier); if CurrentState ClosedSet then ChildrenStates Expand(CurrentState); Frontier ChildrenStates ^ Frontier; Closed Closed {CurrentState}; end; if Frontier= then exit; endwhile; return success; end. Φώτης Κόκκορας -7- Τεχνητή Νοημοσύνη Αναζήτηση Πρώτα σε Βάθος (DFS): Σχόλια Το μέτωπο της αναζήτησης είναι μια δομή στοίβας Stack LIFO - Last In First Out Πλεονεκτήματα: Το μέτωπο της αναζήτησης δε μεγαλώνει πάρα πολύ (οικονομικός σε μνήμη). Αν Β ο μέσος συντελεστής διακλάδωσης, σε βάθος Ν έχουμε ΒxΝ καταστάσεις γραμμική πολυπλοκότητα σε σχέση με το βάθος Ν Δεν εγγυάται ότι η πρώτη λύση που θα βρεθεί είναι η βέλτιστη. Παρατηρήσεις Σε υλοποίηση χωρίς έλεγχο βρόχων (χωρίς κλειστό σύνολο) ή αν ο χώρος αναζήτησης δεν είναι πεπερασμένος, ο DFS θωρείται μη-πλήρης. Αν ο χώρος αναζήτησης είναι πεπερασμένος και χρησιμοποιείται κλειστό σύνολο, ο DFS θα βρει λύση, εάν μια τέτοια υπάρχει (είναι πλήρης). Φώτης Κόκκορας -8- Τεχνητή Νοημοσύνη

Αναζήτηση Πρώτα σε Βάθος (DFS) Δένδρο αναζήτησης στο πρόβλημα των ποτηριών Αναζήτηση Πρώτα σε Βάθος (DFS) Μέτωπο Κλειστό Κατάσταση Αναζήτησης Σύνολο Παιδιά <Α> {} Α <Β, Γ> <Β, Γ> {Α} Β <Α, Δ> <Α, Δ, Γ> {Α,Β} Α - (βρόχος) <Δ, Γ> {Α,Β} Δ <Β,Ζ,Γ> <Β,Ζ,Γ,Γ> {Α,Β,Δ} Β - (βρόχος) <Ζ,Γ,Γ> {Α,Β,Δ} Ζ <Α,Θ,Δ> <Α,Θ,Δ,Γ,Γ> {Α,Β,Δ,Ζ} Α - (βρόχος) <Θ,Δ,Γ,Γ> {Α,Β,Δ,Ζ} Θ <Ζ,Δ,Ι> <Ζ,Δ,Ι,Δ,Γ,Γ> {Α,Β,Δ,Ζ,Θ} Ζ - (βρόχος) <Δ,Ι,Δ,Γ,Γ> {Α,Β,Δ,Ζ,Θ} Δ - (βρόχος) <Ι,Δ,Γ,Γ> {Α,Β,Δ,Ζ,Θ} Ι <Κ,Γ,Β> <Κ,Γ,Β,Δ,Γ,Γ> {Α,Β,Δ,Ζ,Θ,Ι} Κ ΤΕΛΙΚΗ Πρόβλημα των ποτηριών Οι χρωματικές εναλλαγές είναι τα διαδοχικά loop του αλγορίθμου. Στο παράδειγμα, σταματήσαμε μόλις βρέθηκε τελική κατάσταση Δεν είναι υποχρεωτικό! Φώτης Κόκκορας -9- Τεχνητή Νοημοσύνη Φώτης Κόκκορας -10- Τεχνητή Νοημοσύνη Αναζήτηση Πρώτα σε Πλάτος (BFS) Εξετάζει πρώτα όλες τις καταστάσεις που βρίσκονται στο ίδιο βάθος και μετά συνεχίζει στην επέκταση καταστάσεων στο αμέσως επόμενο επίπεδο. Ο αλγόριθμος BFS: 1. Βάλε την αρχική κατάσταση στο μέτωπο της αναζήτησης. 2. Αν το μέτωπο της αναζήτησης είναι κενό τότε σταμάτησε. 3. Βγάλε την πρώτη κατάσταση από το μέτωπο της αναζήτησης. 4. Αν είναι η κατάσταση ανήκει στο κλειστό σύνολο τότε πήγαινε στο βήμα 2. 5. Αν η κατάσταση είναι μία τελική τότε ανέφερε τη λύση. 6. Αν θέλεις και άλλες λύσεις πήγαινε στο βήμα 2. Αλλιώς σταμάτησε. 7. Εφάρμοσε τους τελεστές μετάβασης για να βρεις τις καταστάσεις-παιδιά. 8. Βάλε τις καταστάσεις-παιδιά στο τέλος του μετώπου της αναζήτησης. 9. Βάλε την κατάσταση-γονέα στο κλειστό σύνολο. 10. Πήγαινε στο βήμα 2. Φώτης Κόκκορας -11- Τεχνητή Νοημοσύνη Ο αλγόριθμος BFS (Ψευδοκώδικας) algorithm bfs(initialstate, FinalStates) Closed ; Frontier <InitialState>; while CurrentState FinalStates do Frontier delete(currentstate,frontier); if CurrentState ClosedSet ChildrenStates Expand(CurrentState); Frontier Frontier ^ ChildrenStates; Closed Closed {CurrentState}; end; if Frontier= then exit; endwhile; return success; end. Φώτης Κόκκορας -12- Τεχνητή Νοημοσύνη

Αναζήτηση Πρώτα σε Πλάτος (BFS): Σχόλια Το μέτωπο της αναζήτησης είναι μια δομή ουράς. Queue FIFO First In First Out Πλεονεκτήματα: Βρίσκει πάντα την καλύτερη (μικρότερη σε μήκος) λύση. Είναι πλήρης. Αν ο συντελεστής διακλάδωσης είναι μεγάλος, τότε το μέτωπο της αναζήτησης μεγαλώνει πολύ σε μέγεθος (μεγάλες απαιτήσεις μνήμης). Αν Β ο μέσος συντελεστής διακλάδωσης τότε σε βάθος Ν υπάρχουν Β Ν καταστάσεις για εξέταση (εκθετική πολυπλοκότητα). Φώτης Κόκκορας -13- Τεχνητή Νοημοσύνη Αναζήτηση Πρώτα σε Πλάτος (BFS) Μέτωπο Κλειστό Κατάσταση Αναζήτησης Σύνολο Παιδιά <Α> {} Α <Β, Γ> <Β, Γ> {Α} Β <Α, Δ> <Γ,Α,Δ> {Α,Β} Γ <Ε,Α> <Α,Δ,Ε,Α> {Α,Β,Γ} Α - (βρόχος) <Δ,Ε,Α> {Α,Β,Γ} Δ <Β,Ζ,Γ> <Ε,Α,Β,Ζ,Γ> {Α,Β,Γ,Δ} Ε <Α,Η> <Α,Β,Ζ,Γ,Α,Η> {Α,Β,Γ,Δ,Ε} Α - (βρόχος) <Β,Ζ,Γ,Α,Η> {Α,Β,Γ,Δ,Ε} Β - (βρόχος) <Ζ,Γ,Α,Η> {Α,Β,Γ,Δ,Ε} Ζ <Α,Θ,Δ> <Γ,Α,Η,Α,Θ,Δ> {Α,Β,Γ,Δ,Ε,Ζ} Γ - (βρόχος) <Α,Η,Α,Θ,Δ> {Α,Β,Γ,Δ,Ε,Ζ} Α - (βρόχος) <Η,Α,Θ,Δ> {Α,Β,Γ,Δ,Ε,Ζ} Η <Ε,Γ> <Α,Θ,Δ,Ε,Γ> {Α,Β,Γ,Δ,Ε,Ζ,Η} Α - (βρόχος) <Θ,Δ,Ε,Γ> {Α,Β,Γ,Δ,Ε,Ζ,Η} Θ <Ζ,Δ,Ι> <Δ,Ε,Γ,Ζ,Δ,Ι> {Α,Β,Γ,Δ,Ε,Ζ,Η,Θ} Δ - (βρόχος) <Ε,Γ,Ζ,Δ,Ι> {Α,Β,Γ,Δ,Ε,Ζ,Η,Θ} Ε - (βρόχος) <Γ,Ζ,Δ,Ι> {Α,Β,Γ,Δ,Ε,Ζ,Η,Θ} Γ - (βρόχος) <Ζ,Δ,Ι> {Α,Β,Γ,Δ,Ε,Ζ,Η,Θ} Ζ - (βρόχος) <Δ,Ι> {Α,Β,Γ,Δ,Ε,Ζ,Η,Θ} Δ - (βρόχος) <Ι> {Α,Β,Γ,Δ,Ε,Ζ,Η,Θ} Ι <Κ,Γ,Β> <Κ,Γ,Β> {Α,Β,Γ,Δ,Ε,Ζ,Η,Θ,Ι} Κ ΤΕΛΙΚΗ Το Πρόβλημα των Ποτηριών Φώτης Κόκκορας -14- Τεχνητή Νοημοσύνη Αναζήτηση με Επαναληπτική Εκβάθυνση (ID) (Iterative Deepening) Συνδυάζει με τον καλύτερο τρόπο τους DFS και BFS. Ο αλγόριθμος ID: 1. Όρισε το αρχικό βάθος αναζήτησης (συνήθως 1). 2. Εφάρμοσε τον αλγόριθμο DFS μέχρι αυτό το βάθος αναζήτησης. 3. Αν έχεις βρει λύση σταμάτησε. 4. Αύξησε το βάθος αναζήτησης (συνήθως κατά 1). 5. Πήγαινε στο βήμα 2. Ο αλγόριθμος ID (Ψευδοκώδικας) algorithm id(initialstate, FinalStates) depth 1 while solution is not found do bounded_dfs(initialstate,finalstates,depth); depth depth+1 endwhile; end. Φώτης Κόκκορας -15- Τεχνητή Νοημοσύνη Αναζήτηση με Επαναληπτική Εκβάθυνση (ID): Σχόλια Δε θυμάται τον προηγούμενο κύκλο. Κάθε φορά αρχίζει από την αρχή! Δεν είναι τόσο σοβαρό πρόβλημα όσο ακούγεται: αν π.χ. ο Μέσος Συντελεστής Διακλάδωσης είναι Β=10, τότε σε βάθος 9 ο DFS έχει ~10*9 καταστάσεις να εξετάσει ενώ σε βάθος 10, έχει ~10*10. Η διαφορά είναι μικρή (~10%). Αν το βάθος αυξάνεται κατά περισσότερο του 1 σε κάθε κύκλο, υπάρχει κίνδυνος να μην βρει τη συντομότερη λύση, εάν ψάχνουμε την 1 η. Πλεονεκτήματα: Είναι πλήρης. Αν το βάθος αυξάνεται κατά 1 σε κάθε κύκλο και βρει λύση, τότε αυτή η λύση θα είναι η καλύτερη. Σε μεγάλους χώρους αναζήτησης ο ID έχει πολυπλοκότητα σε χώρο και χρόνο ίδιας περίπου τάξης μεγέθους με τους DFS και BFS. Αν δεν υπάρχει κλειστό σύνολο, δεν κινδυνεύει να χαθεί σε κάποιο κλαδί απείρου μήκους (γιατί πάει μέχρι συγκεκριμένο βάθος). Φώτης Κόκκορας -16- Τεχνητή Νοημοσύνη

Αναζήτηση Διπλής Κατεύθυνσης (BiS) (Bidirectional Search) Αναζήτηση Διπλής Κατεύθυνσης (BiS) Σχηματική Αναπαράσταση Η ιδέα της αναζήτησης διπλής κατεύθυνσης πηγάζει από τη δυνατότητα του παραλληλισμού (parallelism) στα υπολογιστικά συστήματα. Προϋποθέσεις κάτω από τις οποίες μπορεί να εφαρμοστεί: Οι τελεστές μετάβασης είναι αντιστρέψιμοι (reversible), και Είναι πλήρως γνωστή η τελική κατάσταση. Εφαρμογή Αρχίζει την αναζήτηση από την αρχική και τελική κατάσταση ταυτόχρονα. Αν κάποια κατάσταση που επεκτείνεται είναι κοινή, τότε βρέθηκε λύση. Λύση είναι η ένωση των μονοπατιών πάνω στην κοινή κατάσταση ώστε να προκύψει πλήρες "μονοπάτι" από την αρχική έως την τελική κατάσταση. Υπάρχει επιπλέον κόστος επικοινωνίας μεταξύ των δύο αναζητήσεων. Φώτης Κόκκορας -17- Τεχνητή Νοημοσύνη Φώτης Κόκκορας -18- Τεχνητή Νοημοσύνη Επέκταση και Οριοθέτηση (B&B) (Branch and Bound) Εφαρμόζεται σε προβλήματα που αναζητείται η βέλτιστη λύση (ελάχιστο κόστος). Ο Β&Β κλαδεύει καταστάσεις (pruning) και μειώνει το χώρο αναζήτησης. Παράδειγμα Λογικής Κλαδέματος: Έστω ότι βρέθηκε μια λύση με κόστος 159 Κατά την αναζήτηση για άλλες λύσεις, μια κατάσταση έχει ήδη κόστος 167. Δεν συμφέρει να ψάξουμε κάτω από αυτή την κατάσταση γιατί και να βρούμε λύση θα είναι χειρότερη! Άρα κλαδεύεται αυτή η κατάσταση. Ο αλγόριθμος B&B 1. Βάλε την αρχική κατάσταση στο μέτωπο της αναζήτησης. 2. Αρχική τιμή της καλύτερης λύσης είναι το + (όριο). 3. Αν το μέτωπο της αναζήτησης είναι κενό, τότε σταμάτησε. Η καλύτερη μέχρι τώρα λύση είναι και η βέλτιστη. 4. Βγάλε την πρώτη σε σειρά κατάσταση από το μέτωπο της αναζήτησης. 5. Αν η κατάσταση ανήκει στο κλειστό σύνολο, τότε πήγαινε στο 3. 6. Αν η κατάσταση είναι τελική, τότε ανανέωσε τη λύση που κρατάς ως καλύτερη μέχρι τώρα και ανανέωσε την τιμή του ορίου με την τιμή που αντιστοιχεί στην τελική κατάσταση. Πήγαινε στο 3. 7. Εφάρμοσε τους τελεστές μεταφοράς για να παράγεις τις καταστάσειςπαιδιά και την τιμή που αντιστοιχεί σε αυτές. 8. Βάλε τις καταστάσεις-παιδιά, των οποίων η τιμή δεν υπερβαίνει το όριο, μπροστά στο μέτωπο της αναζήτησης. (*) 9. Βάλε την κατάσταση-γονέα στο κλειστό σύνολο. 10. Πήγαινε στο 3. (*) Αυτός είναι DFS-B&B γιατί οι νέες καταστάσεις μπαίνουν μπροστά στο μέτωπο αναζήτησης. Αντίστοιχα, υπάρχουν και BFS-B&B όπως και BestFS-B&B. Φώτης Κόκκορας -19- Τεχνητή Νοημοσύνη Φώτης Κόκκορας -20- Τεχνητή Νοημοσύνη

Το Πρόβλημα του Πλανόδιου Πωλητή (TSP) Traveling Salesman Problem Κάποιος πρέπει να ξεκινήσει από την πόλη (α), να επισκεφθεί όλες τις άλλες πόλεις μία φορά και να επιστρέψει στην (α), διανύοντας όσο το δυνατό μικρότερη απόσταση. Είναι το κλασικότερο ίσως πρόβλημα ελαχιστοποίησης κόστους (optimization) και έχει πολλές εφαρμογές. Το πρόβλημα ανήκει στην κατηγορία μη-πολυωνυμικού χρόνου (NPcomplete). για Ν=5 υπάρχουν (Ν-1)! διαφορετικές λύσεις για Ν=20 (πόλεις) οι λύσεις που πρέπει να εξεταστούν είναι 19!=1.216x10 17 ένας Η/Υ που εξετάζει 10 6 λύσεις το δευτερόλεπτο χρειάζεται 3855 χρόνια...!!!! Ο αλγόριθμος DFS-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 αεβγδ Κλάδεμα............ <> min Τιμή ΤΕΛΟΣ Φώτης Κόκκορας -21- Τεχνητή Νοημοσύνη Φώτης Κόκκορας -22- Τεχνητή Νοημοσύνη Ο αλγόριθμος B&B: Σχόλια Ο Β&Β εφαρμόζεται όταν υπάρχει μια πραγματική γνώση για το κόστος. Έτσι θα ξέρουμε αν περάσαμε το κόστος της καλύτερης μέχρι τώρα λύσης. Το κέρδος από κλάδεμα εξαρτάται από πόσο γρήγορα θα βρεθεί καλή λύση. Εφαρμογή των Αλγορίθμων Τυφλής Αναζήτησης Το πρόβλημα του Λαβύρινθου - Ορισμός Αριστερά: βρέθηκε νωρίς μια λύση κόστους 12 και το κλάδεμα είναι δραστικό Δεξιά απεικονίζεται η ακραία περίπτωση να μη γίνει καθόλου κλάδεμα επειδή οι λύσεις είναι διατεταγμένες από τη χειρότερη προς την καλύτερη. θεωρείστε ότι σαρώνουμε τον χώρο αναζήτησης από αριστερά προς δεξιά Ο Β&Β στη χειρότερη περίπτωση συμπεριφέρεται σαν τον DFS. Φώτης Κόκκορας -23- Τεχνητή Νοημοσύνη Η κατάσταση προσδιορίζεται από τη θέση του δρομέα. Η περιγραφή του λαβύρινθου μπορεί να ενσωματωθεί στους ελέγχους παραγωγής έγκυρης κατάστασης των τελεστών. Αρχική Κατάσταση η (1,4) και Τελική Κατάσταση (μία μόνο) η (15,10). Τελεστές Μεταφοράς (θεωρήστε σειρά εφαρμογής την αναγραφόμενη): πήγαινε μία θέση πάνω, πήγαινε μία θέση δεξιά, πήγαινε μία θέση κάτω και πήγαινε μία θέση αριστερά (εφόσον προφανώς η θέση είναι ελεύθερη) Φώτης Κόκκορας -24- Τεχνητή Νοημοσύνη

Εφαρμογή του Αλγορίθμου DFS Εφαρμογή Αλγορίθμου BFS Λύση Λύση Μετά τον (2,9) ο αλγόριθμος θα εξετάσει τον (2.7) και μετά τον (4,9). Μετά τον (4,11) σειρά έχει ο (5,8), κ.ο.κ. Δεν κάνει "όπισθεν" με την πραγματική έννοια! Φώτης Κόκκορας -25- Τεχνητή Νοημοσύνη Φώτης Κόκκορας -26- Τεχνητή Νοημοσύνη Εφαρμογή του Αλγορίθμου ID Το σχήμα απεικονίζει μέρος της αναζήτησης κατά την εφαρμογή του ID. Η αναζήτηση θα συνεχιστεί μέχρι το επίπεδο που θα βρεθεί λύση. Φώτης Κόκκορας -27- Τεχνητή Νοημοσύνη Φώτης Κόκκορας -28- Τεχνητή Νοημοσύνη