Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Πολυπλοκότητα Παράμετροι της αποδοτικότητας ενός αλγόριθμου: Χρόνος εκτέλεσης Απαιτούμενοι πόροι, π.χ. μνήμη, εύρος ζώνης Προσπάθεια υλοποίησης TexPoint.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Πολυπλοκότητα Παράμετροι της αποδοτικότητας ενός αλγόριθμου: Χρόνος εκτέλεσης Απαιτούμενοι πόροι, π.χ. μνήμη, εύρος ζώνης Προσπάθεια υλοποίησης TexPoint."— Μεταγράφημα παρουσίασης:

1 Πολυπλοκότητα Παράμετροι της αποδοτικότητας ενός αλγόριθμου: Χρόνος εκτέλεσης Απαιτούμενοι πόροι, π.χ. μνήμη, εύρος ζώνης Προσπάθεια υλοποίησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A

2 Πολυπλοκότητα Χρόνος εκτέλεσης Απαιτούμενοι πόροι, π.χ. μνήμη, εύρος ζώνης Προσπάθεια υλοποίησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A Πότε μπορούμε να είμαστε ευχαριστημένοι από την αποδοτικότητα ενός αλγόριθμου; Παράμετροι της αποδοτικότητας ενός αλγόριθμου:

3 Πολυπλοκότητα Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση - απαιτεί γνώση της κατανομής εισόδου - όταν η κατανομή δεν είναι γνωστή (κάτι που συμβαίνει συχνά!), συνήθως υποθέτουμε ομοιόμορφη κατανομή - πιθανοκρατικοί αλγόριθμοι διαμορφώνουν την κατανομή εισόδου Χειρότερη περίπτωση - ισχύει για κάθε είσοδο - κοντά στην αναμενόμενη όταν συμβαίνει συχνά, αλλά μπορεί να είναι απαισιόδοξη όταν συμβαίνει σπάνια

4 Πολυπλοκότητα Αλγόριθμοι πολυωνυμικού χρόνου Ένας αλγόριθμος πολυωνυμικού χρόνου έχει χρόνο εκτέλεσης όπου είναι μία (θετική) σταθερά

5 Πολυπλοκότητα Αλγόριθμοι πολυωνυμικού χρόνου Ένας αλγόριθμος πολυωνυμικού χρόνου έχει χρόνο εκτέλεσης όπου είναι μία (θετική) σταθερά Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα που επιδέχονται λύση σε πολυωνυμικό χρόνο

6 Πολυπλοκότητα Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα που επιδέχονται λύση σε πολυωνυμικό χρόνο Υπάρχουν προβλήματα που δεν επιδέχονται λύση σε πολυωνυμικό χρόνο και επομένως δεν ανήκουν στην κλάση Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Υπάρχουν προβλήματα που είναι άλυτα (δεν επιλύονται με κανένα αλγόριθμο – π.χ. το HALTING πρόβλημα)

7 Πολυπλοκότητα Υπάρχουν προβλήματα που δεν επιδέχονται λύση σε πολυωνυμικό χρόνο και επομένως δεν ανήκουν στην κλάση Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Υπάρχουν προβλήματα που είναι άλυτα (δεν επιλύονται με κανένα αλγόριθμο – π.χ. το HALTING πρόβλημα) Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα που επιδέχονται λύση σε πολυωνυμικό χρόνο

8 Πολυπλοκότητα Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Μονοπάτι Hamilton Μας δίνεται γράφημα :υπάρχει μονοπάτι που επισκέπτεται κάθε κόμβο ακριβώς μία φορά; Παραδείγματα τέτοιων προβλημάτων:

9 Πολυπλοκότητα Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Μονοπάτι Hamilton Μας δίνεται γράφημα :υπάρχει μονοπάτι που επισκέπτεται κάθε κόμβο ακριβώς μία φορά; Παραδείγματα τέτοιων προβλημάτων:

10 Πολυπλοκότητα Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο knight’s tour Παραδείγματα τέτοιων προβλημάτων: Μονοπάτι Hamilton Μας δίνεται γράφημα :υπάρχει μονοπάτι που επισκέπτεται κάθε κόμβο ακριβώς μία φορά;

11 Πολυπλοκότητα Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Βαρύτατο μονοπάτι Μας δίνεται γράφημα με συνάρτηση βάρους, υπάρχει άκυκλο μονοπάτι από το στο με βάρος ; αφετηριακός κόμβος, τερματικός κόμβος και παράμετρος : Παραδείγματα τέτοιων προβλημάτων:

12 Πολυπλοκότητα Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Βαρύτατο μονοπάτι Μας δίνεται γράφημα με συνάρτηση βάρους, υπάρχει άκυκλο μονοπάτι από το στο με βάρος ; αφετηριακός κόμβος, τερματικός κόμβος και παράμετρος : Παραδείγματα τέτοιων προβλημάτων:

13 Πολυπλοκότητα Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Το πρόβλημα του σακιδίου (knapsack) Μας δίνονται αντικείμενα, όπου το αντικείμενο έχει βάρος και αξία, καθώς και δύο παράμετροι και : μπορούμε να επιλέξουμε αντικείμενα με συνολικό βάρος και συνολική αξία ; Παραδείγματα τέτοιων προβλημάτων:

14 Πολυπλοκότητα Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Ωστόσο, τα προβλήματα αυτά έχουν μία χαρακτηριστική ιδιότητα: Μπορούμε να επαληθεύσουμε μία λύση τους σε πολυωνυμικό χρόνο

15 Πολυπλοκότητα Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Αλγόριθμος επαλήθευσης για ένα πρόβλημα : δέχεται στην είσοδο στιγμιότυπο και υποψήφια λύση (πιστοποιητικό) και αποφασίζει εάν η λύνει σωστά το Ωστόσο, τα προβλήματα αυτά έχουν μία χαρακτηριστική ιδιότητα: Μπορούμε να επαληθεύσουμε μία λύση τους σε πολυωνυμικό χρόνο

16 Πολυπλοκότητα Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Ωστόσο, τα προβλήματα αυτά έχουν μία χαρακτηριστική ιδιότητα: Μπορούμε να επαληθεύσουμε μία λύση τους σε πολυωνυμικό χρόνο Ο αλγόριθμος επαλήθευσης τρέχει σε πολυωνυμικό χρόνο ως προς το μέγεθος του στιγμιότυπου Αλγόριθμος επαλήθευσης για ένα πρόβλημα : δέχεται στην είσοδο στιγμιότυπο και υποψήφια λύση (πιστοποιητικό) και αποφασίζει εάν η λύνει σωστά το (Άρα το μέγεθος του πιστοποιητικού είναι πολυωνυμικό ως προς το )

17 Πολυπλοκότητα Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα για τα οποία μπορούμε να επαληθεύσουμε μία λύση τους Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα που επιδέχονται λύση σε πολυωνυμικό χρόνο σε πολυωνυμικό χρόνο

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

19 Πολυπλοκότητα Αναγωγή πολυωνυμικού χρόνου Το πρόβλημα ανάγεται σε πολυωνυμικό χρόνο στο πρόβλημα όταν υπάρχει αλγόριθμος πολυωνυμικού χρόνου που μετασχηματίζει οποιοδήποτε στιγμιότυπο σε στιγμιότυπο υπάρχει αλγόριθμος πολυωνυμικού χρόνου που μετατρέπει μία λύση του σε λύση του αλγόριθμος για το στιγμιότυπο λύση του δεν υπάρχει λύση του δεν υπάρχει λύση του λύση του

20 Πολυπλοκότητα -πλήρες πρόβλημα : κάθε πρόβλημα στην κλάση ανάγεται σε αυτό Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα για τα οποία μπορούμε να επαληθεύσουμε μία λύση τους σε πολυωνυμικό χρόνο

21 Πολυπλοκότητα -πλήρες πρόβλημα : κάθε πρόβλημα στην κλάση ανάγεται σε αυτό Καθένα από τα ακόλουθα προβλήματα είναι -πλήρες : μονοπάτι Hamilton, βαρύτατο μονοπάτι,πρόβλημα του σακιδίου, … Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα για τα οποία μπορούμε να επαληθεύσουμε μία λύση τους σε πολυωνυμικό χρόνο

22 NP-πλήρη προβλήματα Ένα πρώτο NP-πλήρες πρόβλημα: Ικανοποιησιμότητα Κυκλώματος Λογικοί τελεστές ANDORNOT 10 είσοδοι έξοδος σταθερέςμεταβλητές

23 NP-πλήρη προβλήματα Ένα πρώτο NP-πλήρες πρόβλημα: Ικανοποιησιμότητα Κυκλώματος Λογικοί τελεστές ANDORNOT 10 είσοδοι έξοδος = 0 σταθερέςμεταβλητές απόδοση τιμών

