You are on page 1of 23

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

N P-πληρότητα

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

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


Αναγωγές πολυωνυμικού χρόνου
N P-πληρότητα

Στην προηγούμενη ενότητα, εντοπίσαμε και κατατάξαμε ως προς την


πολυπλοκότητα τους διάφορα βασικά προβλήματα. Μερικά από αυτά είδαμε
ότι βρίσκονται στην κλάση P και μερικά άλλα στην κλάση N P.
Στην ενότητα αυτή, θα προσπαθήσουμε να ξεχωρίσουμε τα πιο
χαρακτηριστικά προβλήματα που πιστεύουμε ότι δεν βρίσκονται στο P
(εφόσον P ̸= N P).
Τα συγκεκριμένα προβλήματα τα ονομάζουμε N P-πλήρη, γιατί κάθε άλλο
πρόβλημα της κλάσης N P μπορεί να αναχθεί μέσω κάποιας πολυωνυμικής
αναγωγής σε αυτά.

1
Πολυωνυμική αναγωγή

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


πολυωνυμικό πλήθος βημάτων.

Ορισμός
Μία συνάρτηση f : Σ∗ → Σ∗ λέμε ότι είναι υπολογίσιμη σε πολυωνυμικό
χρόνο αν υπάρχει μία πολυωνυμικά φραγμένη μηχανή Turing M που την
υπολογίζει.
Έστω γλώσσες L1 , L2 ⊆ Σ∗ . Πολυωνυμική αναγωγή από την L1 στην L2
ονομάζουμε κάθε υπολογίσιμη σε πολυωνυμικό χρόνο συνάρτηση
τ : Σ∗ → Σ∗ για την οποία ισχύει

x ∈ L1 ⇔ τ (x) ∈ L2 .

2
Παρατηρήσεις

• Όπως κάναμε και στις αναγωγές που χρησιμοποιήσαμε στη μη


επιλυσιμότητα, έτσι κι εδώ, θα αναφερόμαστε συνήθως σε αναγωγές
μεταξύ προβλημάτων θεωρώντας ότι αναφερόμαστε στις αντίστοιχες
γλώσσες των προβλημάτων. Για να απλοποιήσουμε ακόμα περισσότερο
τη διαδικασία του ορισμού μίας αναγωγής, θα ταυτίζουμε τις
παραμέτρους των προβλημάτων με τις κωδικοποιήσεις τους (αφού
ούτως άλλως δεν παίζουν κάποιο ρόλο).
• Η ύπαρξη πολυωνυμικής αναγωγής από μία γλώσσα L1 σε μία γλώσσα
L2 υποδηλώνει ότι το πρόβλημα της απόφασης της L2 είναι τουλάχιστον
όσο δύσκολο είναι και το πρόβλημα της απόφασης της L2 . Με όρους
προβλημάτων, αν ένα πρόβλημα A ανάγεται πολυωνυμικά σε ένα
πρόβλημα B, τότε το πρόβλημα B είναι τουλάχιστον όσο δύσκολο είναι
και το A. Δηλαδή, αν μπορεί κάποιος να επιλύσει αποδοτικά το B, τότε
μπορεί να επιλύσει αποδοτικά και το A.

3
Παράδειγμα αναγωγής

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


χαρακτηριστικό πρόβλημα της κλάσης N P μιας και κάθε άλλο πρόβλημα
της κλάσης N P μπορεί να αναχθεί σε αυτό.
Ας ορίσουμε για παράδειγμα μία πολυωνυμική αναγωγή από το πρόβλημα
ΚΥΚΛΟΣ HAMILTON στο πρόβλημα ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ, δηλαδή από τη
γλώσσα
L1 = {G : G γράφος Hamilton}
στη γλώσσα

L2 = {σ : σ ικανοποιήσιμος τύπος Bool σε κανονική συζευκτική μορφή }

(γράφουμε G και σ αντί για τις κωδικοποιήσεις τους, γιατί όπως είπαμε θα
θεωρούμε ότι αυτά ταυτίζονται).
Θα ορίσουμε μία υπολογίσιμη σε πολυωνυμικό χρόνο συνάρτηση τ : L1 → L2
τέτοια ώστε
G ∈ L1 ⇔ τ (G) ∈ L2 .

4
Παράδειγμα αναγωγής

Έστω G γράφος με σύνολο κορυφών V = {v1 , . . . , vn }. Θα ορίσουμε έναν


