1.2 Jason BDI Αρχιτεκτονική

Σχετικά έγγραφα
Πρόβλημα 29 / σελίδα 28

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Βασικές Έννοιες Αλγορίθμων. Βασικές Εντολές Αλγορίθμων (Κεφ. 2ο Παρ. 2.4)

Ευφυείς Τεχνολογίες ----Πράκτορες

Εισαγωγή - Βασικές έννοιες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

Μαλούτα Θεανώ Σελίδα 1

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ANDROID Προγραμματισμός Εφαρμογών

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

Γ τάξη Τεχνολογικής Κατεύθυνσης Ενιαίου Λυκείου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. ΔΟΜΗ ΕΠΙΛΟΓΗΣ Διδάσκων: ΔΟΥΡΒΑΣ ΙΩΑΝΝΗΣ

του προγράμματος diagrama_rohs.zip )

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

7 ο Γυμνάσιο Καβάλας Καλλιόπη Παρσέλια Σχολ. έτος: Το περιβάλλον προγραμματισμού MicroWorlds Pro

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

Εισαγωγή στην Αριθμητική Ανάλυση

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

Ανάπτυξη και Σχεδίαση Λογισμικού

ΑΕΠΠ Ερωτήσεις θεωρίας

Σενάριο 16: Ο κόσμος του Robby

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ - ΓΛΩΣΣΑ

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C

Κεφάλαιο 5: Εισαγωγή στην Προσομοίωση

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Σχηματίζοντας Γραφικές Παραστάσεις για Ημίτονο και Συνημίτονο και Ελέγχοντας Περιορισμούς σε Συστάδες Καρτών Τόμπολας

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:

Διαδικασιακός Προγραμματισμός

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Φυσικές και τεχνητές γλώσσες. Το αλφάβητο της ΓΛΩΣΣΑΣ, Τύποι Δεδομένων. Σταθερές, Μεταβλητές, Τελεστές, Συναρτήσεις, Δομή Προγράμματος

Μ.Π.Σ. «ΠΡΟΗΓΜΕΝΕΣ ΜΕΘΟΔΟΙ ΚΑΤΑΣΚΕΥΗΣ ΠΡΟΙΟΝΤΩΝ ΑΠΟ ΞΥΛΟ» Μάθημα: Σχεδίαση και Εφαρμογές Διαδραστικών Συστημάτων. Διδάσκοντας: Α.

Βασικές έννοιες προγραμματισμού

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ

Πληροφορική 2. Τεχνητή νοημοσύνη

Τυπικές χρήσεις της Matlab

APP INVENTOR ΜΕΡΟΣ A. Σοφία Τζελέπη,

APP INVENTOR ΜΕΡΟΣ A - 1 Η ΕΒΔΟΜΑΔΑ. Σοφία Τζελέπη,

Computing. Νοέμβριος Έκδοση 1.0

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

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

Μια πρόταση διδασκαλίας για το μάθημα του προγραμματισμού Η/Υ στο Λύκειο με τη μεθοδολογία STEM

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Στοχεύοντας στην ανάπτυξη της Υπολογιστικής Σκέψης. Α. Γόγουλου Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ

Ευφυείς Τεχνολογίες ----Πράκτορες

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

ΕΝΤΟΛΕΣ. 7.1 Εισαγωγικό μέρος με επεξήγηση των Εντολών : Επεξήγηση των εντολών που θα

Προγραμματισμός I (Θ)

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / Γ ΛΥΚΕΙΟΥ-ΘΕΡΙΝΑ ΣΕΙΡΑ: 1 η ΗΜΕΡΟΜΗΝΙΑ: 09/09/2012

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο. Επικοινωνία:

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

ΕΝΤΟΛΕΣ. 7.1 Εισαγωγικό μέρος με επεξήγηση των Εντολών : Επεξήγηση των εντολών που θα

Παραδείγματα μεταβλητών

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

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

Πώς το λένε Computer game στο Scratch

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

