Υπολογισιμότητα και Πολυπλοκότητα Computability and Complexity

Σχετικά έγγραφα
Υπολογισιμότητα και Πολυπλοκότητα Computability and Complexity

Υπολογισιμότητα και Πολυπλοκότητα Computability and Complexity

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

Θεώρημα Υπάρχουν υπολογίσιμες συναρτήσεις που δεν είναι πρωταρχικές αναδρομικές.

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

Μη επιλυσιμότητα I. Απόδειξη. Ορίζουμε # # =

Recursive and Recursively Enumerable sets I

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr

Μηχανές Turing (T.M) I

Απαρίθμηση ζευγών φυσικών αριθμών I. C(0, 0) = 0 C(2, 1) = 7 κωδικοποίηση κατά Cantor D 1 (7)=2, D 2 (7)=1 : αποκωδικοποίηση

Μη-Αριθμήσιμα Σύνολα, ιαγωνιοποίηση

Σύνολα, Σχέσεις, Συναρτήσεις

Το 10ο πρόβλημα του Hilbert I

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

Σχήματα McCarthy I. Το σχήμα McCarthy είναι ένα γενικότερο προγραμματιστικό σχήμα:

Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation

Υπολογίσιμες Συναρτήσεις

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

f(t) = (1 t)a + tb. f(n) =

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

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

Παραλλαγές και επεκτάσεις αυτομάτων I

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

Υπολογισιμότητα και Πολυπλοκότητα

Θεωρία Υπολογισμού και Πολυπλοκότητα

i) Για να δείξουμε την επιθυμητή ισότητα, δείχνουμε πως A B {A x : x B} και πως {A x : x B} A B. Για τον πρώτο εγκλεισμό, έστω a A B, δηλάδη a A και a

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

u v 4 w G 2 G 1 u v w x y z 4

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο

ιµελής Σχέση ιατεταγµένο ζεύγος (α, β): ύο αντικείµενα (όχι κατ ανάγκη διαφορετικά) σε καθορισµένη σειρά. Γενίκευση: διατεταγµένη τριάδα (α, β, γ), δι

Αναδρομικές Συναρτήσεις και Σχέσεις I

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 1: Μαθηματικό Υπόβαθρο

Α Δ Ι Θ Θ Α Ε Ι Μ :

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

Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνο ΣHMΜY

Λογική Πρώτης Τάξης. Γιώργος Κορφιάτης. Νοέµβριος Εθνικό Μετσόβιο Πολυτεχνείο

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

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

Σχέσεις. Διμελής Σχέση. ΣτοΊδιοΣύνολο. Αναπαράσταση

, για κάθε n N. και P είναι αριθμήσιμα.

Αυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών 6

HY118- ιακριτά Μαθηµατικά

ιακριτά Μαθηµατικά Ορέστης Τελέλης Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Σύνολα 1 / 36

Περιεχόμενα. Πρόλογος 3

Εισαγωγή στην Επιστήμη των Υπολογιστών

771 Η - Θεωρία Υπολογισµών και Αλγορίθµων

Εισαγωγή στην Επιστήμη των Υπολογιστών

771 Η - Θεωρία Υπολογισµών και Αλγορίθµων

ΗΥ118: Διακριτά Μαθηματικά - Εαρινό Εξάμηνο 2018 Τελική Εξέταση Ιουνίου Λύσεις

ΚΕΦΑΛΑΙΟ 3: Συνθήκες Αλυσίδων

