Υπολογιστική Λογική και Λογικός Προγραμματισμός

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

Download "Υπολογιστική Λογική και Λογικός Προγραμματισμός"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Υπολογιστική Λογική και Λογικός Προγραμματισμός Ενότητα 4: Λογικός Προγραμματισμός: η γλώσσα Prolog: Εισαγωγή, Ιστορική Αναδρομή, Σύνταξη, Εκτέλεση Προγραμμάτων, Αναδρομή. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής

2 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

3 Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

4 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Λογικός Προγραμματισμός: η γλώσσα Prolog: Εισαγωγή, Ιστορική Αναδρομή, Σύνταξη, Εκτέλεση Προγραμμάτων, Αναδρομή.

5 Ιστορική Αναδρομή (1/4) Η Prolog (Programming in Logic) είναι μια συμβολική γλώσσα προγραμματισμού που βασίζεται στην κατηγορηματική λογική. Η ανάπτυξη της ξεκίνησε την δεκαετία του '70 στην Ευρώπη. Η πρώτη υλοποίηση οφείλεται στην γαλλική ερευνητική ομάδα του Alain Colmerauer στο πανεπιστήμιο Luminy της Μασσαλίας, η οποία ανέπτυξε ένα πρόγραμμα απόδειξης θεωρημάτων (theorem prover) για επεξεργασία φυσικής γλώσσας. 5

6 Ιστορική Αναδρομή (2/4) Βασίστηκε στις εργασίες του Robert Kowalski, ο οποίος απέδειξε ότι ένα υποσύνολο της λογική πρώτης τάξης (προτάσεις Horn) μπορούν να χρησιμοποιηθεί για μια νέα γενιά γλωσσών προγραμματισμού. Και οι δύο προηγούμενες εργασίες βασίστηκαν στην αρχή της ανάλυσης (Resolution Principle), μια γενική αποδεικτική διαδικασία για την λογική πρώτης τάξης, που είχε προταθεί από τον Robinson, στα μέσα της δεκαετίας του '60. 6

7 Ιστορική Αναδρομή (3/4) Σημαντικό ρόλο στη διάδοσή της αποτέλεσε η υλοποίηση ενός μεταφραστή / διερμηνευτή της γλώσσας από τον D.H.D Warren στο του Εδιμβούργου (1977). Αποτέλεσε την πρώτη αποδοτική υλοποίηση, αποδεικνύοντας ότι είναι δυνατή η χρησιμοποίηση της σαν μια γενική γλώσσα προγραμματισμού, γεγονός το οποίο ήταν υπό αμφισβήτηση από πολλούς επιστήμονες ιδίως στην Αμερική. Η επιτυχία του μεταφραστή αυτού ήταν τόσο μεγάλη ώστε αποτέλεσε πρότυπο για τις επόμενες υλοποιήσεις, καθιερώνοντας παράλληλα τη σύνταξη της γλώσσας (Edinburgh Syntax). 7

8 Ιστορική Αναδρομή (4/4) Πολύ σημαντικός παράγοντας στην εξέλιξη της γλώσσας, ήταν και η υιοθέτηση της από τον Ιαπωνικό πρόγραμμα υπολογιστών πέμπτης γενιάς (Fifth Generation Computing). 8

9 Διαφορές διαδικαστικών γλωσσών και Prolog (1/2) Σε ένα οποιοδήποτε πρόγραμμα, διακρίνουμε το τμήμα της λογικής και το τμήμα του ελέγχου. Σύμφωνα με την κλασική εξίσωση του Kowalski: πρόγραμμα = λογική + έλεγχος. 9

10 Διαφορές διαδικαστικών γλωσσών και Prolog (2/2) Στο συμβατικό (διαδικαστικό) προγραμματισμό (π.χ. C), το τμήμα της λογικής και το τμήμα του ελέγχου είναι αλληλένδετα και δεν διαχωρίζονται. Ο προγραμματιστής πρέπει να καθορίσει επακριβώς τη ροή ελέγχου του προγράμματος, ανάλογα με τη λογική και τα διαθέσιμα δεδομένα του προβλήματος. Στην Prolog, γίνεται διαχωρισμός λογικής-ελέγχου. Χρειάζεται να περιγραφεί μόνο η λογική του προς επίλυση προβλήματος ενώ ο έλεγχος αφήνεται στο σύστημα. 10

11 Προγράμματα στην Prolog Η λογική ενός προβλήματος, δηλαδή ενός προγράμματος, στην Prolog είναι ένα σύνολο προτάσεων που περιγράφει τα δεδομένα του προβλήματος και τις σχέσεις που τα συνδέουν. Οι προτάσεις αυτές λέγονται προτάσεις Horn και αποτελούν υποσύνολο της κατηγορηματικής λογικής πρώτης τάξης. Υπάρχουν δύο είδη προτάσεων: τα γεγονότα και οι κανόνες. 11

12 Γεγονότα Τα γεγονότα εκφράζουν σχέσεις ανάμεσα στα αντικείμενα και αποτελούν κατά ένα τρόπο τα δεδομένα του προβλήματος. Για παράδειγμα, αν θέλουμε να δηλώσουμε ότι "Ο Γιώργος είναι ο πατέρας της Μαρίας", εισάγουμε στην Prolog ένα γεγονός της μορφής: father(george,mary). Αντιστοιχεί στην ακόλουθη έκφραση στη μορφή Kowalski father(george,mary). 12

13 Κανόνες Οι κανόνες εκφράζουν γενικότερες σχέσεις ανάμεσα στα αντικείμενα, οι οποίες ορίζονται με τη βοήθεια άλλων σχέσεων. Για παράδειγμα, η σχέση γονιός, ορίζεται με δύο κανόνες: "Ο Χ είναι γονιός του Υ εάν ο Χ είναι πατέρας του Υ" και "Η Χ είναι γονιός του Υ εάν η Χ είναι μητέρα του Υ", Σε Prolog γράφονται ως εξής: parent(χ,υ) :- father(χ,υ). parent(x,υ) :- mother(x,y). Τα Χ, Υ είναι μεταβλητές. Το σύμβολο ":-" αντιπροσωπεύει το λογικό ΕΑΝ. Σε μορφή Kowalski father(χ,υ) parent(χ,υ) mother(χ,υ) parent(χ,υ) 13

14 Αλληλεπίδραση με την Prolog Η Prolog είναι κατεξοχήν μια διερμηνευόμενη γλώσσα (interpreted). Ο χρήστης αλληλεπιδρά με το σύστημα, θέτοντας ερωτήσεις (queries) ή στόχους (goals), μετά το προτρεπτικό σήμα (prompt) "?-" Το σύστημα προσπαθεί να απαντήσει βάσει γεγονότων και κανόνων. Οι απαντήσεις που λαμβάνει είναι είτε yes/no (Ναι / Όχι). Αν η ερώτηση περιέχει μεταβλητές, τότε η απάντηση περιλαμβάνει τις κατάλληλες τιμές για τις μεταβλητές αυτές, ώστε η ερώτηση να δέχεται καταφατική απάντηση. Σε περίπτωση που υπάρχουν περισσότερες από μία απαντήσεις, ο χρήστης μπορεί να τις λάβει πατώντας το πλήκτρο ";". 14

15 Παράδειγμα Σχέσεις ανάμεσα στα μέλη μιας οικογένειας. father(george,mary). mother(helen,mary). father(george,nick). mother(helen,nick). father(peter,marina). mother(ann,marina). parent(x,y) :- father(χ,υ). parent(χ,υ) :- mother(χ,υ). Έστω ότι οι παραπάνω προτάσεις είναι αποθηκευμένες σε ένα απλό αρχείο κειμένου με όνομα "family.pl". Για να φορτωθούν πρέπει να δοθεί η εντολή consult, συνοδευόμενη από το όνομα του αρχείου,:?- consult('family.pl'). 15

16 Ερωτήσεις Απαντήσεις (1/4) Είναι ο george πατέρας της mary;?- father(george,mary). yes Είναι ο george πατέρας της marina;?- father(george,marina). no Ποιος (Χ) έχει πατέρα τον peter;?- father(peter,x). X=marina Ποια (Χ) είναι η μητέρα της marina;?- mother(χ,marina). X=ann Μορφή Kowalski father(george,mary) 16

17 Ερωτήσεις Απαντήσεις (2/4) Ποιανού (Χ) είναι γονιός ο george;?- parent(george,χ). X=mary; X=nick; no Στην περίπτωση αυτή υπάρχουν δύο απαντήσεις. Προέρχονται από τα δύο σχετικά γεγονότα father(george, ) Επιστρέφεται πρώτα η απάντηση X=mary και αν ο χρήστης πιέσει το πλήκτρο ";" επιστρέφεται η απάντηση Χ=nick. Αν ο χρήστης πιέσει ξανά ";" η Prolog θα απαντήσει no, η οποία σημαίνει "δεν υπάρχουν άλλες εναλλακτικές απαντήσεις". 17

18 Ερωτήσεις Απαντήσεις (3/4) Ποιανού (X) είναι γονιός ο paul;?- parent(paul,χ). no Ποιοι (X) είναι οι γονείς του nick;?- parent(χ,nick). X=george; X=helen; no Οι δύο απαντήσεις προέρχονται από τους δύο κανόνες parent(x,y) 18

19 Ερωτήσεις Απαντήσεις (4/4) Ποια είναι τα ζεύγη ατόμων Χ, Υ, για τα οποία η Χ είναι μητέρα του Υ;?- mother(χ,υ). X=helen, Y=mary; X=helen, Y=nick; X=ann, Y=marina; no Οι τιμές των Χ, Υ πρέπει να συνυπάρχουν στο ίδιο γεγονός. 19

20 Σύνθετες Ερωτήσεις (1/3) Εκτός από απλές ερωτήσεις, υπάρχουν και οι σύνθετες, οι οποίες χωρίζονται μεταξύ τους με κόμμα "," το οποίο αντιστοιχεί στον λογικό τελεστή AND. Η απάντηση σε μια σύνθετη ερώτηση είναι καταφατική μόνο αν αληθεύουν όλες οι επιμέρους κλήσεις που την αποτελούν. Οι mary και nick έχουν κοινό πατέρα; Αν ναι, ποιος (X) είναι αυτός;?- father(x,mary),father(x,nick). X = george 20

21 Σύνθετες Ερωτήσεις (2/3)?- father(x,mary), father(x,nick). X = george Η κοινή μεταβλητή (shared variable) X εκφράζει τη συνθήκη ότι οι mary και nick έχουν κοινό πατέρα. Οι μεταβλητές στην Prolog όταν εμφανίζονται παραπάνω από μία φορά σε μία ερώτηση, παίρνουν τιμή την πρώτη φορά που εμφανίζονται και στη συνέχεια διατηρούν αυτήν την τιμή σε όλες τις επόμενες εμφανίσεις τους στην ίδια ερώτηση. 21

22 Σύνθετες Ερωτήσεις (3/3) Ποια είναι τα ζεύγη ατόμων Χ, Υ, τα οποία έχουν για μητέρα τους την helen;?- mother(helen,x),mother(helen,y). X=mary, Y=mary; X=mary, Y=nick; X=nick, Y=mary; X=nick, Y=nick; no Η χρήση δύο διαφορετικών μεταβλητών δε συνεπάγεται κατ' ανάγκη ότι αυτές πρέπει να πάρουν διαφορετικές τιμές. 22

