ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ

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

Download "ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΙΚΤΥΩΝ Πολυπρακτορικός Σχεδιασµός ράσης ιπλωµατική εργασία του Θεόδωρου Στ. Τσότσου Επιβλέποντες Καθηγητές: ασκαλοπούλου Ασπασία Επίκουρος Καθηγήτρια Αντωνόπουλος Χρήστος Επίκουρος Καθηγητής Βόλος, Σεπτέµβριος 2012

2

3 Στη µνήµη της γιαγιάς µου και στην οικογένειά µου

4

5 Ευχαριστίες Με την περάτωση της παρούσας διπλωµατικής εργασίας θα ήθελα να ευχαριστήσω θερµά την κύρια επιβλέπουσα καθηγήτρια της εργασίας αυτής, κα. Ασπασία ασκαλοπούλου, για την πολύτιµη βοήθειά της και την καθοδήγησή της σε όλη την πορεία της εργασίας. Επίσης θα ήθελα να ευχαριστήσω και τον δεύτερο επιβλέποντα καθηγητή κ. Χρήστο Αντωνόπουλο για τις χρήσιµες παρατηρήσεις του, στην προσπάθεια ολοκλήρωσης της εργασίας. Επίσης, θα ήθελα να ευχαριστήσω όλους µου τους φίλους, σε Πτολεµαΐδα και Βόλο, για την υποστήριξή τους, κυρίως ηθική και ψυχολογική, στα εύκολα και τα δύσκολα, και για όλες τις ωραίες στιγµές που περάσαµε µαζί όλα αυτά τα χρόνια. Τέλος, ένα µεγάλο ευχαριστώ, από βάθους καρδίας, ανήκει στους γονείς µου και την οικογένεια, χωρίς τη στήριξη και την καθοδήγηση των οποίων σε όλη µου τη ζωή, δε θα µπορούσε να επιτευχθεί τίποτα. Θεόδωρος Τσότσος Βόλος, 2012 i

6 Περιεχόµενα Κατάλογος Πινάκων... iv Κατάλογος Εικόνων... v Περίληψη... vi 1 Εισαγωγή Αντικείµενο και σκοπός της διπλωµατικής ιάθρωση της διπλωµατικής εργασίας Πολυπρακτορικός Σχεδιασµός Βασικές έννοιες και ορισµοί Κοινή διαχείριση εργασιών Κοινή διαχείριση αποτελεσµάτων Κοινός σχεδιασµός δράσης Συγκεντρωτικός σχεδιασµός για κατανεµηµένα πλάνα Κατανεµηµένος σχεδιασµός Κατανεµηµένος σχεδιασµός για κατανεµηµένα πλάνα Συγχώνευση πλάνων Γλώσσες επικοινωνίας KQML FIPA ACL Σχεδιασµός της Υλοποίησης Περιγραφή του προβλήµατος Κατανοµή ρεπερτορίου ενεργειών στους πράκτορες ii

7 Περιεχόµενα Πράκτορες µε διαφορετικό ρεπερτόριο ενεργειών και κοινή γνώση χάρτη Πράκτορες µε κοινό ρεπερτόριο ενεργειών, κοινό πρόβληµα, µη κοινή γνώση χάρτη Αναπαράσταση Βάσης Γνώσης Έµµεση δήλωση Βάσης Γνώσης Άµεση δήλωση Βάσης Γνώσης µέσω κλάσεων Άµεση δήλωση Βάσης Γνώσης µέσω Βάσης εδοµένων Άµεση δήλωση Βάσης Γνώσης µέσω αρχείου Εισαγωγή στην πλατφόρµα JADE Ειδικοί πράκτορες Εργαλεία γραφικού περιβάλλοντος Υλοποίηση της εφαρµογής Περιγραφή της υλοποίησης οµή της εφαρµογής Αρχεία της εφαρµογής UML διαγράµµατα της εφαρµογής Περιγραφή ροής εκτέλεσης Επίλογος Συµπεράσµατα Μελλοντικές επεκτάσεις Βιβλιογραφία iii

8 Κατάλογος Πινάκων 2.1 Τελεστικά της KQML Τελεστικά ανά κατηγορία στη FIPA ACL iv

9 Κατάλογος Εικόνων 2.1 Ένας πράκτορας στο περιβάλλον του Τυπική δοµή ενός πολυπρακτορικού συστήµατος Παράδειγµα για το πρόβληµα των Πύργων του Ανόι Επίπεδα πρωτοκόλλου KQML Παράδειγµα µηνύµατος KQML Παράδειγµα µηνύµατος FIPA ACL Παράδειγµα έµµεσης δήλωσης ΒΓ Κατανοµή πρακτόρων στο δίκτυο Επικοινωνία πρακτόρων στο JADE ιάγραµµα εκτέλεσης νήµατος ενός πράκτορα Στιγµιότυπο RMA GUI Στιγµιότυπο DF GUI Στιγµιότυπο Dummy Agent Στιγµιότυπο Sniffer Agent Στιγµιότυπο Introspector Agent ιάγραµµα κλάσεων του πράκτορα συντονιστή ιάγραµµα κλάσεων των πρακτόρων χειριστών ιάγραµµα κλάσεων όλης της εφαρµογής Παράθυρο αλληλεπίδρασης µε το χρήστη Αναζήτηση πρακτόρων από το συντονιστή Ανταλλαγή µηνυµάτων ανάµεσα στους πράκτορες Εµφάνιση προτεινόµενης διαδροµής v

10 Περίληψη Η παρούσα διπλωµατική εργασία πραγµατεύεται ένα από τα σηµαντικότερα ζητήµατα των Πολυπρακτορικών Συστηµάτων και της Τεχνητής Νοηµοσύνης, το ζήτηµα του Πολυπρακτορικού Σχεδιασµού ράσης. Το συγκεκριµένο ζήτηµα συνίσταται στον σχεδιασµό των δραστηριοτήτων µιας οµάδας πρακτόρων, οι οποίοι δοθέντος ενός συγκεκριµένου προβλήµατος προσπαθούν από κοινού να καταλήξουν στο στόχο που είναι η επίλυση του προβλήµατος. Βασικά θέµατα που εξετάζονται στον πολυπρακτορικό σχεδιασµό είναι ο καταµερισµός των εργασιών ανάµεσα στους πράκτορες που συµµετέχουν, η εξαγωγή των επιµέρους πλάνων, η επικοινωνία των πρακτόρων και ο συντονισµός των ενεργειών τους, καθώς και η σύνθεση των επιµέρους πλάνων µε σκοπό την εξαγωγή του τελικού πλάνου για την επίτευξη του στόχου του προβλήµατος. Τα παραπάνω αντικείµενα µελετώνται στην συγκεκριµένη εργασία τόσο θεωρητικά, όσο και µέσω µιας εφαρµογής που υλοποιήθηκε στα πλαίσια της εργασίας. Η εφαρµογή µοντελοποιεί τα ανωτέρω ζητήµατα και πραγµατεύεται το πρόβληµα εύρεσης τυχαίας διαδροµής ανάµεσα σε δυο πόλεις µέσω συγκεκριµένων µέσων µεταφοράς. Είναι υλοποιηµένη σε JAVA, για την πλατφόρµα υλοποίησης και επικοινωνίας πολυπρακτορικών συστηµάτων JADE και ακολουθεί όλες τις προδιαγραφές FIPA. Λέξεις κλειδιά: πράκτορας, πολυπρακτορικά συστήµατα, πολυπρακτορικός σχεδιασµός, επικοινωνία, JADE vi

11 Κεφάλαιο 1 Εισαγωγή 1.1 Αντικείµενο και σκοπός της διπλωµατικής Μέχρι πρόσφατα τα ευφυή υπολογιστικά συστήµατα χρησιµοποιούνταν µόνο σε απλούς τοµείς των βιοµηχανικών και εµπορικών εφαρµογών, συνήθως αντικαθιστώντας απλές µηχανικές ή αναλογικές συσκευές. Η σταδιακή, όµως, αποδοχή των τεχνικών της Τεχνητής Νοηµοσύνης επέκτεινε το πεδίο εφαρµογής τους. Οι εταιρίες πλέον, προσπαθούν να δηµιουργήσουν όσο το δυνατόν περισσότερο εξελιγµένα συστήµατα βασισµένα στο λογισµικό, τα οποία χρησιµοποιούνται για την εποπτεία και τον έλεγχο της γραµµής παραγωγής, στα δίκτυα ενέργειας και επικοινωνίας, στον έλεγχο εναέριας κυκλοφορίας, στην αναζήτηση πληροφοριών σε κατανεµηµένες βάσεις δεδοµένων, στα παιχνίδια και σε πολλούς άλλους τοµείς.. Τέτοιου είδους συστήµατα είναι τα πολυπρακτορικά συστήµατα, στα οποία η αλληλεπίδραση είναι δυναµική και όχι στατικά καθορισµένη, δίνοντας τη δυνατότητα στο σύστηµα να συµπεριφερθεί µε σωστό τρόπο, ακόµη και σε περιπτώσεις που δεν είχαν αρχικά προβλεφθεί. Η δυναµική φύση της αλληλεπίδρασης των πρακτόρων, καθώς και το γεγονός ότι οι πράκτορες αποτελούν αυτόνοµες οντότητες, εγείρει µια σειρά αρκετά δύσκολων θεµάτων που αφορούν στην υλοποίηση πολυπρακτορικών συστηµάτων. Ένα από τα σηµαντικότερα ζητήµατα στη µελέτη των πολυπρακτορικών συστηµάτων είναι αυτό του πολυπρακτορικού σχεδιασµού. Το συγκεκριµένο ζήτηµα µελετά τις τεχνικές και τις διαδικασίες µέσω των οποίων οι πράκτορες αλληλεπιδρούν, συντονίζονται, συνάπτουν συµφωνίες για να σχεδιάσουν τα πλάνα των ενεργειών τους κατά την επίλυση του προβλήµατος που ανατίθεται στο σύστηµα. 1

12 Βασικό ζητούµενο του πολυπρακτορικού σχεδιασµού είναι ο συντονισµός και η επικοινωνία των πρακτόρων, ώστε τα δηµιουργηθέντα πλάνα ενεργειών να είναι αποδοτικότερα και ακριβέστερα στην επίλυση του προβλήµατος. Στην παρούσα διπλωµατική εργασία γίνεται προσπάθεια να µοντελοποιηθούν κάποιες από τις µελετώµενες τεχνικές, µέσω της δηµιουργίας µιας πολυπρακτορικής εφαρµογής. Η εφαρµογή, δεδοµένης µιας βάσης γνώσης (ενός χάρτη), αναζητεί και κατασκευάζει µια διαδροµή ανάµεσα σε δύο πόλεις, χρησιµοποιώντας διαφορετικά µέσα µεταφοράς. Παρατηρούµε έτσι τον τρόπο επικοινωνίας και συνεργασίας των πρακτόρων και µελετάµε τη συµπεριφορά τους. 1.2 ιάθρωση της διπλωµατικής εργασίας Στο Κεφάλαιο 2 παρατίθεται µια εισαγωγή σε βασικές έννοιες πολυπρακτορικών συστηµάτων, καθώς και η θεωρητική µελέτη των βασικότερων τεχνικών που χρησιµοποιούνται στον πολυπρακτορικό σχεδιασµό. Στο Κεφάλαιο 3 παρουσιάζεται η διαδικασία σχεδιασµού της υλοποίησης της εφαρµογής, τα χαρακτηριστικά της πλατφόρµας υλοποίησης και οι τεχνικές ανάµεσα στις οποίες έγινε η επιλογή για την εφαρµογή. Στο Κεφάλαιο 4 παρατίθεται η υλοποίηση της εφαρµογής µέσω UML διαγραµµάτων και στιγµιότυπων από την εκτέλεσή της. Τέλος, στο Κεφάλαιο 5 παρουσιάζονται τα συµπεράσµατα της διπλωµατικής εργασίας και η συζήτηση για µελλοντική επέκταση της εργασίας. 2

13 Κεφάλαιο 2 Πολυπρακτορικός Σχεδιασµός Στο συγκεκριµένο κεφάλαιο γίνεται µια εισαγωγή στον τοµέα των Πολυπρακτορικών συστηµάτων και µελετώνται βασικές αρχές του Πολυπρακτορικού Σχεδιασµού. 2.1 Βασικές έννοιες και ορισµοί Αρχικά θα πρέπει να δοθεί ο ορισµός του όρου πράκτορας, για την εισαγωγή σε ευρύτερες έννοιες και τεχνικές των πολυπρακτορικών συστηµάτων. Επειδή δεν υπάρχει καθολικά αποδεκτός ορισµός, θα παρουσιαστεί ο ορισµός των Wooldrigde και Jennings (1995) όπως αυτός παρέχεται από το βιβλίο «Εισαγωγή στα Πολυπρακτορικά Συστήµατα» [12]. Ορισµός: Ο πράκτορας είναι ένα υπολογιστικό σύστηµα που βρίσκεται σε κάποιο περιβάλλον, και το οποίο είναι ικανό για αυτόνοµη δράση µέσα σε αυτό το περιβάλλον προκειµένου να ικανοποιήσει τους σχεδιαστικούς του στόχους. Εικόνα 2.1 Ένας πράκτορας στο περιβάλλον του 3

14 Στον πραγµατικό κόσµο όµως σπάνια, έως καθόλου, συναντάµε σύστηµα µε έναν µόνο πράκτορα. Η πλειονότητα των συστηµάτων περιέχει δύο ή και περισσότερους πράκτορες, οι οποίοι αλληλεπιδρούν και συνεπώς η πολυπλοκότητα στην προσπάθεια επίλυσης ενός προβλήµατος αυξάνει. Εισάγεται πλέον στο σύστηµα η έννοια της επικοινωνίας, καθώς οι πράκτορες µπορεί να έχουν επικαλυπτόµενη επιρροή στο περιβάλλον και σχέσεις εξάρτησης µεταξύ τους. Εικόνα 2.2 Τυπική δοµή ενός πολυπρακτορικού συστήµατος Στο σηµείο αυτό είναι σηµαντικό να εισάγουµε στη µελέτη την έννοια του κατανεµηµένου, καθώς η επίλυση του προβλήµατος απαιτεί πλέον συλλογική προσπάθεια. Η ανάγκη αυτή βασίζεται στην εγγενή κατανοµή των πόρων, στο σύστηµα και στους πράκτορες, όπως η βάση γνώσης, η ικανότητα, η πληροφορία και η εξειδίκευση. Η ενασχόληση µε το ζήτηµα ξεκίνησε µε τη Συνεργατική κατανεµηµένη επίλυση προβλήµατος (ΣΚΕΠ). 4

