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

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

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

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

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

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

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

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

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

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών

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

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

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών

τη µέθοδο της µαθηµατικής επαγωγής για να αποδείξουµε τη Ϲητούµενη ισότητα.

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

Μαθηµατικά για Πληροφορική

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

1 Υποθέσεις και Θεωρήµατα

Σχεδίαση και Ανάλυση Αλγορίθμων

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

2 Αποδείξεις. 2.1 Εξαντλητική µέθοδος. Εκδοση 2005/03/22. Υπάρχουν πολλών ειδών αποδείξεις. Εδώ ϑα δούµε τις πιο κοινές:

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

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

ΠΟΛΥΩΝΥΜΙΚΕΣ - ΡΗΤΕΣ ΑΝΙΣΩΣΕΙΣ P x = x+ 2 4 x x 3x x x x 3x

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

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

Mathematics and its Applications, 5th

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

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

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

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

Η εξίσωση του Fermat για τον εκθέτη n=3. Μία στοιχειώδης προσέγγιση

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

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

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

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

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

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

Αριθµοθεωρητικοί Αλγόριθµοι και το. To Κρυπτοσύστηµα RSA

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

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

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

invariante Eigenschaften spezieller binärer Formen, insbesondere der

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Προτεινοµενες Ασκησεις - Φυλλαδιο 9

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις Επαναληψης

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

2 o Καλοκαιρινό σχολείο Μαθηµατικών Νάουσα 2008

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...

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

CSC 314: Switching Theory

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

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

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ

Αναδροµή (Recursion) ύο παρεξηγήσεις. Σκέψου Αναδροµικά. Τρίγωνο Sierpinski Μη αναδροµικός ορισµός;

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Ασκησεις Επαναληψης. ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος :

11. Η έννοια του διανύσµατος 22. Πρόσθεση & αφαίρεση διανυσµάτων 33. Βαθµωτός πολλαπλασιασµός 44. Συντεταγµένες 55. Εσωτερικό γινόµενο

conp and Function Problems

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Ασκησεις - Επανάληψης. ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος :

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

Συναρτησιακές Εξαρτήσεις. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

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

Chapter 7, 8 : Time, Space Complexity

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

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

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

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

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

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

a 1d L(A) = {m 1 a m d a d : m i Z} a 11 a A = M B, B = N A, k=1

ΑΛΓΕΒΡΙΚΕΣ ΟΜΕΣ Ι. Ασκησεις - Φυλλαδιο 2

2.3 ΠΡΟΒΛΗΜΑΤΑ ΕΞΙΣΩΣΕΩΝ

ILP-Feasibility conp

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

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

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

1 Ανάλυση αλγορίθµων. 2 Συµβολισµοί O, Ω και Θ. 3 Αναδροµικές εξισώσεις

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

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

Κρυπτοσύστημα RSA (Rivest, Shamir, Adlemann, 1977) Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

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

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

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

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

Κρυπτογραφία. Έλεγχος πρώτων αριθών-παραγοντοποίηση. Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας

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

4.6 Η ΓΡΑΜΜΙΚΗ ΔΙΟΦΑΝΤΙΚΗ ΕΞΙΣΩΣΗ

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

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

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

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

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

Μαθηµατικά για Πληροφορική

1 Οι πραγµατικοί αριθµοί

Αλγεβρικες οµες Ι Ασκησεις - Φυλλαδιο 5

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

Αλγεβρικες οµες Ι Ασκησεις - Φυλλαδιο 2

Αλγεβρικες οµες Ι Ασκησεις - Φυλλαδιο 4 1 2

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

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

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

Transcript:

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

Υπολογισιµότητα - Computability o Υπολογισιµότητα (Computability) n Τι µπορεί να υπολογιστεί και τι όχι; o Υπολογιστική πολυπλοκότητα (Computational Complexity) n Τι µπορεί να υπολογιστεί γρήγορα και τι όχι; n Πόσο γρήγορα µπορεί να υπολογιστεί; 2

