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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 5. Αλγόριθµοι Αναζήτησης σε Παίγνια ύο Αντιπάλων. Τεχνητή Νοηµοσύνη - Β' Έκδοση

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

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

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

Αλγόριθμοι Αναζήτησης σε Παίγνια Δύο Αντιπάλων

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

Ε ανάληψη. Προβλήµατα ικανο οίησης εριορισµών. ορισµός και χαρακτηριστικά Ε ίλυση ροβληµάτων ικανο οίησης εριορισµών

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 8: Παίγνια πλήρους και ελλιπούς πληροφόρησης

Ε ανάληψη. Παιχνίδια παιχνίδια ως αναζήτηση. Βέλτιστες στρατηγικές στρατηγική minimax. Βελτιώσεις κλάδεµα α-β

Αναζήτηση με Αντιπαλότητα

Θεωρία Παιγνίων Δρ. Τασσόπουλος Ιωάννης

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

Κεφ. 9 Ανάλυση αποφάσεων

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

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεωρία Παιγνίων και Αποφάσεων Διδάσκων: Ε. Μαρκάκης, Εαρινό εξάμηνο 2015

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

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

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

Αυτόνομοι Πράκτορες. Εργασία εξαμήνου. Μάθηση του παιχνιδιού British square με χρήση Temporal Difference(TD) Κωνσταντάκης Γιώργος

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

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

Τσάπελη Φανή ΑΜ: Ενισχυτική Μάθηση για το παιχνίδι dots. Τελική Αναφορά

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

Θεωρία Παιγνίων Δρ. Τασσόπουλος Ιωάννης

ΑΣΚΗΣΕΙΣ ΓΙΑ ΤΟ ΕΡΓΑΣΤΗΡΙΟ 3

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

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

ΠΛΗ 405 Τεχνητή Νοηµοσύνη Ε ανάληψη. Προβλήµατα ικανο οίησης εριορισµών ορισµός και χαρακτηριστικά

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

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

δημιουργία: επεξεργασία: Ν.Τσάντας

Extensive Games with Imperfect Information

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

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

Περιεχόμενα. 1. Ανάλυση ευαισθησίας. (1) Ανάλυση ευαισθησίας (2) Δυϊκό πρόβλημα (κανονική μορφή) (3) Δυαδικός προγραμματισμός (4) Ανάλυση αποφάσεων

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

Ασκήσεις. Ιωάννα Καντζάβελου. Τµήµα Μηχανικών Πληροφορικής και Υπολογιστών 1

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

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

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ

Στοχαστικές Στρατηγικές

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

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

ΠΛΗ 405 Τεχνητή Νοηµοσύνη Ε ανάληψη. πεπερασµένα χρονικά περιθώρια ανά κίνηση. απευθείας αξιολόγηση σε ενδιάµεσους κόµβους


Για παράδειγμα η αρχική και η τελική κατάσταση αναπαριστώνται ως εξής: (ένα λίτρο)

Αλγόριθµοι Ευριστικής Αναζήτησης

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε "Ναι" Τέλος Α2

ΑΣΚΗΣΗ 1 ΑΣΚΗΣΗ 2 ΑΣΚΗΣΗ 3

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

Ε Π Ι Χ Ε Ι Ρ Η Σ Ι Α Κ Η Ε Ρ Ε Υ Ν Α

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

ΘΕΩΡΙΑ ΤΩΝ ΠΑΙΓΝΙΩΝ I.

Systematic Search and Reinforcement Learning for the Board Game Turning Points. Diploma Thesis

Εκτεταμένα Παίγνια (Extensive Games)

Λήψη απόφασης σε πολυπρακτορικό περιβάλλον. Θεωρία Παιγνίων

Λήψη αποφάσεων υπό αβεβαιότητα

Λήψη αποφάσεων υπό αβεβαιότητα. Παίγνια Αποφάσεων 9 ο Εξάμηνο

Μικτές Στρατηγικές σε Παίγνια και σημεία Ισορροπίας Nash. Τµήµα Μηχανικών Πληροφορικής και Υπολογιστών 1

Κυριαρχία και μεικτές στρατηγικές Μεικτές στρατηγικές και κυριαρχία Είδαμε ότι μια στρατηγική του παίκτη i είναι κυριαρχούμενη, αν υπάρχει κάποια άλλη

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

