Γνωριµία. Θεωρία Υπολογισµού: Εισαγωγικά. Αντικείµενο Μαθήµατος. Επικοινωνία.

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

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

Σύνοψη Προηγούµενου. Κανονικές Γλώσσες (1) Προβλήµατα και Γλώσσες. Σε αυτό το µάθηµα. ιαδικαστικά του Μαθήµατος.

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

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

Θεωρία Υπολογισμού και Πολυπλοκότητα ΕΙΣΑΓΩΓΉ ΣΤΟ ΜΑΘΗΜΑ

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

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.

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

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

Η NTM αποδέχεται αν µονοπάτι στο δέντρο που οδηγεί σε αποδοχή.

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

Στοιχεία Θεωρίας Υπολογισµού (2): Πεπερασµένα Αυτόµατα, Κανονικές Εκφράσεις

Σύνοψη Προηγούµενου. Γλώσσες χωρίς Συµφραζόµενα (2) Ισοδυναµία CFG και PDA. Σε αυτό το µάθηµα. Αυτόµατα Στοίβας Pushdown Automata

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

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

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

Μια TM µπορεί ένα από τα δύο: να αποφασίζει µια γλώσσα L. να αναγνωρίζει (ηµιαποφασίζει) µια γλώσσα L. 1. Η TM «εκτελεί» τον απαριθµητή, E.

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

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

Υπολογιστικό Πρόβληµα

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

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

Σύνοψη Προηγούµενου. Γλώσσες χωρίς Συµφραζόµενα (2): Αυτόµατα Στοίβας. Παραδείγµατα Σχεδιασµού CFG. Παράδειγµα 1.

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

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

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος στη δεύτερη έκδοση

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

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

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

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

Αποφασισιµότητα / Αναγνωρισιµότητα. Μη Επιλύσιµα Προβλήµατα. Η έννοια της αναγωγής. Τερµατίζει µια δεδοµένη TM για δεδοµένη είσοδο;

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 2

HY118- ιακριτά Μαθηµατικά. Παράδειγµα. Από τα συµπεράσµατα στις υποθέσεις Αποδείξεις - Θεωρία συνόλων. Από τις υποθέσεις στα συµπεράσµατα...