Τι είναι πολυπλοκότητα; o Το 10110101110 είναι πιο πολύπλοκο από το 0000000000000 (Kolmogorov complexity) o Τα θηλαστικά είναι πιο πολύπλοκα από τους ιούς. o Το σκάκι είναι πιο πολύπλοκο από την τρίλιζα. o Οι επικαλύψεις του Escher είναι πιο πολύπλοκες από τα τετράγωνα πλακάκια του µπάνιου µου. o Οι πρώτοι αριθµοί είναι πιο πολύπλοκοι από τους περιττούς (υπολογιστική πολυπλοκότητα). 3

4

Τι είναι υπολογιστική πολυπλοκότητα; o Ένας τρόπος για να συλλάβουµε γιατί οι πρώτοι αριθµοί είναι πιο πολύπλοκοι από τους περιττούς είναι η υπολογιστική πολυπλοκότητα. o Το πρόβληµα «Δίνεται x. Είναι πρώτος;» είναι πιο δύσκολο από το πρόβληµα «Δίνεται x. Είναι περιττός;» 5

Τι είναι πρόβληµα; o 1ο ΠΡΟΒΛΗΜΑ: Υπάρχουν ακέραιοι x,y,z>0 και n>2 τέτοιοι ώστε x n +y n =z n ; Αυτό είναι το Θεώρηµα του Fermat που απαντήθηκε αρνητικά πρόσφατα από τον Andrew Wiles. o 2ο ΠΡΟΒΛΗΜΑ: Γράψτε ένα πρόγραµµα που όταν του δίνουµε για είσοδο µια πολυωνυµική εξίσωση (π.χ. x 3 +y 3 =z 3 ) απαντά αν έχει ακέραια λύση ή όχι. Αυτό είναι το δέκατο πρόβληµα του David Hilbert που τέθηκε το 1900 και απαντήθηκε (αρνητικά) από τον Yuri Matiyasevitch to 1970. 6

Τι είναι πρόβληµα; o Θα µιλήσουµε για υπολογιστικά προβλήµατα, δηλαδή, προβλήµατα που ζητάνε να βρούµε ένα αλγόριθµο (πρόγραµµα). o Π.χ. το 2ο πρόβληµα (πρόβληµα Hilbert) είναι υπολογιστικό πρόβληµα, αλλά το 1ο πρόβληµα (Θεώρηµα του Fermat) δεν είναι. 7

Ιστορία υπολογισιµότητας o 1900: Ο David Hilbert ρωτάει αν µπορούν να αυτοµατοποιηθούν τα µαθηµατικά; o 1930: O Kurt Godel δείχνει ότι αυτό δεν γίνεται µε το περίφηµο Θεώρηµα της µη πληρότητας (Incompleteness Theorem). o 1936: Ο Alan Turing ορίζει την έννοια του υπολογιστή και δείχνει ότι πολλά προβλήµατα δεν µπορούν να επιλυθούν µε συστηµατικό τρόπο, δηλαδή δεν υπάρχει πρόγραµµα που να τα λύνει. 8

Μη επιλύσιµα προβλήµατα Πρόβληµα τερµατισµού o Το πρόγραµµα 3x+1: While x!=1 do if (x is even) then x=x/2 else x=3*x+1 o 7 à 22 à 11 à 34 à 17 à 52 à 26 à 13 à 40 à 20 à 10 à 5 à 16 à 8 à 4 à 2 à 1 o Πρόβληµα: Δίνεται x. Τερµατίζει το πρόγραµµα; o Πρόβληµα: Τερµατίζει το πρόβληµα για κάθε φυσικό αριθµό x; o Δεν γνωρίζουµε την απάντηση (είναι δηλαδή ανοικτά προβλήµατα). 9

Μη επιλύσιµα προβλήµατα Πρόβληµα τερµατισµού o Το 3x+1 είναι ειδική περίπτωση του προβλήµατος τερµατισµού: Δίνεται πρόγραµµα και είσοδος. Τερµατίζει το πρόγραµµα για αυτή την είσοδο; Μια ισοδύναµη παραλλαγή είναι: Δίνεται πρόγραµµα χωρίς είσοδο. Τερµατίζει; o Θεώρηµα: Το πρόβληµα τερµατισµού είναι µη επιλύσιµο. Δηλαδή, δεν υπάρχει αλγόριθµος που να απαντάει σε αυτή την ερώτηση. 10