τύπο Bool τ (G) στον οποίο θα εμφανίζονται n2 στο πλήθος προτασιακές
μεταβλητές που συμβολίζουμε με xi,j , όπου i, j ∈ {1, . . . , n}.
Η πρόθεση μας είναι να ορίσουμε τον τ (G) έτσι ώστε κάθε xi,j να
ερμηνεύεται ως η δήλωση
«ο κόμβος vi είναι ο j-οστός κόμβος στον κύκλο Hamilton».

Ο τύπος τ (G) ουσιαστικά θα εκφράζει τη σύζευξη των εξής δηλώσεων:


(i) «για κάθε j ∈ {1, . . . , n}, τουλάχιστον ένας κόμβος είναι ο j-οστός
κόμβος στον κύκλο Hamilton»

(x1,j ∨ x2,j ∨ · · · ∨ xn,j )
j∈{1,...,n}

(χρησιμοποιούμε το σύμβολο i∈I ϕi για να συμβολίσουμε τη σύζευξη
όλων των ϕi για i ∈ I).
(ii) «το πολύ ένας κόμβος είναι ο j-οστός κόμβος στον κύκλο Hamilton»

(¬xi,j ∨ ¬xi,k ).
i,j,k∈{1,...,n}
j̸=k 5
Παράδειγμα αναγωγής

(iii) «κάθε κόμβος εμφανίζεται τουλάχιστον μία φορά στον κύκλο Hamilton»

(xi,1 ∨ xi,2 ∨ · · · ∨ xi,n ).
i∈{1,...,n}

(iv) «κάθε κόμβος εμφανίζεται το πολύ μία φορά στον κύκλο Hamilton»

(¬xi,j ∨ ¬xk,j ).
i,j,k∈{1,...,n}
i̸=k

(v) «αν δύο κόμβοι δεν είναι συνδέονται με ακμή, τότε δεν μπορεί να είναι
διαδοχικοί κόμβοι στον κύκλο Hamilton»

(¬xi,j ∨ ¬xk,j+1 ).
j∈{1,...,n}
(vi ,vk )∈G
/

6
Παράδειγμα αναγωγής

Παρατηρούμε ότι ο τύπος Bool τ (G) έχει συνολικό μήκος O(n3 ), άρα η
κατασκευή του μπορεί να γίνει σε πολυωνυμικό χρόνο. Επομένως, η
συνάρτηση τ : L1 → L2 που αντιστοιχεί κάθε γράφο G στον τύπο τ (G) που
ορίσαμε παραπάνω είναι πολυωνυμικά υπολογίσιμη.
Μένει να δείξουμε ότι G ∈ L1 αν και μόνο αν τ (G) ∈ L2 .
(⇒) Έστω ότι G ∈ L1 . Τότε, ο γράφος G είναι γράφος Hamilton, δηλαδή
περιέχει κάποιον κύκλο Hamilton (vt1 , . . . , vtn ) για κάποια
t1 , . . . , tn ∈ {1, . . . , n}. Έστω αποτίμηση T που ορίζεται έτσι ώστε για κάθε
για κάθε i, j ∈ {1, . . . , n},

T(xi,j ) = ⊤ ⇔ j = ti .

Είναι προφανές ότι η T ικανοποιεί τον τ (G) αφού ικανοποιεί όλες τις
συνθήκες του. Άρα, ο τ (G) είναι ικανοποιήσιμος, δηλαδή τ (G) ∈ L2 .

7
Κύκλος Hamilton

(⇐) Αντίστροφα τώρα, έστω ότι τ (G) ∈ L2 . Τότε, ο τ (G) είναι ικανοποιήσιμος
από κάποια αποτίμηση T.
Έστω vti το μοναδικό στοιχείο του V για το οποίο ισχύει T(xi,ti ) = ⊤ (το ότι
υπάρχει μοναδικό τέτοιο στοιχείο προκύπτει από το ότι η T ικανοποιεί τον
τ (G)). Είναι εύκολο να επαληθευθεί ότι ο (vt1 , . . . , vtn ) είναι κύκλος Hamilton.

8
Σύνθεση πολυωνυμικών αναγωγών

Η σχέση της πολυωνυμικής αναγωγής είναι μεταβατική. Με άλλα λόγια, αν


ανάγουμε ένα πρόβλημα A σε ένα άλλο B και μετά ανάγουμε το B σε κάποιο
C, τότε το A ανάγεται στο C.
Λήμμα
Αν τ1 πολυωνυμική αναγωγή από την L1 στην L2 και τ2 πολυωνυμική
αναγωγή από την L2 στην L3 , τότε η σύνθεση τους τ1 ◦ τ2 είναι
πολυωνυμική αναγωγή από την L1 στην L3 .

