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

39
1 Κεφάλαιο 12: «Θεωρία Υπολογισμών» ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισμών 1 Συναρτήσεις και ο υπολογισμός τους 2 Μηχανές Turing 3 Καθολικές γλώσσες προγραμματισμού 4 Μια μη υπολογίσιμη συνάρτηση 5 Πολυπλοκότητα προβλημάτων

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

Page 1: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

1 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

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

● 1 Συναρτήσεις και ο υπολογισµός τους

● 2 Μηχανές Turing ● 3 Καθολικές γλώσσες προγραµµατισµού

● 4 Μια µη υπολογίσιµη συνάρτηση

● 5 Πολυπλοκότητα προβληµάτων

Page 2: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

2 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Συναρτήσεις

● Μία συνάρτηση είναι µία αντιστοιχία µεταξύ ενός συνόλου πιθανών τιµών εισόδου και ενός συνόλου τιµών εξόδου, έτσι ώστε κάθε πιθανή είσοδος να αντιστοιχεί σε µία και µοναδική έξοδο. –  Υπολογίσιµη συνάρτηση είναι αυτή της οποίας η τιµή εξόδου µπορεί να προσδιοριστεί αλγοριθµικά από την τιµή εισόδου.

– Μη υπολογίσιµη είναι η συνάρτηση που δεν µπορεί να προσδιοριστεί από κανένα αλγόριθµο.

–  Υπολογιστικό πρόβληµα = συνάρτηση

Page 3: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

3 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Παραδείγµατα συναρτήσεων

Program input halts

P1 x1 0

P2 x2 0

P2 x3 1

Page 4: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

4 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Υπολογισιµότητα

 Υπάρχουν προβλήµατα που δεν µπορούν να λυθούν από ένα υπολογιστή; ΝΑΙ!

 Αρχική υπόθεση (Hilbert): κάθε καλώς ορισµένο πρόβληµα έχει µια απάντηση που µπορούµε να βρούµε!  δηµιουργία τυπικού µαθηµατικού συστήµατος που να

µπορεί να περιγράφει κάθε πρόβληµα  κατασκευή αλγορίθµου που να αποφασίζει (σωστό ή λάθος)

  Godel: Incompleteness theorem  Με βάση τα αξιώµατα της αριθµητικής για τους ακεραίους, υπάρχουν θεωρήµατα που δεν µπορούν να αποδειχθούν!

..

Page 5: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

5 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Άλυτα προβλήµατα (µέχρι σήµερα)

 Η εικασία του Goldbach: κάθε άρτιος αριθµός µπορεί να γραφεί σαν το άθροισµα δύο πρώτων αριθµών

 Τελευταίο θεώρηµα του Fermat: (λύθηκε πριν 10 χρόνια!) δεν υπάρχουν θετικοί ακέραιοι τέτοιοι ώστε

για  P = NP, Rieman hypothesis,...

nnn cba =+

cba ,,

2>n

Page 6: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

6 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Ιστορία •  Α. Turing: τι είναι υπολογίσιµο; •  Ένα πρόβληµα είναι υπολογίσιµο εάν κάποιος µπορεί να περιγράψει ένα σύνολο εντολών που εάν τις ακολουθήσουµε θα λύσουµε το πρόβληµα (effective procedure, or algorithm)

•  Για να γίνουµε όµως συγκεκριµένοι πρέπει να ορίσουµε τις ικανότητες της µηχανής που θα εκτελέσει τις εντολές.

•  Μηχανές µε διαφορετικές δυνατότητες θα µπορούσαν να εκτελούν διαφορετικά σύνολα εντολών, και άρα να µπορούν να επιλύσουν διαφορετικές κατηγορίες προβληµάτων

•  Ο Turing πρότεινε ένα τύπο µηχανών γνωστών σαν µηχανές Turing. •  Αυτές οι µηχανές βοήθησαν στον τυπικό ορισµό της υπολογιστικής διαδικασίας που ονοµάζουµε «Turing-υπολογισιµότητα» (Turing-computability)

•  Η διαισθητική πρόταση πως η Turing-υπολογισιµότητα περιλαµβάνει κάθε πιθανή αποτελεσµατική διαδικασία υπολογισµών αποτελεί την Church-Turing thesis

Page 7: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

7 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Τα στοιχεία µιας µηχανής Turing