23 Κανόνες με Σύνθετες Συνθήκες (1/2) Όπως υπάρχουν οι σύνθετες ερωτήσεις, έτσι και οι συνθήκες των κανόνων μπορούν να είναι σύνθετες. Πρέπει να συναληθεύουν δύο ή παραπάνω προϋποθέσεις προκειμένου να αποδεικνύεται το συμπέρασμα. Οι προϋποθέσεις χωρίζονται μεταξύ τους με κόμμα "," το οποίο αντιστοιχεί στον λογικό τελεστή AND. Παράδειγμα: Πότε δύο άνθρωποι είναι αδέλφια? Όταν έχουν κοινό γονέα. sibling(x,y) :- parent(z,x), parent(z,y). 23

24 Κανόνες με Σύνθετες Συνθήκες (2/2) sibling(x,y) :- parent(z,x), parent(z,y).?- sibling(mary,george). yes?- sibling(mary,x). X = mary ; X = nick ; X = mary ; X = nick no 24

25 Σύνταξη της Prolog Τα στοιχεία της γλώσσας είναι: οι όροι, τα γεγονότα, οι κανόνες, οι ερωτήσεις. Ένα Prolog πρόγραµµα είναι ένα σύνολο από προτάσεις. Α. Γεγονός (fact) Α :- Β 1, Β 2,..., Β κ. (κ > 0) Κανόνας (rule)?- Β 1, Β 2,..., Β κ. (κ > 0) Ερώτηση (question) 25

26 Ατοµικοί Τύποι Τα Α και Β i ονοµάζονται ατοµικοί τύποι (όπως στην Κατηγορηματική Λογική) και είναι παραστάσεις της µορφής: όπου το: Ρ(t 1, t 2,, t n ) Ρ ονοµάζεται κατηγόρηµα (predicate). t i : ονοµάζονται ορίσµατα (arguments). O αριθµός των ορισµάτων (n) ονοµάζεται τάξη (arity) του κατηγορήµατος. 26

27 Όροι Τα ορίσµατα ενός κατηγορήµατος είναι όροι (terms) και μπορεί να είναι: Σταθερά. Μεταβλητή. Σύνθετος όρος ή Συναρτησιακός όρος. 27

28 Σταθερές Άτοµα ή αριθµοί. Οι αριθμοί έχουν τη συνήθη μορφή. Π.χ. 2, 3, 6.7, -3, -10 κλπ. Τα άτομα (atoms) είναι συμβολοσειρές. μπορούν να περιλαμβάνουν αριθμούς. πρέπει απαραίτητα να ξεκινούν από πεζό γράμμα ή να περιλαμβάνονται σε μονά εισαγωγικά. Παραδείγματα αποδεκτών ατόμων είναι: anna, x25, x_25, 'Anna', κλπ. Μη-αποδεκτά άτομα: Anna, X25, 25X, _Q, Car 28

29 Μεταβλητές Οι μεταβλητές στην Prolog είναι συμβολοσειρές που μπορεί να περιέχουν ψηφία ή τον χαρακτήρα "_". Χρησιμοποιούνται στη θέση άγνωστων ορισμάτων σε μια πρόταση και πρέπει πάντα να ξεκινούν με κεφαλαίο γράμμα ή με τον χαρακτήρα "_". Παραδείγματα αποδεκτών μεταβλητών είναι: Χ, ListOfStrings, List_of_strings, Obj2, _X1. Μη-αποδεκτές μεταβλητές: x, obj, 2Obj 29

30 Prolog και Διαδικαστικές Γλώσσες Προγραμματισμού (1/2) Υπάρχουν σημαντικές διαφορές ανάμεσα στις μεταβλητές των κλασσικών γλωσσών και της Prolog. Στις κλασσικές γλώσσες μια μεταβλητή μπορεί μετά την πρώτη ανάθεση να μεταβάλλει την τιμή που έχει πάρει (destructive assignment). Αντίθετα στην Prolog, σε μια μεταβλητή η οποία έχει πάρει τιμή δεν μπορεί να δοθεί νέα (non destructive assignment). Π.χ. η συνηθισμένη σε άλλες γλώσσες έκφραση Ν = Ν + 1, δεν έχει κανένα νόημα στην Prolog. 30

31 Prolog και Διαδικαστικές Γλώσσες Προγραμματισμού (2/2) Οι μεταβλητές στην Prolog, δεν έχουν τύπο (typeless) και άρα δεν απαιτούν δηλώσεις και μπορούν σαν τιμή οποιοδήποτε όρο. Υπάρχουν μόνο τοπικές μεταβλητές, των οποίων η εμβέλεια είναι μέσα στον κανόνα τον οποίο εμφανίζονται. 31

32 Σύνθετοι όροι Ο Σύνθετος όρος είναι δοµή της µορφής f(t 1, t 2,, t κ ): f: συναρτησιακό σύµβολο (functor). t i : ορίσµατα του συναρτησιακού συµβόλου και είναι όροι. Ο αριθµός των ορισµάτων (κ) ονοµάζεται τάξη (arity) του συναρτησιακού συµβόλου. 32

33 Παραδείγματα Σύνθετων Όρων (1/2) Αναπαράσταση ημερομηνίας: date(2,august,1997) Πρόκειται για έναν σύνθετο όρο τάξης 3 αφού έχει τρία ορίσματα (ημέρα, μήνας, έτος). Στο παράδειγμα αυτό, όλα τα ορίσματα είναι απλοί όροι. date 2 august

34 Παραδείγματα Σύνθετων Όρων (2/2) Η αναπαράσταση ενός τριγώνου μπορεί να γίνει χρησιμοποιώντας έναν σύνθετο όρο τάξης 3. triangle(point(4,2),point(6,4),point(7,1)) Το κάθε όρισμά του είναι με τη σειρά του ένας άλλος σύνθετος όρος που αναπαριστά μια κορυφή του τριγώνου. Π.χ. point(4,2) point triangle point point

35 Περιπτώσεις Όρων Όρος Απλός Σύνθετος Σταθερή Μεταβλητή Συναρτησιακό Σύμβολο Ορίσματα Αριθμός Άτομο Όροι 35

36 Σχόλια Τα σχόλια στην Prolog εισάγονται είτε με τον χαρακτήρα "%" είτε περικλείονται στους χαρακτήρες "/*" και "*/". % This is a line comment father(jim,mary). % Jim is father of Mary /* father connects a father and his son or his daughter */ 36

37 Γεγονότα (1/2) Η πιo απλή μορφή προτάσεων Horn είναι τα γεγονότα (facts). Ένα γεγονός είναι η "απευθείας" αναπαράσταση μιας σχέσης που συνδέει ένα η περισσότερα αντικείμενα. Π.χ. για να δηλώσουμε ότι η Ελλάδα, η Ιταλία και η Αγγλία είναι χώρες τις Ευρώπης εισάγουμε τα γεγονότα belongs_to(greece,europe). belongs_to(italy,europe). belongs_to(england,europe). H σχέση (relationship) belongs_to συνδέει τα δύο άτομα (atoms) π.χ. greece, europe. 37

38 Γεγονότα (2/2) 2 τάξη belongs_to (greece,europe ). Σχέση / Κατηγόρημα ορίσματα Ατομικός τύπος 38

39 Σύνταξη Γεγονότων Ατομικός τύπος Γεγονός Τελεία (.) Κάθε πρόταση πρέπει να τελειώνει με το σημείο στίξης της τελείας "." Κατηγόρημα Ορίσματα Όροι 39

40 Κανόνες Οι κανόνες (rules) είναι προτάσεις που ορίζουν νέες σχέσεις με τη βοήθεια άλλων σχέσεων που έχουν ήδη οριστεί. Οι κανόνες έχουν την γενική μορφή: Α :- Β 1, Β 2, Β 3,..., B n. (n >= 1). Το Α ονομάζεται κεφαλή (head) του κανόνα Η κεφαλή μπορεί να είναι οποιοσδήποτε ατομικός τύπος. Τα Β 1, Β 2, Β 3,..., B n, ονομάζονται σώμα (body) του κανόνα, και είναι και αυτοί ατομικοί τύποι. Η κεφαλή διαχωρίζεται από το σώμα με τους χαρακτήρες ":-", οι οποίοι μπορούν να διαβαστούν σαν το λογικό συνδετικό της συνεπαγωγής "ΕΑΝ". Η σημασία του σημείου στίξης του κόμματος "," μεταξύ των ατομικών τύπων στο σώμα ενός κανόνα, ή στην ερώτηση είναι αυτή της λογικής σύζευξης (AND). 40

41 Παράδειγμα Κανόνα Δύο άτομα (Χ και Υ) είναι αδέλφια αν ο γονέας του ενός (Ζ) είναι και γονέας του άλλου. Αυτό μπορεί να εκφραστεί με τη βοήθεια ενός κανόνα: % siblings/2 siblings(χ,υ):- parent(ζ,χ), parent(ζ,υ). Συμβολισμός: Κατηγόρημα siblings τάξης 2 Η κοινή μεταβλητή (shared variable) Ζ εκφράζει την συνθήκη ότι οι Χ και Υ έχουν τον ίδιο γονέα. 41

42 Ερμηνεία Προτάσεων Τα προγράμματα στην Prolog μπορούν να γίνουν κατανοητά με δύο τρόπους: δηλωτικά (declaratively) και διαδικαστικά (proceduraly). Π.χ. πρόταση Ρ :- Q, R. μπορεί να ερμηνευτεί: Δηλωτικά: Το Ρ είναι αληθές εάν τα Q είναι αληθές και εάν το R είναι αληθές. Διαδικαστικά: Για να αποδειχθεί ότι το Ρ είναι αληθές, πρέπει πρώτα να αποδειχθεί ότι το Q είναι αληθές και στη συνέχεια ότι και το R είναι αληθές. 42

43 Παρατηρήσεις για τα Κατηγορήματα Η τάξη ενός κατηγορήματος πρέπει να είναι η ίδια, οπουδήποτε και αν εμφανίζεται το κατηγόρημα αυτό μέσα στο πρόγραμμα. Το ίδιο πρέπει να συμβαίνει και με τη σειρά των ορισμάτων του. Αν τα ορίσματα ενός κατηγορήματος δεν είναι συγκεκριμένα, μπορούμε στη θέση τους να τοποθετήσουμε μεταβλητές. 43

44 Ερωτήσεις (1/2) Οι ερωτήσεις είναι η μέθοδος που χρησιμοποιείται στην Prolog για την εξαγωγή γνώσης από ένα πρόγραμμα. Η σύνταξή τους είναι:?- ατομικός τύπος. Ο ατομικός τύπος ονομάζεται κλήση (call). Ανάλογα με τον αριθμό των κλήσεων, οι ερωτήσεις διακρίνονται σε δύο κατηγορίες: τις απλές και τις σύνθετες. 44

45 Ερωτήσεις (2/2) Οι ερωτήσεις μπορούν να θεωρηθούν και σαν λογικές προτάσεις προς απόδειξη. Η Prolog βασισμένη στα ορισμένα κατηγορήματα, προσπαθεί να αποδείξει τη αλήθεια των προτάσεων αυτών. Αν η προς απόδειξη πρόταση (ερώτηση) ικανοποιείται, η απάντηση στην ερώτηση είναι θετική, και περιλαμβάνει τις τιμές για τις μεταβλητές που πιθανόν να περιλαμβάνονται σε αυτή. Στην αντίθετη περίπτωση, το σύστημα απαντά αρνητικά (no). Ουσιαστικά η Prolog υλοποιεί την αποδεικτική διαδικασία της «αρχής της ανάλυσης» συνδυασμένη με την «απαγωγή σε άτοπο». 45

46 Απλές ερωτήσεις (1/2) Περιέχουν μία μόνο κλήση. big(bear). big (elephant). small(cat). brown(bear). gray(elephant). black(cat).?-brown(elephant). no Η κλήση δεν ικανοποιείται αφού το αντίστοιχο γεγονός δεν υπάρχει.?-big(elephant). yes Η κλήση ικανοποιείται αφού το σύστημα, βρίσκει το αντίστοιχο γεγονός. 46

47 Απλές ερωτήσεις (2/2) big(bear). big (elephant). small(cat). brown(bear). gray(elephant). black(cat).?-big(χ). X=bear; X=elephant; no Η μεταβλητή Χ αποκτά την τιμή bear σύμφωνα με την πρώτη πρόταση. Αν ο χρήστης ζητήσει και άλλη λύση, αυτή παίρνει την τιμή elephant από τη δεύτερη πρόταση. 47

48 Σύνθετες ερωτήσεις (1/4) Περιέχουν παραπάνω από μία κλήσεις. Οι κλήσεις συνήθως χωρίζονται μεταξύ τους με κόμμα (",") το οποίο αντιστοιχεί στον λογικό τελεστή AND. Η απάντηση σε μια σύνθετη ερώτηση είναι καταφατική μόνο αν αληθεύουν όλες οι επιμέρους κλήσεις που την αποτελούν. 48

49 Σύνθετες ερωτήσεις (2/4) big(bear). big (elephant). small(cat). brown(bear). gray(elephant).?- small(χ), gray(χ). no black(cat). Σύμφωνα με την τρίτη πρόταση, η μεταβλητή Χ της πρώτης κλήσης θα πάρει την τιμή cat. Τότε, και η μεταβλητή της δεύτερης κλήσης θα αποκτήσει την ίδια τιμή μιας και έχει το ίδιο όνομα με την μεταβλητή της προηγούμενης κλήσης. Έτσι, η ερώτηση γίνεται: gray(cat). Επειδή, όμως, το αντίστοιχο γεγονός λείπει από το πρόγραμμα, η απάντηση που θα επιστρέψει το σύστημα θα είναι αρνητική. 49

50 Σύνθετες ερωτήσεις (3/4) big(bear). big (elephant). small(cat). brown(bear). gray(elephant). black(cat).?-big(χ), gray(χ). X=elephant; no?-big(χ), black(υ). X=bear, Y=cat; X=elephant, Y=cat; no Οι δύο κλήσεις συναληθεύουν για την ίδια τιμή του Χ. Οι δύο μεταβλητές παίρνουν τιμή ανεξάρτητα η μία από την άλλη. Το σύνολο των απαντήσεων είναι το καρτεσιανό γινόμενο των συνόλων τιμών που μπορεί να πάρει η κάθε μεταβλητή ανεξάρτητα. 50

51 Σύνθετες ερωτήσεις (4/4) big(bear). big (elephant). black(cat). black(puma).?-big(χ), black(υ). X=bear, Y=cat; X=bear, Y=puma; X=elephant, Y=cat; X=elephant, Y=puma; no Η δεύτερη μεταβλητή «αλλάζει» τιμή πρώτη, γιατί η οπισθοδρόμηση είναι «χρονολογική», δηλαδή ο υπολογισμός επιστρέφει στο πιο κοντινό χρονικά σημείο που μπορεί να δώσει εναλλακτική λύση. Όταν η οπισθοδρόμηση φθάσει την πρώτη μεταβλητή, η εκτέλεση ξανακυλάει με την κανονική της ροή (από αριστερά προς τα δεξιά). Οι παραπάνω τιμές της Υ έχουν ξεχαστεί και δίνονται με τη σειρά ξανά όπως την πρώτη φορά. 51

52 Άσκηση Γενεαλογικού Δένδρου kyriakos katerina george mary manolis theano father mother father mother father mother helen kostas anna dimitris mother father mother father nick mary2 katerina2 manolis2 father mother dimitris2 52

53 Γενεαλογικό Δένδρο Ερωτήσεις (1/2) Είναι ο Γιώργος πατέρας της Άννας;?- father(george,anna). yes Είναι η Μαρία μητέρα του Δημήτρη;?- mother(mary,dimitris). no Ποιος είναι ο πατέρας της Ελένης;?- father(x,helen). X=kyriakos 53

54 Γενεαλογικό Δένδρο Ερωτήσεις (2/2) Ποιο(-α) είναι τα παιδιά της Μαρίας;?- mother(mary,x). X=kostas; X=anna Ποιοι είναι οι γονείς της Ελένης;?- father(x,helen) ; mother(x,helen). X=kostas; X=anna Σύμβολο της λογικής διάζευξης (OR) 54

55 Γενεαλογικό Δένδρο Ερωτήσεις + Κανόνες Ποιοι είναι οι γονείς της Ελένης; Προσθέτουμε στο πρόγραμμα τους ακόλουθους κανόνες που ορίζουν το κατηγόρημα parent/2. parent(x,y) :- father(x,y). parent(x,y) :- mother(x,y).?- parent(x,helen). X=kostas; X=anna Η διάζευξη είναι «κρυμμένη» μέσα στους πολλαπλούς εναλλακτικούς κανόνες για το parent/2. 55

56 Γενεαλογικό Δένδρο Σχέση grandfather (1/2) Ποιο(-α) είναι τα εγγόνια του Κυριάκου; Το εγγόνι του Κυριάκου Με σύνθετη ερώτηση:?- father(kyriakos, X), (father(x, Y) ; mother(x,y)). X=helen, Y=mary2; X=helen, Y=katerina2?- father(kyriakos, X), parent(x, Y). ή Το παιδί του Κυριάκου 56

57 Με κανόνα: Γενεαλογικό Δένδρο Σχέση grandfather (2/2) grandfather(ζ, Y) :- father(z, X), parent(χ, Y). grandparent(ζ, Y) :- parent(z, X), parent(χ, Y). Ερώτηση:?- grandfather(kyriakos, Y). Y=mary2; Y=katerina2 Z X Y 57

58 Ποιο(-α) είναι τα αδέλφια του Κώστα; Με σύνθετη ερώτηση:?- parent(x, kostas), parent(x, Y). X = george, Y = kostas ; X = george, Y = anna ; X = maria, Y = anna ; X = maria, Y = kostas Γενεαλογικό Δένδρο Σχέση sibling (1/2) Το «άλλο» παιδί του γονιού του Κώστα. Ο γονέας του Κώστα. Ο Κώστας είναι επίσης παιδί του γονιού του Κώστα! Αφού υπάρχουν δυο γονείς, όλες οι λύσεις θα δοθούν 2 φορές. 58

59 Γενεαλογικό Δένδρο Σχέση sibling (2/2)?- parent(x, kostas), parent(x, Y), Υ\=kostas. X = george, Y = anna ; X = maria, Y = anna Δεν μπορούμε να αποφύγουμε να δοθούν 2 φορές οι λύσεις. Κανόνας: sibling(z,y) :- parent(x,z), parent(x,y), Z \= Y. Ζητάμε η τιμή που θα πάρει η μεταβλητή Y να μην ισούται με kostas.?- sibling(kostas,y). Y = anna ; Y = anna Y X Z 59

60 Γενεαλογικό Δένδρο Σχέση aunt/uncle Η σχέση θείος/θεία μπορεί να οριστεί με τη βοήθεια της sibling. aunt_uncle(x,y) :- sibling(x,z), parent(z,y). X Z Y 60

61 Γενεαλογικό Δένδρο - Σχέση cousin Η σχέση «ξάδελφος/η» μπορεί να οριστεί είτε με τη σχέση aunt_uncle/parent, ή με τις sibling/parent. cousin(x,y) :- aunt_uncle(w,x), parent(w,y). ή cousin(x,y) :- parent(z,x), sibling(z,w), parent(w,y). W Y Z X 61

62 Είναι κατηγορήματα χωρίς ορίσματα. Έστω ότι έχουμε τα στοιχεία (και ενώσεις) : MgO, H 2, C και Ο 2 Θέλουμε να δούμε αν μπορούμε να πάρουμε H 2 CO 3 από τις εξισώσεις : MgO + H 2 Mg + H 2 O C + O 2 CO 2 CO 2 + H 2 O H 2 CO 3 Άσκηση Κατηγορήματα με τάξη μηδέν 62

63 Πρόγραμμα Α μαγνήσιο : - οξείδιο_μαγνησίου, υδρογόνο. νερό : - οξείδιο_μαγνησίου, υδρογόνο. διοξείδιο_άνθρακα : - άνθρακας, οξυγόνο. ανθρακικό_οξύ : - διοξείδιο_άνθρακα, νερό. οξείδιο_μαγνησίου. υδρογόνο. άνθρακας. οξυγόνο. Ερώτηση:?- ανθρακικό_οξύ. Απάντηση: Yes 63

64 Πρόγραμμα Β mg : - mgo, h2. h2o : - mgo, h2. co2 : - c, o2. h2co3 : - co2, h2o. mgo. h2. c. o2. Ερώτηση:?- h2co3. Απάντηση: Yes 64

65 Ασκήσεις (1/2) Ένα πρόγραμμα Prolog περιλαμβάνει γεγονότα της μορφής: αγαπά(α1, α2) % ο α1 αγαπά τον α2. Υποβάλλετε στο πρόγραμμα τις ακόλουθες ερωτήσεις: Υπάρχει κάποιος που αγαπά τον εαυτό του; Υπάρχει κάποιος που αγαπά αυτόν που τον αγαπά; Υπάρχουν 2 πρόσωπα που αγαπούν το ίδιο πρόσωπο; Απαντήσεις.?- αγαπά(χ, Χ). % ανακλαστική ιδιότητα?- αγαπά(χ, Υ), αγαπά(υ, Χ). % συμμετρική ιδιότητα?- αγαπά(χ, Ζ), αγαπά(υ, Ζ). 65

66 Ασκήσεις (2/2) Στο προηγούμενο πρόγραμμα προσθέστε τους κανόνες: Όλοι αγαπούν τον εαυτό τους. Αν ο Α αγαπά τον Β και ο Β τον Γ, τότε ο Α αγαπά τον Γ. Αν δύο άνθρωποι αγαπούν το ίδιο πρόσωπο, τότε αγαπιούνται και μεταξύ τους. Απαντήσεις αγαπά(χ, Χ). αγαπά(α, Γ) : - αγαπά(α, Β), αγαπά(β, Γ). αγαπά(χ, Υ) : - αγαπά(υ, Χ). αγαπά(χ, Υ): - αγαπά(χ, Ζ), αγαπά(υ, Ζ). Πρέπει να ισχύει Χ Υ % Γενικευμένο γεγονός έχει μεταβλητές 66

67 Εκτέλεση Προγραμμάτων Η εκτέλεση ξεκινά με μια ερώτηση που υποβάλλει ο χρήστης. Φτάνουμε σε λύση όταν έχουν εξαντληθεί όλες οι κλήσεις της ερώτησης. Η απάντηση είναι το αποτέλεσμα του προγράμματος. Η ερώτηση μπορεί να είναι: απλή, περιέχει μία μόνο κλήση, ή?- friend(x,nick). σύνθετη, αποτελείται από σύζευξη πολλαπλών κλήσεων.?- friend(x,nick), friend(x,john). 67

