ΤΕΧΝΗΤΉ ΝΟΗΜΟΣΎΝΗ ΚΑΙ ΕΜΠΕΙΡΑ ΣΥΣΤΉΜΑΤΑ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΤΕΧΝΗΤΉ ΝΟΗΜΟΣΎΝΗ ΚΑΙ ΕΜΠΕΙΡΑ ΣΥΣΤΉΜΑΤΑ"

Transcript

1 ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ «ΠΛΗΡΟΦΟΡΙΚΗ» ΤΕΧΝΗΤΉ ΝΟΗΜΟΣΎΝΗ ΚΑΙ ΕΜΠΕΙΡΑ ΣΥΣΤΉΜΑΤΑ Σημειώσεις Διδασκαλίας Θεμιστοκλής Ν. Παναγιωτόπουλος Καθηγητής Τμήμα Πληροφορικής Πανεπιστήμιο Πειραιά Δρ. Γ. Αναστασάκης Πειραιάς 2013

2 2

3 1 Αλγόριθμοι Αναζήτησης στην Τεχνητή Νοημοσύνη 1. ΕΠΙΛΥΟΝΤΑΣ ΠΡΟΒΛΗΜΑΤΑ ΜΕΣΩ ΑΝΑΖΗΤΗΣΗΣ Βλέπουμε πώς ένας πράκτορας μπορεί να αποφασίζει τι θα κάνει θεωρώντας συστηματικά τα αποτελέσματα από διάφορες ακολουθίες πράξεων που μπορεί να έχει εκτελέσει Οι απλοί ανακλαστικοί πράκτορες είναι ανίκανοι να προγραμματίσουν προκαταβολικά. Είναι περιορισμένοι ως προς το τι μπορούν να κάνουν επειδή οι πράξεις τους καθορίζονται μόνο από αυτό που μπορούν να αντιληφθούν τώρα. Επίσης δεν έχουν γνώση του τι κάνουν οι πράξεις τους ή του τι προσπαθούν να επιτύχουν. Σε αυτό το κεφάλαιο περιγράφουμε ένα είδος πράκτορα προσανατολισμένου προς το στόχο που λέγεται πράκτορας επίλυσης προβλήματος. Αυτοί οι πράκτορες αποφασίζουν τι θα κάνουν βρίσκοντας ακολουθίες πράξεων που οδηγούν σε επιθυμητές καταστάσεις. Συζητάμε ανεπίσημα πως ο πράκτορας μπορεί να σχηματίσει μια κατάλληλη οπτική του προβλήματος που αντιμετωπίζει. Το είδος του προβλήματος που θα προκύψει από τη διαδικασία σχηματοποίησης θα εξαρτηθεί από τη γνώση που είναι διαθέσιμη στον πράκτορα: βασικά, αν γνωρίζει την παρούσα κατάσταση και τα αποτελέσματα των πράξεων. Στη συνέχεια ορίζουμε πιο συγκεκριμένα τα στοιχεία που συνθέτουν ένα πρόβλημα και την επίλυσή του, και δίνουμε αρκετά παραδείγματα που υλοποιούν αυτούς τους ορισμούς. Με δεδομένους συγκεκριμένους ορισμούς προβλημάτων, είναι σχετικά άμεσο να κατασκευάσουμε μια διαδικασία αναζήτησης για εξεύρεση λύσεων. Καλύπτουμε έξι διαφορετικές στρατηγικές αναζήτησης και δείχνουμε πως μπορούν να εφαρμοστούν σε μία πληθώρα προβλημάτων. Στο επόμενο κεφάλαιο καλύπτουμε στρατηγικές αναζήτησης που χρησιμοποιούν περισσότερη πληροφόρηση σχετικά με το πρόβλημα για να βελτιώσουν την αποτελεσματικότητα της διαδικασίας αναζήτησης. 1.1 Πράκτορες Επίλυσης Προβλήματος 3

4 Οι έξυπνοι πράκτορες υποτίθεται ότι ενεργούν με έναν τέτοιο τρόπο ώστε το περιβάλλον να περνάει μέσα από μια ακολουθία καταστάσεων που μεγιστοποιεί το μέτρο επίδοσης. Αυτός ο προσδιορισμός είναι δύσκολο να μεταφραστεί σε έναν επιτυχή σχεδιασμό πράκτορα. Η εργασία απλοποιείται για το πράκτορα εάν αυτός μπορεί να υιοθετήσει έναν στόχο και θέσει σαν σκοπό να τον ικανοποιήσει. Ας κοιτάξουμε πρώτα πώς και γιατί ένας πράκτορας μπορεί να το κάνει αυτό. Φανταστείτε τον πράκτορά μας στην πόλη του Arad, Ρουμανία, προς το τέλος κάποιων διακοπών περιήγησης. Ο πράκτορας έχει ένα εισιτήριο για να φύγει στο Bucharest την επόμενη μέρα. Το εισιτήριο είναι χωρίς επιστροφή χρημάτων, η βίζα του πράκτορα πρόκειται να λήξει, και μετά από την επόμενη μέρα δεν υπάρχουν διαθέσιμες θέσεις για έξι εβδομάδες. Τώρα το μέτρο της απόδοσης του πράκτορα περιλαμβάνει και άλλους παράγοντες εκτός από το κόστος του εισιτηρίου και το ανεπιθύμητο ενδεχόμενο του να συλληφθεί και να απελαστεί. Για παράδειγμα, θέλει να βελτιώσει το μαύρισμά του, να βελτιώσει τα ρουμάνικά του, να δει τα αξιοθέατα κ.λ.π. Όλοι αυτοί οι παράγοντες μπορεί να υποδεικνύουν έναν μεγάλο πίνακα πιθανών κινήσεων. Παρά τη δεδομένη σοβαρότητα της κατάστασης θα πρέπει να υιοθετήσει το στόχο του να φτάσει στο Bucharest. Οι ενέργειες που θα αποτύχουν στο να φτάσει στο Bucharest στην ώρα του μπορούν να απορριφθούν χωρίς περαιτέρω συζήτηση. Στόχοι όπως αυτός βοηθούν να οργανωθεί η συμπεριφορά περιορίζοντας τους αντικειμενικούς σκοπούς που προσπαθεί να επιτύχει ο πράκτορας. Το πρώτο βήμα για την επίλυση του προβλήματος είναι η διατύπωση του στόχου. Εκτός από τη διατύπωση του στόχου, ο πράκτορας μπορεί να θέλει να αποφασίσει και σχετικά με κάποιους άλλους παράγοντες που επηρεάζουν το πόσο επιθυμητοί είναι κάποιοι τρόποι επίτευξης του στόχου. Θα θεωρήσουμε ότι ο στόχος είναι ένα σύνολο καταστάσεων του κόσμου-μόνο εκείνες οι καταστάσεις στις οποίες ικανοποιείται ο στόχος. Οι ενέργειες προκαλούν μεταβάσεις ανάμεσα σε καταστάσεις του κόσμου, οπότε προφανώς ο πράκτορας θα πρέπει να ανακαλύψει ποιες ενέργειες θα τον οδηγήσουν στην τελική κατάσταση. Πριν να το κάνει αυτό, θα πρέπει να αποφασίσει ποια είδη ενεργειών και ποιες καταστάσεις να υπολογίσει. Εάν θα πρέπει να υπολογίσει ενέργειες του τύπου μετακίνησε το αριστερό πόδι 18 ίντσες μπροστά ή στρίψε το τιμόνι 6 μοίρες αριστερά, δεν θα βγει ποτέ έξω από το πάρκινγκ, άσε το να φτάσει στο Bucharest, διότι το να κατασκευάσει μια λύση σε αυτό το επίπεδο λεπτομέρειας θα ήταν ένα πρόβλημα δύσκολο να το χειριστεί. Η διατύπωση του προβλήματος είναι η διαδικασία του να αποφασίσει ποιες ενέργειες και καταστάσεις να θεωρήσει και στη συνέχεια ακολουθεί η διατύπωση του στόχου. Θα συζητήσουμε αυτή τη διαδικασία λεπτομερέστερα. Προς το παρόν ας υποθέσουμε ότι ο πράκτορας θα συλλογιστεί τις ενέργειες στο επίπεδο του να οδηγήσει από τη μία μεγάλη πόλη στην άλλη. Οι καταστάσεις που θα συλλογιστεί αντιστοιχούν λοιπόν στο να είναι σε κάποια πόλη. Ο πράκτοράς μας λοιπόν έχει υιοθετήσει το στόχο του να φτάσει στο Bucharest, και υπολογίζει προς το ποια πόλη να οδηγήσει από το Arad. Υπάρχουν τρεις δρόμοι που ξεκινούν από το Arad, ένας προς το Sibiu, ένας προς το Timisoara κι ένας προς το ένας προς το Zerind. Κανένας από αυτούς δεν φτάνει στο στόχο, έτσι εκτός κι αν ο πράκτορας είναι πολύ εξοικειωμένος με τη 4

5 γεωγραφία της Ρουμανίας, δεν θα ξέρει ποιο δρόμο να ακολουθήσει. Με άλλα λόγια, ο πράκτορας δεν θα ξέρει ποια από τις πιθανές ενέργειες είναι η καλύτερη, διότι δεν γνωρίζει αρκετά για την κατάσταση την οποία έχει σαν αποτέλεσμα κάθε ενέργεια που επιλέγει. Εάν ο πράκτορας δεν έχει πρόσθετη γνώση, τότε έχει κολλήσει. Το καλύτερο που έχει να κάνει είναι να επιλέξει τυχαία μια από τις ενέργειες. Αλλά υποθέστε ότι ο πράκτορας έχει ένα χάρτη της Ρουμανίας, είτε σε χαρτί είτε στη μνήμη του. Ο ρόλος του χάρτη είναι να παρέχει στον πράκτορα πληροφορίες σχετικά με τις καταστάσεις στις οποίες μπορεί να βρεθεί και τις ενέργειες που μπορεί να ακολουθήσει. Ο πράκτορας μπορεί να χρησιμοποιήσει αυτή την πληροφορία για να συλλογιστεί μεταγενέστερα επίπεδα ενός υποθετικού ταξιδιού σε καθεμιά από αυτές τις τρεις πόλεις, να προσπαθήσει να βρει ένα ταξίδι που τελικά τον οδηγεί στο Bucharest. Μόλις βρει ένα μονοπάτι στο χάρτη από το Arad στο Bucharest, μπορεί να επιτύχει το στόχο του εκτελώντας τις ενέργειες που αντιστοιχούν στην απόσταση του ταξιδιού. Γενικά ένας πράκτορας με αρκετές άμεσες επιλογές άγνωστης αξίας μπορεί να αποφασίσει τι θα κάνει, εξετάζοντας πρώτα τις διαφορετικές πιθανές ακολουθίες πράξεων που οδηγούν σε καταστάσεις γνωστής αξίας, και στη συνέχεια να επιλέξει την καλύτερη. Αυτή η διαδικασία της εύρεσης ακολουθίας ονομάζεται αναζήτηση. Ένας αλγόριθμος αναζήτησης δέχεται σαν είσοδο ένα πρόβλημα και επιστρέφει μια επίλυση με τη μορφή μιας ακολουθίας ενεργειών. Μόλις βρεθεί μια λύση, μπορούν να εκτελεστούν οι ενέργειες που προτείνει. Αυτή ονομάζεται φάση της εκτέλεσης. Έτσι, έχουμε ένα απλό σχέδιο διατύπωση, αναζήτηση, εκτέλεση για τον πράκτορα, όπως εμφανίζεται στην εικόνα 1.1. Μετά τη διατύπωση του στόχου και του προβλήματος που πρέπει να επιλύσει, ο πράκτορας καλεί μια ρουτίνα αναζήτησης. Στη συνέχεια χρησιμοποιεί την επίλυση για να καθοδηγήσει τις ενέργειές του, πραγματοποιώντας σαν επόμενη κίνηση αυτό που συνιστά η επίλυση και αφαιρώντας αυτό το βήμα από την ακολουθία. Μόλις έχει εκτελεστεί η επίλυση, ο πράκτορας θα βρει έναν νέο στόχο. 5

6 function SIMPLE-PROBLEM-SOLVING-AGENT(p) returns an action inputs : p, a percept static : s, an action sequence, initially empty state, some description of the current world state g, a goal, initially null problem, a problem formulation state UPDATE-STATE (state,p) if s is empty then g FORMULATE-GOAL (state) problem FORMULATE-PROBLEM (state,g) s SEARCH (problem) action RECOMMENDATION (s, state) s REMAINDER (s, state) return action Εικόνα 1.1 Ενας απλός πράκτορας επίλυσης προβλήματος Δεν θα συζητήσουμε περαιτέρω τις συναρτήσεις UPDATE-STATE και FORMULATEGOAL σε αυτό το κεφάλαιο. Οι δύο ενότητες που ακολουθούν περιγράφουν τη διαδικασία της διατύπωσης του προβλήματος, και το υπόλοιπο του κεφαλαίου είναι αφιερωμένο σε διάφορες εκδοχές της συνάρτησης SEARCH. Η φάση της εκτέλεσης είναι συνήθως απλή για έναν απλό πράκτορα επίλυσης προβλήματος: Η συνάρτηση RECOMMENDATION απλά παίρνει την πρώτη ενέργεια στην ακολουθία και η REMAINDER επιστρέφει το υπόλοιπο. 1.2 Διατύπωση Προβλημάτων Σε αυτήν την ενότητα, θα αναλύσουμε με μεγαλύτερη λεπτομέρεια τη διαδικασία διατύπωσης του προβλήματος. Αρχικά, θα εξετάσουμε τη διαφορετική γνώση που μπορεί να έχει ένας πράκτορας σχετικά με τις ενέργειές του και την κατάσταση στην οποία βρίσκεται. Αυτό εξαρτάται από το πώς συνδέεται ο πράκτορας με το περιβάλλον του μέσω της αντίληψής του και των ενεργειών του. Υπάρχουν τέσσερα διαφορετικά είδη προβλημάτων: προβλήματα μιας κατάστασης, προβλήματα πολλαπλών καταστάσεων, προβλήματα απροόπτου και προβλήματα ανακάλυψης Γνώση και είδη προβλημάτων 6

7 Ας θεωρήσουμε το περιβάλλον της ηλεκτρικής σκούπας. Ας θεωρήσουμε ότι αυτό το περιβάλλον περιλαμβάνει μόνο δύο τοποθεσίες. Κάθε τοποθεσία μπορεί να περιλαμβάνει ή όχι βρωμιά, και ο πράκτορας μπορεί να είναι είτε στην μία τοποθεσία ή στην άλλη. Υπάρχουν 8 πιθανές καταστάσεις του περιβάλλοντος όπως εμφανίζονται στην εικόνα 1.2. Ο πράκτορας έχει τρεις πιθανές ενέργειες σε αυτή την εκδοχή του κόσμου της σκούπας: Αριστερά, Δεξιά και Απορρόφηση της βρωμιάς. Υποθέστε προς το παρόν ότι η απορρόφηση της βρωμιάς είναι 100% αποτελεσματική. Ο στόχος είναι να καθαριστεί όλη η βρωμιά. Ο στόχος είναι αντίστοιχος με το σύνολο καταστάσεων {7, 8}. Εικόνα 1.2 Οι οχτώ πιθανές καταστάσεις του περιβάλλοντος της ηλεκτρικής σκούπας Αρχικά, υποθέστε ότι οι αισθητήρες του πράκτορα του δίνουν αρκετή πληροφορία ώστε να καταλάβει σε ποια κατάσταση βρίσκεται (π.χ. ο κόσμος είναι προσβάσιμος ), και υποθέστε ότι ξέρει ακριβώς τι κάνει καθεμιά από τις ενέργειές του. Για παράδειγμα, εάν η αρχική του κατάσταση είναι η 5, τότε μπορεί να υπολογίσει ότι η ακολουθία ενεργειών [Δεξιά, Απορρόφηση σκόνης] θα τον οδηγήσει στην κατάσταση του στόχου. Αυτή είναι η πιο απλή κατάσταση, την οποία αποκαλούμε πρόβλημα μιας κατάστασης. Δεύτερον, ας υποθέσουμε ότι ο πράκτορας γνωρίζει όλα τα αποτελέσματα των πράξεών του, αλλά έχει περιορισμένη πρόσβαση στην κατάσταση του περιβάλλοντος. Για παράδειγμα, στην πιο ακραία περίπτωση, μπορεί να μην έχει καθόλου αισθητήρες. Σε αυτήν την περίπτωση, γνωρίζει ότι η αρχική του κατάσταση είναι μια από το σύνολο καταστάσεων {1, 2, 3, 4, 5, 6, 7, 9, 8}. Κάποιος 7

8 μπορεί να υποθέσει η κατάσταση στην οποία βρίσκεται ο πράκτορας είναι απελπιστικά δυσχερής, αλλά στην πραγματικότητα μπορεί να τα πάει αρκετά καλά. Και αυτό γιατί γνωρίζει τι μπορούν να κάνουν οι ενέργειές του, για παράδειγμα, να υπολογίσει ότι η ενέργεια Δεξιά θα έχει σαν αποτέλεσμα να βρεθεί σε μία από τις καταστάσεις {2,4,6,8}. Στην πραγματικότητα, ο πράκτορας μπορεί να ανακαλύψει ότι η ακολουθία ενεργειών [Δεξιά, Απορρόφηση σκόνης, Αριστερά, Απορρόφηση σκόνης] θα τον οδηγήσει εγγυημένα στην τελική κατάσταση ανεξάρτητα από το ποια είναι η αρχική κατάσταση. Όταν λοιπόν ο κόσμος δεν είναι πλήρως προσβάσιμος, ο πράκτορας θα πρέπει να συλλογιστεί για σύνολα καταστάσεων στα οποία μπορεί να φτάσει, παρά για μεμονωμένες καταστάσεις. Αυτό αποκαλείται πρόβλημα πολλαπλών καταστάσεων. Παρόλο που μπορεί να φαίνεται διαφορετική, η περίπτωση της άγνοιας σχετικά με τα αποτελέσματα των πράξεων μπορεί να αντιμετωπιστεί παρόμοια. Υποθέστε για παράδειγμα, ότι το περιβάλλον είναι μη-ντετερμινιστικό ακολουθώντας το νόμο του Μέρφυ: η ενέργεια Απορρόφηση σκόνης μερικές φορές εναποθέτει βρωμιά στο πάτωμα αλλά μόνο αν δεν υπάρχει ήδη εκεί βρωμιά. Για παράδειγμα, εάν ο πράκτορας ξέρει ότι βρίσκεται στην κατάσταση 4, τότε γνωρίζει ότι εάν απορροφήσει τη σκόνη, θα φτάσει σε μία από τις καταστάσεις {2,4}. Πάραυτα, για κάθε γνωστή αρχική κατάσταση, υπάρχει μια ακολουθία ενεργειών που οδηγεί εγγυημένα στην τελική κατάσταση. Μερικές φορές η άγνοια αποτρέπει τον πράκτορα απ το να βρει μια εγγυημένη επίλυση. Υποθέστε, για παράδειγμα, ότι ο πράκτορας είναι στον κόσμο του Νόμου του Μέρφυ, και ότι έχει έναν αισθητήρα θέσης και έναν τοπικό αισθητήρα βρωμιάς, αλλά δεν έχει αισθητήρα ικανό να ανιχνεύει τη βρωμιά σε άλλες περιοχές. Υποθέστε επιπλέον ότι οι αισθητήρες του λένε ότι είναι σε μία από τις καταστάσεις {1,3}. Ο πράκτορας μπορεί να σχηματοποιήσει την ακολουθία ενεργειών [Απορρόφηση σκόνης, Δεξιά, Απορρόφηση σκόνης]. Η Απορρόφηση σκόνης θα άλλαζε την κατάσταση σε μία από τις καταστάσεις {5,7}, και το να μετακινηθεί δεξιά θα άλλαζε την κατάσταση σε μία από τις καταστάσεις {6,8}. Εάν είναι πράγματι η κατάσταση 6, τότε η ακολουθία ενεργειών θα επιτύχει, αλλά εάν είναι η κατάσταση 8, το σχέδιο θα αποτύχει. Εάν ο πράκτορας είχε επιλέξει την απλούστερη ακολουθία ενεργειών [Απορρόφηση σκόνης] θα μπορούσε να είχε επιτύχει κάποιες από τις φορές αλλά όχι πάντα. Αποδεικνύεται ότι δεν υπάρχει σταθερή ακολουθία ενεργειών που να εγγυάται επίλυση σε αυτό το πρόβλημα. Προφανώς, ο πράκτορας έχει έναν τρόπο να επιλύσει το πρόβλημα ξεκινώντας από μία από τις καταστάσεις {1,3}, πρώτα Απορρόφηση σκόνης, στη συνέχεια Μετακίνηση προς τα Δεξιά, τέλος πάλι Απορρόφηση σκόνης μόνο αν υπάρχει βρωμιά εκεί. Επίσης, για να επιλυθεί αυτό το πρόβλημα, απαιτείται ικανότητα των αισθητήρων, κατά τη διάρκεια της φάσης της εκτέλεσης. Σημειώστε ότι ο πράκτορας, πρέπει τώρα να υπολογίσει ένα ολόκληρο δέντρο ενεργειών, παρά μία μοναδική ακολουθία ενεργειών. Γενικά, κάθε κλαδί του δέντρου αντιμετωπίζει ένα πιθανό απρόοπτο που μπορεί να εμφανιστεί. Για το λόγο αυτό, αποκαλούμε το παραπάνω, πρόβλημα απρόοπτου. Πολλά προβλήματα στον πραγματικό κόσμο είναι προβλήματα απρόοπτου ακριβώς επειδή είναι αδύνατη η 8

9 ακριβής πρόβλεψη. Γι αυτό και πολλοί άνθρωποι έχουν τα μάτια τους ανοιχτά καθώς περπατούν ή οδηγούν. Προβλήματα μιας κατάστασης και πολλαπλών καταστάσεων μπορούν να αντιμετωπιστούν με παρόμοιες τεχνικές αναζήτησης. Τα προβλήματα απρόοπτου από την άλλη μεριά, απαιτούν περισσότερο πολύπλοκους αλγορίθμους. Επίσης, αυτά ανήκουν σε διαφορετικού σχεδιασμού πράκτορες, όπου ο πράκτορας μπορεί να ενεργήσει πριν να έχει βρει ένα εγγυημένο σχέδιο. Αυτό είναι χρήσιμο διότι αντί να υπολογίζεις προκαταβολικά όλα τα πιθανά απρόοπτα που μπορεί να εμφανιστούν κατά τη διάρκεια της εκτέλεσης, είναι συχνά καλύτερο να ξεκινήσει η εκτέλεση για να δούμε ποια απρόοπτα όντως εμφανίζονται. Στη συνέχεια ο πράκτορας μπορεί να συνεχίσει με την επίλυση του προβλήματος έχοντας και την παραπάνω πληροφορία. Αυτό το είδος εναλλαγής μεταξύ εκτέλεσης και αναζήτησης ισχύει και στην περίπτωση των δύο παικτών παιχνιδιών. Εμείς από εδώ και πέρα θα θεωρήσουμε περιπτώσεις όπου οι εγγυημένες λύσεις περιλαμβάνουν μία ακολουθία ενεργειών. Τέλος θεωρήστε την περίπτωση ενός πράκτορα που δεν έχει πληροφορίες για τα αποτελέσματα των πράξεών του. Αυτό είναι ισοδύναμο με το να έχεις χαθεί σε μια ξένη χώρα χωρίς χάρτη και είναι η πιο δύσκολη εργασία που μπορεί να αντιμετωπίσει ένας πράκτορας. Ο πράκτορας θα πρέπει να πειραματιστεί, ανακαλύπτοντας βαθμιαία τι κάνουν οι πράξεις του και τι είδη καταστάσεων υπάρχουν. Αυτό είναι ένα είδος αναζήτησης στον πραγματικό κόσμο. Το να κάνεις ένα βήμα στον πραγματικό κόσμο, παρά σε έναν κόσμο μοντέλο, μπορεί να εμπεριέχει σημαντικό κίνδυνο για έναν αδαή πράκτορα. Εάν επιζήσει, ο πράκτορας μαθαίνει έναν χάρτη του περιβάλλοντος, τον οποίον μπορεί μετά να χρησιμοποιήσει για να λύσει προβλήματα που έπονται. Αυτό είναι ένα είδος προβλήματος ανακάλυψης Καλά ορισμένα προβλήματα και λύσεις Ένα πρόβλημα είναι στην πραγματικότητα μία συλλογή πληροφορίας που θα χρησιμοποιήσει ο πράκτορας για να αποφασίσει τι θα κάνει. Θα ξεκινήσουμε προσδιορίζοντας την πληροφορία που χρειάζεται για να ορίσουμε ένα πρόβλημα μιας κατάστασης. Έχουμε δει ότι τα βασικά στοιχεία του ορισμού ενός προβλήματος είναι οι καταστάσεις και οι ενέργειες. Για να τα συλλάβουμε αυτά χρειαζόμαστε τα ακόλουθα: Την αρχική κατάσταση στην οποία γνωρίζει ο πράκτορας ότι βρίσκεται. Το σύνολο των πιθανών ενεργειών, που είναι διαθέσιμες προς τον πράκτορα. Ο όρος τελεστής χρησιμοποιείται για να δείξει την περιγραφή μιας πράξης με όρους του ποια κατάσταση θα επιτευχθεί εκτελώντας την ενέργεια στη συγκεκριμένη κατάσταση. ( Ένας εναλλακτικός σχηματισμός χρησιμοποιεί τον όρο της διαδοχικής συνάρτησης S. Μια 9

10 δεδομένη κατάσταση x, S(x), επιστρέφει ένα σύνολο καταστάσεων εφικτών από το x με μία μοναδική ενέργεια ). Όλα αυτά ορίζουν τον χώρο καταστάσεων του προβλήματος : το σύνολο όλων των καταστάσεων εφικτών από την αρχική κατάσταση με οποιαδήποτε ακολουθία ενεργειών. Ένα μονοπάτι στον χώρο καταστάσεων είναι μια οποιαδήποτε ακολουθία ενεργειών που οδηγεί από τη μία κατάσταση στην άλλη. Το επόμενο στοιχείο ενός προβλήματος είναι το ακόλουθο: Ο έλεγχος τελικής κατάστασης, τον οποίον ο πράκτορας μπορεί να εφαρμόσει στην περιγραφή μιας κατάστασης για να καθορίσει εάν αυτή είναι τελική κατάσταση. Μερικές φορές υπάρχει ένα σαφές σύνολο πιθανών τελικών καταστάσεων, και ο έλεγχος αυτός απλά βλέπει εάν έχουμε φτάσει σε κάποια από αυτές. Άλλες φορές πάλι ο στόχος προσδιορίζεται από μια ασαφή ιδιότητα παρά από ένα σαφώς απαριθμημένο σύνολο καταστάσεων. Για παράδειγμα, στο σκάκι, ο στόχος είναι να φτάσουμε σε μία κατάσταση που αποκαλείται ΜΑΤ, όπου ο βασιλιάς του αντιπάλου μπορεί να αιχμαλωτιστεί στην επόμενη κίνηση ανεξάρτητα με το τι μπορεί να κάνει ο αντίπαλος. Τέλος, μπορεί μία λύση να είναι προτιμότερη από μία άλλη παρόλο που και οι δύο φτάνουν το στόχο. Για παράδειγμα, μπορεί να προτιμούμε μονοπάτια με λιγότερες ενέργειες ή με ενέργειες μικρότερου κόστους. Η συνάρτηση του κόστους του μονοπατιού είναι μία συνάρτηση που προσδίδει ένα κόστος σε ένα μονοπάτι. Σε όλες τις περιπτώσεις θα θεωρούμε, ότι το κόστος ενός μονοπατιού είναι το άθροισμα από τα κόστη των επιμέρους ενεργειών κατά μήκος του μονοπατιού. Η συνάρτηση κόστους του μονοπατιού συχνά συμβολίζεται με g. Η αρχική κατάσταση, το σύνολο των τελεστών, ο έλεγχος τελικής κατάστασης και η συνάρτηση κόστους του μονοπατιού, ορίζουν ένα πρόβλημα. Έτσι, μπορούμε να ορίσουμε έναν τύπο δεδομένων με τον οποίο μπορούμε να αναπαριστούμε τα προβλήματα: datatype PROBLEM components : INITIAL-STATE, OPERATORS, GOAL-TEST, PATH-COST-FUNCTION Παραδείγματα αυτού του τύπου δεδομένων θα είναι το δεδομένο εισόδου στον αλγόριθμο αναζήτησης. Το αποτέλεσμα του αλγορίθμου αναζήτησης είναι η επίλυση, δηλαδή ένα μονοπάτι από την αρχική κατάσταση στην κατάσταση που ικανοποιεί τον έλεγχο τελικής κατάστασης. Για να αντιμετωπίσουμε προβλήματα πολλαπλών καταστάσεων, θα πρέπει να κάνουμε μόνο μικρές αλλαγές : ένα πρόβλημα περιλαμβάνει ένα σύνολο αρχικών καταστάσεων, ένα σύνολο τελεστών που προσδιορίζει για κάθε ενέργεια το σύνολο καταστάσεων που απορρέουν από οποιαδήποτε κατάσταση και ένας έλεγχος τελικής κατάσασης μαζί με μία συνάρτηση κόστους 10

11 μονοπατιού. Ενας τελεστής εφαρμόζεται σε ένα σύνολο καταστάσεων ενώνοντας τα αποτελέσματα της εφαρμογής του τελεστή σε κάθε κατάσταση του συνόλου. Μετά, ένα μονοπάτι ενώνει σύνολα καταστάσεων και η λύση είναι ένα μονοπάτι που οδηγεί σε ένα σύνολο καταστάσεων που είναι όλες τελικές καταστάσεις. Ο χώρος καταστάσεων αντικαθίσταται από τον χώρο συνόλου καταστάσεων Υπολογίζοντας την απόδοση της επίλυσης προβλήματος Η αποτελεσματικότητα της αναζήτησης μπορεί να υπολογιστεί με τουλάχιστον τρεις τρόπους. Πρώτον, βρίσκει κάποια λύση ; Δεύτερον, είναι μια καλή λύση (μία με χαμηλό κόστος μονοπατιού); Τρίτον, πώς συνδέεται το κόστος αναζήτησης με το χρόνο και τη μνήμη που χρειάζονται για να βρεθεί μια λύση; Το συνολικό κόστος της αναζήτησης είναι το άθροισμα του κόστους του μονοπατιού και του κόστους αναζήτησης. Σχετικά με το πρόβλημα της εύρεσης μιας διαδρομής από το Arad στο Bucharest, το κόστος του μονοπατιού μπορεί να είναι ανάλογο προς τη συνολική απόσταση του μονοπατιού. Το κόστος αναζήτησης θα εξαρτηθεί από τις συνθήκες. Σε ένα στατικό περιβάλλον, θα είναι μηδέν γιατί ο υπολογισμός της απόδοσης είναι ανεξάρτητος από το χρόνο. Εάν υπάρχει κάποια ανάγκη να φτάσει στο Bucharest, το περιβάλλον είναι ημιδυναμικό γιατί η περαιτέρω καθυστέρηση κοστίζει περισσότερο. Σε αυτή την περίπτωση, το κόστος αναζήτησης μπορεί να ποικίλλει ανάλογα με το υπολογιστικό χρόνο. Για να υπολογίσουμε το συνολικό κόστος, θα πρέπει να προσθέσουμε μίλια και milisecond. Αυτό δεν είναι πάντα εύκολο γιατί δεν υπάρχει επίσημη τιμή ισοτιμίας μεταξύ τους. Ο πράκτορας πρέπει να αποφασίσει τι πόρους να αφιερώσει στην αναζήτηση και τι πόρους να αφιερώσει στην εκτέλεση. Για προβλήματα με μικρούς χώρους καταστάσεων, είναι εύκολο να βρεις τη λύση με το μικρότερο μονοπάτι κόστους. Αλλά για μεγάλα, πολύπλοκα προβλήματα, ο πράκτορας μπορεί να κάνει αναζήτηση για μεγάλο χρονικό διάστημα για βρει τη βέλτιστη λύση, ή μπορεί να ψάξει για μικρότερο χρονικό διάστημα και να βρει μια λύση με ελαφρώς μεγαλύτερο μονοπάτι κόστους Επιλέγοντας καταστάσεις και ενέργειες Αφού βγάλαμε από τη μέση τους ορισμούς, ας ξεκινήσουμε τη διερεύνηση των προβλημάτων, αρχίζοντας από ένα εύκολο : Η διαδρομή από το Arad στo Bucharest χρησιμοποιώντας τους δρόμους που εμφανίζονται στην εικόνα 1.3. Κάθε κανονικός χώρος καταστάσεων έχει 20 καταστάσεις, όπου κάθε κατάσταση ορίζεται μοναδικά από την τοποθεσία, που ορίζεται σαν πόλη. Επίσης, η αρχική κατάσταση είναι στο Arad και ο έλεγχος τελικής κατάστασης στόχου είναι το εάν είναι αυτό το Bucharest ; Οι τελεστές αντιστοιχούν στην οδήγηση κατά μήκος του δρόμου ανάμεσα στις πόλεις. Μια λύση είναι το μονοπάτι από το Arad στο Sibiu, στο Rimnicu Vilcea, στο Pitesti και στο Bucharest. Υπάρχουν πολλά άλλα μονοπάτια που είναι λύσεις, για παράδειγμα, μέσω Lugoj και Craiova. Για να επιλέξουμε ποια λύση είναι καλύτερη, θα πρέπει να ξέρουμε τι υπολογίζει το 11

12 μονοπάτι κόστους : θα μπορούσε να είναι η συνολική απόσταση σε μίλια, ή ο αναμενόμενος χρόνος ταξιδιού. Επειδή ο παρόντας χάρτης δεν διευκρινίζει τίποτα από όλα αυτά, θα χρησιμοποιήσουμε τον αριθμό των βημάτων σαν τη συνάρτηση κόστους. Αυτό σημαίνει ότι το μονοπάτι μέσω του Sibiu και του Faragas, με μονοπάτι κόστους 3, είναι η καλύτερη δυνατή λύση. Η πραγματική τέχνη της επίλυσης προβλήματος είναι στο να αποφασίσεις τι συμπεριλαμβάνεται στην περιγραφή των καταστάσεων και των τελεστών και τι μένει απ έξω. Συγκρίνετε την απλή περιγραφή κατάστασης που επιλέξαμε, στο Arad, με ένα πραγματικό ταξίδι που διασχίζει τη χώρα, όπου η κατάσταση του κόσμου περιλαμβάνει τόσες πολλές συνιστώσες : τους συνταξιδιώτες, τι παίζει το ραδιόφωνο, τι μπορείς να κοιτάξεις έξω από το παράθυρο, το όχημα που χρησιμοποιείται για το ταξίδι, πόσο γρήγορα πηγαίνει, εάν υπάρχουν τροχονόμοι εκεί κοντά, τι ώρα είναι, εάν ο οδηγός πεινάει ή είναι κουρασμένος ή του τελειώνουν τα καύσιμα, πόσο μακριά είναι η επόμενη στάση για ξεκούραση, η κατάσταση στην οποία βρίσκεται ο δρόμος, ο καιρός κ.λ.π. Ολοι αυτοί οι υπολογισμοί δεν έχουν περιληφθεί στις περιγραφές των καταστάσεων γιατί είναι άσχετοι με το πρόβλημα εύρεσης μιας διαδρομής για το Bucharest. Η διαδικασία της απάλειψης λεπτομερειών από μία αναπαράσταση ονομάζεται αφαίρεση. Εικόνα 1.3 Ενας χάρτης δρόμου της Ρουμανίας Εκτός από το να κάνουμε πιο αφηρημένη την περιγραφή της κατάστασης, θα πρέπει να κάνουμε πιο αφηρημένες και τις ενέργειες. Μια ενέργεια - ας πούμε ταξίδι με αυτοκίνητο από το Arad στο Zerind - έχει πολλά αποτελέσματα. Εκτός από την αλλαγή της τοποθεσίας του οχήματος και των κατόχων του, παίρνει χρόνο, καταναλώνει καύσιμα, προκαλεί μόλυνση και μεταβάλει τον πράκτορα (όπως λέμε, το ταξίδι διευρύνει τους ορίζοντες). Στο δικό μας ορισμό, υπολογίζουμε μόνο την αλλαγή στην τοποθεσία. Επίσης, υπάρχουν πολλές ενέργειες που θα παραλείψουμε : το άνοιγμα του ραδιοφώνου, το κοίταγμα έξω από το παράθυρο, η μείωση της ταχύτητας για τροχονόμους κ.λ.π. 12