24 NP-πλήρη προβλήματα Ένα πρώτο NP-πλήρες πρόβλημα: Ικανοποιησιμότητα Κυκλώματος Λογικοί τελεστές ANDORNOT 10 είσοδοι έξοδος = 1 σταθερέςμεταβλητές απόδοση τιμών

25 NP-πλήρη προβλήματα Ένα πρώτο NP-πλήρες πρόβλημα: Ικανοποιησιμότητα Κυκλώματος Λογικοί τελεστές ANDORNOT Ικανοποιησιμότητα Κυκλώματος: Υπάρχει απόδοση τιμών στις μεταβλητές ώστε η έξοδος του κυκλώματος να είναι 1; Θεώρημα Cook-Levin Το πρόβλημα Ικανοποιησιμότητας Κυκλώματος είναι -πλήρες

26 NP-πλήρη προβλήματα Θεώρημα Cook-Levin Το πρόβλημα Ικανοποιησιμότητας Κυκλώματος είναι -πλήρες Δείχνουμε ότι ένα οποιοδήποτε πρόβλημα Χ του NP ανάγεται σε πολυωνυμικό χρόνο στην Ικανοποιησιμότητα Κυκλώματος Κεντρική ιδέα : Οποιοσδήποτε αλγόριθμος που δέχεται στην είσοδο n bits και παράγει απάντηση ναι/όχι μπορεί να αναπαρασταθεί από κύκλωμα του παραπάνω τύπου Αν ο αλγόριθμος είναι πολυωνυμικός ως προς το n τότε και το κύκλωμα έχει πολυωνυμικό μέγεθος 10 είσοδο ι έξοδος σταθερέςμεταβλητές

27 NP-πλήρη προβλήματα Θεώρημα Cook-Levin Το πρόβλημα Ικανοποιησιμότητας Κυκλώματος είναι -πλήρες Δείχνουμε ότι ένα οποιοδήποτε πρόβλημα Χ του NP ανάγεται σε πολυωνυμικό χρόνο στην Ικανοποιησιμότητα Κυκλώματος Αφού το Χ είναι στο NP τότε υπάρχει πολυωνυμικός αλγόριθμος επαλήθευσης Στόχος μας είναι να κατασκευάσουμε κύκλωμα τέτοιο ώστε να απαντά αν υπάρχει πολυωνυμικού μήκους ώστε η εκτέλεση του αλγόριθμου επαλήθευσης να δίνει απάντηση «ναι». Έστω στιγμιότυπο με μήκος bits Το κύκλωμα έχει εισόδους: σταθερές που αντιστοιχούν στο και μεταβλητές που αντιστοιχούν στο πιστοποιητικό («λύση») Το είναι ικανοποιήσιμο αν και μόνο αν υπάρχει απόδοση τιμών των μεταβλητών εισόδου ώστε να δίνει απάντηση «ναι»

28 NP-πλήρη προβλήματα Θεώρημα Cook-Levin Το πρόβλημα Ικανοποιησιμότητας Κυκλώματος είναι -πλήρες Παράδειγμα: Ανεξάρτητο σύνολο κόμβων Γράφημα Ένα σύνολο κόμβων είναι ανεξάρτητο αν δεν υπάρχουν κόμβοι στο που να συνδέονται με κάποια ακμή Μας δίνεται το και ένας ακέραιος. Θέλουμε να απαντήσουμε εάν το έχει ανεξάρτητο σύνολο κόμβων μεγέθους

29 =1 αν έχουν επιλεγεί τουλάχιστον 2 κόμβοι NP-πλήρη προβλήματα Θεώρημα Cook-Levin Το πρόβλημα Ικανοποιησιμότητας Κυκλώματος είναι -πλήρες Παράδειγμα: Ανεξάρτητο σύνολο δύο κόμβων =1 αν έχουν επιλεγεί και τα δύο άκρα κάποιας ακμής =1 αν έχει επιλεγεί ανεξάρτητο σύνολο δύο κόμβων


Κατέβασμα ppt "Πολυπλοκότητα Παράμετροι της αποδοτικότητας ενός αλγόριθμου: Χρόνος εκτέλεσης Απαιτούμενοι πόροι, π.χ. μνήμη, εύρος ζώνης Προσπάθεια υλοποίησης TexPoint."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google