15 Ορισµός: Η ΣΚΕΠ µελετά τον τρόπο µε τον οποίο ένα χαλαρά συνδεδεµένο δίκτυο επιλυτών προβληµάτων µπορεί να συνεργαστεί για να επιλύσει προβλήµατα που είναι πέρα από τις ατοµικές ικανότητες των επιλυτών αυτών. Κάθε κόµβος επίλυσης προβλήµατος στο δίκτυο είναι ικανός για εξελιγµένη επίλυση και µπορεί να εργαστεί ανεξάρτητα, αλλά τα προβλήµατα που αντιµετωπίζουν οι κόµβοι δεν µπορούν να ολοκληρωθούν χωρίς συνεργασία. Η συνεργασία είναι απαραίτητη επειδή κανένας µεµονωµένος κόµβος δεν έχει αρκετή εξειδικευµένη γνώση, πόρους και πληροφορίες για να επιλύσει ένα πρόβληµα και οι διάφοροι κόµβοι µπορεί να διαθέτουν εξειδικευµένη γνώση για την επίλυση διαφορετικών τµηµάτων του προβλήµατος.[5] Η επίλυση αυτού του είδους των προβληµάτων απαιτεί, αφενός συνοχή στην οµάδα των πρακτόρων (να επιθυµούν να συνεργαστούν καλά) και αφετέρου συντονισµός αρµοδιοτήτων (να γνωρίζουν πως θα συνεργαστούν καλά). Συνοχή (coherence): Η συνοχή µπορεί να µετρηθεί από την άποψη της ποιότητας της λύσης, της αποδοτικότητας της χρήσης πόρων, της εννοιολογικής σαφήνειας της λειτουργίας, ή της οµαλότητας στη µείωση της απόδοσης του συστήµατος, όταν υπάρχει αβεβαιότητα ή αστοχία. Συντονισµός αρµοδιοτήτων (competence coordination): Σε ένα τέλεια συντονισµένο σύστηµα, οι πράκτορες δεν θα ασχολούνται κατά λάθος µε τους υποστόχους των άλλων πρακτόρων, στην προσπάθειά τους για την επίτευξη ενός κοινού στόχου. Η παρουσία διενέξεων µεταξύ των πρακτόρων, µε την έννοια της καταστροφικής επέµβασης του ενός στον άλλο, είναι ένδειξη κακού συντονισµού. Ένα βασικό ζήτηµα στην επίλυση πολυπρακτορικών προβληµάτων είναι αυτό του σχεδιασµού των ενεργειών των πρακτόρων. Σε αντίθεση µε τα µονοπρακτορικά συστήµατα το πρόβληµα έγκειται στον κοινό σχεδιασµό δράσης και στην παραγωγή ενός συνολικού πλάνου για το σύστηµα, καθώς πλέον οι πράκτορες δεν λειτουργούν ατοµικά αλλά ως οµάδα για την επίλυση του προβλήµατος. Πολλές φορές οι ενέργειες ενός πράκτορα έρχονται σε σύγκρουση µε τις ενέργειες ενός άλλου πράκτορα ή οι προϋποθέσεις µιας ενέργειας a i ενός πράκτορα Α, δύναται να ισχύουν 5

16 εφόσον έχει εκτελεστεί µια ενέργεια b j ενός πράκτορα Β και συνεπώς η ενέργεια b j πρέπει να προηγείται. Παρατηρούµε συνεπώς πως οι πράκτορες εκτός από το να ασχολούνται µε την επίλυση του προβλήµατος, πρέπει να ασχολούνται και µε τον σχεδιασµό των ενεργειών τους. Η ανάγκη αυτή συνίσταται στο πως οι πράκτορες θα εργαστούν οµαδικά, να αποσυνθέσουν το πρόβληµα σε υποπροβλήµατα, να αναθέσουν τα υποπροβλήµατα, να ανταλλάξουν τις λύσεις των υποπροβληµάτων και να συνθέσουν τις επιµέρους λύσεις στην συνολική. Τη λύση σε αυτά τα προβλήµατα έρχεται να δώσει ο πολυπρακτορικός σχεδιασµός και η ύπαρξη συγχρονισµού στις ενέργειες των πρακτόρων. 2.2 Κοινή διαχείριση εργασιών Η κοινή διαχείριση εργασιών πραγµατοποιείται κατά την αποσύνθεση του προβλήµατος και την ανάθεση των εργασιών των υποπροβληµάτων σε διαφορετικούς πράκτορες. Η ιδέα βασίζεται στο γεγονός ότι αν ένας πράκτορας έχει πολλές εργασίες να διεκπεραιώσει, πρέπει να βοηθηθεί από άλλους πράκτορες µε λιγότερες ή καθόλου εργασίες. Τα βήµατα για να επιτευχθεί η διαµοίραση των εργασιών είναι: Αποσύνθεση του προβλήµατος: Το αρχικό µας πρόβληµα αποσυντίθεται ιεραρχικά σε µικρότερα υποπροβλήµατα µέχρι να δηµιουργηθούν τέτοια υποπροβλήµατα σε µέγεθος που να επιδέχονται επίλυσης από έναν µεµονωµένο πράκτορα. Η διαδικασία της αποσύνθεσης µπορεί να γίνει από έναν πράκτορα, µε την προϋπόθεση ότι αυτός κατέχει την απαραίτητη γνώση τόσο για τη δοµή της εργασίας του προβλήµατος, ώστε µπορεί να την διαµοιράσει σε µικρότερα µη επικαλυπτόµενα κοµµάτια, όσο και για τους συµµετέχοντες στην επίλυση πράκτορες, για να µην υπάρξουν υποπροβλήµατα που δε θα µπορούν να επιλυθούν από κάποιον πράκτορα. Αν την ανωτέρω γνώση την κατέχουν περισσότεροι του ενός πράκτορες, τότε η διαδικασία της αποσύνθεσης µπορεί να αντιµετωπιστεί ως συνεργατική διαδικασία, µε ενδεχοµένως καλύτερα αποτελέσµατα, γεγονός όµως που απαιτεί επιπρόσθετο συντονισµό ενεργειών. 6

17 Ανάθεση υποπροβληµάτων: Στο παρόν στάδιο τα υποπροβλήµατα που δηµιουργήθηκαν από την αποσύνθεση διαβιβάζονται στους κατάλληλους πράκτορες για επίλυση (η διαδικασία αυτή µπορεί να θεωρηθεί και ως µέρος της διαδικασίας αποσύνθεσης). Επίλυση υποπροβληµάτων: Τα ανωτέρω υποπροβλήµατα επιλύονται, το καθένα ξεχωριστά, από τους πράκτορες που τους έχουν ανατεθεί. Κατά τη διαδικασία επίλυσης ενδεχοµένως οι πράκτορες να χρειάζονται πληροφορίες από κάποιον άλλο πράκτορα για να συνεχίσουν την εργασία τους. Συνεπώς απαιτείται κοινή διαχείριση πληροφορίας και επικοινωνία µεταξύ των πρακτόρων. Σύνθεση αποτελεσµάτων: Οι επιµέρους λύσεις των υποπροβληµάτων ενοποιούνται αναδροµικά (µε ιεραρχία ανάστροφη της αποσύνθεσης) στην τελική συνολική λύση του αρχικού προβλήµατος. Οµοίως µε τη διαδικασία της αποσύνθεσης, µπορεί να επιτευχθεί είτε από έναν εξειδικευµένο πράκτορα, είτε από περισσότερους µέσω επικοινωνίας και συντονισµού. Εικόνα 2.3 Παράδειγµα για το πρόβληµα των Πύργων του Ανόι Το γεγονός αυτό επιτυγχάνεται σχετικά απλά όταν όλοι οι πράκτορες είναι οµοιογενείς ως προς τις ικανότητές τους. Στις περιπτώσεις ανοµοιογενών ή πλήρως αυτόνοµων πρακτόρων, σε κάθε πράκτορα πρέπει να ανατεθεί µια εργασία ανάλογα µε τις ικανότητές του, ενώ υπάρχει και η περίπτωση οι πράκτορες να µην διακατέχονται από την υπόθεση της αγαθής προαίρεσης, να είναι ανταγωνιστικοί και να απαιτείται σύναψη συµφωνιών. 7

18 2.3 Κοινή διαχείριση αποτελεσµάτων Κατά την διάρκεια της διαδικασίας της κοινής διαχείρισης αποτελεσµάτων οι πράκτορες ανταλλάσουν πληροφορίες µεταξύ τους. Ένας πράκτορας αποστέλλει µια πληροφορία σε έναν άλλο είτε ενεργητικά, επειδή πιστεύει πως αυτή η πληροφορία θα του φανεί χρήσιµη στο µέλλον, είτε αντιδραστικά απατώντας στο αίτηµα κάποιου άλλου πράκτορα για την συγκεκριµένη πληροφορία. Τα αποτελέσµατα όµως που εξάγονται κατά την επίλυση µιας εργασίας από έναν πράκτορα µπορεί να διαφέρουν από τα αποτελέσµατα που εξάγει ένας άλλος πράκτορας για την ίδια εργασία. Για παράδειγµα στους µαθητές µιας τάξης δίδεται η ίδια εργασία, όµως η επίλυσή της διαφέρει από µαθητή σε µαθητή. Για να βελτιωθεί η οµαδική απόδοση των πρακτόρων κατά την κοινή διαχείριση αποτελεσµάτων ο Durfee [4] προτείνει τους ακόλουθους τρόπους: Εµπιστοσύνη (Confidence): Οι ανεξάρτητα παραγόµενες, από τους πράκτορες, λύσεις επαληθεύονται συγκρινόµενες µεταξύ τους, αποδίδοντας ένα συλλογικό αποτέλεσµα που θα έχει µεγαλύτερο βαθµό εµπιστοσύνης στο να είναι σωστό. Στο παράδειγµα µε τους µαθητές, µπορούν να συγκρίνουν τα αποτελέσµατά τους για να αυξήσουν την εµπιστοσύνη τους στις απαντήσεις. Πληρότητα (Completeness): Κάθε πράκτορας διατυπώνει το αποτέλεσµά του για κάθε εργασία που µπορεί (ή του έχει ανατεθεί) να εκτελέσει (τοπική άποψη). Μοιραζόµενοι τα αποτελέσµατα αυτά οι πράκτορες καλύπτουν ένα πληρέστερο τµήµα της συνολικής εργασίας (σφαιρική άποψη). Ακρίβεια (Precision): Για να βελτιώσει τη δική του λύση ένας πράκτορας χρειάζεται να γνωρίζει περισσότερα για τις λύσεις που έχουν διατυπώσει οι άλλοι πράκτορες. Για παράδειγµα σε µια µηχανική εφαρµογή κάθε πράκτορας θα µπορούσε να καταλήξει ξεχωριστά στις προδιαγραφές ενός εξαρτήµατος. Γνωρίζοντας όµως τις προδιαγραφές των εξαρτηµάτων και των άλλων πρακτόρων θα µπορούσε να καταλήξει σε προδιαγραφές που ταιριάζουν µεταξύ τους µε µεγαλύτερη ακρίβεια. 8

19 Επικαιρότητα (Timeliness): Ακόµα και αν ένας πράκτορας µπορούσε να επιλύσει ένα µεγάλο µέρος του προβλήµατος µόνος του, µε την κοινή διαχείριση της λύσης θα µπορούσε να παραχθεί το αποτέλεσµα γρηγορότερα. Παρατηρώντας τα πλεονεκτήµατα της κοινής διαχείρισης αποτελεσµάτων καταλήγουµε στο συµπέρασµα πως οι πράκτορες πρέπει να ανταλλάσουν αποτελέσµατα. Η διαδικασία όµως αυτή, δεν είναι τόσο εύκολη καθώς οι πράκτορες θα πρέπει να γνωρίζουν πώς να αφοµοιώσουν τα κοινόχρηστα αποτελέσµατα στα δικά τους. Επιπλέον, δεδοµένου ότι η αφοµοίωση µπορεί να µην είναι τετριµµένη, η ανταλλαγή µεγάλου όγκου αποτελεσµάτων µπορεί να είναι δαπανηρή, συνεπώς οι πράκτορες θα πρέπει να είναι όσο το δυνατόν πιο επιλεκτικοί στα αποτελέσµατα που ανταλλάσουν. 2.4 Κοινός σχεδιασµός δράσης Η διαδικασία σχεδιασµού των ενεργειών των πρακτόρων και η ενσωµάτωσή τους σε υποπλάνα που θα κληθούν να εξυπηρετήσουν οι πράκτορες, αποτελεί µια σύνθετη διαδικασία στην πολυπρακτορική επίλυση προβληµάτων. Το γεγονός οφείλεται πρωτίστως στην ασάφεια του όρου «κατανεµηµένο», που εισάγαµε παραπάνω, στο σύστηµα και στην διαδικασία. Το υπό εξέταση ζήτηµα θα µπορούσε να εστιαστεί στο σηµείο που θα εισάγουµε τον όρο στη διαδικασία σχεδιασµού, ούτως ώστε να είναι λειτουργικότερη. Μια θεώρηση είναι τα παραγόµενα υποπλάνα από τη διαδικασία σχεδιασµού να κατανέµονται ανάµεσα στους πράκτορες, που βρισκονται εντός ενός ή περισσοτέρων συστηµάτων. Εναλλακτική θεώρηση είναι η διαδικασία σχεδιασµού και παραγωγής υποπλάνων να είναι κατανεµηµένη ανάµεσα στους πράκτορες. Είτε να συµβαίνουν και οι δυο θεωρήσεις Συγκεντρωτικός σχεδιασµός για κατανεµηµένα πλάνα (centralized planning for distributed plans) Στόχος του συγκεκριµένου τρόπου σχεδιασµού ενεργειών είναι η δηµιουργία ξεχωριστών πλάνων για κάθε πράκτορα. Συνεπώς τα πλάνα που πρέπει να 9