Απόδειξη. Έστω M1 ντετερμινιστική μηχανή Turing που υπολογίζει την τ1 σε


πολυωνυμικό χρόνο p1 (n), και M2 ντετερμινιστική μηχανή Turing που
υπολογίζει την τ2 σε πολυωνυμικό χρόνο p2 (n). Η M1 M2 είναι ντετερμινιστική
μηχανή Turing που υπολογίζει την τ1 ◦ τ2 σε πολυωνυμικό χρόνο
p1 (n) + p2 (n + p1 (n)) (έχουμε p2 (n + p1 (n)) και όχι p2 (n), γιατί το μέγεθος
της εισόδου μπορεί να έχει μεγαλώσει το πολύ κατά p1 (n) μέχρι να φτάσει
στην M2 ). Επιπλέον, ισχύει
x ∈ L1 ⇔ τ1 (x) ∈ L2 ⇔ τ2 (τ1 (x)) ∈ L3
Άρα, η τ1 ◦ τ2 είναι πολυωνυμική αναγωγή από την L1 στην L3 .
9
N P-πληρότητα

Μπορούμε τώρα να δώσουμε έναν αυστηρό ορισμό της N P-πληρότητας.


Ορισμός
Μία γλώσσα L ⊆ Σ∗ ονομάζεται N P-πλήρης αν ανήκει στην κλάση N P,
και επιπλέον για κάθε γλώσσα L′ ∈ N P, υπάρχει πολυωνυμική αναγωγή
από την L′ στην L.

Θεώρημα
Έστω L μία N P-πλήρης γλώσσα. Τότε, P = N P αν και μόνο αν L ∈ P.

Απόδειξη. (⇒) Αν P = N P, τότε L ∈ N P = P.


(⇐) Έστω L′ ∈ N P. Έστω M1 ντετερμινιστική μηχανή Turing που αποφασίζει
την L σε πολυωνυμικό χρόνο p1 (n). Η L ανάγεται στην L′ μέσω κάποιας
πολυωνυμικής αναγωγής τ , οπότε υπάρχει κάποια ντετερμινιστική μηχανή
Turing M2 που υπολογίζει την τ σε χρόνο p2 (n). Η M2 M1 είναι μία
ντετερμινιστική μηχανή Turing που αποφασίζει την L′ και τερματίζει σε
πολυωνυμικό χρόνο p1 (n + p2 (n)) (όπως και στο προηγούμενο λήμμα),
οπότε L′ ∈ P. Άρα, N P ⊆ P, δηλαδή P = N P.
10
Βασικά N P-πλήρη προβλήματα
Ικανοποιησιμότητα

Η έννοια της N P-πληρότητας θα ήταν προφανώς άχρηστη αν δεν υπήρχαν


N P-πλήρη προβλήματα. Το πρώτο πρόβλημα που αποδείχθηκε ότι είναι
N P-πλήρες είναι το πρόβλημα ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ (το συγκεκριμένο
αποτέλεσμα οφείλεται στον Cook).

Θεώρημα του Cook


Το πρόβλημα ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ είναι N P-πλήρες.

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

Ας δούμε μερικές παραλλαγές του προβλήματος ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ που


είναι επίσης N P-πλήρη προβλήματα. Το πρώτο είναι μία παραλλαγή του
προβλήματος 2-ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ.

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

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


• διάζευξη δύο ή τριών τύπων που είναι προτασιακές μεταβλητές ή
αρνήσεις προτασιακών μεταβλητών;

Λόγω της μεταβατικότητας της σχέσης της πολυωνυμικής αναγωγής,


γνωρίζουμε ότι για να δείξουμε ότι ένα πρόβλημα A είναι N P-πλήρες, αρκεί
να ορίσουμε μία πολυωνυμική αναγωγή από ένα N P-πλήρες πρόβλημα B
στο A.

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

Θεώρημα
Το πρόβλημα 3-ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ είναι N P-πλήρες.

Απόδειξη. Είναι εύκολο να δειχθεί ότι το πρόβλημα 3-ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ


ανήκει στην κλάση N P. Θα ορίσουμε μία πολυωνυμική αναγωγή από το
πρόβλημα ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ στο πρόβλημα 3-ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ,
δηλαδή από τη γλώσσα

L1 = {σ : σ ικανοποιήσιμος τύπος Bool σε κανονική συζευκτική μορφή }

στη γλώσσα

