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

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

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

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

{ i f i == 0 and p > 0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αλγόριθμοι & Βελτιστοποίηση

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

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

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

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

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

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

Γενικό Λύκειο Μαραθοκάμπου Σάμου. Άλγεβρα Β λυκείου. 13 Οκτώβρη 2016

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

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

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

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

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

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

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

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

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

Martingales. 3.1 Ορισμός και παραδείγματα

Ανεξαρτησία Ανεξαρτησία για οικογένειες συνόλων και τυχαίες μεταβλητές

ΟΡΙΣΜΟΣ και ΚΑΤΑΜΕΤΡΗΣΗ ΘΕΜΕΛΙΑΚΩΝ ΣΥΝ ΥΑΣΤΙΚΩΝ ΜΟΡΦΩΝ

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

Αναλυτικές ιδιότητες

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

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

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

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

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

Ανεξαρτησία Ανεξαρτησία για οικογένειες συνόλων και τυχαίες μεταβλητές

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

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

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

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

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

2. Κατάθεσε κάποιος στην Εθνική Τράπεζα 4800 με επιτόκιο 3%. Μετά από πόσο χρόνο θα πάρει τόκο 60 ; α) 90 ημέρες β) 1,5 έτη γ) 5 μήνες δ) 24 μήνες

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

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

τους στην Κρυπτογραφία και τα

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

Αλγόριθμοι & Βελτιστοποίηση

Η εξίσωση Black-Scholes

Ο Ισχυρός Νόμος των Μεγάλων Αριθμών

Δήμος Σωτήριος Υ.Δ. Εργαστήριο Λογικής & Επιστήμης Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής & Υπολογιστών Σ.Η.Μ.Μ.Υ. Ε.Μ.Π.

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

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

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

2 Η ΠΑΓΚΥΠΡΙΑ ΟΛΥΜΠΙΑ Α ΦΥΣΙΚΗΣ Γ ΓΥΜΝΑΣΙΟΥ

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

Αφιερώνεται στους Μαθητές μας Άγγελος Βουλδής Γιώργος Παναγόπουλος Λευτέρης Μεντζελόπουλος

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

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

Κεφάλαιο Η εκθετική κατανομή. Η πυκνότητα πιθανότητας της εκθετικής κατανομής δίδεται από την σχέση (1.1) f(x) = 0 αν x < 0.

Επιχειρησιακή Ερευνα Ι

ΣΟΦΟΚΛΕΟΥΣ ΑΝΤΙΓΟΝΗ Κείµενο από το πρωτότυπο ( )

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

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

Αρτιες και περιττές συναρτήσεις


Εκφωνήσεις και Λύσεις των Θεμάτων

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

Δίκαιο και Οικονομικά: Οι Εξετάσεις

Μεγάλες αποκλίσεις* 17.1 Η έννοια της μεγάλης απόκλισης

Ανεξαρτησία Ανεξαρτησία για οικογένειες συνόλων και τυχαίες μεταβλητές

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

Εκφωνήσεις και Λύσεις των Θεμάτων

Κεφάλαιο 1. Πίνακες και απαλοιφή Gauss

Αρτιες και περιττές συναρτήσεις

ΘΕΜΑ 1ο Α. α) Δίνεται η συνάρτηση F(x)=f(x)+g(x). Αν οι συναρτήσεις f, g είναι παραγωγίσιμες, να αποδείξετε ότι: F (x)=f (x)+g (x).

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

Transcript:

Π. ΚΡΗΤΗΣ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΗΥ 380, «ΑΛΓΟΡΙΘΜΟΙ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ» Φ 07: ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η περιγραφή του προβλήματος: Στην άλγεβρα (και με αναρίθμητες εφαρμογές στην αριθμητική ανάλυση) χρησιμοποιούμε πίνακες (ή αλλιώς μητρώα ή μήτρες), για την παράσταση γραμμικών προβλημάτων και μετασχηματισμών. Ένας πίνακας Α έχει δύο διαστάσεις: το πλήθος των γραμμών του γ(α), και το πλήθος των στηλών σ(α), και αποτελείται από γ(α) σ(α) στοιχεία. Όταν δύο πίνακες Α, Β είναι «συνθέσιμοι», δηλαδή οι στήλες του 1 ου ισούνται με τις γραμμές του 2 ου ή σ(α) = γ(β), τότε ορίζεται ο πίνακας γινόμενο Γ = ΑΒ του οποίου οι γραμμές είναι όσες του Α, και οι στήλες όσες του Β, κατά τον τύπο: σ ( Α) γ = α β, i = 1,, γ(α), j = 1,, σ(β) i, j i. k k, j k= 1 Το κόστος C αυτής της πράξης είναι «μεγάλο» και ισούται με C = γ(α) σ(α) σ(β) = γ(α) γ(β) σ(β). Εάν έχουμε μια σειρά πινάκων Αi, i = 1, 2,., N, οι οποίοι ανά δύο διαδοχικοί είναι συνθέσιμοι, (δηλαδή σ(αi) = γ(αi+1) ), τότε ορίζεται το συνολικό γινόμενο: Γ = Α1 Α2... ΑΝ 1 ΑΝ. Το σημαντικό σε αυτό το γινόμενο είναι ότι είναι προσεταιριστικό: το αποτέλεσμα Γ δεν εξαρτάται με ποια σειρά θα εκτελεστούν τα επί μέρους γινόμενα ή πιο απλά «το που θα βάλουμε τις παρενθέσεις». Λ.χ. ισχύει ότι: Γ = (((Α1 Α2) Α3) Α4) Α5 = Α1 ((Α2 Α3) (Α4 Α5 )) Από πρακτικής πλευράς είναι όμως εξίσου σημαντικό, ότι αν και το αποτέλεσμα Γ είναι το ίδιο, το πλήθος των πράξεων που θα χρειαστούν για τον υπολογισμό του δεν είναι το ίδιο. Π.χ. αν έχουμε τους πίνακες Χ (5 10), Υ (10 8), Ζ (8 20), το γινόμενο ((Χ Υ) Ζ) επιφέρει (5 10 8) + (5 8 20) = 1200 πράξεις, ενώ το γινόμενο (Χ (Υ Ζ)) επιφέρει (5 10 20) + (10 8 20) = 2600 πράξεις, (πλήθος υπερδιπλάσιο). Ποιός είναι ο οικονομικότερος τρόπος να πολλαπλασιάσουμε Ν πίνακες; Προσέξτε ότι η τοποθέτηση των παρενθέσεων, λ.χ. κατά την έκφραση (((Α1 Α2) Α3) Α4) Α5 ή την έκφραση Α1 ((Α2 Α3) (Α4 Α5 )), αντιστοιχεί σε ένα δυαδικό δένδρο με 5 φύλλα, (και εν γένει με Ν φύλλα): A 2 A 3 A 4 A 5 A 2 A 3 A 4 A 5 Τα δυαδικά δένδρα με Ν φύλλα είναι πάρα πολλά για να τα εξετάσουμε όλα εξαντλητικά είναι ασυμπτωτικά (πολύ) περισσότερα από 3 Ν, και ακριβέστερα είναι: 1 1 2( N 1) B N = N ( N 1) Με τόσο μεγάλο κόστος κινδυνεύουμε το κόστος εύρεσης της οικονομικότερης λύσης να καταλήξει μεγαλύτερο από την οικονομία που εξασφαλίζει... Υπάρχει λοιπόν ένας οικονομικός τρόπος να βρούμε τον καλύτερο τρόπο να πολλαπλασιάσουμε Ν πίνακες; Η απάντηση είναι «ΝΑΙ» και αποτελεί ένα καλό, πλήρες, (και παλαιό), παράδειγμα εφαρμογής της τεχνικής του δυναμικού προγραμματισμού. Η τεχνική αυτή έχει 7 σημαντικά βήματα. Τα απαριθμούμε και τα εφαρμόζουμε μετά επεξηγήσεων στο παράδειγμα του πολλαπλασιασμού πινάκων. 1 Γι αυτό το θέμα μπορείτε να δείτε το άρθρο Catalan number στoν γνωστό ιστότοπο της Wikipedia. Πανεπιστήμιο Κρήτης Τμ. Επιστήμης υπολογιστών «Αλγόριθμοι & πολυπλοκότητα, ΗΥ380 Γεώργιος Φ.Δ. Γεωργακόπουλος, 1/5/2014, 1/5

