Ανάπτυξη συστήματος ελέγχου εγκυρότητας προβλημάτων Σχεδιασμού μέσω Υπηρεσιών Ιστού και Οπτικοποίησης Πληροφορίας

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

Download "Ανάπτυξη συστήματος ελέγχου εγκυρότητας προβλημάτων Σχεδιασμού μέσω Υπηρεσιών Ιστού και Οπτικοποίησης Πληροφορίας"

Transcript

1 Α Π Θ Δ Ε Μ Π Ανάπτυξη συστήματος ελέγχου εγκυρότητας προβλημάτων Σχεδιασμού μέσω Υπηρεσιών Ιστού και Οπτικοποίησης Πληροφορίας Συγγραφέας: Δημήτριος Γιουρούκης Επιβλέπων: Δημήτριος Βράκας Επίκουρος Καθηγητής Η παρούσα εργασία εκπονήθηκε στα πλαίσια του Μεταπτυχιακού Προγράμματος Σπουδών στο Εργαστήριο Λογικού Προγραμματισμού και Ευφυών Συστημάτων, LPIS Group, Τμήμα Πληροφορικής Α.Π.Θ. Θεσσαλονίκη, Σεπτέμβριος 2015

2

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

4 English abstract The process of writing and verifying planning problems is a process that can be quite complex and demands a lot of resources in order to provide or verify a satisfying solution. For that reason, specialized software have been create with the purpose of easing the whole process, either for veterans in the field or amateurs alike. The variety of the aforementioned tools, the complexity of the problems at hand and the differences observed between the suggested solutions make clear that there is need for further research concerning the ease of the process of solving planning problems. This thesis focuses on the creation of a new system that verifies proposed solutions for planning problems through the development of specialized web services as well as through the extension of existing means of visualizing planning problems in order to hetter utilize the newly created functions. The new services try to validate any solution that is offered by an automated planner that got input from a user. After finishing their task, they provide various informational pieces concerning the solved problem and its validity. Moreover, these services are tightly integrated into VLEPpO, a platform for designing and validating planning problems. iii

5

6 Ευχαριστίες Για την ολοκλήρωση και την εκπόνηση της παρούσας εργασίας συνέβαλλαν αρκετά άτομα τα οποία θα ήθελα να τους μεταφέρω τις ευχαριστίες μου. Αρχικά τον κ. Δημήτριο Βράκα, Λέκτορα του τμήματος Πληροφορικής του Α.Π.Θ., όχι μόνο για την ανάθεση της εργασίας αλλά την καθοδήγηση, τις γνώσεις που μου προσέφερε και το σημαντικότερο την εμπιστοσύνη που έδειξε στο προσωπό μου. Στη συνέχεια θα ήθελα να ευχαριστήσω τον κ. Ιωάννη Βλαχάβα, διευθυντή του Εργαστηρίου Λογικού Προγραμματισμού και Ευφυών Συστημάτων (LPIS Group), για την παροχή πόρων του εργαστηρίου με σκοπό τη διευκόλυνση της εκπόνησης της εργασίας. Επίσης, θα ήθελα να ευχαριστήσω τον μεταπτυχιακό φοιτητή του τμήματος και καλό φίλο Μωυσή Συμεωνίδη για την άριστη συνεργασία και εμπειρία που είχαμε καθ όλη τη διάρκεια της φοίτησής μας στο πρόγραμμα αλλά και στη παρούσα εργασία. Τέλος, θα ήθελα να ευχαριστήσω τον άμεσο οικογενειακό μου κύκλο για τη ψυχολογική και υλική στήριξη που μου προσέφεραν και συνεχίζουν να μου προσφέρουν. v

7

8 Περιεχόμενα Περίληψη Ευχαριστίες Περιεχόμενα Λίστα εικόνων Λίστα πινάκων ii v vii ix x 1 Εισαγωγή Περιεχόμενα εργασίας Ανάλυση κεφαλαίων Έννοιες και σχετικές εργασίες Σχεδιασμός Ενεργειών Βασικές Κατηγορίες Μεθόδων Επίλυσης Προβλημάτων Σχεδιασμού Κλασικές μέθοδοι Σχεδιασμός στο χώρο των καταστάσεων Σχεδιασμός στο χώρο του πλάνου Ιεραρχικός σχεδιασμός Νεοκλασικές μέθοδοι Γράφοι σχεδιασμού Ικανοποίηση προτασιακών τύπων Ικανοποίηση περιορισμών Έλεγχος μοντέλων Αυτοματοποιημένη κατασκευή ευριστικών συναρτήσεων Tο μοντέλο STRIPS και η γλώσσα PDDL Μοντέλο STRIPS Γλώσσα PDDL Συστήματα σχεδιασμού με χρήση γράφων Γράφοι σχεδιασμού Σχέσεις αποκλεισμού και Graphplan Τύποι σχέσεων αποκλεισμού Ανάλυση αλγορίθμου Graphplan Υπηρεσίες Ιστού vii

9 Περιεχόμενα viii Ορισμός των υπηρεσιών ιστού Τύποι υπηρεσιών ιστού Υπηρεσίες βασισμένες σε SOAP Υπηρεσίες τύπου REST Αρχιτεκτονική λογισμικού βασισμένη σε υπηρεσίες Οπτικοποίηση Σχετικές εργασίες Εργαλεία και υλοποίηση Γλώσσες υλοποίησης Μηνύματα και μορφή περιεχομένου Αναπαράσταση προβλήματος και πεδίου Αλγόριθμος εύρεσης εγκυρότητας Υλοποίηση υπηρεσίας Οι υπηρεσίες ιστού Λειτουργίες υπηρεσιών ιστού Δυναμικά/στατικά γεγονότα Ορισμός δυναμικότητας Εύρεση δυναμικότητας γεγονότων Επιλυσιμότητα στόχων Περιπτώσεις μη-επιλυσιμότητας Στόχοι χωρίς ενέργεια Αμοιβαίως αποκλειόμενοι στόχοι Ανυπαρξία ενεργειών στο level off Οπτικοποίηση Ανάλυση υπάρχουσας υλοποίησης Οντολογία Τελεστές Πρόβλημα Μενού και πρόσθετη λειτουργικότητα Ανάλυση επέκτασης Eύρεση των δυναμικών/στατικών γεγονότων Eύρεση επιλυσιμότητας Απομακρυσμένη επίλυση Περιγραφή διαδικασίας αποσφαλμάτωσης Επίλογος Ανασκόπηση περιεχομένου Συμπεράσματα Μελλοντική εργασία Βιβλιογραφία 58

10 Λίστα εικόνων 2.1 Παράδειγμα αναζήτησης στο χώρο των καταστάσεων Παράδειγμα αναζήτησης με ιεραρχικό σχεδιασμό Στιγμιότυπο ενός γράφου σχεδιασμού Πίνακας αληθείας προβλήματος ικανοποίησης περιορισμών Παράδειγμα αλυσίδας Μαρκόβ Δύο καταστάσεις του κόσμου του κύβων Σύγκριση WSDL 1.1 με την έκδοση H δομή ενός μηνύματος SOAP Τα βασικά στοιχεία της αρχιτεκτονικής SOA Η αρχική κατάσταση του VLEPpO Οπτικοποίηση βασικών εννοιών και στοιχείων Παράδειγμα σχεδιασμού οντολογίας Οπτικοποίηση τελεστών Οπτικοποίηση προβλήματος Η νέα επιλογή μενού με τις υποεπιλογές της Παράδειγμα λίστων δυναμικών/στατικών γεγονότων Eύρεση μη επιτεύξιμων στόχων Παράδειγμα ανατροφοδότησης Εύρεση αμοιβαίου αποκλεισμού ix

11 Λίστα πινάκων 2.1 Πεδίο blocks world σε PDDL Πρόβλημα blocks world σε PDDL Πλάνο λύσης του blocks world Παράδειγμα endpoint με restful αναπαράσταση x

12 Στην οικογένειά μου. xi

13 1 Εισαγωγή Η συγκεκριμένη εργασία επικεντρώνεται στην ανάπτυξη ενός συστήματος για τον ευκολότερο έλεγχο της εγκυρότητας των προβλημάτων σχεδιασμού με την χρήση υπηρεσιών ιστού αλλά και στην επέκταση ήδη υπάρχοντος συστήματος διάδρασης/οπτικοποίησης προβλημάτων σχεδιασμού το οποίο πλέον θα μπορεί να αξιοποιεί τις υπηρεσίες αυτές. 1.1 Περιεχόμενα εργασίας Στην αρχή της εργασίας γίνεται εκτενής αναφορά στο σχεδιασμό ενεργειών, τι πραγματεύεται καθώς και ιστορική αναδρομή στους τρόπους αντιμετώπισης τέτοιων προβλημάτων. Στη συνέχεια αναλύονται οι υπηρεσίες λογισμικού (ή ιστού), τα πλεονεκτήματα που προσφέρουν σε σχέση με διαφορετικές αρχιτεκτονικές αρχές δόμησης λογισμικού και στο γιατί και πως χρησιμοποιούνται στα πλαίσια αυτής της εργασίας. Συνεχίζοντας, αναλύονται τα εργαλεία που χρησιμοποιήθηκαν για την υλοποίηση της εργασίας. Οι βιβλιοθήκες λογισμικού που χρησιμοποιήθηκαν, τα πρωτόκολλα επικοινωνίας και ανταλλαγής πληροφοριών που επιλέχθηκαν αλλά και το περιβάλλον ανάπτυξης στο οποίο αναπτύχθηκε η εργασία αναφέρονται αναλυτικότερα στο συγκεκριμένο κεφάλαιο. Τελειώνοντας, γίνεται μια σύντομη αναφορά στην λογική που χρησιμοποιείται απο τις αναπτυσσόμενες υπηρεσίες καθώς και εκτενής αναφορά στη διασύνδεση των υπηρεσιών με το εργαλείο Vleppo. Στο ίδιο κεφάλαιο παρουσιάζονται και παραδείγματα χρήσης του εργαλείου και των νέων λειτουργιών μαζί με συμπεράσματα απο την αξιολόγηση των φοιτητών. 1

14 Κεφάλαιο 1. Εισαγωγή Ανάλυση κεφαλαίων Αναλυτικά, η εργασία δομείται σε κεφάλαια ως εξής: Κεφάλαιο 2: ανάλυση του θεωρητικού υπόβαθρου στο οποίο βασίζεται η εργασία, παρουσιάζεται πληροφορία σχετικά με τον Σχεδιασμό Ενεργειών, την αρχιτεκτονική Υπηρεσιών Ιστού, η έννοια της Οπτικοποίησης και γίνεται σύντομη αναφορά σε σχετική δουλειά. Κεφάλαιο 3: αναφορά στα εργαλεία λογισμικού που χρησιμοποιήθηκαν για την υλοποίηση της εργασίας αλλά και τους λόγους που αυτά χρησιμοποιήθηκαν. Κεφάλαιο 4: σύντομη παρουσίαση των υπηρεσιών ιστού που υλοποιήθηκαν καθώς και η λογική που αυτές ακολουθούν. Κεφάλαιο 5: ανάλυση της διασύνδεσης του εργαλείου επίλυσης προβλημάτων σχεδιασμού Vleppo με τις νέες υπηρεσίες, ανάλυση της νέα λειτουργικότητας που απαιτήθηκε μικρή παρουσίαση της νέας λειτουργικότητας σε σύγκριση με παλαιότερη έκδοση του λογισμικού. Κεφάλαιο 6: παρουσιάζονται τα τελικά συμπεράσματα που επέφερε η εργασία καθώς και μελλοντικές επεκτάσεις της. Βιβλιογραφία: βιβλιογραφία που χρησιμοποιήθηκε.

15

16 2 Έννοιες και σχετικές εργασίες Στο κεφάλαιο αυτό γίνεται μια ανάλυση του θεωρητικού υπόβαθρου στο οποίο βασίζεται η εργασία, παρουσιάζεται πληροφορία σχετικά με τον Σχεδιασμό Ενεργειών, την αρχιτεκτονική Υπηρεσιών Ιστού, η έννοια της Οπτικοποίησης, γίνεται σύντομη αναφορά σε σχετικές εργασίες και τονίζονται οι τυχών διαφορές με την υπάρχουσα εργασία και το σκοπό της. 2.1 Σχεδιασμός Ενεργειών Ο Σχεδιασμός Ενεργειών (Planning), στα πλαίσια του πεδίου της Τεχνητής Νοημοσύνης, αφορά την διαδικασία που ακολουθείται απο υπαρκτούς πράκτορες (Agents) με σκοπό την επίλυση ενός προβλήματος (Problem) που θα επιφέρει την επίτευξη ενός στόχου (Goal). Η διαδικασία αυτή περιλαμβάνει την εύρεση επιτρεπτών ενεργειών (Actions) και την εκτέλεσή τους με τέτοιο τρόπο και ακολουθία (Plan) που αν εκτελεστούν επιτυχώς απο τους εμπλεκόμενους πράκτορες, θα επιφέρουν την επίτευξη του επιθυμητού στόχου. Το πρόβλημα που επίλυεται με την παραπάνω διαδικασία ορίζεται ως: Μία αρχική κατάσταση I Ένα σύνολο στόχων G Ένα σύνολο επιτρεπτών ενεργειών O Με την έυρεση ενός πλάνου, οι εμπλεκόμενοι πράκτορες ακολουθούν τη διαδικασία που περιγράφεται απο αυτό και ξεκινώντας απο την αρχική κατάσταση I θα φτάσουν σε μια τελική κατάσταση που περιέχει ένα υποσύνολο των στόχων που βρίσκονται στο σύνολο G χρησιμοποιώντας ένα υποσύνολο απο το σύνολο επιτρεπτών ενεργειών O. 4

17 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 5 Με την χρήση των υπολογιστικών συστημάτων, δημιουργήθηκαν αυτοματοποιημένοι επιλυτές προβλημάτων σχεδιασμού (Planners ή σχεδιαστές). Δημοφιλείς σχεδιαστές με μεγάλη απήχηση στην επιστημονική κοινότητα του Σχεδιασμού Ενεργειών είναι οι STRIPS [1], LPG-td [2], Fast Downward [3] και άλλοι. Σκοπός της δημιουργίας των σχεδιαστών είναι η αυτοματοποιημένη επίλυση προβλημάτων σχεδιασμού ενεργειών, όπου οι planners σχεδιαστές ως ικανοί πράκτορες για να επιλύσουν προβλήματα σχεδιασμού ενεργειών. Στα πρώιμα στάδια του επιστημονικού πεδίο του Σχεδιασμού Ενεργειών, για να μπορέσουν να επιτύχουν το σκοπό τους, οι σχεδιαστές υλοποιούσαν αρκετά συγκεκριμένες αναπαραστάσεις των προβλημάτων που αντιμετώπιζαν. Το ίδιο το πρόβλημα ή η οικογένεια προβλημάτων όριζε το τρόπο αναπαράστασής τους και αντιμετώπισής τους. Η ποικιλία των διαφορετικών προβλημάτων που ο Σχεδιασμός Ενεργειών μπορεί να αντιμετωπίσεο είναι τέτοια που οδήγησε στην ανάγκη ύπαρξης και δημιουργίας μεθολογίας περιγραφής προβλημάτων που να είναι αρκετά αφαιρετική ώστε να μπορούν με τον ίδιο τρόπο να αντιμετωπίζονται προβλήματα διαφορετικής φύσης (domain-independent specification). Οι σχεδιαστές που χρησιμοποιούν αναπαραστάσεις προβλημάτων που δεν εξαρτώνται απο το ίδιο το πρόβλημα είναι γνωστοί ως domain-independent planners. Ένας τέτοιος σχεδιαστής είναι και ο LPG-td. Για να κατανοήσουν το πρόβλημα δέχονται ως είσοδο μια αναπαράσταση στιγμιοτύπου της οικογένειας προβλημάτων (Problem) και του πεδίου ή οικογένεια προβλημάτων προβλημάτων ή αφαιρετικό πρόβλημα (Domain) σε μία τυποποιημένη γλώσσα περιγραφής προβλημάτων Βασικές Κατηγορίες Μεθόδων Επίλυσης Προβλημάτων Σχεδιασμού Η επίλυση προβλημάτων σχεδιασμού ενεργειών καθώς και οι αλγόριθμοι και οι μέθοδοι που χρησιμοποιούνται απο τους σχεδιαστές αποτελούν ένα σημαντικό πεδίο έρευνας που καλύπτεται απο το ευρύτερο πεδίο μελέτης της Τεχνητής Νοημοσύνης. Το πεδίο αυτό μελετάται απο τα τέλη της δεκαετίας του 1960 μέχρι και σήμερα [4]. Στη χρονική έκταση που καλύπτει το πεδίο δημιουργήθηκαν πολλές διαφορετικές μέθοδοι επίλυσης, κάποιες άλλαξαν με σκοπό να βελτιωθούν ενώ εναλλακτικές μέθοδοι εμφανίστηκαν για να αντικαταστήσουν παλαιότερες, αντιμετωπίζοντας το εκάστωτε πρόβλημα με διαφορετικό σκεπτικό. Δεδομένου του προαναφερθέντος χρονικού διαστήματος, οι περισσότερες κατηγοριοποιήσεις των μεθόδων επίλυσης καταλήγουν στον διαχωρισμό των μεθόδων σε

18 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 6 Ε 2.1: Παράδειγμα αναζήτησης στο χώρο των καταστάσεων. κλασικές και νεοκλασικές με το κυριότερο κριτήριο να αποτελεί το χρονικό διάστημα στο οποίο συλλήφθηκε η μέθοδος επίλυσης. Οι μέθοδοι που αναφέρονται στη βιβλιογραφία πριν απο τη δεκαετία του 1990 ανήκουν στις κλασικές προσεγγίσεις ενώ οι μετέπειτα της δεκαετίας στις νεοκλασικές προσεγγίσεις. Προφανώς και κάποιες μέθοδοι επηρέασαν περισσότερη ή λιγότερο την συνολική κατεύθυνση του ερευνητικού πεδίου ενώ υπάρχουν και υποκατηγορίες εντός των δύο αρχικών κατηγοριών. Οι υποκατηγορίες αυτές δεν έχουν να κάνουν με τη χρονική κατάταξη των μεθόδων αλλα με την ομοιότητα των τρόπων επίλυσης Κλασικές μέθοδοι Όσων αφορά τις κλασικές μεθόδους, αυτές περιλαμβάνουν το σχεδιασμό στο χώρο των καταστάσεων (State-space planning), σχεδιασμό στο χώρο των πλάνων (Planspace planning) και τέλος τον ιεραρχικό σχεδιασμό (Hierarchical planning). Στη συνέχεια θα αναλύσουμε αυτές τις κατηγορίες Σχεδιασμός στο χώρο των καταστάσεων Ο σχεδιασμός στο χώρο των καταστάσεων αποτελεί την παλαιότερη απο τις κλασικές μεθόδους. Το βασικό σκεπτικό της μεθόδου περιελάμβανε τη χρήση κλασικών αλγορίθμων αναζήτησης που ήτανε ήδη γνωστοί και δημοφιλείς στους ερευνητές