Γνωριµία. ιακριτά Μαθηµατικά. Βιβλία Μαθήµατος. Επικοινωνία. ιδάσκων: Ορέστης Τελέλης. Ωρες γραφείου (502, Γρ.

Εισαγωγή στην Επιστήμη των Υπολογιστών

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

Θεωρία Υπολογισµού Theory of Computation

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών 5ο εξάμηνο ΣΕΜΦΕ

Π(n) : 1 + a + + a n = an+1 1 a 1. a 1. + a k+1 = ak+2 1

Σχεδίαση Γλωσσών Προγραμματισμού Λεξική Ανάλυση Ι. Εαρινό Εξάμηνο Lec 05 & & 26 /02/2019 Διδάσκων: Γεώργιος Χρ.

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

Θεωρία Γραφημάτων 5η Διάλεξη

10.1 Υπολογίσιμες συναρτήσεις και αναδρομικά σύνολα

Infinite Combinatorics

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

Blum Complexity. Αλγόριθμοι και Πολυπλοκότητα ΙΙ. Παναγιώτης Γροντάς. Δεκέμβριος

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 15: Διαγνωσιμότητα (Επιλυσιμότητα) ΙΙ

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

Τι είναι σύνολο; Ο ορισμός αυτός είναι σύμφωνος με τη διαισθητική μας κατανόηση για το τι είναι σύνολο

Δώστε έναν επαγωγικό ορισμό για το παραπάνω σύνολο παραστάσεων.

1 (6) 9 (6) 2 (3) 10 (9) 3 (6) 11 (6) 4 (8) 12 (6) 5 (6) 13 (8) 6 (5) 14 (6) 7 (6) 15 (11) 8 (8)

Περιεχόμενα. 1 Υπολογισιμότητα. Ιστορία - Εισαγωγή. Μαθηματικό Υπόβαθρο. LOOP: Μια απλή γλώσσα προγραμματισμού

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

Αλγεβρικές Δομές Ι. 1 Ομάδα I

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

Αριθμήσιμα σύνολα. Μαθηματικά Πληροφορικής 5ο Μάθημα. Παραδείγματα αριθμήσιμων συνόλων. Οι ρητοί αριθμοί

β) 3 n < n!, n > 6 i i! = (n + 1)! 1, n 1 i=1

Π(n) : 1 + a + + a n = αν+1 1

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

Θεωρία Υπολογισμού και Πολυπλοκότητα

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

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

Ποιές οι θεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιορισµοί των υπολογιστών ; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε (και γιατί);

Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές

Εισαγωγή στην Επιστήμη των Υπολογιστών

6 Συνεκτικοί τοπολογικοί χώροι

x (a 1 + a 2 ) mod 9, y (a 1 a 2 ) mod 9.

ψ φ2 = k χ φ2 = 4k χ φ1 = χ φ1 + χ φ2 + 3 = 4(k 1 + k 2 + 1) + 1 ψ φ1 = ψ φ1 + χ φ2 = k k = (k 1 + k 2 + 1) + 1

Θεωρία Υπολογισμού και Πολυπλοκότητα Διαγνωσιμότητα

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 3 : Γραφήματα & Αποδείξεις. Αλέξανδρος Τζάλλας

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος

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

Θεωρία Γραφημάτων 5η Διάλεξη

Μαθηματική Ανάλυση Ι


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

Παράδειγμα δομικής επαγωγής Ορισμός δομικής επαγωγής Συμβολοσειρές Γλώσσες Δυαδικά δένδρα Μαθηματικά Πληροφορικής 3ο Μάθημα Αρχικός συγγραφέας: Ηλίας

B = {x A : f(x) = 1}.

Τυχαιότητα (Randomness) I

HY118- ιακριτά Μαθηµατικά

Θεωρία Υπολογισμού. Ενότητα 5 : Λογικά Επιχειρήματα, Αλφάβητα & Γλώσσες (2/2) Αλέξανδρος Τζάλλας

Δώδεκα Αποδείξεις του. Θεμελιώδους Θεωρήματος της Άλγεβρας

Transcript:

και Πολυπλοκότητα Computability and Complexity Διδάσκων: Στάθης Ζάχος Επιμέλεια Διαφανειών: Μάκης Αρσένης CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Φεβρουάριος 2017 Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 1 / 329

Περιεχόμενα 1 Υπολογισιμότητα Ιστορία - Εισαγωγή Μαθηματικό Υπόβαθρο LOOP: Μια απλή γλώσσα προγραμματισμού Κωδικοποίηση LOOP-υπολογίσιμες και πρωταρχικές αναδρομικές συναρτήσεις Σταθερά σημεία Προγράμματα WHILE και μερικές αναδρομικές συναρτήσεις Μηχανές Turing και άλλα υπολογιστικά μοντέλα Σχήματα McCarthy. Στρατιγικές Υπολογισμού Θέση Church-Turing. Κανονική μορφή Kleene Μη επιλυσιμότητα. Θεωρία αναδρομικών συναρτήσεων Αναδρομικά και αναδρομικά αριθμήσιμα σύνολα Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 2 / 329 Μαντεία. Σχετική Υπολογισιμότητα. Αριθμητικές Σχέσεις

