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

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

Download "ΤΡΙΣ ΙΑΣΤΑΤΟ ΠΕΡΙΒΑΛΛΟΝ ΑΠΕΙΚΟΝΙΣΗΣ ΚΑΙ ΗΜΙΟΥΡΓΙΑΣ ΠΡΟΒΛΗΜΑΤΩΝ ΣΧΕ ΙΑΣΜΟΥ ΕΝΕΡΓΕΙΩΝ"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΡΙΣ ΙΑΣΤΑΤΟ ΠΕΡΙΒΑΛΛΟΝ ΑΠΕΙΚΟΝΙΣΗΣ ΚΑΙ ΗΜΙΟΥΡΓΙΑΣ ΠΡΟΒΛΗΜΑΤΩΝ ΣΧΕ ΙΑΣΜΟΥ ΕΝΕΡΓΕΙΩΝ ιπλωµατική Εργασία της Μόσχογλου Άννας (ΑΕΜ: 934) Επιβλέπων Καθηγητής: Βλαχάβας Ιωάννης ΘΕΣΣΑΛΟΝΙΚΗ ΙΟΥΛΙΟΣ i-

2 -ii-

3 Πρόλογος Η Τεχνητή Νοηµοσύνη είναι ένας τοµέας της Επιστήµης των Υπολογιστών που α- σχολείται µε τη σχεδίαση και την υλοποίηση προγραµµάτων τα οποία µιµούνται τις ανθρώπινες γνωστικές ικανότητες. Είναι ένας συνεχώς εξελισσόµενος τοµέας και καλύπτει ένα ευρύ φάσµα περιοχών όπως η µηχανική µάθηση, η βέλτιστη επίλυση προβλη- µάτων, η ροµποτική, ο σχεδιασµός ενεργειών και χρονοπρογραµµατισµός. Ο σχεδιασµός ενεργειών εξελίσσεται όλο και περισσότερο καθώς έχει πολλές εφαρµογές στην καθηµερινή ζωή και κυρίως στη βιοµηχανία. Σκοπός αυτής της διπλωµατικής είναι η δηµιουργία µιας εφαρµογής για την απεικόνιση και σύνθεση προβληµάτων Σχεδιασµού Ενεργειών, µε εύκολο γραφικό τρόπο και παρουσίαση της λύσης µε χρήση animation. Αρχικά γίνεται µια αναφορά στο θεωρητικό υπόβαθρο του σχεδιασµού ενεργειών, στη συνέχεια γίνεται µια περιγραφή του εργαλείου µε το οποίο αναπτύχθηκε η εφαρµογή και τέλος αναλύεται ο τρόπος µε τον οποίο επικοινωνεί ο χρήστης µε το σύστηµα σχεδιασµού. Η εκπόνηση της εργασίας έγινε στο Εργαστήριο Προγραµµατισµού και Τεχνολογίας Λογισµικού του Τµήµατος Πληροφορικής του Αριστοτέλειου Πανεπιστηµίου Θεσσαλονίκης, σε συνεργασία µε την οµάδα Λογικού Προγραµµατισµού και Ευφυών Συστηµάτων (LPIS group). Στο σηµείο αυτό θα ήθελα να ευχαριστήσω τους ανθρώπους µε τους οποίους συνεργάστηκα για την εκπόνηση αυτής της ιπλωµατικής Εργασίας. Ευχαριστώ θερµά τον Καθηγητή του τµήµατος Πληροφορικής Ιωάννη Βλαχάβα για την ανάθεση της παρούσας εργασίας. Θα ήθελα να ευχαριστήσω ιδιαίτερα το ιδάκτορα ηµήτριο Βράκα για την καθοδήγηση και τις χρήσιµες συµβουλές του σε τεχνικά ζητήµατα, καθώς και τα υπόλοιπα µέλη της οµάδας Λογικού Προγραµµατισµού και Ευφυών Συστηµάτων. Τέλος θα ήθελα να ευχαριστήσω την οικογένειά µου για την ηθική συµπαράσταση κατά τη διάρκεια της εκπόνησης αυτής της εργασίας. Μόσχογλου Άννα Μάιος i-

4

5 Περιεχόµενα ΠΡΟΛΟΓΟΣ...I ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ ΣΧΕ ΙΑΣΜΟΣ ΕΝΕΡΓΕΙΩΝ ΕΙΣΑΓΩΓΗ ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ Αναπαράσταση των καταστάσεων Αναπαράσταση των Ενεργειών Αναπαράσταση των πλάνων Προβλήµατα σχεδιασµού ενεργειών ΚΑΤΗΓΟΡΙΕΣ ΠΛΑΝΩΝ ΕΚΤΕΛΕΣΗ ΠΛΑΝΩΝ ΠΑΡΑ ΕΙΓΜΑΤΑ ΣΧΕ ΙΑΣΤΩΝ ΑΝΑΖΗΤΗΣΗ Προβλήµατα αναζήτησης Αλγόριθµοι Τυφλής αναζήτησης Αλγόριθµοι Ευριστικής Αναζήτησης ιάσχιση του χώρου Αναζήτησης ΠΕΡΙΓΡΑΦΗ ΤΟΥ ΘΕΜΑΤΟΣ ΤΗΣ ΙΠΛΩΜΑΤΙΚΗΣ ΑΝΑΓΩΓΗ ΣΕ ΠΡΟΒΛΗΜΑ ΣΧΕ ΙΑΣΜΟΥ ΕΝΕΡΓΕΙΩΝ ΑΝΑΓΩΓΗ ΣΕ ΠΡΟΒΛΗΜΑ ΑΝΑΖΗΤΗΣΗΣ JAVA3D ΕΙΣΑΓΩΓΗ JAVA 3D API ΗΜΙΟΥΡΓΙΑ ΣΚΗΝΗΣ (SCENE GRAPH) Ιεραρχία των κλάσεων υψηλού επιπέδου της Java3D

6 4.4 ΗΜΙΟΥΡΓΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΕ JAVA3D ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΙ ΥΝΑΤΟΤΗΤΕΣ (CAPABILITIES) ΓΕΩΜΕΤΡΙΚΑ ΣΧΗΜΑΤΑ Κύβος (Box) Κώνος (Cone) Κύλινδρος (Cylinder) Σφαίρα (Sphere) ΦΟΡΤΩΤΕΣ (LOADERS) ΕΜΦΑΝΙΣΗ (APPEARANCE) Χρώµα (Color) Υφή (Texture) Φώτα (Lights) ΦΟΝΤΟ (BACKGROUND) ΙΑ ΡΑΣΗ (INTERACTION) KeyNavigatorBehavior Mouse Behavior ΕΠΙΛΟΓΗ (PICKING) ΠΕΡΙΓΡΑΦΗ ΤΗΣ ΥΛΟΠΟΙΗΣΗΣ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ ΣΥΝΘΕΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΣΥΝΘΕΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΥΠΟΒΟΛΗ ΚΑΙ ΕΠΙΛΥΣΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ ΠΑΡΑΚΟΛΟΥΘΗΣΗ ΤΗΣ ΛΥΣΗΣ ΕΠΙΛΟΓΟΣ ΣΥΜΠΕΡΑΣΜΑΤΑ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ ΕΠΙΛΟΓΟΣ...85 ΒΙΒΛΙΟΓΡΑΦΙΑ...86 ΠΑΡΑΡΤΗΜΑ Α -ΚΩ ΙΚΑΣ...87 ΠΑΡΑΡΤΗΜΑ Β Ο ΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ

7 1 Εισαγωγή Ο Σχεδιασµός Ενεργειών είναι ένας κλάδος της Τεχνητής Νοηµοσύνης που εξελίσσεται συνεχώς, καθώς έχει εφαρµογές σε πολλούς τοµείς της καθηµερινής ζωής όπως στην κατασκευή βιοµηχανικών προϊόντων, την προώθησή τους, στις επιχειρήσεις κλπ.. Ο Σχεδιασµός Ενεργειών αφορά την εύρεση µιας ακολουθίας ενεργειών, η εκτέλεση της οποίας θα οδηγήσει στην επίτευξη κάποιων στόχων. Η ακολουθία αυτή ονοµάζεται πλάνο (plan), ενώ τα συστήµατα λογισµικού που καλούνται να παράγουν αυτήν την α- κολουθία, ονοµάζονται Σχεδιαστές (Planners) ή Συστήµατα Σχεδιασµού (Planning Systems) Σκοπός της συγκεκριµένης διπλωµατικής είναι : 1) η γραφική απεικόνιση και σύνθεση προβληµάτων σχεδιασµού ενεργειών που ανήκουν στην οικογένεια του λαβυρίνθου 2) η επίλυσή τους 3) η απεικόνιση της λύσης µε τη χρήση animation Η δοµή της εργασίας έχει ως εξής: Στο δεύτερο κεφάλαιο γίνεται µια εισαγωγή στο θεωρητικό υπόβαθρο του σχεδιασµού ενεργειών. Περιγράφονται οι βασικές έννοιες του αντικειµένου, αναλύονται οι τεχνικές που χρησιµοποιούνται και παρουσιάζονται οι πιο βασικοί σχεδιαστές. Στο τρίτο κεφάλαιο γίνεται η περιγραφή και η ανάλυση του θέµατος που πραγµατεύεται η διπλωµατική και παρουσιάζεται ο τρόπος µε τον οποίο µπορούν να εφαρµοστούν οι τεχνικές του σχεδιασµού ενεργειών πάνω στη συγκεκριµένη εφαρµογή. Στο τέταρτο κεφάλαιο περιγράφεται το εργαλείο µε το οποίο αναπτύχθηκε η εφαρ- µογή, δηλαδή η Java3D. Παρουσιάζεται η φιλοσοφία πάνω στην οποία στηρίζεται η Java3D καθώς και κάποιες βασικές κλάσεις, που είναι απαραίτητες για τη δηµιουργία ενός προγράµµατος στη συγκεκριµένη γλώσσα. Στο πέµπτο κεφάλαιο περιγράφεται ο τρόπος υλοποίησης της εφαρµογής. Περιγράφεται η αρχιτεκτονική του προγράµµατος, οι δοµές που χρησιµοποιήθηκαν για την α- ναπαράσταση του προβλήµατος και ο τρόπος επίλυσής του. -3-

8 Στο έκτο κεφάλαιο γίνεται η περιγραφή της εφαρµογής που δηµιουργήθηκε. Περιγράφονται οι λειτουργίες που µπορεί να εκτελέσει η εφαρµογή καθώς και ο τρόπος χρήσης της, µε τη βοήθεια screenshots. Στο έβδοµο κεφάλαιο περιλαµβάνεται ο επίλογος της εργασίας, στον οποίο αναφέρονται τα συµπεράσµατα, η µελλοντική εργασία που µπορεί να γίνει καθώς και τα προβλήµατα που αντιµετωπίστηκαν κατά τη διάρκεια της υλοποίησης της εφαρµογής. Στο παράρτηµα Α περιλαµβάνεται ο κώδικας µε τις κλάσεις που χρησιµοποιήθηκαν για την υλοποίηση της εφαρµογής. -4-

9 2 Σχεδιασµός Ενεργειών 2.1 Εισαγωγή Με το όρο Σχεδιασµό Ενεργειών (planning) εννοούµε την εύρεση µιας ακολουθίας ενεργειών, η εκτέλεση της οποίας οδηγεί στην επίτευξη κάποιων προκαθορισµένων στόχων. Η ακολουθία αυτή ονοµάζεται πλάνο (plan), ενώ τα συστήµατα λογισµικού που καλούνται να παράγουν αυτήν την ακολουθία, ονοµάζονται Σχεδιαστές (Planners) ή Συστήµατα Σχεδιασµού (Planning Systems). Η οντότητα που καλείται να εκτελέσει το πλάνο ονοµάζεται πράκτορας (agent) και µπορεί να ταυτίζεται µε το σχεδιαστή. Στη διαδικασία του σχεδιασµού, εκτός από την παραγωγή του πλάνου, εντάσσεται και η ε- πιλογή του βέλτιστου µέσα από ένα σύνολο πιθανών πλάνων. Οι τεχνικές σχεδιασµού ενεργειών εφαρµόζονται σε προβλήµατα που έχουν υψηλή πολυπλοκότητα και µεγάλους χώρους αναζήτησης και τα οποία δεν µπορούν να αντιµετωπιστούν επιτυχώς από τους αλγόριθµους αναζήτησης. Πιθανά προβλήµατα που µπορούν να αντιµετωπιστούν µε την εφαρµογή τεχνικών σχεδιασµού είναι: ο προγραµµατισµός της διαδικασίας φόρτωσης και εκφόρτωσης πλοίων η µεταφορά φορτίων ο προγραµµατισµός διαδικασιών παραγωγής η αυτόµατη δόµηση προγραµµάτων η πλοήγηση οχηµάτων και ροµπότ προβλήµατα στρατηγικής προβλήµατα επενδύσεων, κ.α. 2.2 Αναπαράσταση Γνώσης Για την αναπαράσταση ενός προβλήµατος σχεδιασµού απαιτείται η περιγραφή: της αρχικής κατάστασης του κόσµου (Initial), -5-

10 των στόχων που πρέπει να επιτευχθούν (Goals), των διαθέσιµων ενεργειών που µπορούν να εκτελεστούν (Actions), προκει- µένου να επιτευχθούν οι στόχοι. Η περιγραφή των καταστάσεων αλλά και των ενεργειών καθορίζει τις δυνατότητες που πρέπει να έχουν τα αντίστοιχα συστήµατα σχεδιασµού που θα τα επιλύσουν. Οι γλώσσες περιγραφής προβληµάτων σχεδιασµού είναι πολλές, ωστόσο η επιλογή της κατάλληλης είναι πολύ σηµαντικό θέµα καθώς πρέπει να γίνεται εύκολη κωδικοποίηση αλλά και να µπορούν να τις διαχειριστούν εύκολα τα συστήµατα σχεδιασµού. ύο παραδείγµατα γλωσσών αναπαράστασης που χρησιµοποιήθηκαν είναι η προτασιακή λογική, στην οποία όµως δε χρησιµοποιούνται µεταβλητές και δεν επιτυγχάνεται η γενικότητα και η κατηγορηµατική λογική πρώτης τάξης, που καλύπτει µεν τις ελλείψεις της προτασιακής λογικής, αλλά υστερεί στην περιγραφή ενεργειών µε µη αιτιοκρατικά αποτελέσµατα. Τη λύση έδωσε το µοντέλο STRIPS, το οποίο χαρακτηρίζεται για την απλότητα και τη φυσικότητά του και χάρη στις πολυάριθµες επεκτάσεις του θεωρείται ένα από τα πιο δηµοφιλή µοντέλα για την περιγραφή προβληµάτων σχεδιασµού Αναπαράσταση των καταστάσεων Το περιβάλλον στο οποίο ενεργεί ένας πράκτορας ονοµάζεται κόσµος του προβλή- µατος ενώ η αναπαράσταση του κόσµου σε µια δεδοµένη χρονική στιγµή ονοµάζεται κατάσταση (state). Οι καταστάσεις αποτελούνται από σύνολα συγκεκριµένων γεγονότων (facts) που αληθεύουν. Στο µοντέλο του STRIPS οι καταστάσεις είναι πολύ απλουστευµένες καθώς η ισχύς των γεγονότων θεωρείται βέβαιη και περιλαµβάνουν µόνο σταθερές. Στο πρόβληµα του κόσµου των κύβων, που απεικονίζεται στο σχήµα 2.1, η αρχική κατάσταση θα µπορούσε να περιγραφεί µε τον εξής τρόπο: Θέση κύβου Α: πάνω στο τραπέζι Θέση κύβου Β: πάνω στο τραπέζι Θέση κύβου C: πάνω στον Α Ελεύθερος κύβος B Ελεύθερος κύβος C -6-