19 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 7 του πεδίου της Τεχνητής Νοημοσύνης με σκοπό το μετασχηματισμό του προβλήματος συνεχώς και με τέτοιο τρόπο που θα επιφέρει μια λύση ή τελική κατάσταση. Το σύνολο των διαφορετικών τελικών καταστάσεων που μπορεί να προκύψουν απο την αρχική κατάσταση του προβλήματος αποτελεί το χώρο αναζήτησης των αλγορίθμων. Ακόμα και στη συγκεκριμένη μέθοδο, υπάρχουν διαφορετικές προσεγγίσεις στην επίλυση του προβλήματος. Οι δύο υποκατηγορίες είναι οι: αναζήτηση με ορθή φορά αναζήτησης (Forward state-space search), η αναζήτηση ξεκινά απο την αρχική κατάσταση μέχρι να φτάσουμε σε μια επιθυμητή κατάσταση αναζήτηση με ανάστροφη φορά αναζήτησης (Backwards state-space search), η αναζήτηση ξεκινά απο την τελική κατάσταση και προσπαθεί να βρεί τις ενέργειες που την επέφεραν εώς να φτάσει σε μια κατάσταση παρόμοια με την αρχική Οι μέθοδοι ανάστροφης αναζήτησης ήτανε και οι πιο δημοφιλείς [5]. Για να μειωθεί ο χώρος αναζήτησης οι παραπάνω μέθοδοι συνδίαζαν τον αλγόριθμο αναζήτησης με ευριστικές συναρτήσεις. Ένα παράδειγμα φαίνεται στην εικόνα 2.1, όπου το πρόβλημα προς επίλυση είναι η μεταφορά καφέ απο ένα μαγαζί σε ένα επιστημονικό εργαστήριο με τη χρήση ενός ρομπότ. Μια απο τις πιο γνωστές υλοποιήσεις ανάστροφης αναζήτησης, ο STRIPS, θα συζητηθεί εκτενέστερα σε επόμενο κεφάλαιο καθώς αποτελεί μια πολύ δημοφιλή μέθοδο που αποτέλεσε την βάση για την υλοποίηση αρκετών άλλων Σχεδιασμός στο χώρο του πλάνου Ο σχεδιασμός στο χώρο του πλάνου βασίζεται στον σχεδιασμό στο χώρο των καταστάσεων καθώς πάλι χρησιμοποιούνται αντίστοιχοι αλγόριθμοι αναζήτησης όπως και στο σχεδιασμό στο χώρο των καταστάσεων. Η διαφορά τους όμως βρίσκεται στο οτι ο χώρος αναζήτησης πάνω στον οποίο χρησιμοποιούνται αυτοί οι αλγόριθμοι αποτελείται αυτή τη φορά απο πλάνα. Συγκεκριμένα, η αναζήτηση ξεκινά απο ένα πλάνο, το οποίο ονομάζεται αρχικό πλανο, το οποίο μετασχήματίζεται με τέτοιο τρόπο ώστε να φτάσει κάποτε να είναι ορθό και εφαρμόσιμο στην αρχική κατάσταση. Οι ιδιότητες δηλαδή που ζητούνται είναι η ορθότητα (Validity) και η εφαρμοσιμότητα (Applicability) ενός πλάνου. Στα θετικά της συγκεκριμένης προσέγγισης συγκαταλέγεται το οτι μειώνεται σημαντικά ο χώρος αναζήτησης ενώ η δημιουργία μερικώς-διατεταγμένων πλάνων (Partial order) όσο εκτελούνται οι αλγόριθμοι αναζήτησης βοηθά στο να παραλληλοποιηθεί

20 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 8 Ε 2.2: Παράδειγμα αναζήτησης με ιεραρχικό σχεδιασμό. η διαδικάσια εκτέλεσης ενεργειών. Άξια αναφοράς είναι και η τεχνική της ελάχιστης δέσμευσης (Least commitment) την οποία υιοθετούν οι μέθοδοι της κατηγορίας. Μέσω της τεχνικής της ελάχιστης δέσμευσης οι ενέργειες που πρόκειται να προστεθούν στο πλάνο που δημιουργεί ο αλγόριθμος αναζήτησης θα τοποθετηθούν σε αλληλουχία όσο πιο αργά γίνεται, κάτι το οποίο κάνει την όλη τεχνική πιο ευέλικτη. Σημαντικότεροι σχεδιαστές στο συγκεκριμένο υποπεδίο είναι ο SNLP [6] και ο UCPOP [7] Ιεραρχικός σχεδιασμός Οι σχεδιαστές που ακολουθούν τον ιεραρχικό σχεδιασμό βασίζονται και στις δύο προηγούμενες μεθόδους. Στον ιεραρχικό σχεδιασμό ο χρήστης πρέπει να δηλώσει τα διάφορα επίπεδα αφαιρετικότητας του προβλήματος. Για κάθε επίπεδο, ο σχεδιαστής το πρόβλημα όπως μπορεί να περιγραφεί σε αυτό, που αποτελεί μια πιο γενική περιγραφή των ενεργειών άρα και του προβλήματος, και στη συνέχεια προστίθενται περισσότερες ενέργειες απο επίπεδα χαμηλότερων επιπέδων. Με το πέρας της διαδικασίας θα έχει δημιουργηθεί ένα πλάνο που είναι εφαρμόσιμο και περιέχει τις απαραίτητες ενέργειες για να οδηγηθεί το πρόβλημα στη τελική του κατάσταση. Ένα παράδειγμα λύσης φαίνεται στην εικόνα 2.2. Η συγκεκριμένη μέθοδος απαιτεί καλή περιγραφή του προβλήματος απο τον χρήστη κάτι που σημαίνει οτι ο ίδιος ο χρήστης πρέπει να είναι εξοικιωμένος με τη διαδικασία της ίδιας της μεθόδου αλλά και να διαθέτει μια σχετική εμπειρία στο να την εφαρμόζει έτσι ώστε να είναι ικανός να περιγράψει αποδοτικά το πρόβλημα.

21 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 9 Move(A,B) A B A B A B Move(B,A) Ε 2.3: Στιγμιότυπο ενός γράφου σχεδιασμού. Για την επίλυση του κάθε επιπέδου χρησιμοποιείται κάποια παραλλαγή των δύο προηγούμενων μεθόδων του υποπεδίου με τις γνωστότερες να είναι οι ABSTRIPS [8] και ο ABTWEAK [9] Νεοκλασικές μέθοδοι Στις νεοκλασικές μεθόδους περιλαμβάνονται οι μέθοδοι που χρησιμοποιούν γράφους σχεδιασμού (Planning graphs), η ικανοποίηση προτασιακών τύπων (Propositional satisfiability), η ικανοποίηση περιορισμών (Constraint satisfiability), ο έλεγχος μοντέλων (Model checking) και η αυτοματοποιημένη κατασκευή ευριστικών συναρτήσεων (Automated heuristic construction). Οι κλασικές μέθοδοι που αναπτύχθηκαν προηγουμένως αποτέλεσαν το επίκεντρο της έρευνας του τομέα αλλά και έθεσαν τις βάσεις για νέες μεθόδους, με περιπλοκότερα κριτήρια και στόχους. Οι περισσότερες απο τις νεοκλασικές μεθόδους αποτελούν μια νέα ματιά στο χώρο της επίλυσης προβλημάτων σχεδιασμού. Ακολουθεί η σύντομη ανάλυσή τους.

22 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες Γράφοι σχεδιασμού Η μέθοδος αυτή βασίζεται στη χρήση γράφων για να αναπαραστήσει τις καταστάσεις του χώρου αναζήτησης με σκοπό να χρησιμοποιηθούν τροποποιημένοι αλγόριθμοι αναζήτησης και διάσχισης γράφων. Ο γράφος που δημιουργείται χρησιμοποιείται απο τον σχεδιαστή στη συνέχεια για να μπορέσει να λύσει το πρόβλημα. Οι αλγόριθμοι αυτοί δίνουν μια ορθή λύση σε σχετικά μικρό χρονικό διάστημα ενώ είναι ικανοί να παράγουν γραμμικά αλλά και μη-γραμμικά πλάνα. Κύρια μέθοδος της συγκεκριμένης οικογένειας αποτελεί ο Graphplan [10]. Ο Graphplan αποτέλεσε ένα σημαντικό επίτευγμα στο συγκεκριμένο υποχώρο και για αυτό αποτελεί την βάση άλλων νεώτερων μεθόδων σχεδιαστών που χρησιμοποιούν γράφους σχεδιασμού όπως οι IPP [11], STAN [12], HybridStan [13] κ.α. Καθώς ο Graphplan αποτελεί και την βάση της παρούσας εργασίας, θα εξεταστεί σε μεγαλύτερη λεπτομέρεια στη συνέχεια, στο υποκεφάλαιο Ικανοποίηση προτασιακών τύπων Οι προτασιακοί τύποι αποτελούν ένα μέρος της άλγεβρας Boole, δηλαδή πρόκειται για σύνολα απο λογικές προτάσεις. Στις προτάσεις αυτές γίνεται απόδοση των τιμών True ή False με τέτοιο τρόπο ώστε το τελικό αποτέλεσμα του δωθέντος τύπου να αληθεύει (δηλαδή να επιστρέφει True ως τελική τιμή) εφόσων και αν αυτό είναι δυνατόν. Με αυτό το τρόπο ουσιαστικά εξετάζεται το αν όλες οι λογικές προτάσεις του τύπου ειναι δυνατόν να ικανοποιηθούν, λαμβάνοντας κάποια δυνατή τιμή. Δεδομένου των παραπάνω, δημιουργήθηκαν σχεδιαστές που σκοπό έχουν τη μετατροπή του δωθέντος προβλήματος σε πρόβλημα ικανοποίησης προτασιακών τύπων. Στη συνέχεια απλά ελέγχουν το αν η αναπαράσταση του προβλήματος είναι επιλύσιμη. Γνωστοί σχεδιαστές που υιοθετούν την συγκεκριμένη λογική είναι οι SATPLAN [14] και BLACKBOX [15] Ικανοποίηση περιορισμών Αντίστοιχα με τις μεθόδους ικανοποίησης προτασιακών τύπων, αναπτύχθηκαν και μέθοδοι όπου το πρόβλημα μετασχηματίζεται σε πρόβλημα ικανοποίησης περιορισμών. Ένα πρόβλημα περιορισμών είναι ένα πρόβλημα το οποίο αποτελείται απο ένα σύνολο μεταβλητών, ένα σύνολο δυνατών τιμών αυτών των μεταβλητών και ένα σύνολο σχέσεων αυτών μεταξύ των μεταβλητών. Λύση επιδίδεται με την απόδοση τιμών στις μεταβλητές με τέτοιο τρόπο ώστε να ικανοποιούνται οι περιορισμοί.

23 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 11 Ε 2.4: Πίνακας αληθείας προβλήματος ικανοποίησης περιορισμών. Σημαντικότερο κομμάτι της όλης διαδικασίας είναι η μέθοδος μετασχηματισμού του αρχικού προβλήματος σε ένα πρόβλημα ικανοποίησης περιορισμών με χρήση της περιγραφής του αρχικού προβλήματος αλλά και η μεταφορά της λύσης του προβλήματος ικανοποίησης σε μορφή πλάνου. Για την επίλυση του προβλήματος περιορισμών, χρησιμοποιούνται γνωστοί αλγόριθμοι και τεχνικές. Μέθοδοι άξιες αναφοράς είναι οι CTP [16], HSTS [17] και IxTeT [18]. Ένα παράδειγμα ενός στιγμιοτύπου ενός πίνακα αληθείας φαίνεται στο Έλεγχος μοντέλων Οι περισσότερες μέθοδοι που έχουν εξεταστεί στο παρών κεφάλαιο προϋποθέτουν είτε τη πρότερη γνώση όλου του δυνατού παρατηρήσιμου κόσμου του προβλήματος, είτε τη γνώση όλων των ενεργειών που μπορούν να εκτελεστούν ή τέλος την σταθερότητα του προβλήματος (δηλαδή τη μη-μεταβλητότητά του απο άλλους, τρίτους, παράγοντες). Στη πραγματικότητα, πολλά προβλήματα πρέπει να λυθούν χωρίς κάποιες απο τις προηγούμενες προϋποθέσεις. Για τον προαναφερθέντα λόγο γνώρισαν άνθηση οι δύο παρακάτω τεχνικές, ο μετασχηματισμός σε προβλήματα μοντέλων ελέγχου και αναπαραστάσεις διαδικασιών λήψης απόφασης Μαρκόβ. Με το τρόπο αυτό προβλήματα σχεδιασμού μπορούν να αντιμετωπιστούν ως προβλήματα τα οποία πλέον περιέχουν την έννοια της αβεβαιότητας (Uncertainty). Οι διαδικασίες επίλυσης τέτοιων προβλημάτων μπορούν να διαχειριστούν την αβεβαιότητα ικανοποιητικά. H βιβλιογραφία των [19], [20] και [21] επιδυκνείει την συγκεκριμένη στροφή του ερευνητικού χώρου προς τη χρήση των συγκεκριμένων μεθοδολογιών. Η εικόνα 2.5 δείχνει μια αλυσίδα Μαρκόβ που περιγράφει την εναλλαγή καταστάσεων σε έναν χώρο που περιγράφει ένα υποθετικό χρηματιστήριο με τρείς διαφορετικές αγορές.

24 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 12 Ε 2.5: Παράδειγμα αλυσίδας Μαρκόβ Αυτοματοποιημένη κατασκευή ευριστικών συναρτήσεων Βασιζόμενη στην κλασική μέθοδο της αναζήτησης στο χώρο των καταστάσεων, η συγκεκριμένη τεχνική έχει ως σκοπό την επιτάχυνση της διαδικασίας με την εισαγωγή ευριστικών συναρτήσεων που αντλούν γνώση απο το πρόβλημα προς εξέταση. Ο πιο γνωστός σχεδιαστής που εφάρμοσε τη συγκεκριμένη μέθοδο είναι ο UNPOP [22]. Για να δημιουργήσει μια ευριστική μέθοδο που θα ήτανε χρήσιμη στη διαδικασία της αναζήτησης, χρησιμοποίηση τη τεχνική ανάλυσης των μέσων και των σκοπών. Η συγκεκριμένη προσέγγιση αποτέλεσε το λόγο που το ερευνητικό ενδιαφέρον ξαναμετατοπίστηκε στις αρχές της αναζήτησης στο χώρο των καταστάσεων καθώς επιτάχυνε την όλη διαδικασία σε σημαντικό βαθμό και αποτέλεσε τη βάση για ένα ευρύ σύνολο σχεδιαστών όπως οι GRT [23], AltAlt [24], ASP/HSP [25], FF [26] κ.α Tο μοντέλο STRIPS και η γλώσσα PDDL Οι αρχικές προσεγγίσεις κωδικοποίησης της γνώσης και της πληροφορίας που περιέχει ένα πρόβλημα σχεδιασμού χρησιμοποιούσαν προτασιακή λογική, συνήθως με κάποιες επεκτάσεις για καλύτερη περιγραφή. Ο συγκεκριμένος τρόπος παρουσιάζει αδυναμία στο οτι δε μπορεί να περιγράψει εύκολα προβλήματα που είναι περίπλοκα ή περιέχουν έννοιες όπως η αβεβαιότητα κλπ. Με στόχο τη καλύτερη και αποδοτικότερη περιγραφή των προβλημάτων σχεδιασμού ενεργειών, δημιουργήθηκαν και χρησιμοποιήθηκαν διάφορες γλώσσες συγκεκριμένου τομέα (Domain-Specific Language, SDL). Με τη χρήση αυτών των γλωσσών οι χρήστες μπορούν να περιγράψουν ένα πρόβλημα με εκφραστικό τρόπο και με μικρό χρονικό κόστος σε σχέση με τις παλαιότερες μεθόδους, όπως η χρήση προτασιακής

25 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 13 A B A B Ε 2.6: Δύο καταστάσεις του κόσμου του κύβων. ή κατηγορηματικής λογικής. Οι σημαντικότερες και γνωστότερες προσπάθειες στο χώρο αυτό αποτελούν η γλώσσα του μοντέλου STRIPS και η γλώσσα PDDL, που εμπνεύστηκε και βασίστηκε στο STRIPS Μοντέλο STRIPS Αποτέλεσε τη πρώτη προσπάθεια για περιγραφή των προβλημάτων σχεδιασμού. Σκοπός ήτανε να μπορεί να χρησιμοποιηθεί απο έναν αφαιρετικό αλγόριθμο επεξεργασίας προβλημάτων σχεδιασμού. Οι ιδέες που υλοποιήθηκαν στο STRIPS (STanford Research Institute Problem Solver) αποτέλεσαν πηγή έμπνευσης και βάση για αρκετές άλλες υλοποιήσεις παρόλο που το μοντέλο θεωρήθηκε μη-αποδοτικό αρκετά σε μικρό χρονικό διάστημα [1]. Για να μπορέσει να μοντελοποιήσει το χώρο, ή κόσμο, του προβλήματος, το STRIPS θεωρεί οτι: Ο χώρος του προβλήματος είναι προκαθορισμένος και στατικός. Οποιαδήποτε ενέργεια και να εκτελεστεί είναι ήδη γνωστή ως προς τα αποτελέσματα που θα επιφέρει και μόνο αυτές οι ενέργεις που είναι γνωστές έχουν την ικανότητα να μεταβάλλουν το χώρο. O κόσμος του προβλήματος είναι κλειστός (closed world assumption). Οτιδήποτε περιέχεται στην αρχική κατάσταση I του προβλήματος θα περιέχεται και καθ ολη τη διάρκεια της εκτέλεσης του πλάνου καθώς δεν θα δημιουργούνται ή θα αφαιρούνται οντότητες. Το μοντέλο έχει την πλήρη γνώση για το κόσμο του προβλήματος (omniscient). Εξαλείφεται έτσι η έννοια της αβεβαιότητας απο το κόσμο. Οι ενέργεις που εφαρμόζονται είναι ατομικές ή αδιαίρετες. Οποιαδήποτε αλλαγή επιφέρει μια ενέργεια γίνεται ακαριαία και η εφαρμογή της δεν είναι δυνατόν να διακοπεί.

26 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 14 Τα γεγονότα αποτελούν βασική έννοια του μοντέλου STRIPS. Μέσω των γεγονότων γίνεται η περιγραφή οποιασδήποτε κατάστασης του προβλήματος, με την περιγραφή της αρχικής κατάστασης να θεωρείται ως μια πλήρης περιγραφή ενώ οι στόχοι του προβλήματος απλά θεωρούνται μια λογική σύζευξη κάποιων γεγονότων. Δεδομένης της εικόνας 2.6 που περιγράφει μια κατάσταση S, αυτή η κατάσταση μπορεί να περιγραφεί και ως S = {ontable{a}, ontable{b}, clear{a}, clear{b}}, για την πρώτη περίπτωση. Τον ίδιο τρόπο περιγραφής χρησιμοποιούμε και για τους στόχους. Όσων αφορά τις ενέργειες και την περιγραφή τους στον STRIPS, αυτές μπορούν να περιγραφούν χρησιμοποιώντας τρείς λίστες. Αυτές οι τρείς λίστες είναι οι παρακάτω: Η λίστα προϋποθέσεων (precondition list), περιέχει τα γεγονότα που πρέπει να υπάρχουν σε μια κατάσταση ώστε να είναι εφαρμόσιμη η ενέργεια. Η λίστα προσθήκης (addition list), περιέχει τα γεγονότα που προστίθενται στη κατάσταση με το πέρας της εφαρμογής μια ενέργειας. Η λίστα διαγραφής (deletion list), αντίστοιχα με τη λίστα προσθήκης, περιέχει τα γεγονότα που θα αφαιρεθούν απο τη κατάσταση. Ένα παράδειγμα μιας πλήρους περιγραφής μια ενέργειας είναι το εξής: Προϋποθέσεις: clear{b}, clear{a} Προσθήκες: on{a, B} Διαγραφές: clear{a} Απο τα παραπάνω μπορούμε να διαπιστώσουμε οτι πλέον το A θα βρίσκεται πάνω στο B και το A παύει πλέον να είναι καθαρό. Οτιδήποτε δεν αφαιρέθηκε και ίσχυει πριν την εφαρμογή της ενέργειας, συνεχίζει να ισχύει στην κατάσταση S Γλώσσα PDDL Το μοντέλο STRIPS αν και γνώρισε μέτρια απήχηση έθεσε τη βάση για περαιτέρω αναζήτηση στη χρήση γλωσσών περιγραφής για τα προβλήματα σχεδιασμού ενεργειών. Ένα μεταγενέστερο μοντέλο, αυτό της γλώσσας PDDL (Problem Domain Description Language) [27], βασίστηκε στο STRIPS και το επέκτεινε με σκοπό να μπορούν να περιγραφούν πλέον αποτελέσματα ενεργειών υπο συνθήκη, δυναμικά