68 Βήματα Εκτέλεσης (1/2) Έως ότου δεν υπάρχουν άλλες κλήσεις στην ερώτηση, επιλέγονται με τη σειρά, από αριστερά προς τα δεξιά, οι κλήσεις της ερώτησης. Για κάθε κλήση της ερώτησης, ο μηχανισμός ελέγχου αναλαμβάνει να βρει μια πρόταση του προγράμματος της οποίας η κεφαλή έχει το ίδιο κατηγόρημα και τάξη με την επιλεγμένης κλήση. Η ερώτηση θεωρείται ότι απαντήθηκε, όταν απαντηθούν επιτυχώς όλες οι κλήσεις της. Εφόσον οι κλήσεις της ερώτησης περιέχουν κοινές μεταβλητές, θα πρέπει αυτές να πάρουν την ίδια τιμή. 68

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

70 Ενοποίηση με Γεγονός Όταν η κλήση που εξετάζεται ενοποιείται με ένα από τα γεγονότα του προγράμματος τότε αυτή ικανοποιείται και απομακρύνεται από την ερώτηση. Π.χ.?- father(x,y). father(george,nick). father(x,y) ή father(x,y) father(george,nick) Για την αντικατάσταση {X/george, Y/nick} η κλήση με την πρόταση (γεγονός) γίνονται ταυτόσημα και η κλήση ικανοποιείται και απομακρύνεται. Παραμένει κενή η ερώτηση (χωρίς κλήσεις), άρα η διαδικασία απόδειξης έχει τερματίσει επιτυχημένα. 70

71 Ενοποίηση με Κανόνα Αν η τρέχουσα κλήση ενοποιείται με κάποιον κανόνα, τότε αυτή απομακρύνεται από την ερώτηση και τη θέση της παίρνει το σώμα του κανόνα αυτού. Για την ικανοποίηση της αρχικής κλήσης είναι απαραίτητη η ικανοποίηση των κλήσεων του σώματος του κανόνα που την αντικατέστησε. Π.χ.?- grandfather(nick,w). grandfather(x,y) :- father(x,z), father(z,y). Για {X/nick, Y/W} η κλήση με την κεφαλή της πρότασης (κανόνας) γίνονται ταυτόσημα και η κλήση ικανοποιείται αν ικανοποιηθούν οι προϋποθέσεις (το σώμα) του κανόνα. Γίνεται αντικατάσταση της κλήσης στην ερώτηση με το σώμα?- father(nick,z), father(z, W). 71

72 Ισοδυναμία με την Αρχή της Ανάλυσης στη μορφή Kowalski grandfather(nick,w) father(x,z), father(z,y) grandfather(x,y) father(nick,z), father(z, W) Ισοδυναμία με την Αρχή της Ανάλυσης στην προτασιακή μορφή. grandfather(nick,w) father(x,z) father(z,y) grandfather(x,y) father(x,z) father(z,y) 72

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

74 Κατάληξη Εκτέλεσης Αν με την εξάντληση της διαδικασίας αυτής δεν καταλήξουμε σε ερώτηση χωρίς κλήσεις, τότε η απάντηση στην αρχική ερώτηση είναι αρνητική ή αλλιώς αποτυχία (fail). Σε αντίθετη περίπτωση η απάντηση στην ερώτηση είναι θετική ή αλλιώς επιτυχής (yes). Συνοδεύεται από τις αναθέσεις τιμών στις μεταβλητές της αρχικής ερώτησης που προέκυψαν από τις διαδοχικές ταυτοποιήσεις. 74

75 Παράδειγμα χωρίς μεταβλητές Ερώτηση και Πρόγραμμα?- a, b. Αρχική ερώτηση Προτάσεις προγράμματος Prolog a :- c, d. b :- w. b :- z. c :- e. d :- g, h. e. f. g. h. z. 75

76 Παράδειγμα χωρίς μεταβλητές Βήμα 1 (1/2)?- a, b. Η πρώτη κλήση (πιο αριστερή) ταυτοποιείται με κάποιον κανόνα. a :- c, d. b :- w. b :- z. c :- e. d :- g, h. Το σώμα του κανόνα αντικαθιστά την κλήση. e. f. g. h. z. 76

77 Παράδειγμα χωρίς μεταβλητές Βήμα 1 (2/2)?- c, d, b. a :- c, d. b :- w. b :- z. c :- e. d :- g, h. e. f. g. h. z. Το σώμα του κανόνα αντικαθιστά την κλήση. 77

78 Παράδειγμα χωρίς μεταβλητές Βήμα 2?- c, d, b. Η πρώτη κλήση (πιο αριστερή) ταυτοποιείται με κάποιον κανόνα. a :- c, d. b :- w. b :- z. c :- e. d :- g, h. e. f. g. h. z. Το σώμα του κανόνα αντικαθιστά την κλήση. 78

79 Παράδειγμα χωρίς μεταβλητές Βήμα 3?- e, d, b. a :- c, d. b :- w. b :- z. c :- e. d :- g, h. e. f. g. h. z. Η πρώτη κλήση (πιο αριστερή) ταυτοποιείται με κάποιο γεγονός. Το γεγονός αυτό προκαλεί την αφαίρεση της κλήσης. 79

80 Παράδειγμα χωρίς μεταβλητές Βήμα 4?- d, b. Η πρώτη κλήση (πιο αριστερή) ταυτοποιείται με κάποιον κανόνα. a :- c, d. b :- w. b :- z. c :- e. d :- g, h. e. f. g. h. z. Το σώμα του κανόνα αντικαθιστά την κλήση. 80

81 Παράδειγμα χωρίς μεταβλητές Βήμα 5?- g, h, b. a :- c, d. b :- w. b :- z. c :- e. d :- g, h. Η πρώτη κλήση (πιο αριστερή) ταυτοποιείται με κάποιο γεγονός. Το γεγονός αυτό προκαλεί την αφαίρεση της κλήσης. e. f. g. h. z. 81

82 Παράδειγμα χωρίς μεταβλητές Βήμα 6?- h, b. Η πρώτη κλήση (πιο αριστερή) ταυτοποιείται με κάποιο γεγονός. a :- c, d. b :- w. b :- z. c :- e. d :- g, h. Το γεγονός αυτό προκαλεί την αφαίρεση της κλήσης. e. f. g. h. z. 82

83 Παράδειγμα χωρίς μεταβλητές Βήμα 7 *?- b. a :- c, d. b :- w. b :- z. c :- e. d :- g, h. Η πρώτη κλήση (πιο αριστερή) ταυτοποιείται με κάποιον κανόνα. Η Prolog σημειώνει ότι υπάρχει και εναλλακτικός δρόμος, δηλαδή και άλλος υποψήφιος κανόνας για ταυτοποίηση. e. f. g. h. z. Το σώμα του κανόνα αντικαθιστά την κλήση. 83

84 Παράδειγμα χωρίς μεταβλητές Βήμα 8?- w. a :- c, d. b :- w. b :- z. c :- e. d :- g, h.? e. f. g. h. z. Η κλήση δεν μπορεί να ταυτοποιηθεί με κάποιο γεγονός. Προκαλείται αποτυχία στην ικανοποίηση του στόχου. Η αποτυχία προκαλεί την οπισθοδρόμηση της διαδικασίας απόδειξης στο πιο κοντινό (χρονικά) σημείο όπου υπήρχε εναλλακτικός δρόμος στην απόδειξη. 84

85 Παράδειγμα χωρίς μεταβλητές Βήμα 9 *?- b. a :- c, d. b :- w. b :- z. c :- e. d :- g, h. Ακύρωση της προηγούμενης αντικατάστασης. e. f. g. h. z. Η πρώτη κλήση ξανα-ταυτοποιείται με τον εναλλακτικό κανόνα. Το σώμα του εναλλακτικού κανόνα αντικαθιστά εκ νέου την κλήση. 85

86 Παράδειγμα χωρίς μεταβλητές Βήμα 10?- z. Η πρώτη κλήση ταυτοποιείται με κάποιο γεγονός. a :- c, d. b :- w. b :- z. c :- e. d :- g, h. e. f. g. h. z. Το γεγονός αυτό προκαλεί την αφαίρεση της κλήσης. 86

87 Παράδειγμα χωρίς μεταβλητές Βήμα 11?- Δεν υπάρχουν άλλες κλήσεις (κενή κλήση). a :- c, d. b :- w.. b :- z. c :- e. d :- g, h. e. f. g. h. z. Ο αρχικός στόχος θεωρείται ότι έχει ικανοποιηθεί. 87

88 ?- a, b.?- c, d, b.?- e, d, b.?- d, b.?- g, h, b.?- h, b.?- b.?- w.?- z. Δένδρο Εκτέλεσης ή Δένδρο Υπολογισμού fail 88

89 Δένδρο Υπολογισμού (1/2) Κάθε κόμβος του δένδρου αντιστοιχεί στην τρέχουσα ερώτηση. Οι συνδέσεις (κλαδιά) μεταξύ των κόμβων αντιπροσωπεύουν ένα υπολογιστικό βήμα. Χαρακτηρίζονται από τις αντικαταστάσεις των μεταβλητών που γίνονται σε αυτό. Κάθε διαδρομή από τον αρχικό κόμβο μέχρι κάποιο φύλλο του δένδρου (τελικός κόμβος) καταλήγει είτε σε επιτυχία είτε σε αποτυχία. 89

90 Δένδρο Υπολογισμού (2/2) Οι διαδρομές που καταλήγουν σε επιτυχία αντιπροσωπεύουν τις εναλλακτικές απαντήσεις στην ερώτηση του χρήστη. Ο τελικός κόμβος στις διαδρομές αυτές είναι η κενή πρόταση, που συμβολίζεται με το. Σε περίπτωση που μια κλήση ενοποιείται με περισσότερες από μια προτάσεις του προγράμματος, τότε από τον κόμβο αυτόν ξεκινούν περισσότερα του ενός κλαδιά. Το σημείο αυτό είναι ένα σημείο οπισθοδρόμησης. 90

91 Ενοποίηση Επειδή οι κλήσεις μιας ερώτησης, τα γεγονότα και οι κεφαλές των κανόνων μπορεί να περιέχουν μεταβλητές η Prolog για να ελέγξει αν μία κλήση ικανοποιείται από μία πρόταση χρησιμοποιεί τον μηχανισμό ενοποίησης (unification). παρόμοια με την κατηγορηματική λογική. Ο μηχανισμός προσπαθεί να καταστήσει ταυτόσημες μια κλήση και την κεφαλή μιας πρότασης εκτελώντας τις ελάχιστες αναθέσεις τιμών σε μεταβλητές. πιο γενικός ενοποιητής (most general unifier) 91

92 Κανόνες Ενοποίησης (1/2) Μία μεταβλητή που δεν έχει πάρει τιμή μπορεί να ταυτοποιηθεί με σταθερή, μεταβλητή ή σύνθετο όρο. Μία σταθερά μπορεί να ταυτοποιηθεί μόνο με τον εαυτό της. Ένας σύνθετος όρος μπορεί να ταυτοποιηθεί με έναν άλλο σύνθετο μόνο εφόσον έχουν το ίδιο συναρτησιακό σύμβολο και την ίδια τάξη, και με την προϋπόθεση ότι τα αντίστοιχα ορίσματά τους μπορούν να ταυτοποιηθούν. 92