20 εκτελεστούν κατανεµηµένα µπορούν να δηµιουργηθούν µε συγκεντρωτικό τρόπο, από ένα σύστηµα σχεδιασµού, από το οποίο ορίζεται ο καταµερισµός και η διάταξη εργασιών. εν χρειάζεται να υπάρχει αυστηρή σειρά ανάµεσα στις ενέργειες καθώς αυτές µπορούν να εκτελούνται παράλληλα. Έτσι έχουµε έναν συγκεντρωτικό συντονιστή (πράκτορας «αφέντης») ο οποίος αναλαµβάνει να διαµοιράσει το πλάνο στους πράκτορες που θα το εκτελέσουν (πράκτορες «σκλάβοι»), καθένας από τους οποίους εκτελεί το µέρος του πλάνου που του αναλογεί. Σκοπός είναι λειτουργώντας οι πράκτορες παράλληλα να επιτύχουν αυτήν την κατάσταση του κόσµου που θα περιέχει τους στόχους του πλάνου, σύµφωνα µε τις υποθέσεις της ορθότητας της γνώσης και του προβλέψιµου το κόσµου. Ο αλγόριθµος που δίνει την διαδικασία αυτήν είναι ο εξής: 1. εδοµένης µιας περιγραφής του στόχου, του συνόλου των λειτουργιών και µιας περιγραφής της αρχικής κατάστασης δηµιουργείται το µερικώς διατεταγµένο πλάνο. Όπου είναι πιθανό, δια µέσω έρευνας, βρίσκεται ένα σχέδιο όπου τα βήµατα έχουν λίγες διατεταγµένες δεσµεύσεις µεταξύ τους. 2. Αποσύνθεση του πλάνου σε υποπλάνα όπου οι διατεταγµένες σχέσεις ανάµεσα στα βήµατα τείνουν να συγκεντρώνονται εντός αυτών και να ελαχιστοποιούνται ανάµεσα σε αυτά. 3. Εισαγωγή συγχρονισµού στις ενέργειες των υποπλάνων. 4. Ανάθεση των υποπλάνων στους πράκτορες «σκλάβους». Σε περίπτωση αποτυχίας επιστροφή σε προηγούµενα βήµατα (διαφορετική αποσύνθεση ή διαφορετικό πλάνο). 5. Εκκίνηση της εκτέλεσης των πλάνων. Παρατηρούµε πως ο ανωτέρω αλγόριθµος αποτελεί µια εξειδίκευση της διαδικασίας κοινής διαχείρισης εργασιών που περιγράφηκε παραπάνω. Ουσιαστικά, ο αντικειµενικός στόχος είναι να βρεθεί, µέσω της αποσύνθεσης και της ανάθεσης, από όλα τα πιθανά πλάνα που επιτυγχάνουν τον στόχο, το πλάνο που µπορεί να αποσυντεθεί και να κατανεµηθεί πιο αποτελεσµατικά. Η επικοινωνιακή υποδοµή έχει µεγάλο αντίκτυπο στον βαθµό αποσύνθεσης και κατανοµής και συνεπώς το χρηµατικό και χρονικό κόστος πρέπει να λαµβάνεται υπ όψιν. Σε χαλαρά συνδεδεµένα δίκτυα οδηγεί το σύστηµα µε λίγους πράκτορες να 10

21 επιλύει µεγάλες εργασίες ενώ σε ισχυρά συνδεδεµένα ο βαθµός της αποσύνθεσης και η παράλληλη εκτέλεση αυξάνονται Κατανεµηµένος σχεδιασµός (distributed planning) Ο σχεδιασµός της παραγωγής ενός σύνθετου συγκεντρωτικού πλάνου συχνά απαιτεί τη συνεργασία ανάµεσα σε διαφορετικούς πράκτορες, εξειδικευµένους στο σχεδιασµό. Καθένας από αυτούς συνεισφέρει σε ένα µέρος του πλάνο, ανάλογα µε το κοµµάτι στο οποίο ειδικεύεται, χωρίς απαραίτητα να είναι και ένας από αυτούς που θα το εκτελέσει. Σε αυτόν τον τρόπο σχεδιασµού, χρησιµοποιούνται συχνά οι τεχνικές της κοινής διαχείρισης εργασιών και αποτελεσµάτων. Το αρχικό πρόβληµα αποσυντίθεται και κατανέµεται στους/από τους «ειδικούς» πράκτορες, µέχρι να συνθέσουν το συγκεντρωτικό πλάνο. Στις αλληλεπιδράσεις αυτές ανάµεσα στους πράκτορες σχεδιαστές η πληροφορία που ανταλλάσσεται είναι το µερικώς εξειδικευµένο πλάνο. Οι πιο ασύγχρονες ενέργειες στο κοµµάτι του σχεδιασµού επιλύονται µέσω της κοινής διαχείρισης αποτελεσµάτων. Αντί οι πράκτορες να περιφέρουν ένα µεµονωµένο πλάνο, το οποίο θα επεξεργάζονται σειριακά, και ενδεχοµένως να καταλήξει σε αδιέξοδο και να πρέπει να επιστραφεί, οι πράκτορες σχεδιάζουν παράλληλα µερικά πλάνα τα οποία συνθέτουν στο συγκεντρωτικό πλάνο. Ο συγκεκριµένος τρόπος σχεδιασµού βρίσκει, κυρίως, εφαρµογή στον τοµέα των logistics, στον κατασκευαστικό τοµέα και στον τοµέα των δικτύων επικοινωνίας Κατανεµηµένος σχεδιασµός για κατανεµηµένα πλάνα (distributed planning for distributed plans) Αποτελεί τον πιο σύνθετο και δύσκολο τρόπο σχεδιασµού ενεργειών καθώς εδώ η έννοια του κατανεµηµένου βρίσκεται τόσο στην διαδικασία σχεδίασης του πλάνου, όσο και στο αποτέλεσµα αυτής που είναι η εκτέλεση των παραγοµένων πλάνων. Μια οµάδα πρακτόρων συνεργάζονται µεταξύ τους για την κατάστρωση διαφορετικών ατοµικών πλάνων, συντονίζοντας δυναµικά τις ενέργειές τους. 11

22 Συνεπώς είναι σχεδόν άχρηστο να υπάρχει ένα συγκεντρωτικό πολυπρακτορικό πλάνο οπουδήποτε στο σύστηµα, αλλά κοµµάτια αυτού κατανεµηµένα στους πράκτορες που θα τα εκτελέσουν. Επειδή οι πράκτορες συνεργάζονται τόσο κατά την σχεδίαση, όσο και κατά την εκτέλεση των πλάνων, και ενδέχεται να είναι ιδιοτελείς, πρέπει να υπάρχει καλή επικοινωνία στο σύστηµα για να επιτυγχάνονται οι διαπραγµατεύσεις ανάµεσα τους. Επιπρόσθετα απαιτείται συµβατότητα ανάµεσα στα κατανεµηµένα κοµµάτια του πλάνου, για την αποφυγή διενέξεων, ενώ είναι επιθυµητό να αλληλοβοηθούνται έτσι ώστε να επιτευχθούν οι στόχοι τους. 2.5 Συγχώνευση πλάνων Υπάρχουν αρκετές τεχνικές για να επιτευχθεί αυτή η συνεργασία, ανάµεσα σε αυτές είναι και ένας αλγόριθµος που πρότεινε ο Georgeff [6] για την συγχώνευση πλάνων (plan merging) µε στόχο την οργάνωση των ενεργειών των πρακτόρων, ούτως ώστε αυτοί να µπορούν να συνεργάζονται και να αποφεύγουν τις συγκρούσεις. Οι ενέργειες περιγράφονται ως µια ακολουθία συνόλου καταστάσεων S 1,S 2,S 3,,S n που περιγράφουν διαισθητικά τις καταστάσεις από τις οποίες διέρχεται µια ενέργεια, µε S 1 το πεδίο ορισµού των αρχικών καταστάσεων και S n το εύρος των τελικών καταστάσεων µιας ενέργειας. Η περιγραφή αυτή µας επιτρέπει να λάβουµε υπ όψιν τόσο τις συνεργατικές όσο και τις επιβλαβείς, για το σύστηµα, αλληλεπιδράσεις µεταξύ των πρακτόρων. Οι ενέργειες στα πλάνα προσδιορίζονται µε τη χρήση γενικευµένης σηµειογραφίας STRIPS όπου εκτός από τις γνωστές λίστες προϋποθέσεων (S 1 ) προσθέσεων-διαγραφών (S n ), υπάρχει και µια λίστα διάρκειας για τις ενέργειες. Η λίστα αυτή περιέχει ένα σύνολο συνθηκών, οι οποίες θα πρέπει να είναι αληθείς κατά τη διάρκεια εκτέλεσης της ενέργειας. Υποθέτουµε ότι η διάρκεια εκτέλεσης µιας ενέργειας δεν είναι εξ αρχής ορισµένη και ότι το σύστηµα δύναται να τη γνωρίζει µόνο όταν η ενέργεια ολοκληρωθεί και ερωτηθεί ο αντίστοιχος πράκτορας. Υποθέτουµε ότι δεδοµένου ενός προβλήµατος σχεδιασµού έχουµε αποσυνθέσει τον αρχικό στόχο σε υποστόχους. Χωρίς να χαθεί η αρχή της 12

23 γενικότητας, υποθέτουµε ότι αποσυντίθεται σε δυο υποστόχους. Επίσης υποθέτουµε πως έχουµε καταστρώσει δυο ξεχωριστά πλάνα που επιλύουν αυτούς τους υποστόχους. Το πρόβληµα συνεπώς είναι να συνδυάσουµε αυτά τα δυο πλάνα σε ένα πολυπρακτορικό πλάνο που να αποφεύγει τις συγκρούσεις και να επιτρέπει όσο το δυνατόν περισσότερες ενέργειες να εκτελεστούν παράλληλα. Το πρώτο πράγµα που πρέπει να εξεταστεί είναι ο τρόπος µε τον οποίο κάποιες ατοµικές ενέργειες αλληλεπιδρούν µε κάποιες άλλες. Μετά χρειάζεται να προσδιορίσουµε ποιες από τις καταστάσεις, των ενεργειών αυτών, είναι µη ασφαλείς (unsafe), δηλαδή οδηγούν σε αδιέξοδο, και να προσθέσουµε µηχανισµούς συγχρονισµού στα δύο υποπλάνα. Η διαδικασία αυτή αποτελείται από τρία στάδια: 1. Ανάλυση αλληλεπιδράσεων (interaction analysis): Στο στάδιο αυτό παράγεται µια περιγραφή των τρόπων µε τους οποίους αλληλεπιδρούν τα πλάνα. Για να περιγραφεί η σχέση των αλληλεπιδράσεων των στόχων χρησιµοποιούνται οι έννοιες της ικανοποιησιµότητας (satisfiability), της αντιµεταθετικότητας (commutativity), και της προτεραιότητας (precedence). υο ενέργειες ονοµάζονται ικανοποιήσιµες αν υπάρχει κάποια σειρά εκτέλεσης χωρίς να ακυρώνονται οι προϋποθέσεις της µιας ή και των δυο. Υποπερίπτωση της ικανοποιησιµότητας είναι η αντιµεταθετικότητα, όπου οι δυο ενέργειες µπορούν να εκτελεστούν παράλληλα. Αν δυο ενέργειες είναι αντιµεταθετικές είτε δεν αλληλεπιδρούν ή οι αλληλεπιδράσεις είναι ακίνδυνες. Κατά τη διάρκεια της ανάλυσης αλληλεπιδράσεων γίνεται αναζήτηση στα πλάνα των όλων πρακτόρων, για την ανίχνευση όλων των αλληλεπιδράσεων που υπάρχουν. 2. Ανάλυση ασφάλειας (safety analysis): Αφού προσδιοριστούν οι πιθανές αλληλεπιδράσεις ανάµεσα στα πλάνα πρέπει να εξεταστούν ως προς την ασφάλεια τους. Η ασφάλεια ορίζεται ως το ζεύγος ενεργειών σε σχέση µε την προτεραιότητα και την αντιµεταθετικότητα του ζεύγους. Πρώτον, όλες οι ενέργειες που είναι ασφαλείς (δεν υπάρχει αλληλεπίδραση ή οι ενέργειες είναι αντιµεταθετικές) αφαιρούνται από το πλάνο (απλοποίηση). Στη συνέχεια παράγεται το σύνολο όλων των µη ασφαλών αλληλεπιδράσεων. 13

24 3. ιευθέτηση αλληλεπιδράσεων (interaction resolution): Για την επίλυση των διενέξεων οι µη ασφαλείς αλληλεπιδράσεις ορίζονται ως κρίσιµες περιοχές (critical sections) και απαιτείται αµοιβαίος αποκλεισµός για τον χειρισµό αυτών (π.χ. σηµαφόροι). Πρόκειται για µια απλή και αποδοτική τεχνική δηµιουργίας ευέλικτων πολυπρακτορικών πλάνων από τη συγχώνευση απλών µονοπρακτορικών πλάνων. Τα βασικότερα χαρακτηριστικά της είναι, αφενός, ο τρόπος αναπαράστασης των ενεργειών, που επιτρέπει την έκφραση πιο σύνθετων µορφών αλληλεπίδρασης, αφετέρου η χρήση γενικευµένης σηµειογραφίας STRIPS και οι εφαρµογές της αντιµεταθετικότητας, συνεισφέρουν στην κατηγορηµατική αποφυγή δηµιουργίας πιθανών διενέξεων µεταξύ των ενεργειών που περιλαµβάνονται στο πλάνο. 2.6 Γλώσσες επικοινωνίας Έχει γίνει πολλές φορές αναφορά στην ανάγκη του πολυπρακτορικού σχεδιασµού για επικοινωνία ανάµεσα στους πράκτορες, ώστε να επιτευχθεί συγχρονισµός ενεργειών και χειρισµός επιβλαβών αλληλεπιδράσεων. Για να υλοποιηθεί η απαιτούµενη επικοινωνία είναι απαραίτητη µια γλώσσα επικοινωνίας, ώστε οι συµβαλλόµενοι πράκτορες να µπορούν να ανταλλάσουν µηνύµατα, τα οποία θα είναι κατανοητά και από τους δύο. Αν και έχουν προταθεί πλήθος γλωσσών επικοινωνίας πρακτόρων, δύο είναι σήµερα οι επικρατέστερες η KQML και η FIPA ACL KQML Η KQML ( Knowledge and Query Manipulation Language), αποτελεί ταυτόχρονα ένα πρωτόκολλο και µια γλώσσα επικοινωνίας πρακτόρων βασισµένη σε µηνύµατα, τα οποία έχουν µια κοινή µορφή. Στην KQML ορίζονται τρία διαφορετικά επίπεδα: 14

25 Επίπεδο περιεχοµένου (content layer): Το οποίο αφορά το περιεχόµενο του µεταδιδόµενου µηνύµατος. Αυτό καθορίζεται από την αντίστοιχη εφαρµογή και µπορεί να είναι οτιδήποτε. Επίπεδο µηνύµατος (message layer): Το οποίο είναι ο πυρήνας της γλώσσας. Στο επίπεδο αυτό καθορίζεται ο τύπος του µηνύµατος, µε κάποια από τις διαθέσιµες δηλώσεις (performative) από το σύνολο που έχει καθοριστεί για τη γλώσσα (tell, ask, reply, inform, advertise, κτλ) καθώς και το πρωτόκολλο (protocol), δηλαδή ο τρόπος µετάδοσης και λήψης των µηνυµάτων, όπως για παράδειγµα σύγχρονος, ασύγχρονος, κτλ. Επίπεδο επικοινωνίας (communication layer): Στο οποίο καθορίζονται οι χαµηλού επιπέδου λεπτοµέρειες της υλοποίησης της επικοινωνίας. Εικόνα 2.4 Επίπεδα πρωτοκόλλου KQML Τα KQML µηνύµατα µπορούν να θεωρηθούν ως αντικείµενα, σύµφωνα µε την ευρεία έννοια του αντικειµενοστραφούς προγραµµατισµού, καθένα από τα οποία περιέχει: ένα τελεστικό (κλάση) και έναν αριθµό παραµέτρων (µεταβλητές). Εικόνα 2.5 Παράδειγµα µηνύµατος KQML 15

26 Στον πίνακα που ακολουθεί παρουσιάζονται τα συνολικά 41 τελεστικά της γλώσσας. Το S συµβολίζει το πεδίο του αποστολέα (sender), το R το πεδίο το παραλήπτη (receiver) και το C το περιεχόµενο του µηνύµατος (content). Τελεστικό achieve advertise ask-about ask-all ask-if ask-one break broadcast broker-all broker-one deny delete-all delete-one discard eos error evaluate forward generator insert monitor next pipe ready recommend-all recommend-one recruit-all recruit-one register reply rest sorry Σηµασία Ο S θέλει να κάνει ο R κάτι αληθές στο περιβάλλον του Ο S δηλώνει κατάλληλος για την επεξεργασία ενός τελεστικού Ο S θέλει όλες τις συναφείς προτάσεις της εικονικής βάσης γνώσης (VKB) του R O S θέλει όλες τις απαντήσεις του R για µια ερώτηση C O S θέλει να ξέρει αν η απάντηση του R υπάρχει στο VKB του C O S θέλει µια από τις απαντήσεις του R για µια ερώτηση C Ο S θέλει να διακόψει ο R µια διοχέτευση (pipe) που έχει εγκαθιδρύσει Ο S θέλει να στείλει ο R ένα τελεστικό σε όλες τις συνδέσεις Ο S θέλει να µαζέψει ο R όλες τις απαντήσεις σε ένα τελεστικό Ο S θέλει να πάρει ο R βοήθεια στην απάντηση σε ένα τελεστικό Το ενσωµατωµένο τελεστικό δεν εφαρµόζεται πλέον στον S Ο S θέλει να αφαιρέσει ο R όλες τις προτάσεις που ταιριάζουν µε τη C Ο S θέλει να αφαιρέσει ο R µια πρόταση που ταιριάζει µε τη C Ο S δε θέλει τις εναποµένουσες απαντήσεις του R για ένα ερώτηµα Τέλος µιας ροής απάντησης για ένα ερώτηµα Ο S θεωρεί ότι ένα προηγούµενο ερώτηµα του R είναι κακοδιατυπωµένο Ο S θέλει να αποτιµήσει ο R το C Ο S θέλει να προωθήσει ο R ένα µήνυµα σε κάποιον άλλον πράκτορα Ίδιο µε το standby για ένα stream-all Ο S ζητά από τον R να προσθέσει περιεχόµενο στη δική του VKB Ο S θέλει ενηµερώσεις για την απάντηση του R σε ένα stream-all Ο S θέλει την επόµενη απάντηση του R σε ένα τελεστικό ροής Ο S θέλει να δροµολογήσει ο R όλα τα υπόλοιπα τελεστικά σε άλλον πράκτορα Ο S είναι έτοιµος να απαντήσει σε ένα προηγούµενο τελεστικό του R Ο S θέλει όλα τα ονόµατα των πρακτόρων που µπορούν να απαντήσουν στο C Ο S θέλει το όνοµα ενός πράκτορα που µπορεί να απαντήσει στο C Ο S θέλει να κάνει ο R όλους τους κατάλληλους πράκτορες να απαντήσουν στο C Ο S θέλει να κάνει ο R έναν κατάλληλο πράκτορα να απαντήσει στο C Ο S µπορεί να παραδώσει τελεστικά σε κάποιον κατονοµαζόµενο πράκτορα Μεταδίδει µια αναµενόµενη απάντηση Ο S θέλει τις εναποµένουσες απαντήσεις του R για έναν προηγούµενο τελεστικό Ο S δε µπορεί να δώσει µια πιο κατατοπιστική απάντηση 16

27 Τελεστικό standby stream-about stream-all subscribe tell transport-address unregister untell Σηµασία Ο S θέλει να είναι έτοιµος ο R να απαντήσει σε ένα τελεστικό Η εκδοχή πολλών απαντήσεων του ask-about Η εκδοχή πολλών απαντήσεων του ask-all Ο S θέλει ενηµερώσεις για την απάντηση του R σε ένα τελεστικό Ο S ισχυρίζεται στον R ότι το C υπάρχει στη VKB του Ο S συσχετίζει ένα συµβολικό όνοµα µε τη διεύθυνση µεταφοράς Άρνηση του register Ο S ισχυρίζεται στον R ότι το C δεν υπάρχει στη VKB του Πίνακας 2.1 Τελεστικά της KQML FIPA ACL Το Ίδρυµα για Ευφυείς Φυσικούς Πράκτορες (Foundation for Intelligent Physical Agents, FIPA), από το 1995, είχε ως στόχο την καθιέρωση προτύπων, ώστε να εξασφαλιστεί η διαλειτουργικότητα των συστηµάτων πρακτόρων που θα αναπτυχθούν στη βιοµηχανία. Αποτέλεσµα της προσπάθειας αυτής ήταν η ανάπτυξη της γλώσσας επικοινωνίας πρακτόρων FIPA ACL. Συντακτικά το µήνυµα της FIPA ACL παρουσιάζει αρκετές οµοιότητες µε αυτό της KQML. Περιέχει, οµοίως, ένα τελεστικό (κλάση) που ορίζει την επιδιωκόµενη ερµηνεία των µηνυµάτων και έναν αριθµό παραµέτρων (µεταβλητών). Η διαφορά έγκειται στις τιµές που µπορούν να λάβουν τα πεδία αυτά. Εικόνα 2.6 Παράδειγµα µηνύµατος FIPA ACL 17

28 Η πιο σηµαντική διαφορά µεταξύ των δυο γλωσσών έγκειται στα σύνολα των τελεστικών που παρέχουν. Στην FIPA ACL παρέχονται 20 τελεστικά τα οποία κατηγοριοποιούνται ανάλογα µε το είδος της επικοινωνίας. Τελεστικό Μεταβίβαση Αίτηση Εκτέλεση ιαπραγµάτευση πληροφορίας πληροφορίας ενεργειών accept-proposal X agree X cancel X X cfp X confirm X disconfirm X failure inform X inform-if X inform-ref X not-understood propagate X propose X proxy X query-if X query-ref X refuse X reject-proposal X request X request-when X request-whenever X subscribe X Πίνακας 2.2 Τελεστικά ανά κατηγορία στη FIPA ACL Χειρισµός σφαλµάτων X X 18

29 Κεφάλαιο 3 Σχεδιασµός της Υλοποίησης Στο συγκεκριµένο κεφάλαιο γίνεται µια περιγραφή της φύσης του προβλήµατος που επιλύει η εφαρµογή. Επιπλέον, παρουσιάζονται οι επιλογές και οι περιπτώσεις που προκύπτουν στη σχεδίαση, λόγω των διαφορετικών τεχνικών που µελετήσαµε. Παρουσιάζεται επίσης µια περιγραφή της πλατφόρµας υλοποίησης της εφαρµογής και των χαρακτηριστικών της. 3.1 Περιγραφή του προβλήµατος Η εφαρµογή που υλοποιήθηκε στα πλαίσια της παρούσας διπλωµατικής εργασίας επιχειρεί να µοντελοποιήσει κάποιες από τις τεχνικές σχεδίασης που αναπτύχθηκαν θεωρητικά, καθώς και να µας δώσει τη δυνατότητα να µελετήσουµε την επικοινωνία και τον τρόπο µε τον οποίο αυτή επιτυγχάνεται µεταξύ των πρακτόρων, ώστε να υπάρχει συντονισµός ενεργειών. Το πρόβληµα που πρέπει να επιλυθεί έγκειται στην κατασκευή ενός δροµολογίου. Αναλυτικότερα, στην εύρεση µιας τυχαίας διαδροµής ανάµεσα σε δύο πόλεις, αποτελούµενη ενδεχοµένως από ενδιάµεσους σταθµούς, όπου η µετακίνηση από µια πόλη σε άλλη µπορεί να επιτευχθεί µε τη χρήση διάφορων µεταφορικών µέσων. Στην περίπτωση µας έχουµε τρία µέσα µεταφοράς, αεροπλάνο, τρένο και λεωφορείο. Ανάλογα µε τα προτεινόµενα είδη σχεδιασµού έχουµε και διαφορετικές περιπτώσεις σεναρίων για το σύστηµα, το ρεπερτόριο ενεργειών κάθε πράκτορα, την αναπαράσταση της βάσης γνώσης, ανάµεσα στα οποία πρέπει να επιλέξουµε ώστε να προχωρήσουµε στην υλοποίηση της εφαρµογής. 19

30 3.2 Κατανοµή ρεπερτορίου ενεργειών στους πράκτορες Ανάλογα µε το είδος του κοινού σχεδιασµού δράσης προκύπτει η ανάγκη για δηµιουργία διαφορετικών πρακτόρων, πέρα από τους επιλυτές του προβλήµατος, οι οποίοι θα είναι επιφορτισµένοι µε τον σχεδιασµό των πλάνων. Όσον αφορά τους επιλυτές του προβλήµατος, εφόσον βρούµε τον τρόπο σχεδιασµού, πρέπει να βρούµε πόσοι χρειάζονται ανάλογα µε το ρεπερτόριο ενεργειών τους για να επιλύεται το πρόβληµα. Παρατηρούµε πως ο αριθµός των πρακτόρων σε µια εφαρµογή, το ρεπερτόριο ενεργειών τους, καθώς και ο τρόπος του σχεδιασµού, είναι σχέσεις αµφίδροµες και αλληλοεξαρτώµενες Πράκτορες µε διαφορετικό ρεπερτόριο ενεργειών και κοινή γνώση χάρτη Στην περίπτωση αυτή έχουµε πράκτορες µε διαφορετικό ρεπερτόριο ενεργειών, όπου ο κάθε πράκτορας µπορεί χα χειρίζεται ένα διαφορετικό µέσω µεταφοράς. ίνεται η δυνατότητα να έχουµε είτε συγκεντρωτικό, είτε κατανεµηµένο σχεδιασµό για κατανεµηµένα πλάνα. Στην πρώτη περίπτωση θα χρειαστούµε έναν επιπλέον πράκτορα στο σύστηµά µας, που θα αναλάβει το ρόλο του συντονιστή των ενεργειών των υπολοίπων. Θα είναι ο «προσωπικός βοηθός» (PDA) του χρήστη καθώς θα είναι ο µόνος που θα αλληλεπιδρά άµεσα µαζί του. Είναι υπεύθυνος για το σχεδιασµό των πλάνων των πρακτόρων, την ανταλλαγή πληροφοριών και τη σύνθεση των µερικών λύσεων στην τελική. Στη δεύτερη περίπτωση οι πράκτορες χειριστές των µέσων µεταφοράς, αναλαµβάνουν να συντονίσουν τις ενέργειές τους µέσω µερικού σχεδιασµού των υπό εκτέλεση πλάνων. Πρέπει µόνοι τους να συνάψουν συµφωνίες για την ανάθεση ενός έργου σε κάποιον που µπορεί να το επιλύσει, να αποτρέψουν διενέξεις και όπου υπάρξουν να τις λύσουν καθώς και να συνθέσουν τις µερικές λύσεις σε τελική. Παρατηρούµε εποµένως ότι ο φόρτος εργασιών ενός πράκτορα αυξάνεται αισθητά. Η κοινή γνώση αρχικής και τελικής κατάστασης διευκολύνει τους πράκτορες στο συγχρονισµό των ενεργειών στην αναζήτηση του δροµολογίου, καθώς όλοι γνωρίζουν πως και για πόσο πρέπει να συνεχίζουν την αναζήτηση αυτή. Η κοινή γνώση του χάρτη αυξάνει την προσβασιµότητα των πρακτόρων σε γνώση, άρα οι 20

31 πράκτορες εκτελούν την εργασία τους παράλληλα χωρίς να περιµένουν πληροφορία από άλλον πράκτορα, αυξάνει όµως και την ανάγκη του συστήµατος για χρήση πόρων. Το πρόβληµα τώρα έγκειται στον τρόπο µε τον οποίο θα αναπαρασταθεί η γνώση αυτή Πράκτορες µε κοινό ρεπερτόριο ενεργειών, κοινό πρόβληµα, µη κοινή γνώση χάρτη Τώρα οι πράκτορες εκτελούν όλοι τις ίδιες ενέργειες, κοινό ρεπερτόριο, δηλαδή µπορεί να χειρίζεται ο καθένας και τα τρία µέσα µεταφοράς. Επειδή όµως η βάση γνώσης δεν είναι κοινή, δεν µπορεί κανένας να δώσει λύση µόνος του αν η αρχική και η τελική κατάσταση δεν βρίσκεται στο δικό του πεδίο γνώσης. Συνεπώς µπορούµε να πούµε ότι κάθε πράκτορας γνωρίζει όλα τα δροµολόγια, όλων των µέσων µεταφοράς µόνο για ένα τµήµα του χάρτη, όπως ένα γεωγραφικό διαµέρισµα. Στην περίπτωση αυτή έχουµε κατανεµηµένο σχεδιασµό ενεργειών, όπου ο κάθε πράκτορας, ειδικός σε ένα µέρος του προβλήµατος, βρίσκει τη λύση στο δικό του µέρος, οι οποίες στο τέλος συντίθενται από όλους. Όλοι οι πράκτορες εκτελούν το ίδιο πλάνο, το οποίο σχεδιάζεται από κοινού. ίνεται οι δυνατότητα να έχουµε διαφορετικούς πράκτορες σχεδιαστές των πλάνων από τους επιλυτές ή να αναλάβουν το σχεδιασµό οι ήδη υπάρχοντες πράκτορες. Στο ερώτηµα που πρέπει να απαντήσουµε είναι αν γνωρίζει κάθε πράκτορας ποιοί άλλοι πράκτορες υπάρχουν και σε πιο κοµµάτι του χάρτη έχει πρόσβαση ο καθένας. Αν δεν γνωρίζουν την ύπαρξη των άλλων πρακτόρων, για να επιτύχουµε την κοινή διαχείριση αποτελεσµάτων, µπορούµε να προσθέσουµε ένα πράκτορα, κι εδώ εν είδη PDA, που θα αναλάβει την επικοινωνία µεταξύ των πρακτόρων, µεταβιβάζοντας µόνο την πληροφορία ότι ο ένας τελείωσε την εργασία του και εισήλθε στο τάδε γεωγραφικό διαµέρισµα, ενηµερώνοντας τον υπεύθυνο πράκτορα να συνεχίσει. 21

