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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Περιβάλλον Προσομοίωσης Ασύρματης Μετάδοσης Πληροφορίας σε Κινούμενο Στόλο Οχημάτων με Χρήση Τεχνικών Ευφυών Πρακτόρων και Τεχνολογιών του Σημασιολογικού Ιστού Διπλωματική Εργασία της Μαρίας Ζιώγκου (ΑΕΜ: 140) Επιβλέπων Καθηγητής: Νικόλαος Βασιλειάδης Θεσσαλονίκη

2 Σ τ ο ν Ψ ω μ ό π ο υ λ ο Φ ώ τ η κ α ι σ τ ο υ ς γ ο ν ε ί ς μ ο υ Εις τους γονείς μου οφείλω το ζην και στους δασκάλους μου το ευ ζην Μ. Αλέξανδρος 2

3 Πρόλογος H διπλωματική εργασία με τίτλο «Περιβάλλον Προσομοίωσης Ασύρματης Μετάδοσης Πληροφορίας σε Κινούμενο Στόλο Οχημάτων με Χρήση Τεχνικών Ευφυών Πρακτόρων και Τεχνολογιών του Σημασιολογικού Ιστού» πραγματοποιήθηκε κατά τη διάρκεια του ακαδημαϊκού έτους στο τμήμα Πληροφορικής του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης στα πλαίσια του μεταπτυχιακού του προγράμματος και συγκεκριμένα στην κατεύθυνση «Πληροφοριακά Συστήματα», υπό την επίβλεψη του καθηγητή κ. Νικόλαου Βασιλειάδη. Στο σημείο αυτό, θα ήθελα να ευχαριστήσω ιδιαίτερα τον επιβλέποντα της παρούσας διπλωματικής εργασίας, κ. Νικόλαο Βασιλειάδη καθώς και τον Ευστράτιο Κοντόπουλο υποψήφιο διδάκτορα του τμήματος Πληροφορικής, οι οποίοι με τη συνεχή παιδαγωγική καθοδήγησή τους, τις ουσιώδεις υποδείξεις τους, τις λυσιτελείς διορθώσεις τους και τις γεμάτες ανθρωπισμό παρεμβάσεις τους, διευκόλυναν την εκπόνηση της διπλωματικής μου εργασίας. Τέλος, θα ήθελα να ευχαριστήσω τόσο την οικογένειά μου όσο και τους φίλους μου, για τη στήριξη και την υπομονή που επέδειξαν, κατά τη διάρκεια εκπόνησης της εργασίας. 3

4 Περιεχόμενα ΠΡΟΛΟΓΟΣ...3 ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ Σημασιολογικός Ιστός (Semantic Web) Κωδικοποίηση και Διευθυνσιοδότηση Εγγράφων Γλώσσα XML Οντολογίες RDF (Resource Description Framework) Λογική, Αποδείξεις, και Αξιοπιστία (Logic, Proof, and Trust) Πράκτορες Από τον Πράκτορα στον Ευφυή πράκτορα Παραδείγματα πρακτόρων Ορισμός Ευφυών Πρακτόρων Χαρακτηριστικά Ευφυών Πρακτόρων Αρχιτεκτονικές Ευφυών Πρακτόρων Ορθολογικοί Πράκτορες (Rational Agents) Αντιδραστικοί Πράκτορες (Reactive Agents) Η Aρχιτεκτονική DBI ΠΕΡΙΓΡΑΦΗ ΘΕΜΑΤΟΣ Αυτόνομοι Ευφυείς Πράκτορες Λογισμικού Ο Πράκτορας Αυτοκίνητο Ο Πράκτορας Εμπόδιο Ο Πράκτορας Κεραία Ο Πράκτορας Όνομα Υπόλοιποι Πράκτορες της Προσομοίωσης

5 3.2 Μεταδιδόμενες Πληροφορίες Οντολογία Εμποδίων ΑΝΆΛΥΣΗ ΕΡΓΑΛΕΊΩΝ Γενική περιγραφή του AgentSheets Ιστορική Αναδρομή του AgentSheets Απαιτήσεις του AgentSheets Χαρακτηριστικά του AgentSheets Δομικά στοιχεία του AgentSheets Κατασκευή συμπεριφοράς πρακτόρων Δημιουργία Applet Ανάπτυξη Plugin Ορισμός Δράσεων Ορισμός Συνθηκών Mεταγλώτισση Plugins Χρήση των Plugins Εξαρτήσεις Βιβλιοθήκης Παρουσίαση Παραδείγματος Γενική περιγραφή της Jena Ενδεικτικό Παράδειγμα ΥΛΟΠΟΊΗΣΗ ΠΡΟΣΟΜΟΊΩΣΗΣ Οντολογία Εμποδίων Δημιουργία Περιβάλλοντος Προσομοίωσης Ανάπτυξη του έργου Traffic_problem ΕΚΤΈΛΕΣΗ ΠΡΟΣΟΜΟΊΩΣΗΣ Εκτέλεση προσομοίωσης Μελέτη Προσομοίωσης η Περίπτωση-Δρόμοι χωρίς εμπόδια η Περίπτωση-Δρόμοι με εμπόδια η Περίπτωση-Δρόμοι με εμπόδια και κεραίες Σύγκριση αποτελεσμάτων

6 7 ΕΠΙΛΟΓΟΣ Σύνοψη και Συμπεράσματα Δυσκολίες εκπόνησης Διπλωματικής Μελλοντικές Επεκτάσεις ΒΙΒΛΙΟΓΡΑΦΊΑ ΠΑΡΑΡΤΗΜΑ Οντολογία Εμποδίων Εξωτερικές συναρτήσεις κατάταξης εμποδίων Εξωτερική συνάρτηση για το εμπόδιο της βροχής(rain) Εξωτερική συνάρτηση για το εμπόδιο της κίνησης(traffic) Εξωτερική συνάρτηση για το εμπόδιο των έργων(works) Συνθήκες Συνθήκη «Δω» Συνθήκη «Δω πράκτορα» Συνθήκη «Είμαι στοιβαγμένο» Συνθήκη «Είμαι στοιβαγμένο από ένα» Συνθήκη «Είμαι δίπλα σε» Συνθήκη «Είναι άδειο» Συνθήκη «Πληκτρολογηθεί» Συνθήκη «Ποσοστό (%) επιτυχίας» Συνθήκη «Μια φορά κάθε...δευτερόλεπτα» Συνθήκη «Ακούσω» Συνθήκη «Είναι η ιδιότητα» Συνθήκη «Έχει ιδιότητα» Συνθήκη «Διαβάσω στο WWW» Συνθήκη «Είμαι πάνω από» Συνθήκη «Κατευθύνομαι» Δράσεις Δράση «Μετακινούμαι» Δράση «Μετακινούμαι τυχαία πάνω σε»

7 9.4.3 Δράση «Αλλάζω» Δράση «Δημιουργώ» Δράση «Εξαφανίζω» Δράση «Χρωματίζομαι» Δράση «Κάνω» Δράση «Εκπέμπω» Δράση «Περιμένω» Δράση «Αναπαράγω ήχο» Δράση «Ηχώ» Δράση «Θέτω την ιδιότητα» Δράση «Αντιστοιχίζω την ιδιότητα...σε χρώμα» Δράση «Αναπαριστώ γραφικά σε παράθυρο» Δράση «Αναπαριστώ γραφικά την ιδιότητα» Δράση «Ανοίγω URL» Δράση «Μεταπηδώ σε Πεδίο Εργασίας» Δράση «Ανοίγω URL» Δράση «Θέτω κατεύθυνση» Δράση «Διακόπτω την προσομοίωση» Δράση «Επαναφέρω την αρχική προσομοίωση» Δράση «Καθαρίζω την προσομοίωση»

8 1. Εισαγωγή Στόχο της διπλωματικής αυτής εργασίας αποτελεί η δημιουργία ενός περιβάλλοντος προσομοίωσης ασύρματης μετάδοσης πληροφορίας σε κινούμενο στόλο οχημάτων, με χρήση τεχνικών ευφυών πρακτόρων και τεχνολογιών του σημασιολογικού ιστού. Οι μετρήσεις που θα προκύψουν από την εκτέλεση της προσομοίωσης θα χρησιμοποιηθούν για την εξαγωγή συμπερασμάτων σχετικά με τη βελτίωση που επιφέρουν οι κεραίες στην κίνηση των αυτοκινήτων. Συγκεκριμένα, θα προσομοιωθεί (με τη χρήση ευφυών αυτόνομων πρακτόρων λογισμικού) ένα περιβάλλον αποτελούμενο από οχήματα και από βάσεις εκπομπής πληροφοριών (κεραίες), οι οποίες θα μεταδίδουν πληροφορίες σχετικά με την κίνηση σε συγκεκριμένους δρόμους. Τα οχήματα, εφόσον βρίσκονται στην εμβέλεια των βάσεων εκπομπής, θα μπορούν να δέχονται τις πληροφορίες, σχετικά με την κίνηση στους δρόμους, θα τις επεξεργάζονται και κατόπιν θα ακολουθούν τη βέλτιστη διαδρομή για τον προορισμό τους. Οι πληροφορίες που θα μεταδίδονται, θα περιγράφονται χρησιμοποιώντας τεχνολογίες του Σημασιολογικού Ιστού (Semantic Web) [1], έτσι ώστε να μπορούν να αξιολογηθούν από τα οχήματα. Το περιβάλλον θα υλοποιηθεί στην πλατφόρμα προσομοίωσης πρακτόρων AgentSheets [2] και θα χρησιμοποιηθούν εξωτερικές ρουτίνες γραμμένες σε Java, οι οποίες θα καλούνται από τα οχήματα και θα χειρίζονται τη σημασιολογική πληροφορία. Για τη δημιουργία των εξωτερικών ρουτινών ικανή και α- ναγκαία συνθήκη αποτελεί η ύπαρξη κάποιων βιβλιοθηκών οι οποίες παρέχονται από τη Jena [3]. Αναλυτικότερα, στο Κεφάλαιο 2 δίνονται όλες οι απαραίτητες και όχι μόνο πληροφορίες, σχετικά με βασικούς όρους και έννοιες που χρησιμοποιούνται στην διπλωματική αυτή εργασία όπως είναι ο σημασιολογικός ιστός και οι πράκτορες [4]. Στο Κεφάλαιο 3 παρουσιάζεται επακριβώς το πρόβλημα, που πρέπει να επιλυθεί ενώ στο Κεφάλαιο 4 αναλύονται τα εργαλεία λογισμικού, με τη βοήθεια των οποίων επιλύθηκε το πρόβλημα. Στο Κεφάλαιο 5 περιγράφεται αναλυτικά η υλοποίηση της προσομοίωσης ενώ η εκτέλεσή αυτής στο Κεφάλαιο 6. Στο τελευταίο παρουσιάζονται επίσης και κάποια συμπεράσματα που προκύπτουν από τα αποτελέσματά της, εκτέ- 8

9 λεσης της προσομοίωσης. Το Κεφάλαιο 7 περιέχει τον επίλογο και κάποιες μελλοντικές επεκτάσεις της προσομοίωσης. Τέλος, στα κεφάλαια 8 και 9 παρουσιάζονται η βιβλιογραφία και κάποια παραρτήματα της εργασίας αυτής αντίστοιχα. 2 Θεωρητικό Υπόβαθρο Στο κεφάλαιο αυτό παρουσιάζεται αναλυτικά το θεωρητικό υπόβαθρο της διπλωματικής εργασίας που είναι ο Σημασιολογικός Ιστός (Semantic Web) και οι πράκτορες (Agents). 2.1 Σημασιολογικός Ιστός (Semantic Web) Το Διαδίκτυο αποτελεί σήμερα τη μεγαλύτερη πηγή πληροφορίας. Μεγάλοι όγκοι δεδομένων αναζητούνται, ανταλλάσσονται και επεξεργάζονται μέσω του Παγκόσμιου Ιστού. Επειδή, όμως, ο όγκος των δεδομένων του Ιστού έχει πάρει μεγάλες διαστάσεις χωρίς να υπάρχει ενιαίος τρόπος οργάνωσης, η ανταλλαγή και η επεξεργασία τους είναι πολύ δύσκολη. Για την αποφυγή τέτοιων προβλημάτων δημιουργήθηκε ο Σημασιολογικός Ιστός (Σ.Ι.), που είναι το επόμενο σημαντικό βήμα του Παγκόσμιου Ιστού. Εφαρμογές του όπως είναι οι πύλες γνώσης (Knowledge portals) και οι ηλεκτρονικές αγορές (E-Marketplaces) απαιτούν τη διαχείριση τεράστιων όγκων μεταδεδομένων, δηλαδή πληροφορίας που περιγράφει τα δεδομένα. Έτσι, με τις εφαρμογές αυτές τεράστιες ποσότητες πόρων ιστού (web resources), όπως δεδομένα, έγγραφα, προγράμματα, θα είναι διαθέσιμες μαζί με διαφόρων ειδών μεταπληροφορία. Η καλύτερη γνώση για το νόημα, τη χρησιμότητα, την προσπελασιμότητα ή την ποιότητα των πηγών αυτών θα διευκολύνει την αυτόματη επεξεργασία των διαθέσιμων υπηρεσιών στον Ιστό. Με άλλα λόγια ο Σ.Ι.,συμβάλλει στην ενιαία οργάνωση των δεδομένων ώστε ο Ιστός να γίνει μια παγκόσμια πλατφόρμα ανταλλαγής και επεξεργασίας δεδομένων από ετερογενείς πηγές πληροφορίας. Επιπρόσθετα, δίνει δομή, οργάνωση και σημασιολογία, ώστε να είναι κατανοητά σε επίπεδο μηχανής. Κατά τον Tim Berners-Lee [5] της W3C ο Σ.Ι. θα έχει τη μορφή της Εικόνα 1. 9

10 Στο κατώτερο επίπεδο βρίσκονται το Unicode, που εξασφαλίζει την επικοινωνία ανάμεσα σε διαφορετικές γλώσσες και τα URI (Uniform Resource Identifier), οι διευθύνσεις δηλαδή των πόρων Στο αμέσως επόμενο επίπεδο βρίσκεται η XML, η NS και το XML Schema ως κύρια γλώσσα έκφρασης στον ιστό. Ακολουθεί η RDF (Resource Description Framework) και το RDF Schema που είναι η κύρια γλώσσα μεταδεδομένων. Ανώτερο όλων των προηγουμένων είναι το λεξιλόγιο οντολογιών. Ακολουθεί το λογικό επίπεδο, το επίπεδο απόδειξης και το επίπεδο αξιοπιστίας αντίστοιχα. Οι ψηφιακές υπογραφές είναι πολύ σημαντικές αφού διασφαλίζουν την αξιοπιστία. Εικόνα 1-Μορφή Σημασιολογικού Ιστού Κωδικοποίηση και Διευθυνσιοδότηση Εγγράφων Στο κατώτερο επίπεδο της αρχιτεκτονικής του Σ.Ι. βρίσκονται οι ίδιες οι πληροφορίες σε φυσικό και λογικό επίπεδο. Στο φυσικό επίπεδο η κωδικοποίηση των εγγράφων γίνεται με τη χρήση του διεθνώς καθιερωμένου προτύπου κωδικοποίησης χαρακτήρων Unicode. Το πρότυπο αυτό καθορίζει το παγκόσμιο σύνολο χαρακτήρων για την κωδικοποίηση απλού κειμένου, καλύπτοντας όλες τις γλώσσες της υφηλίου. Η διευθυνσιοδότηση των εγγράφων στο διαδίκτυο, ανεξαρτήτως περιεχομένου και πρωτοκόλλου επικοινωνίας, γίνεται με τη βοήθεια των Ενιαίων Προσδιοριστών Πόρων (Uniform Resource Identifiers-URI). Οι προσδιοριστές αυτοί είναι συμβολοσειρές οι οποίες χαρακτηρίζουν μοναδικά οποιοδήποτε διαδικτυακό πόρο, όπως 10

11 ιστοσελίδα ή άλλου τύπο ηλεκτρονικό αρχείο, διεύθυνση ηλεκτρονικού ταχυδρομείου, διαδικτυακή υπηρεσία, κτλ. Έτσι, οι διευθύνσεις URL αποτελούν ειδική περίπτωση των αναφορών URI που προσδιορίζουν τη δικτυακή τοποθεσία (locator) ενός δικτυακού πόρου Γλώσσα XML Η λογική αναπαράσταση των εγγράφων στο Σ.Ι. βασίζεται στο πρότυπο XML. Η XML (extensible Markup Language-Επεκτάσιμη γλώσσα σήμανσης) είναι μία μεταγλώσσα αναπαράστασης πληροφοριών στο διαδίκτυο, η οποία επιτρέπει την αναπαράσταση δομημένων εγγράφων με τη χρήση λεξιλογίων που ορίζονται από το χρήστη. Δημιουργήθηκε με σκοπό το διαμοιρασμό εγγράφων στο διαδίκτυο μέσω μιας κοινά κατανοητής από πλευράς σύνταξης γλώσσας. Αναλυτικότερα, χρησιμοποιώντας τη γλώσσα XML, οι σελίδες και τα δεδομένα του Ιστού σημαδεύονται με ετικέτες. Οι ετικέτες βοηθούν τα προγράμματα Ιστού να ανακαλύψουν τα δεδομένα ευκολότερα, δίνοντας σημασιολογία και δομή στα δεδομένα. Για παράδειγμα, πληροφορία σχετική με τον συγγραφέα αυτής της διπλωματικής κωδικοποιείται σε ένα αρχείο XML με τις ετικέτες postgraduate, firstname, lastname, age, , ως εξής: <postgraduate> <firstname>maria</firstname> <lastname>ziogou</lastname> <age>26</age> </postgraduate> Ουσιαστικά, η γλώσσα XML δίνει μια κωδικοποίηση στα δεδομένα που βοηθά την ανταλλαγή και επαναχρησιμοποίησή τους από πολλές εφαρμογές. Παρόλα αυτά, η δομή και οργάνωση που παρέχεται είναι στο επίπεδο των δεδομένων. Στο Σ.Ι., η επικοινωνία εφαρμογών με διαφορετικά σχήματα (DTD- Document Type Definition) απαιτεί δυνατότητες ορισμού και διαχείρισης μεταδεδομένων. Με άλλα λόγια επιτακτική ανάγκη αποτελεί η ύπαρξη ενός εργαλείου αναπαράστασης ''δεδομένων για τα δεδομένα''. Ουσιαστικά, οι πόροι στον ιστό πρέπει να αναπαρίστανται ή να σχολιάζονται με δομημένες περιγραφές του περιεχομένου και των σχέσεών τους, κατανοητές από ηλεκτρονικό υπολογιστή. Αυτό είναι εφικτό με τη χρήση λεξιλογίων που δηλώνονται ρητά σε μια οντολογία περιοχής. 11

12 2.1.3 Οντολογίες Οντολογία (ontology) είναι η αυστηρά μαθηματική (formal) περιγραφή ενός πεδίου γνώσης (domain) και περιλαμβάνει ένα σύνολο από όρους και τις σημασιολογικές συσχετίσεις μεταξύ τους. Οι όροι περιγράφουν κλάσεις αντικείμενων, δηλαδή έννοιες-πρότυπα σχετικές με αντικείμενα. Οι συσχετίσεις συνήθως αφορούν ιεραρχικές εξαρτήσεις μεταξύ των όρων. Άλλες πληροφορίες που μπορεί να υπάρχουν σε μία οντολογία είναι οι ιδιότητες των όρων, περιορισμοί γύρω από αυτές, σχέσεις ισοδυναμίας και διαχωρισμού, καθώς και σημασιολογικοί συσχετισμοί (semantic relationships) μεταξύ των όρων με τη χρήση της λογικής. Συνήθως όμως, τα πιο πολύπλοκα συστήματα εξαγωγής λογικών συμπερασμάτων διαχωρίζονται από τις οντολογίες. Οι δυνατότητες που παρέχουν οι οντολογίες για εξαγωγή συμπερασμάτων συμπεριλαμβάνουν τα ακόλουθα. Έλεγχος αν κάποιο αντικείμενο (ή διαδικτυακός πόρος) ανήκει σε κάποια κλάση ή όχι. Αυτό γίνεται εύκολα ακολουθώντας τις ιεραρχικές συσχετίσεις της οντολογίας. Έλεγχος της ισοδυναμίας μεταξύ κλάσεων, ακολουθώντας τις σχέσεις ισοδυναμίας ή/και αντίθεσης μεταξύ των κλάσεων. Έλεγχος της ισοδυναμίας μεταξύ κλάσεων ή αντικειμένων, βάσει λογικών συμπερασμάτων, που προκύπτουν από την επεξεργασία των δηλώσεων και των περιορισμών της οντολογίας. Έλεγχος ασυνεπειών της οντολογίας, όταν υπάρχουν αλληλοαναιρούμενοι περιορισμοί και δηλώσεις. Αυτόματη κατηγοριοποίηση αντικειμένων ή πόρων στην ιεραρχία των κλάσεων όταν δεν είναι γνωστή η κλάση στην οποία ανήκουν αλλά είναι γνωστές οι ιδιότητές τους. Η κατηγοριοποίηση γίνεται συγκρίνοντας τις τιμές των ιδιοτήτων των αγνώστων αντικειμένων με τους περιορισμούς των κλάσεων. Καθώς ο Σ.Ι. θα εξελίσσεται θα αναπτύσσονται όλα και περισσότερες οντολογίες από τους χρήστες και επειδή η πλειοψηφία των χρηστών δε θα ενδιαφέρεται να τηρήσει την αυστηρή οργάνωση, μάλλον θα επικρατεί «αναρχία»στην οργάνωση και διασύνδεση των οντολογιών, όπως ακριβώς γίνεται και σήμερα στο διαδίκτυο. Στα επόμενα χρόνια προβλέπεται ότι σχεδόν κάθε πανεπιστήμιο, εταιρία, κρατική υπηρεσία κτλ, θα επιδιώξει να συσχετίσει τους διαδικτυακούς πόρους που έχει αναπτύξει με οντολογίες, αφού κάτι τέτοιο θα τους παρέχει έναν κοινό τόπο κατανόησης των ανταλλασσόμενων πληροφοριών ή αλλιώς διαλειτουργικότητα με άλλες εφαρμογές του διαδικτύου όπως είναι οι διαδικτυακές πύλες πληροφοριών (web por- 12

13 tals), οι ευφυείς πράκτορες (intelligent agents) και οι μηχανές αναζήτησης (search engines). Στον τομέα των μηχανών αναζήτησης ο Σ.Ι. θα προσφέρει πολλές καινοτομίες. Με την καλύτερη οργάνωση της πληροφορίας μέσω θησαυρών και οντολογιών μπορούν να παρέχουν καλύτερα και ποιοτικότερα αποτελέσματα χωρίς να φορτώνουν τόσο πολύ το δίκτυο. Επίσης ο χρήστης θα είναι πλέον ικανός να διαμορφώνει πιο ελεύθερα ερωτήματα, όχι απαραίτητα με λέξεις-κλειδιά ή με τελεστές Boolean και η μηχανή αναζήτησης να του φέρνει ικανοποιητικά αποτελέσματα αφού θα μπορεί να τα κατανοήσει. Αυτό θα επιτευχθεί με την χρήση της XML και των οντολογιών, με τις οποίες θα μπορεί η μηχανή να κατανοήσει και να αξιολογήσει λογικά το περιεχόμενο μιας σελίδας. Ακόμη θα είναι σε θέση να κατανοεί τα ερωτήματα σημασιολογικά και όχι απλά σαν λέξεις-κλειδιά. Αυτό σημαίνει ότι αν για παράδειγμά ζητηθεί ένα ερώτημα επέστρεψε όλους τους τίτλους βιβλίων που έχει γράψει η Τζέϊν Όστεν η σημασιολογική μηχανή θα επιστρέψει ένα σύνολο από τίτλους βιβλίων για τη συγκεκριμένη συγγραφέα αντί να θεωρήσει κάθε όρο του ερωτήματος ως λέξη-κλειδί και να φέρει ως αποτέλεσμα κάθε σελίδα που περιέχει τους όρους αυτούς και τις ρίζες τους. Επομένως προκύπτει μεγαλύτερη ακρίβεια στην ανάκτηση, άρα και πιο ποιοτικά αποτελέσματα. Στον τομέα της διαχείρισης, ο κύριος στόχος των οντολογιών είναι να επιτύχουν τον διαμοιρασμό της γνώσης καθώς και να την καταστήσουν διαθέσιμη για επαναχρησιμοποίηση. Έτσι, ένα τυπικό σύστημα οντολογιών για βιβλιοθήκες υποστηρίζει ανοιχτή αποθήκευση και οργάνωση, ταυτοποίηση και τη δυνατότητα να οργανώνονται σε εκδόσεις. Η ανοιχτή αποθήκευση και οργάνωση έχουν να κάνουν με το πώς αποθηκεύονται και οργανώνονται οι οντολογίες σε ένα σύστημα βιβλιοθήκης για να διευκολύνουν την πρόσβαση και τη διαχείριση των οντολογιών. Η ταυτοποίηση έχει σκοπό να συσχετίζει κάθε οντολογία με ένα μοναδικό αναγνωριστικό. Η δυνατότητα χαρακτηρισμού αυτών σε εκδόσεις είναι πολύ χρήσιμη καθώς οι οντολογίες βελτιώνονται διαρκώς με το πέρασμα του χρόνου και ένας μηχανισμός που θα τις χώριζε σε εκδόσεις, θα μπορούσε να διασφαλίσει την συνέπεια ανάμεσα στις διάφορες εκδόσεις ο- ντολογιών. Εφόσον οι οντολογίες εξελίσσονται με την πάροδο του χρόνου, είναι σημαντικό να βρεθεί ένας τρόπος να ενημερώνονται και να εξελίσσονται οι παρούσες οντολογίες. 13

14 Η ολοκλήρωση και η διαλειτουργικότητα είναι πάντα κάτι που απασχολεί κάθε ανοικτό σύστημα. Ο Σ.Ι. είναι ένα ανοικτό σύστημα σε επίπεδο παγκόσμιου ιστού. Επομένως είναι σημαντική η προτυποποίηση των οντολογιών καθώς και ο χαρακτηρισμός μιας συγκεκριμένης γλώσσας οντολογιών ως πρότυπης. Οι υπάρχουσες γλώσσες οντολογιών έχουν όλες προτερήματα και μειονεκτήματα. Λαμβάνοντας υπόψιν ότι ο Σ.Ι. είναι ακόμη στα αρχικά του στάδια, ίσως είναι πολύ νωρίς για να οριστεί μια πρότυπη γλώσσα, αφού αυτές ακόμη εξελίσσονται. Παρόλα ταύτα το επικρατέστερο μοντέλο δεδομένων είναι το RDF για το επίπεδο μεταδεδομένων και το RDFS για το επίπεδο σχημάτων.[6] RDF (Resource Description Framework) Το πλαίσιο RDF επιτρέπει τη δημιουργία και την ανταλλαγή μεταδεδομένων των πόρων όπως και οποιαδήποτε άλλα δεδομένα στον Ιστό. Είναι ιδιαίτερα προοριζόμενο για την αναπαράσταση μεταδεδομένων για τους πόρους του Ιστού, όπως τίτλος, συντάκτης και ημερομηνία τροποποίησης μιας ιστοσελίδας, πνευματικά δικαιώματα και πληροφορία χορήγησης αδειών για ένα έγγραφο του Ιστού, ή πρόγραμμα διαθεσιμότητας για κάποιο κοινό πόρο. Παρόλα αυτά, με τη γενίκευση της έννοιας "πόρος Ιστού", το RDF μπορεί ε- πίσης να χρησιμοποιηθεί για να αντιπροσωπεύσει πληροφορίες για πράγματα που μπορούν να προσδιοριστούν στον Ιστό ακόμα και όταν δεν μπορούν να ανακτηθούν άμεσα από αυτόν. Παραδείγματα περιλαμβάνουν πληροφορίες για αντικείμενα διαθέσιμα από ηλεκτρονικές αγορές (πχ., πληροφορίες για τις προδιαγραφές, τις τιμές και τη διαθεσιμότητα) ή περιγραφή των προτιμήσεων ενός χρήστη του Ιστού για την παράδοση πληροφορίας. To μοντέλο RDF στοχεύει σε καταστάσεις στις οποίες αυτή η πληροφορία πρέπει να υποβληθεί σε επεξεργασία από εφαρμογές και όχι μόνο για να επιδειχθεί στους ανθρώπους. Επίσης, παρέχει ένα κοινό πλαίσιο για την πληροφορία αυτή, έτσι ώστε να μπορεί να ανταλλαχθεί μεταξύ των εφαρμογών χωρίς απώλεια της σημασίας. Δεδομένου αυτού, οι σχεδιαστές εφαρμογών μπορούν να εκμεταλλευτούν τη διαθεσιμότητα κοινών RDF parsers και εργαλείων επεξεργασίας. Η δυνατότητα να ανταλλαχθεί πληροφορία μεταξύ διαφορετικών εφαρμογών σημαίνει ότι πληροφορία μπορεί να τεθεί στη διάθεση και άλλων εφαρμογών εκτός από εκείνες για τις οποίες δημιουργήθηκε αρχικά. [7] 14

15 Το RDF είναι βασισμένο στην ιδέα του προσδιορισμού των πραγμάτων χρησιμοποιώντας προσδιοριστικά του Ιστού και της περιγραφής των πόρων από την ά- ποψη απλών ιδιοτήτων και τιμών των ιδιοτήτων αυτών (properties and property values). Αυτό επιτρέπει στα RDF να αντιπροσωπεύουν απλές δηλώσεις για πόρους ως ένα γράφο από κόμβους και τόξα που αντιπροσωπεύουν τους πόρους, τις ιδιότητες και τις τιμές τους. Έστω για παράδειγμα, ότι υπάρχει ένας άνθρωπος προσδιορισμένος από το του οποίου το όνομα είναι Eric Miller, η ηλεκτρονική διεύθυνση και ο τίτλος του είναι Dr. Όλα τα παραπάνω μπορούν να παρουσιαστούν σε ένα γράφο RDF όπως φαίνεται στην εικόνα που ακολουθεί. Εικόνα 2- Γράφος RDF Το σχήμα αυτό δείχνει ότι το RDF χρησιμοποιεί URIs για να προσδιορίσει άτομα όπως ο Eric Miller που προσδιορίζεται από το είδη πραγμάτων, π.χ. Person που προσδιορίζεται από /pim/contact#person, ιδιότητες εκείνων των πραγμάτων, π.χ. ταχυδρομική θυρίδα που προσδιορίζεται από τιμές εκείνων των ιδιοτήτων, π.χ. ως τιμή της ιδιότητας ταχυδρομικής θυρίδας. Τέλος το RDF χρησιμοποιεί επίσης συμβολοσειρές όπως "Eric Miller" και άλλες τιμές. Επιπλέον, παρέχει μια σύνταξη σε XML μορφή (RDF/XML) για την καταγραφή και την ανταλ- 15

16 λαγή τέτοιων γράφων. Το παρακάτω παράδειγμα δείχνει το παραπάνω σχήμα στη μορφή αυτή: <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:contact=" <contact:person rdf:about=" <contact:fullname>eric Miller</contact:fullName> <contact:mailbox <contact:personaltitle>dr.</contact:personaltitle> </contact:person> </rdf:rdf> Όπως στην HTML, το RDF/XML είναι μηχανή επεξεργάσιμη και χρησιμοποιώντας URIs μπορεί να συνδέσει κομμάτια πληροφοριών στον Ιστό. Εντούτοις, α- ντίθετα από το συμβατικό υπερκείμενο (hypertext), τα URIs μπορούν να αναφερθούν σε οποιοδήποτε ευπροσδιόριστο πράγμα, συμπεριλαμβανομένων και εκείνων που μπορεί να μην είναι άμεσα ανακτήσιμα από τον Ιστό (όπως το φυσικό πρόσωπο Eric Miller). Το αποτέλεσμα είναι ότι εκτός από την περιγραφή πραγμάτων όπως ιστοσελίδων, τα RDF μπορούν επίσης να περιγράψουν αυτοκίνητα, επιχειρήσεις, ανθρώπους, γεγονότα ειδήσεων κλπ. Επιπλέον, οι ιδιότητες στα RDF έχουν URIs, για να προσδιορίσουν ακριβώς τις σχέσεις που υπάρχουν μεταξύ των συνδεμένων στοιχείων. Γενικότερα, το RDF είναι βασισμένο στην ιδέα ότι τα πράγματα που περιγράφονται έχουν ιδιότητες (properties) που έχουν τιμές και ότι οι πόροι μπορούν να περιγραφούν με εκφράσεις οι οποίες διευκρινίζουν τις ιδιότητες αυτές και τις τιμές τους. Το RDF χρησιμοποιεί μια ιδιαίτερη ορολογία για τα διάφορα μέρη των εκφράσεων. Συγκεκριμένα, το μέρος που προσδιορίζει το πράγμα για το οποίο είναι η πρόταση (μια ιστοσελίδα για παράδειγμα) καλείται υποκείμενο (subject). Το μέρος που προσδιορίζει την ιδιότητα ή το χαρακτηριστικό του υποκειμένου που η πρόταση διευκρινίζει (δημιουργός, δημιουργία-ημερομηνία, ή γλώσσα σε αυτά τα παραδείγματα) καλείται κατηγόρημα (predicate) και το μέρος που προσδιορίζει την τιμή εκείνης της ιδιότητας καλείται αντικείμενο (object). Έτσι, αναλύοντας την αγγλική πρόταση has a creator whose value is John Smith προκύπτουν όλα τα προαναφερθέντα. subject: predicate: object: 16