Μεταβλητές. Για περισσότερες λεπτομέρειες πάνω στις μεταβλητές θα ήταν χρήσιμο να διαβάσεις το

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ÏÅÖÅ

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Προγραμματισμός ΙI (Θ)

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Tank Rescue Computer Game σε Scratch

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Βασικές έννοιες προγραμματισμού

α) Πώς παίρνουμε αποφάσεις στην καθημερινή μας ζωή; Συμπληρώσετε τον παρακάτω πίνακα: τότε

Ψευδοκώδικας. November 7, 2011

Καροτοκυνηγός. Αντικείμενα

Τα αλφαριθμητικά αποτελούνται από γράμματα, λέξεις ή άλλους χαρακτήρες (π.χ. μήλο, Ιούλιος 2009, You win!).

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης

Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής.

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Κεφάλαιο 10 ο Υποπρογράµµατα

Μαθησιακές δυσκολίες ΙΙ. Παλαιγεωργίου Γιώργος Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών και Δικτύων, Πανεπιστήμιο Θεσσαλίας

Εγχειρίδιο Χρήσης του «Μαθη.Συ.»

Ανάπτυξη και Σχεδίαση Λογισμικού

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Βασισμένης σε Περιπτώσεις (Case Based Reasoning): Το σύστημα PAS (Property Appraisal System) ΣΤΑΥΡΟΥΛΑ ΠΡΑΝΤΣΟΥΔΗ

Breakdance Computer Game σε Scratch.

Ας δούμε λίγο την θεωρία με την οποία ασχοληθήκαμε μέχρι τώρα.

Πληρουορική Γ Γσμμασίοσ

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

Μεταβλητές. Σενάριο για μαθητές Γ γυμνασίου διάρκειας 3+ ωρών

Η άσκηση μπορεί να γίνει με συνεργασία το πολύ δυο φοιτητών, οι οποίοι θα λάβουν τον ίδιο βαθμό στην εργασία.

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος...

επιµέλεια Θοδωρής Πιερράτος

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

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια)

Transcript:

1.2 Jason 1.2.1 BDI Αρχιτεκτονική Το Belief-Desire-Intention (BDI) είναι ένα μοντέλο λογισμικού που έχει αναπτυχθεί για τον προγραμματισμό ευφυών πρακτόρων. Χαρακτηρίζεται από την υλοποίηση των πεποιθήσεων, των επιθυμιών και των προθέσεων ενός πράκτορα και χρησιμοποιεί αυτές τις έννοιες για την επίλυση ενός συγκεκριμένου προβλήματος στον προγραμματισμό πρακτόρων. Ουσιαστικά, παρέχει έναν μηχανισμό για τον διαχωρισμό της δραστηριότητας της επιλογής ενός πλάνου (από τη βιβλιοθήκη πλάνων ή μια εξωτερική εφαρμογή) από την εκτέλεση των προσφάτως ενεργών πλάνων. Επομένως, οι BDI πράκτορες έχουν την ικανότητα να ισορροπούν το χρόνο που ξοδεύουν στη μελέτη των πλάνων (για να επιλέξουν τι θα κάνουν) και στην εκτέλεση των πλάνων αυτών. Η δημιουργία (σχεδιασμός) των πλάνων δεν περιλαμβάνεται στο μοντέλο και αφήνεται στον σχεδιαστή και προγραμματιστή του συστήματος. Beliefs: αντιπροσωπεύουν τις πληροφορίες που είναι διαθέσιμες στον πράκτορα, δηλαδή το τι πιστεύει για τον κόσμο (συμπεριλαμβανομένων των άλλων πρακτόρων αλλά και τον ίδιο). Η λέξη πεποίθηση και όχι γνώση που χρησιμοποιείται δείχνει ότι αυτό που πιστεύει ένα πράκτορας δεν είναι απαραίτητα αληθές. Οι πεποιθήσεις αποθηκεύονται σε βάση δεδομένων (που πολλές φορές καλείται belief base ή belief set). Desires: αντιπροσωπεύουν στόχους ή καταστάσεις που ένας πράκτορας θα ήθελε να επιτύχει. o Goals: Ένας στόχος είναι μία επιθυμία (desire) που έχει υιοθετηθεί για άμεση επίτευξη από έναν πράκτορα. Intentions: αντιπροσωπεύουν το τι επέλεξε ο πράκτορας να κάνει. Είναι επιθυμίες στις οποίες έχει κατά κάποιο τρόπο αφοσιωθεί ο πράκτορας. Σε πραγματικά συστήματα αυτό σημαίνει πως ο πράκτορας έχει ξεκινήσει να εκτελεί ένα πλάνο.