Page 8: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

8 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Λειτουργίες µίας µηχανής Turing

● Είσοδοι σε κάθε βήµα. – Κατάσταση. – Τιµή στην τρέχουσα κυψελίδα της ταινίας.

● Οι ενέργειες σε κάθε βήµα – Γράφει µία τιµή στην τρέχουσα κυψελίδα της ταινίας.

– Κινεί την κεφαλή εγγραφή/ανάγνωσης. – Αλλάζει κατάσταση.

Page 9: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

9 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Μια µηχανή Turing για την αύξηση µιας τιµής κατά µία µονάδα

αγνοείται

Page 10: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

10 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Μια µηχανή Turing για την αύξηση µιας τιµής κατά µία µονάδα

αγνοείται

εν π κ Υ επ

τ

* | *,α

0 | 1,δ

1 | 0,α 0 | 1,δ

* | 1,α . | *,δ 0 | 0,δ

1 | 1,δ

* | *,no move * | *,δ

x | y,z x: τι διαβάζω y: τι γράφω z: προς τα που κουνάω την κεφαλή

*

Page 11: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

11 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Church-Turing thesis

•  Πρόβληµα: το ότι δεν υπάρχει αλγόριθµος που να λύνει µία κλάση προβληµάτων οφείλεται στο ότι το µοντέλο του υπολογιστή είναι αδύναµο;

•  Church-Turing: όλα τα µοντέλα υπολογιστών και αλγορίθµων που υπάρχουν ή µπορεί να προταθούν στο µέλλον είναι υπολογιστικά ισοδύναµα!

•  Μηχανή Turing •  λ-calculus

•  Άρα η µη-υπολογισιµότητα είναι ιδιότητα του προβλήµατος, και δεν εξαρτάται από το υπολογιστικό σύστηµα

Page 12: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

12 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Καθολική γλώσσα προγραµµατισµού

● Μία µηχανή Turing µπορεί να υπολογίσει κάθε υπολογίσιµη συνάρτηση. –  Επαναπροσδιορισµός: κάθε υπολογίσιµη συνάρτηση είναι υπολογίσιµη κατά Turing.

–  Δεν αποδεικνύεται αλλά είναι γενικά αποδεκτό. ●  Καθολική γλώσσα προγραµµατισµού είναι

µία γλώσσα που µπορεί να εκφράσει ένα πρόγραµµα υπολογισµού για κάθε υπολογίσιµη συνάρτηση. –  Παραδείγµατα:Η στοιχειώδης γλώσσα (Bare Bones) και οι πιο δηµοφιλείς γλώσσες προγραµµατισµού.

Page 13: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

13 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Η Στοιχειώδης Γλώσσα

● Η Στοιχειώδης Γλώσσα είναι µία απλή καθώς και καθολική γλώσσα.

● Προσδιορισµοί καταστάσεων: – clear όνοµα; – incr όνοµα; – decr όνοµα; – while όνοµα not 0 do; … end;

Page 14: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

14 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Ένα πρόγραµµα της Στοιχειώδους Γλώσσας για τον υπολογισµό του Χ x Y

Page 15: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

15 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Πρόγραµµα που γίνεται είσοδος σε άλλα προγράµµατα

Page 16: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

16 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Το πρόβληµα του τερµατισµού

Πρόβληµα απόφασης: Ισχύει η ιδιότητα A για δεδοµένα x ;

A? y n

x

Πρόβληµα υπολογίσιµο ó υπάρχει αλγόριθµος που απαντάει σωστά (και τερµατίζει) για όλες τις πιθανές εισόδους x (= στιγµιότυπο προβλήµατος)

1<≡ xAΠαράδειγµα:

Το πρόβληµα του τερµατισµού ενός προγράµµατος: το πρόγραµµα (αλγόριθµος) P µε είσοδο x σταµατάει κάποτε;