Ιστορία - Εισαγωγή Το πρόγραμμα του Leibni(t)z O Leibniz πρότεινε το εξής πρόγραμμα: 1 Να δημιουργηθεί μια τυπική γλώσσα (formal language), με την οποία να μπορούμε να περιγράψουμε όλες τις μαθηματικές έννοιες και προτάσεις. 2 Να δημιουργηθεί μια μαθηματική θεωρία (δηλαδή ένα σύνολο από αξιώματα και συμπερασματικούς κανόνες συνεπαγωγής), με την οποία να μπορούμε να αποδεικνύουμε όλες τις ορθές μαθηματικες προτάσεις. 3 Να αποδειχθεί ότι αυτή η θεωρία είναι συνεπής (consistent), (δηλαδή ότι η πρόταση A και όχι Α (A ^ A) δεν είναι δυνατόν να αποδειχθεί σ αυτή τη θεωρία). Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 3 / 329

Ιστορία - Εισαγωγή Το πρόγραμμα του Leibni(t)z Gottfried Wilhelm Leibniz Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 4 / 329

Ιστορία - Εισαγωγή Υλοποίηση Γλώσσα George Boole Gottlob Frege Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 5 / 329

Ιστορία - Εισαγωγή Υλοποίηση Ενιαία θεωρία Georg Cantor Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 6 / 329

Ιστορία - Εισαγωγή Μη συνέπεια της αφελούς συνολοθεωρίας Bertrand Russel Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 7 / 329

Ιστορία - Εισαγωγή Πρόγραμμα Hilbert, Συνέπεια David Hilbert Kurt Gödel Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 8 / 329

Ιστορία - Εισαγωγή Θέση (thesis) Church-Turing Θέση (thesis) Church-Turing Όλα τα γνωστά και άγνωστα μοντέλα της έννοιας υπολογίσιμος είναι μηχανιστικά ισοδύναμα (effectively equivalent). Alonzo Church Alan Turing Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 9 / 329

Ιστορία - Εισαγωγή Άλλα υπολογιστικά μοντέλα Stephen Kleene Emil Post Andrei Andreevich Markov, jr. Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 10 / 329

Ιστορία - Εισαγωγή Halting Problem Θεώρημα Το Halting Problem (HP) είναι μη αποκρίσιμο. Απόδειξη. 1 Έστω ότι π 0, π 1, π 2,... είναι μια μηχανιστική απαρίθμηση (effective enumeration) όλων των προγραμμάτων. 2 π : read(n); if π n (n) terminates then loop_forever else halt 3 Διαγωνιοποίηση. Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 11 / 329

Ιστορία - Εισαγωγή Υπολογισιμότητα Ορισμός Ένα σύνολο S λέγεται αποκρίσιμο ή υπολογίσιμο ή επιλύσιμο (decidable, computable, solvable) αν και μόνο αν υπάρχει ένας αλγόριθμος που σταματάει ή μια υπολογιστική μηχανή που δίνει έξοδο ναι για κάθε είσοδο α P S και έξοδο όχι για κάθε είσοδο α R S. Ορισμός Ένα σύνολο S λέγεται καταγράψιμο (με μηχανιστική γεννήτρια) (listable, effectively generatable) αν και μόνο αν υπάρχει μια γεννήτρια διαδικασία ή μηχανή που καταγράφει όλα τα στοιχεία του S. Στην, πιθανώς άπειρη, λίστα εξόδου επιτρέπονται οι επαναλήψεις και δεν υπάρχει περιορισμός για την διάταξη των στοιχείων. Παρατήρηση Το HP δεν είναι decidable είναι όμως listable. Απόδειξη: Dovetailing. Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 12 / 329

Ιστορία - Εισαγωγή Αυτοαναφορά Αυτή η πρόταση είναι ψευδής. Παράδοξο (αντινομία) του Russel: A = tx x R xu. Τότε A P A ή A R A? Τον κουρέα σε ένα χωριό που ξυρίζει όλους όσους δεν ξυρίζονται μόνοι τους, ποιός τον ξυρίζει; Μεταπαιχνίδι. Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 13 / 329

