Download as pdf or txt
Download as pdf or txt
You are on page 1of 48

Θεωρία Υπολογισμού

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

Παναγιώτης Ρουβέλας
28 Ιανουαρίου 2022

Τμήμα Μηχανικών Πληροφορικής και Υπολογιστών, Πανεπιστήμιο Δυτικής Αττικής


Η κλάση P
Η κλάση P

Είδαμε ότι υπάρχουν επιλύσιμα και μη επιλύσιμα προβλήματα. Όμως,


ποια επιλύσιμα προβλήματα είναι πρακτικά επιλύσιμα;

Είναι πρακτικά επιλύσιμο ένα πρόβλημα το οποίο απαιτεί εκθετικό πλήθος


βημάτων (ως το μέγεθος της εισόδου) για να επιλυθεί; Σαφώς και όχι.
Με βάση τη μέχρι τώρα εμπειρία μας στους υπολογισμούς, η πιο ρεαλιστική
προσέγγιση της έννοιας του πρακτικά εφικτού αλγορίθμου είναι αυτή του
αλγορίθμου που τερματίζει σε πολυωνυμικό πλήθος βημάτων.

1
Η κλάση P

Ορισμός
Μία μηχανή Turing M = (K, Σ, δ, s, H) ονομάζεται πολυωνυμικά φραγμένη
αν υπάρχει πολυώνυμο p(n) τέτοιο ώστε να ισχύει το εξής: για κάθε είσοδο
w μήκους n, δεν υπάρχει συνολική κατάσταση C τέτοια ώστε
p(n)+1
(s, ▷⊔w) ⊢M C.

Δηλαδή, η M τερματίζει σίγουρα μετά από p(n) το πολύ βήματα.


Μία γλώσσα ονομάζεται πολυωνυμικά αποφασίσιμη αν αποφασίζεται από
κάποια πολυωνυμικά φραγμένη μηχανή Turing. Συμβολίζουμε με P την
κλάση των πολυωνυμικά αποφασίσιμων γλωσσών.

Παρατήρηση
Η κλάση P περιλαμβάνει στην ουσία τα προβλήματα (αποφασισιμότητας)
που επιδέχονται πρακτικά εφικτή επίλυση.

2
Η κλάση P

Η κλάση P ικανοποιεί αρκετές ιδιότητες κλειστότητας. Ας δούμε μία από


αυτές.

Θεώρημα
Η κλάση P είναι κλειστή ως προς το συμπλήρωμα.

Απόδειξη. Έστω ότι L ∈ P. Τότε, υπάρχει κάποια πολυωνυμικά φραγμένη


μηχανή Turing M που την αποφασίζει.
Έστω M′ η μηχανή Turing που προκύπτει από την M αν αντιστρέψουμε τα y
και n. Προφανώς, η M′ αποφασίζει την L και τερματίζει στο ίδιο πλήθος
βημάτων που τερματίζει η M.
Επομένως, η L είναι πολυωνυμικά αποφασίσιμη, δηλαδή L ∈ P.

3
Η κλάση P

Θεώρημα
Η γλώσσα

E = {«M»«w» : η M δέχεται την w μετά από 2|w| το πολύ βήματα}

δεν είναι πολυωνυμικά φραγμένη, δηλαδή E ∈


/ P.

Απόδειξη. Έστω ότι E ∈ P. Τότε, και η εξής γλώσσα ανήκει στην P:


E1 = {«M» : η M δέχεται την «M» μετά από 2|w| το πολύ βήματα}
(αφού έχουμε κάποια πολυωνυμικά φραγμένη μηχανή Turing που
αποφασίζει την E, έχουμε και κάποια που αποφασίζει την E1 ), οπότε από το
προηγούμενο θεώρημα έχουμε
E1 ∈ P,
δηλαδή υπάρχει πολυωνυμικά φραγμένη μηχανή Turing M1 που αποφασίζει
την E1 .
Άρα υπάρχει πολυώνυμο p(n) τέτοιο ώστε η M1 να τερματίζει σε p(n) το
πολύ βήματα όταν δέχεται είσοδο μήκους n.
4
Η κλάση P

Απόδειξη (συν.). Γνωρίζουμε ότι υπάρχει κάποιο n0 έτσι ώστε για κάθε
n ≥ n0 , p(n) ≤ 2n . Μπορούμε επίσης να υποθέσουμε ότι |«M1 »| ≥ n0
(διαφορετικά απλά προσθέτουμε στην M1 άχρηστες καταστάσεις).
Υπάρχουν δύο πιθανές περιπτώσεις. Είτε η M1 δέχεται την «M1 » είτε την
απορρίπτει. Θα εξετάσουμε την πρώτη περίπτωση και θα οδηγηθούμε σε
άτοπο (ανάλογα δουλεύουμε και στη δεύτερη).
Έστω ότι η M1 δέχεται την «M1 ». Αφού η M1 αποφασίζει την E1 , θα πρέπει να
μην δέχεται την «M1 » σε p(|«M1 »|) το πολύ βήματα. Όμως, η M1 τερματίζει
σε p(|«M1 »|) ≤ 2|«M1 »| το πολύ βήματα. Άρα, η M1 θα πρέπει να απορρίπτει
την «M1 », άτοπο. Συνεπώς, E ∈ / P.

5
Προβλήματα
Γλώσσες και προβλήματα

Όπως είδαμε, σε κάθε γλώσσα L ⊆ Σ∗ αντιστοιχεί το εξής:


ΠΡΟΒΛΗΜΑ ΑΠΟΦΑΣΗΣ ΤΗΣ L
Δεδομένης μίας συμβολοσειράς w ∈ Σ∗ , ισχύει ότι w ∈ L;

Και αντίστροφα, όμως, κάθε πρόβλημα μπορεί να εκφραστεί ως πρόβλημα


απόφασης μίας γλώσσας. Για παράδειγμα, το πρόβλημα του τερματισμού
ΠΡΟΒΛΗΜΑ ΤΟΥ ΤΕΡΜΑΤΙΣΜΟΥ
Δεδομένων μίας μηχανής Turing M και μίας συμβολοσειράς εισόδου w,
δέχεται η M τη w;

μπορεί να εκφραστεί ως το πρόβλημα απόφασης της γλώσσας


