Searching Game Trees. The top-level statement play(Game) :- initialize(Game,Position,Player), display_game(Position,Player), play(Position,Player,Result).

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Project in XSB Prolog Επεξεργασία και Αναπαράσταση Γνώσης Άνοιξη 2008 Τμήμα Επιστήμης Υπολογιστών Πανεπιστημίου Κρήτης.
Advertisements

Αλγόριθμοι Αναζήτησης
Εξόρυξη Γνώσης Από Χρονικά Δεδομένα
Δομές Δεδομένων - Δυαδικά Δένδρα (binary trees)
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
Παίκτες: 10+ Τα παιδιά κάθονται σε κύκλο. Κληρώνεται ποιος θα παίξει πρώτος. Players: 10+ The children sit in a circle.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Ψάξε τι κρύβουν τα κουτιά
ORACLE PL/SQL Cursors Μέρος 1.
11 PRIMARY SCHOOL OF THESSALONIKI GREECE COMENIUS THE IMPORTANCE OF GAMES IN GREEK SOCIETY.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
GREEK TRADITIONAL GAMES Ελληνικά παραδοσιακά παιχνίδια  Freedom  (Ελευθερία)  The hen, the chicks and the hawk  (Η κλώσα, τα κλωσόπουλα και το γεράκι)
Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών.
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο1 Ωμή Βία Είναι μία άμεση προσέγγιση που βασίζεται στην εκφώνηση του προβλήματος και τους ορισμούς.
Alpha-Beta Pruning for Games with Simultaneous Moves Abdallah Saffidine, Hilmar Finnsson, Michael Buro Παρουσίαση: Βάλβης Δημήτριος Εργασία στο μάθημα.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Δομημένος Προγραμματισμός και Δομές.
Αυτό το παιχνίδι είναι σχεδόν ίδιο με το προηγούμενο. Διαφορές Οι κυνηγοί δεν γνωρίζουν τη θέση του φυγάδα (αόρατος φυγάδας). Ο φυγάδας γνωρίζει τις θέσεις.
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο1 Ανάλυση Αλγορίθμων b Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα b Προσεγγίσεις:
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
Κουλίνας Μιχαήλ Α.Μ.:774 Μπουρνάζης Χρήστος Α.Μ.:792 Ρογκάκος Γεώργιος Α.Μ.:817.
1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση.
Project in XSB Prolog Επεξεργασία και Αναπαράσταση Γνώσης Άνοιξη 2009 Τμήμα Επιστήμης Υπολογιστών Πανεπιστημίου Κρήτης.
Τεχνολογία ΛογισμικούSlide 1 Σχεδιασμός Λογισμικού ATM loop Print_input_message (” Welcome - Please enter your card”) ; exit when Card_input ; end loop.
1 Κέλυφος Bash – Τι μάθαμε? Μεταξύ άλλων…  Συνθήκες ελέγχου (if, case…) και βρόχοι επανάληψης (for, while)  Πράξεις ακεραίων (let, expr) και δεκαδικών.
1 26/6/2015 Προγραμματισμός Διαδικτύου – Lecture 8 LECTURE 8 Using Databases with PHP Scripts: Using MySQL Database with PHP Προγραμματισμός Διαδικτύου.
Διοίκηση Απόδοσης Επιχειρηματικών Διαδικασιών Ενότητα #5: Key result indicators (KRIs), Performance Indicators (PIs), Key Performance Indicators (KPIs)
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΠΑΡΆΡΤΗΜΑ ΛΕΥΚΑΔΑΣ ΥΠΕΥΘΥΝΗ ΚΑΘΗΓΉΤΡΙΑ Δρ. ΤΣΙΝΤΖΑ ΠΑΝΑΓΙΩΤΑ Οι παρουσιάσεις του μαθήματος βασίζονται στο.
1 ο ΕΘΝΙΚΟ ΣΥΝΕΔΡΙΟ ΠΟΙΟΤΗΤΑΣ ΤΕΧΝΙΚΑ ΕΡΓΑ – ΜΕΛΕΤΕΣ Το θέμα “ποιότητα”, από τη σκοπιά των μελετητών Γιώργος Ν. Κάζος Πολιτικός Μηχανικός Πρόεδρος ΣΕΓΜ.
ΠΕΡΙΦΕΡΕΙΑΚΟΙ ΑΓΩΝΕΣ ΣΤΙΒΟΥ Ξεκινώντας από το κάθε παιδί και τις ανάγκες του... Δίνοντας του ποικιλία ερεθισμάτων, ευκαιριών και επιτυχιών... Θα βάλουμε.
Ψηφιακά Παιχνίδια και μάθηση Δρ. Νικολέτα Γιαννούτσου Εργαστήριο Εκπαιδευτικής Τεχνολογίας.
ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ Η/Υ 1 Εισαγωγή στη γλώσσα Προγραμματισμού C ΠΙΝΑΚΕΣ (arrays)
Μάθημα 8 Session και Cookies. Session Το HTTP πρωτόκολλο είναι stateless. Άρα το HTTP δεν έχει μνήμη. Αυτό σημαίνει ότι εάν έχω μια μεταβλητή που την.
Ανάλυση Ευχρηστίας Εφαρμογών με χρήση παρακολούθησης κίνησης βλέμματος και κεφαλιού χωρίς εξειδικευμένο υλικό Στυλιανός Αστεριάδης Εργαστήριο Ψηφιακής.
ΕΦΑΡΜΟΓΕΣ ΤΗΣ ΘΕΩΡΙΑΣ ΠΑΙΓΝΙΩΝ Τρίλιζα, Pacman, Age of Empires ΕΦΑΡΜΟΓΕΣ ΤΗΣ ΘΕΩΡΙΑΣ ΠΑΙΓΝΙΩΝ Τρίλιζα, Pacman, Age of Empires Αλέξης Γελαστόπουλος, Βάσω.
Μαθαίνω με “υπότιτλους”
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Νομική Σχολή
The most popular game in Greece
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Βελτιστοποίηση σε τρίλιζα Καταδίωξη/διαφυγή
Αντικειμενοστραφής Προγραμματισμός ΙΙ
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό
Βελτιστοποίηση σε τρίλιζα Καταδίωξη/διαφυγή
ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 1: Χρήση της απλής δομής επιλογής
Εισαγωγή στα Νευρωνικά Δίκτυα
Υδρόβια Φυτά Θεοφανώ Κούλεντρου Rippling Water (Basic)
Ποιοί είναι οι δικαστικοί σχηματισμοί του Δικαστηρίου;
Αναζήτηση με Αντιπαλότητα
Συνοδευτική Επιστολή COVER LETTER What is it? - Τι είναι αυτό;
Επαναληπτικές ασκήσεις
Στρατηγικές πληροφορημένης αναζήτησης
ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 2: Χρήση της σύνθετης δομής επιλογής
ΚΛΙΝΙΚΕΣ ΕΦΑΡΜΟΣΜΕΝΗΣ EΡΕΥΝΑΣ. EΝΑ ΝΕΟ ΥΓΕΙΟΝΟΜΙΚΟ ΠΡΟΪΟΝ.
(ALPHA BANK – EUROBANK – PIRAEUS BANK)
Presenttion Title My name My position, contact information or project description.
Οικιακή Οικονομία Α’ Γυμνασίου Μάθημα 6ο. Διδάσκων καθηγητής
Κατερίνα Φαλτσέτα Ψυχολόγος – Ψυχοθεραπεύτρια
Find: angle of failure, α
Αξιοποίηση POS δεδομένων για αποτελεσματική αναπλήρωση προϊόντων στο κατάστημα 9ο Πανελλήνιο Συνέδριό του με θέμα «Υπό Επιτήρηση»
Γραμμικός Προγραμματισμός
Σχολική εργασία αγγλικών
Find: ρc [in] from load γT=110 [lb/ft3] γT=100 [lb/ft3]
τ [lb/ft2] σ [lb/ft2] Find: c in [lb/ft2] σ1 = 2,000 [lb/ft2]
Find: Force on culvert in [lb/ft]
Variable-wise and Term-wise Recentering
Find: ρc [in] from load (4 layers)
Max-Flow: Non-terminating example with irrational capatcities
Το Β1 του 1ου Γυμνασίου Ανατολής παρουσιάζει
Μανίκη Γαβριέλλα Μήτσης Σταύρος
Μεταγράφημα παρουσίασης:

Searching Game Trees

The top-level statement play(Game) :- initialize(Game,Position,Player), display_game(Position,Player), play(Position,Player,Result). initialize(Game,Position,Player) καθορίζει την αρχική θέση Position του παιχνιδιού Game, και Player ο παίχτης που θα αρχίσει. Ένα παιχνίδι είναι μια σειρά εναλλαγών, όπου κάθε εναλλαγή είναι μια επιλογή κίνησης από τον παίχτη, η κίνηση που εκτελείται και ο καθορισμός του επόμενου παίχτη.

Framework for playing games play(Game) :- Play game with name Game play(Game) :- initialize(Game,Position,Player), display_game(Position,Player), play(Position,Player,Result). play(Position,Player,Result) :- game_over(Position,Player,Result), !, announce(Result). play(Position,Player,Result) :- choose_move(Position,Player,Move), move(Move,Position,Position1), display_game(Position1,Player), next_player(Player,Player1), !, play(Position1,Player1,Result).

Choosing the best move Απλός αλγόριθμος που βρίσκει την καλύτερη κίνηση Βρες όλες τις πιθανές καταστάσεις παιχνιδιού (game states) με μια κίνηση. Υπολόγισε τις τιμές των καταστάσεων χρησιμοποιώντας την value(Position,Value) (computes the Value of Position). Επέλεξε την κίνηση που οδηγεί στη θέση με το μεγαλύτερο score. Αυτός ο αλγόριθμος υλοποιείται στο παρακάτω πρόγραμμα evaluate_and_choose(Moves,Position,Record,BestMove) :- Επιλέγει την καλύτερη κίνηση BestMove από ένα σύνολο κινήσεων Moves με βάση την τρέχουσα θέση Position. Record κρατάει την τρέχουσα καλύτερη κίνηση.

