Υλοποίηση της γλώσσας Λογικού Προγραμματισμού PrefLog

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

Download "Υλοποίηση της γλώσσας Λογικού Προγραμματισμού PrefLog"

Transcript

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

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

3 ΠΕΡΙΛΗΨΗ Οι γλώσσες Λογικού Προγραμματισμού στηρίζονται στη λογική πρώτης τάξης (first order logic) και αποτελούνται από ένα σύνολο λογικών κανόνων που εκφράζουν το ζητούμενο του προβλήματος. Ακόµα και χωρίς συναρτησιακά σύµβολα, οι λογικοί κανόνες έχουν τη δυνατότητα να εκφράσουν υπολογισµούς που δεν εκφράζονται στις συµβατικές γλώσσες χειρισµού δεδοµένων. Παρόλα αυτά όμως, δεν ήταν εφικτή η έκφραση προτιμήσεων, καθώς για κάθε πρόγραμμα, δύο είναι οι πιθανές καταστάσεις για οποιοδήποτε ερώτημα τεθεί. Σύμφωνα με τις προδιαγραφές του εκάστοτε προγράμματος, κάτι μπορεί να ισχύει και να είναι αληθές ή να μην ισχύει και να είναι ψευδές. Στα πλαίσια αυτής της πτυχιακής εργασίας, θα παρουσιαστεί η υλοποίηση μιας νέας γλώσσας Λογικού Προγραμματισμού η οποία θα δίνει στο χρήστη τη δυνατότητα να δηλώσει προτιμήσεις με τη χρήση ειδικών τελεστών. Αυτό επιτυγχάνεται μέσω ενός μη πεπερασμένου συνόλου από τιμές αληθείας. Η υλοποίηση αυτή έχει στηριχθεί στην ήδη υπάρχον σύστημα IRIS Reasoner και με τις κατάλληλες δομές δεδομένων και αλλαγές επιτυγχάνεται η επιπλέον εκφραστικότητα που επιθυμούμε. Στόχος είναι η νέα γλώσσα να είναι όσο το δυνατόν πιο αποδοτική στην εκτέλεση των προγραμμάτων, αλλά ταυτόχρονα και εύκολη για κάθε χρήστη να τη χρησιμοποιήσει. ΘΕΜΑΤΙΚΗ ΠΕΡΙΟΧΗ: Επιστήμη υπολογιστών, Λογικός Προγραμματισμός, Γλώσσες προγραμματισμού ΛΕΞΕΙΣ ΚΛΕΙΔΙΑ: Λογική πρώτης τάξης, Προτιμήσεις, Λογικοί κανόνες

4 ΕΥΧΑΡΙΣΤΙΕΣ Για τη διαικπεραίωση της παρούσας πτυχιακής εργασίας θα ήθελα να ευχαριστήσω τους επιβλέποντες, καθηγητή Παναγιώτη Ροντογιάννη, υποψήφιο διδάκτορα Αντώνιο Τρουμπούκη και μεταδιδάκτορα Άγγελο Χαραλαμπίδη για συνεργασία τους και όλη τη βοήθεια που προσέφεραν. Έπειτα, θα ήθελα να ευχαριστήσω την οικογένεια μου για τη συνεχή στήριξη και συμπαράσταση όλα τα χρόνια των σπουδών μου.

5 ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΟΛΟΓΟΣ ΕΙΣΑΓΩΓΗ Αντικείμενο εργασίας Διάρθρωση εργασίας ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ Συντακτικό Datalog Herbrand Βάση και Herbrand Σύμπαν Από κάτω προς τα πάνω αποτίμηση Σημασιολογία Σταθερού Σημείου Αφελής αποτίμηση για Datalog Ημι-αφελής Αποτίμηση IRIS Reasoner Φάσεις επεξεργασίας προγραμμάτων στο σύστημα IRIS Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PrefLog Γραμματική της γλώσσας PrefLog Επεξεργασία των κανόνων του προγράμματος Αλγόριθμοι αποτίμησης κανόνων Ανίχνευση κενών ΥΛΟΠΟΙΗΣΗ ΤΗΣ PrefLog ΣΤΟ ΣΥΣΤΗΜΑ IRIS Αναπαράσταση τιμών αληθείας Αναπαράσταση σχέσεων Σημασιολογία τελεστών της PrefLog και λεπτομέρειες υλοποίησης Τελεστές σύζευξης και διάζευξης Τελεστές opt και alt Τελεστής ε ΜΕΤΡΗΣΕΙΣ ΚΑΙ ΣΥΓΚΡΙΣΕΙΣ Προγράμματα εισόδου Συγκρίσεις χρόνων εκτέλεσης των προγραμμάτων εισόδου ΜΕΛΛΟΝΤΙΚΕΣ ΕΠΕΚΤΑΣΕΙΣ...32 ΠΙΝΑΚΑΣ ΟΡΟΛΟΓΙΑΣ...33 ΣΥΝΤΜΗΣΕΙΣ ΑΡΤΙΚΟΛΕΞΑ ΑΚΡΩΝΥΜΙΑ...34 ΑΝΑΦΟΡΕΣ...35

6 ΚΑΤΑΛΟΓΟΣ ΕΙΚΟΝΩΝ Eικόνα 1: Πρόγραμμα Datalog Εικόνα 2: Ανατομία κανόνα Εικόνα 3: Παραδείγματα Herbrand βάσης και σύμπαντος Εικόνα 4: Σημασιολογία σταθερού σημείου Εικόνα 5: Φάσεις επεξεργασίας στην IRIS Eικόνα 6: Πρόγραμμα PrefLog Εικόνα 7: Έξοδος προγράμματος PrefLog Εικόνα 8: Λογικές ισοδυναμίες τελεστών opt και alt Εικόνα 9: Μετατροπή κανόνα Εικόνα 10: Αφελής αλγόριθμος αποτίμησης Εικόνα 11: Αναπαράσταση τελεστή and Εικόνα 12: Ορισμοί τελεστών opt και alt Εικόνα 13: Ορισμός τελεστή ε Εικόνα 14: Πρόγραμμα εισόδου flight Εικόνα 15: Πρόγραμμα εισόδου ppath Εικόνα 16: Πρόγραμμα εισόδου likes Εικόνα 17: Πρόγραμμα εισόδου p

7 ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ Σχήμα 1: Αναπαράσταση δομής για τις τιμές αληθείας Σχήμα 2: Αναπαράσταση δομής για το κενό... 26

8 ΚΑΤΑΛΟΓΟΣ ΠΙΝΑΚΩΝ Πίνακας 1: Συγκρίσεις χρόνων εκτέλεσης... 31

9 ΠΡΟΛΟΓΟΣ Η παρούσα πτυχιακή εργασία αποτελεί μέρος των υποχρεώσεων για την λήψη πτυχίου στο Τμήμα Πληροφορικής και Τηλεπικοινωνιών του Εθνικού Καποδιστριακού Πανεπιστημίου Αθηνών. Η εργασία εκπονήθηκε κατά τη διάρκεια του ακαδημαϊκού έτους υπό την επίβλεψη του καθηγητή Ροντογιάννη Παναγιώτη, του υποψήφιου διδάκτωρα Αντώνιου Τρουμπούκη και του μεταδιδάκτορα Άγγελου Χαραλαμπίδη.

10 1. ΕΙΣΑΓΩΓΗ Σε αυτό το κεφάλαιο παρουσιάζεται αρχικά το θέμα και ο στόχος της παρούσας πτυχιακής εργασίας. Έπειτα γίνεται μια περιγραφή της διάρθρωσης της εργασίας στα επόμενα κεφάλαια. 1.1 Αντικείμενο εργασίας Το αντικείμενο αυτής της πτυχιακής εργασίας είναι να πραγματοποιηθεί η υλοποίηση της γλώσσας PrefLog [1]. Η γλώσσα προγραμματισμού PrefLog είναι μια γλώσσα Λογικού Προγραμματισμού και είναι γλώσσα πρώτης τάξης. Η ιδιαιτερότητα της σε σχέση με άλλες παρόμοιες γλώσσες είναι ότι παρέχει τη δυνατότητα να εκφραστούν προτιμήσεις, με τη χρήση ειδικών τελεστών. Αυτό επιτυγχάνεται μέσω ενός μη πεπερασμένου συνόλου από τιμές αληθείας, από το οποίο αποδίδεται η κατάλληλη σε κάθε πρόγραμμα. Μια ήδη υπάρχουσα υλοποίηση με παρόμοια σύνταξη, αλλά χωρίς την επιπλέον εκφραστικότητα, είναι της IRIS Reasoner. Στην υλοποίηση του συστήματος IRIS θα στηριχθεί η υλοποίηση της PrefLog, που παρουσιάζεται στην παρούσα πτυχιακή εργασία. Σκοπός είναι να μπορέσει ο χρήστης να αξιοποιήσει τις πρόσθετες δυνατότητες που παρέχει αυτή η γλώσσα με όσο το δυνατόν πιο εύκολο τρόπο. Επιπλέον, είναι επιθυμητό η παρούσα υλοποίηση να είναι όσο πιο αποδοτική γίνεται και η πρόσθετη επεξεργασία των προγραμμάτων, που απαιτείται για την εξαγωγή αποτελέσματος, να μην επιβαρρύνει αισθητά το χρόνο εκτέλεσης. 1.2 Διάρθρωση εργασίας Στο κεφάλαιο 1 γίνεται μια εισαγωγική παρουσίαση της εργασίας και το τι αυτή πραγματεύεται. Στο κεφάλαιο 2 γίνεται μια αναφορά στο απαραίτητο θεωρητικό υπόβαθρο, για να αποσαφηνιστούν οι έννοιες και οι όροι που θα χρησιμοποιηθούν στα επόμενα κεφάλαια. Επίσης, παρουσιάζεται το σύστημα IRIS Reasoner. Το κεφάλαιο 3 είναι μια περιγραφή της σημασιολογίας και των ιδιοτήτων της γλώσσας PrefLog. Το κεφάλαιο 4 αποτελεί μια περιγραφή του τρόπου που επιτεύχθηκε η υλοποίηση της γλώσσας PrefLog και τι αλλαγές χρειάστηκε να γίνουν στο σύστημα IRIS. Το κεφάλαιο 5 παρέχει συγκρίσεις και μετρήσεις μεταξύ των δύο διαφορετικών αλγορίθμων αποτίμησης που υλοποιήθηκαν, όσον αφορά το συνολικό χρόνο εκτέλεσης. Τέλος, στο κεφάλαιο 6 παρουσιάζονται κάποιες προτάσεις μελλοντικών επεκτάσεων που θα ενισχύσουν ακόμα περισσότερο την εκφραστικότητα της γλώσσας. Λ.Ζογμπή 10