H = {«M»«w» : η M τερματίζει με είσοδο w}.

Πρακτικά λοιπόν οι δύο διατυπώσεις (γλώσσα και πρόβλημα) είναι


ισοδύναμες, και γι αυτό πολλές φορές θα τις ταυτίζουμε. Για παράδειγμα
όταν θα λέμε ότι ένα πρόβλημα ανήκει στο P, θα εννοούμε ότι η αντίστοιχη
γλώσσα ανήκει στο P.
6
Παρατηρήσεις πάνω στον υπολογισμό πολυπλοκότητας

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

• Κάθε πρόβλημα περιέχει κάποιες παραμέτρους. Για παράδειγμα, το


πρόβλημα του ΤΕΡΜΑΤΙΣΜΟΥ έχει ως παραμέτρους μία μηχανή Turing M
και μία συμβολοσειρά w. Αυστηρά, κάθε φορά που θα μελετάμε την
πολυπλοκότητα ενός τέτοιου προβλήματος θα πρέπει να λαμβάνουμε
υπόψη και την κωδικοποίηση των παραμέτρων αυτών ως
συμβολοσειρές (π.χ., στο πρόβλημα του ΤΕΡΜΑΤΙΣΜΟΥ, την
κωδικοποίηση «M»«w»). Αυτό όμως δεν θα το κάνουμε συνήθως γιατί
οι κωδικοποιήσεις επηρεάζουν ελάχιστα τη συνολική πολυπλοκότητα
του προβλήματος (με δεδομένο ότι δεν χρησιμοποιούμε παράλογα
πολύπλοκες κωδικοποιήσεις).

7
Παρατηρήσεις πάνω στον υπολογισμό πολυπλοκότητας

• Μία δεύτερη απλοποιητική παραδοχή που θα κάνουμε είναι το ότι αντί


να μελετάμε το πρόβλημα με βάση το μήκος των κωδικοποιημένων
εισόδων, θα μελετάμε απλά το βασικό μέγεθος τους ως μαθηματικά
αντικείμενα. Για παράδειγμα, όταν ένα πρόβλημα αναφέρεται σε κάποιο
σύνολο K, θα θεωρούμε συνήθως ότι το μέγεθος του K είναι το πλήθος
των στοιχείων του και όχι το μήκος της συμβολοσειράς «K» που το
κωδικοποιεί.

8
Συνεκτικότητα

Τα προβλήματα που αναφέρονται σε γράφους είναι πολύ χρήσιμα στον


υπολογισμό πολυπλοκότητας, γιατί μέσω αυτών μπορούν να εκφραστούν
πολλά άλλα είδη προβλημάτων. Το παρακάτω πρόβλημα είναι ίσως το πιο
απλό πρόβλημα που αφορά γράφους.

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


Δεδομένων ενός κατευθυνόμενου γράφου G ⊆ V × V, όπου V = {v1 , . . . , vn }
είναι πεπερασμένο σύνολο, και δύο κόμβων vi , vj ∈ V, υπάρχει μονοπάτι
από τον vi στον vj ;

Το πρόβλημα της ΣΥΝΕΚΤΙΚΟΤΗΤΑΣ μπορεί να επιλυθεί σε χρόνο O(n3 ) από


τον αλγόριθμο που υπολογίζει την ανακλαστική μεταβατική κλειστότητα
(που είχαμε περιγράψει στην εισαγωγή). Ο αλγόριθμος αυτός μπορεί να
υλοποιηθεί από μία μηχανή Turing τυχαίας προσπέλασης και επομένως από
μία πρότυπη μηχανή Turing με το πολύ πολυωνυμικά υψηλότερη
πολυπλοκότητα. Συνεπώς, το πρόβλημα της ΣΥΝΕΚΤΙΚΟΤΗΤΑΣ είναι στο P.

9
Γράφοι Euler

Ένα από τα πιο κλασικά προβλήματα που αναφέρονται σε γράφους είναι το


εξής:
ΚΥΚΛΟΣ EULER
Δεδομένου ενός γράφου G, υπάρχει κύκλος στο G ο οποίος χρησιμοποιεί
κάθε ακμή ακριβώς μία φορά;

Ένας γράφος που περιέχει τέτοιον κύκλο ονομάζεται γράφος Euler. Ποιοι
γράφοι, όμως, είναι γράφοι Euler; Στους παρακάτω δύο γράφους, ο
αριστερά είναι γράφος Euler ενώ ο δεξιά δεν είναι.

10
Γράφοι Euler

Αποδεικνύεται ότι
Θεώρημα
Ένας γράφος G είναι γράφος Euler αν και μόνο αν ικανοποιεί τα εξής:

(i) Αν u, v ∈ V δύο μη απομονωμένοι κόμβοι του G (ένα κόμβος λέγεται


απομονωμένος αν υπάρχει ακμή με άκρο αυτόν), τότε υπάρχει μονοπάτι
από τον u στον v.
(ii) Όλοι οι κόμβοι έχουν ίσο αριθμό εισερχόμενων και εξερχόμενων ακμών.

Χρησιμοποιώντας το θεώρημα αυτό είναι πολύ εύκολο να ορίσουμε έναν


αλγόριθμο που λύνει το πρόβλημα ΚΥΚΛΟΣ EULER: Πρώτα ελέγχουμε αν
ικανοποιείται η ιδιότητα (i), υπολογίζοντας την ανακλαστική μεταβατική
κλειστότητα του G. Αυτό μπορεί να γίνει σε πολυωνυμικό χρόνο. Μετά,
ελέγχουμε για κάθε κόμβο αν ο αριθμός των εισερχόμενων και εξερχόμενων
ακμών είναι ίσος. Αυτό, επίσης, μπορεί να ολοκληρωθεί σε πολυωνυμικό
χρόνο. Επομένως, το πρόβλημα ΚΥΚΛΟΣ EULER είναι στο P.

11
Γράφοι Hamilton

Το επόμενο πρόβλημα είναι παραλλαγή του ΚΥΚΛΟΣ EULER.


ΚΥΚΛΟΣ HAMILTON
Δεδομένου ενός γράφου G, υπάρχει κύκλος που περνάει από κάθε κόμβο
του G ακριβώς μία φορά;