17 To RDF μοντελοποιεί τέτοιες εκφράσεις ως κόμβους και τόξα σε ένα γράφο. Με αυτήν την μοντελοποίηση μια πρόταση αντιπροσωπεύεται από ένα κόμβο (node) για το υποκείμενο, ένα κόμβο (node) για το αντικείμενο, ένα τόξο (arc) για το κατηγόρημα κατευθυνόμενο από το υποκείμενο στο αντικείμενο, όπως φαίνεται στην παρακάτω εικόνα. Εικόνα 3-Αντιστοιχία δήλωσης RDF σε γράφο Τα αντικείμενα του RDF μπορούν να είναι είτε URIs είτε σταθερές τιμές που λέγονται λεκτικά (literals) και αναπαριστούνται από συμβολοσειρές προκειμένου να αντιπροσωπεύσουν ορισμένα είδη ιδιοτήτων. Τα λεκτικά δεν μπορούν να χρησιμοποιηθούν ως υποκείμενα ή ως κατηγορήματα σε RDF εκφράσεις. Ένα τέτοιο παράδειγμα παρουσιάζεται ακολούθως. Εικόνα 4-Γράφος RDF με πολλαπλές δηλώσεις με το ίδιο υποκείμενο Ένας εναλλακτικός τρόπος αναπαράστασης ενός RDF είναι γράφοντας κάθε έκφραση που προκύπτει, δηλαδή σε μορφή τριπλετών (triples). Έτσι, το παραπάνω σχήμα θα μπορούσε να γραφεί ως εξής: 17

18 < < < < < 16, 1999". < < /language> "en". Για μεγαλύτερη ευκολία, αντί να γράφονται πλήρως τα URIs το RDF δίνει τη δυνατότητα για χρήση των namespaces. Έτσι, έχοντας ορίσει τα namespaces οι παραπάνω τριπλέτες παίρνουν την ακόλουθη μορφή. ex: dc: exterms: exstaff: Μια πιο κατανοητή από τον άνθρωπο μορφή είναι η παρακάτω. ex:index.html dc:creator exstaff: ex:index.html exterms:creation-date "August 16, 1999". ex:index.html dc:language "en". Τέλος, το παραπάνω RDF θα μπορούσε να γραφτεί σε μορφή RDF/XML. <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:exterms=" <rdf:description rdf:about=" <exterms:creation-date>august 16, 1999</exterms:creation-date> </rdf:description> </rdf:rdf> Λογική, Αποδείξεις, και Αξιοπιστία (Logic, Proof, and Trust) Στο Λογικό Επίπεδο, γίνονται κατανοητές διάφορες δηλώσεις, όπως οι κανόνες μετατροπής των εγγράφων από ένα τύπο σε έναν άλλο, ο έλεγχος ενός εγγράφου ως προς τη συνέπειά του και άλλα. Χρησιμοποιώντας ως βάση τα προηγούμενα επίπεδα οργάνωσης, το επίπεδο αυτό παρέχει επιπλέον τη δυνατότητα αναπαράστασης της κατηγορηματικής λογικής (δηλαδή τη χρήση των λογικών τελεστών NOT, AND, OR) και τη δυνατότητα συσχέτισης των δεδομένων (για παράδειγμα, αν ισχύει το Χ, τότε ι- σχύουν όλα τα Υ). Ακόμη, επιτρέπει την επεξεργασία των δεδομένων των κατώτερων επιπέδων με τη χρήση σημασιολογικών συσχετίσεων υπό τη μορφή κανόνων. Το Επίπεδο Αποδείξεων περιλαμβάνει τους μηχανισμούς και τις διαδικασίες εξαγωγής συμπερασμάτων που χρησιμοποιούν τη γνώση που αποτυπώνεται στο λογικό επίπεδο, καθώς και την αναπαράσταση των διαδικασιών απόδειξης σε διαδικτυακές γλώσσες αναπαράστασης δεδομένων, όπως για παράδειγμα η XML και η RDF. 18

19 Σχετικά με τον έλεγχο της αξιοπιστίας τα πράγματα δεν είναι και πολύ ενθαρρυντικά ακόμη. Το μοντέλο RDF δεν περιλαμβάνει κάποιο μηχανισμό ελέγχου της αξιοπιστίας (trust) των πληροφοριών και των δηλώσεων στο διαδίκτυο. Στις περισσότερες εφαρμογές η απόδειξη της αξιοπιστίας γίνεται σύμφωνα με κάποιους κανόνες περιορισμένης εμβέλειας και το μόνο που ζητείται από την άλλη πλευρά είναι να δώσει κάποιες γενικές αποδείξεις. 2.2 Πράκτορες Στην ενότητα αυτή θα δοθούν οι ορισμοί τόσο των πρακτόρων όσο και των ευφυών πρακτόρων. Θα παρουσιασθεί όλο το ιστορικό μετάβασης από τους πρώτους στους δεύτερους και θα αναλυθούν τα χαρακτηριστικά και των δύο Από τον Πράκτορα στον Ευφυή πράκτορα Τα τελευταία χρόνια η έννοια του «πράκτορα» (και ειδικότερα του ευφυή πράκτορα) αποδεικνύεται ολοένα και πιο σημαντική για διάφορα ερευνητικά πεδία, κυρίως στην περιοχή της Επιστήμης Υπολογιστών και ειδικότερα της Τεχνητής Νοημοσύνης. Ξεκινώντας την προσέγγιση της έννοιας Πράκτορας για τα παραπάνω επιστημονικά πεδία θα ήταν λογικό να αναζητηθεί κάποιος ορισμός ή πιο αφαιρετικά μια απάντηση στο ερώτημα «τι είναι πράκτορας;». Ο ερευνητικός χώρος των πρακτόρων είναι αρκετά νέος ώστε να μην υπάρχει ένας μοναδικός διεθνώς αποδεκτός ορισμός του όρου πράκτορας. Αντί ορισμού, μέχρι σήμερα, η παγκόσμια επιστημονική κοινότητα έχει καταλήξει ότι η έννοια της αυτονομίας είναι καθοριστική στην θεώρηση ενός πράκτορα. Ένα σημαντικό μέρος της δυσκολίας συνολικού (οικουμενικού) ορισμού της έννοιας του πράκτορα είναι ότι διάφορα χαρακτηριστικά συσχετιζόμενα με ένα πράκτορα και τη λειτουργία του είναι εντελώς διαφορετικής σημασίας για διαφορετικούς επιστημονικούς τομείς. Έτσι, για παράδειγμα, η ικανότητα μάθησης ενός πράκτορα, από τις εμπειρίες του είναι υψίστης σημασίας για κάποιες εφαρμογές, ενώ για κάποιες άλλες είναι ασήμαντο έως ανεπιθύμητο. Παρ όλες όμως τις δυσκολίες, κάποιου τύπου ορισμού είναι απαραίτητος ο- δηγός, προκειμένου η έννοια να μην χάσει το αντικειμενικό περιεχόμενο και σκοπό της. Σύμφωνα, λοιπόν, με τους M.Woolbribge και N.Jennings:[8] «Ένας πράκτορας είναι ένα υπολογιστικό σύστημα που είναι εγκατεστημένο σε κάποιο περιβάλλον και 19

20 έχει την ικανότητα αυτόνομης δράσης στο περιβάλλον προκειμένου να ανταποκριθεί στους σκοπούς σχεδίασης του». Ο παραπάνω ορισμός αναφέρεται σε «πράκτορες» και όχι σε «ευφυείς πράκτορες» ενώ ο διαχωρισμός δεν είναι τυχαίος. Άμεσα συνδεδεμένη με την έννοια του Πράκτορα, είναι αυτή της αυτονομίας, η οποία είναι δύσκολο να οριστεί επακριβώς. Σαν μια πρώτη προσέγγιση η αυτονομία μπορεί να οριστεί ως η ικανότητα του πράκτορα να δρα χωρίς την παρέμβαση ανθρώπων ή άλλων συστημάτων, ή αλλιώς η ικανότητα του πράκτορα να γνωρίζει και να ελέγχει τόσο την εσωτερική του κατάσταση όσο και την συμπεριφορά του. Στην εικόνα που ακολουθεί, παρουσιάζεται μια αφηρημένη άποψη ενός πράκτορα. Εικόνα 5 -Ένας πράκτορας σε αλληλεπίδραση με το περιβάλλον του. Ο πράκτορας παίρνει αισθητήρια είσοδο από το περιβάλλον του και παράγει σαν έξοδο δράσεις που το επηρεάζουν (Πηγή: Multiagent Systems, MIT Press, 1999). Η παραπάνω σχηματική περιγραφή δείχνει την δράση-έξοδο ενός πράκτορα, η οποία επιδρά στο περιβάλλον του. Στα περισσότερα πεδία λογικής πολυπλοκότητας, ένας πράκτορας δεν έχει απόλυτο έλεγχο του περιβάλλοντός του. Στην καλύτερη περίπτωση θα έχει μερικό έλεγχο, δηλαδή θα μπορεί να το επηρεάζει. Αυτό σημαίνει για τον πράκτορα ότι η ίδια κίνηση όταν εκτελεστεί δεύτερη φορά κάτω από τις ίδιες περιβαλλοντικές καταστάσεις πιθανόν θα έχει εντελώς διαφορετικό αποτέλεσμα και γενικά όχι κατ ανάγκη το επιθυμητό. Με άλλα λόγια οι πράκτορες οφείλουν να είναι προετοιμασμένοι για την πιθανότητα της αποτυχίας στα περισσότερα ενδεχόμενα περιβάλλοντα δράσης. Συνοπτικά, μπορούμε να καταλήξουμε ότι τα περιβάλλοντα για τους πράκτορες δεν είναι ντετερμινιστικά. Κανονικά ένας πράκτορας έχει στην διάθεσή του ένα δεδομένο σύνολο κινήσεων δράσης σε κάθε χρονική στιγμή. Το εύρος αυτών των κινήσεων αναπαριστά την επιδραστική ικανότητα του πράκτορα, δηλαδή την ικανότητα του να αλλάζει το περιβάλλον του. Σημειώνεται εδώ, ότι δεν είναι πάντα εφικτές όλες οι κινήσεις του συνόλου επιδραστικής ικανότητας. Έτσι, για παράδειγμα, η δράση «σήκωσε αντικείμενο» είναι εφαρμόσιμη μόνο στις καταστάσεις εκείνες όπου το εν λόγω αντικείμενο είναι αρκετά ελαφρύ για τον πράκτορα. Παρόμοια η δράση «αγόρασε Ferrari» πιθανότητα 20

21 θα αποτύχει αν ο λογαριασμός του πράκτορα δεν περιέχει ικανοποιητικό χρηματικό ποσό. Οι κινήσεις δράσης, λοιπόν, έχουν προαπαιτούμενα συσχετιζόμενα μ αυτές, τα οποία εξ ορισμού είναι οι πιθανές καταστάσεις στις οποίες μπορούν να εφαρμοστούν (οι κινήσεις δράσεις). Καθοριστικής σημασίας για ένα πράκτορα είναι η επίλυση του προβλήματος: «ποια κίνηση (δράση) πρέπει να εφαρμοστεί» προκειμένου να ικανοποιηθούν οι σκοποί σχεδίασης. Οι διάφορες αρχιτεκτονικές πρακτόρων, οι οποίες έχουν αναπτυχθεί μέχρι σήμερα είναι αρχιτεκτονικές λογισμικού, με ικανότητα προσαρμογής σε κάποιο περιβάλλον και δυναμική δρομολόγηση αποφάσεων. Η πολυπλοκότητα της διαδικασίας εξαγωγής αποφάσεων μπορεί να επηρεαστεί από μια σειρά διαφορετικών περιβαλλοντικών παραγώγων. Οι Russel και Norvig [9] προτείνουν την ακόλουθη ταξινόμηση των σχετικών περιβαλλοντικών παραγώγων: Προσβάσιμο ή Μη Προσβάσιμο Ένα περιβάλλον είναι προσβάσιμο όταν οι πράκτορες που δραστηριοποιούνται σε αυτό μπορούν να έχουν απόλυτη και ακριβή πρόσβαση σε ενημερωμένες πληροφορίες σχετικά με την κατάσταση του περιβάλλοντος. Τα περισσότερα διαλλακτικά, πολύπλοκα περιβάλλοντα (όπως το καθημερινό φυσικό περιβάλλον και το Διαδίκτυο) είναι μη προσβάσιμα, καθώς η πληροφορία που υπάρχει διαθέσιμη σε τέτοιες περιπτώσεις είναι είτε περιορισμένη σε σχέση με το σύνολο (πχ στην περίπτωση του φυσικού περιβάλλοντος, η διαθέσιμη πληροφορία παρέχεται μόνο μέσω αισθητήρων), είτε τεράστια σε όγκο με αποτέλεσμα να είναι πρακτικά μη επεξεργάσιμη. Όσο πιο προσβάσιμο είναι ένα περιβάλλον, τόσο πιο εύκολο είναι να αναπτυχθούν πράκτορες που θα λειτουργήσουν σ αυτό. Ντετερμινιστικό ή Μη Ντετερμινιστικό Όπως έχει ήδη αναφερθεί ντετερμινιστικό είναι ένα περιβάλλον όπου κάθε κίνηση δράσης έχει μια μοναδική επίδραση σ αυτό, δηλαδή δεν υπάρχει καμία ασάφεια για την κατάσταση του περιβάλλοντος μετά την εφαρμογή της κάθε κίνησης δράσης. Ο φυσικός κόσμος είναι ένα καθαρό παράδειγμα μη ντετερμινιστικού περιβάλλοντος. Όπως είναι αναμενόμενο, τα μη ντετερμινιστικά περιβάλλοντα παρουσιάζουν περισσότερες δυσκολίες για τους σχεδιαστές πρακτόρων. Επεισοδιακό ή Μη Επεισοδιακό Σε ένα επεισοδιακό περιβάλλον η επίδοση του πράκτορα εξαρτάται από μια σειρά διακριτών επεισοδίων, με καμία σύνδεση μεταξύ της επίδοσης ενός πράκτορα σε διαφορετικά σενάρια. Ένα παράδειγμα επεισοδιακού περιβάλλοντος θα μπορούσε να 21

22 είναι ένα σύστημα ταξινόμησης ηλεκτρονικής αλληλογραφίας. Τα επεισοδιακά περιβάλλοντα είναι ευκολότερα για την ανάπτυξη πρακτόρων, που θα δρουν σε αυτά, γιατί ο κάθε πράκτορας θα έχει να επιλέξει πoια δράση να εκπληρώσει με βάση το τρέχων επεισόδιο (δεν απαιτείται κρίση για τις διεπικοινωνίες μεταξύ του τρέχοντος και των μελλοντικών επεισοδίων). Στατικό ή Δυναμικό. Στατικό περιβάλλον είναι αυτό που παραμένει σταθερό (χωρίς αλλαγές της κατάστασής του), όσο κανένας πράκτορας δεν δραστηριοποιείται. Ένα δυναμικό περιβάλλον έχει κι άλλες διαδικασίες να λειτουργούν σ αυτό με αποτέλεσμα να αλλάζει ανεξάρτητα και πέρα απ τον έλεγχο των πρακτόρων που δραστηριοποιούνται σ αυτό. Ο φυσικός κόσμος είναι χαρακτηριστικά δυναμικό περιβάλλον. Διακριτό ή Συνεχές Ένα περιβάλλον είναι διακριτό όταν υπάρχει πεπερασμένος, προκαθορισμένος αριθμός κινήσεων δράσης και αντιλήψεων για τους πράκτορες. Μια παρτίδα σκάκι είναι ένα παράδειγμα διακριτού περιβάλλοντος, ενώ η οδήγηση ενός ταξί είναι παράδειγμα συνεχούς Παραδείγματα πρακτόρων Κάθε σύστημα ελέγχου μπορεί να θεωρηθεί ένας πράκτορας. Ένα απλό (και πολυχρησιμοποιημένο) παράδειγμα είναι το σύστημα ενός θερμοστάτη. Ο θερμοστάτης έχει έναν αισθητήρα για τον εντοπισμό της θερμοκρασίας του δωματίου. Αυτός ο αισθητήρας είναι άμεσα ενσωματωμένος στο περιβάλλον (π.χ. στο δωμάτιο) και παράγει σαν έξοδο δύο σήματα: ένα που υποδεικνύει ότι η θερμοκρασία είναι χαμηλή κι ένα που υποδεικνύει ότι η θερμοκρασία είναι εντάξει. Οι κινήσεις δράσης που έχει διαθέσιμες ο θερμοστάτης είναι: «άνοιγμα θέρμανσης» ή «κλείσιμο θέρμανσης». Η κίνηση «άνοιγμα θέρμανσης» γενικά θα έχει σαν αποτέλεσμα την θέρμανση του δωματίου, αλλά χωρίς να μπορεί να εγγυηθεί το αποτέλεσμα αν η πόρτα του δωματίου είναι ανοιχτή η συγκεκριμένη κίνηση μπορεί να μην έχει κανένα αποτέλεσμα. Το υπεραπλουστευμένο σύστημα αποφάσεων του θερμοστάτη υλοποιείται με τους ακόλουθους κανόνες: Χαμηλή θερμοκρασία άνοιγμα θέρμανσης Θερμοκρασία εντάξει κλείσιμο θέρμανσης Φυσικά πιο πολύπλοκα περιβάλλοντα συστημάτων ελέγχου, έχουν αισθητά πλουσιότερες δομές αποφάσεων. Παραδείγματα θα μπορούσαν να είναι τα αυτόνομα 22

23 διαστημικά εργαλεία, τα συστήματα αυτόματης πλοήγησης, τα συστήματα ελέγχου πυρηνικών αντιδραστήρων κτλ Συνοψίζοντας, οι πράκτορες είναι υπολογιστικά συστήματα, ικανά να δρουν αυτόνομα σε κάποιο περιβάλλον προσπαθώντας να φέρουν σε πέρας τους σχεδιαστικούς τους σκοπούς. Αυτοί μπορεί να είναι εγκατεστημένοι σε φυσικό περιβάλλον ή να είναι πράκτορες λογισμικού. Γενικά, ένας πράκτορας αντιλαμβάνεται το περιβάλλον του (με φυσικούς αισθητήρες, αν πρόκειται για πράκτορα σε κάποιο κομμάτι φυσικού κόσμου, ή με αισθητήρες λογισμικού, αν πρόκειται για πράκτορα λογισμικού) και θα χει διαθέσιμες μια γκάμα κινήσεων δράσης, που μπορεί να εκτελέσει για να διαφοροποιήσει το περιβάλλον, το οποίο πιθανότατα απαντά μη-ντετερμινιστικά στην εκτέλεση των κινήσεων αυτών. Επομένως, ένα εύλογο ερώτημα που προκύπτει είναι «πότε ένας πράκτορας θεωρείται ευφυής; και πότε όχι;». Το ερώτημα αυτό, όπως και το ερώτημα «τι είναι εξυπνάδα (ευφυία);», δεν είναι εύκολο να απαντηθούν επακριβώς Ορισμός Ευφυών Πρακτόρων Ένας πράκτορας είναι μια οντότητα που αντιλαμβάνεται το περιβάλλον μέσα στο ο- ποίο βρίσκεται με τη βοήθεια αισθητήρων, είναι μέρος του περιβάλλοντος αυτού, κάνει συλλογισμούς και δρα πάνω σε αυτό με τη βοήθεια μηχανισμών δράσης, για την επίτευξη κάποιων στόχων. Ο γενικός αυτός ορισμός εμπεριέχει την έννοια της αυτονομίας ενός πράκτορα, δηλαδή της αυτενέργειας για την επίτευξη των στόχων του. Αυτό το χαρακτηριστικό είναι ίσως ο πιο κοινός παρονομαστής όλων των ειδών των πρακτόρων και υποχρεώνει την ύπαρξη νοημοσύνης, τουλάχιστον σε κάποιο βαθμό Στο σημείο αυτό αξίζει να αναφερθούν οι παρακάτω προσεγγίσεις γνωστών ερευνητών στο χώρο. «Ένας Ευφυής Πράκτορας είναι λογισμικό που μπορεί να κάνει πράγματα που πιθανότατα θα έκανε ο κάθε χρήστης, αν είχε το χρόνο» (Πηγή: Ted Selker of the ΙΒΜ Almaden Research Centre) [10] «Ένα κομμάτι λογισμικού, το οποίο προκειμένου να κινηθεί κατάλληλα για την επιτυχή διεκπεραίωση μιας δοσμένης εργασίας, χρησιμοποιεί πληροφορίες που έχει αποκτήσει από το περιβάλλον του.» (Πηγή: G. W. Lecky - Thompson) [11] «Οι Νοήμονες Πράκτορες είναι υπολογιστικά συστήματα, που κατοικοεδρεύουν σε πολύπλοκα, δυναμικά περιβάλλοντα, έχοντας δυνατότητες αίσθησης κι αυτό- 23

24 νομης δράσης μέσα σ' αυτά και έτσι αντιλαμβάνονται ένα σύνολο στόχων ή εργασιών, για την επίτευξη των οποίων είναι σχεδιασμένοι. Οι πράκτορες αυτοί μπορούν να πάρουν διάφορες μορφές ανάλογα με τη φύση του περιβάλλοντος κατοικίας τους (Αντόνομα Ρομπότ - Πράκτορες Λογισμικού, Knowbots - Πράκτορες Διεπιφανειών Εργασίας).» (Πηγή: Pattie Maes of the ΜΙΤ Lab.)[12] Γενικότερα, οι πράκτορες αποτελούν ίσως την πιο ανθρωπόμορφη αρχιτεκτονική λογισμικού, στην οποία αποδίδονται συχνά και ανθρωποκεντρικά χαρακτηριστικά. Σε ένα πιο αφηρημένο επίπεδο οι πράκτορες μπορούν να διαχωριστούν σε δύο μεγάλες κατηγορίες, τους Βιολογικούς και τους Τεχνητούς πράκτορες, όπως φαίνεται και στην εικόνα που ακολουθεί. Εικόνα 6-Ιεραρχική ταξινόμηση των πρακτόρων Οι βιολογικοί πράκτορες χρησιμοποιούν τις αισθήσεις τους για να αντιληφθούν το γύρο κόσμο, τις γνώσεις τους για να βγάλουν συμπεράσματα για αυτόν και τα μέρη του σώματός τους για να εφαρμόσουν τις ενέργειες που προκύπτουν από τη συλλογιστική τους. Οι τεχνητοί πράκτορες (artificial agents) λειτουργούν με παρόμοιο τρόπο και χωρίζονται σε δύο υποκατηγορίες, τους ρομποτικούς και τους λογισμικούς πράκτορες. Οι ρομποτικοί πράκτορες (robotic agents ή robots) έχουν σαν αισθητήρες και μηχανισμούς δράσης μηχανικά ή ηλεκτρονικά μέρη και δρουν στο πραγματικό κόσμο. Οι λογισμικοί πράκτορες (software agents ή softbots) είναι προγράμματα και δρουν σε ένα υπολογιστικό σύστημα. Ακολουθούν εικόνες των παραπάνω πρακτόρων. Εικόνα 7 Ρομποτικός Πράκτορας 24

25 Εικόνα 8 Λογισμικός Πράκτορας Τέλος, και τα δύο είδη πρακτόρων εμπεριέχουν μία συλλογιστική διαδικασία (reasoning), μέσω της οποίας επεξεργάζονται τα ερεθίσματα του περιβάλλοντός τους και εφαρμόζουν τα αποτελέσματα της συλλογιστικής στο περιβάλλον αλλάζοντας έτσι την κατάστασή του. Ήδη έχει γίνει η παρατήρηση ότι ο νέος αυτός ερευνητικός τομέας δεν έχει προσδώσει ακριβή και μοναδική εννοιολογική αποσαφήνιση του όρου ευφυής πράκτορας. Τα πεδία δράσης και οι ουσιαστικοί στόχοι των πρακτόρων δεν περιορίζονται σε συγκεκριμένα όρια κι αυτό δυσκολεύει ακόμα παραπάνω μια τέτοια προσπάθεια Χαρακτηριστικά Ευφυών Πρακτόρων Τα κύρια χαρακτηριστικά ενός νοήμονα πράκτορα, δίνονται από τους M. Wooldridge και N. R. Jennings (1995)[8] σύμφωνα με τους οποίους πράκτορας είναι ένα σύστημα υλικού ή λογισμικού που έχει τις ακόλουθες ιδιότητες. Αυτονομία (autonomy) Οι πράκτορες λειτουργούν χωρίς την άμεση παρέμβαση των χρηστών ή άλλων πρακτόρων και έχουν αυτοέλεγχο, δηλαδή έλεγχο της εσωτερικής τους κατάστασης και αυτενέργειας. Αυτό σημαίνει ότι οι πράκτορες έχουν τη δυνατότητα να επιδιώκουν τους στόχους τους χωρίς να δέχονται συνεχώς εντολές από το χρήστη ή κάποια άλλη εξωτερική πηγή, το οποίο έχει σαν αποτέλεσμα να αφήνει στο χρήστη μόνο τον προσδιορισμό του γενικού στόχου και να τον απελευθερώνει από το βάρος της λήψης των επιμέρους αποφάσεων. Κοινωνικότητα (social ability) Οι πράκτορες επικοινωνούν με άλλους πράκτορες και χρήστες μέσω μιας κοινά κατανοητής γλώσσας, έτσι ώστε να μπορούν να συνεργαστούν για την επίτευξη των στόχων τους. Υπάρχει δηλαδή αλληλεπίδραση μεταξύ των πρακτόρων είτε για την επίτευξη των ανεξάρτητων στόχων των πρακτόρων ή για την επίτευξη ενός κοινού στόχου. Αντιδραστικότητα (reactiveness) Οι πράκτορες αντιλαμβάνονται το περιβάλλον τους και αντιδρούν μέσα σε συγκεκριμένα χρονικά πλαίσια στις αλλαγές που επέρχονται σε αυτό. 25

26 Προνοητικότητα (pro-activeness) Οι ευφυείς πράκτορες είναι ικανοί να επιδεικνύουν συμπεριφορά προσανατολισμένη στον σκοπό τους με δικές τους πρωτοβουλίες. Υπάρχουν και μερικά ακόμη δευτερεύοντα χαρακτηριστικά που αποδίδονται στους πράκτορες, τα οποία όμως δεν εμφανίζονται σε όλες τις κατηγορίες. Κινητικότητα (mobility) Οι πράκτορες δεν είναι πάντα στατικοί, αλλά μπορούν να κινηθούν σε ένα υπολογιστικό περιβάλλον. Προσαρμοστικότητα (adaptivity) Οι πράκτορες προσαρμόζονται διαρκώς στο περιβάλλον τους, ή τις απαιτήσεις του χρήστη, έχουν δηλαδή ικανότητα για μάθηση. Ειλικρίνεια (veracity) Οι πράκτορες δε δίνουν εσκεμμένα λάθος πληροφορίες Αγαθή προαίρεση (benevolence) Οι πράκτορες προσπαθούν να επιτύχουν πάντα τους στόχους που τους έχουν ανατεθεί. Λογικότητα (rationality) Οι πράκτορες δρουν για να πετύχουν τους στόχους τους, δηλαδή δεν κάνουν αναίτιες ενέργειες και δεν λειτουργούν εναντίον της επίτευξης των στόχων τους Αρχιτεκτονικές Ευφυών Πρακτόρων Η αρχιτεκτονική ενός πράκτορα, καθορίζει τα συστατικά του στοιχεία και τις αλληλεπιδράσεις μεταξύ τους. Με τη σειρά τους, τα συστατικά στοιχεία του πράκτορα και οι αλληλεπιδράσεις τους καθορίζουν τις ενέργειες του πράκτορα και τη μελλοντική του κατάσταση, σε σχέση με το ποια είναι τα δεδομένα που προσλαμβάνονται στα αισθητήρια όργανα του πράκτορα και το ποια είναι η τωρινή του εσωτερική κατάσταση. Η συνηθισμένη γενική μοντελοποίηση της συμπεριφοράς ενός πράκτορα ως μια συνεχή ακολουθία λειτουργιών αντίληψης, νοητικής διεργασίας και δράσης, αποτελεί βασικό χαρακτηριστικό σχεδιασμού όσον αφορά την αρχιτεκτονική του. Έτσι, ένα γενικό και ευρέως χρησιμοποιούμενο αρχιτεκτονικό μοντέλο ενός πράκτορα υπαγορεύει οι λειτουργίες αυτές να πραγματοποιούνται από αντίστοιχα τμήματα λογισμικού, τα οποία μπορούν να χαρακτηριστούν ως νοητικό ή γνωσιακό τμήμα, και όργανα δράσης (perception cognition action) [13]. 26

27 Το γνωσιακό τμήμα είναι αυτό το οποίο υλοποιεί τις συμπερασματικές διαδικασίες, δηλαδή αυτό που ονομάζουμε «νόηση» της οντότητας, επηρεάζοντας την επιλογή των προς εκτέλεση ενεργειών, διαμορφώνοντας "σχέδια δράσης", αντιλαμβανόμενο τη σημασιολογία των γεγονότων. Τέλος, είναι επίσης το τμήμα που είναι υπεύθυνο για τις - όποιες - δυνατότητες μάθησης του πράκτορα. Μέχρι σήμερα έχουν χρησιμοποιηθεί διάφορες αρχιτεκτονικές προσεγγίσεις για τη σχεδίαση και υλοποίηση ευφυών πρακτόρων. Οι κυριότερες από αυτές παρατίθενται ακολούθως. Ορθολογικοί Πράκτορες (Rational Agents) Η λήψη αποφάσεων δράσης γίνεται μέσο λογικής επαγωγής. Αντιδραστικοί πράκτορες (Reactive Agents) Οι αποφάσεις λαμβάνονται μέσο απευθείας αντιστοιχίας από κατάσταση σε δράση. BDI Πράκτορες ή Πράκτορες βασισμένοι σε Πιστεύω Επιθυμίες - Πρόθεσεις (Belief-Desire-Intention, BDI Agents) Η προσέγγιση BDI έχει χρησιμοποιηθεί ευρύτερα τόσο στη σχεδίαση όσο και στην ανάπτυξη Συστημάτων Πολλαπλών Πρακτόρων. Η λήψη αποφάσεων γίνεται με την διαχείριση ειδικών δομών που αναπαριστούν τα πιστεύω, τις επιθυμίες και τις προθέσεις του πράκτορα. Διαστρωματομένη Αρχιτεκτονική (Layered Agents) Η λήψη αποφάσεων γίνεται μέσο διαφορετικών επιπέδων λογισμικού, το κάθε ένα από τα οποία αποτελεί κρίση του περιβάλλοντος σε διαφορετικό επίπεδο αφαίρεσης Ορθολογικοί Πράκτορες (Rational Agents) Η παραδοσιακή προσέγγιση ανάπτυξης τεχνητά ευφυών συστημάτων (ή αλλιώς συμβολική τεχνητή νοημοσύνη), προτείνει ότι η ευφυής συμπεριφορά γεννιέται σ ένα σύστημα όταν τροφοδοτηθεί με τα εξής: μια συμβολική αναπαράσταση τόσο του περιβάλλοντος του μια συμβολική αναπαράσταση της επιθυμητής συμπεριφοράς του ένα σύστημα συντακτικής διαχείρισης των παραπάνω αναπαραστάσεων Για την μοντελοποίηση τέτοιων συστημάτων έχουν χρησιμοποιηθεί παραδοσιακές μαθηματικές τεχνικές. Έτσι για τις συμβολικές αναπαραστάσεις χρησιμοποιούνται λογικές φόρμουλες και για την συντακτική διαχείριση τους λογικά συμπεράσματα ή απόδειξη θεωρήματος. 27

28 Η ιδέα πρακτόρων με δράση βάσει αποδείξεων θεωρημάτων υπήρξε ελκυστική. Έτσι δημιουργήθηκαν φορμαλιστικές θεωρίες που περιγράφουν πως θα πρέπει να συμπεριφέρεται ένας ευφυής πράκτορας. Για παράδειγμα μια τέτοια θεωρία περιγράφει: πως ένας πράκτορας δημιουργεί στόχους προκειμένου να ανταποκριθεί στο σκοπό σχεδίασης του, πως ένας πράκτορας συμπεριφέρεται (αποφασίζει) προκειμένου να πετύχει αυτούς τους στόχους κτλ. Μια τέτοια θεωρία (θ) αποτελεί τις προδιαγραφές λειτουργίας (συμπεριφοράς) ενός πράκτορα. Η παραδοσιακή προσέγγιση υλοποίησης ενός συστήματος που θα ικανοποιεί προδιαγραφές συμπεριλαμβάνει μια βελτιωτική διαδικασία, κατά την οποία μέσω μιας σειράς από προοδευτικά, διακριτά στάδια, αυτές βελτιώνονται μέχρι την επίτευξη ε- νός συνόλου υλοποιήσιμων προδιαγραφών. Όσον αφορά στην υλοποίηση πρακτόρων με δράση βάσει αποδείξεων θεωρημάτων, δεν ακολουθείται καμία βελτιωτική διαδικασία. Απεναντίας η θεωρία θ αντιμετωπίζεται σαν ένα σύνολο εκτελέσιμων προδιαγραφών, που εκτελούνται κατευθείαν και έχουν σαν αποτέλεσμα την δημιουργία συμπεριφοράς πράκτορα Αντιδραστικοί Πράκτορες (Reactive Agents) Η αρχιτεκτονική των αντιδραστικών πρακτόρων ξεκίνησε να αναπτύσσεται στα μέσα της δεκαετίας του 80 από ομάδες επιστημόνων που αναζητούσαν εναλλακτικές στη συμβολική τεχνητή νοημοσύνη προσεγγίσεις. Διάφορες προσεγγίσεις προέκυψαν σαν αποτέλεσμα της αναζήτησης αυτής, οι οποίες αν και δύσκολο να κατηγοριοποιηθούν είχαν τα κοινά χαρακτηριστικά, που έθεσαν την βάση για την δημιουργία της αρχιτεκτονικής των αντιδραστικών πρακτόρων, τα οποία και ακολουθούν. Η απόρριψη των συμβολικών αναπαραστάσεων και της εξαγωγής αποφάσεων από την συντακτική διαχείριση τους. Η ιδέα ότι η ευφυής και λογική συμπεριφορά για ένα πράκτορα είναι ενδογενώς συνδεδεμένη με το περιβάλλον του και κατά συνέπεια αποτέλεσμα της αλληλεπίδρασης του πράκτορας με το περιβάλλον του. Η ιδέα ότι η ευφυής συμπεριφορά έρχεται σαν αποτέλεσμα αλληλεπίδρασης ε- πιμέρους απλών συμπεριφορών. Δύο είναι τα κύρια χαρακτηριστικά για αυτή την αρχιτεκτονική προσέγγιση. Σύμφωνα με το πρώτο οι αποφάσεις για τη δράση του πράκτορα παίρνονται βάσει της συνεχούς διερεύνησης του περιβάλλοντος. Δηλαδή ο πράκτορας δέχεται σαν είσοδο 28

