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

Σχετικά έγγραφα
ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών

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

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

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

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

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

Κλάσεις Πολυπλοκότητας

NP-πληρότητα. Λεωνίδας Παληός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων

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

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

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.1,

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

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος

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

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

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

Υποθέσεις - - Θεωρήματα Υποθέσεις - Θεωρήματα Στα μαθηματικά και στις άλλες επιστήμες κάνουμε συχνά υποθέσεις. Οταν δείξουμε ότι μια υπόθεση είναι αλη

Κλάση NP, NP-Complete Προβλήματα

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

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

Διάλεξη 04: Παραδείγματα Ανάλυσης

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα

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

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

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

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

Υποθέσεις - Θεωρήματα. Μαθηματικά Πληροφορικής 1ο Μάθημα. Η χρυσή τομή. Υποθέσεις - Εικασίες

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

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

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

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

HY118- ιακριτά Μαθηµατικά. Θεωρία γράφων / γραφήµατα. Τι έχουµε δει µέχρι τώρα. Υπογράφηµα Γράφοι

Πρόβληµα 2 (12 µονάδες)

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

CSC 314: Switching Theory

(CLR, κεφάλαιο 32) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier

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

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

Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

Ενότητα 2 Πρόβλημα σελ 13-18

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

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

Ασυμπτωτικός Συμβολισμός

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

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

Chapter 7, 8 : Time, Space Complexity

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι)

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

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

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

Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας

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

Δυναμικός Προγραμματισμός

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

12. ΑΝΙΣΩΣΕΙΣ Α ΒΑΘΜΟΥ. είναι δύο παραστάσεις μιας μεταβλητής x πού παίρνει τιμές στο

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

Διδάσκων: Παναγιώτης Ανδρέου

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

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

Όρια Αλγόριθμων Ταξινόμησης. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

Δυναμικός Προγραμματισμός

