(20 ο ) ΣΤΑΔΙΑΚΕΣ ΚΑΤΑΣΚΕΥΕΣ Ι: ΑΠΛΗΣΤΟΙ ΑΛΓΟΡΙΘΜΟΙ

Σχετικά έγγραφα
Οι γέφυρες του ποταμού... Pregel (Konigsberg)

Αποδεικτικές Διαδικασίες και Μαθηματική Επαγωγή.

HY 280. θεμελιακές έννοιες της επιστήμης του υπολογισμού ΑΣΚΗΣΕΙΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ. Γεώργιος Φρ.

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ

Ας υποθέσουμε ότι ο παίκτης Ι διαλέγει πρώτος την τυχαιοποιημένη στρατηγική (x 1, x 2 ), x 1, x2 0,

(3 ο ) Εξαντλητική αναζήτηση I: μεταθέσεις & υποσύνολα (4 o ) Εξαντλητική αναζήτηση II: συνδυασμοί, διατάξεις & διαμερίσεις

21/11/2005 Διακριτά Μαθηματικά. Γραφήματα ΒΑΣΙΚΗ ΟΡΟΛΟΓΙΑ : ΜΟΝΟΠΑΤΙΑ ΚΑΙ ΚΥΚΛΟΙ Δ Ι. Γεώργιος Βούρος Πανεπιστήμιο Αιγαίου