11 C A B A B C Αρχική κατάσταση Τελική κατάσταση Σχήµα 2.1: Πρόβληµα σχεδιασµού µε τρεις κύβους Ενώ η κωδικοποίηση σύµφωνα µε το µοντέλο του STRIPS, όπου υπάρχουν γεγονότα που αληθεύουν, αναπαρίσταται µε την ακόλουθη σύζευξη: block(a)^block(b)^block(c)^on(a,table)^on(c,a)^on(b,table)^clear(b)^clear(c). Επειδή στο STRIPS θεωρούµε δεδοµένο ότι έχουµε πλήρη γνώση της αρχικής κατάστασης (παντογνωσία), όσα γεγονότα δεν αναφέρονται σε αυτήν θεωρούνται ψευδή Αναπαράσταση των Ενεργειών Οι ενέργειες ή τελεστές µετάβασης εφαρµόζονται σε µια κατάσταση και εφόσον ι- σχύουν κάποιες προϋποθέσεις, µπορούν να οδηγήσουν τον κόσµο του προβλήµατος σε µια νέα κατάσταση. Σύµφωνα µε το µοντέλο STRIPS µια ενέργεια αποτελείται από τρεις λίστες γεγονότων: Τη λίστα προϋποθέσεων (precondition list), δηλαδή τα γεγονότα που πρέπει να ισχύουν σε µια κατάσταση για να µπορεί να εφαρµοστεί µια ενέργεια στην κατάσταση αυτή. Τη λίστα προσθηκών(add list), δηλαδή τα γεγονότα που προσθέτει η ενέργεια σε µια κατάσταση για να προκύψει η νέα. Τη λίστα διαγραφών (delete list),δηλαδή τα γεγονότα της τρέχουσας κατάστασης που θα διαγραφούν ώστε να προκύψει η νέα κατάσταση. Σύµφωνα µε τα παραπάνω, ένας τελεστής O µπορεί να εφαρµοστεί σε µια κατάσταση S1 και να οδηγήσει σε µια νέα κατάσταση S2, αν η S1 πληρεί όλες τις προϋποθέσεις που ορίζει η precondition list του τελεστή O. Η νέα κατάσταση S2 που θα προκύψει, θα περιέχει τα γεγονότα της S1, εκτός από αυτά που περιέχονται στην delete list, συν τα γεγονότα της add list. -7-

12 Πιο συγκεκριµένα, στο πρόβληµα του κόσµου των κύβων που απεικονίζεται στο Σχήµα 2.1, θα µπορούσαν να εφαρµοστεί η ενέργεια µετακίνησε τον κύβο C από τον κύβο A πάνω στο τραπέζι (µετακίνησε_c_από_a_στο_τραπέζι) Όνοµα ενέργειας= µετακίνησε_c_από_a_στο_τραπέζι Λίστα προϋποθέσεων=[ Θέση κύβου Α: πάνω στο τραπέζι, Θέση κύβου C: πάνω στον A, Ελεύθερος κύβος C] Λίστα προσθηκών=[ Ελεύθερος κύβος A, Θέση κύβου C: πάνω στο τραπέζι] Λίστα διαγραφών=[ Θέση κύβου C: πάνω στον A] Αρχική κατάσταση Τελική κατάσταση C A B A C B Θέση κύβου Α: πάνω στο τραπέζι Θέση κύβου C: πάνω στον A Ελεύθερος κύβος C Θέση κύβου Α: πάνω στο τραπέζι Θέση κύβου C: πάνω στο τραπέζι Ελεύθερος κύβος C Ελεύθερος κύβος A Σχήµα 2.2 Στο παραπάνω παράδειγµα περιγράψαµε την ενέργεια µετακίνησε_c_από_a_στο_τραπέζι. Για την περιγραφή άλλων ενεργειών θα έπρεπε να ορίσου- µε νέους τελεστές όπως µετακίνησε_c_από_β_στο_τραπέζι, µετακίνησε_β_από_c_στο_τραπέζι,κλπ. Για να αποφύγουµε τον ορισµό όλων αυτών των τελεστών, οµαδοποιούµε τις ενέργειες σε σχήµατα ενεργειών (action schemas) ή τελεστές (operators) που περιέχουν µεταβλητές. Έτσι, αντικαθιστώντας κάθε φορά τις µεταβλητές µε τις κατάλληλες τιµές παίρνουµε κανονικές ενέργειες. Στο παράδειγµα των κύβων, ανάλογα µε το ποιος κύβος µετακινείται και πάνω σε ποιον κύβο βρίσκεται, θα έπρεπε να ορίζουµε έξι διαφορετικές ενέργειες για τη µεταφορά ενός κύβου πάνω στο τραπέζι, τις οποίες οµαδοποιούµε στο παρακάτω σχήµα ε- νεργειών: -8-

13 Όνοµα ενέργειας= µετακίνησε_χ_από_υ_στο_τραπέζι(χ,υ) Λίστα προϋποθέσεων=[ Θέση κύβου Υ: πάνω στο τραπέζι, Θέση κύβου Χ: πάνω στον Υ, Ελεύθερος κύβος Χ] Λίστα προσθηκών=[ Ελεύθερος κύβος Υ, Θέση κύβου Χ: πάνω στο τραπέζι] Λίστα διαγραφών=[ Θέση κύβου Χ: πάνω στον Υ] Αναπαράσταση των πλάνων Μια ακολουθία ενεργειών που εφαρµόζεται σε µια αρχική κατάσταση και οδηγεί σε µια τελική κατάσταση ονοµάζεται πλάνο. Μια ενέργεια αναπαρίσταται διαγραµµατικά σαν ένα πλαίσιο µέσα στο οποίο αναφέρεται το όνοµά της και από κάτω αναφέρονται οι προϋποθέσεις και τα αποτελέσµατα. Πιο συγκεκριµένα, στο αριστερό µέρος είναι οι προϋποθέσεις ενώ δεξιό περιλαµβάνονται τα στοιχεία της λίστας προσθηκών και διαγραφών, έχοντας σαν πρόθεµα τα σύµβολα «+» και «-», αντίστοιχα. Με τον ίδιο τρόπο αναπαρίστανται και τα σχήµατα ενεργειών. Στη διαγραµµατική αναπαράσταση ενός πλάνου, όπου λαµβάνεται υπ όψη και ο χρόνος, το µήκος του κάθε πλαισίου υποδηλώνει τη διάρκεια της κάθε ενέργειας. Ένα πλάνο αναπαρίσταται µε τους εξής τρόπους: Με ένα δίκτυο ενεργειών (procedural network), όπου οι κόµβοι αποτελούν τις ενέργειες, ενώ τα βέλη δείχνουν την ακολουθία των ενεργειών (Σχήµα 2.3) Με ένα ραβδόγραµµα gantt (gantt bar chart), όπου κάθε ράβδος είναι µία ε- νέργεια και το µήκος κάθε ράβδου είναι η διάρκειά της. -9-

14 Σχήµα 2.3 :Γραµµικό πλάνο µε δίκτυο ενεργειών για το πρόβληµα των τριών κύβων Προβλήµατα σχεδιασµού ενεργειών Ένα πρόβληµα σχεδιασµού αποτελείται από µια αρχική κατάσταση Ι (Initial), τους στόχους G (Goals) και το σύνολο των ενεργειών ή των σχηµάτων ενεργειών Α (Actions) που αν εφαρµοστούν στην Ι θα οδηγήσουν στην κατάσταση S, όπου SєG. ηλαδή ένα πρόβληµα σχεδιασµού µπορεί να παρασταθεί µε µια τριάδα P=(A,I,G). Η λύση σε ένα τέτοιο πρόβληµα δίνεται από µια ακολουθία ενεργειών α 1,α 2,,α Ν η οποία είναι εφαρµόσιµη στην αρχική κατάσταση (δηλαδή η λίστα προϋποθέσεων είναι υποσύνολο των γεγονότων της τρέχουσας κατάστασης) και η κατάσταση που προκύπτει περιέχει τους στόχους του προβλήµατος. 2.3 Κατηγορίες πλάνων Τα πλάνα ανάλογα µε τον βαθµό λεπτοµέρειας των διαφόρων ενεργειών διακρίνονται σε ιεραρχικά (hierarchical) και µη ιεραρχικά (non-hierarchical). Ένα µη ιεραρχικό πλάνο αποτελείται µόνο από µία αναπαράσταση η οποία περιέχει όλες τις απαραίτητες ενέργειες που πρέπει να γίνουν ώστε να επιτευχθούν οι στόχοι του προβλήµατος. Τα µη ιεραρχικά πλάνα µπορούν να λύσουν απλά προβλήµατα, όταν όµως αυξάνεται η πολυπλοκότητα, τότε αναπτύσσονται πολύ µεγάλοι χώροι αναζήτησης που επιβαρύνουν σηµαντικά την απόδοση. Ένα ιεραρχικό πλάνο αποτελείται από ένα σύνολο αναπαραστάσεων που είναι δο- µηµένες σε µια ιεραρχική µορφή. Στο υψηλότερο επίπεδο, που ονοµάζεται χώρος αφαί- -10-

15 ρεσης, βρίσκονται οι σηµαντικότερες και πιο απλουστευµένες ενέργειες, ενώ στο χα- µηλότερο επίπεδο, το χώρο βάσης, παρουσιάζονται αναλυτικά όλες οι ενέργειες που θα οδηγήσουν στην τελική λύση. Στην αρχή παράγεται ένα πλήρες αλλά ασαφές σχέδιο, το οποίο παίζει το ρόλο του οδηγού και στη συνέχεια αυτό το σχέδιο επεκτείνεται σταδιακά ώσπου να προκύψει ένα λεπτοµερές πλάνο. Το βασικό πλεονέκτηµα είναι ότι α- γνοώντας τις λεπτοµέρειες, µειώνεται αποτελεσµατικά ο χώρος αναζήτησης. Μια δεύτερη διάκριση µπορεί να γίνει µε βάση την αυστηρότητα στον καθορισµό της διάταξης των ενεργειών. Έτσι τα πλάνα µπορούν να χωριστούν σε γραµµικά (linear) και µη γραµµικά (non-linear). Σε ένα γραµµικό πλάνο υπάρχει αυστηρή και πλήρης διαδοχή των ενεργειών που πρέπει να γίνουν. Οι ενέργειες πρέπει να γίνουν µε συγκεκρι- µένη χρονική σειρά και για να εκτελεστεί µια νέα ενέργεια, θα πρέπει να έχει ολοκληρωθεί η προηγούµενη. Ένα παράδειγµα γραµµικού πλάνου απεικονίζεται στο Σχήµα 2.4. Σχήµα 2.4: Γραµµικό πλάνο µε δίκτυο ενεργειών -11-

16 Αντίθετα σε ένα µη γραµµικό πλάνο δεν υπάρχει πλήρης διαδοχή ενεργειών και η σειρά εκτέλεσης ενεργειών ορίζεται µόνο όταν είναι απαραίτητο. Στα µη γραµµικά πλάνα δύο ενέργειες µπορούν να εκτελούνται παράλληλα, όταν αυτό είναι εφικτό, µε µερική ή ολική αλληλοεπικάλυψη. Το γεγονός αυτό τους δίνει ένα σηµαντικό πλεονέκτηµα, καθώς µε την ταυτόχρονη εκτέλεση κάποιων ενεργειών, µειώνεται ο χρόνος που χρειάζεται για να επιτευχθεί ο στόχος. Στο Σχήµα 2.5, όπου απεικονίζεται ένα µη γραµµικό πλάνο γίνεται καλύτερα αντιληπτή η παράλληλη εκτέλεση ενεργειών (ταυτόχρονη ε- κτέλεση των ενεργειών move_truck και fly_airplane). Σχήµα 2.5: Μη γραµµικό πλάνο µε ραβδόγραµµα Η βασική αρχή πάνω στην οποία στηρίζονται τα µη γραµµικά πλάνα είναι η αρχή της ελάχιστης δέσµευσης, σύµφωνα µε την οποία οι ενέργειες δεν τοποθετούνται σε συγκεκριµένη διάταξη και µόνο αν κριθεί απαραίτητο ορίζονται οι περιορισµοί εκτέλεσής τους. Αυτοί οι περιορισµοί ονοµάζονται περιορισµοί διάταξης και είναι µερικές διατάξεις των ενεργειών. ηλαδή αν Α=α 1, α 2,α 3, είναι το σύνολο ενεργειών σε ένα µη γραµµικό πλάνο, τότε ένα πιθανό σύνολο περιορισµών διάταξης θα ήταν το Ο=α 1 <α 3,α 2 <α 3, που σηµαίνει ότι οι ενέργειες α 1 και α 2 πρέπει να εκτελεστούν πριν από την α 3 µε οποιαδήποτε όµως σειρά, είτε πρώτα η α1 και µετά η α 2 (α 1 <α 2 <α 3 ) είτε αντίστροφα (α 2 <α 1 <α 3 ). 2.4 Εκτέλεση πλάνων Ένας πράκτορας σχεδιαστής (planning agent) αναλαµβάνει να δηµιουργήσει ένα πλάνο, έχοντας ως βάση ένα στιγµιότυπο του κόσµου σε µια δεδοµένη χρονική στιγµή, όπως το έχει αντιληφθεί µε τους αισθητήρες (sensors) που διαθέτει. Στη συνέχεια, το πλάνο µεταβιβάζεται στα όργανα εκτέλεσης. Όµως ο πραγµατικός κόσµος µπορεί να -12-