Θεώρηµα: Z ( Απόδειξη: Περ. #1: Περ. #2: *1, *2: αποδεικνύονται εύκολα, διερευνώντας τις περιπτώσεις ο k να είναι άρτιος ή περιττός

Σειρά Προβλημάτων 4 Λύσεις

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3

Φροντιστήριο 10 Λύσεις

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

ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ

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

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

Στοιχεία Προτασιακής Λογικής

Ανω Φράγµα στην Τάξη των Συναρτήσεων. Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων. Παράδειγµα (1/2) O( g(n) ) είναι σύνολο συναρτήσεων:

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

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

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

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

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

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

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

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

Σύνοψη Προηγούµενου. Κανονικές Γλώσσες (3) Παραδείγµατα µε Κανονικές Εκφράσεις. Σε αυτό το µάθηµα.

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

ιαιρετότητα Στοιχεία Θεωρίας Αριθµών «Ο Αλγόριθµος της ιαίρεσης» Αριθµητική Υπολοίπων 0 r < d και a = d q +r

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

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

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

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

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

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

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

Σε αυτό το µάθηµα. Εισαγωγή στις Μηχανές Turing. Μηχανή Turing (Turing Machine - TM) Μηχανές Turing. Παραδείγµατα Μηχανών Turing

Γλώσσες Χωρίς Συμφραζόμενα

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

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

Θεωρια Αριθµων Προβληµατα

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

Θεωρία Υπολογισμού Αλφάβητα, Γλώσσες, Κανονικές Εκφράσεις

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών

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

CSC 314: Switching Theory

Εισαγωγικά. 1 η Εβδομάδα. Κάθε Τρίτη (17:00-20:00) και Τετάρτη (13:00 15:00) στην αίθουσα Ι5. 4 ώρες Θεωρία (ΤΡ : 1η-2η ώρα, ΤΕ : 1η-2η ώρα)

Μοντελοποίηση Υπολογισμού. Γραμματικές Πεπερασμένα Αυτόματα Κανονικές Εκφράσεις

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

Μονοπάτια και Κυκλώµατα Euler. Στοιχεία Θεωρίας Γραφηµάτων (3,4) Παραδείγµατα. Κριτήρια Υπαρξης.

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

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

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

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

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

Σχόλιο. Παρατηρήσεις. Παρατηρήσεις. p q p. , p1 p2

11.1 Συναρτήσεις. ΚΕΦΑΛΑΙΟ 11: Θεωρία υπολογισµών

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιµότητα. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Chapter 7, 8 : Time, Space Complexity

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

1 Συνοπτική ϑεωρία. 1.1 Νόµοι του Προτασιακού Λογισµού. p p p. p p. ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Τµήµα Επιστήµης Υπολογιστών

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

Σειρά Προβλημάτων 4 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις

Κανονικές Γλώσσες. Κανονικές Γλώσσες. Κανονικές Γλώσσες και Αυτόματα. Κανονικές Γλώσσες και Αυτόματα

ΗΥ118: Διακριτά Μαθηματικά Εαρινό εξάμηνο 2016 Λύσεις ασκήσεων προόδου

Αποφασισιµότητα. HY118- ιακριτά Μαθηµατικά. Βασικές µέθοδοι απόδειξης. 07 -Αποδείξεις. ιακριτά Μαθηµατικά, Εαρινό εξάµηνο 2017

Μη κατευθυνόµενα γραφήµατα. Στοιχεία Θεωρίας Γραφηµάτων (1) Υπογραφήµατα.

Γλώσσες που περιγράφονται από Κανονικές Εκφράσεις

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

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

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

Γλώσσες Χωρίς Συμφραζόμενα

Transcript:

Γνωριµία Θεωρία Υπολογισµού: Εισαγωγικά Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς ιδάσκων: Ορέστης Τελέλης e-mail: telelis@unipi.gr Ωρες γραφείου (502, Γρ.Λαµπράκη 126): ευτέρα 13:00 15:00 Τετάρτη 13:30 15:00 Πέµπτη 13:00-15:00 Και κατόπιν συνεννόησης Ωρες µαθήµατος: Τετάρτη 10.15 13:00, Αίθουσα ΓΛ203 Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 1 / 31 Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 2 / 31 Επικοινωνία Αντικείµενο Μαθήµατος Ιστοσελίδα µαθήµατος: https://evdoxos.ds.unipi.gr/courses/ds227/ (ϑα χρειαστεί να κάνετε login στο σύστηµα Evdoxos) Θέµατα και υλικό σχετικά µε το µάθηµα... ΙΑΛΕΞΕΙΣ ΑΝΑΚΟΙΝΩΣΕΙΣ ΕΚΦΩΝΗΣΕΙΣ ΕΡΓΑΣΙΩΝ ΠΑΡΑ ΟΣΗ ΕΡΓΑΣΙΩΝ ΒΟΗΘΗΤΙΚΟ ΥΛΙΚΟ Ποιές είναι οι ϑεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιοριµοί των υπολογιστών; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε; Γιατί; Από τα προβλήµατα που µπορούµε να υπολογίσουµε: Ποιά είναι «υπολογιστικώς» εύκολα; Ποιά είναι «υπολογιστικώς» δύσκολα; Γιατί; Πρέπει πρώτα να συµφωνήσουµε στον ορισµό του υπολογιστή. (και στον ορισµό του «προβλήµατος» ). Ισοδύναµα στους ορισµούς: του Αλγορίθµου. του Προγράµµατος. Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 3 / 31 Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 4 / 31

Μαθηµατικά Εργαλεία Συγγράµµατα Στοιχειώδεις Ορισµοί και Μεθόδοι ιακριτών Μαθηµατικών Σύνολα, Σχέσεις, Συναρτήσεις. Εκτίµηση Πολυπλοκότητας Αλγορίθµων. Αποδεικτικές Μέθοδοι: Επαγωγή, Απαγωγή σε Ατοπο. Συνδυαστικές Μέθοδοι και Επιχειρήµατα. M. Sipser. Εισαγωγή στη Θεωρία Υπολογισµού (Μεταφρασµένο 2η Εκδοση). Πανεπιστηµιακές Εκδόσεις Κρήτης, 2007. Η ϑεµελίωση της Θεωρίας Υπολογισµού δεν απαιτεί εξειδικευµένες µαθηµατικές γνώσεις. Οδηγεί όµως σε ϐαθιά µαθηµατικά αποτελέσµατα. Κατ εξοχήν προαπαιτούµενα: Η πειθαρχία στην τυπική σκέψη και στους ορισµούς. H. R. Lewis, C. H. Papadimitriou. Στοιχεία Θεωρίας Υπολογισµού (Μεταφρασµένο). Εκδόσεις Κριτική, 2005. Η διάθεση για εφευρετικό διανοητικό πειραµατισµό µε τους ορισµούς. Η περιέργεια για τη ϕύση του υπολογισµού. Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 5 / 31 Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 6 / 31 Συγγράµµατα Επιπλέον Πηγές Σηµειώσεις: οι διαφάνειες είναι ϐασισµένες κατ εξοχήν στο ϐιβλίο του M. Sipser και δευτερευόντως στων Lewis και Papadimitriou. Η περισσότερο αποδεκτή ορολογία στα ελληνικά είναι αυτή του ϐιβλίου των Lewis, Papadimitriou. C. H. Papadimitriou. Computational Complexity. Addison-Wesley, 1995. Μια αντιστοίχιση των όρων από τη σελίδα του Καθηγητή Σ. Κολλιόπουλου, για το αντίστοιχο µάθηµα στο ΕΚΠΑ: http://cgi.di.uoa.gr/ sgk/teaching/toc/glwssari-sipser.pdf M. R. Garey, D. S. Johnson. Computers and Intractability: A Guide to the Theory of NP-Completeness. W. H. Freeman & Co., 1979. Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 7 / 31 Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 8 / 31

ιαδικαστικά Εργαστήρια: Μελέτη και επίλυση ασκήσεων που εµπλέκουν Ασκήσεις Κατασκευές υπολογιστικών µοντέλων. Ανάλυση της λειτουργίας τους. Προσοµοιώσεις µε λογισµικό. Μία Προγραµµατιστική Εργασία ( Π ). ( 20 30% ) 1-2 Σειρές Θεωρητικών Ασκήσεων ( Θ, ). ( 10% έκαστη ) Γραπτή Εξέταση ( Ε ). ( 70% ) Βαθµολογία ( Β ): B 0 = Τελικός Βαθµός: Β = 0.7 Ε + 0.3 Π + 0.1 Θ { min{ 10, B0 }, αν Ε 4 min{ 4, B 0 }, αν Ε < 4 Αντικείµενο Μαθήµατος Μοντέλα Υπολογιστικών Μηχανών. Πεπερασµένα Αυτόµατα (Ντετερµινιστικά, Μη ντετερµινιστικά). Αυτόµατα Στοίβας. Γλώσσες και Γραµµατικές. Μηχανές Turing.. Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε µε τα παραπάνω υπολογιστικά µοντέλα; Πολυπλοκότητα. Πόσο δύσκολα είναι τα προβλήµατα υπολογισµού; Γιατί κάποια προβλήµατα είναι πιο δύσκολα από άλλα; Πώς κατηγοριοποιούµε τα προβλήµατα ως προς τη δυσκολία τους; Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 9 / 31 Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 10 / 31 Αντικείµενο Μαθήµατος 1. Αυτόµατα Πεπερασµένα Αυτόµατα. (Finite Automata) Κανονικές Γλώσσες. (Regular Languages) Μη ντετερµινισµός. Αυτόµατα Στοίβας. (Pushdown Automata) Γλώσσες Ελεύθερες Συµφραζοµένων. (Context-Free Languages) 2. Μηχανές Turing Ορισµός και Παραλλαγές. Αποφασισιµότητα Γλωσσών. 3. Πολυπλοκότητα Οι κλάσεις P και NP NP-πληρότητα, NP-δυσκολία. Πρόβληµα P vs. NP Κάθε µία από τις περιοχές 1, 2, 3 ερµηνεύει το ερώτηµα διαφορετικά. Πρακτικά Οφέλη Τί κερδίζετε από την εµπειρία του µαθήµατος αυτού: Αυξηµένη αντίληψη στον προγραµµατισµό εφαρµογών. Για την ορθότητα του προγραµµατισµού µικρών επί µέρους λειτουργιών. Για την υπολογιστική εφικτότητα του (προγραµµατιστικού) στόχου σας. Για την ενδογενή υπολογιστική ευκολία ή δυσκολία του στόχου µας. Εµπειρία µε τις Κανονικές Εκφράσεις: που απαντώνται σαν εργαλεία σε πολλές σύγχρονες γλώσσες (Python, Ruby, Java, C++). που απαντώνται σε πολλά εργαλεία κελύφους του UNIX, Linux. Αντίληψη του Σχεδιασµού και της Υπολογιστικής Λειτουργίας: των Γλωσσών Προγραµµατισµού. των µεταγλωττιστών. Εµπειρία στον τυπικό σχεδιασµό και τη µελέτη συστηµάτων γενικά. Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 11 / 31 Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 12 / 31

Πολυπλοκότητα Μελέτη των επιλύσιµων υπολογιστικών προβληµάτων. Κάποια από αυτά είναι εύκολα και κάποια είναι δύσκολα. Πολυπλοκότητα Ταξινόµηση n ακεραίων αριθµών (εύκολο): Π.χ., αλγόριθµος BubleSort: O(n 2 ) χρόνος. Π.χ., αλγόριθµος MergeSort: O(n log n) χρόνος. Οι περισσότεροι αλγόριθµοι απαιτούν O(n) χώρο (µνήµη). Μπορεί να γίνει σε λιγότερο από χρόνο ανάλογο του n; Ωρολόγιο Πρόγραµµα Μαθηµάτων Πανεπιστηµίου (δύσκολο): Από όλες τις δυνατές αντιστοιχίσεις µαθηµάτων σε (αίθουσες χρονικά διαστήµατα) µέσα στην εβδοµάδα, επίλεξε µία χωρίς συγκρούσεις εξαµήνων, διδασκόντων, εργαστηρίων, κ.λ.π. Πόσο χρόνο απαιτεί; Ευριστικές «εξυπνάδες» ϐοηθούν, αλλά όχι στη χειρότερη περίπτωση. Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 13 / 31 Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 14 / 31 Πολυπλοκότητα Πολυπλοκότητα Τί είναι αυτό που κάνει κάποια υπολογιστικά προβλήµατα δύσκολα και κάποια άλλα εύκολα; Από την εµπειρία µας: οι πόροι που απαιτούνται για την επίλυσή τους. Ο χρόνος εκτέλεσης του υπολογισµού (ενός αλγορίθµου). Ο χώρος (µνήµη) που απαιτεί η εκτέλεση του υπολογισµού (αλγορίθµου). Η (εµπειρική) δυσκολία µας να ϐρούµε αλγόριθµο µε ϕθηνές απαιτήσεις σε πόρους. Το γεγονός ότι γνωρίζουµε αλγόριθµο µε ϕθηνές απαιτήσεις σε πόρους. Εύρεση Συνδετικού Μονοπατιού µεταξύ δύο κόµβων σε γράφηµα (εύκολο πώς γίνεται;) Σχετικό Πρόβληµα Βελτιστοποίησης: Συντοµότερο Μονοπάτι µεταξύ δύο κόµβων σε γράφηµα. (Shortest Path Problem) Εύρεση Κύκλου Hamilton σε γράφηµα (δύσκολο). Σχετικό Πρόβληµα Βελτιστοποίησης: Το Πρόβληµα του Περιοδεύοντος Πωλητή (Traveling Salesman Problem -- TSP) Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 15 / 31 Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 16 / 31

Το 1900 ο David Hilbert (1862 1943) διατύπωσε 23 διάσηµα µαθηµατικά προβλήµατα, στο διεθνές συνέδριο µαθηµατικών στο Παρίσι. Μεταξύ αυτών : Το 10ο πρόβληµα του Hilbert Να διατυπωθεί µια διαδικασία, σύµφωνα µε την οποία : να µπορεί να διαπιστωθεί, µε πεπερασµένο πλήθος πράξεων, αν ένα δεδοµένο πολυώνυµο (πολλών µεταβλητών) µε ακέραιους συντελεστές έχει ακέραιες ϱίζες. ηλαδή: Να δοθεί αλγόριθµος (πρόγραµµα) που, µε είσοδο ένα πολυώνυµο µε ακέραιους συντελεστές, να δίνει έξοδο «ΝΑΙ», αν αυτό έχει ακέραιες ϱίζες, και «ΟΧΙ», αν δεν έχει ακέραιες ϱίζες. (Τί είναι αλγόριθµος ;) Ο. Τελέλης Θεωρία Υπολογισµού : Εισαγωγικά 17 / 31 Ο. Τελέλης Θεωρία Υπολογισµού : Εισαγωγικά 18 / 31 Το 4ο πρόβληµα του Hilbert Να αποδειχθεί ότι η αριθµητική µε τα αξιώµατα που την απαρτίζουν είναι σύνεπης, δηλαδή ελεύθερη από εσωτερικές αντιφάσεις. Οτι δηλαδή ένας ορισµένος αριθµός από λογικά ϐήµατα (συνεπαγωγές), ϐασισµένος στα αξιώµατα αυτά, δεν οδηγεί σε αντιφατικό αποτέλεσµα. Το 1970 ο Yuri Matiyasevich απέδειξε πως δεν υπάρχει αλγόριθµος για το 10ο πρόβληµα του Hiblert. Μερικά από τα αξιώµατα της αριθµητικής : Το 0 είναι ϕυσικός αριθµός. Για κάθε ϕυσικό αριθµό, x: x = x. Για κάθε δύο ϕυσικούς αριθµούς x και y, αν x = y, τότε y = x. Μεταβατική ιδιότητα της ισότητας. (Τί είναι αλγόριθµος ;)... Ο. Τελέλης Θεωρία Υπολογισµού : Εισαγωγικά 19 / 31 Ο. Τελέλης Θεωρία Υπολογισµού : Εισαγωγικά 20 / 31

Entscheidungsproblem (D. Hilbert, 1928) Ο Kurt Godel (1906 1978) απέδειξε το 1930 ότι αυτό είναι ανέφικτο, µε το περίφηµο Θεώρηµα της µη Πληρότητας. Το ϑεώρηµα διατυπώνει ότι σε ένα συνεπές σύστηµα υπάρχουν αληθείς προτάσεις που δε µπορούν να αποδειχτούν εντός του συστήµατος αυτού, οι ίδιες ή η άρνησή τους. Σε ελέυθερη απόδοση: «Τα αξιωµατικά συστήµατα των µαθηµατικών δεν είναι συνεπή!!!» Να διατυπωθεί µια διαδικασία, που δέχεται σαν είσοδο µία πρόταση P σε Λογική 1ης Τάξης, πιθανώς µαζί µε ένα πεπερασµένο πλήθος αξιωµάτων, πέρα από τα συνήθη αξιώµατα της Λογικής 1ης Τάξης, και να αποφασίζει σε πεπερασµένο πλήθος ϐηµάτων αν η P είναι αληθής (δίνοντας έξοδο «ΝΑΙ») σε κάθε δοµή που ικανοποιεί τα αξιώµατα, ή ψευδής (δίνοντας έξοδο «ΟΧΙ»). Απλοποιηµένη ιατύπωση: Να δοθεί αλγόριθµος (πρόγραµµα) που αποφασίζει την αλήθεια (ή µη) µιας µαθηµατικής πρότασης, σε πεπερασµένο πλήθος ϐηµάτων. ηλαδή: Να αυτοµατοποιηθούν τα µαθηµατικά (!!!) (Τί είναι αλγόριθµος;) Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 21 / 31 Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 22 / 31 Προβλήµατα και Γλώσσες Μελετάµε Προβλήµατα Απόφασης. Ζητείται ο σχεδιασµός αλγορίθµου που αποφασίζει «ΝΑΙ» ή «ΟΧΙ». Η (κυρίως, µη) ύπαρξη αλγορίθµου είναι αντικείµενο της ς. Οι ελάχιστες απαιτήσεις σε πόρους των δυνατών αλγορίθµων είναι αντικείµενο της Πολυπλοκότητας. Ο Alonzo Church (1903 1995) απέδειξε το 1936, ότι το Entscheidungsproblem είναι αδύνατον, µέσω του υπολογιστικού συστήµατος λ-λογισµού που ανέπτυξε. Ο Alan Turing (1912 1954) απέδειξε λίγο αργότερα, εντός του 1936, ότι το Entscheidungsproblem είναι αδύνατον, µέσω της Μηχανής που ανέπτυξε. Η Θέση των Church και Turing: «αλγόριθµος είναι» ο λ-υπολογισµός και η Μηχανή Turing. Παράδειγµα: Κύκλος Hamilton σε γράφηµα. 1 Πρόβληµα Εύρεσης: Να περιγραφεί αλγόριθµος που υπολογίζει έναν κύκλο Hamilton, σε γράφηµα εισόδου, G(V, E), αν αυτός ο κύκλος υπάρχει. 2 Πρόβληµα Απόφασης: Να περιγραφεί αλγόριθµος που, για είσοδο ένα γράφηµα G(V, E), να απαντά «ΝΑΙ» ή «ΟΧΙ», αν το G έχει, ή δεν έχει κύκλο Hamilton, αντιστοίχως. Αν λύσουµε το 1, αυτοµάτως έχουµε λύσει και το 2. Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 23 / 31 Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 24 / 31

Προβλήµατα και Γλώσσες Αλφάβητο και Λέξεις Τα προβλήµατα απόφασης µπορούν να περιγραφούν µε τυπικές γλώσσες. Οι γλώσσες είναι σύνολα λέξεων. Μια λέξη είναι µια ακολουθία συµβόλων από ένα δεδοµένο αλφάβητο. Χρησιµοποιούµε λέξεις για να περιγράψουµε την είσοδο µηχανές των υπολογιστικών µας µοντέλων. εδοµένης µιας λέξης, οι µηχανές ϑα απαντούν: «ΝΑΙ», αν η λέξη ανήκει στη γλώσσα. «ΟΧΙ», διαφορετικά. Εποµένως: Γλώσσα Πρόβληµα (απόφασης) και Λέξη Είσοδος. Αλφάβητο: πεπερασµένο, µη κενό σύνολο από σύµβολα. Π.χ., Σ = { 0, 1 }, Σ = { a, b, c }. Η ακόµα: Σ = { while, void, int, for, if... } Λέξη/Συµβολοσειρά: πεπερασµένη ακολουθία συµβόλων του αλφαβήτου Σ. Π.χ., 0 1 0 1 1, a b b b c a, ή ένα πρόγραµµα σε C (ή Java, ή C++,... ) Μήκος λέξης: πλήθος συµβόλων της λέξης, συµβ. µε w. Κενή Λέξη: Λέξη µηδενικού µήκους, συµβολίζεται µε ɛ. Σ k : σύνολο λέξεων µήκους k που αποτελούνται από σύµβολα του Σ. { 0, 1 } 2 = { 00, 01, 10, 11 }. { a, b, c }2 = { ab, bc, ac, ca, cb, ba }. Σ : σύνολο όλων των λέξεων επί του Σ: Σ = k N Σk Π.χ., { 0, 1 } = { ɛ, 0, 1, 00, 01, 10, 11, 000, 001,... }. Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 25 / 31 Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 26 / 31 Πράξεις µε Λέξεις Τυπικές Γλώσσες Παράθεση των x και y: x y ή απλώς xy. Π.χ., παράθεση των 010 και 10 δίνει 01010. Επανάληψη της λέξης w k ϕορές: w k = k ϕορές {}}{ w w w. Αντίστροφη w R της λέξης w: προκύπτει γράφοντας την w από το τέλος προς την αρχή. Π.χ., (100) R = 001, (abcc) R = ccba. Παλινδροµική λέξη w αν w = w R : π.χ., (010) R = 010. Για κάθε δύο λέξεις x και y είναι (x y) R = y R x R. Η x είναι υπολέξη της w αν w = y x z. Μπορεί να είναι y = ɛ ή z = ɛ (ή και τα δύο). Τυπική Γλώσσα L επί του αλφαβήτου Σ: Ενα συγκεκριµένο υποσύνολο του Σ. Με άπειρο ή πεπερασµένο πλήθος συµβολοσειρών (λέξεων) - αριθµήσιµο. Μερικά παραδείγµατα γλωσσών επί του αλφαβήτου Σ = { 0, 1, 2 }: L 1 = { 012, 120, 201, 210, 102, 021 } = Σ 3 L 2 = { ɛ, 0, 00, 000,... } L 3 = { w Σ : το τελευταίο ψηφίο του w είναι 1 }. L 4 = { } = (η κενή γλώσσα). L 5 = { ɛ } η γλώσσα που περιέχει µόνο την κενή λέξη. L 6 = { w : w συντακτικά ορθό πρόγραµµα σε C } = Γλώσσα C Κάθε συντακτικά ορθό πρόγραµµα είναι µία λέξη της γλώσσας. Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 27 / 31 Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 28 / 31

Πράξεις µε Γλώσσες Πράξεις Συνόλων: ένωση, τοµή, διαφορά, συµπλήρωµα. Παράθεση γλωσσών L 1 και L 2 επί του αλφαβήτου Σ : L 1 L 2 = { w Σ : w = x 1 x 2, για x 1 L 1 και x 2 L 2 } = L 1 L2 Π.χ., αν L 1 = { 0, 00, 11 } και L 2 = { ɛ, 1 }: L 1 L 2 = { 0, 00, 11, 01, 001, 111 } Παράθεση Γλώσσας µε την ίδια: L 2 = { w Σ : w = x 1 x 2, για x 1 L και x 2 L } Παράθεση Γλώσσας k φορές: L k = { w Σ : w = x 1 x 2 x k, για x 1, x 2,..., x k L } Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 29 / 31 Πράξεις µε Γλώσσες Παράθεση οποιουδήποτε (πεπερασµένου) πλήθους λέξεων της L: L = L k (Παρατήρηση: k 0.) k N Παράδειγµα: αν L = { a, bb }, τότε: L = { ɛ, a, bb, abb, bba, aabb, bbaa, abba,... } Αν L = { ɛ }, τότε L = { ɛ }. Αν L =, τότε L = { ɛ }. Παράθεση ϑετικού πεπερασµένου πλήθους λέξεων της L: L + = L k (Παρατήρηση: k 1.) k Z + Πότε είναι L = L + ; Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 30 / 31 Αναπαράσταση Γλωσσών Με απλή απαρίθµηση των λέξεών τους, όταν είναι πεπερασµένες. Μέσω κοινής χαρακτηριστικής ιδιότητας που έχουν οι λέξεις: Π.χ., L 1 = { w {0, 1} : w έχει άρτιο πλήθος από 1 } Π.χ., L 2 = { 0 n 1 n : n 0 }. Μέσω συνολοθεωρητικών πράξεων επί άλλων γλωσσών, π.χ., L 1 L 2. Μέσω γραµµατικών, που αποτελούν µηχανισµούς παραγωγής λέξεων της γλώσσας. Μέσω υπολογιστικών µηχανών (ισοδύναµα: αλγορίθµων) που αποφασίζουν αν µια λέξη ανήκει στη γλώσσα ή όχι. Π.χ., ένας συντακτικός αναλυτής που αποφασίζει αν ένα πρόγραµµα C είναι ορθό ή όχι. Ο. Τελέλης Θεωρία Υπολογισµού: Εισαγωγικά 31 / 31