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