27 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 15 σύμπαντα, στα οποία τα αντικείμενα είναι δυνατόν να δημιουργούνται και να καταστρέφονται, εισαγωγή περιορισμών για την περιγραφή ώστε να διευκολύνει την διαδικασία της ενώ δίνει τη δυνατότητα της επιλεκτικής χρήσης των κομματιών της γλώσσας απο τους σχεδιαστές που την υποστηρίζουν. H γλώσσα πέρασε απο την έκδοση 2.1 [28], 3.0 [29] και 3.1 [30], που αποτελεί και τη τελευταία ενημέρωση της γλώσσας. Στη πορεία της γλώσσας προστέθηκαν λειτουργίες που σκοπό είχανε να διευκολύνουν τη περιγραφή προβλημάτων και να κάνουν τη γλώσσα πιο εκφραστική. Η έννοια της περιγραφής του χρόνου, διαφόρων μεγεθών κ.α. είναι μερικές απο τις προσθήκες που έγιναν μέσω των μεταγενέστερων εκδόσεων της γλώσσας. Η PDDL είναι αρκετά δημοφιλής καθώς αποτέλεσε ένα σημαντικό σταθμό στο ερευνητικό πεδίο των προβλημάτων σχεδιασμού. Για αυτό το λόγο υπάρχουν και άλλες επεκτάσεις της γλώσσας, πέραν των μεταγενέστερων εκδόσεων, όπως η PDDL+ [31] που επέκτεινε την PDDL 2.1 με ένα πιο εύπλαστο μοντέλο και την εισαγωγή διεργασιών και συμβάντων ή η NDDL [32] που δημιουργήθηκε απο τη NASA με σκοπό να καλύψει ανάγκες των δικών της project. H δημιουργία των επεκτάσεων, πάντα με σκοπό την επίλυση προβλημάτων που αντιμετώπισαν οι σχεδιαστές τους καθώς ήτανε αδύνατο ή μη αποδοτικό με τη χρήση της PDDL, βοήθησε την ίδια την PDDL καθώς πολλές φορές οι λειτουργίες που εισήχθηκαν απο τις επεκτάσεις έγιναν μέρος της γλώσσας σε μεταγενέστερες εκδόσεις της. Η βασική ιδέα πάνω στην οποία βασίζεται η PDDL αποτελεί την περιγραφή του προβλήματος που πρόκειται να επιλυθεί μέσω της ξεχωριστής περιγραφής του πεδίου (domain) και της περιγραφής του προβλήματος (problem), πάντα με τη χρήση της γλώσσας και των γνωρισμάτων της. Το πεδίο περιγράφει ένα σύνολο απο κλάσεις αντικειμένων (objects), σχέσεις μεταξύ των κλάσεων αυτών (predicates) και τους τελεστές (operators), που αποτελούν τις ενέργειες που μπορεί να εκτελέσει ο πράκτορας. Αντίστοιχα ως πρόβλημα εννοείται μια περιγραφή ενός συγκεκριμένου στιγμιοτύπου που περιέχεται στο πεδίο. Στη περιγραφή αυτή περιλαμβάνονται τα ονόματα των αντικειμένων που υπάρχουν στο πρόβλημα, μια ολοκληρωμένη περιγραφή της αρχικής κατάστασης και των στόχων. Στο πίνακα 2.1 παρουσιάζεται μια περιγραφή ενός domain για προβλήματα του κόσμου των κύβων. Σε αυτά τα προβλήματα, υπάρχει ένα σύνολο απο κύβους, οι οποίοι μπορούν να ανακαταταχθούν με τέτοιο τρόπο ώστε να ικανοποιηθούν οι απαιτήσεις μιας τελικής κατάστασης. Οι κύβοι βρίσκονται σε ένα τραπέζι (ή τοποθετημένοι πάνω σε άλλους κύβους) και μπορούν να τοποθετηθούν πάνω σε άλλους κύβους. Βασική προϋπόθεση ο κύβος ο οποίος θα αποτελέσει τη βάση για έναν άλλο

28 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 16 (define (domain blocks-world) (:predicates (on?b?o) (clear?o) (table?o) (block?b)) (:action puton ; put?b1 onto?b2 from?o :parameters (?B1?B2?O) :effect (and (on?b1?b2) (clear?o) (not (on?b1?o)) (not (clear?b2))) :precondition (and (on?b1?o) (clear?b1) (clear?b2) (not (=?B1?O)) (not (=?B2?B1)) (not (=?B2?O)) (block?b1) (block?b2))) (:action puttable :parameters (?B1?T?B2) ; put?b1 onto table?t from?b2 :effect (and (on?b1?t) (clear?b2) (not (on?b1?b2))) :precondition (and (on?b1?b2) (clear?b1) (not (=?B1?B2)) (block?b2) (table?t))) ) Π 2.1: Πεδίο blocks world σε PDDL να μην έχει ήδη πάνω του άλλο κύβο. Το ίδιο πρέπει να ισχύει και για το κύβο προς τοποθέτηση. Οι κύβοι είναι δυνατόν να επανατοποθετηθούν πάνω στο τραπέζι. Συγκεκριμένα, αρχικά δηλώνονται τα αντικείμενα table και block, που αποτελούν τη γενική αναπαράσταση ενός τραπεζιού και ενός κύβου. Επίσης, δηλώνονται και οι σχέσεις on, με την οποία περιγράφεται το γεγονός του οτι ένα block βρίσκεται πάνω σε κάποιο άλλο αντικείμενο, και η σχέση clear, που περιγράφει τα blocks τα οποία δεν έχουν κάποιο άλλο τοποθετημένο πάνω τους. Στη συνέχεια ορίζονται οι δύο ενέργειες και οι λίστες προσθήκης, αφαίρεσης και οι προϋποθέσεις τους. Η ενέργεια puton περιγράφει τη διαδικασία της τοποθέτησης ενός block πάνω σε ένα άλλο, έχει ως παραμέτρους τα blocks και το table. Ως αποτέλεσμα έχει τη προσθήκη του δεύτερου κύβου πάνω στο πρώτο, το οτι ο πρώτος κύβος παύει πλέον να είναι clear και το οτι παύει να βρίσκεται πάνω στο τραπέζι ο δεύτερος κύβος. Τέλος, στη λίστα precondition περιγράφονται οι προϋποθέσεις της συγκεκριμένης ενέργειας. Απαιτείται να βρίσκεται ο πρώτος κύβος ήδη στο τραπέζι, ο πρώτος κύβος να μην έχει άλλο πάνω του όπως και ο δεύτερος, να μην είναι ήδη ο δεύτερος πάνω στο πρώτο και τα αντικείμενα Β1 και Β2 να είναι τύπου block. Με παρόμοιο τρόπο περιγράφεται και η ενέργεια puttable, η οποία αποτελεί την διαδικασία του να τοποθετηθεί ένας κύβος πάνω στο τραπέζι. Η αναπαράσταση του προβλήματος αφορά ένα στιγμιότυπο του πεδίου, δηλαδή συγκεκριμένα ονόματα για τα αντικείμενα και περιγραφή της αρχικής κατάστασης και των τελικών στόχων. Μια τέτοια αναπαράσταση αποτελεί και ο πίνακας 2.2. Απο

29 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 17 (define (problem bw1) (:domain blocks-world) (:objects a b c t) (:init (block a) (block b) (block c) (table t) (on a b) (on b t) (on c t) (clear a) (clear c)) (:goal (and (on c a) (on b c))) Π 2.2: Πρόβλημα blocks world σε PDDL puttable a, t, b [1] puton a, c, t [2] puton b, t, a [3] Π 2.3: Πλάνο λύσης του blocks world τα objects και init μπορούμε να συμπεράνουμε οτι υπάρχουν τέσσερα αντικείμενα, τα a, b, c και t. Τα πρώτα τρία αποτελούν blocks ενώ το t αποτελεί table. Το υπόλοιπο της περιγραφής της αρχικής κατάστασης δινει πληροφορίες σχετικά με τις καταστάσεις των αντικειμένων, όπου με το on a b δηλώνεται το οτι το block a βρίσκεται πάνω στο block b και με το clear a δηλώνεται το γεγονός του αν το αντικείμενο a δεν υποστηρίζει άλλο αντικείμενο, δηλαδή δεν υπάρχει άλλο block που να βρίσκεται πάνω απο το a). Tέλος, στο πίνακα 2.3 δίνεται ένα ενδεικτικό πλάνο ενεργειών το οποίο παρήχθηκε με τον σχεδιαστή LPG-td. To αποτέλεσμα δίνεται με τροφοδότηση των αρχειών του πεδίου και του προβλήματος. Ο LPG υποστηρίζει την επέκταση PDDL+ [31], μέσω της οποία μπορούν να εκφραστεί η χρονική διάρκεια μιας ενέργειας αλλά και η χρονική στιγμή της εκτέλεσής της, κάτι το οποίο αποτυπώνεται στη συγκεκριμένη περίπτωση με τον αριθμό μπροστά και πίσω απο κάθε ενέργεια. Οι ενέργειες παρουσιάζονται όπως θα εκτελούντουσαν, δηλαδή σειριακά Συστήματα σχεδιασμού με χρήση γράφων Όπως αναλύθηκε και στο , οι μέθοδοι σχεδιασμού με χρήση ενδιάμεσων δομών που αναπαριστούν γράφους αποτελούν μια απο τις δημοφιλέστερες προσεγγίσεις επίλυσης προβλημάτων σχεδιασμού. Για να λυθεί ένα πρόβλημα, πρώτα δημιουργείται ένας γράφος αναπαράστασης της πληροφορίας που περιέχεται στη περιγραφή του προβλήματος (planning graph) απο το σχεδιαστή. Σκοπός της παραπάνω προσέγγισης είναι να μειωθεί ο χώρος αναζήτησης και να διευκολυνθεί η διαδικασία εξαγωγής συμπερασμάτων.

30 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 18 Η σημαντικότερη προσέγγιση που έχει να επιδείξει η συγκεκριμένη τεχνική είναι ο Graphplan [10]. Στη λογική του, αποτελεί ένα συνδιασμό στοιχείων των σχεδιαστών ολικής και μερικής διάταξης καθώς η προς επιλογή ενέργεια τοποθετείται σε ένα συγκεκριμένο χρονικό σημείο του πλάνου, όπως οι σχεδιαστές ολικής διάταξης αλλά, αντίστοιχα όπως οι σχεδιαστές μερικής διάταξης, η ακριβής αλληλουχία εκτέλεσης των ενεργειών (που ορίζονται στο σημείο στο χώρο του πλάνου) δεν ορίζεται απο τον αλγόριθμο. Μπορεί να εφαρμοστεί σε προβλήματα που είναι ορισμένω μέσω STRIPS. Οι τελεστές στο Graphplan αποτελούνται απο τρείς λίστες γεγονότων, τη λίστα προϋποθέσεων, τη λίστα προσθήκης γεγονότων και τη λίστα αφαίρεσης γεγονότων σε συνδιασμό με τον μοναδικό τελεστή no-op, που αναπαριστά την κενή ενέργεια, δηλαδή μια ενέργεια που δεν μεταβάλλει το πρόβλημα και έχει όλες τις λίστες του κενές. Τέλος, η έννοια της μεταβλητής υπάρχει και είναι δυνατό να οριστούν Γράφοι σχεδιασμού O ίδιος ο γράφος σχεδιασμού είναι ένας γράφος που αποτελείται απο διαφορετικά επίπεδα, είναι κατευθυνόμενος για να μπορέσει να αναπαραστήσει σωστότερα τη πληροφορία και περιέχει δύο διαφορετικά είδη κόμβων και τρία είδη ακμών. Όσων αφορά τα επίπεδα, αυτά μπορεί να είναι είτε προτασιακά (propositional) όπου περιέχουν κόμβους προτάσεων, είτε ενεργειών (action) όπου περιέχουν κόμβους απο ενέργειες. Αναλυτικότερα, το πρώτο επίπεδο θεωρείται προτασιακό καθώς περιέχει απο ένα κόμβο για κάθε πρόταση που βρίσκεται στην αναπαράσταση της αρχικής κατάστασης, το επόμενο επίπεδο περιέχει ένα κόμβο για κάθε ενέργεια η οποία μπορεί να ικανοποιηθεί απο το προηγούμενο επίπεδο και για αυτό το λόγο θεωρείται το πρώτο επίπεδο ενεργειών του γράφου. Τέλος, το τρίτο επίπεδο του γράφου αποτελεί το δεύτερο επίπεδο προτάσεων και αποτελεί υπερσύνολο του πρώτου με την προσθήκη καινούριων κόμβων που προέρχονται απο τις λίστες προσθήκης των ενεργειών του δευτέρου επιπεδου. Επιπρόσθετα επίπεδα ακολουθούν τη συγκεκριμένη λογική. Για την αναπαράσταση των σχέσεων μεταξύ ενεργειών και προτάσεων χρησιμοποιούνται οι ακμές του γράφου. Στο i-οστό επίπεδο, οι ενέργειές του συνδέονται με τις προϋποθέσεις του προηγούμενου i-1 επιπέδου και με τα αποτελέσματά τους στο i+1 επίπεδο. Οι ακμές που συνδέουν ενέργειες με προϋποθέσεις είναι γνωστές ως ακμές προϋποθέσεων (precondition edges) ενώ οι αντίστοιχες για τα αποτελέσματα ακμές προσθήκης ή διαγραφής (add/delete edges), ανάλογα με το ουσιαστικό αποτέλεσμα που επιφέρουν.

31 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 19 Όπως αναφέρθηκε, ο γράφος επεκτείνεται με την προσθήκη ενεργειών στο επίπεδό του, κάτι το οποίο γεννά ερωτήματα για το αν υπάρχει ή χρησιμοποιείται κάποιος μηχανισμός περιορισμών κατά τη διαδικασία επεξεργασίας του γράφου. Πιο συγκεκριμένα, στο επίπεδο προστίθενται ενέργειες μόνο αν είναι ικανοποιήσιμες οι προϋποθέσεις τους απο το προηγούμενο επίπεδο αλλά δεν ελέγχεται αν αυτές είναι αλληλοσυγκρουόμενες. Επίσης, προστίθενται προτάσεις σε ένα επίπεδο αν στο ακριβώς προηγούμενο κάποια ενέργεια τις περιέχει στη λίστα προσθήκης της ακόμη και αν κάποια άλλη ενέργεια τις περιέχει στη λίστα αφαίρεσής της. Δεδομένης της ύπαρξης του ειδικού τελεστή no-op ισχύει οτι ένα επίπεδο προτάσεων i είναι υπερσύνολο όλων των επιπέδων k, όπου k<i. To ίδιο συμπέρασμα ισχύει και για τα παραγόμενα έγκυρα πλάνα εκτέλεσης, όπου αν ένα πλάνο μπορεί να δημιουργηθεί σε t βήματα, αποτελεί υπογράφο του συνολικού γράφου Σχέσεις αποκλεισμού και Graphplan Απο όλα τα παραπάνω γίνεται ξεκάθαρο οτι οι συνθήκες σύνδεσης που επιβάλλονται στα στοιχεία του γράφου είναι χαλαρού τύπου. Δεδομένης της χαλαρότητας, πρέπει να χρησιμοποιηθούν τεχνικές εντοπισμού για την ανεύρεση σχέσεων αμοιβαίου αποκλεισμού (mutual exclusions/mutexes) μεταξύ των υπαρχόντων κόμβων ενός γράφου καθώς έτσι μειώνεται το μέγεθός του, διευκολύνεται και επιταχύνεται η διαδικασία ανεύρεσης έγκυρων πλάνων του γράφου. Δεδομένου ενός επιπέδου ενεργειών, δύο ενέργειες είναι αμοιβαίως αποκλειόμενες εαν κανένα δυνατό πλάνο του γράφου δε τις περιέχει μαζί. Επίσης, δύο προτάσεις ενός επιπέδου είναι αμοιβαίως αποκλειόμενες αν κανένα έγκυρο πλάνο δε μπορεί να τις εφαρμόσει και τις δύο στο ίδιο χρονικό σημείο (ταυτόχρονα). Ένας αλγόριθμος που δημιουργήθηκε για την επίλυση προβλημάτων εύρεσης αμοιβαίων αποκλεισμών είναι ο Graphplan. Ο αλγόριθμος βασίζεται σε ένα σύνολο κανόνων μέσω των οποίων πραγματοποιείται η εύρεση των αποκλεισμών, η καταγραφή τους και η διάδοσή τους ως γνώση στον υπόλοιπο γράφο. Οι κανόνες αυτοί, αν και είναι αποδεδειγμένο οτι λειτουργούν, δεν μπορούν να εντοπίσουν όλους τους αποκλεισμούς. Εγγυόνται όμως οτι μπορούν να βρούν το μεγαλύτερο πλήθος των περιπτώσεών τους Τύποι σχέσεων αποκλεισμού Όπως προαναφέρθηκε, υπάρχουν δύο ουσιαστικοί τύποι αμοιβαίων αποκλεισμών στις μεθόδους χρήσης γράφου σχεδιασμού. Ο ένας είναι σε επίπεδο ενεργειών και ο

32 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 20 άλλος σε επίπεδο προτάσεων. Οι λόγοι που συμβάλλουν στην δημιουργία αποκλεισμού είναι διαφορετικοί μεταξύ τους και χρήζουν διαφορετικής αντιμετώπισης για την εύρεσή τους απο τους αλγορίθμους. Όσων αφορά τους ίδιους τους λόγους αμοιβαίου αποκλεισμού μεταξύ δύο ενεργειών, αυτοί είναι: Παρεμβολή (Interference), όπου η μία ενέργεια διαγράφει κάποια προϋπόθεση της δεύτερης ενέργειας. Ανταγωνιστικές προϋποθέσεις (Competing needs), οι δύο ενέργειες έχουν προϋποθέσεις που είναι αμοιβαίως αποκλειόμενες μεταξύ τους, άρα είναι και οι ενέργειες. Ασυνεπή αποτελέσματα (Inconsistent effects), η μία εκ των δύο ενεργειών διαγράφει ένα ή παραπάνω αποτελέσματα της δεύτερης. Οι συγκεκριμένοι τύποι αποκλεισμού είναι και οι μόνοι που μπορούν να ανιχνευθούν απο τον αλγόριθμο του Graphplan. Συγκεκριμένα, ο αλγόριθμος έχει την ικανότητα εύρεσης αποκλεισμών μόνο μεταξύ των ενεργειών και μάλιστα μόνο στο ίδιο επίπεδο του γράφου. Όσων αφορά τις προτάσεις και τους αποκλεισμούς που σχετίζονται με αυτές: Ασυνεπής υποστήριξη πρότασης (Inconsistent support), η μία πρόταση αποτελεί το αρνητικό αντίστοιχο της δεύτερης ή όλοι οι πιθανοί τρόποι ικανοποίησής του είναι αμοιβαία αποκλειόμενοι, κάτι που οδηγεί στον αποκλεισμό των προτάσεων. Να σημειωθεί οτι οι αμοιβαίως αποκλειόμενες προτάσεις δεν είναι ανιχνεύσιμες απο τον Graphplan Ανάλυση αλγορίθμου Graphplan O Graphplan αποτελεί έναν αλγόριθμο γενικής χρήσης για πεδία τύπου STRIPS και ουσιαστικά βασίζεται σε ιδέες που εισήχθησαν απο πολλούς αλγορίθμους που δημιουργήθηκαν με σκοπό την επίλυση προβλημάτων γράφων. Δεδομένου ενός προβλήματος, ο αλγόριθμος κατασκευάζει τον γράφο σχεδιασμού. Στον γράφο αυτό, το πρόβλημα αναπαρίσταται ως μια ροή τιμών αληθείας που διαχέονται μέσα στο γράφο. Το μεγάλο του πλεονέκτημα οτι μπορεί να μεταδώσει αυτή τη πληροφορία