13 Μπορούμε να είμαστε πιο συγκεκριμένοι ως προς τον ορισμό του κατάλληλου επιπέδου ασάφειας ; Σκεφτείτε τις καταστάσεις και τις ενέργειες που έχουμε επιλέξει να αντιστοιχούν στα σύνολα των αναλυτικών ακολουθιών ενεργειών. Τώρα θεωρείστε μια λύση στο αφηρημένο πρόβλημα : για παράδειγμα, θα μπορούσαμε να οδηγούμε με το ραδιόφωνο ανοιχτό ανάμεσα στο Sibiu και το Rimnica Vilcea και μετά να το κλείσουμε για το υπόλοιπο του ταξιδιού. Καθένα από αυτά τα πιο αναλυτικά μονοπάτια είναι επίσης μια λύση προς το στόχο, οπότε η ασάφεια είναι έγκυρη. Η ασάφεια είναι επίσης χρήσιμη, διότι η εκτέλεση καθεμιάς από τις ενέργειες της επίλυσης, όπως η οδήγηση από το Pitesti στο Bucharest, είναι πιο εύκολη από το αρχικό πρόβλημα. Η επιλογή μιας καλής ασάφειας περιλαμβάνει την αφαίρεση όσο το δυνατόν μεγαλύτερης λεπτομέρειας κρατώντας όσο το δυνατόν μεγαλύτερη εγκυρότητα και διασφαλίζοντας ότι οι αφηρημένες ενέργειες είναι εύκολο να εκτελεστούν. Εάν δεν υπήρχε η ικανότητα να διαμορφωθούν κατάλληλες ασάφειες, οι έξυπνοι πράκτορες θα είχαν πνιγεί από τον πραγματικό κόσμο. 1.3 Παραδείγματα Προβλημάτων Το εύρος των ενεργειών του περιβάλλοντος που μπορούν να χαρακτηριστούν σαν καλά ορισμένα προβλήματα είναι μεγάλο. Μπορούμε να διάκριση ανάμεσα στα αποκαλούμενα προβλήματα παιχνιδιού, τα οποία σκοπεύουν να υλοποιήσουν και να δοκιμάσουν διάφορες μεθόδους επίλυσης προβλημάτων, και τα αποκαλούμενα προβλήματα πραγματικού κόσμου, τα οποία τείνουν να είναι πιο δύσκολα και των οποίων οι λύσεις θα ενδιαφέρουν πραγματικά τον κόσμο. Σε αυτή την ενότητα, θα δώσουμε παραδείγματα και για τα δύο. Στα προβλήματα παιχνιδιού μπορεί να δοθεί μια πιο συγκεκριμένη και ακριβής περιγραφή. Αυτό σημαίνει ότι μπορούν να χρησιμοποιηθούν εύκολα από διαφορετικούς ερευνητές για να συγκρίνουν την απόδοση των αλγορίθμων. Από την άλλη μεριά, τα προβλήματα πραγματικού κόσμου, τείνουν να μην έχουν μια κοινώς συμφωνημένη περιγραφή, αλλά θα προσπαθήσουμε να πάρουμε μια γεύση των ορισμών τους Προβλήματα Παιχνιδιού Το παζλ-8 Το παζλ-8, ένα παράδειγμα του οποίου φαίνεται στην εικόνα 1.4, περιλαμβάνει έναν πίνακα 3 3 με οχτώ αριθμημένα τετράγωνα κι ένα κενό. Ενα τετράγωνο γειτονικό του κενού μπορεί να γλιστρήσει στον κενό χώρο. Ο στόχος είναι να φτάσουμε στη διαμόρφωση που φαίνεται στο δεξί μέρος της εικόνας. Ενα σημαντικό τέχνασμα είναι η παρατήρηση παρά η χρήση τελεστών όπως μετακίνησε το τετράγωνο 4 στον κενό χώρο, είναι πιο έξυπνο να υπάρχουν τελεστές όπως το κενό τετράγωνο αλλάζει θέση με αυτό που είναι αριστερά του. Και αυτό γιατί υπάρχουν λιγότεροι τέτοιοι χειριστές του δεύτερου είδους. Αυτό μας οδηγεί στον ακόλουθο σχηματισμό : 13

14 Καταστάσεις : η περιγραφή μιας κατάστασης προσδιορίζει τη θέση καθενός από τα οχτώ τετράγωνα σε ένα από τα εννιά τετράγωνα. Για μεγαλύτερη αποτελεσματικότητα είναι χρήσιμο να συμπεριλάβουμε και τη θέση του κενού τετραγώνου. Χειριστές : το κενό τεράγωνο μετακινείται αριστερά, δεξιά, προς τα πάνω ή προς τα κάτω. Ελεγχος Τελικής Κατάστασης : η κατάσταση που ταιριάζει με τη διαμόρφωση που φαίνεται στην εικόνα 1.4. Μονοπάτι Κόστους : κάθε βήμα έχει κόστος 1, οπότε το κόστος του μονοπατιού είναι το μήκος του μονοπατιού. Το παζλ-8 ανήκει στην οικογένεια των παζλ κυλιόμενων κομματιών. Αυτή η γενική κατηγορία είναι γνωστή σαν NP-ολοκληρώσιμα. Το παζλ-8 και το παζλ-15 είναι τα βασικά προβλήματα πειραματισμού για νέους αλγορίθμους στην τεχνητή νοημοσύνη. Εικόνα 1.4 Ενα τυπικό παράδειγμα του παζλ Το πρόβλημα των 8 βασιλισσών Ο στόχος στο πρόβλημα των 8 βασιλισσών είναι να τοποθετηθούν οχτώ βασίλισσες σε μία σκακιέρα έτσι ώστε να μην μπορεί να επιτεθεί καμιά βασίλισσα στην άλλη. (Η βασίλισσα επιτίθεται σε οποιοδήποτε πιόνι είναι στην ίδια γραμμή, στήλη ή διαγώνιο). Η εικόνα 1.5 δείχνει μια προσπάθεια επίλυσης που αποτυγχάνει : η βασίλισσα στην δεξιότερη στήλη δέχεται επίθεση από τη βασίλισσα πάνω, αριστερά. 14

15 Εικόνα 1.5 Μία σχεδόν λύση στο πρόβλημα των 8-βασιλισσών Παρ όλο που υπάρχουν αλγόριθμοι ειδικού σκοπού για αυτό το πρόβλημα και όλη η οικογένεια των n- βασιλισσών, παραμένει ένα ενδιαφέρον πρόβλημα και για αλγορίθμους αναζήτησης. Υπάρχουν δύο βασικά είδη σχηματισμού. Ο σχηματισμός προσαύξησης τοποθετεί μια-μια τις βασίλισσες ενώ αντίθετα, ο σχηματισμός ολοκληρωμένης κατάστασης ξεκινάει και με τις 8 βασίλισσες στη σκακιέρα και τις μετακινεί. Και στις δύο περιπτώσεις, το μονοπάτι κόστους δεν έχει σημασία διότι μόνο η τελική κατάσταση μετράει, γι αυτό οι αλγόριθμοι συγκρίνονται μόνο ως προς το κόστος αναζήτησης. Εχουμε, λοιπόν, τον ακόλουθο έλεγχο τελικής κατάστασης και μονοπάτι κόστους : Ελεγχος Τελικής Κατάστασης : 8 βασίλισσες στη σκακιέρα, καμιά από αυτές δεν δέχεται επίθεση. Μονοπάτι Κόστους : μηδέν Υπάρχουν επίσης διαφορετικές πιθανές καταστάσεις και τελεστές. Θεωρείστε τον ακόλουθο απλό σχηματισμό : Καταστάσεις : οποιοσδήποτε σχηματισμός απο 0 έως 8 βασίλισσες στη σκακιέρα. Τελεστές : πρόσθεση μιας βασίλισσας σε ένα οποιοδήποτε τετράγωνο Σε αυτό το σχηματισμό έχουμε 648 πιθανές ακολουθίες να εξετάσουμε. Μια πιο λογική επιλογή θα χρησιμοποιούσε το γεγονός ότι δεν μπορεί να δουλέψει η τοποθέτηση της βασίλισσας εκεί όπου έχει ήδη δεχθεί επίθεση, διότι διαδοχικές τοποθετήσεις άλλων βασιλισσών δεν θα αναιρέσουν την επίθεση. Οπότε μπορούμε να δοκιμάσουμε το ακόλουθο: Καταστάσεις : σχηματισμοί από 0 έως 8 βασίλισσες με καμία να δέχεται επίθεση. 15

16 Τελεστές : η τοποθέτηση της βασίλισσας στην πιο αριστερά άδεια στήλη έτσι ώστε να μην δέχεται επίθεση από καμία άλλη βασίλισσα. Είναι εύκολο να δείτε ότι οι συγκεκριμένες ενέργειες μπορούν να παράγουν μόνο καταστάσεις χωρίς επιθέσεις, αλλά μερικές φορές καμία ενέργεια δεν θα είναι δυνατή. Για παράδειγμα, αφού κάνουμε τις πρώτες 7 επιλογές (αριστερά προς τα δεξιά) στην εικόνα 1.5, δεν υπάρχει άλλη διαθέσιμη ενέργεια σε αυτόν τον σχηματισμό. Η διαδικασία αναζήτησης θα πρέπει να δοκιμάσει μια άλλη επιλογή. Ενας γρήγορος υπολογισμός δείχνει ότι υπάρχουν μόνο 2057 πιθανές ακολουθίες να διερευνηθούν. Ο σωστός σχηματισμός διαφοροποιεί πολύ το μέγεθος του χώρου αναζήτησης. Παρόμοιες θεωρήσεις ισχύουν και για σχηματισμούς ολοκληρωμένης κατάστασης. Για παράδειγμα, μπορούμε να θέσουμε το πρόβλημα ως εξής : Καταστάσεις : σχηματισμοί των 8 βασιλισσών, ένας σε κάθε στήλη. Τελεστές : μετακίνηση κάθε βασίλισσας που έχει δεχθεί επίθεση σε ένα άλλο τετράγωνο στην ίδια στήλη. Αυτός ο σχηματισμός θα επέτρεπε στον αλγόριθμο να βρει μια λύση τελικά, αλλά θα ήταν καλύτερα να κινηθεί σε ένα τετράγωνο που να μην έχει δεχθεί επίθεση, εάν αυτό είναι εφικτό Κρυπταρίθμηση Στα προβλήματα κρυπταρίθμησης, τα γράμματα αντιστοιχούν σε ψηφία και ο σκοπός είναι να βρεθεί μια αντικατάσταση των γραμμάτων από ψηφία, έτσι ώστε το τελικό άθροισμα να είναι αριθμητικά σωστό. Συνήθως, κάθε γράμμα πρέπει να αντιστοιχεί σε ένα διαφορετικό ψηφίο. Το ακόλουθο είναι ένα γνωστό παράδειγμα : FORTY SOLUTION: TEN TEN SIXTY F=2, O=9, R=7, etc Ο ακόλουθος σχηματισμός είναι πιθανότατα ο απλούστερος : 16

17 Καταστάσεις : ένα κρυπταριθμητικό παζλ με αντικατάσταση κάποιων γραμμάτων από ψηφία. Τελεστές : αντικατάσταση όλων των εμφανίσεων ενός γράμματος από ένα ψηφίο το οποίο δεν εμφανίζεται ήδη στο παζλ. Ελεγχος Τελικής Κατάστασης : το παζλ περιλαμβάνει μόνο ψηφία και αναπαριστά ένα σωστό άθροισμα. Κόστος Μονοπατιού : μηδέν. Ολες οι λύσεις είναι εξίσου έγκυρες. Μια γρήγορη σκέψη δείχνει ότι η αντικατάσταση του E από το 6 και του F από το 7 είναι το ίδιο με την αντικατάσταση και του F από το 7 και του E από το 6- η σειρά δεν έχει σχέση με την ορθότητα, έτσι θέλουμε να αποφύγουμε συνδυασμούς με τις ίδιες αντικαταστάσεις. Ενας τρόπος για να γίνει αυτό είναι να υιοθετήσουμε μια συγκεκριμένη σειρά, π.χ. αλφαβητική σειρά. Μια καλύτερη επιλογή είναι να κάνουμε την πιο περιοριστική αντικατάσταση, δηλαδή, το γράμμα που έχει τις λιγότερες νομικές πιθανότητες δεδομένων των περιορισμών του παζλ Ο κόσμος της ηλεκτρικής σκούπας Θα αναλύσουμε τον απλοποιημένο κόσμο της ηλεκτρικής σκούπας. Ας εξετάσουμε την περίπτωση της μοναδικής κατάστασης με ολοκληρωμένη πληροφορία. Υποθέτουμε ότι ο πράκτορας γνωρίζει την θέση του καθώς και τις θέσεις όλων των κομματιών βρωμιάς και ότι η απορρόφηση σκόνης είναι ακόμα σε καλή κατάσταση. Καταστάσεις : μία από τις οχτώ καταστάσεις που εμφανίζονται στην εικόνα 1.6. Τελεστές : μετακίνηση προς τα δεξιά, μετακίνηση προς τα αριστερά, αναρρόφηση. Ελεγχος Τελικής Κατάστασης : να μην μείνει καθόλου βρωμιά σε καμία γωνιά. Μονοπάτι Κόστους : κάθε ενέργεια κοστίζει 1. Εικόνα 1.6 Διάγραμμα του χώρου καταστάσεων της σκούπας. Τα βέλη υποδεικνύουν κινήσεις. L=μετακίνηση προς τα αριστερά, R=μετακίνηση προς τα δεξιά, S=απορρόφηση σκόνης 17

18 Η εικόνα 1.6 δείχνει τον ολοκληρωμένο χώρο καταστάσεων με όλα τα πιθανά μονοπάτια. Το να επιλυθεί το πρόβλημα από οποιαδήποτε αρχική κατάσταση είναι απλά θέμα του να ακολουθήσεις τα βέλη προς μία τελική κατάσταση. Ας θεωρήσουμε την περίπτωση όπου ο πράκτορας δεν έχει αισθητήρες, αλλά πρέπει να καθαρίσει τη βρωμιά. Επειδή αυτό είναι ένα πρόβλημα πολλαπλής κατάστασης, θα έχουμε τα ακόλουθα : Σύνολα Καταστάσεων : Υποσύνολα των καταστάσεων 1-8 που εμφανίζονται στην εικόνα 1.2 ( ή 1.6 ) Τελεστές : Μετακίνηση προς τα δεξιά, μετακίνηση προς τα αριστερά, απορρόφηση σκόνης. Ελεγχος Τελικής Κατάστασης : Ολες οι καταστάσεις στο σύνολο καταστάσεων να μην έχουν καθόλου βρωμιά. Μονοπάτι Κόστους : Κάθε ενέργεια έχει κόστος 1. Το αρχικό σύνολο καταστάσεων είναι το σύνολο όλων των καταστάσεων, επειδή ο πράκτορας δεν έχει αισθητήρες. Η επίλυση είναι μια οποιαδήποτε ακολουθία που οδηγεί από το αρχικό σύνολο καταστάσεων σε ένα σύνολο καταστάσεων χωρίς βρωμιά, όπως φαίνεται στην εικόνα 1.7. Παρόμοιοι χώροι συνόλων καταστάσεων μπορούν να κατασκευαστούν για την περίπτωση της αβεβαιότητας σχετικά και με τις ενέργειες και τις καταστάσεις. Εικόνα 1.7 Σύνολο χώρου καταστάσεων για τον απλοποιημένο κόσμο της σκούπας χωρίς αισθητήρες. Κάθε κουτί διακεκομμένης γραμμής περιλαμβάνει ένα σύνολο καταστάσεων. Σε οποιοδήποτε δοσμένο σημείο, ο πράκτορας βρίσκεται σε ένα σύνολο καταστάσεων αλλά δεν ξέρει σε ποια κατάσταση του συνόλου είναι. Το αρχικό σύνολο καταστάσεων (πλήρης άγνοια) είναι το επάνω κεντρικό κουτί. Οι ενέργειες αναπαριστούνται με τόξα. Αποφεύγονται οι αυτοεπαναλήψεις. 18

19 Ιεραπόστολοι και Κανίβαλοι Το πρόβλημα των ιεραποστόλων και των κανιβάλων είναι όπως ακολουθεί. Τρεις ιεραπόστολοι και τρεις κανίβαλοι είναι σε μια πλευρά του ποταμού, μαζί με μία βάρκα που χωράει μόνο ένα ή δύο άτομα. Πρέπει να βρείτε έναν τρόπο για να τους περάσετε όλους στην άλλη πλευρά, χωρίς να αφήνετε σε μία πλευρά λιγότερους ιεραπόστολους από ότι κανίβαλους. Αυτό το πρόβλημα είναι γνωστό στην Τεχνητή Νοημοσύνη διότι ήταν η πρώτη εργασία που προσέγγισε το σχηματισμό προβλημάτων από μία αναλυτική θεώρηση. Οπως και με το ταξίδι στη Ρουμανία, το πρόβλημα πραγματικής ζωής πρέπει να είναι σε μεγάλο βαθμό αφηρημένο πριν να εφαρμόσουμε μια στρατηγική επίλυσης του προβλήματος. Φανταστείτε τη σκηνή στην πραγματική ζωή : 3 μέλη της φυλής Arawaskan, η Alice, ο Bob και ο Charles να στέκονται στην άκρη ενός ποταμού του Αμαζονίου, στο οποίο έχει εμφανιστεί κροκόδειλος, μαζί με τους πρόσφατους φίλους τους Xavier, Yolanda και Zelda. Γύρω τους τα πουλιά κλαίνε, μια καταιγίδα πρόκειται να ξεκινήσει, ο Ταρζάν κραυγάζει κ.λ.π. Οι ιεραπόστολοι Xavier, Yolanda και Zelda ανησυχούν λίγο σχετικά με το τι μπορεί να συμβεί αν ένας από αυτούς μείνει μόνος του με δύο ή τρεις από τους άλλους και η Alice, ο Bob και ο Charles ανησυχούν ότι μπορεί να παρευρεθούν σε ένα μακρύ κήρυγμα το οποίο θα τους φανεί πολύ δυσάρεστο. Και οι δύο ομάδες δεν είναι και πολύ σίγουρες ότι η μικρή βάρκα που βρίσκεται δεμένη στην άκρη του ποταμού αντέχει να περάσει απέναντι με δύο επιβάτες. Για να σχηματοποιήσουμε το πρόβλημα, το πρώτο βήμα είναι να ξεχάσουμε τη βροχή, τους κροκόδειλους και όλες τις άλλες λεπτομέρειες που δεν έχουν καμία σχέση με τη λύση. Το επόμενο βήμα είναι να αποφασίσουμε ποιο είναι το σωστό σύνολο τελεστών. Γνωρίζουμε ότι οι τελεστές σχετίζονται με το να μεταφέρουν ένα ή δύο άτομα απέναντι στο ποτάμι με τη βάρκα, αλλά πρέπει να αποφασίσουμε εάν χρειαζόμαστε μια κατάσταση που να αναπαριστά το χρόνο όσο βρίσκονται μέσα στη βάρκα, ή όταν φτάσουν στην άλλη όχθη. Επειδή η βάρκα παίρνει μόνο δύο άτομα, δεν μπορούν να μπουν παραπάνω άτομα, οπότε μόνο τα άκρα της διαδρομής είναι σημαντικά. Στη συνέχεια, θα πρέπει να γίνουμε αφαιρετικοί και ως προς τα άτομα. Σίγουρα, καθένας από τους έξι είναι ένα μοναδικό ον, αλλά για τους σκοπούς της επίλυσης, όταν έρθει η στιγμή για να μπει ο κανίβαλος μέσα στη βάρκα, δεν έχει σημασία αν αυτός είναι η Alice, ο Bob ή ο Charles. Κάθε συνδυασμός των τριών ιεραποστόλων ή των τριών καννιβάλων έχει το ίδιο αποτέλεσμα. Αυτοί οι υπολογισμοί οδηγούν στον ακόλουθο επίσημο ορισμό του προβλήματος : Καταστάσεις : μια κατάσταση περιλαμβάνει μια ταξινομημένη ακολουθία τριών αριθμών που αναπαριστούν τον αριθμό των καννιβάλων, των ιεραποστόλων και των βαρκών στην όχθη του ποταμού, απ όπου ξεκίνησαν. Ετσι, η αρχική κατάσταση είναι (3,3,1). Τελεστές : από κάθε κατάσταση, οι πιθανοί τελεστές είναι να πάρουν στη βάρκα είτε έναν ιεραπόστολο κι ένα κανίβαλο, είτε δύο καννίβαλους, είτε δύο ιεραπόστολους, είτε 19

20 έναν από την κάθε ομάδα. Ετσι, υπάρχουν το πολύ πέντε τελεστές, παρ όλο που μερικές καταστάσεις έχουν λιγότερους διότι είναι απαραίτητο να αποφύγουμε καταστάσεις που δεν επιτρέπονται. Παρατηρείστε ότι αν είχαμε επιλέξει να ξεχωρίσουμε το κάθε άτομο, τότε θα υπήρχαν 27 τελεστές αντί για 5. Τελική Κατάσταση : το να φτάσουμε στην κατάσταση (0,0,0). Κόστος Μοναπατιού : ο αριθμός των διαδρομών. Αυτός ο χώρος των καταστάσεων είναι αρκετά μικρός, έτσι ώστε να είναι αυτό ένα τετριμμένο πρόβλημα για να επιλυθεί από ένα κομπιούτερ. Συνήθως όμως ο κόσμος δυσκολεύεται, γιατί κάποιες από τις απαραίτητες κινήσεις φαίνεται σαν να οπισθοδρομούν. Ενδεχομένως, οι άνθρωποι χρησιμοποιούν την έννοια της προόδου για να καθοδηγήσουν την αναζήτησή τους. Θα δούμε στη συνέχεια πώς χρησιμοποιούνται τέτοιες έννοιες Προβλήματα Πραγματικού Κόσμου Εύρεση Διαδρομής Εχουμε ήδη δει πώς ορίζεται η εύρεση διαδρομής με όρους συγκεκριμένων τοποθεσιών και μεταβάσεων μεταξύ συνδέσμων ανάμεσά τους. Οι αλγόριθμοι εύρεσης διαδρομής χρησιμοποιούνται σε διάφορες εφαρμογές, όπως η δρομολόγηση σε δίκτυα υπολογιστών, σε συμβουλευτικά συστήματα αυτοματοποιημένων διαδρομών και σε συστήματα σχεδιασμού αεροπορικών ταξιδιών. Η τελευταία εφαρμογή είναι κάπως πιο περίπλοκη, διότι το αεροπορικό ταξίδι έχει πολύπλοκο μονοπάτι κόστους, από την πλευρά των χρημάτων, ποιότητας καθίσματος, ώρα της ημέρας, είδος αεροπλάνου κ.λ.π. Επίσης, οι ενέργειες σ αυτό το πρόβλημα δεν έχουν γνωστά αποτελέσματα : οι πτήσεις μπορεί να είναι κλεισμένες ή να έχουν καθυστέρηση, ανταποκρίσεις μπορεί να χαθούν και η ομίχλη ή η συντήρηση επειγόντων περιστατικών μπορεί να προκαλέσει καθυστερήσεις Προβλήματα Περιοδείας και Ταξιδιού του Πωλητή Θεωρείστε το πρόβλημα Επισκεφτείτε κάθε πόλη στην εικόνα 1.3, τουλάχιστον μια φορά, ξεκινώντας και καταλήγοντας στο Bucharest. Αυτό το πρόβλημα φαίνεται παρόμοιο με εκείνο της εύρεσης διαδρομής, διότι οι τελεστές αντιστοιχούν με ταξίδια μεταξύ γειτονικών πόλεων. Αλλά ο χώρος καταστάσεων για αυτό το πρόβλημα, θα πρέπει να καταγράψει περισσότερη πληροφορία. Εκτός από τη θέση του πράκτορα, κάθε κατάσταση θα πρέπει επίσης να αποθηκεύει και το σύνολο των πόλεων που έχει ήδη επισκεφτεί ο πράκτορας. Οπότε η αρχική κατάσταση θα μπορούσε να είναι Στο Bucharest επισκέφτηκε {Bucharest}, μια συνηθισμένη ενδιάμεση κατάσταση θα ήταν : Στο Vaslui επισκέφτηκε {Bucharest, Urziceni, Vaslui}, και η τελική κατάσταση θα έλεγχε εάν ο πράκτορας βρίσκεται στο Bucharest και ότι έχει επισκεφτεί και τις 20 πόλεις. 20

21 Το πρόβλημα του περιπλανώμενου πωλητή ( TSP ) είναι ένα γνωστό πρόβλημα διαδρομής στο οποίο ο πωλητής θα πρέπει να επισκεφθεί κάθε πόλη ακριβώς μια φορά. Ο στόχος είναι να βρεθεί η πιο σύντομη διαδρομή. Εκτός από το να προγραμματίζουν ταξίδια, αυτοί οι αλγόριθμοι έχουν χρησιμοποιηθεί για σχεδιασμό κινήσεων αυτόματων συστημάτων τρυπανιών Πλάνο Κυκλώματος Πολύ Μεγάλης Κλίμακας Ολοκλήρωσης (VLSI Layout) Ο σχεδιασμός των τσιπ από σιλικόνη είναι από τους πιο πολύπλοκους μηχανολογικούς σχεδιασμούς και μπορούμε να δώσουμε μόνο ένα σύντομο σκαρίφημα εδώ. Ένα τυπικό τσιπ κυκλώματος μεγάλης ολοκλήρωσης έχει γύρω στο ένα εκατομμύριο πύλες, και η θέση και οι συνδέσεις κάθε πύλης είναι πολύ σημαντικά για την επιτυχή λειτουργία του τσιπ. Εργαλεία σχεδιασμού βοηθούμενα από υπολογιστή χρησιμοποιούνται σε κάθε φάση της διαδικασίας. Δύο από τις πιο δύσκολες εργασίες είναι ο σχεδιασμός του κελιού και η δρομολόγηση του καναλιού. Αυτές γίνονται αφού ρυθμιστούν τα συστατικά και οι συνδέσεις του κυκλώματος, ο στόχος είναι να σχεδιαστεί το κύκλωμα στο τσιπ έτσι ώστε να ελαχιστοποιηθούν τα μήκη της σύνδεσης ενώ παράλληλα να μεγιστοποιηθεί η ταχύτητα. Στο σχεδιασμό του κελιού, τα αρχικά συστατικά του κυκλώματος ομαδοποιούνται σε κελιά καθένα από τα οποία τρέχει κάποια γνωστή συνάρτηση. Κάθε κελί έχει ένα σταθερό μέγεθος και σχήμα και απαιτεί έναν αριθμό συνδέσεων με καθένα από τα άλλα κελιά. Ο στόχος είναι να τοποθετηθούν τα κελιά πάνω στο τσιπ, με τέτοιο τρόπο ώστε να μην υπερκαλύπτουν το ένα το άλλο και να υπάρχει χώρος για τις καλωδιώσεις ανάμεσα στα κελιά. Η δρομολόγηση του καναλιού βρίσκει μια συγκεκριμένη διαδρομή για κάθε καλώδιο χρησιμοποιώντας τα κενά ανάμεσα στα κελιά. Αυτά τα προβλήματα αναζήτησης είναι υπερβολικά πολύπλοκα, αλλά αξίζει τον κόπο η επίλυσή τους Πλοήγηση του Ρομπότ Η πλοήγηση του ρομπότ είναι μια γενίκευση του προβλήματος εύρεσης διαδρομής που περιγράφτηκε νωρίτερα. Το ρομπότ μπορεί να κινηθεί σε έναν συνεχή χώρο με ένα άπειρο σύνολο πιθανών ενεργειών και καταστάσεων. Για ένα απλό στρογγυλό ρομπότ που κινείται σε μια επίπεδη επιφάνεια, ο χώρος είναι απαραίτητα δισδιάστατος. Όταν το ρομπότ έχει χέρια και πόδια, ο χώρος καταστάσεων γίνεται πολυδιάστατος. Εκτός από την πολυπλοκότητα του προβλήματος, τα πραγματικά ρομπότ θα πρέπει επίσης να αντιμετωπίσουν λάθη των αισθητήρων τους και των μηχανών ελέγχου Διαδοχική Συναρμολόγηση 21

22 Η επίδειξη αυτόματης συναρμολόγησης πολύπλοκων κομματιών από ένα ρομπότ ξεκίνησε από το ρομπότ Freddy. Η πρόοδος από τότε ήταν πολύ αργή αλλά σταθερή, μέχρι το σημείο όπου η συναρμολόγηση κομματιών όπως οι ηλεκτρικές μηχανές να είναι οικονομικά εφικτή. Στα προβλήματα συναρμολόγησης, το πρόβλημα είναι να βρούμε μια σειρά με την οποία θα συναρμολογήσουμε τα κομμάτια κάποιου αντικειμένου. Εάν επιλεχθεί λάθος σειρά, δεν θα υπάρχει τρόπος να προσθέσουμε αργότερα κάποιο κομμάτι, εκτός κι αν χαλάσουμε κάποια από τη δουλειά που έχει ήδη γίνει. Ο έλεγχος ενός βήματος στην ακολουθία ως προς το αν είναι εφικτό αυτό το βήμα είναι ένα πολύπλοκο πρόβλημα γεωμετρικής αναζήτησης που συνδέεται άρρηκτα με την πλοήγηση του ρομπότ. Η παραγωγή αποδεκτών απογόνων είναι το πιο ακριβό κομμάτι της διαδοχικής συναρμολόγησης και είναι απαραίτητη η χρήση ενημερωμένων αλγορίθμων που θα μειώσουν την αναζήτηση. 1.4 Αναζητώντας Λύσεις Εχουμε ήδη δει πώς να ορίζουμε ένα πρόβλημα, και πώς να αναγνωρίζουμε μια λύση του. Η εύρεση μιας λύσης γίνεται με αναζήτηση στο χώρο καταστάσεων. Η ιδέα είναι να συντηρήσουμε και να επεκτείνουμε ένα σύνολο από ακολουθίες μερικών λύσεων. Σε αυτή την ενότητα, δείχνουμε πως θα παράγουμε τέτοιες ακολουθίες και πως θα τις παρακολουθούμε χρησιμοποιώντας κατάλληλες δομές δεδομένων Παράγοντας Ακολουθίες Ενεργειών Για να λύσουμε το πρόβλημα εύρεσης διαδρομής από το Arad στο Bucharest, για παράδειγμα, ξεκινάμε μόνο με την αρχική κατάσταση, το Arad. Το πρώτο βήμα είναι να ελέγξουμε εάν αυτή είναι η τελική κατάσταση. Ξεκάθαρα δεν είναι, αλλά είναι σημαντικό το να ελέγξουμε έτσι ώστε να μπορέσουμε να λύσουμε και προβλήματα όπως Εκκίνηση από το Arad και τέλος επίσης στο Arad. Επειδή αυτή δεν είναι μια τελική κατάσταση, πρέπει να θεωρήσουμε και κάποιες άλλες καταστάσεις. Αυτό γίνεται εφαρμόζοντας τελεστές στην τρέχουσα κατάσταση, και παράγοντας με αυτόν τον τρόπο ένα νέο σύνολο καταστάσεων. Η διαδικασία αυτή ονομάζεται επεκτείνοντας την κατάσταση. Σε αυτή την περίπτωση, έχουμε τρεις νέες καταστάσεις, στο Sibiu, στην Timisoara, και στο Zerind, επειδή υπάρχει μια απευθείας διαδρομή ενός βήματος σ αυτές τις τρεις πόλεις. Εάν υπήρχε μόνο μία δυνατότητα, θα μπορούσαμε να την επιλέξουμε και να συνεχίσουμε. Αλλά όποτε υπάρχουν πολλαπλές δυνατότητες, θα πρέπει να κάνουμε μια επιλογή ως προς το ποια θα θεωρήσουμε στη συνέχεια. Αυτή είναι η ουσία της αναζήτησης, το να επιλέξεις μια δυνατότητα και να βάλεις τις άλλες στην άκρη για αργότερα, στην περίπτωση που η πρώτη επιλογή δεν οδηγήσει στη λύση. Υποθέστε ότι επιλέγουμε το Zerind. Ελέγχουμε να δούμε αν είναι η τελική κατάσταση (δεν είναι), και στη συνέχεια την επεκτείνουμε στο Arad και στην Oradea. Μπορούμε στη συνέχεια να επιλέξουμε κάποια από 22

23 αυτές τις δύο, ή να επιστρέψουμε και να επιλέξουμε το Sibiu ή την Timisoara. Συνεχίζουμε επιλέγοντας, ελέγχοντας κι επεκτείνοντας μέχρι να βρεθεί μια λύση, ή μέχρι να μην υπάρχουν άλλες καταστάσεις για να επεκταθούν. Η επιλογή ως προς το ποια κατάσταση να επεκτείνουμε στην αρχή, καθορίζεται από τη στρατηγική αναζήτησης. Βοηθάει το να σκεφτούμε τη διαδικασία αναζήτησης σαν να μεγαλώνουμε ένα δέντρο αναζήτησης το οποίο εδραιώνεται στο χώρο καταστάσεων. Η ρίζα του δέντρου αναζήτησης είναι ένας κόμβος αναζήτησης που αντιστοιχεί στην αρχική κατάσταση. Οι κόμβοι-φύλλα του δέντρου αντιστοιχούν σε καταστάσεις που δεν έχουν απογόνους στο δέντρο, είτε γιατί δεν έχουν επεκταθεί ακόμα, είτε γιατί επεκτάθηκαν κι έχουν παράγει ένα κενό σύνολο. Σε κάθε βήμα, ο αλγόριθμος αναζήτησης επιλέγει ένα φύλλο-κόμβο για να επεκτείνει. Η εικόνα 1.8 δείχνει μερικές από τις επεκτάσεις του δέντρου αναζήτησης για εύρεση διαδρομής από το Arad στο Bucharest. Ο γενικός αλγόριθμος αναζήτησης περιγράφεται στην εικόνα 1.9. Είναι σημαντικό να κάνουμε διάκριση ανάμεσα στο χώρο καταστάσεων και στο δέντρο αναζήτησης. Για το πρόβλημα εύρεσης διαδρομής, υπάρχουν μόνο 20 καταστάσεις στο χώρο καταστάσεων, μια για κάθε πόλη. Εικόνα 1.8 Δέντρο Μερικής Αναζήτησης για την εύρεση διαδρομής από το Arad στο Bucharest 23

24 function GENERAL-SEARCH (problem, strategy) returns a solution, or failure initialize the search tree using the initial state of problem loop do if there are no candidates for expansion then return failure choose a leaf node for expansion according to strategy if the node contains a goal state then return the corresponding solution else expand the node and add the resulting nodes to the search tree end Εικόνα 1.9 Μία ανεπίσημη περιγραφή του γενικού αλγορίθμου αναζήτησης Αλλά υπάρχει ένας άπειρος αριθμός μονοπατιών σε αυτό το χώρο καταστάσεων, οπότε και το δέντρο αναζήτησης έχει έναν άπειρο αριθμό κόμβων. Για παράδειγμα, το κλαδί Arad-Sibiu-AradSibiu-Arad κ.ο.κ. Προφανώς, ένας καλός αλγόριθμος αναζήτησης αποφεύγει το να ακολουθήσει τέτοια μονοπάτια Δομές Δεδομένων Για Δέντρα Αναζήτησης Υπάρχουν πολλοί τρόποι να αναπαραστήσουμε τους κόμβους, αλλά εδώ θα θεωρήσουμε ότι ο κόμβος είναι μια δομή δεδομένων με 5 συστατικά στοιχεία : την κατάσταση στο χώρο καταστάσεων στην οποία αντιστοιχεί ο κόμβος τον κόμβο στο δέντρο αναζήτησης που παρήγαγε αυτόν τον κόμβο (αυτός ονομάζεται κόμβος-πατέρας). τον τελεστή που εφαρμόστηκε για να παραχθεί ο κόμβος ο αριθμός των κόμβων στο μονοπάτι από την κορυφή του δέντρου έως αυτόν τον κόμβο (το βάθος του κόμβου). Το κόστος μονοπατιού για το μονοπάτι από την αρχική κατάσταση ως τον κόμβο. Ο τύπος δεδομένου του κόμβου είναι έτσι : datatype node components : STATE, PARENT-NODE, OPERATOR, DEPTH, PATH-COST 24