Ένας γράφος που περιέχει τέτοιον κύκλο ονομάζεται γράφος Hamilton.


Στους παρακάτω δύο γράφους, ο αριστερά είναι και Euler και Hamilton, ενώ
ο δεξιά είναι μόνο Hamilton (ένα γράφος μπορεί να είναι Hamilton χωρίς να
είναι Euler).

Ως τώρα δεν έχει βρεθεί αλγόριθμος πολυωνυμικού χρόνου που να λύνει το


πρόβλημα ΚΥΚΛΟΣ HAMILTON. Ο προφανής αλγόριθμος που το λύνει είναι
εκθετικού χρόνου. 12
Περιοδεύων πωλητής

Το επόμενο πρόβλημα που θα παρουσιάσουμε είναι αυτό του


περιοδεύοντος πωλητή. Ας το διατυπώσουμε πρώτα άτυπα.
Έστω {c1 , . . . , cn } ένα σύνολο από πόλεις, και ένας n × n πίνακας (dij ) από
μη αρνητικούς ακεραίους dij , όπου κάθε dij συμβολίζει την απόσταση της
πόλης ci από τη cj (επομένως για κάθε i, j, ισχύει ότι dii = 0 και dij = dji ).
Ποια είναι η συντομότερη διαδρομή που διέρχεται από όλες τις πόλεις
ακριβώς μία φορά και επιστρέφει στην αρχική πόλη;
Με άλλα λόγια, για ποια συνάρτηση π : {1, . . . , n} → {1, . . . , n}
ελαχιστοποιείται η τιμή

c(π) = dπ(1)π(2) + dπ(2)π(3) + · · · + dπ(n−1)π(n) + dπ(n)π(1) ;

13
Περιοδεύων πωλητής

Παρατηρούμε ότι το πρόβλημα αυτό δεν μπορεί να απαντηθεί με ένα ναι ή


ένα όχι. Για να διατυπωθεί στη μορφή αυτή αρκεί να το θέσουμε ως εξής:
Για ένα δεδομένο B (προϋπολογισμός) υπάρχει συνάρτηση π έτσι
ώστε c(π) ≤ B;

Προφανώς, αν μπορούσαμε να λύσουμε το πρόβλημα αυτό σε πολυωνυμικό


χρόνο, θα μπορούσαμε να λύσουμε και το γενικότερο πρόβλημα
βελτιστοποίησης σε πολυωνυμικό χρόνο.

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

14
Περιοδεύων πωλητής

Μπορούμε πλέον να διατυπώσουμε αυστηρά το πρόβλημα.

ΠΕΡΙΟΔΕΥΩΝ ΠΩΛΗΤΗΣ
Δεδομένων ενός φυσικού n ≥ 2, ενός n × n πίνακα (dij ), και ενός φυσικού
B, υπάρχει συνάρτηση π : {1, . . . , n} → {1, . . . , n} έτσι ώστε

dπ(1)π(2) + dπ(2)π(3) + · · · + dπ(n−1)π(n) + dπ(n)π(1) ≤ B;

Για το πρόβλημα αυτό πιστεύουμε ότι δεν υπάρχει αλγόριθμος που να το


λύνει σε πολυωνυμικό χρόνο.

15
Ανεξάρτητο σύνολο και κλίκα

Δύο προβλήματα βελτιστοποίησης που σχετίζονται μεταξύ τους είναι τα εξής:

ΑΝΕΞΑΡΤΗΤΟ ΣΥΝΟΛΟ
Δεδομένων ενός μη κατευθυνόμενου γράφου G και ενός φυσικού K ≥ 2,
υπάρχει C ⊆ V (ανεξάρτητο σύνολο) με |C| ≥ K τέτοιο ώστε για κάθε
vi , vj ∈ C, να μην υπάρχει ακμή μεταξύ των vi και vj ;

ΚΛΙΚΑ
Δεδομένων ενός μη κατευθυνόμενου γράφου G και ενός φυσικού K ≥ 2,
υπάρχει C ⊆ V (κλίκα) με |C| ≥ K τέτοιο ώστε για κάθε vi , vj ∈ C, να υπάρχει
ακμή μεταξύ των vi και vj ;

Στην ουσία τα δύο προβλήματα είναι δυϊκά, δηλαδή αναζητούν C με εντελώς


αντίθετες ιδιότητες. Όπως και για το ΠΕΡΙΟΔΕΥΩΝ ΠΩΛΗΤΗΣ, έτσι κι εδώ δεν
γνωρίζουμε αν τα προβλήματα αυτά ανήκουν στο P.

16
Επικάλυψη με κόμβους

Το επόμενο πρόβλημα ελαχιστοποίησης είναι άγνωστο επίσης αν βρίσκεται


στο P.
ΕΠΙΚΑΛΥΨΗ ΜΕ ΚΟΜΒΟΥΣ
Δεδομένων ενός μη κατευθυνόμενου γράφου G και ενός φυσικού K ≥ 2,
υπάρχει C ⊆ V (επικάλυψη με κόμβους) με |C| ≥ K τέτοιο ώστε το C να
καλύπτει όλες τις ακμές του G (δηλαδή για κάθε ακμή του G να υπάρχει
τουλάχιστον ένας κόμβος του C που να είναι άκρο της ακμής);

Στον παρακάτω γράφο, το μεγαλύτερο ανεξάρτητο σύνολο έχει τρεις


κόμβους, η μεγαλύτερη κλίκα έχει τέσσερις κόμβος, και η μικρότερη
επικάλυψη με κόμβους έχει έξι κόμβους.

17
Διαμερίσεις

Υπάρχουν περιπτώσεις στις οποίες η κωδικοποίηση των παραμέτρων ενός


προβλήματος επηρεάζουν την πολυπλοκότητα του.
Ας δούμε για παράδειγμα το εξής πρόβλημα διαμέρισης:
Δεδομένου ενός συνόλου φυσικών αριθμών S = {a1 , . . . , an }, υπάρ-
χει διαμέριση του S σε δύο σύνολα έτσι ώστε τα αθροίσματα των
αριθμών που περιέχονται στα δύο αυτά σύνολα να είναι ίσα;