29 την συνεχή αντίληψη του περιβάλλοντος και η δράση του είναι αποτέλεσμα μιας συνάρτησης που αντιστοιχίζει την τρέχουσα είσοδο σε κίνηση (αντίδραση): κατάσταση κίνηση Το δεύτερο κύριο χαρακτηριστικό αυτής της προσέγγισης είναι ότι πολλές συμπεριφορές μπορεί να ενεργοποιηθούν ταυτόχρονα. Αυτό σημαίνει ότι ενδέχεται σε κάποια κατάσταση να μπορούν να ενεργοποιηθούν παραπάνω από μια συναρτήσεις που θα δώσουν την επόμενη κίνηση (αντίδραση) για τον πράκτορα. Γίνεται λοιπόν κατανοητή η ανάγκη ενός μηχανισμού επιλογής της επόμενης κίνησης. Έτσι ανάλογα με τον σκοπό σχεδίασης του κάθε πράκτορα η επιλογή της επόμενης κίνησης μπορεί να γίνει με βάση κάποια κριτήρια (κόστος, ταχύτητα, ποσοστό κέρδους κτλ) ή βάση κάποιου ιεραρχικού μοντέλου Η Aρχιτεκτονική DBI Η αρχιτεκτονική των Πιστεύω-Επιθυμίων-Προθέσεων (BDΙ: Belief-Desire-Intention) έχει τις ρίζες της στην φιλοσοφική παράδοση κατανόησης: πρακτική κρίση -η διαδικασία να αποφασίζεις κάθε στιγμή πια κίνηση πρέπει να διεκπεραιωθεί για την προαγωγή των στόχων. Η πρακτική κρίση (practical reasoning) εμπεριέχει δυο σημαντικές διεργασίες: απόφαση του ποιοι σκοποί είναι επιθυμητό να επιτευχθούν και πως. Η πρώτη διεργασία είναι γνωστή σαν σκέψη (deliberation), ενώ η δεύτερη σαν κρίση μέσων-ολοκλήρωσης (means-ends reasoning). Προκειμένου να γίνει ευκολότερη η κατανόηση του μοντέλου BDI κρίνεται σκόπιμο να παρατεθεί ένα απλό παράδειγμα πρακτικής κρίσης. Έστω ότι κάποιος έχει μόλις τελειώσει το πανεπιστήμιο και βρίσκεται έτοιμος να αποφασίσει τι θα κάνει στη συνέχεια της ζωής του. Η διαδικασία απόφασης τυπικά ξεκινά με την προσπάθεια εντοπισμού των πιθανών διαθέσιμων εκδοχών. Για παράδειγμα αν ο βαθμός πτυχίου είναι πολύ καλός μια εκδοχή είναι να συνεχίσει σαν ακαδημαϊκός (αν ο βαθμός είναι χαμηλότερος συνήθως δεν υπάρχει αυτό το ενδεχόμενο). Μια άλλη εκδοχή θα μπορούσε να είναι η εισαγωγή του στην παραγωγή σε κάποια εταιρεία, βιομηχανία κ.ο.κ. Μετά την δημιουργία του συνόλου εναλλακτικών θα πρέπει να γίνει επιλογή κάποιων για να επιχειρηθούν. Οι επιλεγμένες εκδοχές γίνονται προθέσεις, οι οποίες καθορίζουν τις κινήσεις του πράκτορα. Οι προθέσεις αυτές θα επανατροφοδοτήσουν την μελλοντική πρακτική κρίση του πράκτορα. Αν, παραδείγματος χάριν, ο πράκτορας αποφασίσει να γίνει ακαδημαϊκός θα πρέπει να αφιερώσει χρόνο και προσπάθεια γι αυτό τον σκοπό στο μέλλον. 29

30 Οι προθέσεις παίζουν καθοριστικό ρόλο στην διαδικασία κρίσης. Ίσως η πιο προφανής ιδιότητα των προθέσεων είναι ότι τείνουν να οδηγήσουν σε δράση. Αν πραγματικά ο πράκτορας έχει πρόθεση να γίνει ακαδημαϊκός, αναμένεται απ αυτόν να δρα με βάση αυτή την πρόθεση για να την πετύχει. Για παράδειγμα, αναμένεται να κάνει αιτήσεις για διάφορα προγράμματα απόκτησης διδακτορικού τίτλου, καθώς ε- πίσης αναμένεται να κάνει λογική προσπάθεια επίτευξης του. Επίσης, αν μια ακολουθία κινήσεων αποτύχει αναμένεται από τον πράκτορα να ξαναπροσπαθήσει (δεν ε- γκαταλείπει στην πρώτη αποτυχία). Έτσι, η πρώτη αίτηση για διδακτορικό απορριφθεί, αναμένεται να γίνουν εναλλακτικές σε άλλα πανεπιστήμια. Επιπρόσθετα, από την στιγμή που ο πράκτορας έχει κάποια πρόθεση, το γεγονός αυτό θα περιορίζει την μελλοντική πρακτική κρίση. Δηλαδή, εφόσον υπάρχει πρόθεση για επίτευξη κάποιου στόχου, ενδεχόμενα κινήσεων, οι οποίες έρχονται σε αντιπαράθεση με την υπάρχουσα πρόθεση, δεν θα γίνονται αποδεκτά. Για παράδειγμα, όταν ο πράκτορας σκοπεύει (έχει πρόθεση) να γίνει ακαδημαϊκός, η εκδοχή των καθημερινών πάρτι αποκλείεται-τα δύο αυτά γεγονότα (ενδεχόμενα) είναι αμοιβαία αποκλειόμενα. Ένα άλλο σημαντικό χαρακτηριστικό των προθέσεων είναι ότι επιμένουν στην επίτευξή τους. Έτσι, ο πράκτορας που έχει αποφασίσει να γίνει ακαδημαϊκός θα επιμείνει σ αυτήν την προσπάθεια αφιερώνοντας χρόνο και διαθέσιμους πόρους. Παρόλα αυτά η επιμονή σε μια πρόθεση δεν πρέπει να ξεπερνά κάποια όρια-αν γίνει ξεκάθαρο ότι ο πράκτορας δεν μπορεί να γίνει ακαδημαϊκός θα εγκαταλείψει την πρόθεση αυτή. Επίσης, όταν οι λόγοι υιοθέτησης μιας πρόθεσης πάψουν να υπάρχουν και σ αυτή την περίπτωση ο πράκτορας την εγκαταλείπει. Για παράδειγμα, αν ο λόγος επιλογής της ακαδημαϊκής καριέρας ήταν ότι θεωρήθηκε εύκολη περίπτωση ζωής, αλλά στην συνέχεια ανακαλύπτεται ότι συμπεριλαμβάνει και διδασκαλία (δύσκολη κι ανεπιθύμητη διαδικασία για τον πράκτορα), τότε ο λόγος υιοθέτησης της πρόθεσης παύει να ισχύει και η συγκεκριμένη πρόθεση είναι λογικό να εγκαταλειφθεί. Τέλος, οι προθέσεις είναι στενά συνδεδεμένες με τα πιστεύω για το μέλλον. Αν ο πράκτορας έχει πρόθεση να γίνει ακαδημαϊκός τότε θα πιστεύει ότι θα γίνει α- καδημαϊκός. Θα ήταν παράλογο για κάποιο πράκτορα να υιοθετήσει μια πρόθεση που δεν πιστεύει πραγματικά ότι μπορεί να τον οδηγήσει σε επίτευξη στόχου. Έχοντας σαν πρόθεση (ο πράκτορας) να γίνει ακαδημαϊκός, θα πρέπει τουλάχιστον να πιστεύει ότι υπάρχει μια καλή πιθανότητα γι αυτό. Έτσι, γίνεται φανερό ότι οι προθέσεις παίζουν σημαντικό ρόλο στην πρακτική κρίση. 30

31 Οι προθέσεις οδηγούν τα μέσα-ολοκλήρωσης κρίσης. Αν ο πράκτορας έχει ξεκαθαρίσει την πρόθεση που να γίνει ακαδημαϊκός, τότε θα προσπαθήσει να το πετύχει, πράγμα που σημαίνει (μεταξύ άλλων) ότι θα αποφασίσει το πώς θα το πετύχει (π.χ. κάνοντας αιτήσεις για εγγραφή σε προγράμματα απόκτησης διδακτορικού τίτλου). Οι προθέσεις περιορίζουν την μελλοντική σκέψη. Ο πράκτορας που έχει πρόθεση να γίνει ακαδημαϊκός δεν θα εξετάσει εκδοχές που δεν συμφωνούν με την υπό διεκπεραίωση πρόθεση. Για παράδειγμα ένας λογικός πράκτορας δεν θα ε- ξετάσει το ενδεχόμενο να γίνει πλούσιος ενώ παράλληλα έχει ξεκινήσει την διεκπεραίωση της πρόθεσης του να γίνει ακαδημαϊκός. Οι προθέσεις επιμένουν να πραγματοποιηθούν. Κατά κανόνα μια πρόθεση δεν εγκαταλείπεται χωρίς κάποιο ισχυρό λόγο. Μια πρόθεση εγκαταλείπεται είτε επειδή ο πράκτορας πιστεύει ότι την έχει φέρει σε πέρας, είτε γιατί έχει πειστεί ότι δεν πρόκειται να την επιτύχει, είτε γιατί οι λόγοι επιδίωξης της δεν ισχύουν πια. Οι προθέσεις επηρεάζουν τα πιστεύω, στα οποία βασίζεται η μελλοντική πρακτική κρίση. Έχοντας υιοθετήσει την πρόθεση να γίνει ένας πράκτορας ακαδημαϊκός μπορεί να σχεδιάζει μελλοντικές κινήσεις του με δεδομένο (πιστεύοντας) ότι θα γίνει ακαδημαϊκός. Ένα καθοριστικό πρόβλημα για την σχεδίαση ευφυών πρακτόρων που θα υ- λοποιούν πρακτική κρίση, είναι η επίτευξη μιας αποδοτικής εξισορρόπησης των παραπάνω θέσεων-κανόνων. Προφανώς, για λόγους που αναφέρθηκαν, κάποιες φορές ο πράκτορας θα πρέπει να εγκαταλείπει μια πρόθεση του. Αυτό σημαίνει ότι κατά διαστήματα ο πράκτορας είναι καλό να σταματάει και να επανεξετάζει τις προθέσεις του. Αλλά η επανεξέταση αυτή έχει σίγουρα κάποιο κόστος, τόσο σε χρόνο όσο και σε υπολογιστικούς πόρους. Έτσι, γενικά έχουν παρατηρηθεί οι παρακάτω συμπεριφορές. Πράκτορες που δεν σταματούν για επανεξέταση των προθέσεων τους, οπότε συχνά συνεχίζουν να προσπαθούν για την πραγματοποίηση πρόθεσης, ενώ δεν υπάρχει λόγος πραγματοποίησης της. Πράκτορες που σταματάνε την δράση τους πολύ συχνά (στιγμιαία) για να επανεξετάσουν τις προθέσεις, οπότε ξοδεύουν υπερβολικά σε χρόνο και υπολογιστικούς πόρους, ριψοκινδυνεύοντας να μην πραγματοποιήσουν ποτέ τις προθέσεις τους λόγω καθυστέρησης. 31

32 Οι παραπάνω αντικρουόμενες συμπεριφορές και το πρόβλημα της ισορροπίας μεταξύ των δύο ανάγεται ουσιαστικά στο πρόβλημα εξισορρόπησης μεταξύ συμπεριφοράς προσανατολισμένης στο σκοπό (κατευθυνόμενη από το στόχο) και αντιδραστικής συμπεριφοράς (κατευθυνόμενη από τα γεγονότα), το οποίο έχει ήδη συζητηθεί. Στην προσπάθεια εύρεσης ιδανικής συμπεριφοράς για πράκτορες, έχουν εκπονηθεί διάφορες μελέτες για την εύρεση κατάλληλου συμβιβασμού για την εξισορρόπηση των παραπάνω δυο συμπεριφορών. Ο συμβιβασμός αυτός έχει μελετηθεί ιδιαίτερα από τους Mark D'Inverno, Michael Luck, Michael Georgeff, David Kinny, και Michael Wooldridge. με μια σειρά πειραμάτων με μια πλατφόρμα BDI πρακτόρων που ονόμασαν dmars [14]. Οι παραπάνω επιστήμονες διερεύνησαν πως οι τολμηροί πράκτορες (αυτοί που ποτέ δεν σταματούν για επανεξέταση) και οι προσεκτικοί πράκτορες (αυτοί που επανεξετάζουν τις προθέσεις τους πολύ συχνά) δρουν και αποδίδουν σε διάφορα περιβάλλοντα. 3 Περιγραφή Θέματος Το αντικείμενο της διπλωματικής αυτής εργασίας είναι η δημιουργία ενός περιβάλλοντος προσομοίωσης, στο οποίο κινούμενα οχήματα θα δέχονται πληροφορίες σχετικά με την κίνηση στους δρόμους, θα τις επεξεργάζονται και κατόπιν θα ακολουθούν τη βέλτιστη διαδρομή για τον προορισμό τους. Τα οχήματα θα είναι ευφυείς αυτόνομοι πράκτορες λογισμικού, που θα δέχονται πληροφορίες με ασύρματο τρόπο από βάσεις εκπομπής πληροφοριών ή, πιο απλά, κεραίες. Οι πληροφορίες που θα μεταδίδονται, θα περιγράφονται χρησιμοποιώντας τεχνολογίες του Σημασιολογικού Ιστού. Κατόπιν, θα πραγματοποιηθούν κάποιες μετρήσεις σχετικά με το χρόνο μετακίνησης του αυτοκινήτου από την αφετηρία μέχρι τον τελικό προορισμό του σε τρεις διαφορετικές περιπτώσεις. Στην πρώτη τα αυτοκίνητα θα καλούνται να διανύσουν μία προκαθορισμένη διαδρομή σε δρόμους χωρίς καθόλου εμπόδια. Στη δεύτερη οι δρόμοι θα περιέχουν εμπόδια αλλά στο περιβάλλον δε θα συμπεριληφθεί η χρήση των κεραιών, ενώ στην τρίτη θα περιέχονται τόσο τα εμπόδια όσο και οι κεραίες. Οι μετρήσεις αυτές θα χρησιμοποιηθούν για την εξαγωγή χρήσιμων συμπερασμάτων σχετικά με τη βελτίωση της κίνησης στους δρόμους. 32

33 3.1 Αυτόνομοι Ευφυείς Πράκτορες Λογισμικού Το περιβάλλον θα υλοποιηθεί στην πλατφόρμα προσομοίωσης πρακτόρων Agent Sheets, η οποία θα περιγραφεί αναλυτικά στο Κεφάλαιο 4. Η πλατφόρμα, υποστηρίζει ευφυείς αυτόνομους πράκτορες που στην περίπτωση αυτή είναι τα αυτοκίνητα, οι δρόμοι πάνω στους οποίους κινούνται, τα εμπόδια που παρουσιάζονται στους δρόμους, τα σπίτια που υπάρχουν, καθώς και οι κεραίες που θα χρησιμοποιηθούν για την εκπομπή πληροφοριών. Τέλος, υπάρχει και ο πράκτορας όνομα, ο οποίος χρησιμοποιείται για τη χαρτογράφηση της περιοχής που μελετάται Ο Πράκτορας Αυτοκίνητο Τα αυτοκίνητα κινούνται σε μία συγκεκριμένη περιοχή, που σχεδιάστηκε για τις ανάγκες αυτής της προσομοίωσης. Το κάθε αυτοκίνητο έχει προκαθορισμένη αφετηρία αλλά και τελικό προορισμό. Οι ενδιάμεσες διαδρομές εξαρτώνται από τις επιλογές του κάθε πράκτορα, οι οποίες διαμορφώνονται ανάλογα με τις πληροφορίες που δέχεται. Τα αυτοκίνητα μπορούν να δέχονται πληροφορίες από άλλους πράκτορες όπως για παράδειγμα τις κεραίες. Σε περίπτωση που το αυτοκίνητο δε δεχτεί κάποια επιπρόσθετη εξωτερική πληροφορία, είτε γιατί δεν υπάρχει κάποια κεραία σε απόσταση εμβέλειας, είτε γιατί δεν είναι σε θέση, για οποιοδήποτε λόγο, να επικοινωνήσει με κάποιο άλλο πράκτορα, θα κινηθεί βάσει των αρχικών του δεδομένων, που καθορίζουν εκ των προτέρων τη διαδρομή του. Το κάθε αυτοκίνητο δεν έχει κανένα περιορισμό στον τρόπο μετακίνησής του. Μπορεί να στρίψει αριστερά, δεξιά, πάνω αλλά και κάτω αρκεί να κινείται σε κάποιο δρόμο χωρίς εμπόδια. Αν ο δρόμος που έχει επιλέξει να κινηθεί έχει εμπόδια τότε υπάρχουν κάποιοι περιορισμοί που θα αναλυθούν στην παρακάτω ενότητα Ο Πράκτορας Εμπόδιο Όπως και στην πραγματική ζωή έτσι και στην προσομοίωση είναι πολύ πιθανόν να υπάρχουν εμπόδια πάνω στους δρόμους. Αυτά μπορεί να είναι είτε φυσικά, όπως για παράδειγμα μια λακκούβα ή μια καταρρακτώδης βροχή, αλλά και τεχνητά όπως έργα του μετρό. Η ύπαρξη ορισμένων από αυτά καθιστούν αδύνατη τη διέλευση αυτοκινήτων κατά μήκος του δρόμου, στον οποίο βρίσκονται, ενώ κάποια άλλα την επιτρέπουν υπό προϋποθέσεις. 33

34 Για παράδειγμα εάν βρέχει καταρρακτωδώς σε κάποια περιοχή τα αυτοκίνητα μπορούν να διασχίσουν τους δρόμους αλλά με προσοχή λόγω της ολισθηρότητάς τους, με άλλα λόγια αρκεί να μειώσουν την ταχύτητά τους. Εάν όμως ξεσπάσει μια πυρκαγιά πάνω στο δρόμο για οποιαδήποτε αιτία τότε τα αυτοκίνητα δε θα είναι σε θέση να διασχίσουν τον δρόμο αυτό για ευνόητους λόγους. Ακόμη και αν για έργα του μετρό αποκλειστεί κάποιο κομμάτι δρόμου πάλι δε θα μπορεί το αυτοκίνητο να περάσει από εκείνο το σημείο. Συνεπώς τα εμπόδια χωρίζονται σε δύο μεγάλες κατηγορίες. Στην πρώτη, που ονομάζεται Μικρή Καταστροφή (Small Disaster), ανήκουν όσα επιτρέπουν τη διέλευση αυτοκινήτων από το σημείο στο οποίο βρίσκονται, μειώνοντας, όμως, την ταχύτητά τους. Στη δεύτερη, που ονομάζεται Μεγάλη Καταστροφή (Big Disaster), ανήκουν εκείνα τα οποία δεν επιτρέπουν τη διέλευση αυτοκινήτων από το συγκεκριμένο τμήμα του δρόμου στο οποίο βρίσκονται Ο Πράκτορας Κεραία Η κάθε κεραία έχει μία περιοχή εμβέλειας, μέσα στα όρια της οποίας μπορεί να αντιληφθεί την ύπαρξη κάποιου φυσικού ή τεχνητού εμποδίου. Επομένως, για την κάλυψη μιας συγκεκριμένης περιοχής, απαιτούνται περισσότερες από μία κεραίες. Το AgentSheets δίνει τη δυνατότητα στις κεραίες να εκπέμπουν την ίδια πληροφορία τόσο προς όλες τις κεραίες όσο και προς όλα τα αυτοκίνητα που συμμετέχουν στην προσομοίωση. Όταν κάποια κεραία αντιληφθεί την ύπαρξη οποιουδήποτε εμποδίου εντός της εμβέλειάς της, ενημερώνει όλα τα αυτοκίνητα στέλνοντας την κατάλληλη πληροφορία. Τα αυτοκίνητα με τη σειρά τους, λαμβάνουν αυτήν την πληροφορία και την επεξεργάζονται καλώντας εξωτερικές συναρτήσεις γραμμένες σε γλώσσα προγραμματισμού Java. Με τη βοήθεια των τελευταίων αντιλαμβάνονται το είδος του εμποδίου, ή αλλιώς την κατηγορία, στην οποία ανήκει το εμπόδιο, και έτσι αποφασίζουν τη διαδρομή που θα ακολουθήσουν, προκειμένου να φτάσουν πιο σύντομα στον τελικό προορισμό τους Ο Πράκτορας Όνομα Για τις ανάγκες της προσομοίωσης πραγματοποιήθηκε ένα είδος χαρτογράφησης της περιοχής, με τη βοήθεια του πράκτορα όνομα (1,2,..,9) και φαίνεται στην εικόνα που ακολουθεί. 34

35 Εικόνα 9-Χαρτογράφηση της περιοχής Υπόλοιποι Πράκτορες της Προσομοίωσης Οι υπόλοιποι πράκτορες που πλαισιώνουν το περιβάλλον είναι εκείνοι που θα χρησιμοποιηθούν για τη σχεδίαση του γραφικού περιβάλλοντος της προσομοίωσης όπως είναι ο Πράκτορας Δρόμος, Σπίτι και Πράσινο. Η ύπαρξη του πράκτορα Δρόμος αποτελεί την ικανή και αναγκαία συνθήκη για τη μετακίνηση των αυτοκινήτων. Βάσει της λογικής αλλά και του σχεδιασμού της προσομοίωσης, ένα αυτοκίνητο μπορεί να κινηθεί προς οποιαδήποτε κατεύθυνση αρκεί να υπάρχει κάποιος δρόμος. Σε οποιαδήποτε άλλη περίπτωση το αυτοκίνητο θα παραμείνει ακίνητο στην αρχική θέση που τοποθετήθηκε. Οι άλλοι δύο πράκτορες Σπίτι και Πράσινο υπάρχουν καθαρά και μόνο για τη βελτίωση της αισθητικής του τελικού περιβάλλοντος προσομοίωσης και δεν έχουν συμμετοχή στη διάταξη του πειράματος. 3.2 Μεταδιδόμενες Πληροφορίες Οι πληροφορίες που θα μεταδίδουν οι κεραίες στα αυτοκίνητα θα περιγράφονται χρησιμοποιώντας τεχνολογίες του Σημασιολογικού Ιστού και, πιο συγκεκριμένα, τη γλώσσα αναπαράστασης πληροφορίας RDF. Σύμφωνα όμως με όσα αναφέρονται στο Κεφάλαιο 2, θα πρέπει να δημιουργηθεί μια οντολογία εμποδίων, η οποία παρουσιάζεται αναλυτικά στην παρακάτω ενότητα. 35

36 Από τη στιγμή που το αυτοκίνητο λάβει την πληροφορία που του έχει αποσταλεί, μέσω ενός αρχείου rdf από την κεραία, προβαίνει αμέσως στην επεξεργασία της. Η επεξεργασία των rdf αρχείων θα πραγματοποιείται από τα οχήματα μέσω εξωτερικών συναρτήσεων που τα ίδια θα καλούν. Οι συναρτήσεις αυτές θα δημιουργηθούν στη Jena, μια πλατφόρμα της Java (βλ. επόμενο κεφάλαιο), και κατά την εκτέλεσή τους, τα εμπόδια που ανιχνεύτηκαν από τις κεραίες θα κατατάσσονται σε μία από τις προαναφερθείσες κατηγορίες. Το αποτέλεσμα της κατάταξης θα καθορίζει και τη διαδρομή του αυτοκινήτου. 3.3 Οντολογία Εμποδίων Για τις ανάγκες της προσομοίωσης θα δημιουργηθεί μία οντολογία εμποδίων, στην οποία θα υπάρχουν δύο μεγάλες κλάσεις, στις οποίες θα ανήκουν τα εμπόδια. Η μία κλάση θα περιέχει εκείνα, τα οποία δε θα επιτρέπουν τη διέλευση των αυτοκινήτων πάνω από το δρόμο στον οποίο βρίσκονται, ενώ η άλλη θα περιέχει εμπόδια, τα οποία θα επιτρέπουν τη διέλευση των οχημάτων υπό προϋποθέσεις. Επιπλέον, και οι δύο μεγάλες κλάσεις θα είναι υποκλάσεις της κλάσης Καταστροφής. Μία απλή σχηματική αναπαράσταση τους παρουσιάζεται στην εικόνα που ακολουθεί. Εικόνα 10- Σχηματική αναπαράσταση Οντολογίας Έστω για παράδειγμα ότι η κεραία ανιχνεύει Λάδι σε ένα σημείο του δρόμου. Απευθείας στέλνει ένα rdf αρχείο στα αυτοκίνητα για να περιγράψει το εμπόδιο. Τα αυτοκίνητα, μόλις το λάβουν, καλούν μια εξωτερική συνάρτηση η οποία το διαβάζει και, με τη βοήθεια της σημασιολογικής πληροφορίας, που περιέχεται στην οντολογία, την οποία έχουν αποθηκευμένη όλα τα οχήματα, επιστρέφει στο αυτοκίνητο την πληροφορία ότι το Λάδι ανήκει στην κλάση Μικρή Καταστροφή. Έτσι το αυτοκίνητο 36

37 αντιλαμβάνεται ότι όταν θα φτάσει σε εκείνο το κομμάτι του δρόμου θα πρέπει να μειώσει την ταχύτητά του για να το διασχίσει. 4 Ανάλυση Εργαλείων Στην ενότητα αυτή θα παρουσιασθούν όλα τα εργαλεία λογισμικού που χρησιμοποιήθηκαν για την επίλυση του προβλήματος της εργασίας. Αρχικά θα αναλυθεί το Agent- Sheets, ένα πρόγραμμα στο οποίο κινούνται και αλληλεπιδρούν μεταξύ τους οι πράκτορες. Η επόμενη ενότητα θα αφιερωθεί στην παρουσίαση της Jena, που με τη βοήθεια κάποιων βιβλιοθηκών της δημιουργήθηκαν οι εξωτερικές συναρτήσεις, που χρησιμοποιούν τα αυτοκίνητα, προκειμένου να αναγνωρίσουν τα εμπόδια, που υπάρχουν στους δρόμους και κατ επέκταση να καθορίσουν τη συμπεριφορά τους κατάλληλα. 4.1 Γενική περιγραφή του AgentSheets Το AgentSheets είναι ένα επαναστατικό περιβάλλον, που συνδυάζει πράκτορες, υπολογιστικά φύλλα και τη Java σε ένα απλό μέσο. Πιο αναλυτικά, είναι ένα φύλλο εργασίας (spreadsheet) βασισμένο σε πράκτορες (agents) που μπορεί να χρησιμοποιηθεί για να δημιουργηθούν αλληλεπιδραστικές εξομοιώσεις παρόμοιες με το SimCity [15], εποπτικά προγραμματιστικά περιβάλλοντα προσανατολισμένα σε συγκεκριμένα πεδία γνώσης, παιχνίδια, καθώς και κυψελικά αυτόματα. Συνδυασμένο με την εποπτική μέθοδο προγραμματισμού Visual AgenTalk [16], την οποία ενσωματώνει, το AgentSheets είναι ένα ευέλικτο υπολογιστικό μέσο για μια ποικιλία από τελικούς χρήστες υπολογιστών, που κυμαίνεται από μαθητές (νηπιαγωγείου-δημοτικού) έως επαγγελματίες. Πάνω από 100 εφαρμογές έχουν δημιουργηθεί με το περιβάλλον AgentSheets σε περιοχές που περιλαμβάνουν την εκπαίδευση, την τέχνη, την επιστήμη υπολογιστών και τη μηχανική. Έχει χρησιμοποιηθεί από μαθητές του δημοτικού μέχρι επιστήμονες της NASA σε μια μεγάλη ποικιλία εφαρμογών. Παιδιά του δημοτικού έ- χουν χρησιμοποιήσει το AgentSheets στα πλαίσια της μελέτης περιβάλλοντος, ειδικότερα σε θέματα σχετικά με τροφικές αλυσίδες, οικοσυστήματα και τη δημιουργία νέ- 37

38 ων οργανισμών. Μαθητές της δευτεροβάθμιας εκπαίδευσης δημιούργησαν αλληλεπιδραστικές αναπαραστάσεις ιστορικών γεγονότων όπως το Montgomery bus boycott [17], το California grape boycott [18] και τις επιπτώσεις του αυτοκινήτου στην ιστορία του 20 ου αιώνα. Ομάδες καθηγητών και ειδικών σε εκπαιδευτικά θέματα το χρησιμοποίησαν για να αναπτύξουν προσομοιώσεις για τα μαθηματικά δευτεροβάθμιας εκπαίδευσης. Ψυχίατροι ανέπτυξαν προσομοιώσεις για να επιδείξουν στους ασθενείς τους τις συσχετίσεις μεταξύ του φαρμάκου Prozac, του νευροδιαβιβαστή Σεροτονίνη και νευρώνων. Επιστήμονες της NASA το χρησιμοποίησαν για να προσομοιώσουν τις επιπτώσεις της μικροβαρύτητας πάνω στα βακτήρια E.coli[19], ένα πείραμα που έγινε στη διαστημική αποστολή με τον John Glenn [20]. Όλα τα παραπάνω είναι προσβάσιμα από το χρήστη μέσω του μενού Αρχείο Άνοιγμα Έργου. Στην Εικόνα 11 παρουσιάζεται ένα από τα πολλά μοντέλα του AgentSheets. Εικόνα 11 Bridge Builder Φορτώνοντας κάποια από αυτά τα μοντέλα (βλ. Εικόνα 11) δίνεται η δυνατότητα στο χρήστη να πειραματιστεί με τις ήδη έτοιμες προσομοιώσεις και να εξοικειωθεί με το γραφικό περιβάλλον του AgentSheets, με αποτέλεσμα να είναι σε θέση να αναπτύξει τη δική του προσομοίωση με γρήγορο και προπαντός εύκολο τρόπο. Η προσπάθειά του αυτή ενισχύεται ακόμη περισσότερο από την ύπαρξη μιας πληθώρας λεπτομερών εγχειριδίων χρήσης (Documentation and tutorials). 38

39 4.1.1 Ιστορική Αναδρομή του AgentSheets Το προγραμματιστικό περιβάλλον AgentSheets είναι ένα προϊόν δεκαετούς έρευνας. Αρχικά ξεπήδησε από την ιδέα της κατασκευής ενός νέου τύπου υπολογιστικού μέσου που θα έδινε τη δυνατότητα στους χρήστες να δημιουργήσουν παράλληλες και αλληλεπιδραστικές προσομοιώσεις αντικαθιστώντας αριθµούς ή φράσεις στο Excel µε πράκτορες που συμπεριφέρονται. Οι δημιουργοί αυτού του επαναστατικού περιβάλλοντος είναι ο Alexander Repenning και Ronald Sudomo [21] δέκα χρόνια πριν. Το έργο τους χρηματοδοτήθηκε από το Εθνικό Ίδρυμα Ερευνών με πόρους του Νο. DMI , RED , και ενισχύθηκε από το RED Το ερευνητικό έργο AgentSheets και η εταιρεία AgentSheets Inc. ενισχύθηκαν από το Εθνικό Ίδρυμα Ερευνών (REC , REC , CDA ) Σε αυτό το αρχικό στάδιο το AgentSheets ήταν ένας πολύπλοκος προσομοιωτής που απαιτούσε ισχυρούς υπολογιστές και επαγγελµατικές γνώσεις προγραμματισμού. Με το χρόνο όμως, εξελίχθηκε σε ένα γρήγορο προσομοιωτή που τρέχει σε προσωπικούς υπολογιστές και δεν απαιτεί καµιά προγραμματιστική εμπειρία. Αυτή η εξέλιξη κατέστη δυνατή µε μια εντελώς διαφορετική προσέγγιση στον προγραμματισμό. Η νέα αυτή προσέγγιση του προγραμματισμού καλείται «απτικός προγραμματισμός» (Tactile Programming) και θα παρουσιασθεί αναλυτικά σε επόμενη ενότητα. Την τελευταία τριετία πραγματοποιήθηκε ο εξελληνισμός του προγράμματος από τους Σπυρόπουλο Χαράλαμπο, Εκπαιδευτικό - Υπ. Διδάκτορα Παν. Μακεδονίας και τον Βίγκλα Λίνο - Εκπαιδευτικό - Επιμορφωτή ΤΠΕ Απαιτήσεις του AgentSheets Το AgentSheets τρέχει αποτελεσματικά σε υπολογιστές Pentium II ή Celeron, ακόμη και σε παλιότερους Pentium. Οι απαιτήσεις του συστήματος για το AgentSheets 2.5. για τις εκδόσεις των Microsoft Windows παρουσιάζονται στον πίνακα που ακολουθεί. Πίνακας 1 Απαιτήσεις του AgentSheets Απαιτήσεις του Συστήματος Ελάχιστες Προτεινόμενες Ελεύθερος χώρος στο σκληρό δίσκο: AgentSheets, Τεκμηρίωση 60 ΜΒ,5 ΜΒ 60 ΜΒ,5 ΜΒ RAM Συστήματος 96 ΜΒ 128 ΜΒ Ταχύτητα Επεξεργαστή 200 ΜHz 500 ΜHz 39