Γιατί δεν είναι επιλύσιµο; o Με εις άτοπον απαγωγή: Έστω ότι είναι επιλύσιµο, δηλαδή υπάρχει πρόγραµµα Τ τέτοιο ώστε «T(P,w) απαντά αν το P(w), δηλαδή το πρόγραµµα P µε είσοδο w, τερµατίζει ή όχι». o Μπορούµε τότε να κατασκευάσουµε το πρόγραµµα S(P): S(P) if T(P,P)=true then while true; // loop forever o S(P) τερµατίζει çè P(P) δεν τερµατίζει o S(S) τερµατίζει çè S(S) δεν τερµατίζει. o Άτοπο, άρα το πρόγραµµα T δεν υπάρχει. 11

Μη επιλύσιµα προβλήµατα Πρόβληµα επικάλυψης o Δίνεται πεπερασµένος αριθµός ειδών από πλακάκια, π.χ. o Μπορούµε να καλύψουµε όλο το επίπεδο µε τέτοια πλακάκια; o Το πρόβληµα είναι µη επιλύσιµο. Δηλαδή, δεν υπάρχει πρόγραµµα, που να παίρνει για είσοδο τους τύπους πλακακιών και να απαντά την ερώτηση. 12

Μη επιλύσιµα προβλήµατα 10 o πρόβληµα του Hilbert o Δίνεται Διοφαντική εξίσωση, δηλαδή ακέραια πολυωνυµική εξίσωση (π.χ. x 2-2y 2 =5 ή x 3 +y 3 =z 3 ). Έχει λύση στους ακέραιους; o Το πρόβληµα το έθεσε ο Hilbert το 1900. Το 1970 ο Yuri Matiyasevitch έδειξε ότι είναι µη επιλύσιµο. Δηλαδή, δεν υπάρχει πρόγραµµα, που να παίρνει για είσοδο µια εξίσωση και να απαντά την ερώτηση. 13

Μη επιλύσιµα προβλήµατα το πρόβληµα της σφαίρας. o Δίνονται τετράγωνα. Είναι το σχήµα τοπολογικά ισόµορφο µε δίσκο; Αν δηλαδή ήταν από πλαστελίνη, µπορούµε να την µετατρέψουµε σε δίσκο, χωρίς να σχίσουµε ή να κολλήσουµε τµήµατα της; Η απάντηση είναι καταφατική για το πρώτο σχήµα και αρνητική για το δεύτερο. 14

Μη επιλύσιµα προβλήµατα το πρόβληµα της σφαίρας. o Το πρόβληµα αυτό για υψηλότερες διαστάσεις είναι µη επιλύσιµο. o Αντίθετα για τις 3 διαστάσεις προτάθηκε πρόσφατα ένας αλγόριθµος. o Το πρόβληµα σχετίζετε µε το ερώτηµα: Τι σχήµα έχει το σύµπαν µας; o Σχετίζεται επίσης µε την εικασία του Poincare (ένα από τα µεγάλα ανοικτά προβλήµατα των µαθηµατικών). 15

Ανακεφαλαίωση Θεωρίας Υπολογισιµότητας o Δεν υπάρχουν αλγόριθµοι για τα προβλήµατα: n Τερµατισµού n Επικάλυψης n Hilbert n Σφαίρας o Είναι ανοικτό το πρόβληµα 3x+1. o Τα αποτελέσµατα αυτά επηρέασαν σηµαντικά τη σκέψη του σύγχρονου ανθρώπου. Δεν αποτελούν όµως σήµερα αντικείµενο εκτεταµένης έρευνας, γιατί τα βασικά ερωτήµατα έχουν απαντηθεί. 16

