Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

Σχετικά έγγραφα
Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

Γπέθηαζε ηςκ Ονίςκ ηεξ Γπηιοζημόηεηαξ

Λύζεηξ αζθήζεςκ ζενμόηεηαξ

Κεθάιαημ 11. Πνμζεγγηζηηθμί Αιγόνηζμμη

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

i, ημ μκμμάδμομε ζύκμιμ ηςκ

Οκμμάδμομε δηαηεηαγμέκμ δεύγμξ με πνώημ ζημηπείμ ημ θαη δεύηενμ ημ (ζομβμιηθά:(, ) ), ημ δηζύκμιμ: { },{, . Δειαδή:

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

1 η Ε π α ν α λ η π τ ι κ ή Ά σ κ η σ η

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

Τίτλος Μαθήματος: Θεωρία Πολυπλοκότητας. Ενότητα: H κλάση ΝΡ. Διδάσκων: Λέκτορας Xάρης Παπαδόπουλος. Τμήμα: Μαθηματικών

ΙΑΘΕΙΑ Β1.1 Μ ΝΘΑΚΕΠΕΟ ΓΕ

ΔΙΑΓΩΝΙΣΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΓΕΝΙΚΗΣ Γ ΛΥΚΕΙΟΥ

ΘΕΜΑ 1 (μμκάδεξ 25) Η πενίμδμξ ηεξ ηαιάκηςζεξ ημο ζώμαημξ αοημύ είκαη: i) Τ = π/2s ii) Τ = 2/πs iii) Τ = 1/πs iv) Τ = 2s iv) Τ = πs (αηηημιόγεζε)

Οδεγόξ Φνήζεξ Webmail

Επακαιεπηηθό ζέμα ζημ 1 0 θεθάιαημ

Multiple Choice Examination

Καηακμώκηαξ ηα Νέα Μέζα. Εογεκία Σηαπένα

ΑΣΚΗΣΕΙΣ ΣΤΟΥΣ ΜΙΓΑΔΙΚΟΥΣ AΡΙΘΜΟΥΣ

Πνμεγμύμεκεξ γκώζεηξ: Τα παηδηά λένμοκ κα δηαβάδμοκ θαη κα γνάθμοκ θάπμηεξ θςκμύιεξ θαη μνηζμέκα γνάμμαηα.

Π α ζ ο κ ζ ή μ α η α μ ε κ ύ μ α η α ή η α κ ή δ ε γ κ ς ζ η ά : Γ ι ε ο ζ ε ν ί α, Δ ε μ μ θ ν α η ί α, α δ μ ύ ι ς η ε Γ ι ι ά δ α.

Μέηνα Αημμηθήξ Πνμζηαζίαξ

ΕΞΟΡΤΞΗ & ΚΑΣΑΚΕΤΕ ΣΗΝ ΕΤΡΩΠΗ ΜΑΘΗΜΑ 43

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

Αλάιπζε Αιγνξίζκωλ. Κεθ. 13: Τπραίνη Αιγόξηζκνη

ΩΤΟΣΚΛΗΡΥΝΣΗ. Δρ Εμμανουθλ Χατζημανώλης. Ωτορινολαρυγγολόγος-Χειρουργός Κεφαλής και Τραχήλου. Δ/τής της Κλινικής Κεφαλής και Τραχήλου νοσ.

Άπιεζημη αιγόνηζμμη. Μάνζα Σηδένε

Φνήζημεξ Λεηημονγίεξ ηςκ. Windows 7

Δηαπείνηζε πμιιαπιώκ ειεθηνμκηθώκ δηεοζύκζεωκ

Η ΠΡΟΝΟΟΚΟΜΔΙΑΚΗ ΦΡΟΝΣΙΓΑ. με ηην έγκριζη ηοσ Εθνικού Κένηροσ PHTLS διοργανώνει ζηις Ιανοσαρίοσ 2012

Δηάιελε 6: Δηαπείνηζε Μκήμεξ & Δοκαμηθέξ Δμμέξ Δεδμμέκςκ

Τβοιδικό Ιζξδύμαμξ Μξμηέλξ transistor BJT & εκηζποηέξ. Ειεθηνμκηθή Γ Σάλε /Β ελάμεκμ Γπίθ. Ηαζεγήηνηα Γ. Ηαναγηάκκε

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Πνμθόπημξ Mαγηάηεξ,

Problems & Questions on MAC Layer

Μυοπάθεια και τατίνες

Παραγωγή Τελικού Κώδικα. Γιώργος Μανής

Γηζαγωγή ζηεκ Πιεζοζμηαθή Οηθμιμγία. Α. Φακηηκμύ

Θμγμηεπκία γηα Παηδηά Ζ

Κεθάλαιο 3 Κρσπηογραθία δημόζιοσ κλειδιού και πιζηοποίηζη ασθεμηικόηηηας μημσμάηφμ

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 7

Κα ακαγκςνίζμομε ημ ηηηάκημ ένγμ (όιςκ) ηςκ ενγαδμμέκςκ ζημ CERN. Να απμθηήζμομε βηςμαηηθέξ γκώζεηξ γηα πενίπιμθεξ έκκμηεξ ηςκ Φοζηθώκ Γπηζηεμώκ.

Κοιμό Γεωγραφικό Υπόβαθρο για το WISE

HY-335 : Δίθηοα Υπμιμγηζηώκ

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων. Ενότητα: Βασικά στοιχεία σχεδίασης & ανάλυσης αλγορίθμων

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 10

Τπμιμγηζμόξ ηεξ ηαπύηεηαξ ηεξ πεμηθήξ ακηίδναζεξ ημο Mg με HCl

1. Camtasia. 2. Audacity. 3. Movie Maker

ΜΑΘΕΜΑ Β2.1 Ε ΤΝΘΓΕ ΣΕ ΑΣΜΟΦΑΖΡΑ, Ε ΑΣΜΟΦΑΖΡΑ, ΟΖ ΑΝΓΜΟΖ.

αξ γκςνίδμομε όηη ζημ ΦΓΚ 222 ηεύπμξ Α δεμμζηεύηεθε μ κ. 4093/2012, ζημ άνζνμ πνώημ,

641: πεδίαζε θαη Ακάιοζε Αιγμνίζμςκ. Υάνεξ Παπαδόπμοιμξ

ΓΤΡΩΠΗ. 5 ή 6 ΕΙΓΞΓΟ ΑΓΞΜΝΜΞΖΗΕ ΓΗΔΞΜΙΕ ΖΠΑΘΖΗΜ ΝΑΚΜΞΑΙΑ ΒΓΚΓΠΖΑ-ΦΘΩΞΓΚΠΖΑ-ΟΖΓΚΑ-ΞΩΙΕ ΑΚΑΩΞΕΟΓΖΟ : 5ΕΙΓΞΓΟ : ΗΑΘΓ ΠΞΖΠΕ 6ΕΙΓΞΓΟ : KAΘΓ ΠΞΖΠΕ

Τα έλη παηδηά γεμίδμοκ με πανά ηηξ θηωπέξ μηθμγέκεηεξ.

Αρηόμξμξι Ποάκηξοεπ ΠΛΗ513- Intelligence Lab. Αμαθξοά Εογαζίαπ Εναμήμξρ

Tνόπμη δηαθοηηανηθήξ επηθμηκςκίαξ

Ιαιιηένγεηα βαθηενίςκ

ΑΓΠΠ 2o Γπαμαληπηικό Διαγώμιζμα

Σ Ο Ξ Υ Η Φ Θ Ω Μ Ι Α Α Π Θ Ζ Ξ Λ Ε Μ Ω Μ

Μελέηη Ηλεκηοικήπ Εγκαηάζηαζηπ. Δκπαιδεςηήρ: αββίδεο Μηράιεο. Σερληθή ρνιή Απγόξνπ. Μάθημα: Σερλνινγία Ηιεθηξηθώλ Εγθαηαζηάζεσλ

r 1 Π 1 r 2 Π 2 πέτασμα στισμή μομοτρωματικό υως στισμή

Οι ςδπαςλικέρ κονίερ για σπήζη ζηην οδοποιία και ηο ππόηςπο ΕΝ Δ. Τζαμαηζούληρ Δπ. Φημικόρ Μησανικόρ ΦΑΛΥΧ Δομικά Υλικά Α.Ε.

Αμαμεώζιμες πηγές εμέργειας

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

ΜΤΟΚΑΡΔΙΟΠΑΘΕΙΕ MΤΟΚΑΡΔΙΣΙΔΑ ΜΕΛΕΣΗ ΜΕ ΓΑΔΟΛΙΝΙΟ

Ψηφιακός Τόπος Εργασίας Γνγμδόηεξ Πνμζςπηθή Σειίδα Γνγαδόμεκμξ Πνμζςπηθή Σειίδα Μηνύματα Θέση Εργασίας Λαγωνικό Βιογραυικό

Γοθεμία Παπαδμπμύιμο-Αιαηάθε

ΜΗΦΑΝΙΚΑ ΚΥΜΑΤΑ. Κύμα μκμμάδεηαη ε δηάδμζε μηαξ δηαηαναπήξ ζημ πώνμ με μνηζμέκε ηαπύηεηα, ε μπμία μκμμάδεηαη ηαςύηηηα διάδξζηπ.

ΜΑΘΗΜΑ Β 5.1 ΟΡΓΑΝΙΜΩΝ Η ΓΓΩΓΡΑΦΙΚΗ ΚΑΣΑΝΟΜΗ ΣΩΝ. Ελέμη Γ. Παλούμπα, Χημικός, Πειραματικό Γυμμάσιο Σπάρτης

Σωλήμες Ηλεκηρικώμ Εγκαηαζηάζεωμ. Εκπαιδεσηής: Σαββίδης Μιτάλης. Τετνική Στολή Ασγόροσ. Μάθημα: Τετνολογία Ηλεκηρικών Εγκαηαζηάζεων

Μμκηειμπμίεζε θαη Aκάιοζε Βημσαηνηθώκ θαη Φοζηθώκ Σοζηεμάηςκ

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 2: Εφαρμογές Δικτυωτής Ανάλυσης (1 ο Μέρος)

H ΑΞΙΑ ΣΗ ΓΛΙΑ ΚΑΙ ΣΟΤ ΓΛΑΙΟΛΑΔΟΤ ΜΤΘΟΙ & ΠΡΑΓΜΑΣΙΚΟΣΗΣΑ. << Γιηά & Λάδη >>

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

GANODERMA LUCIDUM «μακηηάνη ηςκ ζεώκ» Τμ θαζμιηθό θάνμαθμ ηεξ θύζεξ

ΔΩΚΠΑΟ ΙΓ ΠΜΚ Η. ΟΓΘ

Γπημέιεηα: Ιανία Παπαιεμκηίμο, Φηιόιμγμξ

Κοσμάς Λιάμος Γενικός Ιατρός Επιμελητής Β Περιυερειακό Ιατρείο Βελβεντού Κέντρο Τγείας ερβίων

Μηα θμνά θη έκακ θαηνό ζε έκα μηθνό, μαθνηκό πςνηό δμύζακ δομ

Μαθησιακές Δυσκολίες ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Τίτλος: Δοκιμασία εκτίμησης αναδυόμενου γραμματισμού.

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 6

Εισαγωγή στους Αλγορίθμους Ενότητα 3η

Η ΤΛΗ ΣΩΝ ΜΑΘΗΜΑΣΙΚΩΝ Γ ΣΑΞΗ ΗΜΓΡΗΙΟΤ ΓΓΛ ΠΡΟΑΝΑΣΟΛΙΜΟΤ ΘΓΣΙΚΩΝ ΠΟΤΔΩΝ ΚΑΙ ΠΟΤΔΩΝ ΟΙΚΟΝΟΜΙΑ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗ Γ 62 ΜΑΘΗΜΑΣΑ

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

HY-335 : Δίθηοα Υπμιμγηζηώκ

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2

4ε Γξαπηή Εξγαζία. Θέκα 1 ν : Μειέηε Πεξίπησζεο Α

ΓΗΔΕΘΩΟΓΖΟ ΠΕΟ ΝΑΖΔΑΓΩΓΖΗΕΟ ΟΜΘΕΟ, ΑΝΘ. Αθαδεμασθό έημξ: (πνμκμιμγηθή ζεηνά)

H XHMEIA EINAI ΙΑΓΖΗΕ

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