93 Κανόνες Ενοποίησης (2/2) <σταθερά> c1 <μεταβλητή> X1 <σύνθετος όρος> f(t1,,tν) <σταθερά> c2 επιτυχές αν η c1 είναι ίδια με τη c2 η μεταβλητή X1 παίρνει την τιμή c2 {Χ1=c2} αποτυγχάνει <μεταβλητή> X2 η μεταβλητή X2 παίρνει την τιμή c1 {Χ2=c1} η μεταβλητή X1 ενοποιείται με τη X2 {Χ1=Χ2} επιτυχές αν {Χ2=f(u1,,um)} <σύνθετος όρος> f(u1,,uμ) αποτυγχάνει επιτυχές αν {Χ1=f(t1,,tn)} επιτυχές αν ν==μ και u1==t1,,uμ==tν 93

94 Παραδείγματα Ενοποίησης Ατομικών Τύπων (1/2) age(χ, 17) age(tom, 17) {X=tom} age(χ, 17) - age(tom, 18) Δεν ενοποιούνται καθώς το δεύτερο όρισμα έχει διαφορετικές τιμές. age(χ, 17) - agel(χ, 17) Δεν ενοποιούνται καθώς πρόκειται για διαφορετικά κατηγορήματα (functors). a(χ, Χ) - a(bob, Υ) {X=Y=bob} 94

95 Παραδείγματα Ενοποίησης Ατομικών Τύπων (2/2) a(χ, Χ) - a(bob, tom) Δεν ενοποιούνται. Η μεταβλητή Χ μπορεί να πάρει μόνο μια τιμή. a(f (1, Χ), 3) a(f (Υ, k), Ζ) {Υ=1, X=k, Ζ=3} a(3, Χ) a(υ, f(2,υ)) {Υ=3, X=f(2, 3) } a(f(1,2),3) a(f(υ, 2, 3), Ζ) Δεν ενοποιούνται γιατί τα πρώτα ορίσματα στους δύο ατομικούς όρους έχουν διαφορετικό αριθμό ορισμάτων. 95

96 Παράδειγμα εκτέλεσης προγράμματος (1/2) Έστω το πρόγραμμα greek(socrates). human(turing). human(socrates). fallible(x):- human(x). Tίθεται το ερώτημα.?- fallible(y), greek(y). Απάντηση: Y=socrates 96

97 Παράδειγμα εκτέλεσης προγράμματος (2/2) * greek(socrates). human(turing). human(socrates). fallible(x) :- human(x).?-fallible(y), greek(y). {Y=X}?-human(Y), greek(y).? {Y=turing}?-greek(turing). {Y=socrates}?-greek(socrates). αποτυγχάνει Απάντηση: Y=socrates 97

98 Γενεαλογικό Δένδρο (εναλλακτικά) Κυριάκος married Κατερίνα Γιώργος married Μαρία Μανώλης married Θεανώ child_of child_of child_of Ελένη married married Κώστας Άννα Δημήτρης child_of child_of child_of Νίκος married Μαρία2 Κατερίνα2 Μανώλης2 child_of Δημήτρης2 98

99 Γενεαλογικό Δένδρο (εναλλακτικά) Γεγονότα. married('κυριάκος','κατερίνα').... child_of('ελένη','κυριάκος').... Να ορισθεί η σχέση parent/2. parent(x,y) :- child_of(y,x). parent(x,y) :- child_of(y,z), married(z,x). Κατηγορήματα child_of Χ Κυριάκος Ελένη Υ Ζ Υ Χ parent(x,y) :- child_of(y,z), married(x,z). married parent? Χ Χ Ζ Κατερίνα child_of Κώστας Υ Υ 99

100 Γενεαλογικό Δένδρο (εναλλακτικά) Αντιμεταθετική σχέση Η σχέση married/2 είναι μονής κατεύθυνσης. Να ορισθεί μία ανάλογη αντιμεταθετική σχέση. are_married(x,y) :- married(x,y). are_married(x,y) :- married(y,x). Η σχέση parent/2 μπορεί να γραφεί parent(x,y) :- child_of(y,x). Κυριάκος parent(x,y) :- parent child_of(y,z), child_of are_married(z,x). Ελένη are_married Κατερίνα Κώστας child_of 100

101 Γενεαλογικό Δένδρο (εναλλακτικά) Μηχανισμός εκτέλεσης parent(x,y) :- child_of(y,x). parent(x,y) :- child_of(y,z), are_married(z,x). are_married(x,y) :- married(x,y). are_married(x,y) :- married(y,x). married(kiriakos,katerina). child_of(eleni,kiriakos). child_of(kostas,katerina). child_of?- parent(z,eleni),parent(z,kostas). Κυριάκος Ελένη are_married married parent Κατερίνα child_of Κώστας 101

102 ?- parent(z,eleni),parent(z,kostas). * titlos parent(x,y) :- {Z=Χ,Υ=eleni} child_of(y,x).?- child_of(eleni,ζ),parent(z,kostas). child_of(eleni,kiriakos).?- parent(kiriakos,kostas). parent(x,y) :- child_of(y,x). FAIL * {X =kiriakos, Υ =kostas}?- child_of(kostas,kiriakos). {Z=kiriakos,Υ=eleni}? 102

103 ?- parent(kiriakos,kostas). parent(x,y) :- child_of(y,z), are_married(z,x).?- child_of(kostas,z),are_married(z,kiriakos). child_of(kostas,katerina). {X =kiriakos, Υ =kostas} {Z =katerina} * are_married(x,y) :- married(x,y). FAIL {X =katerina, Υ =kiriakos}?- are_married(katerina,kiriakos).?- married(katerina,kiriakos).? 103

104 are_married(x,y) :- married(y,x). {X =katerina, Υ =kiriakos}?- are_married(katerina,kiriakos).?- married(kiriakos,katerina). married(kiriakos,katerina).? yes Z=kiriakos Αν ζητηθεί εναλλακτική λύση, υπάρχει οπισθοδρόμηση στο πιο κοντινό (χρονικά) σημείο εναλλακτικής επιλογής, το οποίο ΔΕΝ έχει χρησιμοποιηθεί σε προηγούμενη οπισθοδρόμηση. 104

105 ?- parent(z,eleni),parent(z,kostas). parent(x,y) :- child_of(y,z ), are_married(z,x). {Z=Χ,Υ=eleni}?- child_of(eleni,ζ ), are_married(z,ζ), parent(z,kostas).... {Z =kiriakos, Z=katerina} yes Z=katerina 105

106 Αναδρομή Η αναδρομή (recursion) αποτελεί βασικό στοιχείο στον προγραμματισμό με Prolog. Με τον όρο αναδρομή εννοούμε τη δυνατότητα ένας κανόνας να περιέχει στο σώμα του μια κλήση προς τον εαυτό του. Οι κανόνες που χρησιμοποιούν αναδρομή χαρακτηρίζονται σαν αναδρομικοί κανόνες. Η χρήση της αναδρομής οδηγεί σε μικρότερα προγράμματα. 106

107 Παράδειγμα Αναδρομής (1/4) Έστω τα γεγονότα: parent(john,george). parent(john,nick). parent(jim,bill). parent(jim,jack). parent(gregory,john). parent(gregory,jim). parent(bob,gregory). parent(joseph,bob). Θέλουμε να ορίσουμε έναν κανόνα predecessor(x,y), ο οποίος να αληθεύει αν ο Χ είναι πρόγονος του Υ. 107

108 Παράδειγμα Αναδρομής (2/4) Χ Λύση με μη αναδρομικούς κανόνες: predecessor(x,z) :- parent(x,z). predecessor(x,z) :- parent(x,y), parent(y,z). Ζ Χ Υ Ζ predecessor(x,z) :- parent(x,y1),parent(y1,y2), parent(y2,z). Δεν μπορούν να γραφούν άπειροι κανόνες ώστε να καλύπτονται όλες οι γενεές. 108 Χ Υ1 Υ2 Ζ

109 Παράδειγμα Αναδρομής (3/4) Με αυτόν τον τρόπο δεν μπορούμε να ορίσουμε τη σχέση για πολύ μακρινούς απογόνους. Π.χ. στην ακόλουθη ερώτηση δεν δίνονται όλες οι απαντήσεις. Λείπει η X=joseph?- predecessor(x, george). X=john; X=gregory; X=bob; no joseph bob gregory john george 109

110 Παράδειγμα Αναδρομής (4/4) Λύση με αναδρομικούς κανόνες: Ο αναδρομικός κανόνας διατρέχει τις γενεές ανεξάρτητα της απόστασής τους. predecessor(x,z):- parent(x,z). predecessor(x,z):- parent(x,y), predecessor(y,z). Παρατήρηση: Όταν ένα κατηγόρημα ορίζεται αναδρομικά, εμφανίζεται πάντα με τουλάχιστον δύο κανόνες. Ο πρώτος συνήθως δεν περιέχει αναδρομική κλήση, λειτουργώντας σαν τερματική συνθήκη. 110

111 Αναδρομική σχέση predecessor Ο Χ είναι πρόγονος του Ζ όταν: είτε ο Χ είναι πατέρας του Ζ, είτε υπάρχει ένα Υ τέτοιο ώστε ο Χ να είναι πατέρας του Υ και ο Υ να είναι πρόγονος του Ζ. predecessor(x,z):- parent(x,z). predecessor(x,z):- parent(x,y), predecessor(y,z). predecessor parent Χ Υ... Ζ predecessor 111

112 Απαντήσεις αναδρομικής σχέσης?- predecessor(x, george). X=john; X=gregory; X=bob; X=joseph; no 112

113 parent(joseph,bob). parent(bob,gregory). parent(gregory,john). predecessor(x,z):- parent(x,z). predecessor(x,z):- parent(x,y), predecessor(y,z). {A=gregory} A=gregory?- predecessor(joseph,a). {X=joseph,Z=A} {X=joseph,Z=A}?- parent(joseph,a). {A=bob} A=bob?- parent(bob,a). {X=gregory,Z=A}?- parent(gregory,a). {A=john} A=john?- parent(joseph,y), predecessor(y,a). {Y=bob}?- predecessor(bob,a). {X=bob,Z=A} {X=bob,Z=A}?- parent(bob,y), predecessor(y,a). {Y=gregory}?- predecessor(gregory,a). {X=gregory,Z=A}?- parent(gregory,y), predecessor(y,a). {Y=john}?- predecessor(john,a). 113

114 parent(joseph,bob). parent(bob,gregory). parent(gregory,john). predecessor(x,z):-???- predecessor(john,a). {X=jonh,Z=A} {X=jonh,Z=A}?- parent(jonh,a).?- parent(jonh,y), predecessor(y,a). parent(x,z). predecessor(x,z):- parent(x,y), predecessor(y,z). fail fail 114

115 Παράδειγμα Γράφου Πόλεων (1/8) a b c d e road(a,b). road(b,c). road(c,d). road(d,e). 115

116 Παράδειγμα Γράφου Πόλεων (2/8) a X b c Y d e connected(x,y):- road(x,y). 116

117 Παράδειγμα Γράφου Πόλεων (3/8) a connected(x,y):- X b Z c Y d e road(x,z), road(z,y). 117

118 Παράδειγμα Γράφου Πόλεων (4/8) a connected(x,y):- road(x,z1), road(z1,z2), road(z2,y). X b c d Z Z2 1 Y e 118

119 Παράδειγμα Γράφου Πόλεων (5/8) a X connected(x,y):- road(x,z1), Z1 b c Z2 d Z3 Y e road(z1,z2), road(z2,z3), road(z3,y). 119

