ΕΜΠ - ΣΗΜΜΥ
Εργαστήριο Λογικής και Επιστήμης Υπολογιστών

Ομάδα Μελέτης Πολυπρακτορικών Συστημάτων

Ένας πράκτορας (agent) ας πούμε * ότι είναι μία μονάδα λογισμικού # , η οποία υπάρχει σε ένα περιβάλλον το οποίο το γνωρίζει μερικώς, το αντιλαμβάνεται μερικώς μέσω “αισθητήρων”, και σε γενικές γραμμές έχει στόχους, προθέσεις και πεποιθήσεις (beliefs, intentions, desires). Ο πράκτορας αλληλεπιδρά με το περιβάλλον του με στόχο να επιτύχει τους στόχους του. Στο περιβάλλον υπάρχουν και άλλοι πράκτορες που αλληλεπιδρούν μεταξύ τους. Σε αυτή την περίπτωση έχουμε ένα πολυπρακτορικό σύστημα (multiagent system). Με άλλα λόγια μπορούμε να ορίσουμε αδαώς, ότι πολυπρακτορικό σύστημα είναι ένα σύστημα από αυτόνομες οντότητες, οι οποίες αλληλεπιδρούν και είτε έχουν αποκλίνουσες πληροφορίες, είτε αποκλίνουσες προθέσεις-ενδιαφέροντα, είτε και τα δύο.

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

Η συνάφεια μεταξύ Πολυπρακτορικών Συστημάτων και Αλγοριθμικής Θεωρίας Παιγνίων είναι παραπάνω από πρόδηλη, άλλωστε πλέον οποιοδήποτε βιβλίο Πολυπρακτορικών Συστημάτων έχει και θεωρία παιγνίων μέσα. Τα δύο αντικείμενα πιστεύουμε ότι είναι συμπληρωματικά και τα Πολυπρακτορικά Συστήματα μπορούν πολλές φορές να “πιάσουν” καλύτερα αποκλίνουσες συμπεριφορές και αποκλίνοντα επίπεδα πληροφόρησης. Το γεγονός ότι προέρχεται από διαφορετικό μετερίζι (Τεχνητή Νοημοσύνη) και δίνει μία διαφορετική ανάγνωση σε πολλά από τα προβλήματα που μελετάμε, είναι η δύναμή του. Φρονούμε δηλαδή ότι μπορεί να χρησιμοποιηθεί συμπληρωματικά και μπορεί να υποστηρίξει επικουρικά τις τεχνικές που χρησιμοποιούμε και κατά συνέπεια να απογειώσει την έρευνά μας. Μπορούμε είτε να δοκιμάσουμε πράγματα που εικάζουμε ότι δουλεύουν θεωρητικά ή να αποτελέσει πυξίδα για την σκέψη μας.

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

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

Η προτεινόμενη “ύλη” για μελέτη είναι η ακόλουθη:

0. Επανάληψη σε βασικά θέματα Τεχνητής Νοημοσύνης

Στόχος εδώ είναι πολύ γρήγορα να θυμηθούμε (ή να ακούσουμε) για

    • ευρετική (heuristic) αναζήτηση, αλγόριθμος Α*
    • Προβλήματα Ικανοποίησης Περιοσρισμών (Constraint Satisfaction Problems ή CSP) και επεκτάσεις (στο πλαίσιο της ομάδας μελέτης μας ενδιαφέρουν κυρίως τα Κατανεμημένα Προβλήματα Ικανοποίησης Περιορισμών (Distributed CSP ή DCSP))
    • Σχεδιασμός Ενεργειών (Planing)

Για την κάλυψη αυτών των θεμάτων προτείνεται το βιβλίο Τεχνητή Νοημοσύνη των Βλαχάβα, Κεφάλα... Το βιβλίο αυτό υπάρχει στο εργαστήριο και το θεωρούμε απίθανο να μην το έχει η βιβλιοθήκη.

1. Εισαγωγή στα Πολυπρακτορικά Συστήματα

Εδώ μπορούμε να χρησιμοποιήσουμε το υλικό του προαναφερθέν βιβλίο: “Τεχνητή Νοημοσύνη” και πιο συγκεκριμένα τα κεφάλαια 27 ~ 30

2. Το κύριο μέρος της μελέτης μας

Προτείνεται απλά να καλύψουμε (παράλληλα) τα εξής βιβλία

    • Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations, Yoav Shoham, Κevin Leyton-Browm
    • An Introduction to Multiagent Systems, Michael Wooldridge

Το πρώτο δείχνει αρκετά κοντά στα δικά μας (στην φιλοσοφία του εργαστηρίου και των περισσοτέρων). Το δεύτερο δείχνει να είναι ζωτικής σημασίας γιατί στα περιεχόμενά του δείχνει να πραγματεύεται μεθοδολογίες ανάπτυξης Πολυπρακτορικών Συστημάτων (π.χ. Agent UML (ναι υπάρχει)) και το πολύ σημαντικό ζήτημα: “Πότε μία πρακτοροστρεφής λύση είναι κατάλληλη;” (Δεν εφαρμόζουμε μία τεχνική επειδή την ξέρουμε!)

3. Μελέτη κάποιας πλατφόρμας Πολυπρακτορικών Συστημάτων

Προτείνεται να δούμε την πλατφόρμα JADE. H συγκεκριμένη πλατφόρμα επί της ουσίας είναι διαθέσιμη μέσω βιβλιοθηκών σε Java και για να φτιάξει κανείς ένα Πολυπρακτορικό Σύστημα, ουσιαστικά επεκτείνει κατι κλάσεις και πρακτικά γράφει Java προγράμματα. Εδώ αν δούμε ότι χρειάζεται κάνουμε και μία γρήγορη επανάληψη στην Java. Το να δούμε μία έτοιμη πλατφόρμα είναι ολοκλήρωση του στόχου να έχουμε ένα δυνατό εργαλείο στην εργαλειοθήκη μας για να το χρησιμοποιήσουμε στην έρευνά μας. Καλό θα ήταν βέβαια πριν πάρουμε απόφαση να ασχοληθούμε με την συγκεκριμένη πλατφόρμα να δούμε μήπως υπάρχει κάτι καλύτερο. Μπορεί, ας πούμε το JADE άμα σηκώσεις 30 πράκτορες να κολλάει...

Αγγελική
Αντρέας
Σωτήρης


* αυτό δεν αποτελεί ορισμό, παρά μία χαλαρή περιγραφή
# για εμάς αυτό, ότι και να μοντελάρει, ως προσωμοίωση, μία μονάδα λογισμικού θα είναι
† το Ακέραιο Γραμμικό Πρόγραμμα (Inrteger Programming) είναι ένα CSP με ακέραιους περιορισμούς εφοδιασμένο με γραμμική συνάρτηση βελτιστοποίησης. Στην βιβλιογραφία λέμε Constraint Optimization Problem (COP) ένα CSP με συνάρτηση βελτιστοποίησης