25 Είναι σημαντικό να θυμηθείτε το διαχωρισμό ανάμεσα στους κόμβους και τις καταστάσεις. Ο κόμβος είναι μια δομή δεδομένων λογιστικής που χρησιμοποιείται για να αναπαραστήσουμε το δέντρο αναζήτησης για ένα συγκεκριμένο στιγμιότυπο του προβλήματος όπως παράχθηκε από έναν αλγόριθμο. Μια κατάσταση αναπαριστά μια διαμόρφωση (ή σύνολο διαμορφώσεων) του κόσμου. Ετσι οι κόμβοι έχουν βάθος και πατρικούς κόμβους, ενώ οι καταστάσεις δεν έχουν. (Επίσης, είναι πολύ πιθανό για δύο διαφορετικούς κόμβους να περιλαμβάνουν την ίδια κατάσταση, εάν αυτή παράγεται μέσω δύο διαφορετικών ακολουθιών ενεργειών). Η συνάρτηση EXPAND (ΕΠΕΚΤΑΣΗ) είναι υπεύθυνη για τον υπολογισμό καθενός απ τα συστατικά των κόμβων που παράγει. Επίσης, χρειάζεται να αναπαραστήσουμε τη συλλογή των κόμβων που περιμένουν να επεκταθούν αυτή η συλλογή ονομάζεται σύνορο. Η πιο απλή αναπαράσταση θα ήταν ένα σύνολο κόμβων. Η στρατηγική αναζήτησης τότε θα ήταν μια συνάρτηση που επιλέγει τον επόμενο κόβο που θα επεκταθεί από αυτό το σύνολο. Αυτή η στρατηγική όμως θα ήταν υπολογιστικά ακριβή, επειδή η συνάρτηση στρατηγικής θα πρέπει να εξετάσει κάθε στοιχείο του συνόλου, για να διαλέξει το καλύτερο. Γι αυτό θα υποθέσουμε ότι η συλλογή κόμβων υλοποιείται σαν μια ουρά. Οι λειτουργίες στην ουρά είναι ως εξής : ΔΗΜΙΟΥΡΓΙΑ - ΟΥΡΑΣ (Στοιχεία) δημιουργεί μια ουρά με τα δεδομένα στοιχεία. ΑΔΕΙΑ (Ουρά) επιστρέφει true μόνο αν δεν υπάρχουν άλλα στοιχεία στην ουρά. ΑΦΑΙΡΕΣΗ - ΑΡΧΗ (Ουρά) αφαιρεί το στοιχείο απ την κορυφή της ουράς και το επιστρέφει. ΓΕΜΙΣΜΑ ΟΥΡΑΣ (Στοιχεία, Ουρά) εισάγει ένα σύνολο στοιχείων στην ουρά. Διαφορετικές παραλλαγές αυτής της συνάρτησης παράγουν διαφορετικά είδη του αλγορίθμου αναζήτησης. Με αυτούς τους ορισμούς μπορούμε να γράψουμε μια πιο επίσημη έκδοση του γενικού αλγορίθμου αναζήτησης. Αυτός φαίνεται στο παρακάτω σχήμα: function GENERAL-SEARCH (problem, QUEUING-FN) returns a solution or failure nodes MAKE-QUEUE (MAKE-NODE (INITIAL-STATE [problem])) loop do if nodes is empty then return failure node REMOVE-FRONT (nodes) if GOAL-TEST[problem] applied to STATE(node) succeeds then return node nodes QUEUING-FN (nodes, EXPAND (node, OPERATORS[problem])) end Εικόνα 1.10 Ο γενικός αλγόριθμος αναζήτησης 1.5 Στρατηγικές Αναζήτησης Το μεγαλύτερο μέρος της δουλειάς στον τομέα της αναζήτησης γίνεται στο κομμάτι της εύρεσης της σωστής στρατηγικής αναζήτησης ενός προβλήματος. Στη μελέτη μας θα αξιολογήσουμε τις στρατηγικές με βάση τα ακόλουθα κριτήρια : 25

26 Ολοκληρωσιμότητα: όταν υπάρχει μια λύση, η στρατηγική εγγυάται ότι θα τη βρει; Πολυπλοκότητα χρόνου: πόσος χρόνος χρειάζεται για να ευρεθεί μια λύση; Πολυπλοκότητα χώρου: πόση μνήμη χρειάζεται για να πραγματοποιηθεί η αναζήτηση; Βελτιστοποίηση: η στρατηγική βρίσκει την λύση καλύτερης ποιότητας όταν υπάρχουν αρκετές διαφορετικές λύσεις; Αυτή η ενότητα καλύπτει έξι στρατηγικές,οι οποίες έχουν την ονομασία μη-ενημερωμένη αναζήτηση. Αυτός ο όρος σημαίνει ότι δεν έχουν καμία πληροφόρηση σχετικά με τον αριθμό των βημάτων ή το κόστος του μονοπατιού από την τρέχουσα κατάσταση στην τελική το μόνο που μπορούν να κάνουν είναι να ξεχωρίσουν μια τελική κατάσταση από μια μη-τελική κατάσταση. Επίσης μερικές φορές αποκαλείται τυφλή αναζήτηση. Θεωρείστε πάλι το πρόβλημα εύρεσης διαδρομής. Από την αρχική κατάσταση στο Arad, υπάρχουν τρεις ενέργειες που οδηγούν σε τρεις νέες καταστάσεις : στο Sibiu, στο Timisoara και στο Zerind. Μια μη-ενημερωμένη αναζήτηση δεν θα είχε προτίμηση ανάμεσα στις τρεις, αλλά ένας πιο έξυπνος πράκτορας μπορεί να παρατηρήσει ότι ο στόχος, δηλαδή το Bucharest, είναι νοτιοανατολικά του Arad, και ότι μόνο το Sibiu είναι προς εκείνη την κατεύθυνση, οπότε είναι πιθανότατα η καλύτερη επιλογή. Οι στρατηγικές που χρησιμοποιούν τέτοιες θεωρήσεις αποκαλούνται στρατηγικές ενημερωμένης αναζήτησης ή στρατηγικές ευριστικής αναζήτησης. Όπως θα περιμέναμε, η μη ενημερωμένη αναζήτηση, είναι παρ όλα αυτά σημαντική, διότι υπάρχουν πολλά προβλήματα για τα οποία δεν υπάρχει πρόσθετη πληροφορία προς θεώρηση. Οι έξι στρατηγικές μη ενημερωμένης αναζήτησης διαχωρίζονται από την σειρά με την οποία επεκτείνονται οι κόμβοι. Αποδεικνύεται ότι αυτή η διαφορά παίζει σημαντικό ρόλο, όπως θα δούμε στη συνέχεια Αναζήτηση Πρώτα σε Πλάτος (BREADTH-FIRST) Μια απλή στρατηγική αναζήτησης είναι η αναζήτηση πρώτα σε πλάτος. Σε αυτή τη στρατηγική, ο αρχικός κόμβος επεκτείνεται πρώτος, μετά όλοι οι κόμβοι που παράγονται από αυτόν, επεκτείνονται στη συνέχεια, μετά οι απόγονοί τους και ούτω καθεξής. Γενικά,όλοι οι κόμβοι σε βάθος d στο δέντρο αναζήτησης επεκτείνονται πριν από τους κόμβους σε βάθος d+1. Η αναζήτηση πρώτα σε πλάτος μπορεί να υλοποιηθεί καλώντας τον αλγόριθμο ΓΕΝΙΚΗ ΑΝΑΖΗΤΗΣΗ με μία συνάρτηση ουράς που τοποθετεί τις καταστάσεις που μόλις παράχθηκαν στο τέλος της ουράς, μετά από όλες τις προηγούμενα παραχθείσες καταστάσεις : function BREADTH-FIRST-SEARCH (problem) returns a solution or failure return GENERAL-SEARCH(problem, ENQUEUE-AT-END) 26

27 Η αναζήτηση πρώτα σε πλάτος είναι μια πολύ συστηματική αναζήτηση διότι υπολογίζει πρώτα όλα τα μονοπάτια μήκους 1, στη συνέχεια όλα τα μονοπάτια μήκους 2, κ.ο.κ. Η εικόνα 1.11 δείχνει την πρόοδο της αναζήτησης σε ένα απλό δυαδικό δέντρο. Εάν υπάρχει κάποια λύση, η αναζήτηση πρώτα σε πλάτος είναι εγγυημένο ότι θα τη βρει, και εάν υπάρχουν αρκετές λύσεις, η αναζήτηση πρώτα σε πλάτος θα βρίσκει πάντα την πιο ρηχή τελική κατάσταση πρώτα. Με βάση τα τέσσερα κριτήρια, η αναζήτηση πρώτα σε πλάτος είναι ολοκληρωμένη, και είναι βέλτιστη δεδομένου ότι το κόστος μονοπατιού είναι μια συνάρτηση του βάθους του κόμβου που δεν ελαττώνεται. (Αυτή η συνθήκη ικανοποιείται συνήθως όταν όλοι οι τελεστές έχουν το ίδιο κόστος). Μέχρι τώρα, τα νέα για την αναζήτηση πρώτα σε πλάτος είναι καλά. Για να δούμε γιατί δεν είναι πάντα η στρατηγική της επιλογής μας, θα πρέπει να εξετάσουμε το χρόνο και τη μνήμη που χρειάζονται για να ολοκληρωθεί η αναζήτηση. Για να το κάνουμε αυτό, θεωρούμε έναν υποθετικό χώρο καταστάσεων όπου κάθε κατάσταση μπορεί να επεκταθεί σε με απόδοση b. Λέμε ότι ο συντελεστής διακλάδωσης αυτών των καταστάσεων (και του δέντρου αναζήτησης) είναι b. Ο αρχικός κόμβος του δέντρου αναζήτησης παράγει b κόμβους στο πρώτο επίπεδο, καθένας από τους οποίους παράγει b ακόμα κόμβους, με σύνολο b2 στο δεύτερο επίπεδο. Καθένας από αυτούς παράγει b ακόμα κόμβους με απόδοση b3 στο τρίτο επίπεδο, κ.ο.κ. Τώρα υποθέστε ότι η λύση γι αυτό το πρόβλημα έχει ένα μονοπάτι μήκους d. Τότε ο μέγιστος αριθμός κόμβων που επεκτείνονται μέχρι να βρεθεί η λύση είναι 1 + b + b2 + b3 + + bd Αυτός είναι ο μέγιστος αριθμός, αλλά η λύση μπορεί να ευρεθεί σε οποιοδήποτε σημείο στο επίπεδο d. Στην καλύτερη περίπτωση ο αριθμός θα ήταν μικρότερος. Εικόνα 1.11 Δέντρα Αναζήτησης Πρώτα-σε-Πλάτος μετά από 0, 1, 2, 3 επεκτάσεις κόμβων Αυτοί που κάνουν ανάλυση πολυπλοκότητας αγχώνονται όποτε βλέπουν μία εκθετική πολυπλοκότητα όπως 0(bd). Η εικόνα 1.12 δείχνει το γιατί. Δείχνει το χρόνο και τη μνήμη που χρειάζονται για μια αναζήτηση πρώτα σε πλάτος με συντελεστή διακλάδωσης b =10 και για διαφορετικές τιμές της λύσης βάθος d. Η πολυπλοκότητα χώρου είναι η ίδια με την πολυπλοκότητα χρόνου, διότι όλοι οι κόμβοι φύλλα του δέντρου πρέπει να διατηρηθούν ταυτόχρονα στη μνήμη. 27

28 Η εικόνα 1.12 υποθέτει ότι 1000 κόμβοι/ανά δευτερόλεπτο μπορούν να ελεγχθούν αν είναι τελικές καταστάσεις και να επεκταθούν και ότι ένας κόμβος απαιτεί 100 bytes χωρητικότητας. Εικόνα 1.12 Απαιτήσεις χρόνου και μνήμης σε αναζητήσεις πρώτα-σε-πλάτος. Τα νούμερα δείχνουν ότι ο παράγοντας διακλάδωσης b=10, 1000 κόμβοι/sec, 100 bytes / κόμβο Υπάρχουν δύο μαθήματα που πρέπει να πάρουμε απ την εικόνα Πρώτον, οι απαιτήσεις μνήμης είναι μεγαλύτερο πρόβλημα είναι μεγαλύτερο πρόβλημα για την αναζήτηση πρώτα σε πλάτος απ ότι ο χρόνος εκτέλεσης. Οι περισσότεροι άνθρωποι έχουν την υπομονή να περιμένουν 18 λεπτά για να ολοκληρωθεί μια αναζήτηση βάθους 6, αλλά δεν έχουν τόσοι πολλοί 111 megabytes μνήμης που απαιτούνται. Και παρ όλο που 31 ώρες δεν θα ήταν πολύ να περιμένουμε για μια λύση σε ένα σημαντικό πρόβλημα βάθους 8, πολλοί λίγοι άνθρωποι πραγματικά έχουν πρόσβαση σε 11 gigabytes που θα χρειαζόταν. Ευτυχώς, υπάρχουν άλλες στρατηγικές αναζήτησης που απαιτούν λιγότερη μνήμη. Το δεύτερο μάθημα είναι ότι οι απαιτήσεις χρόνου παραμένουν ένας σημαντικός παράγοντας. Εάν το πρόβλημά σας έχει μια λύση βάθους 12, τότε μια αναζήτηση μη ενημερωμένη θα χρειαστεί 35 χρόνια για να τη βρει. Βέβαια, σε 10 χρόνια θα μπορείτε να αγοράσετε έναν υπολογιστή που θα είναι 100 φορές πιο γρήγορος με την ίδια σημερινή τιμή πώλησης. Ακόμα και με εκείνον τον υπολογιστή, θα χρειαστούν βέβαια 128 μέρες για να βρούμε μια λύση βάθους 12-και 35 χρόνια για μια λύση βάθους 14. Γενικά τα προβλήματα αναζήτησης εκθετικής πολυπλοκότητας δεν μπορούν να επιλυθούν εύκολα εκτός από τα μικρότερα παραδείγματα Αναζήτηση ομοιόμορφου κόστους 28

29 Η αναζήτηση πρώτα σε βάθος βρίσκει την πιο ρηχή τελική κατάσταση, αλλά αυτή μπορεί να μην είναι πάντα η λύση μικρότερου κόστους για μια γενική συνάρτηση κόστους μονοπατιού. Η αναζήτηση ομοιόμορφου κόστους επεκτείνει πάντα τον κόμβο με το χαμηλότερο κόστος (όπως έχει υπολογιστεί από το κόστος μονοπατιού g(n)), παρά τον κόμβο μικρότερου βάθους. Η αναζήτηση πρώτα σε βάθος είναι μια αναζήτηση ενιαίου κόστους με g(n) = ΒΑΘΟΣ (n) Όταν ικανοποιούνται κάποιες συνθήκες, η πρώτη λύση που ευρίσκεται, είναι εγγυημένο ότι είναι η πιο φτηνή, διότι αν υπήρχε ένα φθηνότερο μονοπάτι που ήταν λύση, θα είχε επεκταθεί νωρίτερα και θα το είχαμε βρει πρώτα. Θεωρείστε το πρόβλημα εύρεσης διαδρομής στην εικόνα Το πρόβλημα είναι να φτάσουμε από το S στο G και σημειώνεται το κόστος κάθε τελεστή. Η στρατηγική πρώτα επεκτείνει την αρχική κατάσταση, παράγοντας μονοπάτια προς Α, Β, C. Επειδή το μονοπάτι προς το Α είναι φθηνότερο, επεκτείνεται στη συνέχεια, παράγοντας το μονοπάτι SAG που είναι στην πραγματικότητα μια λύση, αν και δεν είναι η βέλτιστη. Παρ όλα αυτά ο αλγόριθμος δεν την αναγνωρίζει ακόμα σαν λύση, διότι έχει κόστος 11, και θάβεται στην ουρά κάτω απ το μονοπάτι SB που έχει κόστος 5. Φαίνεται κρίμα να παράγουμε μια λύση για να τη θάψουμε βαθιά στην ουρά, αλλά αυτό είναι απαραίτητο εάν θέλουμε να βρούμε τη βέλτιστη λύση παρά μια οποιαδήποτε λύση. Το επόμενο βήμα είναι να επεκτείνουμε το SB παράγοντας το SBG που είναι φθηνότερο μονοπάτι στην ουρά, οπότε ελέγχεται αν είναι τελική κατάσταση κι επιστρέφεται σαν λύση. Η αναζήτηση ομοιόμορφου κόστους βρίσκει την πιο φθηνή λύση αρκεί να ικανοποιείται μια μικρή απαίτηση : το κόστος του μονοπατιού δεν πρέπει ποτέ να μειωθεί καθώς προχωρούμε στο μονοπάτι. Με άλλα λόγια, επιμένουμε ότι g (ΑΠΟΓΟΝΟΣ (n)) g(n) για κάθε κόμβο n. O περιορισμός για τη μη μείωση του κόστους του μονοπατιού, έχει νόημα εάν το κόστος μονοπατιού ενός κόμβου θεωρείται ότι είναι το άθροισμα από τα κόστη των τελεστών που συνθέτουν το μονοπάτι. Εάν κάθε τελεστής έχει μη-αρνητικό κόστος, τότε το κόστος του μονοπατιού δεν μπορεί ποτέ να μειωθεί καθώς προχωρούμε στο μονοπάτι, και η αναζήτηση ομοιόμορφου κόστους μπορεί να βρει το πιο φθηνό μονοπάτι χωρίς να ανακαλύψει ολόκληρο το δέντρο αναζήτησης. Αλλά, εάν ένας τελεστής έχει αρνητικό κόστος, τότε τίποτα εκτός από μια εξαντλητική αναζήτηση όλων των κόμβων, δεν μπορεί να βρει τη βέλτιστη λύση, διότι δεν θα μπορούσαμε ποτέ να ξέρουμε πως ένα μονοπάτι, ανεξάρτητα απ το κόστος του και το πόσο μακρύ είναι, θα εκτελεστεί σε ένα βήμα με αρνητικό κόστος και να εξελιχθεί στο καλύτερο μονοπάτι όλων. 29

30 Εικόνα 1.13 Ενα πρόβλημα εύρεσης διαδρομής. ( a ) Ο χώρος κατάστασης δείχνοντας το κόστος για κάθε τελεστή. ( b ) Πρόοδος της αναζήτησης. Κάθε κόμβος έχει την τιμή g(n). Σε κάθε επόμενο βήμα, ο τελικός κόμβος με g = 10 θα επιλεχθεί Αναζήτηση πρώτα σε βάθος (DEPTH-FIRST SEARCH) Η αναζήτηση πρώτα σε βάθος πρώτα επεκτείνει έναν από τους κόμβους που βρίσκονται στο πιο βαθύ επίπεδο του δέντρου. Μόνο όταν η αναζήτηση φτάνει σε αδιέξοδο (ένας μη τελικός κόμβος χωρίς δυνατότητα επέκτασης) η αναζήτηση επιστρέφει πίσω κι επεκτείνει κόμβους σε λιγότερο βαθιά επίπεδα. Αυτή η στρατηγική μπορεί να υλοποιηθεί με ΓΕΝΙΚΗ-ΑΝΑΖΗΤΗΣΗ με μια συνάρτηση ουράς, η οποία τοποθετεί πάντα στην αρχή της ουράς τις πιο πρόσφατα παραχθείσες καταστάσεις. Επειδή ο κόμβος που επεκτείνεται ήταν και στο μεγαλύτερο βάθος, οι απόγονοί του θα είναι σε ακόμα μεγαλύτερο βάθος και μάλιστα στο μέγιστο. Η πρόοδος της αναζήτησης φαίνεται στην εικόνα Η αναζήτηση πρώτα κατά βάθος έχει μέτριες απαιτήσεις μνήμης. Όπως δείχνει η εικόνα, χρειάζεται ν αποθηκεύσει μόνο ένα μονοπάτι από την κορυφή ως έναν κόμβο-φύλλο, μαζί με τους υπόλοιπους κόμβους που δεν έχουν ακόμα επεκταθεί. Για ένα χώρο καταστάσεων με παράγοντα διακλάδωσης b και μέγιστο βάθος m, η αναζήτηση πρώτα σε βάθος χρειάζεται να αποθηκεύσει bm d κόμβους σε αντίθεση με το b που θα απαιτούνταν από την αναζήτηση πρώτα σε πλάτος στην περίπτωση που ο πιο ρηχός στόχος είναι σε βάθος d. Χρησιμοποιώντας τις ίδιες υποθέσεις, όπως στην εικόνα 1.12, η αναζήτηση πρώτα σε βάθος θα απαιτούσε 12 kilobytes αντί για 111 terabytes σε βάθος d=12, δηλαδή θα απαιτούσε 10 δισεκατομμύρια φορές λιγότερο χώρο. Η πολυπλοκότητα χρόνου για αναζήτηση πρώτα σε βάθος είναι Ο(bm). Για προβλήματα που έχουν πολλές λύσεις, η αναζήτηση πρώτα σε βάθος μπορεί να είναι πραγματικά πιο γρήγορη απ την αναζήτηση πρώτα σε πλάτος, επειδή έχει τη δυνατότητα να βρει μια λύση ανακαλύπτοντας μόνο ένα 30

31 μικρό μέρος του χώρου καταστάσεων. Η αναζήτηση πρώτα σε πλάτος θα πρέπει να κοιτάξει σε όλα τα μονοπάτια μήκους d-1 πριν να εξετάσει οποιοδήποτε μονοπάτι μήκους d. Η αναζήτηση πρώτα σε m βάθος συνεχίζει να είναι O (b ) στη χειρότερη περίπτωση. Εικόνα 1.14 Δέντρα αναζήτησης πρώτα-σε-βάθος για ένα δυαδικό δέντρο αναζήτησης. Οι κόμβοι σε βάθος 3 θεωρείται ότι δεν έχουν διαδόχους. Το μειονέκτημα στην αναζήτηση πρώτα σε βάθος είναι ότι μπορεί να κολλήσει ακολουθώντας το λάθος μονοπάτι. Πολλά προβλήματα έχουν βαθιά ή ατελείωτα δέντρα αναζήτησης, οπότε η αναζήτηση πρώτα σε βάθος δεν θα είναι ποτέ σε θέση να ανακάμψει από μια άτυχη επιλογή σε έναν απ τους κόμβους κοντά στην κορυφή του δέντρου. Η αναζήτηση θα συνεχίζει πάντα προς τα κάτω. Έτσι, σ αυτού του είδους προβλήματα η αναζήτηση πρώτα σε βάθος ή θα κολλήσει σ ένα ατελείωτο loop και δεν θα επιστρέψει μια λύση, ή μπορεί τελικά να βρει ένα μονοπάτι επίλυσης που είναι πολύ μακρύτερο από τη βέλτιστη λύση. Αυτό σημαίνει ότι η αναζήτηση πρώτα σε βάθος δεν είναι ούτε ολοκληρωμένη ούτε βέλτιστη. Εξ αιτίας αυτού, η αναζήτηση πρώτα σε βάθος θα πρέπει να αποφεύγεται για δέντρα αναζήτησης με μεγάλα ή άπειρα μέγιστα βάθη. Είναι τετριμμένο το να σχεδιάσουμε αναζήτηση πρώτα σε βάθος με ΓΕΝΙΚΗ ΑΝΑΖΗΤΗΣΗ: function DEPTH-FIRST-SEARCH (problem) returns a solution, or failure GENERAL-SEARCH (problem, ENQUEUE-AT-FRONT) 31

32 Είναι επίσης κοινότυπο να σχεδιάσουμε αναζήτηση πρώτα σε βάθος με μια επαναληπτική συνάρτηση η οποία καλεί τον εαυτό της σε καθένα από τα παιδιά της με τη σειρά. Σ αυτή την περίπτωση, η ουρά αποθηκεύεται στην παρούσα κατάσταση κάθε επίκλησης της καλούμενης στοίβας Περιορισμένη Αναζήτηση σε βάθος Η περιορισμένη αναζήτηση σε βάθος αποφεύγει τις παγίδες της αναζήτησης πρώτα σε βάθος εφαρμόζοντας ένα φράγμα στο μέγιστο βάθος του μονοπατιού. Αυτό το φράγμα μπορεί να σχεδιαστεί με έναν ειδικό αλγόριθμο περιορισμένης αναζήτησης σε βάθος, ή χρησιμοποιώντας ένα γενικό αλγόριθμο αναζήτησης με τελεστές που καταγράφει το βάθος. Για παράδειγμα, στον χάρτη της Romania, υπάρχουν 20 πόλεις, οπότε γνωρίζουμε ότι αν υπάρχει μια λύση, τότε πρέπει να είναι το πολύ σε μήκος 19. Μπορούμε να σχεδιάσουμε τη διακοπή βάθους χρησιμοποιώντας τελεστές της μορφής «Εάν βρίσκεσαι στην πόλη Α κι έχεις ταξιδέψει ένα μονοπάτι λιγότερο από 19 βήματα, τότε μπορείς να παράξεις μια καινούργια κατάσταση στην πόλη Β με μήκος μονοπατιού κατά ένα μεγαλύτερο». Με αυτό το νέο σύνολο τελεστών, είναι εγγυημένο ότι θα βρούμε μια λύση εάν αυτή υπάρχει, αλλά δεν είναι εγγυημένο ότι θα βρούμε την πιο γρήγορη λύση πρώτα: η περιορισμένη αναζήτηση σε βάθος είναι ολοκληρωμένη αλλά όχι και βέλτιστη. Εάν επιλέξουμε έναν περιορισμό βάθους που είναι πολύ μικρός, τότε η περιορισμένη αναζήτηση σε βάθος δεν είναι ποτέ ολοκληρωμένη. Η πολυπλοκότητα χώρου και χρόνου της περιορισμένης αναζήτησης σε βάθος είναι l παρόμοια με την αναζήτηση πρώτα σε βάθος. Απαιτεί χρόνο Ο(b ) και χώρο Ο(bl) όπου l είναι το όριο του βάθους Επαναληπτική αναζήτηση σε βάθος Το δύσκολο κομμάτι με την περιορισμένη αναζήτηση σε βάθος είναι το να επιλέξεις ένα καλό όριο. Επιλέξαμε το 19 σαν ένα «προφανές» όριο βάθους για το πρόβλημα της Ρουμανίας, αλλά στην πραγματικότητα εάν μελετήσουμε πιο προσεκτικά τον χάρτη, θα ανακαλύψουμε ότι οποιαδήποτε πόλη μπορεί να γίνει προσβάσιμη από οποιαδήποτε άλλη πόλη σε 9 βήματα το πολύ. Αυτός ο αριθμός, γνωστός σαν διάμετρος του χώρου καταστάσεων, μας δίνει ένα καλύτερο όριο βάθους, το οποίο οδηγεί σε μια πιο ικανoποιητική περιορισμένη αναζήτηση σε βάθος. Παρ όλα αυτά, για τα περισσότερα προβλήματα, δεν θα γνωρίζουμε ένα καλό όριο βάθους μέχρι το σημείο όπου έχουμε επιλύσει το πρόβλημα. H επαναληπτική αναζήτηση σε βάθος είναι μια στρατηγική που παραμερίζει το θέμα του να επιλέξουμε το καλύτερο όριο βάθους, προσπαθώντας όλα τα πιθανά όρια βάθους: πρώτα βάθος 0, μετά βάθος 1, στη συνέχεια βάθος 2 κ.ο.κ. Ο αλγόριθμος παρουσιάζεται στην εικόνα Στην πραγματικότητα, η επαναληπτική αναζήτηση συνδυάζει τα πλεονεκτήματα της αναζήτησης σε βάθος και σε πλάτος. Είναι βέλτιστη και ολοκληρωμένη όπως η αναζήτηση πρώτα σε πλάτος, αλλά έχει μόνο τις μέτριες απαιτήσεις μνήμης όπως η αναζήτηση πρώτα σε βάθος. Η σειρά με την οποία επεκτείνονται οι καταστάσεις είναι παρόμοια με την αναζήτηση πρώτα σε πλάτος, εκτός απ το ότι 32

33 μερικές καταστάσεις επεκτείνονται πολλαπλές φορές. Η εικόνα 1.16 δείχνει τις τέσσερις πρώτες επαναλήψεις της ΕΠΑΝΑΛΗΠΤΙΚΗΣ ΑΝΑΖΗΤΗΣΗΣ ΣΕ ΒΑΘΟΣ σε ένα δυαδικό δέντρο αναζήτησης. Η επαναληπτική αναζήτηση σε βάθος μπορεί να φαίνεται άχρηστη, επειδή τόσες πολλές καταστάσεις επεκτείνονται πολλαπλές φορές. Για τα περισσότερα προβλήματα, όμως, το σύνολο αυτής της πολλαπλής επέκτασης είναι συνήθως μικρό. function ITERATIVE-DEEPENING-SEARCH (problem) returns a solution sequence inputs : problem, a problem for depth 0 to do if DEPTH-LIMITED-SEARCH (problem, depth) succeeds then return its result end return failure Εικόνα 1.15 Ο αλγόριθμος επαναληπτικής αναζήτησης σε βάθος Εικόνα 1.16 Τέσσερις επαναλήψεις της επαναληπτικής αναζήτησης σε βάθος σε ένα δυαδικό δέντρο Διαισθητικά, ο λόγος είναι ότι σε ένα εκθετικό δέντρο αναζήτησης, σχεδόν όλοι οι κόμβοι είναι στο κάτω επίπεδο, οπότε δεν έχει σημασία που τα πιο πάνω επίπεδα επεκτείνονται πολλαπλές φορές. Θυμηθείτε ότι ο αριθμός των επεκτάσεων σε μια περιορισμένη αναζήτηση βάθους d και παράγοντα διακλάδωσης b είναι 1+b+b2 + +bd-2 +bd-1 + bd Για να το κάνουμε αυτό συγκεκριμένο, για b =10 και d =5, ο αριθμός είναι 33

34 = 111:111 Σε μια επαναληπτική αναζήτηση σε βάθος, οι κόμβοι στο κάτω επίπεδο επεκτείνονται μια φορά, αυτοί στο αμέσως επόμενο επίπεδο επεκτείνονται δύο φορές, και ούτω καθεξής προς τα πάνω προς τη ρίζα του δέντρου αναζήτησης, η οποία επεκτείνεται d+1 φορές. Έτσι, ο συνολικός αριθμός επεκτάσεων σε μια επαναληπτική αναζήτηση βάθους είναι (d+1) 1+(d)b+(d-1) b2 +.+3bd-2+2bd-1 +1bd Πάλι, για b =10 και d =5, ο αριθμός είναι = Συνολικά, μια επαναληπτική αναζήτηση σε βάθος από το βάθος 1 σε όλη τη διαδρομή μέχρι το βάθος d επεκτείνει μόνο γύρω στο 11% πιο πολλούς κόμβους απ ότι μια αναζήτηση πρώτα σε πλάτος ή περιορισμένη αναζήτηση σε βάθος, με βάθος d όταν το b =10. Όσο πιο υψηλός είναι ο παράγοντας διακλάδωσης, τόσο πιο χαμηλός είναι ο αριθμός των επαναλαμβανόμενων επεκτεινόμενων καταστάσεων, αλλά ακόμα κι όταν ο παράγοντας διακλάδωσης είναι 2, η επαναληπτική αναζήτηση σε βάθος διαρκεί 2 φορές περισσότερο απ ότι μια ολοκληρωμένη αναζήτηση πρώτα σε πλάτος. Αυτό σημαίνει ότι η πολυπλοκότητα χρόνου της επαναληπτικής d αναζήτησης, είναι πάλι 0(bd) και η πολυπλοκότητα χώρου παραμένει O(b ). Γενικά, η επαναληπτική αναζήτηση προτιμάται σαν μέθοδος αναζήτησης όπου υπάρχει ένας μεγάλος χώρος αναζήτησης και το βάθος της επίλυσης είναι άγνωστο Aναζήτηση Διπλής κατεύθυνσης Η ιδέα της αναζήτησης διπλής κατεύθυνσης είναι να γίνεται ταυτόχρονα αναζήτηση μπροστά από την αρχική κατάσταση και πίσω από την τελική κατάσταση και να σταματήσουν όταν οι δύο αναζητήσεις συναντηθούν στο κέντρο (εικόνα 1.17). Για προβλήματα όπου ο παράγοντας διακλάδωσης είναι b και προς τις δύο κατευθύνσεις, η αναζήτηση διπλής κατεύθυνσης μπορεί να δημιουργήσει διαφορά. Εάν υποθέσουμε όπως συνήθως ότι υπάρχει μια λύση βάθους d τότε η λύση θα βρεθεί σε 0(2bd/2 ) = 0(bd/2) βήματα, διότι και η αναζήτηση προς τα μπρος και προς τα πίσω θα έχουν φτάσει μόνο μέχρι τη μέση της διαδρομής. Για να το κάνουμε αυτό συγκεκριμένο: για b =10 και d =6, η αναζήτηση πρώτα σε βάθος παράγει κόμβους, όπου η αναζήτηση διπλής κατεύθυνσης επιτυγχάνει όταν κάθε κατεύθυνση είναι σε βάθος 3, όπου σε αυτό το σημείο κόμβοι έχουν παραχθεί. Αυτό ακούγεται υπέροχο στη θεωρία, αλλά πολλά θέματα θα πρέπει να διευθετηθούν πριν να μπορεί να σχεδιαστεί ο αλγόριθμος. Το κύριο ερώτημα, είναι, τι σημαίνει να γίνεται αναζήτηση από την τελική κατάσταση και μπροστά; Ορίζουμε σαν προγόνους ενός κόμβου n όλους εκείνους τους κόμβους που έχουν 34

35 τον n σαν απόγονο. Το να αναζητείς προς τα πίσω σημαίνει το να παράγεις διαδοχικά προγόνους ξεκινώντας από τον τελικό κόμβο. Όταν όλοι οι τελεστές είναι αντιστρέψιμοι, τα σύνολα των προγόνων και των απογόνων ταυτίζονται, για κάποια προβλήματα όμως, το να υπολογίζεις προγόνους μπορεί να είναι πολύ δύσκολο. Τι μπορεί να γίνει αν υπάρχουν πολλές πιθανές τελικές καταστάσεις; Αν υπάρχει μια ρητή λίστα τελικών καταστάσεων, όπως οι δύο τελικές καταστάσεις στην εικόνα 1.2, τότε μπορούμε να εφαρμόσουμε μια προγονική συνάρτηση στο σύνολο καταστάσεων όπως εφαρμόζουμε την απογονική συνάρτηση σε αναζήτηση πολλαπλής κατάστασης. Εικόνα 1.17 Μια σχηματική θεώρηση μιας διπλής κατεύθυνσης αναζήτησης πρώτα σε βάθος που πρόκειται να πετύχει, όταν ένα κλαδί από τον αρχικό κόμβο συναντάει ένα κλαδί από τον τελικό. Εάν έχουμε μόνο μία περιγραφή του συνόλου, μπορεί να είναι δυνατό να ανακαλύψουμε τις πιθανές περιγραφές των «συνόλων των καταστάσεων που θα παράγουν το σύνολο των τελικών καταστάσεων», αλλά αυτό είναι λίγο επικίνδυνο. Για παράδειγμα, ποιες είναι οι καταστάσεις που είναι πρόγονος της τελικής κατάστασης του ματ στο σκάκι; Πρέπει να υπάρχει ένας αποτελεσματικός τρόπος για να ελέγξουμε κάθε νέο κόμβο και να δούμε αν ήδη εμφανίζεται στο δέντρο αναζήτησης στο άλλο μισό της αναζήτησης Πρέπει να αποφασίσουμε τι είδος αναζήτησης θα λάβει χώρα σε κάθε μισό. Για παράδειγμα, έχουμε στην προηγούμενη εικόνα, έχουμε δύο αναζητήσεις πρώτα σε βάθος. Είναι αυτή η καλύτερη επιλογή; 35