Υπολογιστική Πολυπλοκότητα o Η θεωρία υπολογιστικής πολυπλοκότητας ασχολείται κυρίως µε το ερώτηµα «πόσο γρήγορα µπορεί να υπολογιστεί;» o Παράδειγµα: Οι αριθµοί Fibonacci 1, 1, 2, 3, 5, 8, 13, 21, F n =F n-1 +F n-2 o Πρόβληµα: Δίνεται n, να υπολογιστεί το F n o Πόσο γρήγορο µπορεί να είναι το πρόγραµµα µας; 17

Αριθµοί Fibonacci αναδροµικός αλγόριθµος o F(int n) { if (n<=2) return ; else return F(n-1)+F(n-2); } o Πόσο χρόνο θα πάρει να υπολογιστεί το F(n); Απάντηση: Περίπου 1.62 n βήµατα. Ή όπως το συµβολίζουµε Ο(1.62 n ). o Ο χρόνος εξαρτάται βέβαια από την ταχύτητα του υπολογιστή µας, το λειτουργικό σύστηµα κλπ. αλλά πάνω από όλα από το Ο(1.62 n ). 18

Χρόνος εκτέλεσης αλγορίθµου o Θεωρείστε 3 προγράµµατα µε αριθµό βηµάτων O(2^n), O(n^2), και O(n) που το καθένα παίρνει 100 δευτερόλεπτα για να υπολογίσει το F(100). o Πόσα δευτερόλεπτα θα πάρουν για να υπολογίσουν το F(n); 2^n n^2 n n=100 100 100 100 n=101 200 102 101 n=110 102400 121 110 n=200?????? 400 200 19

Αριθµοί Fibonacci καλύτερος αλγόριθµος o a=1; b=1; for (i=2; i<=n; i++) { c=b; b=a+b; a=c; } return b; o Χρόνος O(n); 20

Αριθµοί Fibonacci ακόµα καλύτερος αλγόριθµος o Μπορούµε να γράψουµε τον υπολογισµό σε µορφή πινάκων: Από αυτό συµπεραίνουµε Και ο αριθµός των αριθµητικών πράξεων µειώνεται στο O(log n). 21

P =? NP o Τι είναι πιο εύκολο; Να βρείτε τις λύσεις των ασκήσεων ή να τις αντιγράψετε; o Πόσο πιο εύκολο είναι να βρούµε κάποια λύση από το να την επιβεβαιώσουµε; o Αυτό είναι ουσιαστικά το P=NP πρόβληµα, που αποτελεί το πιο σηµαντικό ανοικτό πρόβληµα σήµερα. Στο http://www.claymath.org προσφέρονται 1εκ. δολάρια για τη λύση του. 22

Το πρόβληµα του Euler Δινεται γράφος. Υπάρχει τρόπος να περάσουµε από κάθε ακµή µια ακριβώς φορά; 23

Το πρόβληµα του Hamilton Δίνεται γράφος. Υπάρχει τρόπος να περάσουµε από κάθε κορυφή µια ακριβώς φορά; 24

Euler --- Hamilton o Το πρόβληµα του Euler είναι εύκολο. Μπορούµε γρήγορα να απαντήσουµε: Ελέγχουµε αν ο αριθµός των ακµών σε κάθε κόµβο είναι άρτιος. n Τέτοια προβλήµατα που οι αλγόριθµοι τους χρειάζονται χρόνο O(n), O(n 2 ), O(n 3 ) ανήκουν στην κλάση P (polynomial time). o Το πρόβληµα του Hamilton είναι πιο δύσκολο. Δεν γνωρίζουµε κανένα γρήγορο αλγόριθµο γι αυτό. Ο καλύτερος γνωστός αλγόριθµος δεν διαφέρει ουσιαστικά από το να δοκιµάσουµε όλους τους συνδυασµούς --- που είναι n!=1.2.3 n. 25

NP-complete προβλήµατα o Το πρόβληµα του Hamilton µπορεί να έχει γρήγορο αλγόριθµο. Δεν πιστεύουµε όµως ότι έχει. Ούτε καταφέραµε να αποδείξουµε κάτι τέτοιο. o Το µόνο που µπορούµε να δείξουµε είναι ότι µια πλειάδα από προβλήµατα που µας ενδιαφέρουν είναι της ίδιας δυσκολίας. o Τα προβλήµατα που είναι το ίδιο δύσκολα µε το πρόβληµα του Hamilton τα λέµε NPcomplete. 26

