Εισαγωγή στο Σχεδιασμό & την Ανάλυση Αλγορίθμων Εξέταση Φεβρουαίου 2015 Σελ. 1 από 7 Στη σελίδα αυτή γράψτε μόνο τα στοιχεία σας. Γράψτε τις απαντήσεις σας στις επόμενες σελίδες, κάτω από τις αντίστοιχες ερωτήσεις. Στις απαντήσεις σας μην ξεπερνάτε, για οποιοδήποτε λόγο, τα καθορισμένα όρια για τις απαντήσεις. Σελίδες για πρόχειρο θα σας δοθούν χωριστά. Γράψτε τον ΑΜ σας σε όλες τις σελίδες (και ονοματεπώνυμο και ΑΜ στο πρόχειρο). Επώνυμο: Όνομα: ΑΜ: Βαθμοί 1 2 3 Σύνολο Κ Ε Μη γράφετε στο πίσω μέρος της σελίδας
ΑΜ: Σελ. 2 από 7 Θέμα 1 [4 μονάδες]. Θεωρήστε ένα ισοσταθμισμένο δυαδικό δέντρο ύψους h με συνολικό αριθμό κόμβων n. Να αποδείξετε ότι ο n στη δυαδική γραφή έχει ακριβώς h + 1 ψηφία. Υπενθύμιση: Δυαδικό δέντρο ύψους h καλείται ισοσταθμισμένο αν όλοι οι κόμβοι πλην αυτών που είναι σε βάθος h και h 1 έχουν ακριβώς δύο τέκνα και υπάρχει το πολύ ένας κόμβος σε βάθος h 1 με ένα τέκνο συνήθως τοποθετούμε τα φύλλα στο επίπεδο h κατά τρόπο ώστε να είναι συγκεντρωμένα αριστερά. Υπόδειξη: Υπολογίστε πρώτα τον ακριβή αριθμό των κόμβων βάθους h 1 και στη συνέχεια υπολογίστε όρια για τον αριθμό των φύλλων βάθους h. Στη συνέχεια επιχειρηματολογήστε για τον αριθμό των ψηφίων του αθροίσματος των δύο αυτών αριθμών. Απάντηση: Σε ένα ισοσταθμισμένο δένδρο ύψους h για 0 i h 1 υπάρχουν 2 i κορυφές βάθους i, ενώ σε βάθος h υπάρχει αριθμός φύλλων m μεταξύ 1 και 2 h. Επομένως ο αριθμός των κόμβων βάθους h 1 είναι 1 + + 2 h 1 = 2 h 1, ενώ για τον αριθμό των φύλλων σε βάθος h έχουμε ότι άρα 1 m 2 h, 0 m 1 2 h 1. Ο συνολικός αριθμός κόμβων είναι επομένως n = 2 h + m 1. Ο αριθμός 2 h γράφεται με το ψηφίο 1 ακολουθούμενο από h μηδενικά ψηφία, ενώ ο αριθμός m 1, ως ευρισκόμενος μεταξύ 0 και 2 h 1, γράφεται με το πολύ h ψηφία. Άρα ο n = 2 h + m 1 γράφεται με ακριβώς h + 1 ψηφία. Επισήμανση: Στα θέματα που δόθηκαν στην εξέταση αναγραφόταν λανθασμένα ότι ο αριθμός έχει h ψηφία. Στη διόρθωση θα ληφθεί υπόψη η συνολική ανάπτυξη της σκέψης.
ΑΜ: Σελ. 3 από 7 Θέμα 2. Δίνονται N «κατοικίες» στο θετικό ημιάξονα σε αποστάσεις από την αρχή των αξόνων 0 = L[1] < L[2] < < L[N] χιλιομέτρων, αντίστοιχα (το i = 1,..., N είναι ο «δείκτης» της αντίστοιχης κατοικίας). Θέλουμε να καλύψουμε τις κατοικίες με κεραίες τοποθετημένες επίσης στο θετικό ημιάξονα και με βεληνεκές b χιλιομέτρων η κάθε μία. Ζήτημα 2α [3 μονάδες]. Να σχεδιασθεί αλγόριθμος, πολυπλοκότητας O(N), που υπολογίζει το ελάχιστο απαιτούμενο αριθμό M N κεραιών και τις αποστάσεις τους 0 A[1] < < A[M] από την αρχή των αξόνων ώστε να καλύπτονται όλες οι κατοικίες. Η απάντηση σας να δοθεί σε φυσική γλώσσα με τρόπο σύντομο, σαφή και κατανοητό. Υπόδειξη: Άπληστος αλγόριθμος που προχωρά από αριστερά προς τα δεξιά βρίσκοντας, σε κάθε φάση του, τη θέση μίας νέας κεραίας. Ο αριθμός των φάσεων δίνει τον αναγκαίο ελάχιστο αριθμό κεραιών. Ο αλγόριθμος κρατά μεταβλητή που δείχνει το δείκτη της πρώτης κατοικίας που παραμένει ακάλυπτη. Απάντηση: Προχωράμε από αριστερά προς τα δεξιά, τοποθετώντας σε κάθε φάση νέα κεραία b χλμ δεξιότερα από την πρώτη ακάλυπτη κατοικία. Αναλυτικότερα, ο αλγόριθμος ορίζει την ακολουθία A των θέσεων των κεραιών ορίζοντας ένα νέο στοιχείο A[i], i = 1,..., M σε κάθε φάση i. Στην αρχή η ακολουθία A είναι κενή. Ο αλγόριθμος κρατά μία μεταβλητή s έτσι ώστε στo τέλος κάθε φάσης i εκτός της τελευταίας είναι καλυμμένες οι κατοικίες L[1],..., L[s 1] και ακάλυπτη η L[s]. Αρχικά s = 1. Συνεχίζουμε αν s N. Για να ολοκληρώσουμε τη φάση i+1, αφού έχουμε ολοκληρώσει την i, θέτουμε A[i + 1] = L[s] + b. Για να βρούμε τη νέα τιμή του s διατρέχουμε διαδοχικά τις κατοικίες με δείκτες s + 1,... έως ότου βρούμε την πρώτη κατοικία, έστω με δείκτη j, που δεν καλύπτεται και θέτουμε s = j (στην τελευταία φάση όπου s = N, θέτουμε s = N + 1). O αριθμός των φάσεων δίνει τον ελάχιστο αριθμό κεραιών.
ΑΜ: Σελ. 4 από 7 Ζήτημα 2β [1 μονάδα]. Να αποδείξετε την ορθότητα του αλγορίθμου. Υπόδειξη: Θεωρήστε ότι η θέσεις των κεραιών σε μία βέλτιστη λύση δίνονται από την ακολουθία B[1],..., B[M ]. Αποδείξτε με επαγωγή στο i ότι οι κεραίες B[1],..., B[i] καλύπτουν υποσύνολο των κατοικιών που καλύπτουν οι κεραίες A[1],..., A[i], και συμπεράνετε ότι M = M. Απάντηση: Είναι φανερό, επειδή η ακολουθία κεραιών B είναι βέλτιστη, ότι M M. Ισχυριζόμαστε ότι για κάθε i M το σύνολο των κατοικιών που καλύπτονται από τις κεραίες B[1],..., B[i] είναι υποσύνολο του συνόλου των κατοικιών A[1],..., A[i] που καλύπτονται από τις κεραίες A[1],..., A[i]. Για την αρχή είναι φανερό. Έστω ότι ισχύει για i. Υποθέτουμε ότι i < M, αλλιώς έχουμε τελειώσει. Ότι i < M σημαίνει ότι ο άπληστος αλγόριθμος που περιγράψαμε συνεχίζει θέτοντας A[i + 1] = L[s] + b. Έστω ότι οι κεραίες A[1],..., A[i + 1] καλύπτουν τις κατοικίες L[1],..., L[s 1], L[s],..., L[s 1] (s είναι η νέα τιμή του s μετά την ολοκλήρωση της φάσης i+1). Από την επαγωγική υπόθεση οι κεραίες B[1],..., B[i] καλύπτουν υποσύνολο των κατοικιών L[1],..., L[s 1]. Η κεραία B[i+1] δεν μπορεί να είναι γνησίως δεξιότερα από την A[i + 1] = L[s] + b, διότι τότε η ακολουθία κεραιών B[1],..., B[M ] δεν θα κάλυπτε την κατοικία L[s]. Άρα B[i + 1] A[i + 1], επομένως οι κεραίες B[1],..., B[i + 1] καλύπτουν το πολύ τις κατοικίες L[1],..., L[s 1]. Εάν τώρα M < M τότε οι κεραίες A[1],..., A[M ] αφήνουν ακάλυπτη κάποια κατοικία, αφού ο αλγόριθμος μας συνεχίζει και μετά τη φάση M. Η ίδια κατοικία θα παρέμενε ακάλυπτη και από τις κεραίες B[1],..., B[M ], άτοπο.
ΑΜ: Σελ. 5 από 7 Θέμα 3. Σε τραπέζι καζίνο υπάρχουν δύο στήλες από n μάρκες η κάθε μία. Στην κάθε στήλη οι μάρκες είναι τοποθετημένες η μία πάνω στην άλλη. Γνωρίζετε την αξία της κάθε μάρκας, και αυτών που δε φαίνονται. Σας επιτρέπεται να παίρνετε μία μάρκα τη φορά, υποχρεωτικά την κορυφαία, από στήλη της επιλογής σας. Ο κρουπιέρης, μετά από κάθε επιλογή, σας δίνει την αξία όλων των μαρκών που έχετε ήδη συλλέξει από τη αρχή του παιχνιδιού. Ζήτημα 3α [2 μονάδες]. Σας συμφέρει να επιλέγετε εκείνη από τις δύο κορυφαίες μάρκες που έχει τη μεγαλύτερη αξία; Να απαντήσετε με απλό αντιπαράδειγμα (περίπλοκα αντιπαραδείγματα δεν θα γίνουν δεκτά). Απάντηση: Η άπληστη τακτική της επιλογής κάθε φορά της κορυφαίας μάρκας με τη μεγαλύτερη αξία δεν οδηγεί στο βέλτιστο αποτέλεσμα. Πράγματι θεωρήστε (α) μία «αριστερή» στήλη με δύο μάρκες, η κορυφαία αξίας 1 και η δεύτερη αξίας 10 και (β) μία «δεξιά» στήλη με δύο μάρκες αξίας 2 η κάθε μία. Η άπληστη τακτική θα οδηγούσε στην επιλογή πρώτα της μάρκας αξίας 2 δύο φορές, μετά της μάρκας αξίας 1 και τελικά της μάρκας αξίας 10. Με διαδοχικές πληρωμές 2, 2+2, 2+2+1 2+2+1+10, σύνολο 26. Αλλά αν επιλέξουμε πρώτα τη μάρκα αξίας 1, μετά αυτήν με αξία 10 και τελικά αυτές με αξία 2, οι πληρωμές είναι 1, 1+10, 1+10+2, 1+10+2+2, σύνολο 40.
ΑΜ: Σελ. 6 από 7 Ζήτημα 3β [2 μονάδες]. Να σχεδιάσετε αλγόριθμο δυναμικού προγραμματισμού που δίνει το μέγιστο κέρδος που μπορείτε να αποκομίσετε από την αρχή του παιχνιδιού έως ότου συλλέξετε όλες τις μάρκες. Υπόδειξη (μπορείτε, εάν θέλετε, να ακολουθήσετε εναλλακτική κατάστρωση λύσης από την προτεινόμενη): Έστω α i, β i, i = 1,..., n οι αξίες των μαρκών στην «αριστερή» και «δεξιά» στήλη, αντίστοιχα. Να υπολογίσετε το μέγιστο κέρδος OPT(l, r) που μπορείτε να αποκομίσετε από τη αρχή του παιχνιδιού έως ότου πάρετε l μάρκες από την αριστερή στήλη και r μάρκες από τη δεξιά. Θέστε αρχικά OPT(0, 0) = 0 και μετά υπολογίσετε τα OPT(l, 0), OPT(0, r) και OPT(l, r), για l, r > 0 (l, r n). Απάντηση: Ο αλγόριθμος Δυναμικού Προγραμματισμού θα συμπληρώνει έναν n n πίνακα OPT, σύμφωνα με τα παρακάτω: Για l > 0 θέτουμε: OPT(l, 0) = OPT(l 1, 0) + l α i, διότι στην περίπτωση αυτή έχουν ληφθεί μάρκες μόνο από την «αριστερή» στήλη, οπότε δεν υπήρχε δυνατότητα άλλης επιλογής παρά να ληφθούν διαδοχικά σύμφωνα τώρα με την εκφώνηση η λήψη της μάρκας l επιφέρει νέα πληρωμή ίση με l α i. Παρομοίως, για r > 0 έχουμε: OPT(0, r) = OPT(0, r 1) + r β i. Τώρα για l, r > 0 έχουμε: OPT(l, r) = max(opt(l 1, r), OPT(l, r 1)) + l α i + r β i, διότι στην περίπτωση αυτή έχουμε τις δύο δυνατότητες: η τελευταία μάρκα να προέρχεται από την «αριστερή» στήλη, οπότε μέχρι την προηγούμενη κίνηση θα είχαμε κέρδος OPT(l 1, r), ή εναλλακτικά από τη «δεξιά» στήλη, οπότε μέχρι την προηγούμενη κίνηση θα είχαμε κέρδος OPT(l, r 1) με την επιλογή της τελευταίας μάρκας, από όπου και εάν προέρχεται, έχουμε νέα πληρωμή l α i + r β i.
ΑΜ: Σελ. 7 από 7 Πρόσθετος χώρος για απάντηση στο Ζήτημα 3β.