40 4.1.3 Χαρακτηριστικά του AgentSheets Ο απτικός προγραμματισμός αποτελεί τη βάση του AgentSheets και προχωρά ένα εννοιολογικό σκαλοπάτι πέρα από τον οπτικό προγραμματισμό (visual programming). Επιτρέπει στους χρήστες να δοκιμάζουν στην κυριολεξία τον προγραμματισμό κατά έναν τρόπο χειροπιαστό. Η γλώσσα προγραμματισμού του, η Visual AgentTalk (VAT), είναι μια δομημένη γλώσσα που περιλαμβάνει συνθήκες, δράσεις και κανόνες τα οποία είναι ολοκληρωμένα αντικείμενα προς διερεύνηση. Κάθε στιγμή, μπορεί να επιλεγεί μια συνθήκη, μια δράση ή ένας κανόνας και να ελεγχθεί άμεσα χωρίς να χρειάζεται εξαρχής να κατασκευαστεί ένα ολοκληρωμένο πρόγραµµα. Είναι δυνατή η διερεύνηση και ο έλεγχος ερωτήσεων όπως: Ισχύει αυτή η συνθήκη για τον πράκτορα; Τι θα συμβεί αν αυτός ο πράκτορας εκτελέσει αυτή τη δράση; Θα τρέξει αυτός ο κανόνας; Αν ναι, ποιες θα είναι οι συνέπειες; Επιπρόσθετα, μπορεί να επιλεγεί κάθε συνθήκη, δράση και κανόνας και να εμφανιστούν οι αντίστοιχες επεξηγήσεις τους µε εφέ κίνησης (τα λεγόµενα Αnimated Τooltips ). Όλα τα παραπάνω παρουσιάζονται αναλυτικά στο παράρτημα που βρίσκεται συννημένο στο τέλος της διπλωματικής εργασίας. Οι πράκτορες είναι αντικείμενα που προγραμματίζονται από το χρήστη και αντιδρούν σε κλικ του ποντικιού και πατήματα κουμπιών του πληκτρολογίου. Επιπλέον, κινούνται, αλλάζουν εμφάνιση, μιλούν, διαβάζουν ιστοσελίδες και κάνουν υ- πολογισμούς. Δεκάδες, εκατοντάδες ή ακόμα και χιλιάδες πράκτορες αλληλεπιδρούν μεταξύ τους σε ένα υπολογιστικού τύπου πλαίσιο ή πλέγμα για να δημιουργήσουν μια προσομοίωση του AgentSheets. 4.2 Δομικά στοιχεία του AgentSheets Στο AgentSheets, ένα έργο αποτελείται από πράκτορες που είναι οργανωμένοι στην εικονοθήκη (Εικόνα 12), τη συμπεριφορά των πρακτόρων (Εικόνα 13), και τον κόσμο της προσομοίωσης, που ονομάζεται «πεδίο εργασίας», στον οποίο οι πράκτορες αλληλεπιδρούν. Στην εικονοθήκη παρουσιάζεται κάθε πράκτορας, που περιλαμβάνει το έργο. Κάθε πράκτορας ανήκει σε μία κλάση, π.χ. Obstacle και μπορεί να έχει μία οποιαδήποτε απεικόνιση. Η απεικόνιση είναι η διαφορετική μορφή που μπορεί να έχει ένας 40

41 πράκτορας που ανήκει στην ίδια κλάση. Για παράδειγμα αν ανήκει στην κλάση Obstacle μπορεί να έχει απεικόνιση Fire,Works, Ice, κλπ ενώ αν ανήκει στην κλάση Antenna θα έχει αναγκαστικά την απεικόνιση Antenna. Εικόνα 12-Εικονοθήκη Στη συμπεριφορά ενός πράκτορα καθορίζεται ουσιαστικά ο τρόπος λειτουργίας του. Αρχικά ορίζονται μέθοδοι, οι οποίες περιλαμβάνουν κανόνες. Κάθε κανόνας περιλαμβάνει συνθήκες και δράσεις. Αν μια συνθήκη ικανοποιείται, τότε εκτελούνται οι δράσεις. 41

42 Εικόνα 13-Παράθυρο συμπεριφοράς του πράκτορα Antenna Στο πεδίο εργασίας απεικονίζεται η διάταξη των πρακτόρων. Είναι ουσιαστικά ο χώρος στον οποίο τοποθετούνται και δρούν οι πράκτορες. Μπορεί να περιέχει πολλούς πράκτορες ταυτόχρονα ακόμη και να βρίσκεται ο ένας πάνω στον άλλο. Ένα νέο πεδίο εργασίας δημιουργείται από τη γραμμή μενού ακολουθώντας τη διαδρομή Αρχείο Νέο Πεδίο Εργασίας και εμφανίζεται αρχικά ένα κενό παράθυρο όπως φαίνεται στην Εικόνα 14. Εικόνα 14-Κενό πεδίο εργασίας 42

43 Για την τοποθέτηση πρακτόρων στο πεδίο εργασίας επιλέγεται αρχικά ένας πράκτορας από την εικονοθήκη και συγκεκριμένα η επιθυμητή απεικόνισή του. Στη συνέχεια επιλέγεται το εργαλείο μολύβι από την εργαλειοθήκη που βρίσκεται στα α- ριστερά του πεδίου εργασίας και με ένα κλικ τοποθετείται ο κάθε πράκτορας στο α- ντίστοιχο σημείο του πεδίου. Η διαδικασία συνεχίζεται μέχρι να τοποθετηθούν όλοι οι πράκτορες στο πεδίο εργασίας. Το πεδίο εργασίας του έργου Traffic_Problem παρουσιάζεται στην παρακάτω εικόνα. Εικόνα 15-Πεδίο εργασίας του Traffic_problem 4.3 Κατασκευή συμπεριφοράς πρακτόρων Η κατασκευή της συμπεριφοράς πρακτόρων προκύπτει συνδυάζοντας συνθήκες και δράσεις σε κανόνες, οι οποίοι ομαδοποιούνται σε μεθόδους στον Επεξεργαστή Συμπεριφοράς. Μια συμπεριφορά περιγράφει τι κάνει ένας πράκτορας. Οι συμπεριφορές των πρακτόρων εκφράζονται στη Visual AgentTalk ως κανόνες ΑΝ ΤΟΤΕ (IF THEN) που περιλαμβάνουν δράσεις και συνθήκες. Οι δράσεις και οι συνθήκες είναι τα δομικά στοιχεία που χρησιμοποιούνται για τον καθορισμό της συμπεριφοράς ενός πράκτορα. Ενδεικτικά κάποιες παρουσιάζονται στην Εικόνα 16. Στο Παράρτημα (Ενότητα 9) παρουσιάζονται αναλυτικά όλες οι δράσεις και οι συνθήκες του λογισμικού AgentSheets. 43

44 Εικόνα 16-Συνθήκες και Δράσεις Οι ενεργοποιητές καθορίζουν, πότε θα ελεγχθούν οι κανόνες μιας μεθόδου. Τοποθετούνται ως κεφαλίδες στις μεθόδους, που ορίζουν τη συμπεριφορά των πρακτόρων και ανάλογα με την ετικέτα του ενεργοποιητή καθορίζεται το πότε θα κληθεί η συγκεκριμένη μέθοδος. Η πρόσβαση σε αυτούς είναι εφικτή αν από το μενού Εργαλεία επιλεγεί η καρτέλα Συλλογή Ενεργοποιητών. Το AgentSheets διαθέτει πέντε διαφορετικούς ενεργοποιητές (Κατά τη δημιουργία νέου πράκτορα, Κατά τη λειτουργία, Στο άκουσμα, Εργαλείο, Ποντίκι) οι οποίοι παρουσιάζονται στην Εικόνα 17 και περιγράφονται αναλυτικά παρακάτω. 44

45 Εικόνα 17 Ενεργοποιητές του AgentSheets Ο ενεργοποιητής Κατά τη δημιουργία νέου πράκτορα φαίνεται στην Εικόνα 18. Εκτελεί τους κανόνες της μεθόδου, στην οποία βρίσκεται ως επικεφαλίδα, κάθε φορά που δημιουργείται ένας νέος πράκτορας αυτού του τύπου στο πεδίο εργασίας. Συνήθως αυτός ο ενεργοποιητής χρησιμοποιείται για την αρχικοποίηση της κατάστασης ενός νέου πράκτορα. Στο έργο Traffic_Problem η χρήση αυτού του ενεργοποιητή παρουσιάζεται ενδεικτικά στην παρακάτω εικόνα και αναφέρεται στη συμπεριφορά του πράκτορα Antenna. Εικόνα 18-Ενεργοποιητής «Κατή τη δημιουργία νέου πράκτορα» Ο ενεργοποιητής Κατά τη λειτουργία καλείται σε κάθε κύκλο εκτέλεσης της προσομοίωσης. Η συμπεριφορά ενός πράκτορα πρέπει να έχει μόνο μία μέθοδο με 45

46 αυτόν τον ενεργοποιητή. Ενδεικτικό παράδειγμα για το έργο Traffic_Problem παρουσιάζεται στην παρακάτω εικόνα. Εικόνα 19-Ενεργοποιητής «Κατά τη λειτουργία» Ο ενεργοποιητής Στο Άκουσμα επιτρέπει την ονομασία μιας μεθόδου με κάποιο όνομα, με βάση το οποίο θα κληθεί κατά τη διάρκεια της λειτουργίας της προσομοίωσης. Συγκεκριμένα, η μέθοδος αυτή καλείται όταν το κατάλληλο μήνυμα σταλεί από κάποιον πράκτορα μέσω των δράσεων Κάνω ή Εκπέμπω. Το μήνυμα που μεταδίδεται πρέπει να είναι ένα έγκυρο όνομα. Με τη λήψη του μηνύματος, ένας πράκτορας καλεί τη μέθοδο που αναφέρεται στο μήνυμα αυτό και εκτελεί τις δράσεις που υπάρχουν στη μέθοδο σύμφωνα με τους κανόνες της. Ενδεικτικό παράδειγμα της μεθόδου αυτής στο έργο Traffic_Problem παρουσιάζεται στην παρακάτω εικόνα. 46

47 Εικόνα 20-Ενεργοποιητής «Στο άκουσμα» Ο ενεργοποιητής Εργαλείο φαίνεται στην Εικόνα 17. Χρησιμοποιείται για να προγραμματιστεί ο τρόπος αντίδρασης του πράκτορα όταν πραγματοποιηθεί κλικ πάνω του με κάποιο εργαλείο από αυτά που είναι διαθέσιμα πάνω στο πεδίο εργασίας. Ενδεικτικό παράδειγμα της μεθόδου αυτής στο έργο Game_of_Life παρουσιάζεται στην Εικόνα 21. Αν ο χρήστης κάνει κλικ με το εργαλείο μολύβι πάνω στον πράκτορα Cell τότε γίνεται εναλλαγή της απεικόνισής του από ζωντανός σε νεκρός. Εικόνα 21 Ενεργοποιητής «Εργαλείο» 47

48 Από τα παραπάνω γίνεται αντιληπτό πως σε όλους τους ενεργοποιητές περιέχονται μέθοδοι, που αποτελούνται από έναν αριθμό κανόνων, των οποίων οι συνθήκες ελέγχονται και αν είναι αληθής εκτελούνται οι αντίστοιχες δράσεις. Πιο αναλυτικά, ο έλεγχος της λίστας των κανόνων πραγματοποιείται από πάνω προς τα κάτω και εκτελείται ο πρώτος κανόνας του οποίου όλες οι συνθήκες είναι αληθείς. Η εκτέλεση της προσομοίωσης συνεχίζεται ξανατρέχοντας τον ενεργοποιητή «Κατά τη λειτουργία». Εφόσον, ικανοποιούνται όλες οι συνθήκες ενός κανόνα, εκτελούνται και όλες οι δράσεις του. Οι κανόνες που βρίσκονται παρακάτω δε θα ελεγχθούν. Συνεπώς η σειρά τοποθέτησης των κανόνων στην κάθε μέθοδο καθορίζει την εξέλιξη της προσομοίωσης. 4.4 Δημιουργία Applet Κάθε προσομοίωση του AgentSheets μπορεί να μετατραπεί σε Java applet με την ύ- παρξη ενός απλού φυλλοµετρητή (web browser). To Java Applet είναι ένα πρόγραμμα που τρέχει σε µια ιστοσελίδα, σε οποιαδήποτε πλατφόρμα. Αυτό σημαίνει ότι όλοι όσοι διαθέτουν ένα φυλλοµετρητή που υποστηρίζει Java μπορούν να τρέξουν ένα applet σε Mac OS, Windows, Unix, Linux ή οποιοδήποτε άλλο λειτουργικό σύστημα. Μόλις μετατραπεί ένα έργο του AgentSheets σε Java Applet, μπορεί να μεταφερθεί σε έναν εξυπηρετητή του διαδικτύου ή να αντιγραφεί σε δισκέτα, σε CD ή και σε ο- ποιοδήποτε άλλο αποθηκευτικό μέσο. Mπορεί ακόμα και να αποσταλεί µέσω ηλεκτρονικού ταχυδρομείου. Όλα τα παραπάνω παρέχονται από το πρόγραμμα χωρίς την ύπαρξη επιπρόσθετων προγραµµάτων (plugins). Η δημιουργία μιας ιστοσελίδας που να περιλαμβάνει το Java Applet είναι πολύ απλή υπόθεση, αφού πραγματοποιείται με το πάτημα του κουμπιού Ristretto, που φαίνεται στην εικόνα ακολούθως. Εικόνα 22- Κουμπί Ristretto Αφού καθοριστεί ο φάκελος όπου το applet θα αποθηκευθεί (η προκαθορισμένη τοποθεσία είναι η επιφάνεια εργασίας) το επόμενο βήμα είναι το πάτημα του κουμπιού Εκκίνηση. Είναι καλή πρακτική να συμπληρώνεται το πεδίο Περιγραφή για την ιστοσελίδα γιατί μπορεί να χρησιμοποιηθεί ως βοήθημα από τους χρήστες. Όλα τα παραπάνω παρουσιάζονται στις εικόνες που ακολουθούν. 48

49 Εικόνα 23 Σύντομη Περιγραφή Προσομοίωσης Εικόνα 24-Java Applet 49

50 4.5 Ανάπτυξη Plugin To ΑgentSheets δίνει τη δυνατότητα στο χρήστη να κατασκευάσει διάφορα Plugins για την προσομοίωσή του με πολύ γρήγορο και εύκολο τρόπο, γράφοντας κώδικα σε java. Ο κύριος στόχος της αρχιτεκτονικής των plugins είναι η απλότητα στη χρήση αφού απαιτούν μόνο τις άκρως απαραίτητες πληροφορίες στον κώδικα σε αντίθεση με άλλα περιβάλλοντα που απαιτούν τη χρήση κάποιου Advanced Programming Interface (API) που περιέχει σύνθετες κλάσεις, ιεραρχίες και τρόπους επικοινωνίας. Χρησιμοποιώντας μηχανισμούς αυτοανάλυσης και αυτοελέγχου αναλύει τα plugins που αναπτύσσονται από τον χρήστη και δημιουργεί τελικά κώδικα με τις αντίστοιχες εντολές της Visual AgenTalk (VAT). Για την ανάπτυξη ενός Plugin από το χρήστη πρέπει να γραφεί κώδικας σε Java και να χρησιμοποιηθεί ο μεταγλωττιστής Java. Το αρχείο του πηγαίου κώδικα που αναπτύσσεται για το Plugin ορίζει μια κλάση Java όπως οποιοδήποτε αρχείο Java. Ο διαχειριστής Plugins του AgentSheets είναι ικανός να αναγνωρίσει οποιοδήποτε μεταγλωττισμένο Java αρχείο (.class αρχείο) ως Plugin αρκεί να ισχύουν οι δύο ακόλουθες συνθήκες. Το Plugin αρχείο να βρίσκεται μέσα στο φάκελο Plugins. Ο ορισμός της κλάσης να είναι καθολικός (public). Ο ορισμός της κλάσης μπορεί να περιέχει οποιοδήποτε αριθμό μεθόδων που επιθυμεί ο χρήστης να ορίσει. Για τη δημιουργία νέων εντολών VAT οι μέθοδοι πρέπει να περιέχουν μια προκαθορισμένη δομή. Το AgentSheets αναλύει τα plugins και ελέγχει αυτές τις δομές. Εάν είναι σωστές τότε δημιουργεί μια νέα VAT εντολή συμπεριλαμβανομένης και της γραφικής της απεικόνισης για την τελική της χρήση. Αυτή η εντολή πλέον μπορεί να χρησιμοποιηθεί σε οποιοδήποτε Έργο, όπως οποιαδήποτε άλλη εντολή με ένα απλό σύρσιμό της από τη Συλλογή Δράσεων και Συνθηκών στον Επεξεργαστή Συμπεριφοράς οποιουδήποτε πράκτορα. Επιπρόσθετα, επεκτείνει το μεταγλωττιστή της γλώσσας VAT, και έτσι οι νέες Δράσεις και Συνθήκες μπορούν να χρησιμοποιηθούν από οποιοδήποτε πράκτορα. 4.6 Ορισμός Δράσεων Η Δράση πρέπει να ακολουθεί τη δομή: public static void commandname_action (parameters). 50

51 Το commandname είναι το όνομα της δράσης όπως αυτό θα εμφανίζεται στη συλλογή δράσεων Στο parameters ορίζεται ο αριθμός των παραμέτρων της μεθόδου, οι ο- ποίες μπορεί να είναι από καμία έως πολλές των τύπων int, float ή string. Οι τύποι int και float αντιστοιχίζονται με τον τύπο Αριθμητική Παράσταση της γλώσσας VAT. Ο τύπος Αριθμητική Παράσταση εμφανίζεται ως πεδίο κειμένου που μπορεί να περιέχει οποιαδήποτε VAT παράσταση. Όταν το AgentSheets εκτελεί τη νέα εντολή που περιέχει τον τύπο Αριθμητική Παράσταση πρώτα υπολογίζει την παράσταση και μετά καλεί τη μέθοδο με την τιμή που έχει δώσει ως αποτέλεσμα η υπολογισμένη παράσταση. Για παράδειγμα εάν η Δράση περιέχει τον τύπο radius * 2 * pi, θα υ- πολογίσει αρχικά την τιμή της παράστασης πολλαπλασιάζοντας την ιδιότητα radius με το 2 και την σταθερά pi δίνοντας στο αποτέλεσμα τον τύπο float ή integer και μετά θα μεταφέρει το αποτέλεσμα στην Java μέθοδο. Κάθε παράμετρος τύπου String αντιστοιχίζεται στον τύπο Ακολουθία Χαρακτήρων του AgentSheets. 4.7 Ορισμός Συνθηκών Οι Συνθήκες σε αντίθεση με τις Δράσεις πρέπει να επιστρέφουν μια τιμή τύπου booleann δίνοντας ως αποτέλεσμα της Συνθήκης, Αληθής ή Ψευδής. Η Συνθήκη πρέπει να ακολουθεί την δομή: public static boolean commandname-condition (parameters). Το commandname είναι το όνομα της Συνθήκης που θα εμφανίζεται στην συλλογή συνθηκών. Στο parameters ορίζεται ο αριθμός των παραμέτρων της μεθόδου, οι οποίες μπορεί να είναι από καμία έως πολλές των τύπων int, float ή string. Οι τύποι int και float αντιστοιχίζονται με τον τύπο Αριθμητική Παράσταση της γλώσσας VAT. Ο τύπος Αριθμητική Παράσταση εμφανίζεται ως πεδίο κειμένου που μπορεί να περιέχει οποιαδήποτε VAT παράσταση. Όπως και με τις δράσεις, όταν το AgentSheets εκτελεί τη νέα εντολή που περιέχει τον τύπο Αριθμητική Παράσταση πρώτα υπολογίζει την παράσταση και μετά καλεί τη μέθοδο με την τιμή που έχει δώσει ως αποτέλεσμα η υπολογισμένη παράσταση. Κάθε παράμετρος τύπου String αντιστοιχίζεται στον τύπο Ακολουθία χαρακτήρων του AgentSheets. 51

52 4.8 Mεταγλώτισση Plugins Αφού γραφεί ο κώδικας μπορεί να μεταγλωττιστεί όπως κάθε άλλο πρόγραμμα σε Java. Το plugin μπορεί να γραφεί ακόμα και σε C/C++, σε μια τέτοια περίπτωση ό- μως θα πρέπει να υποστηριχθεί από ένα Java wrapper. Η έκδοση της Java που θα χρησιμοποιηθεί για την μεταγλώττιση πρέπει να είναι η ίδια που χρησιμοποιείται αυτή τη στιγμή για το AgentSheets, που είναι η Java Χρήση των Plugins Για να χρησιμοποιηθούν τα plugins πρέπει να τοποθετηθούν τα δυαδικά αρχεία των plugins (δηλαδή τα αρχεία με κατάληξη.class και όχι τα πηγαία αρχεία) στο φάκελο Plugins της εφαρμογής. Όταν φορτώσουμε το AgentSheets αυτόματα ψάχνει στο φάκελο Plugins και ενσωματώνει τις νέες Δράσεις και Συνθήκες στις αντίστοιχες συλλογές. Από αυτό το σημείο και μετά οι Δράσεις και οι Συνθήκες μπορούν να χρησιμοποιηθούν για την ανάπτυξη οποιουδήποτε Έργου. Όταν μετατρέπεται ένα Έργο σε applet με το Ristretto, τότε το Ristretto αυτόματα αντιγράφει τα απαραίτητα για το applet plugins. Επίσης, όταν διανέμεται κάποιο Έργο πρέπει να ελεγχθεί αν υπάρχουν πάντα και τα κατάλληλα plugins που χρησιμοποιεί, διαφορετικά όταν φορτώνεται το Έργο θα προκαλέσει Java σφάλμα Εξαρτήσεις Βιβλιοθήκης Οι προσομοιώσεις που φτιάχνονται με το AgentSheets μπορούν να τρέξουν σε φυλλομετρητές σε οποιοδήποτε λειτουργικό σύστημα (Windows, MacOS και UNIX) εάν υποστηρίζει τουλάχιστον τη Java 1.1. Το πρόγραμμα εκτέλεσης της προσομοίωσης ονομάζεται μagentsheets και βασίζεται στο πλαίσιο AWT που είναι τμήμα της Java 1.1. Προβλήματα μπορεί να προκύψουν εάν τα plugins χρησιμοποιούν επιπρόσθετες βιβλιοθήκες. Εάν αυτές οι βιβλιοθήκες δεν υπάρχουν στον υπολογιστή «πελάτη» τότε η εκτέλεση της προσομοίωσης θα αποτύχει. Ο μηχανισμός Ristretto αντιγράφει τα απαραίτητα plugins αλλά δεν είναι δυνατόν να ανιχνεύσει εξαρτήσεις από άλλες βιβλιοθήκες. Είναι δύσκολο γενικά να προβλεφθεί ποιες βιβλιοθήκες μπορεί να έχουν οι τελικοί χρήστες, κάτι που εξαρτάται από το φυλλομετρητή τους και το λειτουργικό τους σύστημα. Ένα απλό παράδειγμα αυτού του προβλήματος είναι η ανάπτυξη plugins, τα οποία βασίζονται στο πλαίσιο Swing. Οι χρήστες που χρησιμοποιούν το Έργο θα 52

53 πρέπει να έχουν εγκατεστημένο το Swing. Είναι δύσκολο γενικά να προβλεφθεί ποιες βιβλιοθήκες μπορεί να έχουν οι τελικοί χρήστες, κάτι που εξαρτάται από το φυλλομετρητή τους και το λειτουργικό τους σύστημα. Για παράδειγμα στον Internet Explorer 5 του λειτουργικού MacOS η Java είναι ενεργοποιημένη αλλά δεν συμπεριλαμβάνει το Swing. Στα Windows XP η προκαθορισμένη εγκατάσταση δεν περιέχει καθόλου τη Java. Έτσι, δυστυχώς, υπάρχει η περίπτωση η απουσία μιας βιβλιοθήκης να εμποδίσει την εκτέλεση της προσομοίωσης και με ένα γενικού τύπου μήνυμα της Java, να απογοητεύσει τον χρήστη χωρίς να τον πληροφορήσει για το πρόβλημα, με αποτέλεσμα να μη ξαναπροσπαθήσει να χρησιμοποιήσει τα applets που δημιούργησε. Δυστυχώς, πολύ λίγα μπορούν να γίνουν για την αποφυγή τέτοιων περιπτώσεων. Ωστόσο, μια καλή τακτική είναι να ξοδέψει ο χρήστης λίγο παραπάνω χρόνο γράφοντας πιο σύνθετο κώδικα που βασίζεται στις συναρτήσεις του πλαισίου AWT αντί να χρησιμοποιεί έτοιμες τύπου Swing ή Java 2D Παρουσίαση Παραδείγματος Στο παράδειγμα αυτό θα δημιουργηθεί μία δράση, η Show Message και μία συνθήκη η User Confirm. Από τη στιγμή που θα εισαχθούν τα αντίστοιχα αρχεία στο φάκελο Plugin τόσο η δράση Show Message όσο και η συνθήκη User Confirm εντάσσονται στη συλλογή Δράσεων και Συνθηκών όπως φαίνεται στις Εικόνες 15 και 16 αντίστοιχα. Επομένως, είναι πλέον διαθέσιμες για κάθε έργο και κατ επέκταση και για κάθε πράκτορα. Εικόνα 25-Δράση Show Message Εικόνα 26-Συνθήκη User Confirm 53

54 Η δράση Show Message σταματάει την εκτέλεση της προσομοίωσης και εμφανίζει ένα modal παράθυρο διαλόγου με ένα μήνυμα, περιμένοντας τον χρήστη να πατήσει το OK, ενώ η συνθήκη User Confirm επιτρέπει στον χρήστη να ελέγξει τη προσομοίωση μέσα από την απάντηση ΝΑΙ/ΟΧΙ. Οι εντολές που δημιουργήθηκαν με την παραπάνω διαδικασία χρησιμοποιήθηκαν στο Έργο Tradecenter, όπως φαίνεται στις εικόνες που ακολουθούν. Εικόνα 27 Εφαρμογή της δράσης Show Message Εικόνα 28 Εφαρμογή της Συνθήκης User Confirm Ο κώδικας δημιουργίας (κώδικας Plugin) των παραπάνω παρουσιάζεται ακολούθως. 54

55 55

56 4.12 Γενική περιγραφή της Jena. Η Jena είναι μία πλατφόρμα της Java (a Java framework) που χρησιμοποιείται για την κατασκευή εφαρμογών σημασιολογικού ιστού. Παρέχει ένα σύνολο βιβλιοθηκών, το οποίο επιτρέπει την εύκολη διαχείριση σημασιολογικής πληροφορίας. Η Jena υποστηρίζει αρκετούς τρόπους απεικόνισης της πληροφορίας, όπως RDF, RDFS, και OWL [22], καθώς και μηχανισμούς μετατροπής από τον ένα τύπο στον άλλο. Επιπρόσθετα, πέρα από τις βιβλιοθήκες, η Jena περιέχει και μια μηχανή συμπερασμού (inference engine), η οποία μπορεί να δέχεται ερωτήματα διατυπωμένα σε γλώσσα SPARQL [23]. Η μηχανή αυτή στηρίζεται σε βάση δεδομένων, η οποία μπορεί να είναι είτε απλά στην κύρια μνήμη (με αποτέλεσμα τα δεδομένα να πρέπει να επανεισάγονται σε κάθε εκκίνηση της μηχανής), είτε σε μια πιο μόνιμη απεικόνιση στο σκληρό δίσκο. H Jena είναι ένα open source λογισμικό και ήταν αποτέλεσμα του Προγράμματος Σημασιολογικού Ιστού (Semantic Web Programm) των εργαστηρίων της Hewlett-Packard (HP). Συγκεκριμένα, η πλατφόρμα της Jena περιλαμβάνει τα ακόλουθα: Ένα σύνολο συναρτήσεων για RDF (RDF API) Εγγραφή και ανάγνωση RDF δεδομένων σε RDF/XML, N3 και N-Triples Ένα σύνολο συναρτήσεων για OWL (OWL API) Αποθήκευση σημασιολογικών δεδομένων στην κύρια μνήμη ή μόνιμα Μηχανή ερωτημάτων SPARQL Αυτό που κυρίως χρησιμοποιήθηκε στην προσομοίωση είναι η δεύτερη κατά σειρά δυνατότητα της πλατφόρμας, και συγκεκριμένα η εγγραφή και ανάγνωση RDF δεδομένων σε RDF/XML, N3 και N-Triples. Μέσω αυτής της λειτουργίας δημιουργήθηκε η οντολογία των εμποδίων και κατ επέκταση τα δεδομένα που στέλνουν οι κεραίες στα αυτοκίνητα. Πιο αναλυτικά, μέσω της Jena μπορεί κάποιος να συντάξει ένα RDF αρχείο, να το αποθηκεύσει και κατόπιν να είναι σε θέση να το προσπελαύνει και να το ανακτά ανά πάσα στιγμή. Στην ενότητα παρουσιάζεται παράδειγμα, στο οποίο φαίνονται όλα τα προαναφερθέντα. Για την αξιοποίηση των δυνατοτήτων που παρέχει η Jena αρκεί να εισαχθούν οι βιβλιοθήκες της στις βιβλιοθήκες ενός προγράμματος που παρέχει τη δυνατότητα συγγραφής κώδικα σε Java όπως ο Eclipse [24]και ο JBuilder [25]. Άρα η μόνη απαί- 56

57 τησή της είναι η ύπαρξη ενός τέτοιου εργαλείου και φυσικά η υποστήριξη του από το μηχάνημα Ενδεικτικό Παράδειγμα Παρακάτω παρουσιάζονται κάποια λειτουργικά τμήματα κώδικα τα οποία διαχειρίζονται σημασιολογική πληροφορία από ένα δεδομένο RDF αρχείο Σε όλα τα παραδείγματα το συγκεκριμένο αρχείο είναι το cars.rdfs αλλά η τροποποίηση που απαιτείται για να δουλέψει για κάθε δυνατό αρχείο, έγκειται στην προσαρμογή της πρώτης σειράς (String inputfilename = "car.rdfs";). Πιο αναλυτικά στο Σχήμα 1 φαίνεται ο κώδικας, ο οποίος εάν εκτελεστεί εμφανίζει το rdf αρχείο. String inputfilename = "car.rdfs"; // Create an empty model Model model = ModelFactory.createDefaultModel(); // Open the RDF File from the Hard Drive InputStream in = FileManager.get().open( inputfilename ); if (in == null) { throw new IllegalArgumentException( "File: " + inputfilename + " not found"); } // Read-Load the RDF/XML file model.read(in, ""); System.out.println("THIS IS THE RDF FILE:\n"); // Write it to standard out -> print it on screen model.write(system.out); System.out.println("\nEND OF RDF FILE\n\n"); Σχήμα 1-Κώδικας εκτύπωσης ολόκληρου του περιεχομένου του αρχείου Μετά την εκτέλεση του παραπάνω κώδικα, τα αποτελέσματα που εμφανίζονται στην κονσόλα εξόδου ακολουθούν. <rdf:rdf xmlns:rdf=" xmlns:owl=" xmlns:car=" 57

58 xmlns:rdfs=" > <rdf:description rdf:about=" <rdf:type rdf:resource=" </rdf:description> <rdf:description rdf:about=" cars#small_disaster"> <rdfs:subclassof rdf:resource=" cars#disaster"/> <rdf:type rdf:resource=" </rdf:description> <rdf:description rdf:about=" cars#big_disaster"> <rdfs:subclassof rdf:resource=" cars#disaster"/> <rdf:type rdf:resource=" </rdf:description> <rdf:description rdf:about=" <rdfs:subclassof rdf:resource=" cars#small_disaster"/> <rdf:type rdf:resource=" </rdf:description> <rdf:description rdf:about=" <rdfs:subclassof rdf:resource=" cars#big_disaster"/> <rdf:type rdf:resource=" </rdf:description> <rdf:description rdf:about=" <rdfs:subclassof rdf:resource=" cars#big_disaster"/> <rdf:type rdf:resource=" 58

59 schema#class"/> </rdf:description> <rdf:description rdf:about=" <rdfs:subclassof rdf:resource=" cars#small_disaster"/> <rdf:type rdf:resource=" </rdf:description> Στο Σχήμα 2 φαίνεται ο κώδικας, ο οποίος εάν εκτελεστεί, εκτυπώνει στην κονσόλα εξόδου το περιεχόμενο του αρχείου σε μορφή τριπλέτων. String inputfilename = "car.rdfs"; // Create an empty model Model model = ModelFactory.createDefaultModel(); // Open the RDF File from the Hard Drive InputStream in = FileManager.get().open( inputfilename ); if (in == null) { throw new IllegalArgumentException( "File: " + inputfilename + " not found");} // Read-Load the RDF/XML file model.read(in, ""); System.out.println("THESE ARE THE TRIPLES OF THE RDF FILE:\n"); // list the statements in the graph StmtIterator iter = model.liststatements(); // print out the predicate, subject and object of each statement while (iter.hasnext()) { Statement stmt = iter.nextstatement(); // get next statement Resource subject = stmt.getsubject(); // get the subject Property predicate = stmt.getpredicate(); // get the predicate RDFNode object = stmt.getobject(); // get the object System.out.print(subject.toString()); System.out.print(" " + predicate.tostring() + " "); if (object instanceof Resource) { System.out.print(object.toString()); 59