?)( ↓xP

xP,

y n

αλγόριθµος απόφασης

↓↓

Το πρόβληµα του αυτο-τερµατισµού; ?)( ↓PP

Page 17: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

17 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Το πρόβληµα του αυτο-τερµατισµού

Απόδειξη πώς δεν µπορεί να υπάρχει αλγόριθµος απόφασης:

?)( ↓PP

P

y n

Έστω πώς υπάρχει!

?)( ↓PP

y n

stop

P

⎩⎨⎧

↑↓↓↑)()(

)(PPifPPif

PHH

⎩⎨⎧

↑↓↓↑)()(

)(HHifHHif

HH

αντίφαση!!!!

Μ Μ

Page 18: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

18 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Η απόδειξη της αδυναµίας επίλυσης του προβλήµατος τερµατισµού

Page 19: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

19 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Συµβολισµός ασυµπτοτικής σχέσης

φράγµα άνω όασυµπτωτικ την έχει :))(()( gfngOnf ∈

kngnfn ⋅≤∞→ )()( , όταν

φράγµα κάτω και άνω όασυµπτωτικ την έχει :))(()( gfngnf Θ∈

21 )()()( , όταν kngnfkngn ⋅≤≤⋅∞→�

n2,5 ∈ O(n3), 2n2 +10n − 5∈ O(n2),2n + 2n2 ∈ O(2n )

)log(510log2),(5102 22 nnnnnnnn Θ∈−+Θ∈−+

Page 20: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

20 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Πολυπλοκότητα

Πολυπλοκότητα αλγορίθµου: ποσότητα πόρων (χρόνος, µνήµη) που χρησιµοποιεί ο αλγόριθµος •  ασυµπτωτική πολυπλοκότητα : ο όρος που υπερισχύει •  εκθετικοί και πολυωνυµικοί αλγόριθµοι •  πολυπλοκότητα χειρότερης, µέσης περίπτωσης Πολυπλοκότητα προβλήµατος: άνω φράγµα O(g(n)), κάτω φράγµα Ω(f(n)), ακριβώς Θ(.) εάν Ω(.) = Ο(.) �

3n2 +10n + 3→3n2 →Θ(n2)

2n + n3 + 5→Θ(2n )

2n3lognnnn logloglognΠαράδειγµα: πολλαπλασιασµός

κάτω φράγµα µικρότερο γνωστό άνω φράγµα ?

Θ

O(n2)

Ω(n)

Page 21: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

21 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Χρονική πολυπλοκότητα προβληµάτων

●  H χρονική πολυπλοκότητα αναφέρεται στο πλήθος των εκτελέσεων εντολών που απαιτούνται να εκτελεστούν.

● Ένα πρόβληµα είναι της τάξης O(f(n)) εάν µπορεί να λυθεί µε έναν αλγόριθµο της τάξης Θ(f(n)).

● Ένα πρόβληµα είναι της τάξης Θ(f(n)) εάν µπορεί να λυθεί µε έναν αλγόριθµο της τάξης Θ(f(n)) και δεν υπάρχει αλγόριθµος µικρότερης πολυπλοκότητας που να το λύνει

Page 22: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

22 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Παράδειγµα: πολλαπλασιασµός

1984 * 6713 5952

1984 13888 + 11904

13318592

n

Χρόνος: )( 2nΘ

Αλγόριθµος 1 Αλγόριθµος 2

19 84 67 13 Α Β Γ Δ

2/n

Α*Γ = 1273 (Α+Β)(Γ+Δ)-Α*Γ-ΒΔ = 5875 Β*Δ = 1092 ------------ 13318592

Τεχνική «διαίρει και βασίλευε»

Χρόνος: )()( 59.13log nn Θ=Θ

Page 23: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

23 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Διαίρει και βασίλευε

Κοινός τρόπος επίλυσης προβληµάτων: ανάγουµε το πρόβληµα στην λύση µικρότερων προβληµάτων!

Παράδειγµα: ταξινόµηση λίστας n αριθµών: module sort(list) if n>1 then {L1 = firsthalf(list); L2 = secondhalf(list); L1:= sort(L1); L2:= sort(L2); return L := merge(L1,L2)}

cnnTnT += )2/(2)(knncnnT += log)(

Page 24: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

24 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Η ιεραρχία των προβληµάτων που δηµιουργείται από τον αλγόριθµο της ταξινόµησης συγχώνευσης, πολυπλοκότητα

logn

n

n

Θ(n logn)

Page 25: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

25 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Γραφήµατα των µαθηµατικών παραστάσεων ν, lg v, v lg v και v2

Page 26: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

26 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Χρόνος εκτέλεσης αλγορίθµων

10 3x10-9 10-8 10-7 10-6

100 7x10-9 10-7 0.00001 4x1011

αιώνες 1000 10-8

10-6 0.001 *

10000 1.3x10-8

10-5 0.1 *

100000 1.7x10-8

0.0001 10

*

1000000 2x10-8

0.001

0.27ω

nµέγεθος εισόδου n2log n 2n n2 πολυπλοκότητα

αλγορίθµου

1ns

sec

1 βήµα =

Page 27: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

27 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Τάξη P

● Τάξης P είναι όλα τα προβλήµατα σε κάθε τάξη Θ(g(n)), όπου το g(n) είναι πολυώνυµο.

● Δισεπίλυτα (ή µη-εφικτά) είναι όλα τα προβλήµατα που είναι πολύ πολύπλοκα για να επιλυθούν πρακτικά. – Οι περισσότεροι επιστήµονες υπολογιστών θεωρούν την τάξη Ρ όριο µεταξύ δισεπίλυτων και αυτών που έχουν πρακτική λύση.

Page 28: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

28 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Μη εφικτά προβλήµατα

Προβλήµατα µη υπολογίσιµα σε πολυωνυµικό χρόνο Το πρόβληµα της συσκευασίας

Ν κιβώτια βάρους µπορούν να µεταφερθούν από Κ φορτηγά που το καθένα µπορεί να σηκώσει το πολύ W;

Nwww ,,, 21 …

8 5

5

4 3

3 14=W

14=W

Page 29: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

29 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Μη εφικτά προβλήµατα (2)

Το πρόβληµα του πλανόδιου πωλητή Με δεδοµένο ένα χάρτη δρόµων µε Ν πόλεις και τις αντίστοιχες χιλιοµετρικές αποστάσεις, είναι δυνατόν ένας πωλητής να ολοκληρώσει κάποιο ταξίδι όπου

•  περνάει από κάθε πόλη ακριβώς µία φορά •  η συνολική διαδροµή έχει µήκος < Κ

κύκλος Hamilton

Page 30: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

30 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

The knapsack problem

Page 31: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

31 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Τάξη ΝΡ (Nondeterministic Polynomial)

●  Τάξης ΝΡ είναι όλα τα προβλήµατα που µπορούν να επιλυθούν από έναν µη αιτιοκρατικό αλγόριθµο σε πολυωνυµικό χρόνο. Πολλά από τα δύσκολα προβλήµατα που µας ενδιαφέρουν είναι στο ΝΡ (αποκρυπτογράφηση, συσκευασία, πλανώδιος πωλητής,...) –  Μη αιτιοκρατικός είναι ο αλγόριθµος του οποίου τα βήµατα µπορεί να µην είναι µοναδικά (άρα και αιτιοκρατικά) σε κάθε κατάσταση: ρίχνει ζάρια για να αποφασίσει πως να προχωρήσει.

●  Χαρακτηριστικό των προβληµήτων NP είναι ότι η λύση είναι υπολογιστικά εφικτό ! (όχι να βρεθεί!) ●  µια µη-ντετερµινιστική µηχανή µπορεί να διαλέξει στην τύχη µια λύση και να την επαληθεύσει σε πολυωνυµικό χρόνο

●  Είναι ακόµα άγνωστο αν η τάξη ΝΡ είναι µεγαλύτερη της τάξης Ρ (P=?NP).

P NP

Page 32: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

32 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Μια γραφική σύνοψη της κατηγοριοποίησης προβληµάτων

Page 33: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

33 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Πολυωνυµική αναγωγή

•  Πολυωνυµική αναγωγή (ΠΑ) Ρ2->Ρ1:

•  Το πρόβληµα P2 το κωδικοποιώ σε πολ. χρόνο σαν µια µερική περίπτωση του P1.

•  Λύνω το P1, και από την λύση του κατασκευάζω µε πολυωνυµικό κόστος την λύση του P2

•  Ρ2->Ρ1 => Ρ1 “πιο δύσκολο” από το Ρ2

P1

P2

P3

ΠΑ εάν λύνεται σε πολυωνυµικό χρόνο το Ρ1, τότε λύνεται σε πολ. χρόνο και το Ρ2

P1 ≥ P2

P1 ≥ P2

a × b = ((a + b)2 − a2 − b2 )2

Page 34: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

34 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Προβλήµατα NP-complete •  NP-hard: σύνολο των προβληµάτων που είναι τουλάχιστον τόσο «δύσκολα» όσο οποιοδήποτε πρόβληµα στην κλάση NP

NP

NP-hard

NP-complete

•  Ένα πρόβληµα είναι στο NP-hard όταν κάθε πρόβληµα στο NP ανάγεται µε πολυωνυµικό κόστος σε αυτό

•  NP-complete = NP-hard NP •  Εάν λυθεί σε πολυωνυµικό χρόνο ένα πρόβληµα στο NP-complete τότε λύνονται πολυωνυµικά όλα τα προβλήµατα στο NP

NP

P ∈NP − hard ⇔ P ≥Q,∀Q∈NP

Page 35: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

35 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Προβλήµατα NP-complete (2)

P1

P3

= NP πρόβληµα

Πολυωνυµική αναγωγή

Βήµα 1: βρίσκω το πρώτο πρόβληµα στο ΝΡ-complete. P1: Πιο δύσκολο πρόβληµα στο NP. Όλα τα προβλήµατα στο ΝΡ ανάγωνται πολυωνυµικά στο Ρ1 (`έξυπνη’ απόδειξη, 1971 by Stephen Cook) Βήµα 2: προσθέτω περισσότερα προβλήµατα στο ΝΡ-complete. P2 στο ΝΡ-complete εάν Ρ1 ανάγεται πολ. στο Ρ2. Ρ3 στο ΝΡ-complete εάν Ρ1 ή Ρ2 ανάγονται στο Ρ3, κλπ...

P2

Page 36: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

36 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Παράδειγµα (3-SAT)

•  SAT (Satisfiability): δεδοµένης µίας boolean φόρµουλας, υπάρχουν τιµές για τις µεταβλητές που να την κάνουν TRUE;

•  3-SAT: η φόρµουλα είναι το λογικό ΚΑΙ (AND) σχέσεων (clauses) οι οποίες είναι το λογικό ‘Η (OR) το πολύ 3 µεταβλητών. Π.χ. (µε 4 clauses)

•  Θεώρηµα του Cook: To 3-SAT είναι NP-complete

))(())(( 132321 xxxxxx ∨∧∧∨∧ 0,0,1 321 === xxx

)()()()( 321321321321 xxxxxxxxxxxx ∨∨∧∨∨∧∨∨∧∨∨

Page 37: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

37 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Κ-Graph Independent Set (K-IGS)

•  Σε ένα γράφο G, υπάρχει σύνολο Κ κόµβων οι οποίοι να µην είναι γειτονικοί (να µην υπάρχει ακµή που να τους συνδέει) ;

•  Είναι NP-complete;

K=4

Page 38: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

38 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Αναγωγή του 3-SAT στο Κ-independent set

)()()()( 321321321321 xxxxxxxxxxxx ∨∨∧∨∨∧∨∨∧∨∨

1x 2x 3x

1x 2x 3x

1x

2x

3x

4=K1x

2x

3x

Page 39: ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 2 Turingpages.cs.aueb.gr/courses/epl131/files/Ch12_Computation_Theory.pdf · Κεφάλαιο 12: «Θεωρία Υπολογισµών»

39 Κεφάλαιο 12: «Θεωρία Υπολογισµών»

Βήµατα στην αναγωγή

1.  Αρχίζω µε µία οποιαδήποτε φόρµουλα (η είσοδος στο 3- SAT πρόβληµα)

2.  Κατασκευάζω µε έξυπνο γενικό τρόπο ένα γράφο που κωδικοποιεί τα δεδοµένα της φόρµουλας, και η ερώτηση για την φόρµουλα ανάγεται σε ερώτηση εάν ο γράφος έχει Κ ανεξάρτητες κορυφές (Κ = αριθµός από παρενθέσεις στην φόρµουλα)

3.  Προσέχω ώστε η κατασκευή του γράφου να είναι πολυωνυµική στο µέγεθος της φόρµουλας

4.  Αποτέλεσµα: •  Δεδοµένου πως το 3-SAT είναι ΝΡ-complete, τότε και το K-

GIS είναι ΝΡ-complete •  Άρα εάν λύνεται το «Κ-ανεξάρτητες κορυφές» πρόβληµα σε

πολυωνυµικό χρόνο, τότε λύνεται και το 3-SAT σε πολυωνυµικό χρόνο