32 3.3 Αναπαράσταση Βάσης Γνώσης Όπως έχει αναφερθεί και παραπάνω η βάση γνώσης (knowledge base) και η πρόσβαση σε αυτήν αποτελεί βασικό παράγοντα στα πολυπρακτορικά συστήµατα καθώς η επίλυση ενός προβλήµατος εξαρτάται από τη γνώση που έχεις πάνω σε αυτό. Συνεπώς σχεδιάζοντας µια εφαρµογή πρέπει να λάβουµε σοβαρά υπ όψιν τον τρόπο µε τον οποίο θα αναπαρασταθεί η γνώση αυτή, ώστε να είναι γρηγορότερη η πρόσβαση και λειτουργικότερη η εφαρµογή Έµµεση δήλωση Βάσης Γνώσης Οι πράκτορες έχουν πρόσβαση σε αυτή, δηλαδή στις πληροφορίες που χρειάζονται για την εκτέλεση µιας εργασίας, σύµφωνα µε το ρεπερτόριο ενεργειών τους. Αποτελεί την πιο απλή µορφή αναπαράστασης καθώς το ρεπερτόριο ενεργειών, οι προϋποθέσεις και οι προσθέσεις-διαγραφές τους είναι ήδη γνωστά σε ένα πράκτορα. Εικόνα 3.1 Παράδειγµα έµµεσης δήλωσης ΒΓ Σύµφωνα µε το παράδειγµα, παρατηρούµε πως ο πράκτορας agent_d γνωρίζει από τις διαθέσιµες για αυτόν ενέργειες αν µπορεί να µεταβεί από την πόλη C στην 22

33 πόλη D. Παρά την απλότητά της η συγκεκριµένη αναπαράσταση υστερεί στο γεγονός ότι δεν µπορούµε να πετύχουµε κοινή βάση γνώσης για όλους τους πράκτορες Άµεση δήλωση Βάσης Γνώσης µέσω κλάσεων Ένας άλλος τρόπος δήλωσης του χάρτη είναι µέσω κλάσεων, από τη στιγµή που η εφαρµογή θα υλοποιηθεί σε JAVA. Έτσι το σύστηµα µας είναι ενιαίο και δε χρειάζεται τροποποιήσεις ή προσθήκες συµβατότητας. Η πρόσβαση στις πληροφορίες είναι απλή και γίνεται µε απλή προσπέλαση των τιµών των µεταβλητών των αντικειµένων των κλάσεων. Το πρόβληµα είναι να βρούµε τον αποδοτικότερο για τις σχεδιαστικές µας ανάγκες τρόπο δήλωσης των κλάσεων, έτσι ώστε να αναπαριστά ευκρινώς το χάρτη, να διευκολύνει το χειρισµό τον δεδοµένων από τους πράκτορες και να τροποποιείται ανεξάρτητα από την υπόλοιπη εφαρµογή Άµεση δήλωση Βάσης Γνώσης µέσω Βάσης εδοµένων Ένας εύκολος τρόπος δηµιουργίας της βάσης γνώσης είναι µέσω µιας βάσης δεδοµένων, όπως για παράδειγµα η SQL. Η απεικόνιση είναι εύκολη, καθώς µια πόλη συσχετίζεται µε µια άλλη µε κάποιο µεταφορικό µέσο. Αποτελεί τον πληρέστερο τρόπο απεικόνισης ενός χάρτη και είναι αρκετά εύχρηστος σε περιπτώσεις µεγάλου όγκου δεδοµένων. Έχει το πλεονέκτηµα ότι είναι ανεξάρτητος της εφαρµογής και συνεπώς εύκολα τροποποιήσιµος, χωρίς αλλαγές στην εφαρµογή. Αυτό που πρέπει να χειριστούµε είναι βασικά ερωτήµατα SQL, κάτι όµως που απαιτεί γνώση SQL, αλλά και γνώση χειρισµού της µέσα από JAVA καθώς ο υπόλοιπος κώδικας θα είναι γραµµένος σε αυτήν Άµεση δήλωση Βάσης Γνώσης µέσω αρχείου Ο τελευταίος τρόπος αναπαράστασης του χάρτη είναι µέσω ενός αρχείου.txt από το οποίο οι πράκτορες θα διαβάζουν τις πληροφορίες που επιθυµούν. Και εδώ η βάση γνώσης είναι ανεξάρτητη της εφαρµογής και ευκόλως τροποποιήσιµη. Παρόλο 23

34 που ο χειρισµός αρχείων µέσα από τη JAVA είναι κάτι εύκολο, το γεγονός των συσχετίσεων που πρέπει να προσδώσουµε καθώς και ο πιθανός µεγάλος όγκος δεδοµένων αυξάνουν την πολυπλοκότητα χειρισµού. 3.4 Εισαγωγή στην πλατφόρµα JADE Η κατασκευή και η ανάπτυξη πολυπρακτορικών συστηµάτων είναι µια δύσκολη και επίπονη διαδικασία για τον προγραµµατιστή όταν αυτή γίνεται από το µηδέν. Μεγάλο µέρος της δυσκολίας έγκειται στην επικοινωνία των πρακτόρων και στο πως αυτοί θα ανταλλάσουν µηνύµατα για το σχεδιασµό πλάνων για την επίτευξη ενός στόχου ή την επίλυση ενός προβλήµατος. Στα πλαίσια ερευνών και κατασκευής κάποιων µεγάλων έργων αναπτύχθηκαν κάποια εργαλεία που δίνουν λύσεις στα προβλήµατα αυτά. Εδώ γίνεται µια εισαγωγή στην πλατφόρµα υλοποίησης και εκτέλεσης πολυπρακτορικών συστηµάτων JADE. Το JADE (Java Agent Development fragement) είναι ένα πλαίσιο λογισµικού για την ανάπτυξη εφαρµογών βασισµένων στους πράκτορες, υλοποιηµένο εξ ολοκλήρου σε JAVA. Απλοποιεί την υλοποίηση πολυπρακτορικών συστηµάτων µέσω ενός ενδιάµεσου λογισµικού (middleware), που ακολουθεί όλες τις προδιαγραφές FIPA. Για το σκοπό αυτό παρέχει µια βιβλιοθήκη κλάσεων, τις οποίες µπορεί να χρησιµοποιήσει ο προγραµµατιστής στην ανάπτυξη των πρακτόρων και ένα σύνολο από εργαλεία γραφικού περιβάλλοντος. Ασχολείται, επίσης, και µε όλες τις πτυχές ενός συστήµατος που δεν έχουν να κάνουν µε τα εσωτερικά του πράκτορα και είναι ανεξάρτητα της υλοποίησης, όπως η µεταφορά µηνυµάτων, η κωδικοποίηση και η ανάλυση σφαλµάτων και ο κύκλος ζωής ενός πράκτορα. Το αναπτυσσόµενο σύστηµα µπορεί να κατανεµηθεί, ακόµα και κατά την διάρκεια της εκτέλεσής του, πάνω από δίκτυο. Οι πράκτορες µπορούν να εκτελούνται ταυτόχρονα είτε στο ίδιο, είτε σε διαφορετικά τερµατικά (τα οποία δεν είναι απαραίτητο να χρησιµοποιούν το ίδιο λειτουργικό σύστηµα), µέσω της Java Virtual Machine (JVM). 24

35 Εικόνα 3.2 Κατανοµή πρακτόρων στο δίκτυο Η αρχιτεκτονική της επικοινωνίας προσφέρει έναν ευέλικτο και αποδοτικό τρόπο ανταλλαγής µηνυµάτων. Το JADE δηµιουργεί και χειρίζεται µια ουρά εισερχοµένων µηνυµάτων τύπου FIPA ACL, ιδιωτικά σε κάθε πράκτορα. Οι πράκτορες µπορούν να έχουν πρόσβαση στην ουρά µέσω ενός συνδυασµού από διάφορες λειτουργίες. Έχει υλοποιηθεί το πλήρες µοντέλο επικοινωνίας FIPA και τα συστατικά του έχουν διακριθεί σαφώς και ενσωµατωθεί πλήρως στην πλατφόρµα. Εικόνα 3.3 Επικοινωνία πρακτόρων στο JADE Οι πράκτορες είναι υλοποιηµένοι ως ένα νήµα για κάθε πράκτορα, ενώ ο επιπρόσθετος πολυνηµατικός χειρισµός και συγχρονισµός, προσφέρεται για χρήση 25

36 απ ευθείας από τη JAVA. Το JADE υποστηρίζει, επίσης, τον προγραµµατισµό συνεργατικών µεθόδων «συµπεριφορών» (behaviours) για κάθε πράκτορα, µέσω των οποίων εκτελούν τις ενέργειές τους. Το runtime περιλαµβάνει επίσης κάποιες έτοιµες προς χρήση συµπεριφορές για τις πιο συνηθισµένες εργασίες στον προγραµµατισµό πρακτόρων, όπως πρωτόκολλα αλληλεπίδρασης FIPA, αφύπνιση υπό ορισµένες προϋποθέσεις, καθώς και τη δόµηση πολύπλοκων εργασιών από οµαδοποιήσεις απλούστερων. Εικόνα 3.4 ιάγραµµα εκτέλεσης νήµατος ενός πράκτορα 26

37 3.4.1 Ειδικοί πράκτορες Κατά την εκκίνηση της πλατφόρµας JADE παρέχονται κάποιοι ειδικοί πράκτορες (special agents) για τη διευκόλυνση του χρήστη στο χειρισµό και την ανάπτυξη πολυπρακτορικών συστηµάτων. Remote Management Agent (RMA): Λειτουργεί ως ένα γραφικό περιβάλλον διεπαφής για τον χρήστη (GUI) µέσω του οποίου γίνεται αποµακρυσµένη διαχείριση, παρακολούθηση και έλεγχος της κατάστασης των πρακτόρων. Το πρώτο στιγµιότυπο του RMA µπορεί να ενεργοποιηθεί µε την επιλογή στην γραµµή εντολών «-gui», και µετά µέσω αυτού µπορούν να ενεργοποιηθούν περισσότερα. Η συνοχή ανάµεσα σε πολλαπλά RMAs διατηρείται µε κοινοποίηση (multicasting) των γεγονότων σε καθένα από αυτά. Επίσης, µέσω της κονσόλας RMA µπορούν να ξεκινήσουν όλα τα παρεχόµενα εργαλεία και να χειρισθούν άλλες αποµακρυσµένες πλατφόρµες πρακτόρων, συµβατές µε τις προδιαγραφές FIPA. Εικόνα 3.5 Στιγµιότυπο RMA GUI 27

38 Agent Management System (AMS): Είναι ο πράκτορας που ασκεί εποπτικό έλεγχο σχετικά µε την πρόσβαση και χρήση της πλατφόρµας. Μόνο ένας AMS µπορεί να υπάρχει σε κάθε πλατφόρµα. Επίσης ο AMS παρέχει υπηρεσίες όπως µια λευκή σελίδα (white page) και τον κύκλο ζωής των πρακτόρων, διατηρώντας έναν κατάλογο των αναγνωριστικών (AID) και της κατάστασης κάθε πράκτορα. Όλοι οι πράκτορες πρέπει να εγγραφούν σε έναν AMS, προκειµένου να πάρουν µια έγκυρη τιµή AID. Έχει ακόµα τη δυνατότητα να δηµιουργήσει ή να «σκοτώσει» πράκτορες. Directory Facilitator (DF): Είναι ο πράκτορας που παρέχει την υπηρεσία κίτρινων σελίδων (yellow pages) στο σύστηµα, δηλαδή την υπηρεσία καταλόγου. Κάθε πράκτορας µπορεί να εγγραφεί σε αυτήν δηλώνοντας το είδος των υπηρεσιών που προσφέρει, έτσι ώστε να µπορεί να βρεθεί από άλλους πράκτορες που αναζητούν τη σχετική πληροφορία, προκειµένου να επιτύχουν τους στόχους τους. Εικόνα 3.6 Στιγµιότυπο DF GUI 28

39 3.4.2 Εργαλεία γραφικού περιβάλλοντος Το JADE παρέχει ένα σύνολο από εργαλεία γραφικού περιβάλλοντος, τα οποία είναι υλοποιηµένα µέσω αντίστοιχων πρακτόρων. Dummy Agent: Είναι ένα εργαλείο για τον έλεγχο και τον εντοπισµό σφαλµάτων στο σύστηµα. Παρέχει τη δυνατότητα σύνθεσης και αποστολής µηνυµάτων σε άλλους πράκτορες, καθώς και εµφάνισης της λίστας εισερχοµένων και απεσταλµένων µηνυµάτων συµπληρωµένων µια χρονοσφραγίδα (timestamp), προκειµένου να γίνει δοκιµή και καταγραφή της επικοινωνίας και της αντίδρασης κάποιου πράκτορα. Εικόνα 3.7 Στιγµιότυπο Dummy Agent 29

40 Sniffer Agent: Είναι ένας πράκτορας που µπορεί να «υποκλέψει» µηνύµατα, κατά τη διάρκεια ανταλλαγής τους από τους πράκτορες, και να τα εµφανίσει γραφικά, χρησιµοποιώντας ένα συµβολισµό παρόµοιο µε αυτό των UML διαγραµµάτων ροής. Είναι χρήσιµο για τον εντοπισµό σφαλµάτων στις κοινωνίες πρακτόρων, παρατηρώντας πώς αντιδρούν στα ανταλλασσόµενα µηνύµατα. Εικόνα 3.8 Στιγµιότυπο Sniffer Agent Introspector Agent: Είναι ένας πράκτορας που επιτρέπει τον έλεγχο του κύκλου ζωής ενός πράκτορα, των µηνυµάτων που έχει ανταλλάξει και των συµπεριφορών που εκτελεί. Εικόνα 3.9 Στιγµιότυπο Introspector Agent 30