33 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 21 Algorithm 1 Ψευδοκώδικας του αλγορίθμου Graphplan, είσοδος ένα πρόβλημα, έξοδος το αν επιλύεται graph graphinitial goals graphgoals loop if goals non-mutexed in last level then solution extractsolution(level) if solution f ailure then return solution else if nosolutionp ossible then return f ailure end if end if graph graphexpansion end loop κατα τη διαδικασία κατασκευής του, κάτι που επισπεύδει τη διαδικασία αναζήτησης λύσης. Πιο συγκεκριμένα, ο αλγόριθμος ξεκινά την εκτέλεσή του με το να καταχωρεί όλες τις προτάσεις της αρχικής κατάστασης του προβλήματος στο πρώτο προτασιακό επίπεδο. Μετά απο την αρχική εισαγωγή, ο γράφος επεκτείνεται σε πλήθος επιπέδων επαναληπτικά. Κριτήριο της επανάληψης είναι το αν έχει βρεθεί λύση στο τρέχων επίπεδο ή αν έχει αποδειχτεί οτι δεν πρόκειται να βρεθεί λύση απο το τρέχων επίπεδο και μεταγενέστερα. Η βασική συνθήκη που επιδεικνύει την ύπαρξη λύσης σε ένα επίπεδο k, όπου k > 1, είναι η ύπαρξη όλων των στόχων με μη-αμοιβαίως αποκλειόμενο τρόπο στο τελευταίο προτασιακό επίπεδο P k. Καθώς η συγκεκριμένη συνθήκη είναι αναγκαία για την ύπαρξη λύσης αλλά όχι και ικανή, πρέπει να γίνει μια αντίστροφη διάσχιση του γράφου απο το P k+1 μέχρι το P 1 επίπεδο. Σκοπός της ανάστροφης διάσχισης είναι η αναζήτηση της ύπαρξης ενός πλάνου μέσω του οποίο είναι δυνατή η λύση του προβλήματος. Ο πίνακας 1 δίνει μια περιγραφή του αλγορίθμου σε ψευδομορφή. Η αναζήτηση πλάνου αποτελεί μια αναζήτηση για ένα ελάχιστο σύνολο ενεργειών που περιέχει όλους του στόχους του προβλήματος στις λίστες των εμπεριεχόμενων ενεργειών και καμία απο αυτές τις ενέργειες δεν υπόκειται σε αμοιβαίο αποκλεισμό με κάποια άλλη ενέργεια του συνόλου. Με την εύρεση ενός τέτοιο πιθανού συνόλου S k το επόμενο βήμα του αλγορίθμου κοιτά να βρεί το αν ικανοποιούνται οι προϋποθέσεις των ενεργειών του συνόλου με k 1 συνολικά βήματα. Αυτό ελέγχεται με το αν υπάρχει ένα S k 1 σύνολο το οποίο να είναι δυνατόν να πετύχει τις προϋποθέσεις του S k χωρίς παρεμπόδιση απο αμοιβαίους αποκλεισμούς, τότε η επανάληψη θα προχωρήσει, αν χρειαστεί, μέχρι και το S 1 επίπεδο. Η όλη διαδικασία σταματά εάν βρεθεί λύση στο προς εξέταση πλάνο. Οι λύσεις που δίνονται απο τον αλγόριθμο είναι πάντα οι μικρότερες σε σύνολο ενεργειών. Επίσης,

34 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 22 σε οποιοδήποτε επίπεδο, γίνεται έλεγχος για το αν δεν είναι επιλύσιμο, το οποίο είναι το μοναδικό άλλο κριτήριο τερματισμού. Αυτό γίνεται με τον έλεγχο ικανοποίησης των τρέχοντων στόχων και τον έλεγχο απουσίας αμοιβαίων αποκλεισμών. Αν δεν ικανοποιείται κάποιο απο τα δύο αυτά κριτήρια, τότε ο αλγόριθμος αναφέρει οτι το πρόβλημα είναι μη επιλύσιμο, σταματά την αναζήτηση σε αυτό το επίπεδο και κρατά σε κατάλληλες δομές δεδομένων, συνήθως ένας πίνακας κατακερματισμού, ένα σύνολο των υποστόχων που είναι επιτεύξιμοι ώστε να μπορέσει να τα χρησιμοποιήσει ως πρότερη γνώση σε άλλες διασχίσεις χωρίς να προβεί σε ουσιαστική αναζήτηση. Τέλος, αξίζει να σημειωθεί η χρήση των no-op τελεστών και το πως αυτοί βοηθούν τον αλγόριθμο να κάνει κάποιες αρχικές υποθέσεις στη διαδικασία της αναζήτησης. Οι no-op ενέργειες αποτελούν την αυτούσια μεταφορά ενεργειών και των λιστών τους απο επίπεδο σε επίπεδο χωρίς την ουσιαστική εφαρμογή τους. Κατά την εφαρμογή των ενεργειών στα ενδιάμεσα επίπεδα (για να μεταβεί απο επίπεδο σε επίπεδο ο γράφος εφαρμόζονται οι ενέργειες του επιπέδου πάνω σε αυτόν) εφαρμόζονται και οι no-op ενέργειες. Με το τρόπο αυτό, αν μια πρόταση εμφανιστεί σε ένα επίπεδο, είναι δυνατό να εμφανιστεί σε όλα τα επόμενα επίπεδα μέσω αυτών των τελεστών. Αυτός είναι και ο λόγος που όταν δύο επίπεδα P k και P k+1 είναι ίδια, ο αλγόριθμος θεωρεί οτι και όλα τα μεταγενέστερα επίπεδα πρόκειταν να είναι τα ίδια. Αυτή η κατάσταση του επιπέδου ονομάζεται ως level-off. 2.2 Υπηρεσίες Ιστού Οι υπηρεσίες ιστού αποτελούν έναν αρκετά δημοφιλή όρο που του έχουν αποδωθεί πολλές διαφορετικές έννοιες. Ουσιαστικά πρόκειται περί ενός τρόπου επικοινωνίας μεταξύ δύο συσκευών οι οποίες είναι συνδεδεμένες πάνω σε κάποιο δίκτυο. Η υπηρεσία αποτελεί λειτουργικότητα υλοποιημένη σε λογισμικό το οποίο προσφέρεται σε κάποια συγκεκριμένη διεύθυνση του δικτύου, πάντα με το σκεπτικό οτι θα είναι συνεχώς διαθέσιμη (always-on) για το οποιοδήποτε μηχάνημα έχει το δικαίωμα ή τη πρόσβαση σε αυτή. Στη συνέχεια θα εξεταστούν αναλυτικότερα οι κυριότεροι ορισμοί της έννοιας της υπηρεσίας διαδικτύου, οι σημαντικότερες μορφές μέσω των οποίων δημιουργούνται και λειτουργούν οι διάφορες υπηρεσίες και τέλος θα γίνει αναφορά στην αρχιτεκτονική λογισμικού που βασίζεται στην έννοια των υπηρεσίων.

35 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 23 Ε 2.7: Σύγκριση WSDL 1.1 με την έκδοση Ορισμός των υπηρεσιών ιστού Το W3C (World Wide Web Consortium) δίνει τον πιο φορμαλιστικό ορισμό για τις υπηρεσίες ιστού. Συγκεκριμένα, το W3C θεωρεί υπηρεσία ιστού ένα σύστημα λογισμικού σχεδιασμένο να υποστηρίζει την διαλειτουργική αλληλεπίδραση μηχανήςπρος-μηχανή πάνω απο ένα δίκτυο [33]. Κατόπιν, μια υπηρεσία ιστού πρέπει να έχει έναν δίαυλο επικοινωνίας ο οποίος να περιγράφεται σε μια μορφή που είναι φιλική ως προς το μηχάνημα και τις δυνατότητές του. Αυτό επιτυγχάνεται με την χρήση της WSDL (Web Service Description Language) [34] η οποία είναι και υπεύθυνη για τη πλήρη περιγραφή τόσο της μορφής της υπηρεσίας αλλα και των μηνυμάτων που ανταλλάσονται μεταξύ των συστημάτων. Το πρωτόκολλο SOAP (Simple Object Access Protocol) [35] καθορίζει τη μορφή και τη συμπεριφορά των μηνυμάτων αυτών. Για τη μετάδοσή τους, χρησιμοποιείται το HTTP (Hypertext Transfer Protocol) [36] ενώ η ίδια η πληροφορία κωδικοποιείται σε XML (Extensible Markup Language) [37] σε συνδιασμό με άλλα διαδεδομένα πρωτόκολλα του Διαδικτύου. Στην εικόνα 2.8 δίνεται μια αναπαράσταση της δομής ενός τέτοιου μηνύματος. Με τα παραπάνω ορίζεται η ίδια η υπηρεσία και ο τρόπος επικοινωνίας μεταξύ των συστημάτων. Για την ανακάλυψη και τυχών χρήση της υπηρεσίας απο άλλα συστήματα ή ενδιαφερομένους, δημιουργήθηκε και χρησιμοποιήθηκε η UDDI (Universal Description, Discovery and Integration) [38], η οποία βασιζότανε σε SOAP μηνύματα

36 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 24 Ε 2.8: H δομή ενός μηνύματος SOAP. και XML. Ένα σύστημα μπορούσε να ρωτήσει ένα UDDI provider για τα περιεχόμενά του και να ανακαλύψει με αυτό το τρόπο υπηρεσίες που αυτό χρειαζότανε. Όταν ανακάλυπτε υπηρεσίες που ταιριάζανε στο προφίλ που αναζητούσε, ο UDDI provider του απαντούσε με μηνύματα που περιείχαν τις WSDL περιγραφές των κατάλληλων υπηρεσιών Τύποι υπηρεσιών ιστού Οι γνωστότεροι τύποι (ή τύποι δόμησης) υπηρεσιών ιστού είναι δύο και αντιμετωπίζουν τη διαδικασία δημιουργίας και χρήσης μιας υπηρεσίας με διαφορετικό τρόπο. Οι κατηγορίες αυτές είναι οι RESTful υπηρεσίες και οι υπηρεσίες που χρησιμοποιούν SOAP ως το κύριο μέσο ανταλλαγής μηνυμάτων πληροφορίας Υπηρεσίες βασισμένες σε SOAP Οι υπηρεσίες που χρησιμοποιούν SOAP χαρακτηρίζονται απο το οτι είναι καλά ορισμένες και είναι δυνατόν να χρησιμοποιήσουν WSDL για να περιγραφούν ή να διευκολύνουν την κατανάλωσή τους απο τους χρήστες της υπηρεσίας. Κύριος τρόπος δόμησης των μηνυμάτων είναι η χρήση της XML, κάτι το οποίο δίνει καλά ορισμένους έτοιμους τύπους μηνυμάτων προς χρήση απο τις υπηρεσίες αλλά δίνει και τη δυνατότητα της επέκτασης αυτών των τύπων μηνυμάτων απο τους δημιουργούς της υπηρεσίας. Το πρωτόκολλο μετάδωσης θα μπορούσε να είναι οποιοδήποτε αλλά το πιο δημοφιλές, καθώς μιλάμε για υπηρεσίες ιστού, είναι το HTTP.

37 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 25 Με τη χρήση μιας WSDL περιγραφής είναι εφικτό να δωθεί μια ορθώς ορισμένη και πλήρης περιγραφή μιας υπηρεσίας ιστού έτσι ώστε ο καταναλωτής (consumer) της υπηρεσίας να έχει πλήρη γνώση της μορφής της υπηρεσίας, του τρόπου διάδρασης και των μέσων διεπαφής με αυτήν. Με αυτό το τρόπο γίνεται εύκολη η διαδικασία υιοθέτησης μιας υπηρεσίας απο τους καταναλωτές της. Μέσω αυτής περιγράφεται η βασική μορφή των αιτήσεων και των απαντήσεων της υπηρεσίας με τη χρήση των παρακάτων εννοιών: Types: συγκεκριμένοι ορισμοί των τύπων των δεδομένων Message: ορισμός των δεδομένων που ανταλλάσσονται απο και προς την υπηρεσία Operation: ορισμός μιας λειτουργίας που εκτελείται απο την περιγραφόμενη υπηρεσία Port Type: ορισμός του συνόλου των υπηρεσιών που υποστηρίζονται απο το τελικό σημείο (περιγράφεται στη συνέχεια) Binding: ορισμός του τρόπου χρήσης της υπηρεσίας πάνω απο συγκεκριμένο πρωτόκολλο καθώς και ορισμός της μορφής δεδομένων που χρησιμοποιείται σε συνδιασμό με το πρωτόκολλο Port: αντιστοίχιση ενός binding με μια διεύθυνση δικτύου Service: το σύνολο των τελικών σημείων (ports) ως μια ενιαία μονάδα Πιο συγκεκριμένα, ο εξυπηρετητής της υπηρεσίας κάνει διαθέσιμη την WSDL περιγραφή της παρεχόμενης υπηρεσίας σε έναν εξυπηρετητή έυρεσης υπηρεσιών (Service broker). O broker είναι υπεύθυνος για τη καταγραφή της WSDL περιγραφής σε καταχώρηση UDDI. Η καταχώριση UDDI αποτελεί μια περιγραφή της υπηρεσίας σε μορφή XML καθώς και αποθήκευσης εννοιών που μπορεί να σχετίζονται με την υπηρεσία (tags). Επίσης, ο broker είναι υπεύθυνος και για το διαμοιρασμό αυτής της περιγραφής σε οποιοδήποτε ενδιαφερόμενο (Service requestor) ζητήσει μια περιγραφή που να ταιριάζει με αυτή της καταχωρηθείσας υπηρεσίας. Τα μηνύματα που ανταλλάσσονται καθ όλη τη διάρκεια της συγκεκριμένης διαδικασίας αποτελούν μηνύματα τύπου SOAP. Μέσω της WSDL είναι δυνατόν να κατασκευαστούν κλάσεις που υλοποιούν λειτουργικότητα σχετικά με τον έλεγχο σφαλμάτων για την αποστολή και λήψη δεδομένων προς και απο την υπηρεσία με αυτόματο τρόπο.

38 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 26 Resource GET PUT POST DELETE Ανάκτηση Αντικατάσταση Δημιουργία Διαγραφή εγγραφής. example.com/ της συλλογής ή δημιουργία εγγραφής. v1/resources resources. της εγγραφής. Π 2.4: Παράδειγμα endpoint με restful αναπαράσταση Υπηρεσίες τύπου REST Η δεύτερη αρχιτεκτονική, η αρχιτεκτονική REST (REpresentational State Transfer) προωθεί τη χρήση απλών και σταθερών ενεργειών για την δημιουργία διεπαφών της υπηρεσίεας με τους χρήστες της. Ένα τέτοιο σύνολο ενεργειών αποτελούν οι προκαθορισμένες ενέργειες του HTTP πρωτοκόλλου. Μέσω των ενεργειών (POST, PUT, DELETE κ.α.) το HTTP προσφέρει μια σταθερή βάση για τη διευκόλυνση της διεπαφής της υπηρεσίας προς τρίτους. Ένα χαρακτηριστικό που είναι άρρηκτα συνδεδεμένο με την REST αρχιτεκτονική είναι η χρήση του JSON (JavaScript Object Notation) [39] για την ανταλλαγή μηνυμάτων, κάτι το οποίο είναι αρκετά πιο αδόμητο σε σύγκριση με το SOAP αλλά αρκετά πιο εύπλαστο και κατανοητό απο έναν άνθρωπο/προγραμματιστή σε σχέση με την ίδια αναπαράσταση εκφρασμένη σε XML. Μια JSON αναπαράσταση πληροφορίας έχει μικρότερο overhead (μέγεθος μηνύματος, χρόνος μετάδοσης λόγω του μεγέθους κ.λ.π.) σε σύγκριση με την αντίστοιχη σε XML, κάτι που παίζει καθοριστικό ρόλο σε επικοινωνίες συσκευών όπου θέλουμε το έλαχιστο δυνατό overhead κατά την ανταλλαγή μηνυμάτων (π.χ. δίκτυα κινητής τηλεφωνίας). Πλεόν, η YAML [40] αποτελεί μια προσπάθεια να συνδιάσει τα καλύτερα των δύο κόσμων και διαδίδεται ολοένα και περισσότερο καθώς η χρήση της σε υπηρεσίες ιστού φαίνεται να αυξάνεται συνεχώς λόγω των εκφραστικών χαρακτηριστικών της. Ενώ οι υπηρεσίες βασισμένες σε SOAP έχουν τη WSDL για να μπορούν να περιγραφούν, οι REST εφαρμογές είναι πιο χαλαρές όσων αφορά τους κανόνες αρχιτεκτονικής που επιβάλλουν στην εφαρμογή κατά την ανάπτυξή της. Πολλές REST υπηρεσίες δεν ορίζονται με κάποιο τρόπο ή η περιγραφή τους γίνεται με ελλειπή τρόπο. Για το λόγο αυτό προτάθηκε και δημιουργήθηκε η WADL (Web application description language) [41]. H WADL χρησιμοποιεί και αυτή XML για την αναπαράσταση της υπηρεσίας και αποτελεί προσπάθεια του να δημιουργηθεί ένα στάνταρ για την περιγραφή REST εφαρμογών. Αν και η WADL προτάθηκε στο W3C για πρωτοτυποποίηση απο την Sun Microsystems οι απαραίτητες διαδικασίες δεν έχουν προχωρήσει. Οι βασικές έννοιες που χρησιμοποιούνται απο την WADL για την περιγραφή υπηρεσιών, είναι οι ακόλουθες:

39 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 27 Resource: η περιγραφή της υπηρεσίας Param: η περιγραφή της εισόδου της υπηρεσίας, περιέχεται στο Resource Method: περιγραφή των αποδεκτών αιτήσεων (request) και αναμενόμενων απαντήσεων (response) ενός Resource Request: περιγραφή της αναπαράστασης της εισόδου, των αποδεκτών τύπων των δεδομένων και των απαιτούμενων HTTP επικεφαλίδων (headers) Response: περιγραφή της μορφής των απαντήσεων της υπηρεσίας καθώς και των απαντήσεων που ενημερώνουν για τυχών λάθη Αντίστοιχα με την WSDL και στην WADL είναι δυνατή η αυτόματη κατασκευή των απαραίτητων κλάσεων με αυτοματοποιημένο τρόπο. H WADL δεν αποτελεί τη μοναδική λύση για το πρόβλημα της εύκολης αναπαράστασης REST υπηρεσιών. Παράλληλα με αυτή αναπτύσσονται το framework Swagger [42] που βασίζεται αποκλειστικά σε αναπαραστάσεις JSON αλλά και το RAML (RESTful API Modeling Language) που αποτελεί μια αυτόνομη προσπάθεια του RAML Workgroup και βασίζεται σε YAML για την περιγραφή. Και αυτές οι υλοποιήσεις δίνουν τη δυνατότητα για αυτοματοποιημένη παραγωγή κώδικα χρησιμοποιώντας μόνο τη περιγραφή της υπηρεσίας, με τη χρήση βιβλιοθηκών για την εκάστοτε γλώσσα υλοποίησης Αρχιτεκτονική λογισμικού βασισμένη σε υπηρεσίες Η ελαστικότητα και η διαλειτουργικότητα που προσφέρονται απο τις υπηρεσίες ιστού αποτέλεσαν τους σημαντικότερους παράγοντες της εξάπλωσης της τάσης της αρχιτεκτονικής βασισμένης σε υπηρεσίες ή αλλιώς υπηρεσιοστραφούς αρχιτεκτονικής (Service Oriented Architecture ή SOA). Μέσω της χρήσης των υπηρεσιών αυτόματης ανακάλυψης και αυτόματης ενσωμάτωσης υπηρεσιών απο τρίτους (π.χ. ένας πράκτορας χρησιμοποιεί UDDI για να καλύψει κάποια κενά της λειτουργικότητάς της μέσω μιας δεύτερης υπηρεσίας) η υπηρεσιοστραφής αρχιτεκτονική προσφέρει νέες δυνατότητες στα ήδη υπάρχοντα πληροφοριακά συστήματα κάνοντας την όλη διαδικασία της εύρεσης, συνδιασμού και χρήσης νέων υπηρεσιών αρκετά εύκολη και γρήγορη.