ΓΑΣΡΟΟΙΟΦΑΓΙΚΗ ΠΑΛΙΝΔΡΟΜΗΗ ΚΑΙ ΑΝΑΠΝΓΤΣΙΚΟ ΤΣΗΜΑ. Δν. Δεμήηνεξ Καπεηάκμξ Γπημειεηήξ A Γαζηνεκηενμιμγηθή Κιηκηθή Γ.Ν. «Γεώνγημξ Παπακηθμιάμο»

ΙΑΘΕΙΑ Α1.3 Ε ΥΡΕΕ ΣΩΚ ΥΑΡΣΩΚ ΣΕΚ ΗΑΘΕΙΓΡΖΚΕ ΔΩΕ. Ελένη Παλούμπα, Χημικός, Πειραματικό Γσμνάσιο Σπάρτης

Μικροβιολογία & Υγιεινή Τροφίμων

Εισαγωγή στους Αλγορίθμους Ενότητα 10η

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5

ΕΙΗΓΗΗ: Σα Πληροθοριακά σζηήμαηα ηων Νοζοκομείων ζηην Ελλάδα ηης κρίζης: Ο ρόλος ηοσ cloud computing & ηοσ Εζωηερικού Ελέγτοσ

ηδάζθςκ: εµήηνεξ Ζεσκαιηπμύν

Transcript:

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων Ενότητα: Επανάληψη Διδάσκων: Λέκτορας Xάρης Παπαδόπουλος Τμήμα: Μαθηματικών

641: Γηζαγςγή ζηε Θεςνία θαη Ακάιοζε Αιγμνίζμςκ άνεξ Ναπαδόπμοιμξ

Πνόπμξ Γλέηαζεξ θαη Αζθήζεηξ Γναπηέξ Γνγαζίεξ Θα ακαθμηκςζμύκ 2 Γναπηέξ Γνγαζίεξ Ηάζε Γνγαζία έπεη βάνμξ 10% ημο ηειηθμύ βαζμμύ έςξ 2 άημμα απαραίτητη πνμθμνηθή πανμοζίαζε με επηπιέμκ βάνμξ 5% Αοζηενέξ Εμενμμεκίεξ Ακάνηεζεξ θαη Νανάδμζεξ ~ 2 εβδμμάδεξ γηα ηεκ μιμθιήνςζε Πειηθή Γλέηαζε νήζε πεηνόγναθμο θύιιμο Α4 (2 ζει.) με ό,ηη πιενμθμνία ζέιεηε Πμ θύιιμ ημ παναδίδεηαη μαδί με ημ γναπηό ζαξ. Βάνμξ 70% ημο ηειηθμύ βαζμμύ Πειηθόξ Βαζμόξ = 10% ΓΓ1 + 5% ΓΓ1 + 10%ΓΓ2 + 5%ΓΓ2 + 70% ΠΓ + @lgofights 2

Ριε ημο μαζήμαημξ Βαζηθά ζημηπεία ζπεδίαζεξ & ακάιοζεξ αιγμνίζμςκ Ακάιοζε αιγμνίζμςκ, απμδμηηθόηεηα, αζομπηςηηθόξ ζομβμιηζμόξ Οοκεζηζμέκμη πνόκμη εθηέιεζεξ θαη βαζηθέξ δμμέξ δεδμμέκςκ πίκαθεξ, ιίζηεξ, ζημίβεξ, μονέξ Γοζηαζέξ ηαίνηαζμα, μνζόηεηα, ζςνόξ θαη μονά πνμηεναηόηεηαξ Ιέζμδμξ «Δηαίνεη θαη Βαζίιεοε» Γθανμμγέξ ζε ηαληκόμεζε ζημηπείςκ Γπίιοζε ακαδνμμηθώκ ζπέζεςκ Γναθήμαηα θαη αιγόνηζμμη γναθεμάηςκ Δηάηνελε γναθεμάηςκ (BFS, DFS) Οοκεθηηθόηεηα Πμπμιμγηθή δηάηαλε Ιέζμδμη «Απιεζηείαξ» θαη «Δοκαμηθμύ Ννμγναμμαηηζμμύ» Γιάπηζηα ζθειεηηθά δέκδνα (αιγόνηζμμξ Prim, αιγόνηζμμξ Kruskal) Οοκημμόηενεξ δηαδνμμέξ (αιγόνηζμμξ Dijkstra, Ξμή δηθηύμο) νμκμπνμγναμμαηηζμόξ 3

Αζομπηςηηθόξ νοζμόξ αύλεζεξ Μ() Ω() Θ() μ()

Αζομπηςηηθόξ Οομβμιηζμόξ Μ() Μ - αζομπηςηηθά άκς όνηα Ε ζοκάνηεζε 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)) Νανάδεηγμα επεηδή επεηδή 5

Αζομπηςηηθόξ Οομβμιηζμόξ Ω() Ω - αζομπηςηηθά θάης όνηα Ε ζοκάνηεζε 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)) Νανάδεηγμα επεηδή επεηδή 6

Αζομπηςηηθόξ Οομβμιηζμόξ Θ() Θ - αζομπηςηηθά αοζηενά όνηα Ε ζοκάνηεζε T(n) είκαη Θ(f(n)), ακ ε ζοκάνηεζε Π(n) είκαη ηαοηόπνμκα Μ(f(n)) θαη Ω(f(n)) Γηδηθόηενα: Έζης όηη γηα ηηξ ζοκανηήζεηξ T(n) θαη f(n) οπάνπμοκ ηα όνηα θαη θαη έπμοκ ηημή c γηα θάπμηα ζηαζενά c. Πόηε T(n) = Θ(f(n)) 7

Αζομπηςηηθόξ Οομβμιηζμόξ μ() μ - αζομπηςηηθά άκς όνηα ηάλεξ μεγέζμοξ Ε ζοκάνηεζε 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)) Νανάδεηγμα αιιά δηόηη: 8

Ζδηόηεηεξ Ιεηαβαηηθόηεηα. Ακ 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) 9

Γπηζθόπεζε Οοκεζηζμέκςκ νόκςκ Γθηέιεζεξ Μη πημ ζοκεζηζμέκμη πνόκμη εθηέιεζεξ εκόξ αιγμνίζμμο είκαη μη ελήξ: ζηαζενόξ - Μ(1) ιμγανηζμηθόξ - Μ(logn) (οπμγναμμηθόξ) γναμμηθόξ - O(n) O(nlogn) ηεηναγςκηθόξ - O(n 2 ) θοβηθόξ - O(n 3 ) πμιοςκομηθόξ - O(n d ), d > 0 εθζεηηθόξ - O(r n ), r > 1 10

Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Ηαηάηαλε Οοκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε 11

Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Ηαηάηαλε Οοκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Γηα δύμ ζοκεπόμεκεξ f, g ζηε δηάηαλε: f = O(g) Από ηα πνμεγμύμεκα: {πμι/θεξ} < {εθζεηηθέξ} {f 1, f 2 } < {f 3,f 4 } 12

Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Ηαηάηαλε Οοκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Γηα δύμ ζοκεπόμεκεξ f, g ζηε δηάηαλε: f = O(g) Από ηα πνμεγμύμεκα: {πμι/θεξ} < {εθζεηηθέξ} {f 1, f 2 } < {f 3,f 4 } Έπμομε: : 13

Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Ηαηάηαλε Οοκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Γηα δύμ ζοκεπόμεκεξ f, g ζηε δηάηαλε: f = O(g) Από ηα πνμεγμύμεκα: {πμι/θεξ} < {εθζεηηθέξ} {f 1, f 2 } < {f 3,f 4 } Έπμομε: : Δηάηαλε: 14

Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Ηαηάηαλε Οοκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Γηα δύμ ζοκεπόμεκεξ f, g ζηε δηάηαλε: f = O(g) Από ηα πνμεγμύμεκα: {πμι/θεξ} < {εθζεηηθέξ} {f 1, f 2 } < {f 3,f 4 } Έπμομε: : Ε ζοκ/ζε log() είκαη αύλμοζα: Ιεηαζπεμαηίδμομε Δηάηαλε: 15

Αζομπηςηηθή Ακάιοζε Γθανμμγέξ ζε Ηαηάηαλε Οοκανηήζεςκ Θέιμομε κα δηαηάλμομε ηηξ παναθάης ζοκανηήζεηξ ςξ πνμξ ημ νοζμό αύλεζεξ, από ηε μηθνόηενε ςξ ηε μεγαιύηενε Γηα δύμ ζοκεπόμεκεξ f, g ζηε δηάηαλε: f = O(g) Από ηα πνμεγμύμεκα: {πμι/θεξ} < {εθζεηηθέξ} {f 1, f 2 } < {f 3,f 4 } Έπμομε: : Ε ζοκ/ζε log() είκαη αύλμοζα: Δηάηαλε: 16

Απιμί Αιγόνηζμμη θαη Οοκεζηζμέκμη νόκμη Γθηέιεζεξ Δηαπείνηζε ζημίβαξ - Μ(1) Δοαδηθή ακαδήηεζε Μ(logn) Ρπμιμγηζμόξ μεγίζημο O(n) Οογπώκεοζε Παληκμμεμέκςκ ζημηπείςκ O(n) Παληκόμεζε με ζογπώκεοζε O(n logn) Ημκηηκόηενμ δεύγμξ ζεμείςκ O(n 2 ) Νμιιαπιαζηαζμόξ πηκάθςκ Μ(n 3 ) Ακελάνηεημ Ούκμιμ Μ(n k ) θαη Μ(2 n )

Γοζηαζέξ ηαίνηαζμα

Ννόβιεμα Γοζηαζμύξ Παηνηάζμαημξ Οηόπμξ. Από n άκδνεξ θαη n γοκαίθεξ, βνείηε έκα "θαηάιιειμ" ηαίνηαζμα. Μη ζομμεηέπμκηεξ βαζμμιμγμύκ μέιε ημο ακηίζεημο θύιμο. Ηάζε άκδναξ θαηαηάζζεη ηηξ γοκαίθεξ με ζεηνά πνμηίμεζεξ από ηεκ θαιύηενε ζηε πεηνόηενε. Ηάζε γοκαίθα θαηαηάζζεη ημοξ άκδνεξ με ζεηνά πνμηίμεζεξ από ημκ θαιύηενμ ζημ πεηνόηενμ. πνμηημώμεκε ειάπηζηα πνμηημώμεκε πνμηημώμεκμξ ειάπηζηα πνμηημώμεκμξ 1 ε 2 ε 3 ε Ηώζηαξ Άκκα Ιανία Γιέκε Κίθμξ Ιανία Άκκα Γιέκε Νέηνμξ Άκκα Ιανία Γιέκε Ννμθίι Ννμηημήζεςκ Ακδνώκ 1 μξ 2 μξ 3 μξ Άκκα Κίθμξ Ηώζηαξ Νέηνμξ Ιανία Ηώζηαξ Κίθμξ Νέηνμξ Γιέκε Ηώζηαξ Κίθμξ Νέηνμξ Ννμθίι Ννμηημήζεςκ Γοκαηθώκ 19

