background image

36 

 

από  τους  αλγορίθμους  ασφαλείας  βασίζονται  στο  γεγονός  ότι  δεν  υπάρχει  παράκαμψη  στις 

υπολογιστικές απαιτήσεις των προβλημάτων NP [Εικόνα 2.13b]. 

 

Εικόνα 2.13: Κλάσεις Πολυπλοκότητας (a) P≠NP (b) P=NP.

 

 

2.4.1 Κλάση NP 

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

μία μη-ντετερμινιστική μηχανή Turing [53]. Αν και η επίλυση τους μπορεί να απαιτήσει πολύ 

χρόνο,  μπορεί  να  επαληθευτεί  αν  η  λύση  είναι  σωστή  από  μία  μηχανή  Turing  σε 

πολυωνυμικό  χρόνο.  Η  επαλήθευση  αυτή  ονομάζεται  "μάρτυρας"  ή  "πιστοποίηση"  της 

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

Υποσύνολο  της  κλάσης  NP  είναι  η  κλάση  P  (P⊂NP)  [Εικόνα  2.13a].  Γνωστά  προβλήματα 

κλάσης  NP  είναι:  ο  ισομορφισμός  και  χρωματισμός  γράφων  [54],  το  πρόβλημα  πλανόδιου 

πωλητή [55], η παραγοντοποίηση ακεραίων [56], SAT [57]. 

 

2.4.2 Κλάση P 

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

απαντηθούν  με  ναι  ή  όχι)  που  λύνονται  σε  πολυωνυμικό  χρόνο  με  μία  ντετερμινιστική 

μηχανή  Turing  [53].  Πολλά  από  τα  προβλήματα  της  λύνονται  με  προσεγγίσεις  brute-force 

(χρήση  υπολογιστικής  δύναμης  δοκιμάζοντας  κάθε  πιθανό  συνδυασμό  για  εύρεση  λύσης) 

αλλά  συχνά  απαιτούν  εκθετικό  χρόνο.  Φυσικά  αν  το  πρόβλημα  διαθέτει  αλγόριθμο 

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

σε n

k

 χρόνο όπου k είναι σταθερά και n το μέγεθος της εισόδου [53]. Επιπρόσθετη βελτίωση 

μπορεί να γίνει με τη χρήση αλγορίθμου Karatsuba κατά τον οποίο συναντώνται μικρότερες