17 έχει µεταβληθεί από εξωτερικούς παράγοντες και οι ενέργειες να µην είναι πλέον ε- φαρµόσιµες, αφού δεν πληρούνται πια οι προϋποθέσεις τους. Σ αυτήν την περίπτωση µπορεί να γίνει κάποια από τις ακόλουθες ενέργειες: Να επαναληφθεί ο σχεδιασµός ενεργειών µε τα νέα δεδοµένα Να εφαρµοστεί ένα εναλλακτικό πλάνο που είναι εφαρµόσιµο Να τροποποιηθεί το πλάνο στα σηµεία που υπάρχει πρόβληµα, ώστε να γίνει εφαρµόσιµο Η πρώτη επιλογή του πλήρους επανασχεδιασµού είναι αρκετά απλή και εύκολα υ- λοποιήσιµη, αλλά συνήθως προτιµάται η τελευταία επιλογή, της τροποποίησης του πλάνου, που είναι και η βέλτιστη λύση. 2.5 Παραδείγµατα Σχεδιαστών Ιεραρχικοί Σχεδιαστές GPS, Newell, Shaw, Simon ( ) Ο GPS (General Problem Solver), σχεδιάστηκε για να επιλύει προβλήµατα που α- παιτούν την ανθρώπινη σκέψη, προσοµοιώνοντας τον ανθρώπινο τρόπο σκέψης. Αν και δηµιουργήθηκε σα γενικός σχεδιαστής, επίλυε µόνο συγκεκριµένα είδη προβληµάτων όπως παζλ. Ο GPS ήταν ο πρώτος σχεδιαστής που χρησιµοποίησε τη means-end analysis, σύµφωνα µε την οποία προσπαθούσε να καλύψει τη διαφορά ανάµεσα σε ένα αντικείµενο και το στόχο, µε την εφαρµογή κάποιου τελεστή. Αν ο τελεστής δεν µπορούσε να εφαρµοστεί στο συγκεκριµένο αντικείµενο, τότε µετασχηµάτιζε αυτό το αντικείµενο, ώστε να είναι εφαρµόσιµος ο τελεστής. Λογικοί Σχεδιαστές QA3,Cordell Green (1969) Ο QA3 προσπαθούσε να µετασχηµατίσει ένα πρόβληµα σε µια µορφή που να µπορεί να επιλυθεί µε τη διαδικασία απόδειξης θεωρηµάτων. Σε κάθε κατηγόρηµα υ- πήρχε και µια µεταβλητή κατάστασης. Το σύστηµα προσπαθούσε να αποδείξει ότι ο στόχος είναι εφικτός, δηλαδή ότι υπάρχει µια κατάσταση που επαληθεύει το στόχο. -13-

18 Μη-ιεραρχικοί γραµµικοί Σχεδιαστές STRIPS,Fikes and Nilsson,1971 Ο STRIPS είναι ένας µη ιεραρχικός γραµµικός σχεδιαστής, ο οποίος αναπαριστά τον κόσµο σα µια συλλογή από τύπους της κατηγορηµατικής λογικής πρώτης τάξης. Προσπαθεί να βρει µια ακολουθία τελεστών, οι οποίοι όταν εφαρµοστούν σε µια δεδοµένη αρχική κατάσταση, να οδηγήσουν σε µια δεδοµένη τελική, χρησιµοποιώντας τη means-end analysis. HACKER,Sussman,1973 Ο HACKER προσπάθησε να επιλύσει προβλήµατα αλληλεπίδρασης στόχων, δηλαδή προβλήµατα όπου η επίτευξη ενός στόχου εµπόδιζε την επίτευξη κάποιου άλλου. Για να το επιτύχει αυτό, άλλαζε τη σειρά των στόχων προσπαθώντας να βρει τη κατάλληλη διάταξη που θα εξασφάλιζε την επίτευξη όλων των στόχων. Παρόλα αυτά οι λύσεις που προσέφερε δεν ήταν πάντα βέλτιστες. WARPLAN, David Warren,1973 Ο WARPLAN όπως και ο HACKER προσπάθησε να λύσει προβλήµατα αλληλεπίδρασης. Όταν υπήρχαν αντικρουόµενοι στόχοι, ο WARPLAN προσπαθούσε να δώσει λύση στο πρόβληµα χρησιµοποιώντας χρονολογική οπισθοδρόµηση, δηλαδή τοποθετούσε την ενέργεια που αλληλεπιδρούσε µε µια άλλη σε προηγούµενο χρονικό σηµείο, όπου δεν υπήρχε το πρόβληµα της αλληλεπίδρασης. Αξιοσηµείωτο είναι το γεγονός ότι ο σχεδιαστής αυτός ήταν γραµµένος σε µόλις 100 γραµµές κώδικα PROLOG κάτι που τον καθιστούσε το µικρότερο σχεδιαστή της εποχής. INTERPLAN, Austin Tate,1974 Ο INTERPLAN ακολουθεί κι αυτός τη λογική του HACKER. ηµιουργεί ολοκληρωµένα πλάνα και αν εµφανιστούν αντικρουόµενοι στόχοι τα επιδιορθώνει. Αναδιατάσσει τους στόχους στο ίδιο επίπεδο και αν αυτό δεν επιλύσει το πρόβληµα, τότε προωθεί τον ένα από τους αντικρουόµενους στόχους στο αµέσως ανώτερο επίπεδο. Μπορεί να απαιτείται µεγάλος χώρος για τις συνεχείς αναδιατάξεις στόχων στα -14-

19 διάφορα επίπεδα, όµως ο INTERPLAN παράγει πολύ καλύτερα πλάνα από τον HACKER. Ιεραρχικοί γραµµικοί Σχεδιαστές ABSTRIPS,Sacerdoti,1974 Ο ABSTRIPS είναι µια τροποποίηση του STRIPS, µόνο που ο σχεδιασµός βασίζεται σε µια ιεραρχία επιπέδων αφαίρεσης. Τα διάφορα επίπεδα αφαίρεσης χρησιµοποιούν τα ίδια αντικείµενα και τους ίδιους τελεστές µετάβασης, αλλά κάποιες προϋποθέσεις έχουν µεγαλύτερη βαρύτητα από κάποιες άλλες. Έτσι ο σχεδιαστής προσπαθεί πρώτα να εκτελέσει τα γεγονότα µε τους µεγαλύτερους συντελεστές και µετά τα υπόλοιπα. Μη-ιεραρχικοί µη-γραµµικοί Σχεδιαστές SIPE, David Wilkins,1983 Ο SIPE αντιµετώπιζε κάθε αντικείµενο σαν ένα πόρο (resource), δηλαδή µια δυαδική µεταβλητή, η οποία µπορεί να αλλάξει τιµή µετά την εφαρµογή κάποιου τελεστή σε αυτό. Αν δυο ενέργειες προσπαθούσαν να εφαρµοστούν στον ίδιο πόρο, τότε ο SIPE µπορούσε εύκολα να ανιχνεύσει και να επιλύσει την αλληλεπίδραση καθώς χρησιµοποιούσε ευριστικούς τρόπους ανίχνευσης. TWEAK, Chapman,1987 Ο TWEAK είναι ένας µη γραµµικός σχεδιαστής που χρησιµοποιεί την τεχνική της τοποθέτησης περιορισµών (constraint posting ) για την επίλυση των προβληµάτων. Σύµφωνα µε αυτή την τεχνική, κάθε αντικείµενο καθορίζεται από µια σειρά αυξανόµενων περιορισµών τους οποίους πρέπει να πληρεί. Έτσι, καθώς προστίθενται νέοι περιορισµοί ο χώρος αναζήτησης µειώνεται σηµαντικά και ελαττώνεται η οπισθοδρόµηση. Κατά τη διαδικασία σχεδιασµού επιλέγεται ένας στόχος και µε τη βοήθεια του κριτηρίου «τυπικής αλήθειας» (modal truth criterion) δηµιουργείται ένα πλάνο για την επίτευξή του. Ο TWEAK είναι ένας σχεδιαστής που παράγει πλήρη πλάνα, δηλαδή αν βρει ένα πλάνο σηµαίνει ότι είναι σωστό, ενώ αν δε βρει σηµαίνει ότι δεν υπάρχει λύση στο πρόβληµα. Ιεραρχικοί µη-γραµµικοί Σχεδιαστές -15-

20 NOAH, Sarcerdoti,1975 Ο NOAH ( Nets Of Action Hierarchies) είναι ένα σύστηµα που µπορεί να καθοδηγήσει έναν ερασιτέχνη να επιδιορθώσει µια δυσλειτουργία. Λόγω της ιεραρχικής του φύσης δηµιουργεί αφαιρετικά πλάνα που µπορούν να βοηθήσουν έναν ειδικό, αλλά αδυνατούν να παράγουν λεπτοµερή πλάνα που να καθοδηγούν έναν αρχάριο. Στον NOAH οι ενέργειες και οι στόχοι είναι µερικώς ή καθόλου ταξινοµηµένοι και µόνο όταν ανιχνευτεί κάποια αλληλεπίδραση προβαίνει στην ταξινόµηση. MOLGEN, Stefik Mark,1980 Ο MOLGEN ήταν ένας σχεδιαστής που χρησιµοποιήθηκε σε πειράµατα γενετικής. Χρησιµοποιούσε στοιχεία της ιεραρχικής σχεδίασης, καθώς ο έλεγχος γινόταν από όλα τα επίπεδα. Τα πλάνα δηµιουργούνταν σε ένα επίπεδο, οι αποφάσεις για τη σχεδίασή τους λαµβάνονταν σε ένα ανώτερο επίπεδο, ενώ οι στρατηγικές που ελέγχουν τις αποφάσεις σχεδιασµού ήταν στο ανώτατο επίπεδο. Ο MOLGEN χρησιµοποιούσε τρία είδη περιορισµών για να παραστήσει τις αλληλεπιδράσεις µεταξύ των υποπροβληµάτων. Constraint formulation, µε τον οποίο αναγνωρίζονταν οι αλληλεπιδράσεις µεταξύ των στόχων, constraint propagation, που δηµιουργούσε νέους περιορισµούς µε βάση τους παλιούς ώστε να διορθωθούν τα αφαιρετικά µέρη ενός πλάνου και constraint satisfaction µε τον οποίο προσπαθούσε να αντικαταστήσει τα αντικείµενα ώστε να ικανοποιούνται οι εκάστοτε περιορισµοί. 2.6 Αναζήτηση Προβλήµατα αναζήτησης Ένα πρόβληµα αναζήτησης ορίζεται µε τον ίδιο περίπου τρόπο µε τα προβλήµατα σχεδιασµού ενεργειών. Ορίζεται σαν µια τετράδα P=(I,G,T,S), όπου I είναι η αρχική κατάσταση, G είναι το σύνολο των τελικών καταστάσεων,t είναι το σύνολο των τελεστών µετάβασης και S είναι ο χώρος καταστάσεων. Χώρος καταστάσεων (state space ή domain space) ενός προβλήµατος ονοµάζεται το σύνολο των έγκυρων καταστάσεων, δηλαδή αυτών µπορούν να εφαρµοστούν στην αρχική κατάσταση. Ο χώρος των καταστάσεων µπορεί να παρασταθεί γραφικά µε ένα γράφο, όπου κάθε κόµβος είναι µια κατάσταση και κάθε ακµή που ενώνει έναν κόµβο είναι ένας τελεστής. -16-

21 Σε ένα πρόβληµα αναζήτησης, εκτός από το χώρο καταστάσεων υπάρχει και ο χώρος αναζήτησης (search space), ο οποίος αποτελείται από το σύνολο όλων των καταστάσεων που είναι προσβάσιµες από την αρχική, δηλαδή υπάρχει µια ακολουθία τελεστών που τις συνδέουν µε την αρχική. Η διαφορά ανάµεσα στο χώρο αναζήτησης και το χώρο καταστάσεων είναι ότι ο χώρος αναζήτησης είναι υποσύνολο του χώρου καταστάσεων και εξαρτάται από την αρχική κατάσταση, ενώ ο χώρος καταστάσεων όχι. Η αναπαράσταση του χώρου αναζήτησης µπορεί να γίνει είτε µε γράφο, όπως ο χώρος καταστάσεων, είτε µε δέντρο αναζήτησης (search tree), που είναι και ο πιο συνηθισµένος τρόπος. Ένα τέτοιο δέντρο έχει στη ρίζα του την αρχική κατάσταση, κάθε κλαδί είναι ένας τελεστής µετάβασης και οι κόµβοι-παιδιά αποτελούν τις νέες καταστάσεις, οι οποίες µπορεί να είναι τελικές ή αδιέξοδο. Η λύση σε ένα πρόβληµα αναζήτησης (I,G,T,S) είναι µια ακολουθία από τελεστές µετάβασης: t 1,t 2,,t n єt µε την ιδιότητα : g=t n ( (t 2 (t 1 (I))) ), όπου gєg που σηµαίνει ότι αν εφαρµοστεί στην αρχική κατάσταση ο τελεστής t 1, ο t 2 στην κατάσταση που προκύπτει κλπ., θα πάρουµε µια τελική κατάσταση. Η διαδικασία εύρεσης λύσης στα προβλήµατα αναζήτησης αυτοµατοποιείται µε τη χρήση αλγορίθµων, οι οποίοι επειδή αναζητούν λύση στο πρόβληµα ονοµάζονται αλγόριθµοι αναζήτησης. Υπάρχουν αρκετοί αλγόριθµοι αναζήτησης οι οποίοι διαφέρουν ως προς την αποδοτικότητα σε µνήµη και χρόνο, την πολυπλοκότητα, την πληρότητα και την ευκολία υλοποίησης. Όµως η βασική κατηγοριοποίηση γίνεται µε βάση τον τρόπο αναζήτησης της λύσης. Έτσι έχουµε τους αλγόριθµους τυφλής αναζήτησης και τους αλγόριθµους ευριστικής αναζήτησης Αλγόριθµοι Τυφλής αναζήτησης Οι αλγόριθµοι τυφλής αναζήτησης εφαρµόζονται σε προβλήµατα στα οποία δεν είναι εφικτή η αξιολόγηση των καταστάσεων του χώρου αναζήτησης. Έτσι εξετάζονται όλες τις καταστάσεις του χώρου αναζήτησης, ανάλογα µε τη χρονική στιγµή που παράχθηκαν, µέχρι να βρεθεί η λύση. Σ αυτή την κατηγορία αλγορίθµων ανήκουν οι αλγόριθµοι: πρώτα σε βάθος (Depth-First Search DFS), πρώτα σε πλάτος (Breadth-First Search BFS) και ο αλγόριθµος επαναληπτικής εκβάθυνσης (Iterative Deepening ID). -17-

22 Στον DFS η αναζήτηση επιλέγει να επεκτείνει πρώτα την κατάσταση που είναι πιο βαθιά στο δέντρο. Αν υπάρχουν περισσότερες από µία καταστάσεις που βρίσκονται στο ίδιο βάθος τότε επιλέγεται τυχαία µια από αυτές, κατά κανόνα αυτή που βρίσκεται πιο αριστερά. Πιο αναλυτικά, ο αλγόριθµος ξεκινάει από την αρχική κατάσταση, ελέγχει αν είναι τελική ή αν ανήκει στο κλειστό σύνολο (µια λίστα όπου αποθηκεύονται όλες οι καταστάσεις που έχουν επεκταθεί) και αν όχι την επεκτείνει. Βάζει τις νέες καταστάσεις στο µέτωπο αναζήτησης (µια στοίβα όπου αποθηκεύονται οι καταστάσεις που έχει επισκεφθεί ο αλγόριθµος αλλά δεν έχουν επεκταθεί) και τοποθετεί την τρέχουσα κατάσταση στο κλειστό σύνολο. Στη συνέχεια επιλέγεται η επόµενη κατάσταση από το µέτωπο αναζήτησης και η διαδικασία επαναλαµβάνεται. Ο DFS έχει µικρό χώρο αναζήτησης αλλά δεν εγγυάται ότι η πρώτη λύση που θα βρει θα είναι η βέλτιστη και µπορεί να µπλεχτεί σε κλαδιά µεγάλου µήκους. Στο σχήµα 2.7 απεικονίζεται διαγραµµατικά ο DFS στην προσπάθεια εύρεσης ενός µονοπατιού στον παρακάτω λαβύρινθο. Συγκεκριµένα, αναζητείται ένα µονοπάτι που να ξεκινάει από τη θέση 1,4 και να καταλήγει στη θέση15,10. Σχήµα 2.6 : Λαβύρινθος -18-

