Πράκτορες συνεπαγωγικού συλλογισμού Πράκτορες βασισμένοι στη γνώση
Πράκτορες βασισμένοι στη γνώση (ή πράκτορες συμβολικής Τεχνητής Νοημοσύνης) Βασικό συστατικό τους είναι η βάση γνώσης τους. Η βάση γνώσης περιέχει προτάσεις που περιγράφουν –το περιβάλλον του πράκτορα και –τις προϋποθέσεις και τα αποτελέσματα των ενεργειών του. Οι προτάσεις αναπαρίστανται σε μια τυπική γλώσσα αναπαράστασης: κάποιο σύστημα Λογικής. –Σύμβολα της γλώσσας και κανόνες για την δημιουργία προτάσεων σε αυτή. –Κανόνες εξαγωγής συμπεράσματος, δηλαδή κανόνες δημιουργίας νέων προτάσεων με βάση τις υπάρχουσες. Ο πράκτορας επεξεργάζεται «συντακτικά» αυτή την αναπαράσταση για να αποφασίσει ποιά ενέργεια να εκτελέσει δεδομένων των αντιλήψεών του. Η διαδικασία της απόφασής του ανάγεται στην διαδικασία απόδειξης ενός θεωρήματος με αφετηρία τις προτάσεις που βρίσκονται στη βάση γνώσης του.
Παράδειγμα RALPH: ο πράκτορας-καθαριστής Ο RALPH λειτουργεί σε φυσικό περιβάλλον που αποτελείται από διαδρόμους και τοίχους. Οι αισθητήρες του δέχονται είσοδο από μια βιντεο-κάμερα. Το υποσύστημα interp μετατρέπει την είσοδο των αισθητήρων του σε προτάσεις λογικής πρώτης τάξης. Η γνώση του για το περιβάλλον του περιέχεται στη Βάση Γνώσης του. Το υποσύστημα plan χρησιμοποιεί τη Βάση γνώσης για να συμπεράνει ποιά ενέργεια πρέπει να εκτελεστεί. Το υποσύστημα Action μεταφράζει το συμπέρασμα στον κατάλληλο μηχανισμό δράσης.
Τα βασικά προβλήματα Για να κατασκευάσουμε τον RALPH (και όποιον άλλο πράκτορα) με συμβολική ΤΝ πρέπει να επιλύσουμε δύο προβλήματα: –Πώς να μεταφράσουμε τον πραγματικό κόσμο σε μια συμβολική αναπαράσταση, που να είναι ακριβής και επαρκής, και σε χρόνο ώστε να είναι χρήσιμη η αναπαράσταση; Μηχανική όραση για επεξεργασία εικόνας Επεξεργασία ήχου Επεξεργασία φυσικής γλώσσας Μηχανική μάθηση –Σε ποια συμβολική μορφή να κάνουμε την αναπαράσταση ώστε να μπορούν οι πράκτορες να την επεξεργάζονται για να εκτελούν συλλογισμούς με αυτήν σε χρόνο που να είναι χρήσιμα τα αποτελέσματα/συμπεράσματά τους; Συστήματα λογικής για αναπαράσταση γνώσης Αυτόματη απόδειξη θεωρημάτων (αυτόματος συλλογισμός) Αυτόματη κατάστρωση σχεδίου δράσης
Οι πράκτορες συνεπαγωγικού συλλογισμού Η βάση γνώσης τους αντιστοιχεί στην εσωτερική τους κατάσταση. Η πληροφορία αναπαρίσταται σε κατηγορηματική λογική (ή λογική πρώτης τάξης). Τα περιεχόμενα της βάσης γνώσης αντιστοιχούν σε αυτό που αποκαλούμε «πεποιθήσεις» για τους ανθρώπους, δηλαδή ο πράκτορας θεωρεί ότι οι προτάσεις της βάσης γνώσης του είναι αληθείς. Παράδειγμα: στο φυσικό περιβάλλον του πράκτορα μπορεί η θερμοκρασία στο δωμάτιο 21 να είναι 40 βαθμοί. Η βάση δεδομένων του πράκτορα θα περιέχει την πρόταση temperature(room21,40). Όπως συμβαίνει και με τις πεποιθήσεις των ανθρώπων μπορεί οι πεποιθήσεις ενός πράκτορα να είναι λάθος (π.χ. επειδή υπάρχει σφάλμα σε κάποιον αισθητήρα, επειδή η πληροφορία του πράκτορα δεν είναι ενημερωμένη, επειδή ο συλλογισμός του πράκτορα είναι λανθασμένος κλπ) η ελλειπής. –Προσοχή λοιπόν, όπως και στις βάσεις δεδομένων ισχύει η διάκριση πραγματικού κόσμου και μικρο-κόσμου.
Τυπικός ορισμός συνεπαγωγικού πράκτορα
Ψευδοκώδικας ορισμού της συνάρτησης δράσης Ο προγραμματιστής του πράκτορα κωδικοποιεί τους κανόνες ρ και τη βάση Δ έτσι ώστε αν μια πρόταση Do(α) (όπου α είναι μια ενέργεια) μπορεί να εξαχθεί, τότε η α είναι η καλύτερη ενέργεια. Ο πράκτορας δοκιμάζει για κάθε μια από τις ενέργειές του να αποδείξει Do(α) χρησιμοποιώντας τους κανόνες ρ. Αν πετύχει τότε η α είναι η ενέργεια που επιλέγεται. Αν αποτύχει, προσπαθεί να αποδείξει Do(α). Αν αποτύχει τότε η ενέργεια α δεν απαγορεύεται και επιστρέφεται. Αν αποτύχει και πάλι τότε καμία ενέργεια δεν επιτρέπεται και επιστρέφει null.
Παράδειγμα: ο πράκτορας-καθαριστής Ο πράκτορας έχει τώρα μεγαλύτερο κόσμο να διατρέξει! Έχει αισθητήρα θέσης και αισθητήρα σκόνης (είσοδος) Έχει μηχανισμό δράσης για να αναρροφά τη σκόνη και μηχανισμό δράσης για να μετακινείται εμπρός κατά ένα βήμα καθώς και μηχανισμό για να μπορεί να στρίβει 90 μοίρες δεξιά και αριστερά. Ας υποθέσουμε ότι ξεκινά πάντα στο κελί (0,0) με προσανατολισμό Ν.
Αναπαράσταση γνώσης (1)
Αναπαράσταση για τον πράκτορα-καθαριστή (2)
Αναπαράσταση για τον πράκτορα-καθαριστή (3)
Προβλήματα στην λογική προσέγγιση για την κατασκευή πρακτόρων (1)
Προβλήματα στην λογική προσέγγιση για την κατασκευή πρακτόρων (2)
«Πρακτορο-στραφής προγραμματισμός» (Agent-Oriented Programming, Shoham 1993) Η βασική ιδέα είναι να προγραμματίζουμε πράκτορες με βάση νοητικές έννοιες όπως τις πεποιθήσεις τους, τις επιθυμίες και τους στόχους τους, γιατί και οι άνθρωποι χρησιμοποιούμε τέτοιες έννοιες σαν αφαιρετικό μηχανισμό για να περιγράψουμε τις ιδιότητες πολύπλοκων συστημάτων.. Η πρώτη ΑΟP γλώσσα προγραμματισμού για πράκτορες είναι η AGENT0. Η γλώσσα είναι στη φάση του πρωτοτύπου, δεν χρησιμοποιείται για την κατασκευή συστημάτων μεγάλης κλίμακας. Ένας πράκτορας προσδιορίζεται ορίζοντας –Ένα σύνολο ικανοτήτων του (δηλαδή το σύνολο των ενεργειών του) –Ένα σύνολο αρχικών πεποιθήσεων (δηλαδή μια αρχική βάση γνώσης, πιθανό και το {}) –Ένα σύνολο αρχικών δεσμεύσεων (δηλαδή ένα σύνολο ενεργειών που πρέπει αρχικά να εκτελέσει, πιθανό και το {}) –Ένα σύνολο κανόνων δέσμευσης. Αυτό καθορίζει πώς επιλέγει νέες ενέργειες ο πράκτορας.
Κανόνες δέσμευσης στην AGENT0 Κάθε κανόνας δέσμευσης ορίζεται από –Μια συνθήκη μηνύματος –Μια συνθήκη νοητική –Μια ενέργεια Η απλή αφηρημένη μορφή ενός κανόνα δέσμευσης είναι If and then Ένας κανόνας δέσμευσης ενεργοποιείται όταν η συνθήκη μηνύματός του ικανοποιείται με βάση τα μηνύματα που έχει λάβει ο πράκτορας. Τότε ελέγχεται αν ικανοποιείται η νοητική συνθήκη του κανόνα με βάση τις πεποιθήσεις του πράκτορα. Αν ναι, τότε ο πράκτορας δεσμεύεται να κάνει την ενέργεια που ορίζει ο κανόνας. Η πιο λεπτομερής μορφή ενός κανόνα δέσμευσης είναι commit(MessageCondition, MentalCondition, self, do(time, action) όπου MessageCondition έχει τη δομή (Sender, Type, Content) MentalCondition έχει τη δομή (Β, [ ])
Ενέργειες στην AGENT0 Μπορεί να είναι –ιδιωτικές (private) δηλαδή να αντιστοιχούν σε υπορουτίνες που εκτελούνται εσωτερικά στον πράκτορα ή –Επικοινωνιακές (communicative) δηλαδή να αντιστοιχούν σε αποστολή μηνυμάτων. Τα μηνύματα που μπορεί να στέλνει ο πράκτορας είναι τριών τύπων –Αιτήσεις προς κάποιον άλλο πράκτορα για την εκτέλεση κάποιας ενέργειας (requests) –Αιτήσεις προς κάποιον άλλο πράκτορα για να αποφύγει να εκτελέσει κάποια ενέργεια (unrequests) –Πληροφόρηση κάποιου άλλου πράκτορα (inform) Τα μηνύματα αιτήσεων που λαμβάνει κάποιος πράκτορας έχουν σαν αποτέλεσμα να αλλάζουν οι δεσμεύσεις του. Τα μηνύματα πληροφόρησης που λαμβάνει κάποιος πράκτορας έχουν σαν αποτέλεσμα να αλλάζουν οι πεποιθήσεις του.
Παράδειγμα κανόνα δέσμευσης στην 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.
Λειτουργία πράκτορα στην AGENT0 Ο πράκτορας εκτελεί τον κύκλο –Διάβασε όλα τα τρέχοντα μηνύματα και ενημέρωσε τις πεποιθήσεις (άρα και τις δεσμεύσεις) σου όπου αυτό είναι απαραίτητο –Εκτέλεσε όλες τις δεσμεύσεις σου για τον τρέχοντα κύκλο όπου η προϋπόθεση της σχετικής ενέργειας ικανοποιείται
Η σύγχρονη (concurrent) γλώσσα MetateM (Fisher 1994) Ένα σύστημα στη MetateM αποτελείται από ένα πλήθος πρακτόρων που λειτουργούν συγχρόνως και επικοινωνούν μεταξύ τους με ασύγχρονη μετάδοση μηνυμάτων (asynchronous broadcasting). Κάθε πράκτορας προγραμματίζεται δίνοντας τον ορισμό της επιθυμητής συμπεριφοράς του σε χρονική λογική. Ο ορισμός του πράκτορα εκτελείται για να παράγει τη συμπεριφορά του. Ο ορισμός κάθε πράκτορα περιέχει δύο στοιχεία –Μια διεπαφή που ορίζει πώς ο πράκτορας αλληλεπιδρά με το περιβάλλον του (δηλαδή και με άλλους πράκτορες) –Μια υπολογιστική μονάδα που ορίζει πώς ενεργεί ο πράκτορας.
Διεπαφή πράκτορα στην MetateM Η διεπαφή πράκτορα αποτελείται από –Ένα μοναδικό όνομα για τον ορισμό της ταυτότητάς του –Ένα σύνολο συμβόλων που ορίζουν τα μηνύματα που μπορεί να δεχτεί ο πράκτορας (προτάσεις του περιβάλλοντος, είσοδος) –Ένα σύνολο συμβόλων που ορίζουν τα μηνύματα που μπορεί να στείλει ο πράκτορας (προτάσεις του συστατικού, έξοδος) Παράδειγμα: η διεπαφή ενός πράκτορα-στοίβας μπορεί να είναι stack(pop, push) [popped, full] Όποτε μεταδίδεται μήνυμα pop ή push ο πράκτορας με όνομα stack το δέχεται. Αν μεταδίδεται μήνυμα διαφορετικό ο πράκτορας stack το αγνοεί. Τα μόνα μηνύματα που μπορεί να στείλει ο πράκτορας stack ξεκινούν με τα σύμβολα popped ή full.
Υπολογιστική μονάδα πράκτορα στην MetateM Ορίζεται από ένα σύνολο κανόνων που είναι προτάσεις σε χρονική λογική της μορφής Συνθήκη για το παρελθόν επακόλουθο για το παρόν και το μέλλον Οι προτάσεις αριστερά και δεξιά από το σύμβολο είναι προτάσεις σε χρονική λογική και χρησιμοποιούν τα λογικά συνδετικά που ορίζονται στον παρακάτω πίνακα. φφφ αληθής αύριο φφ φ αληθής χθές φφφ αληθής κάποια στιγμή στο μέλλον φφφ αληθής πάντα στο μέλλον φφφ αληθής κάποια στιγμή στο παρελθόν φφ αληθής πάντα στο παρελθόν φ U ψφ αληθής μέχρι να γίνει αληθής ψ φ S ψφ είναι απο το παρελθόν αληθής από τότε που έγινε αληθής ψ φ W ψφ αληθής εκτός αν είναι αληθής ψ φ Z ψφ αληθής από το παρελθόν και πιθανά από τότε που έγινε αληθής ψ
Παραδείγματα προτάσεων σε χρονική λογική important(agents) –it is now and will always be true that agents are important tall(Janine) –some time in the future Janine will be tall friends(us) U apologize(you) –we are not friends now until you apologize apologize(you) –tomorrow (in the next state) you apologize boss(you) – you were boss some time in the past and you are boss now
Λειτουργία πράκτορα στη MetateM Ο πράκτορας εκτελεί τον κύκλο –Διάβασε τα μηνύματα που λαμβάνεις από το περιβάλλον (δηλαδή άλλους πράκτορες) και ενημέρωσε την ιστορία σου με αυτά. –Έλεγξε ποιοί κανόνες ενεργοποιούνται, δηλαδή ποιών κανόνων οι συνθήκες παρελθόντος ικανοποιούνται από τα μηνύματα της τρέχουσας ιστορίας σου. –Εκτέλεσε όλους τους κανόνες που ενεργοποιούνται μαζί με όποιες δεσμεύσεις είναι ενεργές από προηγούμενους κύκλους, δηλαδή Μάζεψε όλα τα επακόλουθα κανόνων που είναι ενεργοποιημένοι στον τωρινό κύκλο και όλα τα επακόλουθα κανόνων που ήταν ενεργοποιημένοι σε προηγούμενους κύκλους αλλά δεν εκτελέστηκαν. Αυτό έχει σαν αποτέλεσμα ο πράκτορας να καλείται να ικανοποιήσει μια λογική πρόταση που έχει τη μορφή της διάζευξης. Από τη διάζευξη ο πράκτορας θα επιλέξει μια ενέργεια. Όσες ενέργειες δεν εκτελεστούν στον τρέχοντα κύκλο μεταφέρονται στον επόμενο κύκλο.
Παράδειγμα λειτουργίας πράκτορα στη MetateM