Συστηματική Αναζήτηση και Ενισχυτική Μάθηση για το Επιτραπέζιο Παιχνίδι Backgammon

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΞΕΤΑΣΗ ΣΤΟ ΜΑΘΗΜΑ «ΔΙΑΚΡΙΤΑ ΜΑΘΗΜΑΤΙΚΑ» - 6/2/2014 Διάρκεια Εξέτασης: 2 ώρες και 50 λεπτά Ομάδα Α

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεωρία Παιγνίων και Αποφάσεων Διδάσκων: Ε. Μαρκάκης, Εαρινό εξάμηνο 2015

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

Ασκήσεις ανακεφαλαίωσης στο μάθημα Τεχνητή Νοημοσύνη

Β. Βασιλειάδης Αν. Καθηγητής. Επιχειρησιακή Ερευνα Διάλεξη 6 η - Θεωρεία Παιγνίων

Γιώργος Γκούμας. Τα πρώτα σκακιστικά βήματα του παιδιού

Λήψη αποφάσεων υπό αβεβαιότητα

ΑΥΤΟΝΟΜΟΙ ΠΡΑΚΤΟΡΕΣ. ΑΝΑΦΟΡΑ ΕΡΓΑΣΙΑΣ Othello-TD Learning. Βόλτσης Βαγγέλης Α.Μ

Μαθηματικά των Υπολογιστών και των Αποφάσεων Τεχνητή Νοημοσύνη 1η Σειρά Ασκήσεων

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

Μαθαίνοντας σκάκι. Εγχειρίδιο για προπονητές. Τρίτο βήμα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΣΤΑΤΙΣΤΙΚΗ ΤΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ. Κεφάλαιο 7. Τυχαίες Μεταβλητές και Διακριτές Κατανομές Πιθανοτήτων

Notes. Notes. Notes. Notes

ΑΛΓΟΡΙΘΜΙΚΗ ΘΕΩΡΙΑ ΠΑΙΓΝΙΩΝ Πανεπιστήµιο Αθηνών Εαρινό Εξάµηνο 2007 ιδάσκων : Ηλίας Κουτσουπιάς

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

Διακριτά Μαθηματικά [Rosen, κεφ. 3] Γιάννης Εμίρης Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Οκτώβριος 2018

Μ Α Θ Η Μ Α Τ Α Γ Λ Υ Κ Ε Ι Ο Υ

ΑΝΑΛΥΣΗ 1 ΤΕΤΑΡΤΟ ΜΑΘΗΜΑ, Μ. Παπαδημητράκης.

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

Συστηματική Αναζήτηση και Ενισχυτική Μάθηση για το Επιτραπέζιο Παιχνίδι "Amazons"

p q 0 P =

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

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

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

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

Transcript:

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

Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας Εκδοτική, 2006 και Artificial Intelligence A Modern Approach των S. Russel και P. Norvig, 2η έκδοση, Prentice Hall, 2003. Τα περισσότερα σχήματα των διαφανειών προέρχονται από αντίστοιχες διαφάνειες του δεύτερου βιβλίου.

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

Παιχνίδια αντιπάλων αρχική κατάσταση Ο Max επιδιώκει το πιο θετικό όφελος. Ο Min το πιο αρνητικό. τελικές καταστάσεις όφελος σε κάθε κατάσταση

Παιχνίδια αντιπάλων Συνάρτηση οφέλους: Αξιολογεί κάθε τελική κατάσταση. Επιστρέφει αριθμητική τιμή. Στο σκάκι +1 αν κερδίζει ο Max, 1 αν κερδίζει ο Min. Γενικότερα, π.χ. συνάρτηση του χρηματικού κέρδους. Παιχνίδια μηδενικού αθροίσματος: Σε κάθε τελική κατάσταση, το άθροισμα του οφέλους των δύο παικτών είναι 0. Π.χ. στο σκάκι, όταν κερδίζει ο ένας (+1), χάνει ο άλλος ( 1). Απλοποιήσεις: Μόνο δύο αντίπαλοι. Παίζει ένας παίκτης κάθε φορά. Πλήρως γνωστό περιβάλλον και συνέπειες κινήσεων. Δεν υπάρχουν τυχαίες μεταβάσεις (π.χ. ζάρια).

Τιμή Minimax ενός κόμβου Όφελος αν φτάσουμε σε αυτή την τελική κατάσταση. Αν το παιχνίδι φτάσει σε αυτή την κατάσταση, θα τελειώσει με όφελος 3, γιατί ο Min θα επιλέξει στην επόμενη κίνηση την τελική κατάσταση με το μικρότερο όφελος.

