Outline. 6 Edit Distance



Σχετικά έγγραφα
Σοφία Γιουρούκου, Ψυχολόγος Συνθετική Ψυχοθεραπεύτρια

Υποψήφιοι Σχολικοί Σύμβουλοι

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

Σκοπός του παιχνιδιού. Περιεχόμενα

Α. ΟΡΓΑΝΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΕΦΑΡΜΟΓΗΣ

ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗ ΛΟΓΙΣΤΙΚΗ

Η αξιολόγηση των εκπαιδευτικών το Π.Δ 152/2013, του Γιώργου Καλημερίδη

Από το ξεκίνημά του ο ΤΙΤΑΝ εκφράζει

ΠΟΛΙΤΙΚΉ ΠΑΙΔΕΙΑ. Α Γενικού Λυκείου και ΕΠΑ.Λ. Καζάκου Γεωργία, ΠΕ09 Οικονομολόγος

ΕΚΘΕΣΗ ΓΙΑ ΤΗΝ ΠΑΡΑΝΟΜΗ ΙΑΚΙΝΗΣΗ ΑΝΘΡΩΠΩΝ

ΔΙΑΔΟΣΗ ΘΕΡΜΟΤΗΤΑΣ Φυσική Β' Γυμνασίου. Επιμέλεια: Ιωάννης Γιαμνιαδάκης

Εσωτερικοί Κανονισμοί Τοπικής Αυτοδιοίκησης

109(Ι)/2014 ΝΟΜΟΣ ΠΟΥ ΠΡΟΝΟΕΙ ΓΙΑ ΤΟ ΕΛΑΧΙΣΤΟ ΕΓΓΥΗΜΕΝΟ ΕΙΣΟΔΗΜΑ ΚΑΙ ΓΕΝΙΚΟΤΕΡΑ ΠΕΡΙ ΚΟΙΝΩΝΙΚΩΝ ΠΑΡΟΧΩΝ ΤΟΥ 2014 ΚΑΤΑΤΑΞΗ ΑΡΘΡΩΝ

ΟΡΓΑΝΩΣΗ ΕΝΟΤΗΤΩΝ Α ΤΑΞΗΣ ΕΝΟΤΗΤΑ 3

ΑΚΡΟΒΑΤΗΣ-ΧΑΪΝΗΔΕΣ Οι Χαΐνηδες Ο Δημήτρης Αποστολάκης

ΣΥΝΕΝΤΕΥΞΗ ΤΥΠΟΥ. Η ολοκληρωμένη προσέγγιση θα εφαρμοστεί με τα παρακάτω Εργαλεία

ΙΕΘΝΗΣ ΣΥΜΒΑΣΗ ΕΡΓΑΣΙΑΣ 183 «για την αναθεώρηση της (αναθεωρηµένης) σύµβασης για την προστασία της µητρότητας,»

ΕΘΙΜΑ ΤΟΥ ΚΟΣΜΟΥ. Αγγελική Περιστέρη Α 2

ΜΥΛΟΣ ΠΑΠΠΑ. ΥΛΙΚΟ ΓΙΑ ΤΟ ΥΠΟΕΡΓΟ 1 της πράξης «Πολιτιστικές εκπαιδευτικές δραστηριότητες στον Δήμο Λαρισαίων με διαδραστικό χαρακτήρα» (MIS )

ΑΠΟΦΑΣΗ 34750/2006 (Αριθμός καταθέσεως πράξεως 43170/2006) ΤΟ ΠΟΛΥΜΕΛΕΣ ΠΡΩΤΟΔΙΚΕΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΙΑΔΙΚΑΣΙΑ ΕΚΟΥΣΙΑΣ ΔΙΚΑΙΟΔΟΣΙΑΣ ΣΥΓΚΡΟΤΗΘΗΚΕ από

03-00: Βιομάζα για παραγωγή ενέργειας Γενικά ζητήματα εφοδιαστικών αλυσίδων

ΠΟΛΗ ΚΑΙ ΧΩΡΟΣ ΑΠΟ ΤΟΝ 20 Ο ΣΤΟΝ 21 Ο ΑΙΩΝΑ

Η παρακμή του εργατικού κινήματος είναι μια διαδικασία που έχει ήδη διαρκέσει. πολλά χρόνια, τώρα ζούμε τα επεισόδια του τέλους της.

ΣΥΣΤΗΜΑ ΔΙΑΓΝΩΣΗΣ ΑΝΑΓΚΩΝ ΑΓΟΡΑΣ ΕΡΓΑΣΙΑΣ ΔΙΑΓΝΩΣΗ ΑΝΑΓΚΩΝ ΣΕ ΠΕΡΙΦΕΡΕΙΑΚΟ ΕΠΙΠΕΔΟ

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΙΚΟ ΣΗΜΕΙΩΜΑ 13 Α' ΜΕΡΟΣ ΑΠΟ ΤΟΝ ΠΟΛΕΜΟ ΤΟΥ 1897 ΣΤΟ ΓΟΥΔΙ

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

Όταν το μάθημα της πληροφορικής γίνεται ανθρωποκεντρικό μπορεί να αφορά και την εφηβεία.

Σε ποιες κατηγορίες μειώνεται η σύνταξη από 1/1/2009 (σε εφαρμογή του Ν.3655/2008)

Κατερίνα Παναγοπούλου: Δημιουργώντας κοινωνικό κεφάλαιο την εποχή της κρίσης

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

Τοποθέτηση Δημάρχου Γ. Πατούλη. για τεχνικό πρόγραμμα 2010

ΤΕΙ ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

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

ΘΕΜΑΤΑ ΓΙΑ ΑΣΕΠ ΝΗΠΙΑΓΩΓΩΝ

Ακίνητα: Προϋπόθεση μεταβίβασης ο ενιαίος φόρος Υποχρέωση «επόπτη» σε συμβολαιογράφους, φύλακες μεταγραφών και προϊσταμένους κτηματολογικών γραφείων

ΔΥΟ ΝΕΑ ΕΡΓΑΣΤΗΡΙΑ ΔΥΟ ΝΕΑ ΠΑΙΧΝΙΔΙΑ για τη διδασκαλία της Βιολογίας στο Γυμνάσιο

ΚΟΡΙΝΘΟΥ 255, ΚΑΝΑΚΑΡΗ 101 ΤΗΛ , , FAX

ΕΝΔΕΙΚΤΙΚΕΣ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΩΝ ΝΕΟΕΛΛΗΝΙΚΗΣ ΓΛΩΣΣΑΣ A1. Ο συγγραφέας ορίζει το φαινόμενο του ανθρωπισμού στη σύγχρονη εποχή. Αρχικά προσδιορίζει την

Ασυντήρητες και επικίνδυνες οικοδομές

ΣΥΝΘΗΚΗ SCHENGEN (ΣΕΝΓΚΕΝ)

ΔΕΛΤΙΟ ΤΥΠΟΥ. Ελλείψεις στο φορολογικό νομοσχέδιο. Σοβαρές ελλείψεις στη νέα μορφή του φορολογικού νομοσχεδίου

Οι 99 θέσεις του Ποταμιού

ΑΠΑΝΤΗΣΕΙΣ ΣΤΟ ΔΙΑΓΩΝΙΣΜΑ ΝΕΟΕΛΛΗΝΙΚΗΣ ΓΛΩΣΣΑΣ. Α. Να αποδώσετε την περίληψη του κειμένου ( λέξεις)

ΔΗΜΗΤΡΑ ΠΑΠΑΖΩΤΟΥ ΧΡΥΣΑΝΘΗ-ΣΟΦΙΑ ΠΛΑΚΑ ΑΝΤΙΓΟΝΗ ΤΣΑΡΑ

ΕΚΦΡΑΣΗ-ΕΚΘΕΣΗ Β ΛΥΚΕΙΟΥ 1 ο Λύκειο Καισαριανής ΕΠΑΓΓΕΛΜΑ: Κείμενα Προβληματισμού

Πρακτικό εργαλείο. για την ταυτοποίηση πρώτου επιπέδου των θυμάτων παράνομης διακίνησης και εμπορίας. τη σεξουαλική εκμετάλλευση

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

Συνοπτική Παρουσίαση. Ελλάδα

Δράση 1.2. Υλοτομία και προσδιορισμός ποσοτήτων υπολειμμάτων.

Το σχέδιο έχει ως βάση ένα ενιαίο σύστημα κλειστών αγωγών το οποίο εκτείνεται

Σχετ: Το από έγγραφό σας (αρ. πρωτ. εισερχ. 932/ ). Σε απάντηση του ως άνω σχετικού, θα θέλαμε να παρατηρήσουμε τα εξής:

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

Διαπολιτισμική Εκπαίδευση: Εκπαιδευτικές και Διδακτικές Εμπειρίες ΕΙΣΗΓΗΣΗ

Αθήνα, «Ανάλυση έργων και Τελικών Δικαιούχων του Ε.Π. "Κοινωνία της Πληροφορίας"»