{ i f i == 0 and p > 0

(13 ο ) ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙII: «βέλτιστο στατικό ευρετήριο»

Δ Ι Α Κ Ρ Ι Τ Α Μ Α Θ Η Μ Α Τ Ι Κ Α. 1η σειρά ασκήσεων

Εισαγωγικά. 1.1 Η σ-αλγεβρα ως πληροφορία

(7 ο ) ΔΙΑΙΡΕΙ & ΒΑΣΙΛΕΥΕ Ι: «ταξινόμηση» (8 ο ) ΔΙΑΙΡΕΙ & ΒΑΣΙΛΕΥΕ ΙΙ: «κυρτό περίβλημα»

( μ, λ ) ( i ) ( ii ) ( iii ) ( iv ) ( v )

Έννοια. Η αποδοχή της κληρονομίας αποτελεί δικαίωμα του κληρονόμου, άρα δεν

Ταξινόμηση των μοντέλων διασποράς ατμοσφαιρικών ρύπων βασισμένη σε μαθηματικά κριτήρια.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Εαρινό Εξάμηνο

ΑΣΕΠ 2000 ΑΣΕΠ 2000 Εμπορική Τράπεζα 1983 Υπουργείο Κοιν. Υπηρ. 1983

«ΔΙΑΚΡΙΤΑ ΜΑΘΗΜΑΤΙΚΑ»

ΣΤΟ ΙΑΤΡΕΙΟ. Με την πιστοποίηση του αποκτά πρόσβαση στο περιβάλλον του ιατρού που παρέχει η εφαρμογή.

ΣΤΟ ΦΑΡΜΑΚΕΙΟ. Με την πιστοποίηση του έχει πρόσβαση στο περιβάλλον του φαρμακείου που παρέχει η εφαρμογή.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Εαρινό Εξάμηνο

(1 ο ) Γιατί «αλγόριθμοι» (υποχρεωτικά);

Π. ΚΡΗΤΗΣ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΗΥ 380, «ΑΛΓΟΡΙΘΜΟΙ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ» Φ 06: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΔΟΜΕΝΩΝ

Αναγνώριση Προτύπων. Σημερινό Μάθημα

Π. ΚΡΗΤΗΣ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΗΥ 380, «ΑΛΓΟΡΙΘΜΟΙ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ» Φ 01: ΕΞΑΝΤΛΗΤΙΚΗ ΑΝΑΖΗΤΗΣΗ

Εξαναγκασμένες ταλαντώσεις, Ιδιοτιμές με πολλαπλότητα, Εκθετικά πινάκων. 9 Απριλίου 2013, Βόλος

Αναγνώριση Προτύπων. Σήμερα! Λόγος Πιθανοφάνειας Πιθανότητα Λάθους Κόστος Ρίσκο Bayes Ελάχιστη πιθανότητα λάθους για πολλές κλάσεις

Συναρτήσεις. Σημερινό μάθημα

ΜΑΘΗΜΑ: ΕΜΠΟΡΙΚΟ ΔΙΚΑΙΟ

G περιέχει τουλάχιστον μία ακμή στο S. spanning tree στο γράφημα G.

Επίλυση ειδικών μορφών ΣΔΕ

Π. ΚΡΗΤΗΣ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΗΥ 380, «ΑΛΓΟΡΙΘΜΟΙ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ» Φ 07: ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Ευρωπαϊκά παράγωγα Ευρωπαϊκά δικαιώματα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Εαρινό Εξάμηνο

(14 ο,15 ο,16 ο ) ΟΡΘΟΤΗΤΑ ΕΝΟΣ ΑΛΓΟΡΙΘΜΟΥ: ΕΝΟΤΗΤΑ Ι ΙΙ ΙΙΙ

ΜΙΚΡΟΟΙΚΟΝΟΜΙΚΗ Η ΚΑΤΑΝΑΛΩΤΙΚΗ ΑΠΟΦΑΣΗ. Άσκηση με θέμα τη μεγιστοποίηση της χρησιμότητας του καταναλωτή

CSE.UOI : Μεταπτυχιακό Μάθημα

(5 ο ) Η «πλοκή» ενός αλγορίθμου: η βάση μιας αξιολόγησης Ι (6 ο ) Η «πλοκή» ενός αλγορίθμου: ο Ο Ω Θ συμβολισμός ΙΙ

Ημέρα 3 η. (α) Aπό την εργασιακή διαδικασία στη διαδικασία παραγωγής (β) Αξία του προϊόντος και αξία της εργασιακής δύναμης

( ιμερείς) ΙΜΕΛΕΙΣ ΣΧΕΣΕΙΣ Α Β «απεικονίσεις»

( ) Π. ΚΡΗΤΗΣ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΗΥ 380, «ΑΛΓΟΡΙΘΜΟΙ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ» Φ 03: ΑΣΥΜΠΤΩΤΙΚΕΣ ΕΚΦΡΑΣΕΙΣ

Φροντιστήριο 2: Ανάλυση Αλγόριθμου. Νικόλας Νικολάου ΕΠΛ432: Κατανεμημένοι Αλγόριθμοι 1 / 10

Μονάδες α. Να γράψετε στο τετράδιό σας τον παρακάτω πίνακα σωστά συµπληρωµένο.

ΠΑΝΕΠΙΣΤΗΜΙΑΚΑ ΦΡΟΝΤΙΣΤΗΡΙΑ ΚΟΛΛΙΝΤΖΑ ΜΑΘΗΜΑ: ΟΙΚΟΝΟΜΙΚΗ ΘΕΩΡΙΑ

Το κράτος είναι φτιαγμένο για τον άνθρωπο και όχι ο άνθρωπος για το κράτος. A. Einstein Πηγή:

Pointers. Σημερινό Μάθημα! Χρήση pointer Τελεστής * Τελεστής & Γενικοί δείκτες Ανάκληση Δέσμευση μνήμης new / delete Pointer σε αντικείμενο 2

(19 ο ) ΚΛΑΣΜΑΤΙΚΗ ΑΝΑΓΩΓΗ IΙΙ: «εντοπισμός σημείου σε τριγωνοποίηση»

Τρίτη, 05 Ιουνίου 2001 ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ Γ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΣΧΟΛΙΚΟ ΕΤΟΣ ΕΥΘΥΓΡΑΜΜΗ ΟΜΑΛΗ ΚΙΝΗΣΗ ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΕΞΕΤΑΣΗ ΣΤΗ ΦΥΣΙΚΗ A ΛΥΚΕΙΟΥ. Ονοματεπώνυμο Τμήμα

ΜΑΘΗΜΑ: ΟΙΚΟΝΟΜΙΚΗ ΘΕΩΡΙΑ

23/2/07 Sleep out Πλατεία Κλαυθμώνος

ΤΑΞΙΝΟΜΗΣΗ ΟΡΓΑΝΙΣΜΩΝ

Η ανισότητα α β α±β α + β με α, β C και η χρήση της στην εύρεση ακροτάτων.

Επίλυση δικτύων διανομής

ΔΙΚΑΙΩΜΑΤΑ ΠΡΟΣΟΡΜΙΣΗΣ, ΠΑΡΑΒΟΛΗΣ, ΠΡΥΜΝΟΔΕΤΗΣΗΣ ΚΑΙ ΕΛΛΙΜΕΝΙΣΜΟΥ ΣΚΑΦΩΝ ΣΕ ΘΑΛΑΣΣΙΕΣ ΠΕΡΙΟΧΕΣ. (ΛΙΜΑΝΙΑ κ.λπ.) ΤΟΠΙΚΗΣ ΑΡΜΟΔΙΟΤΗΤΑΣ ΛΙΜΕΝΙΚΩΝ

5.1 Μετρήσιμες συναρτήσεις

ΣΥΝΟΛΑ (προσέξτε τα κοινά χαρακτηριστικά των παρακάτω προτάσεων) Οι άνθρωποι που σπουδάζουν ΤΠ&ΕΣ και βρίσκονται στην αίθουσα

HY 280. θεμελιακές έννοιες της επιστήμης του υπολογισμού ΑΣΚΗΣΕΙΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ. Γεώργιος Φρ.

ΤΑ ΜΙΚΡΑ ΒΗΜΑΤΑ ΤΗΣ ΘΕΡΑΠΕΥΤΙΚΗΣ ΔΙΑΔΙΚΑΣΙΑΣ: ΠΩΣ ΕΡΧΟΝΤΑΙ ΚΑΙ ΠΩΣ ΜΠΟΡΟΥΜΕ ΝΑ ΒΟΗΘΗΣΟΥΜΕ ΓΙΑ ΝΑ ΕΡΘΟΥΝ

ΑΡΧΑΙΑ ΕΛΛΗΝΙΚΑ 2014 ΕΝΔΕΙΚΤΙΚΕΣ ΑΠΑΝΤΗΣΕΙΣ

Συναρτήσεις & Κλάσεις

Ring Routing and Wavelength Conversion. Γιώργος Ζώης

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

Εστω X σύνολο και A μια σ-άλγεβρα στο X. Ονομάζουμε το ζεύγος (X, A) μετρήσιμο χώρο.

Σχέσεις και ιδιότητές τους

HY 280. θεμελιακές έννοιες της επιστήμης του υπολογισμού ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ. Γεώργιος Φρ. Γεωργακόπουλος.

Αναγνώριση Προτύπων. Σημερινό Μάθημα

Ημέρα 4 η (α) Αγορά και πώληση της εργασιακής δύναμης. (β) Η απόλυτη υπεραξία. Αγορά και πώληση της εργασιακής δύναμης

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Β ΤΑΞΗ ΚΕΙΜΕΝΟ. Πέµπτη 19 Νοεµβρίου Αγαπητή Κίττυ,

Κληρονομικότητα. Σήμερα! Κλάση Βάσης Παράγωγη κλάση Απλή κληρονομικότητα Protected δεδομένα Constructors & Destructors overloading

ΘΕΜΑ: Aποτελεσματικότητα της νομισματικής και δημοσιονομικής πολιτικής σε μια ανοικτή οικονομία

Μαθηματικά Πληροφορικής

Προτεινόμενα θέματα στο μάθημα. Αρχές Οικονομικής Θεωρίας ΟΜΑΔΑ Α. Στις προτάσεις από Α.1. μέχρι και Α10 να γράψετε στο τετράδιό σας τον αριθμό της

ΠΑΝΕΠΙΣΤΗΜΙΑΚΑ ΦΡΟΝΤΙΣΤΗΡΙΑ ΚΟΛΛΙΝΤΖΑ ΜΑΘΗΜΑ: ΕΡΩΤΗΣΕΙΣ ΟΙΚΟΝΟΜΙΚΗΣ ΘΕΩΡΙΑΣ

1. Σε περίπτωση κατά την οποία η τιμή ενός αγαθού μειωθεί κατά 2% και η ζητούμενη

Χαρτοφυλάκια και arbitrage

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Πρώτη Γραπτή Εργασία. Εισαγωγή στους υπολογιστές Μαθηματικά

- 1 - Ποιοι κερδίζουν από το εμπόριο αγαθών και υπηρεσιών; Γιατί η άμεση ανταλλαγή αγαθών, ορισμένες φορές, είναι δύσκολο να

ΜΑΘΗΜΑ: ΠΟΛΙΤΙΚΗ ΟΙΚΟΝΟΜΙΑ-ΔΗΜΟΣΙΑ ΟΙΚΟΝΟΜΙΚΗ

ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΡΧΕΣ ΟΙΚΟΝΟΜΙΚΗΣ ΘΕΩΡΙΑΣ ΜΑΘΗΜΑ ΕΠΙΛΟΓΗΣ Γ ΛΥΚΕΙΟΥ

Ανελίξεις σε συνεχή χρόνο

(23 ο ) ΣΤΑΔΙΑΚΕΣ ΚΑΤΑΣΚΕΥΕΣ ΙΙΙ: ΤΟΠΙΚΗ ΑΝΑΖΗΤΗΣΗ

Μητροπολιτικά Οπτικά Δίκτυα Εισαγωγή

602. Συναρτησιακή Ανάλυση. Υποδείξεις για τις Ασκήσεις

ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΤΡΙΤΗ 30 ΜΑΪΟΥ 2000 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ ΘΕΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ: ΧΗΜΕΙΑ ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΕΞΙ (6)

Η εξίσωση Black-Scholes

Αναγνώριση Προτύπων. Σημερινό Μάθημα

Περιεχόμενα. 3 Γεννήτριες συναρτήσεις Συνήθεις γεννήτριες συναρτήσεις Βασικές γεννήτριες συναρτήσεις

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Β ΤΑΞΗ. ΘΕΜΑ 1ο

Ο τύπος του Itô. f (s) ds (12.1) f (g(s)) dg(s). (12.2) t f (B s ) db s + 1 2

1. Εστω ότι A, B, C είναι γενικοί 2 2 πίνακες, δηλαδή, a 21 a, και ανάλογα για τους B, C. Υπολογίστε τους πίνακες (A B) C και A (B C) και

ΘΕΜΑΤΑ ΓΙΑ ΘΕΟΛΟΓΟΥΣ

(2 ο ) Από τα προβλήματα του κόσμου, στου κόσμου τα προβλήματα

ΘΕΜΑ: Διαφορές εσωτερικού εξωτερικού δανεισμού. Η διαχρονική κατανομή του βάρους από το δημόσιο δανεισμό.

Εφαρμογές στην κίνηση Brown

ΜΑΘΗΜΑ: ΒΙΟΛΟΓΙΑ ΟΜΑ Α ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ ΘΕΤΙΚ3Ν ΕΠΙΣΤΗΜ3Ν Γ ΛΥΚΕΙΟΥ

Κεφάλαιο 2.4: Τα βασικά στοιχεία ενός Επιχειρηματικού Σχεδίου (Business Plan) Μέσα από αυτό το κεφάλαιο φαίνεται ότι αφενός η σωστή δημιουργία και

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

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

17 Μαρτίου 2013, Βόλος

Transcript:

(20 ο ) ΣΤΑΔΙΑΚΕΣ ΚΑΤΑΣΚΕΥΕΣ Ι: ΑΠΛΗΣΤΟΙ ΑΛΓΟΡΙΘΜΟΙ Σταδιακές κατακευές: από μερικά αποτελέματα ε περιότερα. Το ημείο όπου έχουμε φθάει προφέρεται για μια μικρή ανακόπηη. Το κεπτικό μας ήταν εξ αρχής ότι δεν μπορούμε να λύουμε προβλήματα με αλγοριθμικό τρόπο παρά με το να ανάγουμε αυτά ε άλλα απλούτερα «υπο προβλήματα». Ως προς τούτο, δύο δρόμους έχουμε: είτε να χρηιμοποιήουμε υποπροβλήματα του ιδίου τύπου είτε διαφορετικού. Είδαμε τα προηγούμενα κεφάλαια μια ειρά τεχνικών που επιτρέπουν και οδηγούν την χεδίαη δρατικών αλγορίθμων χρηιμοποιώντας υποπροβλήματα του ιδίου τύπου. Στις τεχνικές αυτές η πρόοδος που προέκυπτε οφειλόταν την περιότερο ή λιγότερο δρατική μείωη του μεγέθους των δεδομένων. Θα δούμε τη υνέχεια μια ομάδα παρόμοιων μεταξύ τους τεχνικών, όπου χρηιμοποιούμε πάλι ιδίου τύπου προβλήματα, με διαφορετική όμως πηγή προόδου. Η τεχνική μας θα είναι η ταδιακή κατακευή μιας λύης. Αν θέλουμε να την εντάξουμε ε ένα ταξινομητικό χήμα θα μπορούαμε να πούμε πως εδώ η πρόοδος δεν προκύπτει επειδή διδονται λιγότερα δεδομένα, αλλά επειδή, κατά κάποια έννοια, δίδονται περιότερα από τα ζητούμενα: «ταδιακή κατακευή» θα ημαίνει για μας, ότι μαζί με τα δεδομένα μας δίδεται και μια «μερική» λύη το πρόβλημά μας και το ζήτημα είναι να βρεθεί μια «πληρέτερη» λύη, (κάτι που επαναλαμβανόμενο μας οδηγεί ταδιακά τη πλήρη λύη). αναγωγή ε υπο-προβλήματα του ιδίου τύπου αναδρομή (πρόοδος: αντιμετωπίζουμε λιγότερα δεδομένα) ταδιακές κατακευές (πρόοδος: γνωρίζουμε "περιότερα" ζητούμενα) διάπαη ε Θ(1) υποπροβλήματα χρήη πολλών υποπροβλημάτων αναγωγή ε "1" υποπρόβλημα S + = S {} + S > S + αξία( S ) > αξία( S) διαίρει & βαίλευε δυναμικός προγραμματιμός κλαματική αναγωγή «άπλητοι» αλγόριθμοι αυξητικές κατακευές τοπική αναζήτηη ε υπο-προβλήματα διαφορετικού τύπου ε "ένα" ε πολλά?? Αυτή η χέη «μερικό» «πληρέτερο» λαμβάνει τρείς κυρίως μορφές: Μας δίδεται ένα ύνολο S τοιχείων που αποτελούν μέρος της λύης, και ζητείται ένα ευρύτερο ύνολο S, που περιλαμβάνει όλα τα υπόλοιπα και ένα τουλάχιτον ακόμα. Η τεχνική αυτή ονομάζεται «άπλητη» τεχνική, (greedy technique), επειδή ό,τι επιλογές κάνει δεν τις αναιρεί. Μας δίδεται ένα ύνολο S τοιχείων που αποτελεί μερική λύη, και ζητείται ένα άλλο μεγαλύτερου μεγέθους S +, όχι κατ ανάγκη υπερύνολο του προηγουμένου. Η τεχνική αυτή ονομάζεται υχνά «αυξητική κατακευή» (incremental contruction). Μας δίδεται μια «λύη» και ένα μέτρο αξιολόγηη αυτής, αξία(s), και ζητείται μια άλλη «λύη» S + με μεγαλύτερη αξία(s + ). Επειδή ως καλύτερη λύη αναζητείται υνήθως μια «μικρή» τροποποίηη της προηγούμενης, η τεχνική αυτή ονομάζεται «τοπική αναζήτηη» (local earch). Θα δούμε τα επόμενα κεφάλαια μια ειρά παραδειγμάτων και για τις τρείς αυτές όψεις της ιδέας της ταδιακής κατακευής. Αρχίζουμε με ένα κλαικό, και «πανταχού παρόν» παράδειγμα ενός άπλητου αλγορίθμου. Πανεπιτήμιο Κρήτης Τμήμα Επιτήμης Υπολογιτών Γ.Φ. Γεωργακόπουλος ver: 17/5/2012 1

Το πρόβλημα των βραχύτερων υνδέεων «αφετηρίας» με «προοριμούς» Ένα ύνολο V «κόμβων» υνδέονται μεταξύ τους και κάθε ύνδεη έχει ένα μήκος (ή γενικότερα ένα κότος). Μας ενδιαφέρει πώς να υνδέουμε μια αφετηρία με όλους τους υπόλοιπους κόμβους κατά τον βραχύτερο (ή «οικονομικότερο» τρόπο). Με ποιές διαδρομές θα το επιτυγχάναμε; «ΟΜΟΑΦΕΤΗΡΙΑΚΕΣ ΒΡΑΧΥΤΕΡΕΣ ΔΙΑΔΡΟΜΕΣ» ΔΙΔΕΤΑΙ: (α) Ένα ύνολο V «κόμβων», και ένα ύνολο Ε V V «ακμών» μεταξύ τους (*). (β) ένα μήκος d(i, j) > 0 (ή «κότος») κάθε ακμής ύνδεης (i, j) Ε. (γ) ένας αφετηριακός κόμβος. ΖΗΤΕΙΤΑΙ: Ν = V διαδρομές γκ = κ, για κ = 1,..., Ν, με κοινή αφετηρία το, ΩΣΤΕ: το μήκος d(γκ) = dij (, ) να είναι το μικρότερο εξ όλων των διαδρομών κ. (, i j) γ κ (*) Οι ακμές (i, j) επιτρέπεται να έχουν κατεύθυνη, θεωρούνται δηλαδή ως διατεταγμένα ζεύγη Τί «χαρακτηριτικές ιδιότητες» θα έχει το ύνολο των βέλτιτων υνδέεων; Το πρόβλημα που αναλάβαμε μας ζητάει να κατακευάουμε ένα ύνολο αντικειμένων αν δεν αναλύουμε τις ιδιότητες που αυτό θα έχει δεν θα πρέπει να ελπίζουμε ε πολλά. (Κάτι τέτοιο θα ήταν αν να ζητούμε έναν ύποπτο για τον οποίο το μόνο που γνωρίζουμε είναι ότι έχει μαλλιά... : ) Τί, λοιπόν, δομικά χαρακτηριτικά περιμένουμε από το ύνολο των διαδρομών που αναζητούμε; Το 1 ο και εύκολο χαρακτηριτικό είναι ότι εάν μια διαδρομή u1 u2... uk un είναι η βραχύτερη από την αφετηρία προς τον κόμβο un, τότε ένα αρχικό τμήμα αυτή της διαδρομής (έως έναν ενδιάμεο κόμβο uk) θα είναι επίης η βέλτιτη διαδρομή έως αυτόν: διότι εάν μια άλλη διαδρομή γ: uk ήταν η βέλτιτη τότε ακολουθώντας αυτήν έως το uk και υνεχίζοντας όπως πριν, θα είχαμε μια διαδρομή έως τον κόμβο un καλύτερη από την βέλτιτη, και αυτό είναι άτοπο. u n βέλτιτη; x βέλτιτη γ? u 1 u k... επίης βέλτιτη... u 2 ε y i? j ε x y βέλτιτη Το 2 ο χαρακτηριτικό περιέχει το ίδιο κεπτικό: εάν έχουμε δύο βέλτιτες διαδρομές από την αφετηρία προς δύο προοριμούς x και y, x, y, αυτές θα έχουν ένα κοινό τμήμα (την αφετηρία τουλάχιτον!), και μετά από κάποιο κόμβο i θα χωρίζουν (κατ ανάγκην αφού x y!). Μετά τον χωριμό τους αυτές οι δύο διαδρομές δεν θα μπορούν πια να υναντηθούν εκ νέου ε κάποιο κόμβο j. Για την ακρίβεια δεν θα χρειάζεται να υναντηθούν, διότι οι 2 διαδρομές (βλ. χήμα) i εx x, και i εy y θα έπρέπε να είχαν ακριβώς το ίδιο μήκος, αλλιώς η βραχύτερη από αυτές θα βελτίωνε την διαδρομή που περιέχει την μακρύτερη από αυτές η βελτίωη όμως του ήδη βέλτιτου είναι αδύνατη. Εάν λοιπόν γνωρίζουμε τις βέλτιτες διαδρομές προς ένα ύνολο κόμβων, το ύνολο των ακμών από τις οποίες αποτελούνται (1 ον ) θα είναι υνδεδεμένο και (2 ον ) δεν θα εμφανίζει κύκλους, θα είναι δηλαδή ένα δένδρο προφανώς με ρίζα τον αφετηριακό κόμβο. Σε αυτό το ημείο αρχίζει να διαφαίνεται το γιατί θα μπορούαμε να ελπίουμε ε μια ταδιακή κατακευή της λύης του προβλήματός μας: Πανεπιτήμιο Κρήτης Τμήμα Επιτήμης Υπολογιτών Γ.Φ. Γεωργακόπουλος ver: 17/5/2012 2

«ΟΜΟΑΦΕΤΗΡΙΑΚΕΣ ΒΡΑΧΥΤΕΡΕΣ ΔΙΑΔΡΟΜΕΣ» ΔΕΝΔΡΙΚΗ ΕΚΔΟΧΗ ΔΙΔΕΤΑΙ: (Ό,τι την αρχική διατύπωη) και, ένα δένδρο Τ με ρίζα την αφετηρία, που δίδει τις βραχύτερες διαδρομές από την αφετηρία προς όλους τους υπόλοιπους κόμβους του. ΖΗΤΕΙΤΑΙ: Μια επαύξηη του Τ, δηλαδή μια πρόθετη ακμή (, π), Τ, π Τ, ΩΣΤΕ: η διαδρομή π, (εντός Τ υν ακμή (,π)), να είναι η βέλτιτη διαδρομή π. Θα υπάρχει πάντοτε μια τέτοια επαύξηη, και ποιά είναι αυτή; Από τί χαρακτηριτικά θα μπορούαμε να την αναγνωρίουμε αν όχι και να την κατακευάουμε; Ας δούμε το επόμενο χήμα ένα παράδειγμα της κατάταης που προκύπτει: Ένα ύνολο Σ κόμβων (κίτρινο χρώμα) έχει υνδεθεί κατά βέλτιτο τρόπο με την αφετηρία, μέω διαδρομών που χηματίζουν ένα δένδρο Τ (μαύρες ακμές) με ρίζα το. Τα μήκη των διαδρομών έως αυτούς είναι 12, 12+8, 9, 9+6 και 9+4. Ένα ύνολο Π κόμβων (φαιό χρώμα) παραμένουν ως προοριμοί αύνδετοι με την αφετηρία. Ένα ύνολο ακμών οι ερυθρές «γέφυρες», δηλαδή η τομή Ε (Σ Π) ) υνδέουν τους ήδη υνδεδεμένους κόμβους με (κάποιους από) τους υπόλοιπους προοριμούς. Αυτό που χρειαζόματε και αρκεί για να επαυξήουμε το δένδρο Τ είναι μια ακμή γέφυρα. Ποιά θα μπορούε να είναι η κατάλληλη; 12 8 6 γέφυρες Γ 18 D() = 15 Δ(, π) = 15 + 10 10 5 π 15 6 9 Τ 4 16 Σ 19 Δ(-, -) = 32 Π Ας προέξουμε εδώ ότι το δένδρο Τ μας δίδει την οριτική βέλτιτη απόταη D( ) των κόμβων του από την αφετηρία, π.χ. η βέλτιτη απόταη του κόμβου από το είναι 9+6 = 15. Κάθε γέφυρα μας προφέρει μια δυνατότητα πρόβαης ε κάποιο κόμβο, και υνεπώς μια πειραματική απόταη έως αυτόν π.χ. η γέφυρα (, π) μας προφέρει για τον κόμβο π την διαδρομή π (η βέλτιτη εντός του Τ και τη υνέχεια η ακμή (, π), και την «πειραματική» απόταη D() + d(,π) = 15+10 = 25. Αν αυτή η απόταη είναι η βέλτιτη από όλες τις διαδρομές π, τότε ΟΚ. Εάν όμως δεν είναι, τί υμπεραίνουμε; Και είναι εύλογο να ρωτήουμε «τί υμπεραίνουμε;» διότι εάν μια διαδρομή δεν είναι η βέλτιτη τότε κάτι πρόθετο υπάρχει (πληροφορία μη τετριμμένη την οποία πρέπει πάντοτε να εξετάζουμε): εδώ θα υπάρχει εκείνη η άλλη διαδρομή που είναι βραχύτερη (ή και βέλτιτη, φυικά). Εάν, λοιπόν, μια γέφυρα (, π) προφέρει για το άκρο προοριμό της π, μια πειραματική απόταη Δ(, π) που δεν είναι η οριτικά μικρότερη δυνατή, τότε μια άλλη διαδρομή γ: π, θα έχει καθαρά μικρότερο μήκος Dγ < Δ(,π) = D() + d(,π). Αυτή η διαδρομή έχει όμως αφετηρία το Σ, και καταλήγει το π Π, επομένως περιέχει έναν «τελευταίο» κόμβο το Σ, και αμέως μετά έναν «πρώτο» π το Π. Θα έχουμε δηλαδή μια ακμή γέφυρα (, π ), η οποία προφέρει για το άκρο π μια πειραματική απόταη Δ(, π ). Η απόταη αυτή είναι προφανώς μικρότερη από το μήκος της όλης διαδρομής γ, και το οποίο είναι καθαρά μικρότερο από την πειραματική απόταη Δ(, π), δηλαδή: Πανεπιτήμιο Κρήτης Τμήμα Επιτήμης Υπολογιτών Γ.Φ. Γεωργακόπουλος ver: 17/5/2012 3

Δ(, π ) Dγ < Δ(, π), δηλαδή: Δ(, π ) < Δ(, π). γέφυρες Γ D() Δ(, π) = D() + d(, π) π Σ ' D(' ) Δ(', π') = D( ) + d(', π') π' Π γ, D γ Τελειώαμε! Εάν η πειραματική απόταη που δίδει μια γέφυρα (, π) δεν είναι η οριτικά βέλτιτη, τότε αυτό υμβαίνει επειδή μια άλλη γέφυρα (, π ) δίδει καθαρά μικρότερη πειραματική απόταη (για το δικό της άκρο). Αυτό δεν μπορεί όμως να υμβαίνει διαρκώς: εάν λάβουμε την γέφυρα (*, π*) με την ελάχιτη πειραματική απόταη, τότε ως προς αυτήν δεν υπάρχει άλλη μικρότερη επομένως αυτή θα δίδει την οριτικά βέλτιτη απόταη για τον προοριμό της π*! Είματε λοιπόν ε θέη να επαυξήουμε το δένδρο που μας δίδεται, έτι ώτε να παρέχει την βέλτιτη διαδρομή για έναν ακόμα κόμβο: παράγουμε όλες τις ακμές γέφυρες ως προς το δεδομένο δένδρο, και χρηιμοποιούμε για την αύξηή του εκείνη την γέφυρα που δίδει την ελάχιτη πειραματική απόταη. Για να βρούμε τις βραχύτερες διαδρομές προς όλους τους κόμβους αρκεί να αρχίουμε από το τετριμμένο δένδρο με ένα κόμβο (την αφετηρία) και να επαναλάβουμε την προηγούμενη διαδικαία V 1 φορές. Δεν έχουμε παρά να γράψουμε τον χετικό ψευδοκώδικα και να εκτιμήουμε την χρονική πλοκή που εμφανίζει. Στο κώδικα που ακολουθεί μια γέφυρα παρίταται ως <(α,β), Δ>, όπου α είναι η αρχή της, β είναι το άκρο προοριμός, και Δ είναι η πειραματική απόταη που προφέρει. Αλγόριθμος «Ομοαφετηριακές βραχύτερες διαδρομές» (αρχική εκδοχή) Διαδικαία Διαδρομές( V: κόμβοι, E: ακμές, d: μήκη-ακμών, : αφετηρία) { // εναρκτήρια τιμοδότηη D[] 0 // οριτική απόταη αφετηρίας Π 0 V-{} // προοριμοί Σ 0 {} // αφετηρία T 0 // αρχικό δένδρο υνδέεων Γ 0 // αρχικές «γέφυρες» Για α=, β Π 0, (α,β) Ε { Δ d(α,β), Γ 0 Γ 0 + <(α,β),δ> } // ταδιακή «άπλητη» κατακευή k 0 Εφόον Π k { <(,π),δ> min{γ k } ως προς Δ // πληιέτερο π (ως προς Δ) D[π] Δ // οριτική απόταη π Π k+1 Π k - {π} // υπόλοιποι προοριμοί Σ k+1 Σ k + {π} // κόμβοι υνδετικού δένδρου T k+1 T k + (,π) // ακμές υνδετικού δένδρου Γ k+1 // επόμενες «γέφυρες» Για α Σ k+1, β Π k+1, (α,β) Ε { Δ D[α]+d(α,β), Γ k+1 Γ k+1 + <(α,β),δ> } k k+1 } } Πανεπιτήμιο Κρήτης Τμήμα Επιτήμης Υπολογιτών Γ.Φ. Γεωργακόπουλος ver: 17/5/2012 4