Παράδειγμα
Το σύνολο {1, 3, 4, 7, 10, 15} μπορεί να διαμεριστεί σε δύο σύνολα {3, 7, 10}
και {1, 4, 15} έτσι ώστε 3 + 7 + 10 = 1 + 4 + 15. Το σύνολο {2, 4, 6, 8, 11},
όπως και κάθε σύνολο με άθροισμα αριθμών περιττό αριθμό, δεν μπορεί
να διαμεριστεί σε δύο τέτοια σύνολα.

18
Διαμερίσεις

Ας δούμε πως μπορούμε να λύσουμε το πρόβλημα της διαμέρισης. Έστω


S = {a1 , . . . , an } σύνολο φυσικών και έστω H = a1 +···+a
2
n
. Θεωρούμε ότι το H
είναι φυσικός, αλλιώς το πρόβλημα έχει ήδη λυθεί αφού δεν υπάρχει
ζητούμενη διαμέριση του S. Για κάθε i ∈ {0, . . . , n}, ορίζουμε
B(i) = {b ≤ H : b = ai1 + · · · + aim , για κάποια ai1 , . . . , aim ∈ S}.
Αν βρούμε έναν αλγόριθμο που υπολογίζει B(n), τότε μπορούμε να λύσουμε
το πρόβλημα της διαμέρισης εξετάζοντας απλά αν H ∈ B(n).
Ένας αλγόριθμος που το κάνει αυτό είναι ο εξής:
B(0) := {0}
for i = 1, . . . , n do
B(i) := B(i − 1),
for j = ai , . . . , H do
if j − ai ∈ B(i − 1) then πρόσθεσε το j στο B(i).

Ο αλγόριθμος υπολογίζει σταδιακά όλα τα πιθανά αθροίσματα των στοιχείων


του B(i) που δεν υπερβαίνουν το H. Για παράδειγμα, αν a1 = 1, a2 = 3,
a3 = 4, a4 = 7, a5 = 10, a6 = 15, τότε B(0) = {0}, B(1) = {0, 1},
B(2) = {0, 1, 3, 4}, B(3) = {0, 1, 3, 4, 5, 7}, . . .. 19
Διαμερίσεις

Ο αλγόριθμος που μόλις παρουσιάσαμε έχει πολυπλοκότητα O(nH).


Επομένως, η πολυπλοκότητα του εξαρτάται απόλυτα από το μέγεθος του H,
και επομένως από τον τρόπο με τον οποίο αυτό κωδικοποιείται. Ας δούμε τι
σημαίνει αυτό πρακτικά.
ΔΙΑΜΕΡΙΣΗ
Δεδομένων φυσικών a1 , . . . , an σε δυαδική μορφή, υπάρχει P ⊆ {1, . . . , n}
έτσι ώστε Σi∈P ai = Σi∈P
/ ai ;

ΜΟΝΑΔΙΑΙΑ ΔΙΑΜΕΡΙΣΗ
Δεδομένων φυσικών a1 , . . . , an σε μοναδιαία μορφή (δηλαδή το n
κωδικοποιείται ως 1 . . 1}), υπάρχει P ⊆ {1, . . . , n} έτσι ώστε
| .{z
n
Σi∈P ai = Σi∈P
/ ai ;

Στο πρώτο πρόβλημα, το nH είναι προφανώς εκθετικό, ενώ στο δεύτερο


πολυωνυμικό. Ενώ δηλαδή το πρόβλημα ΜΟΝΑΔΙΑΙΑ ΔΙΑΜΕΡΙΣΗ βρίσκεται
στο P, το πρόβλημα ΔΙΑΜΕΡΙΣΗ πιθανότατα δεν βρίσκεται στο P.
20
Λογική Bool

Το επόμενο πρόβλημα που θα παρουσιάσουμε αφορά την


ικανοποιησιμότητα τύπων Bool. Πριν το διατυπώσουμε αυστηρά, ας
επαναλάβουμε μερικές βασικές έννοιες της Προτασιακής λογικής.
Η Προτασιακή λογική ή λογική Bool είναι στην ουσία το απλούστερο
σύστημα μέσω του οποίου μπορούμε να περιγράψουμε βασικούς κανόνες
συμπερασμού, δηλαδή κανόνες που διέπουν τον τρόπο με τον οποίο
εξάγουμε συμπεράσματα από κάποιες υποθέσεις.
Τα σύμβολα της λογικής Bool είναι

• οι προτασιακές μεταβλητές x1 , x2 , . . ., και


• οι σύνδεσμοι:
∨ («ή»),
∧ («και»),
¬ («όχι»),
→ («αν… τότε…»), και
↔ («αν και μόνο αν»).

21
Λογική Bool

Οι τύποι Bool είναι εκφράσεις (δηλαδή πεπερασμένες ακολουθίες


συμβόλων) της λογικής Bool που σχηματίζονται αναδρομικά ως εξής:

(i) Κάθε προτασιακή μεταβλητή xi είναι τύπος.


(ii) Αν ο σ είναι τύπος, τότε και ο (¬σ) είναι τύπος.
(iii) Αν οι σ, τ είναι τύποι, τότε οι (σ ∧ τ ), (σ ∨ τ ), (σ → τ ), (σ ↔ τ ) είναι
τύποι.

Παράδειγμα
Οι εκφράσεις ((x1 ∧ x2 ) ∨ (¬x3 )) και (¬(x2 → x1 )) ↔ x4 ) είναι τύποι Bool,
ενώ οι x1 ∨ x2 ∧ x3 και ¬x1 ¬ ∨ x2 δεν είναι.

22
Ικανοποιησιμότητα

Απόδοση τιμών αληθείας ή αποτίμηση T ονομάζουμε κάθε συνάρτηση από


το σύνολο των προτασιακών μεταβλητών {x1 , x2 , . . .} στο σύνολο {⊤, ⊥}
(όπου το ⊤ συμβολίζει το «αληθές» και ⊥ το «ψευδές»).
Για κάθε αποτίμηση T υπάρχει συνάρτηση T από το σύνολο των τύπων Bool
στο σύνολο {⊤, ⊥} τέτοια ώστε

(i) Για κάθε i > 0, T(xi ) = T(xi ).