11 2. ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ Ο Λογικός Προγραμματισμός είναι ένα θεμελιώδες στυλ προγραμματισμού βασισμένο στη Λογική. Ένα πρόγραμμα γραμμένο σε μια γλώσσα λογικού προγραμματισμού αποτελείται από ένα σύνολο από προτάσεις, που εκφράζουν γεγονότα και κανόνες σχετικά με το εκάστοτε πρόβλημα. Οι δύο κυριότερες ομάδες γλώσσεων Λογικού Προγραμματισμού συμπεριλαμβάνουν τις Prolog και Datalog. Στο κεφάλαιο αυτό παρουσιάζονται κάποιες βασικές έννοιες του Λογικού Προγραμματισμού και λεπτομέρειες σχετικά με τη σημασιολογία και τις ιδιότητες της Datalog. 2.1 Συντακτικό Datalog Το θεωρητικό υπόβαθρο του Λογικού Προγραμματισμού είναι η λογική πρώτης τάξης, όπου ορίζονται τα σύνολα των κατηγορημάτων, των συναρτησιακών συμβόλων και των μεταβλητών. Στην περίπτωση της Datalog δεν υποστηρίζονται τα συναρτησιακά σύμβολα. Οι μεταβλητές μπορεί να είναι ένα κεφαλαίο γράμμα ή μια συμβολοσειρά που ξεκινάει με κεφαλαίο γράμμα. Ως αναγνωριστικό ορίζεται μια ακολουθία χαρακτήρων που ξεκινάει με πεζό λατινικό χαρακτήρα και δεν περιέχει κενό ή κάποιον από τους ειδικούς χαρακτήρες (, `, ', ), =, :,., ~,?, ", % και ένα αναγνωριστικό ή μια συμβολοσειρά αποτελούν ενα κατηγόρημα. Κάθε κατηγόρημα χαρακτηρίζεται από το βαθμό ή τάξη του, δηλαδή έναν ακέραιο αριθμό που δηλώνει το πλήθος των παραμέτρων που δέχεται. Για παράδειγμα, το point(χ, Υ) έχει βαθμό 2, εφόσον κάθε σημείο καθορίζεται από δύο συντεταγμένες. Κατηγορήματα με βαθμό 0 ονομάζονται και σταθερές. Μια σταθερά ή μια μεταβλητή συνθέτουν έναν όρο. Ένας όρος που δεν περιέχει μεταβλητές θεωρείται πλήρως αποτιμημένος. Ένα κατηγόρημα μηδενικού βαθμού ή ένα κατηγόρημα θετικού βαθμού, του οποίου οι παράμετροι είναι όροι, ονομάζεται ατομικός τύπος ή άτομο. Ένα άτομο ή η άρνηση ενός ατόμου αποτελούν έναν άλλο δομικό τύπο που ονομάζεται λεκτικό. Τα λεκτικά μαζί με τις μεταβλητές που περιλαμβάνουν διαμορφώνουν μια πολύ σημαντική κατηγορία τύπων, τις προτάσεις. Οι προτάσεις χωρίζονται σε πλήρως αποτιμημένα γεγονότα, σε λογικούς κανόνες και ερωτήματα. Τα γεγονότα αποθηκεύονται σε άμεση σχεσιακή βάση( EDB ) και οι κανόνες σε έμμεση σχεσιακή βάση ( IDB ). Οι κανόνες αποτελούνται από το σώμα και την κεφαλή. Η κεφαλή είναι ένα άτομο και το σώμα αποτελείται από ένα λεκτικό ή τη σύζευξη περισσοτέρων λεκτικών. Τα γεγονότα σε συνδυασμό με τους κανόνες απαρτίζουν ένα πρόγραμμα. Λ.Ζογμπή 11

12 Για παράδειγμα, θεωρείστε το ακόλουθο πρόγραμμα υλοποιημένο σε Datalog:?- ancestor( jonh, X ). Ερώτημα ancestor( A, B ) :- parent( A, B ). ancestor( A, B ) :- parent( A, C ), ancestor( C, B). parent( john, douglas ). parent( nick, tom ). parent ( tom, george ). Κανόνες Γεγονότα Eικόνα 1: Πρόγραμμα Datalog Η ανατομία ενός κανόνα μπορεί να αναλυθεί ως εξής, Σχέση Συνεπαγωγής Σύζευξη μεταξύ υποστόχων mother(x, Y) :- parent(x, Y), female(x). Κεφαλή Σώμα Εικόνα 2: Ανατομία κανόνα Λ.Ζογμπή 12

13 2.2 Herbrand Βάση και Herbrand Σύμπαν Το σύνολο των πλήρως αποτιμημένων όρων που προκύπτουν από τα συναρτησιακά σύμβολα και τις σταθερές μιας γλώσσας L πρώτης τάξης, ονομάζεται Herbrand σύμπαν ( Herbrand Universe ) και συμβολίζεται ως U L. Αν δεν υπάρχει κάποια σταθερά, διαλέγουμε μία αυθαίρετα για να μην είναι κενό το U L. Όλα τα αποτιμημένα άτομα που προκύπτουν από τα κατηγορήματα του προβλήματος και θέτοντας ως ορίσματά τους όρους από το Herbrand σύμπαν, συνθέτουν τη Herbrand βάση ( Herbrand Base ), B L. Κάθε υποσύνολο της βάσης Herbrand ονομάζεται Herbrand ερμηνεία ( Herbrand Interpretation ). Μια ερμηνεία αποτελείται από όλα εκείνα τα αποτιμημένα άτομα που ισχύουν σε μια δεδομένη κατάσταση, επομένως είναι μια περιγραφή αυτής της κατάστασης. Το σύνολο όλων των ερμηνειών για ένα πρόγραμμα P είναι 2 BL. Εάν μια ερμηνεία επαληθεύει όλους τους κανόνες ενός προγράμματος, τότε αυτή η ερμηνεία αποτελεί μοντέλο του προγράμματος αυτού και η τομή όλων των μοντέλων είναι το ελάχιστο μοντέλο Herbrand ( Least Herbrand Model ), M p. [2] Ένα απλό παραδείγματα εύρεσης του σύμπαντος, της βάσης και κάποιων ερμηνειών είναι τα ακόλουθα: p(χ) :- q(χ). U L = { a, b, c } q(χ) :- r(χ). B L = { p(a), p(b),p(c),q(a),q(b),q(c),r(a), p(a). r(b), r(c) } q(b). I 1 = { p(a), p(b), p(c), q(b), q(c), r(c) } r(c). I 2 = { p(a), p(b), p(c), q(a), q(b), q(c), r(c) } Εικόνα 3: Παράδειγμα Herbrand βάσης και σύμπαντος Παρατηρούμε ότι και οι δύο ερμηνείες είναι μοντέλα του προγράμματος και η I 2 συμπίπτει με το M p, είναι δηλαδή το ελάχιστο μοντέλο Herbrand. Λ.Ζογμπή 13

14 2.3 Από κάτω προς τα πάνω αποτίμηση Βασική αρχή του από-κάτω-προς-τα-πάνω υπολογισμού είναι ότι ξεκινάει από τα ήδη γνωστά γεγονότα και παράγει καινούρια μέχρι να υπολογιστεί το ελάχιστο μοντέλο του προγράμματος. Υπάρχουν δύο αλγόριθμοι που χρησιμοποιούνται για αυτού του είδους την αποτίμηση, ο αφελής και ο ημι-αφελής Σημασιολογία Σταθερού Σημείου Η σημασιολογία σταθερού σημείου ( Fixpoint Semantics ) παρέχει έναν απλό κι αποδοτικό τρόπο υπολογισμού του ελάχιστου μοντέλου ενός προγράμματος [4]. Ιδιαίτερης σημασίας είναι ο τελεστής T P, που αναπαριστά μια απεικόνιση από ερμηνείες σε ερμηνείες ( T P : Ι P Ι P ) και έχει ελάχιστο σταθερό σημείο, αν είναι συνεχής και οι ερμηνείες είναι πλήρες πλέγμα. Η απεικόνιση T P έχει σταθερό σημείο α, όταν T P (α) = α. Ο εν λόγω τελεστής περιέχει όλα τα λογικά επακόλουθα που προκύπτουν από το πρόγραμμα P. Το ελάχιστο σταθερό σημείο του T P, συμβολίζεται ως lfp( T P ), και αποτιμάται αν εφαρμόσουμε διαδοχικά τον τελεστή T P στα παραγόμενα γεγονότα (όσο εξακολουθούν να παράγονται καινούρια), ξεκινώντας από το βασικό στοιχείο του πλέγματος των ερμηνειών, δηλαδή το κενό σύνολο ( ). Το ελάχιστο μοντέλο Herbrand ισούται με το ελάχιστο σταθερό σημείο του T P τελεστή, δηλαδή ισχύει M P =lfp( T P ). Ακολουθεί μια ενδεικτική αναπαράσταση της σημασιολογίας, για το παρακάτω πρόγραμμα. p(χ):- q(χ). q(χ):- r(χ). p(a). q(b). r(c). Βήμα 1: παίρνουμε τα γεγόνοτα - T P ( ) = { p(a), q(b), r(c) } Βήμα 2: T P(T P( )) = T P( ) και ό,τι μπορούμε να συμπεράνουμε από τα γεγόνοτα - T P (T P ( )) = TP{ p(a), q(b), r(c) } = { p(a), q(b), r(c), p(b), q(c) } Βήμα 3: T P(T P(T P( ))) = TP(T P( )) και ό,τι μπορούμε να συμπεράνουμε από το TP(T P( )) - T P (T P (T P ( ))) = TP{ p(a), q(b), r(c), p(b), q(c) } = {p(a), q(b), r(c), p(b), q(c), p(c) } Βήμα 4: T P(T P(T P(T P( )))) = TP(T P(T P( ))) και ό,τι μπορούμε να συμπεράνουμε από το TP(T P(T P( ))) - T P (T P (T P (T P ( )))) = TP{ p(a), q(b), r(c), p(b), q(c) } = {p(a), q(b), r(c), p(b), q(c), p(c) } Βήμα 5: Δεν παράγεται τίποτα νέο => fixpoint - T P (T P (T P (T P (T P ( ))))) = TP{ p(a), q(b), r(c), p(b), q(c) } = {p(a), p(b), p(c), q(b), q(c), r(c) } = T P (T P (T P (T P ( )))). Εικόνα 4: Σημασιολογία σταθερού σημείου Λ.Ζογμπή 14

15 2.3.2 Αφελής αποτίμηση για Datalog Κατά τη διαδικασία της αφελούς αποτίμησης εφαρμόζονται σε κάθε βήμα όλα τα γεγονότα σε όλους τους κανόνες και όσο συνεχίζεται να παράγονται νέα γεγονότα επαναλαμβάνεται αυτή η διαδικασία. Ο υπολογισμός ξεκινάει με την ερμηνεία Herbrand του κενού,, και εφαρμόζει διαδοχικά τον τελεστή T P σε αυτήν. Το μειονέκτημά της είναι ότι υπολογίζει ξανά γεγονότα τα οποία έχουν ήδη αποτιμηθεί και είναι γνωστά Ημι-αφελής Αποτίμηση Κατά την ημι-αφελή αποτίμηση η διαφορά είναι ότι δεν εφαρμόζονται όλα τα γεγονότα σε όλους τους κανόνες διαρκώς, αλλά σε κάθε βήμα εφαρμόζονται μόνο τα γεγονότα που παράχθηκαν στο προηγούμενο βήμα. Αρχικά, ξεκινάει ο υπολογισμός με τα γεγονότα του προβλήματος. Έπειτα, παράγονται νέα από τους κανόνες όταν τα εφαρμόσουμε σε αυτούς. Στη συνέχεια, τα αρχικά γεγονότα δε θα ξαναχρησιμοποιηθούν. 2.4 IRIS Reasoner Η IRIS Reasoner είναι μια μηχανή ανοιχτού λογισμκού για Datalog, όπου παρέχει επιπλέον XML Schema τύπο δεδομένων, ενσωματωμένα κατηγορήματα, συναρτησιακά σύμβολα και Well-founded τεχνική για αποτίμηση της άρνησης [3]. Η γλώσσα IRIS έχει υλοποιηθεί ώστε να είναι όσο το δυνατόν πιο δομοστοιχειωτή γίνεται, με σκοπό μελλοντικά να είναι εφικτή η προσθήκη πρόσθετων στρατηγικών αποτίμησης. Οι στρατηγικές αποτίμησης κανόνων που υποστηρίζει αυτή τη στιγμή είναι για από-πάνω-προς-τα-κάτω (top-down) αποτίμηση οι SLDNF και OLDT, και για από-κάτω-προς-τα-πάνω (bottom-up) η αφελής αποτίμηση (Naive) και η ημι-αφελής (Semi-naive) [3]. Στα πλαίσια της παρούσας πτυχιακής εργασίας θα αναλυθούν μόνο οι στρατηγικές για από-κάτω-προς-τα-πάνω αποτίμηση. Στην IRIS οι μεταβλητές ξεχωρίζουν διότι γράφονται πάντα μετά από ένα αγγλικό ερωτηματικό, δηλαδή για παράδειγμα για τη μεταβλητή x έχουμε?x. Δε χρειάζεται να είναι μόνο ένα γράμμα ή να ξεκινάει απαραίτητα με κεφαλαίο, όπως προϋποθέτουν άλλες γλώσσες. Αυτή η προσέγγιση έχει διατηρηθεί και στην υλοποίηση της PrefLog. Λ.Ζογμπή 15

16 2.4.1 Φάσεις επεξεργασίας προγραμμάτων στο σύστημα IRIS Εικόνα 5: Φάσεις επεξεργασίας στην IRIS Στην Εικόνα 5 απεικονίζονται οι δύο βασικές στρατηγικές αποτίμησης του συστήματος IRIS [3]. Η πρώτη στρατηγική χρησιμοποιεί την τακτική της στρωματοποίησης ( stratification ), που χρειάζεται για τη σωστή αποτίμηση όταν υπάρχει άρνηση στο σώμα των κανόνων. Η δεύτερη προσσέγγιση επιλύει αυτό το πρόβλημα με την τεχνική του διπλασιασμού του προγράμματος ( program doubling ), αντί για στρωματοποίηση. Με αυτό τον τρόπο, δημιουργείται μια εκδοχή του προβλήματος για τους κανόνες με άρνηση και μια γι αυτούς χωρίς άρνηση. Στη φάση της βελτιστοποίησης του προγράμματος ( program optimization ) εφαρμόζονται διάφορες τεχνικές για αποδοτικότερη και γρηγορότερη αποτίμηση. Μια από αυτές ονομάζεται Magic Sets και αναδιαμορφώνει το σύνολο των κανόνων σύμφωνα με το εκάστοτε ερώτημα, ώστε να υπολογιστούν μόνο οι πλειάδες που ενδέχεται να το ικανοποιήσουν. Λ.Ζογμπή 16

17 Κατά την επεξεργασία ασφαλείας των κανόνων ( rule safety processing ) ελέγχεται αν οι πιθανές τιμές για όλες τις μεταβλητές είναι περιορισμένες. Αυτό ικανοποιείται αν η μεταβλητή εμφανίζεται τουλάχιστον μια φορά σε ένα θετικό λεκτικό στο σώμα του κανόνα, αν εξισώνεται με κάποια σταθερά ή αν εξισώνεται με άλλη μεταβλητή που είναι γνωστό ότι πληροί τις προϋποθέσεις. Στην επανατοποθέτηση των κανόνων ( rule reordering ) δίνεται προτεραιότητα στην αποτίμηση κανόνων που ενδέχεται να συμβάλλουν στον υπολογισμό άλλων κανόνων. Έπειτα, κατά τη βελτιστοποίηση των κανόνων τακτικές όπως η αντικατάσταση μεταβλητών με σταθερές στο σώμα του κανόνα, αν οι συγκεκριμένες μεταβλητές έχουν εξισωθεί ή αποτιμηθεί ως τις αντίστοιχες σταθερές, ή η αφαίρεση διπλότυπων λεκτικών στον ίδιο κανόνα, εξασφαλίζουν αποδοτικότερους υπολογισμούς. Στη συνέχεια, κατά τη μεταγλώττιση ενός κανόνα ( rule compilation ) υπολογίζονται εκ των προτέρων όλες οι πιθανές πληροφορίες που είναι απαραίτητες για την αποτίμηση του κανόνα. Ο αρχικός κανόνας εισόδου μετατρέπεται στο μεταγλωττισμένο κανόνα, που μπορεί να επεξεργαστεί γρήγορα από τον κατάλληλο εκτιμητή ( evaluator ). Ο μεταγλωττισμένος κανόνας αποτελείται από επιμέρους οντότητες, ανάλογα με τη μορφή του αρχικού κανόνα. Αυτές οι οντότητες έχουν όλες τις απαραίτητες πληροφορίες και με βάση αυτές πραγματοποιείται η αποτίμηση στο επόμενο στάδιο. Τέλος, στη φάση της αποτίμησης υπάρχουν διαθέσιμοι 2 εκτιμητές, ο αφελής ( naive evaluator ) και ο ημι-αφελής ( semi-naive evaluator ). Καθένας από αυτούς χρησιμοποιεί τον αντίστοιχο αλγόριθμο ώστε να εφαρμόζει γνωστά γεγονότα στο σύνολο των κανόνων με σκοπό να παραχθούν νεα. Λ.Ζογμπή 17

18 3. Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PrefLog Η γλώσσας πρώτης τάξης PrefLog παρέχει τη δυνατότητα αναπαράστασης προτιμήσεων, μέσω ενός μη πεπερασμένου συνόλου από τιμές αληθείας, που μπορεί να έχει ως έξοδο ένα πρόγραμμα. Το σύνολο αυτό μπορεί να αναπαρασταθεί ως εξής, F 0 < F 1 < F 2 < < 0 < < T 2 < T 1 < T 0, όπου η ενδιάμεση τιμή 0, χρησιμοποιείται όταν ο υπολογισμός του ελάχιστου μοντέλου Herbrand απαιτεί άπειρο πλήθος βημάτων. Η PrefLog παρέχει επίσης ένα σύνολο από τελεστές που διευκολύνουν την έκφραση των προτιμήσεων, κατά τη σύνταξη των κανόνων του προγράμματος. Η υλοποίηση της στηρίχθηκε στην υλοποίηση της IRIS Reasoner, αλλά με τις κατάλληλες αλλαγές, ώστε να μπορεί να αξιοποιηθεί η επιπλέον εκφραστικότητα της PrefLog. Η γλώσσα προγραμματισμού που χρησιμοποιήθηκε είναι Java. 3.1 Γραμματική της γλώσσας PrefLog Τα βασικά δομικά χαρακτηριστικά των δύο γλωσσών, IRIS και PrefLog, είναι σε μεγάλο βαθμό ίδια. Η βασική διαφορά που παρουσιάζεται είναι ότι η PrefLog παρέχει επιπλέον τελεστές για την έκφραση των προτιμήσεων. Επομένως, η γραμματική της έχει μεταβληθεί ώστε να μπορεί να τους υποστηρίξει. Οι νέοι τελεστές είναι οι and, or, opt, alt και ε. Αναλυτικότερα, στη γλώσσα IRIS το σώμα των κανόνων απαρτίζεται από ένα λεκτικό ή τη σύζευξη περισσότερων, η οποία εκφράζεται με κόμμα,. Στην PrefLog οι τελεστές που ενώνουν τα λεκτικά στο σώμα ενός κανόνα είναι αυτοί της σύζευξης και της διάζευξης, οι οποίοι εκφράζονται μέσω των and και or, αντίστοιχα. Οι τελεστές opt n, alt n και ε n χρησιμοποιούνται για να διαμορφώσουν τις προτιμήσεις, όπου είναι επιθυμητό, και γι αυτό ονομάζονται τελεστές προτίμησης ( preferential operators ). Όποτε είναι επιθυμητή η ύπαρξη θετικού εκθέτη, n > 0, αυτό υποδηλώνει τη γραφή n φορών στη σειρά του εκάστοτε τελεστή, όπως για παράδειγμα για alt 3 A θα έχουμε alt alt alt A. Επιπλέον, ο τελεστής and μπορεί να ακολουθείται από τον opt n ή τον ε n και ο τελεστής or από τον alt n ή τον ε n. Επομένως, το σώμα των κανόνων μπορεί να αποτελείται από: Ένα λεκτικό, το οποίο μπορεί να έπεται ή όχι του τελεστή ε n, όπως p(?x) ή ε p(?x). Από τη σύζευξη ή τη διάζευξη δύο ή περισσότερων λεκτικών, όπου ο τελεστής and ενδέχεται να ακολουθείται από τον opt n και ο or από τον alt n. Για παράδειγμα, p(?x) and opt opt q(?x) or z(?x). Λ.Ζογμπή 18

19 Ακολουθεί ένα ολοκληρωμένο παράδειγμα προγράμματος σε PrefLog για αποσαφήνιση όλων των παραπάνω. flight(?f):- to("athens", "boston",?f) and has_stopover(?f) and opt carrier(?f, "aegean"). has_stopover(?f) :- stopover(?f, "rome") or alt stopover(?f, "london"). to("athens", "boston", fl1 ). to("athens", "boston", fl2 ). to("athens", "boston", fl3 ). stopover( fl1, "rome"). stopover( fl2, "london"). stopover( fl3, "rome"). carrier( fl1, "british"). carrier( fl2, "aegean"). carrier( fl3, "aegean"). Εικόνα 6: Πρόγραμμα PrefLog Η έξοδος του παραπάνω προγράμματος, με βάση τις ιδιότητες των τελεστών, είναι η ακόλουθη. Query:?- flight(?x). Variables:?X ( fl2 ) = T1 ( fl1 ) = F1 ( fl3 ) = T0 Εικόνα 7: Έξοδος προγράμματος PrefLog Λ.Ζογμπή 19

20 3.1.2 Επεξεργασία των κανόνων του προγράμματος Για να είναι συμβατή η μορφή των προγραμμάτων PrefLog με τις προδιαγραφές της IRIS, προγράμματα με πιο σύνθετους κανόνες θα χρειαστούν κάποια επεξεργασία και μετατροπή. Ο κυριότερος λόγος που είναι επιθυμητή αυτή η συμβατότητα είναι για να μπορέσουν να αξιοποιηθούν αναλλοίωτες οι φάσεις επεξεργασίας της IRIS που δεν επηρεάζονται από την επιπλέον εκφραστικότητα της PrefLog. Εφόσον στην IRIS υπάρχει σύζευξη των λεκτικών στο σώμα ενός κανόνα, τότε θα πρέπει οποιοδήποτε πρόγραμμα PrefLog περιέχει τους νέους τελεστές να μετατραπεί σε πρόγραμμα με κανόνες που να αποτελούνται μόνο από and και ε. Επιπλέον, αυτή η μετατροπή βοηθάει στην απλοποίηση των υπολογισμών, αφού όλα τα προγράμματα έχουν την ίδια μορφή κατά τη διάρκεια της αποτίμησης. Με τη βοήθεια του τελεστή ε μπορούμε να απλοποιήσουμε τους τελεστές opt n και alt n. Η λογική ισοδυναμία που ισχύει για καθένα από αυτούς είναι η εξής, opt n A (A or ε n A) alt n A (A and ε n A) Εικόνα 8: Λογικές ισοδυναμίες τελεστών opt και alt Αυτή η μετατροπή γίνεται στον parser της γλώσσας PrefLog με βάση τις λογικές ισοδυναμίες για τους τελεστές opt και alt, που περιγράφηκαν παραπάνω. Επιπλέον, όταν δύο υποστόχοι ενώνονται με τον τελεστή or, τότε κατά τη μετατροπή του κανόνα δημιουργείται νέος κανόνας με το ίδιο όνομα κατηγορήματος και μοιράζονται οι υποστόχοι στους δύο, πλέον, κανόνες. Λ.Ζογμπή 20

21 p ε p x y and opt 2 z p ε p x y and ( z or ε 2 z) p ε p x y and z x ε 2 z Εικόνα 9: Μετατροπή κανόνα Μετά το πέρας της επεξεργασίας, παρατηρούμε ότι έχει προστεθεί ένας επιπλέον κανόνας με σκοπό να εξαλειφθεί ο τελεστής διάζευξης. Λ.Ζογμπή 21

22 3.2 Αλγόριθμοι αποτίμησης κανόνων Οι αλγόριθμοι αποτίμησης του ελάχιστου μοντέλου Herbrand ενός προγράμματος στηρίζονται στη λογική της από-κάτω-προς-τα-πάνω στρατηγικής. Υλοποιήθηκαν οι αλγόριθμοι για αφελή και ημι-αφελή αποτίμηση. Tο γεγονός ότι το πεδίο τιμών αληθείας είναι μη πεπερασμένο καθιστά απαραίτητη τη διαμόρφωση του αλγορίθμου αποτίμησης ενός προγράμματος PrefLog [1], ώστε να εξασφαλίζεται η ολοκλήρωση του μετά από πεπερασμένο αριθμό βημάτων. Εικόνα 10: Αφελής αλγόριθμος αποτίμησης Στον παραπάνω αλγόριθμο, η διαδικασία ξεκινάει αποδίδοντας σε όλα τα στοιχεία της βάσης Herbrand την τιμή αληθείας F 0. Έπειτα, εφαρμόζεται διαδοχικά ο τελεστής T P στην ερμηνεία αυτή, μέχρι να παραχθούν και να σταθεροποιηθούν όλα τα άτομα με τιμή αλήθειας Τ 0 ή F 0. Στην συνέχεια, κρατώντας αυτά τα άτομα αναλλοίωτα, επαναρχικοποιούνται όλα τα υπόλοιπα στοιχεία της βάσης σε F 1 και επαναλαμβάνεται η ίδια διαδικασία μέχρι να έχει αποτιμηθεί πλήρως η βάση Herbrand. Κατ αυτόν τον τρόπο παράγεται το ελάχιστο μοντέλο M P ενός προγράμματος. Ο τερματισμός του υπολογισμού του M P εξασφαλίζεται ελέγχοντας αν στο κ-οστό βήμα δεν παράχθηκε κάποια τιμή με δείκτη κ. Τότε, σε όσα στοιχεία έχουν περισσέψει στη βάση ανατίθεται η ενδιάμεση τιμή 0. Στην πράξη, για λόγους απόδοσης δε χρειάζεται να υπολογιστεί εκ των προτέρων η βάση Herbrand για να υπολογίσουμε το ελάχιστο μοντέλο, M P. Με από-κάτω-προς-τα-πάνω στρατηγικές υπολογισμού παράγονται όλα τα γεγονότα με την τιμή αληθείας τους και ότι δεν είναι άμεσο επακόλουθο των κανόνων του προγράμματος δεν αποθηκεύεται στη βάση και υπονοείται ότι αποτιμάται σε F 0. Λ.Ζογμπή 22

23 3.3 Ανίχνευση κενών Η έννοια του κενού όσον αφορά τις τιμές αληθείας, σχετίζεται με την περίπτωση να χρειάζεται μη πεπερασμένος αριθμός βημάτων κατά την αποτίμηση για να αποδοθεί συγκεκριμένη τιμή αληθείας σε κάποιο άτομο. Στην παρούσα υλοποίηση κενό για κάποιο κατηγόρημα μπορεί να προκύψει αν η τιμή αληθείας των γεγονότων που παράγονται γι αυτό δε σταθεροποιείται και συνεχώς αυξάνεται. Για παράδειγμα, πρώτα παράγονται κάποια άτομα με σειρά ( order ) τιμής αληθείας ίση με μηδεν (F 0 ή T 0 ). Έπειτα, θα παραχθούν κάποια με σειρά ίση με ένα και ενδέχεται ορισμένα από αυτά που παράχθηκαν προηγουμένως να αυξήσουν την τιμή αληθείας τους, ενώ άλλα θα παραμείνουν σταθεροποιημένα. Όταν όλα όσα παράχθηκαν στο προηγούμενο επίπεδο αυξάνουν την τιμή αληθείας τους και δεν παραμένει κανένα σταθερό, για το συγκεκριμένο κατηγόρημα, τότε θεωρούμε ότι έχει ανιχνευθεί κενό για το κατηγόρημα αυτό. Κατά την εκτύπωση της εξόδου ενός προγράμματος, στην περίπτωση της τιμής αληθείας μηδέν, εμφανίζεται μόνο το όνομα του κατηγορήματος, χωρίς καμία πλειάδα, ίσο με μηδέν. Πιο αναλυτικά, για το πρόγραμμα?- p(?x). p(?x):- ε p(?x). s('a'). s('b'). s('c'). s('d'). η έξοδος εκτυπώνεται ως [ p = 0 ], αντί για [ p('a') = 0, p('b') = 0, p('c') = 0, p('d') = 0 ]. Η μορφή αυτή υπονοεί ότι όλα τα άτομα του κατηγορήματος p αποτιμώνται σε μηδέν. Αυτό συμβαίνει διότι, όπως προαναφέρθηκε, δεν υπολογίζεται ολόκληρη η βάση Herbrand εκ των προτέρων. Επομένως, δεν είναι εφικτό, όταν ανιχνευθεί κενό για κάποιο κατηγόρημα, να παραχθεί και να εκτυπωθεί κάθε στοιχείο που θα άνηκε στη βάση και θα έπρεπε να αποτιμηθεί σε μηδέν. Επιπλέον, για μια βάση Herbrand με πολύ μεγάλο αριθμό ατόμων ενδέχεται το αποτέλεσμα της εκτυπώσης να είναι εξίσου μεγάλο, γεγονός που το καθιστά πιο δυσανάγνωστο από τη μορφή που προτείνεται παραπάνω. Λ.Ζογμπή 23

24 4. ΥΛΟΠΟΙΗΣΗ ΤΗΣ PrefLog ΣΤΟ ΣΥΣΤΗΜΑ IRIS 4.1 Αναπαράσταση τιμών αληθείας Η βασικότερη διαφορά μεταξύ της γλωσσών IRIS και PrefLog είναι το μη πεπερασμένο πεδίο τιμών αληθείας που παρέχει η δεύτερη. Κατά τη διάρκεια υπολογισμού του ελάχιστου μοντέλου ενός προγράμματος, κάθε γεγονός που παραγεται χαρακτηρίζεται από μια τιμή αληθείας, η οποία ενδέχεται να μεταβληθεί μέχρι να τελειώσει ο υπολογισμός. Γι αυτόν το λόγο, στην παρούσα υλοποίηση της γλώσσας PrefLog έχει τροποποιηθεί ο τρόπος που αναπαρίστανται οι σχέσεις (Relations). Η μορφή με την οποία αποθηκεύονται οι τιμές αληθείας είναι ως SimpleEntry, δηλαδή ως την απλούστερη μορφή Map της Java, όπου αποτελείται μόνο από ένα ζεύγος κλειδιού - τιμής (key - value). Για κλειδί εισάγεται ένα γράμμα, που αναλόγως την περίπτωση, περιγράφει αν πρόκειται για αληθές( Τ ) ή ψευδές( F ) γεγονός ή μηδέν( Ζ ). Η αντίστοιχη τιμή για κάθε κλειδί είναι η σειρά της τιμής αληθείας που έχει παραχθεί για το εκάστοτε γεγονός, δηλαδή για τιμή αληθείας ίση με T0, τότε το κλειδί είναι Τ και η τιμή του είναι 0, δηλαδή, ένα ζεύγος της μορφής < Τ, 0>. Για λόγους απόδοσης, εφόσον δεν παράγεται η βάση Herbrand για την αποτίμηση, τότε δεν αποθηκεύονται τα άτομα με τιμή αληθείας F Αναπαράσταση σχέσεων Μια σχέση (Relation) αντιπροσωπεύει την αντιστοίχιση ενός πλήθους από πλειάδες (tuples) με τις τιμές αληθείας τους. Αρχικά, στο σύστημα IRIS οι σχέσεις αναπαριστώνται ως μια λίστα από πλειάδες, που δεν επιτρέπει την ύπαρξη διπλότυπων. Στην PrefLog όμως κάθε πλειάδα χαρακτηρίζεται από μια τιμή αληθείας, επομένως η αντίστοιχη αναπαράσταση που υλοποιήθηκε είναι ένα HashMap, με κλειδιά τις διάφορες πλειάδες και τιμές τις τιμές αληθείας που τους αντιστοιχούν. Τα γεγονότα εκφράζονται, τόσο στην IRIS όσο και στην PrefLog, ως ένα HashMap με κλειδιά τα ονόματα των διάφορων κατηγορημάτων και τιμές τις σχέσεις που έχουν παραχθεί γι αυτά. Λ.Ζογμπή 24

25 Γεγονότα Σχέση Κατηγόρημα Σχέση Πλειάδα Τιμή Αληθείας Σχήμα 1: Αναπαράσταση δομής για τις τιμές αληθείας Ο λόγος που αποφασίστηκε η συγκεκριμένη προσέγγιση είναι ότι αυτές οι δομές εξασφαλίζουν καλύτερη απόδοση κατά την εκτέλεση του αλγορίθμου αποτίμησης. Σε πολλά σημεία απαιτείται η ανάγνωση όλων των καταχωρήσεων μιας σχέσης, επομένως η πολυπλκότητα είναι Ο(n+s), όπου n ο αριθμός των καταχωρήσεων και s το μέγεθος του HashMap. Το πιο κρίσιμο σημείο όμως είναι όταν, κατά την αποτίμηση, με οποιονδήποτε από τους δύο αλγορίθμους που περιγράφηκαν παραπάνω, παράγεται κάποια νέα σχέση. Τότε, θα πρέπει να συγκριθούν όλες τις πλειάδες που περιέχει η νέα σχέση με αυτές που έχουν ήδη παραχθεί, ώστε να διαπιστωθεί αν υπάρχουν ήδη με ίδια ή διαφορετική τιμή αληθείας ή αν παράγονται για πρώτη φορά. Στην περίπτωση που κάποια πλειάδα υπάρχει ήδη με μικρότερη τιμή αληθείας, τότε πρέπει να αντικατασταθεί από την καινούρια. Η βέλτιστη και η μέση πολυπλοκότητα για να εκτελεστεί μια εισαγωγή, αναζήτηση ή διαγραφή σε ένα HashMap είναι Ο(1), ενώ η χείριστη είναι Ο(n). Σκοπός είναι η συνολική πολυπλοκότητα για το συγκεκριμένο έλεγχο να εξαρτάται κυρίως από τo διάβασμα ολόκληρης της σχέσης που παράχθηκε. Μια επιπλέον δομή που χρησιμοποιήθηκε είναι για να κρατάμε την απαραίτητη πληροφορία που χρειαζόμαστε για τον έλεγχο των κενών κατά τη διάρκεια του αλγορίθμου. Όπως αναφέρθηκε στην ενότητα 3.3 σχετικά με την ανίχνευση κενών, πρέπει να γνωρίζουμε αν τα γεγονότα που παράγονται σταθεροποιούνται όσον αφορά την τιμή αληθείας τους. Στην περίπτωση που δε συμβαίνει αυτό, είναι απαραίτητο να γνωρίζουμε σε ποιό κατηγόρημα θα πρέπει να ανατεθεί η ενδιάμεση τιμή αληθείας μηδέν. Για αυτούς τους λόγους επιλέχθηκε να αποθηκεύονται σε ένα HashMap οι αναγακίες πληροφορίες. Το κλειδί της δομής είναι το όνομα του κατηγορήματος και ως τιμή έχει εσωτερικό HashMap όπου αναπαριστά το πλήθος των πλειάδων που έχουν τιμή αληθείας για κάθε σειρά τιμών αληθείας από 0 μέχρι το σημείο που έχει προχωρήσει η αποτίμηση. Ο ρόλος του εσωτερικού HashMap είναι για να μπορούμε να ελέγχουμε αν υπάρχει κάποιος κανόνας του οποίου τα γεγονότα να αυξάνουν όλα διαρκώς την τιμή αληθείας τους, χωρίς να σταθεροποιείται ποτέ κάποιο σε ένα συγκεκριμένο επίπεδο. Κρατώντας, λοιπόν, ως πληροφορία πόσα γεγονότα παράχθηκαν για κάθε σειρά ( order ) τιμών αληθείας, γνωρίζουμε ακριβώς πόσα είναι σταθερά και πόσα εξακολουθούν να μεταβάλλονται όσο προχωράει η αποτίμηση. Λ.Ζογμπή 25

26 Κάθε φορά που προστίθεται μια πλειάδα ενός κατηγορήματος αυξάνεται κατά ένα το πλήθος των ατόμων με τιμή αληθείας σε αυτή τη σειρά. Αν σε κάποια πλειάδα αντικατασταθεί η τιμή αληθείας με κάποια μεγαλύτερη, τότε θα πρέπει να μειωθεί το πλήθος των ατόμων για τη σειρά της παλιάς τιμής και να αυξηθεί για τη νέα. Αν παρατηρηθεί ότι το πλήθος των ατόμων έχει γίνει μηδέν, τότε θεωρούμε ότι εχει δημιουργηθεί κενό, διότι τα άτομα που θα έπρεπε να είχαν σταθεροποιηθεί στο προηγούμενο επίπεδο, εξακολουθούν να αυξάνουν την τιμή αληθείας τους. Στην πλειάδα που παρουσιάστηκε το κενό ανατίθεται η τιμή αληθείας < Ζ, 0> και ολοκληρώνεται η αποτίμηση. Κατηγόρημα Εσωτερικό Δείκτης Πλήθος HashMap τιμής αληθειας ατόμων Σχήμα 2: Αναπαράσταση δομής για το κενό 4.3 Σημασιολογία τελεστών της PrefLog και λεπτομέρειες υλοποίησης Σε αυτή την ενότητα παρουσιάζεται πιο αναλυτικά η σημασιολογία των νέων τελεστών, καθώς και τι αλλαγές ήταν απαραίτητο να γίνουν για να ορισθούν, εφόσον η υλοποίηση της IRIS δεν τους υποστήριζει Τελεστές σύζευξης και διάζευξης Οι and και or χρησιμοποιούνται για να δηλώσουν σύζευξη ή διάζευξη μεταξύ των υποστόχων ενός κανόνα, αντίστοιχα. Έχουν διαφορετική σημασιολογία, εφόσον ο and επιλέγει τη μικρότερη τιμή αληθείας μεταξύ των υποστόχων, ενώ αντιθέτως ο or επιλέγει τη μεγαλύτερη. Επομένως, επειδή αυτή η διαφορά δεν μπορεί να αναπαρασταθεί με το απλό κόμμα (, ) που χωρίζει τους υποστόχους ενός σύνθετου κανόνα στην IRIS, δε χρησιμοποιείται πια στην PrefLog και αντικαθίσταται από τους and και or. Η επιλογή της μικρότερης τιμής αληθείας γίνεται στα επιμέρους στοιχεία που απαρτίζουν τον μεταγλωττισμένο κανόνα που παράγεται από τον αρχικό κανόνα εισόδου μετά τη φάση της μεταγλώττισης, όπως περιγράφηκε παραπάνω. Για την περίπτωση του or δε χρειάζεται να ορίσουμε κάτι επιπλέον, αφού με την επεξεργασία και μετατροπή των κανόνων του προγράμματος, δεν υφίσταται πια ως αυτούσιος τελεστής μετά τη διαδικασία του parsing. Παρόλα αυτά, έχει τροποποιηθεί η Λ.Ζογμπή 26

27 φάση της αποτίμησης. Κάθε φορά που παράγονται γεγονότα για τον ίδιο κανόνα, τότε επικρατεί η μεγαλύτερη τιμή αληθείας σε όσα έχουν ήδη υπολογιστεί ξανα, κι έτσι εκφράζεται στην πράξη η ιδιότητα του τελεστή διάζευξης. mother(?x,?y) :- parent(?x,?y) and female(?x). Εικόνα 11: Αναπαράσταση τελεστή and Τελεστές opt και alt Οι τελεστές opt n και alt n χρησιμοποιούνται για να εκφράσουν προτίμηση. Ο opt αναπαριστά την έννοια του προαιρετικά (optionally), ενώ ο alt εκφράζει το εναλλακτικά (alternatively). Η νιοστή δύναμη υπάρχει διότι κάθε τελεστής μπορεί να εφαρμοστεί πολλαπλές φορές σε έναν στόχο, μεταβάλλοντας αναλόγως και την τελική τιμή αλήθειας. F k+n, αν u = F k opt n ( u ) = 0, αν u = 0 T k, αν u = T k F k, αν u = F k alt n ( u ) = 0, αν u = 0 T k+n, αν u = T k Εικόνα 12: Ορισμοί τελεστών opt και alt Όπως φαίνεται κι από τους ορισμούς της Εικόνας 9, ο τελεστής opt επιστρέφει την ίδια τιμή αληθείας που επιστρέφει το u, αν αυτό είναι σωστό, αλλιώς επιστρέφει κάτι που είναι λιγότερο λάθος, αν το u είναι λάθος. Αυτό συμβαίνει γιατί η απουσία μιας προαιρετικής προϋπόθεσης δεν είναι τόσο σημαντική όσο η απουσία μιας υποχρεωτικής προϋπόθεσης. Κατά αντίστοιχο τρόπο, ερμηνεύεται και ο τελεστής alt. Η ύπαρξη μιας εναλλακτικής επιλογής δεν είναι τόσο ωφέλιμη όσο είναι η ύπαρξη μιας πρωταρχικής. Λ.Ζογμπή 27

28 Με ανάλογο τρόπο, όπως και για τον or, αυτοί οι τελεστές δεν υφίστανται αυτούσιοι κατά τις φάσεις επεξεργασίας του προγράμματος, γιατί έχουν μετατραπεί οι κανόνες ώστε να αποτελούνται μόνο από ε και and τελεστές Τελεστής ε Ο ε n είναι ένας μοναδιαίος τελεστής που εκφράζει προτιμήσεις. Επίσης, είναι βασικό δομικό στοιχείο των υπόλοιπων τελεστών. F k+n, αν u = F k ε n ( u ) = 0, αν u = 0 T k+n, αν u = T k Εικόνα 13: Ορισμός τελεστή ε Παρατηρούμε από τον ορισμό που δίνεται στην παραπάνω εικόνα ότι ο εν λόγω τελεστής αυξάνει την τιμή αληθείας του u κατά τον εκθέτη n, ανεξάρτητα από το αν το u είναι αληθές ή ψευδές. Για n = 0, έχουμε ότι ε 0 ( u ) = u. Ο τελεστής ε αναπαρίσταται ως χαρακτηριστικό του εκάστοτε λεκτικού, μέσω ενός ακέραιου πεδίου που υποδηλώνει την ύπαρξη ή όχι του τελεστή, ανάλογα αν έχει τιμή μηδέν ή είναι θετικός ακέραιος, αντίστοιχα. Το πεδίο αυτό ουσιαστικά αποθηκεύει την τιμή του εκθέτη του τελεστή. Κατά τη φάση της μεταγλώττισης αυτή η πληροφορία μεταφέρεται με τον ίδιο τρόπο στο μεταγλωττισμένο κανόνα, γιατί παύουν να υπάρχουν τα λεκτικά στην αρχική τους μορφή, μετά το πέρας της. Στη συνέχεια, στην αποτίμηση, όποτε συναντάται πληροφορία που σχετίζεται με τον τελεστή ε, τότε αυξάνεται η τιμή αληθείας της αποτιμώμενης πλειάδας κατά τον εκθέτη του ε. Λ.Ζογμπή 28

29 5. ΜΕΤΡΗΣΕΙΣ ΚΑΙ ΣΥΓΚΡΙΣΕΙΣ Σε αυτή την ενότητα παρουσιάζονται συγκρίσεις μεταξύ των δύο αλγορίθμων αποτίμησης που αναλύθηκαν, για διάφορα προβλήματα εισόδου. Αρχικά, παρουσιάζονται τα προγράμματα εισόδου με βάση τα οποία γίνονται όλες οι μετρήσεις κι έπειτα οι διάφορες συγκρίσεις. 5.1 Προγράμματα εισόδου Το ακόλουθο πρόγραμμα εισόδου επιλέγει την κατάλληλη πτήση σύμφωνα με τους περιορισμούς και τις προτιμήσεις που έχει θέσει ο χρήστης. Εικόνα 14: Πρόγραμμα εισόδου flight Το πρόγραμμα εισόδου που ακολουθεί επιλέγει τη βέλτιστη διαδρομή ανάμεσα σε δύο σημεία. Ανάλογα με τους διαθέσιμους δρόμους, πρώτη επιλογή είναι ένας δρόμος διπλής κυκλοφορίας, μετά ένας μονής και τέλος ο χωματόδρομος. Εικόνα 15: Πρόγραμμα εισόδου ppath Λ.Ζογμπή 29

30 Το παρακάτω πρόγραμμα παρουσιάζει μια ρεαλιστική περίπτωση όπου ένα αντικείμενο (ή οτιδήποτε άλλο) αρέσει σε κάποιον είτε λόγω προσωπικών προτιμήσεων είτε επειδή αρέσει σε κάποιον φίλο του, ακόμα κι αν δεν είναι η δική του πρώτη επιλογή. Εικόνα 16: Πρόγραμμα εισόδου likes Τέλος, παρουσίαζεται ένα παράδειγμα προγράμματος που παρόλο που είναι πολύ απλό, χρειάζεται άπειρο πλήθος βημάτων κατά την αποτίμησή του. Ατυό συμβαίνει λόγω του τελεστή ε στον πρώτο κανόνα. Το πρόγραμμα εμφανίζει κενό και γι' αυτό το λόγο αποτιμάται στην ενδιάμεση τιμή αληθείας 0. Εικόνα 17: Πρόγραμμα εισόδου p Λ.Ζογμπή 30

31 5.2 Συγκρίσεις χρόνων εκτέλεσης των προγραμμάτων εισόδου Τα αποτελέσματα των παραπάνω προγραμμάτων για καθένα από τους δύο αλγορίθμους αποτίμησης φαίνονται στον ακόλουθο πίνακα. Πρόγραμμα Εισόδου Αφελής Αποτίμηση Ημι-αφελής αποτίμηση flight 35ms 28ms ppath 39ms 34ms likes 27ms 27ms p 19ms 20ms Πίνακας 1: Συγκρίσεις χρόνων εκτέλεσης Εφόσον τα συγκεκριμένα προβλήματα δεν είναι ιδιαίτερα μεγάλα σε έκταση παρουσιάζουν παρόμοιους χρόνους εκτέλεσης. Παρόλα αυτά όμως, είναι εμφανές ότι η ημι-αφελής αποτίμηση παρουσιάζει καλύτερη απόδοση, αφού στα δύο πρώτα προγράμματα εισόδου έχει καλύτερους χρόνους εκτέλεσης. Σε εκείνα τα προγράμματα απαιτούνται περισσότεροι υπολογισμοί απ ότι στα δύο τελευταία, που λόγω των κενών τερματίζει η αποτίμησή τους γρηγορότερα. Λ.Ζογμπή 31

32 6. ΜΕΛΛΟΝΤΙΚΕΣ ΕΠΕΚΤΑΣΕΙΣ Η υλοποίηση που παρουσιάστηκε παρέχει τη δυνατότητα αναπαράστασης προτιμήσεων, καθώς επίσης και την αποτίμηση τόσο με τον αφελή αλγόριθμο, όσο και με τον ημι-αφελή, που βελτιώνει τους χρόνους εκτέλεσης και την απόδοση. Παρόλα αυτά, είναι επιθυμητό στο μέλλον να επεκταθεί η υλοποίηση ώστε να υποστηρίζει συναρτησιακά σύμβολα, καθώς λογικοί κανόνες με συναρτησιακά σύμβολα είναι εξίσου ισχυροί με μια μηχανή Turing. Ένας ακόμα μελλοντικός στόχος είναι να υποστηρίζονται εκφράσεις μέσα σε παρενθέσεις στο σώμα των κανόνων. Αυτό θα ενισχύσει ακόμα περισσότερο την εκφραστικότητα της γλώσσας, εφόσον θα επιτρέπεται να γραφτούν πιο σύνθετα προγράματα και θα μπορούν να εκφραστούν πιο εξειδικευμένες προτιμήσεις. Λ.Ζογμπή 32

33 ΠΙΝΑΚΑΣ ΟΡΟΛΟΓΙΑΣ Ξενόγλωσσος όρος First order logic Herbrand Universe Herbrand Base Herbrand Interpretation Least Herbrand Model Fixpoint Semantics Top-down evaluation strategy Bottom-up evaluation strategy Naive evaluation Ελληνικός όρος Λογική πρώτης τάξης Herbrand Σύμπαν Herbrand Βάση Herbrand Ερμηνεία Ελάχιστο μοντέλο Herbrand Σημασιολογία σταθερού σημείου Από-πάνω-προς-τα-κάτω στρατηγική αποτίμησης Από-κάτω-προς-τα-πάνω στρτηγική αποτίμησης Αφελής αποτίμηση Semi-naive evaluation Hμι-αφελής αποτίμηση Τuple Relation Preferential operators Stratification Program doubling Program optimization Rule safety processing Rule reordering Rule compilation Naive evaluator Semi-naive evaluator Order Πλειάδα Σχέση Τελεστές προτίμησης Στρωματοποίηση Διπλασιασμός προγράμματος Μεταγλώττιση προγράμματος Επεξεργασία ασφαλών κανόνων Επανατοποθέτηση κανόνων Εκτιμητής Αφελής εκτιμητής Ημι-αφελής εκτιμητής Σειρά Λ.Ζογμπή 33

34 ΣΥΝΤΜΗΣΕΙΣ ΑΡΤΙΚΟΛΕΞΑ ΑΚΡΩΝΥΜΙΑ IRIS Reasoner EDB IDB Integrated Rule Inference System Extensional Database Intensional Database Λ.Ζογμπή 34

35 ΑΝΑΦΟΡΕΣ [1] P.Rondogiannis and A.Troumpoukis, Expressing Preferences in Logic Programming using an Infinite-Valued Logic. [2] Π.Σταματόπουλος, Ι.Καράλη, Σημειώσεις Λογικού Προγραμματισμού Available: [3] Barry Bishop and Florian Fischer, IRIS - Integrated Rule Inference System [4] Computational Logic Logic Programming: Model and Fixpoint Semantics, Available: Λ.Ζογμπή 35

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

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

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

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

Κεφάλαιο 8 Σημασιολογία λογικών προγραμμάτων

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

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

Περιεχόμενα 1 Πρωτοβάθμια Λογική Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων ) / 60

Περιεχόμενα 1 Πρωτοβάθμια Λογική Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων ) / 60 Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

Κατηγορηματικός Λογισμός (ΗR Κεφάλαιο 2.1-2.5)

Κατηγορηματικός Λογισμός (ΗR Κεφάλαιο 2.1-2.5) Κατηγορηματικός Λογισμός (ΗR Κεφάλαιο 2.1-2.5) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στον Κατηγορηματικό Λογισμό Σύνταξη Κανόνες Συμπερασμού Σημασιολογία ΕΠΛ 412 Λογική στην

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

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός 7 Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός Σχεσιακή Άλγεβρα H Σχεσιακή Άλγεβρα (relational algebra) ορίζει ένα σύνολο πράξεων που εφαρμόζονται σε μία ή περισσότερες σχέσεις

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

Λογικός Προγραμματισμός

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

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

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Pascal, απλοί τύποι, τελεστές και εκφράσεις Pascal, απλοί τύποι, τελεστές και εκφράσεις 15 Νοεμβρίου 2011 1 Γενικά Στην standard Pascal ορίζονται τέσσερις βασικοί τύποι μεταβλητών: integer: Παριστάνει ακέραιους αριθμούς από το -32768 μέχρι και το

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια: Εργαστήριο 6: 6.1 Δομές Επανάληψης Βρόγχοι (Loops) Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται

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

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΙΛΟΓΗΣ 1) Ποιοι είναι οι τελεστές σύγκρισης και

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 1 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 1 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Γιώργος Δημητρίου Μάθημα 1 ο Γλώσσα - Μετάφραση Γλώσσα προγραμματισμού = Αναπαράσταση αλγορίθμων Ευκολία χρήσης Ακρίβεια και πληρότητα περιγραφής, όχι διφορούμενη! Μία περιγραφή για όλες τις μηχανές Μετάφραση

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

HY118-Διακριτά Μαθηματικά

HY118-Διακριτά Μαθηματικά HY118-Διακριτά Μαθηματικά Πέμπτη, 15/02/2018 Το υλικό των διαφανειών έχει βασιστεί σε Αντώνης διαφάνειες Α. Αργυρός του Kees van e-mail: argyros@csd.uoc.gr Deemter, από το University of Aberdeen 15-Feb-18

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

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

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

Μία λογική γλώσσα επερωτήσεων για λεξικογραφικές προτιμήσεις

Μία λογική γλώσσα επερωτήσεων για λεξικογραφικές προτιμήσεις ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Μία λογική γλώσσα επερωτήσεων για λεξικογραφικές

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

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 2:Στοιχεία Μαθηματικής Λογικής Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Δεύτερη Σειρά Ασκήσεων 22 Νοεμβρίου 2016 (χειρόγραφη και ηλεκτρονική παράδοση 9 Δεκεμβρίου) Άσκηση 1: Θεωρήστε τη γραμματική με κανόνες: Α B a A a c B B b A b

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

Μαθηματική Λογική και Λογικός Προγραμματισμός

Μαθηματική Λογική και Λογικός Προγραμματισμός Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων- Σημειώσεις έτους 2007-2008 Καθηγητής Γεώργιος Βούρος Μαθηματική Λογική και Λογικός Προγραμματισμός Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών

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

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

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΣΤΑΘΕΡΕΣ είναι τα μεγέθη που δεν μεταβάλλονται κατά την εκτέλεση ενός αλγόριθμου. Εκτός από τις αριθμητικές σταθερές (7, 4, 3.5, 100 κλπ), τις λογικές σταθερές (αληθής και ψευδής)

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

Μαθηματική Λογική και Λογικός Προγραμματισμός

Μαθηματική Λογική και Λογικός Προγραμματισμός Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων- Σημειώσεις έτους 2007-2008 Καθηγητής Γεώργιος Βούρος Μαθηματική Λογική και Λογικός Προγραμματισμός Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών

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

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

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

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

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

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

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

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

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

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

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

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

Στοιχεία Κατηγορηματικής Λογικής

Στοιχεία Κατηγορηματικής Λογικής Στοιχεία Κατηγορηματικής Λογικής ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Κατηγορηματική Λογική

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

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ. ΤΡΙΤΗ ΔΙΑΛΕΞΗ Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.): Σύνταξη τύπος όνομαα; τύπος όνομαβ{όνομαα}; όνομαβ

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

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ 1 Βάση Δεδομένων: Με το όρο Βάση Δεδομένων εννοούμε ένα σύνολο δεδομένων που είναι οργανωμένο

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 4: Τελεστές Τελεστές: Τελεστής Ανάθεσης 2 Το σύμβολο της ανάθεσης είναι το = Προσοχή: το σύμβολο ελέγχου ισότητας είναι το ==. Η μορφή των προτάσεων ανάθεσης είναι:

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

Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών. Σχεσιακός Λογισμός

Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών. Σχεσιακός Λογισμός Σχεσιακός Λογισμός Γλώσσα βασισμένη στον Κατηγορηματικό Λογισμό 1 ης Τάξης (First Order Predicate Calculus) Οι περισσότερες γλώσσες επερώτησης σχεσιακών βάσεων δεδομένων βασίζονται στον Σχεσιακό Λογισμό

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

Στοιχεία Κατηγορηματικής Λογικής

Στοιχεία Κατηγορηματικής Λογικής Στοιχεία Κατηγορηματικής Λογικής ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Κατηγορηματική Λογική

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

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός Δομές Ακολουθίας- Επιλογής - Επανάληψης Δομημένος Προγραμματισμός 1 Βασικές Έννοιες αλγορίθμων Σταθερές Μεταβλητές Εκφράσεις Πράξεις Εντολές 2 Βασικές Έννοιες Αλγορίθμων Σταθερά: Μια ποσότητα που έχει

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

Κανονικοποίηση για Σχεσιακές Βάσεις Δεδομένων Αντζουλάτος Γεράσιμος antzoulatos@upatras.gr Τμήμα Εφαρμογών Πληροφορικής στην Διοίκηση και Οικονομία ΤΕΙ Πατρών - Παράρτημα Αμαλιάδας 06 Δεκεμβρίου 2012 Περιεχομενα

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 4ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΟΙ ΤΕΛΕΣΤΕΣ ΣΥΓΚΡΙΣΗΣ Με τους τελεστές σύγκρισης, συγκρίνουμε τις

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

HY118-Διακριτά Μαθηματικά

HY118-Διακριτά Μαθηματικά HY118-Διακριτά Μαθηματικά Πέμπτη, 08/02/2018 Το υλικό των Αντώνης διαφανειών Α. Αργυρός έχει βασιστεί σε διαφάνειες του e-mail: Kees argyros@csd.uoc.gr van Deemter, από το University of Aberdeen 08-Feb-18

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

ιαδικαστικός Προγραμματισμός

ιαδικαστικός Προγραμματισμός ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ιαδικαστικός Προγραμματισμός Α Εξάμηνο Μάθημα 2 ο : Εντολές ελέγχου > εντολές υπό συνθήκη Στόχοι μαθήματος Να κατανοήσετε τη σχέση μεταξύ εντολών και παραστάσεων. Να αναγνωρίζετε

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

Αρχεία και Βάσεις Δεδομένων

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

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

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

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

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

Στοιχεία Κατηγορηματικής Λογικής

Στοιχεία Κατηγορηματικής Λογικής Στοιχεία Κατηγορηματικής Λογικής Διδάσκοντες: Φ. Αφράτη, Δ. Φωτάκης, Δ. Σούλιου Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Κατηγορηματική

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013 Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013 27 Μαρτίου 2013 Περίληψη Σκοπός της παρούσας εργασίας είναι η εξοικείωσή σας με τις θεμελιώδεις θεωρητικές και πρακτικές πτυχές

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

4. Ο,τιδήποτε δεν ορίζεται με βάση τα (1) (3) δεν είναι προτασιακός τύπος.

4. Ο,τιδήποτε δεν ορίζεται με βάση τα (1) (3) δεν είναι προτασιακός τύπος. Κεφάλαιο 10 Μαθηματική Λογική 10.1 Προτασιακή Λογική Η γλώσσα της μαθηματικής λογικής στηρίζεται βασικά στις εργασίες του Boole και του Frege. Ο Προτασιακός Λογισμός περιλαμβάνει στο αλφάβητό του, εκτός

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

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

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

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

Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους

Β Ομάδα Ασκήσεων Λογικού Προγραμματισμού Ακαδημαϊκού Έτους Page 1 of 10 ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2018-19 Οι ασκήσεις της ομάδας αυτής πρέπει

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

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

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

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

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

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

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 9: Προτασιακή λογική. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

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

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

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

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

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

HY118-Διακριτά Μαθηματικά. Προτασιακός Λογισμός. Προηγούμενη φορά. Βάσεις της Μαθηματικής Λογικής. 02 Προτασιακός Λογισμός

HY118-Διακριτά Μαθηματικά. Προτασιακός Λογισμός. Προηγούμενη φορά. Βάσεις της Μαθηματικής Λογικής. 02 Προτασιακός Λογισμός HY118-Διακριτά Μαθηματικά Πέμπτη, 08/02/2018 Το υλικό των Αντώνης διαφανειών Α. Αργυρός έχει βασιστεί σε διαφάνειες του e-mail: Kees argyros@csd.uoc.gr van Deemter, από το University of Aberdeen Προηγούμενη

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

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

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

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

ΠΛΗ 20, 3 η ΟΣΣ (Κατηγορηματική Λογική)

ΠΛΗ 20, 3 η ΟΣΣ (Κατηγορηματική Λογική) ΠΛΗ 20, 3 η ΟΣΣ (Κατηγορηματική Λογική) Δημήτρης Φωτάκης Διακριτά Μαθηματικά και Μαθηματική Λογική Πληροφορική Ελληνικό Ανοικτό Πανεπιστήμιο 2 η Εργασία: Γενική Εικόνα Αρκετά καλή βαθμολογική εικόνα (

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 6: Προτασιακός Λογισμός

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 6: Προτασιακός Λογισμός Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 6: Προτασιακός Λογισμός Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες

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

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η Μονοδιάστατοι Πίνακες Τι είναι ο πίνακας γενικά : Πίνακας είναι μια Στατική Δομή Δεδομένων. Δηλαδή συνεχόμενες θέσεις μνήμης, όπου το πλήθος των θέσεων είναι συγκεκριμένο. Στις θέσεις αυτές καταχωρούμε

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

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

Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. Κεφάλαιο 2 - Πρόβλημα 2.1.1. Η έννοια του προβλήματος Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. 2.1.2. Κατηγορίες προβλημάτων

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

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.

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

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

Λογική. Προτασιακή Λογική. Λογική Πρώτης Τάξης

Λογική. Προτασιακή Λογική. Λογική Πρώτης Τάξης Λογική Προτασιακή Λογική Λογική Πρώτης Τάξης Λογική (Logic) Αναλογίες διαδικασίας επίλυσης προβλημάτων υπολογισμού και προβλημάτων νοημοσύνης: Πρόβλημα υπολογισμού 1. Επινόηση του αλγορίθμου 2. Επιλογή

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

Επαγωγικός Λογικός Προγραμματισμός και Aσαφείς Λογικές Περιγραφής

Επαγωγικός Λογικός Προγραμματισμός και Aσαφείς Λογικές Περιγραφής .. και Aσαφείς Λογικές Περιγραφής Άγγελος Χαραλαμπίδης Στασινός Κωνσταντόπουλος ΕΚΕΦΕ «Δημόκριτος» {acharal,konstant}@iit.demokritos.gr .. Σκελετός Ομιλίας Εισαγωγή .. Ορισμός Προβλήματος Γενικότερο πλαίσιο

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

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

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

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ Α) Να γράψετε στο τετράδιό σας τον αριθμό κάθε πρότασης και δίπλα το γράμμα "Σ", αν είναι σωστή, ή το γράμμα "Λ", αν είναι λανθασμένη. (Μονάδες 25) 1. Ένα αδόμητο πρόβλημα είναι ταυτόχρονα και ανοικτό

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

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

ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΔΟΚΙΜΑΣΙΑ ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΔΟΚΙΜΑΣΙΑ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 ο Α. Δίνεται η εντολή εκχώρησης: τ κ < λ Ποιες από τις παρακάτω προτάσεις είναι σωστές και ποιες λάθος. Να δικαιολογήσετε

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2) Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αυτόματα Στοίβας (2.2) Τυπικός Ορισμός Παραδείγματα Ισοδυναμία με Ασυμφραστικές

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

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

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

Πρόβλημα 29 / σελίδα 28

Πρόβλημα 29 / σελίδα 28 Πρόβλημα 29 / σελίδα 28 Πρόβλημα 30 / σελίδα 28 Αντιμετάθεση / σελίδα 10 Να γράψετε αλγόριθμο, οποίος θα διαβάζει τα περιεχόμενα δύο μεταβλητών Α και Β, στη συνέχεια να αντιμεταθέτει τα περιεχόμενά τους

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

Θέμα Α Α3.1 ΤΕΛΟΣ 1ΗΣ ΑΠΟ 9 ΣΕΛΙΔΕΣ

Θέμα Α Α3.1 ΤΕΛΟΣ 1ΗΣ ΑΠΟ 9 ΣΕΛΙΔΕΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΛΥΣΕΙΣ ΕΠΑΝΑΛΗΠΤΙΚΟΥ ΔΙΑΓΩΝΙΣΜΑΤΟΣ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2012-2013 Επιμέλεια: Ομάδα Διαγωνισμάτων από το Στέκι των Πληροφορικών Θέμα Α Α1 Α2 1. Μέχρι το 1976

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

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Ποιες γλώσσες αναφέρονται ως φυσικές και ποιες ως τεχνητές; Ως φυσικές γλώσσες αναφέρονται εκείνες οι οποίες χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπων,

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

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

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

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

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

ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΩΝ ΕΝΑΛΛΑΚΤΙΚΩΝ ΣΕ ΠΡΟΒΛΗΜΑΤΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΣΥΝΘΕΣΗΣ ΔΙΕΡΓΑΣΙΩΝ ΜΕΡΟΣ ΙΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΩΝ ΕΝΑΛΛΑΚΤΙΚΩΝ ΣΕ ΠΡΟΒΛΗΜΑΤΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΣΥΝΘΕΣΗΣ ΔΙΕΡΓΑΣΙΩΝ 36 ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΩΝ ΕΝΑΛΛΑΚΤΙΚΩΝ ΣΕ ΠΡΟΒΛΗΜΑΤΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΣΥΝΘΕΣΗΣ ΔΙΕΡΓΑΣΙΩΝ Πολλές από τις αποφάσεις

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

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1 Μεταγλωττιστής Πρόγραμμα Διαβάζει προγράμματα δεδομένης γλώσσας (πηγαία γλώσσα) και τα μετατρέπει

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη Επιλογή και επανάληψη Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως, ότι στο

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 4: Τελεστές Τελεστές: Τελεστής Ανάθεσης 2 Το σύμβολο της ανάθεσης είναι το = Προσοχή: το σύμβολο ελέγχου ισότητας είναι το ==. Η μορφή των προτάσεων ανάθεσης είναι:

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

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

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

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΣΕΠΤΕΜΒΡΙΟΥ 2015 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 6 ΘΕΜΑ

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

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

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

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων Τι θα κάνουμε σήμερα Εισαγωγή Πολυταινιακές Μηχανές Turing (3.2.1) Μη Ντετερμινιστικές Μηχανές

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

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης ΠΕΡΙΕΧΟΜΕΝΑ Εντολές επιλογής Εντολές επανάληψης Εισαγωγή Στο προηγούμενο κεφάλαιο αναπτύξαμε προγράμματα, τα οποία ήταν πολύ απλά και οι εντολές των οποίων εκτελούνται η μία μετά την άλλη. Αυτή η σειριακή

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

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΣΚΗΣΕΙΣ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΙΛΟΓΗΣ ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟ ΛΑΘΟΣ Σημειώστε αν είναι

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

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ 9.1 Εντολές Εισόδου/εξόδου Στην Pascal, 1. Tα δεδομένα των προγραμμάτων λαμβάνονται: είτε από το πληκτρολόγιο είτε από ένα αρχείο με τη χρήση των διαδικασιών read και readln,

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

Ορισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο. Επικοινωνία:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο. Επικοινωνία: Επικοινωνία: spzygouris@gmail.com Να δοθεί ο ορισμός του Αλγορίθμου. Αλγόριθμος, σύμφωνα με το βιβλίο, είναι μια πεπερασμένη σειρά ενεργειών (όχι άπειρες), αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

Σχεσιακό Μοντέλο Περιορισμοί Μετατροπή ER σε Σχεσιακό Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Relational Model

Σχεσιακό Μοντέλο Περιορισμοί Μετατροπή ER σε Σχεσιακό Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Relational Model .. Εργαστήριο Βάσεων Δεδομένων Relational Model . Σχεσιακό Μοντέλο (Relational Model) Το σχεσιακό μοντέλο παρουσιάζει μια βάση ως συλλογή από σχέσεις Μια σχέση είναι ένας πίνακας με διακριτό όνομα Κάθε

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

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY120) #3 τελεστές 1 Σπύρος Λάλης Τελεστής ανάθεσης Το σύμβολο της ανάθεσης είναι το = προσοχή: το σύμβολο ελέγχου ισότητας είναι το == Η μορφή των προτάσεων = 1. Αποτιμάται

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

Περιεχόμενα Πρόλογος 1. Εισαγωγή 2. Τα Βασικά Μέρη ενός Προγράμματος Prolog

Περιεχόμενα Πρόλογος 1. Εισαγωγή 2. Τα Βασικά Μέρη ενός Προγράμματος Prolog Περιεχόμενα Πρόλογος... xxv 1. Εισαγωγή... 1 1.1. Ιστορική Εξέλιξη της Prolog.... 2 1.2. Προστακτικός και Δηλωτικός Προγραμματισμός.... 2 1.3. Δηλωτική και διαδικαστική έννοια ενός προγράμματος Prolog....

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

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

Τίτλος Μαθήματος. Ενότητα 3: Θεωρία λογικού προγραμματισμού. Παναγιώτης Σταματόπουλος Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής και Τηλεπικοινωνιών Τίτλος Μαθήματος Ενότητα 3: Παναγιώτης Σταματόπουλος Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής και Τηλεπικοινωνιών Περιγραφή ενότητας Σύνταξη και σημασιολογία λογικών προγραμμάτων. Μοντελοθεωρητική σημασιολογία,

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

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

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

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

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος 2012-13 Κων/νος Φλώρος Απλοί τύποι δεδομένων Οι τύποι δεδομένων προσδιορίζουν τον τρόπο παράστασης των

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

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης

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

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΡΧΗ 1ης ΣΕΛΙ ΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΣΕΠΤΕΜΒΡΙΟΥ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 ΘΕΜΑ Α :

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

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων Ενότητα 4 Επεξεργασία πινάκων 36 37 4.1 Προσθήκη πεδίων Για να εισάγετε ένα πεδίο σε ένα πίνακα που υπάρχει ήδη στη βάση δεδομένων σας, βάζετε τον κέρσορα του ποντικιού στο πεδίο πάνω από το οποίο θέλετε

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

A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα. το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη.

A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα. το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη. ΘΕΜΑ 1 ο A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη. 1. Η συνθήκη Χ = Α_Μ (Χ) είναι πάντα αληθής, για

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Εργαστήριο 3: 3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Η C++, όπως όλες οι γλώσσες προγραμματισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές και λογικές λειτουργίες.

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

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

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

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

Α2. Να γράψετε στο τετράδιο σας τον αριθμό 1-4 κάθε πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

Α2. Να γράψετε στο τετράδιο σας τον αριθμό 1-4 κάθε πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή. ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΚΑΙ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΚΥΡΙΑΚΗ 23/04/2017 - ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΕΠΠ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΠΤΑ ( 7) ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν γράφοντας στο

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

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή Κεφάλαιο. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας Περιεχόμενα. Αριθμητικά συστήματα. Μετατροπή αριθμών από ένα σύστημα σε άλλο.3 Πράξεις στο δυαδικό σύστημα.4 Πράξεις στο δεκαεξαδικό σύστημα.5

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

4.3 Ορθότητα και Πληρότητα

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός...

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός... 1 Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Διάρκεια 3 ώρες Στοιχεία Μαθητή: Όνομα... Επώνυμο... Βαθμός... 2 Θεμα Α (30%) Α1 ΣΩΣΤΟ - ΛΑΘΟΣ 1. Ένα υποπρόγραμμα δεν μπορεί να κληθεί περισσότερες

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

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

Άσκηση 1. Ποια από τα κάτω αλφαριθμητικά είναι αποδεκτά ως ονόματα μεταβλητών σε έναν αλγόριθμο i. Τιμή Θεωρία επισκόπηση 1 Η μεταβλητή είναι ένα συμβολικό όνομα κάτω από το οποίο βρίσκεται μια τιμή, η οποία μπορεί να μεταβάλλεται κατά την εκτέλεση του αλγορίθμου 1. Τύποι Δεδομένων (Μεταβλητών και Σταθερών)

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

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

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

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

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

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

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS Ακαδημαϊκό Έτος 2016-2017, Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS A. Εισαγωγή στις βάσεις δεδομένων - Γνωριμία με την ACCESS B. Δημιουργία Πινάκων 1. Εξήγηση των

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