60 } else { // object is a literal System.out.print(" \"" + object.tostring() + "\""); } System.out.println("."); } System.out.println("\nEND OF TRIPLES\n\n"); Σχήμα 2-Κώδικας εκτύπωσης του περιεχομένου του αρχείου σε μορφή τριπλέτων Μετά την εκτέλεση του παραπάνω κώδικα, τα αποτελέσματα που εμφανίζονται στην κονσόλα εξόδου ακολουθούν

61 Στο Σχήμα 3 φαίνεται ο κώδικας, ο οποίος εάν εκτελεστεί, εκτυπώνει στην κονσόλα εξόδου τα διαφορετικά υποκείμενα (subjects) που εντοπίσθηκαν στο αρχείο. String inputfilename = "car.rdfs"; // Create an empty model Model model = ModelFactory.createDefaultModel(); // Open the RDF File from the Hard Drive InputStream in = FileManager.get().open( inputfilename ); if (in == null) { throw new IllegalArgumentException( "File: " + inputfilename + " not found");} // Read-Load the RDF/XML file model.read(in, ""); System.out.println("THESE ARE THE SUBJECTS OF THE RDF FILE ONCE:\n"); // list the statements in the graph StmtIterator iter = model.liststatements(); 61

62 Vector subjects = new Vector(1,1); // print out the predicate, subject and object of each statement while (iter.hasnext()) { Statement stmt = iter.nextstatement();// get next statement Resource subject = stmt.getsubject(); // get the subject boolean found = false; for (int i=0; i<subjects.size(); i++) { if (subjects.elementat(i).tostring().equalsignorecase( subject.tostring())) { found = true; break; } } if (!found) { subjects.add(subject.tostring()); } } for (int i=0; i<subjects.size(); i++) { System.out.println(subjects.elementAt(i).toString());} System.out.println("\nEND OF SUBJECTS\n\n"); Σχήμα 3- Κώδικας εκτύπωσης των διαφορετικών υποκειμένων (subjects) Μετά την εκτέλεση του παραπάνω κώδικα, τα αποτελέσματα που εμφανίζονται στην κονσόλα εξόδου ακολουθούν

63 5 Υλοποίηση Προσομοίωσης Στο κεφάλαιο αυτό παρουσιάζεται ο κώδικας της οντολογίας που χρησιμοποιήθηκε, η υλοποίηση του περιβάλλοντος προσομοίωσης στο AgentSheets, καθώς και οι εξωτερικές συναρτήσεις που καλούνται από τα αυτοκίνητα προκειμένου να κατατάξουν τα εμπόδια στην κλάση που ανήκουν. 5.1 Οντολογία Εμποδίων Η οντολογία, που περιγράφηκε στο Κεφάλαιο 3, περιλαμβάνει έντεκα κλάσεις ( βλ. Παράρτημα). Ακολούθως παρουσιάζονται σε μορφή RDF/XML, ενδεικτικά οι κλάσεις disaster, big_disaster και small_disaster. <rdf:rdf xmlns:rdf=" xmlns:owl=" xmlns:car=" xmlns:rdfs=" > <rdf:description rdf:about=" <rdf:type rdf:resource=" </rdf:description> <rdf:description rdf:about=" <rdfs:subclassof rdf:resource=" <rdf:type rdf:resource=" </rdf:description> <rdf:description rdf:about=" <rdfs:subclassof rdf:resource=" <rdf:type rdf:resource=" </rdf:description> </rdf:rdf> 63

64 5.2 Δημιουργία Περιβάλλοντος Προσομοίωσης Σε αυτή την ενότητα θα αναλυθεί ο κώδικας της προσομοίωσης, παραθέτοντας τις συνθήκες και δράσεις που ελέγχονται και εκτελούνται αντίστοιχα σε κάθε περίπτωση Ανάπτυξη του έργου Traffic_problem Στα πλαίσια της ανάπτυξης της προσομοίωσης Traffic_problem δημιουργήθηκαν ε- πτά πράκτορες ή με άλλα λόγια επτά κλάσεις που φαίνονται στην Εικόνα 10. Η εικόνα μέσα στο μπλε πλαίσιο είναι η βασική απεικόνιση του πράκτορα και οι υπόλοιπες είναι διαφορετικές απεικονίσεις του αρχικού. Οι ενεργοποιητές που χρησιμοποιήθηκαν στην προσομοίωση αυτή είναι τρεις, Κατά τη Δημιουργία, Κατά τη Λειτουργία και Στο Άκουσμα. Το πεδίο εργασίας, που φαίνεται στην Εικόνα 29, προκύπτει τοποθετώντας πράκτορες από όλες τις κλάσεις. Πάνω στους πράκτορες της κλάσης Δρόμος μπορούν να μετακινούνται οι πράκτορες Car_Right. Εικόνα 29-Πεδίο εργασίας Με την τοποθέτηση των πρακτόρων στο πεδίο εργασίας) εκτελούνται οι συνθήκες του ενεργοποιητή Κατά τη δημιουργία, των πρακτόρων Antenna (Εικόνα 31), Obstacle (Εικόνα 32), Car_Right (Εικόνα 33), με αποτέλεσμα να αρχικοποιούνται οι ιδιότητες των πρακτόρων. 64

65 Εικόνα 30-Εικονοθήκη και κλάσεις του έργου Traffic_problem 65

66 Εικόνα 31- Κατά τη Δημιουργία νέου πράκτορα Antenna Εικόνα 32- Κατά τη Δημιουργία νέου πράκτορα Obstacle 66

67 Εικόνα 33- Κατά τη Δημιουργία νέου πράκτορα Car_Right Μετά την εκτέλεση των μεθόδων του ενεργοποιητή «Κατά τη δημιουργία νέου πράκτορα» εκτελούνται οι μέθοδοι του ενεργοποιητή «Κατά τη Λειτουργία» των πρακτόρων Obstacle (Εικόνα 34), και Car_Right (Εικόνα 37). Αρχικά, ανιχνεύονται τα εμπόδια από τις κεραίες και αναγνωρίζονται κιόλας. Κάθε κεραία έχει εμβέλεια ίση με ένα οικοδομικό τετράγωνο. Για το λόγο αυτό χρησιμοποιούνται τέσσερις κε- 67

68 ραίες προκειμένου να καλυφθεί η περιοχή, που απαιτείται για τις ανάγκες της προσομοίωσης. Μετά την αναγνώριση αυτών, οι κεραίες στέλνουν την απαραίτητη πληροφορία στα αυτοκίνητα προκειμένου αυτά να κατατάξουν τα εμπόδια σε μία από τις κλάσεις της οντολογίας που έχουν αποθηκευμένη. Ακολουθεί παράθεση των κανόνων που εκτελούνται για την αναγνώριση και κατάταξη της φωτιάς. Η ίδια ακριβώς διαδικασία πραγματοποιείται για όλα τα εμπόδια. Εικόνα 34-Συμπεριφορά Obstacle Εικόνα 35- Συμπεριφορά Antenna 68

69 Εικόνα 36- Συμπεριφορά Obstacle Εικόνα 37- Συμπεριφορά Car_Right Εικόνα 38- Κατάταξη του εμποδίου fire Η δράση There is Fire είναι plugin που δημιουργήθηκε για τις ανάγκες της προσομοίωσης. Ουσιαστικά είναι μία συνάρτηση που δέχεται ως είσοδο την πληροφορία της κεραίας και σαν έξοδο επιστρέφει την κλάση, στην οποία ανήκει το εμπόδιο. Η κεραία στέλνει κάθε φορά τo αντίστοιχο description, που για το εμπόδιο φωτιά είναι το ακόλουθο. 69

70 <rdf:description rdf:about=" <rdfs:subclassof rdf:resource=" <rdf:type rdf:resource=" </rdf:description> Η συνάρτηση αυτή είναι εξωτερική, γραμμένη σε γλώσσα προγραμματισμού Java. Ο κώδικας αυτής παρουσιάζεται ακολούθως. Στο Παράρτημα υπάρχουν και οι συναρτήσεις των υπόλοιπων εμποδίων. package Plugins; import java.io.inputstream; import com.hp.hpl.jena.rdf.model.model; import com.hp.hpl.jena.rdf.model.modelfactory; import com.hp.hpl.jena.rdf.model.stmtiterator; import com.hp.hpl.jena.rdf.model.statement; import com.hp.hpl.jena.rdf.model.resource; import com.hp.hpl.jena.rdf.model.property; import com.hp.hpl.jena.rdf.model.rdfnode; import com.hp.hpl.jena.util.filemanager; import java.util.vector; import java.util.stringtokenizer; import javax.swing.joptionpane; public class RDFPlugin_Fire { private static String subclass = " private static String keyword = "fire"; private static String input = + keyword; private static final String inputtotalfilename = "car.rdfs"; public static void There_Is_Fire_Action(String message) { String inputfilename = keyword + ".rdf"; // Create an empty model Model model = ModelFactory.createDefaultModel(); // Open the RDF File from the Hard Drive InputStream in = FileManager.get().open( inputfilename ); if (in == null) { 70

71 throw new IllegalArgumentException( "File: " + inputfilename + " not found");} // Read-Load the RDF/XML file model.read(in, ""); //Find the Resource for the "FIRE" subject String resource = returnresource(model); //Open the total RDF file // Create an empty model Model total_model = ModelFactory.createDefaultModel(); // Open the RDF File from the Hard Drive InputStream total_in = FileManager.get().open(inputFileName); if (total_in == null) { throw new IllegalArgumentException( "File: " + inputtotalfilename + " not found");} // Read-Load the RDF/XML file total_model.read(total_in, ""); if(total_model.containsall(model)) { //JOptionPane.showMessageDialog(null, "RDF File FOUND!", "Title", JOptionPane.INFORMATION_MESSAGE);} JOptionPane.showMessageDialog(null, keyword + ":" + resource, "Title", JOptionPane.INFORMATION_MESSAGE);} private static String returnresource(model model) { //System.out.println("THIS IS THE RESOURCE YOU NEED:\n"); String output = ""; // list the statements in the graph StmtIterator iter = model.liststatements(); // print out the predicate, subject and object of each statement while (iter.hasnext()) { // get next statement Statement stmt = iter.nextstatement(); // get the subject Resource subject = stmt.getsubject(); // get the predicate Property predicate = stmt.getpredicate(); RDFNode object = stmt.getobject();// get the object if (predicate.tostring().equalsignorecase(subclass) && subject.tostring().equalsignorecase(input)) { 71

72 StringTokenizer str_t = new StringTokenizer(object.toString(), "#"); str_t.nexttoken(); output = str_t.nexttoken();}} return output;}} Μετά την αναγνώριση όλων των εμποδίων της προσομοίωσης τα αυτοκίνητα είναι σε θέση να γνωρίζουν τα εμπόδια αλλά και τη θέση αυτών έτσι ώστε να κινηθούν κατάλληλα. Από δω και πέρα εκτελούνται διαρκώς οι μέθοδοι του ενεργοποιητή «Κατά τη λειτουργία» του πράκτορα Car_Right. Τα αυτοκίνητα έχουν δύο σημεία αφετηρίας, το ένα είναι κάτω αριστερά και το άλλο κάτω δεξιά. Ανάλογα με τη αφετηρία τους έχουν και τελικό προορισμό. Αυτά που ξεκινάνε από αριστερά καταλήγουν δεξιά και αντίστροφα. Γνωρίζουν τη γενική κατεύθυνση τους και με βάση αυτή επιλέγουν τη διαδρομή. Υπάρχουν πολλές διασταυρώσεις που μπορούν να ακολουθήσουν δύο ή και περισσότερες κατευθύνσεις χωρίς να αλλάζει η γενική τους πορεία προς το τελικό τους σημείο. Στην περίπτωση αυτή έχουν οριστεί πιθανότητες, όπως φαίνεται ακολούθως. Εικόνα 39 Συμπεριφορά Car_Right 72

73 6 Εκτέλεση Προσομοίωσης Στο Κεφάλαιο αυτό θα παρουσιασθεί αναλυτικά η πειραματική διάταξη για τον έλεγχο και την εκτίμηση της απόδοσης της προσομοίωσης Traffic_Problem. Αρχικά καταγράφεται η διαδικασία που απαιτείται για την εκτέλεση της κάθε προσομοίωσης. Στη συνέχεια τα αποτελέσματα που προκύπτουν αναλύονται και συγκρίνονται, ώστε να εξαχθούν χρήσιμα συμπεράσματα. 6.1 Εκτέλεση προσομοίωσης Για να ξεκινήσει η προσομοίωση Traffic_problem, αρκεί να πατηθεί το κουμπί Εκτέλεση στο πεδίο Εργασίας, που φαίνεται στην Εικόνα 40. Αν η προσομοίωση εκτελείται πολύ γρήγορα και δεν είναι δυνατή η παρακολούθηση αυτής, τότε μπορεί να μειωθεί η ταχύτητα εκτέλεσης από την κυλιόμενη μπάρα που βρίσκεται στο κάτω μέρος του πεδίου εργασίας και φαίνεται στην Εικόνα 2. Εικόνα 40 Κουμπί Run Εικόνα 41 Κυλιόμενη μπάρα Υπάρχει και ένας δεύτερος τρόπος εκτέλεσης της προσομοίωσης ο επονομαζόμενος Βηματική Εκτέλεση, που σημαίνει την εκτέλεση της προσομοίωσης βήμα-βήμα, που πραγματοποιείται εάν αντί για το κουμπί Run πατηθεί το διπλανό κουμπί με το κίτρινο χρώμα που φαίνεται στην Εικόνα 42. Πατώντας το κουμπί Stop διακόπτεται η προσομοίωση. Εικόνα 42- Χρήσιμα Κουμπιά Στις Εικόνες που ακολουθούν παρουσιάζονται κάποια ενδεικτικά screenshots από την προσομοίωση Traffic_problem. Στην Εικόνα 43, παρουσιάζεται το πεδίο εργασίας λίγο πριν την εκτέλεση της προσομοίωσης. Έχουν τοποθετηθεί δύο αυτοκίνητα στα δύο σημεία εκκίνησης, τέσσερα εμπόδια, δύο από κάθε κατηγορία και τέσσερις κεραίες προκειμένου να καλύψουν την περιοχή των εμποδίων. Το πλήθος των αυτοκινήτων μπορεί να είναι μεγαλύτερο του δύο αλλά για την καλύτερη μελέτη της προσομοίωσης θα χρησιμοποιηθούν μόνο δύο. 73

74 Εικόνα 43-Πεδίο εργασίας πριν την εκτέλεση της προσομοίωσης Για την πληρέστερη κατανόηση της Εικόνα 43 παρουσιάζονται ακολούθως τα εμπόδια που υπάρχουν στο πεδίο εργασίας. Εικόνα 44-Εμπόδιο Φωτιά Εικόνα 45 Εμπόδιο Κίνηση Εικόνα 46-Εμπόδιο Βροχή Εικόνα 47-Εμπόδιο Έργα Μόλις πατηθεί το κουμπί Run θα αρχίσει από τις κεραίες η ανίχνευση των ε- μποδίων και η αποστολή των κατάλληλων πληροφοριών (descriptions) στα αυτοκίνητα. Αυτά με τη σειρά τους θα αναγνωρίσουν και θα κατατάξουν τα εμπόδια σε μία από τις κλάσεις της οντολογίας που έχουν αποθηκευμένη, εμφανίζοντας ταυτόχρονα 74

75 το αποτέλεσμα της κατάταξης, σε ένα δεύτερο μικρό παράθυρο. Όλα τα παραπάνω παρουσιάζονται στις εικόνες που ακολουθούν. Εικόνα 48-Κατάταξη του εμποδίου fire Εικόνα 49-Κατάταξη του εμποδίου traffic Εικόνα 50-Κατάταξη του εμποδίου rain Εικόνα 51-Κατάταξη του εμποδίου works Στο σημείο αυτό τα αυτοκίνητα γνωρίζουν πού υπάρχουν τα εμπόδια καθώς και το είδος αυτών ή, αλλιώς, ποια είναι αυτά τα οποία επιτρέπουν τη διέλευση του δρόμου που βρίσκονται και ποια όχι. Σύμφωνα με αυτές τις πληροφορίες ξεκινάνε, όπως φαίνεται στην παρακάτω εικόνα. Εικόνα 52 Ξεκίνημα των αυτοκινήτων Στην Εικόνα 53 παρουσιάζονται τα αυτοκίνητα σε τυχαίες ενδιάμεσες θέσεις. Το ένα από τα δύο περνάει από δρόμο με καταρρακτώδη βροχή(εικόνα 54) γι αυτό 75

76 και μειώνει την ταχύτητά του, ενώ παράλληλα εμφανίζει μήνυμα στη γραμμή διευθύνσεων του AgentSheets (Εικόνα 17) στο οποίο δηλώνει τη μείωση της ταχύτητας λόγω βροχής. Εικόνα 53 Τυχαίες ενδιάμεσες θέσεις Εικόνα 54 Δρόμος με βροχή Εικόνα 55 Γραμμή διευθύνσεων Το αυτοκίνητο που βρίσκεται αριστερά θα τερματίσει πάνω στον καφέ και το άλλο πάνω στον πράκτορα με το κίτρινο χρώμα. Όταν φτάσουν στο τέλος της διαδρομής τους και τα δύο θα εμφανίσουν αντίστοιχο μήνυμα ότι έφτασαν, όπως φαίνεται στις Εικόνες 18 και 19 αντίστοιχα. Στην Εικόνα 58 φαίνεται το πεδίο εργασίας μετά την ολοκλήρωση της διαδρομής των αυτοκινήτων. Εικόνα 56 Τέλος διαδρομής του car1 Εικόνα 57 Τέλος διαδρομής του car2 76

77 Εικόνα 58 Τα αυτοκίνητα στο τέλος της διαδρομής τους 6.2 Μελέτη Προσομοίωσης Εφόσον τα αυτοκίνητα είναι σε θέση να γνωρίζουν αρχικά, τα σημεία στα οποία υ- πάρχουν εμπόδια καθώς και ποια από αυτά επιτρέπουν τη διέλευσή τους, με κάποια όμως καθυστέρηση, ή και το αντίστροφο, είναι αναμενόμενη μία γενικότερη βελτίωση της κίνησης των αυτοκινήτων στους δρόμους, ως προς το χρόνο. Για την απόδειξη αυτού του συμπεράσματος πραγματοποιήθηκαν μετρήσεις με τις ίδιες ακριβώς προϋποθέσεις σε τρεις διαφορετικές περιπτώσεις. Πιο αναλυτικά, στην ενότητα μελετάται η κίνηση των αυτοκινήτων σε δρόμους χωρίς καθόλου εμπόδια, στην η κίνηση των αυτοκινήτων σε δρόμους με εμπόδια χωρίς κεραίες και στην η κίνηση των αυτοκινήτων σε δρόμους με εμπόδια αλλά και με κεραίες. Στην πραγματοποιείται η σύγκριση των αποτελεσμάτων που προκύπτουν καθώς και το τελικό συμπέρασμα. Βέβαια, σε όλα τα παραπάνω υπάρχει και ο παράγοντας «καθυστέρηση» που δεν είναι και τόσο προβλέψιμος. Η έννοια της καθυστέρησης στον πραγματικό κόσμο δεν είναι σαφώς καθορισμένη, αφού μπορεί να είναι από δεκαπέντε λεπτά έως και μισή με μία ώρα. Για τις μετρήσεις, θεωρήθηκε μία ενδεικτική καθυστέρηση των δεκαπέντε λεπτών, έτσι ώστε να μελετηθεί η βελτίωση που επιφέρουν οι κεραίες σε μία καλή σχετικά ροή κίνησης. Για την καταγραφή των μετρήσεων θεωρήθηκε ότι υπάρχουν δύο διαδρομές. Η μία είναι εκείνη που διανύει το αυτοκίνητο που ξεκινάει από αριστερά και καταλή- 77

78 γει δεξιά και η δεύτερη η ακριβώς αντίστροφη, Ο χρόνος που κάνει το κάθε αυτοκίνητο προκειμένου να φτάσει στο προορισμό του καταγράφεται. Συνεπώς, η προσομοίωση θα εκτελεστεί αρκετές φορές έτσι ώστε να συγκεντρωθούν όλες οι δυνατές περιπτώσεις διαδρομών και αντίστοιχων χρόνων η Περίπτωση-Δρόμοι χωρίς εμπόδια Η διαδικασία εκτέλεσης είναι ακριβώς η ίδια με εκείνη που έχει περιγραφεί στην προηγούμενη ενότητα. Η μοναδική διαφορά είναι ότι στο πεδίο εργασίας, της Εικόνα 59, δεν υπάρχουν καθόλου εμπόδια. Στην Εικόνα 60 φαίνονται τα αυτοκίνητα σε τυχαίες ενδιάμεσες θέσεις ενώ στις άλλες δύο εικόνες αυτής της ενότητας έχουν φτάσει στον προορισμό τους. Εικόνα 59-Πεδίο εργασίας πριν την εκτέλεση της προσομοίωσης Εικόνα 60 Τυχαίες ενδιάμεσες θέσεις 78

79 Εικόνα 61 Τέλος διαδρομής του car1 Εικόνα 62 Τέλος διαδρομής του car2 Εφόσον οι δρόμοι είναι τετραγωνισμένοι όποιον και να επιλέξουν τα αυτοκίνητα, θα κάνουν ακριβώς τον ίδιο χρόνο, ίσο με 27 λεπτά η Περίπτωση-Δρόμοι με εμπόδια Στην περίπτωση αυτή τα αυτοκίνητα δε γνωρίζουν την ύπαρξη των εμποδίων. Έτσι, υπάρχει μεγάλη πιθανότητα να συναντήσουν στο δρόμο κάποιο από εκείνα τα εμπόδια που δεν επιτρέπουν τη διέλευση αυτοκινήτων από το δρόμο στον οποίο βρίσκονται, όπως για παράδειγμα φωτιά, και να αναγκαστούν να γυρίσουν πίσω. Αν πάλι το εμπόδιο ανήκει στη δεύτερη κατηγορία τότε απλώς θα αναγκαστούν να μειώσουν την ταχύτητά τους. Στις παρακάτω εικόνες φαίνονται το πεδίο εργασίας, τα αυτοκίνητα σε μια ενδιάμεση τυχαία θέση, το αυτοκίνητο όταν συναντάει φωτιά και στην τελική τους θέση αντίστοιχα. 79

80 Εικόνα 63-Πεδίο εργασίας πριν την εκτέλεση της προσομοίωσης Εικόνα 64 Τυχαίες ενδιάμεσες θέσεις Εικόνα 65 Αυτοκίνητο συναντά φωτιά 80

81 Εικόνα 66 Τέλος διαδρομής του car2 Εικόνα 67 Τέλος διαδρομής του car1 Παρακάτω παρατίθεται πίνακας με πέντε διαφορετικούς χρόνους, άρα και διαφορετικές διαδρομές, και για τις δύο κατευθύνσεις. Οι τιμές αυτές καλύπτουν όλες τις δυνατές περιπτώσεις, εκτός από κείνη που το αυτοκίνητο δε συναντάει κανένα από τα εμπόδια. Σε αυτήν ο χρόνος είναι ίσος με 27 min, όπως αποδείχτηκε στην προηγούμενη ενότητα. 81

82 Πίνακας 2-Μετρήσεις με εμπόδια στη διαδρομή 1 Μετρήσεις στο έργο με εμπόδια χωρίς κεραίες Α/Α Διαδρομή Χρόνος (min) Μ.Ο 1 33 Πίνακας 3-Μετρήσεις με εμπόδια στη διαδρομή 2 Μετρήσεις στο έργο με εμπόδια χωρίς κεραίες Α/Α Διαδρομή Χρόνος (min) Μ.Ο 2 35 Από τους πίνακες παρατηρείται πως τα αυτοκίνητα που ακολουθούν τη δεύτερη διαδρομή κάνουν περισσότερο χρόνο. Αυτό εξαρτάται αποκλειστικά και μόνο από την τοποθεσία των εμποδίων, η οποία στην προκειμένη περίπτωση ευνοεί τα αυτοκίνητα της διαδρομής 1. Αν αλλάξει η θέση των εμποδίων ενδεχομένως να συμβεί το αντίστροφο η Περίπτωση-Δρόμοι με εμπόδια και κεραίες Για την περίπτωση αυτή, η περιγραφή καθώς και οι αντίστοιχες εικόνες της προσομοίωσης έχουν παρουσιαστεί στην Ενότητα 6.1. Για τη διαδρομή 1 δύο είναι οι δυνατές περιπτώσεις. Η πρώτη είναι να μην περνάει ποτέ πάνω από κάποιο εμπόδιο και η δεύτερη να περνάει πάνω από ένα ε- μπόδιο. Οι χρόνοι των διαδρομών αυτών φαίνονται στον πίνακα που ακολουθεί. 82

83 Πίνακας 4-Μετρήσεις με εμπόδια και κεραίες στη διαδρομή 1 Μετρήσεις στο έργο με εμπόδια και κεραίες Α/Α Διαδρομή Χρόνος (min) Μ.Ο 1 29 Για τη διαδρομή 2 τρεις είναι οι δυνατές περιπτώσεις. Η πρώτη είναι να μην περνάει ποτέ πάνω από κάποιο εμπόδιο, η δεύτερη να περνάει πάνω από ένα τουλάχιστον εμπόδιο και η τρίτη να περνάει πάνω και από τα δύο εμπόδια. Οι χρόνοι των διαδρομών αυτών φαίνονται στον πίνακα που ακολουθεί. Πίνακας 5-Μετρήσεις με εμπόδια και κεραίες στη διαδρομή 2 Μετρήσεις στο έργο με εμπόδια χωρίς κεραίες Α/Α Διαδρομή Χρόνος (min) Μ.Ο 2 31, Σύγκριση αποτελεσμάτων Από την παραπάνω μελέτη προέκυψε ότι ο μέσος χρόνος των αυτοκινήτων για τη διαδρομή 1 σε ένα δρόμο χωρίς καθόλου εμπόδια είναι ίσος με 27min. Ο χρόνος αυτός αυξάνεται κατά 6 min (στα 33 min) όταν στην ίδια διαδρομή υπάρχουν εμπόδια. Με την προσθήκη, όμως κεραιών στα κατάλληλα σημεία ο χρόνος αυξάνεται μόνο κατά 2min (συνολικά στα 29 min). Ουσιαστικά οι κεραίες επιφέρουν βελτίωση του συνολικού χρόνου (μαζί με τις καθυστερήσεις) της τάξης του 10%, και μείωση του χρόνου καθυστέρησης κατά 66%. Για τη διαδρομή 2 σε ένα δρόμο χωρίς καθόλου εμπόδια ο μέσος χρόνος των αυτοκινήτων είναι ίσος με 27min. Ο χρόνος αυτός αυξάνεται κατά 8 min (στα 35 min) όταν στην ίδια διαδρομή υπάρχουν εμπόδια. Με την προσθήκη, όμως κεραιών στα κατάλληλα σημεία ο χρόνος αυξάνεται μόνο κατά 4,6min (συνολικά στα 31,6 min). Ουσιαστικά οι κεραίες επιφέρουν βελτίωση του συνολικού χρόνου (μαζί με τις 83

84 καθυστερήσεις) της τάξης του 12,12%, και μείωση του χρόνου καθυστέρησης κατά 42,5%. Με βάση τα πειράματα που έχουν γίνει, παρατηρήθηκε ότι όσο μεγαλύτερος είναι ο συνολικός χρόνος των καθυστερήσεων εξαιτίας εμποδίων στη διαδρομή, τόσο μεγαλύτερη βελτίωση προκύπτει με την εισαγωγή κεραιών (και κατά συνέπεια πληροφορίας) στο σύστημα. 7 Επίλογος Με το κεφάλαιο αυτό ολοκληρώνεται η παρούσα διπλωματική εργασία. Παρακάτω παρουσιάζονται τα συμπεράσματα και τυχόν μελλοντικές επεκτάσεις που μπορούν να γίνουν. 7.1 Σύνοψη και Συμπεράσματα Το αντικείμενο της διπλωματικής αυτής εργασίας ήταν η δημιουργία ενός περιβάλλοντος προσομοίωσης, στο οποίο κινούμενα οχήματα δέχονται πληροφορίες σχετικά με την κίνηση στους δρόμους, τις επεξεργάζονται και κατόπιν ακολουθούν τη βέλτιστη διαδρομή για τον προορισμό τους. Αυτό επιτεύχθηκε, χρησιμοποιώντας ευφυείς αυτόνομους πράκτορες λογισμικού, που δέχονται πληροφορίες με ασύρματο τρόπο από βάσεις εκπομπής πληροφοριών ή, πιο απλά, κεραίες. Οι πληροφορίες που μεταδίδονται, περιγράφονται χρησιμοποιώντας τεχνολογίες του Σημασιολογικού Ιστού. Οι τεχνολογίες του σημασιολογικού ιστού χρησιμοποιήθηκαν για την κατάλληλη περιγραφή της πληροφορίας έτσι ώστε να μπορεί να αξιολογηθεί από τα οχήματα. Το περιβάλλον, υλοποιήθηκε στην πλατφόρμα προσομοίωσης πρακτόρων Agent- Sheets. Χρησιμοποιήθηκαν εξωτερικές ρουτίνες γραμμένες σε java, οι οποίες καλούνται από τα οχήματα και χειρίζονται τη σημασιολογική πληροφορία. Για τη δημιουργία των εξωτερικών ρουτινών ικανή και αναγκαία συνθήκη αποτέλεσε η ύπαρξη κάποιων βιβλιοθηκών οι οποίες παρέχονται από τη Jena Έτσι, εφόσον τα αυτοκίνητα είναι σε θέση να γνωρίζουν αρχικά, τα σημεία στα οποία υπάρχουν εμπόδια καθώς και ποια από αυτά επιτρέπουν τη διέλευσή τους, 84

85 με κάποια όμως καθυστέρηση, ή και το αντίστροφο, είναι αναμενόμενη μία γενικότερη βελτίωση της κίνησης των αυτοκινήτων στους δρόμους, ως προς το χρόνο. Για την απόδειξη αυτού του συμπεράσματος πραγματοποιήθηκαν οι κατάλληλες μετρήσεις. 7.2 Δυσκολίες εκπόνησης Διπλωματικής Το πρώτο εμπόδιο στην υλοποίηση της εφαρμογής, παρουσιάσθηκε αρκετά νωρίς κατά τον σχεδιασμό των δρόμων πάνω στους οποίους θα κινούνται τα αυτοκίνητα. Αρχικά, οι δρόμοι ήταν διαφορετικοί τόσο ως προς το σχήμα όσο και ως προς το μήκος, με αποτέλεσμα να προκύπτει ένας αρκετά μεγάλος και πολύπλοκος κώδικας, στον οποίο το μόνο που περιγράφονταν ήταν η κίνηση των αυτοκινήτων σε δρόμους χωρίς καθόλου εμπόδια. Για την απλοποίηση αυτού επιλέχθηκε μία περιοχή με τετραγωνισμένους δρόμους. Το δεύτερο θέμα που προέκυψε ήταν η τοποθεσία των εμποδίων. Εξετάστηκαν δύο περιπτώσεις. Η πρώτη ήταν η πλατφόρμα να είναι ανεξάρτητη από τη διάταξη των εμποδίων και η δεύτερη το αντίστροφο. Η υλοποίηση της πρώτης περίπτωσης ήταν αδύνατη γιατί το AgentSheets δεν παρέχει τέτοιου είδους δυνατότητα καθώς όλες οι διαθέσιμες εντολές του έχουν τοπικό χαρακτήρα. Το πρόβλημα αυτό ξεπεράστηκε δημιουργώντας αρκετά πεδία εργασίας στα οποία τοποθετούνταν τα εμπόδια σε διαφορετικά σημεία και οι μετρήσεις προέκυπταν με μικρές αλλαγές στον κώδικα. Αφού επιλύθηκαν τα προβλήματα που αφορούν το σχεδιασμό των δρόμων καθώς και την κίνηση των αυτοκινήτων πάνω σε αυτούς, ανέκυψε το πρόβλημα της επικοινωνίας μεταξύ των τελευταίων και των κεραιών. Πιο αναλυτικά, τα αυτοκίνητα θα έπρεπε να μπορούν να διαβάζουν και να επεξεργάζονται τις πληροφορίες που θα λάμβαναν από τις κεραίες έτσι ώστε να είναι σε θέση να καθορίσουν την μετέπειτα κίνησή τους. Αυτό πραγματοποιήθηκε δημιουργώντας εξωτερικές συναρτήσεις γραμμένες σε Java,στις οποίες χρησιμοποιούνται βιβλιοθήκες της Jena, οι οποίες καλούνται από τα αυτοκίνητα για την επεξεργασία των λαμβανόμενων πληροφοριών. 7.3 Μελλοντικές Επεκτάσεις Η τρέχουσα διαμόρφωση του πειράματος είναι βασισμένη στη διάταξη που έχουν τόσο οι δρόμοι όσο και τα εμπόδια που υπάρχουν σε αυτούς. Μια μελλοντική επέκταση αυτής της δουλειάς είναι να γενικευθεί η διάταξη ώστε να περιλαμβάνει δυναμικά κατασκευασμένη δομή δρόμων και εμποδίων. 85