Κλάσεις πολυπλοκότητας o o o P (polynomial time): Το σύνολο των προβληµάτων που έχουν αλγόριθµο πολυωνυµικού χρόνου. Τα ταυτίζουµε µε τα προβλήµατα που µπορούµε να λύσουµε στην πράξη. n Το πρόβληµα του Euler ανήκει στο P ΝP (nondeterministic polynomial time): Το σύνολο των προβληµάτων που µπορούµε να επιβεβαιώσουµε τη λύση τους (αν µας δοθεί) σε πολυωνυµικό χρόνο. NP-complete: Το υποσύνολο των πιο δύσκολων προβληµάτων του NP. Αν ένα από αυτά τα προβλήµατα ανήκει στο P, τότε P=NP. n Το πρόβληµα του Hamilton είναι NP-complete. 27

Κλάσεις πολυπλοκότητας NP-complete NP P 28

Άλλα NP-complete προβλήµατα o Satisfiability n Δίνεται Boolean φόρµουλα φ(x 1,,x n ). Υπάρχουν τιµές για τα x 1,,x n που να ικανοποιούν την φ; o Partition n Δίνονται ακέραιοι a 1,,a n. Μπορούν να χωριστούν σε δύο µέρη µε ίσα αθροίσµατα; o Πάρα πολλά άλλα προβλήµατα. 29

Προβλήµατα πρώτων αριθµών o Primality testing: Δίνεται ακέραιος n. Είναι πρώτος; n Σχετικά εύκολο. Ανήκει στο P όπως έδειξαν πρόσφατα κάποιο προπτυχιακοί Ινδοί φοιτητές. o Factoring: Δίνεται ακέραιος n. Να βρεθούν οι πρώτοι παράγοντες του. n Δεν ξέρουµε αν είναι εύκολο ή δύσκολο. Πιστεύουµε ότι δεν είναι στο P, αλλά ούτε ότι είναι τόσο δύσκολο όσο τα NP-complete προβλήµατα. n Για κβαντικούς υπολογιστές (που δεν έχουµε ακόµα καταφέρει να κατασκευάσουµε) ανήκει στο P. 30

Factoring και κρυπτογραφία o RSA: Κρυπτογραφικό σχήµα για να στείλει η A (Alice) στον B (Bob) ένα µήνυµα m. o O B διαλέγει 2 µεγάλους πρώτους αριθµούς p και q και ένα ακέραιο e. Υπολογίζει το γινόµενο n=pq. o Ο Β στέλνει στην Α τα n και e. o H Α στέλνει στον Β τον αριθµό c=m e (mod n). o Ο Β υπολογίζει το m: m=c d (mod n), όπου το d=e -1 (mod (p-1)(q-1)). o Παράδειγµα: p=11, q=17, n=187, e=21, d=61, m=42, c=9 31

Αλγόριθµοι πόσο γρήγοροι; o Εκτός από κάποιες ειδικές περιπτώσεις, για κανένα πρόβληµα δεν γνωρίζουµε πόσο γρήγορα µπορεί να λυθεί. o Ακόµα και για τον πολλαπλασιασµό αριθµών δεν γνωρίζουµε τον ταχύτερο αλγόριθµο. o Ο σχολικός τρόπος πολλαπλασιασµού αριθµών µε n ψηφία παίρνει O(n 2 ) βήµατα. o Υπάρχουν καλύτεροι αλγόριθµοι που παίρνουν περίπου O(n log n) βήµατα. o Υπάρχει αλγόριθµος που παίρνει O(n) βήµατα; Αυτό είναι ανοικτό ερώτηµα. 32

Κάποια σύγχρονα θέµατα θεωρίας o Διαδίκτυο (routing, congestion, game theory, cost allocation) o Βιολογία (protein folding, genome, evolution). 33