for for for for( . */

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

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

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

Chapter 7, 8 : Completeness

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

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

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

Ταξινόμηση. 1. Ταξινόμηση του Shell. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

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

Προγραµµατισµός Η/Υ. Μέρος2

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

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

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

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

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

Λύσεις 4ης Σειράς Ασκήσεων

Κατανεμημένα Συστήματα Ι

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

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

Μαθησιακές δυσκολίες ΙΙ. Παλαιγεωργίου Γιώργος Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών και Δικτύων, Πανεπιστήμιο Θεσσαλίας

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

Αριθμοθεωρητικοί Αλγόριθμοι

Περιεχόμενα. Περιεχόμενα

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

3 η δεκάδα θεµάτων επανάληψης

Κεφάλαιο 1. Πέντε Αντιπροσωπευτικά Προβλήματα. Έκδοση 1.4, 30/10/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

για NP-Δύσκολα Προβλήματα

Εφαρμοσμένη Κρυπτογραφία Ι

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα

Αλγόριθμοι και Πολυπλοκότητα Φώτης Ε. Ψωμόπουλος, Περικλής Α. Μήτκας

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

Αναδρομικές Σχέσεις «ιαίρει-και-βασίλευε»

Transcript:

ΚΕΦΑΛΑΙΟ : Θεωρία υπολογισµών. Συναρτήσεις και ο υπολογισµός τους. Μηχανές Turig.3 Καθολικές γλώσσες προγραµµατισµού.4 Μια µη υπολογίσιµη συνάρτηση.5 Πολυπλοκότητα προβληµάτων.6 Κρυπτογραφία δηµόσιου κλειδιού. Συναρτήσεις Μία συνάρτηση είναι µία αντιστοιχία µεταξύ ενός συνόλου πιθανών τιµών εισόδου και ενός συνόλου τιµών εξόδου, έτσι ώστε κάθε πιθανή είσοδος να αντιστοιχεί σε µία και µοναδική έξοδο. Υπολογίσιµη συνάρτηση είναι αυτή της οποίας η τιµή εξόδου µπορεί να προσδιοριστεί αλγοριθµικά από την τιµή εισόδου. Μη υπολογίσιµη είναι η συνάρτηση που δεν µπορεί να προσδιοριστεί από κανένα αλγόριθµο. Μια προσπάθεια για την παρουσίαση της συνάρτησης µετατροπής γυαρδών σε µέτρα (Σχήµα.) Υπολογισιµότητα 3 Υπάρχουν προβλήµατα που δεν µπορούν να λυθούν από ένα υπολογιστή; ΝΑΙ! Αρχική υπόθεση (Hilbert): κάθε καλώς ορισµένο πρόβληµα έχει µια απάντηση που µπορούµε να βρούµε! δηµιουργία τυπικού µαθηµατικού συστήµατος που να µπορεί να περιγράφει κάθε πρόβληµα κατασκευή αλγορίθµου που να αποφασίζει (σωστό ή.. λάθος) Godel: Icompleteess theorem Με βάση τα αξιώµατα της αριθµητικής για τους ακεραίους, υπάρχουν θεωρήµατα που δεν µπορούν να αποδειχθούν! 4

Άλυτα προβλήµατα (µέχρι σήµερα). Τα στοιχεία µιας µηχανής Turig (Σχήµα.) Η εικασία του Goldbach: κάθε άρτιος αριθµός µπορεί να γραφεί σαν το άθροισµα δύο πρώτων αριθµών Τελευταίο θεώρηµα του Fermat: (λύθηκε πριν 8 χρόνια!) δεν υπάρχουν θετικοί ακέραιοι a, b, c τέτοιοι ώστε a + b = c για > P = NP, Riema hypothesis,... 5 6 Λειτουργίες µίας µηχανής Turig Μια µηχανή Turig για την αύξηση µιας τιµής κατά µία µονάδα (Σχήµα.3) Είσοδοι σε κάθε βήµα. Κατάσταση. Τιµή στην τρέχουσα κυψελίδα της ταινίας. Οι ενέργειες σε κάθε βήµα Γράφει µία τιµή στην τρέχουσα κυψελίδα της ταινίας. Κινεί την κεφαλή εγγραφή/ανάγνωσης. Αλλάζει κατάσταση. 7 8

.3 Church-Turig thesis Καθολική γλώσσα προγραµµατισµού Πρόβληµα: το ότι δεν υπάρχει αλγόριθµος που να λύνει µία κλάση προβληµάτων οφείλεται στο ότι το µοντέλο του υπολογιστή είναι αδύναµο; Church-Turig: όλα τα µοντέλα υπολογιστών και αλγορίθµων που υπάρχουν ή µπορεί να προταθούν στο µέλλον είναι υπολογιστικά ισοδύναµα! Μηχανή Turig λ-calculus Άρα η µη-υπολογισιµότητα είναι ιδιότητα του προβλήµατος, και δεν εξαρτάται από το υπολογιστικό σύστηµα Μία µηχανή Turig µπορεί να υπολογίσει κάθε υπολογίσιµη συνάρτηση. Επαναπροσδιορισµός: κάθε υπολογίσιµη συνάρτηση είναι υπολογίσιµη κατά Turig. εν αποδεικνύεται αλλά είναι γενικά αποδεκτό. Καθολική γλώσσα προγραµµατισµού είναι µία γλώσσα που µπορεί να εκφράσει ένα πρόγραµµα υπολογισµού για κάθε υπολογίσιµη συνάρτηση. Παραδείγµατα:Η στοιχειώδης γλώσσα (Bare Boes) και οι πιο δηµοφιλείς γλώσσες προγραµµατισµού. 9 0 Η Στοιχειώδης Γλώσσα Ένα πρόγραµµα της Στοιχειώδους Γλώσσας για τον υπολογισµό τουχx Y (Σχήµα.4) Η Στοιχειώδης Γλώσσα είναι µία απλή καθώς και καθολική γλώσσα. Προσδιορισµοί καταστάσεων: clear όνοµα; icr όνοµα; decr όνοµα; while όνοµα ot 0 do; ed;

Ένα πρόγραµµα της Στοιχειώδους Γλώσσας για την υλοποίηση της εντολής copy Today to Tomorrow (Σχήµα.5).4 To πρόβληµα του τερµατισµού οθέντος της κωδικοποιηµένης έκδοσης οποιουδήποτε προγράµµατος, επιστρέφει την τιµή όταν το πρόγραµµα τελικά τερµατίζεται ή την τιµή 0 εάν ο βρόχος εκτελείται ατέρµονα. 3 4 Έλεγχος ενός προγράµµατος για το αν είναι αυτοτερµατιζόµενο (Σχήµα.6) Απόδειξη της αδυναµίας επίλυσης του προβλήµατος τερµατισµού Απόδειξη πώς δεν µπορεί να υπάρχει αλγόριθµος απόφασης: Μ P x P( x)? H y Έστω πώς υπάρχει! P Μ P( P)? y stop if H( P) if if H( H) if P( P) P( P) H( H) H( H) αντίφαση!!!! 5 6

.5 Πολυπλοκότητα προβληµάτων Παράδειγµα: πολλαπλασιασµός Πολυπλοκότητα: ποσότητα πόρων (χρόνος, µνήµη) που χρησιµοποιεί ο αλγόριθµος ασυµπτωτική πολυπλοκότητα: ο όρος που υπερισχύει 3 3 + 0 + 3 3 εκθετικοί και πολυωνυµικοί αλγόριθµοι πολυπλοκότητα χειρότερης, µέσης περίπτωσης άνω φράγµα, κάτω φράγµα για την πολυπλοκότητα Παράδειγµα: πολλαπλασιασµός log log log κάτω φράγµα? log3 + + 5 µικρότερο γνωστό άνω φράγµα 7 Αλγόριθµος Αλγόριθµος 984 * 673 595 984 3888 + 904 33859 Χρόνος: τάξη µεγέθους Α Β Γ 9 84 67 3 / Α*Γ = 73 (Α+Β)(Γ+ )-Α*Γ-Β = 5875 Β* = 09 ------------ 33859 Χρόνος: Τεχνική «διαίρει και βασίλευε» log3.59 = 8 Χρονική πολυπλοκότητα προβληµάτων Χρόνος εκτέλεσης αλγορίθµων H χρονική πολυπλοκότητα αναφέρεται στο πλήθος των εκτελέσεων εντολών που απαιτούνται να εκτελεστούν. Ένα πρόβληµα είναι της τάξης Ο(f()) εάν µπορεί να λυθεί µε έναν αλγόριθµο της τάξης Θ(f()). Ένα πρόβληµα είναι της τάξης Θ(f()) εάν µπορεί να λυθεί µε έναν αλγόριθµο της τάξης Ο(f()). µέγεθος εισόδου 0 00 000 0000 00000 log 0.000003 0.000007 0.0000 0.00003 0.00007 0.0000 0.000 0.00 0.0 0. 0.00 0.0.7λ.8ω πολυπλοκότητα αλγορίθµου 0 0.0 4 αιώνες * * * sec βήµα = µs 9 0

ιαίρει και βασίλευε Ο αλγόριθµος ταξινόµησης συγχώνευσης, υλοποιηµένος ως διαδικασία ΤαξινόµησηΣυγχώνευσης (Σχήµα.9) Κοινός τρόπος επίλυσης προβληµάτων: ανάγουµε το πρόβληµα στην λύση µικρότερων προβληµάτων! Παράδειγµα: ταξινόµηση λίστας αριθµών: module sort(list) T ( ) = T ( /) + c if > the {L = firsthalf(list); L = secodhalf(list); T ( ) = c log + L:= sort(l); L:= sort(l); retur L := merge(l,l)} k διαδικασία ΤαξινόµησηΣυγχώνευση(Λίστα) αν (η Λίστα έχει περισσότερες από µία καταχωρίσεις) τότε (Εφάρµοσε τη διαδικασία ΤαξινόµησηςΣυγχώνευσης για την ταξινόµηση του πρώτου µισού της Λίστας Εφάρµοσε τη διαδικασία ΤαξινόµησηςΣυγχώνευσης για την ταξινόµηση του δεύτερου µισού της Λίστας Εφάρµοσε τη διαδικασία ΤαξινόµησηςΣυγχώνευσης για την ταξινόµηση του πρώτου µισού και του δεύτερου µισού της λίστας ώστε να δηµιουργηθεί µία ταξινοµηµένη έκδοση της Λίστας Η ιεραρχία των προβληµάτων που δηµιουργείται από τον αλγόριθµο της ταξινόµησης συγχώνευσης (Σχήµα.0) Γραφήµατα των µαθηµατικών παραστάσεων ν, lg v, v lg v και v (Σχήµα.) 3 4

Τάξη P Τάξης P είναι όλα τα προβλήµατα σε κάθε τάξη Θ(f()), όπου το f() είναι πολυώνυµο. ισεπίλυτα (ή µη-εφικτά) είναι όλα τα προβλήµατα που είναι πολύ πολύπλοκα για να επιλυθούν πρακτικά. Οι περισσότεροι επιστήµονες υπολογιστών θεωρούν την τάξη Ρ όριο µεταξύ δισεπίλυτων και αυτών που έχουν πρακτική λύση. Μη εφικτά προβλήµατα Προβλήµατα µη υπολογίσιµα σε πολυωνυµικό χρόνο Το πρόβληµα της συσκευασίας w,, w, K w N Ν κιβώτια βάρους µπορούν να µεταφερθούν από Κ φορτηγά που το καθένα µπορεί να σηκώσει το πολύ W; 5 8 5 3 W = 4 4 3 W =4 5 6 Μη εφικτά προβλήµατα () Το πρόβληµα του πλανόδιου πωλητή Με δεδοµένο ένα χάρτη δρόµων µε Ν πόλεις και τις αντίστοιχες χιλιοµετρικές αποστάσεις, είναι δυνατόν ένας πωλητής να ολοκληρώσει κάποιο ταξίδι όπου περνάει από κάθε πόλη ακριβώς µία φορά η συνολική διαδροµή έχει µήκος < Κ κύκλος Hamilto Τάξη ΝΡ (Nodetermiistic Polyomial) Τάξης ΝΡ είναι όλα τα προβλήµατα που µπορούν να επιλυθούν από έναν µη αιτιοκρατικό αλγόριθµο της τάξης ΝΡ. Μη αιτιοκρατικός είναι ο αλγόριθµος του οποίου τα βήµατα µπορεί να µην είναι µοναδικά ή αιτιοκρατικά στην κατάσταση επεξεργασίας. Ίσως απαιτούν «δηµιουργικότητα» και εφευρετικότητα. Χαρακτηριστικό των προβληµήτων NP είναι ότι η λύση είναι υπολογιστικά εφικτό να επαληθευτεί! ή µια µηχανή µπορεί να διαλέξει στην τύχη µια λύση και να την επαληθεύσει σε πολυωνυµικό χρόνο Είναι ακόµα άγνωστο αν η τάξη ΝΡ είναι µεγαλύτερη της τάξης Ρ. 7 8

Μια γραφική σύνοψη της κατηγοριοποίησης προβληµάτων (Σχήµα.) Προβλήµατα NP-complete NP-complete: υποσύνολο των πιο δύσκολων προβληµάτων στο NP Κάθε πρόβληµα στο NP µετασχηµατίζεται µε πολυωνυµικό κόστος σε κάποιο πρόβληµα στο NPcomplete Εάν λυθεί σε πολυωνυµικό χρόνο ένα πρόβληµα στο NP-complete τότε λύνονται πολυωνυµικά όλα τα προβλήµατα στο NP ΠΑ P P P3 NP-complete P4 P7 } NP P9 Πολυωνυµική αναγωγή (ΠΑ): Το πρόβληµα P το κωδικοποιώ σαν µια µερική περίπτωση του P. Λύνω το P, και από την λύση του κατασκευάζω µε πολυωνυµικό κόστος την λύση του P 9 30 Παράδειγµα (3-SAT) Κ-Graph Idepedet Set SAT (Satisfiability): δεδοµένης µίας boolea φόρµουλας, υπάρχουν τιµές για τις µεταβλητές που να την κάνουν TRUE; ( x x ) ( x x3) x ) x =, x = 0, x3 = 0 3-SAT: η φόρµουλα είναι το λογικό ΚΑΙ (AND) σχέσεων (clauses) οι οποίες είναι το λογικό Η (OR) το πολύ 3 µεταβλητών. Π.χ. (µε 4 clauses) ( x x x x x x x x Θεώρηµα του Cook: To 3-SAT είναι NP-complete Σε ένα γράφο G, υπάρχει σύνολο Κ κόµβων οι οποίοι να µην είναι γειτονικοί (να µην υπάρχει ακµή που να τους συνδέει) ; Είναι NP-complete; 3 3

Αναγωγή του 3-SAT στο Κ-idepedet set ( x x x x x x x x K = 4 x x x 3 x x x3 x x x3 x x x 3.6 Κρυπτογραφία δηµόσιου κλειδιού Κλειδί είναι ένα ειδικού τύπου σύνολο αριθµών που χρησιµοποιείται για την κρυπτογράφηση. ηµόσιο κλειδί είναι το κλειδί της κρυπτογράφησης. Ιδιωτικό κλειδί είναι το κλειδί της αποκρυπτογράφησης. RSA είναι ένας δηµοφιλής αλγόριθµος κρυπτογραφίας δηµόσιου κλειδιού. Βασίζεται στην αποτυχία εύρεσης ενός αποδοτικού τρόπου προσδιορισµού µεγάλων ακεραίων. 33 34 Κρυπτογράφηση του µηνύµατος 0 Αποκρυπτογράφηση του µηνύµατος 00 Κλειδιά κρυπτογράφησης : =9 και e=50 two = 3 te 3 e = 3 5 = 6,436,343 6,436,343 9 έχει ένα υπόλοιπο 4 4 te = 00 two Έτσι η κρυπτογραφηµένη έκδοση του 0 είναι 00. Κλειδιά αποκρυπτογράφησης: d = 9, = 9 00 two = 4 te 4 d = 4 9 = 88,30,376,5,7,744 88,30,376,5,7,744 9 έχει ένα υπόλοιπο 3 3 te = 0 two Έτσι η αποκρυπτογραφηµένη έκδοση του 00 είναι 0 35 36

Κρυπτογραφία δηµόσιου κλειδιού (Σχήµα.3) ηµιουργία ενός συστήµατος κρυπτογράφησης δηµόσιου κλειδιού RSA (Σχήµα.4) 37 38