Παράμετροι της αποδοτικότητας ενός αλγόριθμου: Χρόνος εκτέλεσης Απαιτούμενοι πόροι, π.χ. μνήμη, εύρος ζώνης Προσπάθεια υλοποίησης
Παράμετροι της αποδοτικότητας ενός αλγόριθμου: Χρόνος εκτέλεσης Απαιτούμενοι πόροι, π.χ. μνήμη, εύρος ζώνης Προσπάθεια υλοποίησης Πότε μπορούμε να είμαστε ευχαριστημένοι από την αποδοτικότητα ενός αλγόριθμου;
Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση - απαιτεί γνώση της κατανομής εισόδου - όταν η κατανομή δεν είναι γνωστή (κάτι που συμβαίνει συχνά!), συνήθως υποθέτουμε ομοιόμορφη κατανομή - πιθανοκρατικοί αλγόριθμοι διαμορφώνουν την κατανομή εισόδου Χειρότερη περίπτωση - ισχύει για κάθε είσοδο - κοντά στην αναμενόμενη όταν συμβαίνει συχνά, αλλά μπορεί να είναι απαισιόδοξη όταν συμβαίνει σπάνια
Αλγόριθμοι πολυωνυμικού χρόνου Ένας αλγόριθμος πολυωνυμικού χρόνου έχει χρόνο εκτέλεσης όπου είναι μία (θετική) σταθερά
Αλγόριθμοι πολυωνυμικού χρόνου Ένας αλγόριθμος πολυωνυμικού χρόνου έχει χρόνο εκτέλεσης όπου είναι μία (θετική) σταθερά Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα που επιδέχονται λύση σε πολυωνυμικό χρόνο
Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα που επιδέχονται λύση σε πολυωνυμικό χρόνο Υπάρχουν προβλήματα που δεν επιδέχονται λύση σε πολυωνυμικό χρόνο και επομένως δεν ανήκουν στην κλάση Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Υπάρχουν προβλήματα που είναι άλυτα (δεν επιλύονται με κανένα αλγόριθμο π.χ. το HALTING πρόβλημα)
Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα που επιδέχονται λύση σε πολυωνυμικό χρόνο Υπάρχουν προβλήματα που δεν επιδέχονται λύση σε πολυωνυμικό χρόνο και επομένως δεν ανήκουν στην κλάση Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Υπάρχουν προβλήματα που είναι άλυτα (δεν επιλύονται με κανένα αλγόριθμο π.χ. το HALTING πρόβλημα)
Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Παραδείγματα τέτοιων προβλημάτων: Μονοπάτι Hamilton Μας δίνεται γράφημα κάθε κόμβο ακριβώς μία φορά; : υπάρχει μονοπάτι που επισκέπτεται
Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Παραδείγματα τέτοιων προβλημάτων: Μονοπάτι Hamilton Μας δίνεται γράφημα κάθε κόμβο ακριβώς μία φορά; : υπάρχει μονοπάτι που επισκέπτεται
Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Παραδείγματα τέτοιων προβλημάτων: Μονοπάτι Hamilton Μας δίνεται γράφημα κάθε κόμβο ακριβώς μία φορά; : υπάρχει μονοπάτι που επισκέπτεται knight s tour
Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Παραδείγματα τέτοιων προβλημάτων: Βαρύτατο μονοπάτι Μας δίνεται γράφημα με συνάρτηση βάρους, αφετηριακός κόμβος, τερματικός κόμβος και παράμετρος : υπάρχει άκυκλο μονοπάτι από το στο με βάρος ; 6 3 4 1 1 2 7 2 5 3 6 4
Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Παραδείγματα τέτοιων προβλημάτων: Βαρύτατο μονοπάτι Μας δίνεται γράφημα με συνάρτηση βάρους, αφετηριακός κόμβος, τερματικός κόμβος και παράμετρος : υπάρχει άκυκλο μονοπάτι από το στο με βάρος ; 6 3 4 1 1 2 7 2 5 3 6 4
Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Παραδείγματα τέτοιων προβλημάτων: Το πρόβλημα του σακιδίου (knapsack) Μας δίνονται αντικείμενα, όπου το αντικείμενο έχει βάρος και αξία, καθώς και δύο παράμετροι και : μπορούμε να επιλέξουμε αντικείμενα με συνολικό βάρος συνολική αξία ; και
Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Ωστόσο, τα προβλήματα αυτά έχουν μία χαρακτηριστική ιδιότητα: Μπορούμε να επαληθεύσουμε μία λύση τους σε πολυωνυμικό χρόνο
Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Ωστόσο, τα προβλήματα αυτά έχουν μία χαρακτηριστική ιδιότητα: Μπορούμε να επαληθεύσουμε μία λύση τους σε πολυωνυμικό χρόνο Αλγόριθμος επαλήθευσης για ένα πρόβλημα : δέχεται στην είσοδο στιγμιότυπο και υποψήφια λύση (πιστοποιητικό) και αποφασίζει εάν η λύνει σωστά το
Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Ωστόσο, τα προβλήματα αυτά έχουν μία χαρακτηριστική ιδιότητα: Μπορούμε να επαληθεύσουμε μία λύση τους σε πολυωνυμικό χρόνο Αλγόριθμος επαλήθευσης για ένα πρόβλημα : δέχεται στην είσοδο στιγμιότυπο και υποψήφια λύση (πιστοποιητικό) και αποφασίζει εάν η λύνει σωστά το Ο αλγόριθμος επαλήθευσης τρέχει σε πολυωνυμικό χρόνο ως προς το μέγεθος του στιγμιότυπου (Άρα το μέγεθος του πιστοποιητικού είναι πολυωνυμικό ως προς το )
Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα που επιδέχονται λύση σε πολυωνυμικό χρόνο Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα για τα οποία μπορούμε να επαληθεύσουμε μία λύση τους σε πολυωνυμικό χρόνο
Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα που επιδέχονται λύση σε πολυωνυμικό χρόνο Προφανώς. Είναι όμως Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα για τα οποία μπορούμε να επαληθεύσουμε μία λύση τους σε πολυωνυμικό χρόνο
Αναγωγή πολυωνυμικού χρόνου Το πρόβλημα ανάγεται σε πολυωνυμικό χρόνο στο πρόβλημα όταν υπάρχει αλγόριθμος πολυωνυμικού χρόνου που μετασχηματίζει οποιοδήποτε στιγμιότυπο σε στιγμιότυπο υπάρχει αλγόριθμος πολυωνυμικού χρόνου του σε λύση του που μετατρέπει μία λύση στιγμιότυπο στιγμιότυπο αλγόριθμος για το λύση του δεν υπάρχει λύση του λύση του δεν υπάρχει λύση του
Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα για τα οποία μπορούμε να επαληθεύσουμε μία λύση τους σε πολυωνυμικό χρόνο -πλήρες πρόβλημα : κάθε πρόβλημα στην κλάση ανάγεται σε αυτό
Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα για τα οποία μπορούμε να επαληθεύσουμε μία λύση τους σε πολυωνυμικό χρόνο -πλήρες πρόβλημα : κάθε πρόβλημα στην κλάση ανάγεται σε αυτό Καθένα από τα ακόλουθα προβλήματα είναι -πλήρες : μονοπάτι Hamilton, βαρύτατο μονοπάτι,πρόβλημα του σακιδίου,
NP-πλήρη προβλήματα Ένα πρώτο NP-πλήρες πρόβλημα: Ικανοποιησιμότητα Κυκλώματος Λογικοί τελεστές AND OR NOT έξοδος είσοδοι 1 0 σταθερές μεταβλητές
NP-πλήρη προβλήματα Ένα πρώτο NP-πλήρες πρόβλημα: Ικανοποιησιμότητα Κυκλώματος Λογικοί τελεστές AND OR NOT έξοδος = 0 1 0 απόδοση τιμών 0 0 1 είσοδοι 1 0 σταθερές μεταβλητές
NP-πλήρη προβλήματα Ένα πρώτο NP-πλήρες πρόβλημα: Ικανοποιησιμότητα Κυκλώματος Λογικοί τελεστές AND OR NOT έξοδος = 1 1 1 απόδοση τιμών 0 1 1 είσοδοι 1 0 σταθερές μεταβλητές
NP-πλήρη προβλήματα Ένα πρώτο NP-πλήρες πρόβλημα: Ικανοποιησιμότητα Κυκλώματος Λογικοί τελεστές AND OR NOT Ικανοποιησιμότητα Κυκλώματος: Υπάρχει απόδοση τιμών στις μεταβλητές ώστε η έξοδος του κυκλώματος να είναι 1; Θεώρημα Cook-Levin Το πρόβλημα Ικανοποιησιμότητας Κυκλώματος είναι -πλήρες
NP-πλήρη προβλήματα Θεώρημα Cook-Levin Το πρόβλημα Ικανοποιησιμότητας Κυκλώματος είναι -πλήρες Δείχνουμε ότι ένα οποιοδήποτε πρόβλημα Χ του NP ανάγεται σε πολυωνυμικό χρόνο στην Ικανοποιησιμότητα Κυκλώματος έξοδος είσοδο ι 1 0 σταθερές μεταβλητές Κεντρική ιδέα : Οποιοσδήποτε αλγόριθμος που δέχεται στην είσοδο n bits και παράγει απάντηση ναι/όχι μπορεί να αναπαρασταθεί από κύκλωμα του παραπάνω τύπου Αν ο αλγόριθμος είναι πολυωνυμικός ως προς το n τότε και το κύκλωμα έχει πολυωνυμικό μέγεθος
NP-πλήρη προβλήματα Θεώρημα Cook-Levin Το πρόβλημα Ικανοποιησιμότητας Κυκλώματος είναι -πλήρες Δείχνουμε ότι ένα οποιοδήποτε πρόβλημα Χ του NP ανάγεται σε πολυωνυμικό χρόνο στην Ικανοποιησιμότητα Κυκλώματος Αφού το Χ είναι στο NP τότε υπάρχει πολυωνυμικός αλγόριθμος επαλήθευσης Έστω στιγμιότυπο με μήκος bits Στόχος μας είναι να κατασκευάσουμε κύκλωμα τέτοιο ώστε να απαντά αν υπάρχει πολυωνυμικού μήκους ώστε η εκτέλεση του αλγόριθμου επαλήθευσης να δίνει απάντηση «ναι». Το κύκλωμα έχει εισόδους: σταθερές που αντιστοιχούν στο και μεταβλητές που αντιστοιχούν στο πιστοποιητικό («λύση») Το είναι ικανοποιήσιμο αν και μόνο αν υπάρχει απόδοση τιμών των μεταβλητών εισόδου ώστε να δίνει απάντηση «ναι»
NP-πλήρη προβλήματα Θεώρημα Cook-Levin Το πρόβλημα Ικανοποιησιμότητας Κυκλώματος είναι -πλήρες Παράδειγμα: Ανεξάρτητο σύνολο κόμβων Γράφημα Ένα σύνολο κόμβων υπάρχουν κόμβοι στο κάποια ακμή είναι ανεξάρτητο αν δεν που να συνδέονται με Μας δίνεται το και ένας ακέραιος. Θέλουμε να απαντήσουμε εάν το έχει ανεξάρτητο σύνολο κόμβων μεγέθους
NP-πλήρη προβλήματα Θεώρημα Cook-Levin Το πρόβλημα Ικανοποιησιμότητας Κυκλώματος είναι Παράδειγμα: Ανεξάρτητο σύνολο δύο κόμβων -πλήρες =1 αν έχει επιλεγεί ανεξάρτητο σύνολο δύο κόμβων =1 αν έχουν επιλεγεί και τα δύο άκρα κάποιας ακμής =1 αν έχουν επιλεγεί τουλάχιστον 2 κόμβοι