Ιστορία - Εισαγωγή Διαγωνιοποίηση A : n ˆ n boolean πίνακας d i = A ii, για κάθε i, με 1 ď i ď n. D i = 1 d i, για κάθε i, με 1 ď i ď n. Το διάνυσμα D δεν εμφανίζεται ούτε ως γραμμή, ούτε ως στήλη στην πίνακα A. Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 14 / 329

Ιστορία - Εισαγωγή Διαγωνιοποίηση και Halting Problem Μηχανιστική απαρίθμηση των προγραμμάτων με μία είσοδο: π 0, π 1, π 2,... Γράφουμε π x (y) Ó αν το x-οστό πρόγραμμα με είσοδο y P N τερματίζει. Διαφορετικά αν δεν τερματίζει γράφουμε π x (y) Ò. Έστω ότι υπάρχει πρόγραμμα halt(x, y) που λύνει το halting problem. π : read(n); if halt(n, n) then loop_forever else halt Di : π i = π π i (i) Óô π i (i) Ò Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 15 / 329

Ιστορία - Εισαγωγή Διαγωνιοποίηση και μη πληρότητα του Gödel Μηχανιστική απαρίθμηση των τύπων (στην αριθμητική Peano) με μία ελεύθερη μεταβλητή: ϕ 0, ϕ 1, ϕ 2,... Συνέπεια: Αν ϕ αποδείξιμος, τότε ϕ αληθής. Πληρότητα: Αν ϕ αληθής, τότε ϕ αποδείξιμος. ϕ(x) = δεν υπάρχει απόδειξη για ϕ x (x). Di : ϕ i = ϕ. ϕ i (i): δεν μπορεί να είναι ψευδής. Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 16 / 329

Ιστορία - Εισαγωγή Διαγωνιοποίηση και μη πληρότητα του Gödel Θεώρημα (μη πληρότητας, Gödel) Κάθε συνεπής αξι ματικοποίηση της αριθμητικής Peano είναι μη π ήρης. Σημεί ση: Δεν ισχύει το παραπάνω για την αριθμητική Presburger (που δεν έχει την πράξη *). Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 17 / 329

Μαθηματικό Υπόβαθρο Μαθηματική Επαγωγή P(n): ιδιότητα του n P N. Για να δείξουμε ότι P(n) είναι αληθής για κάθε n P N αρκεί να δείξουμε: 1 Επαγωγική Βάση: η ιδιότητα ισχύει για n = 0. 2 Επαγωγικό Βήμα: η ιδιότητα κληρονομείται από το n στο n + 1 (αν είναι αληθής για n θα είναι και για n + 1). P(0), @n(p(n) Ñ P(n + 1)) @np(n) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 18 / 329

Μαθηματικό Υπόβαθρο Συμβολοσειρές, αλφάβητα, γλώσσες Συμβολοσειρά (String) Μήκος συμβολοσειράς: w =# εμφανίσεων συμβόλων. Substring (υποσυμβολοσειρά) ε: κενή συμβολοσειρά, τ.ω. ε = 0. Πρόθεμα (prefix) Επίθεμα (suffix) *, παράθεση (concatenation) Αλφάβητο Σ Σ Γλώσσα L επί του Σ. Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 19 / 329

Μαθηματικό Υπόβαθρο Σύνολα A = tx P(x)u x R A : (x P A) Σύμβολα λογικής:, ^, _, Ñ, Ø, @, D A Ď B (υποσύνολο): @x(x P A Ñ x P B) A = B : A Ď B ^ B Ď A A B : (A = B) A Ă B (γνήσιο υποσύνολο) H (κενό σύνολο) Ένωση (union): A Y B = tx x P A _ x P Bu Τομή (intersection): A X B = tx x P A ^ x P Bu Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 20 / 329

Μαθηματικό Υπόβαθρο Σύνολα Διαφορά: AzB = tx x P A ^ x R Bu Συμμετρική Διαφορά: A B = (AzB) Y (BzA) Καρτεσιανό γινόμενο: A ˆ B = t(x, y) x P A ^ y P Bu Δυναμοσύνολο: Pow(A) = tb B Ď Au Σύνολο A B όλων των ολικών συναρτήσεων B Ñ A. A = πλήθος στοιχείων του A. Ιδιότητες (για πεπερασμένα σύνολα): A Y B ď A + B A ˆ B = A B Pow(A) = 2 A A B = A B Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 21 / 329