120 Παράδειγμα Γράφου Πόλεων (6/8) a X connected(x,y):- road(x,y). Z 1 b x y Z i Z i+1 Y z connected(x,y):- road(x,z), connected(z,y). 120

121 Παράδειγμα Γράφου Πόλεων a X (7/8) Z 1 b x y Z i Z i+1 Y z connected(x,y):- road(x,y). connected(x,y):- road(x,z), connected(z,y). 121

122 Παράδειγμα Γράφου Πόλεων (8/8) a X Z 1 b x y Z i Z i+1 Y z connected(x,y):- road(x,y). connected(x,y):- road(x,z), connected(z,y). 122

123 Κίνδυνοι Αναδρομής Ο βασικότερος κίνδυνος της αναδρομής είναι ο ατέρμονας βρόχος. Συμβαίνει όταν: Δεν υπάρχει τερματικός κανόνας/γεγονός. Υπάρχει τερματικός κανόνας, αλλά δεν ενοποιείται ποτέ με την αναδρομική κλήση ή αποτυγχάνει συνέχεια. Τα δεδομένα πάνω στα οποία «τρέχουν» οι κανόνες έχουν κυκλική αλληλεξάρτηση. 123

124 Μη-ύπαρξη τερματικού κανόνα (1/3) road(a,b). road(b,c). road(c,d). road(d,e). road(e,a). connected(x,y):- road(x,y). connected(x,y):- road(x,z), connected(z,y). f?- connected(a,e). Αν και έπρεπε να απαντηθεί yes, το ερώτημα δεν θα απαντηθεί ποτέ, γιατί η Prolog θα πέσει σε ατέρμονα βρόχο! 124

125 Μη-ύπαρξη τερματικού κανόνα (2/3)?- connected(a,e).?- road(a,z),connected(z,e). {Z=b}?- connected(b,e).?- road(b,z ),connected(z,e). connected(x,y):- road(x,y). connected(x,y):- road(x,z), connected(z,y). {Z =c}?- connected(c,e).?- road(c,z ),connected(z,e). {Z =d}?- connected(d,e). 125

126 Μη-ύπαρξη τερματικού κανόνα (3/3)?- connected(d,e).?- road(d,z ),connected(z,e). {Z =e}?- connected(e,e).?- road(e,z ),connected(z,e). {Z =a} connected(x,y):- road(x,y). connected(x,y):- road(x,z), connected(z,y).?- connected(a,e). Είναι η αρχική ερώτηση! Η εκτέλεση θα συνεχιστεί επ άπειρω! 126

127 Αποτυχία τερματικού κανόνα (1/3)?- connected(a,e). Αν και έπρεπε να απαντηθεί yes, το road(a,b). f ερώτημα δεν θα απαντηθεί ποτέ, γιατί η road(b,c). Prolog θα πέσει σε road(c,d). ατέρμονα βρόχο! road(d,e). road(e,a). connected(x,χ):- road(x,χ). connected(x,y):- road(x,z), connected(z,y). 127

128 Αποτυχία τερματικού κανόνα (2/3)?- connected(a,e). no?- road(a,z),connected(z,e). {Z=b}?- connected(b,e). no?- road(b,z ),connected(z,e). connected(x,χ):- road(x,χ). connected(x,y):- road(x,z), connected(z,y). no {Z =c}?- connected(c,e).?- road(c,z ),connected(z,e). {Z =d}?- connected(d,e). 128

129 Αποτυχία τερματικού κανόνα (3/3)?- connected(d,e). no?- road(d,z ),connected(z,e). {Z =e}?- connected(e,e).?- road(e,e).?- road(e,z ),connected(z,e). connected(x,χ):- road(x,χ). connected(x,y):- road(x,z), connected(z,y). no {Z =a}?- connected(a,e). Είναι η αρχική ερώτηση! Η εκτέλεση θα συνεχιστεί επ άπειρω! 129

130 Κυκλική Αλληλεξάρτηση Δεδομένων Μεταβατική Ιδιότητα (1/3)?- connected(a,e). yes road(a,b). f?- connected(a,f). Αν και έπρεπε να road(b,c). απαντηθεί no, το ερώτημα road(c,d). δεν θα απαντηθεί ποτέ, γιατί η Prolog θα πέσει σε road(d,e). ατέρμονα βρόχο! road(e,a). connected(x,y):- road(x,y). connected(x,y):- road(x,z), connected(z,y). 130

131 Κυκλική Αλληλεξάρτηση Δεδομένων Μεταβατική Ιδιότητα (2/3)?- connected(a,f).?- road(a,f). no?- road(b,f).?- road(a,z),connected(z,f). {Z=b}?- connected(b,f).?- road(b,z ),connected(z,f). connected(x,y):- road(x,y). connected(x,y):- road(x,z), connected(z,y). no?- road(c,f). no {Z =c}?- connected(c,f).?- road(c,z ),connected(z,f). {Z =d}?- connected(d,f). 131

132 Κυκλική Αλληλεξάρτηση Δεδομένων Μεταβατική Ιδιότητα (3/3)?- connected(d,f).?- road(d,f). no?- road(d,z ),connected(z,f). {Z =e}?- connected(e,f). connected(x,y):- road(x,y). connected(x,y):- road(x,z), connected(z,y).?- road(e,f). no?- road(e,z ),connected(z,f). {Z =a}?- connected(a,f). Είναι η αρχική ερώτηση! Η εκτέλεση θα συνεχιστεί επ άπειρω! 132

133 Κυκλική Αλληλεξάρτηση Δεδομένων Αντιμεταθετική Ιδιότητα (1/6) Η σχέση married/2 είναι μονής κατεύθυνσης. Πώς μπορεί να γίνει διπλής κατεύθυνσης? (Αντιμεταθετική) Λύσεις: 1. Να γραφούν όλα τα γεγονότα 2 Νίκος φορές: married(kiriakos,katerina). married(katerina,kiriakos). Μειονέκτημα: Πολύς κόπος από τον προγραμματιστή και σπατάλη χώρου Κυριάκος child_of married Ελένη child_of married Δημήτρης2 Κατερίνα Μαρία2 married child_of Γιώργος Κώστας child_of Κατερίνα2 married Άννα Μαρία child_of 133

134 Κυκλική Αλληλεξάρτηση Δεδομένων Αντιμεταθετική Ιδιότητα (2/6) 2. Να γραφεί αναδρομικός κανόνας που να δηλώνει ότι η σχέση είναι αντιμεταθετική. Κυριάκος married Κατερίνα Γιώργος married Μαρία married(kiriakos,katerina). married(maria,george). child_of Ελένη married Κώστας child_of Άννα married(χ,υ) :- married(υ,x). Μειονέκτημα: Η Prolog πέφτει σε ατέρμονα βρόχο λόγω κυκλικής αλληλεξάρτησης δεδομένων. 134

135 Κυκλική Αλληλεξάρτηση Δεδομένων Αντιμεταθετική Ιδιότητα (3/6) Το πρόγραμμα απαντάει yes όταν πρέπει να απαντήσει yes. married(kiriakos,katerina). married(maria,george). married(χ,υ) :- married(υ,x).?- married(kiriakos,katerina). yes % λόγω γεγονότος.?- married(katerina,kiriakos). yes % λόγω κανόνα και γεγονότος. {Χ=katerina, Y=kiriakos} 135

136 Κυκλική Αλληλεξάρτηση Δεδομένων Αντιμεταθετική Ιδιότητα (4/6) Το πρόγραμμα απαντάει no όταν πρέπει να απαντήσει no? married(kiriakos,katerina). married(maria,george). married(χ,υ) :- married(υ,x).?- married(kiriakos,maria). {Χ=kiriakos, Y=maria}?- married(maria,kiriakos). {Χ=maria, Y=kiriakos}?- married(kiriakos,maria). Είναι η αρχική ερώτηση! Η εκτέλεση θα συνεχιστεί επ άπειρω! 136

137 Κυκλική Αλληλεξάρτηση Δεδομένων Αντιμεταθετική Ιδιότητα (5/6) 3. Να γραφούν 2 μη-αναδρομικοί κανόνες που να δηλώνουν ότι η σχέση είναι αντιμεταθετική. married(kiriakos,katerina). married(maria,george). are_married(χ,υ) :- married(x,υ). are_married(χ,υ) :- married(υ,x).?- are_married(kiriakos,katerina). yes?- are_married(katerina,kiriakos). yes % λόγω 1 ου κανόνα + γεγονός % λόγω 2 ου κανόνα + γεγονός?- married(kiriakos,katerina).?- married(kiriakos,katerina). 137

138 Κυκλική Αλληλεξάρτηση Δεδομένων Αντιμεταθετική Ιδιότητα (6/6)?- are_married(kiriakos,maria). {X=kiriakos,Y=maria} {X=kiriakos,Y=maria}?- married(kiriakos,maria).?- married(maria,kiriakos). no married(kiriakos,katerina). married(maria,george). are_married(χ,υ) :- married(x,υ). are_married(χ,υ) :- married(υ,x). no 138

139 Κυκλική Αλληλεξάρτηση Δεδομένων Μεταβατική Ιδιότητα Εναλλακτικά (1/3) Γιατί η μεταβατική ιδιότητα σε γράφους απαιτεί δύο (2) κατηγορήματα; Π.χ. road/2 για τις απευθείας ακμές και connected/2 για τις «μεταβατικές». connected(x,y):- road(x,y). connected(x,y):- road(x,z), connected(z,y). Γιατί δεν είναι εφικτός ο παρακάτω ορισμός; Η μείξη δηλαδή άμεσων και έμμεσων ακμών; road(a,b). road(b,c). road(x,y) :- road(x,z), road(z,y). 139

140 Κυκλική Αλληλεξάρτηση Δεδομένων Μεταβατική Ιδιότητα Εναλλακτικά (2/3) road(a,b). road(b,c). road(c,a). road(x,y) :- road(x,z), road(z,y). Ένας τέτοιος ορισμός θα έδινε σωστές απαντήσεις στην καταφατική περίπτωση, αλλά θα έπεφτε σε ατέρμονα βρόχο στην αρνητική περίπτωση. Ακριβώς όπως στην περίπτωση της αντιμεταθετικής ιδιότητας.?- road(a,c). yes?- road(a,c). {X=a,Y=c}?- road(a,z), road(z,c). {Z=b}?- road(b,c). 140

141 Κυκλική Αλληλεξάρτηση Δεδομένων Μεταβατική Ιδιότητα Εναλλακτικά (3/3) road(a,b). road(b,c). road(c,a). road(x,y) :- road(x,z), road(z,y).?- road(a,d). Θα έπρεπε να πάρουμε αρνητική απάντηση. Αντ αυτού η Prolog πέφτει σε ατέρμονα βρόχο.?- road(a,d). {X=a,Y=d}?- road(a,z), road(z,d). {X =b, Y =d} {Z=b}?- road(b,d).?- road(b,z), road(z,d). {Z =c}?- road(c,d). {X =c, Y =d}?- road(c,z), road(z,d).?- road(a,d). {Z =a} 141

142 Γενικό «Δίδαγμα» Όταν υπάρχει γράφος και αναδρομή καλό είναι τα κατηγορήματα που απεικονίζουν τις ακμές του γράφου (γεγονότα) να είναι διαχωρισμένα από τα αναδρομικά κατηγορήματα που διασχίζουν το γράφο. Παρ όλα αυτά δεν είναι δυνατόν πάντα να γλυτώσουμε τα προβλήματα με την αναδρομή. Π.χ. κυκλικά δεδομένα. Μια ακόμα περίπτωση είναι ο συνδυασμός αντιμεταθετικής και μεταβατικής ιδιότητας. 142