L2 = {σ : σ ικανοποιήσιμος τύπος Bool σε κανονική συζευκτική μορφή


κάθε συνθήκη του οποίου είναι
είτε μία προτασιακή μεταβλητή ή άρνηση της,
είτε διάζευξη δύο ή τριών τύπων Bool που είναι
προτασιακές μεταβλητές ή αρνήσεις τους}

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

Απόδειξη (συν.).Έστω f : L1 → L2 έτσι ώστε για κάθε τύπο Bool σ, ο τύπος


Bool f(σ) είναι ο τύπος Bool που προκύπτει αν κάθε συνθήκη λ1 ∨ · · · ∨ λn
του σ, όπου n > 3, αντικατασταθεί από έναν λογικά ισοδύναμο τύπο Bool

(λ1 ∨ λ2 ∨ ρ1 ) ∧ (¬ρ1 ∨ λ3 ∨ ρ2 ) ∧ (¬ρ2 ∨ λ4 ∨ ρ3 )∧


· · · ∧ (¬ρn−4 ∨ λn−2 ∨ ρn−3 ) ∧ (¬ρn−3 ∨ λn−1 ∨ λn ).

Η συνάρτηση f είναι πολυωνυμικά υπολογίσιμη. Επιπλέον, σ ∈ L1 αν και μόνο


αν f(σ) ∈ L2 .

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

Μία ακόμα παραλλαγή του προβλήματος ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ είναι η εξής:


MAX SAT
Δεδομένου ενός τύπου Bool σ σε κανονική συζευκτική μορφή και ενός
φυσικού k, υπάρχει αποτίμηση που ικανοποιεί ακριβώς k συνθήκες του σ;

Θεώρημα
Το πρόβλημα MAX SAT είναι N P-πλήρες.

Απόδειξη. Είναι εύκολο να δειχθεί ότι το πρόβλημα MAX SAT ανήκει στην
κλάση N P. Θα ορίσουμε μία πολυωνυμική αναγωγή από το πρόβλημα
ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑ στο πρόβλημα MAX SAT, δηλαδή από τη γλώσσα
L1 = {σ : σ ικανοποιήσιμος τύπος Bool σε κανονική συζευκτική μορφή }
στη γλώσσα

L2 = {(σ, k) : υπάρχει αποτίμηση που ικανοποιεί ακριβώς k συνθήκες του σ}.


Έστω f : L1 → L2 έτσι ώστε για κάθε τύπο Bool σ, f(σ) = (σ, k), όπου k το
πλήθος των συνθηκών του σ. Προφανώς, η f είναι πολυωνυμικά
15
υπολογίσιμη και ισχύει σ ∈ L1 αν και μόνο αν f(σ) ∈ L2 .
Άλλα παραδείγματα N P-πλήρων προβλημάτων

Τα παρακάτω προβλήματα που παρουσιάσαμε σε προηγούμενη ενότητα


είναι N P-πλήρη:

• ΚΥΚΛΟΣ HAMILTON.
• ΠΕΡΙΟΔΕΥΩΝ ΠΩΛΗΤΗΣ.
• ΔΙΑΜΕΡΙΣΗ.
• ΑΝΕΞΑΡΤΗΤΟ ΣΥΝΟΛΟ.
• ΚΛΙΚΑ.
• ΕΠΙΚΑΛΥΨΗ ΜΕ ΚΟΜΒΟΥΣ.

Οι αποδείξεις N P-πληρότητας για τα προβλήματα αυτά γίνονται μέσω της


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

16
Δύο απλές αποδείξεις N P-πληρότητας

Θεώρημα
Το πρόβλημα ΚΛΙΚΑ είναι N P-πλήρες.

Απόδειξη. Το πρόβλημα ΚΛΙΚΑ ανήκει στην κλάση N P. Θα ορίσουμε μία