Μαθηματικό Υπόβαθρο Σύνολα - Αριθμησιμότητα Δύο (πιθανώς άπειρα) σύνολα A, B έχουν τον ίδιο πληθάριθμο ( A = B ) αν υπάρχει μια ένα-προς-ένα και επί απεικόνιση A Ñ B N, Z, Q, R Αριθμήσιμο σύνολο: υπάρχει μια ένα-προς-ένα και επί απεικόνιση από το N στο σύνολο αυτό. N = Z = Q N ˆ N = N (Cantor) Το R είναι μη αριθμήσιμο όπως και το διάστημα [0, 1) Pow(N) = R N Ñ N = N N = R N ˆ N Ñ N = N NˆN = N N = R N Ñ t0, 1u = Pow(N) = R Σ = N σύνολο όλων των γλωσσών L στο Σ = Pow(Σ ) = R Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 22 / 329

Μαθηματικό Υπόβαθρο Σχέσεις Ορισμός Μια διμελής σχέση R στο σύνολο A είναι ένα υποσύνολο του συνόλου A ˆ A: R Ď A ˆ A. Παρομοίως, για μία n-μελή σχέση: R Ď A ˆ... ˆ A. Για τις διμελείς σχέσεις, εισάγουμε τις παρακάτω έννοιες: R reflexive (ανακλαστική): @x P A : (x R x) R irreflexive (αν-ανακλαστική): @x P A : ( (x R x)) R symmetric (συμμετρική): @x, y P A : (x R y Ñ y R x) R asymmetric (ασυμμετρική): @x, y P A : (x R y Ñ (y R x)), π.χ. ă R antisymmetric (αντισυμμετρική): @x, y P A : (x R y ^ y R x Ñ x = y), π.χ. ď R transitive (μεταβατική): @x, y, z P A : (x R y ^ y R z Ñ x R z) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 23 / 329

Μαθηματικό Υπόβαθρο Σχέσεις Ορισμός R equivalence (ισοδυναμία): reflexive, symmetric, transitive. π.χ. = R partial order (μερική διάταξη): reflexive, antisymmetric, transitive. π.χ. ď, Ď Αν μια σχέση ισοδυναμίας επί του A, ονομάζουμε το σύνολο των ισοδύναμων στοιχείων με το x κλάση ισοδυναμίας του x και το σύνολο όλων των κλάσεων ισοδυναμίας συμβολίζεται με A/. Παράδειγμα Η ισοτιμία 5 είναι η σχέση ισοδυναμίας όπου x 5 y ô το 5 διαιρεί ακριβώς το x y. Οι κλάσεις ισοδυναμίας είναι: t0, 5, 10,...u, t1, 6, 11,...u, t2, 7, 12,...u, t3, 8, 13,...u, t4, 9, 14,...u Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 24 / 329

Μαθηματικό Υπόβαθρο Σχέσεις R +, transitive closure (μεταβατικό κλείσιμο) της R: η μικρότερη σχέση R 1 που περιέχει την R και είναι μεταβατική: 1 x R y ñ x R + y 2 x R + y ^ y R + z ñ x R + z 3 τίποτα άλλο δεν ανήκει στην R + εκτός από ό,τι προκύπτει από 1, 2 R, reflexive and transitive closure (ανακλαστικό και μεταβατικό κλείσιμο): R := R + Y t(x, x) x P Au Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 25 / 329

Μαθηματικό Υπόβαθρο Συναρτήσεις και Ισομορφισμοί Ορισμός Μια ολική συνάρτηση f από το σύνολο A στο σύνολο B (f : A Ñ B) είναι μία σχέση R Ď A ˆ B τέτοια ώστε για κάθε x P A να υπάρχει ακριβώς ένα y P B τέτοιο ώστε x R y. Το μοναδικό αυτό στοιχείο y για κάθε x συμβολίζουμε συνήθως ως f(x) ή fx ή f x. Ορισμός Μια μερική συνάρτηση f από το σύνολο A στο σύνολο B (f : A Ñ B) είναι μία σχέση R Ď A ˆ B τέτοια ώστε για κάθε x P A να υπάρχει το πολύ ένα y P B τέτοιο ώστε x R y. Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 26 / 329