86 Πολύ ενδιαφέρουσα θα ήταν επίσης και η επέκταση της χρησιμοποιούμενης οντολογίας, προσθέτοντας κλάσεις που θα περιείχαν «καλά νέα» και όχι εμπόδια. Έ- τσι, θα ήταν δυνατή η αποστολή πληροφοριών από τις κεραίες στα αυτοκίνητα σχετικά με ένα ευχάριστο γεγονός, όπως για παράδειγμα μία προσφορά κάποιου σούπερ μάρκετ. Το αυτοκίνητο μόλις θα λαμβάνει την πληροφορία θα την αξιολογεί και θα αποφασίζει αν επιθυμεί να τη δεχτεί ή όχι. Τέλος, μια πιο εξειδικευμένη επέκταση της εφαρμογής θα ήταν η προσθήκη εμβέλειας στις κεραίες (ως προς τα αυτοκίνητα) αφενός και επικοινωνία μεταξύ αυτοκινήτων αφετέρου. Με αυτόν τον τρόπο τα αυτοκίνητα μετατρέπονται σε ένα πολυπρακτορικό σύστημα συνεργασίας με στόχο την εξεύρεση της καλύτερης διαδρομής. 86

87 8 Βιβλιογραφία [1] Wikipedia, τελευταία πρόσβαση 28/12/2007. [2] AgentSheets, τελευταία πρόσβαση 28/12/2007. [3] Jena, τελευταία πρόσβαση 28/12/2007. [4] Ματσατσίνης Νικόλαος, Κατανεμημένη τεχνητή νοημοσύνη και σύστημα πολλαπλών πρακτόρων, Πολυτεχνείο Κρήτης. [5] Tim Berners-Lee, τελευταία πρόσβαση 28/12/2007. [6] Βλαχάβας Ιωάννης, Κεφαλάς Πέτρος, Βασιλειάδης Νικόλαος, Κόκκορας Φώτης, Σακελλαρίου Ηλίας, Τεχνητή Νοημοσύνη, Β Έκδοση. Εκδόσεις Γαρταγάνη. Θεσσαλονίκη. [7] Καλούδη Ζωή, Πρότυπο Αποθήκευσης και διαχείρισης Σχημάτων RDFS, Διπλωματική εργασία 2003, Εθνικό Μετσόβιο Πολυτεχνείο, Σχολή Ηλεκτρολόγων Μηχανικών. [8] Wooldridge Μ. and Jennings N., Intelligent Agents: Theory and Practice, Knowledge Engineering Review, 10(2), [9] Russell, S., P. Norvig (1995), Artificial Intelligence: A Modern Approach, Prentice Hall, [10] Janca, Peter. Pragmatic Application of Information Agents. BIS Strategic Decisions, Norwell, United States, May [11] Hermans, Björn, 1997, Intelligent Software Agents on the Internet: An Inventory of CurrentlyOffered Functionality in the Information Society and a Prediction of (Near) FutureDevelopments, First Monday, Vol II No 3, available. [12] Pattie Maes, Agents that reduce work and information overload Communications of the ACM,

88 [13] Hayes-Roth, B. An architecture for adaptive intelligent systems. Artificial Intelligence, in press, [14] Mark D'Inverno, Michael Luck, Michael Georgeff, David Kinny, and Michael Wooldridge. The dmars Architecture: A Specification of the Distributed Multi-Agent Reasoning System. Autonomous Agents & Multi-Agent Systems, [15] Εφαρμογή, τελευταία πρόσβαση 28/12/2007. [16] Γλώσσα Visual Agent Talk, τελευταία πρόσβαση 28/12/2007. [17] Wikipedia, τελευταία πρόσβαση 28/12/2007. [18] UnitedFarmWorkers'History, τελευταία πρόσβαση 28/12/2007. [19] Εcoli, τελευταία πρόσβαση 28/12/2007 [20] John Glenn, τελευταία πρόσβαση 28/12/2007. [21] Alexander Repenning, Andri Ioannidou and John Zola, AgentSheets: End- User Programmable Simulations, Journal of Artificial Societies and Social Simulation, vol3, no3, , τελευταία πρόσβαση 28/12/2007. [22] W3C, OWL Web Ontology Language, τελευταία πρόσβαση 28/12/2007. [23] W3C, SPARQL Query Language for RDF, τελευταία πρόσβαση 28/12/2007. [24] Eclipse - an open development platform, τελευταία πρόσβαση 28/12/2007. [25] JBuilder 2007,Making collaborative development fast and reliable for Java, open source and the web, τελευταία πρόσβαση 28/12/

89 9 Παράρτημα Στην Ενότητα 9.1 παρουσιάζεται η οντολογία των εμποδίων, στην Ενότητα 9.2 οι ε- ξωτερικές συναρτήσεις που καλούνται από τα αυτοκίνητα, στην Ενότητα 9.3 όλες οι συνθήκες του AgentSheets και στην Ενότητα 9.4 οι δράσεις αυτού. 9.1 Οντολογία Εμποδίων Η οντολογία, που περιγράφθηκε στο Κεφάλαιο 3, περιλαμβάνει έντεκα κλάσεις και παρουσιάζεται ακολούθως σε μορφή RDF/XML. <rdf:rdf xmlns:rdf=" xmlns:owl=" xmlns:car=" xmlns:rdfs=" > <rdf:description rdf:about=" <rdfs:subclassof rdf:resource=" <rdf:type rdf:resource=" </rdf:description> <rdf:description rdf:about=" <rdfs:subclassof rdf:resource=" <rdf:type rdf:resource=" </rdf:description> <rdf:description rdf:about=" <rdfs:subclassof rdf:resource=" <rdf:type rdf:resource=" 89

90 schema#class"/> </rdf:description> <rdf:description rdf:about=" <rdf:type rdf:resource=" </rdf:description> <rdf:description rdf:about=" <rdfs:subclassof rdf:resource=" <rdf:type rdf:resource=" </rdf:description> <rdf:description rdf:about=" <rdfs:subclassof rdf:resource=" <rdf:type rdf:resource=" </rdf:description> <rdf:description rdf:about=" <rdfs:subclassof rdf:resource=" <rdf:type rdf:resource=" </rdf:description> <rdf:description rdf:about=" <rdfs:subclassof rdf:resource=" <rdf:type rdf:resource=" </rdf:description> <rdf:description rdf:about=" <rdf:type rdf:resource=" </rdf:description> <rdf:description rdf:about=" 90

91 <rdfs:subclassof rdf:resource=" <rdf:type rdf:resource=" </rdf:description> <rdf:description rdf:about=" <rdfs:subclassof rdf:resource=" <rdf:type rdf:resource=" </rdf:description> <rdf:description rdf:about=" <rdfs:subclassof rdf:resource=" <rdf:type rdf:resource=" </rdf:description> </rdf:rdf> 9.2 Εξωτερικές συναρτήσεις κατάταξης εμποδίων Στην ενότητα αυτή παρουσιάζεται ο κώδικας των εξωτερικών συναρτήσεων που καλούνται από τα αυτοκίνητα, προκειμένου αυτά να κατατάξουν τα εμπόδια στη σωστή κλάση Εξωτερική συνάρτηση για το εμπόδιο της βροχής(rain) package Plugins; import java.io.inputstream; import com.hp.hpl.jena.rdf.model.model; import com.hp.hpl.jena.rdf.model.modelfactory; import com.hp.hpl.jena.rdf.model.stmtiterator; import com.hp.hpl.jena.rdf.model.statement; import com.hp.hpl.jena.rdf.model.resource; import com.hp.hpl.jena.rdf.model.property; import com.hp.hpl.jena.rdf.model.rdfnode; import com.hp.hpl.jena.util.filemanager; import java.util.vector; 91

