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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

1 Αλγόριθμοι και Πολυπλοκότητα 2η Σειρά Γραπτών και Προγραμματιστικών Ασκήσεων CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Δεκέμβριος 2018 (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

2 Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 1η προγραμματιστική 7 2η προγραμματιστική (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

3 Άσκηση 1 (α.1): Δρομολόγηση Μαθημάτων Το Πρόβλημα Δρομολόγησης Μαθημάτων Είσοδος: Χρονικά διαστήματα διδασκαλίας μαθημάτων [s i, f i ), i = 1,..., n. Ζητείται: Μεγίστου πλήθους σύνολο μαθημάτων χωρίς επικαλύψεις. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

4 Άσκηση 1 (α.1): Άπληστα Κριτήρια Δρομολόγησης Μαθημάτων 1. Λιγότερες Επικαλύψεις Λάθος! Αντιπαράδειγμα: I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11 Λύση Κριτηρίου, S 1 : Επιλέγει τα I 6, I 1, I 4. = S 1 = 3. Βέλτιστη Λύση, OPT : {I 1, I 2, I 3, I 4 } = OPT = 4. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

5 Άσκηση 1 (α.1): Άπληστα Κριτήρια Δρομολόγησης Μαθημάτων 1. Λιγότερες Επικαλύψεις Λάθος! Αντιπαράδειγμα: I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11 Λύση Κριτηρίου, S 1 : Επιλέγει τα I 6, I 1, I 4. = S 1 = 3. Βέλτιστη Λύση, OPT : {I 1, I 2, I 3, I 4 } = OPT = 4. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

6 Άσκηση 1 (α.1): Άπληστα Κριτήρια Δρομολόγησης Μαθημάτων 1. Λιγότερες Επικαλύψεις Λάθος! Αντιπαράδειγμα: I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11 Λύση Κριτηρίου, S 1 : Επιλέγει τα I 6, I 1, I 4. = S 1 = 3. Βέλτιστη Λύση, OPT : {I 1, I 2, I 3, I 4 } = OPT = 4. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

7 Άσκηση 1 (α.1): Άπληστα Κριτήρια Δρομολόγησης Μαθημάτων 2. Μεγαλύτερη Διάρκεια Λάθος! Αντιπαράδειγμα: I 1 I 2 I 3 Λύση Κριτηρίου, S 2 : Διαγράφει πρώτα το I 1 και μετά το I 2 = S 2 = {I 3 } = 1. Βέλτιστη Λύση, OPT : {I 1, I 3 } = OPT = 2. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

8 Άσκηση 1 (α.1): Άπληστα Κριτήρια Δρομολόγησης Μαθημάτων 2. Μεγαλύτερη Διάρκεια Λάθος! Αντιπαράδειγμα: I 1 I 2 I 3 Λύση Κριτηρίου, S 2 : Διαγράφει πρώτα το I 1 και μετά το I 2 = S 2 = {I 3 } = 1. Βέλτιστη Λύση, OPT : {I 1, I 3 } = OPT = 2. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

9 Άσκηση 1 (α.1): Άπληστα Κριτήρια Δρομολόγησης Μαθημάτων 2. Μεγαλύτερη Διάρκεια Λάθος! Αντιπαράδειγμα: I 1 I 2 I 3 Λύση Κριτηρίου, S 2 : Διαγράφει πρώτα το I 1 και μετά το I 2 = S 2 = {I 3 } = 1. Βέλτιστη Λύση, OPT : {I 1, I 3 } = OPT = 2. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

10 Άσκηση 1 (α.1): Άπληστα Κριτήρια Δρομολόγησης Μαθημάτων 3. Περισσότερες Επικαλύψεις Λάθος! Αντιπαράδειγμα: I 1 I 2 I 3 I 4 I 5 I 6 I 7 Λύση Κριτηρίου, S 3 : Διαγράφει πρώτα το I 4, έπειτα τα I 3, I 5, I 2, I 6. = S 3 = {I 1, I 7 } = 2. Βέλτιστη Λύση, OPT : {I 1, I 4, I 7 } = OPT = 3. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

11 Άσκηση 1 (α.1): Άπληστα Κριτήρια Δρομολόγησης Μαθημάτων 3. Περισσότερες Επικαλύψεις Λάθος! Αντιπαράδειγμα: I 1 I 2 I 3 I 4 I 5 I 6 I 7 Λύση Κριτηρίου, S 3 : Διαγράφει πρώτα το I 4, έπειτα τα I 3, I 5, I 2, I 6. = S 3 = {I 1, I 7 } = 2. Βέλτιστη Λύση, OPT : {I 1, I 4, I 7 } = OPT = 3. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

12 Άσκηση 1 (α.1): Άπληστα Κριτήρια Δρομολόγησης Μαθημάτων 3. Περισσότερες Επικαλύψεις Λάθος! Αντιπαράδειγμα: I 1 I 2 I 3 I 4 I 5 I 6 I 7 Λύση Κριτηρίου, S 3 : Διαγράφει πρώτα το I 4, έπειτα τα I 3, I 5, I 2, I 6. = S 3 = {I 1, I 7 } = 2. Βέλτιστη Λύση, OPT : {I 1, I 4, I 7 } = OPT = 3. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

13 Άσκηση 1 (α.2): Δρομολόγηση Μαθημάτων με Βάρη Είσοδος: Χρονικά διαστήματα μαθημάτων [s i, f i ), i = 1,..., n με αντίστοιχες διδακτικές μονάδες w i. Ζητείται: Σύνολο μαθημάτων χωρίς επικαλύψεις με μέγιστο συνολικό άθροισμα διδακτικών μονάδων. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

14 Άσκηση 1 (α.2): Δρομολόγηση Μαθημάτων με Βάρη Λύση: Ταξινομούμε τα χρονικά διαστήματα σε αύξουσα σειρά με βάση το χρόνο ολοκλήρωσής τους, έστω για ευκολία f 1,..., f n αυτή η σειρά. Συμβολίζουμε με C[i] το μέγιστο σύνολο διδακτικών μονάδων μίας βέλτιστης λύσης για τα μαθήματα {1,..., i}. Προφανώς, η ζητούμενη λύση είναι η C[n] και η σχέση αρχικοποιείται στο C[1] = w 1. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

15 Άσκηση 1 (α.2): Δρομολόγηση Μαθημάτων με Βάρη Λύση: Για την κατασκευή της αναδρομικής σχέσης, χρειαζόμαστε έναν πίνακα μήκους n, κάθε στοιχείο prev[i] του οποίου θα περιέχει το δείκτη του μαθήματος που τελειώνει αργότερα και δεν έχει επικάλυψη με το i. Η αναδρομική σχέση είναι: C[i] = max{w i + C[prev[i]], C[i 1]} (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

16 Άσκηση 1 (α.2): Δρομολόγηση Μαθημάτων με Βάρη Ταξινόμηση διαστημάτων και κατασκευή πίνακα prev: O(n log n). Εύρεση ενός εκ των n στοιχείων του πίνακα της C : O(1). Άρα συνολικά: Πολυπλοκότητα O(n log n) Σημείωση: Η ανακατασκευή της λύσης γίνεται από τον πίνακα, σε O(n). (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

17 Άσκηση 1 (β): Ανακοινώσεις Είσοδος: Χρονικά διαστήματα μαθημάτων [s i, f i ), i = 1,..., n. Ζητείται: Σύνολο στιγμών που αγγίζουν όλα τα μαθήματα και έχουν ελάχιστο πλήθος. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

18 Άσκηση 1 (β): Ανακοινώσεις Λύση: Θεωρούμε ότι μία ανακοίνωση τη χρονική στιγμή f i ενημερώνει και τους φοιτητές του μαθήματος i. Ταξινομούμε τα χρονικά διαστήματα σε αύξουσα σειρά με βάση το χρόνο ολοκλήρωσής τους, έστω για ευκολία f 1,..., f n αυτή η σειρά. Βάζουμε στη λύση μας το σημείο f i του πρώτου ακάλυπτου διαστήματος, σημειώνουμε ποιά διαστήματα έχουμε καλύψει και συνεχίζουμε με το επόμενο ακάλυπτο διάστημα. (βλ. Ἁσκήσεις σε άπληστους αλγόριθμους και δυναμικό προγραμματισμό ) Πολυπλοκότητα O(n log n) (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

19 Άσκηση 1 (β): Ανακοινώσεις Απόδειξη ορθότητας: Εστω P το σύνολο στιγμών που επέλεξε ο αλγόριθμός μας, O το σύνολο της βέλτιστης λύσης και έστω ότι στο πρώτο σημείο στο οποίο διαφέρουν ο αλγόριθμός μας επιλέγει p = f k 1 (για να καλύψει το διάστημα [s k, f k )) ενώ η βέλτιστη λύση έχει στην ίδια θέση τη στιγμή o. Αν o > p, τότε η βέλτιστη λύση δεν αγγίζει το διάστημα k (αφού μέχρι τώρα καλύπτουν τα ίδια διαστήματα) και οι φοιτητές του μαθήματος k μένουν ανενημέρωτοι στη βέλτιστη λύση! Άτοπο. Αν o < p: Μέχρι τώρα και οι δύο λύσεις έχουν καλύψει όλα τα διαστήματα που τελειώνουν πριν τη στιγμή f k. Άρα αντικαθιστώντας το o με p = f k 1 η βέλτιστη λύση συνεχίζει να καλύπτει το [s k, f k ) και αποκλείεται να χάνει κάποιο άλλο διάστημα γιατί κάθε άλλο ακάλυπτο διάστημα τελειώνει μετά το f k άρα αν το άγγιζε με το o θα το αγγίζει και με το p. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

20 Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 1η προγραμματιστική 7 2η προγραμματιστική (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

21 Άσκηση 2: Τηλεπαιχνίδι Είσοδος: Ο παίκτης έχει n σφυριά μιας χρήσης, το καθένα με με δύναμη f j > 0 και n κουτιά, που το καθένα περιέχει v i 0 ευρώ και αντέχει δύναμη p i 0. Ζητείται: Ενα ταίριασμα M των σφυριών με τα κουτιά ώστε να μεγιστοποιείται η συνολική αξία των σπασμένων κουτιών που κερδίζει ο παίκτης. v i, όπου W = {i f M(i) p i } i W (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

22 Άσκηση 2: Τηλεπαιχνίδι Άπληστο κριτήριο # 1 Προσπάθησε να σπάσεις κουτιά με όσο δυνατόν μεγαλύτερη αξία. Άπληστο κριτήριο # 2 Προσπάθησε να μην χρησιμοποιείς σφυριά με μεγάλο f i εκεί που δεν χρειάζεται. Λύση Ταξινόμησε τα κουτιά σε φθίνουσα σειρά v i Στο κουτί i, αντιστοίχισε το σφυρί με το ελάχιστο δυνατό βάρος ώστε f i p i. Αν για κανένα από τα σφυριά που μένουν, δεν ισχύει f i p i, αντιστοίχισε το κουτί με το ελάχιστο f i (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

23 Άσκηση 2: Τηλεπαιχνίδι Ορθότητα Εστω κάποια βέλτιστη λύση του προβλήματος OPT. Εξετάζω τα κουτιά σε φθίνουσα σειρά v i, και έστω ότι οι λύσεις διαφέρουν για πρώτη φορά στο κουτί i που η Greedy αντιστοιχεί στο σφυρί j. Διακρίνω περιπτώσεις: Η Greedy λύση χάνει το κουτί i και η OPT το κερδίζει. Άτοπο! Η OPT χάνει το κουτί και η Greedy το κερδίζει. Μπορώ να αντιστοιχίσω το κουτί i στο σφυρί j, στην OPT λύση, χωρίς να χάσω αξία (αφού η OPT χρησιμοποιεί το σφυρί j για να σπάσει - η να μη σπάσει - κουτί μικρότερης αξίας). (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

24 Άσκηση 2: Τηλεπαιχνίδι Ορθότητα (Συν.) Η OPT σπάει το i με σφυρί μικρότερου βάρους. Άτοπο! Η OPT σπάει το i με σφυρί μεγαλύτερου βάρους. Μπορώ να κάνω την αλλαγή i k, j l στην OPT λύση και να μη χαλάσω την αξία της λύσης (v i > v j ). Με το ίδιο επιχείρημα, μπορώ να κάνω τη βέλτιστη ίδια με την greedy χωρίς να χαλάσω την αξία της. Άρα η greedy είναι βέλτιση. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

25 Άσκηση 2: Τηλεπαιχνίδι Χρονική Πολυπλοκότητα Βήματα αλγορίθμου: Ταξινόμηση κουτιών: O(n log n) Για κάθε κουτί i, αναζήτηση του ελάχιστου f i ώστε f i p i. Δεν αρκεί ταξινόμηση ως προς f i, καθώς τα σφυριά που χρησιμοποιούνται χαλάνε τη δυαδική αναζήτηση. Με χρήση δέντρου δυαδικής αναζήτησης: O(log n) Συνολικά O(n log n) (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

26 Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 1η προγραμματιστική 7 2η προγραμματιστική (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

27 Άσκηση 3: Αναμνηστικά Είσοδος: n πόλεις, Προυπολογισμός C, Πίνακας p ij συναισθηματικής αξίας, Πίνακας c ij χρηματικής αξίας. Εξοδος: Επιλογή αντικειμένων (a 1,..., a n ) ένα για κάθε πόλη, ώστε n j=1 c ja j C και να μεγιστοποιείται η συνολική συναισθηματική αξία. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

28 Άσκηση 3: Αναμνηστικά Διαίσθηση Εστω (a1,..., a n) η βέλτιστη λύση του προβλήματος. Τότε, η (a1,..., a n 1 ) είναι βέλτιστη λύση του προβλήματος με C = C c nan για τις n 1 πόλεις. Αρχή βελτιστότητας = δυναμικός προγραμματισμός! (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

29 Άσκηση 3: Αναμνηστικά Λύση Εστω A ένας n C πίνακας με A[i, j] η μέγιστη δυνατή συναισθηματική αξία για τις πόλεις 1 έως i με προυπολογισμό j. Ακραίες περιπτώσεις: A[i, j] = 1 αν τα χρήματα j δεν επαρκούν για να αγοραστεί αντικείμενο από την πόλη i A[1, j] υπολογίζεται εύκολα. Αναδρομική σχέση : A[i, j] = max 1 u ki,c iu j(a[i 1, j c iu ] + p iu ) (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

30 Άσκηση 3: Αναμνηστικά Λύση Εστω A ένας n C πίνακας με A[i, j] η μέγιστη δυνατή συναισθηματική αξία για τις πόλεις 1 έως i με προυπολογισμό j. Ακραίες περιπτώσεις: A[i, j] = 1 αν τα χρήματα j δεν επαρκούν για να αγοραστεί αντικείμενο από την πόλη i A[1, j] υπολογίζεται εύκολα. Αναδρομική σχέση : A[i, j] = max 1 u ki,c iu j(a[i 1, j c iu ] + p iu ) (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

31 Άσκηση 3: Αναμνηστικά Λύση Εστω A ένας n C πίνακας με A[i, j] η μέγιστη δυνατή συναισθηματική αξία για τις πόλεις 1 έως i με προυπολογισμό j. Ακραίες περιπτώσεις: A[i, j] = 1 αν τα χρήματα j δεν επαρκούν για να αγοραστεί αντικείμενο από την πόλη i A[1, j] υπολογίζεται εύκολα. Αναδρομική σχέση : A[i, j] = max 1 u ki,c iu j(a[i 1, j c iu ] + p iu ) (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

32 Άσκηση 3: Αναμνηστικά Αλγόριθμος Γεμίζουμε τον πίνακα ξεκινώντας από i = 1 μέχρι n χρησιμοποιώντας την αναδρομή. Η βέλτιστη επιλογή αντικειμένων προκύπτει από τις επιλογές του u που δίνει το max. Χρονική πολυπλοκότητα O(nCK), όπου K = max i k i. Δεν υπάρχει πολυωνυμικός αλγόριθμος, εκτός αν P = NP (αναγωγή από Discrete Knapsack). (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

33 Άσκηση 3: Αναμνηστικά Αλγόριθμος Γεμίζουμε τον πίνακα ξεκινώντας από i = 1 μέχρι n χρησιμοποιώντας την αναδρομή. Η βέλτιστη επιλογή αντικειμένων προκύπτει από τις επιλογές του u που δίνει το max. Χρονική πολυπλοκότητα O(nCK), όπου K = max i k i. Δεν υπάρχει πολυωνυμικός αλγόριθμος, εκτός αν P = NP (αναγωγή από Discrete Knapsack). (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

34 Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 1η προγραμματιστική 7 2η προγραμματιστική (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

35 Άσκηση 4: Σοκολατάκια (γνησίως αύξουσα κατανάλωση) Είσοδος: Ακολουθία n ζευγών (q i, t i ), όπου q i το πλήθος από σοκολατάκια που περιέχει το κουτί i και t i ο τύπος τους, αρχική θέση (κουτί) p και ελάχιστο πλήθος Q σοκολατακίων που πρέπει να καταναλωθούν. Τα κουτιά είναι διατεταγμένα σε γραμμή και το κόστος μετακίνησης από το i στο j είναι i j. Ζητείται: Σε κάθε βήμα μπορούμε να φάμε μόνο περισσότερα σοκολατάκια και διαφορετικού τύπου από το προηγούμενο και ξεκινάμε από το κουτί p. Ποιος είναι ο ελάχιστος χρόνος (και αλληλουχία κουτιών) για να φάμε τουλάχιστον Q σοκολατάκια. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

36 Άσκηση 4: Σοκολατάκια (γνησίως αύξουσα κατανάλωση) Λύση: Δυναμικός Προγραμματισμός. Αφού τελειώνουμε με κατανάλωση (δεν συμφέρει να μετακινηθούμε μόλις φάμε Q σοκολατάκια), μπορούμε να ασχοληθούμε με τα υπο-προβλήματα c[i, j] όπου όπου c[i, j] ο ελάχιστος χρόνος που χρειαζόμαστε για να φάμε i σοκολατάκια, τρόγωντας στο τέλος από το κουτί j. Αναδρομική Σχέση c[min{q j + q, Q}][j] = min {i i {1,..,n}, q i <q j, t i t j } {c[q][i] + i j } Αρχή βελτιστότητας: Αν η βέλτιστη ακολουθία κουτιών που τρώμε, για να φάμε i σοκολατάκια καταλήγοντας στο κουτί j είναι k a, k b, k o, k i, η βέλτιστη ακολουθία για να φάμε i q j σοκολατάκια καταλήγοντας στο κουτί k o είναι k a, k b, k o. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

37 Άσκηση 4: Σοκολατάκια (γνησίως αύξουσα κατανάλωση) Λύση: Δυναμικός Προγραμματισμός. Αφού τελειώνουμε με κατανάλωση (δεν συμφέρει να μετακινηθούμε μόλις φάμε Q σοκολατάκια), μπορούμε να ασχοληθούμε με τα υπο-προβλήματα c[i, j] όπου όπου c[i, j] ο ελάχιστος χρόνος που χρειαζόμαστε για να φάμε i σοκολατάκια, τρόγωντας στο τέλος από το κουτί j. Αναδρομική Σχέση c[min{q j + q, Q}][j] = min {i i {1,..,n}, q i <q j, t i t j } {c[q][i] + i j } Αρχή βελτιστότητας: Αν η βέλτιστη ακολουθία κουτιών που τρώμε, για να φάμε i σοκολατάκια καταλήγοντας στο κουτί j είναι k a, k b, k o, k i, η βέλτιστη ακολουθία για να φάμε i q j σοκολατάκια καταλήγοντας στο κουτί k o είναι k a, k b, k o. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

38 Άσκηση 4: Σοκολατάκια (γνησίως αύξουσα κατανάλωση) Λύση: c[min{q j + q, Q}][j] = min {i i {1,..,n}, q i <q j, t i t j } {c[q][i] + i j } Τρέχουμε για q από 1 μέχρι Q. Σε κάθε βήμα, για κάθε κουτί j υπολογίζουμε το πόσο χρειαζόμαστε για να φάμε q + q j σοκολατάκια φτάνοντας στο j. Αφού q i > 0, i, αν αρχικοποιήσουμε σωστά τις αρχικές καταστάσεις, υπολογίζουμε τα υποπροβλήματα με τη σωστή σειρά. Αρχικοποίηση: c[i][j] = και j n, c[min{q j, Q}][j] = p j Επιστρέφουμε το min j {1,...,n} c[q][j]. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

39 Άσκηση 4: Σοκολατάκια (γνησίως αύξουσα κατανάλωση) Λύση: c[min{q j + q, Q}][j] = min {i i {1,..,n}, q i <q j, t i t j } {c[q][i] + i j } Τρέχουμε για q από 1 μέχρι Q. Σε κάθε βήμα, για κάθε κουτί j υπολογίζουμε το πόσο χρειαζόμαστε για να φάμε q + q j σοκολατάκια φτάνοντας στο j. Αφού q i > 0, i, αν αρχικοποιήσουμε σωστά τις αρχικές καταστάσεις, υπολογίζουμε τα υποπροβλήματα με τη σωστή σειρά. Αρχικοποίηση: c[i][j] = και j n, c[min{q j, Q}][j] = p j Επιστρέφουμε το min j {1,...,n} c[q][j]. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

40 Άσκηση 4: Σοκολατάκια (γνησίως αύξουσα κατανάλωση) Λύση: c[min{q j + q, Q}][j] = min {i i {1,..,n}, q i <q j, t i t j } {c[q][i] + i j } Τρέχουμε για q από 1 μέχρι Q. Σε κάθε βήμα, για κάθε κουτί j υπολογίζουμε το πόσο χρειαζόμαστε για να φάμε q + q j σοκολατάκια φτάνοντας στο j. Αφού q i > 0, i, αν αρχικοποιήσουμε σωστά τις αρχικές καταστάσεις, υπολογίζουμε τα υποπροβλήματα με τη σωστή σειρά. Αρχικοποίηση: c[i][j] = και j n, c[min{q j, Q}][j] = p j Επιστρέφουμε το min j {1,...,n} c[q][j]. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

41 Άσκηση 4: Σοκολατάκια (γνησίως αύξουσα κατανάλωση) Λύση: c[min{q j + q, Q}][j] = min {i i {1,..,n}, q i <q j, t i t j } {c[q][i] + i j } Τρέχουμε για q από 1 μέχρι Q. Σε κάθε βήμα, για κάθε κουτί j υπολογίζουμε το πόσο χρειαζόμαστε για να φάμε q + q j σοκολατάκια φτάνοντας στο j. Αφού q i > 0, i, αν αρχικοποιήσουμε σωστά τις αρχικές καταστάσεις, υπολογίζουμε τα υποπροβλήματα με τη σωστή σειρά. Αρχικοποίηση: c[i][j] = και j n, c[min{q j, Q}][j] = p j Επιστρέφουμε το min j {1,...,n} c[q][j]. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

42 Άσκηση 4: Σοκολατάκια (γνησίως αύξουσα κατανάλωση) Λύση: c[min{q j + q, Q}][j] = min {i i {1,..,n}, q i <q j, t i t j } {c[q][i] + i j } Τρέχουμε για q από 1 μέχρι Q. Σε κάθε βήμα, για κάθε κουτί j υπολογίζουμε το πόσο χρειαζόμαστε για να φάμε q + q j σοκολατάκια φτάνοντας στο j. Αφού q i > 0, i, αν αρχικοποιήσουμε σωστά τις αρχικές καταστάσεις, υπολογίζουμε τα υποπροβλήματα με τη σωστή σειρά. Αρχικοποίηση: c[i][j] = και j n, c[min{q j, Q}][j] = p j Επιστρέφουμε το min j {1,...,n} c[q][j]. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

43 Άσκηση 4: Σοκολατάκια (γνησίως αύξουσα κατανάλωση) Πολυπλοκότητα O(Qn 2 ) για την επίλυση των Q n υποπροβλημάτων του c[i][j] (n συγκρίσεις στο καθένα) + O(n) για την εύρεση του ελαχίστου c[q][j] =. O(Qn 2 ) Ορθότητα: Αφού σε κάθε επανάληψη, για κάθε κουτί j μελετάμε ως πιθανά προηγούμενα μόνο κουτιά i με q i αυστηρά μικρότερο του q j, οποιαδήποτε αλληλουχία κουτιών για κάθε υποπρόβλημα του c[i][j] είναι αδύνατον να περιέχει κύκλο (να χρησιμοποιεί το ίδιο κουτί πάνω από μια φορά). (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

44 Άσκηση 4: Σοκολατάκια (γνησίως αύξουσα κατανάλωση) Πολυπλοκότητα O(Qn 2 ) για την επίλυση των Q n υποπροβλημάτων του c[i][j] (n συγκρίσεις στο καθένα) + O(n) για την εύρεση του ελαχίστου c[q][j] =. O(Qn 2 ) Ορθότητα: Αφού σε κάθε επανάληψη, για κάθε κουτί j μελετάμε ως πιθανά προηγούμενα μόνο κουτιά i με q i αυστηρά μικρότερο του q j, οποιαδήποτε αλληλουχία κουτιών για κάθε υποπρόβλημα του c[i][j] είναι αδύνατον να περιέχει κύκλο (να χρησιμοποιεί το ίδιο κουτί πάνω από μια φορά). (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

45 Άσκηση 4: Σοκολατάκια (γενική μορφή) Ορισμός: Ιδιο πρόβλημα με πριν, μόνο που τώρα επιτρέπεται να τρώμε περισσότερα η ίσα σε πλήθος σοκολατάκια σε κάθε κατανάλωση από την προηγούμενη. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

46 Άσκηση 4: Σοκολατάκια (γενική μορφή) Πρόβλημα: Αφού ο αλγόριθμος δεν θυμάται σε κάθε βήμα από ποια κουτιά έχει φάει, σε περίπτωση που επιτρέψουμε την κατανάλωση ίσου αριθμού από σοκολατάκια από βήμα σε βήμα, ο αλγόριθμος μπορεί να έχει κάνει κύκλους μεταξύ κουτιών με ίδιο αριθμό από σοκολατάκια. Δηλαδή, η λογική της ορθότητας της προηγούμενης μορφής του προβλήματος δεν ισχύει. Λύση: Θα ορίσουμε έναν πίνακα μνήμης path[q][j][i] με την σύμβαση path[q][j][i] = 0 αν η ακολουθία κουτιών που τρώμε για να καταναλώσουμε στον ελάχιστο δυνατό χρόνο q σοκολατάκια τρώγοντας στο τέλος από το κουτί j δεν περιλαμβάνει το κουτί i, και path[q][j][i] = 1 αλλιώς. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

47 Άσκηση 4: Σοκολατάκια (γενική μορφή) Πρόβλημα: Αφού ο αλγόριθμος δεν θυμάται σε κάθε βήμα από ποια κουτιά έχει φάει, σε περίπτωση που επιτρέψουμε την κατανάλωση ίσου αριθμού από σοκολατάκια από βήμα σε βήμα, ο αλγόριθμος μπορεί να έχει κάνει κύκλους μεταξύ κουτιών με ίδιο αριθμό από σοκολατάκια. Δηλαδή, η λογική της ορθότητας της προηγούμενης μορφής του προβλήματος δεν ισχύει. Λύση: Θα ορίσουμε έναν πίνακα μνήμης path[q][j][i] με την σύμβαση path[q][j][i] = 0 αν η ακολουθία κουτιών που τρώμε για να καταναλώσουμε στον ελάχιστο δυνατό χρόνο q σοκολατάκια τρώγοντας στο τέλος από το κουτί j δεν περιλαμβάνει το κουτί i, και path[q][j][i] = 1 αλλιώς. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

48 Άσκηση 4: Σοκολατάκια (γενική μορφή) Λύση: Ετσι, η παραπάνω αναδρομική σχέση μετατρέπεται ως εξής: c[min{q j + q, Q}][j] = min {c[q][i] + i j } {i i {1,..,n}, q i <q j (q i =q j path[q][i][j]=0), t i t j } Σε κάθε βήμα ανανεώνουμε κατάλληλα τον πίνακα path. Αυτό σημαίνει ότι αν για προηγούμενο του κουτιού j χρησιμοποιήσουμε το i στη βέλτιστη κατανάλωση q + q j σοκολατιών (δηλ. το i ελαχιστοποιεί την σχέση) πρέπει να θέσουμε path[q + q j ][j][i ] = 1 για i = i και για κάθε i που ανήκει στο μονοπάτι αυτής της λύσης μέχρι το κουτί i. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

49 Άσκηση 4: Σοκολατάκια (γενική μορφή) Λύση: Ετσι, η παραπάνω αναδρομική σχέση μετατρέπεται ως εξής: c[min{q j + q, Q}][j] = min {c[q][i] + i j } {i i {1,..,n}, q i <q j (q i =q j path[q][i][j]=0), t i t j } Σε κάθε βήμα ανανεώνουμε κατάλληλα τον πίνακα path. Αυτό σημαίνει ότι αν για προηγούμενο του κουτιού j χρησιμοποιήσουμε το i στη βέλτιστη κατανάλωση q + q j σοκολατιών (δηλ. το i ελαχιστοποιεί την σχέση) πρέπει να θέσουμε path[q + q j ][j][i ] = 1 για i = i και για κάθε i που ανήκει στο μονοπάτι αυτής της λύσης μέχρι το κουτί i. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

50 Άσκηση 4: Σοκολατάκια (γενική μορφή) Λύση: Ετσι, η παραπάνω αναδρομική σχέση μετατρέπεται ως εξής: c[min{q j + q, Q}][j] = min {c[q][i] + i j } {i i {1,..,n}, q i <q j (q i =q j path[q][i][j]=0), t i t j } Σε κάθε βήμα ανανεώνουμε κατάλληλα τον πίνακα path. Αυτό σημαίνει ότι αν για προηγούμενο του κουτιού j χρησιμοποιήσουμε το i στη βέλτιστη κατανάλωση q + q j σοκολατιών (δηλ. το i ελαχιστοποιεί την σχέση) πρέπει να θέσουμε path[q + q j ][j][i ] = 1 για i = i και για κάθε i που ανήκει στο μονοπάτι αυτής της λύσης μέχρι το κουτί i. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

51 Άσκηση 4: Σοκολατάκια (γενική μορφή) Πολυπλοκότητα Σε κάθε αναδρομή έχω επιπλέον n πράξεις για τις ενημερώσεις του πίνακα path. Οπότε, πάλι έχουμε O(Q2n 2 ) = O(Qn 2 ). (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

52 Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 1η προγραμματιστική 7 2η προγραμματιστική (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

53 Άσκηση 5: Πομποί και Δέκτες Είσοδος: Ακολουθία n (άρτιος) ζευγών (T i, R i ), όπου T i η κατανάλωση ισχύος της κεραίας i όταν λειτουργεί ως πομπός και R i T i όταν λειτουργεί ως δέκτης. Ζητείται: Ελάχιστη συνολική κατανάλωση ισχύος, όπου για κάθε i που λειτουργεί ως πομπός υπάρχει ένα και μοναδικό j > i που λειτουργεί ως δέκτης. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

54 Άσκηση 5: Πομποί και Δέκτες Λύση: Δυναμικός Προγραμματισμός Αναδρομική Σχέση C[i, j] = min{c[i 1, j + 1] + R i, C[i 1, j 1] + T i } όπου C[i, j] το κόστος της βέλτιστης λύσης μέχρι και την i-οστή κεραία, έχοντας j i πομπούς που δεν έχουν αντιστοιχηθεί σε δέκτες προς το παρόν. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

55 Άσκηση 5: Πομποί και Δέκτες Λύση: C[i, j] = min{c[i 1, j + 1] + R i, C[i 1, j 1] + T i } Αν έχουμε τη βέλτιστη λύση για i 1 κεραίες τότε: Είτε υπάρχουν j + 1 πομποί που δεν έχουν αντιστοιχηθεί σε δέκτες και η i-οστή κεραία γίνεται δέκτης οπότε μένουν j πομποί που δεν έχουν αντιστοιχηθεί σε δέκτες και προστίθεται R i στη συνολική κατανάλωση ισχύος. Είτε υπάρχουν j 1 πομποί που δεν έχουν αντιστοιχηθεί σε δέκτες και η i-οστή κεραία γίνεται πομπός οπότε μένουν j πομποί που δεν έχουν αντιστοιχηθεί σε δέκτες και προστίθεται T i στη συνολική κατανάλωση ισχύος. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

56 Άσκηση 5: Πομποί και Δέκτες Λύση: Η ζητούμενη λύση είναι η C[n, 0]. Πολυπλοκότητα Υπολογισμός ενός εκ των Θ(n 2 /2) στοιχείων του C σε O(1) = O(n 2 ) Υπάρχει πιο αποδοτικός αλγόριθμος; (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

57 Άσκηση 5: Πομποί και Δέκτες Λύση: Η ζητούμενη λύση είναι η C[n, 0]. Πολυπλοκότητα Υπολογισμός ενός εκ των Θ(n 2 /2) στοιχείων του C σε O(1) = O(n 2 ) Υπάρχει πιο αποδοτικός αλγόριθμος; (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

58 Άσκηση 5: Πομποί και Δέκτες Καλύτερη Λύση: Για κάποια ανάθεση πομπών-δεκτών έστω S[i] το πλήθος πομπών μείον το πλήθος δεκτών στο διάστημα [1, i]. Μία ανάθεση είναι έγκυρη αν και μόνο αν για κάθε i {1,..., n} ισχύει S[i] 0 και S[n] = 0. Θεωρούμε ότι έχουμε μια βέλτιστη έγκυρη ανάθεση στο διάστημα [1, i]. Αν ο i είναι περιττός, για να την επεκτείνουμε βάζουμε ένα δέκτη στο i + 1 (S[i + 1] = 0). Αν είναι άρτιος, βάζουμε ένα δέκτη στο i + 1, αλλά έχουμε S[i + 1] = 1, άρα κάποιος δέκτης στο [1, i + 1] πρέπει να μετατραπεί σε πομπό: Μετατρέπουμε αυτόν που ελαχιστοποιεί την κατανάλωση, δηλαδή αυτόν με το ελάχιστο T j R j. Τώρα έχουμε S[i + 1] = 0. Για να βρίσκουμε το δέκτη με το ελάχιστο T j R j θα χρειαστούμε ένα min-heap στο οποίο οι λειτουργίες εισαγωγής και εξαγωγής ελαχίστου στοιχείου γίνονται το πολύ σε O(log n). (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

59 Άσκηση 5: Πομποί και Δέκτες Αλγόριθμος: Αρχικοποίησε ένα κενό min-heap Q Για i = 1...n Θεώρησε τον i ως δέκτη, πρόσθεσε R i στο συνολικό κόστος και βάλε το ζεύγος (T i R i, i) στο Q Αν S[i] < 0, αφαίρεσε από το Q το δέκτη με το ελάχιστο T j R j, μετάτρεψέ τον σε πομπό και αύξησε το συνολικό κόστος κατά T j R j. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

60 Άσκηση 5: Πομποί και Δέκτες Χρονική Πολυπλοκότητα O(n log n) Μένει να δείξουμε το επαγωγικό βήμα, δηλαδή ότι η λύση στο διάστημα [1, i + 1] είναι βέλτιστη, δεδομένου ότι η λύση στο [1, i] είναι βέλτιστη. Αν i περιττός (S[i] = 1), τότε προφανώς η θέση i + 1 πρέπει να έχει δέκτη για να είναι έγκυρη η λύση και γιατί είναι το φθηνότερο. Άρα η λύση μας είναι βέλτιστη. Αν i άρτιος (S[i] = 0) τότε αν προσθέσουμε δέκτη στη θέση i + 1 για να είναι έγκυρη η λύση πρέπει να μετατρέψουμε ένα δέκτη σε πομπό. Προφανώς αφού η λύση είναι μέχρι στιγμής ελαχίστου κόστους, προσθέτοντας το μικρότερο T j R j λόγω της αλλαγής (και R i+1 αντί T i+1 ) έχουμε λύση μικρότερου δυνατού κόστους άρα ακόμα βέλτιστη. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

61 Άσκηση 5: Πομποί και Δέκτες Παράδειγμα: i S(i) T i R i Κατανάλωση: 0 (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

62 Άσκηση 5: Πομποί και Δέκτες Παράδειγμα: i S(i) -1 T i R i Κατανάλωση: = 6 (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

63 Άσκηση 5: Πομποί και Δέκτες Παράδειγμα: i S(i) 1 T i R i Κατανάλωση: 6 + (8-6) = 8 (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

64 Άσκηση 5: Πομποί και Δέκτες Παράδειγμα: i S(i) 1 0 T i R i Κατανάλωση: = 11 (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

65 Άσκηση 5: Πομποί και Δέκτες Παράδειγμα: i S(i) T i R i Κατανάλωση: = 12 (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

66 Άσκηση 5: Πομποί και Δέκτες Παράδειγμα: i S(i) T i R i Κατανάλωση: 12 + (5-1)=16 (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

67 Άσκηση 5: Πομποί και Δέκτες Παράδειγμα: i S(i) T i R i Κατανάλωση: = 20 (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

68 Άσκηση 5: Πομποί και Δέκτες Παράδειγμα: i S(i) T i R i Κατανάλωση: = 23 (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

69 Άσκηση 5: Πομποί και Δέκτες Παράδειγμα: i S(i) T i R i Κατανάλωση: 23 + (6-4)=25 (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

70 Άσκηση 5: Πομποί και Δέκτες Παράδειγμα: i S(i) T i R i Κατανάλωση: 25+7=32 (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

71 Άσκηση 5: Πομποί και Δέκτες Παράδειγμα: i S(i) T i R i Κατανάλωση: 32+5=37 (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

72 Άσκηση 5: Πομποί και Δέκτες Παράδειγμα: i S(i) T i R i Κατανάλωση: 37+(9-3)=43 (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

73 Άσκηση 5: Πομποί και Δέκτες Παράδειγμα: i S(i) T i R i Κατανάλωση: 43+1=44 (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

74 Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 1η προγραμματιστική 7 2η προγραμματιστική (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

75 1η Προγραμματιστική: Κύριος Creosot Είσοδος: Ακολουθία συντελεστών γευστικής απόλαυσης εδεσμάτων x 1,..., x N και τρεις ακέραιοι a, b, c, οι μυστικές γευστικές παράμετροι. Εξοδος: Μέγιστος συνολικός συντελεστής γευστικής απόλαυσης από τον χωρισμό των N εδεσμάτων σε πιάτα. Κάθε πιάτο πρέπει να περιέχει διαδοχικά εδέσματα (i, i + 1,..., i + k) και έχει συντελεστή απόλαυσης ax 2 + bx + c όπου x = x i + x i x i+k. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

76 1η Προγραμματιστική: Κύριος Creosot Λύση:Δυναμικός προγραμματισμός. Συμβολίζουμε με C[i] το μέγιστο δυνατό συνολικό συντελεστή χρησιμοποιώντας μόνο τα εδέσματα 1, 2,..., i. Αν έχουμε υπολογίσει όλα τα C[j], για 0 < j < i ελέγχουμε κάθε δυνατό σπάσιμο (0,..., j 1), (j,..., i) και διαλέγουμε τη λύση που μεγιστοποιεί τον συντελεστή. Αναδρομική σχέση i i C[i] = max {C[j 1] + a( x k ) 2 + b( x k ) + c} 0<j<i k=j k=j (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

77 1η Προγραμματιστική: Κύριος Creosot Λύση:Δυναμικός προγραμματισμός. Συμβολίζουμε με C[i] το μέγιστο δυνατό συνολικό συντελεστή χρησιμοποιώντας μόνο τα εδέσματα 1, 2,..., i. Αν έχουμε υπολογίσει όλα τα C[j], για 0 < j < i ελέγχουμε κάθε δυνατό σπάσιμο (0,..., j 1), (j,..., i) και διαλέγουμε τη λύση που μεγιστοποιεί τον συντελεστή. Αναδρομική σχέση i i C[i] = max {C[j 1] + a( x k ) 2 + b( x k ) + c} 0<j<i k=j k=j (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

78 1η Προγραμματιστική: Κύριος Creosot Λύση:Δυναμικός προγραμματισμός. Συμβολίζουμε με C[i] το μέγιστο δυνατό συνολικό συντελεστή χρησιμοποιώντας μόνο τα εδέσματα 1, 2,..., i. Αν έχουμε υπολογίσει όλα τα C[j], για 0 < j < i ελέγχουμε κάθε δυνατό σπάσιμο (0,..., j 1), (j,..., i) και διαλέγουμε τη λύση που μεγιστοποιεί τον συντελεστή. Αναδρομική σχέση i i C[i] = max {C[j 1] + a( x k ) 2 + b( x k ) + c} 0<j<i k=j k=j (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

79 1η Προγραμματιστική: Κύριος Creosot Λύση: Με χρήση πίνακα αθροισμάτων S με S[i] = ik=1 x i, η σχέση γίνεται: C[i] = max 0<j<i {C[j 1] + a(s[i] S[j 1])2 + b(s[i] S[j 1]) + c} Επιστρέφουμε τον όρο C[N]. Πολυπλοκότητα Θ(N 2 ) (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

80 1η Προγραμματιστική: Κύριος Creosot Λύση: Με χρήση πίνακα αθροισμάτων S με S[i] = ik=1 x i, η σχέση γίνεται: C[i] = max 0<j<i {C[j 1] + a(s[i] S[j 1])2 + b(s[i] S[j 1]) + c} Επιστρέφουμε τον όρο C[N]. Πολυπλοκότητα Θ(N 2 ) (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

81 1η Προγραμματιστική: Κύριος Creosot Λύση: Με χρήση πίνακα αθροισμάτων S με S[i] = ik=1 x i, η σχέση γίνεται: C[i] = max 0<j<i {C[j 1] + a(s[i] S[j 1])2 + b(s[i] S[j 1]) + c} Επιστρέφουμε τον όρο C[N]. Πολυπλοκότητα Θ(N 2 ) (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

82 1η Προγραμματιστική: Κύριος Creosot (bonus) Βελτίωση: Μπορούμε να ρίξουμε την πολυπλοκότητα σε γραμμική, η Θ(NlogN), χρησιμοποιώντας το Convex Hull Optimization. Μετά από πράξεις: C[i] = as 2 [i] + bs[i] + c + max 0<j<i {(C[j] + as2 [j] bs[j]) 2aS[j]S[i]} Οι όροι έξω από το max εξαρτώνται μόνο από το i και δεν επηρεάζουν τη μεγιστοποίηση της συνάρτησης. Θέτουμε: a = 2aS[j], b = C[j] + as 2 [j] bs[j], y = C[i] και x = S[i]. Ετσι έχουμε συνάρτηση μορφής y = ax + b, όπου τα a, b εξαρτώνται από το j. Άρα θέλουμε την ευθεία που μεγιστοποιεί το y στη θέση x = S[i] (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

83 1η Προγραμματιστική: Κύριος Creosot (bonus) Βελτίωση: Μπορούμε να ρίξουμε την πολυπλοκότητα σε γραμμική, η Θ(NlogN), χρησιμοποιώντας το Convex Hull Optimization. Μετά από πράξεις: C[i] = as 2 [i] + bs[i] + c + max 0<j<i {(C[j] + as2 [j] bs[j]) 2aS[j]S[i]} Οι όροι έξω από το max εξαρτώνται μόνο από το i και δεν επηρεάζουν τη μεγιστοποίηση της συνάρτησης. Θέτουμε: a = 2aS[j], b = C[j] + as 2 [j] bs[j], y = C[i] και x = S[i]. Ετσι έχουμε συνάρτηση μορφής y = ax + b, όπου τα a, b εξαρτώνται από το j. Άρα θέλουμε την ευθεία που μεγιστοποιεί το y στη θέση x = S[i] (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

84 1η Προγραμματιστική: Κύριος Creosot (bonus) Βελτίωση: Μπορούμε να ρίξουμε την πολυπλοκότητα σε γραμμική, η Θ(NlogN), χρησιμοποιώντας το Convex Hull Optimization. Μετά από πράξεις: C[i] = as 2 [i] + bs[i] + c + max 0<j<i {(C[j] + as2 [j] bs[j]) 2aS[j]S[i]} Οι όροι έξω από το max εξαρτώνται μόνο από το i και δεν επηρεάζουν τη μεγιστοποίηση της συνάρτησης. Θέτουμε: a = 2aS[j], b = C[j] + as 2 [j] bs[j], y = C[i] και x = S[i]. Ετσι έχουμε συνάρτηση μορφής y = ax + b, όπου τα a, b εξαρτώνται από το j. Άρα θέλουμε την ευθεία που μεγιστοποιεί το y στη θέση x = S[i] (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

85 1η Προγραμματιστική: Κύριος Creosot (bonus) Βελτίωση: Μπορούμε να ρίξουμε την πολυπλοκότητα σε γραμμική, η Θ(NlogN), χρησιμοποιώντας το Convex Hull Optimization. Μετά από πράξεις: C[i] = as 2 [i] + bs[i] + c + max 0<j<i {(C[j] + as2 [j] bs[j]) 2aS[j]S[i]} Οι όροι έξω από το max εξαρτώνται μόνο από το i και δεν επηρεάζουν τη μεγιστοποίηση της συνάρτησης. Θέτουμε: a = 2aS[j], b = C[j] + as 2 [j] bs[j], y = C[i] και x = S[i]. Ετσι έχουμε συνάρτηση μορφής y = ax + b, όπου τα a, b εξαρτώνται από το j. Άρα θέλουμε την ευθεία που μεγιστοποιεί το y στη θέση x = S[i] (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

86 Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 1η προγραμματιστική 7 2η προγραμματιστική (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

87 2η Προγραμματιστική: Social Credits Είσοδος: Ακολουθία N φυσικών s 1,..., s N, τα social credits των ατόμων που μπορούμε να συναντήσουμε, με τη σειρά που μπορούν να γίνουν οι συναντήσεις. Εξοδος: Ο μέγιστος αριθμός ατόμων που μπορούμε να συναντήσουμε, έτσι ώστε κάθε άτομο που συναντάμε, με μια το πολύ εξαίρεση, να έχει υψηλότερο social credit από το προηγούμενο. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

88 2η Προγραμματιστική: Social Credits Λύση: Κάθε εφικτή λύση σπάει σε δυο αύξουσες υποακολουθίες. Άρα ψάχνουμε ένα σημείο k 1, 2,..N που μεγιστοποιεί το άθροισμα της μέγιστης αύξουσας υποακολουθίας που ξεκινάει από θέση s l 1 και τελειώνει στην θέση f l k και της μέγιστης φθίνουσας υποακλουθίας που ξεκινά από την θέση f r N και τελειώνει σε θέση s r > k. Τρέχουμε τον γνωστό αλγόριθμο δυναμικού προγραμματισμού για longest increasing subsequences (LIS) δυο φορές. Μια για να βρούμε όλα τα LIS από τη θέση 1 μέχρι τις θέσεις j, j 1 j N και μια για όλα τα longest decreasing subsequences (LDS) από τη θέση N μέχρι τις θέσεις l, N l 1. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

89 2η Προγραμματιστική: Social Credits Λύση: Κάθε εφικτή λύση σπάει σε δυο αύξουσες υποακολουθίες. Άρα ψάχνουμε ένα σημείο k 1, 2,..N που μεγιστοποιεί το άθροισμα της μέγιστης αύξουσας υποακολουθίας που ξεκινάει από θέση s l 1 και τελειώνει στην θέση f l k και της μέγιστης φθίνουσας υποακλουθίας που ξεκινά από την θέση f r N και τελειώνει σε θέση s r > k. Τρέχουμε τον γνωστό αλγόριθμο δυναμικού προγραμματισμού για longest increasing subsequences (LIS) δυο φορές. Μια για να βρούμε όλα τα LIS από τη θέση 1 μέχρι τις θέσεις j, j 1 j N και μια για όλα τα longest decreasing subsequences (LDS) από τη θέση N μέχρι τις θέσεις l, N l 1. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

90 2η Προγραμματιστική: Social Credits Λύση: Κάθε εφικτή λύση σπάει σε δυο αύξουσες υποακολουθίες. Άρα ψάχνουμε ένα σημείο k 1, 2,..N που μεγιστοποιεί το άθροισμα της μέγιστης αύξουσας υποακολουθίας που ξεκινάει από θέση s l 1 και τελειώνει στην θέση f l k και της μέγιστης φθίνουσας υποακλουθίας που ξεκινά από την θέση f r N και τελειώνει σε θέση s r > k. Τρέχουμε τον γνωστό αλγόριθμο δυναμικού προγραμματισμού για longest increasing subsequences (LIS) δυο φορές. Μια για να βρούμε όλα τα LIS από τη θέση 1 μέχρι τις θέσεις j, j 1 j N και μια για όλα τα longest decreasing subsequences (LDS) από τη θέση N μέχρι τις θέσεις l, N l 1. (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

91 2η Προγραμματιστική: Social Credits Longest increasing subsequences: Υπολογισμός με γνωστό αλγόριθμο σε O(NlogN): Εστω πίνακας low[] όπου low[l] = i ο δείκτης για τον οποίο το s i να είναι το μικρότερο στοιχείο στο οποίο τελειώνει κάποια αύξουσα ακολουθία μήκους l και L max, το μέγιστο μήκος υποακολουθίας που έχει βρεθεί (αρχικοποιούμε με 1). Για κάθε i από 1 μέχρι Ν: Ψάχνουμε το max {l}, με δυαδική αναζήτηση στα l {0,...,L max } s low[l] <s i {s low[1], s low[2],...}. Το μήκος της μεγαλύτερης υποακολουθίας που τελειώνει στο s i, LIS[i] θα είναι l + 1 και θέτουμε low(l + 1) = i. Προσαυξάνουμε κατάλληλα το L max (και φυσικά θυμόμαστε για κάθε LIS[i] το προηγούμενο στοιχείο στην ακολουθία). (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

92 2η Προγραμματιστική: Social Credits Longest increasing subsequences: Υπολογισμός με γνωστό αλγόριθμο σε O(NlogN): Εστω πίνακας low[] όπου low[l] = i ο δείκτης για τον οποίο το s i να είναι το μικρότερο στοιχείο στο οποίο τελειώνει κάποια αύξουσα ακολουθία μήκους l και L max, το μέγιστο μήκος υποακολουθίας που έχει βρεθεί (αρχικοποιούμε με 1). Για κάθε i από 1 μέχρι Ν: Ψάχνουμε το max {l}, με δυαδική αναζήτηση στα l {0,...,L max } s low[l] <s i {s low[1], s low[2],...}. Το μήκος της μεγαλύτερης υποακολουθίας που τελειώνει στο s i, LIS[i] θα είναι l + 1 και θέτουμε low(l + 1) = i. Προσαυξάνουμε κατάλληλα το L max (και φυσικά θυμόμαστε για κάθε LIS[i] το προηγούμενο στοιχείο στην ακολουθία). (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

93 2η Προγραμματιστική: Social Credits Longest increasing subsequences: Υπολογισμός με γνωστό αλγόριθμο σε O(NlogN): Εστω πίνακας low[] όπου low[l] = i ο δείκτης για τον οποίο το s i να είναι το μικρότερο στοιχείο στο οποίο τελειώνει κάποια αύξουσα ακολουθία μήκους l και L max, το μέγιστο μήκος υποακολουθίας που έχει βρεθεί (αρχικοποιούμε με 1). Για κάθε i από 1 μέχρι Ν: Ψάχνουμε το max {l}, με δυαδική αναζήτηση στα l {0,...,L max } s low[l] <s i {s low[1], s low[2],...}. Το μήκος της μεγαλύτερης υποακολουθίας που τελειώνει στο s i, LIS[i] θα είναι l + 1 και θέτουμε low(l + 1) = i. Προσαυξάνουμε κατάλληλα το L max (και φυσικά θυμόμαστε για κάθε LIS[i] το προηγούμενο στοιχείο στην ακολουθία). (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

94 2η Προγραμματιστική: Social Credits Longest increasing subsequences: Υπολογισμός με γνωστό αλγόριθμο σε O(NlogN): Εστω πίνακας low[] όπου low[l] = i ο δείκτης για τον οποίο το s i να είναι το μικρότερο στοιχείο στο οποίο τελειώνει κάποια αύξουσα ακολουθία μήκους l και L max, το μέγιστο μήκος υποακολουθίας που έχει βρεθεί (αρχικοποιούμε με 1). Για κάθε i από 1 μέχρι Ν: Ψάχνουμε το max {l}, με δυαδική αναζήτηση στα l {0,...,L max } s low[l] <s i {s low[1], s low[2],...}. Το μήκος της μεγαλύτερης υποακολουθίας που τελειώνει στο s i, LIS[i] θα είναι l + 1 και θέτουμε low(l + 1) = i. Προσαυξάνουμε κατάλληλα το L max (και φυσικά θυμόμαστε για κάθε LIS[i] το προηγούμενο στοιχείο στην ακολουθία). (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

95 2η Προγραμματιστική: Social Credits Longest increasing subsequences: Υπολογισμός με γνωστό αλγόριθμο σε O(NlogN): Εστω πίνακας low[] όπου low[l] = i ο δείκτης για τον οποίο το s i να είναι το μικρότερο στοιχείο στο οποίο τελειώνει κάποια αύξουσα ακολουθία μήκους l και L max, το μέγιστο μήκος υποακολουθίας που έχει βρεθεί (αρχικοποιούμε με 1). Για κάθε i από 1 μέχρι Ν: Ψάχνουμε το max {l}, με δυαδική αναζήτηση στα l {0,...,L max } s low[l] <s i {s low[1], s low[2],...}. Το μήκος της μεγαλύτερης υποακολουθίας που τελειώνει στο s i, LIS[i] θα είναι l + 1 και θέτουμε low(l + 1) = i. Προσαυξάνουμε κατάλληλα το L max (και φυσικά θυμόμαστε για κάθε LIS[i] το προηγούμενο στοιχείο στην ακολουθία). (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

96 2η Προγραμματιστική: Social Credits Πολυπλοκότητα: Αντίστοιχα βρίσκουμε το διάνυσμα LDT [j] (longest decreasing subsequences). Επιστρέφουμε το max k {1,2,...,N} {LIT [k] + LDT [k]}. Πολυπλοκότητα O(NlogN) + O(NlogN) + O(N) = O(NlogN) (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

97 2η Προγραμματιστική: Social Credits Πολυπλοκότητα: Αντίστοιχα βρίσκουμε το διάνυσμα LDT [j] (longest decreasing subsequences). Επιστρέφουμε το max k {1,2,...,N} {LIT [k] + LDT [k]}. Πολυπλοκότητα O(NlogN) + O(NlogN) + O(N) = O(NlogN) (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

98 2η Προγραμματιστική: Social Credits Πολυπλοκότητα: Αντίστοιχα βρίσκουμε το διάνυσμα LDT [j] (longest decreasing subsequences). Επιστρέφουμε το max k {1,2,...,N} {LIT [k] + LDT [k]}. Πολυπλοκότητα O(NlogN) + O(NlogN) + O(N) = O(NlogN) (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

99 2η Προγραμματιστική: Social Credits Πολυπλοκότητα: Αντίστοιχα βρίσκουμε το διάνυσμα LDT [j] (longest decreasing subsequences). Επιστρέφουμε το max k {1,2,...,N} {LIT [k] + LDT [k]}. Πολυπλοκότητα O(NlogN) + O(NlogN) + O(N) = O(NlogN) (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος / 64

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 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11 Αλγόριθμοι και Πολυπλοκότητα 2η Σειρά Γραπτών και Προγραμματιστικών Ασκήσεων CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Δεκέμβριος 2016 (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος 2016 1 / 65 Outline 1 Άσκηση

Διαβάστε περισσότερα

Outline. 6 Edit Distance

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

Διαβάστε περισσότερα

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

2η Σειρά Γραπτών Ασκήσεων 2η Σειρά Γραπτών Ασκήσεων Αλγόριθμοι και Πολυπλοκότητα ΣΗΜΜΥ, Εθνικό Μετσόβιο Πολυτεχνείο 1/23 1 Κλειδιά και κλειδαριές 2 Puzzle 3 Διαστημικές Μάχες 4 Κεραίες 5 Εργοστάσιο Ποτηριών 2/23 Κλειδιά και κλειδαριές

Διαβάστε περισσότερα

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

3η Σειρά Γραπτών Ασκήσεων 1/48 3η Σειρά Γραπτών Ασκήσεων Αλγόριθμοι και Πολυπλοκότητα ΣΗΜΜΥ, Εθνικό Μετσόβιο Πολυτεχνείο 2/48 1 Άσκηση 1: Πομποί και Δέκτες 2 Άσκηση 2: Διακοπές στην Ικαρία 3 Άσκηση 3: Επιστροφή στη Γη 4 Άσκηση

Διαβάστε περισσότερα

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

3η Σειρά Γραπτών Ασκήσεων 1/55 3η Σειρά Γραπτών Ασκήσεων Αλγόριθμοι και Πολυπλοκότητα ΣΗΜΜΥ, Εθνικό Μετσόβιο Πολυτεχνείο 2/55 1 Άσκηση 1: Πομποί και Δέκτες 2 Άσκηση 2: Διακοπές στην Ικαρία 3 Άσκηση 3: Επιστροφή στη Γη 4 Άσκηση

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα 7ο εξάμηνο Σ.Η.Μ.Μ.Υ. & Σ.Ε.Μ.Φ.Ε. http://www.corelab.ece.ntua.gr/courses/ 4η εβδομάδα: Εύρεση k-οστού Μικρότερου Στοιχείου, Master Theorem, Τεχνική Greedy: Knapsack, Minimum Spanning Tree, Shortest Paths

Διαβάστε περισσότερα

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

1η Σειρά Γραπτών Ασκήσεων 1/20 Ασυμπτωτικός Συμβολισμός, Αναδρομικές Σχέσεις 1η Σειρά Γραπτών Ασκήσεων Αλγόριθμοι και Πολυπλοκότητα ΣΗΜΜΥ, Εθνικό Μετσόβιο Πολυτεχνείο 1 Ασυμπτωτικός Συμβολισμός, Αναδρομικές Σχέσεις 2 3 4 5 2/20

Διαβάστε περισσότερα

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

Δυναμικός Προγραμματισμός Δυναμικός Προγραμματισμός Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις: Α. Παγουρτζής Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Διωνυμικοί Συντελεστές Διωνυμικοί

Διαβάστε περισσότερα

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

Δομές Δεδομένων & Αλγόριθμοι Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν

Διαβάστε περισσότερα

Άπληστοι Αλγόριθμοι. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Άπληστοι Αλγόριθμοι. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Άπληστοι Αλγόριθμοι ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άπληστοι Αλγόριθμοι... για προβλήματα

Διαβάστε περισσότερα

Άπληστοι Αλγόριθμοι. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Άπληστοι Αλγόριθμοι. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Άπληστοι Αλγόριθμοι ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άπληστοι Αλγόριθμοι... για προβλήματα

Διαβάστε περισσότερα

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

Τεχνικές Σχεδιασμού Αλγορίθμων Τεχνικές Σχεδιασμού Αλγορίθμων Διαίρει και Βασίλευε Δυναμικός Προγραμματισμός Απληστία Π. Μποζάνης ΤHMMY - Αλγόριθμοι 2014-2015 1 Διαίρει και Βασίλευε Βασικά Βήματα Διαίρει: Κατάτμηση του αρχικού προβλήματος

Διαβάστε περισσότερα

Άπληστοι Αλγόριθμοι. Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Άπληστοι Αλγόριθμοι. Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Άπληστοι Αλγόριθμοι Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις: Α. Παγουρτζής Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άπληστοι Αλγόριθμοι... για προβλήματα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

υναμικός Προγραμματισμός υναμικός Προγραμματισμός ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιωνυμικοί Συντελεστές ιωνυμικοί

Διαβάστε περισσότερα

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

Άπληστοι Αλγόριθµοι. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Άπληστοι Αλγόριθµοι 1 Άπληστοι Αλγόριθµοι Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Άπληστοι Αλγόριθµοι 1 Άπληστοι Αλγόριθµοι... για προβλήµατα βελτιστοποίησης: Λειτουργούν σε βήµατα. Κάθε βήµα κάνει µια αµετάκλητη επιλογή

Διαβάστε περισσότερα

Θεωρία Γραφημάτων 6η Διάλεξη

Θεωρία Γραφημάτων 6η Διάλεξη Θεωρία Γραφημάτων 6η Διάλεξη Α. Συμβώνης Εθνικο Μετσοβειο Πολυτεχνειο Σχολη Εφαρμοσμενων Μαθηματικων και Φυσικων Επιστημων Τομεασ Μαθηματικων Φεβρουάριος 2016 Α. Συμβώνης (ΕΜΠ) Θεωρία Γραφημάτων 6η Διάλεξη

Διαβάστε περισσότερα

Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 Προγραμματιστική Άσκηση 1 7 Προγραμματιστική Άσκηση 2 (CoReLab - NTUA) Αλγόριθμοι - 3

Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 Προγραμματιστική Άσκηση 1 7 Προγραμματιστική Άσκηση 2 (CoReLab - NTUA) Αλγόριθμοι - 3 Αλγόριθμοι και Πολυπλοκότητα 3η Σειρά Γραπτών και Προγραμματιστικών Ασκήσεων CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Ιανουάριος 2019 (CoReLab - NTUA) Αλγόριθμοι - 3η σειρά ασκήσεων Ιανουάριος 2019 1 / 54 Outline 1 Άσκηση

Διαβάστε περισσότερα

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

Δυναμικός Προγραμματισμός Τρίγωνο του Pascal Δυναμικός Προγραμματισμός Διωνυμικοί συντελεστές Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο

Διαβάστε περισσότερα

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

Μάθημα 20: Δυναμικός Προγραμματισμός (DP) Μάθημα 20: Δυναμικός Προγραμματισμός (DP) Γενικά Είναι μια γενική μεθοδολογία και δεν υπάρχει ένα πρότυπο διατύπωσης /επίλυσης προβλημάτων Αρχικά ξεκίνησε σαν μαθηματική μέθοδος για τη λήψη σειράς αλληλοσυνδεόμενων

Διαβάστε περισσότερα

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38 4η Γραπτή Άσκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Άσκηση 7 Φεβρουαρίου 2017 1 / 38 Άσκηση 1 Πρέπει να βρούμε όλες τις καλές προτάσεις φίλων για τον

Διαβάστε περισσότερα

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

Μη γράφετε στο πίσω μέρος της σελίδας Εισαγωγή στο Σχεδιασμό & την Ανάλυση Αλγορίθμων Εξέταση Ιουνίου 2015 Σελ. 1 από 7 Στη σελίδα αυτή γράψτε μόνο τα στοιχεία σας. Γράψτε τις απαντήσεις σας στις επόμενες σελίδες, κάτω από τις αντίστοιχες

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Διαίρει και Βασίλευε Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαίρει και Βασίλευε Divide and Conquer Η τεχνική διαίρει και βασίλευε αναφέρεται

Διαβάστε περισσότερα

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 3/2/2019 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 3/2/ / 37

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 3/2/2019 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 3/2/ / 37 4η Γραπτή Άσκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 3/2/2019 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Άσκηση 3/2/2019 1 / 37 Άσκηση 1 Πρέπει να βρούμε όλες τις καλές προτάσεις φίλων για τον i ανάμεσα σε όλους

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

υναμικός Προγραμματισμός υναμικός Προγραμματισμός ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιακριτό Πρόβλημα Σακιδίου ίνονται n αντικείμενα και σακίδιο μεγέθους Β. Αντικείμενο

Διαβάστε περισσότερα

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

Σχεδίαση & Ανάλυση Αλγορίθμων Σχεδίαση & Ανάλυση Αλγορίθμων Ενότητα 3 Αλγόριθμοι Επιλογής Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Αλγόριθμοι Επιλογής Γνωρίζουμε

Διαβάστε περισσότερα

για NP-Δύσκολα Προβλήματα

για NP-Δύσκολα Προβλήματα Προσεγγιστικοί Αλγόριθμοι για NP-Δύσκολα Προβλήματα Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

Διαβάστε περισσότερα

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

υναμικός Προγραμματισμός υναμικός Προγραμματισμός ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιωνυμικοί Συντελεστές ιωνυμικοί

Διαβάστε περισσότερα

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

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4.0 Επιλογή Αλγόριθμοι Επιλογής Select και Quick-Select Σταύρος Δ. Νικολόπουλος 2016-17 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros

Διαβάστε περισσότερα

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π. Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων CO.RE.LAB. ΣΗΜΜΥ - Ε.Μ.Π. Άσκηση 1 η : Παιχνίδι επιλογής ακμών Έχουμε ένα ακυκλικό κατευθυνόμενο γράφο, μια αρχική κορυφή και δυο παίκτες. Οι παίκτες διαδοχικά

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 1 / 20 Επιλογή Το πρόβληµα

Διαβάστε περισσότερα

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη. 4η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 4η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 4η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται κυρίως στα βιβλία Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β.

Διαβάστε περισσότερα

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

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια Graph Algorithms Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια Περιεχόμενα Μεταβατικό Κλείσιμο Συνεκτικές συνιστώσες Συντομότερα μονοπάτια Breadth First Spanning

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 5. Απλή Ταξινόμηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 11/11/2016 Εισαγωγή Η

Διαβάστε περισσότερα

Ασκήσεις (2) Άσκηση 1

Ασκήσεις (2) Άσκηση 1 Άσκηση 1 Ασκήσεις () Εισαγωγή στην Ανάλυση Αλγορίθμων Υποθέστε ότι συγκρίνουμε την υλοποίηση της ταξινόμησης με εισαγωγή και της ταξινόμησης με συγχώνευση στον ίδιο υπολογιστή. Για εισόδους μεγέθους n,

Διαβάστε περισσότερα

Διάλεξη 04: Παραδείγματα Ανάλυσης

Διάλεξη 04: Παραδείγματα Ανάλυσης Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα

Διαβάστε περισσότερα

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

ΑΛΓΟΡΙΘΜΟΙ  Άνοιξη I. ΜΗΛΗΣ ΑΛΓΟΡΙΘΜΟΙ http://eclass.aueb.gr/courses/inf161/ Άνοιξη 2016 - I. ΜΗΛΗΣ ΑΠΛΗΣΤΟΙ ΑΛΓΟΡΙΘΜΟΙ Greedy Algorithms 1 Greedy algorithms H βασική ιδέα: Άρχισε από ένα υπο-πρόβλημα μικρού μεγέθους Επαναληπτικά,

Διαβάστε περισσότερα

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

Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Δυναμικός Προγραμματισμός Δυναμικός Προγραμματισμός 1 Περίληψη

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Εισαγωγή στους Αλγορίθμους Ενότητα 11η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Δυναμικός Προγραμματισμός Σταθμισμένος Χρονοπρογραμματισμός

Διαβάστε περισσότερα

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα

Διαβάστε περισσότερα

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων ΕΠΛ31 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα

Διαβάστε περισσότερα

Συνδυαστική Βελτιστοποίηση Εισαγωγή στον γραμμικό προγραμματισμό (ΓΠ)

Συνδυαστική Βελτιστοποίηση Εισαγωγή στον γραμμικό προγραμματισμό (ΓΠ) Εικονικές Παράμετροι Μέχρι στιγμής είδαμε την εφαρμογή της μεθόδου Simplex σε προβλήματα όπου το δεξιό μέλος ήταν θετικό. Δηλαδή όλοι οι περιορισμοί ήταν της μορφής: όπου Η παραδοχή ότι b 0 μας δίδει τη

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Στοχαστικές Στρατηγικές. διαδρομής (1) Στοχαστικές Στρατηγικές η ενότητα: Το γενικό πρόβλημα ελάχιστης διαδρομής () Τμήμα Μαθηματικών, ΑΠΘ Ακαδημαϊκό έτος 08-09 Χειμερινό Εξάμηνο Παπάνα Αγγελική Μεταδιδακτορική ερευνήτρια, ΑΠΘ & Πανεπιστήμιο

Διαβάστε περισσότερα

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

ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ Εύρεση ελάχιστων μονοπατιών Αλγόριθμος του ijkstra Θέματα μελέτης Πρόβλημα εύρεσης ελάχιστων μονοπατιών σε γραφήματα (shortest path problem) Αλγόριθμος

Διαβάστε περισσότερα

Πανεπιστήμιο Ιωαννίνων Τμήμα Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2012

Πανεπιστήμιο Ιωαννίνων Τμήμα Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2012 Πανεπιστήμιο Ιωαννίνων Τμήμα Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2012 Ενδεικτικές απαντήσεις 1 ου σετ ασκήσεων. Άσκηση 1 Πραγματοποιήσαμε μια σειρά μετρήσεων του χρόνου εκτέλεσης τριών

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο 3.07 Να γραφεί αλγόριθμος που θα δημιουργεί πίνακα 100 θέσεων στον οποίο τα περιττά στοιχεία του θα έχουν την τιμή 1 και τα άρτια την τιμή 0. ΛΥΣΗ Θα δημιουργήσω άσκηση βάση κάποιων κριτηρίων. Δηλ. δεν

Διαβάστε περισσότερα

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

Προσεγγιστικοί Αλγόριθμοι Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. http://xkcd.com/287/ Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. Πως μπορούμε να αντιμετωπίσουμε το γεγονός ότι είναι απίθανη(;)

Διαβάστε περισσότερα

Μέθοδοι πολυδιάστατης ελαχιστοποίησης

Μέθοδοι πολυδιάστατης ελαχιστοποίησης Μέθοδοι πολυδιάστατης ελαχιστοποίησης με παραγώγους Μέθοδοι πολυδιάστατης ελαχιστοποίησης Δ. Γ. Παπαγεωργίου Τμήμα Μηχανικών Επιστήμης Υλικών Πανεπιστήμιο Ιωαννίνων dpapageo@cc.uoi.gr http://pc64.materials.uoi.gr/dpapageo

Διαβάστε περισσότερα

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η Μονοδιάστατοι Πίνακες Τι είναι ο πίνακας γενικά : Πίνακας είναι μια Στατική Δομή Δεδομένων. Δηλαδή συνεχόμενες θέσεις μνήμης, όπου το πλήθος των θέσεων είναι συγκεκριμένο. Στις θέσεις αυτές καταχωρούμε

Διαβάστε περισσότερα

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 5: Ασκήσεις Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΕΜΠΤΗ 26 ΑΠΡΙΛΙΟΥ 2012 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ

Διαβάστε περισσότερα

(18 ο ) ΚΛΑΣΜΑΤΙΚΗ ΑΝΑΓΩΓΗ - ΙI: «διάμεσος &θεσιακή επιλογή στοιχείου»

(18 ο ) ΚΛΑΣΜΑΤΙΚΗ ΑΝΑΓΩΓΗ - ΙI: «διάμεσος &θεσιακή επιλογή στοιχείου» (8 ο ) ΚΛΑΣΜΑΤΙΚΗ ΑΑΓΩΓΗ - ΙI: «διάμεσος &θεσιακή επιλογή στοιχείου» Το πρόβλημα του διαμέσου στοιχείου: ένα θεμελιακό πρόβλημα Συναντήσαμε ήδη αρκετές φορές το πρόβλημα του να «κόψουμε» ένα σύνολο στοιχείων

Διαβάστε περισσότερα

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

Δυναμικός προγραμματισμός για δέντρα ΘΕ5 Ιδιότητες Δέντρων και Αναδρομή για Δέντρα Δυναμικός προγραμματισμός για δέντρα Έστω ότι, για k=1,..., m, το γράφημα Γ k = (V k, E k ) είναι δέντρο. Έστω w V 1... V m, z k V k, για k=1,..., m. Συμβολίζουμε

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 13: Αλγόριθμοι-Μεγάλων ακεραίων- Εκθετοποίηση- Πολλαπλασιασμός πινάκων -Strassen Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Θεωρία παιγνίων Δημήτρης Χριστοφίδης Εκδοση 1η: Παρασκευή 3 Απριλίου 2015. Παραδείγματα Παράδειγμα 1. Δυο άτομα παίζουν μια παραλλαγή του σκακιού όπου σε κάθε βήμα ο κάθε παίκτης κάνει δύο κανονικές κινήσεις.

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ροή Δικτύου Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μοντελοποίηση Δικτύων Μεταφοράς Τα γραφήματα χρησιμοποιούνται συχνά για την μοντελοποίηση

Διαβάστε περισσότερα

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ Περιεχόμενα Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23 Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ 1. Επαναληπτικοί αλγόριθμοι: Μέτρα προόδου και αναλλοίωτες συνθήκες.....................................................29

Διαβάστε περισσότερα

Outline 1 Άσκηση 1: Εφαρμογές BFS DFS 2 Άσκηση 2: Μια Συνάρτηση Κόστους σε Κατευθυνόμενα Γραφήματα 3 Άσκηση 3: Ανάλυση Ασφάλειας 4 Άσκηση 4: Το Σύνολο

Outline 1 Άσκηση 1: Εφαρμογές BFS DFS 2 Άσκηση 2: Μια Συνάρτηση Κόστους σε Κατευθυνόμενα Γραφήματα 3 Άσκηση 3: Ανάλυση Ασφάλειας 4 Άσκηση 4: Το Σύνολο Αλγόριθμοι και Πολυπλοκότητα 3η σειρά γραπτών και προγραμματιστικών ασκήσεων CoReLab ΣΗΜΜΥ ΕΜΠ Ιανουάριος 2017 CoReLab ΣΗΜΜΥ ΕΜΠ Αλγόριθμοι και Πολυπλοκότητα Ιανουάριος 2017 1 / 53 Outline 1 Άσκηση 1:

Διαβάστε περισσότερα

ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX

ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX ΚΕΦΑΛΑΙΟ 3 ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX 3.1 Εισαγωγή Ο αλγόριθμος Simplex θεωρείται πλέον ως ένας κλασικός αλγόριθμος για την επίλυση γραμμικών προβλημάτων. Η πρακτική αποτελεσματικότητά του έχει

Διαβάστε περισσότερα

Παράλληλοι Αλγόριθμοι: Ανάλυση Εικόνας και Υπολογιστική Γεωμετρία. Πέτρος Ποτίκας CoReLab 4/5/2006

Παράλληλοι Αλγόριθμοι: Ανάλυση Εικόνας και Υπολογιστική Γεωμετρία. Πέτρος Ποτίκας CoReLab 4/5/2006 Παράλληλοι Αλγόριθμοι: Ανάλυση Εικόνας και Υπολογιστική Γεωμετρία Πέτρος Ποτίκας CoReLab 4/5/2006 Επισκόπηση Ετικέτες σε συνιστώσες (Component labelling) Hough μετασχηματισμοί (transforms) Πλησιέστερος

Διαβάστε περισσότερα

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

ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ (ΑΛΓΟΡΙΘΜΟΙ, Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani, Κεφάλαιο 4 ΣΧΕΔΙΑΣΜΟΣ ΑΛΓΟΡΙΘΜΩΝ, Jon Kleinberg, Eva Tardos, Κεφάλαιο 4) 1 Θέματα

Διαβάστε περισσότερα

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Αντιμετώπιση NP- υσκολίας Αν P NP, όχι αλγόριθμος

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Μη γράφετε στο πίσω μέρος της σελίδας Εισαγωγή στο Σχεδιασμό & την Ανάλυση Αλγορίθμων Εξέταση Φεβρουαίου 2015 Σελ. 1 από 7 Στη σελίδα αυτή γράψτε μόνο τα στοιχεία σας. Γράψτε τις απαντήσεις σας στις επόμενες σελίδες, κάτω από τις αντίστοιχες

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι 1 Έννοια Ανεπίσημα, ένας αλγόριθμος είναι μια βήμα προς βήμα μέθοδος για την επίλυση ενός προβλήματος ή την διεκπεραίωση

Διαβάστε περισσότερα

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

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17) Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Σχεδιασµός αλγορίθµων µε Άπληστους Αλγόριθµους Στοιχεία άπληστων αλγορίθµων Το πρόβληµα επιλογής εργασιών ΕΠΛ 232

Διαβάστε περισσότερα

Δρομολόγηση Και Πολύχρωματισμός. Γραφημάτων ΚΑΡΑΓΕΩΡΓΟΣ ΤΙΜΟΘΕΟΣ Α.Μ 1026

Δρομολόγηση Και Πολύχρωματισμός. Γραφημάτων ΚΑΡΑΓΕΩΡΓΟΣ ΤΙΜΟΘΕΟΣ Α.Μ 1026 Δρομολόγηση Και Πολύχρωματισμός Μονοπατιών Γραφημάτων ΚΑΡΑΓΕΩΡΓΟΣ ΤΙΜΟΘΕΟΣ Α.Μ 1026 Εισαγωγή. Το πρόβλημα με το οποίο θα ασχοληθούμε εδώ είναι γνωστό σαν: Δρομολόγηση και Πολύ-χρωματισμός Διαδρομών (Routing

Διαβάστε περισσότερα

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

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις-προσθήκες: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις-προσθήκες: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Διαίρει-και-Βασίλευε Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις-προσθήκες: Α. Παγουρτζής Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Διαίρει-και-Βασίλευε Γενική

Διαβάστε περισσότερα

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

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 04: ΠαραδείγματαΑνάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα -Γραμμική

Διαβάστε περισσότερα

z = c 1 x 1 + c 2 x c n x n

z = c 1 x 1 + c 2 x c n x n Τεχνολογικό Εκπαιδευτικό Ιδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Γραμμικός Προγραμματισμός & Βελτιστοποίηση Δρ. Δημήτρης Βαρσάμης Καθηγητής Εφαρμογών Δρ. Δημήτρης Βαρσάμης Μάρτιος

Διαβάστε περισσότερα

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1 Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής Μάθημα: Τεχνητή Νοημοσύνη, 2016 17 Διδάσκων: Ι. Ανδρουτσόπουλος Ασκήσεις μελέτης της 4 ης διάλεξης 4.1. (α) Αποδείξτε ότι αν η h είναι συνεπής, τότε h(n

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ενότητα 2 ιαίρει και Βασίλευε Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 2 1 / 24 Επιλογή Το πρόβληµα

Διαβάστε περισσότερα

Γραμμικός Προγραμματισμός Μέθοδος Simplex

Γραμμικός Προγραμματισμός Μέθοδος Simplex ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Επιχειρησιακή Έρευνα Γραμμικός Προγραμματισμός Μέθοδος Simplex Η παρουσίαση προετοιμάστηκε από τον Ν.Α. Παναγιώτου Περιεχόμενα Παρουσίασης 1. Πρότυπη Μορφή ΓΠ 2. Πινακοποίηση

Διαβάστε περισσότερα

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 12 η Αναζήτηση/Ταξινόμηση Πίνακα Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην

Διαβάστε περισσότερα

Αλγόριθμοι Προσέγγισης για NP-Δύσκολα Προβλήματα

Αλγόριθμοι Προσέγγισης για NP-Δύσκολα Προβλήματα Αλγόριθμοι Προσέγγισης για NP-Δύσκολα Προβλήματα Διδάσκοντες: E. Ζάχος, Α. Παγουρτζής Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο

Διαβάστε περισσότερα

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΡΧΗ 1ης ΣΕΛΙ ΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΦΕΒΡΟΥΑΡΙΟΥ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 ΘΕΜΑ Α :

Διαβάστε περισσότερα

Πανεπιστήμιο Ιωαννίνων Τμήμα Μηχανικών Η/Υ και Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2013

Πανεπιστήμιο Ιωαννίνων Τμήμα Μηχανικών Η/Υ και Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2013 Πανεπιστήμιο Ιωαννίνων Τμήμα Μηχανικών Η/Υ και Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2013 Λυμένες Ασκήσεις Σετ Α: Ανάλυση Αλγορίθμων Άσκηση 1 Πραγματοποιήσαμε μια σειρά μετρήσεων του

Διαβάστε περισσότερα

ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιαίρει-και-βασίλευε Γενική μέθοδος σχεδιασμού αλγορίθμων: ιαίρεση σε ( 2) υποπροβλήματα

Διαβάστε περισσότερα

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

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο Πολλαπλασιασμός μεγάλων ακεραίων (1) Για να πολλαπλασιάσουμε δύο ακεραίους με n 1 και n 2 ψηφία με το χέρι, θα εκτελέσουμε n 1 n 2 πράξεις πολλαπλασιασμού Πρόβλημα ρβημ όταν έχουμε πολλά ψηφία: A = 12345678901357986429

Διαβάστε περισσότερα

EukleÐdeiec emfuteôseic: ˆnw frˆgmata

EukleÐdeiec emfuteôseic: ˆnw frˆgmata EukleÐdeiec emfuteôseic: ˆnw frˆgmata Εστω f : X Y μια εμφύτευση του μετρικού χώρου (X, ρ) στο χώρο με νόρμα (Y, ). Η παραμόρφωση της f ορίζεται ως εξής: f(x) f(y) ρ(x, y) dist(f) = sup sup x y ρ(x, y)

Διαβάστε περισσότερα

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

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

Κ Ε Μη γράφετε στο πίσω μέρος της σελίδας Διακριτά Μαθηματικά Εξέταση Ιούνιος 206 Σελ. από 6 Στη σελίδα αυτή γράψτε μόνο τα στοιχεία σας. Γράψτε τις απαντήσεις σας στις επόμενες σελίδες, κάτω από τις αντίστοιχες ερωτήσεις. Στις απαντήσεις σας

Διαβάστε περισσότερα

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ Μαθηματικά Πληροφορικής 4ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης.

Διαβάστε περισσότερα

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

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

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91 Ε.Μ.Πoλυτεχνείο ΣΗΜΜΥ, ΣΕΜΦΕ Τομέας Τεχνολογίας Πληροφορικής & Υπολογιστών Διδάσκων: Ε.Ζαχος Ονοματεπώνυμο:... Αριθμός Μητρώου:... Σχολή:... εξάμηνο:... ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 005 Σύνολο

Διαβάστε περισσότερα

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

καθ. Βασίλης Μάγκλαρης ΣΤΟΧΑΣΤΙΚΕΣ ΔΙΕΡΓΑΣΙΕΣ & ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Αίθουσα 005 - Νέα Κτίρια ΣΗΜΜΥ Ε.Μ.Π. Ενισχυτική Μάθηση - Δυναμικός Προγραμματισμός: 1. Markov Decision Processes 2. Bellman s Optimality Criterion 3. Αλγόριθμος

Διαβάστε περισσότερα

Μέθοδος μέγιστης πιθανοφάνειας

Μέθοδος μέγιστης πιθανοφάνειας Αν x =,,, παρατηρήσεις των Χ =,,,, τότε έχουμε διαθέσιμο ένα δείγμα Χ={Χ, =,,,} της κατανομής F μεγέθους με από κοινού σκ της Χ f x f x Ορισμός : Θεωρούμε ένα τυχαίο δείγμα Χ=(Χ, Χ,, Χ ) από πληθυσμό το

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Περιεχόμενα. 1. Ανάλυση ευαισθησίας. (1) Ανάλυση ευαισθησίας (2) Δυϊκό πρόβλημα (κανονική μορφή) (3) Δυαδικός προγραμματισμός (4) Ανάλυση αποφάσεων

Περιεχόμενα. 1. Ανάλυση ευαισθησίας. (1) Ανάλυση ευαισθησίας (2) Δυϊκό πρόβλημα (κανονική μορφή) (3) Δυαδικός προγραμματισμός (4) Ανάλυση αποφάσεων Περιεχόμενα (1) Ανάλυση ευαισθησίας (2) Δυϊκό πρόβλημα (κανονική μορφή) (3) Δυαδικός προγραμματισμός (4) Ανάλυση αποφάσεων 1. Ανάλυση ευαισθησίας Λυμένο παράδειγμα 7 από το βιβλίο, σελ.85, λύση σελ.328

Διαβάστε περισσότερα

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης Σύνοψη Προηγούμενου Πίνακες (Arrays Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Διαδικαστικά θέματα. Aντικείμενο Μαθήματος. Aντικείμενα, Κλάσεις, Μέθοδοι, Μεταβλητές.

Διαβάστε περισσότερα

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

Μη γράφετε στο πίσω μέρος της σελίδας Εισαγωγή στο Σχεδιασμό & την Ανάλυση Αλγορίθμων Εξέταση Φεβρουαρίου 2016 Σελ. 1 από 7 Στη σελίδα αυτή γράψτε μόνο τα στοιχεία σας. Γράψτε τις απαντήσεις σας στις επόμενες σελίδες, κάτω από τις αντίστοιχες

Διαβάστε περισσότερα

OΡΙΟ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ

OΡΙΟ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ Ο ΚΕΦΑΛΑΙΟ : ΟΡΙΟ ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ OΡΙΟ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ ΠΡΑΓΜΑΤΙΚΟΙ ΑΡΙΘΜΟΙ ΣΥΝΑΡΤΗΣΕΙΣ Έστω Α ένα υποσύνολο του Τι ονομάζουμε πραγματική συνάρτηση με πεδίο ορισμού το Α ; Απάντηση : ΕΣΠ Β Έστω

Διαβάστε περισσότερα

Ακέραιος Γραμμικός Προγραμματισμός

Ακέραιος Γραμμικός Προγραμματισμός Τμήμα Μηχανικών Πληροφορικής ΤΕ 2016-2017 Ακέραιος Γραμμικός Προγραμματισμός Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα τελευταία ενημέρωση: 12/01/2017 1 Ακέραιος Γραμμικός Προγραμματισμός Όταν για

Διαβάστε περισσότερα

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

Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem Έλενα Ρόκου Μεταδιδακτορική Ερευνήτρια ΕΜΠ Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα