Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων Ενότητα: Βασικά στοιχεία σχεδίασης & ανάλυσης αλγορίθμων Διδάσκων: Λέκτορας Xάρης Παπαδόπουλος Τμήμα: Μαθηματικών
641: Γηζαγςγή ζηε Θεςνία θαη Ακάιοζε Αιγμνίζμςκ Υάνεξ Παπαδόπμοιμξ
Δηαδηθαζηηθά Μαζήμαημξ Δηδαζθαιία: Δεοηένα 18:00-21:00 Γνγαζηήνηα/Αζθήζεηξ: Ονηζμέκεξ Παναζθεοέξ 18:00-21:00 Ώνεξ Γναθείμο: Δεοηένα 11:00-13:00 θαη Παναζθεοή 11:00-13:00 Ιζημζειίδα μαζήμαημξ: ecourse.uoi.gr/course/view.php?id=538 Πενηέπεη: Δηαθάκεηεξ, Αζθήζεηξ, Υνήζημμ οιηθό, Ακαθμηκώζεηξ 2
Σνόπμξ Γλέηαζεξ θαη Αζθήζεηξ Γναπηέξ Γνγαζίεξ Θα ακαθμηκςζμύκ 2 Γναπηέξ Γνγαζίεξ Κάζε Γνγαζία έπεη βάνμξ 10% ημο ηειηθμύ βαζμμύ έςξ 2 άημμα απαναίηεηε πνμθμνηθή πανμοζίαζε με επηπιέμκ βάνμξ 5% Αοζηενέξ Ημενμμεκίεξ Ακάνηεζεξ θαη Πανάδμζεξ ~ 2 εβδμμάδεξ γηα ηεκ μιμθιήνςζε Σειηθή Γλέηαζε Υνήζε πεηνόγναθμο θύιιμο Α4 (2 ζει.) με ό,ηη πιενμθμνία ζέιεηε Σμ θύιιμ ημ παναδίδεηαη μαδί με ημ γναπηό ζαξ. Βάνμξ 70% ημο ηειηθμύ βαζμμύ Σειηθόξ Βαζμόξ = 10% ΓΓ1 + 5% ΓΓ1 + 10%ΓΓ2 + 5%ΓΓ2 + 70% ΣΓ + @lgofights 3
Extra γηα ημ Αθ. Έημξ 2012-1013 Θα βηκηεμζθμπεζμύκ μη δηαιέλεηξ ημο μαζήμαημξ ζηα πιαίζηα εκόξ πνμγνάμμαημξ ακάπηολεξ («Φεθηαθέξ Δνάζεηξ») Γκδέπεηαη κα είκαη δηαζέζημεξ μέπνη ημ ηέιμξ ημο ελαμήκμο Θα «μειεηεζμύμε» θαη ζα «πεηναμαηηζημύμε» ζηα πιαίζηα εκόξ μεηαπηοπηαθμύ πνμγνάμμαημξ ( gamification in education ). Παηπκίδη «Αιγμνηζμμμαπίεξ» θμπόξ ημο @lgofights: κα απμθηήζμομε όζμ πενηζζόηενμοξ πόκημοξ μπμνμύμε Δηελαγςγή ημο @lgofights: ακά ηαθηά πνμκηθά δηαζηήμαηα (~ ακά εβδμμαδηαία βάζε) Απόιοηε επηηοπία παηπκηδημύ (100 πόκημη): μηα επηπιέμκ μμκάδα ζημ ΣΒ. 4
Έκα μένμξ ημο μαζήμαημξ: o με ηε πνήζε θάπμηςκ μεπακηζμώκ πμο ζοκακηάμε ζηα παηπκίδηα Βνίζθεηαη ζημ ecourse, o είκαη ακαπόζπαζημ θμμμάηη ημο μαζήμαημξ Λόγμη: Θέιμομε ε δηαδηθαζία ηεξ μάζεζεξ κα είκαη δηαζθεδαζηηθή Γιθοζηηθό πενηβάιιμκ Γοθαηνία ζε θάζε έκακ κα μάζεη με ημκ δηθό ημο νοζμό. Θα δμζμύκ πμιιέξ θαη δηάθμνεξ εοθαηνίεξ γηα κα βειηηώζεηε ηεκ πνόμδό ζαξ αιιά θαη ημκ βαζμό ζαξ. Θέιμομε κα αζπμιεζείηε θαη κα «παίλεηε» μ αοηό. Bob Απόιοηε επηηοπία παηπκηδημύ (100 πόκημη): μηα επηπιέμκ μμκάδα ζημ ΣΒ. 5
Βηβιημγναθία [KT] J. Kleinberg and E. Tardos, πεδηαζμόξ Αιγμνίζμςκ, ειιεκηθή έθδμζε, Γθδόζεηξ Κιεηδάνηζμμξ, 2008 (4 ε επηιμγή ζημκ Γύδμλμ) [CLRS] T. Cormen, C. Leiserson, R. Rivest, and C. Stein, Γηζαγςγή ζημοξ Αιγμνίζμμοξ, ειιεκηθή έθδμζε, Πακεπηζηεμηαθέξ Γθδόζεηξ Κνήηεξ, 2012 [DPV] S. Dasgupta, C. Papadimitriou, and U. Vazirani, Αιγόνηζμμη, ειιεκηθή έθδμζε, Γθδόζεηξ Κιεηδάνηζμμξ, 2008 6
ηόπμξ ημο Μαζήμαημξ Γηζαγςγή ζε ζεμειηώδεηξ αιγμνηζμηθέξ έκκμηεξ θαη ηεπκηθέξ Αιιεγμνία & Μήκομα Έζης όηη ζέιεηε κα γίκεηε γιύπηεξ. Υνεηάδεζηε εθμάζεζε βαζηθώκ ηεπκηθώκ: εύνεζε ζςζηώκ οιηθώκ (μάνμανα, πέηνεξ, θιπ), μεηαθίκεζε οιηθώκ, ακέγενζε ζθαιςζηάξ, Η γκώζε αοηώκ ηςκ ηεπκηθώκ δεκ ζα ζαξ θάκεη δηάζεμμ θαιιηηέπκε, αιιά αθόμε θαη ακ έπεηε έκα πναγμαηηθά ελαηνεηηθό ηαιέκημ ζα είκαη πμιύ δύζθμιμ κα γίκεηε επηηοπεμέκμξ θαιιηηέπκεξ, πςνίξ κα ηηξ γκςνίδεηε. Δεκ είκαη ακαγθαίμ κα θαηέπεηε ηέιεηα όιεξ ηηξ βαζηθέξ ηεπκηθέξ πνηκ θηηάλεηε ημ πνώημ ζαξ γιοπηό. Αιιά πνέπεη πάκημηε κα είζηε πνόζομμη κα επηζηνέρεηε ζηηξ βαζηθέξ ζαξ ηεπκηθέξ πνμθεημέκμο κα ηηξ βειηηώζεηε. 7
Ση είκαη αιγόνηζμμξ Αιγόνηζμμξ - Ονηζμόξ [webster.com] Μηα δηαδηθαζία γηα ηεκ επίιοζε εκόξ μαζεμαηηθμύ πνμβιήμαημξ ζε έκα πεπεναζμέκμ ανηζμό βεμάηςκ πμο ζοπκά πενηέπεη ηεκ επακάιερε μηαξ πνάλεξ. [Knuth] Έκαξ αιγόνηζμμξ είκαη μηα πεπεναζμέκε, ζογθεθνημέκε, απμηειεζμαηηθή δηαδηθαζία, με μηα είζμδμ θαη θάπμηα έλμδμ. Οη ζπμοδαίμη αιγόνηζμμη είκαη ε πμίεζε ημο οπμιμγηζμμύ. Όπςξ μηα ζηνμθή εκόξ πμηήμαημξ, μπμνεί κα είκαη ιαθςκηθμί, οπαηκηθηηθμί, ποθκμί, αθόμα θαη μοζηενηώδεηξ. Όηακ όμςξ λεθιεηδςζμύκ, νίπκμοκ έκα ιαμπνό θςξ ζε θάπμηα δηάζηαζε, ημο οπμιμγηζμμύ. - Francis Sullivan 8
Γημημμιμγία Αιγμνηζμόξ = δηαδηθαζία εθηέιεζεξ ανηζμεηηθήξ πνεζημμπμηώκηαξ δεθαδηθμύξ (αναβηθμύξ) ανηζμμύξ Λάζμξ ακηίιερε! Αιγόνηζμμξ άιγμξ/αιγεηκόξ [επίπμκμξ] + ανηζμόξ Πναγμαηηθή Πνμέιεοζε: παναθζμνά ημο μκόμαημξ ημο Abu 'Abd Allah Muhammad ibn Musa al-khwarizm (780 835/850 μυ), Πένζε μαζεμαηηθμύ, αζηνμκόμμο θαη ζογγναθέα δηδαθηηθώκ βηβιίςκ από ηεκ επανπία Khorasan (ζεμενηκό Uzbekistan). Έγναρε ημ Kitab, al-jabr wa'l-muqabala, πμο ελειίπζεθε ζημ ζεμενηκό εγπεηνίδημ ηεξ άιγεβναξ ημο ιοθείμο. 9
Σπεδίαζε & Ακάιοζε Αιγμνίζμωκ Ιδέα παιηά αιιά ζοζηεμαηηθή μειέηε θαη ακάιοζε μεηά ημ 1970 Απαηηεί: θνηηηθή μαζεμαηηθή ζθέρε θαη επίιοζε πνμβιεμάηςκ Design and analysis of algorithms (Κιαζηθή ύιε): Greedy. Divide-and-conquer. Dynamic programming. Network flow. Randomized algorithms. Intractability. Coping with intractability. 10
Πανάδεηγμα Έζης 12 μπίιηεξ εθ ηςκ μπμίςκ μηα μόκμ έπεη δηαθμνεηηθό βάνμξ από ηηξ οπόιμηπεξ. Η μπίιηα με δηαθμνεηηθό βάνμξ μπμνεί κα είκαη ειαθνύηενε ή βανύηενε από ηηξ οπόιμηπεξ. αξ δίκεηαη θαη μηα δογανηά ζύγθνηζεξ (πιάζηηγγα). Υνεζημμπμηώκηαξ ηεκ δογανηά όζμ ημ δοκαηό ιηγόηενεξ θμνέξ (π.π. 4 ή 3 θμνέξ) βνείηε ηεκ πανάηαηνε μπίιηα θαη κα πνμζδημνίζεηε ακ ε μπίιηα είκαη ειαθνύηενε ή βανύηενε. 11
Γθανμμγέξ Αιγόνηζμμη: βνίζθμκηαη ζηεκ «θανδηά» θάζε οπμιμγηζηηθήξ δηαδηθαζίαξ Δίθηοα (επηθμηκςκηώκ, μεηαθμνώκ, θιπ) Γπηπεηνεζηαθή ένεοκα Σεπκεηή κμεμμζύκε Τπμιμγηζηηθή βημιμγία Βάζεηξ δεδμμέκςκ Τπμιμγηζηηθή Γεςμεηνία Ακάιοζε δεδμμέκςκ (θμηκςκηθή δηθηύςζε) Γπελενγαζία ζεμάηςκ Γναθηθά οπμιμγηζηώκ Γπηζηεμμκηθόξ οπμιμγηζμόξ Ανηζμεηηθή Ακάιοζε... Γζηηάδμομε ζε αιγόνηζμμοξ θαη ηεπκηθέξ πμο είκαη πνήζημμη ζηεκ πνάλε 12
Τιε ημο μαζήμαημξ Βαζηθά ζημηπεία ζπεδίαζεξ & ακάιοζεξ αιγμνίζμςκ Ακάιοζε αιγμνίζμςκ, απμδμηηθόηεηα, αζομπηςηηθόξ ζομβμιηζμόξ οκεζηζμέκμη πνόκμη εθηέιεζεξ θαη βαζηθέξ δμμέξ δεδμμέκςκ πίκαθεξ, ιίζηεξ, ζημίβεξ, μονέξ Γοζηαζέξ ηαίνηαζμα, μνζόηεηα, ζςνόξ θαη μονά πνμηεναηόηεηαξ Μέζμδμξ «Δηαίνεη θαη Βαζίιεοε» Γθανμμγέξ ζε ηαληκόμεζε ζημηπείςκ Γπίιοζε ακαδνμμηθώκ ζπέζεςκ Γναθήμαηα θαη αιγόνηζμμη γναθεμάηςκ Δηάηνελε γναθεμάηςκ (BFS, DFS) οκεθηηθόηεηα Σμπμιμγηθή δηάηαλε Μέζμδμη «Απιεζηείαξ» θαη «Δοκαμηθμύ Πνμγναμμαηηζμμύ» Γιάπηζηα ζθειεηηθά δέκδνα (αιγόνηζμμξ Prim, αιγόνηζμμξ Kruskal) οκημμόηενεξ δηαδνμμέξ (αιγόνηζμμξ Dijkstra, Ρμή δηθηύμο) Υνμκμπνμγναμμαηηζμόξ Γπηιεγμέκα ζέμαηα Τπμιμγηζηηθή πμιοπιμθόηεηα, NP-πιενόηεηα 13
έκημκε εμενμμεκία: μάζεμα ΓΑ: Γθθώκεζε Άζθεζεξ ΗΠ: Ημενμμεκία Πανάδμζεξ Άζθεζεξ ΠΑ: Πανμοζίαζε Άζθεζεξ Φεβνμοάνημξ MON TUE WED THU FRI 18 19 20 21 22 25 26 27 28 Απνίιημξ MON TUE WED THU FRI 1 2 3 4 5-ΠΑ 8 9 10 11 12 15 16 17 18 19 22 23 24 25 26-ΓΑ 29 30 Ημενμιόγημ μαζήμαημξ Μάνηημξ MON TUE WED THU FRI 1 4 5 6 7 8 11 12 13 14 15-ΓΑ 18 19 20 21 22 25 26 27 28 29-ΗΠ Μάημξ MON TUE WED THU FRI 1 2 3 6 7 8 9 10 13-ΗΠ 14 15 16 17-ΠΑ 20 21 22 23 24 14
Βαζηθά ημηπεία Ακάιοζεξ Αιγμνίζμςκ Απμδμηηθόηεηα Πνμζεγγίζεηξ Ακάιοζεξ Πμιοπιμθόηεηα
Απμδμηηθόηεηα Γπηζομία: εύνεζε ημο πημ «απμδμηηθμύ» αιγμνίζμμο Πώξ μεηνάμε ηεκ απμδμηηθόηεηα; Κιημάθςζε: πώξ μεηαβάιιεηαη ε ζομπενηθμνά ημο αιγμνίζμμο ζε δηαθμνεηηθά μεγέζε (εηζόδμο) ημο πνμβιήμαημξ ; o Π.π. ακαμέκμομε μεγαιύηενε (οπμιμγηζηηθή) πνμζπάζεηα γηα μηα ηαληκόμεζε 1.000.000 ζημηπείςκ από όηη γηα μηα ηαληκόμεζε 10.000 ζημηπείςκ 16
Απμδμηηθόηεηα 1 ε πνμζέγγηζε (εμπεηνηθή): πνμγναμμαηηζμόξ αιγμνίζμμο θαη ελαγςγή ζομπεναζμάηςκ μέζς πεηναμάηςκ Ακμμμημγεκέξ - ελανηάηαη από πμιιμύξ οπμθεημεκηθμύξ πανάγμκηεξ Καμία γκώζε γηα ηεκ θιημάθςζε (ζομπενηθμνά αιγμνίζμμο ζε μεγαιύηενα μεγέζε εηζόδμο) 17
Απμδμηηθόηεηα Ακάιοζε Αιγμνίζμωκ: Πνόβιερε απαηημύμεκςκ πόνςκ ζακ ζοκάνηεζε ημο μεγέζμοξ ηεξ εηζόδμο Πόνμη: πνόκμξ, πώνμξ (ζηε μκήμε) Ακάιοζε: απαηηεί μμκηέιμ αλημιόγεζεξ ηεξ πμιοπιμθόηεηαξ εκόξ αιγμνίζμμο Υνμκηθή πμιοπιμθόηεηα (ή πνόκμξ εθηέιεζεξ): ανηζμόξ ζημηπεηςδώκ ιεηημονγηώκ πμο εθηειμύκηαη από ημκ αιγόνηζμμ ζακ ζοκάνηεζε ημο μεγέζμοξ ηεξ εηζόδμο 18
Απμδμηηθόηεηα 2 ε πνμζέγγηζε (πμιοπιμθόηεηα πεηνόηενεξ πενίπηωζεξ): Άκς όνημ ζημκ πνόκμ εθηέιεζεξ γηα θάζε ζηηγμηόηοπμ εηζόδμο Ομμημγεκήξ απμηοπώκεη ανθεηά θαιά ηεκ απμδμηηθόηεηα ζηεκ πνάλε θαη πνμζθένεη πιενμθμνία θιημάθςζεξ Δναθόκηεημ μέηνμ, αιιά δεκ οπάνπεη απμηειεζμαηηθή εκαιιαθηηθή ιύζε 19
Απμδμηηθόηεηα 3 ε πνμζέγγηζε (πμιοπιμθόηεηα μέζεξ πενίπηωζεξ): Μέζμξ (ακαμεκόμεκμξ) πνόκμξ εθηέιεζεξ ζε «ηοπαία» ζηηγμηόηοπα εηζόδμο μηαξ πηζακμηηθήξ θαηακμμήξ Δύζθμιμ/αδύκαημ κα μνηζημύκ πναγμαηηθά ζηηγμηόηοπα από ηοπαίεξ θαηακμμέξ Ακμμμημγεκήξ - βέιηηζημξ αιγόνηζμμξ γηα μηα θαηακμμή μπμνεί κα έπεη ηειείςξ δηαθμνεηηθή ζομπενηθμνά ζε άιιε θαηακμμή 20
Απμδμηηθόηεηα Γπηθεκηνςκόμαζηε ζηεκ ακάιοζε πμιοπιμθόηεηαξ πεηνόηενεξ πενίπηςζεξ 21
Μμκηέιμ RAM (Μεπακή Τοπαίαξ Πνμζπέιαζεξ Random Access Machine) ηηγμηόηοπμ εηζόδμο μεγέζμοξ n ζημηπείςκ, με μέγηζηε ηημή ζημηπείμο N ημηπεηώδεξ οπμιμγηζηηθό βήμα: 1 μμκάδα πνόκμο γηα θάζε βαζηθή ιεηημονγία (π.π., ανηζμεηηθή πνάλε, ιμγηθή πνάλε, ζύγθνηζε, θαηαπώνεζε, θιπ) 1 μμκάδα πνόκμο γηα πνμζπέιαζε (ακάγκςζε/εγγναθή) εκόξ ζηαζενμύ ανηζμμύ ιέλεςκ μκήμεξ ηςκ log n (ή log Ν) bit Γπηζομία θιημάθςζεξ Υνμκηθή πμιοπιμθόηεηα = f(n) [ή f(n, log N)] Υςνηθή πμιοπιμθόηεηα = g(n, log N) Γνώηεμα: ηη μμνθή (πνέπεη κα) έπμοκ μη f θαη g ; 22
Ακαδήηεζε Ωμήξ Βίαξ (Υπεν)Γθζεηηθόξ Φνόκμξ Ωμή βία: Σεηνημμέκμξ αιγόνηζμμξ επίιοζεξ πνμβιήμαημξ έιεγπμξ όιςκ ηςκ πηζακώκ ιύζεςκ (ζημ πώνμ όιςκ ηςκ δοκαηώκ ιύζεςκ ημο πνμβιήμαημξ) οκήζςξ παίνκεη πνόκμ 2 n ή πεηνόηενμ (π.π. n!) γηα είζμδμ μεγέζμοξ n Μεδαμηκή πναθηηθή αλία Πμιύ ζοπκά με επηηνεπηό (όζμ μεγαιώκεη ε ηημή ημο n) Γθζεηηθή πμιοπιμθόηεηα Τπάνπμοκ ζηαζενέξ a > 0, c > 0, d > 0, θαη k 0 ηέημηεξ ώζηε γηα θάζε είζμδμ μεγέζμοξ n, μ πνόκμξ εθηέιεζεξ κα θνάζζεηαη από c a nd log k n ζημηπεηώδε οπμιμγηζηηθά βήμαηα Π.π., n! n n = 2 n log n 23
Πμιοωκομηθόξ Φνόκμξ Τπάνπμοκ ζηαζενέξ c > 0, d > 0, θαη k 0 ηέημηεξ ώζηε γηα θάζε είζμδμ μεγέζμοξ n, μ πνόκμξ εθηέιεζεξ κα θνάζζεηαη από c n d log k n ζημηπεηώδε οπμιμγηζηηθά βήμαηα Γπηζομεηή ηδηόηεηα θιημάθςζεξ. Όηακ ημ μέγεζμξ ηεξ εηζόδμο δηπιαζηάδεηαη, ε πνμκηθή πμιοπιμθόηεηα ζα πνέπεη κα μεγαιώκεη μόκμ θαηά έκακ ζηαζενό πανάγμκηα Δ. Μέγεζμξ n 2n Υνόκμξ c n d log k n c (2n) d log k (2n) < c 2 d+1 n d log k n Δ = 2 d+1 Έκαξ αιγόνηζμμξ είκαη πμιοςκομηθμύ πνόκμο ακ ηζπύεη ε παναπάκς ηδηόηεηα θιημάθςζεξ. 24
Πμιοωκομηθόξ vs Γθζεηηθόξ Φνόκμξ Υνμκηθή δηάνθεηα 1 ώναξ ζε Η/Τ με S 1 ζημηπ. ιεηημονγίεξ /sec Αιγόνηζμμξ ΥΠ Μέγεζμξ ζηηγμομηύπμο Πμιοςκομηθόξ n 2 n 1 Γθζεηηθόξ 2 n N 1 Νέμξ Η/Τ με ηαπύηεηα S 2 = 100 S 1 ζημηπ. ιεηημονγίεξ/sec Γνώηεμα 1: πόζμ μεγαιύηενα ζηηγμηόηοπα εηζόδμο μεγέζμοξ n 2 μπμνεί κα επηιύζεη ζε μία ώνα μ Π ζημ κέμ Η/Τ?? n 2 n 1 2 = s 2 s 1 n 2 n 1 = s 2 s 1 = 100 = 10 n 2 = 10n 1 Γνώηεμα 2: πόζμ μεγαιύηενα ζηηγμηόηοπα εηζόδμο μεγέζμοξ Ν 2 μπμνεί κα επηιύζεη ζε μία ώνα μ Γ ζημ κέμ Η/Τ?? (!) 25
Γκδεηθηηθμί Υνόκμη Γθηέιεζεξ Πμιοςκομηθώκ & Γθζεηηθώκ Αιγμνίζμςκ 26
Απμδμηηθόηεηα & Πμιοωκομηθόξ Φνόκμξ Έκαξ αιγόνηζμμξ είκαη απμδμηηθόξ ακ έπεη πμιοςκομηθό πνόκμ εθηέιεζεξ Αηηημιόγεζε: Μεγάιε πναθηηθή ζεμαζία! ηεκ πνάλε, μη αιγόνηζμμη πμιοςκομηθμύ πνόκμο πμο ακαπηύζζμομε ζπεδόκ πάκηα έπμοκ παμειέξ ζηαζενέξ θαη παμειμύξ εθζέηεξ. Μείςζε ημο εθζεηηθμύ μνίμο εκόξ αιγόνηζμμο ςμήξ βίαξ ζοκήζςξ απμθαιύπηεη θάπμηα πμιύ ζεμακηηθή δμμή ημο πνμβιήμαημξ. Γλαηνέζεηξ Κάπμημη αιγόνηζμμη πμιοςκομηθμύ πνόκμο έπμοκ όκηςξ ορειέξ ζηαζενέξ ή/θαη εθζέηεξ θαη είκαη άπνεζημη ζηεκ πνάλε. Ονηζμέκμη εθζεηηθμύ πνόκμο (ή πεηνόηενμη) αιγόνηζμμη πνεζημμπμημύκηαη εονέςξ γηαηί ηα ζηηγμηόηοπα πεηνόηενεξ πενίπηςζεξ είκαη ζπάκηα. simplex method Unix grep 27
Πμιοωκομηθόξ Φνόκμξ Έκαξ αιγόνηζμμξ είκαη απμδμηηθόξ ακ έπεη πμιοςκομηθό πνόκμ εθηέιεζεξ Γνώηεμα: Μαξ ανθεί μπμημζδήπμηε πμιοςκομηθόξ πνόκμξ; 28
Πμιοωκομηθμί Αιγόνηζμμη Πνόβιεμα: ηαληκόμεζε n ζημηπείςκ ημηπεηώδεξ ιεηημονγία: ζύγθνηζε δύμ ζημηπείςκ Αιγόνηζμμξ Υνόκμξ (ζογθνίζεηξ) Α1 10 n log n Α2 n 2 Τπμιμγηζηήξ ογθνίζεηξ/sec Τ1 (2005) 10 7 Τ2 (2013) 10 9 n = 10 6 Υνόκμξ Α1 (πημ απμδμηηθόξ) ζημκ Τ1 (ανγόξ): (10 10 6 log 10 6 ) / 10 7 = 6 log 10 secs 20 secs Υνόκμξ Α2 (ιηγόηενμ απμδμηηθόξ) ζημκ Τ2 (γνήγμνμξ): (10 6 ) 2 / 10 9 = 1000 secs = 16.6 min 29
Πμιοωκομηθμί Αιγόνηζμμη Πνόβιεμα: ηαληκόμεζε n ζημηπείςκ ημηπεηώδεξ ιεηημονγία: ζύγθνηζε δύμ ζημηπείςκ Αιγόνηζμμξ Υνόκμξ (ζογθνίζεηξ) Α1 10 n log n Α2 n 2 Τπμιμγηζηήξ ογθνίζεηξ/sec Τ1 (2005) 10 7 Τ2 (2013) 10 9 n = 10 7 Υνόκμξ Α1 (πημ απμδμηηθόξ) ζημκ Τ1 (ανγόξ): (10 10 7 log 10 7 ) / 10 7 = 70 log 10 = 232 secs 3.8 min Υνόκμξ Α2 (ιηγόηενμ απμδμηηθόξ) ζημκ Τ2 (γνήγμνμξ): (10 7 ) 2 / 10 9 = 10000 secs = 27.7 hours (!) 30
Πμιοωκομηθόξ Φνόκμξ Έκαξ αιγόνηζμμξ είκαη απμδμηηθόξ ακ έπεη πμιοςκομηθό πνόκμ εθηέιεζεξ Γνώηεμα: Μαξ ανθεί μπμημζδήπμηε πμιοςκομηθόξ πνόκμξ; Απάκηεζε: ΟΥΙ Απμδμηηθόηεηα Όζμ ημ δοκαηόκ «μηθνόηενμ» πμιοώκομμ Σενάζηηα πναθηηθή/ηεπκμιμγηθή ζεμαζία 31
Ονηζμέκα Ακηηπνμζςπεοηηθά Πνμβιήμαηα
Υνμκμπνμγναμμαηηζμόξ Δηαζηεμάηςκ Γίζμδμξ. ύκμιμ από ενγαζίεξ με πνόκμοξ έκανλεξ θαη ηενμαηηζμμύ. ηόπμξ. Γύνεζε οπμζοκόιμο μέγηζηεξ πιεζηθόηεηαξ από ζομβαηέξ ενγαζίεξ. μη ενγαζίεξ δεκ επηθαιύπημκηαη a b c d e f g 0 1 2 3 4 5 6 7 8 9 10 11 h Time 33
ηαζμηζμέκμξ Υνμκμπνμγναμμαηηζμόξ Δηαζηεμάηςκ Γίζμδμξ. ύκμιμ από ενγαζίεξ με πνόκμοξ έκανλεξ θαη ηενμαηηζμμύ θαη βάνε. ηόπμξ. Γύνεζε οπμζοκόιμο από ζομβαηέξ ενγαζίεξ με μέγηζημ ζοκμιηθό βάνμξ. 23 12 20 26 13 20 11 0 1 2 3 4 5 6 7 8 9 10 11 16 Time 34
Δημενέξ Σαίνηαζμα Γίζμδμξ. Έκα δημενέξ γνάθεμα. ηόπμξ. Γύνεζε ηαηνηάζμαημξ μέγηζηεξ πιεζηθόηεηαξ. A 1 B 2 C 3 D 4 E 5 35
Ακελάνηεημ ύκμιμ Γίζμδμξ. Έκα γνάθεμα. ηόπμξ. Γύνεζε ακελάνηεημο ζοκόιμο μέγηζηεξ πιεζηθόηεηαξ. οπμζύκμιμ θμνοθώκ πμο ακά δύμ δεκ εκώκμκηαη με αθμή 1 2 3 4 5 6 7 36
Ονηζμέκα Ακηηπνμζςπεοηηθά Πνμβιήμαηα Παναιιαγέξ ημο ζέμαημξ: ακελάνηεημ ζύκμιμ. Υνμκμπνμγναμμαηηζμόξ δηαζηεμάηςκ: n log n - άπιεζημξ αιγόνηζμμξ. ηαζμηζμέκμξ πνμκμπνμγναμμαηηζμόξ δηαζηεμάηςκ: n log n - αιγόνηζμμξ με δοκαμηθό πνμγναμμαηηζμό. Δημενέξ ηαίνηαζμα: n k - αιγόνηζμμξ νμήξ δηθηύμο. Ακελάνηεημ ζύκμιμ: NP-πιήνεξ 37
Ανοικτά Ακαδημαϊκά Μαθήματα Πανεπιστήμιο Ιωαννίνων Τέλος Ενότητας
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Ιωαννίνων» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Σημειώματα Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Ιωαννίνων, Διδάσκων: Λέκτορας Χάρης Παπαδόπουλος «Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων». Έκδοση: 1.0. Ιωάννινα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: http://ecourse.uoi.gr/course/view.php?id=1111. Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού - Παρόμοια Διανομή, Διεθνής Έκδοση 4.0 [1] ή μεταγενέστερη. [1] https://creativecommons.org/licenses/by-sa/4.0/.