Θεωρία πολυπλοκότητας

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

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

Επισκόπηση

Προβλήματα και αλγόριθμοι

Συμβολισμός

Κλάσεις πολυπλοκότητας 

Η θεωρία πολυπλοκότητας ταξινομεί τα προβλήματα σε κλάσεις(σύνολα) ισοδυναμίας που ορίζουν ότι τα προβλήματα στην ίδια κλάση έχουν την ίδια δυσκολία.Ιδιαιτέρου ενδιαφέροντος στο πλαίσιο αυτό είναι οι κλάσεις P(Deterministic Polynomial Time) και NP(Non Deterministic Polynomial Time).Γενικά θα μπορούσαμε να πούμε ότι η κλάση NP περιλαμβάνει τα περισσότερα προβλήματα της P.Θα προχωρήσουμε σε πιο τυπικούς ορισμούς οι οποιοι επαλυθεύουν τη διαίσθηση ότι P⊆NP.Θα πρέπει να τονίσουμε ότι οι κλάσεις P και NP ορίζονται ως προς προβλήματα απόφασης, δηλαδή προβλήματα στα οποία καλούμαστε να απαντήσουμε μια συγκεκριμένη ερώτηση με ΝΑΙ ή ΟΧΙ.

 Ορισμoί
 Η κλάση P περιλαμβάνει όλα εκείνα τα προβλήματα απόφασης, τα οποία επιλύονται από ένα ντετερμινιστικό αυτόματο σε πολυωνυμικό χρόνο.
 Η κλάση NP περιλαμβάνει όλα τα προβλήματα απόφασης που επιλύονται από ένα μη ντετερμινιστικό αυτόματο σε πολυωνυμικό χρόνο.
 Ένας ισοδύναμος ορισμός της κλάσης NP έχει ως εξής: Η κλάση NP περιλαμβάνει όλα τα προβλήματα απόφασης για τα οποία αν μας δοθεί ένα πιστοποιητικό της απάντησης ΝΑΙ, μπορούμε να επαληθεύσουμε σε πολυωνυμικο χρόνο ότι είναι σωστή.

Το ζήτημα P=NP 

Θεωρία υπολογισμού
Αλγόριθμοι