o Plans: Είναι ακολουθίες ενεργειών που μπορεί να εκτελέσει ένας πράκτορας για να επιτύχει μία ή περισσότερες από τις προθέσεις του (intentions). Τα πλάνα μπορεί να περιλαμβάνουν άλλα πλάνα. Events: είναι γεγονότα που προκαλούν κάποια αντίδραση από τον πράκτορα. Ένα event μπορεί να ανανεώσει μία πεποίθηση, να πυροδοτήσει πλάνα ή να τροποποιήσει στόχους. Τα events μπορεί να παραχθούν και εξωτερικά και να γίνουν αντιληπτά μέσω αισθητήρων ή ενσωματωμένων συστημάτων. Ο βασικός αλγόριθμος της αρχιτεκτονικής BDI φαίνεται στην ακόλουθη εικόνα: Η BDI αρχιτεκτονική είναι η επικρατούσα προσέγγιση για την υλοποίηση ευφυών ή λογικών πρακτόρων. 1.2.2 AgentSpeak Η AgentSpeak είναι μία φυσική επέκταση του λογικού προγραμματισμού (π.χ. Prolog) για την BDI αρχιτεκτονική πρακτόρων που παρουσιάστηκε το 1996 από τον Anand Rao. Παρέχει ένα κομψό, αφηρημένο πλαίσιο για τον προγραμματισμό BDI πρακτόρων. Ένας AgentSpeak πράκτορας ορίζεται από ένα σύνολο πεποιθήσεων (beliefs) που ορίζουν την αρχική κατάσταση της βάσης πεποιθήσεων (belief base) του πράκτορα και από ένα σύνολο πλάνων (plans) που σχηματίζουν την βιβλιοθήκη πλάνων του (plan library). Κάθε AgentSpeak πράκτορας ορίζεται σε ένα αρχείο με επέκταση.asl.