Η ανάλυη πλοκής δεν είναι δύκολη: αφού ε κάθε βήμα αυξάνουμε το ύνολο Σ των κόμβων που είναι βέλτιτα υνδεδεμένοι με την αφετηρία κατά +1, θα κάνουμε V 1 βήματα. Σε κάθε βήμα όμως εξετάζουμε όλες τις ακμές για να διαπιτώουμε ποιές είναι οι (τρέχουες) γέφυρες, και αυτό κοτίζει Ε βήματα. Το ύνολο Θ( V E ) δεν είναι όμως τη χειρότερη περίπτωη προτιμότερο από το κότος Θ(Ν 3 ) (όπου Ν= V ) που είχαμε βρεί για το πρόβλημα της διαδρομών «από όλα ε όλα» (βλ. κεφάλαιο...). Οι ακμές μπορεί να είναι Θ(Ν 2 ), και ο αλγόριθμός μας θα έχει τη χειρότερη περίπτωη κότος επίης Θ(Ν 3 ). Και ας προέξουμε ότι τον ίδιο χρόνο παράγει μόνον Ν, και όχι Ν 2, διαδρομές... Το φάλμα του παραπάνω κώδικα είναι ότι παράγει τις απαιτούμενες γέφυρες κάθε φορά εξ αρχής. Κάτι τέτοιο δεν είναι όμως απαραίτητο διότι η μεταβολή των γεφυρών Γk Γk+1 δεν οφείλεται παρά την μετακίνηη ενός κόμβου π από τους προοριμούς Π εντός του Σ: Σ Σ+π, Π Π π. Είναι εύλογο λοιπόν να προπαθήουμε να παράγουμε τις εκάτοτε γέφυρες ταδιακά, ενημερώνοντας το προηγούμενο ύνολο γεφυρών Γk ώτε να μας δίδει το επόμενο Γk+1. Στον ακόλουθο χήμα εμφαίνεται τί μεταβολή προκαλείται τις γέφυρες από την μετακίνηη του π από εκτός του Σ εντός αυτού: Σ α πρώην γέφυρες Γ D(π) = 25 5 π β νέες γέφυρες Γ' 15 6 Δ(π, β) = 30 Δ( _, β) = 32 Π Οι μόνες τροποποιήεις του Γk που χρειάζονται αφορούν ακμές ένα άκρο των οποίων είναι ο μετακινούμενος κόμβος π (το χήμα: ερυθρο κίτρινος): Διαγράφουμε από τις γέφυρες όες έχουν την μορφή (α, π) για α Σ (υνδεδεμένοι). Ειάγουμε τις γέφυρες όες ακμές έχουν την μορφή (π, β) για β Π (προοριμοί). (Οι γέφυρες αυτές παράγουν νέες πειραματικές αποτάεις ακόμα και για κόμβους που έχουν ήδη τέτοιες. Στο χήμα παράγονται οι αποτάεις 25+15, 25+6 και 25+5. Η τελευταία είναι καλύτερη από την ήδη υπάρχουα). Ο χετικός κώδικας ακολουθεί. Αλγόριθμος «Ομοαφετηριακές βραχύτερες διαδρομές» δυναμικές γέφυρες Διαδικαία Διαδρομές( V: κόμβοι, E: ακμές, d: μήκη-ακμών, : αφετηρία) { // εναρκτήρια τιμοδότηη... // ταδιακή «άπλητη» κατακευή k 0 Εφόον Π k { <(,π),δ) Ελάχιτο των Γ k ως προς Δ // πληιέτερο π D[π] Δ // οριτική απόταη π Π k+1 Π k - {π} // υπόλοιποι προοριμοί Σ k+1 Σ k + {π} // κόμβοι υνδετικού δένδρου T k+1 T k + (,π) // ακμές υνδετικού δένδρου Γ k+1 Γ k // επόμενες «γέφυρες» Για (α,π) Ε & α Σ k+1 { Διαγράφουμε <(α,π),_> από Γ k+1 } Για (π,β) Ε & β Π k+1 { Δ D[π]+d(π,β), Ειάγουμε <(π,β),δ> το Γ k+1 } k k+1 } } Πανεπιτήμιο Κρήτης Τμήμα Επιτήμης Υπολογιτών Γ.Φ. Γεωργακόπουλος ver: 17/5/2012 5