41 Κεφάλαιο 4 Υλοποίηση της εφαρµογής Στο κεφάλαιο αυτό παρουσιάζεται η περιγραφή της υλοποίησης της εφαρµογής. Ως συνέχεια του κεφαλαίου 3, παρατίθεται ο τρόπος µε τον οποίο οι επιλογές αυτές έγιναν πράξη. 4.1 Περιγραφή της υλοποίησης Ξεκινώντας την περιγραφή της πορείας υλοποίησης της εφαρµογής πρέπει πρώτα να αναφέρουµε τις επιλογές που έγιναν, ανάµεσα σε αυτές που παρουσιάστηκαν κατά το σχεδιασµό της. εδοµένου του προβλήµατος που πρέπει να επιλυθεί, αποφασίστηκε η εφαρµογή να υλοποιήσει το σενάριο κατανοµής ενεργειών για τους πράκτορες που περιγράφηκε στην ενότητα 3.2.1, και η περίπτωση όπου έχουµε συγκεντρωτικό σχεδιασµό ενεργειών για κατανεµηµένα πλάνα. Η συγκεκριµένη επιλογή έγινε για λόγους απλούστευσης της προσπάθειας του συστήµατος για συντονισµό ενεργειών και επικοινωνία. Απαιτείται συνεπώς η κατασκευή τεσσάρων (4) πρακτόρων: ένας πράκτορας συντονιστής, ένας πράκτορας χειριστής δροµολογίων αεροπλάνων, ένας πράκτορας χειριστής δροµολογίων λεωφορείων κι ένας πράκτορας χειριστής δροµολογίων τρένων. Η άλλη επιλογή που έπρεπε να γίνει είναι του τρόπου αναπαράστασης του χάρτη, δηλαδή της βάσης γνώσης για το σύστηµα. Επιλέχθηκε η αναπαράσταση να γίνει µέσω κλάσεων και ο χειρισµός µέσω των αντικειµένων αυτών. Η επιλογή αυτή έγινε αφενός, για λόγους ευκολίας στο χειρισµό των αναζητήσεων πληροφοριών και αφετέρου, για λόγους οµοιοµορφίας και συνοχής του συστήµατος. Επίσης για να µην αυξηθεί η πολυπλοκότητα προγραµµατισµού της εφαρµογής, παρόλο που η λύση µε 31

42 την καλύτερη απεικόνιση και αναζήτηση ήταν µέσω βάσης δεδοµένων, όµως γινόταν πολυπλοκότερος ο τρόπος προγραµµατισµού, γεγονός που ήταν πέρα από το σκοπό αυτής της διπλωµατικής. Η υλοποίηση βασίζεται στον ακόλουθο γενικό αλγόριθµο επίλυσης του προβλήµατος: 1. Εισαγωγή από το χρήστη τιµών αφετηρίας και προορισµού στον συντονιστή 2. Έλεγχος του συντονιστή στη ΒΓ για ορθότητα τιµών a. Μη αποδεκτές τιµές, πήγαινε στο 1 b. Αποδεκτές τιµές, κάνε την αφετηρία επόµενη πόλη 3. Αποστολή από το συντονιστή, στους πράκτορες χειριστές δροµολογίων, της τιµής της επόµενης πόλης 4. Αναζήτηση από τους χειριστές δροµολογίων στη ΒΓ, σύµφωνα µε το µέσο τους, της πόλης που συνορεύει µε την επόµενη πόλη a. Αν υπάρχει, αποστολή στο συντονιστή b. Αν όχι, αποστολή σφάλµατος στο αίτηµα 5. Λήψη από το συντονιστή των 3 απαντήσεων a. Αν και οι 3 ή 2 ή 1 έγκυρες, κράτα την πρώτη (κάνε την ληφθείσα πόλη επόµενη πόλη) b. Αν και οι 3 σφάλµα, πήγαινε στο 7 6. Έλεγχος του συντονιστή αν έφτασε στον προορισµό a. Αν η επόµενη πόλη είναι ο προορισµός, πήγαινε στο 7 b. Αν όχι, πήγαινε στο 3 7. Εµφάνιση της διαδροµής 8. Τερµατισµός Επειδή ο πράκτορας συντονιστής πρέπει να γνωρίζει τους πράκτορας χειριστές δροµολογίων, µε τους οποίους θα συνεργαστεί, έτσι ώστε να µπορεί να ανταλλάσει µαζί τους µηνύµατα, κάθε πράκτορας κατά τη εκκίνησή του εγγράφεται στην υπηρεσία καταλόγου (yellow pages) του DF Agent. Όταν εκκινείτε ο συντονιστής αναζητά στον κατάλογο τρεις χειριστές δροµολογίων, έναν για κάθε µεταφορικό µέσο, και µέχρι να τους βρει συνεχίζει την αναζήτηση. 32

43 4.2 οµή της εφαρµογής Σύµφωνα µε την περιγραφή της υλοποίησης και τον γενικό αλγόριθµο επίλυσης του προβλήµατος έχει υλοποιηθεί η εφαρµογή, η δοµή της οποίας παρουσιάζεται παρακάτω Αρχεία της εφαρµογής Εδώ παρουσιάζονται τα εφτά αρχεία του απαρτίζουν την εφαρµογή, καθώς και η περιγραφή του περιεχοµένου τους. CoordinatorAgent.java: Πρόκειται για το αρχείο που περιέχει την υλοποίηση του πράκτορα συντονιστή. Βασικές συµπεριφορές που εκτελεί είναι η findtransportagents(), που αναζητά τους πράκτορες χειριστές µε τους οποίους θα συνεργαστεί και η findroute(), που υλοποιεί την ανταλλαγή µηνυµάτων µε τους άλλους πράκτορες και την εύρεση του δροµολογίου. CoordinatorGui.java: Είναι το αρχείο όπου υλοποιείται το γραφικό περιβάλλον αλληλεπίδρασης του χρήστη µε τον πράκτορα συντονιστή. ηµιουργεί ένα παράθυρο στο οποίο ο χρήστης δίνει τις τιµές της αφετηρίας και του προορισµού του δροµολογίου που επιθυµεί. AirplaneHandlerAgent.java: Περιέχει τον κώδικα του πράκτορα χειριστή δροµολογίων µε αεροπλάνο. Οι λειτουργίες που εκτελεί είναι εγγραφή στην υπηρεσία καταλόγου και η συµπεριφορά findnextcityairplane(), όπου αναζητά στη ΒΓ, δεδοµένης µιας πόλης, µια πόλη που συνδέεται µε αυτή και επιτρέπει τη µετακίνηση µε αεροπλάνο. BusHandlerAgent.java: Περιέχει τον κώδικα του πράκτορα χειριστή δροµολογίων µε λεωφορείο. Οι λειτουργίες που εκτελεί είναι εγγραφή στην υπηρεσία καταλόγου και η συµπεριφορά findnextcitybus(), όπου αναζητά στη ΒΓ, δεδοµένης µιας πόλης, µια πόλη που συνδέεται µε αυτή και επιτρέπει τη µετακίνηση µε λεωφορείο. 33

44 TrainHandlerAgent.java: Περιέχει τον κώδικα του πράκτορα χειριστή δροµολογίων µε τρένο. Οι λειτουργίες που εκτελεί είναι εγγραφή στην υπηρεσία καταλόγου και η συµπεριφορά findnextcitytrain(), όπου αναζητά στη ΒΓ, δεδοµένης µιας πόλης, µια πόλη που συνδέεται µε αυτή και επιτρέπει τη µετακίνηση µε τρένο. City.java: Αποτελεί, µαζί µε το αρχείο map.java, τη ΒΓ για το σύστηµα. Περιέχει την κλάση City από την οποία δηµιουργούνται τα αντικείµενα των πόλεων στο χάρτη. Map.java: Πρόκειται για το αρχείο που περιέχει τον κώδικα που δηµιουργεί τον χάρτη στον οποίο γίνονται οι αναζητήσεις για την κατασκευή του ζητούµενου δροµολογίου UML διαγράµµατα της εφαρµογής Είναι ιδιαιτέρως χρήσιµο για τον αναγνώστη, στην προσπάθεια του για την κατανόηση της δοµής και της διαδικασίας υλοποίησης της εφαρµογής, η οπτικοποίηση της µε τη χρήση της Ενοποιηµένης Γλώσσας Μοντελοποίησης (Unified Model Language UML). Στην ενότητα αυτή παρουσιάζονται τα UML διαγράµµατα κλάσεων των αρχείων της εφαρµογής, όπως αυτά προέκυψαν από την ανάλυσή τους από το εργαλείο UML designer plugin της πλατφόρµας ανάπτυξης προγραµµατιστικών εφαρµογών NetΒeans IDE

45 Εικόνα 4.1 ιάγραµµα κλάσεων του πράκτορα συντονιστή Εικόνα 4.2 ιάγραµµα κλάσεων των πρακτόρων χειριστών 35

46 Εικόνα 4.3 ιάγραµµα κλάσεων όλης της εφαρµογής 4.3 Περιγραφή ροής εκτέλεσης Για την πλήρη κατανόηση της εφαρµογής, και έχοντας ήδη περιγράψει το περιεχόµενο και τη δοµή της, παρουσιάζεται στην παρούσα ενότητα όλη η ροή εκτέλεσής της. Η εκκίνηση της πλατφόρµας JADE γίνεται µέσω της γραµµής εντολών, από το φάκελο JADE, µε την εντολή: java -cp <jade lib\jade.jar;classes jade.boot gui 36

47 Στη συνέχεια γίνεται η εισαγωγή πρακτόρων στην πλατφόρµα, και αυτοί µε τη σειρά τους εγγράφονται στην υπηρεσία καταλόγου του DF. Μόλις εκκινήσει ο πράκτορας συντονιστής, ανοίγει το παράθυρο αλληλεπίδρασης µε το χρήστη Εικόνα 4.4 Παράθυρο αλληλεπίδρασης µε το χρήστη Εφόσον εισαχθούν οι σωστές τιµές, ο συντονιστής αναζητά στην υπηρεσία καταλόγων τους πράκτορες που χρειάζεται για την επίλυση του προβλήµατος. Εικόνα 4.5 Αναζήτηση πρακτόρων από το συντονιστή Από τη στιγµή που σχηµατίζεται η οµάδα επίλυσης, οι πράκτορες αρχίζουν την ανταλλαγή µηνυµάτων για την εύρεση και κατασκευή του δροµολογίου. Τα ανταλλασσόµενα µηνύµατα µπορούµε να τα παρακολουθήσουµε µέσω του Sniffer Agent, όπως φαίνεται στην εικόνα

48 Εικόνα 4.6 Ανταλλαγή µηνυµάτων ανάµεσα στους πράκτορες Τέλος, παρουσιάζεται στο χρήστη η προτεινόµενη από το σύστηµα διαδροµή ανάµεσα στις πόλεις που δόθηκαν και τερµατίζεται ο πράκτορας συντονιστής. Εικόνα 4.7 Εµφάνιση προτεινόµενης διαδροµής 38

28 Πολυπρακτορικά Συστήµατα

28 Πολυπρακτορικά Συστήµατα ΚΕΦΑΛΑΙΟ 28 28 Πολυπρακτορικά Συστήµατα "There is no such thing as a single agent system". [Woodridge, 2002] Η παραπάνω ρήση από το βιβλίο του M.Wooldridge τονίζει, ίσως µε περισσή έµφαση, ότι είναι πλέον

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

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

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

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

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

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

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

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

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

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

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

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

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού Μάρα Νικολαϊδου Δραστηριότητες Διαδικασιών Παραγωγής Λογισµικού Καθορισµός απαιτήσεων και εξαγωγή προδιαγραφών

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

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams Αλέκα Σεληνιωτάκη Ηράκλειο, 26/06/12 aseliniotaki@csd.uoc.gr ΑΜ: 703 1. Περίληψη Συνεισφοράς

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

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

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

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

7.9 ροµολόγηση. Ερωτήσεις

7.9 ροµολόγηση. Ερωτήσεις 7.9 ροµολόγηση Ερωτήσεις 1. Να δώσετε τον ορισµό της δροµολόγησης; 2. Από τι εξαρτάται η χρονική στιγµή στην οποία λαµβάνονται οι αποφάσεις δροµολόγησης; Να αναφέρετε ποια είναι αυτή στην περίπτωση των

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

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

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

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

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

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

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

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

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

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

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1 Εισαγωγή Υλισµικό Λογισµικό Αρχές σχεδίασης ιαφάνεια Κλιµάκωση Παρεχόµενες υπηρεσίες Μοντέλο πελάτη εξυπηρετητή Μοντέλο πελάτη εξυπηρετητή τριών επιπέδων Κατανοµή επεξεργασίας Κατανεµηµένα Συστήµατα 01-1

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

2. JADE Μια Σύντομη Αναφορά

2. JADE Μια Σύντομη Αναφορά 1 Εισαγωγή 1. FIPA H FIPA (Foundation for Intelligent Physical Agents) είναι μια μη κερδοσκοπική οργάνωση, με έδρα την Γενεύη, που σκοπό έχει την προώθηση της επιτυχίας των βασισμένων σε πράκτορες εφαρμογών.

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

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

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

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

περιεχόμενα παρουσίασης Actors Σενάρια Περιεχόμενο περιπτώσεων χρήσης Πρότυπα περιπτώσεων χρήσης Διαγράμματα περιπτώσεων χρήσης

περιεχόμενα παρουσίασης Actors Σενάρια Περιεχόμενο περιπτώσεων χρήσης Πρότυπα περιπτώσεων χρήσης Διαγράμματα περιπτώσεων χρήσης Περιπτώσεις Χρήσης περιεχόμενα παρουσίασης Actors Σενάρια Περιεχόμενο περιπτώσεων χρήσης Πρότυπα περιπτώσεων χρήσης Διαγράμματα περιπτώσεων χρήσης περιπτώσεις χρήσης Τι θα κάνει το λογισμικό για κάποιον

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

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

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

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

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

Κεφάλαιο 28. Πολυπρακτορικά Συστήµατα. Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η.

Κεφάλαιο 28. Πολυπρακτορικά Συστήµατα. Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Κεφάλαιο 28 Πολυπρακτορικά Συστήµατα "There is no such thing as a single agent system". [Woodridge 2002] Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 10 ΟΥ ΚΕΦΑΛΑΙΟΥ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Πως ορίζεται ο τμηματικός προγραμματισμός; Τμηματικός προγραμματισμός

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

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

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

Περίληψη Λαμπρόπουλος

Περίληψη Λαμπρόπουλος Περίληψη Λαμπρόπουλος 1. Αντικείμενο και Περιγραφή της Διατριβής H διδακτορική διατριβή με τίτλο «Σχεδιασμός και υλοποίηση συστήματος διαχείρισης και ενοποίησης διαφορετικών ταυτοτήτων χρηστών σε δίκτυα

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

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

Επιµέλεια Θοδωρής Πιερράτος εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,

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

Πληροφορική 2. Τεχνολογία Λογισμικού

Πληροφορική 2. Τεχνολογία Λογισμικού Πληροφορική 2 Τεχνολογία Λογισμικού 1 2 Κρίση Λογισμικού (1968) Στην δεκαετία του 1970 παρατηρήθηκαν μαζικά: Μεγάλες καθυστερήσεις στην ολοκλήρωση κατασκευής λογισμικών Μεγαλύτερα κόστη ανάπτυξης λογισμικού

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

Ανάπτυξη εφαρµογών σε προγραµµατιστικό περιβάλλον (στοιχεία θεωρίας)

Ανάπτυξη εφαρµογών σε προγραµµατιστικό περιβάλλον (στοιχεία θεωρίας) Ανάπτυξη εφαρµογών σε προγραµµατιστικό περιβάλλον (στοιχεία θεωρίας) Εισαγωγή 1. Τι είναι αυτό που κρατάς στα χέρια σου. Αυτό το κείµενο είναι µια προσπάθεια να αποτυπωθεί όλη η θεωρία του σχολικού µε

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

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν

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

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

Επιµέλεια Θοδωρής Πιερράτος Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί

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

Περίληψη ιπλωµατικής Εργασίας

Περίληψη ιπλωµατικής Εργασίας Περίληψη ιπλωµατικής Εργασίας Θέµα: Εναλλακτικές Τεχνικές Εντοπισµού Θέσης Όνοµα: Κατερίνα Σπόντου Επιβλέπων: Ιωάννης Βασιλείου Συν-επιβλέπων: Σπύρος Αθανασίου 1. Αντικείµενο της διπλωµατικής Ο εντοπισµός

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

Δροµολόγηση (Routing)

Δροµολόγηση (Routing) Δροµολόγηση (Routing) Περίληψη Flooding Η Αρχή του Βέλτιστου και Δυναµικός Προγραµµατισµός Dijkstra s Algorithm Αλγόριθµοi Δροµολόγησης Link State Distance Vector Δροµολόγηση σε Κινητά Δίκτυα Δροµολόγηση

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

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

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

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

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

ΠΑΙΓΝΙΑ Παιχνίδια Γενική Θεώρηση μεγιστοποιήσει την πιθανότητά

ΠΑΙΓΝΙΑ Παιχνίδια Γενική Θεώρηση μεγιστοποιήσει την πιθανότητά ΠΑΙΓΝΙΑ Παιχνίδια Γενική Θεώρηση: Έστω ότι έχουμε τους παίκτες Χ και Υ. Ο κάθε παίκτης, σε κάθε κίνηση που κάνει, προσπαθεί να μεγιστοποιήσει την πιθανότητά του να κερδίσει. Ο Χ σε κάθε κίνηση που κάνει

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

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

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

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

Ανοικτά Ακαδηµα κά Μαθήµατα

Ανοικτά Ακαδηµα κά Μαθήµατα ΤΕΙ Ιονίων Νήσων Ανοικτά Ακαδηµα κά Μαθήµατα Ανάλυση Σχεδίαση Υλοποίηση Αξιολόγηση Ανάλυση: Πληροφορίες σχετικά µε τις ανάγκες της εκπαίδευσης Σχεδίαση: Καθορισµός χαρακτηριστικών του εκπαιδευτικού λογισµικού

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

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

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

Αµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1

Αµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1 Αµοιβαίοςαποκλεισµός Εισαγωγή Συγκεντρωτική προσέγγιση Κατανεµηµένη προσέγγιση Αλγόριθµος Lamport Αλγόριθµος Ricart-Agrawala Προσέγγιση µεταβίβασης σκυτάλης Αλγόριθµος LeLann Αλγόριθµος Raymond Αλγόριθµος

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

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Κεφάλαιο 4 SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 1 4.1 ΕΙΣΑΓΩΓΗ...3 4.2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ...3 4.2.1 Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...3 4.2.1.1 ΣΤΑΘΜΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...4 4.2.1.2 ΔΙΑΧΕΙΡΙΖΟΜΕΝΟΙ

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

Αποµακρυσµένη κλήση διαδικασιών

Αποµακρυσµένη κλήση διαδικασιών Αποµακρυσµένηκλήση διαδικασιών Τοπική κλήση διαδικασιών Αποµακρυσµένη κλήση διαδικασιών Μεταβίβαση παραµέτρων Πρωτόκολλα επικοινωνίας Αντιγραφή µηνυµάτων Προδιαγραφές διαδικασιών RPC στο σύστηµα DCE Κατανεµηµένα

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

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

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Κεφάλαιο 6ο Εισαγωγή στον Προγραµµατισµό Μέρος Πρώτο (6.1, 6.2 και 6.3) Α. Ερωτήσεις Σωστού Λάθους 1. Η γλώσσα µηχανής είναι µία γλώσσα υψηλού επιπέδου.

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

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΘΕΩΡΙΑ ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΗ ΛΗΨΗ ΑΠΟΦΑΣΕΩΝ (1)

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΘΕΩΡΙΑ ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΗ ΛΗΨΗ ΑΠΟΦΑΣΕΩΝ (1) ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΘΕΩΡΙΑ ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΗ ΛΗΨΗ ΑΠΟΦΑΣΕΩΝ (1) 1 Προέλευση και ιστορία της Επιχειρησιακής Έρευνας Αλλαγές στις επιχειρήσεις Τέλος του 19ου αιώνα: βιομηχανική

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Άσκηση : Λυμένες Ασκήσεις Έστω ένα σύστημα μνήμης, στο οποίο έχουμε προσθέσει μια κρυφή μνήμη θυμάτων 6 θέσεων

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

Περιεχόμενο του μαθήματος

Περιεχόμενο του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Απαιτήσεις Λογισμικού Περιπτώσεις χρήσης Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Περιεχόμενο του μαθήματος

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

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που 7.7 Πρωτόκολλο ARP 1 ύο είδη διευθύνσεων: MAC - IP Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που µπορεί

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

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

Επιµέλεια Θοδωρής Πιερράτος Η έννοια πρόβληµα Ανάλυση προβλήµατος Με τον όρο πρόβληµα εννοούµε µια κατάσταση η οποία χρήζει αντιµετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή ούτε προφανής. Μερικά προβλήµατα είναι τα εξής:

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

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή Οι σηµερινές δραστηριότητες των επιχειρήσεων δηµιουργούν την ανάγκη για όσο το δυνατό µεγαλύτερη υποστήριξη από τα πληροφοριακά τους

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΘΕΜΑ 1 ο (2.5 µονάδες) ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Τελικές εξετάσεις 17 Φεβρουαρίου 2004 ιάρκεια: 2 ώρες (15:00-17:00)

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

ΚΕΦΑΛΑΙΟ 8 ΣΥΜΠΕΡΑΣΜΑΤΑ. 8.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 8 ΣΥΜΠΕΡΑΣΜΑΤΑ. 8.1 Εισαγωγή ΣΥΜΠΕΡΑΣΜΑΤΑ 8.1 Εισαγωγή Η διατριβή συµβάλλει στην ανάπτυξη µεθόδων παροχής ΠοιΥπ σε DiffServ IP δίκτυα και το επιτυγχάνει µε δύο διαφορετικούς τρόπους: µε την παρουσίαση µεθόδων παροχής ΠοιΥπ που παρέχουν

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

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

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

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

Ηλεκτροµηχανολογικές Εγκαταστάσεις στα µεγάλα έργα: Συνέργεια µε άλλες ειδικότητες. Θωµάς Δ. Ξένος Καθηγητής ΤΗΜΜΥ

Ηλεκτροµηχανολογικές Εγκαταστάσεις στα µεγάλα έργα: Συνέργεια µε άλλες ειδικότητες. Θωµάς Δ. Ξένος Καθηγητής ΤΗΜΜΥ Ηλεκτροµηχανολογικές Εγκαταστάσεις στα µεγάλα έργα: Συνέργεια µε άλλες ειδικότητες Θωµάς Δ. Ξένος Καθηγητής ΤΗΜΜΥ 1 Συνέργεια - Αειφορία σε έργα µεγάλης κλίµακας 2 Ποσοτικοποίηση αειφορίας - συνέργεια

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές

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

ΣΧΕ ΙΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΑΡΜΟ ΙΟΤΗΤΕΣ. Ορισµός σχεδιαστικών προτύπων Εφαρµογή των 9 GRASP προτύπων

ΣΧΕ ΙΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΑΡΜΟ ΙΟΤΗΤΕΣ. Ορισµός σχεδιαστικών προτύπων Εφαρµογή των 9 GRASP προτύπων ΣΧΕ ΙΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΑΡΜΟ ΙΟΤΗΤΕΣ Ορισµός σχεδιαστικών προτύπων Εφαρµογή των 9 GRASP προτύπων 1 Γενικά Εξαιρετικά σηµαντικά: η απόφαση για το που ανήκουν οι µέθοδοι, και πως αλληλεπιδρούν τα αντικείµενα

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

ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα

ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα ΤµήµαΕφαρµοσµένης Πληροφορικής Πανεπιστήµιο Μακεδονίας Θεσσαλονίκη Ιούνιος 2006 εισαγωγικού µαθήµατος προγραµµατισµού υπολογιστών.

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

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

Κατανεμημένα Συστήματα Ι Συναίνεση χωρίς την παρουσία σφαλμάτων Κατανεμημένα Συστήματα Ι 4η Διάλεξη 27 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου Κατανεμημένα Συστήματα Ι 4η Διάλεξη 1 Συναίνεση χωρίς την παρουσία σφαλμάτων Προηγούμενη

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

ΠΛΗΡΟΦΟΡΙΚΗ Γ ΤΑΞΗΣ ΓΕΛ ΚΛΕΙΩ ΣΓΟΥΡΟΠΟΥΛΟΥ. ΣΥΓΧΡΟΝΑ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ Αντικειμενοστραφής Προγραμματισμός

ΠΛΗΡΟΦΟΡΙΚΗ Γ ΤΑΞΗΣ ΓΕΛ ΚΛΕΙΩ ΣΓΟΥΡΟΠΟΥΛΟΥ. ΣΥΓΧΡΟΝΑ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ Αντικειμενοστραφής Προγραμματισμός ΠΛΗΡΟΦΟΡΙΚΗ Γ ΤΑΞΗΣ ΓΕΛ ΣΥΓΧΡΟΝΑ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ Αντικειμενοστραφής Προγραμματισμός ΚΛΕΙΩ ΣΓΟΥΡΟΠΟΥΛΟΥ ΥΠΠΕΘ 04.07.2019 ΕΠΙΜΟΡΦΩΣΗ ΣΤΟ ΝΕΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΥΛΙΚΟ Αντικειμενοστραφής Προγραμματισμός.

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΕΠΛ 035 - ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΙΑ ΗΛΕΚΤΡΟΛΟΓΟΥΣ ΜΗΧΑΝΙΚΟΥΣ ΚΑΙ ΜΗΧΑΝΙΚΟΥΣ ΥΠΟΛΟΓΙΣΤΩΝ Ακαδηµαϊκό έτος 2017-2018 Υπεύθυνος εργαστηρίου: Γεώργιος

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

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

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

Σημειώσεις στο μάθημα «Στοιχεία Προγραμματισμού σε Γραφικό Περιβάλλον»

Σημειώσεις στο μάθημα «Στοιχεία Προγραμματισμού σε Γραφικό Περιβάλλον» 1. Κύκλος ζωής λογισμικού Ο κύκλος ζωής λογισμικού είναι οι φάσεις (τα στάδια) από τις οποίες διέρχεται μία εφαρμογή λογισμικού, από την σύλληψη της ιδέας, τη διαδικασία κατασκευής / ανάπτυξης, τη λειτουργία

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

a. b. c. d ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

a. b. c. d ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7.7 Πρωτόκολλο Μέχρι τώρα έχουμε αναφέρει, ότι, για να μεταδοθούν τα αυτοδύναμα πακέτα στο φυσικό μέσο, πρέπει αυτά να μετατραπούν σε πακέτα φυσικού δικτύου (π.χ. Ethernet). Όμως, δεν έχει ειπωθεί τίποτε

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

Εξελιγµένες Τεχνικές Σχεδιασµού

Εξελιγµένες Τεχνικές Σχεδιασµού Κεφάλαιο 16 Εξελιγµένες Τεχνικές Σχεδιασµού Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου Σχεδιασµός Βασισµένος σε Γράφους Γράφος σχεδιασµού (1/2) Ο

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

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

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

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

ιαδίκτυα & Ενδοδίκτυα Η/Υ

ιαδίκτυα & Ενδοδίκτυα Η/Υ ιαδίκτυα & Ενδοδίκτυα Η/Υ ΙΑ ΙΚΤΥΑΚΗ ΛΕΙΤΟΥΡΓΙΑ (Kεφ. 16) ΠΡΩΤΟΚΟΛΛΑ ΡΟΜΟΛΟΓΗΣΗΣ Αυτόνοµα Συστήµατα Πρωτόκολλο Συνοριακών Πυλών OSPF ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΟΛΟΚΛΗΡΩΜΕΝΩΝ ΥΠΗΡΕΣΙΩΝ (ISA) Κίνηση ιαδικτύου Προσέγγιση

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

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών ΕΠΛ362: Τεχνολογία Λογισμικού ΙΙ (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Software Engineering, 9/E, Ian Sommerville, 2011) Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών Οι διαφάνειες αυτές

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

Κεφάλαιο 3. Διδακτικοί Στόχοι

Κεφάλαιο 3. Διδακτικοί Στόχοι Κεφάλαιο 3 Σε ένα υπολογιστικό σύστημα η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) εκτελεί τις εντολές που βρίσκονται στην κύρια μνήμη του. Οι εντολές αυτές ανήκουν σε προγράμματα τα οποία, όταν εκτελούνται,

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

Κατανεµηµένα Αντικείµενα 16-1