Τιμή Minimax ενός κόμβου Αν φτάσουμε σε αυτή την κατάσταση, το παιχνίδι θα τελειώσει με όφελος 3, γιατί ο Max θα επιλέξει την κίνηση που οδηγεί στο μεγαλύτερο όφελος. Αν ο Max κάνει αυτή την κίνηση, το παιχνίδι θα τελειώσει με όφελος 3. Αν ο Max κάνει αυτή την κίνηση, το παιχνίδι θα τελειώσει με όφελος 2. Μονοπάτι κινήσεων που θα επιλεγεί. Κατά μήκος του όλοι οι κόμβοι έχουν την ίδια τιμή.

Τιμή Minimax ενός κόμβου minimax-value(n) = utility(n), αν n τερματικός κόμβος, max s succ(n) minimax-value(s), αν στον n παίζει ο Max, min s succ(n) minimax-value(s), αν στον n παίζει ο Min, όπου succ(n) οι κόμβοι των καταστάσεων-παιδιών. Αν φτάσει το παιχνίδι στον κόμβο n, το παιχνίδι θα τελειώσει με όφελος minimax-value(n). Αν επιλέξουν στη συνέχεια και οι δύο παίκτες τις κινήσεις που τους συμφέρουν περισσότερο, δηλαδή αυτές με τις μέγιστες ή ελάχιστες, αντίστοιχα, τιμές Minimax. Αν επιλέγουμε σύμφωνα με τις τιμές Minimax και ο αντίπαλος όχι, το παιχνίδι θα τελειώσει με όφελος ίσο με minimax-value(n) ή καλύτερο (για εμάς).

Αλγόριθμος Minimax με DFS Εξερευνούμε όλο το χώρο αναζήτησης από την κατάσταση στην οποία βρισκόμαστε με DFS. Δεν σταματάμε όταν φτάσουμε σε τελική κατάσταση. Κατά την εξερεύνηση υπολογίζουμε: το όφελος στα φύλλα, την τιμή Minimax των μη τερματικών κόμβων. Ποια κίνηση επιλέγουμε (από τη ρίζα, όπου παίζουμε εμείς); Αυτή που μας οδηγεί στο βέλτιστο όφελος. Αν ο αντίπαλος δεν επιλέξει κατόπιν τις βέλτιστες κινήσεις, το όφελός μας θα είναι μεγαλύτερο. Πολυπλοκότητα: Χώρος: O(bm) (ή O(m) για DFS με οπισθοδρόμηση). Χρόνος: O(b m ). Συνήθως δεν είναι εφικτό να φτιάξουμε το πλήρες δέντρο.

Minimax με DFS function minimax(state) v max-value(state) // Θεωρούμε ότι ο υπολογιστής είναι ο Max. return κίνηση που οδηγεί στην s succ(state) με τιμή v function max-value(state) // Τιμή Minimax ενός κόμβου όπου παίζει ο Max. if terminal-test(state) then return utility(state) v άπειρο for s succ(state) // Αν χρησιμοποιούμε DFS με οπισθοδρόμηση, παράγουμε // μόνο ένα παιδί τη φορά και επιστρέφουμε για το επόμενο. v max(v, min-value(s)) // Κρατάμε τη μεγαλύτερη τιμή Minimax των παιδιών. return v function min-value(state) // Τιμή Minimax ενός κόμβου όπου παίζει ο Min. if terminal-test(state) then return utility(state) v +άπειρο for s succ(state) v min(v, max-value(s)) // Κρατάμε τη μικρότερη τιμή. return v

Πριόνισμα του δέντρου ΜAX ΜIN Για κόμβους MIN, θα έχω συχνά άνω φράγμα ( β). Κλαδιά που δε χρειάζεται να εξερευνήσω (πριόνισμα). Για κόμβους MAX, θα έχω συχνά κάτω φράγμα ( α).

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