(ii) Αν οι σ, τ είναι τύποι Bool, τότε
• T((¬σ)) = ⊤ αν και μόνο αν T(σ) = ⊥.
• T((σ ∨ τ )) = ⊤ αν και μόνο αν T(σ) = ⊤ ή T(τ ) = ⊤.
• T((σ ∧ τ )) = ⊤ αν και μόνο αν T(σ) = ⊤ και T(τ ) = ⊤.
• T((σ → τ )) = ⊤ αν και μόνο αν T(σ) = ⊥ ή T(τ ) = ⊤.
• T((σ ↔ τ )) = ⊤ αν και μόνο αν T(σ) = T(τ ).

Λέμε ότι η T ικανοποιεί έναν τύπο Bool σ αν T(σ) = ⊤. Λέμε ότι ένας τύπος
Bool είναι ικανοποιήσιμος αν υπάρχει αποτίμηση που ικανοποιεί τον τύπο
αυτό.

23
Παράδειγμα

Έστω αποτίμηση T τέτοια ώστε T(x1 ) = T(x3 ) = ⊤ και T(x2 ) = T(x4 ) = ⊥.


Έχουμε
T(((x1 ∧ x2 ) ∨ (¬x3 ))) = ⊤ ⇔ T((x1 ∧ x2 )) = ⊤ ή T((¬x3 )) = ⊤
⇔ (T(x1 ) = ⊤ και T(x2 )) = ⊤) ή T(x3 ) = ⊥
⇔ (T(x1 ) = ⊤ και T(x2 )) = ⊤) ή T(x3 ) = ⊥
Αφού η τελευταία σχέση δεν ισχύει, έχουμε ότι T(((x1 ∧ x2 ) ∨ (¬x3 )) = ⊥.
Ο τύπος Bool ((x1 ∧ x2 ) ∨ (¬x3 )) είναι ικανοποιήσιμος, αφού αν T αποτίμηση
τέτοια ώστε T(x3 ) = ⊥, τότε T(((x1 ∧ x2 ) ∨ (¬x3 ))) = ⊤. Αντίθετα, ο τύπος
Bool (x1 ∧ (¬x1 )) δεν είναι ικανοποιήσιμος αφού αν υπήρχε αποτίμηση T
που τον ικανοποιούσε θα έπρεπε να ισχύει T((x1 ∧ (¬x1 ))) = ⊤, δηλαδή θα
έπρεπε T(x1 ) = ⊤ και T(x2 ) = ⊥ το οποίο είναι αδύνατο.
Παρατήρηση
Προφανώς, η τιμή T(σ) (και επομένως και η ικανοποιησιμότητα της σ)
εξαρτάται μόνο από τις τιμές της T στις προτασιακές μεταβλητές που
εμφανίζονται στη σ.
24
Λογική ισοδυναμία

Δύο τύποι Bool σ και τ θα λέμε ότι είναι λογικά ισοδύναμοι (θα γράφουμε
σ |==| τ ) αν για κάθε αποτίμηση T, ισχύει T(σ) = T(τ ).
Μερικές βασικές λογικές ισοδυναμίες είναι οι εξής:

(σ ∧ (τ ∧ ρ)) |==| ((σ ∧ τ ) ∧ ρ) (προσεταιριστική)


(σ ∨ (τ ∨ ρ)) |==| ((σ ∨ τ ) ∨ ρ) (προσεταιριστική)
(σ ∧ (τ ∨ ρ)) |==| ((σ ∧ τ ) ∨ (σ ∧ ρ)) (επιμεριστική)
(σ ∨ (τ ∧ ρ)) |==| ((σ ∨ τ ) ∧ (σ ∨ ρ)) (επιμεριστική)
(¬(¬σ)) |==| σ (διπλή άρνηση)
(¬(σ ∨ τ )) |==| ((¬σ) ∧ (¬τ )) (κανόνας De Morgan)
(¬(σ ∧ τ )) |==| ((¬σ) ∨ (¬τ )) (κανόνας De Morgan)

25
Απλοποίηση συμβολισμού

Απλοποιούμε τον συμβολισμό μας ακολουθώντας τις εξής συμβάσεις:

• Λόγω της προσεταιριστικής ιδιότητας (για τους ∧ και ∨), θα


παραλείπουμε τις παρενθέσεις στις πολλαπλές συζεύξεις και διαζεύξεις.
• Θα παραλείπουμε τις εξωτερικές παρενθέσεις στους τύπους.
• Θα παραλείπουμε επίσης τις παρενθέσεις ακολουθώντας την εξής
προτεραιότητα των πράξεων: ο ¬ έχει προτεραιότητα έναντι των ∨, ∧ οι
οποίοι έχουν προτεραιότητα έναντι των →, ↔.

Επομένως, θα γράφουμε για παράδειγμα

¬σ ∨ τ ∨ ρ → σ ∨ ρ

αντί για
((((¬σ) ∨ τ ) ∨ ρ) → (σ ∨ ρ)).

26
Ικανοποιησιμότητα

Ένα τύπος Bool θα λέμε ότι είναι σε κανονική συζευκτική μορφή αν είναι της
μορφής σ1 ∧ · · · ∧ σn , όπου κάθε σi είναι μία διάζευξη αποτελούμενη από
προτασιακές μεταβλητές και αρνήσεις προτασιακών μεταβλητών.
Για παράδειγμα, ο τύπος x1 ∧ (x2 ∨ ¬x1 ) ∧ (x1 ∨ ¬x3 ) είναι σε κανονική
συζευκτική μορφή.
Αποδεικνύεται ότι κάθε τύπος Bool είναι λογικά ισοδύναμος με κάποιον
τύπο σε κανονική συζευκτική μορφή.
Μπορούμε πλέον να διατυπώσουμε το εξής δομικό πρόβλημα για τη Θεωρία
πολυπλοκότητας.

ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ
Δεδομένου ενός τύπου Bool σ σε κανονική συζευκτική μορφή, είναι ο σ
ικανοποιήσιμος;

27
Ικανοποιησιμότητα

Η επίλυση του προβλήματος ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ είναι σαφώς πολύ


απαιτητική υπολογιστικά μιας και απαιτεί να ελεγχθούν μία-μία όλες οι
πιθανές αποτιμήσεις T μέχρι να βρεθεί κάποια ώστε που να ικανοποιεί τον σ
(θυμίζουμε βέβαια ότι μας ενδιαφέρουν μόνο οι τιμές της T για τις
προτασιακές μεταβλητές που εμφανίζονται στον σ).
Ας δούμε πως γίνεται ο έλεγχος ικανοποιησιμότητας ενός τύπου. Έστω
τύπος Bool ρ ο οποίος βρίσκεται σε κανονική μορφή, δηλαδή σε μορφή

σ1 ∧ · · · ∧ σn ,

όπου κάθε σi είναι της μορφής τi,1 ∨ · · · ∨ τi,ki και κάθε τi,j είναι προτασιακή
μεταβλητή ή άρνηση προτασιακής μεταβλητής. Τους τύπους σ1 , . . . , σn θα
τους καλούμε συνθήκες του ρ. Παρατηρούμε ότι ο ρ είναι ικανοποιήσιμος αν
και μόνο αν υπάρχει αποτίμηση που ικανοποιεί κάθε συνθήκη του ρ. Κάθε
συνθήκη σi του ρ ικανοποιείται αν και μόνο αν ικανοποιείται τουλάχιστον
ένας από τους τύπους τi,1 , . . . , τi,ki .

28
2-ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ

Το πρόβλημα ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ είναι απίθανο να βρίσκεται στο P, όμως


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

2-ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ
Δεδομένου ενός τύπου Bool σ σε κανονική συζευκτική μορφή, είναι
ικανοποιήσιμος ο σ αν κάθε συνθήκη του σ είναι

• είτε προτασιακή μεταβλητή ή άρνηση προτασιακής μεταβλητής,


• είτε της μορφής τ ∨ ρ, όπου τ, ρ είναι προτασιακές μεταβλητές ή
αρνήσεις προτασιακών μεταβλητών;

Το 2-ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ αναφέρεται σε τύπους οι οποίοι είναι συζεύξεις


τύπων που αποτελούνται από το πολύ δύο διαζευκταίους, όπως για
παράδειγμα ο εξής:

(x1 ∨ x3 ) ∧ (¬x1 ∨ ¬x2 ) ∧ (x3 ∨ ¬x4 ) ∧ (x4 ∨ ¬x3 ) ∧ x1 .

29
2-ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ

Θα ορίσουμε έναν αλγόριθμο που λύνει το πρόβλημα


2-ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ περιγράφοντας τον μέσα από ένα παράδειγμα.
Έστω σ ο τύπος

(x1 ∨ x3 ) ∧ (¬x1 ∨ ¬x2 ) ∧ (x3 ∨ ¬x4 ) ∧ (x4 ∨ ¬x3 ) ∧ x1 .

Σε κάθε βήμα του αλγορίθμου, υπάρχουν δύο περιπτώσεις:

• είτε υπάρχει συνθήκη του σ που δεν είναι διάζευξη


• είτε κάθε συνθήκη του σ είναι διάζευξη δύο τύπων.

30
2-ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ

Ας υποθέσουμε ότι υπάρχει συνθήκη του σ που δεν είναι διάζευξη. Έστω xi η
μοναδική προτασιακή μεταβλητή που εμφανίζεται σε μία τέτοια συνθήκη.
Θα περιγράψουμε πως μπορούμε να εκκαθαρίσουμε την xi στον σ. Έστω
πρώτα ότι η συνθήκη αυτή δεν περιέχει άρνηση, δηλαδή είναι η xi (στο
παράδειγμα μας x1 ). Για να υπάρχει αποτίμηση T που ικανοποιεί τον σ, θα
πρέπει T(xi ) = ⊤. Αν υπάρχει συνθήκη ¬xi , τότε προφανώς ο σ δεν είναι
ικανοποιήσιμος (λέμε ότι η εκκαθάριση απέτυχε), ενώ αν δεν υπάρχει, τότε
διαγράφουμε κάθε συνθήκη του σ που είναι διάζευξη του xi με κάποιον άλλο
τύπο (αυτές ικανοποιούνται από την T), και επίσης διαγράφουμε και τους ¬xi
από κάθε συνθήκη του σ (αφού ο ¬xi δεν ικανοποιείται).
Στο παράδειγμα μας, αυτό σημαίνει ότι μετατρέπουμε τον σ σε

¬x2 ∧ (x3 ∨ ¬x4 ) ∧ (x4 ∨ ¬x3 )

31
2-ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ

Στην περίπτωση που η συνθήκη που δεν είναι διάζευξη δύο τύπων είναι η
άρνηση ¬xi , δουλεύουμε αντίστοιχα. Συγκεκριμένα, διαγράφουμε αυτή τη
φορά κάθε συνθήκη που είναι διάζευξη του xi με κάποιον άλλο τύπο, και
διαγράφουμε και τους xi από κάθε συνθήκη του σ.
Στο παράδειγμα μας, επομένως, στο επόμενο βήμα εκκαθαρίζουμε την x2
μετατρέποντας τον τύπο

¬x2 ∧ (x3 ∨ ¬x4 ) ∧ (x4 ∨ ¬x3 )

σε
(x3 ∨ ¬x4 ) ∧ (x4 ∨ ¬x3 ).

32
2-ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ

Ας δούμε τώρα τι συμβαίνει στην περίπτωση που κάθε συνθήκη του σ είναι
διάζευξη δύο τύπων. Για παράδειγμα στον τύπο
(x3 ∨ ¬x4 ) ∧ (x4 ∨ ¬x3 ).

Έστω xi προτασιακή μεταβλητή που εμφανίζεται σε κάποια συνθήκη του σ


(για παράδειγμα η x3 ). Σε αυτή την περίπτωση, δοκιμάζουμε να
εκκαθαρίσουμε την μεταβλητή xi θεωρώντας ότι η xi είναι συνθήκη του σ. Αν
η εκκαθάριση αποτύχει (αν δηλαδή οδηγηθούμε σε τύπο που δεν είναι
ικανοποιήσιμος), τότε δοκιμάζουμε να εκκαθαρίσουμε την μεταβλητή xi
θεωρώντας ότι η ¬xi είναι συνθήκη του σ. Αν και οι δύο εκκαθαρίσεις
αποτύχουν, τότε ο σ είναι μη ικανοποιήσιμος. Έστω ότι μία από τις δύο
εκκαθαρίσεις είναι επιτυχής. Για παράδειγμα, εκκαθαρίζοντας την x3
θεωρώντας την ως συνθήκη του, ο παραπάνω τύπος γίνεται
x4 .
Συνεχίσουμε τη διαδικασία αυτή μέχρι να φτάσουμε σε έναν τύπο ο οποίος
περιέχει μία συνθήκη που δεν είναι διάζευξη (στο παράδειγμα μας ήδη
έχουμε φτάσει σε αυτό το σημείο). Μπορούμε πλέον να αποφανθούμε ότι ο
τύπος μας είναι ικανοποιήσιμος. 33
2-ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ

Ο προηγούμενος αλγόριθμος υλοποιείται πολύ εύκολα από μία μηχανή


Turing η οποία τερματίζει πάντα σε πολυωνυμικό χρόνο.
Αυτό συμβαίνει γιατί για κάθε μεταβλητή xi , η εκκαθάριση της xi μπορεί να
πραγματοποιηθεί σε πολυωνυμικό χρόνο, και απαιτούνται δύο το πολύ
εκκαθαρίσεις για κάθε μεταβλητή.
Επομένως, το πρόβλημα 2-ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ βρίσκεται στο P.

34
Η κλάση N P
Η ισχύς του μη ντετερμινισμού

Θα πρέπει να έχει γίνει σαφές ως τώρα ότι οι μη ντετερμινιστικές μηχανές


Turing μπορούν να επιλύουν προβλήματα με εντυπωσιακά αποδοτικό τρόπο
(χωρίς δηλαδή να χρειάζεται να σπαταλήσουν πολλούς πόρους). Αυτό
οφείλεται στο ότι μπορούν σε πολύ μικρό πλήθος βημάτων να εξετάσουν
πολλούς πιθανούς υπολογισμούς.

35
Η κλάση N P

Στην ενότητα αυτή, θα μελετήσουμε την αποδοτικότητα του μη


ντετερμινισμού εστιάζοντας στην κλάση N P, το αντίστοιχο της κλάσης P
αλλά για μη ντετερμινιστικές μηχανές Turing.

Ορισμός
Μία μη ντετερμινιστική μηχανή Turing M = (K, Σ, ∆, H) ονομάζεται
πολυωνυμικά φραγμένη αν υπάρχει πολυώνυμο p(n) τέτοιο ώστε για κάθε
είσοδο w μεγέθους n, να μην υπάρχει συνολική κατάσταση C της M για την
οποία
p(n)+1
(s, ▷⊔w) ⊢M C,
δηλαδή η M χρειάζεται το πολύ p(n) βήματα για να τερματίσει. Ορίζουμε
N P να είναι η κλάση όλων των γλωσσών που αποφασίζονται από
πολυωνυμικά φραγμένες μη ντετερμινιστικές μηχανές Turing.

Όπως θα δούμε, η κλάση N P περιλαμβάνει πολλά προβλήματα τα οποία


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

36
Προβλήματα

Το πρόβλημα ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ φαίνεται να μην ανήκει στην κλάση P.


Βρίσκεται όμως στην N P. Έστω μη ντετερμινιστική μηχανή Turing M με δύο
ταινίες που λειτουργεί ως εξής:
1. Ελέγχει αν η είσοδος w είναι κωδικοποίηση τύπου Bool που βρίσκεται σε
κανονική συζευκτική μορφή, και μετράει το πλήθος n των διαφορετικών
μεταβλητών που εμφανίζονται στον τύπο. Αφού το κάνει αυτό, γράφει
στη δεύτερη ταινία τη συμβολοσειρά In (δηλαδή n φορές το I).
2. Αντιγράφει μη ντετερμινιστικά κάθε I στη δεύτερη ταινία με ⊤ ή ⊥. Με
άλλα λόγια, αναθέτει μη ντετερμινιστικά μία τιμή αλήθειας σε κάθε
μεταβλητή του τύπου Bool του οποίου εξετάζει την ικανοποιησιμότητα.
3. Σαρώνει τον κωδικοποιημένο τύπο Bool της πρώτης ταινίας και
αντικαθιστά την i-οστή μεταβλητή με ⊤ ή ⊥ ανάλογα με το αν το i-οστό
σύμβολο της συμβολοσειράς της δεύτερης ταινίας είναι ⊤ ή ⊥
αντίστοιχα. Σαρώνει άλλη μία φορά φορά τη συμβολοσειρά της πρώτης
ταινίας αναζητώντας μία συνθήκη που περιέχει τουλάχιστον ένα ⊤. Αν
αυτό συμβεί, τότε δέχεται την είσοδο, αλλιώς την απορρίπτει.
Η M προφανώς είναι πολυωνυμικά φραγμένη και αποφασίζει το πρόβλημα
37
ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ.
Προβλήματα

Το πρόβλημα ΠΕΡΙΟΔΕΥΩΝ ΠΩΛΗΤΗΣ αποφασίζεται από μία πολυωνυμικά


φραγμένη μη ντετερμινιστική μηχανή Turing με δύο ταινίες που λειτουργεί
ως εξής:

1. Γράφει στη δεύτερη ταινία μία ακολουθία από 0, 1, ⊔ (όχι μεγαλύτερου


μήκους από αυτό της εισόδου) και ελέγχει αν αυτή η ακολουθία
(αριθμών σε δυαδική μορφή χωρισμένων από το ⊔) κωδικοποιεί μία 1-1
και επί συνάρτηση π : {1, . . . , n} → {1, . . . , n} (όπου n το πλήθος των
πόλεων).
2. Υπολογίζει το άθροισμα c(π) και ελέγχει αν

dπ(1)π(2) + dπ(2)π(3) + · · · + dπ(n−1)π(n) + dπ(n)π(1) ≤ B.

Αν ισχύει, τότε δέχεται την είσοδο, αλλιώς την απορρίπτει.

Με παρόμοιο τρόπο αποδεικνύεται ότι και τα προβλήματα ΑΝΕΞΑΡΤΗΤΟ


ΣΥΝΟΛΟ, ΚΥΚΛΟΣ HAMILTON και ΔΙΑΜΕΡΙΣΗ βρίσκονται στην κλάση N P.

38
Πιστοποιητικά

Όπως είδαμε, τόσο στο πρόβλημα ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ όσο και στο


ΠΕΡΙΟΔΕΥΩΝ ΠΩΛΗΤΗΣ (αντίστοιχα και στα υπόλοιπα), το βασικό βήμα της
λειτουργίας των μη ντετερμινιστικών μηχανών Turing που επιλύουν τα
προβλήματα αυτά συνίσταται στο
να παράξουν μη ντετερμινιστικά μία συμβολοσειρά και στη συνέχεια
να ελέγξουν αν αυτή ικανοποιεί συγκεκριμένες. ιδιότητες

Οι συμβολοσειρές αυτές ονομάζονται πιστοποιητικά (ή μάρτυρες) και


χαρακτηρίζουν τα προβλήματα στην κλάση N P.

39
Πιστοποιητικά

Είναι σημαντικό να τονίσουμε ότι τα πιστοποιητικά είναι πάντα


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

Ορισμός
/ Σ. Έστω γλώσσα L′ ⊆ Σ∗ ;Σ∗ . Λέμε ότι η
Έστω Σ αλφάβητο, και έστω ότι ; ∈

L είναι πολυωνυμικά ισορροπημένη αν υπάρχει πολυώνυμο p(n) έτσι ώστε

αν x; y ∈ L′ , τότε |y| ≤ p(|x|),

δηλαδή αν x; y ∈ L′ , τότε το μέγεθος της συμβολοσειράς y που ακολουθεί


το «; » είναι το πολύ πολυωνυμικά μεγαλύτερη της συμβολοσειράς x που
προηγείται του «; ».

40
Πιστοποιητικά

Θεώρημα
Έστω L ⊆ Σ∗ γλώσσα όπου ; ∈ / Σ και |Σ| ≥ 2. Τότε, L ∈ N P αν και μόνο αν
υπάρχει μία πολυωνυμικά ισορροπημένη γλώσσα L′ ⊆ Σ∗ ; Σ∗ τέτοια ώστε
L′ ∈ P και L = {x : υπάρχει y ∈ Σ∗ έτσι ώστε x; y ∈ L′ }.

Απόδειξη. Στην ουσία, η L′ του θεωρήματος για κάθε x ∈ L παρέχει κι ένα


πιστοποιητικό y.
(⇐) Έστω ότι η L′ ικανοποιεί τις ιδιότητες της εκφώνησης. Η L αποφασίζεται
από τη μη ντετερμινιστική μηχανή που με είσοδο x, επιλέγει μη
ντετερμινιστικά μία συμβολοσειρά y και ελέγχει αν x; y ∈ L′ . Αυτό μπορεί να
το κάνει σε πολυωνυμικό χρόνο μιας και η L′ είναι πολυωνυμικά
ισορροπημένη. Άρα, L ∈ N P.
(⇒) Έστω L ∈ N P. Η L αποφασίζεται από μία πολυωνυμικά φραγμένη μη
ντετερμινιστική μηχανή M. Πιστοποιητικό για κάθε είσοδο x είναι ουσιαστικά
κάθε υπολογισμός της M που οδηγεί σε αποδοχή. Κάθε τέτοιος υπολογισμός
θα είναι αναγκαστικά το πολύ πολυωνυμικά μεγαλύτερος της x, οπότε η L′
που θα οριστεί με αυτό τον τρόπο θα είναι πολυωνυμικά ισορροπημένη.
41
Η κλάση EX P

Μία ακόμα κλάση πολυπλοκότητας που προκύπτει απόλυτα φυσικά είναι η


εξής:

Ορισμός
Μία μηχανή Turing M = (K, Σ, δ, H) ονομάζεται εκθετικά φραγμένη αν
υπάρχει πολυώνυμο p(n) τέτοιο ώστε για κάθε είσοδο x μεγέθους n, να
μην υπάρχει συνολική κατάσταση C της M για την οποία
p(n)
(s, ▷⊔x) ⊢2M +1
C,

δηλαδή η M χρειάζεται το πολύ 2p(n) βήματα για να τερματίσει. Ορίζουμε


EX P να είναι η κλάση όλων των γλωσσών που αποφασίζονται από
εκθετικά φραγμένες μηχανές Turing.

42
Σχέση N P και EX P

Θεώρημα
N P ⊆ EX P.

Απόδειξη. Έστω γλώσσα L ∈ N P. Υπάρχει μη ντετερμινιστική μηχανή Turing


M που αποφασίζει την L σε πολυωνυμικό πλήθος βημάτων p(n). Έστω M′ η
μηχανή Turing που προσομοιώνει την M:

Θυμίζουμε ότι για κάθε συνολική κατάσταση της M, υπάρχουν το πολύ r στο
πλήθος συνολικές καταστάσεις στις οποίες μπορεί να μεταβεί σε ένα βήμα. Η
M′ προσομοιώνει σταδιακά όλους τους υπολογισμούς της M ξεκινώντας από
αυτούς με μήκος 1, μετά προσομοιώνει αυτούς που έχουν μήκος 2, κοκ. Η
προσομοίωση κάθε μετάβασης απαιτεί σταθερό αριθμό βημάτων m.
Επιπλέον, η M τερματίζει σε p(n) το πολύ βήματα. Επομένως, η M′ τερματίζει
σε
p(n)+1
X
(rm)l ≤ (rm + 1)p(n)+1
l=1
43
βήματα (το l διατρέχει το μήκος των υπολογισμών). Άρα, L ∈ EX P.
P vs N P vs EX P

Ποια είναι η σχέση μεταξύ των βασικών κλάσεων πολυπλοκότητας P, N P,


EX P;
Γνωρίζουμε ότι P ⊆ N P, γιατί κάθε ντετερμινιστική μηχανή Turing είναι και
μη ντετερμινιστική. Επίσης, εξ ορισμού έχουμε P ⊆ EX P. Άρα,

P ⊆ N P ⊆ EX P.

Η μόνο σχέση που μπορούμε να αποδείξουμε πέρα από αυτό είναι ότι

P ̸= EX P,

γιατί E ∈ EX P και E ∈
/ P.
Παρά τη μεγάλη ερευνητική προσπάθεια, δεν γνωρίζουμε αν P ̸= N P ή αν
N P ̸= EX P.

44

You might also like