ΒΥΖΑΝΤΙΝΗ ΕΙΚΟΝΑ: ΠΗΓΕΣ ΚΑΙ ΕΙΔΗ. Βλαχοπούλου Εβίτα Κωστελένου Ιωάννα Λαμπίρη Νικολέττα Μπόλλα Βασιλική

Αριθμός 9769/2014 TO ΠΟΛΥΜΕΛΕΣ ΠΡΩΤΟΔΙΚΕΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΙΑΔΙΚΑΣΙΑ ΕΚΟΥΣΙΑΣ ΔΙΚΑΙΟΔΟΣΙΑΣ ΣΥΓΚΡΟΤΗΘΗΚΕ από τους Δικαστές Μυρσίνη Κοντογιάννη, Πρόεδρο

Έλλειψη εσωτερικής ελευθερίας

ΑΠΑΝΤΗΣΕΙΣ ΣΤΟ ΔΙΔΑΓΜΕΝΟ ΚΕΙΜΕΝΟ

Ο τίτλος της εργασία μας για αυτό το τετράμηνο ήταν «Πολίτες της πόλης μου, πολίτες της οικουμένης». Κλιθήκαμε λοιπόν να γνωρίσουμε καλύτερα την πόλη

ΣΧΕΔΙΟ ΠΡΟΤΑΣΕΩΝ ΣΥΛΛΟΓΟΥ ΓΟΝΕΩΝ & ΚΗΔΕΜΟΝΩΝ ΕΠΙ ΤΟΥ ΠΡΟΣΧΕΔΙΟΥ ΤΟΥ ΕΣΩΤΕΡΙΚΟΥ ΚΑΝΟΝΙΣΜΟΥ ΛΕΙΤΟΥΡΓΙΑΣ ΤΟΥ 1 ου ΓΥΜΝΑΣΙΟΥ ΜΑΡΚΟΠΟΥΛΟΥ ΣΗΜΕΙΩΣΗ

ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΥ ΣΧΕΔΙΟΥ

ΘΕΜΑΤΑ ΚΑΝΟΝΙΣΜΩΝ ΒΙΒΛΙΟ ΠΕΡΙΠΤΩΣΕΩΝ ΠΕΡΙΕΧΟΜΕΝΑ

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

ΧΡΙΣΤΟΣ ΑΠ. ΛΑΔΙΑΣ

Πρόγραμμα Κοινωνικών Δεξιοτήτων Δεκεμβρίου

ΤΟ ΝΟΣΟΚΟΜΕΙΟ ΧΡΕΙΑΖΕΤΑΙ ΤΗΝ ΣΤΗΡΙΞΗ ΟΛΩΝ ΜΑΣ

Επαρχιακός Γραμματέας Λ/κας-Αμ/στου ΠΟΑ Αγροτικής

Το ολοκαύτωμα της Κάσου

Η ΑΥΤΕΠΑΓΓΕΛΤΗ ΑΝΑΖΗΤΗΣΗ ΔΙΚΑΙΟΛΟΓΗΤΙΚΩΝ ΜΙΑ ΚΡΙΤΙΚΗ ΑΠΟΤΙΜΗΣΗ. ( Διοικητική Ενημέρωση, τ.51, Οκτώβριος Νοέμβριος Δεκέμβριος 2009)

ΑΝΑΚΥΚΛΩΣΗ ΤΗΓΑΝΕΛΑΙΟΥ ΓΙΑΤΙ - ΠΩΣ - ΠΟΤΕ

Ενότητα 2. Γενικά Οργάνωση Ελέγχου (ΙΙ) Φύλλα Εργασίας Εκθέσεις Ελέγχων

Επίσηµη Εφηµερίδα αριθ. C 372 της 09/12/1997 σ

ÔÏÕËÁ ÓÁÑÑÇ ÊÏÌÏÔÇÍÇ

ΕΡΓΑΣΙΑ ΤΕΧΝΟΛΟΓΙΑΣ «ΚΑΤΟΙΚΙΔΙΑ ΖΩΑ»

ΟΙΚΟΝΟΜΙΚΟ ΕΠΙΜΕΛΗΤΗΡΙΟ ΤΗΣ ΕΛΛΑΔΑΣ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΣΤΑΤΙΣΤΙΚΗΣ. Τριμηνιαία Έρευνα. A Τρίμηνο 2014

ΕΚΘΕΣΗ ΓΙΑ ΤΟ ΕΒΕΑ. Το Ασφαλιστικό του 21ο αιώνα; Ανάγκη αναστοχασμού για μια νέα αρχή

ΝΕΑ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΑ ΠΡΟΪΟΝΤΑ- ΕΦΑΡΜΟΓΗ ΣΕ ΑΣΦΑΛΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΗ

Πρακτικό 6/2012 της συνεδρίασης της Επιτροπής Ποιότητας Ζωής, του Δήμου Λήμνου, της 4ης Μαΐου 2012.

ΝΟΜΟΣ 3263/2004 (ΦΕΚ 179 Α ) Μειοδοτικό σύστηµα ανάθεσης των δηµοσίων έργων και άλλες διατάξεις

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

Ατομικό ιστορικό νηπίου

Ε.Ε. Π α ρ.ι(i), Α ρ.3646, 25/10/2002. ΤΗΣ ΕΠΙΣΗΜΗΣ ΕΦΗΜΕΡΙΔΑΣ ΤΗΣ ΔΗΜΟΚΡΑΤΙΑΣ Αρ της 25ης ΟΚΤΩΒΡΙΟΥ 2002

«Φιλολογικό» Φροντιστήριο Επαναληπτικό διαγώνισμα στη Νεοελληνική Γλώσσα. Ενδεικτικές απαντήσεις. Περιθωριοποίηση μαθητών από μαθητές!

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ: Η οργάνωση σε τοπικό επίπεδο η περίπτωση του Δήμου Αγίου Αθανασίου στην Κύπρο.

ΠΡΟΣ: ΚΟΙΝ: ΘΕΜΑ: Ενηµερωτικό σηµείωµα για το πρόβληµα της παράνοµης υλοτοµίας και ειδικά αυτό της καυσοξύλευσης

Ρόδος και Αίγυπτος : λίκνα ευεργετισμού. Ματούλα Τομαρά-Σιδέρη

ΕΞΩΣΧΟΛΙΚΟ ΛΟΓΟΤΕΧΝΙΚΟ ΑΝΑΓΝΩΣΜΑ. Νικόστρατος Ένα ξεχωριστό καλοκαίρι. Κωνσταντίνα Αντωνοπούλου Α2 Γυμνασίου

Το συνέδριο σας πραγματοποιείται σε μια εξαιρετικά δύσκολη συγκυρία για τον τόπο, την οικονομία της χώρας, την κοινωνία και τον κόσμο της εργασίας.

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

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

Καλωσόρισμα επισήμων. Κυρίες και κύριοι,

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

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

ΔΛΠ 17. ΔΛΠ 17 Διεθνές Λογιστικό Πρότυπο 17. Μισθώσεις

ΕΘΝΙΚΗ ΣΥΝΟΜΟΣΠΟΝΔΙΑ ΕΛΛΗΝΙΚΟΥ ΕΜΠΟΡΙΟΥ ΜΗΤΡΟΠΟΛΕΩΣ 42, ΑΘΗΝΑ ΙΝΕΜΥ - ΕΣΕΕ

ΓΙΑ ΝΑ ΠΝΙΞΕΙΣ ΤΟ ΦΙΔΙ ΔΕΝ ΑΡΚΕΙ ΝΑ ΤΣΑΚΙΣΕΙΣ ΤΑ (ΧΡΥΣΑ) ΑΥΓΑ ΤΟΥ

Για να αρχίσει η λειτουργία του κινητήρα, θα πρέπει με εξωτερική παροχή ισχύος να προκαλέσουμε την αρχική περιστροφή του.

στο σχέδιο νόµου «Διαχείριση των µη εξυπηρετούµενων δανείων, µισθολογικές ρυθµίσεις και άλλες επείγουσες στόχων και διαρθρωτικών µεταρρυθµίσεων»

ΔΗΜΟΓΡΑΦΙΚΑ ΝΕΑ Demo Νews

Αυτός που δεν μπορεί να δει τα μικρά πράγματα είναι τυφλός και για τα μεγαλύτερα. (Κομφούκιος, πχ)

Transcript:

Αλγόριθμοι και Πολυπλοκότητα Άπληστοι Αλγόριθμοι και Δυναμικός Προγραμματισμός Ασκήσεις CoReLab ΣΗΜΜΥ - Ε.Μ.Π. 1 Δεκεμβρίου 214 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 1 / 52