H AgentSpeak διακρίνει δύο είδη στόχων: τους στόχους επίτευξης (achievement goals) και τους στόχους ελέγχου (test goals). Οι στόχοι επίτευξης συντάσσονται από ατομικές προτάσεις βάζοντας μπροστά τον τελεστή!, ενώ οι στόχοι ελέγχου συντάσσονται από ατομικές προτάσεις βάζοντας μπροστά τον τελεστή?. Ένας στόχος επίτευξης δηλώνει πως ο πράκτορας θέλει να επιτύχει μία κατάσταση του κόσμου όπου η σχετιζόμενη ατομική πρόταση είναι αληθής. Ένας στόχος δοκιμής δηλώνει ότι ο πράκτορας θέλει να ελέγξει αν η σχετιζόμενη ατομική πρόταση είναι (ή μπορεί να ενωθεί με) μία από τις πεποιθήσεις του. Ένας AgentSpeak πράκτορας είναι ένα αντιδραστικό σύστημα σχεδιασμού (reactive planning system). Τα γεγονότα στα οποία αντιδρά σχετίζονται είτε με αλλαγές στις πεποιθήσεις λόγω παρατήρησης/αντίληψης του περιβάλλοντος, ή σε αλλαγές των στόχων του πράκτορα που προέρχονται από την εκτέλεση πλάνων που πυροδοτήθηκαν από προηγούμενα γεγονότα. Ένα triggering event ορίζει ποια γεγονότα μπορούν να ξεκινήσουν την εκτέλεση ενός συγκεκριμένου πλάνου. Τα πλάνα γράφονται από τον προγραμματιστή έτσι ώστε να πυροδοτούνται από την προσθήκη ( + ) ή την αφαίρεση ( - ) των πεποιθήσεων ή των στόχων. Ένα AgentSpeak πλάνο έχει μία επικεφαλίδα (head) (την έκφραση αριστερά του βέλους), η οποία σχηματίζεται από ένα triggering event (που καθορίζει τα γεγονότα για τα οποία αυτό το πλάνο είναι σχετικό) και μία ένωση από πεποιθήσεις που αντιπροσωπεύουν ένα σύνολο συνθηκών. Η ένωση των πεποιθήσεων στο σύνολο των συνθηκών πρέπει να είναι μία λογική συνέπεια των τρεχουσών πεποιθήσεων του συγκεκριμένου πράκτορα αν το σχέδιο θεωρηθεί εφαρμόσιμο εκείνη τη χρονική στιγμή (μόνο εφαρμόσιμα πλάνα μπορούν να επιλεχθούν για εκτέλεση). Ένα πλάνο έχει επίσης σώμα (body) το οποίο είναι μία πρόταση από βασικές ενέργειες ή (υπο)στόχους που ο πράκτορας πρέπει να επιτύχει (ή να ελέγξει) όταν το πλάνο πυροδοτηθεί. Τα σώματα των πλάνων περιλαμβάνουν βασικές ενέργειες, δηλαδή ατομικές εργασίες που πρέπει να εκτελέσει ο πράκτορας έτσι ώστε να αλλάξει το περιβάλλον.

1.2.3 Η πλατφόρμα Jason Το Jason είναι μία open-source πλατφόρμα για την ανάπτυξη πολυπρακτορικών συστημάτων. Χρησιμοποιεί μία επέκταση της γλώσσας προγραμματισμού AgentSpeak για να καθορίσει τη συμπεριφορά των πρακτόρων. Το Jason έχει αναπτυχθεί σε Java και επιτρέπει την προσαρμογή των περισσότερων ζητημάτων που αφορούν έναν πράκτορα ή ένα πολυπρακτορικό σύστημα. Δουλεύει σαν plugin είτε για το JEdit είτε για το Eclipse. Εκτός από τις βασικές δυνατότητες της AgentSpeak, το Jason έχει επιπλέον τα εξής χαρακτηριστικά: Ισχυρή άρνηση Χειρισμό πλάνων αποτυχίας Υποστήριξη για την ανάπτυξη Περιβαλλόντων (τα οποία κανονικά δεν προγραμματίζονται σε AgentSpeak στη συγκεκριμένη περίπτωση προγραμματίζονται σε Java), Τη δυνατότητα εκτέλεσης ενός πολυπρακτορικού συστήματος κατανεμημένου σε ένα δίκτυο (χρησιμοποιώντας Saci ή JADE), Πλήρως προσαρμόσιμες (σε Java) συναρτήσεις επιλογής, εμπιστοσύνης, αντίληψης, επικοινωνίας μεταξύ πρακτόρων κτλ, Βιβλιοθήκη με σημαντικές «εσωτερικές ενέργειες» (internal actions) Απλή και άμεση επεκτασιμότητα από ορισμένες από το χρήστη εσωτερικές ενέργειες, οι οποίες προγραμματίζονται σε Java, Ολοκληρωμένο περιβάλλον ανάπτυξης στη μορφή ενός JEdit ή Eclipse plugin. Το περιβάλλον περιλαμβάνει και εργαλεία που βοηθούν στην αποσφαλμάτωση. Οι πεποιθήσεις αντιπροσωπεύονται από λογικές προτάσεις 1 ης τάξης, π.χ. red(box1), friend(bob,alice), female(maria). Το Jason μπορεί να ρυθμιστεί ώστε να είναι δυνατή και η χρήση σχολίων, για παράδειγμα: busy(john)[expires(autumn)]. Κατά τη διάρκεια εκτέλεσης του πράκτορα, οι πεποιθήσεις ανανεώνονται από πληροφορίες που μπορεί να προέρχονται από τις εξής πηγές:

- Αντίληψη: σαν αποτέλεσμα μιας συνεχούς παρατήρησης του περιβάλλοντος - Επικοινωνία: σαν αποτέλεσμα ενός μηνύματος από άλλο πράκτορα - Πνευματικές Σημειώσεις που προστίθενται από τον πράκτορα στη δική του βάση πεποιθήσεων κατά τη διάρκεια εκτέλεσης ενός πλάνου. Όπως έχει ήδη αναφερθεί υπάρχουν 2 είδη στόχων (goals): οι στόχοι επίτευξης (achievement goals) και οι στόχοι ελέγχου (test goals). Ακολουθούν μερικά παραδείγματα: Στόχοι επίτευξης ->!write(book),!own(house) Στόχοι ελέγχου->?publisher(p),?bankbalance(bb) Ένα πλάνο έχει την ακόλουθη δομή: triggering_event : context <- body όπου το triggering_event δηλώνει τα γεγονότα που το πλάνο καλείται να χειριστεί, το context αντιπροσωπεύει τις συνθήκες κάτω από τις οποίες το πλάνο μπορεί να χρησιμοποιηθεί και το body είναι οι ενέργειες που πρέπει να γίνουν για να αντιμετωπιστεί το γεγονός αν οι συνθήκες κρίνονται αληθείς τη στιγμή που το πλάνο κληθεί να χειριστεί το γεγονός. Το σώμα ενός πλάνου μπορεί να περιέχει τους εξής έξι τύπους προτάσεων: Ενέργειες (actions) Στόχους επίτευξης (achievement goals) Στόχους ελέγχου (test goals) Πνευματικές σημειώσεις (mental notes) Εσωτερικές ενέργειες (internal actions) Εκφράσεις (expressions) Οι συνθήκες ενός πλάνου καθορίζουν τις συνθήκες κάτω από τις οποίες ένα πλάνο είναι εφαρμόσιμο. Στη συνέχεια δίνεται το παράδειγμα ενός πλάνου:

Εσωτερικές Ενέργειες (Internal Actions) Είναι ενέργειες που εκτελούνται εσωτερικά στον κάθε πράκτορα και δεν αλλάζουν το περιβάλλον. Αναγνωρίζονται από την παρουσία της τελείας (.) που τοποθετείται πριν το όνομα της ενέργειας. Το Jason περιλαμβάνει αρκετές standard εσωτερικές ενέργειες, ενώ ο κάθε προγραμματιστής μπορεί να δημιουργήσει και τις δικές του. Στην συνέχεια, περιγράφονται μερικές από τις πιο σημαντικές εσωτερικές ενέργειες του Jason: Internal Action.broadcast(ilf, message) Περιγραφή Εκπέμπει ένα μήνυμα σε όλους τους γνωστούς πράκτορες. ilf: το είδος του μηνύματος (εξηγείται παρακάτω) message:το μήνυμα