40 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 28 Ε 2.9: Τα βασικά στοιχεία της αρχιτεκτονικής SOA. Οι δυνατότητες που άνοιξαν απο τα παραπάνω οδήγησαν στην ευρεία απήχηση της αρχιτεκτονικής προσανατολισμένης σε υπηρεσίες ενώ πολλές διαφορετικές εφαρμογές λογισμικού πλέον διατίθενται ως υπηρεσίες (Software-as-a-Service, Platform-asa-service κ.λ.π.) καθώς διαυκολύνεται η πρόσβαση σε αυτές μέσω της χρήσης του Διαδικτύου. 2.3 Οπτικοποίηση Η οπτικοποίηση είναι οποιαδήποτε τεχνική για τη δημιουργία εικόνων, διαγραμμάτων ή κινούμενων γραφικών για να επικοινωνήσει ένα μήνυμα. Είναι ένας απο τους αποτελεσματικότερους τρόπους για να μεταδίδονται τόσο αφηρημένες όσο και συγκεκριμένες ιδέες. Αποτελεί ένα σημαντικό θέμα στην επιστήμη των υπολογιστών. Σημαντικές εφαρμογές γνωρίζει στο πεδίο της επιστημονικής απεικόνισης όπου με τη χρήση των διαδραστικών, αισθητηριακών αναπαραστάσεων, συνήθως οπτικές, των αφηρημένων στοιχείων ενίσχυει τη γνωστικής λειτουργία. Η οπτικοποίηση δεδομένων είναι ένα σχετικό υποπεδίο της οπτικοποίησης που ασχολούνται με τη στατιστική και τα γεωγραφικά ή χωρικά δεδομένα [43]. Στη συγκεκριμένη εργασία η έννοια της οπτικοποίησης χρησιμοποιείται με σκοπό την πιο εύκολη παρουσίαση και κατανόηση (απο τον οποιονδήποτε παρατηρητή) μια διαδικασίας λύσης ενός προβλήματος σχεδιασμού ενεργειών. Μέσω της γραφικής αναπαράστασης, παρουσιάζονται προϋποθέσεις προτάσεων, συγκεκριμένες ενέργεις και με τη χρήση διάδρασης, ο χρήστης είναι σε θέση να ελέγξει κατά ένα μικρό μέρος την έκβαση της διαδικασίας. Αναλυτικότερη περιγραφή του πως εκμεταλλεύεται το

41 Κεφάλαιο 2. Έννοιες και σχετικές εργασίες 29 σύστημα που αναπτύσσεται στα πλαίσια της παρούσας πτυχιακής την οπτικοποίηση ακολουθεί σε μεταγενέστερο κεφάλαιο. 2.4 Σχετικές εργασίες Το σύστημα GIPO [44] αποτελεί μια απο τις σημαντικότερες προσπάθειες στο χώρο. Υποστηρίζει και κλασικά αλλά και HTN (hierarchical task networks) πεδία και προσφέρει γραφικές μεθόδους επεξεργασίας για λειτουργίες όπως δημιουργία πεδίου, επεξεργασία & εκτέλεση πλάνου, εργαλεία εγκυρότητας των παραγόμενων λύσεων κ.λ.π. Η αναπαράσταση της πληροφορίας γίνεται με τη χρήση της OCL (Object Centered Language) [45] και πλέον με τη νεότερη έκδοση του συστήματος υποστηρίζεται PDDL, με βλέψεις για υποστήριξη της NDDL. Το GIPO βρίσκεται στην έκδοση IV [46]. Ένα άλλο, εξίσου σημαντικό σύστημα είναι το SIPE-2 [47]. Βασικό σημείο του η απόδοσή του, καθώς δεν αποτελεί μόνο ένα εργαλείο οπτικοποίησης και βοήθησης του χρήστη αλλά συμπεριλαμβάνει και δικά του ευριστικά συστήματα, που αποτελούν ξεχωριστό κομμάτι της κατεύθυνσης της έρευνας του συστήματος. Μαζί με τα εργαλεία οπτικοποίησης και αναπαράστασης πληροφορίας, το SIPE-2 προσφέρει και επισκόπηση της εκτέλεσης του πλάνου, όπου ο χρήστης δύναται να εισάγει νέα πληροφορία στο σύστημα κατά τη διάρκεια της εκτέλεσης. Για την εσωτερική αναπαράσταση γνώσης χρησιμοποιεί το σύστημα ACT. H εργασία βασίζεται στο εργαλείο οπτικοποίησης προβλημάτων σχεδιασμού VLEPpO [48]. Το εργαλείο αυτό αποτελεί ένα πλήρες σύστημα οπτικής ανάλυσης και επίλυσης τέτοιων προβλημάτων. Η βασική του υλοποίηση είναι γραμμένη σε Java και χρησιμοποιεί Java2D/Swing για την οπτικοποίηση. Κύριο μέλημα των σχεδιαστών του είναι η διευκόλυνση των χρηστών του προγράμματος καθώς και η αύξηση της αποτελεσματικότητάς τους. Για την ενδιάμεση αναπαράσταση και επεξεργασία της πληροφορίας των προβλημάτων το VLEPpO χρησιμοποιεί τη γλώσσα αναπαράστασης PDDL και πολλά απο τα γλωσσικά ιδιώματα της υλοποιούνται και μεταφράζονται ως κομμάτια του γραφικού περιβάλλοντος, άρρηκτα συνδεδμένα με το εργαλείο. Το VLEPpO ξεκίνησε ως επέκταση του VitaPlan [49].

42

43 3 Εργαλεία και υλοποίηση Για τη καλύτερη κατανόηση της εργασίας, απαιτείται μια εξοικοίωση με το τεχνολογικό stack που χρησιμοποιηθήκε για την ανάπτυξή της. Στο κεφάλαιο αυτό θα εξηγηθούν και θα αιτιολογηθούν οι επιλογές των εκάστωτε βιβλιοθηκών επέκτασης κώδικα αλλά και οι επιλογές των εργαλείων μέσω των οποίων αναπτύχθηκε η παρούσα εργασία. 3.1 Γλώσσες υλοποίησης Για να ολοκληρωθεί ο σκοπός αυτής της εργασίας, αναπτύχθηκε λογισμικό σε τρία λογικά μέρη. Το κομμάτι της υπηρεσίας διαδικτύου, το κομμάτι της λογικής της επίλυσης και τέλος η επέκταση του γραφικού περιβάλλοντος VLEPpO έτσι ώστε να αναγνωρίζει την νέα υπηρεσία αλλά και να διαθέτει νέα λειτουργικότητα, με βάση πλέον τις δυνατότητες της υπηρεσίας διαδικτύου. Χάρην ευκολίας και συντομίας, για την υλοποίηση της υπηρεσίας ιστού χρησιμοποιήθηκε η γλώσσα PHP [50]. Μέσω τρίτων βιβλιοθηκών προστέθηκε λειτουργικότητα η οποία εξυπηρετεί την εύκολη διασύνδεση της υπηρεσίας με WSDL-capable πελάτες (Web Service Description Language) [34]. Περισσότερα σε επόμενο κεφάλαιο που αναλύει το κομμάτι της υπηρεσίας. Όσων αφορά το κομμάτι της λογικής της υπηρεσίας αλλά και το κομμάτι της επέκτασης του VLEPpO, χρησιμοποιήθηκε η γλώσσα προγραμματισμού Java [51] και βιβλιοθήκες τρίτων. Το ίδιο το VLEPpO είναι υλοποιημένο σε Java2D και Swing Framework [52] ενώ οι πιο ολοκληρωμένες υλοποιήσεις του αλγορίθμου Graphplan, πάνω στον οποίο βασίζεται η λογική επίλυσης, είναι υλοποιημένες σε Java. Η επιλογή των γλωσσών, όπως αναφέρθηκε, έγινε για λόγους ευκολίας της ανάπτυξης αλλά και λόγους ικανοποίησης των εξαρτήσεων της υλοποίησης απο τρίτους παράγοντες που ήτανε απαραίτητοι για την ολοκλήρωση της εργασίας. 31

44 Κεφάλαιο 3. Εργαλεία και υλοποίηση Μηνύματα και μορφή περιεχομένου Μέσω της περιγραφής WSDL που παρέχεται απο την υπηρεσία, περιγράφονται με λεπτομέρεια τα μηνύματα SOAP (Simple Object Access Protocol) [35] που πρέπει να υλοποιεί ο οποισδήποτε client της υπηρεσίας ιστού. Με αυτό το τρόπο αποφεύγεται η ανταλλαγή άσκοπης πληροφορίας και όλοι οι χρήστες έχουν την ίδια περιγραφή, κάτι που διευκολύνει και το σχεδιασμό της λογικής απο τη πλευρά των τυχών clients. Για το payload όμως των μηνυμάτων που ανταλλάσσονται, επιλέχθηκε η αναπαράσταση JSON (Javascript Object Notation) [39]. Ο λόγος της επιλογής χρήσης της JSON σε ήδη υπάρχοντα μηνύματα SOAP ήτανε και άλλη μια φορά η ευκολία ανάπτυξης που προσφέρει η JSON σε σύγκριση με την XML, που αποτελεί την βάση των SOAP μηνυμάτων αλλά και το γεγονός οτι αποτελεί ένα ευρέως αναγνωρισμένο πρότυπο αναπαράστασης πληροφορίας που υποστηρίζεται απο τις περισσότερες γλώσσες προγραμματισμού. Η JSON, στη πιο απλή μορφή της, αποτελεί ένα απλό key-value σχήμα, με υποστήριξη για την ύπαρξη πινάκων αλλά και εμφώλευσης. Τα αποτελέσματα των μεθόδων της υπηρεσίας ιστού δεν απαιτούν κάτι πιο περίπλοκο για την αναπαράσταση της πληροφορίας που έπρεπε να μεταφερθεί στους χρήστες της υπηρεσίας, οπότε και η JSON αποτέλεσε ιδανική λύση για αυτή τη περίπτωση. Στην περίπτωση της PHP η ίδια η γλώσσα παρέχει έτοιμες μεθόδους για αναδίπλωση ή εμφώλευση JSON. Καμία εξωτερική βιβλιοθήκη δε χρειάστηκε στη περίπτωση αυτή καθώς η βασική βιβλιοθήκη της γλώσσας είναι σχεδιασμένη ώστε να μπορεί να αντιμετωπίσει ακριβώς τέτοια προβλήματα. Στα δύο υπόλοιπα κομμάτια της υλοποίησης που αφορούσαν Java κώδικα, χρησιμοποιήθηκε η βιβλιοθήκη GSON [53] που αποτελεί κομμάτι εργαλείων για Java υλοποιημένο απο τη Google. Αποτελεί ένα project ανοιχτού λογισμικού κάτω απο την άδεια ανοιχτού λογισμικού Apache Foundation 2.0. Πιο συγκεκριμένα, η GSON αποτελεί μια βιβλιοθήκη για διευκόλυνση της επεξεργασίας JSON αναπαραστάσεων. Η βασική ιδέα της GSON ειναι η αντιστοίχιση των JSON μηνημάτων σε αντικείμενα Java και το αντίστροφο με ελάχιστη καταβολή προσπάθειας απο τον developer. Ακόμα και αν οι τύποι των πεδίων που βρίσκονται στο μήνυμα είναι άγνωστοι, η βιβλιοθήκη μπορεί να δημιουργήσει τις αντίστοιχες αναπαραστάσεις. Τα κύρια ωφέλη απο τη χρήση της συγκεκριμένης βιβλιοθήκης είναι για άλλη μια φορά η ευκολία ανάπτυξης και η μείωση του συνολικού χρόνου ανάπτυξης.

45 Κεφάλαιο 3. Εργαλεία και υλοποίηση Αναπαράσταση προβλήματος και πεδίου To VLEPpO ήδη αποτελεί μια προσπάθεια η οποία βασίζεται στην PDDL για την αναπαράσταση του προβλήματος προς εξέταση και του πεδίου του οπότε η χρήση της ήτανε απαραίτητη και στα πλαίσια της παρούσας διπλωματικής. Αν και το VLEPpO ήδη είχε υλοποιημένο έναν πολύ βασικό parser για PDDL, δεν ήτανε αρκετός ή μεταφέρσιμος για να μπορέσει εύκολα να χρησιμοποιηθεί απο το κομμάτι της λογικής του service που είναι υλοποιημένο σε Java. Το πρόβλημα και το πεδίο αποτελούν την είσοδο και την έξοδο των μεθόδων της υλοποιημένης υπηρεσίας. Για την ευκολότερη κωδικοποίηση, αποκωδικοποίηση και έλεγχο εγκυρότητας της PDDL, τα πλέον απαραίτητα κομμάτια της υλοποίησης της εργασίας, χρησιμοποιήθηκε η βιβλιοθήκη PDDL4J [54]. H βιβλιοθήκη αποτελεί και αυτή έργο ανοιχτού λογισμικού με άδεια LGPL. Πιο συγκεκριμένα, χρησιμοποιήθηκε ο PDDL parser της βιβλιοθήκης ενώ το project προσφέρει πολλά περισσότερα όσων αφορά λειτουργικότητα σχετικά με PDDL. Για το κομμάτι του ίδιου του service που είναι γραμμένο σε PHP, δε χρησιμοποιήθηκε κάποια βιβλιοθήκη καθώς δε χρειάζεται να έχει τη δυνατότητα να επεξεργαστεί PDDL. 3.4 Αλγόριθμος εύρεσης εγκυρότητας Για την υλοποίηση της λογικής της υπηρεσίας έπρεπε να επιλεχθεί κάποιος μοντέρνος επιλυτής προβλημάτων σχεδιασμού. Αποφασίστηκε να χρησιμοποιηθεί ο αλγόριθμος Graphplan, κυρίως για την ταχύτητα του αλγορίθμου αλλά και το οτι είναι δεν υπήρχε άλλο εργαλείο που να χρησιμοποιεί επιλυτή προβλημάτων σχεδιασμού που να βασίζεται σε γράφους σχεδιασμού. Σκοπός της εργασίας δεν αποτελεί απλά η ενσωμάτωση του Graphplan αλλά και η παραμετροποίησή του με τέτοιο τρόπο ώστε να διευκολύνει τους πελάτες της υπηρεσίας στο να παρουσιάσουν πληροφορία. Καθώς ο κύριος client της υπηρεσίας είναι το πρόγραμμα VLEPpO, η γλώσσα υλοποίησης που έπρεπε να επιλεγεί ήτανε και πάλι η Java. Η πιο ολοκληρωμένη υλοποίηση του αλγορίθμου Graphplan σε γλώσσα προγραμματισμού Java αποτελεί η βιβλιοθήκη JavaGP [55]. Πρόκειται για μια υλοποίηση που είναι μέρος μιας προσπάθειας υλοποίησης του αλγορίθμου σε αρκετές γνωστές γλώσσες προγραμματισμού.

46 Κεφάλαιο 3. Εργαλεία και υλοποίηση Υλοποίηση υπηρεσίας Όπως ήδη αναφέρθηκε, η παρούσα εργασία απαιτεί τη δημιουργία μιας υπηρεσίας ιστού που θα επεξεργάζεται προβήματα σχεδιασμού και θα επιστρέφει πλάνα λύσεων ή τους λόγους της μη επιλυσιμότητάς τους. Για την υλοποίηση της ίδιας της υπηρεσίας, προτιμήθηκε η γλώσσα προγραμματισμού PHP. Προσφέρει αμεσότητα και ευελιξία κατά την ανάπτυξη της εφαρμογής ενώ η διαδικασία της μεταφοράς της υπηρεσία σε διαφορετικούς hosts είναι πολύ πιο εύκολη. Η υπηρεσία βρίσκεται σε κάποιο εξυπηρετητή και για να μπορέσουν να συνδεθούν οι πελάτες/χρήστες της υπηρεσίες, πρέπει να ζητήσουν τη WSDL περιγραφή της η οποία παράγεται απο αυτή κάθε φορά που της το ζητείται. Με τη χρήση της εξωτερικής βιβλιοθήκης WSDL-Creator [56]. Με αυτό το τρόπο δημιουργούνται αυτόματα οι περιγραφές μόνο με τη χρήση annotated tags κατά τη περιγραφή του documentation της κανονικής λειτουργικότητας στο σχετικό κώδικα. Η βιβλιοθήκη αναλαμβάνει να δημιουργήσει τη περιγραφή δυναμικά κάθε φορά που ένας πελάτης της υπηρεσίας το απαιτεί. Έτσι, όποιες αλλαγές γίνονται στο κώδικα της υπηρεσίας θα περιγράφονται και αυτόματα ως WSDL. Προϋπόθεση είναι το documentation να είναι ένα έγκυρο PHPDoc έγγραφο. Η διαχείριση των απαραίτητων SOAP μηνημάτων γίνεται χωρίς χρήση απο κάποια εξωτερική βιβλιοθήκη. Ενδεικτικά, η υπηρεσία βρίσκεται σε εξυπηρετητές της Openshift, που αποτελεί μια υπηρεσία Platform-as-a-Service. To URI που χρησιμοποιείται αποτελεί subdomain της υπηρεσίας και χρησιμοποιείται αποκλειστικά για την εξυπηρέτησή της [57]. Το ίδιο URI χρησιμοποιείται και για την ανάκτηση της WSDL περιγραφής της υπηρεσίας αρκεί να δωθεί ως όρισμα η ακολουθία χαρακτήρων wsdl [58]. Κατά τη διάρκεια της ανάπτυξης της υπηρεσίας, χρησιμοποιήθηκε το εργαλείο Composer [59]. Αποτελεί έναν διαχειριστή εξαρτήσεων βιβλιοθηκών για τη γλώσσα PHP και υποστηρίζει την αυτόματη εύρεση και διαχείριση των απαραίτητων βιβλιοθηκών ενός project. Μέσω αυτού γίνεται πολύ εύκολη η μεταφορά της υπηρεσίας σε κάποιο άλλο εξυπηρετητή αλλά και η διαχείριση/εγκατάσταση των βιβλιοθηκών απο τρίτους.

47

48 4 Οι υπηρεσίες ιστού Σκοπός της παρούσας εργασίας είναι η ευκολότερη επίλυση και αντιμετώπιση προβλημάτων σχεδιασμού. Βασίζεται σε ήδη υπάρχουσες προσεγγίσεις ή τις επεκτείνει αλλά υλοποιήθηκε και λειτουργικότητα που δεν υπήρχε. Καθώς μερικά απο τα πιο σημαντικά κριτήρια κατά την ανάπτυξη της εργασίας ήτανε η ευκολότερη και γρηγορότερη ανάπτυξη του απαραίτητου λογισμικού, κάποιες απαραίτητες λειτουργίες υλοποιήθηκαν και προσφέρονται με τη μορφή υπηρεσίας ιστού. Έτσι οι λύσεις που προσφέρονται απο την εργασία γίνονται ευκολότερα προσβάσιμες σε τρίτους ή σε άλλες προσπάθειες. Στο κεφάλαιο που ακολουθεί θα αναλυθούν οι λειτουργίες που προσφέρονται απο την υπηρεσία, η λογική που αυτές περικλύουν καθώς και θα παρουσιαστούν κάποια κομμάτια της υλοποίησή τους, με σκοπό να γίνει ευκολότερη κατανόηση του όλου συστήματος απο τον αναγνώστη. 4.1 Λειτουργίες υπηρεσιών ιστού Η υπηρεσία ιστού που σχεδιάστηκε και υλοποιήθηκε στα πλαίσια της εργασίας, έχει ως βασικό γνώμονα τη προσφορά λειτουργιών που σχετίζονται με και διευκολύνουν την επίλυση προβλημάτων σχεδιασμού. Οι λειτουργίες που αυτή προσφέρει είναι οι εξής: Εύρεση δυναμικών ή στατικών γεγονότων: Δεδομένου ενός προβλήματος και ενός πεδίου, η υπηρεσία επιστρέφει μια λίστα απο τα στατικά και τα δυναμικά γεγονότα. Επιλυσιμότητα προβλημάτων και επιτευξιμότητα στόχων: Δεδομένου ενός προβλήματος, ενός πεδίου και μιας λίστας απο στόχους, η υπηρεσία επιστρέφει ποιοί απο αυτούς τους στόχους είναι επιτεύξιμοι, το γιατί αυτοί οι στόχοι είναι ή δεν είναι επιτεύξιμο αλλά και το αν το ίδιο το πρόβλημα είναι επιλύσιμο στο σύνολό του. 36