Outline 1 Βιαστικός Μοτοσυκλετιστής 2 Επιτροπή Αντιπροσώπων 3 Βότσαλα στη Σκακιέρα 4 Μέγιστη Κοινή Υπακολουθία 5 Μέγιστη Αύξουσα Υπακολουθία 6 Edit Distance (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 2 / 52

Βιαστικός Μοτοσυκλετιστής 2 3 7 1 8 Α l 1 1 l 2 2 l 3 3 l 4 4 l 5 Β Είσοδος: n μήκη διαστημάτων n όρια ταχύτητας μία ταχύτητα u ένα χρονικό όριο T Εξοδος: Ο ελάχιστος χρόνος που χρειάζεται για να διανύσει την διαδρομή, αν επιτρέπεται να παραβεί τα όρια ταχύτητας μόνο για συνολική διάρκεια T και κατά ταχύτητα u. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 3 / 52

Βιαστικός Μοτοσυκλετιστής 2 3 7 1 8 Α l 1 1 l 2 2 l 3 3 l 4 4 l 5 Β Είσοδος: n μήκη διαστημάτων n όρια ταχύτητας μία ταχύτητα u ένα χρονικό όριο T Εξοδος: Ο ελάχιστος χρόνος που χρειάζεται για να διανύσει την διαδρομή, αν επιτρέπεται να παραβεί τα όρια ταχύτητας μόνο για συνολική διάρκεια T και κατά ταχύτητα u. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 3 / 52

Βιαστικός Μοτοσυκλετιστής Χρόνος για να διανύσει ένα διάστημα i Αν ξεπεράσει το όριο κατά u για χρόνο t i, dt i = t i + l i (u i + u) t i u i = l i u i u u i t i Δεδομένου ότι ο μοτοσυκλετιστής δεν επηρεάζει τον όρο l i u i, στόχος μας είναι max u u i t i s.t. t i = T t i l i u i + u (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 4 / 52

Βιαστικός Μοτοσυκλετιστής Χρόνος για να διανύσει ένα διάστημα i Αν ξεπεράσει το όριο κατά u για χρόνο t i, dt i = t i + l i (u i + u) t i u i = l i u i u u i t i Δεδομένου ότι ο μοτοσυκλετιστής δεν επηρεάζει τον όρο l i u i, στόχος μας είναι max u u i t i s.t. t i = T t i l i u i + u (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 4 / 52

Βιαστικός Μοτοσυκλετιστής Βέλτιστη Λύση Ξοδεύω όσο πιο πολύ χρόνο μπορώ σε διαστήματα με μεγάλό u u i, δηλαδή μικρό u i. Απόδειξη - Επιχείρημα Ανταλλαγής Εστω μία βέλτιστη λύση η οποία ορίζει χρόνους ti, και η δικιά μας λύση t i, όπου τα διαστήματα είναι ταξινομημένα με αύξοντα όρια ταχύτητας. Εστω k το διάστημα που διαφέρουν. Σίγουρα tk < t k, καθώς η λύση μας διαθέτει όσο το δυνατόν παραπάνω χρόνο μπορεί σε κάθε διάστημα με τη σειρά. Αν μεταφέρουμε συνολικό χρόνο t k tk από επόμενα διαστήματα στο διάστημα k, ο συνολικός χρόνος δεν χειροτερεύει και η λύση παραμένει βέλτιστη. Με την ίδια διαδικασία μπορούμε να μεταασχηματίσουμε τη βέλτιστη λύση στη δική μας χωρίς να αυξήσουμε το συνολικό χρόνο. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 5 / 52

Βιαστικός Μοτοσυκλετιστής Βέλτιστη Λύση Ξοδεύω όσο πιο πολύ χρόνο μπορώ σε διαστήματα με μεγάλό u u i, δηλαδή μικρό u i. Απόδειξη - Επιχείρημα Ανταλλαγής Εστω μία βέλτιστη λύση η οποία ορίζει χρόνους ti, και η δικιά μας λύση t i, όπου τα διαστήματα είναι ταξινομημένα με αύξοντα όρια ταχύτητας. Εστω k το διάστημα που διαφέρουν. Σίγουρα tk < t k, καθώς η λύση μας διαθέτει όσο το δυνατόν παραπάνω χρόνο μπορεί σε κάθε διάστημα με τη σειρά. Αν μεταφέρουμε συνολικό χρόνο t k tk από επόμενα διαστήματα στο διάστημα k, ο συνολικός χρόνος δεν χειροτερεύει και η λύση παραμένει βέλτιστη. Με την ίδια διαδικασία μπορούμε να μεταασχηματίσουμε τη βέλτιστη λύση στη δική μας χωρίς να αυξήσουμε το συνολικό χρόνο. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 5 / 52

Βιαστικός Μοτοσυκλετιστής Βέλτιστη Λύση Ξοδεύω όσο πιο πολύ χρόνο μπορώ σε διαστήματα με μεγάλό u u i, δηλαδή μικρό u i. Απόδειξη - Επιχείρημα Ανταλλαγής Εστω μία βέλτιστη λύση η οποία ορίζει χρόνους ti, και η δικιά μας λύση t i, όπου τα διαστήματα είναι ταξινομημένα με αύξοντα όρια ταχύτητας. Εστω k το διάστημα που διαφέρουν. Σίγουρα tk < t k, καθώς η λύση μας διαθέτει όσο το δυνατόν παραπάνω χρόνο μπορεί σε κάθε διάστημα με τη σειρά. Αν μεταφέρουμε συνολικό χρόνο t k tk από επόμενα διαστήματα στο διάστημα k, ο συνολικός χρόνος δεν χειροτερεύει και η λύση παραμένει βέλτιστη. Με την ίδια διαδικασία μπορούμε να μεταασχηματίσουμε τη βέλτιστη λύση στη δική μας χωρίς να αυξήσουμε το συνολικό χρόνο. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 5 / 52

Βιαστικός Μοτοσυκλετιστής Βέλτιστη Λύση Ξοδεύω όσο πιο πολύ χρόνο μπορώ σε διαστήματα με μεγάλό u u i, δηλαδή μικρό u i. Απόδειξη - Επιχείρημα Ανταλλαγής Εστω μία βέλτιστη λύση η οποία ορίζει χρόνους ti, και η δικιά μας λύση t i, όπου τα διαστήματα είναι ταξινομημένα με αύξοντα όρια ταχύτητας. Εστω k το διάστημα που διαφέρουν. Σίγουρα tk < t k, καθώς η λύση μας διαθέτει όσο το δυνατόν παραπάνω χρόνο μπορεί σε κάθε διάστημα με τη σειρά. Αν μεταφέρουμε συνολικό χρόνο t k tk από επόμενα διαστήματα στο διάστημα k, ο συνολικός χρόνος δεν χειροτερεύει και η λύση παραμένει βέλτιστη. Με την ίδια διαδικασία μπορούμε να μεταασχηματίσουμε τη βέλτιστη λύση στη δική μας χωρίς να αυξήσουμε το συνολικό χρόνο. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 5 / 52

Βιαστικός Μοτοσυκλετιστής Βέλτιστη Λύση Ξοδεύω όσο πιο πολύ χρόνο μπορώ σε διαστήματα με μεγάλό u u i, δηλαδή μικρό u i. Απόδειξη - Επιχείρημα Ανταλλαγής Εστω μία βέλτιστη λύση η οποία ορίζει χρόνους ti, και η δικιά μας λύση t i, όπου τα διαστήματα είναι ταξινομημένα με αύξοντα όρια ταχύτητας. Εστω k το διάστημα που διαφέρουν. Σίγουρα tk < t k, καθώς η λύση μας διαθέτει όσο το δυνατόν παραπάνω χρόνο μπορεί σε κάθε διάστημα με τη σειρά. Αν μεταφέρουμε συνολικό χρόνο t k tk από επόμενα διαστήματα στο διάστημα k, ο συνολικός χρόνος δεν χειροτερεύει και η λύση παραμένει βέλτιστη. Με την ίδια διαδικασία μπορούμε να μεταασχηματίσουμε τη βέλτιστη λύση στη δική μας χωρίς να αυξήσουμε το συνολικό χρόνο. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 5 / 52

Outline 1 Βιαστικός Μοτοσυκλετιστής 2 Επιτροπή Αντιπροσώπων 3 Βότσαλα στη Σκακιέρα 4 Μέγιστη Κοινή Υπακολουθία 5 Μέγιστη Αύξουσα Υπακολουθία 6 Edit Distance (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 6 / 52

Επιτροπή Αντιπροσώπων (ΚΤ 4.15) Είσοδος: n το πλήθος βάρδιες, η κάθε μία εκ των οποίων αντιστοιχεί σε έναν εθελοντή (οι βάρδιες μπορεί να επικαλύπτονται μεταξύ τους). Εξοδος: Ο μικρότερος αριθμός εθελοντών που μπορεί να σχηματίσει μία πλήρη επιτροπή αντιπροσώπων. Μία επιτροπή είναι πλήρης, αν για κάθε εθελοντή που δεν είναι μέλος της, υπάρχει ένας εθελοντής που είναι μέλος της και η βάρδιά του έχει επικάλυψη με του πρώτου. Ισοδύναμα Είσοδος: Διαστήματα [s i, f i ) i = 1,..., n. Εξοδος: Σύνολο διαστημάτων, ελαχίστου δυνατού μεγέθους, η ένωση των οποίων έχει επικάλυψη με κάθε διάστημα. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 7 / 52

Επιτροπή Αντιπροσώπων Είσοδος: Διαστήματα [s i, f i ) i = 1,..., n. Εξοδος: Σύνολο διαστημάτων, ελαχίστου δυνατού μεγέθους, η ένωση των οποίων έχει επικάλυψη με κάθε διάστημα. Λάθος Ιδέα: Οσο υπάρχουν ακάλυπτα διαστήματα, διάλεξε το μεγαλύτερο διάστημα που μπορεί να τα καλύψει. Αντιπαράδειγμα: optimal largest intervals (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 8 / 52

Επιτροπή Αντιπροσώπων Είσοδος: Διαστήματα [s i, f i ) i = 1,..., n. Εξοδος: Σύνολο διαστημάτων, ελαχίστου δυνατού μεγέθους, η ένωση των οποίων έχει επικάλυψη με κάθε διάστημα. Λύση: Οσο υπάρχουν ακάλυπτα διαστήματα: Βρες το ακάλυπτο διάστημα που τελειώνει νωρίτερα. Από τα διαστήματα που μπορούν να το καλύψουν, διάλεξε αυτό που τελειώνει αργότερα. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 9 / 52

Επιτροπή Αντιπροσώπων Λύση: Οσο υπάρχουν ακάλυπτα διαστήματα: Βρες το ακάλυπτο διάστημα που τελειώνει νωρίτερα. Από τα διαστήματα που μπορούν να το καλύψουν, διάλεξε αυτό που τελειώνει αργότερα. I1 I2 I3 I4 I5 I6 I7 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 1 / 52

Επιτροπή Αντιπροσώπων Λύση: Οσο υπάρχουν ακάλυπτα διαστήματα: Βρες το ακάλυπτο διάστημα που τελειώνει νωρίτερα. Από τα διαστήματα που μπορούν να το καλύψουν, διάλεξε αυτό που τελειώνει αργότερα. I1 I2 I3 I4 I5 I6 I7 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 11 / 52

Επιτροπή Αντιπροσώπων Λύση: Οσο υπάρχουν ακάλυπτα διαστήματα: Βρες το ακάλυπτο διάστημα που τελειώνει νωρίτερα. Από τα διαστήματα που μπορούν να το καλύψουν, διάλεξε αυτό που τελειώνει αργότερα. I1 I2 I3 I4 I5 I6 I7 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 12 / 52

Επιτροπή Αντιπροσώπων Λύση: Οσο υπάρχουν ακάλυπτα διαστήματα: Βρες το ακάλυπτο διάστημα που τελειώνει νωρίτερα. Από τα διαστήματα που μπορούν να το καλύψουν, διάλεξε αυτό που τελειώνει αργότερα. I1 I2 I3 I4 I5 I6 I7 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 13 / 52

Επιτροπή Αντιπροσώπων Λύση: Οσο υπάρχουν ακάλυπτα διαστήματα: Βρες το ακάλυπτο διάστημα που τελειώνει νωρίτερα. Από τα διαστήματα που μπορούν να το καλύψουν, διάλεξε αυτό που τελειώνει αργότερα. I1 I2 I3 I4 I5 I6 I7 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 14 / 52

Επιτροπή Αντιπροσώπων Απόδειξη Ορθότητας - Επιχείρημα Ανταλλαγής Εστω μία βέλτιστη λύση O και O η δική μας. Εστω ότι ταξινομούμε σε αύξουσα σειρά τα διαστήματά μας σύμφωνα με το χρόνο ολοκλήρωσής τους και το ίδιο κάνουμε και για τα διαστήματα της βέλτιστης λύσης. Εστω I το πρώτο διάστημα στο οποίο οι δύο λύσεις διαφέρουν. I (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 15 / 52

Επιτροπή Αντιπροσώπων Απόδειξη Ορθότητας - Επιχείρημα Ανταλλαγής Εστω N το σύνολο των διαστημάτων που καλύπτονται μόνο από το I στη βέλτιστη λύση. Προφανώς, N, αφού διαφορετικά δε θα ήταν βέλτιστη γιατί θα μπορούσαμε να αποκλείσουμε το I από τη λύση και να παίρναμε εφικτή λύση μικρότερου μεγέθους. I N (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 16 / 52

Επιτροπή Αντιπροσώπων Απόδειξη Ορθότητας - Επιχείρημα Ανταλλαγής Εστω J το διάστημα του N που τελειώνει νωρίτερα. J I (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 17 / 52

Επιτροπή Αντιπροσώπων Απόδειξη Ορθότητας - Επιχείρημα Ανταλλαγής Το J καλύπτεται μόνο από το I στη βέλτιστη λύση άρα το προηγούμενο διάστημα αυτής δεν το καλύπτει. Επομένως, αφού το I είναι το πρώτο διάστημα στο οποίο οι δύο λύσεις διαφέρουν, το J θα είναι μέχρι στιγμής ακάλυπτο και στη δική μας λύση. Ο δικός μας αλγόριθμος, αφού παράγει εφικτή λύση, για να καλύψει το ακάλυπτο J θα έχει επιλέξει ένα διάστημα I που έχει επικάλυψη με το J και, λόγω του κριτηρίου επιλογής, θα τελειώνει τουλάχιστον το ίδιο αργά με το I. Άρα θα καλύπτει τουλάχιστον όλο το N. J I I (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 18 / 52

Επιτροπή Αντιπροσώπων Απόδειξη Ορθότητας - Επιχείρημα Ανταλλαγής Ανταλλάσσοντας το I με το I επομένως θα είχαμε μία εφικτή λύση O ίδιου μεγέθους με τη βέλτιστη, δηλαδή θα ήταν κι αυτή βέλτιστη λύση. Συνεχίζοντας την ίδια διαδικασία, πλησιάζουμε όλο και πιο πολύ τη δική μας λύση, κρατώντας το μέγεθος ελάχιστο. Άρα και η δική μας λύση είναι βέλτιστη αφού περιλαμβάνει όλα τα διαστήματα της βέλτιστης εκτός από κάποια που αντικαθίστανται (1 προς 1) από τα I, I, κ.ο.κ. και κανένα άλλο διάστημα*. * Εστω ότι καθώς διατρέχουμε τις δύο λίστες με τα διαστήματα των δύο λύσεων, φθάνουμε στο τέλος της βέλτιστης και η δική μας έχει ένα ακόμα διάστημα E. Το E τελειώνει αργότερα από το τελευταίο μας μέχρι στιγμής. Το E όμως δε μπορεί να επιλέχθηκε για να καλύψει διάστημα το οποίο αρχίζει πριν το τέλος του τελευταίου μας, γιατί έχοντας το μεγαλύτερο χρόνο ολοκλήρωσης απ όλα θα είχε επιλεγεί στη θέση κάποιων προηγούμενων και άρα θα ήταν στη διαδικασία ανταλλαγής. Επίσης, δε μπορεί να επιλέχθηκε για να καλύψει διάστημα που αρχίζει μετά το τέλος του τελευταίου μας, αφού μέχρι τότε έχουμε καλύψει τουλάχιστον τόσα διαστήματα όσα καλύπτει η βέλτιστη λύση, δηλαδή όλα. Άρα δεν υπάρχει τέτοιο διάστημα. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 19 / 52

Επιτροπή Αντιπροσώπων Χρονική Πολυπλοκότητα Φτιάχνουμε δύο πίνακες S, F με τα διαστήματα ταξινομημένα ως προς τους χρόνους έναρξης και λήξης αντίστοιχα, σε χρόνο O(n log n). Χρησιμοποιούμε τον πρώτο για να βρίσκουμε τα ακάλυπτα διαστήματα και τον δεύτερο για να επιλέξουμε ποιό θα βάλουμε στη λύση μας. Στους πίνακες αυτούς αντιστοιχούν δείκτες p s, p f οι οποίοι, όπως θα φανεί, κινούνται πάντα προς τα δεξιά άρα η διαδικασία είναι γραμμικού χρόνου ως προς το n. Συνολικά, ο αλγόριθμός μας έχει πολυπλοκότητα: O(n log n) (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 2 / 52

Επιτροπή Αντιπροσώπων Χρονική Πολυπλοκότητα F = [ f 1 f 2 f 3 f 4 f 7 f 5 f 6 ] S = [ s 1 s 2 s 3 s 5 s 4 s 6 s 7 ] p f = 1 p s = 1 I 1 I 2 I 3 I 4 I 5 I 6 I 7 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 21 / 52

Επιτροπή Αντιπροσώπων Χρονική Πολυπλοκότητα F = [ ] f 1 f 2 f 3 f 4 f 7 f 5 f 6 S = [ ] s 1 s 2 s 3 s 5 s 4 s 6 s 7 p f = 1 p s = 1 I 1 I 2 I 3 I 4 I 5 I 6 I 7 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 22 / 52

Επιτροπή Αντιπροσώπων Χρονική Πολυπλοκότητα Κινούμαστε στον S μέχρι να βρούμε όλα τα διαστήματα που έχουν επικάλυψη με το I 1 (δηλαδή μέχρι s i f 1 ) και παράλληλα αποθηκεύουμε αυτό με το μεγαλύτερο f i (=f 2 ). Αυτά τα διαστήματα δεν θα τα ξανακοιτάξουμε αφού τελειώνουν πριν το διάστημα που επιλέξαμε και δεν υπάρχουν ακάλυπτα διαστήματα στα αριστερά τους. Άρα ο δείκτης p s την επόμενη φορά θα ξεκινήσει από το σημείο που έμεινε. Επειτα, κινούμαστε στον F μέχρι να βρούμε το επόμενο ακάλυπτο διάστημα (μέχρι s i f 2 ). (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 23 / 52

Επιτροπή Αντιπροσώπων Χρονική Πολυπλοκότητα F = [ ] f 1 f 2 f 3 f 4 f 7 f 5 f 6 S = [ ] s 1 s 2 s 3 s 5 s 4 s 6 s 7 p f = 4 p s = 3 I 1 I 2 I 3 I 4 I 5 I 6 I 7 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 24 / 52

Επιτροπή Αντιπροσώπων Χρονική Πολυπλοκότητα F = [ ] f 1 f 2 f 3 f 4 f 7 f 5 f 6 S = [ ] s 1 s 2 s 3 s 5 s 4 s 6 s 7 p f = 4 p s = 3 I 1 I 2 I 3 I 4 I 5 I 6 I 7 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 25 / 52

Επιτροπή Αντιπροσώπων Χρονική Πολυπλοκότητα F = [ ] f 1 f 2 f 3 f 4 f 7 f 5 f 6 S = [ ] s 1 s 2 s 3 s 5 s 4 s 6 s 7 p f = 8 p s = 8 I 1 I 2 I 3 I 4 I 5 I 6 I 7 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 26 / 52

Outline 1 Βιαστικός Μοτοσυκλετιστής 2 Επιτροπή Αντιπροσώπων 3 Βότσαλα στη Σκακιέρα 4 Μέγιστη Κοινή Υπακολουθία 5 Μέγιστη Αύξουσα Υπακολουθία 6 Edit Distance (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 27 / 52

Βότσαλα στη Σκακιέρα (DPV 6.5) Είσοδος: Μία σκακιέρα διαστάσεων 4 n και ένας ακέραιος σε κάθε κουτάκι. 17 22 14 5 92 71 2 48 39 1 29 2 42 54 5 23 98 7 6 Στόχος: Να τοποθετήσουμε βότσαλα στα κουτάκια, ώστε κανένα βότσαλο να μην συνορεύει με άλλο οριζόντια ή κάθετα, μεγιστοποιώντας το άθροισμα των αριθμών στα κουτάκια με βότσαλα. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 28 / 52

Βότσαλα στη Σκακιέρα (DPV 6.5) Είσοδος: Μία σκακιέρα διαστάσεων 4 n και ένας ακέραιος σε κάθε κουτάκι. 17 22 14 5 92 71 2 48 39 1 29 2 42 54 5 23 98 7 6 Στόχος: Να τοποθετήσουμε βότσαλα στα κουτάκια, ώστε κανένα βότσαλο να μην συνορεύει με άλλο οριζόντια ή κάθετα, μεγιστοποιώντας το άθροισμα των αριθμών στα κουτάκια με βότσαλα. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 28 / 52

Βότσαλα στη Σκακιέρα (DPV 6.5) Πρώτη Προσέγγιση Οσο υπάρχει χώρος, τοποθετούμε ένα βότσαλο στο κουτάκι με τον μεγαλύτερο αριθμό που επιτρέπεται. Αντιπαράδειγμα 99 99 1 99 99 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 29 / 52

Βότσαλα στη Σκακιέρα (DPV 6.5) Πρώτη Προσέγγιση Οσο υπάρχει χώρος, τοποθετούμε ένα βότσαλο στο κουτάκι με τον μεγαλύτερο αριθμό που επιτρέπεται. Αντιπαράδειγμα 99 99 1 99 99 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 29 / 52

Βότσαλα στη Σκακιέρα (DPV 6.5) Πρώτη Προσέγγιση Οσο υπάρχει χώρος, τοποθετούμε ένα βότσαλο στο κουτάκι με τον μεγαλύτερο αριθμό που επιτρέπεται. Αντιπαράδειγμα 99 99 1 99 αξία greedy 1 99 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 29 / 52

Βότσαλα στη Σκακιέρα (DPV 6.5) Πρώτη Προσέγγιση Οσο υπάρχει χώρος, τοποθετούμε ένα βότσαλο στο κουτάκι με τον μεγαλύτερο αριθμό που επιτρέπεται. Αντιπαράδειγμα 99 99 1 99 βέλτιστη αξία 396 99 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 29 / 52

Βότσαλα στη Σκακιέρα (DPV 6.5) Είναι όμως τόσο τραγικός ο greedy αλγόριθμος; Πρόταση Ο άπληστος αλγόριθμος είναι 1 4-προσεγγιστικός. Παράγει δηλαδή λύση αξίας τουλάχιστον το 25% της βέλτιστης. Απόδειξη. Εστω S το σύνολο των βοτσάλων της βέλτιστης λύσης αξίας OPT και S το σύνολο της άπληστης λύσης αξίας GR OPT = (S \ S) + (S S ) 4 (S \ S ) + (S S ) ( 4 (S \ S ) + ) (S S ) = 4GR (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 3 / 52

Βότσαλα στη Σκακιέρα (DPV 6.5) Είναι όμως τόσο τραγικός ο greedy αλγόριθμος; Πρόταση Ο άπληστος αλγόριθμος είναι 1 4-προσεγγιστικός. Παράγει δηλαδή λύση αξίας τουλάχιστον το 25% της βέλτιστης. Απόδειξη. Εστω S το σύνολο των βοτσάλων της βέλτιστης λύσης αξίας OPT και S το σύνολο της άπληστης λύσης αξίας GR OPT = (S \ S) + (S S ) 4 (S \ S ) + (S S ) ( 4 (S \ S ) + ) (S S ) = 4GR (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 3 / 52

Βότσαλα στη Σκακιέρα (DPV 6.5) Είναι όμως τόσο τραγικός ο greedy αλγόριθμος; Πρόταση Ο άπληστος αλγόριθμος είναι 1 4-προσεγγιστικός. Παράγει δηλαδή λύση αξίας τουλάχιστον το 25% της βέλτιστης. Απόδειξη. Εστω S το σύνολο των βοτσάλων της βέλτιστης λύσης αξίας OPT και S το σύνολο της άπληστης λύσης αξίας GR OPT = (S \ S) + (S S ) 4 (S \ S ) + (S S ) ( 4 (S \ S ) + ) (S S ) = 4GR (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 3 / 52

Βότσαλα στη Σκακιέρα (DPV 6.5) Αφού η σκακιέρα έχει σταθερό αριθμός γραμμών, κάθε στήλη μπορεί να γεμίσει με συγκεκριμένο αριθμό τρόπων. 1 2 3 4 5 6 7 8 Ο συνδυασμός που θα επιλέξω επηρεάζει τις υπόλοιπες επιλογές. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 31 / 52

Βότσαλα στη Σκακιέρα (DPV 6.5) v 18 v 28 v 17 v 27 v 16 v 26 v 15 v 25 v 14 v 24 v 13 v 23 v 12 v 22 v 11 v 21 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 32 / 52

Βότσαλα στη Σκακιέρα (DPV 6.5) v 18 v 28 v 17 v 27 v 16 v 26 v 15 v 25 v 14 v 24 v 13 v 23 v 12 v 22 v 11 v 21 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 32 / 52

Βότσαλα στη Σκακιέρα (DPV 6.5) v 18 v 28 v 17 v 27 v 16 v 26 v 15 v 25 v 14 v 24 v 13 v 23 v 12 v 22 v 11 v 21 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 32 / 52

Βότσαλα στη Σκακιέρα (DPV 6.5) v 18 v 28 v 17 v 27 v 16 v 26 v 15 v 25 v 14 v 24 v 13 v 23 v 12 v 22 v 11 v 21 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 32 / 52

Βότσαλα στη Σκακιέρα (DPV 6.5) v 18 v 28 v n8 v 17 v 27 v n7 v 16 v 26 v n6 v 15 v 25 v n5... v 14 v 24 v n4 v 13 v 23 v n3 v 12 v 22 v n2 v 11 v 21 v n1 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 32 / 52

Βότσαλα στη Σκακιέρα (DPV 6.5) Ιδέα Για κάθε στήλη, θα λύνω το πρόβλημα βέλτιστα για όλους του πιθανούς συνδυασμούς. Θα χρησιμοποιήσω δυναμικό προγραμματισμό στη σχέση C[i, j] = v ij + C[1, j] = v 1j max k adj(j) {C[i 1, k]} Οπου C[i, j]: η αξία της βέλτιστης λύσης για τις στήλες 1 εώς i όπου η στήλη i έχει συνδυασμό βοτσάλων j v ij : η αξία που παράγεται αν τοποθετηθούν βότσαλα σε συνδυασμό j στην στήλη i adj(j): οι συνδυασμού που μπορούν να συνορεύουν με το συνδυασμό j (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 33 / 52

Βότσαλα στη Σκακιέρα (DPV 6.5) Ιδέα Για κάθε στήλη, θα λύνω το πρόβλημα βέλτιστα για όλους του πιθανούς συνδυασμούς. Θα χρησιμοποιήσω δυναμικό προγραμματισμό στη σχέση C[i, j] = v ij + C[1, j] = v 1j max k adj(j) {C[i 1, k]} Οπου C[i, j]: η αξία της βέλτιστης λύσης για τις στήλες 1 εώς i όπου η στήλη i έχει συνδυασμό βοτσάλων j v ij : η αξία που παράγεται αν τοποθετηθούν βότσαλα σε συνδυασμό j στην στήλη i adj(j): οι συνδυασμού που μπορούν να συνορεύουν με το συνδυασμό j (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 33 / 52

Βότσαλα στη Σκακιέρα (DPV 6.5) Ιδέα Για κάθε στήλη, θα λύνω το πρόβλημα βέλτιστα για όλους του πιθανούς συνδυασμούς. Θα χρησιμοποιήσω δυναμικό προγραμματισμό στη σχέση C[i, j] = v ij + C[1, j] = v 1j max k adj(j) {C[i 1, k]} Οπου C[i, j]: η αξία της βέλτιστης λύσης για τις στήλες 1 εώς i όπου η στήλη i έχει συνδυασμό βοτσάλων j v ij : η αξία που παράγεται αν τοποθετηθούν βότσαλα σε συνδυασμό j στην στήλη i adj(j): οι συνδυασμού που μπορούν να συνορεύουν με το συνδυασμό j (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 33 / 52

Βότσαλα στη Σκακιέρα (DPV 6.5) Τελική Λύση Η τιμή της βέλτιστης λύσης είναι η μέγιστη τιμή της στήλης n OPT = max C[n, i] i Η λύση προκύτει από τον ίδιο τον πίνακα γυρνώντας προς τα πίσω από το τέλος. Χρονική Πολυπλοκότητα Ο πίνακας C έχει μέγεθος 4 n και αφού ο αριθμός των γραμμών είναι σταθερός, κάθε στήλη υπολογίζεται σε σταθερό χρόνο. Συνολικά Θ(n) (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 34 / 52

Outline 1 Βιαστικός Μοτοσυκλετιστής 2 Επιτροπή Αντιπροσώπων 3 Βότσαλα στη Σκακιέρα 4 Μέγιστη Κοινή Υπακολουθία 5 Μέγιστη Αύξουσα Υπακολουθία 6 Edit Distance (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 35 / 52

Μέγιστη Κοινή Υπακολουθία (CLRS ch15.4) Είσοδος: Δύο ακολουθείες χαρακτήρων Εξοδος: Η μέγιστη σε μήκος κοινή υποακολουθία (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 36 / 52

Μέγιστη Κοινή Υπακολουθία (CLRS ch15.4) Είσοδος: Δύο ακολουθείες χαρακτήρων Εξοδος: Η μέγιστη σε μήκος κοινή υποακολουθία B A N A N A B A T M A N (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 36 / 52

Μέγιστη Κοινή Υπακολουθία (CLRS ch15.4) Είσοδος: Δύο ακολουθείες χαρακτήρων Εξοδος: Η μέγιστη σε μήκος κοινή υποακολουθία B A N A N A B A T M A N (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 36 / 52

Μέγιστη Κοινή Υπακολουθία (CLRS ch15.4) Πρώτη Προσέγγιση Κοιτάζω τον πρώτο χαρακτήρα κάθε ακολουθίας: Αν είναι ίδιοι, τότε σίγουρα αποτελούν μέρος τη μέγιστης υποακολουθίας Αν όχι, πρέπει να πετάξω τον έναν από τους δύο και να συνεχίσω Πως ξέρω όμως ποιον χαρακτήρα θα αφήσω προκειμένου να έχω βέλτιστη λύση; (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 37 / 52

Μέγιστη Κοινή Υπακολουθία (CLRS ch15.4) Εστω C[i, j] το μήκος της μέγιστης κοινής υποακολουθίας που προκύπτει μέχρι και τον χαρακτήρα i της πρώτης ακολουθίας και τον χαρακτήρα j της δεύτερης. Γενικεύοντας της προηγούμενη ιδέα προκύπτει η αναδρομική σχέση { C[i 1, j 1] + 1, αν S i = S j C[i, j] = max(c[i 1, j], C[i, j 1]), διαφορετικά C[i, ] = C[, j] = Οπου S, S οι δύο ακολουθίες (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 38 / 52

Μέγιστη Κοινή Υπακολουθία (CLRS ch15.4) Χρησιμοποιώντας δυναμικό προγραμματισμό, η παραπάνω σχέση υπολογίζεται αποδοτικά ε ε B A N A N A B A T M A N (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 39 / 52

Μέγιστη Κοινή Υπακολουθία (CLRS ch15.4) Χρησιμοποιώντας δυναμικό προγραμματισμό, η παραπάνω σχέση υπολογίζεται αποδοτικά ε ε B B A A T N M A A N N A (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 39 / 52

Μέγιστη Κοινή Υπακολουθία (CLRS ch15.4) Χρησιμοποιώντας δυναμικό προγραμματισμό, η παραπάνω σχέση υπολογίζεται αποδοτικά ε ε B B A A T N M A A N N A 1 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 39 / 52

Μέγιστη Κοινή Υπακολουθία (CLRS ch15.4) Χρησιμοποιώντας δυναμικό προγραμματισμό, η παραπάνω σχέση υπολογίζεται αποδοτικά ε ε B B A A T N M A A N N A 1 1 1 1 1 1 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 39 / 52

Μέγιστη Κοινή Υπακολουθία (CLRS ch15.4) Χρησιμοποιώντας δυναμικό προγραμματισμό, η παραπάνω σχέση υπολογίζεται αποδοτικά ε ε B B A A T N M A A N N A 1 1 1 1 1 1 1 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 39 / 52

Μέγιστη Κοινή Υπακολουθία (CLRS ch15.4) Χρησιμοποιώντας δυναμικό προγραμματισμό, η παραπάνω σχέση υπολογίζεται αποδοτικά ε ε B B A A T N M A A N N A 1 1 1 1 1 1 1 2 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 39 / 52

Μέγιστη Κοινή Υπακολουθία (CLRS ch15.4) Χρησιμοποιώντας δυναμικό προγραμματισμό, η παραπάνω σχέση υπολογίζεται αποδοτικά ε ε B B A A T N M A A N N A 1 1 1 1 1 1 1 2 2 2 2 2 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 39 / 52

Μέγιστη Κοινή Υπακολουθία (CLRS ch15.4) Χρησιμοποιώντας δυναμικό προγραμματισμό, η παραπάνω σχέση υπολογίζεται αποδοτικά ε B A T M A N ε B A N A N A 1 1 1 1 1 1 1 2 2 2 2 2 1 2 2 2 2 2 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 39 / 52

Μέγιστη Κοινή Υπακολουθία (CLRS ch15.4) Χρησιμοποιώντας δυναμικό προγραμματισμό, η παραπάνω σχέση υπολογίζεται αποδοτικά ε B A T M A N ε B A N A N A 1 1 1 1 1 1 1 2 2 2 2 2 1 2 2 2 2 2 1 2 2 2 2 2 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 39 / 52

Μέγιστη Κοινή Υπακολουθία (CLRS ch15.4) Χρησιμοποιώντας δυναμικό προγραμματισμό, η παραπάνω σχέση υπολογίζεται αποδοτικά ε B A T M A N ε B A N A N A 1 1 1 1 1 1 1 2 2 2 2 2 1 2 2 2 2 2 1 2 2 2 2 2 1 2 2 3 3 3 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 39 / 52

Μέγιστη Κοινή Υπακολουθία (CLRS ch15.4) Χρησιμοποιώντας δυναμικό προγραμματισμό, η παραπάνω σχέση υπολογίζεται αποδοτικά ε B A T M A N ε B A N A N A 1 1 1 1 1 1 1 2 2 2 2 2 1 2 2 2 2 2 1 2 2 2 2 2 1 2 2 3 3 3 1 2 3 3 4 4 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 39 / 52

Μέγιστη Κοινή Υπακολουθία (CLRS ch15.4) Χρησιμοποιώντας δυναμικό προγραμματισμό, η παραπάνω σχέση υπολογίζεται αποδοτικά ε B A T M A N ε B A N A N A 1 1 1 1 1 1 1 2 2 2 2 2 1 2 2 2 2 2 1 2 2 2 2 2 1 2 2 3 3 3 1 2 3 3 4 4 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 39 / 52

Μέγιστη Κοινή Υπακολουθία (CLRS ch15.4) Τελική Λύση Η τιμή της βέλτιστης λύσης βρίσκεται στο C[n, m], ενώ από τον πίνακα μπορεί να βρεθεί πως προέκυψε κάθε τιμή. Τα στοιχεία της κοινής υποακολουθίας είναι ακριβώς αυτά που έγινα διαγώνιες μεταβάσεις. Χρονική Πολυπλοκότητα Ο πίνακας είναι διαστάσεων n m και κάθε κελί γεμίζει σε O(1), άρα συνολικά Θ(n m) (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 4 / 52

Outline 1 Βιαστικός Μοτοσυκλετιστής 2 Επιτροπή Αντιπροσώπων 3 Βότσαλα στη Σκακιέρα 4 Μέγιστη Κοινή Υπακολουθία 5 Μέγιστη Αύξουσα Υπακολουθία 6 Edit Distance (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 41 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Είσοδος: Ακολουθία n αριθμών: a 1,..., a n. Εξοδος: Μέγιστη (γνησίως) αύξουσα υπακολουθία. π.χ. Ακολουθία (n = 6): 5-2-6-3-6-9, δηλαδή a 1 = 5, a 2 = 2, a 3 = 6, a 4 = 3, a 5 = 6, a 6 = 9 Μέγιστη αύξουσα υπακολουθία: 2-3-6-9 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 42 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Είσοδος: Ακολουθία n αριθμών: a 1,..., a n. Εξοδος: Μέγιστη (γνησίως) αύξουσα υπακολουθία. π.χ. Ακολουθία (n = 6): 5-2-6-3-6-9, δηλαδή a 1 = 5, a 2 = 2, a 3 = 6, a 4 = 3, a 5 = 6, a 6 = 9 Μέγιστη αύξουσα υπακολουθία: 2-3-6-9 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 42 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Είσοδος: Ακολουθία n αριθμών: a 1,..., a n. Εξοδος: Μέγιστη (γνησίως) αύξουσα υπακολουθία. π.χ. Ακολουθία (n = 6): 5-2-6-3-6-9, δηλαδή a 1 = 5, a 2 = 2, a 3 = 6, a 4 = 3, a 5 = 6, a 6 = 9 Μέγιστη αύξουσα υπακολουθία: 2-3-6-9 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 42 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Είσοδος: Ακολουθία n αριθμών: a 1,..., a n. Εξοδος: Μέγιστη (γνησίως) αύξουσα υπακολουθία. Λύση με χρονική πολυπλοκότητα O(n 2 ): Από όλες τις αύξουσες υπακολουθίες που τελειώνουν στη θέση j {1,..., n}, διαλέγω τη μεγαλύτερη, μήκους έστω L(j). Επειτα, διαλέγω από τις τελευταίες και πάλι τη μεγαλύτερη, δηλαδή το κατάλληλο i τέτοιο ώστε i = argmax j {1,...,n} L(j). (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 43 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Λύση με χρονική πολυπλοκότητα O(n 2 ): Αρκεί να βρούμε τον αναδρομικό τύπο για το L(j). Φτιάχνουμε λίστες list(i) i = 1,..., n με τα στοιχεία που ικανοποιούν a j < a i και j < i σε χρόνο O(n 2 ) (κάθε αύξουσα υπακολουθία που τελειώνει στο i θα έχει προτελευταίο στοιχείο κάποιο από τη list(i)). Η μέγιστη αύξουσα υπακολουθία που τελειώνει στο j θα έχει μήκος ένα μεγαλύτερο από τη μέγιστη υπακολουθία που τελειώνει σε κάποιο στοιχείο του list(i). (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 44 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Λύση με χρονική πολυπλοκότητα O(n 2 ): Αρκεί να βρούμε τον αναδρομικό τύπο για το L(j). Φτιάχνουμε λίστες list(i) i = 1,..., n με τα στοιχεία που ικανοποιούν a j < a i και j < i σε χρόνο O(n 2 ) (κάθε αύξουσα υπακολουθία που τελειώνει στο i θα έχει προτελευταίο στοιχείο κάποιο από τη list(i)). Η μέγιστη αύξουσα υπακολουθία που τελειώνει στο j θα έχει μήκος ένα μεγαλύτερο από τη μέγιστη υπακολουθία που τελειώνει σε κάποιο στοιχείο του list(i). (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 44 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Λύση με χρονική πολυπλοκότητα O(n 2 ): Αρκεί να βρούμε τον αναδρομικό τύπο για το L(j). Φτιάχνουμε λίστες list(i) i = 1,..., n με τα στοιχεία που ικανοποιούν a j < a i και j < i σε χρόνο O(n 2 ) (κάθε αύξουσα υπακολουθία που τελειώνει στο i θα έχει προτελευταίο στοιχείο κάποιο από τη list(i)). Η μέγιστη αύξουσα υπακολουθία που τελειώνει στο j θα έχει μήκος ένα μεγαλύτερο από τη μέγιστη υπακολουθία που τελειώνει σε κάποιο στοιχείο του list(i). (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 44 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Λύση με χρονική πολυπλοκότητα O(n 2 ): Άρα L(j) = 1 + max{l(i) i list(j)} Για τον υπολογισμό κάθε ενός από τα L(i) συνεπώς χρειάζεται χρόνος list(i) n άρα συνολικά ο αλγόριθμός μας έχει πολυπλοκότητα O(n 2 ). Για να βρούμε την υπακολουθία αρκεί να αποθηκεύουμε ως προηγούμενο στοιχείο του j το στοιχείο που επιλέγεται στον υπολογισμό του L(j). (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 45 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Λύση με χρονική πολυπλοκότητα O(n 2 ): Άρα L(j) = 1 + max{l(i) i list(j)} Για τον υπολογισμό κάθε ενός από τα L(i) συνεπώς χρειάζεται χρόνος list(i) n άρα συνολικά ο αλγόριθμός μας έχει πολυπλοκότητα O(n 2 ). Για να βρούμε την υπακολουθία αρκεί να αποθηκεύουμε ως προηγούμενο στοιχείο του j το στοιχείο που επιλέγεται στον υπολογισμό του L(j). (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 45 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Λύση με χρονική πολυπλοκότητα O(n 2 ): Άρα L(j) = 1 + max{l(i) i list(j)} Για τον υπολογισμό κάθε ενός από τα L(i) συνεπώς χρειάζεται χρόνος list(i) n άρα συνολικά ο αλγόριθμός μας έχει πολυπλοκότητα O(n 2 ). Για να βρούμε την υπακολουθία αρκεί να αποθηκεύουμε ως προηγούμενο στοιχείο του j το στοιχείο που επιλέγεται στον υπολογισμό του L(j). (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 45 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Άλλη λύση με χρονική πολυπλοκότητα O(n 2 ): Μπορούμε να χρησιμοποιήσουμε κάπως το πρόβλημα της Μέγιστης Κοινής Υπακολουθίας; Φτιάχνουμε την ακολουθία a 1,..., a m η οποία αποτελείται από τα διαφορετικά στοιχεία της αρχικής ακολουθίας ταξινομημένα κατά αύξουσα σειρά. Η Μέγιστη Κοινή Υπακολουθία μεταξύ της ταξινομημένης και της αρχικής είναι και η ζητούμενη Μέγιστη Αύξουσα Υπακολουθία. Μπορούμε να βρούμε κάτι πιο γρήγορο; (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 46 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Άλλη λύση με χρονική πολυπλοκότητα O(n 2 ): Μπορούμε να χρησιμοποιήσουμε κάπως το πρόβλημα της Μέγιστης Κοινής Υπακολουθίας; Φτιάχνουμε την ακολουθία a 1,..., a m η οποία αποτελείται από τα διαφορετικά στοιχεία της αρχικής ακολουθίας ταξινομημένα κατά αύξουσα σειρά. Η Μέγιστη Κοινή Υπακολουθία μεταξύ της ταξινομημένης και της αρχικής είναι και η ζητούμενη Μέγιστη Αύξουσα Υπακολουθία. Μπορούμε να βρούμε κάτι πιο γρήγορο; (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 46 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Άλλη λύση με χρονική πολυπλοκότητα O(n 2 ): Μπορούμε να χρησιμοποιήσουμε κάπως το πρόβλημα της Μέγιστης Κοινής Υπακολουθίας; Φτιάχνουμε την ακολουθία a 1,..., a m η οποία αποτελείται από τα διαφορετικά στοιχεία της αρχικής ακολουθίας ταξινομημένα κατά αύξουσα σειρά. Η Μέγιστη Κοινή Υπακολουθία μεταξύ της ταξινομημένης και της αρχικής είναι και η ζητούμενη Μέγιστη Αύξουσα Υπακολουθία. Μπορούμε να βρούμε κάτι πιο γρήγορο; (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 46 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Λύση σε χρόνο O(n log n): Ορίζουμε: m(l) = δείκτης i τέτοιος ώστε το a i να είναι το μικρότερο στοιχείο στο οποίο τελειώνει κάποια αύξουσα υπακολουθία μήκους l p(i) = ο δείκτης του προτελευταίου στοιχείου της μέγιστης υπακολουθίας που τελειώνει στο a i. π.χ. Αύξουσες Υπακολουθίες μήκους l = 1: 5,2,6,3,6,9 a m(1) = a 2 = 2 Αύξουσες Υπακολουθίες μήκους l = 2: 5-6,5-6,5-9,2-6,2-3,2-6,2-9,6-9,3-9,6-9 a m(2) = a 4 = 3. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 47 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Λύση σε χρόνο O(n log n): Ορίζουμε: m(l) = δείκτης i τέτοιος ώστε το a i να είναι το μικρότερο στοιχείο στο οποίο τελειώνει κάποια αύξουσα υπακολουθία μήκους l p(i) = ο δείκτης του προτελευταίου στοιχείου της μέγιστης υπακολουθίας που τελειώνει στο a i. π.χ. Αύξουσες Υπακολουθίες μήκους l = 1: 5,2,6,3,6,9 a m(1) = a 2 = 2 Αύξουσες Υπακολουθίες μήκους l = 2: 5-6,5-6,5-9,2-6,2-3,2-6,2-9,6-9,3-9,6-9 a m(2) = a 4 = 3. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 47 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Λύση σε χρόνο O(n log n): Ορίζουμε: m(l) = δείκτης i τέτοιος ώστε το a i να είναι το μικρότερο στοιχείο στο οποίο τελειώνει κάποια αύξουσα υπακολουθία μήκους l p(i) = ο δείκτης του προτελευταίου στοιχείου της μέγιστης υπακολουθίας που τελειώνει στο a i. π.χ. Αύξουσες Υπακολουθίες μήκους l = 1: 5,2,6,3,6,9 a m(1) = a 2 = 2 Αύξουσες Υπακολουθίες μήκους l = 2: 5-6,5-6,5-9,2-6,2-3,2-6,2-9,6-9,3-9,6-9 a m(2) = a 4 = 3. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 47 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Λύση σε χρόνο O(n log n): Ορίζουμε: m(l) = δείκτης i τέτοιος ώστε το a i να είναι το μικρότερο στοιχείο στο οποίο τελειώνει κάποια αύξουσα υπακολουθία μήκους l p(i) = ο δείκτης του προτελευταίου στοιχείου της μέγιστης υπακολουθίας που τελειώνει στο a i. π.χ. Αύξουσες Υπακολουθίες μήκους l = 1: 5,2,6,3,6,9 a m(1) = a 2 = 2 Αύξουσες Υπακολουθίες μήκους l = 2: 5-6,5-6,5-9,2-6,2-3,2-6,2-9,6-9,3-9,6-9 a m(2) = a 4 = 3. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 47 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Λύση σε χρόνο O(n log n): m(l) = δείκτης i τέτοιος ώστε το a i να είναι το μικρότερο στοιχείο στο οποίο τελειώνει κάποια αύξουσα υπακολουθία μήκους l p(i) = ο δείκτης του προτελευταίου στοιχείου της μέγιστης υπακολουθίας που τελειώνει στο a i. Παρατήρηση: Το a m(1), a m(2),..., a m(lmax) είναι αύξουσα υπακολουθία. (Γιατί; Παρατηρήστε: Το a m(1) είναι το μικρότερο στοιχείο του πίνακα. Το a m(2), ως τελευταίο στοιχείο αύξουσας υπακολουθίας μήκους 2, είναι γνησίως μεγαλύτερο από τουλάχιστον ένα στοιχείο, έστω a k. Άρα a m(1) a k < a m(2).) (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 48 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Λύση σε χρόνο O(n log n): Για κάθε θέση του πίνακα i = 1,..., n: Ψάχνω το μεγαλύτερο μήκος υπακολουθίας l [, L max ] τέτοιο ώστε το a m(l) < a i (δυαδική αναζήτηση στα a m(1), a m(2),...). Το μήκος της μακρύτερης υπακολουθίας που τελειώνει στο a i θα είναι l + 1 και m(l) το προτελευταίο στοιχείο της. Άρα: m(l + 1) = i (αν υπήρχε στοιχείο < a i στο οποίο τελειώνει κάποια υπακολουθία μήκους l + 1, τότε η αναζήτηση δε θα είχε σταματήσει στο l) p(i) = m(l). Αν l + 1 > L max τότε αυτό είναι το νέο L max. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 49 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Λύση σε χρόνο O(n log n): Για κάθε θέση του πίνακα i = 1,..., n: Ψάχνω το μεγαλύτερο μήκος υπακολουθίας l [, L max ] τέτοιο ώστε το a m(l) < a i (δυαδική αναζήτηση στα a m(1), a m(2),...). Το μήκος της μακρύτερης υπακολουθίας που τελειώνει στο a i θα είναι l + 1 και m(l) το προτελευταίο στοιχείο της. Άρα: m(l + 1) = i (αν υπήρχε στοιχείο < a i στο οποίο τελειώνει κάποια υπακολουθία μήκους l + 1, τότε η αναζήτηση δε θα είχε σταματήσει στο l) p(i) = m(l). Αν l + 1 > L max τότε αυτό είναι το νέο L max. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 49 / 52

Μέγιστη Αύξουσα Υπακολουθία (DPV ch6.2) Λύση σε χρόνο O(n log n): Για κάθε θέση του πίνακα i = 1,..., n: Ψάχνω το μεγαλύτερο μήκος υπακολουθίας l [, L max ] τέτοιο ώστε το a m(l) < a i (δυαδική αναζήτηση στα a m(1), a m(2),...). Το μήκος της μακρύτερης υπακολουθίας που τελειώνει στο a i θα είναι l + 1 και m(l) το προτελευταίο στοιχείο της. Άρα: m(l + 1) = i (αν υπήρχε στοιχείο < a i στο οποίο τελειώνει κάποια υπακολουθία μήκους l + 1, τότε η αναζήτηση δε θα είχε σταματήσει στο l) p(i) = m(l). Αν l + 1 > L max τότε αυτό είναι το νέο L max. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 49 / 52

Outline 1 Βιαστικός Μοτοσυκλετιστής 2 Επιτροπή Αντιπροσώπων 3 Βότσαλα στη Σκακιέρα 4 Μέγιστη Κοινή Υπακολουθία 5 Μέγιστη Αύξουσα Υπακολουθία 6 Edit Distance (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 5 / 52

Edit Distance Είσοδος: Δύο ακολουθείες χαρακτήρων Εξοδος: Ο ελάχιστος αριθμός ενεργειών που απαιτούνται προκειμένου να γίνουν οι ακολουθίες ίδιες, όπου διαθέσιμες ενέργειες είναι: Προσθήκη Χαρακτήρα Διαγραφή Χαρακτήρα Αντικατάσταση Χαρακτήρα (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 51 / 52

Edit Distance Είσοδος: Δύο ακολουθείες χαρακτήρων Εξοδος: Ο ελάχιστος αριθμός ενεργειών που απαιτούνται προκειμένου να γίνουν οι ακολουθίες ίδιες, όπου διαθέσιμες ενέργειες είναι: Προσθήκη Χαρακτήρα Διαγραφή Χαρακτήρα Αντικατάσταση Χαρακτήρα S U N N Y S N O W Y (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 51 / 52

Edit Distance Είσοδος: Δύο ακολουθείες χαρακτήρων Εξοδος: Ο ελάχιστος αριθμός ενεργειών που απαιτούνται προκειμένου να γίνουν οι ακολουθίες ίδιες, όπου διαθέσιμες ενέργειες είναι: Προσθήκη Χαρακτήρα Διαγραφή Χαρακτήρα Αντικατάσταση Χαρακτήρα S U N N - Y S - N O W Y (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 51 / 52

Edit Distance Λύση Εστω E[i, j] το edit distance των ακολουθιών μέχρι και τους χαρακτήρες i, j των ακολουθιών. Τότε E[i, ] = i E[, j] = j E[i 1, j] + 1 E[i, j] = min E[i, j 1] + 1 E[i 1, j 1] + diff (i, j) Οπου diff (i, j) είναι αν οι χαρακτήρες i, j των ακολουθιών ταυτίζονται και 1 διαφορετικά. (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 1 Δεκεμβρίου 214 52 / 52