Μαθηματικό Υπόβαθρο Συναρτήσεις και Ισομορφισμοί Ορισμός Μια συνάρτηση f : A Ñ B ονομάζεται injection (μονομορφισμός ή 1-1) αν @x 1, x 2 P A : (f(x 1 ) = f(x 2 ) ñ x 1 = x 2 ) Ορισμός Μια συνάρτηση f : A Ñ B ονομάζεται surjection (επιμορφισμός ή επί) αν @y P B : Dx P A : f(x) = y Ορισμός Μια ολική συνάρτηση ονομάζεται bijection (αμφιμονοσήμαντη αντιστοιχία) όταν είναι 1-1 και επί. Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 27 / 329

Μαθηματικό Υπόβαθρο Συναρτήσεις και Ισομορφισμοί Ορισμός Αλγεβρική δομή: M = xm, g 1,..., g n y, όπου M μη κενό σύνολο και g i πράξεις ή σταθερές. π.χ. N = xn, 0, Sy, R = xr, 0, +y Ορισμός Μια συνάρτηση f : M Ñ N ονομάζεται ομομορφισμός (homomorphism) όταν είναι 1-1 και συμβατή με τις πράξεις. π.χ. R + = xr +, 1, y, R = xr, 0, +y ln : R + Ñ R, ln(1) = 0, ln(a b) = ln(a) + ln(b) Ορισμός Ένας ισομορφισμός (isomorphism) είναι μια ολική συνάρτηση με τις ιδιότητες: 1-1, επί, ομομορφισμός. Παράδειγμα xn, +, y είναι ισομορφικό με xn/ 5, +, y. Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 28 / 329

Μαθηματικό Υπόβαθρο Γράφοι και δένδρα Ορισμός Ένας γράφος G = (V, E) αποτελείται από ένα πεπερασμένο σύνολο V κορυφών (ή κόμβων) και από ένα σύνολο E ακμών, δηλαδή ζευγών μεταξύ των παραπάνω κορυφών. π.χ. Για τον γράφο του σχήματος ισχύει: V = t1, 2, 3, 4, 5u, E = ttx, yu x + y = 4 _ x + y = 7u Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 29 / 329

Μαθηματικό Υπόβαθρο Γράφοι και δένδρα Ορισμός (Συνεκτικότητα) Ένας γράφος ονομάζεται συνεκτικός (connected) αν υπάρχει διαδρομή από οποιαδήποτε κορυφή του γράφου προς οποιαδήποτε άλλη κορυφή. Ο γράφος του προηγούμενου παραδείγματος δεν είναι συνεκτικός. Ορισμός Ένας κατευθυνόμενος γράφος (directed graph ή digraph) είναι ένας γράφος όπου οι ακμές δεν είναι απλά ζεύγη, αλλά διατετα μένα ζεύ η κορυφών. π.χ. { (a, b), (b, c), (c, b)}: a Ñ b Ô c Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 30 / 329

Μαθηματικό Υπόβαθρο Γράφοι και δένδρα I Ορισμός Ένας κύκλος (cycle) είναι μια κλειστή διαδρομή. Ορισμός (Ακυκλικότητα) Ένας γράφος ονομάζεται ακυκλικός (acyclic) αν δεν περιέχει κύκλους. Ορισμός Ένας γράφος ονομάζεται δένδρο (tree) αν είναι συνεκτικός και ακυκλικός. Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 31 / 329

Μαθηματικό Υπόβαθρο Γράφοι και δένδρα II Ορισμός Δένδρο με ρίζα ονομάζεται ένα δένδρο το οποίο έχει ρίζα, δηλαδή έναν κόμβο που δεν έχει προηγούμενο. Επιπλέον έννοιες: πρόγονοι (predecessors), απόγονοι (successors), γονείς (parents), παιδιά (children), φύλλα (leaves), εσωτερικοί κόμβοι (internal nodes). Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 32 / 329

