Αλγόριθµοι και Πολυπλοκότητα

Σχετικά έγγραφα
Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών. Καθηγητής: Ν. Μ. Μισυρλής 29 Μαΐου / 18

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

Αλγόριθµοι και Πολυπλοκότητα

Ασκήσεις για το µάθηµα «Ανάλυση Ι και Εφαρµογές» (ε) Κάθε συγκλίνουσα ακολουθία άρρητων αριθµών συγκλίνει σε άρρητο αριθµό.

Outline. 6 Edit Distance

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα

KΕΦΑΛΑΙΟ 4 AΚΟΛΟΥΘΙΕΣ ΠΡΑΓΜΑΤΙΚΩΝ ΑΡΙΘΜΩΝ

Διωνυµικοί Συντελεστές. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Δυναµικός Προγραµµατισµός 1

I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11

Μη γράφετε στο πίσω μέρος της σελίδας

i=1 i=1 i=1 (x i 1, x i +1) (x 1 1, x k +1),

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα

τη µέθοδο της µαθηµατικής επαγωγής για να αποδείξουµε τη Ϲητούµενη ισότητα.

Εισαγωγή. Οπως είδαµε για την εκκίνηση της Simplex χρειαζόµαστε µια Αρχική Βασική Εφικτή Λύση. υϊσµός

Ακουλουθίες ρ. Κωνσταντίνα Παναγιωτίδου

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

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

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 2-1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

1 Ανάλυση αλγορίθµων. 2 Συµβολισµοί O, Ω και Θ. 3 Αναδροµικές εξισώσεις

Μαθηµατικά για Πληροφορική

Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