36 Η πολυπλοκότητα 0 (bd/2 ) προϋποθέτει ότι η διαδικασία του ελέγχου για τυχόν διασταύρωση των δύο συνόρων μπορεί να γίνει σε σταθερό χρόνο (αυτό σημαίνει, ανεξάρτητα από τον αριθμό των καταστάσεων). Αυτό μπορεί συχνά να επιτευχθεί συχνά με έναν μας hash πίνακα. Για να συναντηθούν οι δύο αναζητήσεις, οι κόμβοι τουλάχιστον μιας αναζήτησης θα πρέπει να κρατηθούν στη μνήμη, όπως και με την αναζήτηση πρώτα σε πλάτος. Αυτό σημαίνει ότι η πολυπλοκότητα χώρου μιας μη-ενημερωμένης αναζήτησης διπλής κατεύθυνσης είναι 0 (bd/2 ) Συγκρίνοντας τις στρατηγικές αναζήτησης Η εικόνα 1.18 συγκρίνει έξι στρατηγικές αναζήτησης με κριτήρια τον χρόνο, το χώρο, την ολοκληρωσιμότητα και τη βελτιστοποίηση. Εικόνα 1.18 Αξιολογήσεις των στρατηγικών αναζήτησης. b είναι ένας παράγοντας διακλάδωσης, d είναι το βάθος της λύσης, m είναι το μέγιστο βάθος του δέντρου αναζήτησης, l είναι το όριο του βάθους 1.6 Αποφεύγοντας τις επαναλαμβανόμενες καταστάσεις Μέχρι αυτό το σημείο έχουμε αγνοήσει μια από τις πιο σημαντικές περιπλοκές στη διαδικασία της αναζήτησης: η πιθανότητα του να χάσουμε χρόνο επεκτείνοντας καταστάσεις που έχουν ήδη αντιμετωπιστεί κι επεκταθεί σε κάποιο άλλο μονοπάτι. Για κάποια προβλήματα, η πιθανότητα αυτή δεν εμφανίζεται ποτέ, κάθε κατάσταση μπορεί να προσεγγιστεί μόνο με ένα τρόπο. Ο σχηματισμός του προβλήματος των 8 Βασιλισσών είναι σε μεγάλο μέρος αποτελεσματικός ακριβώς επειδή κάθε κατάσταση μπορεί να προσεγγιστεί μόνο από ένα μονοπάτι. Για πολλά προβλήματα, οι επαναλαμβανόμενες καταστάσεις είναι αναπόφευκτες. Αυτό περιλαμβάνει όλα τα προβλήματα όπου οι τελεστές είναι αντιστρέψιμοι, όπως τα προβλήματα αναζήτησης διαδρομής και το πρόβλημα των κανιβάλων και των ιεραποστόλων. Τα δέντρα αναζήτησης για αυτά τα προβλήματα είναι άπειρα, αλλά εάν περικόψουμε κάποιες από τις επαναλαμβανόμενες καταστάσεις, μπορούμε να φέρουμε το δέντρο σε ένα πεπερασμένο μέγεθος, παράγοντας μόνο το κομμάτι του δέντρου που καλύπτει το γράφημα του χώρου καταστάσεων. Ακόμα κι αν το δέντρο είναι πεπερασμένο, η αποφυγή των επαναλαμβανόμενων καταστάσεων μπορεί να αποφέρει έναν μια εκθετική μείωση στο κόστος της αναζήτησης. Το κλασσικό παράδειγμα είναι αυτό 36

37 που εμφανίζεται στην εικόνα Ο χώρος περιλαμβάνει μόνο m+1 καταστάσεις, όπου m είναι το μέγιστο βάθος. Επειδή το δέντρο περιλαμβάνει κάθε πιθανό μονοπάτι σε όλο το χώρο, έχει 2 rn κλαδιά. Υπάρχουν 3 τρόποι για να αντιμετωπίσουμε επαναλαμβανόμενες καταστάσεις, με αύξουσα σειρά αποτελεσματικότητας και υπολογιστικότητας : Να μην επιστρέφετε στην κατάσταση από την οποία μόλις βγήκατε. Ρυθμίστε τη συνάρτηση επέκτασης (ή το σύνολο τελεστών) έτσι ώστε να αρνείται να παράγει απόγονο που είναι η ίδια κατάσταση με τον κόμβο του προγόνου. Μην δημιουργείτε μονοπάτια με κύκλους μέσα σε αυτά. Ρυθμίστε έτσι τη συνάρτηση επέκτασης ώστε να αρνείται να παράγει απόγονο ενός κόμβου που είναι ο ίδιος με κάποιον απ τους προγόνους του κόμβου. Μην παράγετε μια κατάσταση η οποία είχε παραχθεί και προηγούμενα. Αυτό προϋποθέτει ότι κάθε κατάσταση που έχει παραχθεί θα πρέπει να αποθηκεύεται στη μνήμη, καταλήγοντας πιθανότατα σε μια πολυπλοκότητα χώρου 0 (bd ). Είναι καλύτερα να το σκεφτούμε αυτό σαν 0(s), όπου s είναι το πλήθος των καταστάσεων σε ολόκληρο το χώρο καταστάσεων. Για να σχεδιαστεί αυτή η τελευταία επιλογή, οι αλγόριθμοι αναζήτησης συχνά χρησιμοποιούν έναν πίνακα hash που αποθηκεύει όλους τους κόμβους που έχουν παραχθεί. Αυτό κάνει τον έλεγχο για επαναλαμβανόμενες καταστάσεις αρκετά αποτελεσματικό. Η σχέση μεταξύ του κόστους της αποθήκευσης και του ελέγχου και του κόστους της παραπάνω αναζήτησης εξαρτάται απ το πρόβλημα: όσο πιο πολύπλοκος είναι ο χώρος καταστάσεων, τόσο πιο πιθανό είναι ότι ο έλεγχος αυτός θα αποδώσει. Εικόνα 1.19 Ενας χώρος καταστάσεων ο οποίος παράγει ένα εκθετικά μεγαλύτερο δέντρο αναζήτησης. Η αριστερή πλευρά δείχνει ένα χώρο κατάστασης, στον οποίον υπάρχουν δύο πιθανές ενέργειες από το Α στο Β, δύο από το Β στο C, κοκ Η δεξιά πλευρά δείχνει το δέντρο αναζήτησης που αντιστοιχεί 37

38 1. 7 Αναζήτηση Ικανοποίησης Περιορισμών Ένα πρόβλημα ικανοποίησης περιορισμών (ή CSP) είναι ένα ιδιαίτερο είδος προβλήματος που ικανοποιεί μερικές επιπρόσθετες δομικές ιδιότητες πέρα από τις βασικές απαιτήσεις των προβλημάτων γενικά. Σε ένα CSP οι καταστάσεις ορίζονται από τις τιμές ενός συνόλου μεταβλητών και ο έλεγχος της τελικής κατάστασης καθορίζει ένα σύνολο περιορισμών στους οποίους θα υπόκεινται οι τιμές. Για παράδειγμα, το πρόβλημα των 8 Βασιλισσών μπορεί να θεωρηθεί σαν CSP στο οποίο οι μεταβλητές είναι οι θέσεις καθεμιάς από τις οχτώ βασίλισσες, οι πιθανές τιμές είναι τετράγωνα πάνω στη σκακιέρα, και οι περιορισμοί λένε ότι δύο βασίλισσες δεν μπορούν να είναι στην ίδια γραμμή, στήλη ή διαγώνιο. Μια λύση στο CSP καθορίζει τιμές για όλες τις μεταβλητές έτσι ώστε να ικανοποιούνται οι περιορισμοί! Πολλά είδη προβλημάτων σχεδίασης και προγραμματισμού μπορούν να εκφραστούν σαν CSP, έτσι δημιουργούν μια πολύ σημαντική υποκατηγορία. Τα CSP μπορούν να επιλυθούν με αλγορίθμους αναζήτησης γενικού σκοπού, αλλά εξαιτίας της ειδικής τους δομής, οι αλγόριθμοι που σχεδιάζονται ειδικά για CSP γενικά έχουν πολύ καλύτερες αποδόσεις. Οι περιορισμοί ποικίλουν. Οι μοναδικοί περιορισμοί αφορούν την τιμή μιας μοναδικής μεταβλητής. Για παράδειγμα, οι μεταβλητές που αναφέρονται στο ψηφίο που βρίσκεται πιο αριστερά σε οποιαδήποτε γραμμή σε ένα κρυπταριθμητικό πάζλ δεν πρέπει να παίρνουν ποτέ τιμή 0. Οι δυαδικοί περιορισμοί αναφέρονται σε ζεύγη μεταβλητών. Οι περιορισμοί των 8 Βασιλισσών είναι όλοι δυαδικοί περιορισμοί. Οι περιορισμοί υψηλότερης τάξης αφορούν τρεις ή περισσότερες μεταβλητές για παράδειγμα, οι στήλες στο κρυπταριθμητικό πρόβλημα θα πρέπει να υπόκεινται σε έναν περιορισμό πρόσθεσης που μπορεί να αφορά αρκετές μεταβλητές. Τέλος, οι περιορισμοί μπορεί να είναι απόλυτοι περιορισμοί, η καταπάτηση των οποίων απορρίπτει μια πιθανή λύση, ή περιορισμοί προτίμησης που λένε ποιες λύσεις προτιμούνται. Κάθε μεταβλητή Vi σε ένα CSP έχει έναν χώρο Di που είναι ένα σύνολο πιθανών τιμών που μπορεί να έχει η μεταβλητή. Ο χώρος μπορεί να είναι διακριτός ή συνεχής. Στο σχεδιασμό ενός αυτοκινήτου για παράδειγμα, οι μεταβλητές μπορεί να περιλαμβάνουν συστατικά βάρη (συνεχή) και συστατικούς κατασκευαστές (διακριτούς). Ένας μοναδικός περιορισμός καθορίζει το αποδεκτό υποσύνολο του χώρου m ένας δυαδικός περιορισμός ανάμεσα σε δύο μεταβλητές καθορίζει το αποδεκτό υποσύνολο του προϊόντος διασταύρωσης των δύο χώρων. Σε διακριτά CSP όπου οι χώροι είναι πεπερασμένοι, οι περιορισμοί μπορεί να αναπαρίστανται απλά απαριθμώντας τους επιτρεπτούς συνδυασμούς τιμών. Για παράδειγμα, στο πρόβλημα των 8 Βασιλισσών, θεωρούμε ότι V1 είναι η γραμμή που καταλαμβάνει η πρώτη βασίλισσα στην πρώτη στήλη, και V2 είναι η γραμμή που καταλαμβάνει η δεύτερη βασίλισσα στη δεύτερη στήλη. Οι χώροι V1 και V2 είναι (1,2,3,4,5,6,7,8). Ο περιορισμός μη-επίθεσης που συνδέει τους V1 και V2 μπορεί να αναπαρασταθεί από ένα σύνολο ζευγαριών επιτρεπτών τιμών για V1 και V2 {<1,3>, <1,4>, <1,5>,.<2,4>, <2,5>,.} κ.ο.κ. Συνολικά, οι περιορισμοί μη επίθεσης μεταξύ των V1 και V2 αποκλείουν 22 από τους 64 πιθανούς 38

39 συνδυασμούς. Χρησιμοποιώντας την ιδέα της απαρίθμησης, κάθε διακριτό CSP μπορεί να γίνει ένα δυαδικό CSP. Οι περιορισμοί που αφορούν συνεχείς μεταβλητές δεν μπορούν να απαριθμηθούν με αυτόν τον τρόπο, και η επίλυση των συνεχών CSP απαιτεί πιο πολύπλοκη άλγεβρα. Θα ασχοληθούμε μόνο με διακριτούς, απόλυτους και δυαδικούς (ή μοναδικούς) περιορισμούς. Τέτοιου είδους περιορισμοί είναι επαρκείς για να χειριστούν μια μεγάλη ποικιλία προβλημάτων και να εισηγηθούν τις περισσότερες απ τις πιο πάνω ενδιαφέρουσες μεθόδους επίλυσης. Ας θεωρήσουμε πρώτα πως μπορούμε να εφαρμόσουμε έναν αλγόριθμο αναζήτησης γενικού σκοπού σε ένα CSP. Η αρχική κατάσταση θα είναι η κατάσταση στην οποία όλες οι μεταβλητές θα είναι κενές. Οι τελεστές θα θέσουν μια τιμή σε κάθε μεταβλητή από ένα σύνολο πιθανών τιμών. Ο έλεγχος τελικής κατάστασης θα δει εάν σε όλες τις μεταβλητές έχει ανατεθεί μια τιμή και αν ικανοποιούνται οι περιορισμοί. Παρατηρείστε ότι το μέγιστο βάθος ενός δέντρου αναζήτησης είναι σταθερά n, ο αριθμός των μεταβλητών και όλες οι λύσεις είναι βάθους n. Γι αυτό είμαστε ασφαλείς στο να χρησιμοποιήσουμε μια αναζήτηση πρώτα σε βάθος, καθώς δεν υπάρχει κίνδυνος να πάμε πολύ βαθιά, και δεν απαιτείται κάποιος αυθαίρετος περιορισμός βάθους. Στον πιο απλοϊκό σχεδιασμό, σε κάθε κενή μεταβλητή σε μια δεδομένη κατάσταση μπορεί να δοθεί μια τιμή από έναν τελεστή, σ αυτή την περίπτωση ο παράγοντας διακλάδωσης θα ήταν ίσος με Σi Di ή 64 στο πρόβλημα των 8-Βασιλισσών. Μια καλύτερη προσέγγιση είναι να εκμεταλλευτούμε το γεγονός ότι η σειρά με την οποία γίνεται η ανάθεση των μεταβλητών δεν παίζει κανένα ρόλο στην τελική λύση. Γι αυτό το λόγο, σχεδόν όλοι οι CSP αλγόριθμος παράγουν απογόνους επιλέγοντας τιμές για μια μοναδική μεταβλητή σε κάθε κόμβο. Για παράδειγμα, στο πρόβλημα των 8 Βασιλισσών, κάποιος μπορεί να αναθέσει ένα τετράγωνο για την πρώτη βασίλισσα στο επίπεδο 0, για τη δεύτερη βασίλισσα στο επίπεδο 1 κ.ο.κ. Αυτό έχει σαν αποτέλεσμα έναν χώρο αναζήτησης μεγέθους Πi Di ή 88 στο πρόβλημα των 8-βασιλισσών. Μια αναζήτηση πρώτα σε βάθος θα εξετάσει όλες αυτές τις πιθανότητες. Επειδή τα CSP περιλαμβάνουν σαν ειδικές περιπτώσεις μερικά γνωστά NP ολοκληρωμένα προβλήματα όπως τα 3-SAT, δεν μπορούμε να περιμένουμε να τα πάμε καλύτερα απ ότι η εκθετική πολυπλοκότητα στη χειρότερη περίπτωση. Στα περισσότερα πραγματικά προβλήματα, μπορούμε να επωφεληθούμε απ τη δομή του προβλήματος για να αφαιρέσουμε ένα μεγάλο κλάσμα του χώρου αναζήτησης. Η αρχική πηγή δομής στο χώρο του προβλήματος είναι ότι στα CSP ο έλεγχος τελικής κατάστασης υποδιαιρείται σε ένα σύνολο περιορισμών των μεταβλητών παρά το να είναι ένα «μαύρο κουτί». H αναζήτηση πρώτα σε βάθος σε ένα CSP σπαταλάει χρόνο ψάχνοντας πότε οι περιορισμοί έχουν παραβιαστεί. Εξ αιτίας του τρόπου με τον οποίο έχουν οριστεί οι τελεστές, ένας τελεστής δεν μπορεί να επαναφέρει έναν περιορισμό που έχει ήδη παραβιαστεί. Για παράδειγμα, ας υποθέσουμε, ότι βάζουμε τις δύο πρώτες βασίλισσες στην πάνω σειρά. Η αναζήτηση πρώτα σε βάθος θα εξετάσει 86 πιθανές θέσεις για τις υπόλοιπες έξι βασίλισσες πριν να ανακαλύψει ότι δεν υπάρχει λύση σ αυτό το υποδέντρο. Η πρώτη μας βελτίωση είναι να εισάγουμε έναν έλεγχο πριν το βήμα παραγωγής 39

40 απογόνου σχετικά με το αν έχει παραβιαστεί κάποιος περιορισμός από τις αναθέσεις τιμών στις μεταβλητές μέχρι εκείνο το σημείο. Το αποτέλεσμα είναι ένας αλγόριθμος που ονομάζεται αντίστροφη καταχώρηση στη συνέχεια υποχωρεί για να δοκιμάσει κάτι άλλο. Η αντίστροφη καταχώρηση έχει κάποια φανερά μειονεκτήματα. Υποθέστε ότι τα τετράγωνα που επιλέχτηκαν για τις πρώτες έξι βασίλισσες κάνουν αδύνατο το να τοποθετήσουμε την όγδοη βασίλισσα διότι επιτίθεται οχτώ τετράγωνα στην τελευταία στήλη. Ο έλεγχος προς τα πίσω θα προσπαθήσει όλες τις πιθανές θέσεις για την έβδομη βασίλισσα ακόμα και αν το πρόβλημα έχει αποδειχτεί άλυτο με δοσμένες τις 6 πρώτες επιλογές. Ο έλεγχος προς τα μπρος αποφεύγει το πρόβλημα κοιτάζοντας προς τα μπρος για να ανιχνεύσει θέμα μη επίλυσης. Κάθε φορά που μια μεταβλητή αρχικοποιείται, ο έλεγχος προς τα μπρος διαγράφει από το χώρο των μη αρχικοποιημένων μεταβλητών όλες αυτές τις τιμές που έρχονται σε σύγκρουση, με τις μεταβλητές που έχουν ανατεθεί μέχρι τώρα. Εάν κάποιος από τους χώρους αδειάσει, τότε η αναζήτηση οπισθοχωρεί αμέσως. Ο έλεγχος προς τα εμπρός συχνά πηγαίνει πιο γρήγορα απ ότι η αντίστροφη καταχώρηση κι είναι πολύ εύκολο να σχεδιαστεί. Ο έλεγχος προς τα εμπρός είναι μια ειδική περίπτωση ελέγχου συνοχής τόξου. Μια κατάσταση έχει συνοχή τόξου εάν κάθε μεταβλητή έχει μια τιμή στο χώρο της και αυτή είναι συνεκτική με κάθε έναν απ τους περιορισμούς σε εκείνη τη μεταβλητή. Η συνοχή τόξου μπορεί να επιτευχθεί με διαδοχική διαγραφή των τιμών που δεν συμφωνούν με κάποιο περιορισμό. Καθώς οι τιμές διαγράφονται, άλλες τιμές μπορεί να μη συμφωνούν επίσης ακριβώς επειδή στηρίχτηκαν σε κάποια από τις διαγραφείσες τιμές. Γι αυτό το λόγο η συνεκτικότητα τόξου επιδεικνύει μια μορφή αναπαραγωγής περιορισμών καθώς οι επιλογές περιορίζονται σταδιακά. Σε μερικές περιπτώσεις, το να επιτευχθεί συνεκτικότητα τόξου είναι αρκετό για να επιλύσουμε τελείως το πρόβλημα διότι οι χώροι όλων των μεταβλητών φτάνουν σε μοναδικές τιμές. Η συνεκτικότητα τόξου συχνά χρησιμοποιείται σαν προδιαδικαστικό βήμα, αλλά μπορεί επίσης να χρησιμοποιηθεί κατά τη διάρκεια της αναζήτησης. Πολύ καλύτερα αποτελέσματα μπορούν συχνά να επιτευχθούν με προσεκτική επιλογή της μεταβλητής που θα αρχικοποιηθεί καθώς επίσης και της τιμής που θα χρησιμοποιηθεί. 1.8 Περίληψη Σε αυτή την ενότητα έγινε εισαγωγή μεθόδων που μπορεί να χρησιμοποιήσει ένας πράκτορας όταν δεν είναι ξεκάθαρο ποια άμεση ενέργεια είναι η καλύτερη. Σε τέτοιες περιπτώσεις, ο πράκτορας μπορεί να θεωρήσει πιθανές ακολουθίες ενεργειών, αυτή η διαδικασία λέγεται αναζήτηση. Πριν να μπορέσει ένας πράκτορας να αρχίσει να ψάχνει για λύσεις, πρέπει να σχηματοποιήσει ένα στόχο και μετά να χρησιμοποιήσει το στόχο για να σχηματοποιήσει ένα πρόβλημα. 40

41 Ένα πρόβλημα περιλαμβάνει τέσσερα μέρη: την αρχική κατάσταση, ένα σύνολο τελεστών, μια συνάρτηση ελέγχου τελικής κατάστασης, και μια συνάρτηση κόστους μονοπατιού. Το περιβάλλον του προβλήματος αναπαρίσταται από έναν χώρο καταστάσεων. Το μονοπάτι στο χώρο των καταστάσεων από την αρχική κατάσταση στην τελική κατάσταση είναι η λύση. Στον πραγματικό κόσμο, τα περισσότερα προβλήματα δεν είναι σωστά ορισμένα, αλλά με κάποια ανάλυση, πολλά προβλήματα μπορούν να προσαρμοστούν στο μοντέλο του χώρου καταστάσεων. Ένας μοναδικός αλγόριθμος γενικής αναζήτησης μπορεί να χρησιμοποιηθεί για να επιλύσει οποιοδήποτε πρόβλημα, διαφορετικές παραλλαγές του αλγορίθμου ενσωματώνουν διαφορετικές στρατηγικές. Οι αλγόριθμοι αναζήτησης κρίνονται με βάση την ολοκληρωσιμότητα, τη βελτιστοποίηση, την πολυπλοκότητα χρόνου και την πολυπλοκότητα χώρου. Η πολυπλοκότητα εξαρτάται από το b, τον παράγοντα διακλάδωσης στο χώρο καταστάσεων και το d, το βάθος της πιο ρηχής λύσης. Η αναζήτηση πρώτα σε πλάτος επεκτείνει πρώτα τον πιο ρηχό κόμβο στο δέντρο αναζήτησης. Είναι ολοκληρωμένη, βέλτιστη για τελεστές ίδιου κόστους κι έχει πολυπλοκότητα χρόνου και χώρου 0(bd). Η πολυπλοκότητα χώρου την κάνει μη πρακτική στις περισσότερες περιπτώσεις. Η αναζήτηση ομοιόμορφου κόστους επεκτείνει πρώτα το φύλλο κόμβο με το λιγότερο κόστος. Είναι ολοκληρωμένη και σε αντίθεση με την αναζήτηση πρώτα σε βάθος είναι βέλτιστη ακόμα και με τελεστές που έχουν διαφορετικό κόστος. Η πολυπλοκότητα χώρου και χρόνου είναι ίδιες όπως και στην αναζήτηση πρώτα σε βάθος. Η αναζήτηση πρώτα σε βάθος επεκτείνει πρώτα τον πιο βαθύ κόμβο στο δέντρο αναζήτησης. Δεν είναι ούτε βέλτιστη, ούτε ολοκληρωμένη, κι έχει πολυπλοκότητα χρόνου 0(bm) και πολυπλοκότητα χώρου O(bm). Όπου m είναι το μέγιστο βάθος. Στα δέντρα αναζήτησης μεγάλου ή απείρου βάθους, η πολυπλοκότητα χρόνου γίνεται μη-πρακτική. Η περιορισμένη αναζήτηση σε βάθος βάζει ένα όριο ως προς το πόσο βαθιά μια αναζήτηση πρώτα σε βάθος μπορεί να πάει. Εάν αυτό το όριο είναι ίσο με το βάθος της πιο ρηχής τελικής κατάστασης, τότε η πολυπλοκότητα χρόνου και χώρου ελαχιστοποιούνται. Η επαναληπτική αναζήτηση σε βάθος κάνει την περιορισμένη αναζήτηση σε βάθος με αυξημένα όρια μέχρι να βρεθεί μια τελική κατάσταση. Είναι ολοκληρωμένη και βέλτιστη, κι έχει πολυπλοκότητα χρόνου 0(bd) και πολυπλοκότητα χώρου 0(bd). Η αναζήτηση διπλής κατεύθυνσης μπορεί να μειώσει σημαντικά την πολυπλοκότητα χρόνου, αλλά δεν είναι πάντα εφαρμόσιμη. 41

42 2. ΕΝΗΜΕΡΩΜΕΝΕΣ ΜΕΘΟΔΟΙ ΑΝΑΖΗΤΗΣΗΣ Θα δούμε πως η πληροφορία σχετικά με το χώρο καταστάσεων μπορεί να εμποδίσει τους αλγ ορίθμους απ το να συγκρούονται στο σκοτάδι. 2.1 Αναζήτηση του Πρώτου Καλύτερου Το προηγούμενο κεφάλαιο έδειξε ότι οι μη ενημερωμένες στρατηγικές αναζήτησης μπορούν να βρουν λύσεις σε προβλήματα παράγοντας συστηματικά νέες καταστάσεις κι ελέγχοντάς τες σε σχέση με την τελική κατάσταση. Δυστυχώς, αυτές οι στρατηγικές είναι απίστευτα μη αποτελεσματικές στις περισσότερες περιπτώσεις. Αυτή η ενότητα δείχνει πως μια ενημερωμένη στρατηγική αναζήτησης, που χρησιμοποιεί γνώση προσανατολισμένη προς το πρόβλημα, μπορεί να βρεί λύσεις πιο αποτελεσματικά. Επίσης δείχνει πως μπορούν να λυθούν προβλήματα βελτιστοποίησης. Στο κεφάλαιο 1 είδαμε πολλλούς τρόπους για να εφαρμόσουμε γνώση στη διαδικασία σχηματοποίησης ενός προβλήματος με όρους καταστάσεων και τελεστών. Μόλις μας δοθεί ένα καλά ορισμένο πρόβλημα, οι επιλογές μας είναι πιο περιορισμένες. Εάν σκοπεύουμε να χρησιμοποιήσουμε τον αλγόριθμο ΓΕΝΙΚΗ ΑΝΑΖΗΤΗΣΗ, τότε το μόνο μέρος που μπορούμε να εφαρμόσουμε τη γνώση είναι στη συνάρτηση ουράς, η οποία αποφασίζει ποιος κόμβος θα επεκταθεί στη συνέχεια. Συνήθως η γνώση που παίρνει αυτή την απόφαση παρέχεται από μια συνάρτηση αξιολόγησης που επιστρέφει ένα νούμερο που εκφράζει το κατά πόσο είναι επιθυμητό ή όχι να επεκτείνουμε τον κόμβο. Όταν οι κόμβοι είναι έτσι διατεταγμένοι ώστε να επεκτείνεται πρώτος αυτός με την καλύτερη αξιολόγηση, η στρατηγική στην οποία καταλήγουμε λέγεται αναζήτηση του πρώτου καλύτερου. Μπορεί να σχεδιαστεί άμεσα με αλγόριθμο γενικής αναζήτησης όπως φαίνεται στο σχήμα 2.1. Ο όρος αυτός είναι λίγο ανακριβής. Εξάλλου αν μπορούσαμε πραγματικά να επεκτείνουμε πρώτα τον καλύτερο κόμβο, δεν θα πρόκειτο για μια αναζήτηση, θα ήταν μια απευθείας παρέλαση προς την τελική κατάσταση. Αυτό που μπορούμε να κάνουμε, είναι να επιλέξουμε τον κόμβο που φαίνεται να είναι ο καλύτερος σύμφωνα με τη συνάρτηση αξιολόγησης. Εάν η συνάρτηση αξιολόγησης είναι κάτι σαν παντογνώστης, τότε αυτός θα είναι στ αλήθεια και ο καλύτερος κόμβος, στην πραγματικότητα, η συνάρτηση αξιολόγησης μπορεί να μην είναι σωστή κάποιες φορές, κι αυτό να οδηγήσει σε παραπλάνηση την αναζήτηση. Παρ όλα αυτά, θα παραμείνουμε με αυτόν τον όρο, γιατί ο όρος «αναζήτηση του φαινομενικά πρώτου καλύτερου» είναι λίγο άχαρος. Όπως ακριβώς υπάρχει μια ολόκληρη οικογένεια αλγορίθμων ΓΕΝΙΚΗΣ ΑΝΑΖΗΤΗΣΗΣ με διαφορετικές συναρτήσεις διάταξης, έτσι υπάρχει και μια ολόκληρη οικογένεια αλγορίθμων ΑΝΑΖΗΤΗΣΗΣ ΤΟΥ ΠΡΩΤΟΥ ΚΑΛΥΤΕΡΟΥ με διαφορετικές συναρτήσεις αξιολόγησης. 42

43 function BEST-FIRST-SEARCH (problem, EVAL-FN) returns a solution sequence inputs : problem, a problem Eval-Fn, an evaluation function Queueing-Fn a function that orders nodes by EVAL-FN return GENERAL-SEARCH (problem, Queuing-FN) Εικόνα 2.1 Μια υλοποίηση της αναζήτησης του πρώτου καλύτερου χρησιμοποιώντας τον γενικό αλγόριθμο αναζήτησης Επειδή ο στόχος είναι να βρεθούν λύσεις με χαμηλό κόστος, αυτοί οι αλγόριθμοι τυπικά χρησιμοποιούν κάποιο τρόπο εκτίμησης του κόστους της λύσης και προσπαθούν να το ελαχιστοποιήσουν. Έχουμε ήδη δει έναν τέτοιο τρόπο : τη χρήση του κόστους του μονοπατιού g που αποφασίζει ποιο μονοπάτι να επεκτείνει. Αυτός ο τρόπος εκτίμησης, βέβαια, δεν κατευθύνει την αναζήτηση προς την τελική κατάσταση. Για να γίνει αυτό θα πρέπει να ενσωματωθεί και κάποια εκτίμηση του κόστους του μονοπατιού από μια κατάσταση στην πιο κοντινή τελική κατάσταση. Εξετάζουμε δύο βασικές προσεγγίσεις. Η πρώτη προσπαθεί να επεκτείνει τον κόμβο που είναι πιο κοντά προς την τελική κατάσταση. Η δεύτερη προσπαθεί να επεκτείνει τον κόμβο στο μονοπάτι προς τη λύση που έχει το μικρότερο κόστος Η Ιστορία των Ευριστικών Η λέξη «ευριστικός» προέρχεται απ το ελληνικό ρήμα ευρίσκειν, που σημαίνει βρίσκω, ανακαλύπτω. Λέγεται ότι ο Αρχιμήδης έτρεχε γυμνός στο δρόμο φωνάζοντας «Εύρηκα» ανακαλύπτοντας τη βασική αρχή της άνωσης. Η τεχνική σημασία των «Ευριστικών» έχει περάσει από αρκετές αλλαγές στην ιστορία της τεχνητής νοημοσύνης. Το 1957, ο George Polya έγραψε ένα βιβλίο με τίτλο Πώς να το λύσεις. Χρησιμοποιώντας την «ευριστική» για να αναφερθεί στη μελέτη μεθόδων επίλυσης προβλημάτων, ιδιαίτερα προβλημάτων που χρειάζονται μαθηματικές αποδείξεις. Πολλοί χρησιμοποιούν τα ευριστικά σαν το αντίθετο των αλγορίθμων. Για παράδειγμα, οι Newell Saw και Simon δήλωσαν το 1963, «Μια διαδικασία που μπορεί να λύσει ένα δοσμένο πρόβλημα, αλλά δεν προσφέρει εγγυήσεις ότι θα το κάνει, λέγεται ευριστική για αυτό το πρόβλημα». Αλλά σημειώστε ότι δεν υπάρχει τίποτα το τυχαίο ή το μη-ντετερμινιστικό σ έναν αλγόριθμο ευριστικής αναζήτησης: προχωράει με αλγοριθμικά σήματα προς το αποτέλεσμα. Σε κάποιες περιπτώσεις, δεν υπάρχει εγγύηση για το πόσο θα κρατήσει η αναζήτηση, και σε κάποιες περιπτώσεις δεν εγγυάται η ποιότητα της λύσης. Οι ευριστικές τεχνικές είχαν κυριαρχήσει στις πρώτες εφαρμογές της τεχνητής νοημοσύνης. Το πρώτο εργαστήριο «εμπείρων συστημάτων» ονομαζόταν Project Ευριστικού Προγραμματισμού (HPP). Tα ευριστικά χρησιμοποιήθηκαν ευρέως για να παράγουν καλές λύσεις χωρίς εξαντλητική 43

44 αναζήτηση. Στην αρχή είχαν ενσωματωθεί απ ευθείας στη δομή των προγραμμάτων, αλλά τελικά αποδείχτηκαν όχι τόσο προσαρμόσιμα όταν χρειαζόταν μεγάλος αριθμός τους. Σταδιακά, σχεδιάζοντας συστήματα που μπορούσαν να δεχτούν ευριστική πληροφορία με τη μορφή «κανόνων», κι έτσι γεννήθηκαν τα συστήματα που βασίζονται σε κανόνες. Πρόσφατα, χρησιμοποιούνται τα ευριστικά σαν αντικείμενο που βοηθάει το μέσο όρο απόδοσης. Στον τομέα των αλγορίθμων αναζήτησης, αναφέρεται σε μια συνάρτηση που παρέχει μια εκτίμηση του κόστους της λύσης Ελαχιστοποίηση του αναμενόμενου κόστους προς την τελική κατάσταση : Αχόρταγη Αναζήτηση Μια από τις πιο απλές στρατηγικές αναζήτηση του πρώτου καλύτερου είναι να ελαχιστοποιηθεί το κόστος προς την τελική κατάσταση. Αυτό σημαίνει ότι ο κόμβος του οποίου η κατάσταση κρίνεται ότι είναι πιο κοντά προς την τελική κατάσταση επεκτείνεται πρώτος. Για τα περισσότερα προβλήματα, το κόστος του να φτάσεις σε μια τελική κατάσταση από μια άλλη κατάσταση μπορεί να εκτιμηθεί αλλά δεν μπορεί να υπολογισθεί ακριβώς. Μια συνάρτηση που υπολογίζει τέτοιου είδους κόστη ονομάζεται ευριστική συνάρτηση, και συνήθως συμβολίζεται με το γράμμα h : h(n) =το εκτιμηθέν κόστος του φθηνότερου μονοπατιού από την κατάσταση στον κόμβο n σε μια τελική κατάσταση. Mια αναζήτηση του πρώτου καλύτερου που χρησιμοποιεί το h για να επιλέξει τον επόμενο κόμβο που θα επεκτείνει λέγεται αχόρταγη αναζήτηση, για λόγους που θα γίνουν αργότερα κατανοητοί. Με δεδομένη μια ευριστική συνάρτηση h, ο κώδικας για την αχόρταγη αναζήτηση είναι ο ακόλουθος: Το h μπορεί να είναι μια οποιαδήποτε συνάρτηση. Θα χρειαστούμε μόνο το function GREEDY-SEARCH (problem ) returns a solution or failure return BEST-FIRST-SEARCH (problem, h) h(n)=0 εάν το n είναι μια τελική κατάσταση. Για να πάρουμε μια ιδέα με το τι μοιάζει μια ευριστική συνάρτηση, χρειάζεται να επιλέξουμε ένα συγκεκριμένο πρόβλημα, επειδή οι ευριστικές συναρτήσεις είναι προσανατολισμένες προς το πρόβλημα. Ας επιστρέψουμε στο πρόβλημα εύρεση διαδρομής απ το Arad στο Bucharest. O χάρτης για αυτό το πρόβλημα επαναλαμβάνεται στην εικόνα

45 Μια καλή ευριστική συνάρτηση για προβλήματα εύρεσης διαδρομής είναι η απόσταση απ ευθείας γραμμής (straight line distance) προς την τελική κατάσταση: hsld (n) =απόσταση απ ευθείας γραμμής ανάμεσα στο n και της τοποθεσίας τελικής κατάστασης. Εικόνα 2.2 Ο χάρτης της Ρουμανίας με αποστάσεις δρόμων σε χιλιόμετρα, και κατευθείαν γραμμές προς το Bucharest Παρατηρείστε ότι μπορούμε να υπολογίσουμε τις τιμές της hsld μόνο αν ξέρουμε τις συντεταγμένες των πόλεων στη Ρουμανία. Η hsld είναι χρήσιμη γιατί ο δρόμος απ το Α στο Β έχει την τάση να κατευθύνεται λίγο ή πολύ προς τη σωστή κατεύθυνση. Αυτό είναι το είδος της παραπάνω πληροφορίας που επιτρέπουν στην ευριστική να ελαττώσει το κόστος αναζήτησης. Η εικόνα 2.3 δείχνει την πρόοδο μιας αχόρταγης αναζήτησης που ψάχνει για ένα μονοπάτι απ το Arad στο Bucharest. Με την ευριστική συνάρτηση απόστασης απ ευθείας γραμμής, ο πρώτος κόμβος που επεκτείνεται απ το Arad θα είναι το Sibiu, διότι είναι πιο κοντά στο Bucharest απ ότι το Zerind ή η Timisoara. O επόμενος κόμβος που θα επεκταθεί είναι το Fagaras, γιατί είναι επίσης πιο κοντά. To Fagaras με τη σειρά του παράγει το Bucharest που είναι η τελική κατάσταση. Γι αυτό το συγκεκριμένο πρόβλημα, η ευριστική οδηγεί σε ελάχιστο κόστος αναζήτησης: βρίσκει τη λύση χωρίς να επεκτείνει ούτε ένα κόμβο που δεν είναι στο μονοπάτι της λύσης. Παρ όλα αυτά δεν είναι βέλτιστη: το μονοπάτι που βρήκε μέσω Sibiu και Fagaras στο Bucharest είναι 32 χιλιόμετρα μακρύτερο απ το μονοπάτι μέσω του Rimnicu Vilcea και του Pitesti. Από το μονοπάτι δεν βρέθηκε διότι το Fagaras είναι πιο κοντά στο Bucharest στην απόσταση της απ ευθείας γραμμής, απ ότι το Rimnicu Vilcea, οπότε επεκτάθηκε πρώτο. Η στρατηγική προτιμά να πάρει το μεγαλύτερο μέρος του κόστους που απομένει για να φτάσει στη λύση, χωρίς να νοιάζεται για το αν θα είναι μακροπρόθεσμα η καλύτερη τακτική, γι αυτό και λέγεται και «αχόρταγη αναζήτηση» Παρ ότι η απληστία είναι ένα απ τα 7 θανάσιμα αμαρτήματα, αποδεικνύεται ότι οι αλγόριθμοι αυτοί τα πάνε αρκετά καλά. Έχουν 45