LOOP: Μια απλή γλώσσα προγραμματισμού Περιγραφή της LOOP Δε χρειάζονται δηλώσεις (declarations) Τέσσερα ήδη αναθέσεων (assignments) Παρατήρηση: 0. 1 = 0, (x + 1). 1 = x for loop: for i := 1 to y do end x := 0, x := y, x := y + 1, x := y. 1 Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 33 / 329

LOOP: Μια απλή γλώσσα προγραμματισμού Παραδείγματα LOOP 1 Πρόγραμμα για x := y + z (δηλ. add(y, z)): x := y; for w := 1 to z do x := x + 1 end 2 x := y z (δηλ. mult(y, z)): x := 0; for w := 1 to z do x := add(x, y) end ( 3 x := y. z (δηλ. sub(y, z)): Παρατήρηση: y. z = x := y; for w := 1 to z do x := x. 1 end 4 if y = 0 then x := 0 else x := 1 (δηλ. ifnzero(y)): x := 0; z := 0; for w := 1 to y do x := z + 1 end 5 if y = 0 then x := 1 else x := 0 (δηλ. ifzero(y)): x := 0; x := x + 1; for w := 1 to y do x := 0 end # 0, y ă z y z, αλλιώς ) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 34 / 329

LOOP: Μια απλή γλώσσα προγραμματισμού Συντακτικά Διαγράμματα της LOOP I Variable: Assignment: Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 35 / 329

LOOP: Μια απλή γλώσσα προγραμματισμού Συντακτικά Διαγράμματα της LOOP II Program: Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 36 / 329

LOOP: Μια απλή γλώσσα προγραμματισμού Επαγωγή και Αναδρομή Η επαγωγή είναι: Μέθοδος απόδειξης A(0): Βάση @n : A(n) Ñ A(n + 1): Επαγωγικό βήμα Τρόπος ορισμού επαγωγικού πεδίου Αρχικά στοιχεία (initial objects) Πράξεις για κ είσιμο (closure operations) Για κάθε επαγωγικό πεδίο μπορούμε να αποδεικνύουμε ιδιότητες των αντικειμένων χρησιμοποιώντας τη μέθοδο της επαγωγής. Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 37 / 329

LOOP: Μια απλή γλώσσα προγραμματισμού Επαγωγή I Παραδείγματα: 1 N = το σύνολο των φυσικών αριθμών Αρχικό στοιχείο: 0 Πράξη για κλείσιμο: successor N = t0u Y tn + 1 n P Nu 2 Σ = το σύνολο όλων των strings του αλφάβητου Σ: αρχικά στοιχεία: ε, α για κάθε α P Σ πράξεις για κλείσιμο: concatenation 3 Σύνολο θεωρημάτων: αρχικά στοιχεία: αξιώματα πράξεις για κλείσιμο: συμπερασματικοί κανόνες (inference rules) 4 Σύνολο όρων σε μία μαθηματική θεωρία: αρχικά στοιχεία: σταθερές και μεταβλητές πράξεις για κλείσιμο: σύνθεση (composition) συναρτησιακών συμβόλων Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 38 / 329

LOOP: Μια απλή γλώσσα προγραμματισμού Επαγωγή II 5 Σύντακτικά ορθοί τύποι (καλώς, ορισμένοι, wff) σε μία θεωρία μόνο με το κατηγορηματικό σύμβολο = : αρχικά στοιχεία: τύποι της μορφής όρος 1 = όρος 2 πράξεις για κλείσιμο: της μορφής Φ, Φ ^ Ψ, Φ _ Ψ, Φ Ñ Ψ, Φ Ø Ψ, DxΦ, @xφ, όπου Φ, Ψ είναι τύποι και x είναι μεταβλητή. 6 Σύνολο προγραμμάτων LOOP: αρχικά στοιχεία: της μορφής x := 0, x := y, x := y + 1, x := y. 1 και το κενό πρόγραμμα. πράξεις για κλείσιμο: ; (παράθεση), for (βρόχος) 7 S 1 = t0u Y tn + 2 n P S 1 u 8 S 2 = t3, 5u Y t2n + m m, n P S 2 ^ n ă mu 9 S 3 = t0u Y tn + 2 n P S 3 u Y tn + 5 n P S 3 u Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 39 / 329

LOOP: Μια απλή γλώσσα προγραμματισμού Αναδρομή I Ορισμός Αναδρομικό πεδίο = Επαγωγικό πεδίο + Unique parsing Παραδείγματα: 1 N 2 Το Σ με τον παραπάνω ορισμό δεν είναι αναδρομικό. abb = conc(ab, b) = conc(a, bb) Όμως το Σ δεν είναι ουσι δώς διφορούμενο (inherently ambiguous). Με τον παρακάτω ορισμό το Σ είναι αναδρομικό: Σ = tεu Y twα w P Σ ^ α P Σu 3 Το S 1 είναι αναδρομικό ενώ το S 3 δεν είναι. π.χ. 10 = 0 + 2 + 2 + 2 + 2 = 0 + 5 + 5. Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 40 / 329

LOOP: Μια απλή γλώσσα προγραμματισμού Αναδρομή II 4 A = ta, ab, bau. Το A είναι επαγωγικό πεδίο αλλά ουσιωδώς διφορούμενο (μη αναδρομικό). π.χ. aba = conc(a, ba) = conc(ab, a). Σε αναδρομικά πεδία μπορούμε να ορίζουμε μονοσήμαντα συναρτήσεις χρησιμοποιώντας τη μέθοδο της αναδρομής: " 1 0! = 1 Παραγοντικό: (n + 1)! = n! (n + 1) $ & f(0) = 1 2 Ακολουθία Fibonacci: f(1) = 1 % f(n + 2) = f(n) + f(n + 1) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 41 / 329

LOOP: Μια απλή γλώσσα προγραμματισμού Αναδρομή III 3 Συνάρτηση παρόμοια με αυτή του Ackermann: 4 # x + 0 = x x + Sy = S(x + y) f(x, y, 0) = y + 1 f(x, y, 1) = x + y = x + 1 + 1 +... + 1 (y φορές) f(x, y, 2) = x y = x + x + x +... + x (y φορές) f(x, y, 3) = x y = x x x... x (y φορές) x f(x, y, 4) = x xx ή... (y φορές) # add(x, 0) = x add(x, Sy) = S(add(x, y)) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 42 / 329

LOOP: Μια απλή γλώσσα προγραμματισμού Αναδρομή IV 5 6 7 8 # x 0 = 0 x Sy = x + x y # x. 0 = x x. Sy = P(x. y), όπου P(n) = n. 1 # sg(0) = 0 sg(sx) = 1 ή sg(x) = x. P(x) # sg(0) = 1 sg(sx) = 0 ή sg(x) = 1. x Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 43 / 329

LOOP: Μια απλή γλώσσα προγραμματισμού Πρωταρχική αναδρομή I Σχήμα πρωταρχικής αναδρομής (scheme of primitive recursion): " f(x, 0) = g(x) f(x, Sy) = h(x, y, f(x, y)) Ορισμός Η κλάση των primitive recursive functions (πρωταρχικά αναδρομικών συναρτήσεων) P είναι η μικρότερη κλάση συναρτήσεων που: περιέχει τις εξής αρχικές συναρτήσεις: S, P, Z, U n i (για όλα τα n, i : 1 ď i ď n) και είναι κλειστή ως προς τα σχήματα σύνθεσης και πρωταρχικής αναδρομής. Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 44 / 329

LOOP: Μια απλή γλώσσα προγραμματισμού Πρωταρχική αναδρομή II Ορισμός Η κλάση των primitive recursive functions (πρωταρχικά αναδρομικών συναρτήσεων) P είναι η μικρότερη κλάση συναρτήσεων που: περιέχει τις εξής αρχικές συναρτήσεις: S, P, Z, U n i (για όλα τα n, i : 1 ď i ď n) και είναι κλειστή ως προς τα σχήματα σύνθεσης και πρωταρχικής αναδρομής. Διευκρινίσεις: S(x) = x + 1 (επόμενο) P(x) = x. 1 (προηγούμενο) Z(x) = 0 (μηδενική) U n i (x 1,..., x n ) = x i, 1 ď i ď n (προβολές) Σύνθεση: π.χ.: f(x, y) = g(h 1 (x, y), h 2 (x, y), h 3 (x, y)) Πρωταρχική αναδρομή: π.χ.: # f(0) = c f(sy) = h(y, f(y)) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Υπολ. & Πολυπλ. Φεβρουάριος 2017 45 / 329