ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο 2014-2015 Πρώτη Σειρά Ασκήσεων (Υποχρεωτική, 25% του συνολικού βαθμού στο μάθημα) Ημερομηνία Ανακοίνωσης: 22/10/2014 Ημερομηνία Παράδοσης: Μέχρι 14/11/2014 23:59 Αντιγραφή: Σε περίπτωση που προκύψουν φαινόμενα αντιγραφής, οι εμπλεκόμενοι θα βαθμολογηθούν στο μάθημα (όχι απλά στην άσκηση!) με βαθμό μηδέν. Παρακαλούμε να μην στέλνετε προσωπικά μηνύματα για απορίες στους βοηθούς ή στον διδάσκοντα του μαθήματος, αλλά να χρησιμοποιείτε τη λίστα του μαθήματος Mailman. Η παράδοση γίνεται ηλεκτρονικά με e- mail στο ys02@di.uoa.gr. Εναλλακτικά, οι θεωρητικές ασκήσεις μπορούν να υποβληθούν στη θυρίδα του κ. Σταματόπουλου. Πρόβλημα 1 : Θεωρήστε το puzzle SliderBlocks που περιγράφεται στην ιστοσελίδα http://www.mathplayground.com/slidingblock.html. (α) Να εκφράσετε το puzzle σαν πρόβλημα αναζήτησης. Θεωρήστε ως αρχική κατάσταση ένα οποιοδήποτε στιγμιότυπο από ένα οποιοδήποτε level του puzzle. Παράδειγμα Α: Αρχική κατάσταση: Τελική κατάσταση: Παράδειγμα Β: Αρχική κατάσταση: Τελική κατάσταση:
Παρατήρηση: Οποιαδήποτε κατάσταση, όπου το κόκκινο αντικείμενο βρίσκεται στην κάτω αριστερή γωνία, θεωρείται μία τελική κατάσταση του προβλήματος. Για αυτό δεν πρέπει να θεωρήσετε ότι η τελική κατάσταση που παρουσιάζεται εδώ, αποτελεί απαραίτητα την μοναδική τελική κατάσταση για το πρόβλημα. Επίσης, πριν δοκιμάσετε να λύσετε το πρόβλημα με μία τυχαία αρχική κατάσταση, σιγουρευτείτε ότι υπάρχει μία τουλάχιστον λύση. Η μη ύπαρξη λύσης για κάποια αρχική κατάσταση θα πρέπει να ανιχνεύεται από τον αλγόριθμο σας. (β) Να προτείνετε παραδεκτές ευρετικές συναρτήσεις για το παραπάνω πρόβλημα και να τις συγκρίνετε θεωρητικά μεταξύ τους. (γ) Να λύσετε το πρόβλημα με τον αλγόριθμο Α* χρησιμοποιώντας τις παραπάνω ευρετικές συναρτήσεις. Η υλοποίηση σας θα πρέπει να βασιστεί πάνω στον κώδικα Python που διατίθεται στη ιστοσελίδα http://aima.cs.berkeley.edu/. (δ) Να συγκρίνετε πειραματικά την απόδοση του Α* για τις διαφορετικές ευρετικές συναρτήσεις που επινοήσατε, με βάση κατάλληλες παραμέτρους που θα ορίσετε. Να συμπεριλάβετε στην πειραματική αποτίμηση σας και εισόδους για τις οποίες είναι δύσκολο να βρεθεί η λύση. (120 μονάδες) (ε) 25 Βαθμοί bonus. Να φτιάξετε ένα γραφικό user interface για το πρόβλημα.
Πρόβλημα 2: Θεωρήστε τoν παρακάτω γράφο που παριστάνει ένα χώρο αναζήτησης S είναι ο κόμβος που αντιστοιχεί στην αρχική κατάσταση και G1, G2 είναι κόμβοι που αντιστοιχούν σε καταστάσεις στόχου. Οι ακμές του γράφου κωδικοποιούν τη συνάρτηση διαδόχων και δίνουν το κόστος κάθε μετάβασης από μια κατάσταση σε μια άλλη. Τέλος, κάθε κόμβος περιέχει ένα αριθμό που είναι η τιμή μιας ευρετικής συνάρτησης h που δίνει το εκτιμώμενο κόστος της φθηνότερης διαδρομής από τον κόμβο αυτό σε ένα κόμβο στόχου. Για καθένα από τους αλγόριθμους (1) Αναζήτηση πρώτα κατά πλάτος (2) Αναζήτηση πρώτα σε βάθος (3) Αναζήτηση πρώτα σε βάθος με επαναληπτική εκβάθυνση (4) Άπληστη αναζήτηση πρώτα στον καλύτερο (5) Α* να δώσετε: (α) τον κόμβο στόχου στον οποίο φτάνει πρώτα ο αλγόριθμος, και (β) τη σειρά με την οποία βγαίνουν οι κόμβοι από την λίστα «σύνορο» (fringe). Να υποθέσετε ότι: (α) οι αλγόριθμοι έχουν υλοποιηθεί κατάλληλα ώστε να λειτουργούν σωστά σε χώρους
αναζήτησης που είναι γράφοι και (β) όταν ο αλγόριθμος δεν μπορεί να «διακρίνει» δύο κόμβους τότε επιλέγει με αλφαβητική σειρά. Προσοχή: Οι απαντήσεις σας θα πρέπει να είναι πλήρεις και να δικαιολογούν κατάλληλα τις απαντήσεις σας. Απαντήσεις της μορφής (α) G2 (β) S, A, F, G1 θα πάρουν βαθμό 0. (30 μονάδες) Πρόβλημα 3: 1. Υποθέστε ότι κάνουμε αναζήτηση σε γράφο χρησιμοποιώντας τον αλγόριθμο GRAPH- SEARCH. Έστω ότι εξάγουμε από το σύνορο ένα κόμβο Ν που δεν αντιστοιχεί σε κατάσταση στόχου και δεν είναι στην λίστα closed. Τότε, με βάση τον αλγόριθμο, θα βάλουμε την κατάσταση του Ν στην λίστα closed και τους απογόνους του στο σύνορο (fringe). Θα ήτανε καλή ιδέα να αλλάξουμε τον αλγόριθμο ώστε να τσεκάρουμε πρώτα ότι οι απόγονοι του Ν δεν αντιστοιχούν σε καταστάσεις που είναι στη λίστα closed; 2. Ο αλγόριθμος Α* ελέγχει αν ένας κόμβος αντιστοιχεί σε κατάσταση στόχου μόνο όταν ο κόμβος αυτός επιλεγεί από το σύνορο για έλεγχο και επέκταση. Θα ήτανε καλή ιδέα να αλλάξουμε τον αλγόριθμο ώστε κάθε φορά που επιλέγεται ένας κόμβος Ν να ελέγχουμε επίσης αν οι απόγονοι του Ν αντιστοιχούν σε κατάσταση στόχου; Οι απαντήσεις σας να είναι ακριβείς και με παραδείγματα. (30 μονάδες) Πρόβλημα 4: Θεωρήστε το πρόβλημα 15 puzzle http://en.wikipedia.org/wiki/15_puzzle. το οποίο περιγράφεται στην ιστοσελίδα Θεωρείστε ότι το κόστος μετακίνησης είναι 1. Μια λύση στο πρόβλημα είναι μια ακολουθία μετακινήσεων που μας επιτρέπει να φτάσουμε από μια δοσμένη αρχική κατάσταση σε μια κατάσταση στόχου. Η βέλτιστη λύση του προβλήματος είναι αυτή που έχει το ελάχιστο κόστος (δηλαδή, αυτή που απαιτεί τις λιγότερες μετακινήσεις). Πιθανόν να υπάρχουν πολλές βέλτιστες λύσεις. Παράδειγμα: Αρχική Κατάσταση Κατάσταση Στόχου 9 10 11 12 13 14 15
Για το παραπάνω παράδειγμα μία βέλτιστη λύση είναι: 1. Μετακίνησε το 9 2. Μετακίνησε το 10 3. Μετακίνησε το 11 4. Μετακίνησε το 15 Στόχος 9 10 11 12 13 14 15 9 10 11 12 13 14 15 (α) Να ορίσετε το παραπάνω πρόβλημα σαν πρόβλημα αναζήτησης. (β) Να προτείνετε μία ή περισσότερες παραδεκτές ευρετικές συναρτήσεις για το πρόβλημα και να τις συγκρίνετε μεταξύ τους θεωρητικά. (γ) Υλοποιήστε το πρόβλημα σε python, με χρήση του κώδικα που δίνεται από το βιβλίο ΑΙΜΑ στο Πρόβλημα 1 και πειραματιστείτε όπως στα υποερωτήματα 1γ) και 1δ). (40 μονάδες)
Πρόβλημα 5: Οποιοδήποτε πρόβλημα αναζήτησης μπορεί να αντιμετωπισθεί διατρέχοντας ένα χώρο αναζήτησης στον οποίο ο παράγοντας διακλάδωσης b δεν είναι ποτέ μεγαλύτερος του 2. Εξηγήστε πώς μπορεί να γίνει αυτό και σχεδιάστε τον αντίστοιχο χώρο αναζήτησης για ένα πρόβλημα που, με τον κλασσικό τρόπο που ήδη γνωρίζετε, θα είχε ένα χώρο αναζήτησης ο οποίος θα ήταν δέντρο βάθους d=2 και σταθερού παράγοντα διακλάδωσης b = 3. Ποιο είναι το μέγιστο βάθος του νέου χώρου αναζήτησης (συναρτήσει των d και b); Αν υποθέσουμε ότι το πρόβλημα στο οποίο αναφερόμαστε δεν έχει λύση, οπότε για για να το αποδείξουμε αυτό θα πρέπει να διατρέξουμε όλο το χώρο αναζήτησης, και έστω ότι αυτό το κάνουμε με μία πρώτα κατά βάθος μέθοδο, υπολογίστε τις απαιτήσεις μνήμης και χρόνου της νέας προσέγγισης (επίσης συναρτήσει των d και b) και συγκρίνετέ τις με τις αντίστοιχες της κλασσικής προσέγγισης. Σημειώστε ότι ο χώρος αναζήτησης ενός προβλήματος αναζήτησης δεν είναι ποτέ γνωστός εκ των προτέρων. Απλώς κατά τη διαδικασία εφαρμογής μίας μεθόδου αναζήτησης, σε κάθε φάση της, είναι γνωστό ένα τμήμα του χώρου αναζήτησης (υποσύνολο των κόμβων του) που πρόκειται να εξερευνηθεί. Συνεπώς, η σωστή απάντηση στην εργασία αυτή δεν συνίσταται στην εφαρμογή ενός μετασχηματισμού τυχαίου δέντρου σε δυαδικό δέντρο, για τον απλούστατο λόγο ότι ποτέ δεν έχουμε στη διάθεσή μας τον πλήρη χώρο αναζήτησης ενός προβλήματος. Αυτό που ζητάει η εργασία είναι οι επεμβάσεις που πρέπει να γίνουν στη διαδικασία αναζήτησης ώστε ο χώρος αναζήτησης του οποιουδήποτε προβλήματος να καταλήγει τελικά να μην έχει παράγοντα διακλάδωσης μεγαλύτερο του 2. (30 μονάδες)