Αιγόνηζμμξ πνόηαζεξ θαη απόννηρεξ [Gale-Shapley 1962] Αξρηθά θάζε άηνκν είλαη ειεύζεξν while (θάπνηνο άλδξαο είλαη ειεύζεξνο θαη δελ έρεη θάλεη πξόηαζε ζε θάζε γπλαίθα) { Δηάιεμε έλαλ ηέηνηνλ άλδξα m w = 1 ε γπλαίθα ηεο ιίζηαο ηνπ m ζηελ νπνία δελ έρεη θάλεη αθόκα πξόηαζε if (w είλαη ειεύζεξε) m θαη w δεζκεύνληαη else if (w πξνηηκά ηνλ m από ηνλ ησξηλό ζύληξνθν m') m θαη w δεζκεύνληαη, θαη ν m' γίλεηαη ειεύζεξνο else ε w απνξξίπηεη ηνλ m } 20

Σωρός Ιηα ζεμειηώδεξ δμμή δεδμμέκςκ

ζε θάζε επίπεδμ οπάνπμοκ όιμη μη θόμβμη εθηόξ (ίζςξ) από ημ ηειεοηαίμ επίπεδμ όπμο οπάνπμοκ μη θόμβμη από ανηζηενά πνμξ δεληά Οςνόξ (Heap) θάζε θόμβμξ έπεη 2 παηδηά Μνηζμόξ: ηζμζηαζζμηζμέκμ δοαδηθό δέκδνμ. Οοκδοάδεη πιεμκεθηήμαηα ηαληκμμεμέκμο πίκαθα θαη ιίζηαξ. log 2 n Δηάηαλε ζςνμύ: γηα θάζε ζημηπείμ v, ζε έκακ θόμβμ i, ημ ζημηπείμ w ζημ γμκέα ημο i ηθακμπμηεί ηε ζπέζε: key(w) key(v) Γηα θάζε θόμβμ ζηε ζέζε i: parent(i) = Li/2, leftchild(i) = 2i, rightchild(i) = 2i+1 22

Μονά Ννμηεναηόηεηαξ Δμμή δεδμμέκςκ πμο δηαηενεί έκα ζύκμιμ ζημηπείςκ S Ηάζε ζημηπείμ v є S key(v) Ρπμζηήνηλε - εηζαγςγήξ/δηαγναθήξ ζημηπείμο θαη - επηιμγήξ ζημηπείμο με ημ μηθνόηενμ key() 23

Μονά Ννμηεναηόηεηαξ Ριμπμίεζε με Οςνό CreateHeap(n): επηζηνέθεη θεκό ζςνό H έημημμ κα απμζεθεύζεη n ζημηπεία Ανπηθμπμίεζε: O(n) Insert(H,v): εηζάγεη ημ ζημηπείμ v ζημκ Ε (Heapify-up) O(log n) Delete(H,i): δηαγνάθεη ημ ζημηπείμ ζηε ζέζε i ημο H (Heapify-down) O(log n) FindMin(H): εύνεζε μηθνόηενμο ζημηπείμο ζημκ H O(1) ExtractMin(H): εύνεζε θαη δηαγναθή μηθνόηενμο ζημηπείμο από ημκ H O(log n) 24

Ακαδνμμηθέξ ζπέζεηξ

Πνόπμη Γπίιοζεξ Ακαδνμμηθώκ Οπέζεςκ νόκμξ T(n): Ιαξ εκδηαθένεη ε αθνηβήξ ιύζε ή έκα άκς θνάγμα (αζομπηςηηθή έθθναζε) Θ() Μ() Π(n) = T(n-1) + n, γηα n 2 Π(n) = 1, γηα n = 1 Ιέζμδμη Γπίιοζεξ: Ιέζμδμξ εθδίπιςζεξ ακαδνμμήξ (δέκηνμ ακαδνμμήξ) Γπακαιεπηηθή μέζμδμξ ακάπηολε δηαδνμμήξ Ιέζμδμξ ακηηθαηάζηαζεξ ζςζηήξ πνόβιερεξ Ιέζμδμξ αιιαγήξ μεηαβιεηώκ Βαζηθό Θεώνεμα Ακαδνμμώκ (Ιaster Theorem) Γναμμηθέξ ακαδνμμηθέξ ζπέζεηξ νήζημμ θαη ζοκμπηηθό οιηθό με πμιιά παναδείγμαηα (~16 ζειίδεξ) ζα ακέβεη ζημ ecourse!! 26

Οοκδοαζμόξ δέκδνμο ακαδνμμήξ θαη ζςζηήξ πνόβιερεξ Π(n) = T(n/3) + T(2n/3) + c n, γηα n 2 Π(n) = O(1), γηα n 1 Ιέγεζμξ μέγηζημο οπμπνμβιήμαημξ επηπέδμο i: n(2/3) i Ύρμξ h δέκδνμο ακαδνμμήξ : n (2/3) h = 1, δειαδή h = log 3/2 n Ννόβιερε: Π(n) = O(n log n) Απόδεηλε: (με επαγςγή ζημ n) Π(n) d n log n, γηα θάπμηα ζηαζενά d > 0 πμο ηζπύεη γηα d c / (log 3 2/3) 27

Ιέζμδμξ αιιαγήξ μεηαβιεηώκ Π(n) = 2 T( n ) + log n, γηα n 2 Π(n) = O(1), γηα n 1 Θέημομε m = log n, άνα n = 2 m θαη n = 2 m/2 : T(2 m ) = 2 T(2 m/2 ) + m Θέημκηαξ S(m) = T(2 m ) έπμομε, S(m) = 2 S(m/2) + m Νμο γκςνίδμομε όηη S(m) = O(m log m) Π(n) 2T(n/2) + cn T(n) = O(n log n) Άνα, Π(n) = T(2m) = S(m) = O(m log m) = O(log n log log n) 28

Βαζηθό Θεώνεμα Ακαδνμμώκ (Ιaster Theorem) Έζης: θαη θαη Πόηε, Φαίκεηαη πμιύπιμθμ αιιά ηειηθά είκαη πμιύ απιό. Μη ιύζεηξ πενηγνάθμκηαη από ημκ ηύπμ: 29

Βαζηθό Θεώνεμα Ακαδνμμώκ (Ιaster Theorem) Π(n) = 16 T( n / 8 ) + n 2/3 α = 16, β = 8, γ = 2/3, δ = 0 Γλεηάδμομε: α / β γ = 16 / 8 2/3 > 1 Άνα 1 ε πενίπηςζε: 30

Βαζηθό Θεώνεμα Ακαδνμμώκ (Ιaster Theorem) Π(n) = T( 2n / 3 ) + 1 α = 1, β = 3/2, γ = 0, δ = 0 Γλεηάδμομε: α / β γ = 1 / (3/2) 0 = 1 Άνα 2 ε πενίπηςζε: 31

Ε Ιέζμδμξ «Δηαίνεη & Βαζίιεοε» (Divide & Conquer)

Μ αιγόνηζμμξ Mergesort Mergesort. Δηαίνεζε ημκ πίκαθα ζηε μέζε. Ακαδνμμηθά ηαληκόμεζε ημ θάζε μηζό ημήμα. Οογπώκεοζε ηα δομ μηζά (πμο είκαη πιέμκ ηαληκμμεμέκα) ζε έκακ πιήνε ηαληκμμεμέκμ πίκαθα Jon von Neumann (1945) A L G O R I T H M S A L G O R I T H M S δηαίνεζε O(1) A G L O R H I M S T ηαληκόμεζε 2T(n/2) A G H I L M O R S T ζοκδύαζε O(n) A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 33

Γναμμηθόξ πνόκμξ: Μ(n) Οογπώκεοζε. Οογπςκεύζηε δύμ ηαληκμμεμέκεξ ιίζηεξ A = a 1,a 2,,a n θαη B = b 1,b 2,,b n ζε μηα κέα ηαληκμμεμέκε ιίζηα. i = 1, j = 1 while (νη δπν ιίζηεο δελ είλαη θέλεο) { if (a i b j ) πξνζάξηεζε a i ζηε ιίζηα εμόδνπ θαη αύμεζε i else(a i πξνζάξηεζε b j ζηε ιίζηα εμόδνπ θαη αύμεζε j } πξνζάξηεζε ηα ππόινηπα ζηνηρεία ηεο κε-θελήο ιίζηαο ζηελ έμνδν Ζζπονηζμόξ. Οογπώκεοζε δύμ ιηζηώκ μεγέζμοξ n παίνκεη O(n) πνόκμ. Απόδ. Ιεηά από θάζε ζύγθνηζε, ημ μέγεζμξ ηεξ ελόδμο αολάκεηαη θαηά 1. νεώκμομε ημ θόζημξ ζημ ζημηπείμ πμο πνμζζέημομε ζηεκ έλμδμ. 34

Μ αιγόνηζμμξ Mergesort Ακάιοζε νμκηθή Νμιοπιμθόηεηαξ Mergesort(A,l,r) { if A έρεη κόλν έλα ζηνηρείν return ην κνλαδηθό ζηνηρείν q = (l+n)/2 // δηαίξεζε ΑL = Mergesort(A,l,q) ΑR = Mergesort(A,q+1,r) B = Merge(AL,AR) // ζπλδύαζε } Jon von Neumann (1945) A L G O R I T H M S A L G O R I T H M S δηαίνεζε O(1) A G L O R H I M S T ηαληκόμεζε 2T(n/2) A G H I L M O R S T ζοκδύαζε O(n) 35

Ακάιοζε νμκηθή Νμιοπιμθόηεηαξ Ακαδνμμηθή Οπέζε Μνηζμόξ T(n) =.Ν. ημο mergesort ζε είζμδμ μεγέζμοξ n. Ακαδνμμηθή Οπέζε Mergesort. Π(n) T( n/2 ) + T( n/2 ) + cn, c > 0 ζηαζενά ή απιμύζηενα: Π(n) 2 T(n/2) + cn, γηα n 2, c > 0 ζηαζενά Π(n) = 0, γηα n 1 Θύζε. T(n) = O(n log 2 n). 36

Θίγα παναπάκς γηα Παληκμμήζεηξ Insertion sort Μ(n 2 ) Counting sort Μ(n + n k ) Radix sort Μ(n k) Ηάης θνάγμα Ω(n log n)

Αιγόνηζμμη Παληκόμεζεξ Ιειεηήζαμε ημοξ ελήξ αιγμνίζμμοξ: Mergesort - Μ(nlog n) Heapsort - Μ(nlog n) Θα δμύμε: Insertion sort - Μ(n 2 ) Counting sort - Μ(n + n k ) Radix sort - Μ(n k) Ρπάνπμοκ επίζεξ: Bubble sort - Μ(n 2 ) Selection sort - Μ(n 2 ) Quick sort - Θ(n 2 ) (θαιύηενε μέζε πενίπηςζε) Bucket sort - Μ(n), i (0,1] 38

Ιέηνεζε Ακηηζηνμθώκ

Ιέηνεζε Ακηηζηνμθώκ Ιηα ηζημζειίδα μμοζηθήξ πνμζπαζεί κα ηαηνηάλεη ηηξ πνμηημήζεηξ ζαξ ζηα ηναγμύδηα με άιιμοξ. Γζείξ βαζμμιμγείηε n ηναγμύδηα. Ε ζειίδα ζομβμοιεύεηαη μηα βάζε δεδμμέκςκ γηα κα βνεη άημμα με παναπιήζηεξ πνμηημήζεηξ. Ιεηνηθή μμμηόηεηαξ: πιήζμξ ακηηζηνμθώκ μεηαλύ δύμ βαζμμιμγηώκ. Ε βαζμμιμγία μμο: 1, 2,, n. Ε βαζμμιμγία ζμο: a 1, a 2,, a n. Πα ηναγμύδηα i θαη j ακηηζηνέθμκηαη ακ i < j, αιιά a i > a j. Πναγμύδηα Γγώ Γζύ A B C D E 1 2 3 4 5 1 3 4 2 5 Ακηηζηνμθέξ 3-2, 4-2 Ωμή βία: έιεγλε όια ηα (n 2 ) δεογάνηα i θαη j. 40

Ιέηνεζε Ακηηζηνμθώκ: Ριμπμίεζε Ννμ-ζοκζήθε. [Merge-and-Count] A θαη B ηαληκμμεμέκα. Πειηθή θαηάζηαζε. [Sort-and-Count] L ηαληκμμεμέκε. Sort-and-Count(L) { if ε ιίζηα L έρεη κόλν έλα ζηνηρείν return 0 θαη ηελ ιίζηα L Δηαίξεζε ηελ ιίζηα ζε δπν κηζά A θαη B (r A, A) Sort-and-Count(A) (r B, B) Sort-and-Count(B) (r B, L) Merge-and-Count(A, B) } return r = r A + r B + r θαη ηελ ηαμηλνκεκέλε ιίζηα L T(n) Tn/2 Tn/2 O(n) T(n) O(nlogn) 41

Νιεζηέζηενμ Δεύγμξ Οεμείςκ

Νιεζηέζηενμ Δεύγμξ Οεμείςκ Βνεξ ημ πιεζηέζηενμ «ακάμεζα», οπμζέημκηαξ όηη ε απόζηαζε < δ. L 21 12 δ = min(12, 21) 43

Νιεζηέζηενμ Δεύγμξ Οεμείςκ Μνηζμόξ. Έζης s i ημ ζεμείμ ηεξ 2δ-ιςνίδαξ, με ηεκ i ζηε μηθνόηενε y-ζοκηεηαγμέκε. Ζζπονηζμόξ. Ακ i j 12, ηόηε ε απόζηαζε μεηαλύ ημο s i θαη s j είκαη ημοιάπηζημκ δ. Απόδεηλε. 31 39 j Δεκ οπάνπμοκ δομ ζεμεία ζημ ίδημ ½-επί-½ θμοηί. Δομ ζεμεία πμο βνίζθμκηαη ακάμεζα από 2 γναμμέξ (πιάημξ γναμμήξ ½δ), 2 rows 29 30 ½ ½ έπμοκ απόζηαζε 2(½). i 27 28 ½ Γεγμκόξ. Ε ηημή 12 μπμνεί κα ειαηηςζεί ζε 6. (Οημ βηβιίμ ακαθένεηαη γηα ηημή 16) 26 25 7, 12, 16 ζηαζενά c 44

Μ Αιγόνηζμμξ πιεζηέζηενμο δεύγμοξ ζεμείςκ Closest-Pair(p 1,, p n ) { Υπνιόγηζε γξακκή δηαρσξηζκνύ L ηέηνηα ώζηε κηζά ζεκεία λα βξίζθνληαη ζην αξηζηεξό θαη κηζά ζην δεμί ηκήκα. 1 = Closest-Pair(αξηζηεξό κηζό) 2 = Closest-Pair(δεμί κηζό) = min( 1, 2 ) Δηέγξαςε όια ηα ζεκεία ζε απόζηαζε > από ηελ γξακκή L Ταμηλόκεζε ηα ππόινηπα ζεκεία σο πξνο y-ζπληεηαγκέλε Σάξσζε ηα ζεκεία σο πξνο ηελ y-ζπλ/κέλε θαη ζύγθξηλε απνζηάζεηο κεηαμύ θάζε ζεκείνπ θαη ηηο επόκελεο 11 ζέζεηο. Αλ θάπνηα απόζηαζε < δ ηόηε ελεκέξσζε δ. O(n log n) O(n) 2T(n / 2) O(n) O(n log n) O(n) O(n) } return. 45

Γναθήμαηα: Βαζηθέξ Έκκμηεξ θαη Γθανμμγέξ

Ιε-θαηεοζοκόμεκα Γναθήμαηα Ιε-θαηεοζοκόμεκμ γνάθεμα. G = (V, E) V = θόμβμη ή θμνοθέξ. E = αθμέξ μεηαλύ δεογανηώκ θόμβςκ. Ε ζπέζε Γ: δηαθνηηέξ, δοαδηθέξ, ζομμεηνηθέξ ζπέζεηξ μεηαλύ ακηηθεημέκςκ. Νανάμεηνμη μεγέζμοξ γναθήμαημξ: n = V, m = E. V = { 1, 2, 3, 4, 5, 6, 7, 8 } E = { 1-2, 1-3, 2-3, 2-4, 2-5, 3-5, 3-7, 3-8, 4-5, 5-6 } n = 8 m = 11 47

Ηαηεοζοκόμεκα Γναθήμαηα Ηαηεοζοκόμεκμ γνάθεμα. G = (V, E) V = θόμβμη ή θμνοθέξ. E = αθμέξ μεηαλύ δεογανηώκ θόμβςκ. Ε ζπέζε Γ: δηαθνηηέξ, δοαδηθέξ, αζύμμεηνεξ ζπέζεηξ μεηαλύ ακηηθεημέκςκ. Νανάμεηνμη μεγέζμοξ γναθήμαημξ: n = V, m = E. e = (u,v): θαηεοζύκεηαη από ημκ θόμβμ u πνμξ ημκ θόμβμ v ελένπεηαη από u θαη εηζένπεηαη ζημκ v ανπηθή θμνοθή ή μονά u e v ηειηθή θμνοθή ή θεθαιή a b c f e d 48

Βαζηθή Ζδηόηεηα Θεώνεμα Euler: (a) Οε έκα με-θαηεοζοκόμεκμ γνάθεμα: Ο vv deg(v) = 2m (b) Οε έκα θαηεοζοκόμεκμ γνάθεμα: Ο vv indeg(v) = Ο vv outdeg(v) = m a b c f e d θάζε αθμή (u, v) ηεκ μεηνάμε δύμ θμνέξ ζημ άζνμηζμα: μηα ζημ deg(u) θαη μηα ζημ deg(v) 49

Δέκδνα Μνηζμόξ. Έκα με-θαηεοζοκόμεκμ γνάθεμα είκαη δέκδνμ ακ είκαη ζοκεθηηθό θαη δεκ πενηέπεη θύθιμ. Θεώνεμα. Έζης G έκα με-θαηεοζοκόμεκμ γνάθεμα με n θόμβμοξ. Δομ από ηηξ αθόιμοζεξ πνμηάζεηξ ζοκεπάγμκηαη ηεκ ηνίηε. G είκαη ζοκεθηηθό. G δεκ πενηέπεη θύθιμ. G έπεη n-1 αθμέξ. 50

Ξηδςμέκα Δέκηνα Ξηδςμέκμ δέκδνμ. Δμζέκημξ εκόξ δέκδνμο T, δηάιελε έκακ θόμβμ r γηα νίδα θαη πνμζακαηόιηζε θάζε αθμή κα απμμαθνύκεηαη από ημ r. Οεμακηηθό. Ιμκηειμπμηεί ηενανπηθέξ δμμέξ. νίδα r γμκέαξ ημο v v παηδί ημο v θύιια έκα δέκδνμ ημ ίδημ δέκδνμ, νηδςμέκμ ζημ 1 51

Βαζηθμί Αιγόνηζμμη Γναθεμάηςκ: Δηάηνελε Γναθήμαημξ BFS Ακαδήηεζε πνώηα Ηαηά Νιάημξ DFS Ακαδήηεζε πνώηα Ηαηά Βάζμξ

Ακαδήηεζε πνώηα θαηά Νιάημξ (Breadth First Search-BFS) BFS δηαηζζεηηθά. Γλενεύκεζε από ημκ s πνμξ όιεξ ηηξ δοκαηέξ θαηεοζύκζεηξ, πνμζζέημκηαξ θόμβμοξ ακά «επίπεδμ». Μ αιγόνηζμμξ BFS. L 0 = { s }. L 1 = όιμη μη γείημκεξ ημο L 0. L 2 = όιμη μη θόμβμη πμο δεκ ακήθμοκ ζημ L 0 ή L 1, θαη έπμοκ αθμή με έκα θόμβμ ημο L 1. s L 1 L 2 L n-1 L i+1 = όιμη μη θόμβμη πμο δεκ ακήθμοκ ζε πνμεγμύμεκα επίπεδα, θαη έπμοκ αθμή με έκα θόμβμ ημο L i. Θεώνεμα. Γηα θάζε i, ημ L i απμηειείηαη από όιμοξ ημοξ θόμβμοξ ζε απόζηαζε αθνηβώξ i από ημκ s. Ρπάνπεη μμκμπάηη (δηαδνμμή) από ημκ s ζημκ t ακ θαη μόκμ ακ μ t ακήθεη ζε θάπμημ επίπεδμ. 53

Ακαδήηεζε πνώηα θαηά Νιάημξ (BFS) Ζδηόηεηα. Έζης T ημ BFS δέκδνμ ημο G = (V, E), θαη έζης (x, y) μηα αθμή ημο G. Πόηε ηα επίπεδα ηςκ x θαη y δηαθένμοκ ημ πμιύ θαηά 1. L 0 L 1 L 2 L 3 54

Ακαδήηεζε πνώηα θαηά Νιάημξ (BFS): Ακάιοζε Θεώνεμα. Ε πνμεγμύμεκε οιμπμίεζε ημο BFS ηνέπεη ζε πνόκμ O(m + n) ακ ημ γνάθεμα ακαπαναζηαζεί με ιίζηα γεηηκίαζεξ. Απόδεηλε. Γύθμια γηα πνόκμ εθηέιεζεξ O(n 2 ) : ημ πμιύ n ιίζηεξ L[i] θάζε θόμβμξ ακήθεη 1 L[i] : μ βνόγπμξ while εθηειείηαη n θμνέξ όηακ ελεηάδμομε έκακ θόμβμ u, οπάνπμοκ n πνμζθείμεκεξ αθμέξ (u, v), θαη ζπαηαιάμε O(1) πνόκμ γηα ηεκ επελενγαζία θάζε αθμήξ Οηεκ πναγμαηηθόηεηα ηνέπεη ζε πνόκμ O(m + n) : όηακ ελεηάδμομε ημκ θόμβμ u, οπάνπμοκ deg(u) αθμέξ (u, v) ζοκμιηθόξ πνόκμξ γηα ηηξ αθμέξ είκαη uv deg(u) = 2m 55

Ακαδήηεζε πνώηα θαηά Βάζμξ (DFS) DFS δηαηζζεηηθά. Γλενεύκεζε από θάπμημκ θόμβμ u με πνμηεναηόηεηα «βάζμοξ»: αθμιμοζμύμε αθμή (u,v), ακαθαιύπημκηαξ ημκ v, μεηά αθμιμοζμύμε αθμή (v,z), ακαθαιύπημκηαξ ημκ z, θμθ. Μ αιγόνηζμμξ DFS (R: ζύκμιμ θόμβςκ πμο έπμοκ ακαθαιοθζεί). 56

Ακαδήηεζε πνώηα θαηά Βάζμξ (DFS): Ακάιοζε Θεώνεμα. Ε πνμεγμύμεκε οιμπμίεζε ημο αιγμνίζμμο DFS ηνέπεη ζε πνόκμ Μ(m + n), ακ ημ γνάθεμα δίκεηαη με ηεκ ακαπανάζηαζε ιηζηώκ γεηηκίαζεξ. Απόδεηλε. Νανόμμηα με εθείκε ημο BFS. DFS(G){ forall v V { Discovered[v] = false; p[v] = 0; } forall v V {if Discovered[v] = false then DFS-visit(v) } } DFS-visit(u){ } Discovered[u] = true; forall (u,v) E { if Discovered[v] = false then { } p[v] = u; DFS-visit(v); } // Τ: παηέξαο(v) = u 57

Ηαηεοζοκόμεκα Άθοθια Γναθήμαηα (DAGs) θαη Πμπμιμγηθή Δηάηαλε

Ηαηεοζοκόμεκα Άθοθια Γναθήμαηα (DAGs) Μνηζμόξ. Έκα DAG είκαη έκα θαηεοζοκόμεκμ γνάθεμα πμο δεκ πενηέπεη θύθιμοξ Μνηζμόξ. Ιηα ημπμιμγηθή ηαληκόμεζε εκόξ θαηεοζοκόμεκμο γναθήμαημξ G = (V, E) είκαη μηα δηάηαλε ηςκ θόμβςκ v 1, v 2,, v n έηζη ώζηε (v i, v j ) κα ηζπύεη i < j. v 2 v 3 v 6 v 5 v 4 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 7 v 1 έκα DAG μηα ημπμιμγηθή ηαληκόμεζε 59

Ηαηεοζοκόμεκα Άθοθια Γναθήμαηα (DAGs) Θήμμα. Ακ ημ G έπεη ημπμιμγηθή ηαληκόμεζε, ηόηε ημ G είκαη DAG. Θήμμα. Ακ ημ G είκαη DAG, ηόηε ημ G έπεη ημπμιμγηθή ηαληκόμεζε. Θεώνεμα. Έκα θαηεοζοκόμεκμ γνάθεμα G έπεη ημπμιμγηθή ηαληκόμεζε ακ θαη μόκμ ακ είκαη DAG. 60

Αιγόνηζμμξ Γύνεζεξ Πμπμιμγηθήξ Παληκόμεζεξ v 2 v 3 v 6 v 5 v 4 v 7 v 1 61

Ε μέζμδμξ ηεξ απιεζηίαξ Greed is good. Greed is right. Greed works. Greed clarifies, cuts through, and captures the essence of the evolutionary spirit. - Gordon Gecko (Michael Douglas) Απιεζηία: Δόμεζε ηεξ ιύζεξ ζηαδηαθά, βειηηζημπμηώκηαξ θάπμημ ημπηθό θνηηήνημ ζε θάζε βήμα

νμκμπνμγναμμαηηζμόξ Δηαζηεμάηςκ νμκμπνμγναμμαηηζμόξ. Ε ενγαζία j λεθηκάεη ηε ζηηγμή s j θαη ηειεηώκεη ηε ζηηγμή f j. Δομ ενγαζίεξ είκαη ζομβαηέξ ακ δεκ επηθαιύπημκηαη. Οηόπμξ: εύνεζε ημο μεγαιύηενμο οπμζοκόιμο από ζομβαηέξ ενγαζίεξ. a b c d e f g 0 1 2 3 4 5 6 7 8 9 10 11 h νόκμξ 63

νμκμπνμγναμμαηηζμόξ Δηαζηεμάηςκ: Άπιεζημξ Αιγόνηζμμξ Άπιεζημξ Αιγόνηζμμξ. Θεςνμύμε ηηξ ενγαζίεξ θαηά αύλμοζα ηάλε ςξ πνμξ ημ πνόκμ ιήλεξ. Γπηιέγμομε θάπμηα ενγαζία εθόζμκ αοηή είκαη ζομβαηή με ηηξ οπόιμηπεξ πμο έπμομε ήδε επηιέλεη. Ταμηλόκεζε ηηο εξγαζίεο σο πξνο ρξόλν ιήμεο έηζη ώζηε f 1 f 2... f n. ζύκμιμ ενγαζηώκ πμο ζα επηιέγεη A for j = 1 to n { if (ε εξγαζία j είλαη ζπκβαηή κε ην A) A A {j} } return A Ριμπμίεζε. O(n log n). Θομάηαη ηεκ ενγαζία j* πμο ημπμζεηήζεθε ηειεοηαία ζημ A. Ε ενγαζία j είκαη ζομβαηή με (θάζε ενγαζία ημο) A ακ s j f j*. 64

νμκμπνμγναμμαηηζμόξ Δηαζηεμάηςκ: Μνζόηεηα Θεώνεμα. Μ άπιεζημξ αιγόνηζμμξ είκαη βέιηηζημξ. Απόδεηλε. (με άημπμ) Έζης όηη μ άπιεζημξ δεκ είκαη βέιηηζημξ. Έζης i 1, i 2,... i k μη ενγαζίεξ πμο επηιέγεη μ άπιεζημξ. Έζης j 1, j 2,... j m μη ενγαζίεξ ζε μηα βέιηηζηε ιύζε ηέημηα ώζηε i 1 = j 1, i 2 = j 2,..., i r = j r γηα ηε μέγηζηε δοκαηή ηημή ημο r. ε ενγαζία i r+1 ηειεηώκεη πνηκ ηεκ j r+1 Άπιεζημξ: i 1 i 2 i r i r+1 Βέιηηζημξ: j 1 j 2 j r j r+1... γηαηί κα μεκ ακηηθαηαζηήζμομε ηεκ ενγαζία j r+1 με ηεκ ενγαζία i r+1? 65

νμκμπνμγναμμαηηζμόξ Δηαζηεμάηςκ: Μνζόηεηα Θεώνεμα. Μ άπιεζημξ αιγόνηζμμξ είκαη βέιηηζημξ. Απόδεηλε. (με άημπμ) Έζης όηη μ άπιεζημξ δεκ είκαη βέιηηζημξ. Έζης i 1, i 2,... i k μη ενγαζίεξ πμο επηιέγεη μ άπιεζημξ. Έζης j 1, j 2,... j m μη ενγαζίεξ ζε μηα βέιηηζηε ιύζε ηέημηα ώζηε i 1 = j 1, i 2 = j 2,..., i r = j r γηα ηε μέγηζηε δοκαηή ηημή ημο r. ε ενγαζία i r+1 ηειεηώκεη πνηκ ηεκ j r+1 Άπιεζημξ: i 1 i 2 i r i r+1 Βέιηηζημξ: j 1 j 2 j r i r+1... ε ιύζε είκαη αθόμα εθηθηή θαη βέιηηζηε, ςζηόζμ ακηηθνμύεη ημ μέγηζημ r. 66

νμκμπνμγναμμαηηζμόξ γηα Γιαπηζημπμίεζε Ηαζοζηένεζεξ

νμκμπνμγναμμαηηζμόξ γηα Γιαπηζημπμίεζε Ηαζοζηένεζεξ Ννόβιεμα ειαπηζημπμίεζεξ θαζοζηένεζεξ Ιηα μεπακή επελενγάδεηαη μηα ενγαζία ηε θμνά. Ε ενγαζία j απαηηεί t j μμκάδεξ πνόκμο θαη έπεη πνμζεζμία πνόκμο d j. Ακ ε j λεθηκά ηε ζηηγμή s j, ζα ηειεηώζεη ηε ζηηγμή f j = s j + t j. Ηαζοζηένεζε: j = max { 0, f j - d j }. (f j - d j >0 «πάκεη» ηε πνμζεζμία) Οηόπμξ: πνμκμπνμγναμμαηηζμόξ ηςκ ενγαζηώκ γηα ειαπηζημπμίεζε ηεξ μέγηζηεξ θαζοζηένεζεξ L = max j. 1 2 3 4 5 6 Ν.π.: t j 3 2 1 4 3 2 d j 6 8 9 9 14 15 θαζοζηένεζε = 2 θαζοζηένεζε = 0 max θαζοζηένεζε = 6 d 3 = 9 d 2 = 8 d 6 = 15 d 1 = 6 d 5 = 14 d 4 = 9 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 68

Γιαπηζημπμίεζε Ηαζοζηένεζεξ: Άπιεζημξ Αιγόνηζμμξ Άπιεζημξ αιγόνηζμμξ. Ννώηα ε μηθνόηενε πνμζεζμία. Ταμηλόκεζε n εξγαζίεο σο πξνο ηηο πξνζεζκίεο έηζη ώζηε: d 1 d 2 d n t 0 for j = 1 to n Αλάζεζε ζηελ εξγαζία j ην δηάζηεκα [t, t + t j ] s j t, f j t + t j t t + t j εθηύπσζε ηα δηαζηήκαηα [s j, f j ] 1 2 3 4 5 6 t j 3 2 1 4 3 2 d j 6 8 9 9 14 15 μέγηζηε θαζοζηένεζε = 1 d 1 = 6 d 2 = 8 d 3 = 9 d 4 = 9 d 5 = 14 d 6 = 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 69

Γιαπηζημπμίεζε Ηαζοζηένεζεξ: Ακηηζηνμθέξ Μνηζμόξ. Ιηα ακηηζηνμθή ζε έκα πνμκμδηάγναμμα S είκαη έκα δεογάνη ενγαζηώκ i θαη j με d i < d j αιιά ε j πνμκμπνμγναμμαηίδεηαη πνηκ ηεκ i. ακηηζηνμθή f i πνηκ ηεκ ακηημεηάζεζε j i μεηά ηεκ ακηημεηάζεζε i j f' j Ζζπονηζμόξ. Ε αιιαγή δομ δηαδμπηθώκ, ακηεζηναμμέκςκ ενγαζηώκ μεηώκεη ημ πιήζμξ ηςκ ακηηζηνμθώκ θαηά 1 θαη δεκ αολάκεη ηεκ μέγηζηε θαζοζηένεζε. Απόδεηλε. : θαζοζηένεζε πνηκ ηεκ αιιαγή, ' : μεηά ηεκ αιιαγή. ' k = k γηα θάζε k i, j ' i i Ακ ε ενγαζία j θαζοζηενήζεη: j = max { 0, f j - d j } j f d f f i i i j d d i j j j f ( i j) i 70

Γιαπηζημπμίεζε Ηαζοζηένεζεξ: Ακάιοζε Άπιεζημο Αιγμνίζμμο Θεώνεμα. Πμ πνμκμδηάγναμμα S ημο άπιεζημο αιγμνίζμμο είκαη βέιηηζημ. Απόδεηλε. (με άημπμ) S* : βέιηηζημ πνμκμδηάγναμμα με ημ μηθνόηενμ πιήζμξ ακηηζηνμθώκ. Γκςνίδμομε όηη ημ S* δεκ έπεη πνόκμ αδνάκεηαξ. Ακ ημ S* δεκ έπεη ακηηζηνμθέξ, ηόηε S = S*. Ακ ημ S* έπεη μηα ακηηζηνμθή, ηόηε έζης i-j μηα γεηημκηθή ακηηζηνμθή. ακηημεηαζέημκηαξ i με j δεκ αολάκεη ηε μέγηζηε θαζοζηένεζε θαη μεηώκεη αοζηενά ημ πιήζμξ ηςκ ακηηζηνμθώκ αοηό ένπεηαη ζε ακηίζεζε με ημκ μνηζμό ημο S* 71

Οοκημμόηενεξ Δηαδνμμέξ ζε Γναθήμαηα

Ννόβιεμα Οοκημμόηενεξ Δηαδνμμήξ Δίθηομ ζοκημμόηενςκ δηαδνμμώκ Ηαηεοζοκόμεκμ γνάθεμα G = (V, E). Αθεηενία s, πνμμνηζμόξ t. Ηόζημξ e = μήθμξ ηεξ αθμήξ e. Ννόβιεμα ζοκημμόηενεξ δηαδνμμήξ: εύνεζε ηεξ ζοκημμόηενεξ θαηεοζοκόμεκεξ δηαδνμμήξ από ημκ s ζημκ t. Ηόζημξ s-t δηαδνμμήξ: δ(s,t) θόζημξ δηαδνμμήξ = άζνμηζμα ηςκ αθμώκ (ηα μήθε ημοξ) ηεξ δηαδνμμήξ s 9 15 14 2 5 6 20 30 5 23 18 2 11 16 4 6 6 3 19 Ηόζημξ δηαδνμμήξ (s-2-3-5-t) = 9 + 23 + 2 + 16 = 50. 7 44 t 73

Αιγόνηζμμξ ημο Dijkstra Μ αιγόνηζμμξ ημο Dijkstra. Δηαηήνεζε ζοκόιμο θόμβςκ S πμο έπμοκ ακαθαιοθζεί: γηα θάζε θόμβμ u ημο S γκςνίδμομε ηε ζοκημμόηενε δηαδνμμή d(u) από ηεκ αθεηενία s. Ανπηθμπμημύμε S = { s }, d(s) = 0, v V-{s}: d(v) =. Γπακαιεπηηθά επηιέγμομε θόμβμ v πμο δεκ έπεη ακαθαιοθζεί πμο ειαπηζημπμηεί ( v) min e ( u, v) : us d( u) πνμζζέημομε v ζημ S, θαη ζέημομε d(v) = (v). e, ζοκημμόηενε δηαδνμμή ζε θάπμημ u πμο έπεη ακαθαιοθζεί, αθμιμοζμύμεκμ από μηα μμκαδηθή αθμή (u, v) S d(u) u e v s foreach edge e = (u,v) do if d(v) > d(u) + e d(v) = d(u) + e 74

Αιγόνηζμμξ ημο Dijkstra: νόκμξ Γθηέιεζεξ Q = V while(q δελ είλαη άδεηα) { v = ExtractMin(Q) foreach e = (v,w) E do if d(w) > d(v) + e { d(w) = d(v) + e // κείσζε πξνηεξαηόηεηαο ChangeKey(Q,w,d[w]) // κείσζε θιεηδηνύ } } Βνόγπμξ while: n-1 επακαιήρεηξ, θάζε θμνά αθαηνείηαη έκαξ θόμβμξ ExtractMin & ChangeKey: Μ(log n) ιόγς μονάξ πνμηεναηόηεηαξ Νόζμ ζοπκά εθηειείηαη ε ChangeKey γηα μηα αθμή (v,w); όηακ επηιέγμομε ημ άθνμ w ζημ S (δειαδή, w = ΓxtractMin(Q)) ηόηε εθηειείηαη μηα θμνά γηα θάζε μηα αθμή. Γπμμέκςξ: Μ(n) ανπηθμπμίεζε + O(n) επακαιήρεηξ + Μ(n) Extactmin + Μ(m) ChangeKey = O(m log n) (δηόηη m > n) 75

Γιάπηζηα Οθειεηηθά Δέκδνα Γπίζεξ ακαθένμκηαη θαη ςξ «Γιάπηζηα Γεκκεηηθά Δέκδνα»

Γιάπηζημ Οθειεηηθό Δέκδνμ Γιάπηζημ Οθειεηηθό Δέκδνμ (ΓΟΔ). Δεδμμέκμο εκόξ ζοκεθηηθμύ γναθήμαημξ G = (V, E) με ζεηηθά θόζηε αθμώκ c e, έκα ΓΟΔ είκαη έκα οπμζύκμιμ ηςκ αθμώκ T E ηέημημ ώζηε ημ T κα είκαη ζθειεηηθό δέκδνμ με ημ ειάπηζημ άζνμηζμα ζηα θόζηε ηςκ αθμώκ. 4 24 4 6 23 18 9 6 9 16 8 10 5 14 11 7 8 5 11 7 21 G = (V, E) T, et c e = 50 Θεώνεμα ημο Cayley. Ρπάνπμοκ ημ πμιύ n n-2 ζθειεηηθά δέκδνα (όηακ K n ) δεκ μπμνεί κα ιοζεί με ςμή βία 77

Άπιεζημη Αιγόνηζμμη Αιγόνηζμμξ ημο Kruskal. Λεθηκάμε με T =. Θεςνμύμε ηηξ αθμέξ ζε αύλμοζα ηάλε ςξ πνμξ ηα θόζηε ημοξ. Γηζάγμομε μηα αθμή e ζημ T εθηόξ ακ δεμημονγείηαη θύθιμξ. Αιγόνηζμμξ Ακηίζηνμθεξ Δηαγναθήξ. Λεθηκάμε με T = E. Θεςνμύμε ηηξ αθμέξ ζε θζίκμοζα ηάλε ςξ πνμξ ηα θόζηε ημοξ. Δηαγνάθμομε μηα αθμή e από ημ T εθηόξ ακ ημ Π γίκεηαη με-ζοκεθηηθό. Αιγόνηζμμξ ημο Prim. Λεθηκάμε με μηα ανπηθή θμνοθή s θαη ακαπηύζζμομε έκα δέκδνμ T νηδςμέκμ ζηεκ s. Οε θάζε βήμα, πνμζζέημομε ζημ Π ηεκ αθμή e με ημ μηθνόηενμ θόζημξ πμο έπεη αθνηβώξ έκα άθνμ ζημ T. Οεμείςζε. Ηαη μη ηνεηξ αιγόνηζμμη πανάγμοκ έκα ΓΟΔ. 78

Άπιεζημη Αιγόνηζμμη Ρπόζεζε Απιμπμίεζεξ. Όια ηα θόζηε c e είκαη δηαθνηηά. ( ημ ΓΟΔ μμκαδηθό) Ζδηόηεηα απμθμπήξ. Έζης S μπμημδήπμηε οπμζύκμιμ θμνοθώκ θαη έζης e ε αθμή με ημ ειάπηζημ θόζημξ θαη αθνηβώξ έκα άθνμ ζημ S. Πόηε ημ ΓΟΔ πενηέπεη ηεκ e. Ζδηόηεηα θύθιμο. Έζης C μπμημζδήπμηε θύθιμξ, θαη έζης f ε αθμή με ημ μέγηζημ θόζημξ πμο ακήθεη ζημ C. Πόηε ημ ΓΟΔ δεκ πενηέπεη ηεκ f. f C S e ε e ακήθεη ζημ ΓΟΔ ε f δεκ ακήθεη ζημ ΓΟΔ 79

H δμμή δεδμμέκςκ Union-Find Union-Find. Ρπμζηενίδεη ηηξ αθόιμοζεξ ιεηημονγίεξ: MakeUnionFind(S): δεμημονγεί μηα δμμή (ζύκμιμ) γηα θάζε ζημηπείμ s S πνεηάδεηαη πνόκμ Μ(n) με S =n. Find(i): βνίζθεη ημ «όκμμα» ημο ζοκόιμο πμο ακήθεη ημ ζημηπείμ i παίνκεη πνόκμ Μ(1) με ημκ Νίκαθα Οοκόιςκ. Union(x,y): ζογπςκεύεη ηα ζύκμια με «μκόμαηα» x θαη y ζε έκα ζύκμιμ Ηάζε αθμιμοζία από k ιεηημονγίεξ Union(x,y) πνεηάδεηαη πνόκμ Μ(k log k). Οημηπεία: 1 1 3 8 9 10 1 5 Νιήζμξ ζημηπείςκ ζε θάζε ζύκμιμ 2 2 4 5 2 3 6 6 6 1 7 7 11 12 7 3 13 13 13 1 1 2 3 4 5 6 7 8 9 10 11 12 13 Νίκαθαξ Οοκόιςκ: 1 2 1 2 2 6 7 1 1 1 7 7 13 80

Νανάδεηγμα - Άζθεζε Άζθεζε: Δεδμμέκμο εκόξ γναθήμαημξ G με θόζηε ζηηξ αθμέξ (μπμνείηε κα ζεςνήζεηε όηη είκαη δηαθμνεηηθά) θαη μηαξ αθμήξ e, ζπεδηάζηε αιγόνηζμμ πμο απακηάεη ζε πνόκμ O(n + m) ακ ε e ακήθεη ζε έκα ΓΟΔ. Ζζπονηζμόξ. Ε αθμή e=(u,v) δεκ ακήθεη ζε θάπμημ ΓΟΔ ακ θαη μόκμ ακ μη u θαη v εκώκμκηαη μέζς άιιεξ δηαδνμμήξ με θζεκόηενεξ αθμέξ από ηεκ e. Απόδεηλε. Ακ μη θμνοθέξ u θαη v εκώκμκηαη μέζς άιιεξ δηαδνμμήξ P με θζεκόηενεξ αθμέξ από ηεκ e ηόηε πνμζζέημομε ηεκ e ζημ P θαη έπμομε θύθιμ C. Οημ C ε αθμή e είκαη ε πημ αθνηβή, άνα από ηδηόηεηα θύθιμο, e ΓΟΔ. f ε f δεκ ακήθεη ζημ ΓΟΔ 81

Νανάδεηγμα - Άζθεζε Άζθεζε: Δεδμμέκμο εκόξ γναθήμαημξ G με θόζηε ζηηξ αθμέξ (μπμνείηε κα ζεςνήζεηε όηη είκαη δηαθμνεηηθά) θαη μηαξ αθμήξ e, ζπεδηάζηε αιγόνηζμμ πμο απακηάεη ζε πνόκμ O(n + m) ακ ε e ακήθεη ζε έκα ΓΟΔ. Ζζπονηζμόξ. Ε αθμή e=(u,v) δεκ ακήθεη ζε θάπμημ ΓΟΔ ακ θαη μόκμ ακ μη u θαη v εκώκμκηαη μέζς άιιεξ δηαδνμμήξ με θζεκόηενεξ αθμέξ από ηεκ e. Απόδεηλε. Ακ u θαη v δεκ εκώκμκηαη με άιιε θζεκόηενε δηαδνμμή από ηεκ e ηόηε ζα βνμύμε έκα S: e είκαη θζεκόηενε, u S θαη v V - S. Πόηε από ηδηόηεηα απμθμπήξ e ΓΟΔ. S = όιεξ μη θμνοθέξ πμο μπμνμύμε κα πνμζεγγίζμομε από ηεκ u με αθμέξ θζεκόηενεξ από e. Ακ οπήνπε f=(x,y) με xs θαη yv S με S u e v c f < c e, ηόηε μ x θηάκεη ζημ u με θζεκόηενεξ αθμέξ, + {f} (c f < c e ): άνα θαη x y μ y θηάκεη ζημ u με θζεκόηενεξ αθμέξ, ε e ακήθεη ζημ ΓΟΔ δειαδή y S, άημπμ. Άνα ε e: θζεκόηενε 82

Ηώδηθεξ Huffman θαη Οομπίεζε Δεδμμέκςκ

Ννμζεμαηηθμί Ηώδηθεξ Μνηζμόξ. Έκαξ πνμζεμαηηθόξ θώδηθαξ ημο ζοκόιμο S είκαη μηα ζοκ/ζε γ πμο ακηηζημηπεί θάζε xs ζε 1 ξ θαη 0 ξ με ηέημημ ηνόπμ ώζηε γηα x,ys, x y, ημ γ(x) κα μεκ είκαη πνόζεμα ημο γ(y). Ν.π. γ(a) = 11 γ(e) = 01 γ(k) = 001 γ(l) = 10 γ(u) = 000 Γ. Νμηα είκαη ε ζεμαζία ημο 1001000001 ; Ρπμζέημομε όηη μη ζοπκόηεηεξ είκαη γκςζηέξ γηα έκα θείμεκμ μεγέζμοξ 1G: f a =0.4, f e =0.2, f k =0.2, f l =0.1, f u =0.1 Γ. Νμημ είκαη ημ μέγεζμξ ημο θςδηθμπμηεμέκμο θεημέκμο; 84

Βέιηηζημη Ννμζεμαηηθμί Ηώδηθεξ Μνηζμόξ. Μ μέζμξ όνμξ ημο πιήζμοξ bits γηα θάζε γνάμμα εκόξ πνμζεμαηηθμύ θώδηθα γ είκαη ημ άζνμηζμα ηςκ ζοπκμηήηςκ όιςκ ηςκ ζομβόιςκ επί ημ πιήζμξ ηςκ bits γηα ηεκ θςδηθμπμίεζε ημο ζομβόιμο: ABL ( ) f x ( x) xs Θέιμομε κα βνμύμε έκα πνμζεμαηηθό θώδηθα πμο έπεη ημ ειάπηζημ δοκαηό μέζμ όνμ πιήζμοξ bits γηα θάζε γνάμμα. Αξ ζεςνήζμομε όηη μμκηειμπμημύμε έκακ θώδηθα με δοαδηθό δέκδνμ 85

Ακαπανηζηώκηαξ Ννμζεμαηηθμύξ Ηώδηθεξ με Δοαδηθά Δέκδνα Ν.π., γ(a) = 11 γ(e) = 01 γ(k) = 001 0 1 γ(l) = 10 γ(u) = 000 0 1 0 1 e l a 0 1 u k Γ. Νώξ μμηάδεη ημ δέκδνμ ημο πνμζεμαηηθμύ θώδηθα ; 86

Βέιηηζημη Ννμζεμαηηθμί Ηώδηθεξ: Ηςδηθμπμίεζε θαηά Huffman Huffman(S) { if S =2 { επέζηξεςε ην δέλδξν κε κηα ξίδα θαη 2 θύιια } else { έζησ y θαη z ηα δπν κηθξόηεξεο ζπρλόηεηαο γξάκκαηα ζην S S = S δηέγξαςε ηα y θαη z από ην S εηζήγαγε έλα λέν γξάκκα σ ζην S κε f =f y +f z T = Huffman(S ) T = πξόζζεζε ηα δπν παηδηά y θαη z ζην θύιιν σ ηνπ T return T } } Γ. Νμηα είκαη ε πνμκηθή πμιοπιμθόηεηα; A. T(n) = T(n-1) + O(n) επμμέκςξ O(n 2 ) Γ. Νώξ οιμπμηείηαη πημ απμηειεζμαηηθά; A. νήζε μονάξ πνμηεναηόηεηαξ γηα ημ S: T(n) = T(n-1) + O(log n) επμμέκςξ O(n log n) 87

Ηςδηθμπμίεζε Huffman : Νανάδεηγμα ABL(T fixed ) = 4,5 0 1 Ηςδηθμπμίεζε Huffman γ(a) = 10 γ(b) = 011 γ(c) = 111 γ(d) = 1101 γ(e) = 00 γ(f) = 010 γ(g) = 1100 e 0 0.30 0 1 1 a 0.37 0 0 1 1 ABL(T) = 4,0 f b c 0.17 0.18 0 1 0.29 g d 0.06 0.13 88

Δοκαμηθόξ Ννμγναμμαηηζμόξ Οηαζμηζμέκμξ νμκμπνμγναμμαηηζμόξ Δηαζηεμάηςκ Πμεμαημπμηεμέκα Γιάπηζηα Πεηνάγςκα Αζνμίζμαηα Ρπμζοκόιςκ θαη Οαθίδηα Γοζογνάμμηζε Αθμιμοζίαξ Οοκημμόηενα Ιμκμπάηηα Αιγόνηζμμξ ημο Bellman-Ford

Οηαζμηζμέκμξ νμκμπνμγναμμαηηζμόξ Δηαζηεμάηςκ

Οηαζμηζμέκμξ νμκμπνμγναμμαηηζμόξ Δηαζηεμάηςκ Ννόβιεμα ημο Οηαζμηζμέκμο νμκμπνμγναμμαηηζμμύ Δηαζηεμάηςκ. Πμ αίηεμα j λεθηκά ηε ζηηγμή s j, ηειεηώκεη ηε ζηηγμή f j, θαη έπεη βάνμξ v j. Δομ αηηήμαηα είκαη ζομβαηά ακ δεκ επηθαιύπημκηαη. Οηόπμξ: εύνεζε οπμζοκόιμο ζομβαηώκ αηηεμάηςκ μέγηζημο βάνμοξ. άζνμηζμα ηςκ επημένμοξ βανώκ a b c d e f g 0 1 2 3 4 5 6 7 8 9 10 h νόκμξ 91

Οηαζμηζμέκμξ νμκμπνμγναμμαηηζμόξ Δηαζηεμάηςκ Δηαηάζζμομε ηα αηηήμαηα ζύμθςκα με ημ πνόκμ ηενμαηηζμμύ: f 1 f 2... f n Μνηζμόξ. p(j) = μέγηζημξ δείθηεξ i (< j) ηέημημξ ώζηε ημ αίηεμα i κα είκαη ζομβαηό με ημ αίηεμα j. Ν.π.: p(8) = 5, p(7) = 3, p(2) = 0. 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 9 10 11 8 νόκμξ 92

Δοκαμηθόξ Ννμγναμμαηηζμόξ: Δοαδηθή επηιμγή Οομβμιηζμόξ. OPT(j) = ηημή ηεξ βέιηηζηεξ ιύζεξ γηα ημ πνόβιεμα από ηα αηηήμαηα 1, 2,..., j. 1 ε Νενίπηςζε: OPT δηαιέγεη ημ αίηεμα j με βάνμξ v j δεκ μπμνμύκ κα πνεζημμπμηεζμύκ ηα αζύμβαηα αηηήμαηα { p(j) + 1, p(j) + 2,..., j - 1 } πνέπεη κα πενηέπεη ηε βέιηηζηε ιύζε ημο οπμπνμβιήμαημξ από ηα οπόιμηπα ζομβαηά αηηήμαηα 1, 2,..., p(j) 2 ε Νενίπηςζε: OPT δεκ δηαιέγεη ημ αίηεμα j. πνέπεη κα πενηέπεη ηε βέιηηζηε ιύζε ημο οπμπνμβιήμαημξ από ηα οπόιμηπα ζομβαηά αηηήμαηα 1, 2,..., j-1 OPT( p(j) ) OPT( j-1 ) βέιηηζηα οπμπνμβιήμαηα 0 if j 0 OPT( j) max v j OPT( p( j)), OPT( j 1) otherwise 93

Οηαζμηζμέκμξ νμκμπνμγναμμαηηζμόξ Δηαζηεμάηςκ: ςνίξ Ακαδνμμή Απμμκεμόκεοζε ή Γπακάιερε ζηα οπμπνμβιήμαηα. Λεδηπιώκμομε ηεκ ακαδνμμή. Είζνδνο: n, s 1,,s n, f 1,,f n, v 1,,v n Ταμηλόκεζε ηα αηηήκαηα σο εμήο: f 1 f 2... f n. Υπνιόγηζε p(1), p(2),, p(n) Iterative-Compute-Opt { M[0] = 0 for j = 1 to n M[j] = max( v j + M[p(j)], M[j-1] ) } Βασική Ιδέα τοσ Δσναμικού Προγραμματισμού!! 94

Πμ πνόβιεμα ημο Οαθηδίμο

Πμ πνόβιεμα ημο Οαθηδίμο (Knapsack Problem) Πμ πνόβιεμα ημο Οαθηδίμο. Δίκμκηαη n ακηηθείμεκα θαη έκα ζαθίδημ Πμ ακηηθείμεκμ i δογίδεη w i > 0 θηιά θαη έπεη ηημή v i > 0. Πμ ζαθίδημ «ακηέπεη» μέπνη W θηιά. Οηόπμξ: γέμηζμα ημο ζαθηδίμο έηζη ώζηε κα μεγηζημπμηεζεί ε ζοκμιηθή ηημή. # ηημή βάνμξ Ν.π.: { 3, 4 } έπμοκ ηημή 40. 1 1 1 W = 11 2 3 6 2 18 5 4 5 22 28 6 7 Άπιεζηα: πνόζζεζε ακηηθείμεκα (όζμ w i < W) με μέγηζηε ακαιμγία v i / w i. Ακηηπανάδεηγμα: { 5, 2, 1 } πεηοπαίκεη ηημή = 35 μ άπιεζημξ αιγόνηζμμξ δεκ είκαη βέιηηζημξ. 96

Δοκαμηθόξ Ννμγναμμαηηζμόξ: Ννμζζέημκηαξ μηα κέα μεηαβιεηή Μνηζμόξ. OPT(i, w) = max θένδμξ από οπμζύκμιμ ηςκ {1,, i} με μέγηζηε επηηνεπόμεκε βανύηεηα w. 1 ε Νενίπηςζε: OPT δεκ επηιέγεη ημ ακηηθείμεκμ i. OPT επηιέγεη ηα θαιύηενα από { 1, 2,, i-1 } με επηηνεπόμεκμ βάνμξ w 2 ε Νενίπηςζε: OPT επηιέγεη ημ ακηηθείμεκμ i. κέμ επηηνεπόμεκμ βάνμξ = w w i OPT επηιέγεη ηα θαιύηενα από { 1, 2,, i 1 } πνεζημμπμηώκηαξ ημ κέμ επηηνεπόμεκμ βάνμξ 0 if i 0 OPT(i, w) OPT(i 1, w) if w i w max OPT(i 1, w), v i OPT(i 1, w w i ) otherwise δεκ επηιέγεηαη ημ i επηιέγεηαη ημ i 97

Πμ πνόβιεμα ημο Οαθηδίμο: από θάης πνμξ ηα πάκς Οαθίδημ. Γέμηζμα εκόξ n-επί-w πίκαθα. Είζνδνο: n, W, w 1,,w N, v 1,,v N for w = 0 to W M[0, w] = 0 for i = 1 to n for w = 1 to W if (w i > w) M[i, w] = M[i-1, w] else M[i, w] = max {M[i-1, w], v i + M[i-1, w-w i ]} return M[n, W] 98

Γοζογνάμμηζε Αθμιμοζίαξ

Γοζογνάμμηζε Αθμιμοζίαξ Γθανμμγέξ. Βάζε γηα πνμγνάμμαηα «diff». Ακαγκώνηζε μμηιίαξ. Ρπμιμγηζηηθή βημιμγία. (δόμεζε μμνίςκ πνςηεσκώκ DNA: γνάμμαηα = πνςμμζώμαηα) Γοζογνάμμηζε Αθμιμοζίαξ. [Levenshtein 1966, Needleman-Wunsch 1970] Νμηκή πάζμαημξ, δ > 0 Ηόζημξ με-ηαύηηζεξ, α pq Ηόζημξ = άζνμηζμα ημο θόζημοξ πάζμαημξ θαη θόζημοξ με-ηαύηηζεξ. C T G A C C T A C C T - C T G A C C T A C C T C C T G A C T A C A T C C T G A C - T A C A T TC + GT + AG + 2 CA 2 + CA 100

Γοζογνάμμηζε Αθμιμοζίαξ Οηόπμξ: Δεδμμέκμο δομ ζομβμιμζεηνώκ X = x 1 x 2... x m θαη Y = y 1 y 2... y n εύνεζε εοζογνάμμηζεξ ειάπηζημο θόζημοξ. Μνηζμόξ. Ιηα εοζογνάμμηζε M είκαη έκα ζύκμιμ δηαηεηαγμέκςκ δεογώκ έηζη ώζηε θάζε ζύμβμιμ κα εμθακίδεηαη ζε < 1 δεύγμξ πςνίξ δηαζηαονμύμεκα δεύγε. Μνηζμόξ. Πμ δεύγμξ x i -y j θαη x i' -y j' δηαζηαονώκμκηαη ακ i < i', αιιά j > j'. πςνίξ ηαίνη πςνίξ ηαίνη x 1 x 2 x 3 x 4 x 5 x 6 Ν.π.: CTACCG vs. TACATG. Θύζε: M = x 2 -y 1, x 3 -y 2, x 4 -y 3, x 5 -y 4, x 6 -y 6. C T A C C - - T A C A T G G y 1 y 2 y 3 y 4 y 5 y 6 101

Γοζογνάμμηζε Αθμιμοζίαξ: Δμμή ημο Ννμβιήμαημξ Μνηζμόξ. OPT(i, j) = min θόζημξ εοζογνάμμηζεξ x 1 x 2... x i θαη y 1 y 2... y j. 1 ε Νενίπηςζε: OPT ηαηνηάδεη x i -y j. πιήνςζε θόζημξ ηαύηηζεξ γηα x i -y j + min θόζημξ εοζογνάμμηζεξ ηςκ x 1 x 2... x i-1 θαη y 1 y 2... y j-1 2 α Νενίπηςζε: OPT αθήκεη ημ x i αηαίνηαζημ. πιήνςζε ημ πάζμα γηα ημ x i + min θόζημξ εοζογνάμμηζεξ x 1 x 2... x i-1 θαη y 1 y 2... y j 2 β Νενίπηςζε : OPT αθήκεη ημ y j αηαίνηαζημ. πιήνςζε ημ πάζμα γηα ημ y j + min θόζημξ εοζογνάμμηζεξ x 1 x 2... x i θαη y 1 y 2... y j-1 OPT(i, j) j if i 0 xi y j OPT(i 1, j 1) min OPT(i 1, j) otherwise OPT(i, j 1) i if j 0 102

Γοζογνάμμηζε Αθμιμοζίαξ: Αιγόνηζμμξ Sequence-Alignment(m, n, x 1 x 2...x m, y 1 y 2...y n,, ) { for i = 0 to m M[i, 0] = i for j = 0 to n M[0, j] = j } for i = 1 to m for j = 1 to n M[i, j] = min([x i, y j ] + M[i-1, j-1], + M[i-1, j], + M[i, j-1]) return M[m, n] Ακάιοζε. Θ(mn) πνόκμ θαη πώνμ (ιόγς ημο πίκαθα). Οοκήζςξ ζε ιέλεηξ ή πνμηάζεηξ: m, n 10. Ρπμιμγηζηηθή Βημιμγία: m = n = 100,000. 10 δηζ πνάλεηξ είκαη OK, αιιά 10GB πίκαθαξ; 103

Οοκημμόηενα Δηαδνμμέξ Λακά;

Οοκημμόηενεξ Δηαδνμμέξ Ννόβιεμα Οοκημμόηενςκ Δηαδνμμώκ. Δεδμμέκμο εκόξ θαηεοζοκόμεκμο γναθήμαημξ G = (V, E), με βάνε αθμώκ c vw, βνεξ ηε ζοκημμόηενε δηαδνμμή από ημκ θόμβμs πνμξ ημκ θόμβμ t. επηηνέπμομε ανκεηηθά βάνε (ζε ακηίζεζε με ημκ αιγόνηζμμ Dijkstra) Ν.π. Μη θόμβμη ακαπανηζημύκ πνάθημνεξ ζε μηα πνεμαηηζηενηαθή δηάνζνςζε θαη c vw είκαη ημ θόζημξ ζοκαιιαγήξ αγμνάδμκηαξ από ημκ πνάθημνα v θαη πμοιώκηαξ ζημκ w. (ανκεηηθά βάνε = θένδμξ ζοκαιιαγώκ) s 9 6 2 6 10 18-16 6 3 15-8 20 30 5 11 16 4 6 19 7 44 t 105

Οοκημμόηενεξ Δηαδνμμέξ: απμηοπεμέκεξ πνμζπάζεηεξ Dijkstra. Ιπμνεί κα απμηύπεη ακ οπάνπμοκ ανκεηηθά βάνε. 2 u 3 s v 1 t -6 Γπακαθμζημιόγεζε. Ννόζζεζε ζηαζενάξ ζε θάζε αθμή απμηογπάκεη. 5 5 2 2 s 6 3 0-3 6 3 t 106

Οοκημμόηενεξ Δηαδνμμέξ: Ανκεηηθμύ θόζημοξ θύθιμη Ανκεηηθόξ θύθιμξ. -6-4 7 Ναναηήνεζε. Ακ θάπμηα δηαδνμμή από s ζημ t έπεη ανκεηηθό θύθιμ, ηόηε δεκ οπάνπεη ζοκημμόηενε δηαδνμμή. Δηαθμνεηηθά, οπάνπεη δηαδνμμή πςνίξ επακαιαμβακόμεκεξ θμνοθέξ (απιή). s W t c(w) < 0 107

Οοκημμόηενεξ Δηαδνμμέξ: Δοκαμηθόξ Ννμγναμμαηηζμόξ Μνηζμόξ. OPT(i, v) = μήθμξ ζοκημμόη. v-t δηαδνμμήξ P με ημ πμιύ i αθμέξ. 1 ε Νενίπηςζε: P πνεζημμπμηεί ημ πμιύ i-1 αθμέξ. OPT(i, v) = OPT(i-1, v) 2 ε Νενίπηςζε: P πνεζημμπμηεί αθνηβώξ i αθμέξ. Ακ (v, w) ε πνώηε αθμή, ηόηε ημ OPT πνεζημμπμηεί ηεκ (v, w), θαη μεηά επηιέγεη ηε βέιηηζηε w-t δηαδνμμή με ημ πμιύ i-1 αθμέξ OPT(i, v) 0 if i 0 minopt(i 1, v), min OPT(i 1, w) c vw otherwise (v, w) E Ναναηήνεζε. Από ηα πνμεγμύμεκα, ακ δεκ οπάνπμοκ ανκεηηθμί θύθιμη, OPT(n-1, v) = μήθμξ ηεξ ζοκημμόηενεξ v-t δηαδνμμήξ. 108

Οοκημμόηενεξ Δηαδνμμέξ: Ριμπμίεζε Shortest-Path(G, t) { foreach node v V { M[0, v] p[0, v] } M[0, t] 0 } for i = 1 to n-1 { foreach node v V { M[i, v] M[i-1, v] foreach edge (v, w) E if (M[i,v] > M[i-1,w] + c vw ) { M[i,v] M[i-1,w] + c vw p[i,v] w } } } Ακάιοζε. Θ(mn) πνόκμξ, Θ(n 2 ) πώνμξ. 109

Ανκεηηθμί Ηύθιμη ζε Γναθήμαηα

Γύνεζε ανκεηηθώκ θύθιςκ Θήμμα. Ακ OPT(n,v) = OPT(n-1,v) γηα θάζε v, ηόηε δεκ οπάνπμοκ ανκεηηθμί θύθιμη. Απόδεηλε. Μνζόηεηα ημο Βellman-Ford αιγμνίζμμο. Θήμμα. Ακ OPT(n,v) < OPT(n-1,v) γηα θάπμημ v, ηόηε (θάζε) ζοκημμόηενε δηαδνμμή από v ζημ t πενηέπεη έκα θύθιμ W. Γπηπιέμκ, W ανκεηηθόξ θύθιμξ. Απόδεηλε. (με άημπμ) Γπεηδή OPT(n,v) < OPT(n-1,v), γκςνίδμομε όηη P έπεη αθνηβώξ n αθμέξ. Ε δηαδνμμή P πνέπεη κα έπεη θαηεοζοκόμεκμ θύθιμ W. Δηαγνάθμκηαξ ημ W έπμομε μηα v-t δηαδνμμή με < n αθμέξ W έπεη ανκεηηθό βάνμξ. v W t c(w) < 0 111

Γύνεζε ανκεηηθώκ θύθιςκ Θεώνεμα. Ε εύνεζε ανκεηηθώκ θύθιςκ μπμνεί κα γίκεη ζε O(mn) πνόκμ. Ννόζζεζε κέμ θόμβμ t κα εκώκεηαη με όιμοξ ημοξ θόμβμοξ με 0 βάνμξ. Πνέλε ημκ αιγόνηζμμ Bellman-Ford Έιεγλε ακ OPT(n, v) = OPT(n-1, v) γηα θάζε θόμβμ v. Ακ καη, ηόηε δεκ οπάνπεη ανκεηηθόξ θύθιμξ Ακ όπη, ηόηε ζεμείςζε ημκ θύθιμ από ηε ζοκημμόηενε v-t δηαδνμμή t 0 0 0 0 0 18 2 6 5-23 -15 v -11 112

Γύνεζε ανκεηηθώκ θύθιςκ: Ούκμρε Bellman-Ford. O(mn) πνόκμξ, O(m + n) πώνμξ. Γθηέιεζε Bellman-Ford γηα n επακαιήρεηξ (ακηί γηα n-1, ιόγς ημο t). Ηαηά ημκ ηενμαηηζμό, ε ζοκάνηεζε πνμθαηόπςκ θαηά Bellman-Ford ακηπκεύεη έκακ ανκεηηθό θύθιμ ακ οπάνπεη. 113

Άζθεζε Δοκαμηθμύ Ννμγναμμαηηζμμύ Ηαηαζθεοή δηαθεμηζηηθώκ πηκαθίδςκ. Θέιμομε κα ημπμζεηήζμομε δηαθεμηζηηθέξ πηκαθίδεξ ζηεκ «Γγκαηία Μδό» πμο έπεη Ι πηιηόμεηνα. Μη δοκαηέξ ημπμζεζίεξ δίκμκηαη από x 1, x 2,, x n με x i [0, M]. Ακ ημπμζεηήζμομε ηεκ πηκαθίδα x i ζα έπμομε έζμδα r i > 0. Ρπμονγείμ μεηαθμνώκ: δεκ επηηνέπμκηαη δύμ πηκαθίδεξ ζε απόζηαζε < 5 πιμ. Θέιμομε κα ημπμζεηήζμομε ηηξ πηκαθίδεξ μεγηζημπμηώκηαξ ημ θένδμξ. Νανάδεηγμα. M = 20 πηκaθίδεξ i ημπμζεζίεξ x i έζμδα r i Βέιηηζηεξ ζέζεηξ: {x 1, x 3 } = 10 1 2 3 6 12 5 7 6 5 4 14 1 114

Άζθεζε Δοκαμηθμύ Ννμγναμμαηηζμμύ Ηαηαζθεοή δηαθεμηζηηθώκ πηκαθίδςκ. Θέιμομε κα ημπμζεηήζμομε δηαθεμηζηηθέξ πηκαθίδεξ ζηεκ «Γγκαηία Μδό» πμο έπεη Ι πηιηόμεηνα. Μη δοκαηέξ ημπμζεζίεξ δίκμκηαη από x 1, x 2,, x n με x i [0, M]. Ακ ημπμζεηήζμομε ηεκ πηκαθίδα x i ζα έπμομε έζμδα r i > 0. Ρπμονγείμ μεηαθμνώκ: δεκ επηηνέπμκηαη δύμ πηκαθίδεξ ζε απόζηαζε < 5 πιμ. Θέιμομε κα ημπμζεηήζμομε ηηξ πηκαθίδεξ μεγηζημπμηώκηαξ ημ θένδμξ. Αξ θμηηάλμομε ημ ηέιμξ ηεξ ιύζεξ: x 1, x 2,, x n 1 ε Νενίπηςζε: ε πηκαθίδα x n δεκ οπάνπεη ζηε ιύζε. Άνα ε ιύζε δίκεηαη από ηηξ πηκαθίδεξ x 1, x 2,, x n-1 2 ε Νενίπηςζε: ε πηκαθίδα x n ακήθεη ζηε ιύζε. S = δηαγνάθμομε ηεκ x n μαδί με ηηξ πηκαθίδεξ ζε απόζηαζε -5 Άνα ε ιύζε δίκεηαη από ημ r n + ιύζε ζημ S 115

Άζθεζε Δοκαμηθμύ Ννμγναμμαηηζμμύ Ηαηαζθεοή δηαθεμηζηηθώκ πηκαθίδςκ. Θέιμομε κα ημπμζεηήζμομε δηαθεμηζηηθέξ πηκαθίδεξ ζηεκ «Γγκαηία Μδό» πμο έπεη Ι πηιηόμεηνα. Μη δοκαηέξ ημπμζεζίεξ δίκμκηαη από x 1, x 2,, x n με x i [0, M]. Ακ ημπμζεηήζμομε ηεκ πηκαθίδα x i ζα έπμομε έζμδα r i > 0. Ρπμονγείμ μεηαθμνώκ: δεκ επηηνέπμκηαη δύμ πηκαθίδεξ ζε απόζηαζε < 5 πιμ. Θέιμομε κα ημπμζεηήζμομε ηηξ πηκαθίδεξ μεγηζημπμηώκηαξ ημ θένδμξ. Μνηζμόξ: OPT(j) = βέιηηζηεξ ημπμζεζίεξ μεηαλύ ηςκ πηκαθίδςκ x 1, x 2,, x j e(j) = ε πνώηε πνμξ ηα δεληά ημπμζεζία πμο απέπεη > 5 πιμ 1 ε Νενίπηςζε: j OPT(j). OPT(j) = OPT(j-1) 2 ε Νενίπηςζε: j OPT(j), x 1, x 2,, x e(j) έγθονεξ, x e(j)+1,, x j-1 με-έγθονεξ OPT(j) = r j + OPT( e(j) ) 116

Άζθεζε Δοκαμηθμύ Ννμγναμμαηηζμμύ Ηαηαζθεοή δηαθεμηζηηθώκ πηκαθίδςκ. Θέιμομε κα ημπμζεηήζμομε δηαθεμηζηηθέξ πηκαθίδεξ ζηεκ «Γγκαηία Μδό» πμο έπεη Ι πηιηόμεηνα. Μη δοκαηέξ ημπμζεζίεξ δίκμκηαη από x 1, x 2,, x n με x i [0, M]. Ακ ημπμζεηήζμομε ηεκ πηκαθίδα x i ζα έπμομε έζμδα r i > 0. Ρπμονγείμ μεηαθμνώκ: δεκ επηηνέπμκηαη δύμ πηκαθίδεξ ζε απόζηαζε < 5 πιμ. Θέιμομε κα ημπμζεηήζμομε ηηξ πηκαθίδεξ μεγηζημπμηώκηαξ ημ θένδμξ. Μνηζμόξ: OPT(j) = βέιηηζηεξ ημπμζεζίεξ μεηαλύ ηςκ πηκαθίδςκ x 1, x 2,, x j e(j) = ε πνώηε πνμξ ηα δεληά ημπμζεζία πμο απέπεη > 5 πιμ 117

Άζθεζε Δοκαμηθμύ Ννμγναμμαηηζμμύ Ηαηαζθεοή δηαθεμηζηηθώκ πηκαθίδςκ. Θέιμομε κα ημπμζεηήζμομε δηαθεμηζηηθέξ πηκαθίδεξ ζηεκ «Γγκαηία Μδό» πμο έπεη Ι πηιηόμεηνα. Μη δοκαηέξ ημπμζεζίεξ δίκμκηαη από x 1, x 2,, x n με x i [0, M]. Ακ ημπμζεηήζμομε ηεκ πηκαθίδα x i ζα έπμομε έζμδα r i > 0. Ρπμονγείμ μεηαθμνώκ: δεκ επηηνέπμκηαη δύμ πηκαθίδεξ ζε απόζηαζε < 5 πιμ. Θέιμομε κα ημπμζεηήζμομε ηηξ πηκαθίδεξ μεγηζημπμηώκηαξ ημ θένδμξ. Pinakides(x 1,x 2,,x n,r 1,r 2,,r n ) { M[1] r 1 for j = 1 to n Υπνιόγηζε ηo e[j] } for j = 2 to n M[j] max{ r j + M[ e[j] ], M[j-1] } return M[n] Οοκμιηθόξ νόκμξ: O(n) Ιπμνμύμε κα επεθηείκμομε γηα ηεκ εύνεζε ημο ζοκόιμο (όπη μόκμ γηα ηεκ ηημή Ι[n]) Ρπμιμγηζμόξ e(j): x j = x j 5 Οογπςκεύμομε ηηξ αθμιμοζίεξ x θαη x ζε μηα ηαληκμμεμέκε Ρ Μ(n) Οηε Ρ: από x j έςξ x j δεκ ζομμεηέπμοκ ζηεκ επηιμγή ημο x j 118

Πνόπμξ Γλέηαζεξ θαη Αζθήζεηξ Γναπηέξ Γνγαζίεξ Θα ακαθμηκςζμύκ 2 Γναπηέξ Γνγαζίεξ Ηάζε Γνγαζία έπεη βάνμξ 10% ημο ηειηθμύ βαζμμύ έςξ 2 άημμα απαραίτητη πνμθμνηθή πανμοζίαζε με επηπιέμκ βάνμξ 5% Αοζηενέξ Εμενμμεκίεξ Ακάνηεζεξ θαη Νανάδμζεξ ~ 2 εβδμμάδεξ γηα ηεκ μιμθιήνςζε Πειηθή Γλέηαζε νήζε πεηνόγναθμο θύιιμο Α4 (2 ζει.) με ό,ηη πιενμθμνία ζέιεηε Πμ θύιιμ ημ παναδίδεηαη μαδί με ημ γναπηό ζαξ. Βάνμξ 70% ημο ηειηθμύ βαζμμύ Πειηθόξ Βαζμόξ = 10% ΓΓ1 + 5% ΓΓ1 + 10%ΓΓ2 + 5%ΓΓ2 + 70% ΠΓ + @lgofights 119

Ηαιή Ιειέηε!!

Ανοικτά Ακαδημαϊκά Μαθήματα Πανεπιστήμιο Ιωαννίνων Τέλος Ενότητας

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Ιωαννίνων» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Σημειώματα Σημείωμα Αναφοράς 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/.