23 Σχήµα 2.7 : Παράδειγµα αλγορίθµου DFS στο πρόβληµα του λαβυρίνθου Ο BFS εξετάζει πρώτα τις καταστάσεις που βρίσκονται πρώτα στο ίδιο βάθος και µόνο όταν τις εξετάσει όλες, συνεχίζει στην επέκταση των καταστάσεων στο αµέσως επόµενο επίπεδο. Η διαδικασία αναζήτησης είναι ίδια µε τον DFS, µόνο που το µέτωπο αναζήτησης αναπαρίσταται µε τη µορφή λίστας και όχι στοίβας όπως στον DFS, που σηµαίνει ότι οι νέες καταστάσεις προστίθενται στο τέλος του µετώπου αναζήτησης για να εξεταστούν στο τέλος. Ο BFS βρίσκει πάντα τη λύση µε το µικρότερο µήκος αλλά αναπτύσσει πολύ µεγάλο µέτωπο αναζήτησης. Στο σχήµα 2.8 απεικονίζεται η αναζήτηση µε BFS στο πρόβληµα του λαβυρίνθου. Σχήµα 2.8 : Εφαρµογή του αλγορίθµου BFS στο πρόβληµα του λαβυρίνθου -19-

24 Ο ID είναι ένας συνδυασµός των δύο παραπάνω αλγορίθµων DFS και BFS. Ο ID είναι κατά βάση DFS, µόνο που η αναζήτηση γίνεται σε στάδια. Σε κάθε στάδιο εφαρ- µόζεται ο DFS για ένα ορισµένο βάθος, ανεξάρτητα από το συνολικό βάθος του δέντρου αναζήτησης. Όταν ολοκληρωθεί η αναζήτηση στο προκαθορισµένο βάθος, επαναλαµβάνεται ο DFS µε την ίδια αρχική κατάσταση αλλά σε µεγαλύτερο βάθος. Αναλυτικότερα, ορίζουµε το αρχικό βάθος αναζήτησης και εφαρµόζουµε τον DFS µέχρι αυτό το βάθος. Αν βρεθεί λύση τότε σταµατάει η αναζήτηση, αλλιώς αυξάνεται το βάθος αναζήτησης και επαναλαµβάνεται η ίδια διαδικασία. Ο ID δεν κρατάει πληροφορίες από την προηγούµενη αναζήτηση κι αυτό αποτελεί ένα σοβαρό µειονέκτηµα, αλλά αυτό αντισταθµίζεται από το γεγονός ότι δεν κινδυνεύει να χαθεί σε κάποιο κλαδί µε ά- πειρο µήκος, όπως ο DFS, καθώς το βάθος είναι κάθε φορά προκαθορισµένο. Στο σχή- µα 2.9 απεικονίζεται διαγραµµατικά ο ID στο πρόβληµα του λαβυρίνθου. Σχήµα 2.9: Εφαρµογή του αλγορίθµου ID στο πρόβληµα του λαβυρίνθου -20-

25 2.6.3 Αλγόριθµοι Ευριστικής Αναζήτησης Οι αλγόριθµοι τυφλής αναζήτησης, µη έχοντας κάποια πληροφορία για το σωστό µονοπάτι, παράγουν πολύ µεγάλους χώρους αναζήτησης και η διάρκεια της αναζήτησης είναι τόσο µεγάλη που πρακτικά δε βρίσκεται λύση. Αυτή η µεγάλη αύξηση του χώρου αναζήτησης προκαλεί το φαινόµενο της συνδυαστικής έκρηξης, το οποίο καλούνται να αντιµετωπίσουν οι αλγόριθµοι ευριστικής αναζήτησης. Σ αυτούς τους αλγόριθµους υπάρχει µια ευριστική συνάρτηση µε βάση την οποία αξιολογούνται οι καταστάσεις και έτσι η αναζήτηση καθοδηγείται σε µονοπάτια που οδηγούν σε λύση, µειώνοντας σηµαντικά το χώρο αναζήτησης. Η ευριστική συνάρτηση δέχεται µια κατάσταση και δίνει σαν αποτέλεσµα µια ευριστική τιµή, η οποία εκφράζει το πόσο κοντά είναι µια κατάσταση στην τελική. Η τιµή της ευριστικής συνάρτησης δεν είναι η πραγµατική απόσταση από µια τερµατική κατάσταση αλλά µια προσεγγιστική τιµή (estimate). Ανάλογα µε τη λεπτοµέρεια των υπολογισµών, οι ευριστικές συναρτήσεις χωρίζονται σε συναρτήσεις λεπτής υφής ή λεπτο- µερειακές (fine grain), οι οποίες δίνουν καλύτερη εκτίµηση αλλά είναι χρονοβόρες στους υπολογισµούς και σε συναρτήσεις αδρής υφής ή µη λεπτοµερειακές (coarse grain), οι οποίες δίνουν µια πιο γρήγορη εκτίµηση αλλά δεν είναι τόσο ακριβείς. Κάποιες συναρτήσεις που χρησιµοποιούνται συχνά σε προβλήµατα µε λαβύρινθους, puzzle κλπ. είναι η Ευκλείδεια απόσταση και η απόσταση Manhattan. Οι πιο γνωστοί αλγόριθµοι ευριστικής συνάρτησης είναι ο αλγόριθµος αναρρίχησης λόφων (Hill-Climbing Search HC), ο αλγόριθµος αναζήτησης πρώτα στο καλύτερο (Best-First BestFS) και ο Άλφα Άστρο (Α*). Ο HC είναι παρόµοιος µε τον DFS, µε τη διαφορά ότι η επόµενη κατάσταση δεν ε- πιλέγεται τυχαία (κατά κανόνα η πιο αριστερή), αλλά χρησιµοποιείται µια ευριστική συνάρτηση που δίνει την καλύτερη κατάσταση αποκόπτοντας τις υπόλοιπες από το µέτωπο αναζήτησης. Αναλυτικότερα, η αρχική κατάσταση γίνεται η τρέχουσα και ελέγχεται αν είναι τελική οπότε και τερµατίζεται ο αλγόριθµος. Αν δεν είναι τελική, βρίσκει τις καταστάσεις-παιδιά εφαρµόζοντας τους τελεστές µετάβασης και µε τη βοήθεια της ευριστικής συνάρτησης βρίσκει την καλύτερη από αυτές. Αν η κατάσταση που επιλέχθηκε είναι καλύτερη από την τρέχουσα, γίνεται αυτή τρέχουσα και επαναλαµβάνεται η ίδια διαδικασία. Αλλιώς ο αλγόριθµος τερµατίζεται. Ο HC χρησιµοποιείται σε περι- -21-

26 πτώσεις που θέλουµε µια γρήγορη λύση ακόµα και αν αυτή δεν είναι η βέλτιστη ή ακό- µα και ρισκάροντας να µη βρεθεί λύση ενώ υπάρχει. Είναι δηλαδή αποδοτικός σε χρόνο και σε µνήµη αλλά δεν είναι πλήρης. Ο BestFS, σε αντίθεση µε τον HC κρατάει όλες τις καταστάσεις στο µέτωπο αναζήτησης, ώστε αν κάποια στιγµή οδηγηθεί σε αδιέξοδο ή σε χειρότερο µονοπάτι να µπορεί να επιστρέψει σε µια καλύτερη κατάσταση. Αρχικά, βάζει την αρχική κατάσταση στο µέτωπο αναζήτησης και επιλέγει από αυτό, µε τη βοήθεια της ευριστικής συνάρτησης, την καλύτερη κατάσταση. Αν η κατάσταση ανήκει στο κλειστό σύνολο, δηλαδή έχει ήδη επεκταθεί, τότε διαλέγει την επόµενη καλύτερη κατάσταση από το µέτωπο α- ναζήτησης. Ελέγχει αν η νέα κατάσταση είναι τελική και αν δεν είναι, τότε παράγει τις νέες καταστάσεις-παιδιά, υπολογίζει την τιµή της ευριστικής συνάρτησης για καθένα από αυτά και τα προσθέτει στο µέτωπο αναζήτησης. Τοποθετεί την τρέχουσα κατάσταση στο κλειστό σύνολο και επαναλαµβάνεται η ίδια διαδικασία µέχρι να βρεθεί κάποια λύση. Ο Best-First προσπαθεί να δώσει µια γρήγορη λύση σε ένα πρόβληµα, χωρίς να εγγυάται ότι είναι η βέλτιστη, διατηρώντας όµως ένα µεγάλο µέτωπο αναζήτησης που χρειάζεται µεγάλο χώρο αποθήκευσης και χρόνο επεξεργασίας. Ο Α* αποτελεί µια παραλλαγή του BestFS. Ενώ στο BestFS η τιµή της ευριστικής συνάρτησης δίνει την απόσταση µιας κατάστασης από την τελική, στον Α* η τιµή της ευριστικής προστίθεται στην απόσταση που έχει ήδη διανυθεί από την αρχική µέχρι την τρέχουσα κατάσταση. Έχει αποδειχθεί ότι αν η τιµή της ευριστικής είναι µικρότερη ή ίση από την πραγµατική απόσταση, τότε ο Α* βρίσκει πάντα τη βέλτιστη λύση ιάσχιση του χώρου Αναζήτησης Σ όλους τους παραπάνω αλγορίθµους η αναζήτηση ξεκινούσε από την αρχική κατάσταση και µε την εφαρµογή κάποιων τελεστών κατέληγε σε κάποια τελική κατάσταση. Αυτός ο τρόπος διάσχισης του χώρου αναζήτησης ονοµάζεται ορθή διάσχιση (progression). Η εφαρµογή ενός τελεστή µε βάση την ορθή διάσχιση µπορεί να περιγραφεί ως εξής: Έστω µια αρχική κατάσταση που περιγράφεται από ένα σύνολο S, τότε µπορεί να εφαρµοστεί ο τελεστής τ=(p,a,d) (όπου P,A,D αντίστοιχα τα σύνολα preconditions, additions, deletions) εάν το σύνολο P είναι υποσύνολο S. Η κατάσταση που παράγεται είναι η S =AU(S-D) -22-

27 Υπάρχει όµως και ένας άλλος τρόπος διάσχισης του χώρου αναζήτησης, η ανάστροφη διάσχιση (regression) στην οποία η αναζήτηση ξεκινά από την τελική κατάσταση. Η εφαρµογή ενός τελεστή έχει ως αποτέλεσµα το µετασχηµατισµό του τελικού στόχου σε ένα στόχο που αντιστοιχεί σε προηγούµενο βήµα στη διαδικασία. Αυτό επαναλαµβάνεται µέχρι τελικά να προκύψει η αρχική κατάσταση. Η εφαρµογή ενός τελεστή µε βάση την ανάστροφη µέθοδο µπορεί να περιγραφεί ως εξής: Έστω µια τελική κατάσταση-στόχος που περιγράφεται από ένα σύνολο G, τότε µπορεί να εφαρµοστεί ο τελεστής τ=(p,a,d) (όπου P,A,D αντίστοιχα τα σύνολα preconditions, additions, deletions) εάν η τοµή του G µε το D είναι το κενό σύνολο. Ο νέος στόχος που παράγεται είναι ο G =PU (G-A). Η ανάστροφη µέθοδος αναφέρεται και ως τεχνική ανάλυσης των µέσων και των στόχων (means-ends analysis), καθώς δίνεται προτεραιότητα σε εκείνους τους τελεστές (µέσα), η εφαρµογή των οποίων θα έχει ως αποτέλεσµα τη µείωση της απόστασης µεταξύ αρχικής κατάστασης και στόχου. -23-

28 3 Περιγραφή του θέµατος της διπλωµατικής Παραπάνω έγινε µια περιγραφή των προβληµάτων σχεδιασµού ενεργειών καθώς και του τρόπου αναπαράστασης και επίλυσής τους. Όπως είδαµε, για να µπορέσουν να επιλυθούν τα προβλήµατα αυτής της κατηγορίας, πρέπει πρώτα να περιγραφούν οι καταστάσεις και οι ενέργειες και να αναπαρασταθούν µε κωδικοποιηµένο τρόπο. Πολλές φορές όµως, η διαδικασία της κωδικοποίησης είναι επίπονη και χρονοβόρα, καθιστώντας δύσκολη την περιγραφή και επίλυση τέτοιων προβληµάτων, είτε γιατί ο χρήστης δεν έχει γνώσεις προγραµµατισµού, είτε γιατί µπορεί να προκύψουν λάθη στην κωδικοποίηση. Ένας χρήστης που δεν έχει γνώσεις προγραµµατισµού, είναι πολύ δύσκολο να περιγράψει ένα πρόβληµα σχεδιασµού ενεργειών µε τη χρήση κανόνων αλλά και να κατανοήσει ένα πλάνο που αποτελείται από κωδικοποιηµένες ενέργειες. Σκοπός της συγκεκριµένης διπλωµατικής είναι να απλοποιήσει τη διαδικασία της σύνθεσης και περιγραφής προβληµάτων σχεδιασµού ενεργειών, χρησιµοποιώντας γραφικό τρόπο, απαλλάσσοντας έτσι τον χρήστη από τη δηµιουργία κώδικα. Αυτή η ε- φαρµογή µπορεί να διευκολύνει σηµαντικά όσους ασχολούνται µε τα συστήµατα σχεδιασµού ενεργειών και ιδιαίτερα τους απλούς χρήστες τέτοιων συστηµάτων, που αυτό που τους ενδιαφέρει είναι να διατυπώσουν το πρόβληµά τους µε έναν εύκολο και απλό τρόπο. Η εφαρµογή δίνει τη δυνατότητα σε ένα χρήστη, ο οποίος µπορεί να µην είναι εξεικοιωµένος µε τον προγραµµατισµό, να συνθέσει ένα πρόβληµα σχεδιασµού ενεργειών µε τη χρήση τρισδιάστατων γραφικών και στη συνέχεια να παρακολουθήσει τη λύση που παρουσιάζεται µε τη χρήση animation. Τα προβλήµατα που υποστηρίζονται από αυτή την εφαρµογή αφορούν τη µετακίνηση αντικειµένων από έναν πράκτορα (ροµπότ) µέσα σε ένα λαβύρινθο. Πιο συγκεκριµένα, το περιβάλλον της εφαρµογής αποτελείται από ένα πλέγµα διαστάσεων 10x10 µέσα στο οποίο τοποθετούνται τα αντικείµενα που αποτελούν το πρόβληµα και είναι τα εξής: εµπόδια (κύβοι), που µπορεί να βρίσκονται σε οποιαδήποτε σηµείο µέσα στο πλέγµα και αποτελούν εµπόδια στην κίνηση του ροµπότ, -24-