Κατανεµηµένα Αντικείµενα 16-1 Κατανεµηµένααντικείµενα Αποµακρυσµένα αντικείµενα Αναφορές προς αντικείµενα Εξυπηρετητές αντικειµένων Εκκαθάριση αντικειµένων Μετρητές αναφορών Λίστες αναφορών Αποκοµιδή απορριµµάτων Κατανεµηµένα Αντικείµενα

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

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

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

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

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραµµατισµό ( ιάλεξη 2) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγικές Έννοιες - Ορισµοί Ο κύκλος ανάπτυξης προγράµµατος Παραδείγµατα Πότε χρησιµοποιούµε υπολογιστή?

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

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ Ερωτήσεις 7.3 Πρωτόκολλο TCP 1. Τι είναι το τµήµα (segment) στο πρωτόκολλο TCP; Από ποια µέρη αποτελείται; 2. Για ποιο σκοπό χρησιµοποιείται ο Αριθµός ειράς στην επικεφαλίδα ενός segment TCP; 3. την περίπτωση

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου προβλήματος. Το πλήθος των βημάτων πρέπει να είναι πεπερασμένο. Αλλιώς: Πεπερασμένη

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

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 15 Ιουνίου 2009 1 / 26 Εισαγωγή Η ϑεωρία

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

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

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

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

ΠΡΟΓΡΑΜΜΑ ΚΟΙΝΟΤΙΚΗΣ ΡΑΣΗΣ ΓΙΑ ΤΗΝ ΠΑΡΑΚΟΛΟΥΘΗΣΗ ΤΗΣ ΥΓΕΙΑΣ ΠΡΟΓΡΑΜΜΑ ΕΡΓΑΣΙΑΣ ΓΙΑ ΤΟ (Άρθρο 5.2.β) της απόφασης 1400/97/EΚ)

ΠΡΟΓΡΑΜΜΑ ΚΟΙΝΟΤΙΚΗΣ ΡΑΣΗΣ ΓΙΑ ΤΗΝ ΠΑΡΑΚΟΛΟΥΘΗΣΗ ΤΗΣ ΥΓΕΙΑΣ ΠΡΟΓΡΑΜΜΑ ΕΡΓΑΣΙΑΣ ΓΙΑ ΤΟ (Άρθρο 5.2.β) της απόφασης 1400/97/EΚ) VERSION FINALE ΠΡΟΓΡΑΜΜΑ ΚΟΙΝΟΤΙΚΗΣ ΡΑΣΗΣ ΓΙΑ ΤΗΝ ΠΑΡΑΚΟΛΟΥΘΗΣΗ ΤΗΣ ΥΓΕΙΑΣ ΠΡΟΓΡΑΜΜΑ ΕΡΓΑΣΙΑΣ ΓΙΑ ΤΟ 2000 (Άρθρο 5.2.β) της απόφασης 1400/97/EΚ) 1. Εισαγωγή Οι δραστηριότητες της Ευρωπαϊκής Ένωσης στον

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

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο

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

Νέες τεχνολογίες εισάγονται ή χρησιµοποιούνται

Νέες τεχνολογίες εισάγονται ή χρησιµοποιούνται special report τoυ Γιώργου Φετοκάκη / gfetokakis@boussias.com Jobs scheduling Η χρυσή τοµή της αυτοµατοποίησης Μια λύση job scheduling πρέπει να είναι αρκετά περιεκτική. Πρέπει να υποστηρίζει την ενσωµάτωση

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)

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

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

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ÏÅÖÅ 1 Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 ο ΕΚΦΩΝΗΣΕΙΣ Α. Να γράψετε στην κόλλα σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1 5 και δίπλα τη λέξη

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

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I. Μάθημα 5: To Μοντέλο Αναφοράς O.S.I. 5.1 Γενικά Τα πρώτα δίκτυα χαρακτηρίζονταν από την «κλειστή» αρχιτεκτονική τους με την έννοια ότι αυτή ήταν γνωστή μόνο στην εταιρία που την είχε σχεδιάσει. Με τον

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

Οπτική αντίληψη. Μετά?..

Οπτική αντίληψη. Μετά?.. Οπτική αντίληψη Πρωτογενής ερεθισµός (φυσικό φαινόµενο) Μεταφορά µηνύµατος στον εγκέφαλο (ψυχολογική αντίδραση) Μετατροπή ερεθίσµατος σε έννοια Μετά?.. ΓΙΑ ΝΑ ΚΑΤΑΝΟΗΣΟΥΜΕ ΤΗΝ ΟΡΑΣΗ ΠΡΕΠΕΙ ΝΑ ΑΝΑΛΟΓΙΣΤΟΥΜΕ

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

Γουλή Ευαγγελία. 1. Εισαγωγή. 2. Παρουσίαση και Σχολιασµός των Εργασιών της Συνεδρίας

Γουλή Ευαγγελία. 1. Εισαγωγή. 2. Παρουσίαση και Σχολιασµός των Εργασιών της Συνεδρίας 1. Εισαγωγή Σχολιασµός των εργασιών της 16 ης παράλληλης συνεδρίας µε θέµα «Σχεδίαση Περιβαλλόντων για ιδασκαλία Προγραµµατισµού» που πραγµατοποιήθηκε στο πλαίσιο του 4 ου Πανελλήνιου Συνεδρίου «ιδακτική

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

ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΙΑΤΑΞΗΣ ΤΩΝ ΑΡΙΘΜΩΝ ΚΑΙ ΧΡΗΣΗ ΤΗΣ ΑΠΟΛΥΤΗΣ ΤΙΜΗΣ ΣΤΟΝ ΑΞΟΝΑ ΤΩΝ ΠΡΑΓΜΑΤΙΚΩΝ ΑΡΙΘΜΩΝ ΠΕΡΙΛΗΨΗ. Εισαγωγή

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

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

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

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή. ΑΕσΠΠ-Κεφ6. Εισαγωγή στον προγραμματισμό 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Οι γλώσσες προγραμματισμού αναπτυχθήκαν με σκοπό την επικοινωνία ανθρώπου μηχανής. 2. Αλγόριθμος = Πρόγραμμα + Δομές Δεδομένων 3. Ένα πρόγραμμα

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

Περιεχόµενα. ΜΕΡΟΣ Α: Επίλυση Προβληµάτων... 17

Περιεχόµενα. ΜΕΡΟΣ Α: Επίλυση Προβληµάτων... 17 ΠΡΟΛΟΓΟΣ... I ΠΡΟΛΟΓΟΣ ΤΩΝ ΣΥΓΓΡΑΦΕΩΝ...III ΣΥΝΟΠΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ ΠΕΡΙΕΧΟΜΕΝΩΝ... IX ΠΕΡΙΕΧΟΜΕΝΑ... XI 1 ΕΙΣΑΓΩΓΗ... 1 1.1 ΤΙ ΕΙΝΑΙ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ... 1 1.1.1 Ορισµός της Νοηµοσύνης... 2 1.1.2 Ορισµός

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

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET Κεφάλαιο 4: Τεχνικές Μετάδοσης ΜΕΤΑΓΩΓΗ Τεχνική µεταγωγής ονομάζεται ο τρόπος µε τον οποίο αποκαθίσταται η επικοινωνία ανάµεσα σε δύο κόµβους με σκοπό την

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

Σύνθεση Data Path. ιασύνδεσης. Μονάδες. Αριθµό Μονάδων. Τύπο Μονάδων. Unit Selection Unit Binding. λειτουργιών σε. Μονάδες. Αντιστοίχιση µεταβλητών &

Σύνθεση Data Path. ιασύνδεσης. Μονάδες. Αριθµό Μονάδων. Τύπο Μονάδων. Unit Selection Unit Binding. λειτουργιών σε. Μονάδες. Αντιστοίχιση µεταβλητών & Data Path Allocation Σύνθεση Data Path Το DataPath είναι ένα netlist που αποτελείται από τρεις τύπους µονάδων: (α) Λειτουργικές Μονάδες, (β) Μονάδες Αποθήκευσης και (γ) Μονάδες ιασύνδεσης Αριθµό Μονάδων

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

Ενότητα 1. Εισαγωγή στις βασικές έννοιες των ικτύων ΗΥ

Ενότητα 1. Εισαγωγή στις βασικές έννοιες των ικτύων ΗΥ Ενότητα 1 Εισαγωγή στις βασικές έννοιες των ικτύων ΗΥ Εύρος Ζώνης και Ταχύτητα Μετάδοσης Η ταχύτητα µετάδοσης [εύρος ζώνης (banwidth)] των δεδοµένων αποτελεί ένα δείκτη επίδοσης των δικτύων και συνήθως

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

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού Πρόλογος...21 μέρος A Εισαγωγή στην Τεχνολογία Λογισμικού 1 Εισαγωγή στην Τεχνολογία Λογισμικού 1.1 Το λογισμικό...25 1.1.1 Ο ρόλος και η σημασία του λογισμικού...26 1.1.2 Οικονομική σημασία του λογισμικού...28

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

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Λαμπαδαρίδης Αντώνιος el04148@mail.ntua.gr Διπλωματική εργασία στο Εργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Επιβλέπων: Καθηγητής Τ. Σελλής Περίληψη

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

P-Μiner : ιαχείριση Πυλών Καταλόγων (Portals) µε Υποστήριξη ιαδικασιών Εξόρυξης εδοµένων Χρήσης

P-Μiner : ιαχείριση Πυλών Καταλόγων (Portals) µε Υποστήριξη ιαδικασιών Εξόρυξης εδοµένων Χρήσης P-Μiner : ιαχείριση Πυλών Καταλόγων (Portals) µε Υποστήριξη ιαδικασιών Εξόρυξης εδοµένων Χρήσης ιπλωµατική Εργασία του Θεοδώρου Ι. Γαλάνη ΠΕΡΙΛΗΨΗ Γενικά Με την εξάπλωση του διαδικτύου όλο και περισσότεροι

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

Integrated Project. Ambient Intelligence System of Agents for Knowledgebased and Integrated Services for Mobility Impaired users

Integrated Project. Ambient Intelligence System of Agents for Knowledgebased and Integrated Services for Mobility Impaired users Integrated Project Ambient Intelligence System of Agents for Knowledgebased and Integrated Services for Mobility Impaired users Κλήµης Νταλιάνης Έµπειρος Ερευνητής Εργαστήριο ΨΕΕΒΠ - Ε.Μ.Π. 1 Περίγραµµα

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

Διαγράμματα UML στην Ανάλυση. Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων

Διαγράμματα UML στην Ανάλυση. Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων Διαγράμματα UML στην Ανάλυση Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων περιεχόμενα παρουσίασης Διαγράμματα επικοινωνίας Διαγράμματα ακολουθίας Διαγράμματα

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

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

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

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

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΜΑΘΗΜΑ 2 ΑΝΑΠΑΡΑΣΤΑΣΗ - ΤΕΧΝΙΚΕΣ ΤΝ (1)

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΜΑΘΗΜΑ 2 ΑΝΑΠΑΡΑΣΤΑΣΗ - ΤΕΧΝΙΚΕΣ ΤΝ (1) ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΜΑΘΗΜΑ 2 ΑΝΑΠΑΡΑΣΤΑΣΗ - ΤΕΧΝΙΚΕΣ ΤΝ (1) 2. ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΟΒΛΗΜΑΤΟΣ H υλοποίηση ενός προβλήµατος σε σύστηµα Η/Υ που επιδεικνύει ΤΝ 1 απαιτεί: Την κατάλληλη περιγραφή του προβλήµατος

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

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

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

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

Περιεχόμενα. Visio / White paper 1

Περιεχόμενα. Visio / White paper 1 Περιεχόμενα Τι είναι η πλατφόρμα Visio Αρχιτεκτονική Δουλεύοντας με το Περιεχόμενο Πηγές Περιεχόμενου Διαγραφή Περιεχομένου Βασικές Λειτουργίες Προφίλ Χρήστη Διαχείριση Χρηστών Σύστημα Διαφημίσεων Αποθήκευση

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

Πλαίσιο Εργασιών. Στρατηγικές Ευκαιρίες

Πλαίσιο Εργασιών. Στρατηγικές Ευκαιρίες 1 Πλαίσιο Εργασιών Στρατηγικές Κατευθύνσεις του Οργανισµού 2 3 Στρατηγικές Κατευθύνσεις των ΠΣ Κρίσιµοι Παράγοντες Επιτυχίας του Οργανισµού Κρίσιµοι Παράγοντες Επιτυχίας των ΠΣ 4 Βραχυχρόνια Στρατηγικές

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

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα Περιεχόμενα Πρόλογος... 9 Κεφάλαιο 1: Δομή και λειτουργία του υπολογιστή... 11 Κεφάλαιο 2: Χρήση Λ.Σ. DOS και Windows... 19 Κεφάλαιο 3: Δίκτυα Υπολογιστών και Επικοινωνίας... 27 Κεφάλαιο 4: Unix... 37

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

Πρωτόκολλα Ελέγχου προσπέλασης μέσου

Πρωτόκολλα Ελέγχου προσπέλασης μέσου Πρωτόκολλα Ελέγχου προσπέλασης μέσου Πρόβλημα: ταυτόχρονη μετάδοση δύο ή περισσότερων κόμβων στο ίδιο κανάλι (μήκος κύματος). Ένα τέτοιο γεγονός ονομάζεται σύγκρουση. Ένα πρωτόκολλο MAC έχει συνήθως ως

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

Οργανωτική δομή. 8ο Κεφάλαιο

Οργανωτική δομή. 8ο Κεφάλαιο Οργανωτική δομή 8ο Κεφάλαιο Μαθησιακοίστόχοι(1) Μετάτημελέτητουκεφαλαίου, θαείστεσεθέσηνα: 1. Εξηγήσετε πώς η διαφοροποίηση και η ενοποίηση επηρεάζουν τη δομή ενός οργανισμού. 2. Συνοψίσετε πώς λειτουργεί

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

ιαδίκτυα & Ενδοδίκτυα Η/Υ

ιαδίκτυα & Ενδοδίκτυα Η/Υ ιαδίκτυα & Ενδοδίκτυα Η/Υ ΑΤΜ ΚΑΙ FRAME RELAY (Kεφ. 11) ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΠΡΩΤΟΚΟΛΛΟΥ ATM ΛΟΓΙΚΕΣ ΖΕΥΞΕΙΣ ΑΤΜ ΚΕΛΙΑ ΑΤΜ ΜΕΤΑ ΟΣΗ ΚΕΛΙΩΝ ΑΤΜ Βιβλίο Μαθήµατος: Επικοινωνίες Υπολογιστών & εδοµένων, William Stallings,

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