49 Κεφάλαιο 4. Οι υπηρεσίες ιστού 37 Δεδομένου του σκοπού της εργασίας, οι παραπάνω λειτουργίες δημιουργήθηκαν για να καλύψουν σημαντικά κενά άλλων εργαλείων επίλυσης προβλημάτων σχεδιασμού. Για παράδειγμα, ένας χρήστης του προγράμματος VLEPpO θα μπορούσε να βρεί γιατί το πρόβλημα και το πεδίο που σχεδίασε δεν είναι επιλύσιμα λόγω λάθος σχεδιασμού και να το διορθώσει. Ακολουθεί αναλυτικότερη περιγραφή των λειτουργιών στα επόμενα κομμάτια του κεφαλαίου. 4.2 Δυναμικά/στατικά γεγονότα Το αν κάποιο γεγονός του προβλήματος είναι δυναμικό ή στατικό αποτελεί πληροφορία αρκετά σημαντική κατα τη διάρκεια του σχεδιασμού του προβλήματο απο κάποιο χρήστη. Παραδείγματος χάρην, ένας χρήστης σχεδιάζει κάποια ενέργεια με τη βοήθεια ενός γραφικού προγράμματος, όπως το VLEPpO. Ο χρήστης όμως ξεχνά να εισάγει ένα γεγονός στη λίστα προσθήκης γεγονότων μιας έγκυρης ενέργειας του προβλήματος. Το εργαλείο θα έπρεπε να τον προειδοποιεί οτι το γεγονός πρόκειται να παραμείνει για πάντα στάσιμο Ορισμός δυναμικότητας Η δυναμικότητα ενός προβλήματος ορίζεται απο την ικανότητα κάποιας ενέργειας να το διαγράψει, σε κάποια φάση του προβλήματος. Πιο συγκεκριμένα: Στατικό γεγονός: Ένα γεγονός S το οποίο ανήκει σε ένα πρόβλημα P. Άν το S ανήκει στη λίστα γεγονότων που περιγράφουν την αρχική κατάσταση του προβλήματος και δεν υπάρχει καμία ενέργεια που να διαγράφει το γεγονός αυτό, τότε το γεγονός θεωρείται στατικό. Δυναμικό γεγονός: Το αντίθετο του στατικού γεγονότος. Πρόκειται για ένα γεγονός S που βρίσκεται στην αρχική κατάσταση ενός προβλήματος P και υπάρχει ενέργεια που ανήκει στο πρόβλημα και διαγράφει το γεγονός Εύρεση δυναμικότητας γεγονότων Γνώριζοντας το σύνολο των ενεργειών, η υλοποίηση του Graphplan απο το JavaGP δύναται να επιστρέψει το σύνολο των ενεργειών ενός προβλήματος που είναι ικανές

50 Κεφάλαιο 4. Οι υπηρεσίες ιστού 38 να εκτελεστούν. Στη συνέχεια, δημιουργείται μια υπερλίστα απο τα γεγονότα που υπάρχουν στη λίστα διαγραφής γεγονότων της κάθε μίας εκτελέσιμης ενέργειας. Εάν αυτή η λίστα παρατεθεί με την λίστα όλων των γεγονότων του προβλήματος, στην οποία περιέχονται και τα γεγονότα της αρχικής κατάστασης του προβλήματος, τότε θα παραμείνουν σε αυτή μόνο τα γεγονότα που δεν αφαιρούνται ποτέ απο κάποια ενέργεια και με βάση τον ορισμό που δώθηκε παραπάνω πρόκειται για το σύνολο των στατικών γεγονότων του προβλήματος. Για να βρεθούν τα δυναμικά γεγονότα που ανήκουν στην αρχική κατάσταση, αρκεί να αφαιρεθούν απο αυτή τα όποια στατικά γεγονότα της ανήκουν, εφόσων υπάρχει πλέον η λίστα με τα στατικά απο όλο το πρόβλημα. 4.3 Επιλυσιμότητα στόχων Η δεύτερη λειτουργία της υπηρεσίας, αυτή της εύρεσης της επιλυσιμότητας των στόχων ενός προβλήματος επικεντρώνεται, όπως αποκαλύπτεται και απο το όνομά της, στους στόχους του προς εξέταση προβλήματος. Χρησιμοποιώντας τη περιγραφή του πεδίου και ένα σύνολο απο στόχους, η λειτουργία επιστρέφει πόσοι και ποιοί απο αυτούς τους στόχους είναι δυνατόν να επιτευχθούν καθώς και το λόγο για τον οποίο είναι μη-επιτεύξιμοι Περιπτώσεις μη-επιλυσιμότητας Και αυτή η λειτουργία της υπηρεσίας βασίστηκε στις δυνατότητες που προσφέρει ο αλγόριθμος Graphplan και η υλοποίησή του. Ο Graphplan σταματά την εκτέλεσή του και για το γεγονός του αν στο τελευταίο επίπεδο προτάσεων (level off), όλοι οι στόχοι του προβλήματος είναι αμοιβαίως αποκλειώμενοι. Η αναζήτηση για την επιλυσιμότητα των στόχων που υλοποιήθηκε στα πλαίσια της εργασίας αυτής βασίζεται στην ικανότητα του Graphplan να φτάνει σε level-off. Επίσης, το να φτάσει ο αλγόριθμος σε επίπεδο level off είναι πιο γρήγορο σα διαδικασία απο το να αναζητά λύση σε κάθε ενδιάμεσο επίπεδο που δημιουργείται κατά την εκτέλεση του. Με τα παραπάνω ως δεδομένα, η περιγραφή της διαδικάσιας περιορίζεται στα εξής γεγονότα: Είσοδος: To πρόβλημα, το πεδίο του προβλήματος και τέλος ένα σύνολο απο προς εξέταση για την επιλυσιμότητά τους στόχοι. Level-off : Ο αλγόριθμος αφήνει τον γράφο να φτάσει σε level off.

51 Κεφάλαιο 4. Οι υπηρεσίες ιστού 39 Έλεγχος περιπτώσεων: Ελέγχονται συγκεκριμένες περιπτώσεις μέσω των οποίων ο αλγόριθμος αποφασίζει αν ένας στόχος είναι επιλύσιμος. Να σημειωθεί οτι ο έλεγχος των ειδικών περιπτώσεων γίνεται στα δύο τελευταία επίπεδα γεγονότων, στο τελευταίο επίπεδο των ενεργειών και στη συνολική λίστα ενεργειών Στόχοι χωρίς ενέργεια Ένας στόχος θα μπορούσε να βρίσκεται σε ένα πρόβλημα αλλά να μην υπάρχει καμία ενέργεια που να τον περιέχει σαν θετικό αποτέλεσμα της. Το να αναζητηθούν τέτοιο στόχοι επιτυγχάνεται με σειριακή εξέταση των ενεργειών και των θετικών αποτελεσμάτων τους. Βασική προϋπόθεση ο στόχος να μη βρίσκεται στην αρχική κατάσταση του προβλήματος Αμοιβαίως αποκλειόμενοι στόχοι H δεύτερη ειδική περίπτωση που πρέπει να εξεταστεί απο την λειτουργία είναι η περίπτωση που ο προς εξέταση στόχος ανήκει σε αμοιβαίως αποκλειόμενη σχέση με κάποιον άλλο. Οι σχέσεις αποκλεισμού έχουν ήδη αναφερθεί στο υποκεφάλαιο Ο ίδιος ο αλγόριθμος του Graphplan απαιτεί την αποθήκευση των περιπτώσεων αμοιβαίων αποκλεισμών που συναντά κατά την εκτέλεσή του. Έτσι με το ίδιο σκεπτικό με τη πρώτη περίπτωση στόχων, αρκεί πάλι η εκτέλεση του αλγορίθμου μέχρι το level off, στο οποίο θα βρίσκονται όλοι οι αποκλεισμοί συγκεντρωμένοι. Όσων αφορά την διαδικασία που ακολουθείται για την κάθε κατηγορία αποκλεισμού, ισχύουν τα εξής: Ασυνεπή αποτελέσματα: Για δύο ενέργειες, χρησιμοποιείται η λίστα προσθήκης της πρώτης με τη λίστα διαγραφής ενεργειών της δεύτερης. Η πράξη συνόλων της τομής θα εφαρμοστεί πάνω σε αυτές τις δύο λίστες και αν το αποτέλεσμα είναι μη-μηδενικό τότε ισχύει η συνθήκη για τη συγκεκριμένη κατηγορία. Παρεμβολή: Παρομοίως με τα ασυνεπή αποτελέσματα, για ένα ζεύγος ενεργειών ελέγχονται δύο λίστες αλλά αυτή τη φορά χρησιμοποιείται η λίστα διαγραφής της πρώτης ενέργειας και η λίστα προϋποθέσεων της δεύτερης.

52 Κεφάλαιο 4. Οι υπηρεσίες ιστού 40 Ανταγωνιστικές προϋποθέσεις: Σε αυτή τη περίπτωση βοηθά η πρότερη γνώση την οποία χρησιμοποιεί ο αλγόριθμος του Graphplan. Για να αποφασιστεί αν ένα ζεύγος ενεργειών είναι αμοιβαίως αποκλειόμενο λόγω ανταγωνιστικών προϋποθέσεων, χρησιμοποιείται η λίστα που δημιουργεί ο αλγόριθμος απο το προηγούμενο επίπεδο. Λόγω της φύσης των αποκλεισμών, ένα ζευγάρι ενεργειών μπορεί να είναι αμοιβαίως αποκλειόμενο με παραπάνω απο έναν απο τους προαναφερθέντες λόγους. Για να γίνεται κατανοητό απο έναν χρήστη ενός εργαλείου βοήθησης για προβλήματα σχεδιασμού το γιατί ένας στόχος δε πετυχαίνεται, εάν αυτό είναι λόγω αμοιβαίων αποκλεισμών, του παρουσιάζονται τα ζεύγη των αμοιβαίως αποκλειόμενων ζεύγων αλλά και ο τύπος του αποκλεισμού Ανυπαρξία ενεργειών στο level off H τελευταία περίπτωση που εξετάζεται απο την υπηρεσία για την επιλυσιμότητα ενός στόχου είναι να μη βρίσκεται οποιαδήποτε ενέργεια επιτυγχάνει το στόχο στο επίπεδο level off. Για να συμβεί αυτό πρέπει να μην υπάρχει η ενέργεια στο προηγούμενο επίπεδο απο το level-off αλλιώς θα μεταφερότανε μέσω των no-op τελεστών. Η υπηρεσία επιστρέφει μια απάντηση η οποία περιέχει το στόχο ο οποίος δε μπορεί να επιτευχθεί λόγω ανυπαρξίας ενέργειας αλλά και μια λίστα τις ενέργειες που μπορούν να τον πετύχουν παρόλο που αυτές μπορεί να μην υπάρχουν στο γράφο κατά το level off, μαζί με τις προϋποθέσεις τους. Αυτό γίνεται για να επισπευθεί η διαδικασία της αναζήτησης της ενέργειας που ευθύνεται για την μη-επιλυσιμότητα. Η διαδικασία αυτή απαιτεί την εκτέλεση της ίδιας μεθόδου της υπηρεσία αλλά σαν όρισμα παίρνει τις προϋποθέσεις της αντί για τους αρχικούς στόχους, έτσι ώστε να διερευνηθεί και το ποιές απο αυτές δεν ικανοποιούνται.

53

54 5 Οπτικοποίηση Στο συγκεκριμένο κεφάλαιο θα γίνει μια ανάλυση της λειτουργικότητας που προσφέρει το εργαλείο επίλυσης προβλημάτων σχεδιασμού Vleppo αλλα και της νέας διασύνδεσης του εργαλείου με τις υπηρεσίες ιστού που αναπτύχθηκαν στα πλαίσια της εργασίας. Μαζί με τη διασύνδεση του προγράμματος με την υπηρεσία θα γίνει και ανάλυση της νέας λειτουργικότητας που απαιτήθηκε για να γίνει εφικτή η διασύνδεση. Στο ίδιο κεφάλαιο θα παρουσιαστεί και η νέα λειτουργικότητα του λογισμικού. Η συνολική αξιολόγηση έγινε στα πλαίσια μαθήματος του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης και συγκεκριμένα στο τμήμα Πληροφορικής. Οι φοιτητές που συμμετείχαν χρησιμοποίησαν την νέα έκδοση του προγράμματος αρχικά έχωντας ήδη χρησιμοποιήσει μια παλαιότερη έκδοση που δεν περιείχε τις προσθήκες που προσφέρει η νέα υλοποίηση του VLEPpO. 5.1 Ανάλυση υπάρχουσας υλοποίησης Για τη βάση και ανάπτυξη ενος γραφικού client στις υπηρεσίες ιστού, δημιουργήθηκε μια επέκταση του προγράμματος VLEPpO [48]. Το VLEPpO αναπτύχθηκε με σκοπό να αποτελέσει ένα εργαλείο που θα προσφέρει οπτική ανάδραση στη διαδικασία σχεδιασμού και επίλυσης των διάφορων προβλημάτων σχεδιασμού. H υλοποίηση του VLEPpO είναι γραμμένη σε Java και χρησιμοποιεί τη Java2D για να παράγει τις γραφικές αναπαραστάσεις που χρειάζονται για την εκάστοτε οπτικοποίηση που πρέπει να εμφανίσει στο χρήστη σε συνδιασμό με το Swing framework για να διαχειριστεί δυναμικά το εκάστωτε παραθυρικό περιβάλλον πάνω στο οποίο θα προβληθεί η οπτικοποίηση. Στην εικόνα 5.1 φαίνεται η αρχική κατάσταση με την οποία εκκινεί ένα τυπικό instance του VLEPpO. Πρόκειται για τρία πλαίσια παραθύρων JInternalFrame, το καθένα με διαφορετικό σκοπό και λογική, συνοδευόμενα απο τη μπάρα του μενού 42

55 Κεφάλαιο 5. Οπτικοποίηση 43 Ε 5.1: Η αρχική κατάσταση του VLEPpO. στο πάνω μέρος του παραθύρου, υλοποιημένη σαν υποκλάση της JMenu. Τα βασικά αυτά JFrames είναι τρία, το πρώτο αφορά την οντολογία του προβλήματος, στο δεύτερο παρουσιάζονται οι τελεστές και οι λίστες προσθήκης/αφαίρεσης και στο τελευταίο το ίδιο το πρόβλημα. Τα γραφικά που εμφανίζονται εντός του κάθε πλαισίου δημιουργούνται με τη χρήση των AWT και Java2D βιβλιοθηκών γραφικών. Καθώς οι δύο βιβλιοθήκες αποτελούν κομμάτι των βασικών βιβλιοθηκών της Java, δεν χρειάστηκε να χρησιμοποιηθεί κάποια εξωτερική βιβλιοθήκη Οντολογία Με την χρήση των AWT και Java2D προσφέρονται έτοιμες κλάσεις για την δημιουργία βασικών σχημάτων, κάτι που επιτάχυνε τη διαδικάσία ανάπτυξης. Μέσω αυτών των σχημάτων παρουσιάζεται στον χρήστη του VLEPpO η πληροφορία για το πεδίο ή το πρόβλημα. Έτσι δημιουργήθηκαν υλοποιήσεις για την οπτικοποίηση βασικών εννοιών και στοιχείων του χώρου των προβλημάτων σχεδιασμού. Μερικές απο τις πιο βασικές έννοιες που οπτικοποιούνται απο το VLEPpO είναι:

56 Κεφάλαιο 5. Οπτικοποίηση 44 Ε 5.2: Οπτικοποίηση βασικών εννοιών και στοιχείων. Κλάση: αναπαριστά τη βασική μονάδα πληροφορίας. Μπορούν να σχηματίσουν συσχετίσεις. Συσχέτιση: αναπαριστά την συσχέτιση μεταξύ μονάδων πληροφορίας. Σταθερά: αναπαράσταση της έννοιας της σταθεράς στα πλαίσια της οντολογίας. Τελεστές λογικής Boole: για την ευκολότερη κατανόηση της ίδιας της οντολογίας, υλοποιήθηκαν οπτικοποιήσεις και για αυτούς. Συναρτήσεις: αναπαράσταση της έννοιας της συνάρτησης με γραφικό τρόπο. Όλες οι αναπαραστάσεις είναι μετακινήσιμες πάνω στο frame της οντολογίας ενώ κάθε μία έχει το δικό της EventListener για να συνδεθεί με ένα context menu το οποίο καλείται απο την ενέργεια του δεξιού κλίκ του ποντικιού όταν ο κέρσορας βρίσκεται πάνω τους. Μία ανασκόπηση των βασικών γραφικών στοιχείων της οντολογίας φαίνεται στην εικόνα 5.2. Σε αυτή την εικόνα η κλάση Class1 συνδέεται με τις σχέσεις Relation1 και Relation2, κάτι που αναπαρίσταται με την γραφική σύνδεσή τους. Ένα πιο συγκεκριμένο παράδειγμα φαίνεται στην εικόνα 5.3 όπου δηλώνονται οι συσχετίσεις της οντότητας box με τις σχέσεις ontable, on και isfree Τελεστές Το δεύτερο JFrame του βασικού παραθύρου χρησιμοποιείται για να οπτικοποιηθούν οι τελεστές, τα προαπαιτούμενα στοιχεία τους και τέλος τα αποτελέσματά τους. O

57 Κεφάλαιο 5. Οπτικοποίηση 45 Ε 5.3: Παράδειγμα σχεδιασμού οντολογίας. χρήστης μπορεί να σύρει σχέσεις και στοιχεία του πεδίου απο το αντίστοιχο JFrame της οντολογίας και να χρησιμοποιήσει τα γραφικά σε αυτό των τελεστών. Στην εικόνα 5.4 φαίνεται ένα παράδειγμα με δύο τελεστές. Συγκεκριμένα, περιγράφονται οι τελεστές movefromtable και move. Ο τελεστής movefromtable απαιτεί να ισχύει για τη μία παράμετρό του το ontable και για τη δεύτερη το isfree. Ως αποτέλεσμα έχει το οτι θα προστεθεί στη λίστα γεγονότων το A on B. Αντίστοιχα ισχύουν και για τον τελεστή move που εμφανίζεται και αυτός. Να σημειωθεί οτι ο τελεστής move θα έπρεπε να έχει ως προαπαιτούμενο το γεγονός isfree για το C αλλά η εικόνα προέρχεται απο domain που είναι εσκεμμένα λάθος, περισσότερα στο κεφάλαιο της αξιολόγησης Πρόβλημα Το τελευταίο JFrame που παρουσιάστηκε είναι αυτό του προβλήματος. Σε αυτό παρουσιάζεται η περιγραφή του προβλήματος προς εξέταση μια απλή γραφική αναπαράσταση. Συγκεκριμένα, παρουσιάζεται η αρχική κατάσταση που έχει το πρόβλημα ως σύνολο απο συσχετίσεις γεγονότων. Με τον ίδιο τρόπο παρουσιάζεται και η τελική κατάσταση του συγκεκριμένου προβλήματος. Παράδειγμα ενός προβλήματος παρουσιάζεται στην εικόνα 5.5. Στην αρχική του κατάσταση φαίνεται οτι ισχύει ontable A, on C B, ontable C, ontable B και στη τελική του κατάσταση το μόνο γεγονός on A B. Το πρόβλημα φαίνεται να έχει λάθος απο την αρχική του κατάσταση καθώς το στοιχείο Β φαίνεται να είναι πάνω στο τραπέζι και το στοιχείο C ταυτόχρονα (δηλαδή στην αρχική κατάσταση).

58 Κεφάλαιο 5. Οπτικοποίηση 46 Ε 5.4: Οπτικοποίηση τελεστών Μενού και πρόσθετη λειτουργικότητα To μενού του VLEPpO υποστηρίζει ένα σύνολο απο ενέργειες που δεν χρήζουν οπτικοποίησης ή είναι δεν έχουν σχέση με την πληροφορία που πρέπει να οπτικοποιηθεί. Εκτός των δυνατοτήτων αποθήκευσης της τρέχουσας οπτικοποίησης του πεδίου ή του προβλήματος, δίνεται η δυνατότητα προβολής του παραγόμενου PDDL, με βάση την οπτικοποίηση, καθώς και της επίλυσης του προβλήματος. Σε όλες τις περιπτώσεις είναι δυνατή η αποθήκευση της αναπαράστασης οποιουδήποτε κομματιού της οπτικοποίησης σε εξωτερικό αρχείο. Το VLEPpO υποστηρίζει την εξαγωγή της σχεδίασης σε PDDL αρχεία αλλά και στο δικό του τύπο VVF. H αποθήκευση/εισαγωγή και των δύο τύπων είναι δυνατή απο το μπάρα του μενού.