143 Συνδυασμός αντιμεταθετικήςμεταβατικής ιδιότητας (1/12) road1(a,b). road1(b,c). road1(c,d). road1(e,f). road2(x,y) :- road1(x,y). road2(x,y) :- road1(y,x). Το κατηγόρημα road1/2 είναι μονής κατεύθυνσης, ενώ το road2/2 αντιμεταθετικό. Το κατηγόρημα connected/2 είναι σωστό; Απαντάει ναι/όχι όταν πρέπει; connected(x,y):- road2(x,y). connected(x,y):- road2(x,z), connected(z,y). 143

144 Συνδυασμός αντιμεταθετικήςμεταβατικής ιδιότητας (2/12)?- connected(a,c).?- road2(a,z),connected(z,c). road1(a,b). road1(b,c).?- road1(a,z),connected(z,c). road1(c,d). {Z=b} road1(e,f).?- connected(b,c). road2(x,y) :- road1(x,y). road2(x,y) :- road1(y,x).?- road2(b,c). connected(x,y):- road2(x,y). connected(x,y):- road2(x,z), connected(z,y).?- road1(b,c). 144

145 Συνδυασμός αντιμεταθετικήςμεταβατικής ιδιότητας (3/12)?- connected(c,a). road1(a,b). road1(b,c). road1(c,d). road1(e,f). road2(x,y) :- road1(x,y). road2(x,y) :- road1(y,x). connected(x,y):- road2(x,y). connected(x,y):- road2(x,z), connected(z,y).?- road2(c,z),connected(z,a).?- road1(z,c),connected(z,a). {Z=b}?- connected(b,c).?- road2(b,c).?- road1(b,c). 145

146 Συνδυασμός αντιμεταθετικήςμεταβατικής ιδιότητας (4/12)?- connected(a,e).?- road2(a,z),connected(z,e). road1(a,b).?- road1(a,z),connected(z,e). road1(b,c). {Z=b} road1(c,d).?- connected(b,e). road1(e,f).?- road2(b,z),connected(z,e). road2(x,y) :- road1(x,y). road2(x,y) :- road1(y,x).?- road1(b,z),connected(z,e). connected(x,y):- road2(x,y). {Z=c} connected(x,y):- road2(x,z), connected(z,y).?- connected(c,e). 146

147 road1(a,b). road1(b,c). road1(c,d). Συνδυασμός αντιμεταθετικήςμεταβατικής ιδιότητας (5/12) Η Prolog εισέρχεται σε ατέρμονα βρόχο!?- connected(c,e).?- road2(c,z),connected(z,e).?- road1(c,z),connected(z,e). {Z=d}?- connected(d,e). road1(e,f). road2(x,y) :- road1(x,y).?- road2(d,z),connected(z,e). road2(x,y) :- road1(y,x). connected(x,y):- road2(x,y).?- road1(z,d),connected(z,e). connected(x,y):- road2(x,z), connected(z,y). {Z=c}?- connected(c,e). 147

148 Συνδυασμός αντιμεταθετικήςμεταβατικής ιδιότητας (6/12) Το πρόβλημα προκαλείται από την αντιμεταθετική ιδιότητα, η οποία δημιουργεί κυκλικά δεδομένα. 148

149 Συνδυασμός αντιμεταθετικήςμεταβατικής ιδιότητας (7/12) Λύση: Ο διαχωρισμός των κατηγορημάτων για την μεταβατική και αντιμεταθετική ιδιότητα. road(a,b). road(b,c). road(c,d). road(e,f). connected(x,y):- road(x,y). Γεγονότα ακμών απλής κατεύθυνσης. connected(x,y):- road(x,z), connected(z,y). Αναδρομική μεταβατική σχέση «έμμεσων» ακμών «μονής κατεύθυνσης». connected2(x,y):- connected(x,y). connected2(x,y):- connected(y,χ). Αντιμεταθετική σχέση «έμμεσων» ακμών. 149

150 Συνδυασμός αντιμεταθετικήςμεταβατικής ιδιότητας (8/12)?- connected2(a,c). road(a,b).?- connected(a,c). road(b,c). road(c,d).?- road(a,z),connected(z,c). road(e,f). {Z=b} connected2(x,y):- connected(x,y).?- connected(b,c). connected2(x,y):- connected(y,χ). connected(x,y):- road(x,y).?- road(b,c). connected(x,y):- road(x,z), connected(z,y). 150

151 Συνδυασμός αντιμεταθετικήςμεταβατικής ιδιότητας (9/12)?- connected2(c,a). road(a,b).?- connected(a,c). road(b,c).?- road(a,z),connected(z,c). road(c,d). {Z=b} road(e,f).?- connected(b,c). connected2(x,y):- connected(x,y). connected2(x,y):- connected(y,χ). connected(x,y):- road(x,y).?- road(b,c). connected(x,y):- road(x,z), connected(z,y). 151

152 Συνδυασμός αντιμεταθετικήςμεταβατικής ιδιότητας (10/12) Σημείο οπισθοδρόμησης?- connected2(a,e).?- connected(a,e). road(a,b).?- road(a,z),connected(z,e). road(b,c). {Z=b} road(c,d).?- connected(b,e). road(e,f). connected2(x,y):- connected(x,y).?- road(b,z),connected(z,e). connected2(x,y):- connected(y,χ). {Z=c} connected(x,y):- road(x,y).?- connected(c,e). connected(x,y):- road(x,z), connected(z,y). * 152

153 road(a,b). road(b,c). Συνδυασμός αντιμεταθετικήςμεταβατικής ιδιότητας (11/12)?- connected(c,e).?- road(c,z),connected(z,e). {Z=d}?- connected(d,e). road(c,d).?- road(d,z),connected(z,e). road(e,f). connected2(x,y):- connected(x,y). FAIL connected2(x,y):- connected(y,χ). connected(x,y):- road(x,y). connected(x,y):- road(x,z), connected(z,y). Οπισθοδρόμηση σε προηγούμενο σημείο της εκτέλεσης με εναλλακτική επιλογή. 153

154 road(a,b). road(b,c). road(c,d). Συνδυασμός αντιμεταθετικήςμεταβατικής ιδιότητας (12/12) Σημείο οπισθοδρόμησης?- connected2(a,e).?- connected(e,a).?- road(e,z),connected(z,a). {Z=f}?- connected(f,a). road(e,f).?- road(f,z),connected(z,a). connected2(x,y):- connected(x,y). connected2(x,y):- connected(y,χ). FAIL Δεν υπάρχει άλλο connected(x,y):- road(x,y). σημείο οπισθοδρόμησης. connected(x,y):- road(x,z), connected(z,y). no * 154

155 Γράφοι και Προβλήματα Αναδρομής Λύση στα προβλήματα της αναδρομής σε κυκλικούς γράφους μπορεί να δοθεί μόνο αν μπορέσουμε να «θυμόμαστε» με κάποιον τρόπο από ποια σημεία έχουμε «περάσει». Αυτό θα γίνει με τη βοήθεια κάποιων αναδρομικών δομών δεδομένων, όπως είναι οι λίστες. 155

156 Σημείωμα Αναφοράς Copyright, Νίκος Βασιλειάδης. «. Λογικός Προγραμματισμός: η γλώσσα Prolog: Εισαγωγή, Ιστορική Αναδρομή, Σύνταξη, Εκτέλεση Προγραμμάτων, Αναδρομή». Έκδοση: 1.0. Θεσσαλονίκη Διαθέσιμο από τη δικτυακή διεύθυνση:

157 Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά - Μη Εμπορική Χρήση - Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο [1]

158 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Τέλος ενότητας Επεξεργασία: Εμμανουήλ Ρήγας Θεσσαλονίκη, Εαρινό Εξάμηνο

159 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Σημειώματα

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

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

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

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

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

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

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

ΕΠΛ 434: Λογικός Προγραμματισμός ΕΠΛ 434: Λογικός Προγραμματισμός και Τεχνητή Νοημοσύνη Επισκ. Λέκτορας Λοΐζος Μιχαήλ Τμήμα Πληροφορικής ρ Πανεπιστήμιο Κύπρου (Χειμερινό Εξάμηνο 2008 2009) Προγράμματα στην Prolog Αλγόριθμος = Λογική +

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

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

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

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

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

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

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

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

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

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

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

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

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

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

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

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

Λογικός Προγραμματισμός Ασκήσεις Λογικός Προγραμματισμός Ασκήσεις Παναγιώτης Σταματόπουλος Τμήμα Πληροφορικής και Τηλεπικοινωνιών Περιεχόμενα 1. Α Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2008-09... 3 1.1 Άσκηση 1...

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

Εισαγωγή στις Βάσεις Δεδομζνων II

Εισαγωγή στις Βάσεις Δεδομζνων II ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΣΙΑ ΠΑΝΕΠΙΣΗΜΙΟ ΚΡΗΣΗ Εισαγωγή στις Βάσεις Δεδομζνων II Ενότητα: Λογική και Θεωρία Συνόλων Διδάσκων: Πηγουνάκης Κωστής ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΣΧΟΛΗ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ Άδειες Χρήσης

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

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

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

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

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

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

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

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

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

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

Λογικός Προγραμματισμός Ασκήσεις Λογικός Προγραμματισμός Ασκήσεις Παναγιώτης Σταματόπουλος Τμήμα Πληροφορικής και Τηλεπικοινωνιών Περιεχόμενα 1. Α Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2011-12... 3 1.1 Άσκηση 1...

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

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

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

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

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

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

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

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

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

PROLOG Εισαγωγή (PROgramming in LOGic)

PROLOG Εισαγωγή (PROgramming in LOGic) PROLOG Εισαγωγή (PROgramming in LOGic) Γλώσσα Λογικού Προγραμματισμού Βασίζεται στο Προτασιακό Λογισμό 1 ης τάξης Χρησιμοποιεί προτάσεις Horn αλγόριθμος = λογική + έλεγχος Μέσω της Prolog δίνουμε βάρος

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

Δομημένος Προγραμματισμός

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

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

HY Λογική Διδάσκων: Δ. Πλεξουσάκης Εαρινό Εξάμηνο. Φροντιστήριο 6

HY Λογική Διδάσκων: Δ. Πλεξουσάκης Εαρινό Εξάμηνο. Φροντιστήριο 6 HY-180 - Λογική Διδάσκων: Δ. Πλεξουσάκης Εαρινό Εξάμηνο 2015-2016 Φροντιστήριο 6 Α) ΘΕΩΡΙΑ Μέθοδος Επίλυσης (Resolution) Στη μέθοδο της επίλυσης αποδεικνύουμε την ικανοποιησιμότητα ενός συνόλου προτάσεων,

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

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

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

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

Λογική. Φροντιστήριο 3: Συνεπαγωγή/Ισοδυναμία, Ταυτολογίες/Αντινομίες, Πλήρης Αλγόριθμος Μετατροπής σε CNF

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

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

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

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

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

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

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

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

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

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

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

Λογικός Προγραμματισμός Ασκήσεις Λογικός Προγραμματισμός Ασκήσεις Παναγιώτης Σταματόπουλος Τμήμα Πληροφορικής και Τηλεπικοινωνιών Περιεχόμενα 1. Α Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2012-13... 3 1.1 Άσκηση 1...

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

