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

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

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

Αλγοριθμικές Τεχνικές

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

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

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

Δυναμικός Προγραμματισμός

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

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

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Δομές Δεδομένων & Αλγόριθμοι

καθ. Βασίλης Μάγκλαρης

Δυναμικός Προγραμματισμός

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

υναμικός Προγραμματισμός

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια

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

Δυναμικός Προγραμματισμός

Τεχνικές Σχεδιασμού Αλγορίθμων

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

υναμικός Προγραμματισμός

Αναδρομικοί Αλγόριθμοι

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 8: Δυναμικός Προγραμματισμός. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

Δυναμικός Προγραμματισμός

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

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

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

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25)

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

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

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

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

Μάθημα 20: Δυναμικός Προγραμματισμός (DP)

Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Υδατικών Πόρων και Περιβάλλοντος. Διαχείριση Υδατικών Πόρων

Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem

Σημειωματάριο Δευτέρας 4 Δεκ. 2017

Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Υδατικών Πόρων και Περιβάλλοντος. Τεχνολογία Συστημάτων Υδατικών Πόρων

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007

Διάλεξη 21: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους

Διαίρει και Βασίλευε. πρόβλημα μεγέθους Ν. διάσπαση. πρόβλημα μεγέθους k. πρόβλημα μεγέθους Ν-k

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

Fast Fourier Transform

Προσεγγιστικοί Αλγόριθμοι

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

Ερώτημα 1. Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n.

ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

υναμικός Προγραμματισμός

Ελαφρύτατες διαδρομές

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Ανάλυση Συσχέτισης IΙ

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων:

Κεφάλαιο 4. Δυναµικός Προγραµµατισµός (Dynamic Programming) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

4. ΔΙΚΤΥΑ

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

Στοχαστικές Στρατηγικές. διαδρομής (1)

Δομές Δεδομένων και Αλγόριθμοι

Ο Αλγόριθμος FP-Growth

Προγραμματισμός Ι (ΗΥ120)

Εργαστηριακή Άσκηση 1

ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Δομές Δεδομένων και Αλγόριθμοι

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

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

Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων:

ΑΕΠΠ ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 6.3 Φυσικές και Τεχνιτές Γλώσσες 6.4 Τεχνικές Σχεδίασης Προγραμμάτων

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

Δυναμικός προγραμματισμός για δέντρα

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

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

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

Συντομότερες Διαδρομές

ΣΤΟΧΑΣΤΙΚΕΣ ΔΙΕΡΓΑΣΙΕΣ & ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Αίθουσα Νέα Κτίρια ΣΗΜΜΥ Ε.Μ.Π.

Μέθοδοι Βελτιστοποίησης

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

ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

Αλγόριθμοι Γραφημάτων

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

Πρόβλημα συντομότερης διαδρομής - Shortest path problem. Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ

Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων

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

ΠΕΡΙΕΧΟΜΕΝΑ. Ανάλυση προβλημάτων Μέθοδοι σχεδίασης αλγορίθμων Μέθοδος διαίρει και βασίλευε Δυναμικός προγραμματισμός Απληστη μέθοδος

Διάλεξη 29: Γράφοι. Διδάσκων: Παναγιώτης Ανδρέου

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

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

Συντομότερες Διαδρομές

Outline. 6 Edit Distance

ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ (συνέχεια)

Transcript:

Θέματα Εφαρμογών Βάσεων Δεδομένων: Ιδιωτικότητα Δεδομένων 3. Δυναμικός Προγραμματισμός Ζαγορίσιος Παναγώτης Παπαοικονόμου Χριστίνα

Δυναμικός Προγραμματισμός Μέθοδος επίλυσης σύνθετων προβλημάτων. Όπως και η μέθοδος διαίρει και βασίλευε,ο δυναμικός προγραμματισμός επιλύει προβλήματα συνδιάζοντας λύσεις υποπροβλημάτων. Σημαντική διαφορά των μεθόδων: Η διαίρει και βασίλευε χωρίζει ένα πρόβλημα σε πολλά ανεξάρτητα υποπροβλήματα. Ο δυναμικός προγραμματισμός είναι εφαρμόσιμος όταν τα διάφορα υποπροβλήματα δεν είναι ανεξάρτητα(= έχουν κοινά υποπροβλήματα).

Δυναμικός Προγραμματισμός Ενώ ένας αλγόριθμος διαίρει και βασίλευε θα έλυνε κοινά υποπροβλήματα ξανά και ξανά. Αντίθετα ένας αλγόριθμος δυναμικού προγραμματισμού λύνει κάθε υποπρόβλημα ακριβώς μια φορά και καταχωρεί τη λύση του σε έναν πίνακα απ όπου μπορεί να τη διαβάσει κάθε φορά που το πρόβλημα ξανασυναντιέται. Εφαρμόζεται κατά κανόνα σε προβλήματα βελτιστοποίησης. Πολλές διαφορετικές λύσεις Μας ενδιαφέρει η λύση με την βέλτιση τιμή (ελάχιστη/μέγιστη) Η λύση που εξασφαλίζει την βέλτιστη τιμή καλείται βέλτιστη λύση

Βασική Ιδέα σπάσιμο του αρχικού προβλήματος σε απλούστερα υποπροβλήματα. επίλυση κάθε υποπροβλήματος ακριβώς μια φορά και αξιοποίηση των υπολύσεων τους στην εύρεση λύσεων μεγαλύτερων υποπροβλημάτων. αποτέλεσμα, ο υπολογισμός της συνολικής βέλτιστης λύσης.(με μικρό υπολογιστικό κόστος)

