Επίλυση προβληµάτων Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης! Παιχνίδια δύο αντιπάλων Προβλήµατα ικανοποίησης περιορισµών Γενικά " Ντετερµινιστικά παιχνίδια: Γνωρίζουµε το αποτέλεσµα κάθε κίνησης εκ των προτέρων " π.χ σκάκι, όχι όµως και τάβλι " Παιχνίδια δύο παικτών " Εναλλαγή κινήσεων " Μηδενικού αθροίσµατος (Zero-sum games): " Όταν κερδίζει ο ένας παίκτης χάνει ο άλλος. Γιάννης Ρεφανίδης 70 1
Κανόνες " Σε ένα παιχνίδι δύο ατόµων το πρόβληµα ορίζεταιωςεξής: " Μια κατάσταση παριστάνει τη διάταξη των παικτών σε κάποια χρονική στιγµή. " Ο χώρος καταστάσεων αποτελείται από όλες αυτές τις πιθανές επιτρεπτές καταστάσεις. " Οι τελεστές µετάβασης είναι οι επιτρεπτές κινήσεις που καθορίζονται από τους κανόνες του παιχνιδιού. Οι κανόνες του παιχνιδιού παίζουν και το ρόλο των προϋποθέσεων αυτών των τελεστών. " Οι τελικές καταστάσεις του παιχνιδιού έχουν γνωστά χαρακτηριστικά. " Οι κινήσεις δύο διαδοχικών επιπέδων ανήκουν σε διαφορετικό παίκτη, γιατί οι παίκτες παίζουν εναλλάξ. Το δένδρο που χτίζεται µε αυτόν τον τρόπο ονοµάζεται δένδρο του παιχνιδιού (game tree). Γιάννης Ρεφανίδης 71 Σκάκι " 35 εναλλακτικές κινήσεις κατά µέσο όρο για κάθε παίκτη " 50 κινήσεις κατά µέσο όρο ανά παρτίδα για κάθε παίκτη " 35 100 ή 10 154 πρέπει να ελεγχθούν. Γιάννης Ρεφανίδης 72 2
Οαλγόριθµος Mini " εδοµένης µίας κατάστασης του παιχνιδιού, ο αλγόριθµος αναζήτησης µεγίστου-ελαχίστου (Mini) καλείται να αποφασίσει ποια θα είναι η επόµενηκίνησήτουέναντιτουαντιπάλου. " Το µέτρο της υπεροχής του ενός ή του άλλου αντιπάλου δίνεται από µία ευρετική συνάρτηση που καλείται συνάρτηση αξιολόγησης (evaluation function) και η οποία εφαρµόζεται στα φύλλα του δένδρου του παιχνιδιού. " Οι δύο παίκτες χαρακτηρίζονται Max και Min. " Οι κόµβοι του δένδρου αναζήτησης χωρίζονται σε επίπεδα που χαρακτηρίζονται ως Max και Min και τα οποία εναλλάσσονται. " Κάθε επίπεδο αντιστοιχεί στις εναλλακτικές κινήσεις ενός παίκτη. " Η ρίζα συνήθως ανήκει στον παίκτη Max. " Οι καταστάσεις-φύλλα του δένδρου δεν είναι τελικές καταστάσεις, απλά αποτελούν το όριο (ορίζοντα) της αναζήτησης. Γιάννης Ρεφανίδης 73 Παράδειγµα MiniMax (1/4) " Οι τιµές στο όριο αναζήτησης υπολογίζονται από κάποια ευρετική συνάρτηση. 2-3 20-100 -95 18 95 5-1 -3-7 100 Γιάννης Ρεφανίδης 74 3
Παράδειγµα MiniMax (2/4) " ιάδοση των τιµών για τον Max. 2 20 95 5-1 100 2-3 20-100 -95 18 95 5-1 -3-7 100 Γιάννης Ρεφανίδης 75 Παράδειγµα MiniMax (3/4) " ιάδοση των τιµών για τον Min. 2 5-1 2 20 95 5-1 100 2-3 20-100 -95 18 95 5-1 -3-7 100 Γιάννης Ρεφανίδης 76 4
Παράδειγµα MiniMax (4/4) " ιάδοση τιµών για τον, απόφαση για την καλύτερη κίνηση 5 2 5-1 2 20 95 5-1 100 2-3 20-100 -95 18 95 5-1 -3-7 100 Γιάννης Ρεφανίδης 77 MiniMax στο σκάκι (1/2) " Το κύριο µέληµα των προγραµµάτων σκάκι είναι να αναζητήσουν το δένδρο του παιχνιδιού σε όσο το δυνατόν µεγαλύτερο βάθος. Αν υπήρχε η δυνατότητα να φτάσουν µέχρι τις τελικές καταστάσεις του παιχνιδιού, τότε τα προγράµµαταθαήτανανίκητα. " Μία συνάρτηση αξιολόγησης στο σκάκι: " Υπεροχή κοµµατιών: Κάθε κοµµάτι έχει κάποια αξία, π.χ. Βασιλιάς=10, Άλογο=5, Πιόνι=1 κλπ. Η αξία όλων των κοµµατιών κάθε χρώµατος προστίθεται. " Υπεροχή θέσης: Κάθε κοµµάτι που βρίσκεται στα 4 κεντρικά τετράγωνα παίρνει επιπλέον 2 πόντους. " Απειλές: Για κάθε απειλή που προβάλει ένας παίκτης παίρνει 3 επιπλέον πόντους, εκτός αν απειλεί το βασιλιά του άλλου παίκτη, οπότε παίρνει 20 πόντους. Άσπρα: 10+1+2=13 Μαύρα: 10+5+1+3=19 Άρα η παραπάνω κατάσταση αξιολογείται µε -6. Γιάννης Ρεφανίδης 78 5
MiniMax στο σκάκι (2/2) Max (άσπρα, πάνω): Θετικές τιµές Min (µαύρα, κάτω): Αρνητικές τιµές Max Καλύτερη κίνηση 4 Min 4-8 -2 1 8 6 10 7 4 9 1 12-8 3 5 6-2 9 10 13 17 3 1 6 Max Γιάννης Ρεφανίδης 79 Παρατηρήσεις " Ο αλγόριθµος Mini θεωρεί ότι ο αντίπαλος εκτελεί τις βέλτιστες για αυτόν κινήσεις σε κάθε βήµα. " Εάν ο αντίπαλος Min δεν εκτελεί τις βέλτιστες κινήσεις, υπάρχουν κινήσεις για τον Max που θα έφερναν ακόµη καλύτερο αποτέλεσµα. " Οι κινήσεις αυτές όµως δεν θα ήταν καλές εάν ο αντίπαλος ξαφνικά αποφασίσει να παίξει σωστά! Γιάννης Ρεφανίδης 80 6
Τεχνική κλαδέµατος Alpha-Beta (Alpha-Beta pruning) " Ητεχνική κλαδέµατος Alpha-Beta εφαρµόζεται στον MiniMax, µε σκοπό την εξέταση (βαθµολόγηση) λιγότερων καταστάσεων στον ορίζοντα της αναζήτησης. " Οι καταστάσεις στον ορίζοντα αναζήτησης δεν βαθµολογούνται όλες µαζί, αλλά δίνεται προτεραιότητα στο γρήγορο "ανέβασµα" των τιµών. a a<b d<a a a>b d>a a b d a b d Γιάννης Ρεφανίδης 81 Παράδειγµα Alpha-Beta pruning Max Min 4 4-1 -7-8 4 10 7 5-1 2 15-7 3-5 -8 1 Max Min 4 4-1 -7- -5- Max 4 10 7 5-1 2 15-7 3-5 -8 1 Γιάννης Ρεφανίδης 82 7
Παρατηρήσεις " Η τεχνική κλαδέµατος Alpha-Beta µπορεί να εφαρµοστεί και σε κλαδιά µεγαλύτερου βάθους. " Η αποτελεσµατικότητα της τεχνικής κλαδέµατος Alpha-Beta εξαρτάται από τον τρόπο που είναι διατεταγµένες οι καταστάσεις στον ορίζοντα αναζήτησης. " Για τυχαία κατανοµή των καταστάσεων στον ορίζοντα αναζήτησης, ο αριθµός των καταστάσεων που ελέγχονται περιορίζεται από b d σε b 3d/4. " b ο παράγοντας διακλάδωσης " d το βάθος του δένδρου Γιάννης Ρεφανίδης 83 Παιχνίδια µε πιθανότητες (1/2) " Τάβλι " Μπορεί να "λυθεί" µε MiniMax. " Πρέπει να ληφθεί υπόψη η πιθανότητα που έχουν οι διάφορες "ζαριές". " Θεωρούµε ως δυνατές κινήσεις όλες τις κινήσεις των δύο παικτών για όλους τους συνδυασµούς ρίψης των ζαριών. " Οι κινήσεις που προκύπτουν για την ίδια ζαριά οµαδοποιούνται και δίνουν ένα αποτέλεσµα ( ή ), το οποίο πολλαπλασιάζεται επί την πιθανότητα να έρθει η συγκεκριµένη ζαριά. " Πολύ µεγάλος χώρος αναζήτησης... Γιάννης Ρεφανίδης 84 8
Παιχνίδια µε πιθανότητες (2/2) " Χαρτιά " Ακόµη πιο δύσκολα παιχνίδια. " Οι δύο παίκτες έχουν διαφορετική πληροφορία. " Εκτίµηση, µε πιθανότητες, των χαρτιών που µπορεί να έχει ο αντίπαλος. " Οι κινήσεις µπορεί να αποσκοπούν όχι µόνο στην βελτίωση της πραγµατικής θέσης ενός παίκτη αλλά και στην αύξηση της πληροφορίας του για τον άλλο παίκτη. " Όµως ο άλλος παίκτης µπορεί να µπλοφάρει... Γιάννης Ρεφανίδης 85 Επίλυση προβληµάτων Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης Παιχνίδια δύο αντιπάλων! Προβλήµατα ικανοποίησης περιορισµών 9
Προβλήµατα Ικανοποίησης Περιορισµών " Ένα πρόβληµα ικανοποίησης περιορισµών (constraint satisfaction problem) αποτελείται από: " Ένα σύνολο n µεταβλητών V 1, V 2,...,V n. " Ένα σύνολο n πεδίων τιµών D 1,...D n, που αντιστοιχούν σε κάθε µεταβλητή έτσι ώστε V i D i, και " Ένα σύνολο σχέσεων (περιορισµών) C 1, C 2,...C m όπου C i (V k,...,v m ) µια σχέση µεταξύ των µεταβλητών του προβλήµατος. " Λύση αποτελεί µια ανάθεση τιµών στις µεταβλητές του προβλήµατος από τα αντίστοιχα πεδία, έτσι ώστε να ικανοποιούνται οι περιορισµοί Γιάννης Ρεφανίδης 87 Είδη περιορισµών " Ανάλογα µε το πόσες µεταβλητές περιλαµβάνει ένας περιορισµός χαρακτηρίζεται ως: " µοναδιαίος (unary) όταν περιλαµβάνει µια µεταβλητή, π.χ. V 1 >0 " δυαδικός (binary) όταν περιλαµβάνει δύο µεταβλητές, π.χ. V 1 >V 2 " ανώτερης τάξης (higher order) όταν περιλαµβάνει περισσότερες, π.χ. V 1 +V 2 +V 3 >0. Γιάννης Ρεφανίδης 88 10
Εφαρµογές " Κατανοµή εργασιών (task allocation) " Κατανοµή προσωπικού σε επιχειρήσεις " Ωρολόγιο πρόγραµµα (timetable) Γιάννης Ρεφανίδης 89 Παράδειγµα (1/6) " Έστω ότι πρέπει να ορισθεί η σειρά µε την οποία θα εκτελεστούν τέσσερις εργασίες Α, Β, Γ,. Λόγω της φύσης του προβλήµατος, η εργασία Α πρέπει να εκτελεστεί µετά από την, η Γ πριν από την Β, και η Β πριν από την Α. " Μεταβλητές: Α, Β, Γ, " Πεδία τιµών: D A =D B =D Γ =D ={1,2,3,4} " Περιορισµοί: " Α Β, Α Γ, Α, Β Γ, Β, Γ " Α> " Γ<Β " Β<Α Γιάννης Ρεφανίδης 90 11
Παράδειγµα (2/6) " Το πρόβληµα έχει τρεις λύσεις, τις ακόλουθες: " Α=4, Β=2, Γ=1, =3, δηλαδή η σειρά είναι: ΓΒ Α " Α=4, Β=3, Γ=1, =2, δηλαδή η σειρά είναι:γ ΒΑ " Α=4, Β=3, Γ=2, =1, δηλαδή η σειρά είναι: ΓΒΑ " Το ερώτηµα που τίθεται είναι πώς φθάνει κανείς στις παραπάνω λύσεις. " Παραγωγή και δοκιµή " Αλγόριθµοι επιδιόρθωσης " Κλασσικοί αλγόριθµοι αναζήτησης " Αλγόριθµοι ελέγχου συνέπειας Γιάννης Ρεφανίδης 91 Παραγωγή και οκιµή " Η µέθοδος δηµιουργεί όλους τους πιθανούς συνδυασµούς ανάθεσης τιµών. " Α=1, Β=1, Γ=1, =1 " Α=1, Β=1, Γ=1, =2 "... " Α=4, Β=4, Γ=4, =4 " Στο προηγούµενο παράδειγµα οι συνδυασµοί ήταν 4 4 =256. " Κάθε συνδυασµός ελέγχεται µέχρις ότου βρεθεί ένας που ικανοποιεί όλους τους περιορισµούς. " Μειονέκτηµα: Ελέγχει όλο τον χώρο αναζήτησης. Γιάννης Ρεφανίδης 92 12
Αλγόριθµοι επιδιόρθωσης (1/2) 1. Ξεκινάµε µε µια τυχαία ανάθεση τιµών στις µεταβλητές. 2. Εάν δεν παραβιάζεται κανένας περιορισµός, έχουµε βρει τη λύση. 3. Επιλέγουµε µια µεταβλητή και αλλάζουµε την τιµή της, µε κριτήριο την µείωση των περιορισµών που παραβιάζονται. Εάν δεν υπάρχει τέτοια µεταβλητή, πηγαίνουµε στο βήµα 1. 4. Πηγαίνουµε στο βήµα 2. Γιάννης Ρεφανίδης 93 Αλγόριθµοι επιδιόρθωσης (2/2) " Ο αλγόριθµος που παρουσιάστηκε θυµίζει την αναρρίχηση λόφων (παράδειγµα µε τις τέσσερις βασίλισσες). " Μειονεκτήµατα: " Εξετάζει ένα µεγάλο πλήθος "γειτονικών" καταστάσεων πριν επιλέξει την επόµενη τιµή η οποία θα µεταβληθεί. " Μπορεί να "πέσει" σε τοπικό ελάχιστο, δηλαδή µια κατάσταση στην οποία καµιά µεταβολή στις τιµές δε δίνει καλύτερη λύση. Γιάννης Ρεφανίδης 94 13
Κλασσικοί Αλγόριθµοι Αναζήτησης " Μπορούν να χρησιµοποιηθούν όλοι οι γνωστοί αλγόριθµοι αναζήτησης (κατά βάθος, κατά πλάτος, πρώτα στο καλύτερο κλπ). " Στην αρχική κατάσταση οι µεταβλητές δεν έχουν πάρει τιµές. " Σε κάθε βήµα δίνουµε µια τιµή σε µια µεταβλητή, αρκεί να µην παραβιάζεται κανένας περιορισµός. " Το βάθος του δένδρου αναζήτησης είναι ίσο µε το πλήθος των µεταβλητών. " Μειονέκτηµα: Ο έλεγχος για την ικανοποίηση των περιορισµών γίνεται µετά τη δηµιουργία της λύσης. Γιάννης Ρεφανίδης 95 Αλγόριθµοι ελέγχου συνέπειας (1/2) " Ηβασική ιδέα των αλγορίθµων ελέγχου συνέπειας είναι η όσο το δυνατόν µεγαλύτερη µείωση του χώρου αναζήτησης πριν την ανάθεση τιµών. " Γενικός αλγόριθµος: 1. Για κάθε περιορισµό αφαίρεσε από τα πεδία τιµών των µεταβλητών τις τιµές εκείνες που δεν µπορούν να συµµετέχουν στην τελική λύση. 2. Στο µειωµένο χώρο αναζήτησης που προκύπτει από το προηγούµενο βήµα εφάρµοσε έναν κλασσικό αλγόριθµο αναζήτησης για να βρεθεί η λύση (π.χ. πρώτα κατά βάθος). 3. Σε κάθε βήµα (ανάθεση τιµής) αυτής της αναζήτησης εφάρµοσε ξανά τον αλγόριθµο ελέγχου συνέπειας έτσι ώστε να αφαιρεθούν τυχόν τιµές από τα πεδία των µεταβλητών οι οποίες δεν µπορούν να συµµετέχουν στην λύση. Γιάννης Ρεφανίδης 96 14
Γράφος περιορισµών " Περιορισµοί: " Α > " Γ < Β " Β < Α Α Α>Β Β<Α Β Β>Γ Γ<Β Γ Α> <Α Γιάννης Ρεφανίδης 97 Παράδειγµα (3/6) Α Β (C1) Β Γ (C4) Α > (C7) Α Γ (C2) Β (C5) Γ < Β (C8) Α (C3) Γ (C6) Β < Α (C9) " Τα αρχικά πεδία τιµών των µεταβλητών: " Α {1,2,3,4} " Β {1,2,3,4} " Γ {1,2,3,4} " {1,2,3,4} Γιάννης Ρεφανίδης 98 15
Παράδειγµα (4/6) " Λόγω Β < Α (C9), η µεταβλητή Β δε µπορεί σε καµιά περίπτωση να πάρει την τιµή 4, αλλά ούτε και η Α να πάρει την τιµή 1: " Α {2,3,4} " Β {1,2,3} " Γ {1,2,3,4} " {1,2,3,4} " Λόγω Γ < Β (C8), η Γ δεν µπορεί να πάρει την τιµή 3 ούτε και την τιµή 4, ενώ η Β δε µπορεί να πάρει την τιµή 1: " Α {2,3,4} " Β {2,3} " Γ {1,2} " {1,2,3,4} Γιάννης Ρεφανίδης 99 Παράδειγµα (5/6) " Λόγω Α > (C7) η δεν µπορεί να πάρει την τιµή 4: " Α {2,3,4} " Β {2,3} " Γ {1,2} " {1,2,3} " Το πεδίο της Β έχει µεταβληθεί, οπότε ο περιορισµός C9 πρέπει να επανεξεταστεί. Λόγω του Β < Α (C9) δεν µπορεί να υπάρχει η τιµή 2 στοπεδίοτηςα: " Α {3,4} " Β {2,3} " Γ {1,2} " {1,2,3} " Τώρα οι πιθανοί συνδυασµοί γίνονται 2 2 2 3=24, σε σχέση µε τους 256 που υπήρχαν αρχικά. Γιάννης Ρεφανίδης 100 16
Αλγόριθµοι ελέγχου συνέπειας (2/2) " Στο σηµείο αυτό τα πεδία τιµών των µεταβλητών δεν µπορούν να περιοριστούν παραπέρα. " Επιλέγεται στην τύχη µια µεταβλητή και της αποδίδεται αυθαίρετα µία από τις τιµές της. " Αυτό προκαλεί επιπλέον περιορισµούς στα πεδία των υπολοίπων µεταβλητών " Η παραπάνω διαδικασία επαναλαµβάνεται µέχρι: " Όλες οι µεταβλητές να πάρουν µία τιµή. " Κάποια µεταβλητή να µείνει χωρίς τιµές " Το σηµείο αυτό αποτελεί σηµείο οπισθοδρόµησης Γιάννης Ρεφανίδης 101 Παράδειγµα (6/6) Α {3,4} Β {2,3} Γ {1,2} {1,2,3} Α= 3 Α = 4 Περιορισµοί Γ Β Γ <Β Α > Αποτυχία Α=3 Β {2,3} Γ {1,2} {1,2,3} Α = 4 Β {2,3} Γ {1,2} {1,2,3} Β = 2 Β = 3 Περιορισµοί Γ Β Γ < Β Α = 4 Β = 2 Γ {1,2} {1,2,3} Α = 4 Β = 3 Γ {1,2} {1,2,3} Περιορισµοί Β Λύση: Α=4, Β=2, Γ=1, =3 Γ = 1 Γ = 2 Περιορι σµοί Γ Β Α = 4 Β = 3 Γ = 1 Α = 4 Β = 3 Γ = 2 Περιορισµοί Γ {1,2,3} {1,2,3} Β Γιάννης Ρεφανίδης 102 Λύση: Α=4, Β=3, Γ=1, =2 Λύση: Α=4, Β=3, Γ=2, =1 17
Παρατηρήσεις " Ογράφος αναζήτησης διασχίζεται συνήθως πρώτακατά-βάθος. " Ευρετικές τεχνικές για αύξηση της απόδοσης: " Επιλέγουµε να δώσουµε τιµή πρώτα στις µεταβλητές µε τις λιγότερες τιµές. " Εναλλακτικά, επιλέγουµε να δώσουµε τιµή πρώτα στις µεταβλητές εκείνες που συµµετέχουν στους περισσότερους περιορισµούς. " Αφού επιλέξουµε µια µεταβλητή, στη συνέχεια επιλέγουµε να της αναθέσουµε πρώτα την τιµή εκείνη που προκαλεί τη µικρότερη απόρριψη τιµών από τα πεδία των υπολοίπων µεταβλητών. Γιάννης Ρεφανίδης 103 Παράδειγµα: Το πρόβληµα των 8 βασιλισσών (1/3) " Παριστάνουµε το πρόβληµα µε 8 µεταβλητές, µια για κάθε βασίλισσα. " Κάθε βασίλισσα είναι σε διαφορετική στήλη. " Το πεδίο ορισµού κάθε βασίλισσας είναι οι 8 θέσεις στη στήλη της. Q 1 Q 2 Q 3 Q 4 Q 5 Q 6 Q 7 Q 8 " Γραφική αναπαράσταση των περιορισµών: 1 2 3 4 5 6 7 8 Γιάννης Ρεφανίδης 104 18
Παράδειγµα: Το πρόβληµα των 8 βασιλισσών (2/3) " Ανάθεση τιµής στην πρώτη βασίλισσα: " Ανάθεση τιµών στις δύο πρώτες βασίλισσες: Γιάννης Ρεφανίδης 105 Παράδειγµα: Το πρόβληµα των 8 βασιλισσών (3/3) " Ανάθεση τιµών που δεν οδηγεί σε λύση: " Λύση στο πρόβληµα των 8 βασιλισσών: Γιάννης Ρεφανίδης 106 19