ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΠΑΡΆΡΤΗΜΑ ΛΕΥΚΑΔΑΣ ΥΠΕΥΘΥΝΗ ΚΑΘΗΓΉΤΡΙΑ Δρ. ΤΣΙΝΤΖΑ ΠΑΝΑΓΙΩΤΑ Οι παρουσιάσεις του μαθήματος βασίζονται στο σύγγραμμα ‘’ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ, ΒΛΑΧΑΒΑΣ, ΚΕΦΑΛΑΣ, ΒΑΣΙΛΕΙΑΔΗΣ, ΚΟΚΚΟΡΑΣ, ΣΑΚΕΛΛΑΡΙΟΥ’’
Κεφάλαιο 4 ο ΑΛΓΟΡΙΘΜΟΙ ΑΝΑΖΗΤΗΣΗΣ ΠΑΙΓΝΊΩΝ ΜΕ 2 ΑΝΤΙΠΑΛΟΥΣ
Προβλήματα στα οποία η εξέλιξη των καταστάσεων εξαρτώνται εναλλάξ από 2 διαφορετικά σύνολα τελεστών καταστάσεων Ανταγωνιστικά παίγνια ή παίγνια 2 αντιπάλων που επιλύονται με την βοήθεια των αλγόριθμων MINMAX και Alpha-Beta
Διαχωρισμός παιγνίου και παιχνιδιού Παίγνιο: περιγραφή του τρόπου που παίζεται ένα παιχνίδι δλδ: Οι κανόνες (περιορισμοί κινήσεων κτλ) και Τα αντικείμενα που λαμβάνουν μέρος (πούλια, πιόνια κτλ) Παιχνίδι: συγκεκριμένη παρτίδα του παιγνίου
Ορισμός του προβλήματος Το πρόβλημα ορίζεται μέσω: Μιας κατάστασης που παριστάνει την διάταξη των αντικειμένων σε κάποια χρονική στιγμή Το χώρο καταστάσεων που περιλαμβάνει όλες τις επιτρεπτές καταστάσεις εφαρμόζοντας ένα τελεστή μετάβασης Το σύνολο των τελεστών μετάβασης που είναι οι επιτρεπτές κινήσεις βάση των κανόνων του παιγνίου Οι τελικές καταστάσεις οι οποίες δεν είναι γνωστές αλλά έχουν χαρακτηριστικά (στο σκάκι πχ το ματ)
Η ανθρώπινη οπτική της επίλυσης Κάποιος που συμμετέχει σε ένα παιχνίδι και είναι η σειρά του να παίξει: Πρέπει να επιλέξει την καλύτερη δυνατή κίνηση για αυτόν η οποία θα είναι όμως η χειρότερη για τον αντίπαλο Ο τρόπος επιλογής της επόμενης κίνησης πρέπει να περιλαμβάνει και τις επόμενες πιθανές κινήσεις Με άλλα λόγια αυτός ο προγραμματισμός των κινήσεων παραπέμπει στην κατασκευή ενός δέντρου με όλες τις δυνατές κινήσεις που μπορούν να προκύψουν από την τρέχουσα κατάσταση – δέντρο του παιχνιδιού
Δέντρο του παιχνιδιού Χαρακτηριστικά: Δύο διαδοχικά επίπεδα ανήκουν σε 2 διαφορετικούς παίχτες (κάθε επίπεδο περιλαμβάνει τις πιθανές κινήσεις του αντίστοιχου παίχτη) ○ Η διαδικασία ανάπτυξης του δέντρου διακόπτεται σε ένα μικρό σχετικά βάθος όπου και ξεκινάει η αξιολόγηση των καταστάσεων με κριτήρια που εξαρτώνται από το είδος του παιγνίου ○ Ο παίκτης λαμβάνει υπόψιν του την αξιολόγηση έτσι ώστε να επιλέξει ποια πιθανή κίνηση θα τον οδηγήσει στην πιο ευνοϊκή κατάσταση Σε περίπτωση παιγνίου με αντιπάλους άνθρωπο και υπολογιστή ○ Η δημιουργία του δέντρου από τον υπολογιστή συνήθως διακόπτεται σε ένα βάθος πρόβλεψης 10 κινήσεων ○ Η δημιουργία του δέντρου από τον άνθρωπο διακόπτεται σε ένα βάθος 2 με 3 κινήσεων ○ Οι διαφορές αυτές όμως δεν κάνουν κάποιο πρόγραμμα κυρίαρχο του παιχνιδιού γιατί ο άνθρωπος: μπορεί να εμπλέξει ευριστικούς τρόπους υπολογισμού της επόμενης κίνησης διαθέτει διαίσθηση και εμπειρία
Τα προγράμματα του σκάκι Εάν τα προγράμματα ήταν σε θέση να δημιουργήσουν ένα πλήρες δέντρο παιχνιδιού κανείς άνθρωπος δεν θα ήταν σε θέση να νικήσει έναν υπολογιστή Η κατασκευή ενός πλήρους δέντρου όμως είναι ανέφικτη λόγω χρονικών περιορισμών σαν επακόλουθο της συνδυαστικής έκρηξης Αν υποθέσουμε ότι για κάθε κατάσταση παράγονται κατά μέσο όρο 10 πιθανές καταστάσεις (κινήσεις) και ότι μια παρτίδα τελειώνει σε 40 κινήσεις τότε οι πιθανές τελικές καταστάσεις είναι της τάξης του 10^40 Θεωρώντας ότι ένας υπερ-υπολογιστής χρειάζεται 1 nanosecond (10^ - 9 second) για να εξετάσει κάθε μία από αυτές τότε χρειάζεται 10^40 Χ 10^ -9 = 10^31 second για να τις εξετάσει όλες (δλδ το ¼ του χρόνου της δημιουργίας του σύμπαντος) Για αυτό το λόγο τα προγράμματα κατασκευάζουν και αξιολογούν τα δέντρα του παιχνιδιού μέχρι ένα ορισμένο βάθος (έτσι ώστε να μπορεί να πραγματοποιηθεί η κίνηση σε επιτρεπτά χρονικά όρια)
Ο αλγόριθμος MINMAX Αλγόριθμος αναζήτησης μέγιστου ελάχιστου που αποφασίζει ποια θα είναι η επόμενη κίνηση έναντι του αντιπάλου Χτίζεται το δέντρο του παιχνιδιού μέχρι ένα συγκεκριμένο βάθος Βρίσκεται η καλύτερη κίνηση από την συγκεκριμένη κατάσταση Η υπεροχή του ενός έναντι του άλλου αντιπάλου υπολογίζεται βάση μιας συνάρτησης αξιολόγησης και εφαρμόζεται στα φύλλα του δέντρου Ο αλγόριθμος δίνει το όνομα του στους 2 παίχτες που ονομάζονται αντίστοιχα παίχτης max (κατά σύμβαση είναι ο πρώτος που παίζει) και min Το δέντρο (και επομένως οι κινήσεις) δημιουργείται σε εναλλάξ (max και min) επίπεδα στο καθένα από τα οποία πρέπει να παίξει ο αντίστοιχος παίχτης
Αλγόριθμος MINMAX Αφού δημιουργηθεί το δέντρο του παιχνιδιού μέχρι το βάθος που επιτρέπει το παίγνιο ακολουθούμε τα εξής βήματα Τα βήματα του αλγόριθμου 1. Εφάρμοσε τη συνάρτηση αξιολόγησης σε όλα τα φύλλα του δέντρου 2. Μέχρι η ρίζα του δέντρου να αποκτήσει τιμή επανάλαβε 3. Αρχίζοντας από τα φύλλα και ανεβαίνοντας προς τα ανώτερα επίπεδα μετέφερε τις τιμές προς τους ενδιάμεσους κόμβους ως εξής i. Η τιμή για τους κόμβους του επιπέδου Max είναι η μεγαλύτερη τιμή των κόμβων παιδιών του ii. Η τιμή για τους κόμβους του επιπέδου Min είναι η μικρότερη τιμή των κόμβων παιδιών του 4. Καταλληλότερη κίνηση επιλέγεται η κίνηση που έδωσε τιμή στον κόμβο ρίζα
Εφαρμογή του ΜΙΝΜΑΧ στην τρίλιζα Το πρόβλημα της τρίλιζας παράγει ένα μικρό σχετικά χώρο αναζήτησης της τάξης του 9! Ένα παράδειγμα εφαρμογής του αλγόριθμου για παραγωγή καταστάσεων τριών κινήσεων
Συνάρτηση αξιολόγησης στην τρίλιζα Θα μπορούσε να είναι η 3Χ 2 + Χ 1 – (3 Ο 2 +Ο 1 ) Όπου: Χ 2 είναι το πλήθος των γραμμών, στηλών και διαγωνίων που περιέχουν 2 Χ και κανένα Ο Χ 1 είναι το πλήθος των γραμμών, στηλών και διαγωνίων που περιέχουν 1 Χ και κανένα Ο Ο 2 είναι το πλήθος των γραμμών, στηλών και διαγωνίων που περιέχουν 2 Ο και κανένα Χ Ο 1 είναι το πλήθος των γραμμών, στηλών και διαγωνίων που περιέχουν 1 Ο και κανένα Χ Παράδειγμα
Αλγόριθμος Alpha-Beta Βελτίωση του ΜΙΝΜΑΧ γιατί επιτρέπει κλάδεμα του δέντρου Κριτήρια κλαδέματος:
Σύγκριση ΜΙΝΜΑΧ με Alpha-Beta
Απόδοση αλγορίθμων Ο ΑΒ εξετάζει √Ν, έναντι στους Ν που εξετάζει ο ΜΙΝΜΑΧ Η απόδοση του μπορεί να βελτιωθεί εισάγοντας μεθόδους όπως: ○ Ευριστικό κλάδεμα ○ Επιλογή δυναμικής συνάρτησης αξιολόγησης ○ Προκαθορισμένες κινήσεις ○ Αποθήκευση τιμών και τερματικών καταστάσεων