Στέλνει ένα μήνυμα σε έναν πράκτορα. receiver: το όνομα του πράκτορα που θα λάβει το μήνυμα ilf: το είδος του μηνύματος (εξηγείται παρακάτω).send(receiver,ilf,message,answer,timeout) message: το μήνυμα answer: η απάντηση ενός μηνύματος τύπου ask timeout: χρόνος (σε milliseconds) που περιμένει ο πράκτορας που στέλνει το μήνυμα για απάντηση.abolish().perceive.add_plan(plan1,plan2,.,source).random() Αφαιρεί όλα τα beliefs που καθορίζονται μέσα στις παρενθέσεις. Αναγκάζει την αρχιτεκτονική του πράκτορα να παρατηρήσει το περιβάλλον άμεσα. Προσθέτει ένα ή περισσότερα πλάνο(- α) στη βιβλιοθήκη πλάνων του πράκτορα. Source είναι το όνομα του πράκτορα που προσθέτει το πλάνο. Η προκαθορισμένη τιμή είναι self. Αναθέτει έναν τυχαίο αριθμό ανάμεσα στο 0 και το 1 στη μεταβλητή που υπάρχει μέσα στις παρενθέσεις. Τύποι μηνυμάτων για την επικοινωνία πρακτόρων Έστω s ο πράκτορας που στέλνει το μήνυμα και r ο πράκτορας που λαμβάνει το μήνυμα.

tell: ο s θέλει να κάνει τον r να πιστέψει (ότι ο s πιστεύει) ότι η πρόταση του μηνύματος είναι αληθής untell: ο s θέλει να κάνει τον r να μην πιστέψει (ότι ο s πιστεύει) ότι η πρόταση του μηνύματος είναι αληθής achieve: o s ζητά από τον r να προσπαθήσει να επιτύχει μία κατάσταση του κόσμου όπου η πρόταση του μηνύματος είναι αληθής unachieve: o s ζητά από τον r να προσπαθήσει να παρατήσει την πρόθεση να επιτύχει μία κατάσταση του κόσμου όπου η πρόταση του μηνύματος είναι αληθής tellhow: o s ενημερώνει τον r για ένα πλάνο untellhow: o s ζητά από τον r να αφαιρέσει ένα πλάνο από τη βιβλιοθήκη πλάνων του askif: ο s θέλει να μάθει αν η πρόταση του μηνύματος είναι αληθής για τον r askall: ο s θέλει όλες τις απαντήσεις του r για μία ερώτηση askhow: ο s θέλει όλα τα πλάνα του r για ένα συγκεκριμένο triggering event Στην ακόλουθη εικόνα φαίνεται ο κύκλος εκτέλεσης του Jason:

Ο κύκλος εκτέλεσης περιλαμβάνει τα εξής βήματα: 1. Αρχικοποίηση: των πεποιθήσεων, των στόχων αλλά και των σχεδίων. Το σύνολο των προθέσεων (intentions) είναι ακόμη άδειο. 2. Παρατήρηση του περιβάλλοντος: απαραίτητη για την ενημέρωση των πεποιθήσεων σύμφωνα με την τρέχουσα κατάσταση του περιβάλλοντος. 3. Ενημέρωση της βάσης των πεποιθήσεων (belief base) 4. Λήψη επικοινωνίας από άλλους πράκτορες 5. Επιλογή των «κοινωνικώς αποδεκτών» μηνυμάτων 6. Επιλογή ενός γεγονότος: οι πράκτορες λειτουργούν χειριζόμενοι γεγονότα. Ένα γεγονός αντιμετωπίζεται σε κάθε κύκλο. Εξ ορισμού ακολουθείται η FIFO τακτική. 7. Ανάκτηση όλων των σχετικών πλάνων (ανάλογα με τα triggering events) 8. Καθορισμός των εφαρμόσιμων πλάνων (ανάλογα με τις συνθήκες) 9. Επιλογή ενός εφαρμόσιμου πλάνου: ο πράκτορας επιλέγει ένα πλάνο το οποίο δεσμεύεται να ακολουθήσει. Οι ενέργειες που ανταποκρίνονται σε επιλεγμένα πλάνα προστίθενται στις προθέσεις (intentions) του πράκτορα. 10. Επιλογή μιας πρόθεσης για περαιτέρω εκτέλεση 11. Εκτέλεση ενός βήματος μιας πρόθεσης 12. Τελικό στάδιο πριν την επανάληψη του κύκλου: αφαιρούνται ολοκληρωμένα πλάνα και προθέσεις από τα αντίστοιχα σύνολα.