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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Αλγόριθμοι σχεδίασης βασικών 2D σχημάτων (ευθεία)
Advertisements

Γραφήματα & Επίπεδα Γραφήματα
Κατέβασμα αρχείων βίντεο και ήχου Με το Τι είναι το Real Player To Real Player είναι μια πολυδύναμη εφαρμογή με την οποία μπορούμε να παίξουμε βίντεο.
Αντιλήψεις καθηγητών Πληροφορικής σχετικά με τη φύση του αντικειμένου και τον τρόπο εισαγωγής του στην εκπαίδευση Γιάννης Δοξαστάκης Δημήτρης Δημάκης.
DOMOTICS GUARANTEED ΕΞΥΠΝΑ ΣΥΣΤΗΜΑΤΑ ΑΥΤΟΜΑΤΙΣΜΟΥ ΚΤΙΡΙΩΝ.
ΑΜΑΔΕΣ Φέτος στο περιβαλλοντικό γελάσαμε, διασκεδάσαμε, παίξαμε . Ένα συναρπαστικό παιχνίδι ήταν οι αμάδες που άρεσαν πολύ σε όλους μας.
Θεματική ενότητα Συνδυαστική & Πιθανότητες (Ασκήσεις)
Γλώσσα Προγραμματισμού LOGO MicroWorlds Pro
Aυτόνομοι Πράκτορεσ Ενισχυτική μαθηση σto Peg Solitaire
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
Λειτουργικό Σύστημα ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ENOTHTA B.1.3 (1)
Γονικός έλεγχος Κ. Ξ. Γ. «ΛΙΟΛΙΟΥ». Γονικός έλεγχος •Ακόμη κι όταν δεν κρυφοκοιτάζετε, μπορείτε να θέσετε περιορισμούς στη χρήση του υπολογιστή από τα.
Απαντήσεις Προόδου II.
Προστασία Λογισμικού - Ιοί
27 Ιουνίου 2014 ΔΙΑΦΑΝΕΙΑ 1 ΤΥΠΙΚΕΣ ΜΕΘΟΔΟΙ ΑΝΑΛΥΣΗΣ ΣΥΣΤΗΜΑΤΩΝ ΤΜ. ΠΛΗΡΟΦΟΡΙΚΗΣ Α.Π.Θ. – ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ ΑΥΤΟΜΑΤΑ Ι Αυτόματο ελέγχου πρόσβασης με.
ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ του tool ενημέρωσης στατιστικών
Το υλικό του Υπολογιστή
PROLOG.
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Ενότητα 1: Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό
Πινακες (Arrays) Σημασια Συνταξη Αρχικοποιηση Προσβαση Παραμετροι
Προβλήματα Αναζήτησης
ΕΛΕΓΧΟΣ ΑΝΑΖΗΤΗΣΗΣ. Παράδειγμα 1 member (X, [X | Y]. member (X, [Y | Z] :- member (X, Z) ? member (b, [a, b, c, b, e]) ? member (b, [b, c, b, e]) ? member.
Δρ. Παναγιώτης Συμεωνίδης
Εργαστήριο μαθήματος «Τεχνολογία Γνώσης» Σαντιπαντάκης Γιώργος
Σελίδα 1 ΕΚΠΑ. «Διαμόρφωση υπηρεσίας καταλόγου Active Directory σε Windows 2003» Τηλέμαχος Ράπτης Εθνικό και Καποδιστριακό.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΝΝΟΙΑ ΤΟΥ ΑΛΓΟΡΙΘΜΟΥ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΑΡΤΙΟΣ 2012 Π. Σοφράς.
Torque Game Engine - #02 Κώστας Καρπούζης (kkarpou)
ΝΕΟ ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ Α’, Β’, & Γ’ ΓΥΜΝΑΣΙΟΥ ΟΜΑΔΑ ΕΡΓΑΣΙΑΣ Ανδρέας Σ. Ανδρέου (Αναπλ. Καθηγητής ΤΕΠΑΚ - Συντονιστής) Μάριος Μιλτιάδου, Μιχάλης Τορτούρης.
ΩΡΑ ΓΙΑ ΠΑΙΧΝΙΔΙ !!! ΜEMORY ΜΕ ΔΟΝΤΙΑ 1.
Το λογισμικό Το Tabletop Jr. είναι βοηθητικό μέσο για δραστηριότητες στα Μαθηματικά, στη Φυσική, την Ιστορία ή οποιοδήποτε άλλο μάθημα.
Fluxplayer: A successful General Game Player (Stephan Schiffel, Michael Thielscher) Προηγμένη Τεχνητή Νοημοσύνη Νομικός Βαγγέλης 24/01/2008.
Γραφήματα & Επίπεδα Γραφήματα
Campus Europae = Erasmus + Campus Europae  Η ιδιαιτερότητα των φοιτητών που συμμετέχουν στο πρόγραμμα ανταλλαγής Campus Europae είναι ότι χρησιμοποιούν.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Δημιουργία Λογαριασμού. Τι είναι το Gmail; To Gmail είναι ένα webmail, δηλαδή ένας λογαριασμός ηλεκτρονικής αλληλογραφίας που μπορείτε να λαμβάνετε από.
1 Θεματική Ενότητα Γραφήματα & Επίπεδα Γραφήματα.
Προσεγγιστικοί Αλγόριθμοι
Δομές Δεδομένων στο Λ.Π.. Λίστες Λίστα είναι ένας όρος –Οι όροι αυτοί ορίζονται με τη βοήθεια μιας συνάρτησης: [ ] σταθερά για κενή λίστα – nil [t1| l]
Εισαγωγή στις Βασικές Έννοιες Πληροφορικής
ΠΑΙΧΝΙΔΙΑ ΤΗΣ ΕΥΡΩΠΗΣ ΤΟΥ 19ΟΥ ΚΑΙ 20ΟΥ ΑΙΩΝΑ
Ανάλυση Παλινδρόμησης με Δεδομένα Χρονολογικών Σειρών
Τεχνολογία ΛογισμικούSlide 1 Αλγεβρική Εξειδίκευση u Καθορισμός τύπων αφαίρεσης σε όρους σχέσεων μεταξύ τύπων λειτουργιών.
Excel Κεφάλαιο 3.
Lists– Λίστες 1. Αυτό-αναφορικές δομές Τα μέλη μίας δομής μπορεί να είναι οποιουδήποτε τύπου, ακόμα και δείκτες σε δομές του ίδιου τύπου. Χρησιμοποιώντας.
ΤΑ ΠΡΩΤΑ ΒΗΜΑΤΑ ΣΤΗΝ ΑΓΟΡΑ. ΣΤΟΧΟΣ ΤΗΣ ΑΓΟΡΑΣ ΕΙΝΑΙ ΝΑ ΒΡΕΘΕΙ ΤΟ ΣΩΣΤΟ ΣΥΜΒΟΛΑΙΟ! ΓΙΑ ΝΑ ΚΑΝΟΥΜΕ ΈΝΑ ΧΡΩΜΑ ΑΤΟΥ, ΚΑΛΟ ΘΑ ΕΙΝΑΙ ΝΑ ΕΧΟΥΜΕ ΦΙΤ ΜΕ ΤΟΝ ΣΥΜΠΑΙΚΤΗ.
Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης
Προηγμένη Τεχνητή Νοημοσύνη Solving Dots-And-Boxes Joseph K. Barker and Richard E. Korf Μεταπτυχιακός Φοιτητής: Ιωάννης Σίδερης (Μ1068) 1/500.
Ποιότητα Λογισμικού Ενότητα 3: Σουίτες Ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
Project in XSB Prolog Επεξεργασία και Αναπαράσταση Γνώσης Άνοιξη 2007 Τμήμα Επιστήμης Υπολογιστών Πανεπιστημίου Κρήτης.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεδιασμός Σχεσιακών Σχημάτων.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ.
Ελάχιστο Συνδετικό Δέντρο
Δομές Δεδομένων - Ισοζυγισμένα Δυαδικά Δένδρα (balanced binary trees)
1. 2 Τι είναι αλγόριθμος; 1. 3 Ιδιότητες ενός αλγορίθμου 1
1 Βάσεις Δεδομένων ΙI Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ SQL (3 από 3) T Manavis.
Searching Game Trees. The top-level statement play(Game) :- initialize(Game,Position,Player), display_game(Position,Player), play(Position,Player,Result).
Διαδικαστικά κατηγορήματα συστήματος PROLOG. 1.Αποκοπή, !. 2.Είσοδος / Έξοδος read (X) - X ταυτοποιείται με τον όρο που γράφεται στην οθόνη write (X)-
Project in XSB Prolog Επεξεργασία και Αναπαράσταση Γνώσης Άνοιξη 2009 Τμήμα Επιστήμης Υπολογιστών Πανεπιστημίου Κρήτης.
Γιώργος Γεωργιάδης (σύμφωνα με τις παραδόσεις του Λευτέρη Κυρούση)
Βασικά στοιχεία της Java
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΠΑΡΆΡΤΗΜΑ ΛΕΥΚΑΔΑΣ ΥΠΕΥΘΥΝΗ ΚΑΘΗΓΉΤΡΙΑ Δρ. ΤΣΙΝΤΖΑ ΠΑΝΑΓΙΩΤΑ Οι παρουσιάσεις του μαθήματος βασίζονται στο.
Prolog Επεξεργασία και Αναπαράσταση Γνώσης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολογίας Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο: Τεχνητή Νοημοσύνη.
Η αξία θέσης των ψηφίων στους φυσικούς αριθμούς. πόσες καρτέλες σαν αυτή;
The most popular game in Greece
Δημιουργία Λογαριασμού
Κλάσεις και αντικείμενα
Βελτιστοποίηση σε τρίλιζα Καταδίωξη/διαφυγή
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Αρχές Προγραμματισμού (C)
Μεταγράφημα παρουσίασης:

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

“Τάβλι” •Το ζητούμενο είναι να δημιουργήσετε –ένα παίκτη που θα παίζει ένα παιχνίδι τάβλι της επιλογής σας (πόρτες, πλακωτό, φεύγα). –ένα περιβάλλον σε XSB μέσα στο οποίο ένας χρήστης θα μπορεί να παίξει τάβλι με τον παίκτη που δημιουργήσατε •Έλάχιστη απαίτηση του project είναι να τηρούνται όλοι οι κανόνες του παιχνιδίου που επιλέξατε (και από τους δύο παίκτες) •Αφού έχει καλυφθεί η ελάχιστη απαίτηση, προσπαθήστε να δημιουργήσετε στρατηγικές επιλογής ‘έξυπνων’ κινήσεων για τον παίκτη που δημιουργήσατε. •Για ευκολία μπορείτε να κάνετε τις ακόλουθες θεωρήσεις: –Το παιχνίδι ξεκινάει τυχαία από τον ένα από τους δύο πάικτες –Οι διπλές ζαριές ‘παίζονται’ ακριβώς όπως και οι άλλες (π.χ. στις εξάρες παίζονται 2 εξάρια αντί για 4)

Αναπαράσταση Γνώσης •Πούλια, π.χ. b, w ή checker(b,1),…,checker(b,15),checker(w,1),…,checker(w,15) •Παίκτες, π.χ. pc / user •Ζάρια, π.χ. dice(3,4) •Σειρά για να παίξει, π.χ. turn(pc) / turn(user) •Κατάσταση παιχνιδού, π.χ. board([b,b],[],[],[],[],[w,w,w,w,w],[],[w,w,w],[],[],[],[b,b,b,b,b],[w,w,w,w,w],[],[],[],[b,b,b],[],[b,b,b,b,b],[],[],[],[],[w,w]) •Μπάρα (για τις πόρτες), π.χ. bar([w,w]) •Πούλια που έχει μαζέψει ο κάθε παίκτης, π.χ. collected(pc,[w,w]) / collected(pc,2) •Κίνηση, π.χ. move(user,1,4,1,3) •…

Αναπαράσταση Γνώσης •Κάποιες δομές μπορεί επίσης να αναπαρασταθούν με τη χρήση ενός βοηθητικού κατηγορήματος, π.χ. pred(dice,[3,4]) pred(turn,pc) pred(board,[[w,w],[],…]) pred(bar,[w,w]) pred(collected,5)

Αναπαράσταση Γνώσης •Χρειάζεται επίσης να αναπαραστήσουμε δύο τύπους κανόνων: –Κανόνες που ορίζουν τις επιτρεπτές κινήσεις σε ένα παιχνίδι. Αυτοί θα είναι κανόνες περιορισμού. –Κανόνες που ορίζουν στρατηγικές – οι κανόνες αυτοί θα ορίζουν τις «καλές» / «έξυπνες» κινήσεις στο παιχνίδι.

Ορισμός δυναμικών κατηγορημάτων •Κάποιες ιδιότητες / δομές που αναμένουμε ότι θα αλλάζουν κατά την διάρκεια του παιχνιδιού θα πρέπει να ορίζονται δυναμικά. •Παράδειγμα: turn(pc) ή pred(turn,pc) •Για να μπορούμε να χειριστούμε μία δομή δυναμικά, στην αρχή του προγράμματος κάνουμε τη δήλωση: :- dynamic turn/1 ή :- dynamic pred/2. Στη συνέχεια μπορούμε να προσθέσουμε / αφαιρέσουμε δεδομένα από τη βάση γνώσης με χρήστη των: assert(…),retract(…) π.χ. coin_flip :- datime_setrand, random(1,101,I), (I>50 -> assert(turn(player)) ; assert(turn(cpu))), assert(lastcollect(player)). move(pc,A1,A2,B1,B2):- …,retract(turn(pc)),assert(turn(user)).

Αρχή του παιχνιδιού •Στην αρχή μίας παρτίδας –Επιστρέφουμε στην αρχική κατάσταση το τάβλι –Ρίχνουμε κορώνα-γράμματα για να αποφασίσουμε ποιος θα παίξει πρώτος –Αυτός που παίζει πρώτος ρίχνει τα ζάρια και •αν είναι ο pc, αποφασίζει με βάση τους κανόνες μία κίνηση την οποία και εκετλεί •αν είναι ο user, εισάγει μία κίνηση την οποία το πρόγραμμα θα πρέπει να ελέγξει αν είναι έγκυρη και να την εκτελέσει –Αλλάζει η σειρά new_game :- initialize_board, coin_flip, turn(X), throw_dice, dice(D1,D2), (X =:= player -> execute_user_move; move(pc,A1,A2,B1,B2)).

Εναλλακτική αναπαράσταση •Πούλια του κάθε παίκτη user([1,1,12,12,12,12,12,17,17,17,19,19,19,19,19]). pc([24,24,13,13,13,13,13,8,8,8,6,6,6,6,6]). •Κίνηση move(user,A1,A2):- user(L), valid(user,A1,A2), delete_ith(A1,L,Pos,RestList), append(RestList,A2,NewL), retract(user(L)), assert(user(NewL)), retract(turn(user)), assert(turn(pc)). Το move(user,A1,A2) αλλάζει τη θέση στο πούλι που βρίσκεται στην θέση Α1 της λίστας των πουλιών του χρήστη σε Α2 από Pos που ήταν πριν.