Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων Ενότητα: Ανάλυση αλγορίθμων Διδάσκων: Λέκτορας Xάρης Παπαδόπουλος Τμήμα: Μαθηματικών
641: Γηζαγςγή ζηε Θεςνία θαη Ακάιοζε Αιγμνίζμςκ Υάνεξ Παπαδόπμοιμξ
Τιε ημο μαζήμαημξ Βαζηθά ζημηπεία ζπεδίαζεξ & ακάιοζεξ αιγμνίζμςκ Ακάιοζε αιγμνίζμςκ, απμδμηηθόηεηα, αζομπηςηηθόξ ζομβμιηζμόξ οκεζηζμέκμη πνόκμη εθηέιεζεξ θαη βαζηθέξ δμμέξ δεδμμέκςκ πίκαθεξ, ιίζηεξ, ζημίβεξ, μονέξ Γοζηαζέξ ηαίνηαζμα, μνζόηεηα, ζςνόξ θαη μονά πνμηεναηόηεηαξ Μέζμδμξ «Δηαίνεη θαη Βαζίιεοε» Γθανμμγέξ ζε ηαληκόμεζε ζημηπείςκ Γπίιοζε ακαδνμμηθώκ ζπέζεςκ Γναθήμαηα θαη αιγόνηζμμη γναθεμάηςκ Δηάηνελε γναθεμάηςκ (BFS, DFS) οκεθηηθόηεηα Σμπμιμγηθή δηάηαλε Μέζμδμη «Απιεζηείαξ» θαη «Δοκαμηθμύ Πνμγναμμαηηζμμύ» Γιάπηζηα ζθειεηηθά δέκδνα (αιγόνηζμμξ Prim, αιγόνηζμμξ Kruskal) οκημμόηενεξ δηαδνμμέξ (αιγόνηζμμξ Dijkstra, Ρμή δηθηύμο) Υνμκμπνμγναμμαηηζμόξ Γπηιεγμέκα ζέμαηα Τπμιμγηζηηθή πμιοπιμθόηεηα, NP-πιενόηεηα 2
Μαζεμαηηθό Τπόβαζνμ 3
Μαζεμαηηθό Τπόβαζνμ n ζημηπεία εκόξ ζοκόιμο: n! δηαθμνεηηθέξ δηαηάλεηξ {1,2,3} {2,1,3} {2,3,1} Σμ πιήζμξ ηςκ δοκαηώκ δηαηάλεςκ επηιέγμκηαξ k από n ακηηθείμεκα: Γπηιμγή πςνίξ ακηηθαηάζηαζε Γπηιμγή με ακηηθαηάζηαζε Σνόπμη επηιμγήξ k δηαθνηηώκ ακηηθεημέκςκ από n: ή Κάης θνάγμα Άκς θνάγμα Γηα x=y=1: 4
Ακάιοζε Αιγμνίζμςκ Βαζηθά ζημηπεία ακάιοζεξ αιγμνίζμςκ
Ακάιοζε Αιγμνίζμςκ οκήζςξ πενηγνάθμομε έκακ αιγόνηζμμ ζε θάπμηα μμνθή ρεοδμθώδηθα, μηα εκδηάμεζε μμνθή μεηαλύ γιώζζαξ πνμγναμμαηηζμμύ (C/C++/java) θαη αγγιηθώκ. Όηακ δίκμομε έκα όνημ γηα ημ πνόκμ εθηέιεζεξ εκόξ αιγμνίζμμο, μεηνάμε γεκηθά ημκ ανηζμό ηςκ βεμάηςκ ρεοδμθώδηθα πμο εθηειμύκηαη. ημηπεηώδεξ οπμιμγηζηηθό βήμα: 1 μμκάδα πνόκμο γηα θάζε βαζηθή ιεηημονγία (π.π., ανηζμεηηθή πνάλε, ιμγηθή πνάλε, ζύγθνηζε, θαηαπώνεζε, θιπ) 1 μμκάδα πνόκμο γηα πνμζπέιαζε (ακάγκςζε/εγγναθή) εκόξ ζηαζενμύ ανηζμμύ 6
Πανάδεηγμα Πόζμξ πνόκμξ απαηηείηαη ακά εκημιή; Πμηα είκαη ε ζοπκόηεηα εθηέιεζεξ ηεξ θάζε εκημιήξ; Πμημξ είκαη μ ζοκμιηθόξ πνόκμξ (T(n), γηα είζμδμ μεγέζμοξ n) Πανάδεηγμα Τπμιμγηζμόξ εζςηενηθμύ γηκμμέκμο z = 0; for (i=0; i<n; i++) { t = x[i]*y[i]; z = z+t; } 7
Πανάδεηγμα Πόζμξ πνόκμξ απαηηείηαη ακά εκημιή; Πμηα είκαη ε ζοπκόηεηα εθηέιεζεξ ηεξ θάζε εκημιήξ; Πμημξ είκαη μ ζοκμιηθόξ πνόκμξ (T(n), γηα είζμδμ μεγέζμοξ n) Πανάδεηγμα Τπμιμγηζμόξ εζςηενηθμύ γηκμμέκμο z = 0; for (i=0; i<n; i++) { t = x[i]*y[i]; z = z+t; } Υνόκμξ εθηέιεζεξ: Σ(n) = c 1 8
Πανάδεηγμα Πόζμξ πνόκμξ απαηηείηαη ακά εκημιή; Πμηα είκαη ε ζοπκόηεηα εθηέιεζεξ ηεξ θάζε εκημιήξ; Πμημξ είκαη μ ζοκμιηθόξ πνόκμξ (T(n), γηα είζμδμ μεγέζμοξ n) Πανάδεηγμα Τπμιμγηζμόξ εζςηενηθμύ γηκμμέκμο z = 0; for (i=0; i<n; i++) { t = x[i]*y[i]; z = z+t; } Υνόκμξ εθηέιεζεξ: Σ(n) = c 1 + c 2 n 9
Πανάδεηγμα Πόζμξ πνόκμξ απαηηείηαη ακά εκημιή; Πμηα είκαη ε ζοπκόηεηα εθηέιεζεξ ηεξ θάζε εκημιήξ; Πμημξ είκαη μ ζοκμιηθόξ πνόκμξ (T(n), γηα είζμδμ μεγέζμοξ n) Πανάδεηγμα Τπμιμγηζμόξ εζςηενηθμύ γηκμμέκμο z = 0; for (i=0; i<n; i++) { t = x[i]*y[i]; z = z+t; } Υνόκμξ εθηέιεζεξ: Σ(n) = c 1 + c 2 n + c 3 n 10
Πανάδεηγμα Πόζμξ πνόκμξ απαηηείηαη ακά εκημιή; Πμηα είκαη ε ζοπκόηεηα εθηέιεζεξ ηεξ θάζε εκημιήξ; Πμημξ είκαη μ ζοκμιηθόξ πνόκμξ (T(n), γηα είζμδμ μεγέζμοξ n) Πανάδεηγμα Τπμιμγηζμόξ εζςηενηθμύ γηκμμέκμο z = 0; for (i=0; i<n; i++) { t = x[i]*y[i]; z = z+t; } Υνόκμξ εθηέιεζεξ: Σ(n) = c 1 + c 2 n + c 3 n + c 4 n 11
Πανάδεηγμα Πόζμξ πνόκμξ απαηηείηαη ακά εκημιή; Πμηα είκαη ε ζοπκόηεηα εθηέιεζεξ ηεξ θάζε εκημιήξ; Πμημξ είκαη μ ζοκμιηθόξ πνόκμξ (T(n), γηα είζμδμ μεγέζμοξ n) Πανάδεηγμα Τπμιμγηζμόξ εζςηενηθμύ γηκμμέκμο z = 0; for (i=0; i<n; i++) { t = x[i]*y[i]; z = z+t; } Υνόκμξ εθηέιεζεξ: Σ(n) = c 1 + c 2 n + c 3 n + c 4 n = (c 2 + c 3 + c 4 ) n + c 1 12
Πανάδεηγμα Πόζμξ πνόκμξ απαηηείηαη ακά εκημιή; Πμηα είκαη ε ζοπκόηεηα εθηέιεζεξ ηεξ θάζε εκημιήξ; Πμημξ είκαη μ ζοκμιηθόξ πνόκμξ (T(n), γηα είζμδμ μεγέζμοξ n) Πανάδεηγμα Τπμιμγηζμόξ εζςηενηθμύ γηκμμέκμο z = 0; for (i=0; i<n; i++) { t = x[i]*y[i]; z = z+t; } Υνόκμξ εθηέιεζεξ: Σ(n) = c 1 + c 2 n + c 3 n + c 4 n = (c 2 + c 3 + c 4 ) n + c 1 = a n + b γναμμηθόξ 13
Άιιμ Πανάδεηγμα Πανάδεηγμα Πόζεξ ηνηάδεξ ζε έκακ πίκαθα α[] έπμοκ άζνμηζμα μεδέκ; int count=0; for (int i=0; i<n; i++) for (int j=i+1; j<n; j++) for (int k=j+1; k<n; k++) if ( a[i]+a[j]+a[k] == 0) count++; Υνόκμξ εθηέιεζεξ: 14
Άιιμ Πανάδεηγμα Πανάδεηγμα Πόζεξ ηνηάδεξ ζε έκακ πίκαθα α[] έπμοκ άζνμηζμα μεδέκ; int count=0; for (int i=0; i<n; i++) for (int j=i+1; j<n; j++) for (int k=j+1; k<n; k++) if ( a[i]+a[j]+a[k] == 0) count++; Υνόκμξ εθηέιεζεξ: 15
Άιιμ Πανάδεηγμα Πανάδεηγμα Πόζεξ ηνηάδεξ ζε έκακ πίκαθα α[] έπμοκ άζνμηζμα μεδέκ; int count=0; for (int i=0; i<n; i++) for (int j=i+1; j<n; j++) for (int k=j+1; k<n; k++) if ( a[i]+a[j]+a[k] == 0) count++; Υνόκμξ εθηέιεζεξ: 16
Άιιμ Πανάδεηγμα Πανάδεηγμα Πόζεξ ηνηάδεξ ζε έκακ πίκαθα α[] έπμοκ άζνμηζμα μεδέκ; int count=0; for (int i=0; i<n; i++) for (int j=i+1; j<n; j++) for (int k=j+1; k<n; k++) if ( a[i]+a[j]+a[k] == 0) count++; Υνόκμξ εθηέιεζεξ: θοβηθόξ 17
Άιιμ Πανάδεηγμα Πανάδεηγμα Πόζεξ ηνηάδεξ ζε έκακ πίκαθα α[] έπμοκ άζνμηζμα μεδέκ; int count=0; for (int i=0; i<n; i++) for (int j=i+1; j<n; j++) for (int k=j+1; k<n; k++) if ( a[i]+a[j]+a[k] == 0) count++; Υνόκμξ εθηέιεζεξ: (αιιηώξ): δμθημάδεη όιεξ ηηξ ηνηάδεξ i, j, k με 0 i j k n-1 θοβηθόξ 18
Ακάιοζε Αιγμνίζμςκ Πναθηηθμί θακόκεξ ζηεκ ακάιοζε Σμ θόζημξ εθηέιεζεξ μηαξ εκημιήξ εζςηενηθά ζε έκακ βνόγπμ επακάιερεξ πνμθύπηεη από ημ γηκόμεκμ ημο θόζημοξ 1 εθηέιεζεξ ηεξ εκημιήξ επί ημκ ανηζμό ηςκ επακαιήρεςκ Σμ θόζημξ εθηέιεζεξ μηαξ εκημιήξ εκόξ πμιιαπιμύ (θςιηαζμέκμο) βνόγπμο επακάιερεξ πνμθύπηεη από ημ γηκόμεκμ ημο θόζημοξ 1 εθηέιεζεξ ηεξ εκημιήξ επί ημκ ανηζμό ηςκ επακαιήρεςκ όιςκ ηςκ βνόγπςκ (από μέζα πνμξ ηα έλς) ε πενίπηςζε δηαδμπηθώκ εκημιώκ εζηηαδόμαζηε ζηεκ εκημιή με ημ μεγαιύηενμ θόζημξ Σμ θόζημξ εθηέιεζεξ μηα εκημιήξ ειέγπμο (if) ηζμύηαη με ημ θόζημξ ημο ειέγπμο ζοκ ημ θόζημξ ηεξ δηαθιάδςζεξ με ημ μεγαιύηενμ θόζημξ 19
Αζομπηςηηθόξ νοζμόξ αύλεζεξ Ο( ) Ω( ) Θ( ) μ( )
Κίκεηνμ Πνμζδημνηζμόξ επαθνηβμύξ πμιοςκύμμο γηα ηεκ πνμκηθή (ή πςνηθή) πμιοπιμθόηεηα εκόξ πνμβιήμαημξ Π, ςξ ζοκάνηεζε ημο μεγέζμοξ ηεξ εηζόδμο n, δεκ είκαη πάκημηε εύθμιμξ 21
Κίκεηνμ Πνόβιεμα Π μέγεζμξ εηζόδμο n Αιγόνηζμμξ Υνμκηθή Πμιοπιμθόηεηα Α1 1000 n Α2 200 n log n Α3 10 n 2 Α4 2 n Εοώτημα: Πμημξ είκαη ηαπύηενμξ/απμδμηηθόηενμξ; 22
Κίκεηνμ Πνόβιεμα Π μέγεζμξ εηζόδμο n Αιγόνηζμμξ Α1 Α2 Υνμκηθή Πμιοπιμθόηεηα 1000 n 200 n log n Α3 10 n 2 Α4 2 n Εοώτημα: Πμημξ είκαη ηαπύηενμξ/απμδμηηθόηενμξ; Απάμτηση: Γλανηάηαη από ημ n n Απμδμηηθόηενμξ 1 n 9 A4 10 n 100 A3 101 n A1 23
Αζομπηςηηθόξ νοζμόξ αύλεζεξ ομπέναζμα: Μαξ εκδηαθένεη ηη γίκεηαη γηα μεγάιεξ ηημέξ ημο n (n ), Δει. γηα ηημέξ n n 0 (n 0 θάπμημ θαηώθιη) Ασρμπτωτική Πξλρπλξκότητα και Σρμβξλισμόπ 24
Αζομπηςηηθόξ νοζμόξ αύλεζεξ Γθθνάδμομε (μαζεμαηηθμπμημύμε) ιμηπόκ ηεκ έκκμηα όηη: μ πνόκμξ εθηέιεζεξ εκόξ αιγμνίζμμο ζηε πεηνόηενε πενίπηςζε γηα εηζόδμοξ μεγέζμοξ n αολάκεηαη με έκα νοζμό πμο είκαη ημ πμιύ ακάιμγμξ θάπμηαξ ζοκάνηεζεξ f(n). οκήζςξ πενηγνάθμομε έκακ αιγόνηζμμ ζε θάπμηα μμνθή ρεοδμθώδηθα, μηα εκδηάμεζε μμνθή μεηαλύ γιώζζαξ πνμγναμμαηηζμμύ (C/C++/java) θαη αγγιηθώκ. Όηακ δίκμομε έκα όνημ γηα ημ πνόκμ εθηέιεζεξ εκόξ αιγμνίζμμο, μεηνάμε γεκηθά ημκ ανηζμό ηςκ βεμάηςκ ρεοδμθώδηθα πμο εθηειμύκηαη. 25
Αζομπηςηηθόξ νοζμόξ αύλεζεξ Θα μπμνμύζαμε κα μεηνάμε ημκ πνόκμ εθηέιεζεξ εκόξ αιγμνίζμμο με ιεπημμένεηα, π.π Σ(n) = 1.62n 2 + 3.5n + 8 Αιιά ζέιμομε κα εθθνάζμομε ημ νοζμό αύλεζεξ ημο πνόκμο εθηέιεζεξ θαη ηςκ άιιςκ ιεηημονγηώκ με έκακ ηνόπμ πμο κα μεκ επενεάδεηαη από ζηαζενμύξ πανάγμκηεξ όνμοξ παμειήξ ηάλεξ Π.π. γηα ηεκ ζοκάνηεζε Σ(n) ζέιμομε κα πμύμε πςξ αρνάμεται όπωπ η σρμάοτηση n 2 26
Αζομπηςηηθόξ νοζμόξ αύλεζεξ Γλεηάδμομε ηε ζομπενηθμνά ηςκ ζοκανηήζεςκ όζμ αολάκεη ημ μέγεζμξ ηεξ εηζόδμο 27
Αζομπηςηηθόξ ομβμιηζμόξ Ο( ) Ο - αζομπηςηηθά άκς όνηα Η ζοκάνηεζε T(n) είκαη O(f(n)), ακ Ǝ ζηαζενέξ c > 0 θαη n 0 0 ηέημηεξ ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) c f(n) Πνμζμπή ε ζηαζενά c πνέπεη κα ιεηημονγεί γηα όια ηα n, δεκ μπμνεί δειαδή ημ c κα ελανηάηαη από ημ n. 28
Αζομπηςηηθόξ ομβμιηζμόξ Ο( ) Ο - αζομπηςηηθά άκς όνηα Η ζοκάνηεζε T(n) είκαη O(f(n)), ακ Ǝ ζηαζενέξ c > 0 θαη n 0 0 ηέημηεξ ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) c f(n) εμεημιμγία Σ(n) Ο(f(n)) αιιά γηα απιμύζηεοζε γνάθμομε T(n) = O(f(n)) Πανάδεηγμα: (α) T(n) = 37n 2 + 19n + 72 T(n) = O(n 2 ) θαη Σ(n) = O(n 3 ) αιιά T(n) O(n) (b) T(n) = 100n + 2n 2 + 17n log n + n 3 /100 Σ(n) = O(n 3 ) - αιιά T(n) O(n 2 ) 29
Αζομπηςηηθόξ ομβμιηζμόξ Ο( ) Ο - αζομπηςηηθά άκς όνηα Η ζοκάνηεζε T(n) είκαη O(f(n)), ακ Ǝ ζηαζενέξ c > 0 θαη n 0 0 ηέημηεξ ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) c f(n) Γηδηθόηενα: Έζης όηη γηα ηηξ ζοκανηήζεηξ T(n) θαη f(n) οπάνπεη ημ όνημ θαη έπεη ηημή c γηα θάπμηα ζηαζενά c. Σόηε T(n) = O(f(n)) 30
Αζομπηςηηθόξ ομβμιηζμόξ Ο( ) Ο - αζομπηςηηθά άκς όνηα Η ζοκάνηεζε T(n) είκαη O(f(n)), ακ Ǝ ζηαζενέξ c > 0 θαη n 0 0 ηέημηεξ ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) c f(n) Γηδηθόηενα: Έζης όηη γηα ηηξ ζοκανηήζεηξ T(n) θαη f(n) οπάνπεη ημ όνημ θαη έπεη ηημή c γηα θάπμηα ζηαζενά c. Σόηε T(n) = O(f(n)) Πανάδεηγμα επεηδή 31
Αζομπηςηηθόξ ομβμιηζμόξ Ο( ) Ο - αζομπηςηηθά άκς όνηα Η ζοκάνηεζε T(n) είκαη O(f(n)), ακ Ǝ ζηαζενέξ c > 0 θαη n 0 0 ηέημηεξ ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) c f(n) Γηδηθόηενα: Έζης όηη γηα ηηξ ζοκανηήζεηξ T(n) θαη f(n) οπάνπεη ημ όνημ θαη έπεη ηημή c γηα θάπμηα ζηαζενά c. Σόηε T(n) = O(f(n)) Πανάδεηγμα επεηδή επεηδή 32
Αζομπηςηηθόξ ομβμιηζμόξ Ο( ) Ο - αζομπηςηηθά άκς όνηα Η ζοκάνηεζε T(n) είκαη O(f(n)), ακ Ǝ ζηαζενέξ c > 0 θαη n 0 0 ηέημηεξ ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) c f(n) Πανάδεηγμα Έζης έκαξ αιγόνηζμμξ ημο μπμίμο μ πνόκμξ εθηέιεζεξ έπεη ηεκ μμνθή T(n) = pn 2 + qn + r γηα ζεηηθέξ ζηαζενέξ p, q θαη r. Παναηενώκηαξ πςξ γηα n 1 ηζπύεη qn qn 2 θαη r rn 2, έπμομε γηα όια ηα n 1 T(n) = pn 2 + qn + r pn 2 + qn 2 + rn 2 = (p + q + r) n 2 Αθνηβώξ όηη απαηηεί μ μνηζμόξ ημο O( ) όπμο c = p + q + r θαη άνα T(n) = O(n 2 ). 33
Παναδείγμαηα - Ο( ) Πανάδεηγμα 1 2n 3 + 100n 2 + n O(n 3 ) 34
Παναδείγμαηα - Ο( ) Πανάδεηγμα 1 2n 3 + 100n 2 + n O(n 3 ) Ανθεί κα βνμύμε ζεηηθή ζηαζενά c θαη n 0 > 0 έηζη ώζηε n n 0 : 2n 3 + 100n 2 + n c n 3 35
Παναδείγμαηα - Ο( ) Πανάδεηγμα 1 2n 3 + 100n 2 + n O(n 3 ) Ανθεί κα βνμύμε ζεηηθή ζηαζενά c θαη n 0 > 0 έηζη ώζηε n n 0 : 2n 3 + 100n 2 + n c n 3 Γηα n > 1 ηζπύεη n i < n i+1, δειαδή 2n 3 + 100n 2 + n 2n 3 + 100n 3 + n 3 = 103 n 3 Άνα c = 103 θαη n 0 = 1. 36
Παναδείγμαηα - Ο( ) Πανάδεηγμα 2 n O(2 n ) 37
Παναδείγμαηα - Ο( ) Πανάδεηγμα 2 n O(2 n ) Ανθεί κα βνμύμε ζεηηθή ζηαζενά c θαη n 0 > 0 έηζη ώζηε n n 0 : n c 2 n 38
Παναδείγμαηα - Ο( ) Πανάδεηγμα 2 n O(2 n ) Ανθεί κα βνμύμε ζεηηθή ζηαζενά c θαη n 0 > 0 έηζη ώζηε n n 0 : n c 2 n Γηα c = 1 θαη n = n 0 = 1 ηζπύεη: n 2 n. Πνέπεη όμςξ κα δείλμομε όηη ηζπύεη γηα θάζε n 1. 39
Παναδείγμαηα - Ο( ) Πανάδεηγμα 2 n O(2 n ) Ανθεί κα βνμύμε ζεηηθή ζηαζενά c θαη n 0 > 0 έηζη ώζηε n n 0 : n c 2 n Γηα c = 1 θαη n = n 0 = 1 ηζπύεη: n 2 n. Πνέπεη όμςξ κα δείλμομε όηη ηζπύεη γηα θάζε n 1. Έζης f(n) = 2 n n με n 1. Γίκαη ζοκεπήξ θαη παναγςγίζημε. f (n) = ln(2) 2 n 1, όπμο γηα n 1, f (n) 0. Άνα f(n) γκεζίςξ αύλμοζα θαη παναμέκεη ζεηηθή γηα θάζε n 1. 40
Παναδείγμαηα - Ο( ) Πανάδεηγμα 3 1000000 O(1) 41
Παναδείγμαηα - Ο( ) Πανάδεηγμα 3 1000000 O(1) Ανθεί κα βνμύμε c > 0 θαη n 0 > 0 έηζη ώζηε n n 0 : 1000000 c 1 42
Παναδείγμαηα - Ο( ) Πανάδεηγμα 3 1000000 O(1) Ανθεί κα βνμύμε c > 0 θαη n 0 > 0 έηζη ώζηε n n 0 : 1000000 c 1 Γηα c = 1000001 θαη n 0 = 1 ηζπύεη. 43
Αζομπηςηηθόξ ομβμιηζμόξ Ω( ) Ω - αζομπηςηηθά θάης όνηα Η ζοκάνηεζε T(n) είκαη Ω(f(n)), ακ Ǝ ζηαζενέξ c > 0 θαη n 0 0 ηέημηεξ ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) c f(n) 44
Αζομπηςηηθόξ ομβμιηζμόξ Ω( ) Ω - αζομπηςηηθά θάης όνηα Η ζοκάνηεζε T(n) είκαη Ω(f(n)), ακ Ǝ ζηαζενέξ c > 0 θαη n 0 0 ηέημηεξ ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) c f(n) εμεημιμγία Σ(n) Ω(f(n)) αιιά γηα απιμύζηεοζε γνάθμομε T(n) = Ω(f(n)) Πανάδεηγμα: (α) T(n) = 37n 2 + 19n + 72 T(n) = Ω(n 2 ) θαη Σ(n) = Ω(n) αιιά T(n) Ω(n 3 ) (b) T(n) = 100n + 2n 2 + 17n log n + n 3 /100 Σ(n) = Ω(n 3 ) θαη Σ(n) = Ω(n 2 ) - αιιά T(n) Ω(n 4 ) 45
Αζομπηςηηθόξ ομβμιηζμόξ Ω( ) Ω - αζομπηςηηθά θάης όνηα Η ζοκάνηεζε T(n) είκαη Ω(f(n)), ακ Ǝ ζηαζενέξ c > 0 θαη n 0 0 ηέημηεξ ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) c f(n) Γηδηθόηενα: Έζης όηη γηα ηηξ ζοκανηήζεηξ T(n) θαη f(n) οπάνπεη ημ όνημ θαη έπεη ηημή c γηα θάπμηα ζηαζενά c. Σόηε T(n) = Ω(f(n)) Ιζπύεη: 46
Αζομπηςηηθόξ ομβμιηζμόξ Ω( ) Ω - αζομπηςηηθά θάης όνηα Η ζοκάνηεζε T(n) είκαη Ω(f(n)), ακ Ǝ ζηαζενέξ c > 0 θαη n 0 0 ηέημηεξ ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) c f(n) Γηδηθόηενα: Έζης όηη γηα ηηξ ζοκανηήζεηξ T(n) θαη f(n) οπάνπεη ημ όνημ θαη έπεη ηημή c γηα θάπμηα ζηαζενά c. Σόηε T(n) = Ω(f(n)) Πανάδεηγμα επεηδή 47
Αζομπηςηηθόξ ομβμιηζμόξ Ω( ) Ω - αζομπηςηηθά θάης όνηα Η ζοκάνηεζε T(n) είκαη Ω(f(n)), ακ Ǝ ζηαζενέξ c > 0 θαη n 0 0 ηέημηεξ ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) c f(n) Γηδηθόηενα: Έζης όηη γηα ηηξ ζοκανηήζεηξ T(n) θαη f(n) οπάνπεη ημ όνημ θαη έπεη ηημή c γηα θάπμηα ζηαζενά c. Σόηε T(n) = Ω(f(n)) Πανάδεηγμα επεηδή επεηδή 48
Αζομπηςηηθόξ ομβμιηζμόξ Ω( ) Ω - αζομπηςηηθά θάης όνηα Η ζοκάνηεζε T(n) είκαη Ω(f(n)), ακ Ǝ ζηαζενέξ c > 0 θαη n 0 0 ηέημηεξ ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) c f(n) Πανάδεηγμα: Έζης πάιη ε ζοκάνηεζε T(n) = pn 2 + qn + r γηα ζεηηθέξ ζηαζενέξ p, q θαη r. Μπμνμύμε κα πμύμε πςξ γηα n 1 ηζπύεη T(n) = pn 2 + qn + r pn 2 Άνα γηα c = p έπμομε T(n) = Ω(n 2 ) Μπμνμύμε επίζεξ κα πμύμε πςξ T(n) = Ω(n) αθμύ γηα n 1 ηζπύεη T(n) = pn 2 + qn + r pn 2 pn 49
Αοζηενό Αζομπηςηηθό Όνημ Ακ μπμνμύμε κα δείλμομε πςξ Σ(n) = Ο(f(n)) θαη Σ(n) = Ω(f(n)) ηόηε έπμομε βνεη ημ ζςζηό όνημ. Θ - αζομπηςηηθά αοζηενά όνηα: Η ζοκάνηεζε T(n) είκαη Θ(f(n)), ακ Ǝ ζηαζενέξ c 1 > 0, c 2 > 0 θαη n 0 0 ηέημηεξ ώζηε γηα θάζε n n 0 κα ηζπύεη c 1 f(n) T(n) c 2 f(n) 50
Αοζηενό Αζομπηςηηθό Όνημ Θ( ) Ακ μπμνμύμε κα δείλμομε πςξ Σ(n) = Ο(f(n)) θαη Σ(n) = Ω(f(n)) ηόηε έπμομε βνεη ημ ζςζηό όνημ. Θ - αζομπηςηηθά αοζηενά όνηα: Η ζοκάνηεζε T(n) είκαη Θ(f(n)), ακ Ǝ ζηαζενέξ c 1 > 0, c 2 > 0 θαη n 0 0 ηέημηεξ ώζηε γηα θάζε n n 0 κα ηζπύεη c 1 f(n) T(n) c 2 f(n) Ιζπύεη: θαη 51
Αζομπηςηηθόξ ομβμιηζμόξ Θ( ) Θ - αζομπηςηηθά αοζηενά όνηα Η ζοκάνηεζε T(n) είκαη Θ(f(n)), ακ ε ζοκάνηεζε Σ(n) είκαη ηαοηόπνμκα Ο(f(n)) θαη Ω(f(n)) 52
Αζομπηςηηθόξ ομβμιηζμόξ Θ( ) Θ - αζομπηςηηθά αοζηενά όνηα Η ζοκάνηεζε T(n) είκαη Θ(f(n)), ακ ε ζοκάνηεζε Σ(n) είκαη ηαοηόπνμκα Ο(f(n)) θαη Ω(f(n)) εμεημιμγία Σ(n) Θ(f(n)) αιιά γηα απιμύζηεοζε γνάθμομε T(n) = Θ(f(n)) Πανάδεηγμα: (α) T(n) = 37n 2 + 19n + 72 T(n) = Θ(n 2 ) αιιά T(n) Θ(n 3 ) θαη T(n) Θ(n) (b) T(n) = 100n + 2n 2 + 17n log n + n 3 /100 Σ(n) = Θ(n 3 ) - αιιά T(n) Θ(n 4 ) θαη T(n) Θ(n 2 ) 53
Αζομπηςηηθόξ ομβμιηζμόξ Θ( ) Θ - αζομπηςηηθά αοζηενά όνηα Η ζοκάνηεζε T(n) είκαη Θ(f(n)), ακ ε ζοκάνηεζε Σ(n) είκαη ηαοηόπνμκα Ο(f(n)) θαη Ω(f(n)) Γηδηθόηενα: Έζης όηη γηα ηηξ ζοκανηήζεηξ T(n) θαη f(n) οπάνπμοκ ηα όνηα θαη θαη έπμοκ ηημή c γηα θάπμηα ζηαζενά c. Σόηε T(n) = Θ(f(n)) 54
Αζομπηςηηθόξ ομβμιηζμόξ Θ( ) Θ - αζομπηςηηθά αοζηενά όνηα Η ζοκάνηεζε T(n) είκαη Θ(f(n)), ακ ε ζοκάνηεζε Σ(n) είκαη ηαοηόπνμκα Ο(f(n)) θαη Ω(f(n)) Πανάδεηγμα: Πνέπεη κα βνμύμε ζεηηθέξ ζηαζενέξ c 1, c 2, θαη n 0 έηζη ώζηε n n 0 : 55
Αζομπηςηηθόξ ομβμιηζμόξ Θ( ) Θ - αζομπηςηηθά αοζηενά όνηα Η ζοκάνηεζε T(n) είκαη Θ(f(n)), ακ ε ζοκάνηεζε Σ(n) είκαη ηαοηόπνμκα Ο(f(n)) θαη Ω(f(n)) Πανάδεηγμα: Πνέπεη κα βνμύμε ζεηηθέξ ζηαζενέξ c 1, c 2, θαη n 0 έηζη ώζηε n n 0 : Θειμομε πμο ηζπύεη όηακ θαη Γπίζεξ ζέιμομε Έπμομε Γπηιέγμκηαξ Άνα έπμομε θαη 56
Αζομπηςηηθόξ ομβμιηζμόξ Θ( ) Θ - αζομπηςηηθά αοζηενά όνηα Η ζοκάνηεζε T(n) είκαη Θ(f(n)), ακ ε ζοκάνηεζε Σ(n) είκαη ηαοηόπνμκα Ο(f(n)) θαη Ω(f(n)) Πανάδεηγμα: Έζης όηη 57
Αζομπηςηηθόξ ομβμιηζμόξ Θ( ) Θ - αζομπηςηηθά αοζηενά όνηα Η ζοκάνηεζε T(n) είκαη Θ(f(n)), ακ ε ζοκάνηεζε Σ(n) είκαη ηαοηόπνμκα Ο(f(n)) θαη Ω(f(n)) Πανάδεηγμα: Έζης όηη Σόηε οπάνπμοκ ζηαζενέξ c 2 θαη n 0 : γηα θάζε n n 0 Δειαδή, γηα θάζε n n 0. Αδύκαημ γηα μπμηαδήπμηε ζηαζενά c 2. 58
Αζομπηςηηθόξ ομβμιηζμόξ μ( ) μ - αζομπηςηηθά άκς όνηα ηάλεξ μεγέζμοξ Η ζοκάνηεζε T(n) είκαη μ(f(n)), ακ γηα θάζε ζηαζενά c > 0, Ǝ n 0 0 ηέημηα ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) < c f(n) εμεημιμγία Σ(n) μ(f(n)) αιιά γηα απιμύζηεοζε γνάθμομε T(n) = μ(f(n)) Πανάδεηγμα: (α) T(n) = 37n 2 + 19n + 72 T(n) = Ο(n 2 ) αιιά T(n) = ξ(n 3 ) (b) T(n) = 100n + 2n 2 + 17n log n + n 3 /100 Σ(n) = Ο(n 3 ) - αιιά T(n) = ξ(n 4 ) 59
Αζομπηςηηθόξ ομβμιηζμόξ μ( ) μ - αζομπηςηηθά άκς όνηα ηάλεξ μεγέζμοξ Η ζοκάνηεζε T(n) είκαη μ(f(n)), ακ γηα θάζε ζηαζενά c > 0, Ǝ n 0 0 ηέημηα ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) < c f(n) Γηδηθόηενα: Έζης όηη γηα ηηξ ζοκανηήζεηξ T(n) θαη f(n) οπάνπεη ημ όνημ θαη έπεη ηημή = 0. Σόηε T(n) = μ(f(n)) 60
Αζομπηςηηθόξ ομβμιηζμόξ μ( ) μ - αζομπηςηηθά άκς όνηα ηάλεξ μεγέζμοξ Η ζοκάνηεζε T(n) είκαη μ(f(n)), ακ γηα θάζε ζηαζενά c > 0, Ǝ n 0 0 ηέημηα ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) < c f(n) Γηδηθόηενα: Έζης όηη γηα ηηξ ζοκανηήζεηξ T(n) θαη f(n) οπάνπεη ημ όνημ θαη έπεη ηημή = 0. Σόηε T(n) = μ(f(n)) Πανάδεηγμα αιιά 61
Αζομπηςηηθόξ ομβμιηζμόξ μ( ) μ - αζομπηςηηθά άκς όνηα ηάλεξ μεγέζμοξ Η ζοκάνηεζε T(n) είκαη μ(f(n)), ακ γηα θάζε ζηαζενά c > 0, Ǝ n 0 0 ηέημηα ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) < c f(n) Γηδηθόηενα: Έζης όηη γηα ηηξ ζοκανηήζεηξ T(n) θαη f(n) οπάνπεη ημ όνημ θαη έπεη ηημή = 0. Σόηε T(n) = μ(f(n)) Πανάδεηγμα αιιά δηόηη: 62
Πνμζμπή με ημκ αζομπηςηηθό ζομβμιηζμό Αζομμεηνία πνμζεθηηθμί με ηεκ απιμύζηεοζε ημο ζομβμιηζμμύ. f(n) = 5n 3 θαη g(n) = 3n 2 f(n) = O(n 3 ) θαη g(n) = O(n 3 ) αιιά f(n) g(n). Ονζόηενε ζεμεημιμγία με πνήζε ημο f(n) O(n 3 ) θαη g(n) O(n 3 ). Άζθμπμξ παναθηενηζμόξ. Οπμημζδήπμηε αιγόνηζμμξ ηαληκόμεζεξ με βάζε απιέξ ζογθνίζεηξ απαηηεί ημοιάπηζημκ O(n log n) ζογθνίζεηξ. Ο παναθηενηζμόξ δεκ είκαη αθνηβήξ. Υνήζε ημο Ω γηα θάης θνάγμαηα. 63
Αζομπηςηηθή ακάιοζε Ποξσξςή! Αθόμα θαη δύμ γκεζίςξ αύλμοζεξ ζοκανηήζεηξ μπμνεί κα έπμοκ πμιιά ζεμεία ημμήξ
Αζομπηςηηθή ακάιοζε Ποξσξςή! Δεκ είκαη όιεξ μη ζοκανηήζεηξ αζομπηςηηθά ζογθνίζημεξ π.π., θαη
Ιδηόηεηεξ Μεηαβαηηθόηεηα. Ακ f = O(g) θαη g = O(h) ηόηε f = O(h). Ακ f = (g) θαη g = (h) ηόηε f = (h). Ακ f = (g) θαη g = (h) ηόηε f = (h). Πνμζζεηηθόηεηα. Ακ f = O(h) θαη g = O(h) ηόηε f + g = O(h). Ακ f = (h) θαη g = (h) ηόηε f + g = (h). Ακ f = (h) θαη g = Θ(h) ηόηε f + g = (h). Αοημπάζεηα. f = O(f), f = Ω(f), f = Θ(f) ομμεηνία. f = Θ(g) g = Θ(f) f = Ο(g) g = Ω(f) 66
Ασρμπτωτικά όοια για κάπξιεπ σρμηθισμέμεπ σρμαοτήσειπ Πμιοςκομηθέξ a 0 + a 1 n + + a d n d = Θ(n d ) ακ a d > 0 (d αθέναηα ζηαζενά). Πμιοςκομηθόξ πνόκμξ. Ο πνόκμξ εθηέιεζεξ είκαη O(n d ) γηα θάπμηα ζηαζενά d ακελάνηεηεξ ημο μεγέζμοξ εηζόδμο n. Κιάζε πμιοπιμθόηεηαξ : πενηιαμβάκεη ηα πνμβιήμαηα πμο επηδέπμκηαη ιύζε ζε πξλρωμρμικό ςοόμξ (δει. οπάνπμοκ πμιοςκομηθμί αιγόνηζμμη πμο ηα επηιύμοκ) 67
Ασρμπτωτικά όοια για κάπξιεπ σρμηθισμέμεπ σρμαοτήσειπ Λμγάνηζμμη. O(log a n) = O(log b n) γηα μπμηεζδήπμηε ζηαζενέξ a, b > 0. μπμνμύμε κα μεκ δειώζμομε ηεκ βάζε Θομεζείηε πςξ log b n είκαη έκαξ ανηζμόξ x ηέημημξ ώζηε b x = n. οκήζςξ δηαιέγμομε «μηθνή» βάζε (=2) Λμγάνηζμμη. Γηα θάζε x > 0, log n = O(n x ). μη ιμγάνηζμμη αολάκμκηαη ανγόηενα από μπμημδήπμηε πμιοώκομμ Γθζεηηθέξ. Γηα θάζε r > 1 θαη θάζε d > 0, n d = O(r n ). θάζε εθζεηηθή αολάκεηαη γνεγμνόηενα από θάζε πμιοώκομμ 68
Γπηζθόπεζε οκεζηζμέκςκ Υνόκςκ Γθηέιεζεξ Οη πημ ζοκεζηζμέκμη πνόκμη εθηέιεζεξ εκόξ αιγμνίζμμο είκαη μη ελήξ: ζηαζενόξ - Ο(1) ιμγανηζμηθόξ - Ο(logn) (οπμγναμμηθόξ) γναμμηθόξ - O(n) O(nlogn) ηεηναγςκηθόξ - O(n 2 ) θοβηθόξ - O(n 3 ) πμιοςκομηθόξ - O(n d ), d > 0 εθζεηηθόξ - O(r n ), r > 1 69
Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Καηάηαλε οκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε 70
Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Καηάηαλε οκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Γηα δύμ ζοκεπόμεκεξ f, g ζηε δηάηαλε: f = O(g) Από ηα πνμεγμύμεκα: {πμι/θεξ} < {εθζεηηθέξ} {f 1, f 2 } < {f 3,f 4 } 71
Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Καηάηαλε οκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Γηα δύμ ζοκεπόμεκεξ f, g ζηε δηάηαλε: f = O(g) Από ηα πνμεγμύμεκα: {πμι/θεξ} < {εθζεηηθέξ} {f 1, f 2 } < {f 3,f 4 } Έπμομε: : 72
Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Καηάηαλε οκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Γηα δύμ ζοκεπόμεκεξ f, g ζηε δηάηαλε: f = O(g) Από ηα πνμεγμύμεκα: {πμι/θεξ} < {εθζεηηθέξ} {f 1, f 2 } < {f 3,f 4 } Έπμομε: : Δηάηαλε: 73
Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Καηάηαλε οκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Γηα δύμ ζοκεπόμεκεξ f, g ζηε δηάηαλε: f = O(g) Από ηα πνμεγμύμεκα: {πμι/θεξ} < {εθζεηηθέξ} {f 1, f 2 } < {f 3,f 4 } Έπμομε: : Η ζοκ/ζε log() είκαη αύλμοζα: Μεηαζπεμαηίδμομε Δηάηαλε: 74
Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Καηάηαλε οκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Γηα δύμ ζοκεπόμεκεξ f, g ζηε δηάηαλε: f = O(g) Από ηα πνμεγμύμεκα: {πμι/θεξ} < {εθζεηηθέξ} {f 1, f 2 } < {f 3,f 4 } Έπμομε: : Η ζοκ/ζε log() είκαη αύλμοζα: Δηάηαλε: 75
Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Καηάηαλε οκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε 76
Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Καηάηαλε οκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Ακ ε g αθμιμοζεί ηεκ f ζηε δηάηαλε: f = Ο(g) Από ηα πνμεγμύμεκα: {πμι/θεξ} < {εθζεηηθέξ} {f 2, f 4 } < {f 1, f 3 } 77
Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Καηάηαλε οκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Ακ ε g αθμιμοζεί ηεκ f ζηε δηάηαλε: f = Ο(g) Από ηα πνμεγμύμεκα: {πμι/θεξ} < {εθζεηηθέξ} {f 2, f 4 } < {f 1, f 3 } 10 n < n n (γηα 10 n) θαη {ιμγανηζμηθέξ} < {πμι/θέξ}: 10 n = O(n n ) f 4 < f 2 < f 1 < f 3 Δηάηαλε: 78
Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Καηάηαλε οκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Ακ ε g αθμιμοζεί ηεκ f ζηε δηάηαλε: f = Ο(g) Από ηα πνμεγμύμεκα: θαη {πμι/θεξ} < {εθζεηηθέξ} {f 2, f 4 } < {f 1, f 3 } {ιμγανηζμηθέξ} < {πμι/θέξ}: f 4 < f 2 < f 1 < f 3 Η f 5 ζα πνέπεη κα βνίζθεηαη μεηαλύ f 4,f 2,f 1 : Αξ ιμγανηζμήζμομε: Δηάηαλε: 79
Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Καηάηαλε οκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Ακ ε g αθμιμοζεί ηεκ f ζηε δηάηαλε: f = Ο(g) Από ηα πνμεγμύμεκα: θαη {πμι/θεξ} < {εθζεηηθέξ} {f 2, f 4 } < {f 1, f 3 } {ιμγανηζμηθέξ} < {πμι/θέξ}: f 4 < f 2 < f 1 < f 3 Η f 5 ζα πνέπεη κα βνίζθεηαη μεηαλύ f 4,f 2,f 1 : Αξ ιμγανηζμήζμομε: Άνα ζίγμονα f 5 < f 1 Δηάηαλε: 80
Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Καηάηαλε οκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Ακ ε g αθμιμοζεί ηεκ f ζηε δηάηαλε: f = Ο(g) Από ηα πνμεγμύμεκα: θαη {πμι/θεξ} < {εθζεηηθέξ} {f 2, f 4 } < {f 1, f 3 } {ιμγανηζμηθέξ} < {πμι/θέξ}: f 4 < f 2 < f 1 < f 3 Η f 5 ζα πνέπεη κα βνίζθεηαη μεηαλύ f 4,f 2,f 1 : Αξ ιμγανηζμήζμομε: οκ/ζεηξ ημο logn z = logn Δηάηαλε: 81
Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Καηάηαλε οκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Ακ ε g αθμιμοζεί ηεκ f ζηε δηάηαλε: f = Ο(g) Από ηα πνμεγμύμεκα: θαη {πμι/θεξ} < {εθζεηηθέξ} {f 2, f 4 } < {f 1, f 3 } {ιμγανηζμηθέξ} < {πμι/θέξ}: f 4 < f 2 < f 1 < f 3 Η f 5 ζα πνέπεη κα βνίζθεηαη μεηαλύ f 4,f 2,f 1 : Αξ ιμγανηζμήζμομε: οκ/ζεηξ ημο logn z = logn Δηάηαλε: 82
Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Καηάηαλε οκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Ακ ε g αθμιμοζεί ηεκ f ζηε δηάηαλε: f = Ο(g) Από ηα πνμεγμύμεκα: θαη {πμι/θεξ} < {εθζεηηθέξ} {f 2, f 4 } < {f 1, f 3 } {ιμγανηζμηθέξ} < {πμι/θέξ}: f 4 < f 2 < f 1 < f 3 Η f 5 ζα πνέπεη κα βνίζθεηαη μεηαλύ f 4,f 2,f 1 : Αξ ιμγανηζμήζμομε: Δηάηαλε: 83
Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Καηάηαλε οκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Ακ ε g αθμιμοζεί ηεκ f ζηε δηάηαλε: f = Ο(g) Από ηα πνμεγμύμεκα: θαη {πμι/θεξ} < {εθζεηηθέξ} {f 2, f 4 } < {f 1, f 3 } {ιμγανηζμηθέξ} < {πμι/θέξ}: f 4 < f 2 < f 1 < f 3 Η f 5 ζα πνέπεη κα βνίζθεηαη μεηαλύ f 4,f 2,f 1 : Αξ ιμγανηζμήζμομε: Δηάηαλε: 84
Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Καηάηαλε οκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Ακ ε g αθμιμοζεί ηεκ f ζηε δηάηαλε: f = Ο(g) Από ηα πνμεγμύμεκα: θαη {πμι/θεξ} < {εθζεηηθέξ} {f 2, f 4 } < {f 1, f 3 } {ιμγανηζμηθέξ} < {πμι/θέξ}: f 4 < f 2 < f 1 < f 3 Η f 5 ζα πνέπεη κα βνίζθεηαη μεηαλύ f 4,f 2,f 1 : Αξ ιμγανηζμήζμομε: Δηάηαλε: 85
Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Καηάηαλε οκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Ακ ε g αθμιμοζεί ηεκ f ζηε δηάηαλε: f = Ο(g) Από ηα πνμεγμύμεκα: θαη {πμι/θεξ} < {εθζεηηθέξ} {f 2, f 4 } < {f 1, f 3 } {ιμγανηζμηθέξ} < {πμι/θέξ}: f 4 < f 2 < f 1 < f 3 Η f 5 ζα πνέπεη κα βνίζθεηαη μεηαλύ f 4,f 2,f 1 : Αξ ιμγανηζμήζμομε: Δηάηαλε: 86
Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Καηάηαλε οκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Ακ ε g αθμιμοζεί ηεκ f ζηε δηάηαλε: f = Ο(g) Από ηα πνμεγμύμεκα: θαη {πμι/θεξ} < {εθζεηηθέξ} {f 2, f 4 } < {f 1, f 3 } {ιμγανηζμηθέξ} < {πμι/θέξ}: f 4 < f 2 < f 1 < f 3 Η f 5 ζα πνέπεη κα βνίζθεηαη μεηαλύ f 4,f 2,f 1 : Αξ ιμγανηζμήζμομε: Δηάηαλε: 87
Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Καηάηαλε οκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Ακ ε g αθμιμοζεί ηεκ f ζηε δηάηαλε: f = Ο(g) Από ηα πνμεγμύμεκα: θαη {πμι/θεξ} < {εθζεηηθέξ} {f 2, f 4 } < {f 1, f 3 } {ιμγανηζμηθέξ} < {πμι/θέξ}: f 4 < f 2 < f 1 < f 3 Η f 5 ζα πνέπεη κα βνίζθεηαη μεηαλύ f 4,f 2,f 1 : Αξ ιμγανηζμήζμομε: Δηάηαλε: 88
Αζομπηςηηθά Όνηα ομμεηνία Έζης f θαη g δύμ ζοκ/ζεηξ ηέημηεξ ώζηε f = O(g). Δείληε όηη g = Ω(f). ηεκ μοζία ζέιμομε κα δείλμομε όηη μη O() θαη Ω() είκαη «ακηίζεηεξ» 89
Αζομπηςηηθά Όνηα ομμεηνία Έζης f θαη g δύμ ζοκ/ζεηξ ηέημηεξ ώζηε f = O(g). Δείληε όηη g = Ω(f). ηεκ μοζία ζέιμομε κα δείλμομε όηη μη O() θαη Ω() είκαη «ακηίζεηεξ» Η ζοκάνηεζε T(n) είκαη O(f(n)), ακ Ǝ ζηαζενέξ c > 0 θαη n 0 0 ηέημηεξ ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) c f(n) Η ζοκάνηεζε T(n) είκαη Ω(f(n)), ακ Ǝ ζηαζενέξ c > 0 θαη n 0 0 ηέημηεξ ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) c f(n) f = O(g) Ǝ c > 0 θαη n 0 0 : f(n) c g(n), γηα θάζε n n 0 90
Αζομπηςηηθά Όνηα ομμεηνία Έζης f θαη g δύμ ζοκ/ζεηξ ηέημηεξ ώζηε f = O(g). Δείληε όηη g = Ω(f). ηεκ μοζία ζέιμομε κα δείλμομε όηη μη O() θαη Ω() είκαη «ακηίζεηεξ» Η ζοκάνηεζε T(n) είκαη O(f(n)), ακ Ǝ ζηαζενέξ c > 0 θαη n 0 0 ηέημηεξ ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) c f(n) Η ζοκάνηεζε T(n) είκαη Ω(f(n)), ακ Ǝ ζηαζενέξ c > 0 θαη n 0 0 ηέημηεξ ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) c f(n) f = O(g) Ǝ c > 0 θαη n 0 0 : f(n) c g(n), γηα θάζε n n 0 g(n) (1/c) f(n), γηα θάζε n n 0 91
Αζομπηςηηθά Όνηα ομμεηνία Έζης f θαη g δύμ ζοκ/ζεηξ ηέημηεξ ώζηε f = O(g). Δείληε όηη g = Ω(f). ηεκ μοζία ζέιμομε κα δείλμομε όηη μη O() θαη Ω() είκαη «ακηίζεηεξ» Η ζοκάνηεζε T(n) είκαη O(f(n)), ακ Ǝ ζηαζενέξ c > 0 θαη n 0 0 ηέημηεξ ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) c f(n) Η ζοκάνηεζε T(n) είκαη Ω(f(n)), ακ Ǝ ζηαζενέξ c > 0 θαη n 0 0 ηέημηεξ ώζηε γηα θάζε n n 0 κα ηζπύεη T(n) c f(n) f = O(g) Ǝ c > 0 θαη n 0 0 : f(n) c g(n), γηα θάζε n n 0 g(n) (1/c) f(n), γηα θάζε n n 0 g = Ω(f) 92
Μηα απιή ενώηεζε Πμηα είκαη ε πμιοπιμθόηεηα πνόκμο ηςκ δύμ αιγμνίζμςκ; found = -1; for (i=0; i<n; i++) { if (a[i] == key) found = i; } i = 0; while ( a[i]!= key && i < n ) { i++; } 93
Μηα απιή ενώηεζε Πμηα είκαη ε πμιοπιμθόηεηα πνόκμο ηςκ δύμ αιγμνίζμςκ; Πνώηα ζθεθηείηε ηη οπμιμγίδμοκ. found = -1; for (i=0; i<n; i++) { if (a[i] == key) found = i; } i = 0; while ( a[i]!= key && i < n ) { i++; } 94
Καιή Μειέηε!! Γίκαη από ηα πημ ζεμακηηθά θμμμάηηα.
Ανοικτά Ακαδημαϊκά Μαθήματα Πανεπιστήμιο Ιωαννίνων Τέλος Ενότητας
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Ιωαννίνων» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Σημειώματα Σημείωμα Αναφοράς 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/.