92 import java.util.stringtokenizer; import javax.swing.joptionpane; public class RDFPlugin_Rain { private static String subclass = " private static String keyword = "rain"; Word; private static String input = " + key- private static final String inputtotalfilename = "car.rdfs"; public static void There_Is_Rain_Action(String message) { String inputfilename = keyword + ".rdf"; // Create an empty model Model model = ModelFactory.createDefaultModel(); // Open the RDF File from the Hard Drive InputStream in = FileManager.get().open( inputfilename ); if (in == null) { throw new IllegalArgumentException( "File: " + inputfilename + " not found"); } // Read-Load the RDF/XML file model.read(in, ""); //Find the Resource for the "RAIN" subject String resource = returnresource(model); //Open the total RDF file // Create an empty model Model total_model = ModelFactory.createDefaultModel(); // Open the RDF File from the Hard Drive InputStream total_in = FileManager.get().open( inputfilename ); if (total_in == null) { throw new IllegalArgumentException( "File: " + inputtotalfile- Name + " not found"); } // Read-Load the RDF/XML file total_model.read(total_in, ""); if(total_model.containsall(model)) { //JOptionPane.showMessageDialog(null, "RDF File FOUND!", "Title", JOptionPane.INFORMATION_MESSAGE); } 92

93 JOptionPane.showMessageDialog(null, keyword + ":" + resource, "Title", JOptionPane.INFORMATION_MESSAGE); } private static String returnresource(model model) { //System.out.println("THIS IS THE RESOURCE YOU NEED:\n"); String output = ""; // list the statements in the graph StmtIterator iter = model.liststatements(); // print out the predicate, subject and object of each statement while (iter.hasnext()) { Statement stmt = iter.nextstatement();// get next statement Resource subject = stmt.getsubject(); // get the subject Property predicate = stmt.getpredicate(); // get the predicate RDFNode object = stmt.getobject(); // get the object if (predicate.tostring().equalsignorecase(subclass) && subject.tostring().equalsignorecase(input)) { //System.out.println(object.toString()); "#"); StringTokenizer str_t = new StringTokenizer(object.toString(), str_t.nexttoken(); output = str_t.nexttoken(); } } //System.out.println("\nEND OF RESOURCE\n\n"); return output; } } Εξωτερική συνάρτηση για το εμπόδιο της κίνησης(traffic) package Plugins; import java.io.inputstream; import com.hp.hpl.jena.rdf.model.model; import com.hp.hpl.jena.rdf.model.modelfactory; import com.hp.hpl.jena.rdf.model.stmtiterator; import com.hp.hpl.jena.rdf.model.statement; import com.hp.hpl.jena.rdf.model.resource; import com.hp.hpl.jena.rdf.model.property; import com.hp.hpl.jena.rdf.model.rdfnode; import com.hp.hpl.jena.util.filemanager; 93

94 import java.util.vector; import java.util.stringtokenizer; import javax.swing.joptionpane; public class RDFPlugin_Traffic { private static String subclass = " private static String keyword = "traffic"; Word; private static String input = " + key- private static final String inputtotalfilename = "car.rdfs"; public static void There_Is_Traffic_Action(String message) { String inputfilename = keyword + ".rdf"; // Create an empty model Model model = ModelFactory.createDefaultModel(); // Open the RDF File from the Hard Drive InputStream in = FileManager.get().open( inputfilename ); if (in == null) { throw new IllegalArgumentException( "File: " + inputfilename + " not found"); } // Read-Load the RDF/XML file model.read(in, ""); //Find the Resource for the "TRAFFIC" subject String resource = returnresource(model); //Open the total RDF file // Create an empty model Model total_model = ModelFactory.createDefaultModel(); // Open the RDF File from the Hard Drive InputStream total_in = FileManager.get().open( inputfilename ); if (total_in == null) { throw new IllegalArgumentException( "File: " + inputtotalfilename + " not found"); 94

95 } // Read-Load the RDF/XML file total_model.read(total_in, ""); if(total_model.containsall(model)) { //JOptionPane.showMessageDialog(null, "RDF File FOUND!", "Title", JOptionPane.INFORMATION_MESSAGE); } JOptionPane.showMessageDialog(null, keyword + ":" + resource, "Title", JOptionPane.INFORMATION_MESSAGE); } private static String returnresource(model model) { //System.out.println("THIS IS THE RESOURCE YOU NEED:\n"); String output = ""; // list the statements in the graph StmtIterator iter = model.liststatements(); // print out the predicate, subject and object of each statement while (iter.hasnext()) { Statement stmt = iter.nextstatement();// get next statement Resource subject = stmt.getsubject(); // get the subject Property predicate = stmt.getpredicate(); // get the predicate RDFNode object = stmt.getobject(); // get the object if (predicate.tostring().equalsignorecase(subclass) && subject.tostring().equalsignorecase(input)) { //System.out.println(object.toString()); StringTokenizer str_t = new StringTokenizer(object.toString(), "#"); str_t.nexttoken(); output = str_t.nexttoken(); } } //System.out.println("\nEND OF RESOURCE\n\n"); 95

96 return output;} } Εξωτερική συνάρτηση για το εμπόδιο των έργων(works) package Plugins; import java.io.inputstream; import com.hp.hpl.jena.rdf.model.model; import com.hp.hpl.jena.rdf.model.modelfactory; import com.hp.hpl.jena.rdf.model.stmtiterator; import com.hp.hpl.jena.rdf.model.statement; import com.hp.hpl.jena.rdf.model.resource; import com.hp.hpl.jena.rdf.model.property; import com.hp.hpl.jena.rdf.model.rdfnode; import com.hp.hpl.jena.util.filemanager; import java.util.vector; import java.util.stringtokenizer; import javax.swing.joptionpane; public class RDFPlugin_Works { private static String subclass = " ; private static String keyword = "works"; Word; private static String input = " + key- private static final String inputtotalfilename = "car.rdfs"; public static void There_Are_Works_Action(String message) { String inputfilename = keyword + ".rdf"; // Create an empty model Model model = ModelFactory.createDefaultModel(); // Open the RDF File from the Hard Drive InputStream in = FileManager.get().open( inputfilename ); if (in == null) { throw new IllegalArgumentException( "File: " + inputfilename + " not found"); } // Read-Load the RDF/XML file model.read(in, ""); //Find the Resource for the "WORKS" subject 96

97 String resource = returnresource(model); //Open the total RDF file // Create an empty model Model total_model = ModelFactory.createDefaultModel(); // Open the RDF File from the Hard Drive InputStream total_in = FileManager.get().open( inputfilename ); if (total_in == null) { throw new IllegalArgumentException( "File: " + inputtotalfile- Name + " notfound");} // Read-Load the RDF/XML file total_model.read(total_in, ""); if(total_model.containsall(model)) { //JOptionPane.showMessageDialog(null, "RDF File FOUND!", "Title", JOptionPane.INFORMATION_MESSAGE);} JOptionPane.showMessageDialog(null, keyword + ":" + resource, "Title", JOptionPane.INFORMATION_MESSAGE);} private static String returnresource(model model) { //System.out.println("THIS IS THE RESOURCE YOU NEED:\n"); String output = ""; // list the statements in the graph StmtIterator iter = model.liststatements(); // print out the predicate, subject and object of each statement while (iter.hasnext()) { Statement stmt = iter.nextstatement();// get next statement Resource subject = stmt.getsubject(); // get the subject Property predicate = stmt.getpredicate(); // get the predicate RDFNode object = stmt.getobject(); // get the object If(predicate.toString().equalsIgnoreCase(subClass) && subject.tostring().equalsignorecase(input)) { //System.out.println(object.toString()); "#"); StringTokenizer str_t = new StringTokenizer(object.toString(), str_t.nexttoken(); output = str_t.nexttoken();}} //System.out.println("\nEND OF RESOURCE\n\n"); return output; } } 97

98 9.3 Συνθήκες Οι συνθήκες χρησιμοποιούνται για να εξετάσουν τις διάφορες καταστάσεις, στις ο- ποίες μπορεί να βρεθούν οι πράκτορες. Μεταξύ άλλων, υπάρχει η δυνατότητα οι πράκτορες να εξετάζουν την ύπαρξη άλλων πρακτόρων στο πεδίο εργασίας, τιμές ι- διοτήτων πρακτόρων, είσοδο από το πληκτρολόγιο, ενέργειες που προέρχονται από το ποντίκι, ακόμα και περιεχόμενο ιστοσελίδων, που αντλείται από το Διαδίκτυο. Η πρόσβαση στη συλλογή συνθηκών πραγματοποιείται με την επιλογή Συλλογή Συνθηκών από το μενού Εργαλεία ή με κλικ στο εικονίδιο Συνθήκες της Γραμμής Εργαλείων. Οι συνθήκες μπορούν επίσης να προσπελαθούν και να προστεθούν στη συμπεριφορά ενός πράκτορα κάνοντας δεξί-κλικ στο σημείο εκείνο του κανόνα όπου τοποθετούνται οι συνθήκες (στο τμήμα ΑΝ του κανόνα).οι διαθέσιμες συνθήκες φαίνονται στο Σχήμα 1, καθώς και ένα παράδειγμα επιλογής της συνθήκης Είμαι δίπλα σε. 1. Δω 2. Δω Πράκτορα 3. Είμαι στοιβαγμένο 4. Είμαι στοιβαγμένο από ένα 5. Είμαι δίπλα σε 6. Είναι άδειο 7. Πληκτρολογηθεί 8. Ποσοστό (%) επιτυχίας 9. Μια φορά κάθε 10. Ακούσω 11. Είναι η ιδιότητα 12. Έχει ιδιότητα 13. Διαβάσω στο WWW 14. Είμαι πάνω από 15. Κατευθύνομαι Συνθήκη «Δω» Σχήμα 1-Συνθήκες και παράδειγμα επιλογής συνθήκης 98

99 Ορισμός: Η συνθήκη Δω εξετάζει αν ο πράκτορας, στη θέση που υποδεικνύεται από την παράμετρο Κατεύθυνση, μοιάζει με την απεικόνιση που καθορίζεται από την παράμετρο Απεικόνιση. Η τελεία (.) στην παράμετρο Κατεύθυνση αναφέρεται στον ίδιο τον πράκτορα. Εάν η υποδεικνυόμενη θέση περιέχει πράκτορα με την επιλεγμένη απεικόνιση τότε η συνθήκη είναι αληθής. Διαφορετικά, η συνθήκη είναι ψευδής. Παράδειγμα: Ο πράκτορας Shark στο έργο Fish Tank εξετάζει εάν υπάρχει από πάνω του πράκτορας Fish προκειμένου να τον φάει, όπως επίσης εξετάζει αν ο ίδιος μοιάζει με Shark που κατευθύνεται προς τα αριστερά και αποφασίζει να αλλάξει κατεύθυνση ή να κινηθεί αριστερά. Σχήμα 2-Παράδειγμα συνθήκης «Δω» 99

100 9.3.2 Συνθήκη «Δω πράκτορα» Ορισμός: Η συνθήκη Δω πράκτορα εξετάζει αν υπάρχει πράκτορας της κλάσης που καθορίζεται από την παράμετρο Κλάση στη θέση που υποδεικνύεται από την παράμετρο Κατεύθυνση. Η συνθήκη αυτή ανταποκρίνεται σε όλες τις απεικονίσεις ενός πράκτορα της συγκεκριμένης κλάσης. Χρησιμοποιείται για να εξακριβώσει την ύπαρξη ενός πράκτορα αδιαφορώντας για το πώς μοιάζει. Εάν η υποδεικνυόμενη θέση περιέχει πράκτορα της συγκεκριμένης κλάσης τότε η συνθήκη είναι αληθής. Διαφορετικά η συνθήκη είναι ψευδής. Παράδειγμα: Στο παράδειγμα που ακολουθεί από το έργο Benchmark ο πράκτορας Counter εξετάζει αν υπάρχει πράκτορας της κλάσης Digit στα αριστερά του και τότε στέλνει το μήνυμα Inc (αύξηση). Σχήμα 3- Παράδειγμα συνθήκης «Δω πράκτορα» Συνθήκη «Είμαι στοιβαγμένο» 100

101 Ορισμός: Η συνθήκη Είμαι στοιβαγμένο, εξετάζει αν στην ίδια θέση του πράκτορα υπάρχουν στοιβαγμένοι πράκτορες με την απεικόνιση που καθορίζεται από την παράμετρο Α- πεικόνιση σύμφωνα με την παράμετρο Γειτνίαση. Η συνθήκη έχει τη δυνατότητα να εξετάσει τους παρακείμενους πράκτορες στη στοίβα για να καθορίσει αν ο πράκτορας που εκτελεί αυτή τη συνθήκη είναι ακριβώς πάνω από, πάνω από, ακριβώς κάτω από, κάτω από, πάνω ή κάτω από τον συγκεκριμένο πράκτορα που προσδιορίζεται από την παράμετρο Απεικόνιση. Εάν υπάρχει πράκτορας με την καθορισμένη απεικόνιση στην θέση που καθορίζεται από την παράμετρο Γειτνίαση στη στοίβα της συγκεκριμένης θέσης τότε η συνθήκη είναι αληθής. Διαφορετικά η συνθήκη είναι ψευδής Συνθήκη «Είμαι στοιβαγμένο από ένα» Ορισμός: Η συνθήκη Είμαι στοιβαγμένο από ένα εξετάζει αν στην ίδια θέση του πράκτορα υπάρχουν στοιβαγμένοι πράκτορες της κλάσης που καθορίζεται από την παράμετρο Κλάση σύμφωνα με την παράμετρο Γειτνίαση. Η συνθήκη έχει τη δυνατότητα να ε- ξετάσει τους παρακείμενους πράκτορες στη στοίβα για να καθορίσει αν ο πράκτορας που εκτελεί αυτή τη συνθήκη είναι ακριβώς πάνω από, πάνω από, ακριβώς κάτω από, κάτω από, πάνω ή κάτω από πράκτορες της κλάσης που προσδιορίζεται από την παράμετρο Κλάση. Χρησιμοποιείται για να εξακριβώσει την ύπαρξη ενός πράκτορα στην στοίβα αδιαφορώντας για το πώς μοιάζει. Εάν υπάρχει πράκτορας της καθορισμένης κλάσης στη στοίβα στη συγκεκριμένη θέση που καθορίζεται από την παράμετρο Γειτνίαση τότε η συνθήκη είναι αληθής. Διαφορετικά η συνθήκη είναι ψευδής Συνθήκη «Είμαι δίπλα σε» Ορισμός: Η συνθήκη Είμαι δίπλα σε εξετάζει πόσοι από τους γειτονικούς πράκτορες έχουν τη συγκεκριμένη Απεικόνιση. Εάν ο πράκτορας βρίσκεται δίπλα στο σωστό αριθμό πρα- 101

102 κτόρων με τη συγκεκριμένη απεικόνιση τότε η συνθήκη είναι αληθής. Διαφορετικά είναι ψευδής. Παράδειγμα: Ο πράκτορας Person, στο έργο Virus Attack, εάν βρεθεί δίπλα σε έναν ή παραπάνω άρρωστους Person τότε έχει πιθανότητα 5% να προσβληθεί και αυτός από τον ιό Συνθήκη «Είναι άδειο» Σχήμα 4- Παράδειγμα συνθήκης «Είμαι δίπλα σε» Ορισμός: Η συνθήκη Είναι άδειο εξετάζει αν η γειτονική θέση που καθορίζεται από την παράμετρο Κατεύθυνση είναι άδεια. Μια θέση θεωρείται άδεια εάν δεν περιέχει κανέναν πράκτορα της τρέχουσας εικονοθήκης. Εάν η θέση που καθορίζεται από την παράμετρο Κατεύθυνση είναι άδεια τότε η συνθήκη είναι αληθής. Διαφορετικά η συνθήκη είναι ψευδής. 102

103 Παράδειγμα: Στην αναζήτηση του για ξυλεία ο πράκτορας Termite του έργου Termites, εξετάζει αν η περιοχή δεξιά του και αριστερά του είναι άδεια και με συγκεκριμένη πιθανότητα μετακινείται προς μια από τις άδειες θέσεις. Σχήμα 5- Παράδειγμα συνθήκης «Είναι άδειο» Συνθήκη «Πληκτρολογηθεί» Ορισμός: Η συνθήκη Πληκτρολογηθεί εξετάζει αν το πλήκτρο που δείχνει η παράμετρος Πλήκτρο της έχει πατηθεί. Εάν το υποδεικνυόμενο πλήκτρο έχει πατηθεί τότε η συνθήκη είναι αληθής. Διαφορετικά η συνθήκη είναι ψευδής. Η συνθήκη Πληκτρολογηθεί μπορεί να χρησιμοποιηθεί έτσι ώστε να τεθούν χαρακτήρες του πληκτρολογίου για 103

104 έλεγχο τη προσομοίωσης. Επίσης μπορούν να οριστούν χαρακτήρες του τύπου θερμά-πλήκτρα (hot-keys) έτσι ώστε να αναγκάζονται οι πράκτορες να προβούν σε συγκεκριμένες ενέργειες όταν αυτά πατηθούν. Για να γίνει εφικτό το παραπάνω αποτέλεσμα πρέπει να τοποθετηθεί η συνθήκη Πληκτρολογηθεί στους κανόνες της μεθόδου ενός πράκτορα έτσι ώστε να εξετάζεται σε κάθε κύκλο της προσομοίωσης. Παράδειγμα: Ο πράκτορας Cursor στο έργο ABC ανιχνεύει την πληκτρολόγηση χαρακτήρων από τον χρήστη και εμφανίζει τον αντίστοιχο χαρακτήρα. Για παράδειγμα αν πατηθεί το πλήκτρο Α τότε ο πράκτορας Cursor θα δημιουργήσει έναν νέο πράκτορα Α και θα μετακινηθεί μια θέση δεξιά. Σχήμα 6- Παράδειγμα συνθήκης «Πληκτρολογηθεί» Συνθήκη «Ποσοστό (%) επιτυχίας» Ορισμός: Η συνθήκη Ποσοστό (%) επιτυχίας είναι αληθής με συγκεκριμένη επί τοις εκατό πιθανότητα, όπως αυτή καθορίζεται από έναν αριθμό ή από μια Αριθμητική Παράσταση της VAT. Για παράδειγμα με την τιμή 50 ορισμένη στη συνθήκη, το ποσοστό επιτυχίας της κατά μέσο όρο θα είναι 50%. Η συνθήκη Ποσοστό (%) επιτυχίας επιλέγει τυχαία έναν αριθμό μεταξύ του 1 και του 100 όποτε εκτελείται. Εάν ο τυχαίος αυτός αριθμός είναι μικρότερος από τον αριθμό που περιγράφεται στην παράμετρο Α- 104

105 ριθμητική Παράσταση τότε η συνθήκη είναι αληθής. Διαφορετικά η συνθήκη είναι ψευδής. Παράδειγμα: Ο πράκτορας Ball στο έργο Counting Pachinko κινείται προς τα κάτω όταν δεν συναντά κανένα εμπόδιο αλλά καθώς κινείται προς τα κάτω έχει 50% πιθανότητες να κινηθεί προς τα δεξιά ή αριστερά. Σχήμα 7 Παράδειγμα συνθήκης «Ποσοστό % επιτυχίας» Συνθήκη «Μια φορά κάθε...δευτερόλεπτα» Ορισμός: Η συνθήκη Μια φορά κάθε...δευτερόλεπτα εξετάζει αν έχουν περάσει Ν δευτερόλεπτα από την τελευταία φορά που εξετάστηκε. Το Ν είναι ένας αριθμός ή μια Αριθμητική Παράσταση της VAT. Εάν τα Ν δευτερόλεπτα έχουν περάσει τότε η συνθήκη είναι αληθής. Διαφορετικά είναι ψευδής. Η συνθήκη Μια φορά κάθε δρα σαν τοπικό χρονόμετρο για τον πράκτορα. Αντίθετα από τη δράση Περιμένω, η συνθήκη Μια φορά κάθε...δευτερόλεπτα μπορεί να χρησιμοποιηθεί ώστε να επιβραδύνει ανεξάρτητα κάποιους πράκτορες χωρίς να σταματάει και τους υπόλοιπους. 105

106 Παράδειγμα: Στο έργο Voting Game ο πράκτορας Counter συγκεντρώνει τις ψήφους μία φορά το δευτερόλεπτο. Σχήμα 8 Παράδειγμα συνθήκης «Μια φορά κάθε δευτερόλεπτα» Συνθήκη «Ακούσω» Ορισμός: Η συνθήκη Ακούσω εξετάζει αν κάποιος από τους 8 γειτονικούς πράκτορες «μιλάει» λέγοντας τη συγκεκριμένη φράση χρησιμοποιώντας τη δράση Ηχώ. Έστω κι αν ένας από τους γειτονικούς πράκτορες λέει τη συγκεκριμένη φράση τότε η συνθήκη είναι αληθής. Διαφορετικά είναι ψευδής Συνθήκη «Είναι η ιδιότητα» Ορισμός: Η συνθήκη Είναι η ιδιότητα συγκρίνει τις τιμές δύο Αριθμητικών Παραστάσεων. Εάν από τη σύγκριση προκύπτει αλήθεια τότε η συνθήκη είναι αληθής. Διαφορετικά είναι ψευδής. 106

107 Παράδειγμα: Στο έργο Bridge Builder, ο πράκτορας Brick πέφτει προς τα κάτω εάν η θέση κάτω από αυτόν είναι άδεια και η δύναμη που ενεργεί πάνω του (που αντιπροσωπεύεται απο την ιδιότητα «UP») είναι μικρότερη ή ίση με 0,3 (τότε δεν μπορεί να κρατηθεί στη θέση του) Συνθήκη «Έχει ιδιότητα» Ορισμός: Η συνθήκη Έχει ιδιότητα εξετάζει εάν ο πράκτορας στη κατεύθυνση που καθορίζεται από την παράμετρο Κατεύθυνση έχει ιδιότητα με το όνομα που καθορίζεται από την παράμετρο Ιδιότητα. Εάν ο συγκεκριμένος πράκτορας έχει ιδιότητα με αυτό το όνομα τότε η συνθήκη είναι αληθής. Διαφορετικά είναι ψευδής. Παράδειγμα: Στο έργο Ultimate Pacman, ο πράκτορας Red Ghost εξετάζει εάν ο πράκτορας πάνω από αυτόν έχει ιδιότητα με το όνομα «p» (αφού στην συγκεκριμένη συμπεριφορά, θέλουμε να λάβουμε υπόψη μόνο τους πράκτορες που έχουν ιδιότητα p). Εάν έχει τότε συγκρίνει τη τιμή της ιδιότητας p με την τρέχουσα τιμή της ιδιότητας max p (μέγιστο p) και αν το p είναι μεγαλύτερο τότε θέτει την max p ίση με p. Στη συνέχεια ο πράκτορας Red Ghost αλλάζει την έκφραση του προσώπου του έτσι ώστε να μοιάζει ότι πηγαίνει προς τα επάνω. Αυτό είναι ένα τμήμα της συμπεριφοράς του πράκτορα Pacman. Σχήμα 9- Παράδειγμα συνθήκης «Έχει Ιδιότητα» 107

108 Συνθήκη «Διαβάσω στο WWW» Ορισμός: Η συνθήκη Διαβάσω στο WWW ψάχνει σε συγκεκριμένη ιστοσελίδα του Διαδικτύου που καθορίζεται στην παράμετρο URL μια συγκεκριμένη φράση που καθορίζεται στην πρώτη παράμετρο Ακολουθία Χαρακτήρων. Εάν η συγκεκριμένη φράση βρεθεί στην ιστοσελίδα τότε ο αριθμός που ακολουθεί αυτή τη φράση διαβάζεται και αποθηκεύεται στην ιδιότητα πράκτορα που καθορίζεται από την παράμετρο Ιδιότητα. Στο πεδίο της φράσης προς αναζήτηση είναι δυνατή και η χρήση μεταχαρακτήρων (π.χ. * ). Αυτή η συνθήκη θα πρέπει να χρησιμοποιείται όταν ο χρήστης είναι συνδεδεμένος στο Διαδίκτυο. Εάν χρησιμοποιηθεί η συνθήκη χωρίς ενεργή σύνδεση, τότε το AgentSheets θα προσπαθήσει να ενεργοποιήσει μόνο του τη σύνδεση. Παράδειγμα: Στο έργο Boulder Live κάθε πράκτορας, όπως ο NCAR_Mesa αντλεί την τρέχουσα θερμοκρασία επισκεπτόμενος την ιστοσελίδα NCAR Mesa Lab Weather και ψάχνοντας τη φράση Temperature και αποθηκεύει την αριθμητική τιμή που θα βρει μετά την φράση στην ιδιότητα Temp. Σχήμα 10- Παράδειγμα συνθήκης «Διαβάζω στο www» 108

109 Συνθήκη «Είμαι πάνω από» Ορισμός: Η συνθήκη Είμαι πάνω από εξετάζει εάν ο πράκτορας βρίσκεται πάνω από πράκτορα συγκεκριμένης κλάσης με έξοδο συνδεσιμότητας προς την καθορισμένη κατεύθυνση. Εάν ο πράκτορας που βρίσκεται από κάτω έχει έξοδο συνδεσιμότητας ίδια με αυτή που καθορίζεται στην παράμετρο Κατεύθυνση τότε η συνθήκη είναι αληθής. Διαφορετικά η συνθήκη είναι ψευδής. Παράδειγμα: Στο έργο Sustainοpolis ο πράκτορας Auto εξετάζει εάν βρίσκεται πάνω σε κομμάτι δρόμου που έχει έξοδο συνδεσιμότητας προς τα δεξιά. Εάν ναι, τότε ο πράκτορας Auto κινείται δεξιά. Σχήμα 11- Παράδειγμα συνθήκης «Είμαι πάνω από» Συνθήκη «Κατευθύνομαι» Ορισμός: Η συνθήκη Κατευθύνομαι εξετάζει εάν ο πράκτορας είναι προσανατολισμένος προς την κατεύθυνση που προσδιορίζεται από την παράμετρο Κατεύθυνση. Εάν ο προσανατολισμός του πράκτορα είναι ίδιος με την κατεύθυνση που ορίζεται στην παράμετρο τότε η συνθήκη είναι αληθής. Διαφορετικά είναι ψευδής. Ο προσανατολισμός ενός πράκτορα μπορεί να τεθεί με την δράση Θέτω. 109

110 9.4 Δράσεις Οι δράσεις είναι διάφορες λειτουργίες οι οποίες εκτελούνται από τους πράκτορες. Επιτρέπουν στους πράκτορες να κινηθούν στο πεδίο εργασίας, να μεταβάλλουν την απεικόνιση τους, να αναπαράγουν έναν ήχο και να ανοίξουν μια ιστοσελίδα. Η πρόσβαση στη συλλογή δράσεων πραγματοποιείται μέσω της επιλογής Συλλογή Δράσεων του μενού Εργαλεία ή κάνοντας κλικ στο εικονίδιο Συλλογή Δράσεων της Γραμμής Εργαλείων. Οι δράσεις μπορούν επίσης να προσπελαθούν και να προστεθούν στη συμπεριφορά ενός πράκτορα κάνοντας δεξί-κλικ στο σημείο εκείνο του κανόνα όπου τοποθετούνται οι δράσεις (στο τμήμα ΤΟΤΕ του κανόνα). Οι διαθέσιμες δράσεις φαίνονται στο Σχήμα 12 καθώς και ένα παράδειγμα επιλογής της δράσης Αλλάζω. 1. Μετακινούμαι 2. Μετακινούμαι τυχαία πάνω σε 3. Αλλάζω 4. Δημιουργώ 5. Εξαφανίζω 6. Χρωματίζομαι 7. Κάνω 8. Εκπέμπω 9. Περιμένω 10. Αναπαράγω Ήχο 11. Ηχώ 12. Θέτω την ιδιότητα 13. Αντιστοιχίζω την ιδιότητα 14. Αναπαριστώ γραφικά την ιδιότητα 15. Αναπαριστώ γραφικά σε παράθυρο 16. Ανοίγω URL 17. Μεταπηδώ σε πεδίο εργασίας 18. Φορτώνω Φόντο 19. Θέτω κατεύθυνση 20. Διακόπτω την προσομοίωση 21. Επαναφέρω την αρχική προσομοίωση 22. Καθαρίζω την προσομοίωση Σχήμα 12-Δράσεις και παράδειγμα επιλογής δράσης Δράση «Μετακινούμαι» 110

111 Ορισμός: Η δράση Μετακινούμαι κινεί τον πράκτορα κατά ένα κελί προς την κατεύθυνση που ορίζεται από την παράμετρο Κατεύθυνση. Η τελεία (.) ως παράμετρος κατεύθυνσης έχει ως αποτέλεσμα να παραμένει ο πράκτορας στη θέση του. Παράδειγμα: Στο έργο Rainy Day ο πράκτορας Rain (σταγόνα βροχής) πέφτει προς τα κάτω με μια μικρή διαγώνια μεταβολή της θέσης για να προσομοιώσει τον αέρα που έρχεται από τα αριστερά. Όταν ο πράκτορας Rain φτάσει πλέον στο έδαφος σταματάει να κινείται προς τα κάτω και κινείται τυχαία αριστερά ή δεξιά. Σχήμα 13 Παράδειγμα συνθήκης «Μετακινούμαι» Δράση «Μετακινούμαι τυχαία πάνω σε» Ορισμός: Η δράση Μετακινούμαι τυχαία πάνω σε επιτρέπει στον πράκτορα να κινηθεί τυχαία προς οποιαδήποτε από τις άμεσες γειτονικές θέσεις αρκεί αυτή να περιέχει πράκτορα με την καθορισμένη απεικόνιση από την παράμετρο Απεικόνιση. Ο πράκτορας επιλέγει τυχαία και μετακινείται πάνω σε ένα από τους γειτονικούς πράκτορες με την καθορισμένη απεικόνιση. Παράδειγμα: 111

112 Στο έργο Virus Attack ο πράκτορας Person κινείται τυχαία πάνω στα πλακίδια του υπόβαθρου (πράκτορες Background). Σχήμα 14 Παράδειγμα συνθήκης «Μετακινούμαι τυχαία πάνω σε» Δράση «Αλλάζω» Ορισμός: Η δράση Αλλάζω αλλάζει την Απεικόνιση ενός πράκτορα στο κελί που καθορίζεται από την παράμετρο Κατεύθυνση της εντολής. Η τελεία (.) ως παράμετρος Κατεύθυνσης αναφέρεται στον ίδιο τον πράκτορα. Η δράση Αλλάζω είναι ιδανική για την δημιουργία κινουμένων σχεδίων. Παράδειγμα: Στο έργο Fish Tank όταν ο πράκτορας Fish (ψάρι) κοιτάζει μπροστά έχει 10% πιθανότητα να αλλάξει και να γίνει σαν ψάρι που πηγαίνει αριστερά και 11% πιθανότητα να αλλάξει και να γίνει σαν ψάρι που πηγαίνει δεξιά. 112

113 9.4.4 Δράση «Δημιουργώ» Σχήμα 15- Παράδειγμα συνθήκης «Αλλάζω» Ορισμός: Η δράση Δημιουργώ δημιουργεί έναν νέο πράκτορα στο κελί που ορίζεται στην παράμετρο Κατεύθυνση. Ο νέος πράκτορας έχει όψη που ορίζεται στην παράμετρο Α- πεικόνιση. Παράδειγμα: Ο πράκτορας Car-Source στο έργο Sustainοpolis δημιουργεί νέα αυτοκίνητα πάνω στο δρόμο μία φορά κάθε έξι δευτερόλεπτα. Σχήμα 16- Παράδειγμα συνθήκης «Δημιουργώ» 113

114 9.4.5 Δράση «Εξαφανίζω» Ορισμός: Η δράση Εξαφανίζω εξαφανίζει τον πράκτορα που καθορίζεται από την παράμετρο Κατεύθυνση. Η εκτέλεση της δράσης Εξαφανίζω έχει το ίδιο αποτέλεσμα με την ε- φαρμογή του εργαλείου Γόμα στο πεδίο εργασίας. Παράδειγμα: Ο πράκτορας Car στο έργο Bridge Builder εξαφανίζει τον εαυτό του κάθε φορά που βλέπει το τούνελ στα δεξιά του κι έτσι δίνεται η ψευδαίσθηση ότι μπαίνει μέσα στο τούνελ Δράση «Χρωματίζομαι» Σχήμα 17- Παράδειγμα συνθήκης «Εξαφανίζω» Ορισμός: Η δράση Χρωματίζομαι χρωματίζει τον πράκτορα με το χρώμα που καθορίζεται από την παράμετρο Χρώμα. Η παράμετρος Χρώμα μας δίνει τη δυνατότητα να επιλέξουμε από μια πλήρη παλέττα χρωμάτων εάν κάνουμε κλικ πάνω της. Παράδειγμα: Ο πράκτορας House στο έργο Sustainοpolis επανέρχεται στο αρχικό του χρώμα όταν δέχεται το μήνυμα reset. Σχήμα 18- Παράδειγμα συνθήκης «Χρωματίζομαι» 114

115 9.4.7 Δράση «Κάνω» Ορισμός: Η δράση Κάνω στέλνει ένα μήνυμα που καθορίζεται στο κείμενο της παραμέτρου Όνομα Μεθόδου σε ένα πράκτορα στο κελί που καθορίζεται από την παράμετρο Κατεύθυνση. Η τελεία (.) αναφέρεται στον ίδιο τον πράκτορα και αυτό έχει σαν αποτέλεσμα να στείλει το μήνυμα στον εαυτό του. Η δράση Κάνω χρησιμοποιείται σε συνδυασμό με τον ενεργοποιητή Στο Άκουσμα: ο παραλήπτης του μηνύματος θα αντιδράσει στο μήνυμα μόνο αν αυτό υπάρχει ως παράμετρος στον ενεργοποιητή Στο ά- κουσμα. Αυτοί οι ενεργοποιητές έχουν ένα σύνολο από κανόνες οι οποίοι μπορούν να κληθούν από τη δράση Κάνω. Με την χρήση της δράσης Κάνω και του ενεργοποιητή Στο άκουσμα ο προγραμματιστής έχει τη δυνατότητα να αποδομήσει τις λειτουργίες ενός πράκτορα σε μικρότερες ολοκληρωμένες νοηματικές ενότητες. Παράδειγμα 1: Στο έργο Voting Game ο πράκτορας Voter (ψηφοφόρος) στέλνει ένα μήνυμα στον εαυτό του. Κάνει τον εαυτό του να επανεξετάσει την πολιτική του άποψη διαλέγοντας τυχαία μια κατεύθυνση και προσαρμόζοντας την πολιτική του άποψη στην άποψη του Ψηφοφόρου από αυτήν την κατεύθυνση. Σχήμα 19- Παράδειγμα 1 συνθήκης «Κάνω» Παράδειγμα 2: Στο έργο Benchmark ο πράκτορας Digit (ψηφίο) στέλνει ένα μήνυμα σε έναν άλλο πράκτορα. Όταν ο πράκτορας Ψηφίο φτάσει το 9 αλλάζει τον εαυτό του σε 0 και στέλνει ένα μήνυμα στο παρακείμενο ψηφίο στα αριστερά να αυξηθεί (μήνυμα «Inc»). 115

116 9.4.8 Δράση «Εκπέμπω» Σχήμα 20- Παράδειγμα 2 συνθήκης «Κάνω» Ορισμός: Η δράση Εκπέμπω εκπέμπει ένα μήνυμα προς όλους τους πράκτορες της κλάσης που καθορίζεται από την παράμετρο Κλάση της δράσης. Το όνομα του μηνύματος περιγράφεται στο πεδίο κειμένου και είναι ουσιαστικά μια κλήση μεθόδου για όλους τους πράκτορες της συγκεκριμένης κλάσης. Η δράση Εκπέμπω χρησιμοποιείται σε συνδυασμό με τον ενεργοποιητή Στο άκουσμα. Οι παραλήπτες του μηνύματος αντιδρούν στο μήνυμα μέσω του ενεργοποιητή Στο άκουσμα. Αυτοί οι ενεργοποιητές έχουν ένα σύνολο από κανόνες οι οποίοι μπορούν να κληθούν από τη δράση Εκπέμπω. Παράδειγμα: Ο πράκτορας Scanner στο έργο How Does TV Work? εκπέμπει προς τους πράκτορες της κλάσης Beam και Video-Signal ένα μήνυμα να γίνουν φωτεινοί ή σκοτεινοί ανάλογα με το τι ανιχνεύει. Σχήμα 21 Παράδειγμα συνθήκης «Εκπέμπω» 116

117 9.4.9 Δράση «Περιμένω» Ορισμός: Η δράση Περιμένω αναγκάζει τον χρονιστή του AgentSheets να περιμένει για ορισμένα δευτερόλεπτα που καθορίζονται από κάποιον αριθμό ή κάποια Αριθμητική Παράσταση, μέχρι την εκτέλεση της επόμενης εντολής. Χρησιμοποιείται για να επιβραδύνει τις προσομοιώσεις. Σημείωση: Η δράση Περιμένω αδρανοποιεί τη συγκεκριμένη προσομοίωση για το διάστημα που καθορίζεται στην δράση. Ένας εναλλακτικός τρόπος είναι η συνθήκη Μια φορά κάθε...δευτερόλεπτα που επιλεκτικά καθυστερεί συγκεκριμένα τμήματα της προσομοίωσης μόνο στους πράκτορες που έχουν την συνθήκη αυτή στην συμπεριφορά τους. Παράδειγμα: Ο πράκτορας Frog στο έργο Frogger καθυστερεί όταν ελέγχεται με τα βέλη του πληκτρολογίου και έτσι δεν κινείται τόσο γρήγορα. Σχήμα 22 Παράδειγμα συνθήκης «Περιμένω» Δράση «Αναπαράγω ήχο» Ορισμός: Η δράση Αναπαράγω ήχο παίζει τον ήχο που έχει επιλεγεί στην παράμετρο Ήχος. Παράδειγμα: Ο πράκτορας Car στο έργο Bridge Builder παίζει τον ήχο της έκρηξης όταν πέφτει κάτω από την γέφυρα. 117

118 Δράση «Ηχώ» Σχήμα 23 -Παράδειγμα συνθήκης «Αναπαράγω Ήχο» Ορισμός: Η δράση Ηχώ εμφανίζει το μήνυμα που υπάρχει στην φράση της παραμέτρου Ακολουθία Χαρακτήρων. Το μήνυμα εμφανίζεται στη Γραμμή Κατάστασης του πεδίου εργασίας. Αντίθετα με ότι συμβαίνει στην έκδοση για υπολογιστές Macintosh, η ε- ντολή Ηχώ δεν προφέρει τη φράση αφού ο συνθέτης λόγου (Speech synthesizer) δεν είναι ενσωματωμένος στην Java. Παράδειγμα: Ο πράκτορας Shark (καρχαρίας) στο έργο Fish Tank μιλάει στον πράκτορα Fish (ψάρι) πριν το φάει. Σχήμα 24 -Παράδειγμα συνθήκης «Ηχώ» 118

119 Δράση «Θέτω την ιδιότητα» Ορισμός: Η δράση Θέτω την ιδιότητα καθορίζει την τιμή μιας Ιδιότητας Πράκτορα ή την τιμή μιας Ιδιότητας Προσομοίωσης σύμφωνα με τον υπολογισμό της παραμέτρου Αριθμητική Παράσταση. Το όνομα της ιδιότητας του πράκτορα ή της προσομοίωσης περιγράφεται στην παράμετρο Όνομα Ιδιότητας και η τιμή που τεθεί η ιδιότητα στην παράμετρο Αριθμητική Παράσταση. Παράδειγμα: Ο πράκτορας Factory (εργοστάσιο) στο έργο Sustainοpolis υπολογίζει τη μόλυνση λαμβάνοντας υπόψη το μέσο όρο της μόλυνσης της γύρω περιοχής προσθέτοντας μια επιπλέον τιμή που αναπαριστά την μόλυνση από το ίδιο το εργοστάσιο. Η αριθμητική παράσταση που χρησιμοποιείται είναι: (pollution [left] + pollution [right] + pollution [up] + pollution [down] ) / Σχήμα 25- Παράδειγμα συνθήκης «Θέτω την ιδιότητα» Δράση «Αντιστοιχίζω την ιδιότητα...σε χρώμα» 119

120 Ορισμός: Η δράση Αντιστοιχίζω την ιδιότητα...σε χρώμα αντιστοιχίζει την τιμή μιας Ιδιότητας Πράκτορα ή Ιδιότητας Προσομοίωσης ή μιας Αριθμητικής. Παράστασης σε κάποιο Χρώμα, το οποίο καθορίζεται μεταξύ δύο χρωμάτων που είναι προκαθορισμένα από το χρήστη. Το φάσμα των τιμών των ιδιοτήτων που αντιστοιχίζονται σε ένα χρώμα καθορίζεται με αριθμούς ή Αριθμητικές Παραστάσεις. Για γίνει κατανοητό πως ακριβώς λειτουργεί η συγκεκριμένη δράση πρέπει να γίνει μια αναφορά στον κύβο των χρωμάτων και στο πως ο άνθρωπος αντιλαμβάνεται τα χρώματα. Γενικά οι άνθρωποι βλέπουν τα χρώματα χρησιμοποιώντας ένα τρισδιάστατο χρωματικό σύστημα. Οι άνθρωποι έχουν αισθητήρες που αντιλαμβάνονται το κόκκινο, το πράσινο και το μπλε χρώμα. Μπορεί να δημιουργηθεί οποιοδήποτε χρώμα ορατό από τον άνθρωπο με την ανάμιξη διαφορετικών αναλογιών του κόκκινου, του πράσινου και του μπλε. Έτσι ο κύβος των χρωμάτων έχει τρεις άξονες x, y και z που αναπαριστούν διαφορετικές ποσότητες κόκκινου, πράσινου και μπλε. Τα διάφορα σημεία του κύβου αναπαριστούν χρώματα με διαφορετικές αναλογίες των τριών βασικών χρωμάτων. Το μαύρο είναι το χρώμα που βλέπουν όταν δεν υπάρχει ούτε πράσινο, ούτε κόκκινο, ούτε μπλε. Το άσπρο είναι το χρώμα που βλέπουν όταν οι τιμές των τριών βασικών χρωμάτων βρίσκονται στο μέγιστο. Στην παρακάτω εικόνα βλέπετε τη γραφική αναπαράσταση του χρωματικού κύβου. Σχήμα 26-Χρωματικός Κύβος Ο χρήστης καθορίζει σημεία στον χρωματικό κύβο χρησιμοποιώντας την παράμετρο Χρώμα. Τα δύο χρωματικά σημεία καθορίζουν τις άκρες του ευθύγραμμου τμήματος από όπου αντλούνται τα χρώματα από τον χρωματικό κύβο. Ο χρήστης καθορίζει επίσης μια ελάχιστη και μια μέγιστη αριθμητική τιμή για τις ιδιότητες που αντιστοιχίζονται. Αυτές οι τιμές θεωρούνται ως οι άκρες του ευθύγραμμου τμήματος όπως αυτό περιγράφεται στην προηγούμενη παράγραφο. Έτσι οι τιμές που παίρνει τελικά η ιδιότητα αντιστοιχούν σε σημεία του ευθύγραμμου τμήματος που με τη σει- 120

121 ρά τους αναπαριστούν ένα συγκεκριμένο χρώμα που χρησιμοποιείται για τον χρωματισμό του πράκτορα. Παράδειγμα: Ο πράκτορας Ground στο έργο Ultimate Pacman χρωματίζεται ανάλογα με κάποιες τιμές. Εάν οι τιμές είναι αρνητικές τότε χρωματίζεται με μπλε χρώμα ενώ αν είναι θετικές με κόκκινο. Σχήμα 27- Παράδειγμα συνθήκης «Αντιστοιχίζω την ιδιότητα.σε χρώμα» Δράση «Αναπαριστώ γραφικά σε παράθυρο» Ορισμός: Η δράση Αναπαριστώ γραφικά σε παράθυρο αναπαριστά την τιμή μιας Ιδιότητας Πράκτορα ή Ιδιότητας Προσομοίωσης. Το όνομα της ιδιότητας καθορίζεται στη παράμετρο Ιδιότητα και το εύρος των τιμών καθορίζεται με αριθμούς ή αριθμητικές παραστάσεις. Η τιμή αναπαριστάται χρησιμοποιώντας το χρώμα που καθορίζεται από την παράμετρο Χρώμα. Οι τιμές της ιδιότητας αναπαρίστανται κατά μήκος του άξονα 121

122 y σε ένα παράθυρο δύο διαστάσεων καθώς η μεταβολή του χρόνου αναπαρίσταται στον άξονα x. Η αναπαράσταση τιμών ιδιοτήτων της προσομοίωσης μπορεί να ενεργοποιηθεί και από το παράθυρο Ιδιότητες Προσομοίωσης του μενού Εργαλεία. Παράδειγμα: Ο πράκτορας Counter στο έργο Predators & Prey μετράει και αναπαριστά γραφικά τον αριθμό των μικρών και των μεγάλων ψαριών που ζουν στη λιμνούλα. Αναπαριστά γραφικά τον πληθυσμό των μικρών ψαριών στο παράθυρο Πληθυσμός (Population) χρησιμοποιώντας κίτρινο χρώμα στο διάστημα μεταξύ 0 και 150. Επίσης αναπαριστά γραφικά τον πληθυσμό των μεγάλων ψαριών χρησιμοποιώντας κόκκινο χρώμα στο διάστημα μεταξύ 0 και 150 ως ελάχιστες και μέγιστες τιμές αντίστοιχα Σχήμα 28- Παράδειγμα συνθήκης «Αναπαριστώ γραφικά σε παράθυρο» Δράση «Αναπαριστώ γραφικά την ιδιότητα» 122

123 Ορισμός: Η δράση Αναπαριστώ γραφικά την ιδιότητα σχεδιάζει με βάση την τιμή μιας Ιδιότητας που καθορίζεται στην αντίστοιχη παράμετρο ανάμεσα στα όρια που καθορίζονται από αριθμούς ή Αριθμητικές Παραστάσεις. Ο σχεδιασμός γίνεται χρησιμοποιώντας το χρώμα που έχει καθοριστεί στην αντίστοιχη παράμετρο χρώματος (πρώτο χρώμα) και χρώμα υπόβαθρου χρησιμοποιώντας το χρώμα που έχει καθοριστεί στην αντίστοιχη παράμετρο χρώματος (δεύτερο χρώμα). Οι τιμές σχεδιάζονται κατά μήκος του άξονα y, ενώ ο άξονας x αναπαριστά το χρόνο με βηματισμό που καθορίζεται από την αντίστοιχη παράμετρο, και είναι ένας αριθμός ή μια αριθμητική παράσταση. Καθώς η σχεδίαση πραγματοποιείται στο «χαρτί» που κυλάει, ο χρόνος αναπαρίσταται ως γραμμές καθώς οι τιμές των μεταβλητών διαβάζονται στον οριζόντιο άξονα y. Το παράθυρο της σχεδίασης αντικαθιστά την απεικόνιση του πράκτορα στο πεδίο εργασίας και το μέγεθος της γραφικής παράστασης εξαρτάται από το μέγεθος του πράκτορα που εκτελεί τη δράση. Παράδειγμα: Ο πράκτορας Plotter του έργου Counting Pachinko σχεδιάζει τον αριθμό από τις μπάλες που χτυπούν στο διάστημα 0 έως 100 χρησιμοποιώντας πράσινο χρώμα σε μαύρο υπόβαθρο. Αξιοποιώντας το χρονικό βηματισμό με την τιμή 30 προσομοιώνει το εφέ της μπάρας που ανεβαίνει κάθε φορά που σχεδιάζεται. Σχήμα 29 Παράδειγμα συνθήκης «Αναπαριστώ γραφικά την ιδιότητα» 123

124 Δράση «Ανοίγω URL» Ορισμός: Η δράση Ανοίγω URL ανοίγει ένα συγκεκριμένο URL. Το URL καθορίζεται στην παράμετρο URL και μπορεί να είναι διεύθυνση ιστοσελίδας, αρχείο, FTP ή διεύθυνση ηλεκτρονικού ταχυδρομείου ( ). Εάν είναι ιστοσελίδα, αρχείο, ή FTP διεύθυνση τότε ανοίγει στο φυλλομετρητή. Εάν είναι διεύθυνση ηλεκτρονικού ταχυδρομείου τότε ανοίγει το προκαθορισμένο πρόγραμμα του υπολογιστή για την ηλεκτρονική αλληλογραφία. Εάν δεν υπάρχει ενεργός φυλλομετρητής εκείνη τη στιγμή τότε ανοίγει τον προκαθορισμένο φυλλομετρητή του υπολογιστή. Παράδειγμα: Στο έργο Grotesque City, ο χαρακτήρας ανοίγει τη σχετική ιστοσελίδα όταν συναντά κτίρια τα οποία έχουν σχετικές ιστορίες (πρέπει να πατηθεί το πλήκτρο του κενού διαστήματος space bar). Σχήμα 30 Παράδειγμα συνθήκης «Ανοίγω URL» Δράση «Μεταπηδώ σε Πεδίο Εργασίας» 124

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

Ευφυείς Τεχνολογίες ----Πράκτορες Ευφυείς Τεχνολογίες ----Πράκτορες Ενότητα 3: Εισαγωγή στους Ευφυείς Πράκτορες Δημοσθένης Σταμάτης demos@it.teithe.gr www.it.teithe.gr/~demos Μαθησιακοί Στόχοι της ενότητας 3 H κατανόηση της φύσης των πρακτόρων

Διαβάστε περισσότερα

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

1 Συστήματα Αυτοματισμού Βιβλιοθηκών 1 Συστήματα Αυτοματισμού Βιβλιοθηκών Τα Συστήματα Αυτοματισμού Βιβλιοθηκών χρησιμοποιούνται για τη διαχείριση καταχωρήσεων βιβλιοθηκών. Τα περιεχόμενα των βιβλιοθηκών αυτών είναι έντυπα έγγραφα, όπως βιβλία

Διαβάστε περισσότερα

Θεωρητική προσέγγιση του Σημασιολογικού Ιστού στο χώρο της πολιτισμικής πληροφορίας: μία πρότυπη εφαρμογή στη βιβλιοθηκονομία

Θεωρητική προσέγγιση του Σημασιολογικού Ιστού στο χώρο της πολιτισμικής πληροφορίας: μία πρότυπη εφαρμογή στη βιβλιοθηκονομία Θεωρητική προσέγγιση του Σημασιολογικού Ιστού στο χώρο της πολιτισμικής πληροφορίας: μία πρότυπη εφαρμογή στη βιβλιοθηκονομία Σοφία Ζαπουνίδου, Αρχειονόμος Βιβλιοθηκονόμος, Πανεπιστήμιο Θεσσαλίας Κεντρική

Διαβάστε περισσότερα

Aναπαράσταση Γνώσης στο Σημασιολογικό Ιστό

Aναπαράσταση Γνώσης στο Σημασιολογικό Ιστό Aναπαράσταση Γνώσης στο Σημασιολογικό Ιστό Οι γλώσσες RDF(S) και OWL Γ. Στάμου Περιγραφή Μεταδεδομένων με την RDF Η RDF χρησιμοποιείται για την απλή περιγραφή πόρων (resources) του διαδικτύου o Περιγράφει

Διαβάστε περισσότερα

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. Eυφυή Πληροφοριακά Συστήματα. Δρ. Κωνσταντίνος Χ.

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. Eυφυή Πληροφοριακά Συστήματα. Δρ. Κωνσταντίνος Χ. Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας Eυφυή Πληροφοριακά Συστήματα Δρ. Κωνσταντίνος Χ. Γιωτόπουλος Ανάγκη για Ευφυή Πληροφοριακά Συστήματα Η συσσώρευση ολοένα και μεγαλύτερου

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 13 Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 1.1 Εισαγωγή... 16 1.2 Διαδίκτυο και Παγκόσμιος Ιστός Ιστορική αναδρομή... 17 1.3 Αρχές πληροφοριακών συστημάτων

Διαβάστε περισσότερα

Μεταδεδομένα στο Ψηφιακό περιβάλλον

Μεταδεδομένα στο Ψηφιακό περιβάλλον Μεταδεδομένα στο Ψηφιακό περιβάλλον Μονάδα Αριστείας Ανοικτού Λογισμικού - Χαροκόπειο Πανεπιστήμιο Ψηφιακό Τεκμήριο Οτιδήποτε υπάρχει σε ηλεκτρονική μορφή και μπορεί να προσπελαστεί μέσω υπολογιστή Μεταδεδομένα

Διαβάστε περισσότερα

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

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

Διαβάστε περισσότερα

ΜΑΘΗΜΑ 6. Σχήµατα ιαλειτουργικότητας Μεταδεδοµένων. Το RDF Το Warwick Framework. Ιόνιο Πανεπιστήµιο - Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας

ΜΑΘΗΜΑ 6. Σχήµατα ιαλειτουργικότητας Μεταδεδοµένων. Το RDF Το Warwick Framework. Ιόνιο Πανεπιστήµιο - Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας ΜΑΘΗΜΑ 6 195 Σχήµατα ιαλειτουργικότητας Μεταδεδοµένων Το RDF Το Warwick Framework 196 1 Resource Data Framework RDF Τα πολλαπλά και πολλαπλής προέλευσης σχήµατα παραγωγής δηµιουργούν την ανάγκη δηµιουργίας

Διαβάστε περισσότερα

Ανάπτυξη Συστήματος Διαχείρισης Περιεχομένου με Τεχνολογίες Σημασιολογικού Ιστού και Σημασιολογικής Επιφάνειας Εργασίας

Ανάπτυξη Συστήματος Διαχείρισης Περιεχομένου με Τεχνολογίες Σημασιολογικού Ιστού και Σημασιολογικής Επιφάνειας Εργασίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Ανάπτυξη Συστήματος Διαχείρισης Περιεχομένου με Τεχνολογίες Σημασιολογικού Ιστού και Σημασιολογικής Επιφάνειας Εργασίας

Διαβάστε περισσότερα

Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών

Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών Λίνα Μπουντούρη - Μανόλης Γεργατσούλης Ιόνιο Πανεπιστήμιο 15ο Πανελλήνιο Συνέδριο Ακαδημαϊκών Βιβλιοθηκών Διαδίκτυο και Επίπεδα ετερογένειας δεδομένων

Διαβάστε περισσότερα

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

Ευφυείς Τεχνολογίες ----Πράκτορες Ευφυείς Τεχνολογίες ----Πράκτορες Ενότητα 4: Αρχιτεκτονικές Ευφυών Πρακτόρων Δημοσθένης Σταμάτης demos@it.teithe.gr www.it.teithe.gr/~demos Μαθησιακοί Στόχοι της ενότητας 4 H κατανόηση των διαφόρων μοντέλων/αρχιτεκτονικών

Διαβάστε περισσότερα

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 8: Σχεδίαση Συστήματος Σχεδίαση Συστήματος 2 Διεργασία μετατροπής του προβλήματος σε λύση. Από το Τί στο Πώς. Σχέδιο: Λεπτομερής περιγραφή της λύσης. Λύση:

Διαβάστε περισσότερα

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

Πληροφορική 2. Τεχνητή νοημοσύνη Πληροφορική 2 Τεχνητή νοημοσύνη 1 2 Τι είναι τεχνητή νοημοσύνη; Τεχνητή νοημοσύνη (AI=Artificial Intelligence) είναι η μελέτη προγραμματισμένων συστημάτων τα οποία μπορούν να προσομοιώνουν μέχρι κάποιο

Διαβάστε περισσότερα

1 Ανάλυση Προβλήματος

1 Ανάλυση Προβλήματος 1 Ανάλυση Προβλήματος 1.1 Η Έννοια Πρόβλημα Τι είναι δεδομένο; Δεδομένο είναι οτιδήποτε μπορεί να γίνει αντιληπτό από έναν τουλάχιστον παρατηρητή, με μία από τις πέντε αισθήσεις του. Τι είναι επεξεργασία

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΤΕΛΑ ΣΥΣΤΗΜΑΤΟΣ Διδάσκων: Γ. Χαραλαμπίδης, Επ. Καθηγητής

Διαβάστε περισσότερα

Διερευνητική μάθηση We are researchers, let us do research! (Elbers and Streefland, 2000)

Διερευνητική μάθηση We are researchers, let us do research! (Elbers and Streefland, 2000) Διερευνητική μάθηση We are researchers, let us do research! (Elbers and Streefland, 2000) Πρόκειται για την έρευνα που διεξάγουν οι επιστήμονες. Είναι μια πολύπλοκη δραστηριότητα που απαιτεί ειδικό ακριβό

Διαβάστε περισσότερα

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

ΠΟΛΥΠΡΑΚΤΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ ΥΦΙΣΤΑΜΕΝΗ ΚΑΤΑΣΤΑΣΗ & ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΕΦΑΡΜΟΓΩΝ ΠΟΛΥΠΡΑΚΤΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ ΥΦΙΣΤΑΜΕΝΗ ΚΑΤΑΣΤΑΣΗ & ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΕΦΑΡΜΟΓΩΝ ΙΩΑΝΝΗΣ ΑΘΑΝΑΣΟΓΛΟΥ Επιβλέπων Καθηγητής: Ιωάννης Παπαναστασίου Εξεταστής: Αθανάσιος Νούλας Διατμηματικό Πρόγραμμα Μεταπτυχιακών

Διαβάστε περισσότερα

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ.

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. ΚΕΦΑΛΑΙΟ 9 Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. Το 1966 αρχίζει ο σχεδιασμός του ARPANET, του πρώτου

Διαβάστε περισσότερα

Διασύνδεση και Άνοιγμα Δεδομένων του Α.Π.Θ. Καραογλάνογλου Κωνσταντίνος Μονάδα Σημασιολογικού Ιστού Α.Π.Θ 18/3/2014

Διασύνδεση και Άνοιγμα Δεδομένων του Α.Π.Θ. Καραογλάνογλου Κωνσταντίνος Μονάδα Σημασιολογικού Ιστού Α.Π.Θ 18/3/2014 Διασύνδεση και Άνοιγμα Δεδομένων του Α.Π.Θ. Καραογλάνογλου Κωνσταντίνος Μονάδα Σημασιολογικού Ιστού Α.Π.Θ 18/3/2014 Ανοικτά και Συνδεδεμένα Δεδομένα Ανοικτά Δεδομένα Πληροφορίες, δημόσιες ή άλλες, στις

Διαβάστε περισσότερα

Τεχνολογία Ευφυών Πρακτόρων (Intelligent Software Agents)

Τεχνολογία Ευφυών Πρακτόρων (Intelligent Software Agents) Τεχνολογία Ευφυών Πρακτόρων (Intelligent Software Agents) Ορισµός και θεωρητικές θεµελιώσεις Χαρακτηριστικά Αλληλεπίδραση µε το περιβάλλον Θέµατα αναπαράστασης και επικοινωνίας πρακτόρων Ευφυής Πράκτορας:

Διαβάστε περισσότερα

Εργαστήριο Σημασιολογικού Ιστού

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 5: Resource Description Framework (RDF) Μ.Στεφανιδάκης 13-3-2016. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του

Διαβάστε περισσότερα

Εννοιολογική Ομοιογένεια

Εννοιολογική Ομοιογένεια Ιόνιο Πανεπιστήμιο Τμήμα Αρχειονομίας Βιβλιοθηκονομίας Εργαστήριο Ψηφιακών Βιβλιοθηκών και Ηλεκτρονικής Δημοσίευσης Εννοιολογική Ομοιογένεια Αξιοποίηση Ταξινομικών Συστημάτων Γεωργία Προκοπιάδου, Διονύσης

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

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

Παιδαγωγικές δραστηριότητες μοντελοποίησης με χρήση ανοικτών υπολογιστικών περιβαλλόντων Παιδαγωγικές δραστηριότητες μοντελοποίησης με χρήση ανοικτών υπολογιστικών περιβαλλόντων Βασίλης Κόμης, Επίκουρος Καθηγητής Ερευνητική Ομάδα «ΤΠΕ στην Εκπαίδευση» Τμήμα Επιστημών της Εκπαίδευσης και της

Διαβάστε περισσότερα

Εργαστήριο Σημασιολογικού Ιστού

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 5: Resource Description Framework (RDF) Μ.Στεφανιδάκης 16-3-2015. Τα επίπεδα του Σημασιολογικού Ιστού RDF: Το κύριο πρότυπο του Σημασιολογικού Ιστού, χρησιμοποιεί

Διαβάστε περισσότερα

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #02 Ιστορική αναδρομή Σχετικές επιστημονικές περιοχές 1 Άδεια χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ (ΠΜΣ) «ΔΙΑΔΙΚΤΥΟ ΚΑΙ ΠΑΓΚΟΣΜΙΟΣ ΙΣΤΟΣ» ΤΟΥ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ Α.Π.Θ.

ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ (ΠΜΣ) «ΔΙΑΔΙΚΤΥΟ ΚΑΙ ΠΑΓΚΟΣΜΙΟΣ ΙΣΤΟΣ» ΤΟΥ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ Α.Π.Θ. ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ (ΠΜΣ) «ΔΙΑΔΙΚΤΥΟ ΚΑΙ ΠΑΓΚΟΣΜΙΟΣ ΙΣΤΟΣ» ΤΟΥ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ Α.Π.Θ. ΕΡΩΤΗΜΑΤΟΛΟΓΙΟ ΑΠΟΤΙΜΗΣΗΣ ΣΠΟΥΔΩΝ Ακαδημαϊκό Έτος Εγγραφής

Διαβάστε περισσότερα

Θεωρίες Μάθησης και Εκπαιδευτικό Λογισμικό

Θεωρίες Μάθησης και Εκπαιδευτικό Λογισμικό ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Θεωρίες Μάθησης και Εκπαιδευτικό Λογισμικό Ενότητα 2: Βασικές Έννοιες & Ορισμοί (Μέρος Β) Σταύρος Δημητριάδης Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

Σενάριο 16: Ο κόσμος του Robby Σενάριο 16: Ο κόσμος του Robby Φύλλο Εργασίας Τίτλος: Ο κόσμος του Robby Γνωστικό Αντικείμενο: Εφαρμογές Πληροφορικής-Υπολογιστών Διδακτική Ενότητα: Διερευνώ - Δημιουργώ Ανακαλύπτω, Συνθετικές εργασίες.

Διαβάστε περισσότερα

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

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ: ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: Υπολογιστικά Συστήµατα & Τεχνολογίες Πληροφορικής ΣΥΓΓΡΑΦΕΑΣ: Γιώργος Γιαννόπουλος, διδακτορικός φοιτητής

Διαβάστε περισσότερα

Σχεδίαση και Ανάπτυξη Ιστότοπων

Σχεδίαση και Ανάπτυξη Ιστότοπων Σχεδίαση και Ανάπτυξη Ιστότοπων Ιστορική Εξέλιξη του Παγκόσμιου Ιστού Παρουσίαση 1 η 1 Βελώνης Γεώργιος Καθηγητής Περιεχόμενα Τι είναι το Διαδίκτυο Βασικές Υπηρεσίες Διαδικτύου Προηγμένες Υπηρεσίες Διαδικτύου

Διαβάστε περισσότερα

Τα Διδακτικά Σενάρια και οι Προδιαγραφές τους. του Σταύρου Κοκκαλίδη. Μαθηματικού

Τα Διδακτικά Σενάρια και οι Προδιαγραφές τους. του Σταύρου Κοκκαλίδη. Μαθηματικού Τα Διδακτικά Σενάρια και οι Προδιαγραφές τους του Σταύρου Κοκκαλίδη Μαθηματικού Διευθυντή του Γυμνασίου Αρχαγγέλου Ρόδου-Εκπαιδευτή Στα προγράμματα Β Επιπέδου στις ΤΠΕ Ορισμός της έννοιας του σεναρίου.

Διαβάστε περισσότερα

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ.

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής Περιεχόµενα Κατηγορίες Π.Σ. ιαχείρισης Πράξεων ιοίκησης Υποστήριξης Αποφάσεων Έµπειρα Συστήµατα Ατόµων και Οµάδων Ο κύκλος ζωής Π.Σ. Ορισµός Φάσεις Χρήστες

Διαβάστε περισσότερα

Τα σχέδια μαθήματος 1 Εισαγωγή

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

Διαβάστε περισσότερα

Εκπαίδευση Ενηλίκων: Εμπειρίες και Δράσεις ΑΘΗΝΑ, Δευτέρα 12 Οκτωβρίου 2015

Εκπαίδευση Ενηλίκων: Εμπειρίες και Δράσεις ΑΘΗΝΑ, Δευτέρα 12 Οκτωβρίου 2015 Εκπαίδευση Ενηλίκων: Εμπειρίες και Δράσεις ΑΘΗΝΑ, Δευτέρα 12 Οκτωβρίου 2015 Μάθηση και γνώση: μια συνεχής και καθοριστική αλληλοεπίδραση Αντώνης Λιοναράκης Στην παρουσίαση που θα ακολουθήσει θα μιλήσουμε

Διαβάστε περισσότερα

Γράφοντας ένα σχολικό βιβλίο για τα Μαθηματικά. Μαριάννα Τζεκάκη Αν. Καθηγήτρια Α.Π.Θ. Μ. Καλδρυμίδου Αν. Καθηγήτρια Πανεπιστημίου Ιωαννίνων

Γράφοντας ένα σχολικό βιβλίο για τα Μαθηματικά. Μαριάννα Τζεκάκη Αν. Καθηγήτρια Α.Π.Θ. Μ. Καλδρυμίδου Αν. Καθηγήτρια Πανεπιστημίου Ιωαννίνων Γράφοντας ένα σχολικό βιβλίο για τα Μαθηματικά Μαριάννα Τζεκάκη Αν. Καθηγήτρια Α.Π.Θ. Μ. Καλδρυμίδου Αν. Καθηγήτρια Πανεπιστημίου Ιωαννίνων Εισαγωγή Η χώρα μας απέκτησε Νέα Προγράμματα Σπουδών και Νέα

Διαβάστε περισσότερα

2018 / 19 ΜΕΤΑΠΤΥΧΙΑΚΑ ΠΡΟΓΡΑΜΜΑΤΑ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ & ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

2018 / 19 ΜΕΤΑΠΤΥΧΙΑΚΑ ΠΡΟΓΡΑΜΜΑΤΑ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ & ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 2018 / 19 ΜΕΤΑΠΤΥΧΙΑΚΑ ΠΡΟΓΡΑΜΜΑΤΑ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ & ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 2 ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ: ΑΣΦΑΛΕΙΑ ΠΛΗΡΟΦΟΡΙΑΚΩΝ & ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Διαβάστε περισσότερα

ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ

ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ RDF (Resource Description Framework) Ι. Χατζηλυγερούδης Ανεπάρκεια της XML Η XML είναι Μετα-γλώσσα ορισμού σήμανσης για ανταλλαγή δεδομένων και μεταδεδομένων μεταξύ

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ (ΠΜΣ) «ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΕΣ» ΤΟΥ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ Α.Π.Θ.

ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ (ΠΜΣ) «ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΕΣ» ΤΟΥ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ Α.Π.Θ. ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ (ΠΜΣ) «ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΕΣ» ΤΟΥ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ Α.Π.Θ. ΕΡΩΤΗΜΑΤΟΛΟΓΙΟ ΑΠΟΤΙΜΗΣΗΣ ΣΠΟΥΔΩΝ Ακαδημαϊκό Έτος Εγγραφής

Διαβάστε περισσότερα

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Μάθημα 1 ο : Εισαγωγή στην γλωσσική τεχνολογία. Γεώργιος Πετάσης. Ακαδημαϊκό Έτος: 2012 2013

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Μάθημα 1 ο : Εισαγωγή στην γλωσσική τεχνολογία. Γεώργιος Πετάσης. Ακαδημαϊκό Έτος: 2012 2013 ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ Μάθημα 1 ο : Εισαγωγή στην γλωσσική τεχνολογία Γεώργιος Πετάσης Ακαδημαϊκό Έτος: 2012 2013 ΤMHMA MHXANIKΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ, Πανεπιστήμιο Πατρών, 2012 2013 Τι είναι η γλωσσική τεχνολογία;

Διαβάστε περισσότερα

Μαθησιακοί Στόχοι Προγράμματος Σπουδών

Μαθησιακοί Στόχοι Προγράμματος Σπουδών ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΑΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Τμήμα Ψηφιακών Συστημάτων Παν. Θεσσαλίας ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ Μαθησιακοί Στόχοι Προγράμματος Σπουδών Ως Σύστημα μπορεί να οριστεί μια συλλογή

Διαβάστε περισσότερα

Διδακτική Προγραμματισμού. Χαρίκλεια Τσαλαπάτα 20/2/2012

Διδακτική Προγραμματισμού. Χαρίκλεια Τσαλαπάτα 20/2/2012 Διδακτική Προγραμματισμού Χαρίκλεια Τσαλαπάτα 20/2/2012 Διδακτική προγραμματισμού Παλαιότερα, η διδασκαλία του προγραμματισμού ταυτιζόταν με τη διδακτική της πληροφορικής Πλέον Η διδακτική της πληροφορικής

Διαβάστε περισσότερα

Εισαγωγή στο RDF. Το Resource Description Framework (RDF) Σταύρος Πολυβίου

Εισαγωγή στο RDF. Το Resource Description Framework (RDF) Σταύρος Πολυβίου Εισαγωγή στο RDF Σταύρος Πολυβίου Το Resource Description Framework (RDF) RDF: µία γλώσσα περιγραφής πληροφοριών (metadata) που αφορούν πόρους (resources) στο world wide web. Παραδείγµατα: ο τίτλος, ο

Διαβάστε περισσότερα

Εισαγωγή στη Σχεδίαση Λογισμικού

Εισαγωγή στη Σχεδίαση Λογισμικού Εισαγωγή στη Σχεδίαση Λογισμικού περιεχόμενα παρουσίασης Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού σχεδίαση Η σχεδίαση του

Διαβάστε περισσότερα

Σύγχρονες Προσεγγίσεις στη Διδακτική

Σύγχρονες Προσεγγίσεις στη Διδακτική Σύγχρονες Προσεγγίσεις στη Διδακτική Ορολογία Ορισμοί Μέθοδος διδασκαλίας θεωρείται ένα πρότυπο (pattern) οργάνωσης του μαθήματος και συμπεριφοράς του εκπαιδευτικού. Στρατηγική διδασκαλίας. Περιλαμβάνει

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Συστήματα Γνώσης. Θεωρητικό Κομμάτι Μαθήματος Ενότητα 2: Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής

Συστήματα Γνώσης. Θεωρητικό Κομμάτι Μαθήματος Ενότητα 2: Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Θεωρητικό Κομμάτι Μαθήματος Ενότητα 2: Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Άδειες

Διαβάστε περισσότερα

Τεχνολογία Πολυμέσων. Ενότητα 6: Υπερκείμενο - Υπερμέσα. Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Τεχνολογία Πολυμέσων. Ενότητα 6: Υπερκείμενο - Υπερμέσα. Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Τεχνολογία Πολυμέσων Ενότητα 6: Υπερκείμενο - Υπερμέσα Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ (ΠΜΣ) «ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΕΣ» ΤΟΥ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ Α.Π.Θ.

ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ (ΠΜΣ) «ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΕΣ» ΤΟΥ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ Α.Π.Θ. ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ (ΠΜΣ) «ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΕΣ» ΤΟΥ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ Α.Π.Θ. ΕΡΩΤΗΜΑΤΟΛΟΓΙΟ ΑΠΟΤΙΜΗΣΗΣ ΣΠΟΥΔΩΝ Ακαδημαϊκό Έτος Εγγραφής

Διαβάστε περισσότερα

215 Μηχανικών Η/Υ και Πληροφορικής Πάτρας

215 Μηχανικών Η/Υ και Πληροφορικής Πάτρας 215 Μηχανικών Η/Υ και Πληροφορικής Πάτρας Το Τμήμα ασχολείται με τη διδασκαλία και την έρευνα στην επιστήμη και τεχνολογία των υπολογιστών και τη μελέτη των εφαρμογών τους. Το Τμήμα ιδρύθηκε το 1980 (ως

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗ ΔΙΑΧΕΙΡΙΣΗ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΓΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗ ΔΙΑΧΕΙΡΙΣΗ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΓΩΝ 1. Διαχείριση έργων Τις τελευταίες δεκαετίες παρατηρείται σημαντική αξιοποίηση της διαχείρισης έργων σαν ένα εργαλείο με το οποίο οι διάφορες επιχειρήσεις

Διαβάστε περισσότερα

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

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΘΕΣΣΑΛΟΝΙΚΗ, 2016 ΕΙΣΑΓΩΓΗ Μια διαδικτυακή υπηρεσία μπορεί να περιγραφεί απλά σαν μια οποιαδήποτε

Διαβάστε περισσότερα

Αναλυτικό Πρόγραμμα Μαθηματικών

Αναλυτικό Πρόγραμμα Μαθηματικών Αναλυτικό Πρόγραμμα Μαθηματικών Σχεδιασμός... αντιμετωπίζει ενιαία το πλαίσιο σπουδών (Προδημοτική, Δημοτικό, Γυμνάσιο και Λύκειο), είναι συνέχεια υπό διαμόρφωση και αλλαγή, για να αντιμετωπίζει την εξέλιξη,

Διαβάστε περισσότερα

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία Ενότητα 2: Ο Άνθρωπος Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

Έννοιες Φυσικών Επιστημών Ι

Έννοιες Φυσικών Επιστημών Ι Τμήμα Εκπαίδευσης και Αγωγής στην Προσχολική Ηλικία Έννοιες Φυσικών Επιστημών Ι Ενότητα 4: Θεωρίες διδασκαλίας μάθησης στη διδακτική των Φ.Ε. Σπύρος Κόλλας (Βασισμένο στις σημειώσεις του Βασίλη Τσελφέ)

Διαβάστε περισσότερα

Όμως πώς θα ορίζαμε την έννοια πληροφορία; Πώς την αντιλαμβανόμαστε;

Όμως πώς θα ορίζαμε την έννοια πληροφορία; Πώς την αντιλαμβανόμαστε; 1.1 ΕΙΣΑΓΩΓΗ Η πληροφορία αποτελεί το βασικό εργαλείο άσκησης της ιατρικής επιστήμης. Η διάγνωση, η θεραπεία, η πρόληψη και η διοίκηση της υγείας βασίζονται στην απόκτηση, διαχείριση και επεξεργασία της

Διαβάστε περισσότερα

Η Θεωρία του Piaget για την εξέλιξη της νοημοσύνης

Η Θεωρία του Piaget για την εξέλιξη της νοημοσύνης Η Θεωρία του Piaget για την εξέλιξη της νοημοσύνης Σύμφωνα με τον Piaget, η νοημοσύνη είναι ένας δυναμικός παράγοντας ο οποίος οικοδομείται προοδευτικά, έχοντας σαν βάση την κληρονομικότητα, αλλά συγχρόνως

Διαβάστε περισσότερα

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι Συστήματα Υποστήριξης Αποφάσεων Τα Συστήματα Υποστήριξης Αποφάσεων (Σ.Υ.Α. - Decision Support Systems, D.S.S.) ορίζονται ως συστήματα

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Καθηγητής Πληροφορικής ΠΕ19 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 6 ο : ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ Η έννοια του προγράμματος

Διαβάστε περισσότερα

Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός. Διάλεξη 02 & 03. Δρ. Γεώργιος Χρ. Μακρής

Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός. Διάλεξη 02 & 03. Δρ. Γεώργιος Χρ. Μακρής ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ στα ΔΙΚΤΥΑ και ΠΟΛΥΠΛΟΚΟΤΗΤΑ Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός Χειμερινό Εξάμηνο Σπουδών Διάλεξη 02 & 03 Δρ. Γεώργιος Χρ. Μακρής Αναπαράσταση

Διαβάστε περισσότερα

Μαθησιακές δραστηριότητες με υπολογιστή

Μαθησιακές δραστηριότητες με υπολογιστή ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Μαθησιακές δραστηριότητες με υπολογιστή Κατευθυντήριες γραμμές σχεδίασης μαθησιακών δραστηριοτήτων Διδάσκων: Καθηγητής Αναστάσιος Α. Μικρόπουλος Άδειες

Διαβάστε περισσότερα

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ (1) ΓΕΝΙΚΑ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΔΔΜΠΣ «ΑΝΟΡΓΑΝΗ ΒΙΟΛΟΓΙΚΗ ΧΗΜΕΙΑ» ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ ΜΕΤΑΠΤΥΧΙΑΚΟ ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ 1 ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ 3 ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ Συνέχιση και Ολοκλήρωση

Διαβάστε περισσότερα

ΓΕΩΓΡΑΦΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΩΝ ΓΕΩΓΡΑΦΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΩΝ - ΕΝΟΤΗΤΑ 1 7/4/2013 ΕΝΟΤΗΤΕΣ ΜΑΘΗΜΑΤΟΣ. Ορισμός

ΓΕΩΓΡΑΦΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΩΝ ΓΕΩΓΡΑΦΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΩΝ - ΕΝΟΤΗΤΑ 1 7/4/2013 ΕΝΟΤΗΤΕΣ ΜΑΘΗΜΑΤΟΣ. Ορισμός ΓΕΩΓΡΑΦΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΩΝ ΕΝΟΤΗΤΑ 1 : ΕΙΣΑΓΩΓΗ Διάλεξη 1: Γενικά για το ΓΣΠ, Ιστορική αναδρομή, Διαχρονική εξέλιξη Διάλεξη 2 : Ανάλυση χώρου (8/4/2013) Διάλεξη 3: Βασικές έννοιες των Γ.Σ.Π.. (8/4/2013)

Διαβάστε περισσότερα

Εισαγωγή στην κοινωνική έρευνα. Earl Babbie. Κεφάλαιο 4. Κοινωνική μέτρηση 4-1

Εισαγωγή στην κοινωνική έρευνα. Earl Babbie. Κεφάλαιο 4. Κοινωνική μέτρηση 4-1 Εισαγωγή στην κοινωνική έρευνα Earl Babbie Κεφάλαιο 4 Κοινωνική μέτρηση 4-1 Σύνοψη κεφαλαίου Μετρώντας οτιδήποτε υπάρχει Εννοιολόγηση Ορισμοί σε περιγραφικές και ερμηνευτικές μελέτες Επιλογές λειτουργικοποίησης

Διαβάστε περισσότερα

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Α. Βαγγελάτος 2, Γ. Ορφανός 2, Χ. Τσαλίδης 2, Χ. Καλαμαρά 3

Α. Βαγγελάτος 2, Γ. Ορφανός 2, Χ. Τσαλίδης 2, Χ. Καλαμαρά 3 Ανάπτυξη Οντολογίας Βιοϊατρικών Όρων Α. Βαγγελάτος 2, Γ. Ορφανός 2, Χ. Τσαλίδης 2, Χ. Καλαμαρά 3 www.iatrolexi.cti.gr 1 Ερευνητικό Ακαδημαϊκό Ινστιτούτο Τεχνολογίας Υπολογιστών (ΕΑΙΤΥ) Σελίδα 1 Ημερομηνία:

Διαβάστε περισσότερα

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

1.2 Jason BDI Αρχιτεκτονική 1.2 Jason 1.2.1 BDI Αρχιτεκτονική Το Belief-Desire-Intention (BDI) είναι ένα μοντέλο λογισμικού που έχει αναπτυχθεί για τον προγραμματισμό ευφυών πρακτόρων. Χαρακτηρίζεται από την υλοποίηση των πεποιθήσεων,

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήμιο - Τμήμα Αρχειονομίας - Βιβλιοθηκονομίας

Ιόνιο Πανεπιστήμιο - Τμήμα Αρχειονομίας - Βιβλιοθηκονομίας Μεταδεδομένα για Ψηφιακές Βιβλιοθήκες Γ. Δ. Μπώκος Μεταδεδομένα: Ο όρος Μεταδεδομένα: «Δεδομένα σχετικά με Δεδομένα» Αναλυτικότερα: «Το σύνολο όσων θα μπορούσε να πει κανείς για ένα πληροφοριακό αντικείμενο

Διαβάστε περισσότερα

Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός. Διάλεξη 01 & 02. Δρ. Γεώργιος Χρ. Μακρής

Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός. Διάλεξη 01 & 02. Δρ. Γεώργιος Χρ. Μακρής ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ στα ΠΟΛΥΠΛΟΚΑ ΣΥΣΤΗΜΑΤΑ και ΔΙΚΤΥΑ Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός Χειμερινό Εξάμηνο Σπουδών Διάλεξη 01 & 02 Δρ. Γεώργιος Χρ. Μακρής Αναπαράσταση

Διαβάστε περισσότερα

Αρχιτεκτονική Λογισμικού

Αρχιτεκτονική Λογισμικού Αρχιτεκτονική Λογισμικού περιεχόμενα παρουσίασης Τι είναι η αρχιτεκτονική λογισμικού Αρχιτεκτονική και απαιτήσεις Σενάρια ποιότητας Βήματα αρχιτεκτονικής σχεδίασης Αρχιτεκτονικά πρότυπα Διαστρωματωμένη

Διαβάστε περισσότερα

Κεφάλαιο 9: Διαδίκτυο, Web 2.0 και Web X.0. Εφαρμογές Πληροφορικής Κεφ. 9 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 9: Διαδίκτυο, Web 2.0 και Web X.0. Εφαρμογές Πληροφορικής Κεφ. 9 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 9: Διαδίκτυο, Web 2.0 και Web X.0 Καραμαούνας Πολύκαρπος 1 9.1 Ιστορικά Στοιχεία Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο και ήταν απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. Το 1966

Διαβάστε περισσότερα

Διαχείριση Πολιτισμικών Δεδομένων

Διαχείριση Πολιτισμικών Δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διαχείριση Πολιτισμικών Δεδομένων Ενότητα 6: Εισαγωγή στις Βάσεις Δεδομένων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και

Διαβάστε περισσότερα

Αναπαράσταση Γνώσης και Αναζήτηση στον Σηµασιολογικό Ιστό

Αναπαράσταση Γνώσης και Αναζήτηση στον Σηµασιολογικό Ιστό Αναπαράσταση Γνώσης και Αναζήτηση στον Σηµασιολογικό Ιστό Αλέξανδρος Βαλαράκος (alexv@iit.demokritos.gr) (alexv@aegean.gr) Υποψήφιος ιδάκτορας Τµήµα Μηχανικών Υπολογιστικών και Πληροφοριακών Συστηµάτων.

Διαβάστε περισσότερα

Εργαστήριο Σημασιολογικού Ιστού

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 1: Σημασιολογία και Μεταδεδομένα Μ.Στεφανιδάκης 5-2-2016. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα.

Διαβάστε περισσότερα

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Διαδικασίες παραγωγής λογισμικού Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ (ΠΜΣ) «ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΕΣ» ΤΟΥ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ Α.Π.Θ.

ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ (ΠΜΣ) «ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΕΣ» ΤΟΥ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ Α.Π.Θ. ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ (ΠΜΣ) «ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΕΣ» ΤΟΥ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ Α.Π.Θ. ΕΡΩΤΗΜΑΤΟΛΟΓΙΟ ΑΠΟΤΙΜΗΣΗΣ ΣΠΟΥΔΩΝ Ακαδημαϊκό Έτος Εγγραφής

Διαβάστε περισσότερα

Κεφάλαιο 27 Ευφυείς Πράκτορες (Intelligent Agents)

Κεφάλαιο 27 Ευφυείς Πράκτορες (Intelligent Agents) Κεφάλαιο 27 Ευφυείς Πράκτορες (Intelligent Agents) Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου Ταξινόµηση Πρακτόρων Βιολογικοί Πράκτορες Τεχνητοί

Διαβάστε περισσότερα

Βασίλειος Κοντογιάννης ΠΕ19

Βασίλειος Κοντογιάννης ΠΕ19 Ενότητα3 Επικοινωνία και Διαδίκτυο Κεφ9: Διαδίκτυο, Web2.0, WebX.0 9.1 Ιστορικά στοιχεία Από πού, πότε με ποια μορφή και με ποια αφορμή ξεκίνησε η λειτουργία του Διαδικτύου; Ξεκίνησε στην Αμερική, το 1969,

Διαβάστε περισσότερα

Σχεδιασµός βασισµένος σε συνιστώσες

Σχεδιασµός βασισµένος σε συνιστώσες Σχεδιασµός βασισµένος σε συνιστώσες 1 Ενδεικτικά περιεχόµενα του κεφαλαίου Ποια είναι τα "άτοµα", από τα οποία κατασκευάζονται οι υπηρεσίες; Πώς οργανώνουµε τις συνιστώσες σε ένα αρµονικό σύνολο; Τι είναι

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ (ΠΜΣ) «ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΕΣ» ΤΟΥ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ Α.Π.Θ.

ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ (ΠΜΣ) «ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΕΣ» ΤΟΥ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ Α.Π.Θ. ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ (ΠΜΣ) «ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΕΣ» ΤΟΥ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ Α.Π.Θ. ΕΡΩΤΗΜΑΤΟΛΟΓΙΟ ΑΠΟΤΙΜΗΣΗΣ ΣΠΟΥΔΩΝ Ακαδημαϊκό Έτος Εγγραφής

Διαβάστε περισσότερα

Περιεχόμενα ΕΝΟΤΗΤΑ I. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Πρόλογος 15

Περιεχόμενα ΕΝΟΤΗΤΑ I. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Πρόλογος 15 Περιεχόμενα Πρόλογος 15 ΕΝΟΤΗΤΑ I. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ 1 Τεχνητή νοημοσύνη 21 1.1 Εισαγωγή 21 1.2 Ιστορική εξέλιξη 22 1.3 Εφαρμογές Τεχνητής Νοημοσύνης 25 2 Επίλυση Προβλημάτων 29 2.1 Διαμόρφωση

Διαβάστε περισσότερα

Πράκτορες και περιβάλλοντα Λογική PEAS (Performance measure, Environment, Actuators, Sensors) Τύποι περιβάλλοντος Τύποι πρακτόρων

Πράκτορες και περιβάλλοντα Λογική PEAS (Performance measure, Environment, Actuators, Sensors) Τύποι περιβάλλοντος Τύποι πρακτόρων Ευφυείς Πράκτορες Περίγραµµα Πράκτορες και περιβάλλοντα Λογική PEAS (Performance measure, Environment, Actuators, Sensors) Τύποι περιβάλλοντος Τύποι πρακτόρων Πράκτορες Ένας πράκτορας είναι µια οντότητα

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Μάθημα 10: Ανάπτυξη ΠΣ Μαρίνος Θεμιστοκλέους Email: mthemist@unipi.gr Ανδρούτσου 150 Γραφείο 206 Τηλ. 210 414 2723 Ώρες Γραφείου: Δευτέρα 11-12 πμ Ενδεικτικά Περιεχόμενα Εργασίας

Διαβάστε περισσότερα

Διαχείριση Πολιτισμικών Δεδομένων

Διαχείριση Πολιτισμικών Δεδομένων Διαχείριση Πολιτισμικών Δεδομένων Μάθημα 9 Μεταδεδομένα Τζανέτος Πομόνης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Τι είναι τα Μεταδεδομένα; Ο όρος

Διαβάστε περισσότερα

Αναζητήσεις στο Διαδίκτυο

Αναζητήσεις στο Διαδίκτυο Αναζητήσεις στο Διαδίκτυο Πλεονεκτήματα από τη χρήση του Διαδικτύου για την αναζήτηση πληροφοριών Υπάρχει πληθώρα πληροφοριών (που περιλαμβάνουν μεγάλο εύρος από media). Οι μαθητές καθίστανται «ερευνητές

Διαβάστε περισσότερα

Σημασιολογικός Ιστός RDF(S) OWL Οντολογίες. Pervasive Computing Research Group

Σημασιολογικός Ιστός RDF(S) OWL Οντολογίες. Pervasive Computing Research Group Σημασιολογικός Ιστός RDF(S) OWL Οντολογίες Ο Παγκόσμιος Ιστός Εφαρμογή του Internet Δημοσίευση εγγράφων και υπερσύνδεσμοι Δυναμικό περιεχόμενο Αναζήτηση πληροφοριών - Κατανοητός μόνο από ανθρώπους (έμφαση

Διαβάστε περισσότερα

Μηχανική Μάθηση: γιατί;

Μηχανική Μάθηση: γιατί; Μηχανική Μάθηση Μηχανική Μάθηση: γιατί; Απαραίτητη για να μπορεί ο πράκτορας να ανταπεξέρχεται σε άγνωστα περιβάλλοντα Δεν είναι δυνατόν ο σχεδιαστής να προβλέψει όλα τα ενδεχόμενα περιβάλλοντα. Χρήσιμη

Διαβάστε περισσότερα

Υποδείγματα Ανάπτυξης

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

Διαβάστε περισσότερα

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

METROPOLIS. Ένα περιβάλλον σχεδιασμού για ετερογενή συστήματα

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

Διαβάστε περισσότερα

RobotArmy Περίληψη έργου

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

Διαβάστε περισσότερα

Διαχείριση οντολογιών: μελέτη και εμβάθυνση στα βασικά προβλήματα που την αφορούν και παρουσίαση υπαρχουσών βιβλιοθηκών οντολογιών

Διαχείριση οντολογιών: μελέτη και εμβάθυνση στα βασικά προβλήματα που την αφορούν και παρουσίαση υπαρχουσών βιβλιοθηκών οντολογιών 15ο ΠΑΝΕΛΛΗΝΙΟ ΣΥΝΕΔΡΙΟ ΑΚΑΔΗΜΑΪΚΩΝ ΒΙΒΛΙΟΘΗΚΩΝ Διαχείριση οντολογιών: μελέτη και εμβάθυνση στα βασικά προβλήματα που την αφορούν και παρουσίαση υπαρχουσών βιβλιοθηκών οντολογιών ΓΑΪΤΑΝΟΥ ΠΑΝΩΡΑΙΑ gaitanou@benaki.gr

Διαβάστε περισσότερα

Τεχνολογίες RDF για τον Ιστό Δεδοµένων

Τεχνολογίες RDF για τον Ιστό Δεδοµένων 1 Τεχνολογίες RDF για τον Ιστό Δεδοµένων The Semantic Web is Dead? Hardly! The reports of my death are greatly exaggerated. Mark Twain Διαχείριση δεδοµένων στον Ιστό 2 Έστω ένας φανταστικός ιστός! html

Διαβάστε περισσότερα

723 Τεχνολογίας Πληροφορικής και Τηλεπικοινωνιών ΤΕΙ Λάρισας

723 Τεχνολογίας Πληροφορικής και Τηλεπικοινωνιών ΤΕΙ Λάρισας 723 Τεχνολογίας Πληροφορικής και Τηλεπικοινωνιών ΤΕΙ Λάρισας Το Τμήμα Τεχνολογίας Πληροφορικής και Τηλεπικοινωνιών του ΤΕΙ Λάρισας ιδρύθηκε με το Προεδρικό Διάταγμα 200/1999 (ΦΕΚ 179 06/09/99), με πρώτο

Διαβάστε περισσότερα

Ρετσινάς Σωτήριος ΠΕ 1703 Ηλεκτρολόγων ΑΣΕΤΕΜ

Ρετσινάς Σωτήριος ΠΕ 1703 Ηλεκτρολόγων ΑΣΕΤΕΜ Ρετσινάς Σωτήριος ΠΕ 1703 Ηλεκτρολόγων ΑΣΕΤΕΜ Τι είναι η ερευνητική εργασία Η ερευνητική εργασία στο σχολείο είναι μια δυναμική διαδικασία, ανοιχτή στην αναζήτηση για την κατανόηση του πραγματικού κόσμου.

Διαβάστε περισσότερα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016 Κεφάλαιο 2: Περιβάλλον Βάσεων Δεδομένων Μοντέλα Δεδομένων 2.1

Διαβάστε περισσότερα

ΔΙΔΑΣΚΑΛΙΑ ΤΗΣ ΕΝΝΟΙΑΣ ΤΟΥ ΟΡΙΟΥ ΣΥΝΑΡΤΗΣΗΣ

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

Διαβάστε περισσότερα

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

Η ΣΗΜΑΣΙΑ ΤΩΝ ΟΠΤΙΚΩΝ ΑΝΑΠΑΡΑΣΤΑΣΕΩΝ ΣΤΗ ΔΙΔΑΣΚΑΛΙΑ ΤΩΝ ΜΑΘΗΜΑΤΙΚΩΝ Η ΣΗΜΑΣΙΑ ΤΩΝ ΟΠΤΙΚΩΝ ΑΝΑΠΑΡΑΣΤΑΣΕΩΝ ΣΤΗ ΔΙΔΑΣΚΑΛΙΑ ΤΩΝ ΜΑΘΗΜΑΤΙΚΩΝ Οι μαθηματικές έννοιες και γενικότερα οι μαθηματικές διαδικασίες είναι αφηρημένες και, αρκετές φορές, ιδιαίτερα πολύπλοκες. Η κατανόηση

Διαβάστε περισσότερα