Εξαντλητική Απαρίθµηση

Σχετικά έγγραφα
Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

Branch and Bound. Branch and Bound

Υπολογιστική Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα

Μοντελοποίηση προβληµάτων

Γενικευµένη Simplex Γενικευµένη Simplex

Αλγόριθµοι και Πολυπλοκότητα

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Ανω Φράγµα στην Τάξη των Συναρτήσεων. Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων. Παράδειγµα (1/2) O( g(n) ) είναι σύνολο συναρτήσεων:

Ακέραιος Γραµµικός Προγραµµατισµός

Κεφάλαιο 5 Ανάλυση Αλγορίθμων

Ασυμπτωτικός Συμβολισμός

Ακέραιος Γραµµικός Προγραµµατισµός

Προσεγγιστικοί Αλγόριθμοι

Παραδείγµατα. Τάξη των Συναρτήσεων (1) Παράδειγµα (2) Να δειχθεί ότι 7n 2 = O(n 3 ). Ορέστης Τελέλης

Αξιολόγηση Ευριστικών Αλγορίθµων

Αλγόριθμοι και Πολυπλοκότητα

Δομές Δεδομένων και Αλγόριθμοι

Γραμμικός Προγραμματισμός

Ασυμπτωτικός Συμβολισμός

Ασκήσεις (2) Άσκηση 1

Εισαγωγή. Οπως είδαµε για την εκκίνηση της Simplex χρειαζόµαστε µια Αρχική Βασική Εφικτή Λύση. υϊσµός

Βασική Εφικτή Λύση. Βασική Εφικτή Λύση

Ασυμπτωτικός Συμβολισμός

HY118- ιακριτά Μαθηµατικά. Θεωρία γράφων / γραφήµατα. Τι έχουµε δει µέχρι τώρα. Υπογράφηµα Γράφοι

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

Αλγόριθμοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός

Συνδυαστική Βελτιστοποίηση

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...

ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ

Μαθηµατικά για Πληροφορική

Γενικό πλάνο. Μαθηµατικά για Πληροφορική. Εισαγωγή. Υπολογιστική Αλγεβρα. Μάθηµα 7

Αλγόριθµοι και Πολυπλοκότητα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΡΥΠΤΟΛΟΓΙΑ ΣΗΜΕΙΩΣΕΙΣ #6 ΘΕΟ ΟΥΛΟΣ ΓΑΡΕΦΑΛΑΚΗΣ

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

Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων

Άπληστοι Αλγόριθµοι. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Άπληστοι Αλγόριθµοι 1

ΠΛΗ111. Ανοιξη Μάθηµα 2 ο. Αλγόριθµοι και Αφηρηµένοι Τύποι εδοµένων. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

Κεφάλαια Εντολές επανάληψης. Τρεις εντολές επανάληψης. Επιλογή εντολής επανάληψης ΟΣΟ...ΕΠΑΝΑΛΑΒΕ. Σύνταξη στη ΓΛΩΣΣΑ

Επίλυση ενός τριδιαγώνιου γραµµικού συστήµατος Ax = d µε τη µέθοδο απαλοιφής του Gauss (µέθοδος του Thomas)

υναμικός Προγραμματισμός

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

Δυναμικός Προγραμματισμός

ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ

Αλγοριθμικές Τεχνικές

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών

Κεφάλαιο 2. Βασικά στοιχεία ανάλυσης αλγορίθµων. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

a 1d L(A) = {m 1 a m d a d : m i Z} a 11 a A = M B, B = N A, k=1

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

ILP-Feasibility conp

ιαφάνειες παρουσίασης #3

Προηγούµενο: Ανω Φράγµα στην Τάξη των Συναρτήσεων. Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων. Σύνοψη Ιδιοτήτων

Δυναμικός Προγραμματισμός

ΣΤΟΧΑΣΤΙΚΕΣ ΙΑ ΙΚΑΣΙΕΣ

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί 21Υπολογισµοί)

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

Κεφάλαιο 5ο: Ακέραιος προγραμματισμός

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

υναμικός Προγραμματισμός

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ

Αλγόριθµοι και Πολυπλοκότητα

Ασυμπτωτικός Συμβολισμός

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί)

υναμικός Προγραμματισμός

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Αλγόριθµοι και Πολυπλοκότητα

Παραλλαγές του Προβλήματος Μεταφοράς Το Πρόβλημα Μεταφόρτωσης και το Πρόβλημα Αναθέσεων Γεωργία Φουτσιτζή ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί)

1.2 Α. ΑΛΓΕΒΡΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ

Ακέραιος Γραμμικός Προγραμματισμός

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ. Κεφάλαιο 3 Μορφοποίηση Προβλημάτων Ακέραιου Προγραμματισμού

ιατύπωση τυπικής µορφής προβληµάτων Γραµµικού

ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

Επιστηµονικός Υπολογισµός Ι Ενότητα 1 - Εισαγωγή. Ευστράτιος Γαλλόπουλος

Διάλεξη 16: Πρόβλημα Συμφωνίας. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Αν ένα πρόβλημα λύνεται από δύο ή περισσότερους αλγόριθμους, ποιος θα είναι ο καλύτερος; Με ποια κριτήρια θα τους συγκρίνουμε;

Heapsort Using Multiple Heaps

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος

HY118-Διακριτά Μαθηματικά. Θεωρία γράφων/ γραφήματα. Τι έχουμε δει μέχρι τώρα. Ισομορφισμός γράφων: Μία σχέση ισοδυναμίας μεταξύ γράφων.

Συνδυαστική Βελτιστοποίηση Σημειώσεις. Β. Ζησιμόπουλος

Ανάλυση ευαισθησίας. Άσκηση 3 Δίνεται ο παρακάτω τελικός πίνακας Simplex. Επιχειρησιακή Έρευνα Γκόγκος Χρήστος

για NP-Δύσκολα Προβλήματα

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

1 Ανάλυση αλγορίθµων. 2 Συµβολισµοί O, Ω και Θ. 3 Αναδροµικές εξισώσεις

Μαθηµατικά για Πληροφορική

ΑΚΕΡΑΙΟΣ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

HY118-Διακριτά Μαθηματικά. Θεωρία γράφων / γραφήματα. Τι έχουμε δει μέχρι τώρα. Υπογράφημα. 24 -Γράφοι

Αλγεβρα. Ενότητα: Πολυώνυµα πολλών µεταβλητών - ο αλγόριθµος της διαίρεσης. Ευάγγελος Ράπτης. Τµήµα Μαθηµατικών

Case 06: Το πρόβληµα τωνlorie και Savage Εισαγωγή (1)

Transcript:

Υπενθύµιση Χαράκτηρίζουµε τους αλγόριθµους ως προς το χρόνο εκτέλεσης συναρτήσει της εισόδου

Υπενθύµιση Χαράκτηρίζουµε τους αλγόριθµους ως προς το χρόνο εκτέλεσης συναρτήσει της εισόδου Ως µέτρο ϑεωρούµε τα ϐασικά ϐήµατα υπολογισµού π.χ. πρόσθεση

Υπενθύµιση Χαράκτηρίζουµε τους αλγόριθµους ως προς το χρόνο εκτέλεσης συναρτήσει της εισόδου Ως µέτρο ϑεωρούµε τα ϐασικά ϐήµατα υπολογισµού π.χ. πρόσθεση Συνήθως µας ενδιαφέρει η χρονική πολυπλοκότητα χειρότερης περίπτωσης

Υπενθύµιση Χαράκτηρίζουµε τους αλγόριθµους ως προς το χρόνο εκτέλεσης συναρτήσει της εισόδου Ως µέτρο ϑεωρούµε τα ϐασικά ϐήµατα υπολογισµού π.χ. πρόσθεση Συνήθως µας ενδιαφέρει η χρονική πολυπλοκότητα χειρότερης περίπτωσης Ενας αλγόριθµος έχει πολυπλκότητα O(f(n)) χειρότερης περίπτωσης αν για οποιαδήποτε είσοδο µήκους n που n, τα ϐήµατα του αλγορίθµου έχουν άνω ϕράγµα την τιµή που επιστρέφει το πολυώνυµο f(n)

Παραδείγµατος χάριν f(n) = n 2 + 2 28 n + 2 3 0 O(n 2 )

Παραδείγµατος χάριν f(n) = n 2 + 2 28 n + 2 3 0 O(n 2 ) f(n) = n 3 0 + 2 28 n + 2 n O(2 n )

Παραδείγµατος χάριν f(n) = n 2 + 2 28 n + 2 3 0 O(n 2 ) f(n) = n 3 0 + 2 28 n + 2 n O(2 n ) f(n) = log log n + log n O(log n)

Εχουµε δύο υπολογιστές M 1 και M 2, όπου ο M 1 είναι 16 ϕορές ταχύτερος από τον M 2

Εχουµε δύο υπολογιστές M 1 και M 2, όπου ο M 1 είναι 16 ϕορές ταχύτερος από τον M 2 Θεωρούµε ένα πρόβληµα και τέσσερεις αλγορίθµους µε διαφορετική πολυπλοκότητα που το επιλύουν.

Εχουµε δύο υπολογιστές M 1 και M 2, όπου ο M 1 είναι 16 ϕορές ταχύτερος από τον M 2 Θεωρούµε ένα πρόβληµα και τέσσερεις αλγορίθµους µε διαφορετική πολυπλοκότητα που το επιλύουν. Για συγκεκριµένο χρόνο έστω t εξετάζουµε ποιό είναι το µέγιστο µήκους της εισόδου για το οποίο µπορεί να επιλύσει ο κάθε το υπολογιστής πρόβληµα στο χρόνο αυτό

Εχουµε δύο υπολογιστές M 1 και M 2, όπου ο M 1 είναι 16 ϕορές ταχύτερος από τον M 2 Θεωρούµε ένα πρόβληµα και τέσσερεις αλγορίθµους µε διαφορετική πολυπλοκότητα που το επιλύουν. Για συγκεκριµένο χρόνο έστω t εξετάζουµε ποιό είναι το µέγιστο µήκους της εισόδου για το οποίο µπορεί να επιλύσει ο κάθε το υπολογιστής πρόβληµα στο χρόνο αυτό Αλγόριθµος Πολυπλκότητα M 1 M 2 1 O(2 n ) 10 10 + 4 2 O(n 2 ) 32 128 3 O(n) 1024 16384 4 O(log n) 2 1024 (2 1024 ) 16

Πρόβληµα Σακιδίου Πρόβληµα Σακιδίου Σε ένα πρόβληµα σακιδίου έχουµε n αντικείµενα που το κάθε ένα έχει µια συγκεκριµένη αξία c i και ένα συγκεκριµένο ϐάρος a i. Σκοπός µας είναι να διαλέξουµε έναν αριθµό από αντικείµενα χωρίς να παραβιάζεται η µέγιστη ποσότητα ϐάρους που µπορεί να αντέξει το σακίδιο µας b µεγιστοποιόντας παράλληλα τη συνολική αξία των αντικειµένων

Πρόβληµα Σακιδίου Πρόβληµα Σακιδίου Σε ένα πρόβληµα σακιδίου έχουµε n αντικείµενα που το κάθε ένα έχει µια συγκεκριµένη αξία c i και ένα συγκεκριµένο ϐάρος a i. Σκοπός µας είναι να διαλέξουµε έναν αριθµό από αντικείµενα χωρίς να παραβιάζεται η µέγιστη ποσότητα ϐάρους που µπορεί να αντέξει το σακίδιο µας b µεγιστοποιόντας παράλληλα τη συνολική αξία των αντικειµένων Μοντελοποίηση µε Ακέραιο Γραµµικό Προγραµµατισµό n max z = c i x i s.t. i=1 n a i x i b i=1 x i {0, 1}

Πρόβληµα Σακιδίου Μία ϱητή απαρίθµηση ϑα απαιτούσε εκθετικό αριθµό ϐηµάτων : 2 n λύσεις!

Πρόβληµα Σακιδίου Μία ϱητή απαρίθµηση ϑα απαιτούσε εκθετικό αριθµό ϐηµάτων : 2 n λύσεις! Θεωρούµε πώς µια πρόσθεση χρειάζεται 250 10 9 δευτερόλεπτα και ένας πολλαπλασιασµός περίπου τον τριπλάσιο χρόνο

Πρόβληµα Σακιδίου Μία ϱητή απαρίθµηση ϑα απαιτούσε εκθετικό αριθµό ϐηµάτων : 2 n λύσεις! Θεωρούµε πώς µια πρόσθεση χρειάζεται 250 10 9 δευτερόλεπτα και ένας πολλαπλασιασµός περίπου τον τριπλάσιο χρόνο n = 10 t = 10 2 s n = 20 t = 20s n = 50 t = 5 10 10 s n = 1000......

Πρόβληµα Σακιδίου Ιστορία Προβλήµατος Σακιδίου µε 1000 µεταβλητές : Ονοµα Ετος Χρόνος Υπολογισµού Greenberry, Hegerich 70 4990 Fayard, Plateu 71 4502 Horowitz, Sani 74 2770 Lauriere 76 860 Martello, Toth 78 203 Balas, Zemel 80 105 Martello, Toth 81 100 Fayard, Plateu 79-82 83 Metairie, Polian, Fayard 88 36