1. οι αποφάσεις που καθορίζουν αναγωγικά την λύση. 2. τα υποπροβλήματα που προκύπτουν είναι του ιδίου ακριβώς τύπου με το αρχικό; 3. η αναδρομική κοστολόγηση με βάση όλες τις ενδεχόμενες «αποφάσεις». 4. η παραμετροποίηση των υποπροβλημάτων. 5. η πινακοποίηση του κόστους και η «κάτωθεν σάρωση». 6. η κράτηση σημειώσεων για τις λαμβανόμενες βέλτιστες αποφάσεις. 7. η αξιοποίηση των σημειώσεων για την κατασκευή της βέλτιστης λύσης. Βήμα 1 ο : Κατ αρχάς διευκρινίζουμε τις αποφάσεις που καθορίζουν το αποτέλεσμα. Εδώ έχοντας να πολλαπλασιάσουμε Ν πίνακες, (να κάνουμε δηλαδή Ν 1 πολλαπλασιασμούς) το καθοριστικό είναι ποιόν πολλαπλασιασμό θα αφήσουμε τελευταίο. Έστω ότι αυτός θα είναι ο υπ. αρ. k αυτός δηλαδή μεταξύ του Ak και του Ak+1: Γ = (Α1 Α2 Αk) (Αk+1 ΑN 1 ΑN ) Αν μπορούσαμε να διαλέγαμε το «σωστό» k κάθε φορά, τότε ο πολλαπλασιασμός θα έπαιρνε την μορφή που δίδει το εξής απόσπασμα κώδικα: Συνάρτηση Γινόμενο(...Α N : ακολουθία πινάκων ): πίνακας { N=1: Γινόμενο Ν=2: Γινόμενο Α Ν Ν 3: { k το «σωστό» ανάμεσα στα 1 έως Ν-1 // ποιό k; Γινόμενο Γινόμενο(...Α k ) Γινόμενο( Α k+1...α N ) } Οι αποφάσεις που επιλύουν το πρόβλημα, το ανάγουν σε μικρότερου μεγέθους προβλήματα (αλλιώς δεν θα το επέλυαν...). Εδώ η επιλογή του k, μας οδηγεί στους πολλαπλασιασμούς,...α k και Α k+1...α N όπου και οι δύο αναφέρονται σε μικρότερο πλήθος πινάκων (το πολύ Ν 1, αντί για Ν). Βήμα 2 ο : Είναι τα υποπροβλήματα του ιδίου τύπου; Το ερώτημα εδώ είναι όμως το εξής: τα υποπροβλήματα που προκύπτουν είναι ακριβώς του ιδίου τύπου με το αρχικό; Και εδώ αυτό συμβαίνει πράγματι: το κόστος του υπ.αρ. k γινομένου είναι γ(ak) σ(ak) γ(ak+1), και αυτό δεν επηρρεάζεται από, ούτε επηρρεάζει το με ποιό τρόπο θα εκτελέσουμε τα επί μέρους γινόμενα...α k και Α k+1...α N επομένως πρέπει και αρκεί να εκτελέσουμε αυτά επίσης κατά τον βέλτιστο τρόπο. Αυτό το φαινόμενο είναι συχνό στα προβλήματα βελτιστοποίησης: τα υποπροβλήματα ενός προβλήματος βελτιστοποίησης είναι εύλογο (αν και όχι αναγκαίο) να πρέπει να λυθούν και αυτά κατά βέλτιστο τρόπο. Έχουμε λοιπόν για το πρόβλημά μας μια αναγωγή σε προβλήματα ακριβώς του ιδίου τύπου. Βήμα 3 ο : Αναδρομική κοστολόγηση με βάση όλες τις ενδεχόμενες αποφάσεις. Οι αποφάσεις που επιλύουν το πρόβλημα, καθορίζουν το κόστος το οποίο κόστος θέλουμε εδώ να ελαχιστοποιήσουμε και επομένως κάπως να το υπολογίσουμε. Ο τρόπος υπολογισμού μας δίνει και το κόστος αρκεί να συντάξουμε έναν αναδρομικό τύπο που να εκφράζει ότι από όλες τις επιτρεπτές επιλογές θα (πρέπει να) διαλέξουμε την οικονομικότερη. Ο σχετικός κώδικας είναι σχεδόν προφανής: Συνάρτηση Κόστος(...Α N : ακολουθία πινάκων ): πλήθος-πράξεων { N=1: Κόστος 0 Ν=2: Κόστος γ( )σ( )γ(α Ν ) Ν 3: Κόστος min { γ( )σ(α k )γ(α Ν ) + Κόστος(...Α k ) 1 k<n + Κόστος( Α k+1...α N ) } Αλλά και αυτή η μορφή υπολογισμού δεν είναι οικονομική: το δένδρο των αναδρομικών κλήσεων είναι μεγάλο εξ άλλου η παραπάνω αναζήτηση δεν αποτελεί παρά μια «κομψή» αναδιατύπωση της Πανεπιστήμιο Κρήτης Τμ. Επιστήμης υπολογιστών «Αλγόριθμοι & πολυπλοκότητα, ΗΥ380 Γεώργιος Φ.Δ. Γεωργακόπουλος, 1/5/2014, 2/5

εξαντλητικής εξέτασης όλων των δυνατών δένδρων εκτέλεσης του πολλαπλασιασμού Α1 Α2... ΑΝ! Βήμα 4 ο : Παραμετροποίηση των υποπροβλημάτων. Η παραπάνω διατύπωση είναι ελαφρά παραπλανητική αν φανούμε απρόσεκτοι. Η διαδικασία κοστολόγησης Κόστος(...Α N ) του πολλαπλασιασμού της σειράς των πινάκων...α N ανατρέχει στα υποπροβλήματα...α k και Α k+1...α N, μέσω των αναδρομικών κλήσεων Κόστος(...Α k ) και Κόστος( Α k+1...α N ). Όταν όμως ενεργοποιηθεί λ.χ. η πρώτη εξ αυτών, το ρόλο του «Ν» θα παίξει η τιμή k, και θα προκληθούν (με το οποιοδήποτε νέο k, 1 k < k), δύο νέες κλήσεις Κόστος(...Α k ) και Κόστος( Α k +1...Α k ), κοκ. Αυτή η «περιπλοκή» φτάνει όμως μέχρις εκεί. Η μορφή των υποπροβλημάτων που καλούμαστε να λύσουμε δεν είναι παρά η εξής (εκφρασμένη παραμετρικά): Κόστος( Α i...α j ), = «βρες το κόστος υπολογισμού του γινομένου Ai Aj, για 1 i j Ν». Και η αναδρομική σχέση μας ζητά... «βρες το καλύτερο k, i k < j, για να υπολογιστεί το Ai Aj ως (Ai Ak) ( Ak+1 Aj)». Όλα αυτά τα υποπροβλήματα όμως δεν είναι πολλά είναι «μόνον» το πολύ Ο(Ν 2 ) πλήθος πολυωνυμικό ως προς Ν και όχι εκθετικό! Στην περίπτωσή μας μπορούμε να σχεδιάσουμε αυτά τα (υπο)προβλήματα σαν μια πυραμίδα η βάση της οποίας είναι Ν περιπτώσεις i = j, και η κορυφή το ένα συνολικό πρόβλημα i = 1, j = Ν. Σε κάθε πλαίσιο γράφονται οι παράμετροι ενός υποπροβλήματος, και σε αυτές αντιστοιχεί ένα υπό εύρεση βέλτιστο κόστος εκτέλεσης του σχετικού πολλαπλασιασμού....α 5......Α 3......Α 3...Α 5 Α 5 X Α 3 Α 5 Α 6 Στο παραπάνω σχήμα έχουμε σχεδιάσει την διάσπαση του γινομένου A2 A6 στο σημείο k = 3, δηλαδή στα υποπροβλήματα A2 A3 και A4 A6, όπου φαίνεται ότι τα κόστη στα διάφορα επίπεδα αυτής της πυραμίδας εξαρτώνται από τα κόστη σε χαμηλότερα επίπεδα. Βήμα 5 ο : Η πινακοποίηση του κόστους και η «κάτωθεν σάρωση». Δεν είναι λοιπόν αναγκαίο να υπολογίσουμε τα κόστη αναδρομικά, αλλά αρκεί να συμπληρώσουμε αυτή την πυραμίδα με μία κάτωθεν σάρωση αρχίζοντας δηλαδή από το χαμηλότερο επίπεδο και σαρώνοντας αυτήν προς το υψηλότερο. Εικονίζουμε αυτή την διαδικασία στο παραπάνω σχήμα. δ = 0, 1,..., N 1...A N Α i...α j Κόστος[i,j] (A i...a k )(A k+1...a j ) i = 1, 2,..., N δ ( j = i + δ )...A 2 A k A k+1 k = i, i+1,..., j 1 Για την σάρωση αρκούν τρείς «μετρητές» : ο δ με τιμές 0 έως Ν 1, για τα Ν επίπεδα, ο i με τιμες 1 έως Ν δ, για το εκάστοτε υποπρόβλημα (i, j) όπου j = i + δ, και, ο k με τιμές i έως j 1, για τη διάσπαση στα προβλήματα (i, k) (k+1, j), βλ. κόκκινες γραμμές. Πανεπιστήμιο Κρήτης Τμ. Επιστήμης υπολογιστών «Αλγόριθμοι & πολυπλοκότητα, ΗΥ380 Γεώργιος Φ.Δ. Γεωργακόπουλος, 1/5/2014, 3/5

Το σημαντικό τώρα και το κύριο χαρακτηριστικό του δυναμικού προγραμματισμού είναι ότι αντί να χρησιμοποιούμε μια εκ των άνω αναδρομική διαδικασία Κόστος( Α i...α j ) χρησιμοποιούμε έναν πίνακα Κόστος[i,j], όπου αποθηκεύουμε το εκάστοτε βέλτιστο κόστος του πολλαπλασιασμού Α i...α j, τον οποίο πίνακα συμπληρώνουμε με μια εκ των κάτω σάρωση όπως εξηγήσαμε στην προηγούμενη παράγραφο. Αυτή η διαδικασία είναι «οικονομική» (σε σχέση με μια εκθετικής πλοκής): αρκούν Θ(Ν 3 ) πράξεις! Διαδικασία Κοστολόγηση(...Α N : ακολουθία πινάκων ) { Για δ = 0 έως Ν-1 Περίπτωση { δ=0: Για i = 1 έως Ν { Κόστος[i,i] 0 } δ=1: Για i = 1 έως Ν-1 { Κόστος[i,i+1] γ(α i )σ(α i )γ(α i+1 ) } δ 2: Για i = 1 έως Ν-δ { j (i+δ) } C + Για k = i έως j-1 { C min{c, γ(α i )σ(α k )γ(α j ) + Κόστος[i,k] + Κόστος[k+1,j] Κόστος[i,j] C Βήμα 6 ο : Η κράτηση σημειώσεων για τις λαμβανόμενες αποφάσεις. Τέλος καλό όλα καλά, αλλά δεν έχουμε φθάσει ακόμα στο τέλος διότι ενώ έχουμε πλέον έναν αλγόριθμο που υπολογίζει το βέλτιστο κόστος του πολλαπλασιασμού A1 AΝ, δεν μας απαντά με ποιό τρόπο επιτυγχάνεται αυτό το βέλτιστο κόστος. Αυτό συνέβη διότι την στιγμή που διαλέξαμε το min{ } κόστος, αδιαφορήσαμε για το ποιά επιλογή, (ποιό «k»), οδηγεί σε αυτό το κόστος. Προφανώς αρκεί να κρατήσουμε εκεί μια σχετική σημείωση. Επειδή αυτή η σημείωση αφορά στο υποπρόβλημα που ορίζεται από το ζεύγος των παραμέτρων (i, j), αρκεί άλλος ένας πίνακας Επιλογή[i, j] για την σημείωση του σχετικού k. Διαδικασία Κοστολόγηση(...Α N : ακολουθία πινάκων ) { Για δ = 0 έως Ν-1 Περίπτωση { δ=0: Για i = 1 έως Ν { Κόστος[i,i] 0 } δ=1: Για i = 1 έως Ν-1 { Κόστος[i,i+1] γ(α i )σ(α i )γ(α i+1 ) } δ 2: Για i = 1 έως Ν-δ { j (i+δ) Κόστος[i,j] + Για k = i έως j-1 { C γ(α i )σ(α k )γ(α j ) + Κόστος[i,k] + Κόστος[k+1,j] Εάν C < Κόστος[i,j] τότε { Κόστος[i,j] C Επιλογή[i,j] k // σημείωση min } Βήμα 7 ο : Η αξιοποίηση των σημειώσεων. Το τελικό βήμα μας φέρνει εκεί που έπρεπε, δηλαδή εκεί όπου ξεκινήσαμε (βλ. βήμα 1 ο ): ο πίνακας Επιλογή[i, j] περιέχει το «σωστό» k, και ο αρχικός κώδικας γνωρίζει πλέον ποιές (σωστές) αποφάσεις να πάρει. Ο τελικός κώδικας ακολουθεί: Κοστολόγηση(...Α Ν ) Γ Γινόμενο(...Α Ν ) // υπολογισμός βέλτιστου με παράλληλη // κράτηση σημειώσεων Επιλογή[i,j], και // όπου: Συνάρτηση Γινόμενο( Α i...α j : ακολουθία πινάκων ): πίνακας { j=i : Γινόμενο Α i j=i+1: Γινόμενο Α i Α j j i+2: { k Επιλογή[i,j] // το «σωστό» k! Γινόμενο Γινόμενο( Α i...α k ) Γινόμενο( Α k+1...α j ) } Πανεπιστήμιο Κρήτης Τμ. Επιστήμης υπολογιστών «Αλγόριθμοι & πολυπλοκότητα, ΗΥ380 Γεώργιος Φ.Δ. Γεωργακόπουλος, 1/5/2014, 4/5

Προς ΕΞΑΣΚΗΣΗ Βασιζόμενοι στα προηγούμενα παραδείγματα (σημειώσεων & φροντιστηρίου) θα πρέπει να είστε σε θέση να λύσετε τα παρακάτω προβλήματα. Δώσατε γραπτώς το 4 ο και άλλα 2 από αυτά, με τις απαραίτητες εξηγήσεις. Εφαρμόστε τα «7» βήματα του δυναμικού προγραμματισμού, και οπωσδήποτε τα 3 ο, 4 ο και 5 ο. 1. Δίδονται δύο συμβολοσειρές Α και Β με μήκη Μ και Ν, και ζητείται η μεγίστου μήκους συμβολοσειρά που εμφανίζεται ως υπακολουθία και στις δύο σειρές (όχι κατ ανάγκην στις ίδιες, ούτε κατ ανάγκην σε συνεχόμενες, θέσεις π.χ. η σειρά «ααββα» εμφανίζεται ως «κοινή υπακολουθία» στις συμβολοσειρές Α = «βαγαβγβα» και Β = «ααγβγγβαγαβ»). 2. Σε μια γραμμή σιδηροδρομικού δικτύου υπάρχουν Ν σταθμοί. Η διεύθυνση του δικτύου έχει ορίσει Μ ζώνες ταξιδίων. Κάθε ζώνη ζμ, μ = 1, 2,..., Μ, αρχίζει από τον σταθμό αμ, τελειώνει στον σταθμό βμ, και έχει εισιτήριο με ενιαία τιμή τμ για μια διαδρομή από οποιοδήποτε σταθμό της ζώνης ζμ προς οποιοδήποτε άλλο σταθμό της ίδιας ζώνης. Θέλουμε να προσδιορίσουμε τον φθηνότερο τρόπο να ταξιδεύσει κάποιος επιβάτης από τον σταθμό i στον σταθμό j, για 1 i < j N. 3. Δίδεται μια ακολουθία Ν φυσικών αριθμών α = α1, α2,..., αν και θέλουμε να ανιχνεύσουμε την μακρύτερη υπακολουθία της α η οποία είναι γνησίως αύξουσα. 4. Δίδονται Ν εμπορεύματα, έκαστο με αξία ακ και βάρος βκ, καθώς και δύο φορτηγά με όριο φόρτωσης βάρους Β1 για το 1 ο, και Β2 για το 2 ο. Ποιά είναι η μεγαλύτερη αξία εμπορευμάτων που είναι δυνατόν να μεταφέρουμε με τα δύο φορτηγά συνολικά (χωρίς, φυσικά, να υπερβούμε τα επί μέρους όρια φόρτωσης); 5. Δίδονται δύο κείμενα / συμβολοσειρές Α και Β. Επί της σειράς Α επιτρέπονται οι εξής ενέργειες: ΕΝΘΕΣΗ(κ, σ) ενθέτει, ως πρόσθετο σύμβολο της Α, το σ ανάμεσα στις θέσεις κ και κ+1. ΔΙΑΓΡΑΦΗ(κ) διαγράφει το υπ.αρ. κ σύμβολο της Α. ΑΛΛΑΓΗ(κ, σ) αλλάζει το υπ.αρ. κ σύμβολο της Α από οτιδήποτε είναι ήδη, σε σ. Κάθε τέτοια ενέργεια κοστολογείται με μοναδιαίο κόστος. Ποιό είναι το ελάχιστο κόστος μετασχηματισμού της σ/σειράς Α στην σ/σειρά Β; 6. Δύο παίκτες διαλέγουν εναλλάξ με την σειρά τους είτε το πρώτο είτε το τελευταίο από μια σειρά με Ν κέρματα, έκαστο των οποίων έχει αξία ακ, και το παίρνουν για λογαριασμό τους. Πόση είναι η μέγιστη αξία μπορεί να εξασφαλίσει ο 1 ος παίκτης, (όσο καλά και εάν παίξει ο αντίπαλός του για το δικό του όφελος); Υποδείξεις: 1. Η κοινή υπακολουθία των Α[1..Μ] και Β[1..Ν], προκαλεί μια αντιστοίχιση ανάμεσα σε σύμβολα των Α και Β. Εξετάστε εάν το τελευταίο ζεύγος συμβόλων Α[Μ] και Β[Ν] συμμετέχει ή όχι σε μια τέτοια αντιστοίχιση, και συνεχίστε ένα τέτοιο έλεγχο «αναδρομικά». 2. Εξετάστε το κόστος μιας διαδρομής i j με την υπόθεση ότι είναι διαθέσιμες μόνον οι ζώνες ζ1, ζ2,..., ζκ 1, και στη συνέχεια επιτρέψατε ως διαθέσιμη και την εκάστοτε επόμενη ζώνη ζκ, για κ = 1, 2,..., Μ. Ελέγξατε εάν πρέπει να εξεταστούν όλοι οι σταθμοί της ζκ ή αν αρκούν οι σταθμοί ακ και βκ. 3. Ορίσατε ως Μ(κ) το μήκος της όποιας μακρύτερης (γνησίως αύξουσας) υπακολουθίας τέτοιας ώστε να τελειώνει με το στοιχείο ακ, για κ = 1, 2,..., Ν. Διερευνήσατε πώς αυτή εξαρτάται από τις «προηγούμενες» τιμές Μ[1],..., Μ[κ 1]. Η ζητουμένη τιμή εξαρτάται προφανώς από τα Μ[1]...Μ[Ν]. 4. Εφαρμόστε, με μια ελαφρά διαφοροποίηση, την τεχνική του «άπληστου σάκκου» (βλ. σημειώσεις). 5. Εξετάστε με ποιό τρόπο το βέλτιστο κόστος Κ[i, j] μετασχηματισμού ενός αρχικού τμήματος Α[1..i] σε ένα αρχικό τμήμα B[1..j] εξαρτάται (μέσω ΔΙΑΓΡΑΦΩΝ, ΕΝΘΕΣΕΩΝ, ή ΑΛΛΑΓΩΝ) από τα K[i 1, j], K[i, j 1] και K[i 1, j 1], για 1 i M, 1 j N. 6. Έστω Α(i, j) η μέγιστη αξία που μπορεί να πετύχει ο 1 ος παίκτης όταν στο τραπέζι έχουν μείνει τα κέρματα από το υπ.αρ. i έως και το υπ. αρ. j, 1 i j N, και είναι η σειρά του να παίξει. Εξετάστε τις δύο επιλογές που έχει και προσέξτε ότι το κέρδος του εξαρτάται από αυτόν μεν, αλλά και από ό,τι χειρότερο μπορεί να του συμβεί αναλόγως με την αμέσως επόμενη κίνηση του αντιπάλου του. Πανεπιστήμιο Κρήτης Τμ. Επιστήμης υπολογιστών «Αλγόριθμοι & πολυπλοκότητα, ΗΥ380 Γεώργιος Φ.Δ. Γεωργακόπουλος, 1/5/2014, 5/5