1 Εργασίες στην πόλη

(1-4 άτομα)

 

Περιγραφή

 

Μία ομάδα ευφυών εικονικών πρακτόρων κινούνται σε μία εικονική πόλη προσπαθώντας να βρεθούν στα κατάλληλα σημεία προκειμένου να εκτελέσουν συγκεκριμένα πλάνα ενεργειών.

 

Ανάλυση

 

Ο εικονικός κόσμος είναι επίπεδος και αποτελείται από wx hτετράγωνες θέσεις.

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

Στην πόλη υπάρχουν “σημαντικά” κτίρια (π.χ., τράπεζα, ταχυδρομείο, αγορά, κ.τ.λ.), σπίτια πρακτόρων και άλλα “ασήμαντα” κτίρια χωρίς ιδιαίτερη ταυτότητα αλλά με καθαρά “πολεοδομική” σημασία.

Σε κάθε χρονική στιγμή, σε κάθε θέση μπορεί να υπάρχει (α) ένα τμήμα τοίχου συγκεκριμένου κτιρίου, ή (β) τίποτα (κενός χώρος).

Οι πράκτορες έχουν τη δυνατότητα μετακίνησης μόνο γύρω από τα κτίρια και όχι στο εσωτερικό τους.

Το πλάνο του κάθε πράκτορα αποτελείται από ενέργειες μετακίνησης σε συγκεκριμένα κτίρια με συγκεκριμένη σειρά (π.χ. ταχυδρομείο, αγορά, τράπεζα).

Η ομάδααποτελείται από έναν έως nπράκτορες.

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

Όλοι οι πράκτορες έχουν δύο ικανότητες:

1. Μετακίνηση σε γειτονική θέση

2. Ανταλλαγή γνώσης με πράκτορες σε γειτονικές θέσεις

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

 

Εκτέλεση

 

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

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

Όταν κάποιος πράκτοραςαποκτήσει γνώση σχετικά με τη θέση του πρώτου κτιρίου στο πλάνο του σταματάει να το αναζητά και κινείται προσπαθώντας να φτάσει σε αυτό.

Όταν ένας πράκτορας μετακινηθεί σε θέση στην οποία βρίσκεται τμήμα τοίχου συγκεκριμένου κτιρίου θεωρείται πως έχει επικεφθεί το κτίριο αυτό.

 

Όταν ένας πράκτορας επισκεφθεί το πρώτο κτίριο στο πλάνο του το διαγράφει από αυτό.

Όταν το πλάνο ενός πράκτορα είναι κενό, ο πράκτορας προσπαθεί να επισκεφθεί το σπίτι του.

Η εκτέλεση ολοκληρώνεται μόλις ένας πράκτορας επισκεφθεί το σπίτι του έχοντας πρώτα επισκεφθεί όλα τα κτίρια σε ένα μη κενό πλάνο με τη σωστή σειρά.

 

Προδιαγραφές

 

Ο εικονικός κόσμος θα περιγράφεται σε αρχείο κειμένου στον οποίο τα τμήματα τοίχων ασήμαντων κτιρίων θα σημειώνονται με “*”, τα τμήματα τοίχων σημαντικών κτιρίων με ένα χαρακτήρα που θα προσδιορίζει μοναδικά το καθένα (π.χ., “T” για “Ταχυδρομείο”, κ.τ.λ.), τα τμήματα τοίχων σπιτιών πρακτόρων με τα ψηφία “0”, “1”, ..., “9” και οι κενές θέσεις με κενό.

Τα πλάνα των πρακτόρων θα ορίζονται σε άλλο αρχείο κειμένου με κατάλληλη δομή (π.χ., “BEGINPLAN αριθμός πράκτορα n  κτίριο 1... κτίριο m ENDPLAN”

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

Η διεπαφή της εφαρμογής θα είναι παραθυρική.

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

Η διεπαφή της εφαρμογής θαπαρέχει κατάλληλα μέσα για την επιλογή (και αποεπιλογή) ενός πράκτορα (π.χ., επιλογή πράκτορα μέσω πλήκτρων με ετικέτες “0”, “1”, ..., “9”), την οπτική απεικόνιση των μερών της πόλης για τα οποία ο επιλεγμένος πράκτορας έχει γνώση (π.χ.,  μέσω σκίασης περιοχών της κάτοψης ή τμηματικής απεικόνισής της), καθώς και την παρακολούθηση του πλάνου του.

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

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

 

Τεκμηρίωση

 

Η τεκμηρίωση της εφαρμογής θα περιλαμβάνει τα εξής:

 

1. Περιγραφή του προβλήματος

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

3. Περιγραφή σημαντικών σχεδιαστικών αποφάσεων και στοιχείων υλοποίησης

 

4. Ολοκληρωμένη περιγραφή μίας παραδειγματικής εκτέλεσης και των αποτελεσμάτων της

5. Αναλυτική περιγραφή της διαδικασίας εγκατάστασης

6. Περιγραφή πρόσθετων δυνατοτήτων της εφαρμογής, εάν υπάρχουν

7. Αναλυτική περιγραφή της συμβολής του κάθε μέλους της ομάδας

8. Αναλυτική περιγραφή ανοικτών θεμάτων, ανεπίλυτων προβλημάτων και πιθανοτήτων εμφάνισης σφαλμάτων κατά την εκτέλεση

 

Είναι σημαντικό να υπάρχουν αναλυτικά και επεξηγημένα screenshots από την εκτέλεση της εφαρμογής.

 

Παραδοτέα

 

1. Η εφαρμογή σε εκτελέσιμη μορφή (π.χ. άν είναι σε Unity πρέπει να έχει γίνει build)

2. Πηγαίος κώδικας για το σύνολο της εφαρμογής

3. Τεκμηρίωση

4. Τουλάχιστον ένα παράδειγμα το οποίο θα συνοδεύεται από αντίστοιχο αρχείο στατιστικών

 

ΣΗΜΕΙΩΣΗ :

Η επιλογή γλωσσών και πλατφόρμας υλοποποίησης είναι ελεύθερη.

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