Διδακτικά Βιβλία του Παιδαγωγικού Ινστιτούτου

Αναζήτηση

Βρες
Εμφάνιση

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

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

Αυτή η μέθοδος σχεδίασης αλγορίθμων χρησιμοποιείται κυρίως για την επίλυση προβλημάτων βελτιστοποίησης, δηλαδή όταν χρειάζεται να βρεθεί το ελάχιστο ή το μέγιστο κάποιου μεγέθους. Στην προσέγγιση αυτού του τύπου δεν υπάρχει η ίδια λογική επαναληπτικών εκτελέσεων που υπήρχε στη προηγούμενη προσέγγιση, αλλά υπάρχει ένας πίνακας από υπο-αποτελέσματα που καταλήγει στην τελική λύση του προβλήματος. Επομένως συμπερασματικά ακολουθείται η εξής προσέγγιση: 1. ξεκινά η λύση από το ελάχιστο στιγμιότυπο του προβλήματος, 2. υπολογίζονται σταδιακά αποτελέσματα όλο και μεγαλύτερων υποστιγμιότυπων, 3. καταλήγει στη σύνθεση.

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