59 Κεφάλαιο 5. Οπτικοποίηση 47 Ε 5.5: Οπτικοποίηση προβλήματος. Μια απο τις κυριότερες λειτουργικότητες που προσέφερε το VLEPpO, δηλαδή η επίλυση προβλημάτων με τη χρήση σχεδιαστή, δίνεται απο πάλι απο το μενού του και συγκεκριμένα απο την επιλογή Planner. Για να μπορέσει να επιλύσει τα τυχών προβλήματα που σχεδιαζόντουσαν απο το χρήστη, χρησιμοποιεί τον σχεδιαστή LPG-td. Ο σχεδιαστής αυτός δεν είναι υλοποιημένος εντός του κανονικού προγράμματος και εκτελείται σε εξωτερική διεργασία απο το VLEPpO. Μάλιστα, το εκτελέσιμο του LPG-td που συνοδεύει το VLEPpO είναι μια υλοποίηση που αφορά μόνο το λειτουργικό Microsoft Windows, κάτι που αναιρεί το πλεονέκτημα της μεταφερσιμότητα που προσφέρει η αρχική υλοποίηση του VLEPpO καθώς είναι υλοποιημένο σε γλώσσα προγραμματισμού Java. 5.2 Ανάλυση επέκτασης Όπως αναφέρθηκε και στο προηγούμενο υποκεφάλαιο, πολλές απο τις διαδικασίες που χρησιμοποιεί το VLEPpO περιορίζονται σημαντικά απο την επιλογή της πλατφόρμας που θα τρέξει. Ένας απο τους στόχους της εργασίας ήτανε να προσφέρει μεταφερσιμότητα στο VLEPpO με την προσφορά υπηρεσιών ιστού που επιλύουν προβλήματα αντί της χρήσης τοπικά εγκατεστημένου επιλυτή.

60 Κεφάλαιο 5. Οπτικοποίηση 48 Ε 5.6: Η νέα επιλογή μενού με τις υποεπιλογές της. Εκτός όμως απο την ίδια τη λειτουργικότητα προσφερόμενη ως υπηρεσία, κάποια κομμάτις αυτής της νέας λειτουργικότητας προστέθηκαν στο ίδιο το VLEPpO για εκτέλεση τοπικά. Αυτό έγινε για να καλυφθούν περιπτώσεις όπου η υπηρεσία δεν είναι προσβάσιμη στο χρήστη ή είναι αδύνατο να χρησιμοποιηθεί σε λογικά πλαίσια. Η τελευταία περίπτωση αφορά περιπτώσεις όπου υπάρχουν προβλήματα στη ταχύτητα απόκρισης της υπηρεσίας. Χαρακτηριστικό παράδειγμα ο μεγάλος χρόνος απόκρισης σε περιπτώσεις που η είσοδος της λειτουργίας είναι ένα αντίστοιχα μεγάλο σε μέγεθος προβλήμα. Για τη διασύνδεση της πλατφόρμας του VLEPpO με τη νέα υπηρεσία χρησιμοποιήθηκε η βιβλιοθήκη JAX-WS [60]. Μέσω αυτής και με τη χρήση της WSDL που παράγει ο server για την περιγραφή της υπηρεσίας, είναι δυνατή η δημιουργία σύνδεσης του υπάρχοντος codebase του VLEPpO με την υπηρεσία. H JAX-WS αφότου χρησιμοποιήσει τη προσφερόμενη απο την υπηρεσία περιγραφή εισάγει στο project αυτομάτως παραγόμενες κλάσεις. Τα αντικείμενα που μπορούν να παραχθούν μέσω αυτών των κλάσεων διαθέτουν όλες τις μεθόδους και περιγραφές των μεταβλητών εισόδου που θεωρούνται ως απαίτηση απο την υπηρεσία. Η διαχείριση της πληροφορίας γίνεται και πάλι σε μορφή JSON. Για αυτό το λόγο χρησιμοποιείται η βιβλιοθήκη GSON [53] για την απο/κωδικοποίηση στοιχειοσειρών JSON, όπως έγινε και απο τη πλευρά της υπηρεσίας. Οι βασικές νέες λειτουργίες που προσφέρει η υπηρεσία είναι η εύρεση των δυναμικών ή στατικών γεγονότων απο το σύνολο του προβλήματος, η διερεύνηση της επιλυσιμότητας του προβλήματος καθώς και απομακρυσμένη διαδικασία επίλυσης κάποιου ζέυγους πεδίου/προβλήματος. Οι δύο πρώτες ενέργειες προστέθηκαν στη νέα κατηγορία της μπάρας του μενού του VLEPpO με τίτλο Tools κάτω απο τις υποεπιλογές Validate για την εύρεση επιλυσιμότητας και Facts Definitions για την διαδικασία της εύρεσης στατικών και δυναμικών γεγονότων. Αντίστοιχα με τις απομακρυσμένες λειτουργίες, στο ίδιο

61 Κεφάλαιο 5. Οπτικοποίηση 49 Ε 5.7: Παράδειγμα λίστων δυναμικών/στατικών γεγονότων. μενού υπάρχουν και οι υποεπιλογές για τοπική εκτέλεση των δύο αυτών λειτουργιών. Σε αυτές τις περιπτώσεις χρησιμοποιείται ο ίδιος τίτλος με ένδειξη Locally για να υποδείξει την τοποθεσία στην οποία θα εκτελεστεί η λειτουργία. Η εικόνα 5.6 αποτελεί δείγμα απο μια τυχαία εκτέλεση του VLEPpO όπου επιδεικνύεται το υπομενού Eύρεση των δυναμικών/στατικών γεγονότων Για την εύρεση των δυναμικών ή των στατικών γεγονότων ενός προβλήματος επιλέχθηκε η απλή αναπαράσταση δύο διαφορετικών γραφικών λιστών. Η πρώτη λίστα περιέχει τα δυναμικά γεγονότρα ενώ η δεύτερη τα στατικά προβλήματα που βρέθηκαν και επιστράφηκαν απο την απομακρυσμένη υπηρεσία. Η πληροφορία που παρέχεται δεν απαιτεί κάποια περίπλοκη οπτικοποίηση και η εμφάνιση των αποτελεσμάτων μέσω απλών λιστών είναι πιο άμεση διάδραση για το τελικό χρήστη. Παράδειγμα ενός παραθύρου της διεπαφής της διαδικασίας εύρεσης δυναμικών ή στατικών γεγονότων φαίνεται στην εικόνα Eύρεση επιλυσιμότητας Η εύρεση επιλυσιμότητας και κατ επέκταση η εύρεση λαθών πάνω στο σχεδιασμό απο τον ίδιο το χρήστη απαιτεί την παρουσίαση αρκετής πληροφορίας απο την οπτικοποίηση έτσι ώστε ο χρήστης να μπορέσει να κατανοήσει και να αντιμετωπίσει τα τυχών λάθη της σχεδίασης με μεγαλύτερη ευκολία. Το παραπάνω αποτελεί έναν απο τους κύριους λόγους ανάπτυξης της συγκεκριμένης πτυχιακής. Το ίδιο το VLEPpO δε προσέφερε λειτουργίες επίλυσης ή μεθόδους οπτικοποίησης οι οποίες να επικεντρώνονται στο να διευκολύνουν την λογική εξερεύνηση και μελέτη των χαρακτηριστικών διάφορων πεδίων ή προβλημάτων που παρουσιάζουν λογικά προβλήματα.

62 Κεφάλαιο 5. Οπτικοποίηση 50 Ε 5.8: Eύρεση μη επιτεύξιμων στόχων. Μια βασική λειτουργία που πρέπει να υποστηρίζει ένα σύστημα υποβοήθησης διόρθωσης λογικού σχεδιασμού είναι ο διαχωρισμός και η εμφάνιση των επιτεύξιμων και μη επιτεύξιμων στόχων καθώς και η οπτικοποίηση των λόγων για τους οποίους ένας στόχος δεν είναι επιτεύξιμος. Αρχικά, ο χρήστης με την επιλογή του μενού Validate μπορεί να εκκινήσει τη διαδικασία εύρεσης μη-επιλύσιμων στόχων. Το σύστημα επιτρέφει μια λίστα με τα επιλύσιμα και μια με τα μη επιλύσιμα. Παράδειγμα τέτοιας λειτουργικότητας φαίνεται στην εικόνα 5.8. Στο συγκεκριμένο πρόβλημα δεν φαίνεται να υπήρξαν επιλύσιμοι στόχοι για αυτό και η λίστα achievable goals είναι άδεια. Αντιθέτως, η λίστα non-achievable goals περιέχει τους στόχους οι οποίοι δεν είναι επιτεύξιμοι. Η λίστα με τους μη επιτεύξιμους στόχους δίνει τη δυνατότητα ανατροφοδότησης της πληροφορίας στο σύστημα για κάθε ένα στόχο που βρίσκεται σε αυτή. Συγκεκριμένα, στην εικόνα 5.9 φαίνεται η εκτέλεση της ανατροφοδότησης πληροφορίας απο το σύστημα για ένα επίπεδο με στόχο εκκίνησης τον μη επιτεύξιμο δοκιμαστικό στόχο relation4class2obj. Ο χρήστης μπορεί να επιλέξει μεταξύ των ενεργειών που επιθυμεί να εξετάσει. Οι ενέργεις αυτές είναι εγγυημένο οτι επιτυγχάνουν τον στόχο. Με την επιλογή μιας ενέργειας εμφανίζονται οι προϋποθέσεις της στο παράθυρο. Κάνοντας χρήση αντίστοιχου χρωματισμού με τον αρχικό μη επιτεύξιμο στόχο παρουσιάζονται οι

63 Κεφάλαιο 5. Οπτικοποίηση 51 Ε 5.9: Παράδειγμα ανατροφοδότησης. μη επιτεύξιμες προϋποθέσεις της ενέργειας. Οι επιτεύξιμες με τις μη επιτεύξιμες προϋποθέσεις διαχωρίζονται με την επιλογή του κατάλληλου χρωματισμού, όπου πράσινο = επιτεύξιμη και κόκκινο = μη επιτεύξιμη. H διαδικασία επιλογής και ενέργειας γίνεται με απλούς EventListeners πάνω απο το αντικείμενο που αναπαριστά το στόχο ή τις προϋποθέσεις. Σε κάθε τέτοιο αντικείμενο κρατείται μια λίστα με τις ενέργειες που μπορούν να το πετύχουν και αν χρειαστεί, δίνονται στο μηχανισμό ανατροφοδότησης. Η συγκεκριμένη λειτουργία χρησιμοποιείται αναδρομικά για κάθε μη-επιτεύξιμο στόχο, δηλαδή αποστέλλονται ξανά στο σύστημα τα απαραίτητα στοιχεία και το αποτέλεσμα της αναδρομικής εκτέλεσης παρουσιάζεται στο χρήστη στο ίδιο παράθυρο. Με αυτό το τρόπο ο χρήστης μπορεί να καταλάβει ευκολότερα απο που προέρχεται το πρόβλημα που αντιμετωπίζει και να διορθώσει το λάθος στη περιγραφή του. Στην διαδικασία εύρεσης σφαλμάτων ανήκει και η ανακάλυψη αμοιβαίων αποκλεισμών απο το σύστημα. Σκοπός της αυτής της υπολειτουργικότητας είναι, όπως και στις άλλες περιπτώσεις, να διευκολύνει την αποσφαλμάτωση της περιγραφής του πεδίου και του προβλήματος απο το χρήστη παρουσιάζοντας του με γραφικό τρόπο πληροφορία σχετικά με τον αμοιβαίο αποκλεισμό που έχει να αντιμετωπίσει. Ένα παράδειγμα χρήσης αυτής της λειτουργίας του συστήματος παρουσιάζεται στην εικόνα Στην αριστερή πλευρά του γραφικού βρίσκεται ένα σύνολο απο επιλέξιμες λίστες JList. Εφόσων ο χρήστης έχει επιλέξει το πρώτο στόχο (παρουσιάζεται στη πρώτη λίστα ως μη-επιλέξιμος, στη συνέχεια πρέπει να επιλέξει τον δεύτερο στόχο, τις δύο

64 Κεφάλαιο 5. Οπτικοποίηση 52 Ε 5.10: Εύρεση αμοιβαίου αποκλεισμού. ενέργειες που αφορούν τους δύο αυτούς στόχους και τέλος το τύπο του αποκλεισμού καθώς ο επιλεγμένος συνδιασμός στόχων και ενεργειών μπορεί να οδηγεί σε παραπάνω απο έναν αποκλεισμούς. Οι επιλέξιμες λίστες και οι λειτουργίες τους χρησιμοποιούν και αυτές DocumentListeners που ακούν στο γεγονός επιλογής ενώ για την ορθότερη εμφάνιση της πληροφορίας, όλες οι λίστες είναι Scrollable. Με το που επιλεγούν τα απαραίτητα στοιχεία, στη δεξιά πλευρά του παραθύρου εμφανίζεται η γραφική αναπαράσταση. Σε αυτήν αναπαρίστανται οι στόχοι και οι ενέργειες που εμπλέκονται. Οι στόχοι που έχουν επιλεγεί απο το χρήστη και παρουσιάζουν μια μορφή αποκλεισμού εμφανίζονται με κόκκινο χρώμα. Το ίδιο χρώμα χρησιμοποιείται και για τις συνδέσεις που αποτυγχάνουν ενώ οι επιτυχείς παρουσιάζονται με πράσινο. Οι συνδέσεις είναι υλοποιημένες ως Line2D. Η αιτία του αποκλεισμού δηλώνεται στο πάνω αριστερά μέρος της οπτικοποίησης με έντονη γραμματοσειρά ώστε να δωθεί ιδιαίτερη προσοχή απο το χρήστη Απομακρυσμένη επίλυση Η νέα λειτουργικότητα της απομακρυσμένης επίλυσης προβλημάτων προστέθηκε στο ίδιο μενού με την διαδικασία τοπικής επίλυσης που προϋπήρχε με τον τίτλο Planner. Η διαδικασία αρχικά χρησιμοποιούσε τον LPG-td planner για την τοπική επίλυση, ο οποίος δύναται να εκτελεστεί μόνο σε πλατφόρμα Microsoft Windows. Του έδινε ως όρισμα εκτέλεσης την PDDL αναπαράσταση της τρέχουσας οπτικοποίησης και ο σχεδιαστής ενημέρωνε με ένα πλάνο εκτέλεσης.

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

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

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

ΠΛΗ 405 Τεχνητή Νοηµοσύνη

ΠΛΗ 405 Τεχνητή Νοηµοσύνη ΠΛΗ 405 Τεχνητή Νοηµοσύνη Σύγχρονοι Αλγόριθµοι Σχεδιασµού Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υ ολογιστών Πολυτεχνείο Κρήτης Ε ανάληψη Σχεδιασµός το πρόβληµα του σχεδιασµού γλώσσα αναπαράστασης

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

Σχεδιασµός. Planning. Το πρόβληµα τουσχεδιασµού

Σχεδιασµός. Planning. Το πρόβληµα τουσχεδιασµού Σχεδιασµός Planning Το πρόβληµα τουσχεδιασµού Κλασσικός σχεδιασµός: Πλήρως παρατηρήσιµα, αιτιοκρατικά, πεπερασµένα, στατικά και διακριτά περιβάλλοντα. Ευρετική συνάρτηση Αποσυνθέσιµα προβλήµατα Σχεδόν

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

Δ Ι Π Λ Ω Μ ΑΤ Ι Κ Η Ε Ρ Γ Α Σ Ι Α

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

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

Υπηρεσιοστρεφής Αρχιτεκτονική SOA (Service Oriented Architecture)

Υπηρεσιοστρεφής Αρχιτεκτονική SOA (Service Oriented Architecture) Υπηρεσιοστρεφής Αρχιτεκτονική SOA (Service Oriented Architecture) Χρήστος Ηλιούδης Πλεονεκτήματα των Υπηρεσιών Ιστού Διαλειτουργικότητα: Η χαλαρή σύζευξή τους οδηγεί στην ανάπτυξη ευέλικτου λογισμικού

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

Περιγραφή Προβλημάτων

Περιγραφή Προβλημάτων Τεχνητή Νοημοσύνη 02 Περιγραφή Προβλημάτων Φώτης Κόκκορας Τμ.Τεχν/γίας Πληροφορικής & Τηλ/νιών - ΤΕΙ Λάρισας Παραδείγματα Προβλημάτων κύβοι (blocks) Τρεις κύβοι βρίσκονται σε τυχαία διάταξη πάνω στο τραπέζι

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

Χαράλαμπος Κοπτίδης ΠΕΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Χαράλαμπος Κοπτίδης ΠΕΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Ατομική Διπλωματική Εργασία LAMSAT: ΕΝΟΠΟΙΗΣΗ ΕΥΡΕΤΙΚΉΣ ΚΑΙ ΠΡΟΤΑΣΙΑΚΗΣ ΑΝΑΖΗΤΗΣΗΣ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΔΡΑΣΗΣ Χαράλαμπος Κοπτίδης ΠΕΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΕΚΕΜΒΡΙΟΣ 2011 ΠΑΝΕΠΙΣΤΗΜΙΟ

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

Σύνθεση διαδικτυακών υπηρεσιών με χρήση τεχνικών σχεδιασμού ενεργειών

Σύνθεση διαδικτυακών υπηρεσιών με χρήση τεχνικών σχεδιασμού ενεργειών Σύνθεση διαδικτυακών υπηρεσιών με χρήση τεχνικών σχεδιασμού ενεργειών Ουρανία Χατζή raniah@hua.gr Χαροκόπειο Πανεπιστήμιο 29 Νοεμβρίου 2007 Outline Web Service Overview Standards & Model Syntactic vs Semantic

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

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

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

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

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

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

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Δομές Δεδομένων Ενότητα 1 - Εισαγωγή Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Αντικείμενο μαθήματος Δομές Δεδομένων (ΔΔ): Στην επιστήμη υπολογιστών

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

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 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. Περίληψη Συνεισφοράς

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

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Περιγραφή Προβλημάτων Διαισθητικά, σε ένα πρόβλημα υπάρχει μια δεδομένη κατάσταση

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

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

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

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

ΚΕΦΑΛΑΙΟ 15 Βασικές Αρχές και Τεχνικές Σχεδιασµού

ΚΕΦΑΛΑΙΟ 15 Βασικές Αρχές και Τεχνικές Σχεδιασµού ΚΕΦΑΛΑΙΟ 15 Βασικές Αρχές και Τεχνικές Σχεδιασµού Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου Σχεδιασµός Ενεργειών (Planning) Προβλήµατα σχεδιασµού

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

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

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

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

Το Μέλλον για τα Συστήματα Διαχείρισης Ακτινολογικής Εικόνας (PACS)

Το Μέλλον για τα Συστήματα Διαχείρισης Ακτινολογικής Εικόνας (PACS) Το Μέλλον για τα Συστήματα Διαχείρισης Ακτινολογικής Εικόνας (PACS) Ελένη Καλδούδη Τμήμα Ιατρικής Δημοκρίτειο Πανεπιστήμιο Θράκης 2003 θέματα το χθές, το σήμερα και το αύριο για τα PACS απαιτήσεις από

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης

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

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

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

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

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

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

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

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

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

ΙΚΑΝΟΠΟΙΗΣΗ ΠΕΡΙΟΡΙΣΜΩΝ

ΙΚΑΝΟΠΟΙΗΣΗ ΠΕΡΙΟΡΙΣΜΩΝ ΙΚΑΝΟΠΟΙΗΣΗ ΠΕΡΙΟΡΙΣΜΩΝ (ΜΕ ΒΑΣΗ ΤΟ ΚΕΦ. 6 ΤΟΥ ΒΙΒΛΙΟΥ «ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ» ΤΩΝ ΒΛΑΧΑΒΑ, ΚΕΦΑΛΑ, ΒΑΣΙΛΕΙΑ Η, ΚΟΚΚΟΡΑ & ΣΑΚΕΛΛΑΡΙΟΥ) Ι. ΧΑΤΖΗΛΥΓΕΡΟΥ ΗΣ ΠΡΟΒΛΗΜΑΤΑ ΙΚΑΝΟΠΟΙΗΣΗΣ ΠΕΡΙΟΡΙΣΜΩΝ Είναι γνωστές µερικές

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

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

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

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

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

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

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

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4)

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4) Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4) Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Η διαδικαστική γλώσσα προγραμματισμού WHILE Τριάδες Hoare Μερική και Ολική Ορθότητα Προγραμμάτων Κανόνες

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

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ Μάθημα Πρώτο Εισαγωγή στις Υπηρεσίες Ιστού (Web Services) Μοντέλα WS JSON Χρήση (consume) WS μέσω python Πρόσβαση σε WS και άντληση δεδομένων Παραδείγματα

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

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

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

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

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12 Αρχιτεκτονικές κατανεμημένων συστημάτων Στόχοι Εξήγηση των πλεονεκτημάτων και των μειονεκτημάτων των αρχιτεκτονικών κατανεμημένων συστημάτων Εξέταση των αρχιτεκτονικών συστημάτων πελάτηδιακομιστή και των

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα Βάσεις

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ Α.Μ. 123/04 ΕΠΙΒΛΕΠΩΝ: ΣΑΜΑΡΑΣ ΝΙΚΟΛΑΟΣ ΘΕΣΣΑΛΟΝΙΚΗ, ΙΟΥΝΙΟΣ 2007 Περιεχόμενα

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

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

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

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

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι Απλά ερωτήματα Επιλογής Ερωτήματα με Ενώσεις πινάκων Ερωτήματα με Παραμετρικά Κριτήρια Ερωτήματα με Υπολογιζόμενα πεδία Απλά ερωτήματα Επιλογής Τα Ερωτήματα μας επιτρέπουν

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

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

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

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

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή Επεξεργασία Ερωτήσεων Σ Β Βάση εδομένων Η ομή ενός ΣΒ Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 1 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 2 Εισαγωγή Εισαγωγή ΜΕΡΟΣ 1 (Χρήση Σ Β ) Γενική

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 17: Λύση Προβλημάτων με Αναδρομή Οι πύργοι του Hanoi Δίνεται ένα χώρος με τρεις θέσεις αποθήκευσης. Δίνεται μια στοίβα από Ν πλάκες σε φθίνον μέγεθος, σε μια από τις τρεις

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα 2 Βήματα Επεξεργασίας Τα βασικά βήματα στην επεξεργασία

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