46 την τάση να βρίσκουν γρήγορα λύσεις, παρ ότι μπορεί να μην είναι βέλτιστες, είναι απλά οι άμεσες καλύτερες λύσεις. Η αχόρταγη αναζήτηση είναι επιρρεπής στα λάθος ξεκινήματα. Θεωρείστε το πρόβλημα της διαδρομής απ το Iasi στο Fagaras. Η ευριστική προτείνει ότι το Neamt θα πρέπει να επεκταθεί πρώτο, αλλά αυτό καταλήγει σε αδιέξοδο. Η λύση είναι να πάει πρώτα προς το Vaslui- ένα βήμα που είναι πραγματικά πιο μακριά από την τελική κατάσταση με βάση την ευριστική συνάρτηση και στη συνέχεια να πάει προς το Urziceni, το Bucharest και το Fagaras. Σ αυτή την περίπτωση, η ευριστική προκαλεί την επέκταση περιττών κόμβων. Επιπλέον, αν δεν είμαστε προσεκτικοί για να ανιχνεύσουμε επαναλαμβανόμενες καταστάσεις, η λύση δεν θα βρεθεί ποτέ, η αναζήτηση θα αιωρείται ανάμεσα στο Neamt και στο Iasi. Εικόνα 2.3 Στάδια σε μία αχόρταγη αναζήτηση για το Bucharest, χρησιμοποιώντας την απευθείας γραμμή στο Bucharest σαν την ευριστική συνάρτηση hsld. Στους κόμβους αναφέρονται οι h-τιμές τους. Η αχόρταγη αναζήτηση μοιάζει με την αναζήτηση πρώτα σε βάθος ως προς τον τρόπο που προτιμά να ακολουθεί ένα μοναδικό μονοπάτι μέχρι το τέλος. Θα βρει όμως τρόπο υποστήριξης αν βρεθεί σε αδιέξοδο. Έχει τα ίδια μειονεκτήματα με την αναζήτηση πρώτα σε βάθος δεν είναι βέλτιστη, ούτε ολοκληρωμένη διότι μπορεί να ξεκινήσει ένα ατελείωτο μονοπάτι και να μην επιστρέψει ποτέ για να δοκιμάσει άλλες δυνατότητες. Η χειρότερη περίπτωση πολυπλοκότητας χρόνου για την αχόρταγη αναζήτηση είναι O(bm), όπου m είναι το μέγιστο βάθος του χώρου αναζήτησης. Επειδή η αχόρταγη αναζήτηση κρατάει όλους τους κόμβους στη μνήμη, η πολυπλοκότητα χώρου είναι ίδια με την πολυπλοκότητα χρόνου. Με μια καλή ευριστική συνάρτηση, 46

47 η πολυπλοκότητες χώρου και χρόνου μπορούν να μειωθούν σημαντικά. Το ποσό της μείωσης εξαρτάται απ το συγκεκριμένο πρόβλημα και την ποιότητα της συνάρτησης h Ελαχιστοποιώντας το Συνολικό Κόστος Μονοπατιού : Αναζήτηση Α * Η αχόρταγη αναζήτηση ελαχιστοποιεί το εκτιμηθέν κόστος προς την τελική κατάσταση, h(n) κι ελαττώνει το κόστος αναζήτησης σημαντικά. Δυστυχώς, δεν είναι ούτε βέλτιστη, ούτε ολοκληρωμένη. Η αναζήτηση ομοιόμορφου κόστους, απ την άλλη πλευρά, ελαχιστοποιεί το κόστος του μονοπατιού, g(n) είναι βέλτιστη κι ολοκληρωμένη αλλά μπορεί να είναι και πολύ αναποτελεσματική. Θα ήταν καλό να συνδυάσουμε και τις δύο στρατηγικές, για να πάρουμε τα θετικά και από τις δύο. Ευτυχώς, μπορούμε να το κάνουμε, συνδυάζοντας τις δύο συναρτήσεις αξιολόγησης, απλά προσθέτοντάς τες: f (n) = g (n) + h (n) Εφ όσον η g(n) δίνει το κόστος του μονοπατιού απ τον αρχικό κόμβο ως τον κόμβο n και το h(n) είναι το εκτιμηθέν κόστος του πιο φτηνού μονοπατιού από το n στην τελική κατάσταση, έχουμε : f(n) = εκτιμηθέν κόστος της πιο φτηνής λύσης μέσω του n Επιπλέον, εάν προσπαθούμε να βρούμε την πιο φτηνή λύση, ένα λογικό πράγμα είναι να προσπαθήσουμε πρώτα με τον κόμβο που έχει τη μικρότερη τιμή f. Το ευχάριστο με αυτή τη στρατηγική είναι ότι είναι υπέρ του δέοντος λογική. Μπορούμε πραγματικά να αποδείξουμε ότι είναι ολοκληρωμένη και βέλτιστη, με ένα μικρό περιορισμό μόνο στη συνάρτηση h. Ο περιορισμός είναι να επιλέξουμε μια συνάρτηση h η οποία ποτέ δεν υπερεκτιμά το κόστος για να φτάσει κανείς στην τελική κατάσταση. Μια τέτοια συνάρτηση h ονομάζεται αποδεκτή ευριστική. Οι αποδεκτές ευριστικές είναι από τη φύση τους αισιόδοξες, διότι πιστεύουν ότι το κόστος επίλυσης του προβλήματος είναι λιγότερο απ ότι φαίνεται ότι είναι. Η αισιοδοξία αυτή μεταφέρεται και στη συνάρτηση f επίσης: Εάν η h είναι αποδεκτή, η f(n) ποτέ δεν υπερεκτιμά το πραγματικό κόστος της καλύτερης λύσης μέσω n. H αναζήτηση του πρώτου καλύτερου που χρησιμοποιεί την f σαν συνάρτηση αξιολόγησης και μια αποδεκτή h συνάρτηση είναι γνωστή σαν Αναζήτηση Α* function A*-SEARCH (problem) returns a solution or failure return BEST-FIRST-SEARCH (problem, g+h) 47

48 Ίσως το πιο προφανές παράδειγμα μιας αποδεκτής ευριστικής συνάρτησης είναι η απόσταση απ ευθείας γραμμής hsld που χρησιμοποιήσαμε για να φτάσουμε στο Bucharest. Η απόσταση απ ευθείας γραμμής είναι αποδεκτή γιατί το πιο σύντομο μονοπάτι ανάμεσα σε δύο σημεία είναι η ευθεία γραμμή. Στην εικόνα 2.4 δείχνουμε τα πρώτα λίγα βήματα μιας αναζήτησης Α* για το Bucharest χρησιμοποιώντας την ευριστική hsld. Παρατηρείστε ότι η αναζήτηση Α* προτιμά να επεκταθεί απ το Rimmicu Vilcea αντί για το Fagaras. Αν και το Fagaras είναι πιο κοντά στο Bucharest, το μονοπάτι που ακολουθείται για να φτάσουμε στο Fagaras δεν είναι τόσο αποτελεσματικό για να φτάσουμε στο Bucharest όσο το μονοπάτι που ακολουθείται για το Rimicu H συμπεριφορά της αναζήτησης Α* Πριν αποδείξουμε την ολοκληρωσιμότητα και τη βελτιστοποίηση της Α *, θα είναι χρήσιμο να δούμε μια εικόνα του πως δουλεύει. Αυτή η εικόνα δεν είναι υποκατάστατο της απόδειξης, αλλά είναι συχνά ευκολότερο για να θυμόμαστε και μπορεί να χρησιμοποιηθεί για να παράγει την απόδειξη που θα ζητηθεί. Κατ αρχήν, μια προκαταρκτική παρατήρηση: εάν εξετάσετε τα δέντρα αναζήτησης στην εικόνα 2.4, θα παρατηρήσετε ένα ενδιαφέρον φαινόμενο. Κατά μήκος οποιουδήποτε μονοπατιού από την κορυφή, το κόστος της f δεν μειώνεται ποτέ. Αυτό δεν είναι τυχαίο. Ισχύει για όλες σχεδόν τις αποδεκτές ευριστικές. Αυτές οι ευριστικές λέγεται ότι επιδεικνύουν μονοτονία. Εάν η ευριστική δεν είναι μονοτονική, μπορούμε να κάνουμε μια μικρή διόρθωση που αποκαθιστά τη μονοτονικότητα. Ας θεωρήσουμε δύο κόμβους n και n όπου το n είναι ο πρόγονος του n. Τώρα υποθέστε για παράδειγμα, ότι g(n)=3 και h(n)=4. Tότε f(n) = g(n) + h(n) =7, άρα ξέρουμε ότι το πραγματικό κόστος του μονοπατιού μιας λύσης είναι τουλάχιστον 7. Yποθέστε επίσης ότι g(n ) =4 και h(n ) =2 οπότε f(n ) =6. Αυτό είναι ένα καθαρό παράδειγμα μιας μη-μονοτονικής ευριστικής. Εικόνα 1.4 Στάδια σε μία αναζήτηση Α* για το Bucharest. Οι κόμβοι έχουν τιν τιμή της f = g + h. Οι τιμές του h είναι οι αευθείας αποστάσεις για το Bucharest, τις οποίες παίρνουμε από το σχήμα

49 Eυτυχώς απ το γεγονός ότι οποιοδήποτε μονοπάτι μέσω του n είναι επίσης ένα μονοπάτι μέσω του n μπορούμε να δούμε ότι η τιμή 6 είναι χωρίς σημασία, διότι ήδη ξέρουμε ότι το πραγματικό κόστος είναι τουλάχιστον 7. Επιπλέον θα πρέπει να ελέγξουμε κάθε φορά που παράγουμε ένα νέο κόμβο, εάν το κόστος της f είναι μικρότερο απ το κόστος του προγόνου της f εάν είναι χρησιμοποιούμε το κόστος της f του προγόνου: f(n ) = max (f(n), g(n ) + h (n ) ) Μ αυτόν που τρόπο αγνοούμε τις παραπλανητικές τιμές που μπορεί να έχουμε με μια μη μονοτονική ευριστική. Αυτή η εξίσωση αποκαλείται εξίσωση του μέγιστου μονοπατιού. Εάν τη χρησιμοποιήσουμε, τότε η f δεν θα μειώνεται σε όποιο μονοπάτι από την κορυφή, δεδομένου ότι η h είναι αποδεκτή. Ο λόγος που κάνουμε αυτή την παρατήρηση, είναι για να συγκεκριμενοποιήσουμε την εικόνα του τι κάνει η Α*. Εάν η f δεν μειώνεται ποτέ κατά μήκος οποιουδήποτε μονοπατιού από την κορυφή, μπορούμε να σχεδιάσουμε περιγράμματα στο χώρο καταστάσεων. Η εικόνα 2.5 είναι ένα παράδειγμα. Μέσα απ το περίγραμμα που έχει ετικέττα 400, όλοι οι κόμβοι έχουν f(n) μικρότερο ή ίσο του 400 κ.ο.κ. Επειδή η Α* επεκτείνει τον κόμβο-φύλλο της μικρότερης f, μπορούμε να δούμε ότι η αναζήτηση Α* απλώνεται σε σχήμα βεντάλιας απ τον αρχικό κόμβο, προσθέτοντας κόμβους σε συγκεντρωτικές περιφέρειες αυξανόμενης τιμής κόστους της f. Mε αναζήτηση ομοιόμορφου κόστους (Αναζήτηση Α* που χρησιμοποιεί h =0), οι περιφέρειες θα είναι κυκλικές γύρω από την αρχική κατάσταση. Με πιο ακριβείς ευριστικές οι περιφέρειες θα τεντώσουν προς την τελική κατάσταση και θα συγκεντρωθούν γύρω απ το βέλτιστο μονοπάτι. Εάν ορίσουμε την f * σαν το κόστος του μονοπατιού της βέλτιστης λύσης, τότε μπορούμε να πούμε τα ακόλουθα: η Α* επεκτείνει όλους τους κόμβους με f (n) < f * η Α* μπορεί στη συνέχεια να επεκτείνει μερικούς από τους κόμβους δεξιά απ το «περίγραμμα τελικής κατάστασης», για το οποίο f(n) = f *, πριν να επιλεχθεί ένας κόμβος τελικής κατάστασης. Διαισθητικά, είναι φανερό ότι η πρώτη λύση που βρέθηκε πρέπει να είναι η βέλτιστη, επειδή οι κόμβοι στα διαδοχικά περιγράμματα έχουν υψηλότερο κόστος της f, άρα και μεγαλύτερο κόστος της g (επειδή όλες οι τελικές καταστάσεις έχουν h (n) =0) Διαισθητικά επίσης, είναι εμφανές ότι η αναζήτηση Α* είναι ολοκληρωμένη. Καθώς προσθέτουμε περιφέρειες αυξανόμενης τιμής της f, θα πρέπει τελικά να φτάσουμε σε μια περιφέρεια όπου n θα είναι ίση με το κόστος του μονοπατιού για μια τελική κατάσταση. Στην επόμενη υποενότητα, θα μετατρέψουμε παρατηρήσεις σε απόδειξη. 49 αυτές τις διαισθητικές

50 Εικόνα 2.5 Χάρτης της Ρουμανίας που δείχνει τα περιγράμματα σε f = 380, f = 400, f = 420, με το Arad σαν την αρχική κατάσταση. Οι κόμβοι μέσα από ένα δεδομένο περίγραμμα, έχουν μικρότερες τιμές της f από τη τιμή του περιγράμματος Μια τελική παρατήρηση ότι μεταξύ βέλτιστων αλγορίθμων αυτού του τύπου αλγορίθμων που επεκτείνουν μονοπάτια από την κορυφή. Ο Α * είναι βέλτιστα αποτελεσματικός για μια οποιαδήποτε ευριστική συνάρτηση. Αυτό σημαίνει ότι κανένας άλλος βέλτιστος αλγόριθμος δεν εγγυάται ότι θα επεκτείνει λιγότερους κόμβους απ ότι ο Α. * Αυτό διότι οποιοσδήποτε αλγόριθμος που δεν επεκτείνει όλους τους κόμβους στα περιγράμματα ανάμεσα στην κορυφή και το τελικό περίγραμμα κινδυνεύει να χάσει τη βέλτιστη λύση Απόδειξη του ότι είναι βέλτιστη η αναζήτηση Α* Ας θεωρήσουμε ότι G είναι η βέλτιστη τελική κατάσταση, με κόστος μονοπατιού f *. Ας θεωρήσουμε ότι η n G2 είναι μια υποβέλτιστη τελική κατάσταση, δηλαδή μια τελική κατάσταση με κόστος μονοπατιού g (G2) > f. H κατάσταση που φανταζόμαστε είναι ότι η Α* επέλεξε την G2 από την ουρά. Επειδή η G2 είναι μια τελική κατάσταση, αυτό θα τερμάτιζε την αναζήτηση με μια υποβέλτιστη λύση (εικόνα 2.6). Θα δείξουμε ότι αυτό δεν είναι δυνατόν. Θεωρείστε τον κόμβο n που είναι ένας κόμβος φύλλο σε ένα βέλτιστο μονοπάτι προς το G (θα πρέπει να υπάρχει ένας τέτοιος κόμβος, εκτός κι αν το μονοπάτι έχει πλήρως επεκταθεί όπου σ αυτή την περίπτωση ο αλγόριθμος θα είχε επιστρέψει G). Επειδή η h είναι αποδεκτή, θα πρέπει να 50

51 έχουμε : f * f *(n). Επιπλέον, εάν το n δεν έχει επιλεγεί για επέκταση απ το G2 θα πρέπει να έχουμε : f (n) f (G2). Συνδυάζοντας αυτά τα δύο μαζί, έχουμε : f * f (G2). Εικόνα 2.6 Κατάσταση στο σημείο όπου μια υποβέλτιστη τελική κατάσταση G2, πρόκειται να επεκταθεί. Ο κόμβος n είναι ο κόμβος φύλλο σε ένα βέλτιστο μονοπάτι από τον αρχικό κόμβο στη βέλτιστη τελική κατάσταση G Αλλά επειδή η G2 είναι μια τελική κατάσταση, έχουμε h (G2) =0 γι αυτό το λόγο f(g2)=g(g2). Επιπλέον, έχουμε αποδείξει από τις υποθέσεις μας, ότι f* g(g2). Αυτό έρχεται σε αντίθεση με την υπόθεση ότι η G2 είναι υποβέλτιστη, οπότε πέφτουμε στην περίπτωση που ο Α* δεν επιλέγει ποτέ έναν υποβέλτιστο στόχο για επέκταση. Επειδή λοιπόν επιστρέφει μόνο μια λύση, αφού την επιλέξει για επέκταση γι αυτό το λόγο ο Α * είναι ένας βέλτιστος αλγόριθμος Απόδειξη της ολοκληρωσιμότητας της αναζήτησης Α* Είπαμε και προηγούμενα ότι επειδή ο Α * επεκτείνει κόμβους με σκοπό να αυξήσει την f. Θα πρέπει τελικά να επεκταθεί για να φτάσει σε μια τελική κατάσταση. Αυτό είναι αληθές, βέβαια, εκτός κι αν υπάρχουν απείρως πολλοί κόμβοι με f (n) < f *. Ο μόνος τρόπος να υπάρχει άπειρος αριθμός κόμβων είναι η (α) να υπάρχει ένας κόμβος με άπειρο παράγοντα διακλάδωσης ή (b) να υπάρχει ένα μονοπάτι με πεπερασμένο κόστος μονοπατιού αλλά άπειρο αριθμό κόμβων κατά μήκος του. Η σωστή δήλωση είναι ότι ο Α* είναι ολοκληρώσιμος σε τοπικά πεπερασμένα γραφήματα (γραφήματα με πεπερασμένο παράγοντα διακλάδωσης) δεδομένου ότι υπάρχει μια θετική σταθερά δ έτσι ώστε κάθε τελεστής να κοστίζει τουλάχιστον δ Πολυπλοκότητα της αναζήτησης Α* 51

52 Η αναζήτηση Α* είναι ολοκληρωμένη, βέλτιστη. Δυστυχώς, αυτό δεν σημαίνει ότι είναι η λύση για όλες τις ανάγκες μιας αναζήτησης. Για τα περισσότερα προβλήματα, ο αριθμός των κόμβων μέσα στο χώρο αναζήτησης του περιγράμματος της τελικής κατάστασης είναι εκθετικός ως προς το μήκος της λύσης. Έχει αποδειχθεί ότι η εκθετική ανάπτυξη θα λάβει χώρα εκτός κι αν το λάθος στην ευριστική συνάρτηση μεγαλώνει λιγότερο γρήγορα από τον λογάριθμο στο πραγματικό κόστος μονοπατιού. Με μαθηματικό συμβολισμό, η συνθήκη για υποεκθετική ανάπτυξη είναι: h(n) h* (n) 0 (logh* (n)), όπου h* (n) είναι το πραγματικό κόστος για να φτάσεις από το n στην τελική κατάσταση. Σχεδόν σε όλες τις ευριστικές με πρακτική χρήση, το λάθος είναι τουλάχιστον αναλογικό προς το κόστος μονοπατιού, και η εκθετική ανάπτυξη τελικά προσπερνά κάθε υπολογιστή. Βέβαια, η χρήση μιας καλής ευριστικής παρέχει μεγάλη οικονομία σε σχέση με μια μη ενημερωμένη αναζήτηση. Ο υπολογιστικός χρόνος του Α* είναι βέβαια ένα απ τα βασικά μειονεκτήματα. Επειδή κρατάει στη μνήμη όλους τους κόμβους που έχουν παραχθεί, συνήθως τελειώνει ο διαθέσιμος χώρος πολύ πριν τελειώσει ο διαθέσιμος χρόνος. Οι αλγόριθμοι που έχουν αναπτυχθεί πρόσφατα έχουν ξεπεράσει το πρόβλημα του χώρου χωρίς να θυσιάσουν τη βελτιστοποίηση ή την ολοκληρωσιμότητα. 2.2 Ευριστικές Συναρτήσεις Μέχρι τώρα έχουμε δει ένα παράδειγμα ευριστικής: η απόσταση ευθείας γραμμής για προβλήματα εύρεσης διαδρομής. Σ αυτή την ενότητα θα δούμε τις ευριστικές για το παζλ 8. Αυτό θα ρίξει λίγο φως στη φύση των ευριστικών γενικότερα. Το παζλ 8 ήταν ένα απ τα πρώτα προβλήματα ευριστικής αναζήτησης. Το αντικείμενο του παζλ είναι να μετακινηθούν τα τετράγωνα οριζόντια ή κάθετα σε έναν κενό χώρο μέχρι να ταιριάζει η διαμόρφωση με τη διαμόρφωση της τελικής κατάστασης (εικόνα 2.7). 52

53 Εικόνα 2.7 Ενα τυπικό παράδειγμα του παζλ-8 Το παζλ 8 έχει το απαραίτητο επίπεδο δυσκολίας. Μια συνηθισμένη λύση είναι γύρω στα 20 βήματα, αν και αυτό ποικίλλει εξαρτώμενο από την αρχική κατάσταση. Ο παράγοντας διακλάδωσης είναι γύρω στο 3 (όταν το κενό τετράγωνο είναι στη μέση, υπάρχουν τέσσερις πιθανές κινήσεις, όταν είναι σε μια γωνία υπάρχουν δύο, κι όταν είναι στην άκρη υπάρχουν τρεις). Αυτό σημαίνει ότι μια εξαντλητική αναζήτηση σε βάθος 20 θα έβλεπε γύρω στις 3 20 = 3,5 109 καταστάσεις. Κρατώντας τις επαναλαμβανόμενες καταστάσεις, θα μπορούσαμε να ελαττώσουμε δραστικά αυτόν τον αριθμό, διότι υπάρχουν μόνο 9! = 362,880 διαφορετικές τοποθετήσεις των 9 τετραγώνων. Αυτός συνεχίζει να είναι ένας μεγάλος αριθμός καταστάσεων, οπότε το επόμενο βήμα είναι να βρούμε μια καλή ευριστική συνάρτηση. Εάν θέλουμε να βρούμε τις πιο μικρές λύσεις, χρειαζόμαστε μια ευριστική συνάρτηση που δεν υπερεκτιμά ποτέ τον αριθμό των βημάτων προς την τελική κατάσταση. Έχουμε δύο υποψηφιότητες: h1 = ο αριθμός των τετραγώνων που είναι σε λάθος θέση. Για το παράδειγμα της προηγούμενης εικόνας 2.7, εφτά από τα οκτώ τετράγωνα είναι εκτός θέσης, οπότε η αρχική κατάσταση θα είχε h1 =7. Το h1 είναι μια αποδεκτή ευριστική, διότι είναι ξεκάθαρο ότι όποιο τετράγωνο είναι σε λάθος θέση θα πρέπει να μετακινηθεί τουλάχιστον μια φορά. h2 = το άθροισμα των αποστάσεων των τετραγώνων από τις τελικές τους θέσεις. Επειδή τα τετράγωνα δεν μπορούν να μετακινηθούν διαγώνια, η απόσταση που θα υπολογίσουμε είναι το άθροισμα των οριζοντίων και κάθετων αποστάσεων. Αυτή μερικές φορές ονομάζεται απόσταση του οικοδομικού τετραγώνου ή απόσταση του Μανχάταν. Η h2 είναι επίσης αποδεκτή, διότι οποιαδήποτε κίνηση μπορεί να μετακινήσει μόνο ένα τετράγωνο ένα βήμα πιο κοντά στην τελική κατάσταση. Τα τετράγωνα 1 έως 8 στην αρχική κατάσταση δίνουν μια απόσταση του Μανχάταν. h2 = = Η επίδραση της ευριστικής ακρίβειας στην απόδοση Ένας τρόπος για να χαρακτηρίσουμε την ποιότητα μιας ευριστικής είναι ο αποτελεσματικός παράγοντας διακλάδωσης b*. Εάν ο συνολικός αριθμός κόμβων που επεκτείνονται από τον Α * για ένα συγκεκριμένο πρόβλημα είναι Ν, και το βάθος της λύσης είναι d, τότε b*. Είναι ο παράγοντας διακλάδωσης που ένα ομοιόμορφο δέντρο βάθους d θα έπρεπε να έχει για να περιλαμβάνει Ν κόμβους. Επιπλέον, Ν=1+b* +(b*)2 +..+(b*)d 53

54 Για παράδειγμα, εάν ο Α* βρει μια λύση σε βάθος 5 χρησιμοποιώντας 52 κόμβους, τότε ο αποτελεσματικός παράγοντας διακλάδωσης είναι Συνήθως, ο αποτελεσματικός παράγοντας διακλάδωσης από μια δοσμένη ευριστική είναι σχεδόν σταθερός σε μια μεγάλη σειρά παραδειγμάτων προβλημάτων και γι αυτό πειραματικές μετρήσεις του b* σ ένα μικρό σύνολο προβλημάτων μπορεί να είναι ένας καλός οδηγός στη συνολική χρησιμότητα των ευριστικών. Μια καλά σχεδιασμένη ευριστική θα είχε τιμή του b* κοντά στο 1, επιτρέποντας σε αρκετά μεγάλα προβλήματα να λυθούν. Για να ελέγξουμε τις ευριστικές συναρτήσεις h1 και h2 τυχαία παράγαμε 100 προβλήματα καθένα με μήκος λύσης 2,4..,20, και τα λύσαμε χρησιμοποιώντας αναζήτηση Α * με h1 και h2 καθώς και μη ενημερωμένη επαναληπτική αναζήτηση σε βάθος. Η εικόνα 2.8 δίνει έναν μέσο αριθμό κόμβων που επεκτάθηκαν από κάθε στρατηγική, και τον αποτελεσματικό παράγοντα διακλάδωσης. Τα αποτελέσματα δείχνουν ότι το h2. Είναι καλύτερο απ το h1 και ότι η μη ενημερωμένη αναζήτηση είναι πολύ χειρότερη. Κάποιος μπορεί να αναρωτηθεί εάν το h2 είναι πάντα καλύτερο απ το h1. H απάντηση είναι ναι. Είναι εύκολο να δούμε από τους ορισμούς των δύο ευριστικών ότι για κάθε κόμβο n, ισχύει ότι h2 (n) h1 (n). Λέμε ότι το h2 κυριαρχεί στο h1. Η κυριαρχία μεταφράζεται αυτόματα σε αποτελεσματικότητα: Ο Α* χρησιμοποιώντας h2 θα επεκτείνει λιγότερους κόμβους κατά μέσο όρο απ ότι ο Α* χρησιμοποιώντας h1. Αυτό μπορούμε να το δείξουμε χρησιμοποιώντας το ακόλουθο απλό επιχείρημα. Θυμηθείτε την παρατήρηση ότι κάθε κόμβος με f(n) < f * θα επεκταθεί. Αυτό είναι το ίδιο σαν να λέγαμε ότι κάθε κόμβος με h(n)< f * -g (n) θα επεκταθεί. Αλλά επειδή η h2 είναι τουλάχιστον τόσο μεγάλη όσο η h1 για όλους τους κόμβους, κάθε κόμβος που επεκτείνεται από την Α * αναζήτηση με h2 θα επεκταθεί επίσης με h1 και το h1 μπορεί επίσης να προκαλέσει και την επέκταση κι άλλων κόμβων. Γι αυτό το λόγο είναι πάντα καλύτερο να χρησιμοποιούμε μια ευριστική συνάρτηση με μεγαλύτερες τιμές, όσο όμως δεν υπάρχει υπερεκτίμηση. Εικόνα 2.8 Σύγκριση του κόστους αναζήτησης και των αποτελεσματικών παραγόντων διακλάδωσης για την ΕΠΑΝΑΛΗΠΤΙΚΗ ΑΝΑΖΗΤΗΣΗ ΣΕ ΒΑΘΟΣ και των ΑΛΓΟΡΙΘΜΩΝ Α* με h1 και h2. Τα δεδομένα κυμαίνονται από 100 παραδείγματα για το παζλ-8, για ποικίλα μήκη λύσεων 54