Βήματα Χαρακτηρίζουμε την δομή μιας βέλτιστης λύσης Ορίζουμε αναδρομικά την τιμή της βέλτιστης λύσης Υπολογίζουμε την τιμή μιας βέλτιστης λύσης εργαζόμενοι bottom-up (από κάτω προς τα επάνω) Κατασκευάζουμε μια βέλτιστη λύση από τα δεδομένα που έχουμε υπολογίσει. Το βήμα 4 παραλείπεται αν το ζητούμενο είναι η εύρεση της τιμής μόνο μιας βέλτιστης λύσης

Principle of Optimality(1/2) Ο Δ.Π αποτελεί γενίκευση της greedy μεθόδου που χρησιμοποείται για προβλήματα των οποίων η λύση μπορεί να θεωρηθεί σαν μια ακολουθία αποφάσεων. Σε πολλά προβλήματα που οι αποφάσεις εξαρτώνται από τοπικές πληροφορίες οδηγούν σε βέλτιστες λύσεις (greedy τεχνικές)

Principle of Optimality(2/2) Σε άλλα, όμως, δεν ισχύει. Γι αυτό θα πρέπει να δημιουργηθούν όλες οι σειρές των αποφάσεων και να επιλεχθεί η καλύτερη. Εδώ είναι που χρειάζεται δυναμικός προγραμματισμός... αποκλείει σειρές αποφάσεων χαρακτηρίζοντάς αυτές ως μη βέλτιστες.

Βασικά Στοιχεία Δυναμικού Προγραμματισμού(1/3) Βελτιστη υποδομή: αν μια βέλτιστη λύση εμπεριέχει βέλτιστες λύσεις στα υποπροβλήματα. Greedy αλγόριθμοι: η βέλτιστη υποδομή χρησιμοποιείται top-down και όχι bottom-up Ανεξάρτητα υποπροβλήματα: η λύση σε κάποιο υποπρόβλημα δεν επηρεάζει την λύση σε κάποιο άλλο υποπρόβλημα του ίδιου προβλήματος. δεν έχουν κοινούς πόρους

Βασικά Στοιχεία Δυναμικού Προγραμματισμού(2/3) Επικάλυψη προβλημάτων: όταν ο αναδρομικός αλγόριθμος επανέρχεται στο ίδιο πρόβλημα ξανά και ξανά dynamic programming: χρήση πίνακα για αποθήκευση της λύσης 2 υποπροβλήματα επικαλύπτονται εάν είναι το ίδιο υποπρόβλημα που εμφανίζεται ως υποπρόβλημα διαφορετικών προβλημάτων.

Βασικά Στοιχεία Δυναμικού Προγραμματισμού(3/3) Ανασύνθεση μια βέλτιστης λύσης Αποθήκευση των επιλογών που κάνουμε σε κάθε υποπρόβλημα ώστε να μην είμαστε αναγκασμένοι να ανασυνθέσουμε αυτές τις πληροφορίες ξανά.

Αλγόριθμος Floyd-Warshall Δεδομένου ενός κατευθυνόμενου γράφου G=(V,E) με βάρη, στόχος είναι η εύρεση των ελάχιστων (ελαφρύτατων) διαδρομών μεταξύ όλων των ζευγαριών των κόμβων. Ο αλγόριθμος εξετάζει τους ενδιάμεσους κόμβους Function: shortest_path(i,j,k) υπολογίζει και επιστρέφει το συντομότερο μονοπάτι από τον κόμβο i στον j με ενδιάμεσους κόμβους {1,...,k}

Δομή μιας ελαφρύτατης διαδρομής(1/2) Έστω p διαδρομή ελάχιστου βάρους από τον i j κόμβο. Αν ο k ΔΕΝ είναι ενδιάμεσος κόμβος της διαδρομής p τότε ενδιάμεσοι={1,...,k-1} Μια ελαφρύτατη διαδρομή p από i j με ενδιάμεσoυς κόμβους={1,..k-1} αποτελεί επίσης ελαφρύτατη διαδρομή από i j με ενδιάμεσους κόμους={1,...,k}.

Δομή μιας ελαφρύτατης διαδρομής(2/2) Αν k είναι ενδιάμεσος κόμβος της διαδρομής p, τότε αναλύουμε την p στις υποδιαδρομές p1: i k και p2: k j p1 ελαφρύτατη με ενδιάμεσους={1,...,k-1} p2 ελαφρύτατη με ενδιάμεσους={1,...,k-1} Επομένως, i k shortest path i j shortest path k j shortest path με ενδιάμεσο κόμβο τον k

Αναδρομική λύση If w ij : weight of edge between i j d (k) ij : το βάρος μιας ελαφρύτατης διαδρομής i j με ενδιάμεσους κόμβους ={1,...,k} d (k) ij = w ij k=0 d (k) ij = min {d(k-1) ij, d(k-1) ik + d(k-1) kj } k 1

Bottop-up υπολογισμός n = rows(w) D(0)= W for k=1:n for i=1:n for j=1:n d (k) ij = min {d(k-1) ij, d(k-1) ik + d(k-1) kj } return D(n)

Παράδειγμα 1 1 2-1 D(0) -2 3 3 5 5 4 4 2 3 0 1-2 0-1 3 0 2 0 4 3 5 4 0 D(1) 0 1-2 0-1 3 0 2 0 4 3 4 1 0 D(2) 0 1 0-2 0-1 3 0 2 0 4 3 4 3 1 0 D(3) 0 1 0-2 0-1 1 0 2 0 4 3 4 3 1 0

Παράδειγμα D(4) D(5) 0 1 0-2 2 0-1 1 5 0 2 6 0 4 3 4 3 1 0 0 1 0-2 2 8 0-1 1 5 9 10 0 2 6 7 8 7 0 4 3 4 3 1 0