Π Π Τ Μ Τ Μ Η/Υ Π Δ Μ Π Μαθηματικά των Υπολογιστών και των Αποφάσεων Τεχνητή Νοημοσύνη 1η Σειρά Ασκήσεων Φοιτητής: Ν. Χασιώτης (AM: 0000) Καθηγητής: Ι. Χατζηλυγερούδης 22 Οκτωβρίου 2010
ΑΣΚΗΣΗ 1. Δίνεται το πρόβλημα των τριών δοχείων γάλακτος: "Υπάρχουν τρια δοχεία χωρητικότητας 8, 5 και 2 λίτρων αντίστοιχα που δεν διαθέτουν μετρητή. Το δοχείο των 8 λίτρων είναι γεμάτο με γάλα. Θέλουμε να μοιράσουμε το γάλα σε δύο ίσες ποσότητες στα δύο μεγαλύτερα δοχεία. Οι δυνατές ενέργειες αφορούν άδειασμα ποσότητας γάλακτος από το ένα δοχείο σε άλλο". Ζητούνται: α) Να ορίσετε αυστηρά (α 1 ) τρόπο αναπαράστασης μιας (τυχαίας) κατάστασης, (α 2 ) την αρχική κατάσταση και την/τις τελική/ές καταστάσεις, (α 3 ) τους τελεστές μετάβασης. β) Προσδιορίστε τον χώρο καταστάσεων του προβλήματος. Υπάρχουν ανέφικτες καταστάσεις; Αν ναι μπορούν να προσδιοριστούν; γ) Ορίστε μια συνάρτηση κόστους g(n) και μια ευρετική συνάρτηση h(n) δ) Εφαρμόστε τα τρια πρώτα βήματα των αλγορίθμων (δ 1 ) αναζήτηση δέσμης και (δ 2 ) A, σχεδιάζοντας τα αντίστοιχα επίπεδα στο δέντρο αναζήτησης. (α 1 ) Ο τρόπος αναπαράστασης της τυχαίας κατάστασης ορίζετε σαν (x, y, z), όπου x είναι η ποσότητα γάλακτος στο δοχείο των 8 λίτρων (έστω A), y είναι η ποσότητα γάλακτος στο δοχείο των 5 λίτρων (έστω B) και z είναι η ποσότητα γάλακτος στο δοχείο των 2 λίτρων (έστω C). (α 2 ) Η αρχική κατάσταση είναι (8, 0, 0) και τελική (μοναδική) είναι (4, 4, 0). (α 3 ) Η τελεστές μετάβασης έχουν ως εξής: Τελεστές Μετάβασης Περιγραφή Προϋποθέσεις Αποτέλεσμα T 1 : Άδειασε το A στο Β x > 0, y < 5 (0, x + y, z) αν x < 5 y (x + y 5, 5, z) αν x 5 y T 2 : Άδειασε το A στο C x > 0, z < 2 (0, y, x + z) αν x < 2 z (x + z 2, y, 2) αν x 2 z T 3 : Άδειασε το B στο A y > 0, x < 8 (x + y, 0, z) αν y < 8 x (8, x + y 8, z) αν y 8 x T 4 : Άδειασε το B στο C y > 0, z < 2 (x, 0, y + z) αν y < 2 z (x, x + z 2, 2) αν y 2 z T 5 : Άδειασε το C στο A z > 0, x < 8 (x + z, y, 0) αν z < 8 x (8, y, x + z 8) αν z 8 x T 6 : Άδειασε το C στο B z > 0, y < 5 (x, y + z, 0) αν z < 5 y (x, 5, x + z 5) αν z 5 y (β) Ο χώρος τον καταστάσεων είναι ο παρακάτω: S = { (x, y, z) : x {0, 1, 2, 3, 4, 5, 6, 7, 8, y {0, 1, 2, 3, 4, 5, z {0, 1, 2 Προφανώς και υπάρχουν ανέφικτες καταστάσεις, όπως π.χ. η (8, 5, 2). Γενικά οι καταστάσεις (x, y, z) για τις οποίες ισχύει x+y+z 8 είναι ανέφικτες, αφού η αρχική ποσότητα γάλακτος (8 λίτρα) δεν μεταβάλεται με χρήση των τελεστών μετάβασης. (γ) Στο πρόβλημα μας, κάθε κίνηση απαιτεί το ίδιο κόστος, οπότε σαν συνάρτηση κόστους, μπορούμε να ορίσουμε την αναδρομική g(n) = g(n 1) + 1, όπου g(0) = 0. Σαν ευρετική μπορούμε να πάρουμε την h(n) = x 4 + y 4 +z που μηδενίζεται στην τελική κατάσταση, ενώ εκφράζει την απόσταση μας από αυτή. 1
(δ 1 ) Για αναζήτηση δέσμης και θεωρώντας m = 2, θα έχουμε:..(8, 0, 0) h=4.(3, 5, 0) h=2.(6, 0, 2) h=4.t 4.(1, 5, 2) h=6.(6, 0, 2) h=4.(3, 3, 2) h=4.(1, 5, 2) h=6.(8, 0, 0) h=4.(6, 2, 0) h=4.t 4.(1, 5, 2) h=6.(6, 0, 2) h=4.(5, 3, 0) h=2.(3, 5, 0) h=2.(8, 0, 0) h=4.(3, 5, 0) h=2.(4, 2, 2) h=4.(6, 0, 2) h=4.(4,4,0) Στο βήμα (1) η αναζήτηση δέσμης παράγει και τα δύο παιδιά της (8,0,0). Στο βήμα (2) θα παράγει επίσης όλα τα παιδιά των (3,5,0) και (6,0,2). Από τα παιδιά αυτών των δύο θα επιλέξει να αναπτύξει μόνο τα δύο καλύτερα με βάση την ευρετική, δηλαδή τα (3,3,2) και (6,2,0). Στο βήμα (3) από όλα τα παιδιά, θα αναπτύξει τα (5,3,0) και (4,2,2). (δ 1 ) Για τον αλγόριθμο A θα έχουμε:..(8, 0, 0) f=5.(3, 5, 0) f=3.(6, 0, 2) f=5.t4.t 5.T 6.(1, 5, 2) f=7.(6, 0, 2) f=5.(3, 3, 2) f=5.(1, 5, 2) f=7.(8, 0, 0) f=5.(6, 2, 0) f=5 Στο βήμα (1) η A.(5, 3, 0) f=4 παράγει και τα δύο παιδιά της (8,0,0). Στο βήμα (2) επιλέγει να 2
αναπτύξει τα παιδιά της (3,5,0) η οποία έχει τη μικρότερη τιμή στην συνάρτηση εκτίμησης. Στο βήμα (3) επιλέγει να αναπτύξει μόνο τα παιδιά της (3,3,2). ΑΣΚΗΣΗ 2. Δίνεται το γνωστό πρόβλημα του τετράγωνου παζλ: "Έχουμε ένα τετράγωνο πλαίσιο 3 3 = 9 τετράγωνων θέσεων, που τις 8 θέσεις καταλαμβάνουν τετράγωνα πλακίδια αριθμημένα από το 1 ως το 8, ενώ η ένατη είναι κενή. Τα πλακίδια μπορούν να μετακινούνται πάνω, κάτω, δεξιά και αριστερά, εφ' όσον αυτό είναι δυνατόν". Ζητούνται: α) Να ορίσετε αυστηρά (α 1 ) τρόπο αναπαράστασης μιας (τυχαίας) κατάστασης, (α 2 ) την αρχική κατάσταση και την/τις τελική/ές κατάσταση/σεις, (α 3 ) τους τελεστές μετάβασης. β) Ορίστε τουλάχιστον δύο ευρετικές συναρτήσεις. Συζητείστε τα μειονεκτήματα τους καθώς και το τι μπορούμε να πούμε σχετικά με τα κριτήρια της αποδεκτηκότητας (admissibility), πληροφορικότητας (informedness) και μονοτονικότητας (monotonicity). γ) Ποιός αλγόριθμος θεωρείτε ότι είναι καλύτερο (δηλ. αποδοτικότερο) να χρησιμοποιηθεί αν το ζητούμενο είναι να βρούμε (γ 1 ) μια οποιαδήποτε λύση, (γ 2 ) όλες τις λύσεις, (γ 3 ) τη συντομότερη, (γ 4 ) τη βέλτιστη λύση. Δικαιολογήστε τις απαντήσεις σας. (α 1 ) Αν θεωρήσω πως οι θέσεις του παζλ είναι αριθμημένες από πάνω αριστερά, μέχρι κάτω δεξιά διαδοχικά 1, 2, 3,..., 9 τότε μπορώ να αναπαραστήσω την τυχαία κατάσταση με τη δομή (p 1, p 2,..., p 8, p 0 ), όπου p 1 η θέση του αριθμού 1, p 2 η θέση του αριθμού 2, κοκ. Ενώ p 0 είναι η θέση του κενού. Το p 0 μπορεί να προκύψει από τα p 1,..., p 9, αλλά η ύπαρξη του, κάνει "κομψότερους" τους τελεστές μετάβασης. (α 2 ) Η αρχική κατάσταση του προβλήματος είναι η (p 1, p 2,..., p 8, p 0 ), ενώ η τελική είναι η (1, 2,..., 9, 0). (α 3 ) Οι τελεστές μετάβασης είναι: Τελεστές Μετάβασης Περιγραφή Προϋποθέσεις Αποτέλεσμα T 1 : Αριστερά p 0 1, 4, 5 p 0 = p 0 1 και p p0 1 = p 0 T 2 : Δεξιά p 0 3, 7, 9 p 0 = p 0 + 1 και p p0 +1 = p 0 T 3 : Πάνω p 0 1, 2, 3 p 0 = p 0 3 και p p0 3 = p 0 T 4 : Κάτω p 0 7, 8, 9 p 0 = p 0 + 3 και p p0 +3 = p 0 (β) Μπορούμε, μεταξύ άλλων να προτείνουμε τις παρακάτω δύο ευρετικές: (i) h 1 : Ο αριθμός των πλαισίων που δεν βρίσκεται στην τελική τους θέση. (ii) h 2 : Το άθροισμα των αποστάσεων των πλαισίων από την τελική τους θέση. Και οι δύο ευρετικές είναι αποδεκτές. Επίσης η h 2 έχει περισσότερο πληροφοριακό από την h 1, αφού προφανώς h 1 (n) h 2 (n),. Μονοτινικότητα (????, μάλλον ναι!!). (γ 1 ) Μπορούμε να χρησιμοποιήσουμε την κατά βάθος, γιατί δεν χρειάζεται πολύ μνήμη και είναι σχετικά γρήγορη. (γ 2 ) Την κατά πλάτος ή τον A. (γ 3 ) Την κατά πλάτος. (γ 4 ) Τον αλγόριθμο A. 3
ΑΣΚΗΣΗ 3. Έστω h 1 και h 2 δύο αποδεκτές (admissible) ευρετικές συναρτήσεις για την εφαρμογή του αλγορίθμου A σε ένα πρόβλημα. Επιχειρηματολογίστε σύντομα για το ποιες από τις παρακάτω συναρτήσεις είναι επίσης αποδεκτές ευρετικές συναρτήσεις για το ίδιο πρόβλημα, ποιές είναι αποδεκτές υπό προϋποθέσεις και ποιες δεν είναι: h 1 + h 2 (h 1 + h 2 )/2 h 1 h 2 h1 h 2 h 1 /h 2 h 2 /h 1 Δεδομένου ότι οι συναρτήσεις h 1, h 2, h παίρνουν τιμές στο [0, ) θα έχουμε: (i) Για την h 1 + h 2 : h 1 (n) + h 2 (n) 2h (n), Δηλαδή δεν ισχύει γενικά h 1 (n) +. Άρα δεν είναι αποδεκτή. (ii) Για την (h 1 + h 2 )/2: Άρα είναι αποδεκτή. h 1(n) + h 2 (n) 2 h (n), (iii) Για την h 1 h 2 : h 1 (n)h 2 (n) h 2 (n), Δηλαδή δεν ισχύει γενικά h 1 (n). Άρα δεν είναι αποδεκτή. (iv) Για την h 1 h 2 : Άρα είναι αποδεκτή. h 1 (n), (v) Για την h 1 /h 2 : Η οποία είναι αποδεκτή αν h (n) > 1, (vi) Για την h 2 /h 1 : Η οποία είναι αποδεκτή αν h (n) > 1,.. h 1(n) h 2 (n) 1, h 2(n) h 1 (n) 1, 4