(GNU-Linux, FreeBSD, MacOsX, QNX

Ασκήσεις για το µάθηµα «Ανάλυση Ι και Εφαρµογές»

Γενικευµένη Simplex Γενικευµένη Simplex

4 Συνέχεια συνάρτησης

Θέματα Εφαρμογών Βάσεων Δεδομένων: Ιδιωτικότητα Δεδομένων

Αλγόριθµοι και Πολυπλοκότητα

1 Ορισµός ακολουθίας πραγµατικών αριθµών

Γραµµικη Αλγεβρα Ι Επιλυση Επιλεγµενων Ασκησεων Φυλλαδιου 4

EΦΑΡΜΟΓΕΣ ΤΗΣ ΨΗΦΙΑΚΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ ΣΗΜΑΤΩΝ Γραµµική Εκτίµηση Τυχαίων Σηµάτων Φίλτρο Kalman

όπου D(f ) = (, 0) (0, + ) = R {0}. Είναι Σχήµα 10: Η γραφική παράσταση της συνάρτησης f (x) = 1/x.

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός

f(t) = (1 t)a + tb. f(n) =

Απειροστικός Λογισμός Ι, χειμερινό εξάμηνο Λύσεις τέταρτου φυλλαδίου ασκήσεων. ( n(n+1) e 1 (

Αλγόριθµοι Οπισθοδρόµησης

ΚΕΦΑΛΑΙΟ 3 ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. nn n n

Αξιολόγηση Ευριστικών Αλγορίθµων

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα

Άπληστοι Αλγόριθµοι. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Άπληστοι Αλγόριθµοι 1

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

2 Αποδείξεις. 2.1 Εξαντλητική µέθοδος. Εκδοση 2005/03/22. Υπάρχουν πολλών ειδών αποδείξεις. Εδώ ϑα δούµε τις πιο κοινές:

Κυρτή Ανάλυση. Ενότητα: Υπερεπίπεδα στήριξης και διαχωριστικά ϑεωρήµατα. Απόστολος Γιαννόπουλος. Τµήµα Μαθηµατικών

Αριθµητική Ανάλυση. Ενότητα 6 Αριθµητική Παραγώγιση και Ολοκλήρωση. Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών,

sup B, τότε υπάρχουν στοιχεία α A και β B µε α < β.

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

Αλγόριθμοι και Πολυπλοκότητα

ΛΙΒΑΘΙΝΟΣ ΝΙΚΟΛΑΟΣ Επιστήµη και Τεχνολογία των Υπολογιστών Α.Μ.: 403. Πρώτη Οµάδα Ασκήσεων

1 ΤΕΤΡΑΓΩΝΙΚΑ ΠΑΙΧΝΙ ΙΑ

Χαρακτηριστικά Δυναμικού Προγραμματισμού. Εισαγωγικά. 2 Δυναμικός Προγραμματισμός

4.3 Παραδείγµατα στην συνέχεια συναρτήσεων

ΠΛΗ111. Ανοιξη Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Αλγόριθµοι για την παραγοντοποίηση ακεραίων αριθµών

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ: ΠΛΗΡΟΦΟΡΙΚΗ ΘΕ: ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΤΗΝ ΠΛΗΡΟΦΟΡΙΚΉ Ι (ΠΛΗ 12) ΛΥΣΕΙΣ ΕΡΓΑΣΙΑΣ 3

Ορισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου

Ξέρουμε ότι: Συνάρτηση-απεικόνιση με πεδίο ορισμού ένα σύνολο Α και πεδίο τιμών ένα σύνολο Β είναι κάθε μονοσήμαντη απεικόνιση f του Α στο Β.

Λύσεις των ϑεµάτων, ΑΠΕΙΡΟΣΤΙΚΟΣ ΛΟΓΙΣΜΟΣ Ι, 3/2/2010

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Αριθµητική Ανάλυση. Ενότητα 5 Προσέγγιση Συναρτήσεων. Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών,

Αποφασισιµότητα / Αναγνωρισιµότητα. Μη Επιλύσιµα Προβλήµατα. Η έννοια της αναγωγής. Τερµατίζει µια δεδοµένη TM για δεδοµένη είσοδο;

Αλγόριθµοι και Πολυπλοκότητα

< 1 για κάθε k N, τότε η σειρά a k συγκλίνει. +, τότε η η σειρά a k αποκλίνει.

3 Αναδροµή και Επαγωγή

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...

Αρµονική Ανάλυση. Ενότητα: L p Σύγκλιση. Απόστολος Γιαννόπουλος. Τµήµα Μαθηµατικών

3η Σειρά Γραπτών Ασκήσεων

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ ΙΙ (ΠΕΡΙΤΤΟΙ) Ασκησεις - Φυλλαδιο 5

2 o Καλοκαιρινό σχολείο Μαθηµατικών Νάουσα 2008

Γενικό πλάνο. Μαθηµατικά για Πληροφορική. Παράδειγµα αναδροµικού ορισµού. οµική επαγωγή ΠΑΡΑ ΕΙΓΜΑ. 3ο Μάθηµα

Αλγόριθµοι και Πολυπλοκότητα

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

Μαθηµατικά για Πληροφορική

KΕΦΑΛΑΙΟ 6 ΥΝΑΜΟΣΕΙΡΕΣ-ΣΕΙΡΕΣ TAYLOR

Κεφάλαιο 3 ΠΑΡΑΓΩΓΟΣ. 3.1 Η έννοια της παραγώγου. y = f(x) f(x 0 ), = f(x 0 + x) f(x 0 )

Μη γράφετε στο πίσω μέρος της σελίδας

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Mergesort Κεφάλαιο 8. Ε. Μαρκάκης Επίκουρος Καθηγητής

Αλγόριθµοι και Πολυπλοκότητα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

ΕΠΛ 232 Φροντιστήριο 2

Αλγόριθµοι και Πολυπλοκότητα

Κεφάλαιο 7 Βασικά Θεωρήµατα του ιαφορικού Λογισµού

Δυναµικός Προγραµµατισµός (ΔΠ)

3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή

Τελική Εξέταση 10 Φεβρουαρίου 2017 ιάρκεια εξέτασης 2 ώρες και 30 λεπτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Σχεδίαση & Ανάλυση Αλγορίθμων

Transcript:

Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 1 / 17

Μέγιστη Κοινή Υπακολουθία Ορισµοί Ορισµός 1: Μια ακολουθία Z =< z 1, z 2,...,z k > αποτελεί υπακολουθία µιας δεδοµένης ακολουθίας X =< x 1, x 2,...,x m > εάν υπάρχει µια γνησίως αύξουσα ακολουθία < i 1, i 2,..., i k > από αύξοντες αριθµούς στοιχείων της X τέτοια ώστε για όλα τα j = 1, 2,..., k να ισχύει x ij = z j. Παράδειγµα Η Z =< B, C, D, B > είναι µια υπακολουθία της X =< A, B, C, B, D, A, B >, µε αντίστοιχη ακολουθία αυξόντων αριθµών < 2, 3, 5, 7 >. Ορισµός 2: Για δυο δεδοµένες ακολουθίες X και Y, λέµε ότι µια ακολουθία Z είναι κοινή υπακολουθία των X και Y εάν είναι υπακολουθία τόσο της Q όσο και της Y. Παράδειγµα Εάν X =< A, B, C, B, D, A, B > και Y =< B, D, C, A, B, A >, η ακολουθία < B, C, A > είναι µια κοινή υπακολουθία των X και Y. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 2 / 17

Μέγιστη Κοινή Υπακολουθία Πρόβληµα Στο πρόβληµα της µέγιστης υπακολουθίας µας δίνονται δύο ακολουθίες X =< x 1, x 2,..., x m > και Y =< y 1, y 2,...,y n > και Ϲητείται να ϐρεθεί µια µέγιστου µήκους κοινή υπακολουθία των X και Y. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 3 / 17

Βήµα 1: Χαρακτηρισµός µια Μέγιστης Κοινής Υπακολουθίας Το πρόβληµα της ΜΚΥ διαθέτει την ιδιότητα της ϐέλτιστης υποδοµής. Για µια δεδοµένη ακολουθία X =< x 1, x 2,..., x m >, ορίζουµε την i οστή προθηµατική υπακολουθία της Χ, για i = 0, 1,..., m, ως την υπακολουθία X i =< x 1, x 2,..., x i >. Παράδειγµα Εάν X =< A, B, C, B, D, A, B >, τότε X 4 =< A, B, C, B > και η X 0 είναι η κενή ακολουθία. Τηεορεµ Εστω δυο ακολουθίες X =< x 1, x 2,..., x m > και Y =< y 1, y 2,...,y n >, και έστω Z =< z 1, z 2,..., z k > οποιαδήποτε ΜΚΥ των X και Y. 1. Εάν x m = y n τότε z k = x m = y n και η Z k 1 είναι µια ΜΚΥ των X m 1 και Y n 1. 2. Εάν x m y n και z k x m, έπεται ότι η Z είναι µια ΜΚΥ των X m 1 και Y. 3. Εάν x m y n και z k y n, έπεται ότι η Z είναι µια ΜΚΥ των X και Y n 1. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 4 / 17

Βήµα 1: Χαρακτηρισµός µια Μέγιστης Κοινής Υπακολουθίας Απόδειξη. 1 Εάν z k x m, τότε προσαρτώντας το στοιχείο x m = y n στην Z προκύπτει µια κοινή υπακολουθία των X και Y µε µήκος = k + 1, το οποίο αντιφάσκει στην υπόθεση µας ότι η Z είναι µια ΜΚΥ των X και Y. Συνεπώς πρέπει z k = x m = y n. Επιπλέον, η Z k 1 είναι µια κοινή υπακολουθία των X m 1 και Y n 1 µε µήκος = k 1. Θέλουµε να δείξουµε ότι είναι µια ΜΚΥ. Εστω ότι δεν ισχύει, υπάρχει δηλαδή µια κοινή υπακολουθία W των X m 1 και Y n 1 µε µήκος > k 1. Αν πρσαρτήσουµε στην W το στοιχείο x m = y n παίρνουµε µια κοινή υπακολουθία των X και Y µε µήκος > k, άτοπο. 2 Αν z k x m τότε η Z είναι µια κοινή υπακολουθία των X m 1 και Y. Εάν υπήρχε κοινή υπακολουθία W των X m 1 και Y µε µήκος > k, τότε η W ϑα ήταν επίσης κοινή υπακολουθία των X m και Y, το οποίο αντιφάσκει µε την υπόθεση ότι η Z είναι ΜΚΥ των X και Y. 3 Ανάλογα µε την (2). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 5 / 17

Βήµα 1: Χαρακτηρισµός µια Μέγιστης Κοινής Υπακολουθίας Από τις προτάσεις του ϑεωρήµατος έπεται ότι µια ΜΚΥ δυο ακολουθιών εµπεριέχει µια ΜΚΥ προθηµατικών υπακολουθιών των δύο αρχικών ακολουθιών. Το πρόβληµα της ΜΚΥ παρουσιάζει ϐέλτιστη υποδοµή. Μια αναδροµική λύση αυτού του προβλήµατος έχει επίσης την ιδιότητα της επικάλυψης των υποπροβληµάτων. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 6 / 17

Βήµα 2: Μια Αναδροµική Λύση Από το παραπάνω Θεώρηµα προκύπτει ότι για να προσδιορίσουµε κάποια ΜΚΥ των X =< x 1, x 2,...,x m > και Y =< y 1, y 2,..., y n > ϑα πρέπει να εξετάσουµε δυο υποπροβλήµατα. Αν x m = y n, πρέπει να ϐρούµε µια ΜΚΥ των X m 1 και Y n 1. Προσαρτώντας σε αυτήν το x m = y n παίρνουµε µια ΜΚΥ των X και Y. Αν x m y n ϑα πρέπει να λύσουµε δύο υποπροβλήµατα: την εύρεση µιας ΜΚΥ των X m 1 και Y και την εύρεση µιας ΜΚΥ των X και Y n 1. Η µεγαλύτερη από αυτές τις δύο ΜΚΥ είναι µια ΜΚΥ των X και Y. Η ύπαρξη της ιδιότητας της επικάλυψης υποπροβληµάτων στο πρόβληµα της ΜΚΥ µπορεί να δειχθεί πολύ εύκολα. Για να ϐρούµε τις ΜΚΥ των X και Y, ϑα χρειαστεί ενδεχοµένως να ϐρούµε τις ΜΚΥ των X και Y n 1 και των X m 1 και Y. Καθένα από αυτά τα υποπροβλήµατα, όµως, έχει ως υποπρόβληµα την εύρεση της ΜΚΥ των X m 1 και Y n 1. Σε πολλά άλλα υποπροβλήµατα εµφανίζονται κοινά υπο-υποπροβλήµατα. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 7 / 17

Βήµα 2: Μια Αναδροµική Λύση Εστω c[i, j] το µήκος µιας ΜΚΥ των ακολουθιών X i και Y j. Εάν έχουµε i = 0 ή j = 0, τότε µια από τις ακολουθίες έχει µήκος 0, και κατά συνέπεια η ΜΚΥ έχει µήκος επίσης 0. Με ϐάση τη ϐέλτιστη υποδοµή του προβλήµατος της ΜΚΥ, προκύπτει η εξής αναδροµική σχέση: 0, εάν i = 0 ή j = 0, c[i, j] = c[i 1, j 1]+1, εάν i, j > 0 και x i = y j, max(c[i, j 1], c[i 1, j]), εάν i, j > 0 και x i y j. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 8 / 17

Αναδροµικός Αλγόριθµος MKY(x,y,i,j) / Αγνοούµε την κατάσταση διακοπής i = j = 0 / if x[i]=y[j] then c[i,j]=mky(x,y,i-1,j-1) else c[i,j]=max{mky(x,y,i-1,j),mky(x,y,i,j-1)} return c Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 9 / 17

Βήµα 3: Υπολογισµός του Μήκους µιας ΜΚΥ Η χειρότερη περίπτωση είναι x[i] y[j]. Η αναδροµική σχέση της πολυπλοκότητας είναι: T(m, n) T(m, n 1)+T(m 1, n) [T(m, n 2)+T(m 1, n 1)]+ T(m, n) 2T(m 1, n 1) Αν m n T(m, n) 2 2 T(m 2, n 2). Αν n m 2 m T(0, 0) 2 m T(m, n) 2 n [T(m 1, n 1)+T(m 2, n 1)] Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 10 / 17

Βήµα 3: Υπολογισµός του Μήκους µιας ΜΚΥ Ωστόσο, επειδή υπάρχουν µόνο Θ(mn) διαφορετικά υποπροβλήµατα, υπολογίζουµε τις λύσεις αναβιβαστικά µέσω δυναµικού προγραµµατισµού. Η διαδικασία Μηκος ΜΚΥ που ακολουθεί δέχεται ως είσοδο δύο ακολουθίες X =< x 1, x 2,...,x m > και Y =< y 1, y 2,...,y n >. Ο αλγόριθµος υπολογίζει τις τιµές των c[i, j], τις οποίες και αποθηκεύει σε έναν πίνακα c[0... m, 0... n]. Ο υπολογισµός των στοιχείων γίνεται κατ αύξουσα σειρά γραµµής του πίνακα από τα αριστερά προς τα δεξιά. Η διαδικασία τηρεί επίσης τον πίνακα b[1...m, 1...n], για την κατασκευή µιας ϐέλτιστης λύσης. Το βέλος b[i, j] δείχνει προς το στοιχείο πίνακα το οποίο αντιστοιχεί στη ϐέλτιστη λύση του υποπροβλήµατος που επιλέχθηκε στον υπολογισµό του c[i, j]. Η διαδικασία επιστρέφει τους πίνακες b και c. Το στοιχείο c[m, n] περιέχει το µήκος µιας ΜΚΥ των X και Y. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 11 / 17

Βήµα 3: Υπολογισµός του Μήκους µιας ΜΚΥ Μηκος ΜΚΥ(X, Y) 1 m µήκος[x] 2 n µήκος[y] 3 για i 1 έως m 4 c[i, 0] 0 5 για j 0 έως n 6 c[0, j] 0 7 για i 1 έως m 8 για j 1 έως n 9 αν x i = y j 10 τότε c[i, j] c[i 1, j 1]+1 11 b[i, j] տ Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 12 / 17

Βήµα 3: Υπολογισµός του Μήκους µιας ΜΚΥ 12 αλλιώς αν c[i 1, j] c[i, j 1] 13 τότε c[i, j] c[i 1, j] 14 b[i, j] 15 αλλιώς c[i, j] c[i, j 1] 16 b[i, j] 17 επιστροφή c και b Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 13 / 17

Βήµα 4: Κατασκευή µιας ΜΚΥ Ξεκινώντας από το στοιχείο b[m, n], διατρέχουµε απλώς τον πίνακα ακολουθώντας τα ϐέλη. Κάθε ϐέλος տ που συναντούµε στο πίνακα b[i, j] σηµαίνει ότι το στοιχείο x i = y j ανήκει στη ΜΚΥ. Με τη µέθοδο αυτή, τα στοιχεία της ΜΚΥ συναντώνται µε αντίστροφη σειρά. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 14 / 17

Βήµα 4: Κατασκευή µιας ΜΚΥ Εκτυπωση ΜΚΥ(b, Q, i, j) 1 αν i = 0 ή j = 0 2 τότε επιστροφή 3 αν b[i, j] = տ 4 Εκτυπωση ΜΚΥ(b, Q, i 1, j 1) 5 εκτύπωση x i 6 αλλιώς αν b[i, j] = 7 τότε Εκτυπωση ΜΚΥ(b, Q, i 1, j) 8 αλλιώς Εκτυπωση ΜΚΥ(b, Q, i, j 1) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 15 / 17

Μη Αναδροµικός Αλγόριθµος Χρόνος Χώρος O(mn) O(mn) 4. Κατασκευή λύσης i-1,j i,j 2 i-1,j-1 i,j-1 1 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 16 / 17

Μη Αναδροµικός Αλγόριθµος i j 0 1 2 3 4 5 6 yj B D C A B A 0 xi 0 0 0 0 0 0 0 1 A 0 0 0 0 1 1 1 2 B 0 1 1 1 1 2 2 3 C 0 1 1 2 2 2 2 4 B 0 1 1 2 2 3 3 5 D 0 1 2 2 2 3 3 6 A 0 1 2 2 3 3 4 7 B 0 1 2 2 3 4 4 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 17 / 17