Ευφυείς Πράκτορες Εργασίες για το ακαδημαϊκό έτος 2011-2012 1. Maze escape (2 ατόμων) Ένα ρομπότ βρίσκεται σε ένα λαβύρινθο και προσπαθεί να αποδράσει. Δεν έχει καμία γνώση για το που βρίσκεται μέσα στο λαβύρινθο ούτε μπορεί να κάνει κάποιου είδους εκτίμηση. Στόχος της εργασίας είναι να υλοποιηθεί ένας λαβύρινθος και η προσπάθεια του πράκτορα να δραπετεύσει από αυτόν. Για την υλοποίηση θα χρησιμοποιηθεί η πλατφόρμα Jason (είτε Jade). Θα πρέπει να υλοποιηθούν και να συγκριθούν δυο αλγόριθμοι επίλυσης (maze solving algorithms). Algorithm Solutions Guarantee? Focus Human Doable? Passage Free? Memory Free? Fast? Random Mouse 1 no You Inside / Above no Yes no Wall Follower 1 no You Inside / Above Yes Yes Yes Pledge Algorithm 1 no You Inside / Above Yes Yes Yes Chain Algorithm 1 Yes You + no Yes no Yes Recursive Backtracker 1 Yes You no Yes no Yes Trémaux's Algorithm 1 Yes You Inside / Above no no Yes Dead End Filler All + no Maze Above no Yes Yes Cul-de-sac Filler All + no Maze Above no Yes Yes Blind Alley Sealer All + Yes Maze no no no Yes Blind Alley Filler All Yes Maze Above no Yes no Collision Solver All Shortest Yes You + no no no Yes Shortest Paths Finder All Shortest Yes You + no Yes no Yes Shortest Path Finder 1 Shortest Yes You + no Yes no Yes Η εργασία θα μπορούσε να επεκταθεί σε 3 ή 4 ατόμων με την προϋπόθεση ο λαβύρινθος να δημιουργηθεί με την χρήση αλγορίθμων δημιουργίας λαβυρίνθων (maze generation algorithms). Algorithm Dead End % Type Focus Bias Free? Memory Time Solution % Unicursal 0 Tree Wall Yes N^2 261 100.0 Recursive Backtracker 10 Tree Passage Yes N^2 24 19.0 Hunt and Kill 11 (21) Tree Passage no 0 55 (105) 9.5 (3.9) Recursive Division 23 Tree Wall Yes N 8 7.2 Binary Tree 25 Set Either no 0* 7 2.0 Sidewinder 27 Set Either no 0* 8 2.6 Eller's Algorithm 28 Set Either no N* 10 4.2 (3.2) Wilson's Algorithm 29 Tree Either Yes N^2 51 (26) 4.5 Aldous-Broder Algorithm 29 Tree Either Yes 0 222 (160) 4.5
Algorithm Dead End % Type Focus Bias Free? Memory Time Solution % Kruskal's Algorithm 30 Set Either Yes N^2 32 4.1 Prim's Algorithm 36 (31) Tree Either Yes N^2 21 2.3 Growing Tree 49 (39) Tree Either Yes N^2 43 11.0 2. Auctions (2 ή 4 ατόμων) Στόχος της εργασίας είναι η υλοποίηση των δημοφιλέστερων πρωτοκόλλων δημοπρασίας και η μεταξύ τους σύγκριση. Η υλοποίηση θα γίνει σε μια από τις πλατφόρμες Jason/JADE. Πρέπει να υλοποιηθεί ένα σύστημα δημοπρασιών με τρεις συμμετέχοντες: έναν Auctioneer και δύο Bidders. Τα πρωτόκολλα είναι τα εξής: (εργασία δύο ατόμων θα επιλέξει μόνο τρία από αυτά) 1. English. Η αγγλική δημοπρασία είναι η πιο γνωστή. Σε αυτή κάθε bidder επιτρέπεται να τοποθετήσει μια προσφορά υψηλότερη από την τρέχουσα υψηλότερη προσφορά (current highest bid). Εάν κανείς δεν θέλει να τοποθετήσει υψηλότερη προσφορά τότε όποιος έχει την υψηλότερη μέχρι τότε προσφορά, κερδίζει και πληρώνει το ποσό. Η αρχική τιμή του αντικειμένου ορίζεται στην αρχή της δημοπρασίας. 2. Dutch. Αυτή η δημοπρασία έχει την ακριβώς αντίθετη φιλοσοφία από την αγγλική. Η αρχική τιμή ορίζεται πολύ υψηλά και σταδιακά μειώνεται από τον auctioneer. Οποιαδήποτε στιγμή, οποιοσδήποτε ενδιαφερόμενος μπορεί να διεκδικήσει το αντικείμενο, κερδίζοντας το και πληρώντας την τρέχουσα τιμή. 3. Japanese. Σε αυτή την δημοπρασία, η αρχική τιμή είναι μηδενική και αυξάνεται σταδιακά από τον δημοπράτη (auctioneer). Οποιοσδήποτε bidder θεωρήσει ότι η τιμή είναι πολύ υψηλή για αυτόν αποχωρεί. Όταν μείνει μόνο ένας ενδιαφερόμενος, κερδίζει την δημοπρασία και πληρώνει την τιμή που είχε το αντικείμενο την στιγμή που έφυγε ο προηγούμενος ενδιαφερόμενος. 4. First-price sealed-bid. Σε αυτή κάθε bidder επικοινωνεί ιδιωτικά με τον δημοπράτη (auctioneer), δίνοντας του την προσφορά του. Ο auctioneer συγκεντρώνει όλες τις προσφορές και επιλέγει την υψηλότερη. 5. Second-price sealed-bid (also known as Vickrey). Η διαδικασία είναι ίδια με την προηγούμενη με την διαφορά ότι παρόλο που κερδίζει αυτός με την υψηλότερη προσφορά (όπως και στην προηγούμενο), πληρώνει την τιμή που είχε η δεύτερη υψηλότερη προσφορά. 3. Connect Four (2 ατόμων) (εναλλακτικά μπορεί να υλοποιηθεί από έναν, με τους παίκτες να μειώνονται σε δυο) To Connect Four είναι ένα κλασικό παιχνίδι στρατηγικής, με απλούς κανόνες. Κάθε παίκτης προσπαθεί να χτίσει μια σειρά τεσσάρων με τα πούλια του οριζόντια, κάθετα ή διαγώνια, (όπως φαίνεται στην εικόνα) ενώ ταυτόχρονα προσπαθεί να εμποδίσει τον αντίπαλο του. Στόχος της εργασίας είναι να υλοποιηθεί το παιχνίδι στην πλατφόρμα Jadex (εναλλακτικά Jason) και να βρεθεί η στατιστικά καλύτερη στρατηγική. Για το σκοπό αυτό θα πρέπει να δημιουργηθούν τουλάχιστον 4 παίκτες (με αντίστοιχες
στρατηγικές) οι οποίοι θα παίζουν τυχαία ανά δύο σε κάθε κύκλο της προσομοίωσης. Στατιστικά στοιχεία για κάθε παιχνίδι θα κρατούνται (όπως πχ ποιος νίκησε, πόσα βήματα χρειάστηκαν κλπ) ώστε στο τέλος να συγκριθούν οι υλοποιημένες στρατηγικές. Κανόνες του παιχνιδιού: 1. Επέλεξε ποιος θα παίξει πρώτος. 2. Κάθε παίκτης όταν έρθει η σειρά του ρίχνει ένα από τα πούλια του σε οποιαδήποτε από τις ελεύθερες υποδοχές, από την κορυφή του πλέγματος. 3. Το παιχνίδι συνεχίζεται μέχρι να κάποιος παίκτης να χτίσει μια σειρά τεσσάρων με τα πούλια του, οριζόντια, κάθετα ή διαγώνια. 4. Ο παίκτης που θα το επιτύχει πρώτος κερδίζει. 5. Εάν το πλέγμα γεμίσει με πούλια και κανείς από τους παίκτες δεν έχει επιτύχει το παιχνίδι θεωρείται ισόπαλο. 4. Treasure Hunt (2 ατόμων) Το κυνήγι του θησαυρού είναι ένα κλασικό παιχνίδι με πολλές παραλλαγές. Στόχος της εργασίας είναι να υλοποιηθεί το παιχνίδι αυτό στην πλατφόρμα Jason (εναλλακτικά Jadex/JADE), σύμφωνα με τις προδιαγραφές που ορίζονται παρακάτω: Θα διαγωνιστούν μια ομάδα πρακτόρων, μπορείτε να επιλέξετε τον αριθμό των πρακτόρων της ομάδας. Πρέπει να δημιουργηθεί ένα σενάριο, όπου ο χάρτης περιέχει ένα X που προσδιορίζει το σημείο του θησαυρού. Γενικά, μπορούν να υπάρχουν κάποια «ορόσημα» στο χάρτη αλλά καθόλου στοιχεία, υποδείξεις ή σημεία αναφοράς (σημεία που πρέπει να πας), εκτός από το σημείο του θησαυρού φυσικά. Η διαδρομή προς το θησαυρό θα πρέπει να περιέχει κάποια εμπόδια, τα όποια πρέπει να αποφεύγουν (πχ δεν θα μπορούν να περάσουν από ένα σημείο που αναπαριστά μια λίμνη αλλά θα πρέπει να παρακάμψουν). Οι ομάδες θα ξεκινούν είτε από το ίδιο σημείο είτε από διαφορετικά και θα πρέπει να αξιολογούν τα στοιχεία που θα εντοπίζουν, να
Ο κόσμος δεν είναι γνωστός αλλά θα πρέπει να εξερευνηθεί. Να σημειωθεί ότι κάθε πράκτορας θα μπορεί να βλέπει σε μια μικρή λογική ακτίνα. Ωστόσο επιτρέπεται να αποθηκεύει την γνώση που αποκτά κατά την εξερεύνηση. Στόχος της ομάδας είναι να εντοπίσει το θησαυρό. Ο χρόνος εκτέλεσης του παιχνιδιού θα είναι διακριτός. Σε κάθε χρονική στιγμή κάθε πράκτορας θα μπορεί να εκτελεί μια ενέργεια. Πρέπει να παρουσιάζονται στατιστικά στοιχεία για το παιχνίδι, όπως πόσο χρόνο χρειάστηκε η ομάδα για να εντοπίσει το θησαυρό. 5. Traffic & Light Control (2 ατόμων) Στην εργασία αυτή θα προσομοιωθεί, σε μια από τις πλατφόρμες Jason/Jadex/JADE, μια πρότυπη πόλη όπου θα υπάρχει ένα κέντρο ελέγχου (μπορείτε να επιλέξετε να αντιπροσωπεύεται από έναν πράκτορα ή περισσότερους) το οποίο θα ελέγχει την κίνηση στην πόλη και θα μπορεί να ενεργεί κατάλληλα ώστε να διευκολύνει πχ την μετακίνηση των πολιτών προς το νοσοκομείο. Το κέντρο ελέγχου θα είναι σε θέση να μεταβάλλει την κατάσταση στους φωτεινούς σηματοδότες της πόλης. Οι προδιαγραφές της υλοποίησης ορίζονται παρακάτω: Ο κόσμος του σεναρίου είναι ένα πλέγμα (grid), το οποίο θα αναπαριστά την πόλη, δηλαδή το οδικό δίκτυο και τους φωτεινούς σηματοδότες, τα κοινόχρηστα κτίρια (πχ νοσοκομεία, πυροσβεστική), κλπ. Θα πρέπει να υλοποιηθούν μονάδες, όπως ασθενοφόρα, περιπολικά, πυροσβεστικά οχήματα, τα οποία και θα έχουν προτεραιότητα έναντι των υπολοίπων οχημάτων που κινούνται στην πόλη. Το κέντρο ελέγχου θα πρέπει να είναι σε θέση να δέχεται αιτήματα από πολίτες που κινούνται στον δρόμο και κατευθύνονται προς το νοσοκομείο και να τους διευκολύνει ελέγχοντας κατάλληλα τους φωτεινούς σηματοδότες. Ο χρόνος θα είναι ορισμένος σε διακριτά βήματα. Κάθε μονάδα που κινείται θα πρέπει να έχει μια «βαρύτητα» ανάλογα με την κατάσταση της. Θα πρέπει να εξυπηρετούνται κατά προτεραιότητα μονάδες με μεγαλύτερη βαρύτητα. Κατά την διάρκεια της προσομοίωσης θα πρέπει να προκύπτουν καταστάσεις, όπως κάποια διάρρηξη με αποτέλεσμα να πρέπει να κατευθυνθεί στο σημείο κάποιο αστυνομικό όχημα στο σημείο, πυρκαγιές κλπ. Στην προσομοίωση θα συμβαίνουν διάφορες τέτοιες καταστάσεις και θα πρέπει το κέντρο να τις ελέγχει όλες και να ενεργεί κατάλληλα ώστε να η κίνηση στην πόλη να είναι βέλτιστη και η αντιμετώπιση των περιπτώσεων (πχ η άφιξη ενός πυροσβεστικού οχήματος σε ένα φλεγόμενο κτίριο) ταχύτερη. Στατιστικά στοιχεία που θα παρουσιάζουν όλα τα παραπάνω, δηλαδή κινούμενα οχήματα, χρόνος άφιξης στον προορισμό κλπ θα πρέπει να υλοποιηθούν.
6. Real estate (2 ή 3 ατόμων) Στα πλαίσια της εργασίας αυτής θα υλοποιηθεί στην πλατφόρμα Jason ένα σενάριο από το χώρο των ακινήτων. Τρεις είναι οι τύποι των πρακτόρων που απαιτούνται, ο μεσίτης που έχει στην διάθεση του μια βάση με όλα τα διαθέσιμα προς ενοικίαση σπίτια, οι ιδιοκτήτες και οι πιθανοί ενοικιαστές. Στόχος του σεναρίου είναι αρχικά κάθε πιθανός ενοικιαστής να ζητά από τον μεσίτη να του προτείνει σπίτια με βάση τις ιδιαίτερες απαιτήσεις του. Κατόπιν, εφόσον ελέγξει τα προτεινόμενα σπίτια θα επιλέγει αυτό που θεωρεί καταλληλότερο για αυτόν. Στην συνέχεια εφόσον, το σπίτι είναι άμεσα διαθέσιμο θα μπορεί να το ενοικιάσει ενώ εάν υπάρχει ενδιαφέρον και από κάποιον άλλο θα πρέπει να προχωρήσει σε διαπραγμάτευση ώστε να κερδίσει το σπίτι. Επομένως, αρχικά θα εκτελείται μια διαδικασία μεσιτείας και στην συνέχεια μια διαπραγμάτευση. Οι προδιαγραφές της προσομοίωσης είναι οι ακόλουθες: Θα υπάρχει μόνο ένας μεσίτης, η προτεινόμενη βάση σπιτιών (μπορεί να εμπλουτιστεί) που κατέχει είναι η ακόλουθη: Διεύθυνση Υπνοδωμάτια πόλης στήρας κίδια Κήπου Κέντρο Ανελκυ- Κατοι- Εμβαδόν Εμβαδόν Όροφος Ενοίκιο Βασιλέως Γεωργίου 35 1 50 ναι 1 όχι ναι 0 300 Αγγελάκη 7 2 45 ναι 0 όχι ναι 0 335 Κηφισίας 10 2 65 όχι 2 όχι ναι 0 350 Πλαστήρα 72 2 55 όχι 1 ναι όχι 15 330 Τσιμισκή 97 3 55 ναι 0 όχι ναι 15 350 Πολυτεχνείου 19 2 60 ναι 3 όχι όχι 0 370 Ερμού 22 3 65 ναι 1 όχι ναι 12 375 Ο μεσίτης δεν θα πρέπει να αποκαλύπτει την βάση με τα σπίτια που διαθέτει. Επιπλέον, ο μεσίτης θα πρέπει να μπορεί να κατονομάσει τον ιδιοκτήτη κάθε σπιτιού. Θα πρέπει να υπάρχει ένας ιδιοκτήτης για κάθε σπίτι. Θα πρέπει να υπάρχουν τουλάχιστον δυο πιθανοί ενοικιαστές. Οι προτιμήσεις κάθε πιθανού ενοικιαστή θα είναι ιδιωτικές. Στον μεσίτη θα αποκαλύπτει μόνο τα απαραίτητα στοιχεία, τις απαιτήσεις του δηλαδή, όπως πχ πόσα υπνοδωμάτια επιθυμεί αλλά δεν θα τον ενημερώνει ποιο σπίτι προτιμά, όπως πχ ότι προτιμά το φθηνότερο έναντι του μεγαλύτερου σε εμβαδόν, από τα όποια κατάλληλα σπίτια προκύψουν από την αναζήτηση του μεσίτη στη βάση του. Θα πρέπει τουλάχιστον σε μία περίπτωση να προκύπτει παράλληλο ενδιαφέρον δυο πιθανών ενοικιαστών για ένα σπίτι. Στην περίπτωση αυτή θα πρέπει να γίνει διαπραγμάτευση των πιθανών ενοικιαστών με τον ιδιοκτήτη. Μια συντόμευση της διαδικασίας είναι η εξής: o Ο πιθανός ενοικιαστής (Α) παρέχει στον μεσίτη μια λίστα με τις απαιτήσεις του και του ζητά να τον ενημερώσει για τυχόν κατάλληλα διαθέσιμα σπίτια. o Ο μεσίτης ελέγχει την βάση του και απαντάει. o Ο Α ελέγχει την απάντηση και διαλέγει το καταλληλότερο με βάση τις προτιμήσεις του. Κατόπιν, ενημερώνει τον μεσίτη.
o Ο μεσίτης ελέγχει εάν υπάρχει ενδιαφέρον και από άλλον. Εάν όχι ενημερώνει τον Α και προχωρά στην ενοικίαση παίρνοντας το νόμιμο ποσοστό του. Εάν ναι ενημερώνει τον Α (αποστέλλοντας και τα στοιχεία του ιδιοκτήτη) και παρακολουθεί την διαπραγμάτευση του κάθε ενδιαφερόμενου με την ιδιοκτήτη. Εφόσον, προκύψει συμφωνία προχωρά στην ενοικίαση λαμβάνοντας το νόμιμο ποσοστό του. Σημείωση: Για το παράδειγμα μεσιτείας μπορείτε να χρησιμοποιήσετε το αντίστοιχο παράδειγμα (Carlo) από το βιβλίο: Antoniou G., Harmelen F.: A Semantic Web Primer. MIT Press, όμως στην παρούσα εργασία η υλοποίηση θα γίνει αποκλειστικά σε JAVA (οτιδήποτε απαιτείται θα υλοποιείται στο σώμα του αντίστοιχου πράκτορα). Ιδέες για τις στρατηγικές των πρακτόρων κατά την διαπραγμάτευση μπορείτε να δείτε στην εργασία: simple constrained bargaining game (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.5.9828&rep=rep1&type=pdf). Αλλά και στην εργασία http://lpis.csd.auth.gr/publications/iat2009-kravari_et_al.pdf. 7. Διαχείριση εφοδιαστικής αλυσίδας μέσω Ευφυών Πρακτόρων (2-4 ατόμων) Η διαχείριση της εφοδιαστικής αλυσίδας ασχολείται με τον προγραμματισμό και τον συντονισμό των δραστηριοτήτων σε όλη την εφοδιαστική αλυσίδα, από την προμήθεια πρώτων υλών μέχρι την παράδοση προϊόντων. Στη σημερινή παγκόσμια οικονομία, η αποτελεσματική διαχείριση της εφοδιαστικής αλυσίδας είναι ζωτικής σημασίας για την ανταγωνιστικότητα των επιχειρήσεων μεταποίησης. Επιπλέον τεχνολογικά, η πρόοδος της έρευνας στον τομέα των ευφυών πρακτόρων τους έχει καταστήσει ως μια από τις πλέον υποσχόμενες τεχνολογίες για την υλοποίηση πολύπλοκων συστημάτων με πολλά αλληλεπιδρώντα μέρη. Στόχος της εργασίας είναι η μελέτη του προβλήματος της διαχείρισης της εφοδιαστικής αλυσίδας και η υλοποίηση ενός σεναρίου προμήθειας όπου οι συμμετέχοντες πράκτορες θα πρέπει να εξισορροπήσουν τους στόχους τους ώστε αφενός να μεγιστοποιούν το κέρδους τους και αφετέρου να καλύπτουν τις απαιτήσεις των πελατών τους. Οι προδιαγραφές του σεναρίου θα υιοθετηθούν από τον διαγωνισμό TAC-SCM Procurement Challenge (SCM-PC): http://cmieux.isr.cs.cmu.edu/scm_pc/. Το SCM-PC αποτελεί τμήμα του TAC SCM Game που διοργανώνεται κάθε χρόνο από το Trading Agent Competition (TAC - http://www.sics.se/tac/page.php?id=13), ένα διεθνές φόρουμ με στόχο την προώθηση της έρευνας για το πρόβλημα των συναλλαγών μεταξύ των πρακτόρων. Το εύρος των απαιτήσεων της εργασίας εξαρτάται από το μέγεθος και τις ικανότητες της ομάδας που θα την αναλάβουν. Ενδέχεται να οδηγήσει (σε βαθμό που η ομάδα το επιθυμεί) σε μελλοντική συμμετοχή στον διαγωνισμό. Κάποια από τα μέλη της ομάδας μπορεί να συνεχίσουν την εργασία και σε επίπεδο διπλωματικής εργασίας. Η γλώσσα υλοποίησης είναι η Java.
8. Υλοποίηση καθαρά αντιδραστικών πρακτόρων σε Netlogo (1 ατόμου) Οι εργασίες 1 4 και 5 μπορούν να υλοποιηθούν (σε μικρότερη έκταση) στο σύστημα αντιδραστικών πρακτόρων Netlogo. Περισσότερα για τη γλώσσα αυτή στη διεύθυνση: http://ccl.northwestern.edu/netlogo/