55 2.2.2 Εφευρίσκοντας ευριστικές συναρτήσεις Έχουμε δει ότι και η h1 και η h2 έχουν αρκετά καλές ευριστικές για το παζλ-8 και ότι το h2 είναι καλύτερο. Αλλά δεν ξέρουμε πώς να εφευρίσκουμε μια ευριστική συνάρτηση. Είναι δυνατόν για ένα κομπιούτερ να εφευρίσκει μηχανικά μια τέτοια ευριστική; Οι h1 και h2 είναι υπολογισμοί για το μήκος μονοπατιού που απομένει για το παζλ 8, αλλά μπορούν επίσης να θεωρηθούν απόλυτα ακριβή μήκη μονοπατιών για απλοποιημένες εκδόσεις του παζλ. Εάν οι κανόνες του παιχνιδιού είχαν αλλάξει έτσι ώστε ένα τετράγωνο να μπορούσε να μετακινηθεί οπουδήποτε, αντί να μπορεί να μετακινηθεί στο γειτονικό άδειο τετράγωνο, τότε η h1 θα έδινε ακριβώς τον αριθμό των βημάτων για τη κοντινότερη λύση. Παρόμοια, εάν ένα τετράγωνο μπορούσε να μετακινηθεί σε οποιαδήποτε κατεύθυνση, ακόμα και σε ένα τετράγωνο που είναι κατειλημμένο, τότε η h2 θα έδινε έναν ακριβή αριθμό βημάτων προς την πιο σύντομη λύση. Ένα πρόβλημα που έχει λιγότερους περιορισμούς στους τελεστές, αποκαλείται χαλαρωμένο πρόβλημα. Συχνά συμβαίνει ότι το κόστος μιας ακριβής λύσης σε ένα χαλαρό πρόβλημα είναι μια καλή ευριστική για το αρχικό πρόβλημα. Εάν ο ορισμός ενός προβλήματος γράφεται σε επίσημη γλώσσα, είναι δυνατόν να κατασκευάσουμε αυτόματα χαλαρά προβλήματα. Για παράδειγμα, εάν οι τελεστές του παζλ 8 περιγράφονται ως: Ένα τετράγωνο μπορεί να μετακινηθεί από ένα τετράγωνο Α σε ένα τετράγωνο Β, εάν το Α είναι γειτονικό στο Β και το Β είναι κενό, μπορούμε να παράγουμε τρία χαλαρά προβλήματα αφαιρώντας μια ή δύο από τις συνθήκες: (a) Ένα τετράγωνο μπορεί να μετακινηθεί από το τετράγωνο Α στο τετράγωνο Β εάν το Α είναι γειτονικό στο Β. (b) Ένα τετράγωνο μπορεί να μετακινηθεί από το τετράγωνο Α στο τετράγωνο Β εάν το Β είναι κενό. (c) Ένα τετράγωνο μπορεί να μετακινηθεί από το τετράγωνο Α στο τετράγωνο Β. Πρόσφατα γράφτηκε ένα πρόγραμμα που ονομάζεται ΑΠΑΛΑΣΣΩΝ το οποίο μπορεί να παράγει ευριστικές αυτόματα από ορισμούς προβλημάτων, χρησιμοποιώντας τη μέθοδο «χαλαρού προβλήματος» και διάφορες άλλες τεχνικές. Ο ΑΠΑΛΑΣΣΩΝ παρήγαγε μια νέα ευριστική για το παζλ-8 καλύτερη από την υπάρχουσα ευριστική, και βρήκε την πρώτη χρήσιμη ευριστική για το περίφημο κυβικό πάζλ του Ριούμπικ. Ένα πρόβλημα που υπάρχει με την παραγωγή νέων ευριστικών συναρτήσεων είναι ότι δεν είναι ξεκάθαρο να δούμε ποια είναι η «καλύτερη» ευριστική. Εάν είναι διαθέσιμο ένα σύνολο από αποδεκτές ευριστικές h1 hm αλλά καμία δεν κυριαρχεί πάνω στις άλλες, ποια θα πρέπει να διαλέξουμε; Όπως φαίνεται δεν χρειάζεται να κάνουμε επιλογή, μπορούμε να πάρουμε το καλύτερο όλων ορίζοντας : h(n) = max (h1 (n),..., hm(n) 55

56 Αυτή η σύνθετη ευριστική χρησιμοποιεί όποια συνάρτηση είναι πιο ακριβής για τον εν λόγω κόμβο. Επειδή οι ευριστικές που αποτελούνται από συστατικά μέρη είναι αποδεκτές, γι αυτό και η h είναι επίσης αποδεκτή. Επιπλέον η h κυριαρχεί σε όλες τις μεμονωμένες ευριστικές από τις οποίες αποτελείται. Ένας άλλος τρόπος για να εφεύρουμε μια καλή ευριστική είναι να χρησιμοποιήσουμε στατιστικές πληροφορίες. Αυτό μπορεί να γίνει κάνοντας μια αναζήτηση σε έναν αριθμό εκπαιδευτικών προβλημάτων, όπως οι 100 τυχαία επιλεγμένοι σχηματισμοί του παζλ 8, και να συγκεντρώσουμε στατιστικά στοιχεία. Για παράδειγμα, μπορεί να δούμε ότι όταν h2(n)=14, αποδεικνύεται ότι το 90% του χρόνου η πραγματική απόσταση από την τελική κατάσταση είναι 18. Οπότε, όταν αντιμετωπίζουμε το «πραγματικό» πρόβλημα, μπορούμε να χρησιμοποιήσουμε το 18 σαν τιμή όποτε το h2 (n) αναφέρει ότι έχει τιμή 14. Bέβαια, εάν χρησιμοποιούμε τέτοια πληροφορία πιθανοτήτων, δεν έχουμε την εγγύηση ότι είναι αποδεκτή, αλλά πιο πιθανό να επεκτείνουμε λιγότερους κόμβους κατά μέσο όρο. Συχνά, είναι πιθανό να επιλέξουμε χαρακτηριστικά μιας κατάστασης που συνεισφέρουν στην ευριστική συνάρτηση αξιολόγησής της. Για παράδειγμα, ο στόχος στο σκάκι είναι να κάνουμε ματ στον αντίπαλο και σχετικά χαρακτηριστικά περιλαμβάνουν τον αριθμό των κομματιών κάθε είδους, που ανήκουν σε κάθε πλευρά, τον αριθμό των κομματιών που τους επιτίθενται άλλα κομμάτια κ.ο.κ. Συνήθως, η συνάρτηση αξιολόγησης είναι ένας γραμμικός συνδυασμός των τιμών των χαρακτηριστικών. Ακόμα κι αν δεν έχουμε ιδέα του πόσο σημαντικό είναι κάθε χαρακτηριστικό, ή ακόμα κι αν είναι ένα χαρακτηριστικό είναι καλό ή κακό, είναι πιθανόν να χρησιμοποιήσουμε έναν αλγόριθμο εκμάθησης, που να κατέχει λογικούς συντελεστές για κάθε χαρακτηριστικό. Στο σκάκι, για παράδειγμα, ένα τέτοιο πρόγραμμα θα μάθαινε ότι η βασίλισσα του καθενός θα πρέπει να έχει ένα μεγάλο θετικό συντελεστή, ενώ το πιόνι του αντιπάλου θα πρέπει να έχει ένα μικρό αρνητικό συντελεστή. Ένας άλλος παράγοντας που δεν έχουμε υπολογίσει μέχρι τώρα είναι το κόστος αναζήτησης του να τρέξει η ευριστική συνάρτηση σε ένα κόμβο. Είχαμε υποθέσει ότι το κόστος του υπολογισμού της ευριστικής συνάρτησης είναι σχεδόν το ίδιο με το κόστος του να επεκτείνεις ένα κόμβο, οπότε η ελαχιστοποίηση των κόμβων που επεκτείνονται είναι κάτι καλό. Αλλά εάν η ευριστική συνάρτηση είναι τόσο πολύπλοκη ώστε ο υπολογισμός της τιμής της για έναν κόμβο είναι τόσος χρονοβόρος όσο να επεκτείνεις εκατό κόμβους, τότε θα πρέπει να το ξανασκεφτούμε. Άλλωστε, είναι εύκολο να έχουμε μια ευριστική που είναι απόλυτα ακριβής. Αυτό θα ελαχιστοποιούσε τον αριθμό των κόμβων που επεκτείνονται στην πραγματική αναζήτηση, αλλά δεν θα ελαχιστοποιούσε το συνολικό κόστος αναζήτησης. Μια καλή ευριστική συνάρτηση θα πρέπει να είναι αποτελεσματική καθώς και ακριβής Ευριστικές για προβλήματα ικανοποίησης περιορισμών 56

57 Εξετάσαμε ένα σύνολο προβλημάτων που ονομάζονται προβλήματα ικανοποίησης περιορισμών (CSPs). Ένα πρόβλημα ικανοποίησης περιορισμών αποτελείται από ένα σύνολο μεταβλητών που παίρνουν τιμές από ένα δοσμένο χώρο, και από ένα σύνολο περιορισμών που συγκεκριμενοποιούν ιδιότητες της λύσης. Εξετάσαμε μη-ενημερωμένες μεθόδους αναζήτησης για να CSPs κυρίως παραλλαγές της αναζήτησης πρώτα σε βάθος. Σε αυτή την ενότητα, επεκτείνουμε την ανάλυση θεωρώντας ευριστικές για επιλογή μιας μεταβλητής προς αρχικοποίηση και για επιλογή μιας τιμής αυτής της μεταβλητής. Για να υλοποιήσουμε αυτή την ιδέα, θα χρησιμοποιήσουμε το πρόβλημα χρωματισμού του χάρτη που φαίνεται στην εικόνα 2.9. (Η ιδέα του χρωματισμού του χάρτη υπάρχει για να αποφύγουμε να χρωματίσουμε γειτονικές χώρες με το ίδιο χρώμα). Υποθέστε ότι μπορούμε να χρησιμοποιήσουμε το πολύ 3 χρώματα (κόκκινο, πράσινο και μπλε), και ότι έχουμε επιλέξει πράσινο για τη χώρα Α και κόκκινο για τη χώρα Β. Διαισθητικά, φαίνεται ότι θα πρέπει να χρωματίσουμε τη χώρα Ε στη συνέχεια, επειδή το μόνο πιθανό χρώμα για την Ε είναι το μπλε. Όλες οι άλλες χώρες έχουν μια επιλογή χρωμάτων και μπορεί να κάνουμε μια λάθος επιλογή και να χρειαστεί να οπισθοχωρήσουμε. Στην πραγματικότητα, μόλις χρωματίσουμε την Ε μπλε, μετά αναγκαζόμαστε να χρωματίσουμε τη C κόκκινη και την F πράσινη. Μετά από αυτό είτε χρωματίσουμε την D μπλε είτε κόκκινη καταλήγουμε σε μια λύση. Με άλλα λόγια έχουμε λύσει το πρόβλημα χωρίς καθόλου αναζήτηση. Εικόνα 2.9 Ενα πρόβλημα χρωματισμού του χάρτη αφού έχουν επιλεχθεί οι δύο μεταβλητές, A και B. Ποια χώρα θα πρέπει να χρωματίσουμε στη συνέχεια ; 57

58 Αυτή η διαισθητική ιδέα ονομάζεται ευριστική της περισσότερο περιορισμένης μεταβλητής. Χρησιμοποιείται με έλεγχο προς τα εμπρός όπου κρατάει ποιες απ τις τιμές επιτρέπονται ακόμα για κάθε μεταβλητή, με δεδομένο τις επιλογές που έχουν γίνει μέχρι τώρα. Σε κάθε σημείο στην αναζήτηση, η μεταβλητή που έχει τις λιγότερες πιθανές τιμές επιλέγεται για να της ανατεθεί μια τιμή. Μ αυτόν τον τρόπο, ο παράγοντας διακλάδωσης στην αναζήτηση τείνει να ελαχιστοποιηθεί. Για παράδειγμα, όταν αυτή η ευριστική χρησιμοποιείται στην επίλυση των προβλημάτων των n-βασιλισσών στον έλεγχο προς τα εμπρός, το εφικτό μέγεθος προβλήματος αυξάνεται από 30, στο 100 περίπου. Η περισσότερο περιοριστική ευριστική μεταβλητή είναι παρόμοια αποτελεσματική. Επιχειρεί να μειώσει τον παράγοντα διακλάδωσης σε μελλοντικές επιλογές αναθέτοντας μια τιμή στην μεταβλητή που εμπεριέχεται στον μεγαλύτερο αριθμό περιορισμών άλλων μεταβλητών, στις οποίες δεν έχουν ανατεθεί τιμές. Μόλις επιλεγεί μια μεταβλητή, χρειαζόμαστε μια τιμή γι αυτή. Ας υποθέσουμε ότι αποφασίζουμε να αναθέσουμε μια μεταβλητή στη χώρα C μετά την Α και Β. Η διαίσθηση κάποιου είναι ότι το κόκκινο είναι καλύτερη επιλογή από το μπλέ, διότι αφήνει μεγαλύτερη ελευθερία για μελλοντικές επιλογές. Αυτή η διαίσθηση είναι η ευριστική λιγότερο περιοριστικής τιμής και συνίσταται στο να επιλεχθεί μια τιμή που αποκλείει το μικρότερο αριθμό τιμών στις μεταβλητές που συνδέονται με την τρέχουσα μεταβλητή μέσω περιορισμών. Όταν εφαρμόζεται στο πρόβλημα των nβασιλισσών, επιτρέπει να λυθούν προβλήματα μέχρι n = Αναζήτηση Περιορισμένης Μνήμης Παρ όλους τους έξυπνους αλγορίθμους αναζήτησης που έχουν εφευρεθεί, το γεγονός παραμένει ότι κάποια προβλήματα είναι ουσιαστικά δύσκολα, από τη φύση τους. Όταν πέφτουμε πάνω σε τέτοια εκθετικά πολύπλοκα προβλήματα, πρέπει να κόψουμε από κάπου. Η εικόνα 1.12 δείχνει ότι το πρώτο πράγμα απ το οποίο μπορούμε να περικόψουμε είναι η μνήμη. Ερευνούμε δύο αλγορίθμους που έχουν σχεδιαστεί για να εξοικονομούν μνήμη. Ο πρώτος, ο * IDA, είναι μια λογική προέκταση της ΕΠΑΝΑΛΗΠΤΙΚΗΣ ΑΝΑΖΗΤΗΣΗΣ ΣΕ ΒΑΘΟΣ που χρησιμοποιεί ευριστικά δεδομένα. Ο δεύτερος, ο SMA*, είναι παρόμοιος με τον Α * αλλά περιορίζει το μέγεθος της ουράς έτσι ώστε να χωρέσει στη διαθέσιμη μνήμη Επαναληπτική αναζήτηση σε βάθος Α* (ΙDA*) Στο κεφάλαιο 1, δείξαμε ότι η επαναληπτική αναζήτηση σε βάθος είναι μια χρήσιμη τεχνική για να μειωθούν οι απαιτήσεις της μνήμης. Μπορούμε να προσπαθήσουμε πάλι με το ίδιο κόλπο, το να μετατρέψουμε την αναζήτηση Α* σε επαναληπτική αναζήτηση σε βάθος Α *, ή IDA* (δείτε την εικόνα 2.10). Σε αυτόν τον αλγόριθμο, κάθε επανάληψη είναι μια αναζήτηση πρώτα σε βάθος, όπως και σε μια κανονική επαναληπτική αναζήτηση σε βάθος. Η αναζήτηση πρώτα σε βάθος μετατρέπεται 58

59 έτσι ώστε να χρησιμοποιεί ένα όριο του κόστους της συνάρτησης f παρά ένα όριο βάθους. Κάθε επανάληψη επεκτείνει όλους τους κόμβους μέσα στο περίγραμμα του τρέχοντος κόστους της f κοιτάζοντας, παράλληλα και το περίγραμμα για να δει που βρίσκεται το επόμενο περίγραμμα. Μόλις ολοκληρωθεί η αναζήτηση σε ένα περίγραμμα, μια νέα επανάληψη ξεκινάει, χρησιμοποιώντας το νέο κόστος της f για το επόμενο περίγραμμα. Ο IDA* είναι ολοκληρωμένος και βέλτιστος με τις ίδιες ανακοπές που έχει η αναζήτηση Α *, αλλά επειδή είναι πρώτα κατά βάθος, απαιτεί μόνο χώρο αναλογικό προς το πιο μακρύ μονοπάτι που ανακαλύπτει. Εάν δ είναι το μικρότερο κόστος τελεστών και f * το κόστος της βέλτιστης λύσης, τότε στη χειρότερη περίπτωση, ο IDA* θα απαιτήσει b-f* /δ κόμβους προς αποθήκευση. Στις περισσότερες περιπτώσεις, το bd είναι μια καλή εκτίμηση των απαιτήσεων αποθήκευσης. Η πολυπλοκότητα χρόνου του IDA* εξαρτάται απ τον αριθμό των διαφορετικών τιμών που μπορεί να αναλάβει η ευριστική συνάρτηση. Η ευριστική απόσταση του Μανχάταν που χρησιμοποιείται στο παζλ-8 αναλαμβάνει έναν μικρό αριθμό ακεραίων τιμών. Τυπικά, η f αυξάνεται μόνο δύο ή τρεις φορές κατά μήκος οποιουδήποτε μονοπατιού λύσης. Επιπλέον, ο IDA* κάνει μόνο δύο ή τρεις επαναλήψεις, και η αποτελεσματικότητά του είναι παρόμοια με αυτή του Α *, στην πραγματικότητα η τελευταία επανάληψη του IDA* μετά βίας επεκτείνει τον ίδιο αριθμό κόμβων με αυτόν του Α* Επιπλέον, επειδή ο IDA* δεν χρειάζεται να εισάγει και να διαγράψει κόμβους με βάση κάποια ουρά προτεραιότητας, τα γενικά έξοδα ανά κόμβο μπορούν να είναι λιγότερα απ ότι του Α *. Οι βέλτιστες λύσεις για πολλά πρακτικά προβλήματα, βρέθηκαν αρχικά απ τον ΙDA* ο οποίος για αρκετά χρόνια ήταν ο μόνος βέλτιστος, περιορισμένος σε μνήμη ευριστικός αλγόριθμος. Δυστυχώς, ο IDA* έχει δυσκολία σε περισσότερο πολύπλοκους τομείς. Για παράδειγμα, στο πρόβλημα του περιπλανώμενου πωλητή, η ευριστική τιμή είναι διαφορετική για κάθε κατάσταση. Αυτό σημαίνει ότι κάθε περίγραμμα περιλαμβάνει μια παραπάνω κατάσταση απ ότι το προηγούμενο περίγραμμα. Εάν ο Α* επεκτείνει Ν κόμβους, ο IDA* θα πρέπει να περάσει από Ν επαναλήψεις και γι αυτό το λόγο θα επεκτείνει Ν = 0 (Ν2) κόμβους. Τώρα, εάν το Ν είναι πολύ μεγάλο για τη μνήμη του υπολογιστή, τότε το Ν2 είναι σχεδόν εξαιρετικά πολύ μεγάλο για να περιμένει. Ένας τρόπος είναι να αυξήσουμε το όριο του κόστους της συνάρτησης f με ένα σταθερό ποσό e σε κάθε επανάληψη, έτσι ώστε ο συνολικός αριθμμός επαναλήψεων να είναι αναλογικός προς το 1/e. Αυτό μπορεί να μειώσει το κόστος αναζήτησης, σε βάρος των λύσεων που θα επιστρέψει, οι οποίες μπορεί να είναι χειρότερες απ το βέλτιστο για τις περισσότερες τιμές του e.ένας τέτοιος αλγόριθμος ονομάζεται e- αποδεκτός. 59

60 function IDA * (problem) returns a solution sequence inputs : problem, a problem local variables : f limit, the current f COST limit root, a node root MAKE-NODE ( INITIAL-STATE [ problem ] ) f limit f - COST (root ) loop do solution, f limit DFS-CONTOUR ( root, f limit ) if solution is non-null then return solution if f limit = then return failure end function DFS-CONTOUR(node, f limit) returns a solution sequence and a new f COST limit inputs : node, a node f limit, the current f COST limit local variables : next f, the f COST limit for the next contour, initially if f COST [ node ] > f limit then return null, f COST [node ] if GOAL-TEST [ problem ] (STATE [ node ] ) then return node, f -limit for each node s in SUCCESSORS (node) do solution, new f DFS CONTOUR (s, f limit ) if solution is non-null then return solution, f limit next f MIN (next f, new f) end return null, next - f Εικόνα 2.10 Ο Αλγόριθμος IDA * Αναζήτηση SMA* Οι δυσκολίες του IDA* σε κάποιους χώρους προβλημάτων ανιχνεύονται στο ότι χρησιμοποιούν πολύ λίγη μνήμη. Ανάμεσα στις επαναλήψεις, κρατάει έναν μοναδικό αριθμό, το τρέχων όριο του κόστους της f. Επειδή δεν έχει ιστορικότητα, ο IDA* είναι καταδικασμένος να το επαναλάβει. Αυτό είναι διπλά αληθινό, σε χώρους καταστάσεων που είναι γραφήματα και όχι δέντρα. Ο IDA* μπορεί να μεταβληθεί για να ελέγξει το τρέχων μονοπάτι για επαναλαμβανόμενες καταστάσεις, αλλά δεν μπορεί να αποφύγει επαναλαμβανόμενες καταστάσεις που παράγονται από εναλλακτικά μονοπάτια. Περιγράφουμε τον SMA* (Απλοποιημένος Α* οποίος χρησιμοποιεί όλη την διαθέσιμη Περιορισμένης- Μνήμης), αλγόριθμο, ο μνήμη για να εκτελέσει την αναζήτηση. Το να χρησιμοποιηθεί περισσότερη μνήμη, μπορεί μόνο να βελτιώσει την αποτελεσματικότητα της 60

61 αναζήτησης, αλλά είναι συνήθως καλύτερα να έχουμε στη μνήμη ένα κόμβο παρά να τον παράγουμε ξανά όποτε χρειαστεί. Ο SMA* έχει τις ακόλουθες ιδιότητες: Θα χρησιμοποιήσει όλη την ποσότητα μνήμης που υπάρχει στη διάθεσή του. Αποφεύγει επαναλαμβανόμενες καταστάσεις όσο του το επιτρέπει η μνήμη του. Είναι ολοκληρωμένος εάν η διαθέσιμη μνήμη είναι αρκετή για να αποθηκεύσει το πιο ρηχό μονοπάτι λύσης Είναι βέλτιστος εάν αρκετή μνήμη είναι διαθέσιμη για να αποθηκεύσει το πιο ρηχό, βέλτιστο μονοπάτι λύσης. Διαφορετικά, επιστρέφει την καλύτερη λύση που μπορεί να επιτευχθεί με τη διαθέσιμη μνήμη. Όταν αρκετή μνήμη είναι διαθέσιμη για ολόκληρο το δέντρο αναζήτησης, η αναζήτηση είναι βέλτιστα αποτελεσματική. Μια άλυτη ερώτηση είναι εάν ο SMA* είναι βέλτιστα αποτελεσματικός ανάμεσα σε όλους τους αλγορίθμους δεδομένου ότι έχουν την ίδια ευριστική πληροφορία και την ίδια κατανομή μνήμης. Το περίγραμμα του σχεδίου του SMA* είναι απλό. Όταν χρειάζεται να παράγει έναν απόγονο αλλά δεν έχει απομείνει μνήμη, χρειάζεται να κάνει χώρο στην ουρά. Για να το κάνει αυτό, αφήνει έναν κόμβο από την ουρά. Οι κόμβοι που φεύγουν με αυτόν τον τρόπο από την ουρά λέγονται ξεχασμένοι κόμβοι. Προτιμά να αφήσει έναν κόμβο που είναι λιγότερο υποσχόμενος, δηλαδή τους κόμβους που έχουν υψηλή τιμή της f. Για να αποφύγουμε το να ξαναανακαλύψουμε υποδέντρα που έχουν φύγει από τη μνήμη, ο αλγόριθμος κρατάει πληροφορία στους κόμβους τους προγονικούς σχετικά με την ποιότητα του καλύτερου μονοπατιού στο ξεχασμένο υποδέντρο. Με αυτόν τον τρόπο, αναπαράγει μόνο το υποδέντρο όταν όλα τα άλλα μονοπάτια έχουν αποδειχθεί χειρότερα απ το μονοπάτι που έχει ξεχαστεί. Ένας άλλος τρόπος για να το πούμε αυτό, είναι ότι εάν όλοι οι απόγονοι ενός κόμβου n έχουν ξεχασθεί, τότε δεν θα ξέρουμε προς ποιο δρόμο να πάμε από το n αλλά θα έχουμε ακόμα μια ιδέα του κατά πόσο αξίζει να πάμε οπουδήποτε από τον κόμβο n Ο SMA* εξηγείται καλύτερα με ένα παράδειγμα, που φαίνεται στην εικόνα Το πάνω μέρος της εικόνας δείχνει το χώρο αναζήτησης. Κάθε κόμβος έχει ετικέττα τιμών g+h = f, και οι τελικοί κόμβοι (D,F,I,J) εμφανίζονται σε τετράγωνα. Ο στόχος είναι να βρεθεί ο τελικός κόμβος με το χαμηλότερο κόστος και με αρκετή μνήμη μόνον για τρεις κόμβους. Τα στάδια της αναζήτησης εμφανίζονται με τη σειρά, από αριστερά προς τα δεξιά, με κάθε στάδιο αριθμημένο σύμφωνα με την εξήγηση που ακολουθεί. Κάθε κόμβος έχει την ένδειξη με το τρέχων κόστος της f το οποίο ενημερώνεται συνεχώς έτσι ώστε να αντανακλά το μικρότερο κόστος της f απ όλους τους απογόνους. Οι τιμές μέσα στις παρενθέσεις δείχνουν την τιμή του καλύτερου ξεχασμένου απογόνου. Ο αλγόριθμος προχωράει όπως φαίνεται στη συνέχεια: 61

62 1. Σε κάθε επίπεδο, ένας απόγονος προστίθεται στον πιο βαθύ κόμβο που έχει παράλληλα και τη μικρότερη τιμή της συνάρτησης f που έχει κάποιους απογόνους οι οποίοι δεν βρίσκονται αυτή τη στιγμή στο δέντρο. Το αριστερό παιδί Β προστίθεται στην κορυφή Α. 2. Τώρα η τιμή της f(a) συνεχίζει να είναι 12, οπότε προσθέτουμε το δεξί παιδί G(f=13). Τώρα που είδαμε όλα τα παιδιά του Α, μπορούμε να ενημερώσουμε το κόστος της f στο ελάχιστο των παιδιών του, που είναι 13. Η μνήμη τώρα είναι γεμάτη. 3. To G τώρα σχεδιάζεται για επέκταση, αλλά πρέπει πρώτα να ρίξουμε ένα κόμβο για να κάνουμε χώρο. Αφήνουμε το πιο ρηχό φύλλο με το υψηλότερο κόστος της f που είναι το Β. Μόλις το έχουμε κάνει αυτό, σημειώνουμε ότι ο καλύτερος ξεχασμένος απόγονος του Α έχει f =15, όπως φαίνεται στις παρενθέσεις. Στη συνέχεια προσθέτουμε το Η, με f(h) = 18. Δυστυχώς, ο Η δεν είναι ένας τελικός κόμβος, αλλά το μονοπάτι προς το Η χρησιμοποιεί όλη την διαθέσιμη μνήμη. Επομένως, δεν υπάρχει τρόπος για να βρεθεί μια λύση μέσω του Η, οπότε θέτουμε F(H) = 4. O G επεκτείνεται πάλι. Αφήνουμε το Η, και προσθέτουμε το Ι, με f(i) = 24. Τώρα έχουμε δει δύο απογόνους του G, με τιμές και 24, οπότε το f(g) γίνεται 24. Η f(a) γίνεται 15 το ελάχιστο του 15 (τιμή του ξεχασμένου απογόνου) και 24. Παρατηρείστε ότι ο Ι είναι ένας τελικός κόμβος αλλά μπορεί να μην είναι η καλύτερη λύση επειδή το κόστος της f για τον Α είναι μόνο Ο Α είναι πάλι ο πιο πολλά υποσχόμενος κόμβος, οπότε ο Β παράγεται για δεύτερη φορά. Είδαμε ότι το μονοπάτι μέσω του G δεν ήταν τόσο καλό τελικά 6. Ο C, ο πρώτος απόγονος του Β, είναι ένας κόμβος που δεν είναι τελική κατάσταση με μέγιστο βάθος, οπότε F(C ) = 7. Για να εξετάσουμε τον δεύτερο απόγονο, τον D, πρώτα αφήνουμε τον C. Μετά f(d) =20 και αυτή η τιμή κληρονομείται από Β και Α. 8. Τώρα, ο πιο βαθύς κόμβος με τη χαμηλότερη τιμή της f είναι ο D, επειδή είναι ο τελικός κόμβος, η αναζήτηση ολοκληρώνεται. 62

63 Εικόνα 2.11 Η πρόοδος της SMA* αναζήτησης με ένα μέγεθος μνήμης τριών κόμβων, στο χώρο καταστάσεων που εμφανίζεται στην κορυφή. Κάθε κόμβος έχει την τρέχουσα τιμή της f. Οι τιμές στις παρενθέσεις δείχνουν την τιμή του καλύτερου απογόνου που έχει ξεχαστεί Σε αυτή την περίπτωση, υπάρχει αρκετή μνήμη για το πιο ρηχό, βέλτιστο μονοπάτι λύσης. Εάν ο J είχε κόστος 19 αντί για 24, ο SMA* και πάλι δεν θα ήταν ικανός να τη βρει επειδή το μονοπάτι της λύσης περιλαμβάνει τέσσερις κόμβους. Σε αυτή την περίπτωση, ο SMA* θα επέστρεφε στο D, που θα ήταν η καλύτερη εφικτή λύση. Είναι ένα απλό θέμα το να υπάρχει μια σηματοδότηση του αλγορίθμου ότι η λύση που βρέθηκε μπορεί να μην είναι η βέλτιστη. 63

64 Ένα σκαρίφημα του SMA* φαίνεται στην εικόνα Στο πραγματικό πρόβλημα, κάποιος διακανονισμός είναι απαραίτητος για να αντιμετωπιστεί το γεγονός ότι μερικές φορές οι κόμβοι καταλήγουν με κάποιους τελεστές στη μνήμη και με κάποιους ξεχασμένους. Όταν χρειάζεται να ελέγξουμε για επαναλαμβανόμενους κόμβους, τα πράγματα γίνονται ακόμα πιο πολύπλοκα. Ο SMA* είναι ο πιο σύνθετος αλγόριθμος αναζήτησης που έχουμε δει μέχρι τώρα. function SMA * ( problem ) returns a solution sequence inputs : problem, a problem local variables : Queue, a queue of nodes ordered by f cost Queue MAKE QUEUE ( { MAKE NODE (INITIAL STATE [ problem ] ) } ) loop do if Queue is empty then return failure n deepest least-f-cost node in Queue if GOAL-TEST( n ) then return success s NEXT-SUCCESSOR (n ) if s is not a goal and is at maximum depth then f(s) else f ( s ) MAX (f (n ), g( s ) + h (s )) if all of n s successors have been generated then update n s f-cost and those of its ancestors if necessary if SUCCESSORS (n ) all in memory then remove n from Queue if memory is full then delete shallowest, highest-f-cost node in Queue remove it from its parent s successor list insert its parent on Queue if necessary insert s on Queue Εικόνα 2.12 Ο αλγόριθμος SMA * Με δεδομένο ένα λογικό ποσό μνήμης, ο SMA* μπορεί να λύσει αρκετά πιο δύσκολα προβλήματα απ ότι ο Α* χωρίς να υπάρχουν σημαντικά έξοδα από την πλευρά των κόμβων που παράγονται. Λειτουργεί καλά σε προβλήματα σε χώρους όπου οι καταστάσεις συνδέονται αρκετά μεταξύ τους κι έχουν ευριστικά πραγματικών τιμών, όπου βέβαια ο IDA* έχει μια δυσκολία. Σε πολύ σκληρά προβλήματα, ο SMA* αναγκάζεται να πηγαίνει μπροστά και πίσω ανάμεσα σε ένα σύνολο μονοπατιών με υποψήφιες λύσεις. Οπότε ο εξτρά χρόνος που απαιτείται για την επαναλαμβανόμενη αναπαραγωγή των ίδιων κόμβων σημαίνει ότι προβλήματα που θα ήταν πρακτικά επιλύσιμα από τον Α*, με δυσμενή απεριόριστη μνήμη, γίνονται δύσκολα για τον SMA*. Οι περιορισμοί μνήμης μπορούν να κάνουν ένα πρόβλημα δύσκολο από την άποψη του υπολογιστικού χρόνου. Παρ όλο που δεν υπάρχει κάποια θεωρία που να εξηγεί την ανταλλαγή μεταξύ χρόνου και μνήμης, φαίνεται ότι 64

65 είναι ένα πρόβλημα απ το οποίο δεν μπορείς να ξεφύγεις. Ο μόνος τρόπος είναι να εγκαταλειφθεί τελείως η απαίτηση της βελτιστοποίησης. 2.4 Επαναληπτικός Αλγόριθμοι Βελτίωσης Στο κεφάλαιο 1, είδαμε ότι αρκετά γνωστά προβλήματα (για παράδειγμα, το πρόβλημα των 8Βασιλισσών) έχουν την ιδιότητα ότι η ίδια η περιγραφή της κατάστασης περιλαμβάνει όλα τα δεδομένα που χρειάζονται για τη λύση. Το μονοπάτι μέσω του οποίου επιτυγχάνεται η λύση είναι άσχετο. Σε τέτοιες περιπτώσεις, οι αλγόριθμοι επαναληπτικής βελτίωσης συχνά παρέχουν την πιο πρακτική προσέγγιση. Για παράδειγμα, ξεκινάμε με 8 Βασίλισσες στη σκακιέρα. Στη συνέχεια, μετακινούμε τις βασίλισσες τριγύρω προσπαθώντας να μειώσουμε τον αριθμό των επιθέσεων. Η γενική ιδέα είναι να ξεκινήσουμε με έναν ολοκληρωμένο σχηματισμό και να κάνουμε αλλαγές για να βελτιώσουμε την ποιότητά του. Ο καλύτερος τρόπος για να κατανοήσουμε τους αλγορίθμους της επαναληπτικής βελτίωσης είναι να θεωρήσουμε όλες τις καταστάσεις πάνω στην επιφάνεια ενός τοπίου. Το ύφος σε οποιοδήποτε σημείο του τοπίου αναφέρεται στην συνάρτηση αξιολόγησης της κατάστασης σε εκείνο το σημείο (εικόνα 2.13). Η ιδέα της επαναληπτικής βελτίωσης είναι να μετακινούμαστε στο τοπίο προσπαθώντας να βρούμε τις πιο υψηλές κορυφές, που είναι οι βέλτιστες λύσεις. Οι αλγόριθμοι επαναληπτικής βελτίωσης συνήθως παρακολουθούν μόνο την τρέχουσα κατάσταση, και δεν κοιτάνε λίγο πιο μπροστά, εκτός μόνο από τους άμεσους γείτονες εκείνης της κατάστασης. Αυτό μοιάζει με το ψάχνουμε την κορυφή του βουνού Έβερεστ σε ομίχλη, πάσχοντας παράλληλα από αμνησία. Παρ όλα αυτά η επαναληπτική βελτίωση είναι η μέθοδος που χρησιμοποιείται για σκληρά, πρακτικά προβλήματα. Οι αλγόριθμοι επαναληπτικής βελτίωσης χωρίζονται σε δύο μεγάλες κατηγορίες. Οι Αλγόριθμοι Ανάβασης Λόφου (ή εναλλακτικά βαθμιαία κατάβαση εάν θεωρήσουμε τη συνάρτηση αξιολόγησης σαν κόστος παρά σαν ποιότητα) προσπαθούν πάντα να κάνουν αλλαγές για να βελτιώσουν την τρέχουσα κατάσταση. Οι αλγόριθμοι προσομοίωσης ψύξης μπορεί να κάνουν κάποιες φορές αλλαγές που κάνουν τα πράγματα, τουλάχιστον προσωρινά χειρότερα Αναζήτηση Ανάβασης Λόφου Ο Αλγόριθμος αναζήτησης ανάβασης λόφου εμφανίζεται στην εικόνα Είναι απλά μια επανάληψη η οποία συνεχώς κινείται προς την κατεύθυνση της αυξανόμενης τιμής. Ο αλγόριθμος δεν διατηρεί ένα δέντρο αναζήτησης οπότε η δομή δεδομένων του κόμβου χρειάζεται να καταγράφει μόνο την κατάσταση και την αξιολόγησή της, την οποία χαρακτηρίζουμε σαν ΤΙΜΗ. Ένας σημαντικός εκλεπτυσμός είναι όταν υπάρχουν περισσότεροι από έναν καλύτερους απογόνους για να επιλέξουμε, ο αλγόριθμος επιλέγει ανάμεσα τους τυχαία. Αυτή η απλή πολιτική έχει τρία γνωστά μειονεκτήματα: 65

66 Τοπικό maximα: Ένα τοπικό maximum, σε αντίθεση με ένα συνολικό maximum είναι μια κορυφή που είναι χαμηλότερη από την υψηλότερη κορυφή στο χώρο των καταστάσεων. Μόλις βρεθεί σε τοπικό maximum, ο αλγόριθμος θα σταματήσει παρ ότι η λύση μπορεί να μην είναι ακόμα ικανοποιητική. Πλατώ: Το πλατώ είναι μια περιοχή στο χώρο καταστάσεων όπου η συνάρτηση αξιολόγησης είναι απαραίτητα επίπεδη. Η αναζήτηση θα διεξάγει έναν τυχαίο περίπατο. Εικόνα 2.13 Αλγόριθμοι επαναληπτικής βελτίωσης προσπαθούν να βρουν κορυφές σε μια επιφάνεια από καταστάσεις όπου το ύψος καθορίζεται από μια συνάρτηση αξιολόγησης function HILL-CLIMBING( problem ) returns a solution state inputs : problem, a problem local variables : current, a node next, a node current MAKE-NODE (INITIAL-STATE [ problem ]) loop do next a highest-valued successor of current if VALUE [next ] < VALUE [ current ] then return current current next end Εικόνα 2.14 Ο αλγόριθμος αναζήτησης ανάβασης λόφου 66

67 Κορυφογραμμή: Μια κορυφογραμμή μπορεί να έχει πλαγιές που έχουν μια κλίση, έτσι ώστε η αναζήτηση να φτάσει στο ψηλότερο σημείο της κορυφογραμμής με ευκολία, αλλά η κορυφή να μπορεί να γείρει πολύ απαλά προς μια άκρη. Εκτός κι αν υπάρχουν τελεστές για να μετακινηθούν άμεσα κατά μήκος της κορυφογραμμής, η αναζήτηση μπορεί να ταλαντεύεται από πλευρά σε πλευρά, κάνοντας μικρή πρόοδο. Σε κάθε περίπτωση, ο αλγόριθμος φτάνει σε ένα σημείο όπου δεν μπορεί να προοδεύσει άλλο. Εάν συμβεί αυτό, ένα προφανές πράγμα που μπορεί να γίνει είναι να ξεκινήσει πάλι από ένα αρχικό σημείο. Η τυχαία επανεκκίνηση της ανάβασης λόφου κάνει ακριβώς αυτό: διευθύνει μια σειρά από αναζητήσεις ανάβασης λόφου από αρχικές καταστάσεις, που έχουν παραχθεί τυχαία, και τις τρέχει μέχρι να σταματήσουν ή να μην κάνουν κάποια αξιόλογη πρόοδο. Κρατάει το καλύτερο αποτέλεσμα μέχρι στιγμής απ όλες τις αναζητήσεις. Μπορεί να χρησιμοποιήσει έναν σταθερό αριθμό επαναλήψεων, ή μπορεί να συνεχίσει μέχρι το καλύτερο αποτέλεσμα που έχει αποθηκευθεί να μην έχει βελτιωθεί για ένα συγκεκριμένο αριθμό επαναλήψεων. Εάν επιτρέπονται αρκετές επαναλήψεις, τότε η τυχαία επανεκκίνηση ανάβασης λόφου θα βρει τελικά τη βέλτιστη λύση. Η επιτυχία της ανάβασης λόφου εξαρτάται πολύ απ το σχήμα που έχει η «επιφάνεια» του χώρου καταστάσεων: εάν υπάρχουν μόνο λίγα τοπικά maxima τότε η τυχαία επανεκκίνηση ανάβασης λόφου θα βρει πολύ γρήγορα μια καλή λύση. Ένα ρεαλιστικό πρόβλημα έχει επιφάνεια που μοιάζει με ακανθόχοιρο. Εάν το πρόβλημα είναι NP-ολοκληρώσιμο, τότε πολύ πιθανό δεν μπορούμε να επιτύχουμε κάτι καλύτερο από εκθετικό χρόνο. Εννοείται ότι πρέπει να υπάρχει ένας εκθετικός αριθμός τοπικών maxima για να έχουμε καλό αποτέλεσμα. Συνήθως, μια λογικά καλή λύση μπορεί να βρεθεί μετά από έναν μικρό αριθμό επαναλήψεων Προσομοίωση Ψύξης Αντί να ξεκινήσουμε πάλι τυχαία όταν κολλάμε σε ένα τοπικό maximum, μπορούμε να επιτρέψουμε στην αναζήτηση να κάνει μερικά βήματα προς τα κάτω για να αποφύγει το τοπικό maximum. Αυτή είναι πάνω κάτω η ιδέα της προσομοίωσης ψύξης (εικόα 2.15). Η πιο εσωτερική επανάληψη της προσομοίωσης ψύξης μοιάζει πολύ με την ανάβαση λόφου. Αντί να επιλέξουμε την καλύτερη κίνηση, επιλέγουμε μια τυχαία κίνηση. Εάν η κίνηση αυτή βελτιώνει την κατάσταση, τότε πάντα εκτελείται. Διαφορετικά, ο αλγόριθμος κάνει την κίνηση που έχει πιθανότητα μικρότερη του 1. Η πιθανότητα μειώνεται εκθετικά ανάλογα με το πόσο «κακή» είναι η κίνηση το ποσό ΔΕ κατά το οποίο χειροτερεύει η αξιολόγηση. Μια δεύτερη παράμετρος T, χρησιμοποιείται για να καθορίσουμε την πιθανότητα. Σε υψηλότερες τιμές του Τ, οι «κακές» κινήσεις είναι πιο πιθανό να επιτραπούν. Καθώς το Τ τείνει προς το 0, γίνονται όλο πιο απίθανες οι κακές κινήσεις, μέχρι ο αλγόριθμος να συμπεριφέρεται λίγο-πολύ όπως η ανάβαση λόφου. Το δεδομένο χρονοδιάγραμμα καθορίζει την τιμή του Τ σαν μια συνάρτηση του πόσοι κύκλοι έχουν ήδη ολοκληρωθεί. 67

68 Ο αλγόριθμος αναπτύχθηκε από μια απλή αναλογία με την ψύξη, η διαδικασία της ψύξης ενός υγρού μέχρι να παγώσει τελείως. Η συνάρτηση ΤΙΜΗ αναφέρεται στη συνολική ενέργεια των ατόμων του υλικού και το Τ αναφέρεται στη θερμοκρασία. Το χρονοδιάγραμμα αναφέρεται στο ρυθμό με τον οποίον μειώνεται η θερμοκρασία. Ανεξάρτητες κινήσεις στο χώρο καταστάσεων αντιστοιχούν σε τυχαίες αντανακλάσεις που οφείλονται σε θερμικό θόρυβο. Κάποιος μπορεί να αποδείξει ότι εάν η θερμοκρασία μειώνεται αργά, το υλικό θα πραγματοποιήσει έναν σχηματισμό πιο μικρής ενέργειας. Αυτό αντιστοιχεί με την πρόταση ότι εάν το Τ μειωθεί αρκετά αργά, ο αλγόριθμος θα βρει ένα γενικό βέλτιστο. function SIMULATED-ANNEALING ( problem, schedule ) returns a solution state inputs : problem, a problem schedule, a mapping from time to temperature local variables : current, a node ` next, a node T, a temperature controlling the probability of downward steps current MAKE-NODE(INITIAL-STATE[problem]) for t 1 to do T schedule [ t ] if T = 0 then return current next a randomly selected successor of current ΔΕ VALUE[ next ] VALUE [current ] if ΔΕ > 0 then current next else current next only with probability e ΔΕ/Τ Εικόνα 2.15 Ο αλγόριθμος αναζήτησης Προσομοίωσης Ψύξης Η προσομοίωση ψύξης χρησιμοποιήθηκε αρχικά πολύ για να λύσει προβλήματα σχεδιασμού κυκλωμάτων μεγάλης κλίμακας στις αρχές της δεκαετίας του 80. Από τότε έχει εφαρμοστεί ευρέως σε χρονοπρογραμματισμό εργοστασίων κι άλλων ενεργειών μεγάλης κλίμακας βελτιστοποίησης Εφαρμογές σε προβλήματα ικανοποίησης περιορισμών Προβλήματα ικανοποίησης περιορισμών (CSPS ) μπορούν να λυθούν με μεθόδους επαναληπτικής βελτίωσης αναθέτοντας τιμές σε όλες τις μεταβλητές, και μετά να εφαρμοστούν τελεστές μεταβολών, έτσι ώστε να μετακινηθεί ο σχηματισμός προς μια λύση. Οι τελεστές μεταβολών απλά αναθέτουν μια διαφορετική τιμή σε κάθε μεταβλητή. Για παράδειγμα, στο πρόβλημα των 8-Βασιλισσών, μια αρχική κατάσταση έχει οχτώ Βασίλισσες στη σκακιέρα, κι ένας τελεστής μετακινεί τη Βασίλισσα απ το ένα τετράγωνο στο άλλο. Οι αλγόριθμοι που λύνουν CSP με αυτόν τον τρόπο συνήθως αποκαλούνται μέθοδοι ευριστικής επισκευής, επειδή επιδιορθώνουν ασυνέπειες στον τρέχοντα σχηματισμό. Στην επιλογή 68

69 μιας καινούριας τιμής για μια μεταβλητή, η πιο προφανής ευριστική είναι να επιλεχθεί η τιμή που έχει σαν αποτέλεσμα τον ελάχιστο αριθμό συγκρούσεων με άλλες μεταβλητές-η ευριστική των ελαχίστων συγκρούσεων. Αυτό φαίνεται στην εικόνα 2.16 για το πρόβλημα των 8 Βασιλισσών, το οποίο και επιλύεται σε δύο βήματα. Οι ελάχιστες συγκρούσεις είναι αναπάντεχα αποτελεσματικές για πολλά CSPS, και είναι ικανές να λύσουν ένα πρόβλημα του ενός εκατομμυρίου Βασιλισσών με ένα μέσο όρο σε λιγότερο από 50 βήματα. Επίσης, χρησιμοποιήθηκε για να χρονοπρογραμματίσει παρατηρήσεις για το διαστημικό τηλεσκόπιο Hubble, μειώνοντας το χρόνο που χρειάζεται για να προγραμματιστεί μια εβδομάδα παρατηρήσεων από τρεις εβδομάδες σε περίπου δέκα λεπτά. Εικόνα 2.16 Μία λύση δύο βημάτων για ένα πρόβλημα 8-βασιλισσών χρησιμοποιώντας τις ελάχιστες συγκρούσεις. Σε κάθε στάδιο μια βασίλισσα επιλέγεται για επανατοποθέτηση στη στήλη της. Ο αριθμός των συγκρούσεων φαίνεται σε κάθε τετράγωνο. Ο αλγόριθμος μετακινεί τη βασίλισσα στο τετράγωνο με τις ελάχιστες συγκρούσεις, σπάζοντας ισοπαλίες τυχαία. 2.5 Περίληψη Αυτή η ενότητα εξέτασε την εφαρμογή ευριστικών για να μειώσει το κόστος αναζήτησης. Είδαμε έναν αριθμό αλγορίθμων που χρησιμοποιούν ευριστικές, και είδαμε ότι η βελτιστοποίηση είναι ακριβή από την άποψη του κόστους αναζήτησης, ακόμα και με καλές ευριστικές. Η αναζήτηση του καλύτερου πρώτου είναι απλά ΓΕΝΙΚΗ-ΑΝΑΖΗΤΗΣΗ όπου οι κόμβοι ελάχιστου κόστους επεκτείνονται πρώτοι. Εάν ελαχιστοποιήσουμε το εκτιμηθέν κόστος για να φτάσουμε στην τελική κατάσταση, το h(n) έχουμε την αχόρταγη αναζήτηση. Ο χρόνος αναζήτησης συνήθως μειώνεται σε σχέση με τον μη ενημερωμένο αλγόριθμο, αλλά ο αλγόριθμος δεν είναι ούτε βέλτιστος ούτε ολοκληρωμένος. Ελαχιστοποιώντας το f(n)=g(n)+h(n), συνδυάζονται τα πλεονεκτήματα της αναζήτησης ομοιόμορφου κόστους και της αχόρταγης αναζήτησης. Εάν διαχειριστούμε τις επαναλαμβανόμενες καταστάσεις και εγγυηθούμε ότι η h(n) ποτέ δεν υπερεκτιμά, τότε έχουμε την αναζήτηση Α*. 69

70 Ο Α* είναι ολοκληρωμένος, βέλτιστος και βέλτιστα αποτελεσματικός ανάμεσα σε όλους τους βέλτιστους αλγορίθμους αναζήτησης. Η πολυπλοκότητα χώρου του είναι ακόμα απαγορευτική. Η πολυπλοκότητα χρόνου των ευριστικών αλγορίθμων εξαρτάται από την ποιότητα της ευριστικής συνάρτησης. Οι καλές ευριστικές μπορούν πολλές φορές να παρασκευαστούν εξετάζοντας τον ορισμό προβλήματος ή γενικεύοντας από την εμπειρία με την τάξη των προβλημάτων. Μπορούμε να μειώσουμε τις απαιτήσεις του Α* με αλγορίθμους περιορισμένης μνήμης όπως είναι ο IDA* (επαναληπτική αναζήτηση σε βάθος του Α * ) και ο SMA* (απλοποιημένος Α* περιορισμένης μνήμης). Οι αλγόριθμοι επαναληπτικής βελτίωσης κρατάνε μόνο μια κατάσταση στη μνήμη, αλλά μπορεί να κολλήσουν σε τοπικό maxima. Η προσομοίωση ψύξης παρέχει έναν τρόπο για να ξεφύγουμε από το τοπικό maxima, και είναι ολοκληρωμένη και βέλτιστη. Για προβλήματα ικανοποίησης περιορισμών, η διάταξη των ευριστικών μεταβλητής και τιμής μπορούν να παρέχουν τεράστια οφέλη από πλευράς απόδοσης. Οι τρέχοντες αλγόριθμοι συχνά λύνουν πολύ μεγάλα προβλήματα πολύ γρήγορα. 3. ΠΑΙΞΙΜΟ ΠΑΙΧΝΙΔΙΟΥ Εξετάζουμε όλα τα προβλήματα που προκύπτουν όταν προσπαθούμε να προσχεδιάσουμε σε έναν κόσμο που περιλαμβάνει έναν εχθρικό πράκτορα. 3.1 Εισαγωγή : Τα Παιχνίδια σαν Προβλήματα Αναζήτησης Τα παιχνίδια έχουν απασχολήσει τις διανοητικές ικανότητες των ανθρώπων για όσο καιρό υπήρχε ο πολιτισμός. Παιχνίδια όπως το σκάκι προσφέρουν καθαρό ανταγωνισμό. Το παίξιμο γίνεται ένας ελκυστικός στόχος για την αναζήτηση της Τεχνητής Νοημοσύνης. Η κατάσταση του παιχνιδιού είναι εύκολο να αναπαρασταθεί και οι πράκτορες συνήθως περιορίζονται σε ένα αρκετά μικρό αριθμό καλά ορισμένων ενεργειών. Αυτό κάνει το παίξιμο του παιχνιδιού μια εξιδανίκευση των κόσμων όπου οι επιθετικοί πράκτορες ενεργούν έτσι ώστε να καταστρέψουν το καλώς είναι του καθενός. Λιγότερο αφηρημένα παιχνίδια, όπως είναι το ποδόσφαιρο ή το κροκέ δεν έχουν συγκεντρώσει τέτοιο ενδιαφέρον στην κοινότητα της Τεχνητής Νοημοσύνης. Οι τωρινοί ερευνητές έχουν στραφεί προς το σκάκι για αρκετούς λόγους. Ένας υπολογιστής που παίζει σκάκι θα ήταν μια ζωντανή απόδειξη μιας μηχανής που κάνει μια σκέψη που απαιτεί εξυπνάδα. Επιπλέον, η απλότητα των κανόνων, και το γεγονός ότι η κατάσταση του κόσμου είναι 70

71 απόλυτα προσβάσιμη από το πρόγραμμα σημαίνει ότι είναι εύκολο να αναπαρασταθεί το παιχνίδι σαν μια αναζήτηση μέσα από ένα χώρο πιθανών θέσεων παιχνιδιού. Η αναπαράσταση του υπολογιστή του παιχνιδιού μπορεί να είναι σωστή σε κάθε σχετική λεπτομέρεια σε αντίθεση με την αναπαράσταση του προβλήματος του πολέμου, για παράδειγμα. Η εμφάνιση ενός αντιπάλου κάνει το πρόβλημα της απόφασης κάπως πιο πολύπλοκο απ ότι στα προβλήματα αναζήτησης. Ο αντίπαλος εισάγει την έννοια της αβεβαιότητας διότι κανείς δεν ξέρει τι μπορεί αυτός ή αυτή να κάνει. Ουσιαστικά, όλα τα προγράμματα παιξίματος παιχνιδιού πρέπει να αντιμετωπίσουν το πρόβλημα της συνεκτικότητας. Η αβεβαιότητα δεν συνίσταται όπως έχουμε δει στο πέταγμα του ζαριού ή στον καιρό. Ο αντίπαλος θα προσπαθήσει όσο το δυνατόν περισσότερο να κάνει την λιγότερο καλοήθη κίνηση, σε αντίθεση με τον καιρό ή το ζάρι που υποτίθεται ότι είναι αδιάφορος ως προς τους στόχους του πράκτορα. Αυτό που κάνει τα παιχνίδια πραγματικά διαφορετικά είναι ότι είναι πολύ δύσκολο συνήθως να επιλυθούν. Το σκάκι, για παράδειγμα, έχει έναν μέσο όρο παράγοντα διακλάδωσης 35 και τα παιχνίδια συνήθως φτάνουν στις 50 κινήσεις ανά παίχτη, οπότε το δέντρο αναζήτησης έχει γύρω στους κόμβους (παρ όλο που υπάρχουν «μόνο» γύρω στις διαφορετικές νόμιμες θέσεις). Η τρίλιζα είναι συνήθως βαρετή για ενήλικες ακριβώς επειδή είναι εύκολο να καθοριστεί η σωστή κίνηση. Η πολυπλοκότητα των παιχνιδιών εισάγει ένα τελείως νέο είδος αβεβαιότητας, που δεν έχουμε δει μέχρι τώρα, η αβεβαιότητα εμφανίζεται όχι επειδή υπάρχει ελλιπής πληροφορία, αλλά επειδή δεν υπάρχει αρκετός χρόνος για να υπολογίσει κανείς τις ακριβείς συνέπειες κάθε κίνησης. Αντ αυτού, κάποιος θα πρέπει να κάνει την καλύτερη δυνατή μαντεψιά βασιζόμενος στην προηγούμενη εμπειρία και να ενεργήσει πριν καλά καλά να είναι σίγουρος του ποια κίνηση να κάνει. Το παιχνίδι είναι πολύ περισσότερο όπως ο πραγματικός κόσμος απ ότι τα συνήθη προβλήματα αναζήτησης που έχουμε δει μέχρι τώρα. Επειδή συνήθως έχουν περιορισμούς χρόνου, τα παιχνίδια επιβάλουν αυστηρές ποινές σε περίπτωση μη-αποτελεσματικότητας. Εάν η υλοποίηση μιας αναζήτησης Α * είναι 10% λιγότερο αποτελεσματική θα κοστίσει απλά λίγο παραπάνω να εκτελεστεί για να ολοκληρωθεί, ενώ ένα πρόγραμμα σκακιού που είναι 10% λιγότερο αποτελεσματικό θα χτυπηθεί μέχρι τελικής πτώσεως. Γι αυτό το λόγο η αναζήτηση του παιξίματος παιχνιδιού έχει δημιουργήσει έναν αριθμό από πολύ ενδιαφέρουσες ιδέες του πώς να χρησιμοποιήσουμε καλύτερα το χρόνο μας για να φτάσουμε σε καλές αποφάσεις, όταν το να φτάσουμε σε βέλτιστες αποφάσεις είναι αδύνατον. Ξεκινάμε αναλύοντας πως θα βρούμε την θεωρητικά καλύτερη κίνηση. Στη συνέχεια εξετάζουμε τεχνικές επιλογής μιας καλής κίνησης όταν ο χρόνος είναι περιορισμένος. Το ξεκαθάρισμα μας επιτρέπει να αγνοήσουμε πλευρές του δέντρου αναζήτησης που δεν επιφέρουν κάποια αλλαγή ως προς την τελική επιλογή και οι ευριστικές συναρτήσεις αξιολόγησης μας επιτρέπουν να προσεγγίσουμε την πραγματική χρησιμότητα μιας κατάστασης χωρίς να κάνουμε μια ολοκληρωμένη αναζήτηση. Συζητάμε παιχνίδια όπως είναι το τάβλι που περιλαμβάνουν το στοιχείο 71

72 της τύχης. Τέλος, εξετάζουμε πως επιτυγχάνουν προγράμματα παιχνιδιών ενάντια στην ισχυρή ανθρώπινη αντίθεση. 3.2 Τέλειες Αποφάσεις σε Παιχνίδια Δύο Ατόμων Θα εξετάσουμε τη γενική περίπτωση ενός παιχνιδιού με δύο παίχτες, τους οποίους θα αποκαλούμε ΜΑΧ και ΜΙΝ για λόγους που σύντομα θα γίνουν εμφανείς. Ο ΜΑΧ κινείται πρώτος και στη συνέχεια κινείται ο καθένας με τη σειρά του μέχρι να τελειώσει το παιχνίδι. Στο τέλος του παιχνιδιού, οι βαθμοί απονέμονται στον παίχτη που κέρδισε (ή μερικές φορές αποδίδονται ποινές στον χαμένο). Ένα παιχνίδι μπορεί να οριστεί σαν το είδος του προβλήματος αναζήτησης με τα ακόλουθα συστατικά: Η αρχική κατάσταση, που περιλαμβάνει τη θέση στη σκακιέρα και μια ένδειξη του ποιανού κίνηση είναι. Ένα σύνολο τελεστών, που ορίζουν τις επιτρεπτές κινήσεις που μπορεί να κάνει ένας παίχτης. Ένας έλεγχος τελικής κατάστασης, που καθορίζει πότε έχει τελειώσει το παιχνίδι. Καταστάσεις όπου το παιχνίδι έχει τελειώσει αποκαλούνται τελικές καταστάσεις. Μια συνάρτηση χρησιμότητας (που επίσης αποκαλείται επίσης συνάρτηση απόδοσης) η οποία δίνει μια αριθμητική τιμή για το αποτέλεσμα ενός παιχνιδιού. Στο σκάκι, το αποτέλεσμα είναι νίκη, ήττα ή ισοπαλία, τα οποία μπορούν να αναπαρασταθούν από τις τιμές + 1, -1 ή 0. Κάποια παιχνίδια έχουν μια μεγαλύτερη ποικιλία αποτελεσμάτων, στο τάβλι ποικίλουν από +192 μέχρι 192. Εάν αυτό ήταν ένα κανονικό πρόβλημα αναζήτησης, τότε το μόνο που θα έπρεπε να κάνει ο ΜΑΧ θα ήταν να βρει μια ακολουθία κινήσεων που οδηγεί σε μια κατάσταση τερματισμού έτσι ώστε να είναι ο νικητής και στη συνέχεια να κάνει την πρώτη κίνηση της ακολουθίας. Και ο ΜΙΝ όμως έχει κινήσεις να κάνει. Γι αυτό το λόγο λοιπόν ο ΜΑΧ θα πρέπει να βρει μια στρατηγική που θα τον οδηγήσει σε μια νικήτρια κατάσταση τερματισμού ανεξάρτητα απ το τι κάνει ο ΜΙΝ, όπου η στρατηγική περιλαμβάνει τη σωστή κίνηση για τον ΜΑΧ για κάθε πιθανή κίνηση του ΜΙΝ. Θα ξεκινήσουμε δείχνοντας πώς να βρούμε τη βέλτιστη (ή λογική) στρατηγική, αν και δεν θα έχουμε αρκετό χρόνο για να τον υπολογίσουμε. Η εικόνα 3.1 δείχνει μέρος του δέντρου αναζήτησης για το τάβλι. Από την αρχική κατάσταση, ο ΜΑΧ έχει μια επιλογή εννέα πιθανών κινήσεων. Το παιχνίδι εναλλάσσεται ανάμεσα στην τοποθέτηση Χ του ΜΑΧ και στην τοποθέτηση Ο του ΜΙΝ μέχρι να φτάσουμε σε φύλλα κόμβους που αντιστοιχούν σε τελικές καταστάσεις : καταστάσεις όπου ένας παίχτης έχει 3 στη σειρά ή όλα τα τετράγωνα γεμάτα. Ο αριθμός κάθε κόμβου-φύλλου δηλώνει την τιμή χρησιμότητας της τελικής κατάστασης από την πλευρά του ΜΑΧ, υψηλές τιμές θεωρούνταν καλές για τον ΜΑΧ και κακές για 72

73 τον ΜΙΝ (απ όπου παίρνουν και τα ονόματά τους οι παίχτες). Είναι δουλειά του ΜΑΧ το να χρησιμοποιήσει το δέντρο αναζήτησης για να καθορίσει την καλύτερη κίνηση. Ακόμα κι ένα απλό παιχνίδι όπως είναι το τάβλι είναι πολύ πολύπλοκο για να δείξουμε ολόκληρο το δέντρο αναζήτησης, οπότε θα δείξουμε το απόλυτα τετριμμένο παιχνίδι όπως φαίνεται στη δεύτερη εικόνα. Οι πιθανές κινήσεις του ΜΑΧ είναι Α1, Α2,Α3. Οι πιθανές απαντήσεις για το Α1 του ΜΙΝ είναι Α11, Α12, Α13 κ.ο.κ. Αυτό το παιχνίδι τελειώνει μετά από μια κίνηση του ΜΑΧ και μια του ΜΙΝ. (Λέμε ότι αυτό το παιχνίδι έχει βάθος μια κίνηση, αποτελούμενη από δύο μισές κινήσεις ή δύο κλώνους κόμβου). Οι χρησιμότητες των τερματικών καταστάσεων σ αυτό το παιχνίδι κυμαίνονταν από 2 έως 14. Ο αλγόριθμος minmax έχει σχεδιαστεί για να καθορίσει τη βέλτιστη στρατηγική για τον ΜΑΧ, και για να αποφασίσει ποια είναι η πρώτη καλύτερη κίνηση. Ο αλγόριθμος αποτελείται από πέντε βήματα: Παραγωγή ολόκληρου του δέντρου αναζήτησης, μέχρι τις τελικές καταστάσεις Εφαρμογή της συνάρτησης χρησιμότητας σε κάθε τελική κατάσταση για να πάρουμε την τιμή της. Χρήση της χρησιμότητας των τελικών καταστάσεων για να καθορίσουμε τη χρησιμότητα των κόμβων ένα επίπεδο πιο πάνω στο δέντρο αναζήτησης. Θεωρείστε στην εικόνα 3.2 τους τρεις πιο αριστερά κόμβους-φύλλα. Στον τρίγωνο κόμβο από πάνω τους, ο ΜΙΝ έχει την επιλογή να μετακινηθεί και το καλύτερο που έχει να κάνει είναι να επιλέξει το Α11, που οδηγεί στο ελάχιστο αποτέλεσμα, 3. Αν και η συνάρτηση χρησιμότητας δεν είναι άμεσα εφαρμόσιμη σε αυτόν τον κόμβο, μπορούμε να του αναθέσουμε την τιμή 3, υπό την προϋπόθεση ότι το ΜΙΝ θα κάνει τη σωστή κίνηση. Με παρόμοια λογική, στους άλλους δύο κόμβους ανατίθεται τιμή χρησιμότητας 2. Συνέχιση της αποθήκευσης των τιμών των φύλλων κόμβων προς τη ρίζα, ένα επίπεδο τη φορά. Τελικά, οι αποθηκευμένες τιμές φτάνουν στην κορυφή του δέντρου, σ εκείνο το σημείο ο ΜΑΧ επιλέγει την κίνηση που οδηγεί στην υψηλότερη τιμή. Στον κορυφαίο κόμβο του σχήματος 3.2, ο ΜΑΧ έχει μια επιλογή από τρεις κινήσεις, που θα οδηγήσει σε καταστάσεις με χρησιμότητα 3,2 και 2 αντίστοιχα. Επιπλέον η αρχική κίνηση του ΜΑΧ είναι η Α1.Αυτή αποκαλείται η minimax απόφαση, διότι μεγιστοποιεί τη χρησιμότητα υπό την προϋπόθεση ότι ο αντίπαλος θα παίξει τέλεια ώστε να το ελαχιστοποιήσει. 73

74 Η εικόνα 3.3 δείχνει μια πιο επίσημη περιγραφή του αλγορίθμου minimax. Η συνάρτηση κορυφαίου επιπέδου ΑΠΟΦΑΣΗ MINIMAX, επιλέγει τις διαθέσιμες κινήσεις, οι οποίες αξιολογούνται με τη σειρά τους από τη συνάρτηση MINIMAX- ΤΙΜΗ. Εικόνα 3.1 Ενα δέντρο μερικής αναζήτησης για το παιχνίδι του ταβλιού. Ο επάνω κόμβος είναι η αρχική κατάσταση, και ο MAX μετακινείται πρώτος, βάζοντας ένα χ σε κάποιο τετρτάγωνο. Δείχνουμε ένα μέρος του δέντρου αναζήτησης, δίνοντας εναλλακτικές λύσεις για το MIN και το MAX. Εικόνα 3.2 Ενα δέντρο παιχνιδιού με δύο κλώνους, όπως παράχθηκε από τον αλγόριθμο minimax. Οι κόμβοι είναι για κινήσεις του MAX και οι κόμβοι είναι για κινήσεις του ΜΙΝ. Eάν το μέγιστο βάθος του δέντρου είναι n και υπάρχουν b επιτρεπτές κινήσεις σε κάθε σημείο, τότε η πολυπλοκότητα χρόνου του αλγορίθμου minimax είναι 0(bm). Ο αλγόριθμος είναι μια 74

75 αναζήτηση πρώτα σε βάθος (αν και εδώ η υλοποίηση είναι μέσω αναδρομής παρά χρησιμοποιώντας μια ουρά από κόμβους), έτσι οι απαιτήσεις για χώρο είναι μόνο γραμμικές και κυμαίνονται ανάμεσα στο n και b. Για πραγματικά παιχνίδια, φυσικά, το κόστος του χρόνου είναι μη-πρακτικό αλλά αυτός ο αλγόριθμος χρησιμεύει σαν βάση για πιο ρεαλιστικές μεθόδους και για μαθηματική ανάλυση των παιχνιδιών. function MINIMAX-DECISION ( game ) returns an operator for each op in OPERATORS [ game ] do VALUE [op ] MINIMAX-VALUE(APPLY(op, game), game) end return the op with the highest VALUE [ op ] function MINIMAX-VALUE(state, game) returns a utility value if TERMINAL-TEST[game](state) then return UTILITY[game](state) else if MAX is to move in state then return the highest MINIMAX-VALUE of SUCCESSORS(state) else return the lowest MINIMAX-VALUE of SUCCESSORS(state) Εικόνα 3. 3 Ενας αλγόριθμος για τον υπολογισμό των minimax αποφάσεων. Επιστρέφει τον τελεστή που αντιστοιχεί στην καλύτερη δυνατή κίνηση, δηλαδή στην κίνηση που οδηγεί στο αποτέλεσμα με την καλύτερη χρησιμότητα, υποθέτοντας ότι ο αντίπαλος παίζει για να ελαχιστοποιήσει αυτή τη χρησιμότητα. Η συνάρτηση MINIMAX-VALUE διατρέχει όλο το δέντρο του παιχνιδιού, μέχρι τα φύλλα, γαι να υπολογίσει την τιμή μιας κατάστασης. 3.3 Ατελείς Αποφάσεις Ο αλγόριθμος minimax υποθέτει ότι το πρόγραμμα έχει χρόνο να ψάξει σε βάθος τις τελικές καταστάσεις, οι οποίες είναι συνήθως μη πρακτικές. Μια διατριβή για το σκάκι πρότεινε αντί να ψάχνεις σε βάθος τις τελικές καταστάσεις χρησιμοποιώντας τη συνάρτηση χρησιμότητας, να περικόπτεις την αναζήτηση νωρίτερα και να εφαρμόζεις μια ευριστική συνάρτηση αξιολόγησης στα φύλλα του δέντρου. Με άλλα λόγια, η πρόταση είναι μεταβάλουμε το minimax με δύο τρόπους: η συνάρτηση χρησιμότητας αντικαθίσταται από μια συνάρτηση αξιολόγησης ΑΞΙΟΛΟΓΗΣΗ, και ο έλεγχος τελικής κατάστασης αντικαθίσταται από έναν έλεγχο περικοπής ΕΛΕΓΧΟΣ ΤΕΡΜΑΤΙΣΜΟΥ Συναρτήσεις Αξιολόγησης 75

76 Μια συνάρτηση αξιολόγησης επιστρέφει μια εκτίμηση της αναμενόμενης χρησιμότητας του παιχνιδιού από μια δεδομένη θέση. Για αιώνες, οι παίκτες σκακιού, έχουν αναπτύξει τρόπους για να κρίνουν τις πιθανότητες νίκης της κάθε πλευράς βασιζόμενοι σε εύκολα υπολογίσιμα χαρακτηριστικά μιας θέσης. Για παράδειγμα, τα εισαγωγικά βιβλία σκακιού, δίνουν μια κατά προσέγγιση υλική τιμή για κάθε κομμάτι: κάθε πιόνι αξίζει 1, ένας ιππότης ή αξιωματικός αξίζει 3, ένας πύργος 5 και η βασίλισσα 9. Άλλα χαρακτηριστικά όπως είναι «η καλή δομή του πιονιού» και η «ασφάλεια του Βασιλιά» λένε ότι μπορεί να αξίζει μισό πιόνι. Εάν όλα τα άλλα είναι ίσα, η πλευρά που έχει το ασφαλές υλικό πλεονέκτημα ενός πιονιού ή περισσοτέρων, πιθανόν να νικήσει το παιχνίδι κι ένα πλεονέκτημα 3 βαθμών είναι αρκετό για μια σχεδόν σίγουρη νίκη. Η εικόνα 3.4 δείχνει τέσσερις θέσεις μαζί με τις αξιολογήσεις τους. Θα έπρεπε να ήταν ξεκάθαρο ότι η επίδοση ενός προγράμματος παιχνιδιού εξαρτάται πάρα πολύ από την ποιότητα της συνάρτησης αξιολόγησής του. Εάν είναι ανακριβής, τότε θα οδηγήσει το πρόγραμμα σε θέσεις οι οποίες είναι προφανώς «καλές», αλλά στην πραγματικότητα καταστροφικές. Πως μετράμε την ποιότητα; Πρώτα, η συνάρτηση αξιολόγησης πρέπει να συμφωνεί με τη συνάρτηση χρησιμότητας στις τελικές καταστάσεις. Δεύτερον, δεν πρέπει να παίρνει πολύ χρόνο. Ομως, υπάρχει μια ανταλλαγή ανάμεσα στην ακρίβεια της συνάρτησης αξιολόγησης και στο κόστος χρόνου της. Τρίτον, η συνάρτηση αξιολόγησης θα πρέπει να αντανακλά ακριβώς τις πραγματικές πιθανότητες νίκης. Κάποιος μπορεί να αναρωτιέται σχετικά με τη φράση «πιθανότητες νίκης». Εξάλλου, το σκάκι δεν είναι ένα παιχνίδι τύχης. Αλλά εάν έχουμε σταματήσει την αναζήτηση σε μία συγκεκριμένη μη-τερματική κατάσταση, τότε δεν ξέρουμε τι θα συμβεί σε διαδοχικές κινήσεις. Συγκεκριμένα, υποθέστε ότι η συνάρτηση αξιολόγησης μετρά μόνο υλικές τιμές. Τότε, στη θέση ανοίγματος, η αξιολόγηση είναι 0, επειδή και οι δύο πλευρές έχουν το ίδιο υλικό. Ολες οι θέσεις έως την πρώτη κατάληψη τετραγώνου θα έχουν επίσης μια αξιολόγηση 0. Εάν ο MAX καταφέρει να καταλάβει έναν αξιωματικό χωρίς να χάσει πιόνι, τότε η κίνηση αυτή θα έχει αξιολόγηση σαν αποτέλεσμα, 3. Το σημαντικό σημείο είναι ότι με την δεδομένη τιμή αξιολόγησης καλύπτονται αρκετές διαφορετικές θέσεις όλες οι θέσεις όπου ο MAX είναι πάνω από έναν αξιωματικό, ομαδοποιούνται σε μια κατηγορία, στην οποία δίνεται η επικεφαλίδα «3». Τώρα μπορούμε να δούμε πως η λέξη «τύχη» έχει νόημα : η συνάρτηση αξιολόγησης θα πρέπει να αντανακλά την πιθανότητα, ότι μια τυχαία επιλεγμένη θέση από αυτή την κατηγορία, οδηγεί σε νίκη, (ήττα ή ισοπαλία) βασιζόμενοι σε μια προηγούμενη εμπειρία. Αυτό υπονοεί ότι η συνάρτηση αξιολόγησης θα πρέπει να χαρακτηριστεί με κανόνες πιθανότητας: εάν μια θέση Α έχει 100% πιθανότητα νίκης, πρέπει να έχει αξιολόγηση 0, και αν η θέση Β έχει μια πιθανότητα νίκης 50%, ήττας 25%, και ισοπαλίας 25%, η αξιολόγηση πρέπει να είναι ως εξής : (+1) 0.50+(-1) =

77 Αλλά στην πραγματικότητα, δεν χρειάζεται να είμαστε τόσο ακριβείς, οι πραγματικές αριθμητικές τιμές της συνάρτησης αξιολόγησης δεν είναι σημαντικές, εφ όσον το Α βαθμολογείται υψηλότερα από τον Β. Η συνάρτηση αξιολόγησης του πλεονεκτήματος υλικού υποθέτει ότι η τιμή ενός πιονιού μπορεί να αριθμεί ανεξάρτητα από τα άλλα πιόνια που είναι παρόντα στη σκακιέρα. Αυτό το είδος της συνάρτησης αξιολόγησης ονομάζεται γραμμική συνάρτηση σημαντικότητας, επειδή μπορεί να εκφραστεί ως : w1.f1+w2.f2 +.+wn.fn Όπου w είναι η σημαντικότητα, και f τα χαρακτηριστικά της συγκεκριμένης θέσης. Τα w θα ήταν οι τιμές των πιονιών (1 για πιόνι, 3 για αξιωματικό κλπ) και τα f θα ήταν οι αριθμοί για κάθε είδος πιονιού στη σκακιέρα. Εικόνα 3.4 Μερικές θέσεις σκακιού και οι αξιολογήσεις τους Τώρα μπορούμε να δούμε από πού προέρχονται οι συγκεκριμένες τιμές πιονιών: δίνουν την καλύτερη προσέγγιση πιθανότητας νίκης σε μεμονωμένες κατηγορίες. 77

78 Τα περισσότερα προγράμματα παιχνιδιών χρησιμοποιούν γραμμική συνάρτηση αξιολόγησης αν και πρόσφατα μη-γραμμικές συναρτήσεις είχαν καλό ποσοστό επιτυχίας. Στο σχηματισμό της γραμμικής φόρμουλας, κάποιος πρέπει πρώτα να διαλέξει τα χαρακτηριστικά και μετά να ρυθμίσει τις σημαντικότητες μέχρι να αποδόσει το παιχνίδι. Η τελευταία ενέργεια μπορεί να αυτοματοποιηθεί βάζοντας το πρόγραμμα να παίξει πολλά παιχνίδια με τον εαυτό του, αλλά αυτή τη στιγμή κανείς δεν έχει ιδέα για το πώς να επιλέξεις αυτόματα καλά χαρακτηριστικά Περικόπτοντας την αναζήτηση Η απευθείας προσέγγιση για τον έλεγχο του ποσού της αναζήτησης είναι να καθορισθεί ένα σταθερό όριο βάθους, έτσι ώστε ο έλεγχος τελικής κατάστασης να πετύχει για όλους τους κόμβους σε βάθος d ή κάτω απ το βάθος d. Το βάθος επιλέγεται έτσι ώστε το ποσό του χρόνου που χρησιμοποιείται να μην ξεπεράσει αυτό που επιτρέπουν οι κανόνες του παιχνιδιού. Μια πιο στιβαρή προσέγγιση είναι να εφαρμοστεί επαναληπτική αναζήτηση σε βάθος. Όταν ο χρόνος τελειώνει το πρόγραμμα επιστρέφει την κίνηση που έχει επιλεχθεί από την πιο βαθιά ολοκληρωμένη αναζήτηση. Αυτές οι προσεγγίσεις μπορεί να έχουν καταστροφικές συνέπειες εξαιτίας της κατά προσέγγισης φύσεως της συνάρτησης αξιολόγησης. Θεωρείστε πάλι την απλή συνάρτηση αξιολόγησης για το σκάκι βασιζομένη σε πλεονέκτημα υλικού. Υποθέστε ότι το πρόγραμμα αναζητά μέχρι το όριο βάθους, φτάνοντας στην θέση που φαίνεται στο d τετράγωνο της εικόνας 3.4. Σύμφωνα με τη συνάρτηση υλικού, τα άσπρα είναι μπροστά από έναν ιππότη και γι αυτό είναι σχεδόν σίγουρο ότι θα νικήσουν. Επειδή όμως τα μαύρα παίζουν, η βασίλισσα των άσπρων χάνεται επειδή ο μαύρος ιππότης μπορεί να την καταλάβει χωρίς καμία αποζημίωση για τα άσπρα. Όμως, στην πραγματικότητα, η θέση κερδίζεται για τα μαύρα, αλλά αυτό μπορούμε να το δούμε μόνο κοιτάζοντας μπροστά σε έναν ακόμα κλώνο. Είναι φανερό ότι χρειάζεται ένας πιο φιλοσοφημένος έλεγχος τελικής κατάστασης. Η συνάρτηση αξιολόγησης θα πρέπει να εφαρμόζεται μόνο στις θέσεις που είναι ακίνητες, που είναι δηλαδή απίθανο να δείξουν άγριες ταλαντεύσεις τιμής στο κοντινό μέλλον. Στο σκάκι, για παράδειγμα, θέσεις που προτιμούνται για κατάληψη, δεν είναι ακίνητες για μια συνάρτηση αξιολόγησης η οποία απλά μετράει υλικό. Μη ακίνητες θέσεις μπορούν να επεκταθούν μακρύτερα μέχρι να επιτευχθούν ακίνητες θέσεις. Η επιπλέον αναζήτηση ονομάζεται αναζήτηση ακινησίας, μερικές φορές απαγορεύεται να λάβουμε υπ όψιν συγκεκριμένους τύπους κινήσεων, όπως κινήσεις κατάληψης, οι οποίες θα λύσουν γρήγορα τις αβεβαιότητες στη θέση. Το πρόβλημα ορίζοντα είναι πιο δύσκολο να εξαλειφθεί. Παρουσιάζεται όταν το πρόγραμμα αντιμετωπίζει μια κίνηση αντιπάλου η οποία προκαλεί σημαντική ζημιά και είναι σχεδόν απίθανο να αποφευχθεί. Θεωρείστε το παιχνίδι σκακιού στην εικόνα 3.5. Τα μαύρα είναι λίγο πιο μπροστά σε αριθμό πιονιών, αλλά αν τα άσπρα μπορούν να προχωρήσουν πιόνια τους από την έβδομη σειρά, στην όγδοη θα γίνουν βασίλισσες και θα είναι πιο εύκολο να νικήσουν. Τα μαύρα μπορούν να το 78

79 αποφύγουν αυτό για μια δωδεκάδα περίπου, κλώνων, ελέγχοντας τα άσπρα με τον πύργο, αλλά αναπόφευκτα τα πιόνια θα γίνουν βασίλισσες. Το πρόβλημα με την αναζήτηση καθορισμένου βάθους είναι ότι πιστεύει ότι αυτές οι κινήσεις καθυστέρησης έχουν αποφευχθεί από την κίνηση ενός πιονιού για να γίνει βασίλισσα, λέμε ότι οι κινήσεις καθυστέρησης σπρώχνουν την αναπόφευκτη κίνηση του να γίνει βασίλισσα «πέρα απ τον ορίζοντα» σε ένα μέρος που δεν μπορεί να ανιχνευθεί. Προς το παρόν, καμία γενική λύση δεν έχει βρεθεί για το πρόβλημα του ορίζοντα. 3.4 Περικοπή Αλφα Βήτα Ας υποθέσουμε ότι έχουμε υλοποιήσει μια αναζήτηση minimax με μια λογική συνάρτηση αξιολόγησης κι έναν λογικό έλεγχο τελικής κατάστασης με μια αναζήτηση ακινησίας. Με ένα καλογραμμένο πρόγραμμα σε ένα συνηθισμένο κομπιούτερ μπορούμε να αναζητήσουμε περίπου 1000 θέσεις το δευτερόλεπτο. Πόσο καλά θα παίξει το πρόγραμμά μας; Σε τουρνουά σκακιού, έχει χρόνο 150 δευτερόλεπτα για κάθε κίνηση, έτσι έχουμε 1500 θέσεις. Στο σκάκι, ο παράγοντας διακλάδωσης είναι περίπου 35, έτσι το πρόγραμμά μας θα είναι ικανό να δει μπροστά μόνο 3 ή 4 κλώνους, και θα παίξει στο επίπεδο ενός τελείως αρχαρίου. Ακόμα και οι μέσοι ανθρώπινοι παίκτες μπορούν να σχεδιάσουν για 6 ή 8 κλώνους μπροστά, έτσι το πρόγραμμα εύκολα θα ξεγελαστεί. Ευτυχώς, είναι πιθανό να υπολογίσουμε τη σωστή απόφαση minimax χωρίς να ψάξουμε κάθε κόμβο στο δέντρο αναζήτησης. Η διαδικασία εξάλειψης ενός κλωναριού στο δέντρο αναζήτησης χωρίς να γίνει έλεγχος ονομάζεται περικοπή του δέντρου αναζήτησης. Εικόνα 3.5 Το πρόβλημα ορίζοντα Η συγκεκριμένη τεχνική που θα εξετάσουμε ονομάζεται περικοπή άλφα βήτα. Όταν εφαρμόζεται σε ένα στάνταρ δέντρο minimax, επιστρέφει την ίδια κίνηση όπως θα έκανε το minimax, αλλά περικόπτει κλαδιά τα οποία δεν μπορούν πιθανά να επηρεάσουν την τελική απόφαση. Θεωρείστε ένα δέντρο παιχνιδιού με δύο κλώνους που φαίνεται στην εικόνα 3.2. Η αναζήτηση προχωρά όπως προηγούμενα = Α1, μετά Α11, Α12,Α13 και ο κόμβος κάτω απ τον Α1 79

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

Επίλυση προβλημάτων με αναζήτηση Επίλυση προβλημάτων με αναζήτηση Περιεχόμενα Μέθοδοι (πράκτορες) επίλυσης προβλημάτων Προβλήματα και Λύσεις Προβλήματα παιχνίδια Προβλήματα του πραγματικού κόσμου Αναζήτηση λύσεων Δέντρο αναζήτησης Στρατηγικές

Διαβάστε περισσότερα

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

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1 Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής Μάθημα: Τεχνητή Νοημοσύνη, 2016 17 Διδάσκων: Ι. Ανδρουτσόπουλος Ασκήσεις μελέτης της 4 ης διάλεξης 4.1. (α) Αποδείξτε ότι αν η h είναι συνεπής, τότε h(n

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/ Τεχνητή Νοημοσύνη 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

Διαβάστε περισσότερα

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

Ε ανάληψη. Ορισµοί της Τεχνητής Νοηµοσύνης (ΤΝ) Καταβολές. Ιστορική αναδροµή. Πράκτορες. Περιβάλλοντα. κριτήρια νοηµοσύνης ΠΛΗ 405 Τεχνητή Νοηµοσύνη Αναζήτηση Search Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υ ολογιστών Πολυτεχνείο Κρήτης Ε ανάληψη Ορισµοί της Τεχνητής Νοηµοσύνης (ΤΝ) κριτήρια νοηµοσύνης Καταβολές συνεισφορά

Διαβάστε περισσότερα

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

Αναζήτηση σε Γράφους. Μανόλης Κουμπαράκης. ΥΣ02 Τεχνητή Νοημοσύνη 1 Αναζήτηση σε Γράφους Μανόλης Κουμπαράκης ΥΣ02 Τεχνητή Νοημοσύνη 1 Πρόλογος Μέχρι τώρα έχουμε δει αλγόριθμους αναζήτησης για την περίπτωση που ο χώρος καταστάσεων είναι δένδρο (υπάρχει μία μόνο διαδρομή

Διαβάστε περισσότερα

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

Περιγραφή Προβλημάτων Τεχνητή Νοημοσύνη 02 Περιγραφή Προβλημάτων Φώτης Κόκκορας Τμ.Τεχν/γίας Πληροφορικής & Τηλ/νιών - ΤΕΙ Λάρισας Παραδείγματα Προβλημάτων κύβοι (blocks) Τρεις κύβοι βρίσκονται σε τυχαία διάταξη πάνω στο τραπέζι

Διαβάστε περισσότερα

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

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΤΕΙ Δυτικής Μακεδονίας ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ 2015-2016 Τεχνητή Νοημοσύνη Επίλυση προβλημάτων με αναζήτηση Διδάσκων: Τσίπουρας Μάρκος Εκπαιδευτικό Υλικό: Τσίπουρας Μάρκος http://ai.uom.gr/aima/ 2

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Επίλυση προβληµάτων µε αναζήτηση Επίλυση προβληµάτων µε αναζήτηση Πράκτορες επίλυσης προβληµάτων (1/2) ιατύπωση στόχου: Σύνολο καταστάσεων του κόσµου ιατύπωση προβλήµατος Επιλογή επιπέδου λεπτοµέρειας (αφαίρεση) 3-2 Πράκτορες επίλυσης

Διαβάστε περισσότερα

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

Τεχνητή Νοημοσύνη. 4η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 4η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται κυρίως στα βιβλία Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β.

Διαβάστε περισσότερα

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

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Περιγραφή Προβλημάτων Διαισθητικά, σε ένα πρόβλημα υπάρχει μια δεδομένη κατάσταση

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Ασκήσεις μελέτης της 6 ης διάλεξης

Ασκήσεις μελέτης της 6 ης διάλεξης Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής Μάθημα: Τεχνητή Νοημοσύνη, 2016 17 Διδάσκων: Ι. Ανδρουτσόπουλος Ασκήσεις μελέτης της 6 ης διάλεξης 6.1. (α) Το mini-score-3 παίζεται όπως το score-4,

Διαβάστε περισσότερα

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

ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΘΕΜΑ 1 ο (3 µονάδες) ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Τελικές εξετάσεις Τρίτη 26 Ιουνίου 2007 ιάρκεια: 13:00-16:00 ίνεται ο

Διαβάστε περισσότερα

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

Αλγόριθμοι Τυφλής Αναζήτησης Τεχνητή Νοημοσύνη 04 Αλγόριθμοι Τυφλής Αναζήτησης Αλγόριθμοι Τυφλής Αναζήτησης (Blind Search Algorithms) Εφαρμόζονται σε προβλήματα στα οποία δεν υπάρχει πληροφορία που να επιτρέπει αξιολόγηση των καταστάσεων.

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα

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

Θεωρία Λήψης Αποφάσεων Θεωρία Λήψης Αποφάσεων Ενότητα 4: Επίλυση προβλημάτων με αναζήτηση Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων & Τροφίμων (Δ.Ε.Α.Π.Τ.)

Διαβάστε περισσότερα

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

Ε ανάληψη. Καταβολές. Ιστορική αναδροµή. Πράκτορες. Περιβάλλοντα. συνεισφορά άλλων επιστηµών στην ΤΝ. 1956 σήµερα ΠΛΗ 405 Τεχνητή Νοηµοσύνη Α ληροφόρητη Αναζήτηση Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υ ολογιστών Πολυτεχνείο Κρήτης Ε ανάληψη Καταβολές συνεισφορά άλλων επιστηµών στην ΤΝ Ιστορική αναδροµή 1956

Διαβάστε περισσότερα

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

Θεωρία Λήψης Αποφάσεων Θεωρία Λήψης Αποφάσεων Ενότητα 5: Πληροφορημένη Αναζήτηση και Εξερεύνηση Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων & Τροφίμων (Δ.Ε.Α.Π.Τ.)

Διαβάστε περισσότερα

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

Τεχνητή Νοημοσύνη. 6η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 6η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

Διαβάστε περισσότερα

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

Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων Περιγραφή Προβλημάτων Αλγόριθμοι αναζήτησης Αλγόριθμοι τυφλής αναζήτησης Αναζήτηση πρώτα σε βάθος Αναζήτηση πρώτα σε πλάτος (ΒFS) Αλγόριθμοι ευρετικής αναζήτησης

Διαβάστε περισσότερα

Ο ξεναγός (Συνοδευτική δραστηριότητα του γύρου του ίππου)

Ο ξεναγός (Συνοδευτική δραστηριότητα του γύρου του ίππου) Ο ξεναγός (Συνοδευτική δραστηριότητα του γύρου του ίππου) Ηλικίες: Προαπαιτούμενες δεξιότητες: Χρόνος: Μέγεθος ομάδας: 8 ενήλικες Καμία 15 λεπτά για τη βασική δραστηριότητα, περισσότερο για τις επεκτάσεις

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού

Διαβάστε περισσότερα

ΔΙΑΝΥΣΜΑΤΑ. Ακολουθίες. Στην ενότητα αυτή θα μάθουμε: Να ορίζουμε το διάνυσμα.

ΔΙΑΝΥΣΜΑΤΑ. Ακολουθίες. Στην ενότητα αυτή θα μάθουμε: Να ορίζουμε το διάνυσμα. Ακολουθίες ΔΙΑΝΥΣΜΑΤΑ Στην ενότητα αυτή θα μάθουμε: Να ορίζουμε το διάνυσμα. Να ορίζουμε τις σχέσεις μεταξύ διανυσμάτων (παράλληλα, ομόρροπα, αντίρροπα, ίσα και αντίθετα διανύσματα). Να προσθέτουμε και

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Τεχνητή Νοημοσύνη. 3η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 3η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

Διαβάστε περισσότερα

Κατακερματισμός (Hashing)

Κατακερματισμός (Hashing) Κατακερματισμός (Hashing) O κατακερματισμός είναι μια τεχνική οργάνωσης ενός αρχείου. Είναι αρκετά δημοφιλής μέθοδος για την οργάνωση αρχείων Βάσεων Δεδομένων, καθώς βοηθάει σημαντικά στην γρήγορη αναζήτηση

Διαβάστε περισσότερα

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

Διαβάστε περισσότερα

Chess Academy Free Lessons Ακαδημία Σκάκι Δωρεάν Μαθήματα. Οι κινήσεις των κομματιών Σκοπός της παρτίδας, το Ματ Πατ Επιμέλεια: Γιάννης Κατσίρης

Chess Academy Free Lessons Ακαδημία Σκάκι Δωρεάν Μαθήματα. Οι κινήσεις των κομματιών Σκοπός της παρτίδας, το Ματ Πατ Επιμέλεια: Γιάννης Κατσίρης Οι κινήσεις των κομματιών Σκοπός της παρτίδας, το Ματ Πατ Επιμέλεια: Γιάννης Κατσίρης Παρατήρηση: Μόνο σε αυτό το μάθημα όταν λέμε κομμάτι εννοούμε κομμάτι ή πιόνι και όταν λέμε κομμάτια εννοούμε κομμάτια

Διαβάστε περισσότερα

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

Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων Περιγραφή Προβλημάτων Αλγόριθμοι αναζήτησης Αλγόριθμοι τυφλής αναζήτησης Αναζήτηση πρώτα σε βάθος Αναζήτηση πρώτα σε πλάτος (ΒFS) Αλγόριθμοι ευρετικής αναζήτησης

Διαβάστε περισσότερα

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

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο 2014-2015 Πρώτη Σειρά Ασκήσεων (Υποχρεωτική, 25% του συνολικού βαθμού στο μάθημα) Ημερομηνία Ανακοίνωσης: 22/10/2014 Ημερομηνία Παράδοσης: Μέχρι 14/11/2014 23:59

Διαβάστε περισσότερα

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

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007 Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007 Πρόβλημα 1 Το πρώτο πρόβλημα λύνεται με τη μέθοδο του Δυναμικού Προγραμματισμού. Για να το λύσουμε με Δυναμικό Προγραμματισμό

Διαβάστε περισσότερα

Θεωρία παιγνίων Δημήτρης Χριστοφίδης Εκδοση 1η: Παρασκευή 3 Απριλίου 2015. Παραδείγματα Παράδειγμα 1. Δυο άτομα παίζουν μια παραλλαγή του σκακιού όπου σε κάθε βήμα ο κάθε παίκτης κάνει δύο κανονικές κινήσεις.

Διαβάστε περισσότερα

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος Μορφές αποδείξεων Μαθηματικά Πληροφορικής ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης.

Διαβάστε περισσότερα

Σκοπός του παιχνιδιού. Περιεχόμενα

Σκοπός του παιχνιδιού. Περιεχόμενα Ένα συνεργατικό παιχνίδι μνήμης για 3 έως 6 παίκτες, 7 ετών και άνω. Ο Τομ σκαρφάλωσε στην κορυφή ενός δέντρου, για να δεί αν μπορούσε να ανακαλύψει κάτι. Κοιτάζοντας προς κάθε μεριά, είδε τουλάχιστον

Διαβάστε περισσότερα

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

PROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΥΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ PROJECT ΣΤΟ ΜΑΘΗΜΑ "ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΥΣ" ΜΕΡΟΣ ΔΕΥΤΕΡΟ Υπεύθυνος Καθηγητής Λυκοθανάσης Σπυρίδων Ακαδημαικό Έτος:

Διαβάστε περισσότερα

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ

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

Διαβάστε περισσότερα

Άσκηση 2: Λαβύρινθοι και ρομπότ Α. (Σχεδιασμός χώρου καταστάσεων) Ενδεικτική επίλυση

Άσκηση 2: Λαβύρινθοι και ρομπότ Α. (Σχεδιασμός χώρου καταστάσεων) Ενδεικτική επίλυση Άσκηση 2: Λαβύρινθοι και ρομπότ Η εταιρία «Ρομπότ» παρουσιάζει το νέο της μοντέλο, τον πλοηγό πάρκων Ρ-310. Το Ρ-310 είναι δημοφιλές γιατί όπου και αν είσαι μέσα στο πάρκο σου λέει πώς πρέπει να κινηθείς

Διαβάστε περισσότερα

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

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Αλγόριθμοι Τυφλής Αναζήτησης Οι αλγόριθμοι τυφλής αναζήτησης εφαρμόζονται σε

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Τελικές εξετάσεις Παρασκευή 4 Ιουλίου 2014, 18:00-21:00

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Τελικές εξετάσεις Παρασκευή 4 Ιουλίου 2014, 18:00-21:00 ΘΕΜΑ 1 ο (2 μονάδες) ΠΑΝΕΠΙΣΤΗΜΙ ΜΑΚΕΔΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΣΜΕΝΗΣ ΠΛΗΡΦΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΗΜΣΥΝΗ Τελικές εξετάσεις Παρασκευή 4 Ιουλίου 2014, 18:00-21:00 Δίνεται ο παρακάτω χάρτης πόλεων της Ρουμανίας με τις μεταξύ

Διαβάστε περισσότερα

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

Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem Έλενα Ρόκου Μεταδιδακτορική Ερευνήτρια ΕΜΠ Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Αναζήτηση Δοθέντος ενός προβλήματος με περιγραφή είτε στον χώρο καταστάσεων

Διαβάστε περισσότερα

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

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο 2010-2011 Πρώτη Σειρά Ασκήσεων (20% του συνολικού βαθμού στο μάθημα, Άριστα = 390 μονάδες) Ημερομηνία Ανακοίνωσης: 6/10/2010 Ημερομηνία Παράδοσης: 15/11/2010 σύμφωνα

Διαβάστε περισσότερα

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) ({ G η G είναι μια ασυμφραστική γραμματική που δεν παράγει καμιά λέξη με μήκος μικρότερο του 2 } (β) { Μ,w

Διαβάστε περισσότερα

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

Αναζήτηση (Search) Τµήµα Ψηφιακών Συστηµάτων Πανεπιστήµιο Πειραιώς Αναζήτηση (Search) 1 Αλγόριθµοι και Πολυπλοκότητα n Ας υποθέσουµε ότι έχουµε δύο διαφορετικούς αλγόριθµους για την επίλυση ενός προβλήµατος. Πως θα βρούµε ποιος είναι ο καλύτερος? g Ποιος τρέχει πιο γρήγορα?

Διαβάστε περισσότερα

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής:

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής: Αυτό που πρέπει να θυμόμαστε, για να μη στεναχωριόμαστε, είναι πως τόσο στις εξισώσεις, όσο και στις ανισώσεις 1ου βαθμού, που θέλουμε να λύσουμε, ακολουθούμε ακριβώς τα ίδια βήματα! Εκεί που πρεπει να

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια)

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Μορφές αποδείξεων Μαθηματικά Πληροφορικής 2ο Μάθημα Αρχικός συγγραφέας: Ηλίας Κουτσουπιάς Τροποποιήσεις: Σταύρος Κολλιόπουλος Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Υπάρχουν πολλά είδη

Διαβάστε περισσότερα

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μεταγλωττιστές Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανοδική Κατασκευή Συντακτικού Δέντρου κατασκευή δέντρου

Διαβάστε περισσότερα

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

ΠΛΗ 405 Τεχνητή Νοηµοσύνη ΠΛΗ 405 Τεχνητή Νοηµοσύνη Πληροφορηµένη Αναζήτηση Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υ ολογιστών Πολυτεχνείο Κρήτης Ε ανάληψη Πράκτορας ε ίλυσης ροβληµάτων πράκτορας µε στόχο Αναζήτηση διατύπωση

Διαβάστε περισσότερα

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

Θεωρία Λήψης Αποφάσεων Θεωρία Λήψης Αποφάσεων Ενότητα 8: Αναζήτηση με Αντιπαλότητα Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων & Τροφίμων (Δ.Ε.Α.Π.Τ.) Αναζήτηση

Διαβάστε περισσότερα

ΙΔΕΟΚΑΤΑΣΚΕΥΕΣ: ΣΚΕΦΤΟΜΑΙ ΚΑΙ ΓΡΑΦΩ

ΙΔΕΟΚΑΤΑΣΚΕΥΕΣ: ΣΚΕΦΤΟΜΑΙ ΚΑΙ ΓΡΑΦΩ 1 ΙΔΕΟΚΑΤΑΣΚΕΥΕΣ: ΣΚΕΦΤΟΜΑΙ ΚΑΙ ΓΡΑΦΩ Κώστας Κύρος 2 ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 1 3 ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 2 Γίνε και εσύ ένας συγγραφέας! Γράψε τη δική σου μικρή ιστορία. Εκτύπωσέ την και δώσ την στους φίλους σου για να

Διαβάστε περισσότερα

Σενάριο 13: Προγραμματίζοντας ένα Ρομπότ

Σενάριο 13: Προγραμματίζοντας ένα Ρομπότ Σενάριο 13: Προγραμματίζοντας ένα Ρομπότ Φύλλο Εργασίας Τίτλος: Προγραμματίζοντας ένα Ρομπότ Γνωστικό Αντικείμενο: Πληροφορική Διδακτική Ενότητα: Ελέγχω-Προγραμματίζω τον Υπολογιστή Τάξη: Γ Γυμνασίου Διάρκεια:

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη Ι. Ενότητα 3: Επίλυση Προβλημάτων με Αναζήτηση

Τεχνητή Νοημοσύνη Ι. Ενότητα 3: Επίλυση Προβλημάτων με Αναζήτηση Τεχνητή Νοημοσύνη Ι Ενότητα 3: Επίλυση Προβλημάτων με Αναζήτηση Μουστάκας Κωνσταντίνος Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σκοποί ενότητας Επίλυση προβλημάτων με

Διαβάστε περισσότερα

Ορολογία Αλγόριθμος, υπολογιστική σκέψη, αλγοριθμική σκέψη, αποδοτικότητα, δοκιμή.

Ορολογία Αλγόριθμος, υπολογιστική σκέψη, αλγοριθμική σκέψη, αποδοτικότητα, δοκιμή. Το παζλ ανταλλαγής Ηλικίες: 7 ενήλικες Προαπαιτούμενες δεξιότητες: Καμία Χρόνος: 50-60 λεπτά Μέγεθος ομάδας: 8 με 30 Εστίαση Τι είναι αλγόριθμος; Δοκιμή Αποδοτικότητα αλγορίθμων Υπολογιστική και αλγοριθμική

Διαβάστε περισσότερα

Η εντολή «επανέλαβε Χ»

Η εντολή «επανέλαβε Χ» Η εντολή «επανέλαβε Χ» Όπως είδαμε πιο πάνω, η εντολή για πάντα είναι χρήσιμη σε διάφορα προγράμματα όταν π.χ. θέλουμε να δείξουμε την κίνηση της γης γύρω από τον ήλιο ή για να αναπαραστήσουμε το δίλημμα

Διαβάστε περισσότερα

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

Διαβάστε περισσότερα

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo;

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo; Κεφάλαιο 2 Εισαγωγή Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo; Η Logo είναι μία από τις πολλές γλώσσες προγραμματισμού. Κάθε γλώσσα προγραμματισμού έχει σκοπό τη δημιουργία προγραμμάτων

Διαβάστε περισσότερα

ΔΙΑΛΕΞΗ ΙΙ ΕΝΑ ΒΗΜΑ ΠΑΡΑΠΑΝΩ ΜΕ SCRATCH ΕΠΙΛΕΓΩΝΤΑΣ & ΕΠΑΝΑΛΑΜΒΑΝΟΝΤΑΣ

ΔΙΑΛΕΞΗ ΙΙ ΕΝΑ ΒΗΜΑ ΠΑΡΑΠΑΝΩ ΜΕ SCRATCH ΕΠΙΛΕΓΩΝΤΑΣ & ΕΠΑΝΑΛΑΜΒΑΝΟΝΤΑΣ Τ.Ε.Ι. ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΛΕΞΗ ΙΙ ΕΝΑ ΒΗΜΑ ΠΑΡΑΠΑΝΩ ΜΕ SCRATCH ΕΠΙΛΕΓΩΝΤΑΣ & ΕΠΑΝΑΛΑΜΒΑΝΟΝΤΑΣ Γ ι ά ν ν η ς Ε. Τ ζ ή μ α ς Μάθημα: ΤΕΧΝΙΚΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Το πρώτο πράγμα

Διαβάστε περισσότερα

Εισαγωγή Στις Αρχές Της Επιστήμης Των Η/Υ. Η έννοια του Προβλήματος - ΚΕΦΑΛΑΙΟ 2

Εισαγωγή Στις Αρχές Της Επιστήμης Των Η/Υ. Η έννοια του Προβλήματος - ΚΕΦΑΛΑΙΟ 2 Εισαγωγή Στις Αρχές Της Επιστήμης Των Η/Υ Η έννοια του Προβλήματος - ΚΕΦΑΛΑΙΟ 2 2. Η έννοια του προβλήματος 2 2. Η έννοια του προβλήματος 2.1 Το πρόβλημα στην επιστήμη των Η/Υ 2.2 Κατηγορίες προβλημάτων

Διαβάστε περισσότερα

Ενότητα 2. Ζωγραφίζοντας με το ΒΥΟΒ

Ενότητα 2. Ζωγραφίζοντας με το ΒΥΟΒ Ενότητα 2 : Ζωγραφίζοντας με το ΒΥΟΒ -1- Ενότητα 2. Ζωγραφίζοντας με το ΒΥΟΒ Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα α. Θέση και προσανατολισμός της μορφής Η θέση της κάθε μορφής στο σκηνικό προσδιορίζεται

Διαβάστε περισσότερα

ΕΝΤΟΛΕΣ. 7.1 Εισαγωγικό μέρος με επεξήγηση των Εντολών : Επεξήγηση των εντολών που θα

ΕΝΤΟΛΕΣ. 7.1 Εισαγωγικό μέρος με επεξήγηση των Εντολών : Επεξήγηση των εντολών που θα 7.1 Εισαγωγικό μέρος με επεξήγηση των Εντολών : Επεξήγηση των εντολών που θα ΕΝΤΟΛΕΣ χρησιμοποιηθούν παρακάτω στα παραδείγματα Βάζοντας την εντολή αυτή σε οποιοδήποτε αντικείμενο μπορούμε να αλλάζουμε

Διαβάστε περισσότερα

ΠΑΙΓΝΙΑ Παιχνίδια Γενική Θεώρηση μεγιστοποιήσει την πιθανότητά

ΠΑΙΓΝΙΑ Παιχνίδια Γενική Θεώρηση μεγιστοποιήσει την πιθανότητά ΠΑΙΓΝΙΑ Παιχνίδια Γενική Θεώρηση: Έστω ότι έχουμε τους παίκτες Χ και Υ. Ο κάθε παίκτης, σε κάθε κίνηση που κάνει, προσπαθεί να μεγιστοποιήσει την πιθανότητά του να κερδίσει. Ο Χ σε κάθε κίνηση που κάνει

Διαβάστε περισσότερα

Αυτόνομοι Πράκτορες. Εργασία εξαμήνου. Value Iteration και Q- Learning για Peg Solitaire

Αυτόνομοι Πράκτορες. Εργασία εξαμήνου. Value Iteration και Q- Learning για Peg Solitaire Αυτόνομοι Πράκτορες Εργασία εξαμήνου Value Iteration και Q- Learning για Peg Solitaire Μαρίνα Μαυρίκου 2007030102 1.Εισαγωγικά για το παιχνίδι Το Peg Solitaire είναι ένα παιχνίδι το οποίο παίζεται με ένα

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΙΑΤΜΗΜΑΤΙΚΟ ΠΜΣ «ΜΑΘΗΜΑΤΙΚΑ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΤΩΝ ΑΠΟΦΑΣΕΩΝ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ 2006-2007 2η Σειρά Ασκήσεων ΑΠΑΝΤΗΣΕΙΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΙΑΤΜΗΜΑΤΙΚΟ ΠΜΣ «ΜΑΘΗΜΑΤΙΚΑ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΤΩΝ ΑΠΟΦΑΣΕΩΝ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ 2006-2007 2η Σειρά Ασκήσεων ΑΠΑΝΤΗΣΕΙΣ 1. ίνεται το γνωστό πρόβληµα των δύο δοχείων: «Υπάρχουν δύο δοχεία

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Τελικές εξετάσεις 3 Ιανουαρίου 27 Διάρκεια εξέτασης: 3 ώρες (2:-5:) ΘΕΜΑ ο

Διαβάστε περισσότερα

Υπολογιστικής Σκέψης

Υπολογιστικής Σκέψης Απόκτηση και καλλιέργεια Υπολογιστικής Σκέψης Διακριτά Μαθηματικά Εισαγωγή στους Αλγόριθμους Αλγοριθμικά Θέματα Ασύρματων Δικτύων Υπολογιστική Επιστήμη και Πολιτισμός Τι είναι η υπολογιστική σκέψη; Οι

Διαβάστε περισσότερα

ΚΑΤΑΣΚΕΥΗ ΠΑΡΑΛΛΗΛΟΓΡΑΜΜΩΝ ΜΕ ΧΡΗΣΗ LOGO

ΚΑΤΑΣΚΕΥΗ ΠΑΡΑΛΛΗΛΟΓΡΑΜΜΩΝ ΜΕ ΧΡΗΣΗ LOGO 1 ΚΑΤΑΣΚΕΥΗ ΠΑΡΑΛΛΗΛΟΓΡΑΜΜΩΝ ΜΕ ΧΡΗΣΗ LOGO ΦΥΛΛΑ ΕΡΓΑΣΙΑΣ ΜΑΘΗΤΗ ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 1 1. Τοποθέτησε μια χελώνα στην επιφάνεια εργασίας. 2. Με ποια εντολή γράφει η χελώνα μας;.. 3. Γράψε την εντολή για να πάει

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1 ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1 Θέματα μελέτης Πρόβλημα αναζήτησης σε γραφήματα Αναζήτηση κατά βάθος (Depth-first search DFS) Αναζήτηση κατά πλάτος (Breadth-first search BFS) 2 Γράφημα (graph) Αναπαράσταση συνόλου

Διαβάστε περισσότερα

Συνοπτική Μεθοδολογία Ασκήσεων Κεφαλαίου 7. Ασκήσεις στο IP Fragmentation

Συνοπτική Μεθοδολογία Ασκήσεων Κεφαλαίου 7. Ασκήσεις στο IP Fragmentation Συνοπτική Μεθοδολογία Ασκήσεων Κεφαλαίου 7 Οι σημειώσεις που ακολουθούν περιγράφουν τις ασκήσεις που θα συναντήσετε στο κεφάλαιο 7. Η πιο συνηθισμένη και βασική άσκηση αναφέρεται στο IP Fragmentation,

Διαβάστε περισσότερα

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

Θέμα 1: Robbie και Αναζήτηση Θέμα : Robbie και Αναζήτηση Ο Robbie, το ρομπότ του παρακάτω σχήματος-χάρτη, κατά τη διάρκεια των εργασιών που κάνει διαπιστώνει ότι πρέπει να γυρίσει όσο το δυνατόν πιο γρήγορα, από την τρέχουσα θέση,

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού και κατασκευή BFS δένδρου σε σύγχρονο γενικό δίκτυο Παναγιώτα Παναγοπούλου Περίληψη Εκλογή αρχηγού σε γενικά δίκτυα Ορισμός του προβλήματος Ο αλγόριθμος FloodMax

Διαβάστε περισσότερα

Σχετική κίνηση αντικειμένων

Σχετική κίνηση αντικειμένων Σχετική κίνηση αντικειμένων Πως θα μπορούσε να κινηθεί ένας χαρακτήρας προς την έξοδο ενός λαβύρινθου; Πως θα μπορούσε το αυτοκινητάκι μας να κινείται μέσα στην πίστα; Πως θα μπορούσαμε να αναπαραστήσουμε

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Εντολές της LOGO (MicroWorlds Pro)

Εντολές της LOGO (MicroWorlds Pro) Εντολές της LOGO (MicroWorlds Pro) Εντολές εμφάνισης (εξόδου) και αριθμητικές πράξεις δείξε Εμφανίζει στην οθόνη έναν αριθμό, το αποτέλεσμα πράξεων, μια λέξη ή μια λίστα (ομάδα) λέξεων. δείξε 200 200 δείξε

Διαβάστε περισσότερα

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι 21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB Αλγόριθμος Διαδικασία Παράμετροι Τι είναι Αλγόριθμος; Οι οδηγίες που δίνουμε με λογική σειρά, ώστε να εκτελέσουμε μια διαδικασία ή να επιλύσουμε ένα

Διαβάστε περισσότερα

Περιεχόμενα του Παιχνιδιού

Περιεχόμενα του Παιχνιδιού Ε υρώπη, 1347. Μεγάλη καταστροφή πρόκειται να χτυπήσει. Ο Μαύρος Θάνατος πλησιάζει την Ευρώπη και μέσα στα επόμενα 4-5 χρόνια ο πληθυσμός της θα μείνει μισός. Οι παίκτες αποικούν στις διάφορες περιοχές

Διαβάστε περισσότερα

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

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Παίγνια Δύο Αντιπάλων Τα προβλήματα όπου η εξέλιξη των καταστάσεων εξαρτάται

Διαβάστε περισσότερα

Σειρά Προβλημάτων 4 Λύσεις

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { w w = (ab) 2m b m (ba) m, m 0 } (β) Να διατυπώσετε

Διαβάστε περισσότερα

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 1: Εισαγωγή- Χαρακτηριστικά Παραδείγματα Αλγορίθμων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Εισαγωγή στην επανάληψη

Εισαγωγή στην επανάληψη Εισαγωγή στην επανάληψη Στο κεφάλαιο αυτό ήρθε η ώρα να μελετήσουμε την επανάληψη στον προγραμματισμό λίγο πιο διεξοδικά! Έχετε ήδη χρησιμοποιήσει, χωρίς πολλές επεξηγήσεις, σε προηγούμενα κεφάλαια τις

Διαβάστε περισσότερα

Πληρουορική Γ Γσμμασίοσ

Πληρουορική Γ Γσμμασίοσ Πληρουορική Γ Γσμμασίοσ Προγραμματισμός και Αλγόριθμοι Από το και τημ Χελώμα στημ Ευριπίδης Βραχνός http://evripides.mysch.gr/ 2014 2015 1 Προγραμματισμός Ζάννειο Πρότυπο Πειραματικό Γυμνάσιο Πειραιά Ενότητα:

Διαβάστε περισσότερα

5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος

5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος 5. Γραφήματα 5.1 Εισαγωγή 5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος Το Discoverer παρέχει μεγάλες δυνατότητες στη δημιουργία γραφημάτων, καθιστώντας δυνατή τη διαμόρφωση κάθε συστατικού μέρους

Διαβάστε περισσότερα

Οδηγίες σχεδίασης στο περιβάλλον Blender

Οδηγίες σχεδίασης στο περιβάλλον Blender Οδηγίες σχεδίασης στο περιβάλλον Blender Στον πραγματικό κόσμο, αντιλαμβανόμαστε τα αντικείμενα σε τρεις κατευθύνσεις ή διαστάσεις. Τυπικά λέμε ότι διαθέτουν ύψος, πλάτος και βάθος. Όταν θέλουμε να αναπαραστήσουμε

Διαβάστε περισσότερα

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

Δάσους Δάσους Συστατικών Διαδρομής Σπιτιού Ξορκιών Δάσους Διαδρομής Δάσους πλευρά Δάσους ανοιχτή Διαδρομής Σπιτιού

Δάσους Δάσους Συστατικών Διαδρομής Σπιτιού Ξορκιών Δάσους Διαδρομής Δάσους πλευρά Δάσους ανοιχτή Διαδρομής Σπιτιού Ξεφεύγοντας από τα γαμψά νύχια της Μπάμπα Γιάγκα, καταφέρνετε να αποδράσετε από το σπίτι του. Τότε η μάγισσα ξεκινάει να σας κυνηγάει πάνω στο ιπτάμενο καζάνι της! Για να αποδράσετε, πρέπει να κάνετε τρία

Διαβάστε περισσότερα

Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή

Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή Ταυτότητα Σεναρίου Τίτλος: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή Γνωστικό Αντικείμενο: Πληροφορική Διδακτική Ενότητα: Ελέγχω-Προγραμματίζω τον Υπολογιστή

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Ταυτότητα εκπαιδευτικού σεναρίου

Ταυτότητα εκπαιδευτικού σεναρίου Ταυτότητα εκπαιδευτικού σεναρίου Τίτλος: Συμβάντα και ενέργειες - Το πολύχρωμο σκαθάρι Σύντομη περιγραφή: Ένα εκπαιδευτικό σενάριο για την διδασκαλία των συμβάντων και ενεργειών στον προγραμματισμό, με

Διαβάστε περισσότερα

Επίπεδο Ψηφιακής Λογικής (The Digital Logic Level)

Επίπεδο Ψηφιακής Λογικής (The Digital Logic Level) Επίπεδο Ψηφιακής Λογικής (The Digital Logic Level) Ερωτήσεις Επανάληψης 1. Ένας καθηγητής λογικής μπαίνει σε ένα εστιατόριο και λέει : Θέλω ένα σάντουιτς ή ένα σουβλάκι και τηγανητές πατάτες. Δυστυχώς,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

Διαβάστε περισσότερα

Κεφ. 1: Εισαγωγή στην έννοια του Αλγορίθμου και στον Προγραμματισμό. Η έννοια του προβλήματος

Κεφ. 1: Εισαγωγή στην έννοια του Αλγορίθμου και στον Προγραμματισμό. Η έννοια του προβλήματος Η έννοια του προβλήματος 1. Αναφέρετε μερικά από τα προβλήματα που συναντάτε στην καθημερινότητά σας. Απλά προβλήματα Ποιο δρόμο θα ακολουθήσω για να πάω στο σχολείο; Πως θα οργανώσω μια εκδρομή; Πως θα

Διαβάστε περισσότερα

Πληροφορική 2. Τεχνητή νοημοσύνη

Πληροφορική 2. Τεχνητή νοημοσύνη Πληροφορική 2 Τεχνητή νοημοσύνη 1 2 Τι είναι τεχνητή νοημοσύνη; Τεχνητή νοημοσύνη (AI=Artificial Intelligence) είναι η μελέτη προγραμματισμένων συστημάτων τα οποία μπορούν να προσομοιώνουν μέχρι κάποιο

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ.

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ. ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ. Το πρώτο πράγμα που βλέπουμε μόλις ξεκινάμε το παιχνίδι είναι μια λίστα με όλα τα διαθέσιμα βίντεο με τα οποία μπορούμε να εξασκηθούμε. Σε αυτή περιλαμβάνονται επίσης πληροφορίες

Διαβάστε περισσότερα