Πριόνισμα με α (καθώς παράγουμε παιδιά κόμβου MIN) Καθώς εξερευνούμε το χώρο αναζήτησης με DFS και οπισθοδρόμηση, επιστρέφουμε σε αυτόν τον κόμβο. α...... v α...... ΜΙΝ v α... ΜΑΧ α ΜΑΧ Από τα αριστερότερα υποδέντρα του που έχουμε εξερευνήσει ξέρουμε ότι η τιμή αυτού του κόμβου θα είναι α. (Έχουμε ήδη βρει παιδί του με τιμή α.) Συνεχίζοντας την εξερεύνηση φτάνουμε εδώ. Αν η τιμή αυτού του κόμβου είναι v α, μπορούμε να πριονίσουμε τα υπόλοιπα αδέλφια του και όλο το υποδέντρο του MIN. Γιατί η τιμή του κόμβου MIN θα είναι v α. Ο από πάνω κόμβος MAX μπορεί να αγνοήσει το υποδέντρο αυτού του κόμβου ΜΙΝ, αφού έχει στη διάθεσή του άλλη επιλογή που οδηγεί σε μεγαλύτερη ή ίση τιμή α.

Πριόνισμα με α (γενικότερο)...... α ΜΑΧ ΜΙΝ v α v α ΜΑΧ......... ΜΑΧ α Γενικότερα, το α μπορεί να είναι το καλύτερο (μέγιστο) κάτω φράγμα ( α) που έχουμε βρει για αυτόν τον κόμβο ή οποιονδήποτε πρόγονό του. Αν η τιμή αυτού του κόμβου είναι v α, μπορούμε πάλι να πριονίσουμε τα υπόλοιπα αδέλφια του και όλο το υποδέντρο του MIN. Γιατί η τιμή του κόμβου MIN θα είναι v α. Δηλαδή το υποδέντρο αυτού του κόμβου MIN μπορεί να μεταδώσει στον πάνω κόμβο MAX (για τον οποίο έχουμε το φράγμα α) τιμή α, ενώ εκείνος ο κόμβος έχει ήδη στη διάθεσή του άλλη επιλογή που του δίνει τιμή α.

Πριόνισμα με β (καθώς παράγουμε παιδιά κόμβου MAX) Καθώς εξερευνούμε το χώρο αναζήτησης με DFS και οπισθοδρόμηση, επιστρέφουμε σε αυτόν τον κόμβο. β...... v β...... ΜAX v β ΜIN β ΜIN... Από τα αριστερότερα υποδέντρα του που έχουμε εξερευνήσει ξέρουμε ότι η τιμή αυτού του κόμβου θα είναι β. (Έχουμε ήδη βρει παιδί του με τιμή β.) Συνεχίζοντας την εξερεύνηση φτάνουμε εδώ. Αν η τιμή αυτού του κόμβου είναι v β, μπορούμε να πριονίσουμε τα υπόλοιπα αδέλφια του και όλο το υποδέντρο του MAX. Γιατί η τιμή του κόμβου MAX θα είναι v β. Ο από πάνω κόμβος MIN μπορεί να αγνοήσει το υποδέντρο αυτού του κόμβου MAX, αφού έχει στη διάθεσή του άλλη επιλογή που οδηγεί σε μικρότερη ή ίση τιμή β.

Πριόνισμα με β (γενικότερο)...... β ΜAX v β v β......... ΜIN β ΜIN ΜIN Γενικότερα, το β μπορεί να είναι το καλύτερο (ελάχιστο) πάνω φράγμα ( β) που έχουμε βρει για αυτόν τον κόμβο ή οποιονδήποτε πρόγονό του. Αν η τιμή αυτού του κόμβου είναι v β, μπορούμε πάλι να πριονίσουμε τα υπόλοιπα αδέλφια του και όλο το υποδέντρο του MAX. Γιατί η τιμή του κόμβου MAX θα είναι v β. Δηλαδή το υποδέντρο αυτού του κόμβου MAX μπορεί να μεταδώσει στον πάνω κόμβο MIN (για τον οποίο έχουμε το φράγμα β) τιμή β, ενώ εκείνος ο κόμβος έχει ήδη στη διάθεσή του άλλη επιλογή που του δίνει τιμή β.

Αλγόριθμος α-β Όπως ο Mimimax, αλλά καθώς παράγουμε τα παιδιά κάθε κόμβου: Καθώς παράγουμε τα παιδιά ενός κόμβου MIN (διαφάνεια 14), πριονίζουμε χρησιμοποιώντας το καλύτερο φράγμα α των MAX προγόνων του. Καθώς παράγουμε τα παιδιά ενός κόμβου MAX (διαφάνεια 16), πριονίζουμε χρησιμοποιώντας το καλύτερο φράγμα β των ΜΙΝ προγόνων του. Για ευκολία σε κάθε κόμβο αποθηκεύουμε τα καλύτερα φράγματα α και β: Σε κάθε κόμβο MIN (δεν έχει δικό του α): αποθηκεύουμε το καλύτερο φράγμα α των MAX προγόνων του και το καλύτερο από τα β φράγματα του ίδιου του κόμβου και των MIN προγόνων του. Σε κάθε κόμβο MAX (δεν έχει δικό του β): αποθηκεύουμε το καλύτερο φράγμα β των MIN προγόνων του και το καλύτερο από τα α φράγματα του ίδιου του κόμβου και των MAX προγόνων του.

