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

Αναζήτηση

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

4.1 Ανάλυση προβλημάτων

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

Η ανάλυση ενός προβλήματος σε ένα σύγχρονο υπολογιστικό περιβάλλον περιλαμβάνει: - την καταγραφή της υπάρχουσας πληροφορίας για το πρόβλημα, - την αναγνώριση των ιδιαιτεροτήτων του προβλήματος, - την αποτύπωση των συνθηκών και προϋποθέσεων υλοποίησής του και στη συνέχεια: - την πρόταση επίλυσης με χρήση κάποιας μεθόδου, και - την τελική επίλυση με χρήση υπολογιστικών συστημάτων.

Έτσι, κατά την ανάλυση ενός προβλήματος θα πρέπει να δοθεί απάντηση σε κάθε μία από τις επόμενες ερωτήσεις: 1. Ποια είναι τα δεδομένα και το μέγεθος του προβλήματος, 2. Ποιες είναι οι συνθήκες που πρέπει να πληρούνται για την επίλυση του προβλήματος, 3. Ποια είναι η πλέον αποδοτική μέθοδος επίλυσής τους (σχεδίαση αλγορίθμου), 4. Πώς θα καταγραφεί η λύση σε ένα πρόβλημα (π.χ. σε ψευδογλώσσα), και 5. Ποιος είναι ο τρόπος υλοποίησης στο συγκεκριμένο υπολογιστικό σύστημα (π.χ. επιλογή γλώσσας προγραμματισμού)

Παράδειγμα. Έστω ότι αντιμετωπίζουμε το πρόβλημα ενός ταχυδρομικού διανομέα, που πρέπει να ξεκινήσει από ένα χωριό, να επισκεφθεί έναν αριθμό από γειτονικά χωριά, για να μοιράσει ένα σύνολο επιστολών και να επιστρέψει στο χωριό, από όπου ξεκίνησε περνώντας μόνο μία φορά από κάθε χωριό . Το πρόβλημα έγκειται στην εύρεση της καλύτερης διαδρομής, έτσι ώστε ο διανομέας να διανύσει το μικρότερο δυνατό αριθμό χιλιομέτρων.

Σχ.4.1. Χωριά και αποστάσεις μεταξύ τους.

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

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

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

Επομένως είναι φανερό, ότι η ανάλυση κάθε προβλήματος είναι απαραίτητη, έτσι ώστε να αναζητηθεί η πλέον κατάλληλη μέθοδος που να παρέχει τη ζητούμενη λύση, όσο γίνεται ταχύτερα και με το λιγότερο δυνατό κόστος σε υπολογιστικούς πόρους. Δεν υπάρχει ένας ενιαίος κανόνας, μία γενική φόρμουλα που να αναφέρεται στην επίλυση του συνόλου των προβλημάτων. Υπάρχουν όμως "συγγενή" προβλήματα, δηλαδή προβλήματα που μπορούν να αναλυθούν με παρόμοιο τρόπο και να αντιμετωπισθούν με αντίστοιχες μεθόδους και τεχνικές. Γενικότερα, οι μέθοδοι ανάλυσης και επίλυσης των προβλημάτων παρουσιάζουν ιδιαίτερο ενδιαφέρον για τους εξής λόγους: - παρέχουν ένα γενικό πρότυπο κατάλληλο για την επίλυση προβλημάτων ευρείας κλίμακας, - μπορούν να αναπαρασταθούν με κοινές δομές δεδομένων και ελέγχου (που υποστηρίζονται από τις περισσότερες σύγχρονες γλώσσες προγραμματισμού), - παρέχουν τη δυνατότητα καταγραφής των χρονικών και "χωρικών" απαιτήσεων της μεθόδου επίλυσης, έτσι ώστε να μπορεί να γίνει επακριβής εκτίμηση των αποτελεσμάτων.