Choosing the best move (συνέχεια) evaluate_and_choose([Move|Moves],Position,Record,BestMove) :- move(Move,Position,Position1), % applies a Move to the current % Postion to reach Position1 value(Position1,Value), update(Move,Value,Record,Record1), evaluate_and_choose(Moves,Position,Record1,BestMove). evaluate_and_choose([ ],Position,(Move,Value),Move). update(Move,Value,(Move1,Value1),(Move1,Value1)) :- Value <= Value1. update(Move,Value,(Move1,Value1),(Move,Value)) :- Value > Value1.

Choosing the best move (συνέχεια) Ο παρακάτω κανόνας ενσωματώνει το τελευταίο πρόγραμμα στο γενικό Framework παιχνιδιών: choose_move(Position,computer,Move) :- findall(M,move(Position,M),Moves), evaluate_and_choose(Moves,Position),(nil,-1000),Move). Ο κανόνας move(Position,Move) ισχύει αν η Move είναι μια πιθανή κίνηση από την τρέχουσα θέση.

Choosing the best move with the Minimax Algorithm evaluate_and_choose(Moves,Position,Depth,Flag,Record,BestMove) :- Chooses the BestMove from the set of Moves from the current Position using the minimax algorithm searching Depth ply αhead. Flag indicates if we are currently minimizing or maximizing. Record records the current best move. evaluate_and_choose([Move|Moves],Position,D,MaxMin,Record,Best) :- move(Move,Position,Position1), minimax(D,Position1,MaxMin,MoveX,Value), update(Move,Value,Record,Record1), evaluate_and_choose(Moves,Position,D,MaxMin,Record1,Best). evaluate_and_choose([ ],Position,D,MaxMin,Record,Record).

Choosing the best move with the Minimax Algorithm (συνέχεια) minimax(0,Position,MaxMin,Move,Value) :- value(Position,V), Value is V * MaxMin. minimax(D,Position,MaxMin,Move,Value) :- D > 0, findall(M,move(Position,M),Moves), D1 is D – 1, MinMax is –MaxMin, evaluate_and_choose(Moves,Position,D1,MinMax,(nil,-1000),(Move,Value)). update(Move,Value,(Move1,Value1),(Move1,Value1)) :- Value <= Value1. update(Move,Value,(Move1,Value1),(Move,Value)) :- Value > Value1.

Choosing a move using minimax with alpha-beta pruning evaluate_and_choose(Moves,Position,Depth,Alpha,Beta,Record,BestMove) :- Chooses the BestMove from the set of Moves from the current Position using the minimax algorithm with alpha-beta cutoff searching Depth ply ahead. Alpha and Beta are the parameters of the algorithm. Record records the current best move. evaluate_and_choose([Move|Moves],Position,D,Alpha,Beta,Move1,BestMove):- move(Move,Position,Position1), alpha_beta(D,Position1,Alpha,Beta,MoveX,Value), Value1 is -Value, cutoff(Move,Value1,D,Alpha,Beta,Moves,Position,Move1,BestMove). evaluate_and_choose([ ],Position,D,Alpha,Beta,Move,(Move,Alpha)).

Choosing a move using minimax with alpha-beta pruning (συνέχεια) alpha_beta(0,Position,Alpha,Beta,Move,Value) :- value(Position,Value). alpha_beta(D,Position,Alpha,Beta,Move,Value) :- findall(M,move(Position,M),Moves), Alpha1 is –Beta, Beta1 is –Alpha, D1 is D-1, evaluate_and_choose(Moves,Position,D1,Alpha1,Beta1,nil,i(Move,Value)).

Choosing a move using minimax with alpha-beta pruning (συνέχεια) cutoff(Move,Value,D,Alpha,Beta,Moves,Position,Move1,(Move,Value)) :- Value >= Beta. cutoff(Move,Value,D,Alpha,Beta,Moves,Position,Move1,BestMove) :- Alpha < Value, Value < Beta, evaluate_and_choose(Moves,Position,D,Value,Beta,Move1,BestMove). cutoff(Move,Value,D,Alpha,Beta,Moves,Position,Move1,BestMove) :- Value <= Alpha, evaluate_and_choose(Moves,Position,D,Alpha,Beta,Move1,BestMove).