29 µπάλες διαφορετικού χρώµατος τις οποίες καλείται να µετακινήσει το ροµπότ προς το στόχο τους, καλάθια διαφορετικών χρωµάτων µέσα στα οποία θα τοποθετούνται οι µπάλες του αντίστοιχου χρώµατος και ένα ροµπότ το οποίο θα κινείται µέσα στο πλέγµα και θα µεταφέρει τις µπάλες στο στόχο τους. Έστω για παράδειγµα το παρακάτω πρόβληµα. Το ροµπότ βρίσκεται στη θέση (9,2), οι µπάλες είναι στις θέσεις (3,3), (8,6) και (1,8), ενώ τα αντίστοιχα καλάθια στα οποία πρέπει να µεταφερθούν οι µπάλες είναι στις θέσεις (9,8), (4,9) και (6,5). Το ρο- µπότ πρέπει να βρει το µονοπάτι που θα ακολουθήσει ώστε να µεταφέρει όλες τις µπάλες στα αντίστοιχα καλάθια, αποφεύγοντας τα εµπόδια, που στο σχήµα αναπαρίστανται µε τα σκιασµένα τετράγωνα και βρίσκονται στις θέσεις (3,2), (6,2), (3,3), (5,3), (6,3), (4,4),(5,4), (5,5), (2,6), (7,6), (2,7), (4,7), (6,7), (8,7), (9,7), (3,8), (4,8), (5,8), (8,8), (1,9), (3,9), (5,9) και (8,9) Σχήµα 3.1 Το πρόβληµα αυτό θα µπορούσε να επιλυθεί µε δύο τρόπους, είτε σαν πρόβληµα σχεδιασµού ενεργειών ή σαν πρόβληµα αναζήτησης. -25-