Αλλά και αυτή η εκδοχή επιδέχεται εύκολα βελτίωη υγκεκριμμένα δύο βελτιώεις, αρκετά χαρακτηριτικές και οι δύο: Έχει πλέον καταφανεί η φύη του υνόλου των γεφυρών: είναι ένα ύνολο τοιχείων το οποίο μεταβάλλεται δυναμικά, και επί του οποίου τίθεται επανειλημμένα το ίδιο ερώτημα, και υγκεκριμμένα «ποιό είναι το ελάχιτο τοιχείο;». Αυτή είναι η αρχετυπική περίπτωη μιας δομής δεδομένων και εδώ αναγνωρίζουμε την δομή που έχει ονοματεί ΟΥΡΑ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ: μια δομή επί της οποίας ορίζονται οι λειτουργίες INSERT (ειαγωγή), DELETE (διαγραφή) και MINIMUM (εντοπιμός ελαχίτου). Η λειτουργία διαγραφής είναι κατά κανόνα μια δαπανηρή λειτουργία τις δομές δεδομένων, και μπορεί να γίνει μόνον αφού εντοπίουμε το διαγραφόμενο τοιχείο εντός της δομής. Μπορούμε όμως να αναβάλουμε αυτόν τον εντοπιμό & διαγραφή. Η ιδέα αυτή, που έχει γενικότερη αλγοριθμική αξία, λέει: «ανάβαλε μια ενέργεια, αν αναμένονται ευνοϊκότερες υνθήκες μελλοντικά». Και εδώ, πράγματι, αρκεί να περιμένουμε έως ότου η υπό διαγραφή γέφυρα εντοπιτεί κάποια τιγμή ως η τρέχουα ελάχιτη. Ο χετικός κώδικας ακολουθεί. Ας προέξουμε εδώ τα εξής δύο: Η αναβολή των διαγραφών μας επιβάλλει όταν λαμβάνουμε μια γέφυρα (, π) από την ουρά να ελέγχουμε εάν ο προοριμός π είναι πράγματι «νέος» ή προκύπτει εξ αναβολής (και «έπρεπε» να είχε διαγραφεί προ καιρού). Ο έλεγχος αν κάποιος κόμβος ανήκει τους προοριμούς ή όχι, «π Π; / Π Π+π / Π Π π» πραγματοποιείται εύκολα εάν κρατείται απλά μια ημείωη «ναί όχι» για κάθε κόμβο που δηλώνει το εάν αυτός έχει ήδη ενταχθεί το υπό κατακευή δένδρο ή όχι. Αλγόριθμος «Ομοαφετηριακές βραχύτερες διαδρομές» δυναμικές γέφυρες, αναβλητικά Διαδικαία Διαδρομές( V: κόμβοι, E: ακμές, d: μήκη-ακμών, : αφετηρία) { // εναρκτήρια τιμοδότηη D[] 0 // οριτική απόταη αφετηρίας Π V-{} // προοριμοί Σ {} // αφετηρία T // αρχικό δένδρο υνδέεων Γ // αρχικές «γέφυρες» (για ) Για α=, β Π, (α,β) Ε { Δ d(α,β), Γ.INSERT(<(α,β),Δ>) } // ταδιακή «άπλητη» κατακευή Εφόον Π { <(,π),δ> Γ.MINIMUM // πληιέτερος π ως προς D[-] Γ.DELETE-MINIMUM // διαγραφή min γέφυρας προς π Εάν π Π τότε // προφέρει νέο κόμβο-προοριμό; { D[π] Δ // οριτική απόταη π Π Π - {π} // υπόλοιποι προοριμοί Σ Σ + {π} // κόμβοι υνδετικού δένδρου T T + (,π) // ακμές υνδετικού δένδρου // πρόθετες «γέφυρες» Για α=π, β Π, (α,β) Ε { Δ D[α]+d(α,β), Γ.INSERT(<(α,β),Δ>) } } } } Είναι αρκετά εύκολο να υλοποιηθεί μια τέτοια ΟΥΡΑ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ με επιδόεις Ο(logN), O(logN), O(1) για τις τρείς λειτουργίες INSERT, DELETE, MINIMUM αντιτοίχως. Στον παραπάνω κώδικα ο βρόχος «εφόον» επαναλαμβάνεται Ε φορές, διότι τόες ακμές γέφυρες θα ειαχθούν και (κάποια τιγμή) θα διαγραφούν, επομένως ο υνολικός λογαριαμός θα μας δώει πλοκή Θ( Ε log E ) = Θ( E log V ). Αυτή η πλοκή είναι O(N 2 logn), αρκετά μικρότερη από Θ(Ν 3 ) όπως επιδιώκαμε εξ αρχής. Μπορούμε και καλύτερα! αλλά αυτό το αφήνουμε για μια άλλη ευκαιρία. Πανεπιτήμιο Κρήτης Τμήμα Επιτήμης Υπολογιτών Γ.Φ. Γεωργακόπουλος ver: 17/5/2012 6