Επίλυση Προβλημάτων 1

Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων Περιγραφή Προβλημάτων Αλγόριθμοι αναζήτησης Αλγόριθμοι τυφλής αναζήτησης Αναζήτηση πρώτα σε βάθος Αναζήτηση πρώτα σε πλάτος (ΒFS) Αλγόριθμοι ευρετικής αναζήτησης

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

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 19 Hashing - Κατακερματισμός 1 / 23 Πίνακες απευθείας πρόσβασης (Direct Access Tables) Οι πίνακες απευθείας

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

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού

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

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή Επεξεργασία Ερωτήσεων ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήματος 1. Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασμός) 2. Προγραμματισμός (Σχεσιακή Άλγεβρα, SQL) ημιουργία/κατασκευή Εισαγωγή εδομένων

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

«Αξιολόγηση ατόμων με αφασία για Επαυξητική και Εναλλακτική Επικοινωνία, σύμφωνα με το μοντέλο συμμετοχής»

«Αξιολόγηση ατόμων με αφασία για Επαυξητική και Εναλλακτική Επικοινωνία, σύμφωνα με το μοντέλο συμμετοχής» Σχολή Επιστημών Υγείας Τμήμα Αποκατάστασης ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «Αξιολόγηση ατόμων με αφασία για Επαυξητική και Εναλλακτική Επικοινωνία, σύμφωνα με το μοντέλο συμμετοχής» Χρυσάνθη Μοδέστου Λεμεσός, Μάιος,

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

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής Διάλεξη 1 Πράξεις Τελεστές Έλεγχος Ροής Διοργάνωση : ΚΕΛ ΣΑΤΜ Διαφάνειες: Skaros, MadAGu Παρουσίαση: MadAGu Άδεια: Creative Commons 3.0 Αριθμητικοί Τελεστές- Αριθμητικές Πράξεις 2 Internal use only Αριθμητικοί

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

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

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

επιφάνεια πυριτίου Αναφορά στο Εκπαιδευτικό Υλικό : 5. Αναφορά στο Εργαστήριο :

επιφάνεια πυριτίου Αναφορά στο Εκπαιδευτικό Υλικό : 5. Αναφορά στο Εργαστήριο : 2. Α/Α Διάλεξης : 1 1. Τίτλος : Εισαγωγή στην Ψηφιακή Τεχνολογία 2. Μαθησιακοί Στόχοι : Λογικές Πύλες και η υλοποίησή τους με τρανζίστορ. Κατασκευή ολοκληρωμένων κυκλωμάτων. 3. Θέματα που καλύπτει : Λογικές

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

ΚΕΦΑΛΑΙΟ 17: Web Services Εισαγωγή

ΚΕΦΑΛΑΙΟ 17: Web Services Εισαγωγή ΚΕΦΑΛΑΙΟ 17: Web Services 17.1. Εισαγωγή Με τον όρο WebService αναφερόμαστε σε ένα σύστημα λογισμικού το οποίο σχεδιάστηκε με τρόπο τέτοιο ώστε να υποστηρίζει την ανεμπόδιστη συνεργασία δύο μηχανών μέσω

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

* Enterprise Resource Planning ** Customer Relationship Management

* Enterprise Resource Planning ** Customer Relationship Management Υπηρεσιοστρεφείς Επιχειρησιακές ιαδικασίες ιαµοιρασµός και Επαναχρησιµοποίηση Αποτελούν βασικές απαιτήσειςκατά το σχεδιασµό και την ολοκλήρωση (integration) επιχειρησιακών διαδικασιών ιαµοιρασµός: πολλοί

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

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

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

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

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

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

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

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

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

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

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρωτόκολλα και Αρχιτεκτονική Δικτύου Για να ανταλλάξουν δεδομένα δύο σταθμοί, εκτός από την ύπαρξη διαδρομής μεταξύ

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

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

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

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

ΑΔΙΕΞΟΔΑ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

ΑΔΙΕΞΟΔΑ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: Λειτουργικά Συστήματα Ι ΑΔΙΕΞΟΔΑ Διδάσκων: Καθ. Κ. Λαμπρινουδάκης clam@unipi.gr 1 ΑΔΙΕΞΟΔΑ 2 ΠΟΡΟΙ Υπάρχουν δύο τύποι πόρων σε υπολογιστικά συστήματα: Προεκτοπίσιμοι πόροι

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

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα

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

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

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12 Αρχιτεκτονικές κατανεμημένων συστημάτων Στόχοι Εξήγηση των πλεονεκτημάτων και των μειονεκτημάτων των αρχιτεκτονικών κατανεμημένων συστημάτων Εξέταση των αρχιτεκτονικών συστημάτων πελάτηδιακομιστή και των

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

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

Σχεδιασμός & Χρονοπρογραμματισμός Ενεργειών

Σχεδιασμός & Χρονοπρογραμματισμός Ενεργειών Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών Σχεδιασμός & Χρονοπρογραμματισμός Ενεργειών Χειμερινό Εξάμηνο 2006-2007 Κεφάλαιο 1 - Εισαγωγή Εισαγωγή στις Ερευνητικές

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αξιολόγηση των Σχεδιαστικών Προτύπων και της Ποιότητας του Λογισμικού μέσω Μετρικών, στις Περιπτώσεις Προσθήκης Λειτουργικότητας και

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αξιολόγηση των Σχεδιαστικών Προτύπων και της Ποιότητας του Λογισμικού μέσω Μετρικών, στις Περιπτώσεις Προσθήκης Λειτουργικότητας και ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αξιολόγηση των Σχεδιαστικών Προτύπων και της Ποιότητας του Λογισμικού μέσω Μετρικών, στις Περιπτώσεις Προσθήκης Λειτουργικότητας και Αναδόμησης του Κώδικα Η πτυχιακή περιλαμβάνει τα παρακάτω:

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

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

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

ΗΥ Λογική. Διδάσκων: Δημήτρης Πλεξουσάκης Καθηγητής

ΗΥ Λογική. Διδάσκων: Δημήτρης Πλεξουσάκης Καθηγητής ΗΥ 180 - Λογική Διδάσκων: Καθηγητής E-mail: dp@csd.uoc.gr Ώρες διδασκαλίας: Δευτέρα, Τετάρτη 4-6 μμ, Αμφ. Β Ώρες φροντιστηρίου: Πέμπτη 4-6 μμ, Αμφ. Β Ώρες γραφείου: Δευτέρα, Τετάρτη 2-4 μμ, Κ.307 Web site:

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

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

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

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

Αξιολόγηση Υπηρεσιών ιαδικτύου µέσω Περιπτώσεων Μελέτης

Αξιολόγηση Υπηρεσιών ιαδικτύου µέσω Περιπτώσεων Μελέτης Αξιολόγηση Υπηρεσιών ιαδικτύου µέσω Περιπτώσεων Μελέτης Κωστής Αϊβαλής Μηχανικός Πληροφορικής TU-Berlin 2/5/2008 ΕΑΠ-ΓΤΠ61-Κωστής Αϊβαλής 1 Εισαγωγή Η ταχύτητα επεξεργασίας των εφαρµογών διαδικτυακών υπηρεσιών

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

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Πλεονεκτήματα MPSoC Είναι ευκολότερο να σχεδιαστούν πολλαπλοί πυρήνες επεξεργαστών από τον σχεδιασμό ενός ισχυρότερου και πολύ πιο σύνθετου μονού επεξεργαστή.

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

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

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΜΑΘΗΜΑ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ Β ΛΥΚΕΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΜΑΘΗΜΑ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ Β ΛΥΚΕΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ Ιστότοπος Βιβλίου http://www.iep.edu.gr/ και «Νέα Βιβλία ΙΕΠ ΓΕΛ και ΕΠΑΛ» 2 ΠΕΡΙΕΧΟΜΕΝΑ

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

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems Ημερομηνία Παράδοσης: 0/1/017 την ώρα του μαθήματος ή με email: mkarabin@csd.uoc.gr Γενικές Οδηγίες α) Επιτρέπεται η αναζήτηση στο Internet και στην βιβλιοθήκη

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

Λύσεις Σειράς Ασκήσεων 1

Λύσεις Σειράς Ασκήσεων 1 Λύσεις Σειράς Ασκήσεων 1 Άσκηση 1 Έστω οι προτάσεις / προϋπόθεσεις: Π1. Σε όσους αρέσει η τέχνη αρέσουν και τα λουλούδια. Π2. Σε όσους αρέσει το τρέξιμο αρέσει και η μουσική. Π3. Σε όσους δεν αρέσει η

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

Ατοµική ιπλωµατική Εργασία ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΙ ΠΡΟΤΑΣΙΑΚΩΝ ΕΠΙΛΥΤΩΝ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΡΑΣΗΣ. Ελένη Προξένου ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ

Ατοµική ιπλωµατική Εργασία ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΙ ΠΡΟΤΑΣΙΑΚΩΝ ΕΠΙΛΥΤΩΝ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΡΑΣΗΣ. Ελένη Προξένου ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Ατοµική ιπλωµατική Εργασία ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΙ ΠΡΟΤΑΣΙΑΚΩΝ ΕΠΙΛΥΤΩΝ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΡΑΣΗΣ Ελένη Προξένου ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Μάιος 2012 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ Μ. Γρηγοριάδου Ρ. Γόγουλου Ενότητα: Η Διδασκαλία του Προγραμματισμού Περιεχόμενα Παρουσίασης

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

Ημερομηνία Παράδοσης: 4/4/2013

Ημερομηνία Παράδοσης: 4/4/2013 Δράση 9.14 / Υπηρεσία εντοπισμού λογοκλοπής Κυρίως Παραδοτέο / Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) Επιμέρους Παραδοτέο 9.14.1.4 / Πληροφοριακό σύστημα υπηρεσίας

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

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

Κεφάλαιο 11 Ένωση Ξένων Συνόλων Κεφάλαιο 11 Ένωση Ξένων Συνόλων Περιεχόμενα 11.1 Εισαγωγή... 227 11.2 Εφαρμογή στο Πρόβλημα της Συνεκτικότητας... 228 11.3 Δομή Ξένων Συνόλων με Συνδεδεμένες Λίστες... 229 11.4 Δομή Ξένων Συνόλων με Ανοδικά

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

Ακέραιος Γραμμικός Προγραμματισμός

Ακέραιος Γραμμικός Προγραμματισμός Τμήμα Πληροφορικής & Τηλεπικοινωνιών Πανεπιστήμιο Ιωαννίνων 2018-2019 Ακέραιος Γραμμικός Προγραμματισμός Γκόγκος Χρήστος- Γεωργία Φουτσιτζή Επιχειρησιακή Έρευνα τελευταία ενημέρωση: 12/01/2017 1 Ακέραιος

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

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

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

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

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

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

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

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Αναζήτηση Δοθέντος ενός προβλήματος με περιγραφή είτε στον χώρο καταστάσεων

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

Διάλεξη 16: Πρόβλημα Συμφωνίας. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 16: Πρόβλημα Συμφωνίας. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 16: Πρόβλημα Συμφωνίας ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Τι θα δούμε σήμερα Ορισμός του προβλήματος Συμφωνίας Αλγόριθμος Συμφωνίας με Σφάλματα Κατάρρευσης ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 1 Πρόβλημα

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

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

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

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

Αρχές Προγραμματισμού Υπολογιστών

Αρχές Προγραμματισμού Υπολογιστών Αρχές Προγραμματισμού Υπολογιστών Ανάπτυξη Προγράμματος Β ΕΠΑΛ Τομέας Πληροφορικής Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Κύκλος ανάπτυξης προγράμματος/λογισμικού Η διαδικασία ανάπτυξης λογισμικού,

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

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

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

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

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση ΚΕΦΑΛΑΙΟ 18 18 Μηχανική Μάθηση Ένα φυσικό ή τεχνητό σύστηµα επεξεργασίας πληροφορίας συµπεριλαµβανοµένων εκείνων µε δυνατότητες αντίληψης, µάθησης, συλλογισµού, λήψης απόφασης, επικοινωνίας και δράσης

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

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται στην άδεια χρήσης Creative Commons και

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

Chapter 6. Problem Solving and Algorithm Design. Στόχοι Ενότητας. Επίλυση προβληµάτων. Εισαγωγή. Nell Dale John Lewis

Chapter 6. Problem Solving and Algorithm Design. Στόχοι Ενότητας. Επίλυση προβληµάτων. Εισαγωγή. Nell Dale John Lewis Στόχοι Ενότητας Chapter 6 Problem Solving and Algorithm Design Nell Dale John Lewis Αναγνώριση αν ένα πρόβληµα µπορεί να επιλυθεί µε τη χρήση υπολογιστή Περιγραφή της διαδικασίας επίλυσης προβληµάτων και

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

Κωνσταντίνος Παπαβλασόπουλος ΑΜ:475

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

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

Τεχνικές Προδιαγραφές ιαλειτουργικότητας

Τεχνικές Προδιαγραφές ιαλειτουργικότητας ΤΕΧΝΙΚΕΣ ΠΡΟ ΙΑΓΡΑΦΕΣ ΕΙΓΜΑ ΠΑΡΑΡΤΗΜΑΤΟΣ ΙΑΓΩΝΙΣΜΟΥ ΚΟΙΝΟΤΙΚΟ ΠΛΑΙΣΙΟ ΣΤΗΡΙΞΗΣ 2000-2006 ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ «Κοινωνία της Πληροφορίας» http://www.infosociety.gr Μάιος 2003 Τεχνικές Προδιαγραφές ιαλειτουργικότητας

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

Πτυχιακή Εργασία ηµιουργία Εκπαιδευτικού Παιχνιδιού σε Tablets Καλλιγάς ηµήτρης Παναγιώτης Α.Μ.: 1195 Επιβλέπων καθηγητής: ρ. Συρµακέσης Σπύρος ΑΝΤΙΡΡΙΟ 2015 Ευχαριστίες Σ αυτό το σηµείο θα ήθελα να

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

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

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

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

Φύλλο Εργασίας 3. Μια γρήγορη επανάληψη από τα προηγούμενα

Φύλλο Εργασίας 3. Μια γρήγορη επανάληψη από τα προηγούμενα 3 Φύλλο Εργασίας 3 Στο φύλλο εργασιών 3 θα ασχοληθούμε με τις λίστες μια δομή της γλώσσας python που έχει την δομή ενός πίνακα. Θα χρησιμοποιήσουμε τις βασικές εντολές από τις λίστες και θα κατασκευάσουμε

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

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

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή 1 Πίνακας Περιεχομένων 1. Εισαγωγή... 4 1.1 Περιβάλλον Moodle...4 1.2 Χρήση ονόματος χρήστη και κωδικού...4 1.3 Δημιουργία νέου μαθήματος...4 1.3.1

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

Κύρια σημεία. Η έννοια του μοντέλου. Έρευνα στην εφαρμοσμένη Στατιστική. ΈρευναστηΜαθηματικήΣτατιστική. Αντικείμενο της Μαθηματικής Στατιστικής

Κύρια σημεία. Η έννοια του μοντέλου. Έρευνα στην εφαρμοσμένη Στατιστική. ΈρευναστηΜαθηματικήΣτατιστική. Αντικείμενο της Μαθηματικής Στατιστικής Κύρια σημεία Ερευνητική Μεθοδολογία και Μαθηματική Στατιστική Απόστολος Μπουρνέτας Τμήμα Μαθηματικών ΕΚΠΑ Αναζήτηση ερευνητικού θέματος Εισαγωγή στην έρευνα Ολοκλήρωση ερευνητικής εργασίας Ο ρόλος των

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

Δέντρα Απόφασης (Decision(

Δέντρα Απόφασης (Decision( Δέντρα Απόφασης (Decision( Trees) Το μοντέλο που δημιουργείται είναι ένα δέντρο Χρήση της τεχνικής «διαίρει και βασίλευε» για διαίρεση του χώρου αναζήτησης σε υποσύνολα (ορθογώνιες περιοχές) Ένα παράδειγμα

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

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

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

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

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

Ακέραιος Γραμμικός Προγραμματισμός

Ακέραιος Γραμμικός Προγραμματισμός Τμήμα Μηχανικών Πληροφορικής ΤΕ 2017-2018 Ακέραιος Γραμμικός Προγραμματισμός Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα τελευταία ενημέρωση: 12/01/2017 1 Ακέραιος Γραμμικός Προγραμματισμός Όταν για

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

Περίγραμμα. Διαδικαστικά. Εργαστήρια Τεχνικών Προγραμματισμού 21/2/2017. ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ και Τεχνικές Προγραμματισμού

Περίγραμμα. Διαδικαστικά. Εργαστήρια Τεχνικών Προγραμματισμού 21/2/2017. ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ και Τεχνικές Προγραμματισμού ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ και Τεχνικές Προγραμματισμού http://eclass.di.uoa.gr/d419/ Τμήμα Αρτίων ΑΜ Αίθουσα A2 Τετάρτη 11-13 και Πέμπτη 11-13 Περίγραμμα Διαδικαστικά (Εργασίες, Εξετάσεις, κλπ) Ένταξη στο Πρόγραμμα

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

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ

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

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

Rule Based systems Συστήματα Βασισμένα σε κανόνες

Rule Based systems Συστήματα Βασισμένα σε κανόνες Rule Based systems Συστήματα Βασισμένα σε κανόνες Τμήματα ενός έμπειρου συστήματος βασισμένου σε κανόνες Βάση Γνώσης (Κανόνες) Μηχανισμός Εξαγωγής Συμπερασμάτων Χώρος Εργασίας (Γεγονότα) Μηχανισμός Επεξήγησης

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