ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΠΑΡΆΡΤΗΜΑ ΛΕΥΚΑΔΑΣ ΥΠΕΥΘΥΝΗ ΚΑΘΗΓΉΤΡΙΑ Δρ. ΤΣΙΝΤΖΑ ΠΑΝΑΓΙΩΤΑ Οι παρουσιάσεις του μαθήματος βασίζονται στο σύγγραμμα ‘’ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ, ΒΛΑΧΑΒΑΣ, ΚΕΦΑΛΑΣ, ΒΑΣΙΛΕΙΑΔΗΣ, ΚΟΚΚΟΡΑΣ, ΣΑΚΕΛΛΑΡΙΟΥ’’
Κεφάλαιο 3 ο ΑΛΓΟΡΙΘΜΟΙ ΤΥΦΛΗΣ ΑΝΑΖΗΤΗΣΗΣ
Ορισμός Η διαδικασία της αναζήτησης λαμβάνει χώρα χωρίς την εφαρμογή κάποιου κριτηρίου στα τυφλά Όλες οι καταστάσεις αντιμετωπίζονται ως ισότιμες με μόνο κριτήριο την χρονική στιγμή παραγωγής τους από τους μηχανισμούς επέκτασης Οι αλγόριθμοι τυφλής αναζήτησης είναι: Όνομα αλγόριθμου Depth-First Search (DFS)Αναζήτηση πρώτα σε βάθος Breadth-First Search (BFS)Aναζήτηση πρώτα σε πλάτος Iterative Deeping (ID)Επαναληπτική Εκβάθυνση Bi-directional Search (BiS)Αναζήτηση Διπλής Κατεύθυνσης Branch and Bound (B&B)Επέκταση και οριοθέτηση Beam Search (BS)Ακτινωτή Αναζήτησης Τυφλοί
Παράδειγμα επίλυσης προβλήματος με την χρήση τυφλού αλγόριθμου αναζήτησης Το πρόβλημα των ποτηριών Αρχική κατάσταση: 2 κενά ποτήρια Τελική κατάσταση: ένα από τα 2 ποτήρια περιέχει 40 ml νερού
Ο κόσμος του προβλήματος (τελεστές, προϋποθέσεις, ενδιάμεσες καταστάσεις) ΤελεστήςΓέμισμα του ποτηριού χωρητικότητας Χ ml ΠροϋποθέσειςΤο ποτήρι είναι άδειο ΑποτέλεσμαΤο ποτήρι περιέχει Χ ml ΤελεστήςΓέμισμα του ποτηριού χωρητικότητας Χ ml από το ποτήρι των Υ ml ΠροϋποθέσειςΤο ποτήρι είναι των Χ περιέχει Ζ ml Το ποτήρι είναι των Y περιέχει W ml ΑποτέλεσμαΤο ποτήρι των Χ ml περιέχει Χ ml και των Υ περιέχει W-(X-Z) αν W > X-Z Το ποτήρι των Χ ml περιέχει Ζ+W ml και των Υ περιέχει 0 αν W < X-Z ΤελεστήςΆδειασμα του ποτηριού χωρητικότητας Χ ml ΠροϋποθέσειςΤο ποτήρι δεν είναι άδειο ΑποτέλεσμαΤο ποτήρι περιέχει 0 ml
Πως ορίζεται ο χώρος αναζήτησης
Αλγόριθμος πρώτα σε βάθος Depth-First Search – DFS (1) Ο αλγόριθμος κάνει την αναζήτηση όσο πιο ‘βαθιά’ γίνεται στο δέντρο επιλέγοντας κάθε φορά προς επέκταση την κατάσταση που βρίσκεται στο μεγαλύτερο επίπεδο του δέντρου Σημείωση: σε περίπτωση που υπάρχουν καταστάσεις προς επέκταση στο ίδιο βάθος επιλέγεται η πιο αριστερά
Αλγόριθμος πρώτα σε βάθος Depth-First Search – DFS (2) Τα βήματα του αλγόριθμου 1. Βάλε την αρχική κατάσταση στο μέτωπο αναζήτησης 2. Αν το μέτωπο αναζήτησης είναι κενό τότε σταμάτησε, αλλιώς 3. Βγάλε την πρώτη κατάσταση από το μέτωπο αναζήτησης 4. Αν η κατάσταση ανήκει στο κλειστό σύνολο τότε πήγαινε στο βήμα 2, αλλιώς 5. Αν η κατάσταση ανήκει στις τελικές ανέφερε την λύση 6. Αν είναι επιθυμητές περισσότερες λύσεις πήγαινε στο βήμα 2. Αλλιώς σταμάτησε. 7. Εφάρμοσε τους τελεστές μετάβασης για να βρεις τα παιδία 8. Πρόσθεσε τα παιδιά στην αρχή του μετώπου αναζήτησης 9. Μετατόπισε τον γονέα στο κλειστό σύνολο 10. Πήγαινε στο βήμα 2
Αλγόριθμος πρώτα σε βάθος Depth-First Search – DFS (3) Πλεονεκτήματα και μειονεκτήματα Το μέτωπο αναζήτησης μπορεί να δημιουργηθεί μέσω μιας δομής στοίβας (LIFO – Last In First Out) chronological backtracking Πλεονεκτήματα: Το μέτωπο αναζήτησης δεν μεγαλώνει πολύ μικρές απαιτήσεις σε χώρο Σε περίπτωση πεπερασμένου χώρου αναζήτησης θα μας δώσει λύση εφόσον αυτή υπάρχει Μειονεκτήματα: Η πρώτη λύση που θα βρεθεί δεν είναι απαραίτητα η βέλτιστη (κριτήριο αριθμός βημάτων) Μη πλήρης: αναζήτηση σε κλαδιά μεγάλου μήκους ή και ατέρμονα
Εφαρμογή DFS στο πρόβλημα των ποτηριών
Μέτωπο αναζήτησης Κλειστό σύνολοΚατάστασηΠαιδιά { }Α {Α}Β {Α,Β}ΑΒΡΟΓΧΟΣ {Α,Β}Γ {Α,Β,Γ}ΒΒΡΟΓΧΟΣ {Α,Β,Γ}Ε {Α,Β,Γ,Ε}ΑΒΡΟΓΧΟΣ {Α,Β,Γ,Ε}Θ {Α,Β,Γ,Ε,Θ}ΕΒΡΟΓΧΟΣ {Α,Β,Γ,Ε,Θ}ΓΒΡΟΓΧΟΣ {Α,Β,Γ,Ε,Θ}Η {Α,Β,Γ,Ε,Θ,Η}ΚΛΎΣΗ
Αλγόριθμος πρώτα σε πλάτος Breadth-First Search – BFS (1) Κάνει πρώτα αναζήτηση σε όλες τις καταστάσεις που βρίσκονται στο ίδιο βάθος στο δέντρο και κατόπιν συνεχίζει με την επέκταση των καταστάσεων Τα βήματα του αλγόριθμου 1. Βάλε την αρχική κατάσταση στο μέτωπο αναζήτησης 2. Αν το μέτωπο αναζήτησης είναι κενό τότε σταμάτησε, αλλιώς 3. Βγάλε την πρώτη κατάσταση από το μέτωπο αναζήτησης 4. Αν η κατάσταση ανήκει στο κλειστό σύνολο τότε πήγαινε στο βήμα 2, αλλιώς 5. Αν η κατάσταση ανήκει στις τελικές ανέφερε την λύση 6. Αν είναι επιθυμητές περισσότερες λύσεις πήγαινε στο βήμα 2. Αλλιώς σταμάτησε. 7. Εφάρμοσε τους τελεστές μετάβασης για να βρεις τα παιδία 8. Πρόσθεσε τα παιδιά στο τέλος του μετώπου αναζήτησης 9. Μετατόπισε τον γονέα στο κλειστό σύνολο 10. Πήγαινε στο βήμα 2
Αλγόριθμος πρώτα σε πλάτος Breadth-First Search – BFS (2) Πλεονεκτήματα και μειονεκτήματα Το μέτωπο αναζήτησης μπορεί να δημιουργηθεί μέσω μιας δομής ουράς (FIFO – First In First Out) Πλεονεκτήματα: Η πρώτη λύση που θα βρεθεί είναι η βέλτιστη (κριτήριο αριθμός βημάτων) Είναι πλήρης Μειονεκτήματα: Το μέτωπο αναζήτησης μεγαλώνει πολύ μεγάλες απαιτήσεις σε χώρο
Εφαρμογή ΒFS στο πρόβλημα των ποτηριών (1) Μέτωπο αναζήτησης Κλειστό σύνολοΚατάστασηΠαιδιά { }Α {Α}Β {Α,Β}Γ {Α,Β,Γ}Α- (βξόρνο) {Α,Β,Γ}Γ {Α,Β,Γ,Γ}Δ {Α,Β,Γ,Γ,Δ}Α- (βξόρνο) {Α,Β,Γ,Γ,Δ}Β- (βξόρνο) {Α,Β,Γ,Γ,Δ}Ε {Α,Β,Γ,Γ,Δ,Ε}Γ- (βξόρνο {Α,Β,Γ,Γ,Δ,Ε}Α- (βξόρνο) {Α,Β,Γ,Γ,Δ,Ε}Ζ
Εφαρμογή ΒFS στο πρόβλημα των ποτηριών (2) Μέτωπο αναζήτησης Κλειστό σύνολοΚατάστασηΠαιδιά {Α,Β,Γ,Γ,Δ,Ε,Ζ}Α- (βξόρνο) {Α,Β,Γ,Γ,Δ,Ε,Ζ}Θ {Α,Β,Γ,Γ,Δ,Ε,Ζ}Γ- (βξόρνο) {Α,Β,Γ,Γ,Δ,Ε,Ζ}Δ- (βξόρνο) {Α,Β,Γ,Γ,Δ,Ε,Ζ}Γ- (βξόρνο) {Α,Β,Γ,Γ,Δ,Ε,Ζ}Ε- (βξόρνο) {Α,Β,Γ,Γ,Δ,Ε,Ζ}Γ- (βξόρνο {Α,Β,Γ,Γ,Δ,Ε,Ζ}Η {Α,Β,Γ,Γ,Δ,Ε,Ζ,Η}ΚΤΕΛΙΚΗ
Αλγόριθμος Επαναληπτικής Εκβάθυνσης Iterative Deepening – ID (1) Συνδυάζει τους DFS και BFS Τα βήματα του αλγόριθμου 1. Όρισε το αρχικό βάθος αναζήτησης (συνήθως 1) 2. Εφάρμοσε τον αλγόριθμο DFS μέχρι το ορισμένο βάθος αναζήτησης. 3. Αν έχει βρεθεί λύση σταμάτησε 4. Αύξησε το βάθος αναζήτησης (συνήθως κατά ένα) 5. Πήγαινε στο βήμα 2.
Αλγόριθμος Επαναληπτικής Εκβάθυνσης Iterative Deepening – ID (2) Πλεονεκτήματα και μειονεκτήματα Πλεονεκτήματα Είναι πλήρης Στην περίπτωση που το βάθος αναζήτησης αυξάνεται κατά 1 και ο ID βρει λύση τότε θα είναι η βέλτιστη Έχει την ίδια πολυπλοκότητα σε χώρο και σε χρόνο με τους αλγόριθμους DFS και BFS σε περίπτωση μεγάλων χώρων αναζήτησης Δεν εμπλέκει την αναζήτηση σε ατέρμονα κλαδιά Μειονεκτήματα: Σε κάθε αναζήτηση σε διαφορετικό βάθος δεν ‘θυμάται’ το προηγούμενο
Αναζήτηση διπλής κατεύθυνσης (Bidirectional Search - BiS) (1) Θα πρέπει Οι τελεστές να είναι αντιστρέψιμοι Να είναι πλήρως γνωστή η τελική κατάσταση Τα βήματα του αλγόριθμου 1. Η αναζήτηση αρχίζει τόσο από την αρχική όσο και από την τελική κατάσταση 2. Όταν φτάνουμε σε μια κατάσταση που είναι κοινή και από τις 2 πλευρές έχει βρεθεί λύση 3. Η αναπαράσταση της λύσης είναι η διαδρομή από την αρχική ως την ενδιάμεση κοινή και από αυτήν στην τελική Μειονέκτημα: επιπλέον κόστος για την επικοινωνία μεταξύ των αναζητήσεων