2 n N: 0, 1,..., n A n + 1 A

2 n N: 0, 1,..., n A n + 1 A Θεωρία Υπολογισμού Ενότητα 5: Τεχνικές απόδειξης & Κλειστότητα Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

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

ΑΛΓΟΡΙΘΜΟΙ Ενότητα 10

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

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

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

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

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

Δομημένος Προγραμματισμός

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

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

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

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

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

Μαθηματικά. Ενότητα 3: Εξισώσεις και Ανισώσεις 1 ου βαθμού. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

Μαθηματικά. Ενότητα 3: Εξισώσεις και Ανισώσεις 1 ου βαθμού. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής Μαθηματικά Ενότητα 3: Εξισώσεις και Ανισώσεις 1 ου βαθμού Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

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

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

Κεφάλαιο 1. Εισαγωγή

Κεφάλαιο 1. Εισαγωγή Κεφάλαιο 1 Εισαγωγή Η λέξη Prolog προκύπτει ως συντομογραφία από τις γαλλικές λέξεις «PROgrammation en LOGique» ή κατ αντιστοιχία στην Αγγλική «PROgramming in LOGic» που σημαίνει «προγραμματισμός σε λογική».

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

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

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

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 7: Συναρτήσεις Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

K15 Ψηφιακή Λογική Σχεδίαση 3: Προτασιακή Λογική / Θεωρία Συνόλων

K15 Ψηφιακή Λογική Σχεδίαση 3: Προτασιακή Λογική / Θεωρία Συνόλων K15 Ψηφιακή Λογική Σχεδίαση 3: Προτασιακή Λογική / Θεωρία Συνόλων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Στοιχεία προτασιακής λογικής Περιεχόμενα

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

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

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

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

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

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

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

Λογική Δημήτρης Πλεξουσάκης Ασκήσεις στον Κατηγορηματικό Λογισμό Τμήμα Επιστήμης Υπολογιστών

Λογική Δημήτρης Πλεξουσάκης Ασκήσεις στον Κατηγορηματικό Λογισμό Τμήμα Επιστήμης Υπολογιστών Λογική Δημήτρης Πλεξουσάκης Ασκήσεις στον Κατηγορηματικό Λογισμό Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται στην άδεια χρήσης Creative Commons και ειδικότερα Αναφορά

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

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

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

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 13: Ελαχιστοποίηση αυτομάτων Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που

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

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

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

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

ΗΥ180: Λογική Διδάσκων: Δημήτρης Πλεξουσάκης. Φροντιστήριο 8 Επίλυση για Horn Clauses Λογικός Προγραμματισμός Τετάρτη 9 Μαΐου 2012

ΗΥ180: Λογική Διδάσκων: Δημήτρης Πλεξουσάκης. Φροντιστήριο 8 Επίλυση για Horn Clauses Λογικός Προγραμματισμός Τετάρτη 9 Μαΐου 2012 ΗΥ180: Λογική Διδάσκων: Δημήτρης Πλεξουσάκης Φροντιστήριο 8 Επίλυση για Horn Clauses Λογικός Προγραμματισμός Τετάρτη 9 Μαΐου 2012 Πληρότητα της μεθόδου επίλυσης Λήμμα: Αν κάθε μέλος ενός συνόλου όρων περιέχει

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

Πληρότητα της μεθόδου επίλυσης

Πληρότητα της μεθόδου επίλυσης Πληρότητα της μεθόδου επίλυσης Λήμμα: Αν κάθε μέλος ενός συνόλου όρων περιέχει ένα αρνητικό γράμμα, τότε το σύνολο είναι ικανοποιήσιμο. Άρα για να είναι μη-ικανοποιήσιμο, θα πρέπει να περιέχει τουλάχιστον

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

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

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

Δομές Δεδομένων. Ενότητα 13: B-Δέντρα/AVL-Δέντρα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων

Δομές Δεδομένων. Ενότητα 13: B-Δέντρα/AVL-Δέντρα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων Ενότητα 13: B-Δέντρα/AVL-Δέντρα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε

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

Μαθηματικά. Ενότητα 7: Μη Πεπερασμένα Όρια. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

Μαθηματικά. Ενότητα 7: Μη Πεπερασμένα Όρια. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής Μαθηματικά Ενότητα 7: Μη Πεπερασμένα Όρια Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

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

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

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

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

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

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

Τίτλος Μαθήματος. Ενότητα 1: Γενικά περί λογικού προγραμματισμού

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

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

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

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

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Cretive Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Cretive Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπ Θεωρία Υπολογισμού Ενότητα 11: Κλειστότητα, ΠΑ & καν. εκφράσεις Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Cretive Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

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

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Γλώσσες & Τεχνικές 4 ο Εξάμηνο. - Ενότητα 2 - Δημοσθένης Σταμάτης http://www.it.teithe.gr/~demos. Τμήμα Πληροφορικής

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Γλώσσες & Τεχνικές 4 ο Εξάμηνο. - Ενότητα 2 - Δημοσθένης Σταμάτης http://www.it.teithe.gr/~demos. Τμήμα Πληροφορικής Γλώσσες & Τεχνικές 4 ο Εξάμηνο - Ενότητα 2 - Γλώσσες Τεχνητής Νοημοσύνης Λογικός Προγραμματισμός - H Γλώσσα Prolog Δημοσθένης Σταμάτης http://www.it.teithe.gr/~demos Τμήμα Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ

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

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

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 11: Καθολική μηχανή Turing Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 4: Ισοδυναμία, διάταξη, άπειρα σύνολα Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

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

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

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

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

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

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

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

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

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

Μαθηματικά. Ενότητα 6: Ασκήσεις Ορίων Συνάρτησης. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

Μαθηματικά. Ενότητα 6: Ασκήσεις Ορίων Συνάρτησης. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής Μαθηματικά Ενότητα 6: Ασκήσεις Ορίων Συνάρτησης Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Βιομηχανικοί Ελεγκτές

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

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

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

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

Μεταγλωττιστές. Ενότητα 2: Τυπικές γλώσσες (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 18: Λήμμα Άντλησης για ΓΧΣ Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που

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

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

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

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

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

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

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 8: Πεπερασμένα Αυτόματα Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

Κεφάλαιο 2 Λογικός προγραμματισμός Υπολογισμός με λογική

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

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

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ PROLOG Ι. ΧΑΤΖΗΛΥΓΕΡΟΥ ΗΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ PROLOG Ι. ΧΑΤΖΗΛΥΓΕΡΟΥ ΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ PROLOG Ι. ΧΑΤΖΗΛΥΓΕΡΟΥ ΗΣ ΓΕΝΙΚΑ PROLOG PROgramming in LOGic Πρώτη υλοποίηση: Alain Colmerauer, Μασσαλία (Αρχή Επίλυσης, Εργασία R. Kowalski) εύτερη υλοποίηση: D. Warren, Εδιµβούργο

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

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

Αντικειμενοστραφής Προγραμματισμός Αντικειμενοστραφής Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ενότητα 3: Έλεγχος ροής και επαναλήψεις. Δρ. Χαράλαμπος Ζ. Πατρικάκης Τμήμα Ηλεκτρονικών Μηχανικών

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

Λογισμός 3. Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Λογισμός 3. Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

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

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

Σημειώσεις Λογικής I. Εαρινό Εξάμηνο Καθηγητής: Λ. Κυρούσης

Σημειώσεις Λογικής I. Εαρινό Εξάμηνο Καθηγητής: Λ. Κυρούσης Σημειώσεις Λογικής I Εαρινό Εξάμηνο 2011-2012 Καθηγητής: Λ. Κυρούσης 2 Τελευταία ενημέρωση 28/3/2012, στις 01:37. Περιεχόμενα 1 Εισαγωγή 5 2 Προτασιακή Λογική 7 2.1 Αναδρομικοί Ορισμοί - Επαγωγικές Αποδείξεις...................

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

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

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

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

Δομημένος Προγραμματισμός

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

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

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

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 5: Μη κανονικές γλώσσες Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

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

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

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

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

Μαθηματικά στην Πολιτική Επιστήμη:

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

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

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

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

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

Μαθηματικά. Ενότητα 2: Διαφορικός Λογισμός. Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη)

Μαθηματικά. Ενότητα 2: Διαφορικός Λογισμός. Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη) Μαθηματικά Ενότητα 2: Διαφορικός Λογισμός Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 4: Δομές Ελέγχου Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

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

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

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

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

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

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

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

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Διακριτά Μαθηματικά Ι Ενότητα 4: Θεωρία Μέτρησης Po lya Μέρος 1 Διδάσκων: Χ. Μπούρας (bouras@cti.gr) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Ηλεκτρονικοί Υπολογιστές II

Ηλεκτρονικοί Υπολογιστές II ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ηλεκτρονικοί Υπολογιστές II Ερωτήματα επιλογής SQL, σύζευξη, διάζευξη, NULL, ταίριασμα κειμένου Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης Άδειες

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

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα Ενότητα: Διανυσματικοί Χώροι και Υπόχωροι: Βάσεις και Διάσταση Ανδριανός Ε Τσεκρέκος Τμήμα Λογιστικής & Χρηματοοικονομικής

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

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

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

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

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

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

Αριθμητική Ανάλυση και Εφαρμογές

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Πεπερασμένες και Διαιρεμένες Διαφορές Εισαγωγή Θα εισάγουμε την έννοια των διαφορών με ένα

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

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

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

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

ΜΑΘΗΜΑ: Μεταγλωττιστές

ΜΑΘΗΜΑ: Μεταγλωττιστές Comment [h1]: Παράδειγμ α: https://ocp.teiath.gr/modules/ exercise/exercise_result.php?course=pey101&eurid=16 9 ΜΑΘΗΜΑ: Μεταγλωττιστές ΔΙΔΑΣΚΩΝ: Άγγελος Μιχάλας ΤΜΗΜΑ: Τμήμα Μηχανικών Πληροφορικής ΤΕ 1

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 5ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 Η ΕΝΤΟΛΗ for Με την εντολή for δημιουργούμε βρόχους επανάληψης σε

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

Λογική. Δημήτρης Πλεξουσάκης. Ασκήσεις 2ου Φροντιστηρίου: Προτασιακός Λογισμός: Κανονικές Μορφές, Απλός Αλγόριθμος Μετατροπής σε CNF/DNF, Άρνηση

Λογική. Δημήτρης Πλεξουσάκης. Ασκήσεις 2ου Φροντιστηρίου: Προτασιακός Λογισμός: Κανονικές Μορφές, Απλός Αλγόριθμος Μετατροπής σε CNF/DNF, Άρνηση Λογική Δημήτρης Πλεξουσάκης Ασκήσεις 2ου Φροντιστηρίου: Προτασιακός Λογισμός: Κανονικές Μορφές, Απλός Αλγόριθμος Μετατροπής σε CNF/DNF, Άρνηση Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης a. Το παρόν εκπαιδευτικό

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

Εφαρμογές της Λογικής στην Πληροφορική

Εφαρμογές της Λογικής στην Πληροφορική Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών Εθνικό Μετσόβιο Πολυτεχνείο Εφαρμογές της Λογικής στην Πληροφορική Ενότητα 2 Πέτρος Στεφανέας, Γεώργιος Κολέτσος Άδεια Χρήσης Το παρόν εκπαιδευτικό

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 9: Στατιστικά Διάταξης- Στατιστικά σε Μέσο Γραμμικό Χρόνο Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

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