30 3.1 Αναγωγή σε πρόβληµα σχεδιασµού ενεργειών Ένας τρόπος να επιλυθεί το παραπάνω πρόβληµα είναι να το αναγάγουµε σε πρόβληµα σχεδιασµού ενεργειών. Για να επιλυθεί ένα τέτοιο πρόβληµα θα πρέπει να περιγραφεί σε κάποια γλώσσα σχεδιασµού, συνήθως PDDL και στη συνέχεια να κληθεί ένας σχεδιαστής (Planner), ο οποίος θα πάρει τα δεδοµένα του προβλήµατος και θα παράγει το πλάνο που αποτελεί τη λύση του προβλήµατος, το οποίο είτε θα εµφανίσει στην οθόνη ή θα αποθηκεύσει σε κάποιο αρχείο. Πιο συγκεκριµένα, ο σχεδιαστής παίρνει σαν είσοδο δύο αρχεία το αρχείο περιγραφής του πεδίου σχεδιασµού (domain file) και το αρχείο περιγραφής του προβλήµατος (problem file) Το πρώτο αρχείο περιλαµβάνει το όνοµα του πεδίου προβλήµατος και τον ορισµό των γεγονότων και των ενεργειών του προβλήµατος, ενώ το δεύτερο αρχείο αποτελείται από το όνοµα του συγκεκριµένου προβλήµατος, το όνοµα του πεδίου προβλήµατος στο οποίο αναφέρεται, τον ορισµό των αντικειµένων του κόσµου και της αρχικής και τελικής κατάστασης. Στο συγκεκριµένο πρόβληµα, θα µπορούσαµε να ορίσουµε ένα πεδίο προβληµάτων µε όνοµα ΜΑΖΕ, καθώς πρόκειται για έναν λαβύρινθο, στο οποίο υπάρχουν κάποιες µπάλες τις οποίες πρέπει να µεταφέρει το ροµπότ στα αντίστοιχα καλάθια. Παρακάτω παρουσιάζεται σε PDDL το πεδίο του προβλήµατος. (define (domain MAZE) (:requirements :strips) (:predicates (ROBOT?robot) (BALL?ball) (CLEAR?x?y) (DIMX?x) (DIMY?y) (NEXT?x1?x2) (AT?ball?x?y) ) -26-

31 Το πεδίο του προβλήµατος ονοµάζεται MAZE και υπάρχει η απαίτηση η αναπαράσταση να γίνεται σύµφωνα µε το µοντέλο STRIPS. Επίσης, ορίζονται τα κατηγορήµατα ROBOT και BALL για το ροµπότ και τις µπάλες, το CLEAR που δηλώνει ότι στη θέση µε συντεταγµένες (x,y) δεν περιέχεται κανένα αντικείµενο, τα DIMX και DIMY που δηλώνουν τη θέση ενός αντικειµένου στον άξονα των x και y αντίστοιχα, το NEXT που δηλώνει ότι η θέση x1 είναι δίπλα στη x2 και το AT,το οποίο δηλώνει ότι µία µπάλα ball βρίσκεται στη θέση (x,y). Oι ενέργειες που µπορούν να οριστούν για το παραπάνω πρόβληµα είναι η LEFT, RIGHT, UP και DOWN, που δηλώνουν την κίνηση του ροµπότ στις αντίστοιχες κατευθύνσεις και οι TRANSFER_LEFT, TRANSFER_RIGHT, TRANS- FER_UP και TRANSFER_DOWN, που δηλώνουν τη µεταφορά κάποιας µπάλας από το ροµπότ προς τις αντίστοιχες κατευθύνσεις. Στη συνέχεια παρουσιάζονται ενδεικτικά σε γλώσσα PDDL οι ενέργειες LEFT και TRANSFER_LEFT (:action LEFT :parameters (?robot?x?y?nx) :precondition (and (ROBOT?robot) (DIMX?x) (DIMY?y) (DIMX?nx) (NEXT?nx?x) (at?robot?x?y) (CLEAR?nx?y)) :effect (and (not (at?robot?x?y)) (at?robot?nx?y))) Με την ενέργεια LEFT το ροµπότ κινείται από µια θέση (x,y) σε µια νέα, γειτονική θέση (nx,y). Μέσα στο precondition δηλώνεται ότι η nx είναι γειτονική της x προς τα αριστερά, το ροµπότ είναι στη θέση (x,y) και ότι η θέση (nx,y) είναι κενή. Σαν αποτέλεσµα της ενέργειας προκύπτει ότι το ροµπότ βρίσκεται τώρα στη θέση (nx,y) και όχι στη (x,y). (:action TRANSFER_LEFT :parameters -27-

32 (?robot?x?y?nx) :precondition (and (ROBOT?robot) (BALL?ball) (DIMX?x) (DIMY?y)(DIMX?nx) (NEXT?nx?x) (at?robot?x?y) (at?ball?x?y) (CLEAR?nx?y)) :effect (and (not (at?robot?x?y)) (at?robot?nx?y) (not (at?ball?x?y)) (at?ball?nx?y) )) Με την TRANSFER_LEFT το ροµπότ µαζί µε µια µπάλα µετακινείται από τη θέση (x,y) στη θέση (nx,y), η οποία είναι γειτονική από αριστερά. Στο precondition ορίζεται ότι η nx βρίσκεται δίπλα στη x από αριστερά, το ροµπότ και η µπάλα είναι στη θέση (x,y), η θέση (nx,y) είναι κενή και τα αποτελέσµατα της ενέργειας αυτής είναι ότι το ροµπότ και η µπάλα είναι τώρα στη θέση (nx,y). Με τον ίδιο τρόπο ορίζουµε και το αρχείο περιγραφής του προβλήµατος, στο οποίο περιγράφουµε τα αντικείµενα του κόσµου και τις αρχικές και τελικές καταστάσεις. Έχοντας περιγράψει λοιπόν το πρόβληµα σε γλώσσα PDDL, καλούµε έναν σχεδιαστή για να βρει το πλάνο που ικανοποιεί τους στόχους του προβλήµατος. Το πλάνο αυτό αναπαρίσταται σαν µια ακολουθία ενεργειών και αποτελεί τη λύση του προβλήµατος, η οποία αναπαρίσταται µε τη χρήση animation. 3.2 Αναγωγή σε πρόβληµα αναζήτησης Για να επιλύσουµε το παραπάνω πρόβληµα σαν πρόβληµα αναζήτησης θα πρέπει να ορίσουµε την αρχική κατάσταση, την τελική, τις κινήσεις που µπορεί να κάνει το ροµπότ, τον ελεύθερο από εµπόδια χώρο και να εφαρµόσουµε έναν αλγόριθµο αναζήτησης για να βρει τη λύση. Αν θεωρήσουµε σαν αρχική κατάσταση αυτή του σχήµατος 3.1 και οι κινήσεις που µπορεί να κάνει το ροµπότ είναι µετακίνηση προς τα πάνω, κάτω, αριστερά και δεξιά, µια τελική κατάσταση θα µπορούσε να είναι αυτή του ακόλουθου σχήµατος (Σχήµα 3.2).. Στο σχήµα αυτό όλες οι µπάλες έχουν µεταφερθεί στα καλάθια του αντίστοιχου χρώµατος και το ροµπότ βρίσκεται στη θέση (6,5), στη θέση δηλαδή όπου βρισκόταν το καλάθι της τελευταίας µπάλας που µεταφέρθηκε. -28-

33 Σχήµα 3.2 Για να φτάσουµε στην τελική κατάσταση του παραπάνω σχήµατος πρέπει να χρησιµοποιήσουµε κάποιον αλγόριθµο, ο οποίος θα βρει το µονοπάτι που θα µας οδηγήσει σε αυτήν. Κάποιοι αλγόριθµοι αναζήτησης που θα µπορούσαν να χρησιµοποιηθούν είναι ο BFS, Ο DFS και ο ID. Όµως αυτοί οι αλγόριθµοι είναι τυφλής αναζήτησης, δηλαδή δεν χρησιµοποιούν κάποιο κριτήριο αξιολόγησης των καταστάσεων, ώστε να αποφασίσουν ποια κατάσταση θα επεκτείνουν πρώτα, µε αποτέλεσµα να τις ελέγχουν όλες αυξάνοντας τόσο πολύ το µέτωπο και το χρόνο αναζήτησης που ουσιαστικά δε βρίσκεται λύση. Μια πολύ καλή λύση αποτελούν οι ευριστικοί αλγόριθµοι αναζήτησης, οι οποίοι µε τη βοήθεια κάποιας ευριστικής συνάρτησης αξιολογούν τις καταστάσεις του µετώπου αναζήτησης και κατευθύνουν την αναζήτηση σε µονοπάτια που οδηγούν στη λύση. Οι ευριστικοί αλγόριθµοι που θα µπορούσαν να εφαρµοστούν για την επίλυση του παραπάνω προβλήµατος είναι ο HC, ο BestFS και ο A*. Όπως προαναφέρθηκε σε προηγούµενο κεφάλαιο, ο HC επεκτείνει την τρέχουσα κατάσταση και διαλέγει από τις καταστάσεις-παιδιά την καλύτερη σύµφωνα µε την ευριστική συνάρτηση που χρησιµοποιείται, κλαδεύοντας τις υπόλοιπες καταστάσεις. Στο συγκεκριµένο πρόβληµα ένας τέτοιος αλγόριθµος δεν θα ήταν αποδοτικός, καθώς οι λύσεις που δίνει µπορεί να είναι γρήγορες αλλά δεν είναι πάντα πλήρεις, δηλαδή ενώ µπορεί να υπάρχει µονοπάτι που να οδηγεί από µια µπάλα σε ένα καλάθι, ο αλγόριθµος HC να µην µπορέσει να το βρει. Ο BestFS και ο Α* δεν κλαδεύουν το µέτωπο αναζή- -29-

34 τησης, οπότε υπάρχει η δυνατότητα οπισθοδρόµησης και συνεπώς αν υπάρχει κάποια λύση θα τη βρουν. Για το συγκεκριµένο πρόβληµα οι δύο αυτοί αλγόριθµοι θεωρούνται οι πιο κατάλληλοι, γιατί αυτό που µας ενδιαφέρει είναι να βρούµε µια λύση και σχετικά γρήγορα. Σηµαντικό ρόλο στη διαδικασία της αναζήτησης διαδραµατίζει η ευριστική συνάρτηση που θα χρησιµοποιήσουµε. Οι δυο πιο συχνά χρησιµοποιούµενες ευριστικές συναρτήσεις είναι η Ευκλείδεια απόσταση και η απόσταση Manhattan. Η Ευκλείδεια απόσταση µας δίνει την απόσταση της θέσης στην οποία βρίσκεται το ροµπότ, έστω S, από µια άλλη θέση, έστω F, σύµφωνα µε τον τύπο: d(s,f) = (X S -X F ) 2 +(Y S -Y F ) 2 Βέβαια, επειδή αγνοούνται τα πιθανά εµπόδια που βρίσκονται στο δρόµο, η απόσταση που υπολογίζεται είναι υποεκτίµηση της πραγµατικής. Για ευκολία στους υπολογισµούς χρησιµοποιείται συχνά η απόσταση Manhattan που υπολογίζεται σύµφωνα µε τον τύπο: Md(S,F)= Xs-X F + Y S -Y F Για παράδειγµα στο Σχήµα 3.1, το ροµπότ απέχει σύµφωνα µε την Ευκλείδεια απόσταση από την κόκκινη µπάλα d 1 = (9-4) 2 +(2-3) και από τη µπλε µπάλα d 2 = = (9-8) 2 +(2-6) , ενώ µε την απόσταση Manhattan οι αντίστοιχες αποστάσεις είναι: Md 1 = =6 και Md 2 = =5 Όπως φαίνεται και από τον ορισµό τους, οι τιµές που δίνουν οι δύο παραπάνω ευριστικές συναρτήσεις εξαρτώνται µόνο από τις συντεταγµένες της αρχικής και της τελικής θέσης. Στο πρόβληµα του σχήµατος 3.1, όµως, δεν έχουµε µία αρχική θέση από την οποία θα ξεκινήσουµε και θα καταλήξουµε σε µια τελική θέση, αλλά η αρχική καθώς και η τελική κατάσταση αποτελούνται από ένα συνδυασµό αρχικών και τελικών θέσεων. Έχουµε δηλαδή κάποιες µπάλες, η καθεµιά από τις οποίες βρίσκεται σε µια αρχική θέση, και κάποια καλάθια, τα οποία αποτελούν την τελική θέση για την αντίστοιχη µπάλα. Συνεπώς, έχοντας δεδοµένες την αρχική και τελική κατάσταση του προβλήµατος όπως έχουν οριστεί στα σχήµατα 3.1 και 3.2, είναι φανερό ότι η Ευκλείδεια απόσταση και η απόσταση Manhattan δεν µπορούν να χρησιµοποιηθούν. -30-

35 Ένας τρόπος επίλυσης του παραπάνω προβλήµατος µε τη χρήση κάποιας από τις δύο παραπάνω ευριστικές συναρτήσεις, θα ήταν να χρησιµοποιήσουµε τη µέθοδο «διαίρει και βασίλευε», δηλαδή να χωρίσουµε το παραπάνω πρόβληµα σε επιµέρους υποπροβλήµατα τα οποία θα αποτελούνται από µία αρχική και µία τελική θέση. Στη συνέχεια, µε τη χρήση του αλγόριθµου αναζήτησης και µία από τις παραπάνω ευριστικές, θα αναζητείται το µονοπάτι που θα οδηγεί από την αρχική στην τελική θέση. Ένας τρόπος για να χωρίσουµε το πρόβληµα σε µικρότερα τµήµατα είναι να θέσου- µε σαν αρχική θέση τη θέση στην οποία βρίσκεται το ροµπότ και στη συνέχεια να βρούµε µε τη χρήση της ευριστικής συνάρτησης ποια µπάλα βρίσκεται πιο κοντά σε αυτή τη θέση, και να θέσουµε τη θέση της ως τελική. Έτσι έχουµε µία αρχική και µια τελική θέση και µπορεί να εφαρµοστεί η απόσταση Manhattan σε συνδυασµό µε τον αλγόριθµο αναζήτησης και να βρεθεί το µονοπάτι που θα οδηγήσει το ροµπότ στην πρώτη µπάλα. Η θέση του ροµπότ θα αποτελεί πάντα την αρχική θέση και η τελική θέση γίνεται τώρα το καλάθι στο οποίο πρέπει να µεταφερθεί η µπάλα στην οποία βρισκόµαστε. Και πάλι υπάρχει µία αρχική θέση, η θέση της µπάλας που ταυτίζεται µε αυτήν του ροµπότ, και µια τελική, η θέση του αντίστοιχου καλαθιού. Η εφαρµογή του αλγορίθµου αναζήτησης µε τη χρήση της ευριστικής συνάρτησης Manhattan θα µας επιστρέψει το µονοπάτι που οδηγεί τη µπάλα στο καλάθι του ίδιου χρώµατος. Παραπάνω υπολογίσαµε ότι µε την απόσταση Manhattan η απόσταση του ροµπότ από την κόκκινη µπάλα είναι 6 ενώ από τη µπλε είναι 5. Οπότε, σύµφωνα µε όσα αναφέρθηκαν, σαν αρχική θέση ορίζεται η θέση του ροµπότ (9,2) και σαν τελική η θέση της µπλε µπάλας (8,6). Στη συνέχεια, σαν αρχική θέση ορίζεται η νέα θέση του ροµπότ (8,6) και σαν τελική η θέση (4,8), δηλαδή το καλάθι στο οποίο πρέπει να πάει η µπλε µπάλα. Εφαρµόζοντας και στις δύο περιπτώσεις τον ευριστικό αλγόριθµο θα πάρουµε το µονοπάτι που οδηγεί το ροµπότ στη µπλε µπάλα και στη συνέχεια τη µπλε µπάλα στο στόχο της. Τα Σχήµατα 3.3 και 3.4 δείχνουν το µονοπάτι από την αρχική θέση του ροµπότ στη µπλε µπάλα και από τη µπάλα στο µπλε καλάθι, αντίστοιχα. -31-

36 Σχήµα 3.3 Σχήµα 3.4 Η ίδια διαδικασία ακολουθείται µέχρι να ολοκληρωθούν όλοι οι επιµέρους στόχοι, δηλαδή µέχρις ότου όλες οι µπάλες µεταφερθούν στα αντίστοιχα καλάθια. Τότε θεωρούµε ότι έχει βρεθεί η λύση του προβλήµατος και η λύση αναπαρίσταται µε animation. Για να βρεθεί λύση στο παραπάνω πρόβληµα χωρίς να υποδιαιρέσουµε την τελική κατάσταση σε επιµέρους στόχους, αλλά θεωρώντας ως αρχική κατάσταση αυτή του σχήµατος 3.1 και σαν τελική αυτή που αναπαρίσταται στο σχήµα 3.2, θα έπρεπε να χρησιµοποιήσουµε µια άλλη ευριστική συνάρτηση. Η νέα συνάρτηση θα πρέπει να λαµβάνει υπ όψην στους υπολογισµούς όχι µόνο µία αρχική και µία τελική θέση αλλά τις θέσεις όλων των αντικειµένων του προβλήµατος. Θα µπορούσε για παράδειγµα να υπολογίζει τη συνολική απόσταση που πρέπει να διανύσει µέχρι να εκπληρωθούν όλοι οι στόχοι, χρησιµοποιώντας την απόσταση Manhattan. Οπότε ξεκινώντας από την αρχική κατάσταση του προβλήµατος θα υπολόγιζε πόσο απέχει κάθε φορά η τρέχουσα κατάσταση από την τελική και θα επέλεγε αυτή µε τη µικρότερη απόσταση. Η συγκεκριµένη εφαρµογή αναγάγει τα προβλήµατα που δηµιουργεί ο χρήστης σε προβλήµατα αναζήτησης και τα επιλύει µε τη πρώτη µέθοδο. Υποδιαιρεί δηλαδή την τελική κατάσταση σε επιµέρους στόχους και τους επιλύει έναν έναν µε τη χρήση του αλγορίθµου BestFS και χρησιµοποιώντας την απόσταση Manhattan. -32-

37 4 Οι βιβλιοθήκες Java3D 4.1 Εισαγωγή Το Java 3D API είναι ένα interface που χρησιµοποιείται για τη δηµιουργία, παρουσίαση και αλληλεπίδραση µε τρισδιάστατα γραφικά. Η Java 3D είναι µια επέκταση της Java 2 JDK. Το API παρέχει µια συλλογή κατασκευαστών υψηλού επιπέδου, για τη δη- µιουργία και το χειρισµό τρισδιάστατων αντικειµένων αλλά και δοµές για την προβολή τους στην οθόνη. Η Java 3D παρέχει συναρτήσεις για τη δηµιουργία εικόνων, animation και διαδραστικών προγραµµάτων µε τρισδιάστατα γραφικά. 4.2 Η διεπαφή Προγραµµατισµού της Java3D Η διεπαφή προγραµµατισµού (API) της Java3D είναι µια ιεραρχία κλάσεων της Java που χρησιµοποιείται ως το interface ενός συστήµατος που διαχειρίζεται τα τρισδιάστατα γραφικά και τον ήχο. Ο προγραµµατιστής χρησιµοποιεί υψηλού επιπέδου δο- µητές για τη δηµιουργία και το χειρισµό των τρισδιάστατων αντικειµένων. Τα αντικεί- µενα αυτά τοποθετούνται σε ένα εικονικό σύµπαν (virtual universe), το οποίο στη συνέχεια εµφανίζεται στην οθόνη. Ένα πρόγραµµα σε Java 3D δηµιουργεί στιγµιότυπα των αντικειµένων της Java 3D και τα τοποθετεί σε µια σκηνή (scene graph). Η σκηνή αυτή αποτελεί µια διευθέτηση των αντικειµένων σε µια δοµή δέντρου, µε τέτοιο τρόπο που να γίνεται ξεκάθαρο το περιεχόµενο του virtual universe. Τα προγράµµατα σε Java 3D µπορούν να τρέξουν σαν εφαρµογές, σαν applets ή και τα δύο. Κάθε πρόγραµµα σε Java 3D αποτελείται από αντικείµενα που ανήκουν στην ιεραρχία κλάσεων της Java 3D. Το API ορίζει πάνω από 100 κλάσεις που περιέχονται στο πακέτο javax.media.j3d, το οποίο ονοµάζεται Java 3D core classes και περιλαµβάνει τις βασικές κλάσεις που είναι απαραίτητες για τη δηµιουργία ενός προγράµµατος σε Java 3D, και οι οποίες είναι κλάσεις χαµηλού επιπέδου. Εκτός όµως από το core package, υπάρχουν κι άλλα πακέτα κλάσεων που χρησιµοποιούνται στη συγγραφή ενός προγράµµατος. Ένα από αυτά είναι το com.sun.j3d.utils package, που καλείται και Java 3D utility classes. Το πακέτο αυτό είναι µια σηµαντική επέκταση του core class package και αποτελείται από τέσσερις βασικές κατηγορίες : content loaders, scene graph construction aids, geometry cases και convenient utilities. Με τη χρήση του πακέ- -33-

38 του κλάσεων utility classes package µειώνεται σηµαντικά ο αριθµός των γραµµών του κώδικα. Σε κάθε πρόγραµµα σε Java 3D εκτός από τα δύο παραπάνω πακέτα κλάσεων χρησιµοποιούνται κλάσεις από τα java.awt και javax.vecmath packages. To java.awt περιέχει το AWT (Abstract Windowing Toolkit), το οποίο περιέχει κλάσεις για τη δηµιουργία των παραθύρων µέσα στα οποία θα εµφανίζονται τα αντικείµενα, ενώ το javax.vecmath περιέχει κλάσεις για τη δηµιουργία και τη διαχείριση σηµείων, διανυσµάτων, πινάκων και άλλων µαθηµατικών αντικειµένων. 4.3 ηµιουργία σκηνής (scene graph) Ένα εικονικό σύµπαν (virtual universe) στη Java 3D αποτελείται από µια σκηνή (scene graph). Η σκηνή αυτή δηµιουργείται χρησιµοποιώντας στιγµιότυπα των κλάσεων της Java 3D και αποτελείται από αντικείµενα που καθορίζουν τη γεωµετρία, τον ή- χο, τα φώτα, τη θέση, την κατεύθυνση και την εµφάνιση των εικονικών και ακουστικών αντικειµένων. Η σκηνή απεικονίζεται σαν ένας γράφος που αποτελείται από κόµβους και ακµές. Οι κόµβοι αντιπροσωπεύουν στοιχεία δεδοµένων ενώ οι ακµές τη σχέση µεταξύ των στοιχείων. Η πιο συνηθισµένη σχέση είναι η σχέση πατέρα παιδιού, δηλαδή ένας group κόµβος µπορεί να έχει πολλά παιδιά, ένα φύλλο έχει έναν πατέρα και καθόλου παιδιά, ενώ µια άλλη σχέση είναι η αναφορά. Μια αναφορά συνδέει ένα αντικείµενο NodeComponent µε µια scene graph. Ένας κόµβος NodeComponent περιέχει τα χαρακτηριστικά που καθορίζουν τη γεωµετρία και την εµφάνιση των αντικειµένων. Κάθε σκηνή έχει µόνο ένα virtual universe, αλλά ένα virtual universe µπορεί να έχει περισσότερα από ένα Local objects. Το αντικείµενο Local λειτουργεί σαν ένα σηµείο αναφοράς στο virtual universe, δηλαδή είναι ένα σηµάδι που δείχνει τη θέση των αντικειµένων µέσα στο virtual universe. Ένα αντικείµενο BranchGroup είναι η ρίζα ενός υπογράφου, ή ενός κλαδιού ενός γράφου. Υπάρχουν δύο κατηγορίες υπογράφων: ο view branch graph και ο content branch graph. Ο content branch graph καθορίζει τα περιεχόµενα του virtual universe, δηλαδή τη γεωµετρία, την εµφάνιση, τη συµπεριφορά (behavior), τη θέση, τον ήχο και τα φώτα, ενώ ο view branch graph καθορίζει τις παρα- µέτρους απεικόνισης, δηλαδή τη θέση και την κατεύθυνση από την οποία βλέπουµε τον κόσµο. -34-

39 4.3.1 Ιεραρχία των κλάσεων υψηλού επιπέδου της Java3D Στο σχήµα 3.1 φαίνονται τα επίπεδα της ιεραρχίας του Java 3D API.Σ αυτήν την ιεραρχία υπάρχουν και οι κλάσεις VirtualUniverse, Locale,Group και Leaf. Εκτός από το VirtualUniverse και τα αντικείµενα του Locale, σε µια σκηνή υπάρχουν και αντικεί- µενα του SceneGraphObject, το οποίο αποτελεί υπερκλάση για σχεδόν όλες τις Core και Utility κλάσεις. Το SceneGraphObject, αποτελείται από δύο υποκλάσεις: τη Node και τη NodeComponent. Οι υποκλάσεις του Node παρέχουν τα περισσότερα από τα α- ντικείµενα που υπάρχουν σε µια σκηνή, τα οποία µπορεί να είναι είτε κόµβοι Group ή Leaf. Τα Group και Leaf είναι υπερκλάσεις πολλών υποκλάσεων. Σχήµα

40 Παρακάτω γίνεται µια περιγραφή των κλάσεων του SceneGraphObject. Κλάση Node Η κλάση Node είναι µια αφηρηµένη υπερκλάση (abstract) των Group και Leaf. Η κλάση Node ορίζει µερικές σηµαντικές και συχνά χρησιµοποιούµενες µεθόδους για τις υ- ποκλάσεις της, οι οποίες συνθέτουν τις σκηνές (scene graphs). Κλάση Group Η κλάση Group είναι η υπερκλάση που χρησιµοποιείται για τον καθορισµό της θέσης και του προσανατολισµού των αντικειµένων στο virtual universe. υο από τις υποκλάσεις του Group είναι η κλάση BranchGroup και TransformGroup. Τα αντικείµενα της κλάσης BranchGroup χρησιµοποιούνται για να σχηµατίσουν τις scene graphs (σκηνές). Τα στιγµιότυπα της BranchGroup αποτελούν τη ρίζα των υπογράφων και είναι τα µόνα αντικείµενα που µπορούν να είναι παιδιά σε αντικείµενα Locale. Τα αντικείµενα της TransformGroup χρησιµοποιούνται κι αυτά στη δηµιουργία των scene graphs Μόνο που αυτά περιέχουν γεωµετρικούς µετασχηµατισµούς όπως µετατόπιση και περιστροφή. Ένας µετασχηµατισµός δηµιουργείται σε ένα αντικείµενο Transform3D, το οποίο όµως δεν είναι αντικείµενο της scene graph. Κλάση Leaf Η κλάση Leaf είναι η υπερκλάση που χρησιµοποιείται για τον καθορισµό του σχήµατος, του ήχου και της συµπεριφοράς των αντικειµένων στο virtual universe. Μερικές από τις υποκλάσεις της Leaf είναι η Shape3D, Light,Behavior και η Sound. Αυτά τα αντικείµενα µπορούν να µην έχουν καθόλου παιδιά, αλλά να αναφέρονται στη Node- Components. Κλάση NodeComponent Η κλάση NodeComponents είναι η υπερκλάση που χρησιµοποιείται για τον καθορισµό της γεωµετρίας, της εµφάνισης, της υφής και του υλικού ενός αντικειµένου της Shape3D. Τα αντικείµενα της NodeComponents δεν αποτελούν τµήµα της σκηνής αλλά αναφέρονται από αυτήν. Ένα αντικείµενο της NodeComponent µπορεί να αναφέρεται από περισσότερα από ένα αντικείµενα της Shape3D. -36-

41 4.4 ηµιουργία προγράµµατος σε Java3D Για να δηµιουργήσουµε εύκολα ένα πρόγραµµα σε Java3D, αντί να χρησιµοποιήσουµε αντικείµενα των κλάσεων VirtualUniverse, Locale και View, χρησιµοποιούµε ένα α- ντικείµενο της κλάσης SimpleUniverse. Ο constructor της κλάσης αυτής δηµιουργεί µια σκηνή, η οποία περιλαµβάνει αντικείµενα της κλάσης VirtualUniverse και Locale, καθώς και έναν πλήρη view branch graph.ο view branch graph που δηµιουργείται από το SimpleUniverse χρησιµοποιεί στιγµιότυπα των κλάσεων ViewingPlatform και Viewer, αντί των core κλάσεων που χρησιµοποιούνται για τη δηµιουργία του view branch graph.το SimpleUniverse χρησιµοποιεί τα αντικείµενα των core κλάσεων µόνο έµµεσα. Για να δηµιουργήσουµε ένα πρόγραµµα σε Java3D πρέπει να ακολουθήσουµε τα παρακάτω βήµατα: 1. ηµιουργία ενός αντικειµένου της κλάσης Canvas3D 2. ηµιουργία ενός αντικειµένου της κλάσης SimpleUniverse 3. ηµιουργία ενός content branch 4.Μεταγλώττιση του content branch graph 5.Εισαγωγή του branch graph στο Locale του SimpleUniverse Με τη δηµιουργία ενός αντικειµένου SimpleUniverse, δηµιουργείται ένας view branch graph για το vitual universe. Ο view branch graph περιλαµβάνει ένα image plate, το ο- ποίο µπορούµε να το θεωρήσουµε σαν ένα τετράγωνο πάνω στο οποίο προβάλλονται τα αντικείµενα. Το ρόλο του image plate µπορεί να παίξει το αντικείµενο της κλάσης Canvas3D, το οποίο προβάλει την εικόνα σε ένα παράθυρο στον υπολογιστή. Το Image plate τοποθετείται στην αρχή των αξόνων του SimpleUniverse, το οποίο είναι στο ση- µείο (0,0,0). Για να γίνονται ορατά τα αντικείµενα που δηµιουργούµε, χρησιµοποιούµε τη µέθοδο setnomimalviewingtransform() της κλάσης ViewingPlatform, η οποία θέτει τη θέση του µατιού στο σηµείο (0,0,2.41) µε κατεύθυνση στα αρνητικά του άξονα z. Γενικά η κλάση ViewingPlatform χρησιµοποιείται για να τοποθετήσει το view branch graph στο SimpleUniverse. Αφού δηµιουργήσουµε τα αντικείµενα των κλάσεων Canvas3D και SimpleUniverse, στη συνέχεια πρέπει να δηµιουργήσουµε τον content branch graph, ο οποίος είναι διαφορετικός σε κάθε πρόγραµµα. Αφού δηµιουργηθεί, εντάσσεται στο -37-

42 universe χρησιµοποιώντας τη µέθοδο addbranchgraph(branchgroup bg) της κλάσης SimpleUniverse, που παίρνει σαν παράµετρο ένα στιγµιότυπο του BranchGroup. Αυτό το BranchGroup τοποθετείται σαν παιδί στο Locale που δηµιουργήθηκε από το SimpleUniverse. Μια ακόµα µέθοδος της κλάσης ViewingTransform που χρησιµοποιείται στη δηµιουργία ενός προγράµµατος σε Java3D είναι η getviewingplatform, η οποία χρησιµοποιείται σε συνδυασµό µε τη setviewingplatform για να ρυθµίσουν τη θέση από την οποία θα βλέπουµε τα αντικείµενα. Στη συνέχεια παρατίθεται ο κώδικας από ένα απλό πρόγραµµα σε Java3D, το οποίο δη- µιουργεί ένα παράθυρο και προβάλει µέσα έναν κύβο. Παράδειγµα 3.1 Αρχικά δηλώνονται τα πακέτα κλάσεων που θα χρησιµοποιηθούν στη συνέχεια. Τα πιο συνηθισµένα είναι τα javax.media.j3d και javax.vecmath. 1. import java.applet.applet; 2. import java.awt.borderlayout; 3. import java.awt.frame; 4. import java.awt.event.*; 5. import com.sun.j3d.utils.applet.mainframe; 6. import com.sun.j3d.utils.universe.*; 7. import com.sun.j3d.utils.geometry.colorcube; 8. import javax.media.j3d.*; 9. import javax.vecmath.*; Στη συνέχεια δηλώνεται η κλάση HelloJava3Da.Στον constructor αυτής της κλάσης υλοποιούνται όλα τα βήµατα για τη δηµιουργία ενός προγράµµατος σε Java3D που αναφέρθηκαν παραπάνω. Πιο συγκεκριµένα, στις γραµµές 4-6 δηµιουργείται ένα αντικείµενο της κλάσης Canvas3D το οποίο προβάλλεται στην οθόνη εφόσον η Java3D ε- πιστρέψει ένα έγκυρο αντικείµενο της κλάσης GraphicsConfiguration, στη γραµµή 13 δηµιουργείται το simpleuniverse και στη 17 καθορίζεται η θέση του παρατηρητή. Η δηµιουργία του content branch γίνεται στη γραµµή 9 καλώντας τη µέθοδο createscene- Graph που ορίζεται παρακάτω, στη 10 γίνεται η µεταγλώττισή του. Τέλος, ο content brach graph εισάγεται στο Locale του SimpleUniverse στη γραµµή public class HelloJava3Da extends Applet 2. public HelloJava3Da() 3. setlayout(new BorderLayout()); 4. GraphicsConfiguration config= 5. SimpleUniverse.getPreferredConfiguration(); 6. Canvas3D canvas3d = new Canvas3D(config); -38-

43 7. add("center", canvas3d); BranchGroup scene = createscenegraph(); 10. scene.compile(); // SimpleUniverse is a Convenience Utility class 13. SimpleUniverse simpleu = new SimpleUniverse(canvas3D); // This moves the ViewPlatform back a bit so the 16. // objects in the scene can be viewed. 17. simpleu.getviewingplatform().setnominalviewingtransform(); simpleu.addbranchgraph(scene); 20. // end of HelloJava3Da (constructor) Ο παρακάτω κώδικας είναι η µέθοδος createscenegraph(), η οποία δηµιουργεί το content branch, το οποίο αποτελείται από έναν κύβο, ο οποίος τοποθετείται στο κέντρο του virtual universe. Λόγω της θέσης και του προσανατολισµού που έχουµε δηλώσει παραπάνω µε την εντολή simpleu.getviewingplatform().setnominalviewing Transform(), στην οθόνη θα εµφανίζεται µόνο µια πλευρά του κύβου, ένα τετράγωνο. 1. public BranchGroup createscenegraph() 2. // Create the root of the branch graph 3. BranchGroup objroot = new BranchGroup(); // Create a simple shape leaf node, add it to the scene graph. 6. // ColorCube is a Convenience Utility class 7. objroot.addchild(new ColorCube(0.4)); return objroot; 10. // end of createscenegraph method of HelloJava3Da 11. // end of class HelloJava3Da Το παρακάτω κοµµάτι κώδικα αποτελεί την κλάση main στην οποία δηµιουργείται ένα παράθυρο µε ύψος και πλάτος 256 pixels και περιεχόµενο αυτό που δηµιουργεί ο constructor HelloJava3Da(). 1. // The following allows this to be run as an application 2. // as well as an applet public static void main(string[] args) 5. Frame frame = new MainFrame(new HelloJava3Da(), 256, 256); 6. // end of main (method of HelloJava3Da) Το αποτέλεσµα του παραπάνω προγράµµατος απεικονίζεται στο παρακάτω σχήµα (Σχήµα 3.2) -39-

44 Σχήµα Μετασχηµατισµοί Οι µετασχηµατισµοί στη Java3D γίνονται µε τη βοήθεια των αντικειµένων των κλάσεων Transform3D και TransformGroup. Τα αντικείµενα της Transform3D αναπαριστούν µετασχηµατισµούς σε τρισδιάστατα αντικείµενα όπως µετατόπιση και περιστροφή και ουσιαστικά χρησιµοποιούνται ως βοηθητικά για τη δηµιουργία των αντικειµένων της TransformGroup. ηλαδή, αρχικά δηµιουργείται ένα αντικείµενο της Transform3D, πιθανώς από συνδυασµό Transform3D αντικειµένων και στη συνέχεια δηµιουργείται το αντικείµενο της TransformGroup χρησιµοποιώντας το Transform3D αντικείµενο. Ένα Transform3D αντικείµενο δηµιουργείται µε την εντολή Transform3D() και µπορεί να αναπαριστά µετατόπιση, περιστροφή, κλιµάκωση ή συνδυασµό αυτών. Στην περιστροφή, η γωνία εκφράζεται σε ακτίνια, οπότε για τον καθορισµό της µπορούµε να χρησιµοποιήσουµε τη σταθερά Math.PI ή να χρησιµοποιήσουµε απευθείας ακτίνια, γνωρίζοντας ότι οι 45 µοίρες αντιστοιχούν σε ακτίνια, οι 90 σε 1.57 κλπ. Οι συναρτήσεις που χρησιµοποιούνται για να πάρουν τιµή οι µετασχηµατισµοί είναι οι void rotx(double angle), void roty(double angle), void rotz(double angle) οι οποίες περιστρέφουν ένα αντικείµενο κατά angle ακτίνια γύρω από τον άξονα των x, y και z αντίστοιχα µε φορά τη φορά των δεικτών του ρολογιού. Επίσης χρησιµοποιείται και η -40-

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

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

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

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

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

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

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

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

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

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

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

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

Τεχνητή Νοημοσύνη. 3η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 3η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 3η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

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

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

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

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

Επίλυση προβληµάτων. Αλγόριθµοι Αναζήτησης

Επίλυση προβληµάτων. Αλγόριθµοι Αναζήτησης Επίλυση προβληµάτων! Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης Παιχνίδια δύο αντιπάλων Προβλήµατα ικανοποίησης περιορισµών Γενικά " Τεχνητή

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΙΑΤΜΗΜΑΤΙΚΟ ΠΜΣ «ΜΑΘΗΜΑΤΙΚΑ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΤΩΝ ΑΠΟΦΑΣΕΩΝ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ 2006-2007 2η Σειρά Ασκήσεων ΑΠΑΝΤΗΣΕΙΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΙΑΤΜΗΜΑΤΙΚΟ ΠΜΣ «ΜΑΘΗΜΑΤΙΚΑ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΤΩΝ ΑΠΟΦΑΣΕΩΝ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ 2006-2007 2η Σειρά Ασκήσεων ΑΠΑΝΤΗΣΕΙΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΙΑΤΜΗΜΑΤΙΚΟ ΠΜΣ «ΜΑΘΗΜΑΤΙΚΑ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΤΩΝ ΑΠΟΦΑΣΕΩΝ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ 2006-2007 2η Σειρά Ασκήσεων ΑΠΑΝΤΗΣΕΙΣ 1. ίνεται το γνωστό πρόβληµα των δύο δοχείων: «Υπάρχουν δύο δοχεία

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

Επίλυση προβλημάτων με αναζήτηση

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

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

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

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

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

Επίλυση Προβλημάτων. Αποτελεί ένα από τα βασικά χαρακτηριστικά γνωρίσματα της νοημοσύνης.

Επίλυση Προβλημάτων. Αποτελεί ένα από τα βασικά χαρακτηριστικά γνωρίσματα της νοημοσύνης. Επίλυση Προβλημάτων Αποτελεί ένα από τα βασικά χαρακτηριστικά γνωρίσματα της νοημοσύνης. Τεχνητή Νοημοσύνη = Αναπαράσταση Γνώσης + Αλγόριθμοι Αναζήτησης Κατηγορίες Προβλημάτων Aναζήτησης Πραγματικά και

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

ΤΥΦΛΗ ΑΝΑΖΗΤΗΣΗ (1) ΣΤΡΑΤΗΓΙΚΗ Ή ΑΛΓΟΡΙΘΜΟΣ ΑΝΑΖΗΤΗΣΗΣ

ΤΥΦΛΗ ΑΝΑΖΗΤΗΣΗ (1) ΣΤΡΑΤΗΓΙΚΗ Ή ΑΛΓΟΡΙΘΜΟΣ ΑΝΑΖΗΤΗΣΗΣ ΤΥΦΛΗ ΑΝΑΖΗΤΗΣΗ (1) ΣΤΡΑΤΗΓΙΚΗ Ή ΑΛΓΟΡΙΘΜΟΣ ΑΝΑΖΗΤΗΣΗΣ Μια αυστηρά καθορισµένη ακολουθία ενεργειών µε σκοπό τη λύση ενός προβλήµατος. Χαρακτηριστικά οθέν πρόβληµα: P= Επιλυθέν πρόβληµα: P s

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

Κεφάλαιο 2. Περιγραφή Προβληµάτων και Αναζήτηση Λύσης. Τεχνητή Νοηµοσύνη - Β' Έκδοση

Κεφάλαιο 2. Περιγραφή Προβληµάτων και Αναζήτηση Λύσης. Τεχνητή Νοηµοσύνη - Β' Έκδοση Κεφάλαιο 2 Περιγραφή Προβληµάτων και Αναζήτηση Λύσης Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου Περιγραφή Προβληµάτων ιαισθητικά: υπάρχει µία δεδοµένη

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

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

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

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

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

Κεφάλαιο 3. Αλγόριθµοι Τυφλής Αναζήτησης. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Κεφάλαιο 3 Αλγόριθµοι Τυφλής Αναζήτησης Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου Αλγόριθµοι Τυφλής Αναζήτησης Οι αλγόριθµοι τυφλής αναζήτησης (blind

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

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

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

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

Αλγόριθμοι Τυφλής Αναζήτησης

Αλγόριθμοι Τυφλής Αναζήτησης Τεχνητή Νοημοσύνη 04 Αλγόριθμοι Τυφλής Αναζήτησης Αλγόριθμοι Τυφλής Αναζήτησης (Blind Search Algorithms) Εφαρμόζονται σε προβλήματα στα οποία δεν υπάρχει πληροφορία που να επιτρέπει αξιολόγηση των καταστάσεων.

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΘΕΜΑ 1 ο (2.5 µονάδες) ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Τελικές εξετάσεις 25 Ιουνίου 2003 ιάρκεια: 2 ώρες α) Σε ποια περίπτωση

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

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/ Τεχνητή Νοημοσύνη 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

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

Θεωρήστε ένα puzzle (παιχνίδι σπαζοκεφαλιάς) με την ακόλουθη αρχική διαμόρφωση : b b b w w w e

Θεωρήστε ένα puzzle (παιχνίδι σπαζοκεφαλιάς) με την ακόλουθη αρχική διαμόρφωση : b b b w w w e Άσκηση 1 Θεωρήστε ένα puzzle (παιχνίδι σπαζοκεφαλιάς) με την ακόλουθη αρχική διαμόρφωση : b b b w w w e Υπάρχουν τρία μαύρα τετραγωνάκια (b), τρία άσπρα (w) και ένα κενό (e). Η σπαζοκεφαλιά έχει τις ακόλουθες

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

PROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΥΣ

PROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΥΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ PROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΥΣ ΜΕΡΟΣ ΠΡΩΤΟ Πολίτη Όλγα Α.Μ. 4528 Εξάµηνο 8ο Υπεύθυνος Καθηγητής Λυκοθανάσης

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

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

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

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

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

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

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

Κεφάλαιο 7. Τρισδιάστατα Μοντέλα

Κεφάλαιο 7. Τρισδιάστατα Μοντέλα Κεφάλαιο 7. 7.1 ομές εδομένων για Γραφικά Υπολογιστών. Οι δομές δεδομένων αποτελούν αντικείμενο της επιστήμης υπολογιστών. Κατά συνέπεια πρέπει να γνωρίζουμε πώς οργανώνονται τα γεωμετρικά δεδομένα, προκειμένου

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

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

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

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

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1 Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής Μάθημα: Τεχνητή Νοημοσύνη, 2016 17 Διδάσκων: Ι. Ανδρουτσόπουλος Ασκήσεις μελέτης της 4 ης διάλεξης 4.1. (α) Αποδείξτε ότι αν η h είναι συνεπής, τότε h(n

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

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

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

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

Για παράδειγμα η αρχική και η τελική κατάσταση αναπαριστώνται ως εξής: (ένα λίτρο)

Για παράδειγμα η αρχική και η τελική κατάσταση αναπαριστώνται ως εξής: (ένα λίτρο) 8 1 η ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Απάντηση 1ης άσκησης Κατάσταση (κόμβοι): Αναπαριστούμε μια κατάσταση του προβλήματος με ένα διατεταγμένο ζεύγος (X,Y) όπου X είναι τα λίτρα στο βάζο Α (χωρητικότητα

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

Επίλυση προβληµάτων. Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης

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

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

Γραµµικός Προγραµµατισµός - Μέθοδος Simplex

Γραµµικός Προγραµµατισµός - Μέθοδος Simplex Γραµµικός Προγραµµατισµός - Μέθοδος Simplex Η πλέον γνωστή και περισσότερο χρησιµοποιηµένη µέθοδος για την επίλυση ενός γενικού προβλήµατος γραµµικού προγραµµατισµού, είναι η µέθοδος Simplex η οποία αναπτύχθηκε

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

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό 5 ο Εργαστήριο Λογικοί Τελεστές, Δομές Ελέγχου Λογικοί Τελεστές > μεγαλύτερο = μεγαλύτερο ή ίσο!= διαφορετικό Οι λογικοί τελεστές χρησιμοποιούνται για να ελέγξουμε

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

Επίλυση προβλημάτων με αναζήτηση

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

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

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

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

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

ΕΡΩΤΗΜΑΤΑ σε ΑΝΑΖΗΤΗΣΗ

ΕΡΩΤΗΜΑΤΑ σε ΑΝΑΖΗΤΗΣΗ ηµήτρης Ψούνης ΠΛΗ31, Απαντήσεις Ερωτήσεων Quiz - ΑΝΑΖΗΤΗΣΗ 1 ΕΡΩΤΗΜΑΤΑ σε ΑΝΑΖΗΤΗΣΗ ΕΡΩΤΗΜΑ 1 Έστω h µία παραδεκτή ευρετική συνάρτηση. Είναι η συνάρτηση h ½ παραδεκτή; a. Ναι, πάντα. b. Όχι, ποτέ. c.

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

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

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

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

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

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

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

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ 2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ Προκειμένου να επιτευχθεί η «ακριβής περιγραφή» ενός αλγορίθμου, χρησιμοποιείται κάποια γλώσσα που μπορεί να περιγράφει σειρές ενεργειών με τρόπο αυστηρό,

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

Επίλυση προβληµάτων. Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης

Επίλυση προβληµάτων. Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης Επίλυση προβληµάτων Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης! Παιχνίδια δύο αντιπάλων Προβλήµατα ικανοποίησης περιορισµών Γενικά " Ντετερµινιστικά

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

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

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

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

Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών

Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών 1 Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ της Κωτσογιάννη Μαριάννας Περίληψη 1. Αντικείµενο- Σκοπός Αντικείµενο της διπλωµατικής αυτής εργασίας

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

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

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

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

Τεχνητή Νοημοσύνη. 4η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 4η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 4η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται κυρίως στα βιβλία Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β.

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

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ» Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ» 2 ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Προβλήματα ελάχιστης συνεκτικότητας δικτύου Το πρόβλημα της ελάχιστης

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

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

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

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

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

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 6. Δυαδικά Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 18/11/2016 Εισαγωγή Τα

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

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

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

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

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

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

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

Άσκηση 2: Λαβύρινθοι και ρομπότ Α. (Σχεδιασμός χώρου καταστάσεων) Ενδεικτική επίλυση

Άσκηση 2: Λαβύρινθοι και ρομπότ Α. (Σχεδιασμός χώρου καταστάσεων) Ενδεικτική επίλυση Άσκηση 2: Λαβύρινθοι και ρομπότ Η εταιρία «Ρομπότ» παρουσιάζει το νέο της μοντέλο, τον πλοηγό πάρκων Ρ-310. Το Ρ-310 είναι δημοφιλές γιατί όπου και αν είσαι μέσα στο πάρκο σου λέει πώς πρέπει να κινηθείς

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

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

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

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

Κεφάλαιο 3. Γραφήµατα v1.0 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφάλαιο 3. Γραφήµατα v1.0 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Κεφάλαιο 3 Γραφήµατα v1.0 (2010-05-25) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 3.1 Βασικοί Ορισµοί και Εφαρµογές γραφήµατα γράφηµα G: ένας τρόπος κωδικοποίησης των σχέσεων

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

PROJECT ΣΤΟ ΜΑΘΗΜΑ "ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΥΣ"

PROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΥΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ PROJECT ΣΤΟ ΜΑΘΗΜΑ "ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΥΣ" ΜΕΡΟΣ ΔΕΥΤΕΡΟ Υπεύθυνος Καθηγητής Λυκοθανάσης Σπυρίδων Ακαδημαικό Έτος:

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

4.3. Γραµµικοί ταξινοµητές

4.3. Γραµµικοί ταξινοµητές Γραµµικοί ταξινοµητές Γραµµικός ταξινοµητής είναι ένα σύστηµα ταξινόµησης που χρησιµοποιεί γραµµικές διακριτικές συναρτήσεις Οι ταξινοµητές αυτοί αναπαρίστανται συχνά µε οµάδες κόµβων εντός των οποίων

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

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

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

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

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

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

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

Ασκήσεις ανακεφαλαίωσης στο μάθημα Τεχνητή Νοημοσύνη

Ασκήσεις ανακεφαλαίωσης στο μάθημα Τεχνητή Νοημοσύνη Ασκήσεις ανακεφαλαίωσης στο μάθημα Τεχνητή Νοημοσύνη Τμήμα Μηχανικών Πληροφορικής ΤΕ (ΤΕΙ Ηπείρου) Τυφλή αναζήτηση Δίνεται το ακόλουθο κατευθυνόμενο γράφημα 1. Ο κόμβος αφετηρία είναι ο Α και ο κόμβος

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

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

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

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

Ε ανάληψη. Ορισµοί της Τεχνητής Νοηµοσύνης (ΤΝ) Καταβολές. Ιστορική αναδροµή. Πράκτορες. Περιβάλλοντα. κριτήρια νοηµοσύνης

Ε ανάληψη. Ορισµοί της Τεχνητής Νοηµοσύνης (ΤΝ) Καταβολές. Ιστορική αναδροµή. Πράκτορες. Περιβάλλοντα. κριτήρια νοηµοσύνης ΠΛΗ 405 Τεχνητή Νοηµοσύνη Αναζήτηση Search Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υ ολογιστών Πολυτεχνείο Κρήτης Ε ανάληψη Ορισµοί της Τεχνητής Νοηµοσύνης (ΤΝ) κριτήρια νοηµοσύνης Καταβολές συνεισφορά

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

Ενδεικτικές Ερωτήσεις Θεωρίας

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

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

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει.

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

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

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

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΤΕΙ Δυτικής Μακεδονίας ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ 2015-2016 Τεχνητή Νοημοσύνη Επίλυση προβλημάτων με αναζήτηση Διδάσκων: Τσίπουρας Μάρκος Εκπαιδευτικό Υλικό: Τσίπουρας Μάρκος http://ai.uom.gr/aima/ 2

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΗΛΕΚΤΡΟΝΙΚΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΟΜΑ Α Α Αριθµητική Λογική Μονάδα των 8-bit 1. Εισαγωγή Γενικά µια αριθµητική λογική µονάδα (ALU, Arithmetic Logic Unit)

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

Ε ανάληψη. Α ληροφόρητη αναζήτηση

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

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

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

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

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

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

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

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

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

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

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

ΠΡΟΒΛΗΜΑΤΑ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗΣ

ΠΡΟΒΛΗΜΑΤΑ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗΣ ΠΡΟΒΛΗΜΑΤΑ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗΣ Ελαχιστοποίηση κόστους διατροφής Ηεπιχείρηση ζωοτροφών ΒΙΟΤΡΟΦΕΣ εξασφάλισε µια ειδική παραγγελίααπό έναν πελάτη της για την παρασκευή 1.000 κιλών ζωοτροφής, η οποία θα πρέπει

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ ΘΕΜΑ ο 2.5 µονάδες ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ Τελικές εξετάσεις 2 Σεπτεµβρίου 2005 5:00-8:00 Σχεδιάστε έναν αισθητήρα ercetro

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

5.1 Θεωρητική εισαγωγή

5.1 Θεωρητική εισαγωγή ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 5 ΚΩ ΙΚΟΠΟΙΗΣΗ BCD Σκοπός: Η κατανόηση της µετατροπής ενός τύπου δυαδικής πληροφορίας σε άλλον (κωδικοποίηση/αποκωδικοποίηση) µε τη µελέτη της κωδικοποίησης BCD

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

Θέμα 1: Robbie και Αναζήτηση

Θέμα 1: Robbie και Αναζήτηση Θέμα : Robbie και Αναζήτηση Ο Robbie, το ρομπότ του παρακάτω σχήματος-χάρτη, κατά τη διάρκεια των εργασιών που κάνει διαπιστώνει ότι πρέπει να γυρίσει όσο το δυνατόν πιο γρήγορα, από την τρέχουσα θέση,

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

Θεωρία Λήψης Αποφάσεων

Θεωρία Λήψης Αποφάσεων Θεωρία Λήψης Αποφάσεων Ενότητα 4: Επίλυση προβλημάτων με αναζήτηση Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων & Τροφίμων (Δ.Ε.Α.Π.Τ.)

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Πτυχιακή Εξεταστική Ιούλιος 2014 Διδάσκων : Ευάγγελος Μαρκάκης 09.07.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ ΘΕΜΑ 1 ο (2.5 µονάδες) ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ Τελικές εξετάσεις 21 Σεπτεµβρίου 2004 ιάρκεια: 3 ώρες Το παρακάτω σύνολο

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

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

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

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

Κεφάλαιο 5. Αλγόριθµοι Αναζήτησης σε Παίγνια ύο Αντιπάλων. Τεχνητή Νοηµοσύνη - Β' Έκδοση

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

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

Εισαγωγή ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΣΠ

Εισαγωγή ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΣΠ ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΣΠ Τα τελευταία 25 χρόνια, τα προβλήµατα που σχετίζονται µε την διαχείριση της Γεωγραφικής Πληροφορίας αντιµετωπίζονται σε παγκόσµιο αλλά και εθνικό επίπεδο µε την βοήθεια των Γεωγραφικών

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Σ ΗΜΕΡΗΣΙΟΥ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΤΡΙΤΗ 3 ΙΟΥΝΙΟΥ 2003 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

Δομές Δεδομένων & Αλγόριθμοι Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν

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

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 12/10/2017

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

Στο στάδιο ανάλυσης των αποτελεσµάτων: ανάλυση ευαισθησίας της λύσης, προσδιορισµός της σύγκρουσης των κριτηρίων.

Στο στάδιο ανάλυσης των αποτελεσµάτων: ανάλυση ευαισθησίας της λύσης, προσδιορισµός της σύγκρουσης των κριτηρίων. ΠΕΡΙΛΗΨΗ Η τεχνική αυτή έκθεση περιλαµβάνει αναλυτική περιγραφή των εναλλακτικών µεθόδων πολυκριτηριακής ανάλυσης που εξετάσθηκαν µε στόχο να επιλεγεί η µέθοδος εκείνη η οποία είναι η πιο κατάλληλη για

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

Branch and Bound. Branch and Bound

Branch and Bound. Branch and Bound Μέθοδος επίλυσης προβληµάτων ακέραιου γραµµικού προγραµµατισµού Μέθοδος επίλυσης προβληµάτων ακέραιου γραµµικού προγραµµατισµού Προσπαθούµε να αποφύγουµε την εξαντλητική αναζήτηση Μέθοδος επίλυσης προβληµάτων

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016

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

PROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΥΣ

PROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΥΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ PROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΥΣ ΜΕΡΟΣ ΕΥΤΕΡΟ Πολίτη Όλγα Α.Μ. 4528 Εξάµηνο 8ο Υπεύθυνος Καθηγητής Λυκοθανάσης

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

4. ΔΙΚΤΥΑ

4. ΔΙΚΤΥΑ . ΔΙΚΤΥΑ Τελευταία μορφή επιχειρησιακής έρευνας αποτελεί η δικτυωτή ανάλυση (δίκτυα). Τα δίκτυα είναι ένα διάγραμμα από ς οι οποίοι συνδέονται όλοι μεταξύ τους άμεσα ή έμμεσα μέσω ακμών. Πρόκειται δηλαδή

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

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο 2010-2011 Πρώτη Σειρά Ασκήσεων (20% του συνολικού βαθμού στο μάθημα, Άριστα = 390 μονάδες) Ημερομηνία Ανακοίνωσης: 6/10/2010 Ημερομηνία Παράδοσης: 15/11/2010 σύμφωνα

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

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro Για να μπορέσουμε να εισάγουμε δεδομένα από το πληκτρολόγιο αλλά και για να εξάγουμε εμφανίσουμε αποτελέσματα στην οθόνη του υπολογιστή χρησιμοποιούμε τις εντολές Εισόδου και Εξόδου αντίστοιχα. Σύνταξη

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και

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

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

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΑΚΤΟΡΩΝ ΠΕΡΙΓΡΑΦΗ ΠΡΟΒΛΗΜΑΤΩΝ ΚΑΙ ΑΝΑΖΗΤΗΣΗ ΛΥΣΗΣ Καραγιώργου Σοφία Γενικά Περί Πρακτόρων Με το όρο πράκτορα

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

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

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

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

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Αρχιτεκτονική Πλατφόρμας Μπορεί να μοντελοποιηθεί σαν ένα σύνολο από διασυνδεδεμένα κομμάτια: 1. Στοιχεία επεξεργασίας (processing

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