Αλγόριθμος α-β function alpha-beta(state) v max-value(state, -άπειρο, +άπειρο) // Ο υπολογιστής είναι ο Max. return κίνηση που οδηγεί στην s succ(state) με τιμή v function max-value(state, α, β) // Τιμή Minimax κόμβου MAX. if terminal-test(state) then return utility(state) v άπειρο for s succ(state) v max(v, min-value(s, α, β)) // Ta α,β του κόμβου MAX όπου βρισκόμαστε. if v β then return v // Πριόνισμα με β. Δεν έχει σημασία τι επιστρέφουμε. α max(α, v) // Ενημερώνουμε το α του κόμβου MAX όπου βρισκόμαστε. return v function min-value(state, α, β) // Τιμή Minimax κόμβου MIN. if terminal-test(state) then return utility(state) v +άπειρο for s succ(state) v min(v, max-value(s, α, β)) // Τα α,β του κόμβου MIN όπου βρισκόμαστε. if v α then return v // Πριόνισμα με α. Δεν έχει σημασία τι επιστρέφουμε. β min(β, v) // Ενημερώνουμε το β του κόμβου MIN όπου βρισκόμαστε. return v

Περιορισμός βάθους και ευρετικές Ακόμα και αν επεκτείνει πάντα πρώτα το καλύτερο παιδί (μέγιστο πριόνισμα), ο αλγόριθμος α-β παράγει O(b m/2 ) κόμβους για να βρει τη βέλτιστη κίνηση. Αντί O(b m ) για τον απλό Minimax. Βελτίωση, αλλά πάλι εκθετικές απαιτήσεις χρόνου. Στην πράξη κατασκευάζουμε το δέντρο αναζήτησης μέχρι ένα μέγιστο βάθος l. DFS με περιορισμό βάθους. Εφαρμόζουμε στους κόμβους μέγιστου βάθους μια ευρετική συνάρτηση αξιολόγησης. Η ευρετική προσπαθεί να εκτιμήσει το όφελος που θα προκύψει αν βρεθούμε σε καθέναν από αυτούς τους κόμβους. Δεν μπορούμε να εφαρμόσουμε τη συνάρτηση οφέλους, γιατί εφαρμόζεται μόνο σε τελικές καταστάσεις.

Ευρετικές συναρτήσεις αξιολόγησης Στο σκάκι: Συνολική αξία κομματιών κάθε αντιπάλου: π.χ. βασιλιάς: 10, άλογο: 5, πιόνι: 1. Θέσεις κομματιών: π.χ. κάθε κομμάτι στα 4 κεντρικά τετράγωνα παίρνει επιπλέον 2 πόντους. Απειλές: π.χ. για κάθε απειλή κομματιού αντιπάλου 3 επιπλέον πόντοι και για απειλή προς βασιλιά 20 πόντοι. Συνήθως χρησιμοποιούμε συνδυασμό ευρετικών: Π.χ. γραμμικό συνδυασμό: w 1 h 1 (n) +... + w k h k (n). Μπορούμε να χρησιμοποιήσουμε τεχνικές μηχανικής μάθησης για να αποφασίσουμε ποια θα είναι τα βάρη. Παραδείγματα εκπαίδευσης: οι καταστάσεις που έχουμε συναντήσει στο παρελθόν (π.χ. παίζοντας με τον εαυτό μας). Ιδιότητες: οι ευρετικές. Επιθυμητή απόκριση: η πιθανότητα να κερδίσουμε αν βρεθούμε στη συγκεκριμένη κατάσταση. (Άσκηση, αφού μιλήσουμε για ΜΜ.)

Τιμή Minimax με ευρετικές minimax-value(n) = h(n), αν n κόμβος μέγιστου βάθους, max s succ(n) minimax-value(s), αν στον n παίζει ο Max, min s succ(n) minimax-value(s), αν στον n παίζει ο Min. Αποτελεί εκτίμηση του οφέλους στο οποίο θα οδηγηθούμε αν φτάσουμε στον κόμβο n. Αν επιλέξουν στη συνέχεια και οι δύο τις κινήσεις τους βάσει των τιμών Minimax που υπολογίσαμε. Στην πράξη, όμως, ο αντίπαλος (ακόμα κι αν είναι το ίδιο πρόγραμμα, με την ίδια ευρετική) θα ψάξει μέχρι ένα επίπεδο πιο κάτω όταν έρθει η σειρά του, άρα θα αποφασίσει βάσει άλλου δέντρου και μπορεί να μην κάνει την κίνηση που αναμέναμε.

Κλειστό σύνολο. Άλλες βελτιώσεις Όπως στην τυφλή αναζήτηση. Πολλοί διαφορετικοί συνδυασμοί κινήσεων μπορεί να οδηγούν στις ίδιες καταστάσεις. Υπερβαίνουμε το μέγιστο βάθος αναζήτησης αν μια κατάσταση φαίνεται κρίσιμη ή σταματάμε σε μικρότερο βάθος αν δε φαίνεται ενδιαφέρουσα. Π.χ. μήπως απειλείται η βασίλισσα σε κόμβο μέγιστου βάθους;

Παιχνίδια πολλών αντιπάλων Αυτή η τελική κατάσταση θα τους συνέφερε όλους περισσότερο! Αν μπορούσαν να εμπιστευτούν ο ένας τον άλλον (5,4,7) Η συνάρτηση οφέλους επιστρέφει διάνυσμα. Ο 1ο αριθμός είναι το όφελος για τον A, ο 2ος το όφελος για τον Β κ.ό.κ. Εδώ έχουμε παίγνιο μη μηδενικού αθροίσματος. Η τιμή Minimax κάθε κόμβου είναι το διάνυσμα του παιδιού με το μεγαλύτερο όφελος για αυτόν που παίζει. (5,4,7)

Παιχνίδια με παράγοντα τύχης

Δέντρο Minimax για τάβλι Σαν να παίζει ενδιάμεσα ένας τρίτος «παίκτης» που αλλάζει μόνο το τι δείχνουν τα ζάρια. Το αποτέλεσμα της κίνησης του τρίτου «παίκτη» είναι τυχαίο.

Αναμενόμενη τιμή Minimax exp-minimax-value(n) = h(n), αν n κόμβος μέγιστου βάθους, max s succ(n) exp-minimax-value(s), αν στον n παίζει ο Max, min s succ(n) exp-minimax-value(s), αν στον n παίζει ο Min, Σ s succ(n) p(s) exp-minimax-value(s), αν n κόμβος τύχης. Εκτίμηση του αναμενόμενου οφέλους στο οποίο θα οδηγηθούμε αν φτάσουμε στον κόμβο n. Χρονική πολυπλοκότητα Minimax με ζάρια: O(b m k m ). Όπου k ο αριθμός διακριτών δυνατών ζαριών. Αντί για O(b m ), όταν δεν έχουμε ζάρια. Κάθε κόμβος MIN ή MAX έχει ουσιαστικά τώρα bk ΜΑΧ ή MIN εγγόνια (παιδιά είναι οι κόμβοι τύχης), αντίστοιχα. Μειώνεται το βάθος μέχρι το οποίο αντέχουμε να ψάξουμε.

Βιβλιογραφία Russel & Norvig: κεφ. 6 (από την υπο-ενότητα «Παιχνίδια με τραπουλόχαρτα» και μετά, απλή ανάγνωση). Όσοι ενδιαφέρονται μπορούν να διαβάσουν προαιρετικά (εκτός εξεταστέας ύλης) επιπλέον το κεφ. 16, καθώς και τις ενότητες 17.6 και 17.7. Βλαχάβας κ.ά.: κεφ. 5. Όσοι ενδιαφέρονται μπορούν να διαβάσουν προαιρετικά (εκτός εξεταστέας ύλης) και το κεφάλαιο 28. Η (μαθηματική) μελέτη της συμπεριφοράς αντιπάλων είναι το αντικείμενο της Θεωρίας Παιγνίων. Μπορείτε να παρακολουθήσετε το μάθημα «Θεωρία Παιγνίων και Αποφάσεων». Εφαρμογές στα Οικονομικά, την Πληροφορική κλπ. Μια ενδιαφέρουσα μη τεχνική εισαγωγή στη Θεωρία Παιγνίων είναι το βιβλίο «Game Theory: A Nontechnical Introduction» του M.D. Davis, Dover Publications, που διαβάζεται πολύ εύκολα.