Πράκτορες συνεπαγωγικού συλλογισμού Πράκτορες βασισμένοι στη γνώση
Αρχιτεκτονικές Πρακτόρων Πράκτορες συμβολικής Τεχνητής Νοημοσύνης Αντιδραστικοί πράκτορες Πράκτορες με στόχους Αντιδραστικοί, μη συμβολικοί πράκτορες Υβριδικοί πράκτορες Συνδυασμός συμβολικών πρακτόρων (με στόχους) και μη συμβολικών (αντιδραστικών) πρακτόρων 2
Πράκτορες βασισμένοι στη γνώση (ή πράκτορες συμβολικής Τεχνητής Νοημοσύνης) Βασικό συστατικό τους είναι η βάση γνώσης τους. Η βάση γνώσης περιέχει προτάσεις που περιγράφουν: το περιβάλλον του πράκτορα και τις προϋποθέσεις και τα αποτελέσματα των ενεργειών του. Οι προτάσεις αναπαρίστανται με μία τυπική γλώσσα αναπαράστασης: κάποιο σύστημα Λογικής. Σύμβολα της γλώσσας και κανόνες για τη δημιουργία προτάσεων σε αυτή. Κανόνες εξαγωγής συμπεράσματος, δηλαδή κανόνες δημιουργίας νέων προτάσεων με βάση τις υπάρχουσες. Ο πράκτορας επεξεργάζεται «συντακτικά» αυτή την αναπαράσταση για να αποφασίσει ποια ενέργεια να εκτελέσει δεδομένων των αντιλήψεών του. Η διαδικασία της απόφασής του ανάγεται στην διαδικασία απόδειξης ενός θεωρήματος με αφετηρία τις προτάσεις που βρίσκονται στη βάση γνώσης του. 3
Παράδειγμα RALPH: ο πράκτορας-καθαριστής interp KB/beliefs: dist(me,d1)=3m door(d1) Plan stop! Action Brake! door Ο RALPH λειτουργεί σε φυσικό περιβάλλον που αποτελείται από διαδρόμους και τοίχους. Οι αισθητήρες του δέχονται είσοδο από μία βίντεο-κάμερα. Το υποσύστημα interp μετατρέπει την είσοδο των αισθητήρων του σε προτάσεις λογικής πρώτης τάξης. Η γνώση του για το περιβάλλον του περιέχεται στη Βάση Γνώσης του. Το υποσύστημα plan χρησιμοποιεί τη Βάση γνώσης για να συμπεράνει ποια ενέργεια πρέπει να εκτελεστεί. Το υποσύστημα Action μεταφράζει το συμπέρασμα στον κατάλληλο μηχανισμό δράσης. 4
Τα βασικά προβλήματα Για να κατασκευάσουμε τον RALPH (και οποιονδήποτε άλλο πράκτορα) με συμβολική ΤΝ πρέπει να επιλύσουμε δύο προβλήματα: Πώς να μεταφράσουμε τον πραγματικό κόσμο σε μια συμβολική αναπαράσταση, που να είναι ακριβής και επαρκής, και σε χρόνο ώστε να είναι χρήσιμη η αναπαράσταση; Μηχανική όραση για επεξεργασία εικόνας Επεξεργασία ήχου Επεξεργασία φυσικής γλώσσας Μηχανική μάθηση Σε ποια συμβολική μορφή να κάνουμε την αναπαράσταση ώστε να μπορούν οι πράκτορες να την επεξεργάζονται για να εκτελούν συλλογισμούς με αυτήν σε χρόνο που να είναι χρήσιμα τα αποτελέσματα/συμπεράσματά τους; Συστήματα λογικής για αναπαράσταση γνώσης Αυτόματη απόδειξη θεωρημάτων (αυτόματος συλλογισμός) Αυτόματη κατάστρωση σχεδίου δράσης 5
Οι πράκτορες συνεπαγωγικού συλλογισμού Ηβάσηγνώσηςτουςαντιστοιχείστηνεσωτερική τους κατάσταση. Η πληροφορία αναπαρίσταται σε κατηγορηματική λογική (ή λογικήπρώτης τάξης). Τα περιεχόμενα της βάσης γνώσης αντιστοιχούν σε αυτό που αποκαλούμε «πεποιθήσεις» για τους ανθρώπους, δηλαδή ο πράκτορας θεωρεί ότι οι προτάσεις της βάσης γνώσης του είναι αληθείς. Παράδειγμα: στο φυσικό περιβάλλον του πράκτορα μπορεί η θερμοκρασία στο δωμάτιο 21 να είναι 40 βαθμοί. Η βάση δεδομένων του πράκτορα θα πρέπει να περιέχει την πρόταση temperature(room21,40). Όπως συμβαίνει και με τις πεποιθήσεις των ανθρώπων μπορεί οι πεποιθήσεις ενός πράκτορα να είναι λάθος (π.χ. επειδή υπάρχει σφάλμα σε κάποιον αισθητήρα, επειδή η πληροφορία του πράκτορα δεν είναι ενημερωμένη, επειδή ο συλλογισμός του πράκτορα είναι λανθασμένος κλπ) η ελλιπής. Προσοχή λοιπόν, όπως και στις βάσεις δεδομένων ισχύει η διάκριση πραγματικού κόσμου και μικρο-κόσμου. 6
Τυπικός ορισμός συνεπαγωγικού πράκτορα L είναι το σύνολο των προτάσεων της κατηγορηματικής λογικής πρώτης τάξης. D = ( L ) είναι το σύνολο των βάσεων δεδομένων που περιέχουν λογικές προτάσεις. Η εσωτερική κατάσταση ενός πράκτορα είναι κάποιο Δ i μέλος του συνόλου D={Δ 1, Δ 2,...}. Ο συλλογισμός ενός πράκτορα αναπαρίσταται με ένα σύνολο επαγωγικών κανόνων ρ. Αυτοί είναι οι κανόνες εξαγωγής συμπεράσματος της λογικής. Δ ρ φ σημαίνει ότι η πρόταση φ μπορεί να αποδειχθεί από τη βάση δεδομένων Δ χρησιμοποιώντας μόνο τους κανόνες ρ. Η συνάρτηση αντίληψης του πράκτορα ορίζεται όπως και πριν δηλαδή see: E Per. Η συνάρτηση next: D x Per D αντιστοιχίζει μια αντίληψη και μια βάση δεδομένων σε μια νέα βάση δεδομένων. Η συνάρτηση δράσης action: D Ac ορίζεται σύμφωνα με τους κανόνες συλλογισμού του πράκτορα. 7
Ψευδοκώδικας ορισμού της συνάρτησης δράσης Function: Action Selection as Theorem Proving Function action(δ:d) returns an action Ac begin for each α Ac do if Δ ρ Do(α) then Return α end-if end-for for each α Ac do if not Δ ρ Do(α) then return α end-if end-for return null end function action Ο προγραμματιστής του πράκτορα κωδικοποιεί τους κανόνες ρ και τη βάση Δ έτσι ώστε αν μια πρόταση Do(α) (όπου α είναι μια ενέργεια) μπορεί να εξαχθεί, τότε η α είναι η καλύτερη ενέργεια. Ο πράκτορας δοκιμάζει για κάθε μια από τις ενέργειές του να αποδείξει Do(α) χρησιμοποιώντας τους κανόνες ρ. Αν πετύχει τότε η α είναι η ενέργεια που επιλέγεται. Αν αποτύχει, προσπαθεί να αποδείξει Do(α). Αν αποτύχει τότε η ενέργεια α δεν απαγορεύεται και επιστρέφεται. Αν αποτύχει και πάλι τότε καμία ενέργεια δεν επιτρέπεται και επιστρέφει null. 8
Παράδειγμα: ο πράκτορας-καθαριστής (0,2) (1,2) (2,2) (0,1) (1,1) (2,1) (0,0) (1,0) (2,0) Ο πράκτορας έχει τώρα μεγαλύτερο κόσμο να διατρέξει! Έχει αισθητήρα θέσης και αισθητήρα σκόνης (είσοδος) Έχει μηχανισμό δράσης για να αναρροφά τη σκόνη και μηχανισμό δράσης για να μετακινείται εμπρός κατά ένα βήμα καθώς και μηχανισμό για να μπορεί να στρίβει 90 μοίρες δεξιά και αριστερά. Ας υποθέσουμε ότι ξεκινά πάντα στο κελί (0,0) με προσανατολισμό Βόρεια. 9
Ac={turnR, turnl, forward, suck} Αναπαράσταση γνώσης (1) In(x,y) = ο πράκτορας είναι στο (x, y) Dirt(x, y) = υπάρχει σκόνη στο (x, y) Facing(d) = ο πράκτορας κατευθύνεται προς d. Πρέπει να ορίσουμε τη συνάρτηση next: D x Per D έτσι ώστε: Να λαμβάνει πληροφορία από το περιβάλλον και να δημιουργεί νέα βάση δεδομένων για τον πράκτορα με αυτή την πληροφορία. Να σβήνει παλιά ή άσχετη πληροφορία από τη βάση δεδομένων του πράκτορα. Να βρίσκει το νέο προσανατολισμό του πράκτορα. 10
Αναπαράσταση του πράκτορα-καθαριστή (2) Οι συνεπαγωγικοί κανόνες που ρυθμίζουν τη συμπεριφορά του πράκτορα έχουν τη μορφή ϕ (...) ψ(...) όπου φ και ψ είναι κατηγορήματα. Όταν το φ ταιριάζει/ικανοποιείται στη βάση δεδομένων του πράκτορα τότε το ψ μπορεί να εξαχθεί ως συμπέρασμα. Ο πρώτος κανόνας αφορά στην καθαριστική δράση του πράκτορα. In( x,y ) Dirt( x,y ) Do( suck ) Επειδή ο κόσμος του πράκτορα είναι σχετικά απλός μπορούμε να προδιαγράψουμε την πλοήγησή του έτσι ώστε να κινείται πάντα από το (0,0) στο (0,1), στο (0,2) κλπ και μετά στο (1,2), (1,1) κλπ. 11
Αναπαράσταση του πράκτορα-καθαριστή (3) Οπότε οι κανόνες πλοήγησης είναι In( 0, 0 ) Facing( north ) Dirt( 0, 0 ) Do( forward ) In( 01, ) Facing( north ) Dirt( 01, ) Do( forward ) In( 0, 2 ) Facing( north ) Dirt( 0, 2 ) Do(turnR ) In( 0, 2 ) Facing( east ) Do( forward ) ομοίως για κανόνες που θα επιτρέψουν στον πράκτορα να πάει στο (2,2) και μετά από εκεί στο (0,0). (συμπληρώστε τους σαν άσκηση). 12
Προβλήματα στην λογική προσέγγιση για την κατασκευή πρακτόρων (1) 1. Δεν είναι πάντα ρεαλιστική/πρακτική αυτή η προσέγγιση, γιατί η υπολογιστική πολυπλοκότητα της απόδειξης θεωρημάτων είναι υψηλή. Ας πούμε ότι σχεδιάσαμε έτσι το σύνολο κανόνων ρ του πράκτορα ώστε για οποιαδήποτε βάση δεδομένων Δ, αν μπορεί να αποδείξει Do(α), τότε η α είναι η βέλτιστη ενέργεια που μπορεί να εκτελεστεί όταν το περιβάλλον είναι όπως το περιγράφει η Δ. t 1 ο πράκτοράς μας έχει πεποιθήσεις Δ 1 και αρχίζει να χρησιμοποιεί τους κανόνες του για να συμπεράνει ποιά ενέργεια να εκτελέσει. t 2 ο πράκτορας αποδεικνύει ότι Δ 1 ρ Do(α). Εξ υποθέσεως α είναι η βέλτιστη ενέργεια όταν το περιβάλλον είναι Δ 1. Όμως στο μεταξύ το περιβάλλον έχει αλλάξει μεταξύ t 1 και t 2. Δεν υπάρχει εγγύηση ότι η α εξακολουθεί να είναι βέλτιστη. Μάλιστα αν ο πράκτορας χρησιμοποιεί κλασσική κατηγορηματική λογική πρώτης τάξης δεν υπάρχει εγγύηση ότι ο μηχανισμός λήψης απόφασής του τερματίζει! Ένας πράκτορας που επιλέγει ενέργεια που ήταν βέλτιστη κατά τη χρονική στιγμή εκκίνησης του μηχανισμού λήψης αποφάσεών του λέγεται υπολογιστικά ορθολογιστικός. Τι γίνεται όμως σε περιβάλλοντα που αλλάζουν ταχύτερα από το μηχανισμό λήψης απόφασης του πράκτορα; Σε αυτές τις περιπτώσεις ο υπολογιστικός ορθολογισμός δεν επαρκεί. 13
Προβλήματα στη λογική προσέγγιση για την κατασκευή πρακτόρων (2) 2. Δεν είναι πάντα προφανές το πώς πρέπει να μεταφράζονται οι αντιλήψεις του πράκτορα για το περιβάλλον σε συμβολική μορφή. Η συνάρτηση αντίληψης του πράκτορα, see, αντιστοιχίζει την πληροφορία που λαμβάνει ο πράκτορας από το περιβάλλον του σε μια αντίληψη που αναπαρίσταται από ένα σύνολο λογικών προτάσεων. Για πολλά περιβάλλοντα αυτή η μετάφραση σε συμβολική μορφή δεν είναι προφανής. Π.χ. η μετάφραση μίας εικόνας σε ένα σύνολο λογικών προτάσεων αποτελεί αντικείμενο μελέτης της τεχνητής νοημοσύνης εδώ και πολλά χρόνια. 3. Η αναπαράσταση των ιδιοτήτων δυναμικών, πραγματικών περιβαλλόντων είναι μερικές φορές δύσκολη. Η αναπαράσταση και ο συλλογισμός με χρονική πληροφορία (πώς μία κατάσταση αλλάζει με την πάροδο του χρόνου), για παράδειγμα, δεν είναι πάντα εύκολη. 14
Λύσεις σε μερικά από τα προβλήματα λογικής προσέγγισης για την κατασκευή πρακτόρων Χρήση λιγότερο εκφραστικών συστημάτων λογικής. Αντιδραστικοί, μη συμβολικοί πράκτορες. Η διαδικασία λήψης αποφάσεων λαμβάνει χώρα πριν την εκκίνηση του πράκτορα: βιβλιοθήκες με «έτοιμες» αποφάσεις. 15
«Πράκτορο-στραφής προγραμματισμός» (Agent-Oriented Programming, Shoham 1993) Η βασική ιδέα είναι να προγραμματίζουμε πράκτορες με βάση νοητικές έννοιες όπως τις πεποιθήσεις τους, τις επιθυμίες και τους στόχους τους, γιατί και οι άνθρωποι χρησιμοποιούμε τέτοιες έννοιες σαν αφαιρετικό μηχανισμό για να περιγράψουμε τις ιδιότητες πολύπλοκων συστημάτων. Η πρώτη ΑΟP γλώσσα προγραμματισμού για πράκτορες είναι η AGENT0. Η γλώσσα είναι στη φάση του πρωτότυπου, δεν χρησιμοποιείται για την κατασκευή συστημάτων μεγάλης κλίμακας. Ένας πράκτορας προσδιορίζεται ορίζοντας Ένα σύνολο ικανοτήτων του (δηλαδή το σύνολο των ενεργειών του) Ένα σύνολο αρχικών πεποιθήσεων (δηλαδή μια αρχική βάση γνώσης, πιθανώς {}) Ένα σύνολο αρχικών δεσμεύσεων (δηλαδή ένα σύνολο ενεργειών που πρέπει αρχικά να εκτελέσει, πιθανώς {}) Ένα σύνολο κανόνων δέσμευσης. Αυτό καθορίζει πώς επιλέγει νέες ενέργειες ο πράκτορας. 16
Κανόνες δέσμευσης στην AGENT0 Κάθε κανόνας δέσμευσης ορίζεται από: Μία συνθήκη μηνύματος (message condition) Μία συνθήκη νοητική (mental condition) Μία ενέργεια (action) Η απλή αφηρημένη μορφή ενός κανόνα δέσμευσης είναι If <message condition> and <mental condition> then <action> Ένας κανόνας δέσμευσης ενεργοποιείται όταν η συνθήκη μηνύματός του ικανοποιείται με βάση τα μηνύματα που έχει λάβει ο πράκτορας. Τότε ελέγχεται αν ικανοποιείται η νοητική συνθήκη του κανόνα με βάση τις πεποιθήσεις του πράκτορα. Αν ναι, τότε ο πράκτορας δεσμεύεται να κάνει την ενέργεια που ορίζει ο κανόνας. Η πιο λεπτομερής μορφή ενός κανόνα δέσμευσης είναι commit(messagecondition, MentalCondition, self, do(time, action) όπου, MessageCondition έχει τη δομή (Sender, Type, Content), MentalCondition έχει τη δομή (Β, [<list of beliefs>]) 17
Ενέργειες στην AGENT0 Μπορεί να είναι ιδιωτικές (private) δηλαδή να αντιστοιχούν σε υπορουτίνες που εκτελούνται εσωτερικά στον πράκτορα ή Επικοινωνιακές (communicative) δηλαδή να αντιστοιχούν σε αποστολή μηνυμάτων. Τα μηνύματα που μπορεί να στέλνει ο πράκτορας είναι τριών τύπων Αιτήσεις προς κάποιον άλλο πράκτορα για την εκτέλεση κάποιας ενέργειας (requests) Αιτήσεις προς κάποιον άλλο πράκτορα για να αποφύγει να εκτελέσει κάποια ενέργεια (unrequests) Πληροφόρηση κάποιου άλλου πράκτορα (inform) Τα μηνύματα αιτήσεων που λαμβάνει κάποιος πράκτορας έχουν σαν αποτέλεσμα να αλλάζουν, πιθανώς, οι δεσμεύσεις του. Τα μηνύματα πληροφόρησης που λαμβάνει κάποιος πράκτορας έχουν σαν αποτέλεσμα να αλλάζουν, πιθανώς, οι πεποιθήσεις του. 18
Παράδειγμα κανόνα δέσμευσης στην AGENT0 COMMIT ( (agent, REQUEST, DO(time, action) ), ;;; msg condition (B, [now, Friend agent] AND CAN(self, action) AND NOT [time, CMT(self, anyaction)] ), ;;; mental condition self, DO(time, action) ) Σε παράφραση: Αν λάβω μήνυμα από έναν πράκτορα agent που μου ζητά να κάνω την ενέργεια action τη χρονική στιγμή time και πιστεύω ότι: Οπράκτοραςagent κατά τη χρονική στιγμή λήψης του μηνύματος είναι φίλος & Μπορώ να κάνω την ενέργεια action & Στη χρονική στιγμή time δεν είμαι δεσμευμένος να κάνω κάποια άλλη ενέργεια Τότε δεσμεύομαι να κάνω την ενέργεια action στο χρόνο time. 19
Ο πράκτορας εκτελεί τον κύκλο Κύκλος πράκτορα στην AGENT0 Διάβασε όλα τα τρέχοντα μηνύματα και ενημέρωσε τις πεποιθήσεις και τις δεσμεύσεις σου όπου αυτό είναι απαραίτητο Εκτέλεσε όλες τις δεσμεύσεις σου για τον τρέχοντα κύκλο όπου η προϋπόθεση της σχετικής ενέργειας ικανοποιείται 20
AGENT0 και PLAnning Communicating Agents Η AGENT0 μπορεί να χρησιμοποιηθεί για τον προγραμματισμό πολλαπλών πρακτόρων, οι οποίοι επικοινωνούν μεταξύ τους και συνεργάζονται. Επιπλέον, παρέχει δυνατότητα για debugging. Αλλά είναι μία γλώσσα στη φάση του πρωτότυπου, η οποία αναπτύχθηκε για να περιγράψει κάποιες αρχές προγραμματισμού πρακτόρων, και όχι για τον προγραμματισμό ρεαλιστικών/εμπορικών πρακτόρων. Η Thomas, στοδιδακτορικότηςτο1993, ανέπτυξε την γλώσσα Planning Communication Agents, με σκοπό να καλύψει ένα βασικό μειονέκτημα της AGENT0: την έλλειψη δυνατότητας προγραμματισμού πρακτόρων με στόχους και συνεπώς με δυνατότητα σχεδιασμού. Ο προγραμματισμός πρακτόρων στην γλώσσα της Thomas γίνεται όπως και στην AGENT0, με κανόνες αλλαγής της εσωτερικής κατάστασης πρακτόρων, δηλαδή των πεποιθήσεων, των δεσμεύσεων και των προθέσεων τους. 21
AGENT0 και PLAnning Communicating Agents Παράδειγμα κανόνα αλλαγής πρόθεσης: (((self?agent REQUEST (?t (xeroxed?x))) (AND (CAN-ACHIEVE (?t xeroxed?x))) (NOT (BEL (*now* shelving))) (NOT (BEL (*now* (vip?agent)))) ((ADOPT (INTEND (5pm (xeroxed?x))))) ((?agent self INFORM (*now* (INTEND (5pm (xeroxed?x))))))) Αν κάποιος σου ζητήσει να φωτοτυπήσεις κάτι, και έχεις την ικανότητανατοκάνεις, και δεν πιστεύεις ότι πρέπει να βάζεις βιβλία στα ράφια, ή ότι αυτός που σου το ζήτησε είναι VIP, τότε: Υιοθέτησε την πρόθεση να το φωτοτυπήσεις μέχρι τις 5, και Πληροφόρησε τον για τη νέα σου πρόθεση 22
Η σύγχρονη (concurrent) γλώσσα MetateM (Fisher 1994) Ένα σύστημα στη MetateM αποτελείται από ένα πλήθος πρακτόρων που λειτουργούν συγχρόνως και επικοινωνούν μεταξύ τους με ασύγχρονη μετάδοση μηνυμάτων (asynchronous broadcasting). Κάθε πράκτορας προγραμματίζεται δίνοντας τον ορισμό της επιθυμητής συμπεριφοράς του σε χρονική λογική. Ο ορισμός του πράκτορα εκτελείται για να παράγει τη συμπεριφορά του. Ο ορισμός κάθε πράκτορα περιέχει δύο στοιχεία Μια διεπαφή που ορίζει πώς ο πράκτορας αλληλεπιδρά με το περιβάλλον του (και με άλλους πράκτορες) Μια υπολογιστική μονάδα που ορίζει πώς ενεργεί ο πράκτορας. 23
Διεπαφή πράκτορα στην MetateM Η διεπαφή πράκτορα αποτελείται από: Ένα μοναδικό όνομα για τον ορισμό της ταυτότητάς του. Ένα σύνολο συμβόλων που ορίζουν τα μηνύματα που μπορεί να δεχτεί ο πράκτορας (προτάσεις του περιβάλλοντος, είσοδος). Ένα σύνολο συμβόλων που ορίζουν τα μηνύματα που μπορεί να στείλει ο πράκτορας (προτάσεις του συστατικού, έξοδος). Παράδειγμα: η διεπαφή ενός πράκτορα-στοίβας μπορεί να είναι stack(pop, push) [popped, full] Όποτε μεταδίδεται μήνυμα pop ή push ο πράκτορας με όνομα stack το δέχεται. Αν μεταδίδεται μήνυμα διαφορετικό ο πράκτορας stack το αγνοεί. Τα μόνα μηνύματα που μπορεί να στείλει ο πράκτορας stack ξεκινούν με τα σύμβολα popped ή full. 24
Υπολογιστική μονάδα πράκτορα στην MetateM Ορίζεται από ένα σύνολο κανόνων της μορφής Συνθήκη για το παρελθόν επακόλουθο για το παρόν και το μέλλον Οι προτάσεις αριστερά και δεξιά από το σύμβολο είναι προτάσεις σε χρονική λογική. Η εκτέλεση ενός πράκτορα είναι μία διαδικασία κατά την οποία κάθε κανόνας του πράκτορα ελέγχεται με βάση την κατάσταση του (τις πεποιθήσεις του), και ενεργοποιείται αν η πρόταση αριστερά από το ικανοποιείται. Οι προτάσεις δεξιά από το των κανόνων που ενεργοποιούνται αποτελούν τις μελλοντικές δεσμεύσεις του πράκτορα. 25
Υπολογιστική μονάδα πράκτορα στην MetateM Κανόνες πράκτορα: Συνθήκη για το παρελθόν επακόλουθο για το παρόν και το μέλλον Οι προτάσεις αριστερά και δεξιά από το σύμβολο είναι προτάσεις σε χρονική λογική και χρησιμοποιούν τα λογικά συνδετικά που ορίζονται στον παρακάτω πίνακα. φ φ αληθής αύριο φ φ φ φ φ φ U ψ φ S ψ φ W ψ φ Z ψ φαληθής χθες φαληθής κάποια στιγμή στο μέλλον φαληθής πάντα στο μέλλον φαληθής κάποια στιγμή στο παρελθόν φαληθής πάντα στο παρελθόν φ αληθής μέχρι να γίνει αληθής ψ φ είναι από το παρελθόν αληθής από τότε που έγινε αληθής ψ φ αληθής εκτός αν είναι αληθής ψ φ αληθής από το παρελθόν και πιθανά από τότε που έγινε αληθής ψ
Παραδείγματα προτάσεων σε χρονική λογική σημαντικοι(πρακτορες) είναι τώρα και θα είναι πάντα αληθές ότι οι πράκτορες είναι σημαντικοί ψηλος(γιαννης) κάποια στιγμή στο μέλλον ο Γιάννης θα είναι ψηλός φιλοι(εμεις) U συγγνωμη(εσυ) δεν είμαστε φίλοι μέχρι να μου ζητήσεις συγγνώμη συγγνωμη(εσυ) αύριο (στην επόμενη κατάσταση) θα μου ζητήσεις συγγνώμη αγεντικο(εσυ) ήσουν το αφεντικό κάποια στιγμή στο παρελθόν 27
Ο πράκτορας εκτελεί τον κύκλο Κύκλος πράκτορα στη MetateM 1. Διάβασε τα μηνύματα που λαμβάνεις από το περιβάλλον (δηλαδή από άλλους πράκτορες) και ενημέρωσε τις πεποιθήσεις σου με αυτά. 2. Έλεγξε ποιοι κανόνες ενεργοποιούνται, δηλαδή ποιων κανόνων οι συνθήκες παρελθόντος ικανοποιούνται σύμφωνα με τις πεποιθήσεις σου. 3. Εκπλήρωσε τις δεσμεύσεις που δημιουργούνται από τους κανόνες που ενεργοποιήθηκαν στον τωρινό κύκλο, καθώς και τις δεσμεύσεις που είναι ενεργές από προηγούμενους κύκλους, δηλαδή Μάζεψε όλα τα επακόλουθα κανόνων που είναι ενεργοποιημένοι στον τωρινό κύκλο και όλα τα επακόλουθα κανόνων που ήταν ενεργοποιημένοι σε προηγούμενους κύκλους αλλά δεν εκπληρώθηκαν. Όσες δεσμεύσεις δεν εκπληρωθούν στον τρέχοντα κύκλο μεταφέρονται στον επόμενο κύκλο. 28
Παράδειγμα λειτουργίας πράκτορα στη MetateM rp(ask1, ask2) [give1, give2]: ask1 give1; ask2 give2; start (give1 give2). rc1(give1)[ask1]: start ask1; ask1 ask1. rc2(ask1,give2)[ask2]: (ask1 ask2) ask2. 29
Συνοψίζοντας: MetateM Μία (ακόμα) γλώσσα στη φάση του πρωτότυπου Αναπαράσταση δυναμικών συστημάτων με χρήση χρονικής λογικής Αλλά δεν μπορεί να χρησιμοποιηθεί για την υλοποίηση ενός «πλήρους» συστήματος 30
Βιβλιογραφία Κεφάλαιο 3 ο απότοβιβλίοτουwooldridge. Agent0 Υ. Shoham, Agent-Oriented Programming, Technical report STAN-CS-1335-90, Computer Science Department, Stanford University, 1990, Y. Shoham, Agent-Oriented Programming, Artificial Intelligence, 60(1), 51-92, 1993. http://www.ncat.edu/~esterlin/c7902s02/notes/shoham.pdf Planning Communicating Agents (PLACA) S. R. Thomas, PLACA, an Agent-Oriented Programming Language, PhD Thesis, Computer Science Department, Stanford University, 1993. S. R. Thomas, The PLACA Agent Programming Language, In Intelligent Agents: Theories, Architectures and Languages, eds. Wooldridge and Jennings, LNAI 890, 355-369, Springer 1995. Concurrent MetateM M. Fisher, A Survey of Concurrent MetateM-the Language and its Applications, In Proceedings of the 1 st International Conference on Temporal Logic, eds. Gabbay and Ohlbach, LNAI 827, 480-505, Springer, 1994. Αναπαράσταση δυναμικών περιβαλλόντων M. Shanahan, The Event Calculus Explained, in Artificial Intelligence Today, ed. M.J.Wooldridge and M.Veloso, Springer Lecture Notes in Artificial Intelligence no. 1600, Springer, pages 409-430, 1999. E. Mueller, Commonsense Reasoning, Morgan Kaufmann, 2006. Αντιδραστικοί, μη συμβολικοί πράκτορες R. A. Brooks, A Robust Layered Control System for a Mobile Robot, IEEE Journal of Robotics and Automation, 2(1), 14-23, 1986. P. E. Agre and S. J. Rosenchain (eds.), Computational Theories of Interaction and Agency, MIT Press, 1996. Υβριδικοί πράκτορες I. A. Ferguson, TouringMachines: an Architecture for Dynamic, Rational, Mobile Agents, PhD Thesis, University of Cambridge, 1992. J. Muller, A Cooperation Model for Autonomous Agents, In Intelligent Agents III, eds. Muller, Wooldridge, Jennings, LNAI 1193, 245-260, Springer, 1997. 31