πολυωνυμική αναγωγή από το πρόβλημα ΑΝΕΞΑΡΤΗΤΟ ΣΥΝΟΛΟ στο
πρόβλημα ΚΛΙΚΑ, δηλαδή από τη γλώσσα
L1 = {(G, K) : υπάρχει ανεξάρτητο σύνολο C στον G με |C| ≥ K}
στη γλώσσα
L2 = {(G, K) : υπάρχει κλίκα C στον G με |C| ≥ K}
Έστω τ : L1 → L2 έτσι ώστε για κάθε γράφο G και K ≥ 2,
f((G, K)) = (G′ , K),
όπου G′ = {(v, u) ∈ V × V : v ̸= u και (v, u) ∈
/ G}. Προφανώς, η f είναι
πολυωνυμικά υπολογίσιμη και ισχύει (G, K) ∈ L1 αν και μόνο αν f((G, K)) ∈ L2 .
Η ισοδυναμία αυτή ισχύει γιατί ουσιαστικά τα προβλήματα ΑΝΕΞΑΡΤΗΤΟ
ΣΥΝΟΛΟ και ΚΛΙΚΑ είναι αντίθετα, δηλαδή στον G υπάρχει ανεξάρτητο
σύνολο μεγέθους τουλάχιστον K αν και μόνο αν υπάρχει κλίκα στον γράφο
17
που αποτελείται από τις ακριβώς αντίθετες ακμές (χωρίς τις ακμές (v, v)).
Δύο απλές αποδείξεις N P-πληρότητας

Θεώρημα
Το πρόβλημα ΕΠΙΚΑΛΥΨΗ ΜΕ ΚΟΜΒΟΥΣ είναι N P-πλήρες.

Απόδειξη. Το πρόβλημα ΕΠΙΚΑΛΥΨΗ ΜΕ ΚΟΜΒΟΥΣ ανήκει στην κλάση N P.


Θα ορίσουμε μία πολυωνυμική αναγωγή από το πρόβλημα ΑΝΕΞΑΡΤΗΤΟ
ΣΥΝΟΛΟ στο πρόβλημα ΕΠΙΚΑΛΥΨΗ ΜΕ ΚΟΜΒΟΥΣ, δηλαδή από τη γλώσσα
L1 = {(G, K) : υπάρχει ανεξάρτητο σύνολο C στον G με |C| ≥ K}
στη γλώσσα
L2 = {(G, K) : υπάρχει επικάλυψη με κόμβους C στον G με |C| ≥ K}
Έστω τ : L1 → L2 έτσι ώστε για κάθε γράφο G και K ≥ 2,
f((G, K)) = (G, |V| − K),
Προφανώς, η f είναι πολυωνυμικά υπολογίσιμη και ισχύει (G, K) ∈ L1 αν και
μόνο αν f((G, K)) ∈ L2 . Η ισοδυναμία αυτή ισχύει γιατί για να υπάρχει
ανεξάρτητο σύνολο μεγέθους τουλάχιστον K στον G θα πρέπει να υπάρχει
επικάλυψη με κόμβους μεγέθους τουλάχιστον |V| − K (και αντιστρόφως).
18
Άλλα παραδείγματα N P-πλήρων προβλημάτων

Πέρα από τα παραπάνω προβλήματα, υπάρχουν μερικά ακόμα πολύ


ενδιαφέροντα N P-πλήρη προβλήματα που αξίζει να αναφέρουμε.

ΑΚΡΙΒΗΣ ΕΠΙΚΑΛΥΨΗ
Δεδομένου ενός πεπερασμένου συνόλου U και μίας οικογένειας
υποσυνόλων F του U, υπάρχει C ⊆ F (ακριβής επικάλυψη) τέτοιο ώστε

C = U;

Παράδειγμα
Έστω U = {1, . . . , 8} και F = {{1, 2}, {1, 5, 6}, {3, 4, 7, 8}, {2, 4, 7}}. Το
σύνολο C = {{1, 2}, {1, 5, 6}, {3, 4, 7, 8}} είναι υποσύνολο του F τέτοιο

ώστε C = U.

19
Άλλα παραδείγματα N P-πλήρων προβλημάτων

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


εξειδικεύοντας ή γενικεύοντας ελαφρά ένα N P-πλήρες πρόβλημα
μπορούμε να πάρουμε εξίσου χρήσιμα N P-πλήρη προβλήματα. Η επόμενη
ειδική περίπτωση του προβλήματος ΚΥΚΛΟΣ HAMILTON είναι ένα τέτοιο
παράδειγμα.

ΜΗ ΚΑΤΕΥΘΥΝΟΜΕΝΟΣ ΚΥΚΛΟΣ HAMILTON


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

Το επόμενο N P-πλήρες πρόβλημα είναι παραλλαγή του προβλήματος


ΔΙΑΜΕΡΙΣΗ.
ΠΡΟΒΛΗΜΑ ΤΟΥ ΣΑΚΙΔΙΟΥ
Δεδομένων ενός συνόλου φυσικών S = {a1 , . . . , an } και ενός φυσικού K,
όλοι σε δυαδική μορφή, υπάρχει P ⊆ {1, . . . , n} έτσι ώστε Σi∈P ai = K;

20

You might also like