Ανάλυση Προβλήματος - Μέθοδος Διαιρεί και Βασίλευε
Είναι πιθανόν ένα πρόβλημα να μην επιλύεται με μία μόνο λύση, αλλά με περισσότερες. Γενικά, η λύση σε ένα πρόβλημα μπορεί να προέλθει από ποικίλες και διαφορετικές προσεγγίσεις, τεχνικές και μεθόδους.
Έτσι, είναι απαραίτητο να γίνεται μια καλή ανάλυση του κάθε προβλήματος και να προτείνεται συγκεκριμένη μεθοδολογία και ακολουθία βημάτων, η οποία θα οδηγήσει σε έξυπνες και αποδοτικές λύσεις.
Η ανάλυση ενός προβλήματος σε ένα σύγχρονο προγραμματιστικό περιβάλλον περιλαμβάνει τα εξής βήματα:
Ας θεωρήσουμε έναν ταχυδρόμο, ο οποίος πρέπει να ξεκινήσει από ένα χωριό, να επισκεφθεί έναν αριθμό γειτονικών χωριών για να μοιράζει γράμματα και να επιστρέψει στο αρχικό χωριό, περνώντας μόνο μία φορά από το κάθε χωριό.
Θα μπορούσαμε να αναλύσουμε το πρόβλημα με τους ακόλουθους τρόπους:
Η ανάλυση κάθε προβλήματος είναι απαραίτητη, έτσι ώστε να αναζητηθεί η πλέον κατάλληλη μέθοδος που να παρέχει τη ζητούμενη λύση, όσο γίνεται ταχύτερα και με το λιγότερο δυνατό κόστος σε υπολογιστικούς πόρους.
Δεν υπάρχει ένας ενιαίος κανόνας, μία γενική φόρμουλα που να αναφέρεται στην επίλυση του συνόλου των προβλημάτων.
Υπάρχουν όμως "συγγενή" προβλήματα, δηλαδή προβλήματα που μπορούν να αναλυθούν με παρόμοιο τρόπο και να αντιμετωπισθούν με αντίστοιχες μεθόδους και τεχνικές.
Η «Διαιρεί και Βασίλευε» (divide and conquer) αποτελεί μια μέθοδο σχεδίασης αλγορίθμων στην οποία εντάσσονται οι τεχνικές που υποδιαιρούν ένα πρόβλημα σε μικρότερα υποπροβλήματα, που έχουν την ίδια τυποποίηση με το αρχικό πρόβλημα, αλλά είναι μικρότερα σε μέγεθος.
Με όμοιο τρόπο, τα υποπροβλήματα αυτά μπορούν να διαιρεθούν σε ακόμη μικρότερα υποπροβλήματα κ.ο.κ. Έτσι η επίλυση ενός προβλήματος έγκειται στη σταδιακή επίλυση των όσο το δυνατόν μικρότερων υποπροβλημάτων, ώστε τελικά να προκύψει η συνολική λύση του αρχικού ευρύτερου προβλήματος.
Στο πλαίσιο του μαθήματος, η υλοποίηση της μεθόδου «Διαιρεί και Βασίλευε» γίνεται με την επαναληπτική προσέγγιση (με διαδοχικές επαναλήψεις).
Ο μέγιστος αριθμός των συγκρίσεων (επαναλήψεων) που απαιτούνται για την εύρεση ενός στοιχείου σε ένα σύνολο n ταξινομημένων στοιχείων, συμπεριλαμβανομένης και της περίπτωσης μη ύπαρξης του στοιχείου, δίνεται από το ακέραιο μέρος του:
Σε ένα σύνολο 100 ταξινομημένων στοιχείων (n = 100):
Ο μέγιστος αριθμός συγκρίσεων (επαναλήψεων) είναι 7.
Είναι πιθανόν ένα πρόβλημα να μην επιλύεται με μία μόνο λύση, αλλά με περισσότερες. Η λύση σε ένα πρόβλημα μπορεί να προέλθει από ποικίλες και διαφορετικές προσεγγίσεις, τεχνικές και μεθόδους.
Έτσι, είναι απαραίτητο να γίνεται μια καλή ανάλυση του κάθε προβλήματος και να προτείνεται συγκεκριμένη μεθοδολογία και ακολουθία βημάτων, η οποία θα οδηγήσει σε έξυπνες και αποδοτικές λύσεις.
Πρόβλημα: Ένας ταχυδρόμος πρέπει να ξεκινήσει από ένα χωριό, να επισκεφθεί έναν αριθμό γειτονικών χωριών για να μοιράζει γράμματα και να επιστρέψει στο αρχικό χωριό, περνώντας μόνο μία φορά από το κάθε χωριό.
Προσέγγιση 1: Ο ταχυδρόμος επιλέγει κάθε φορά το πιο κοντινό χωριό (τοπικά βέλτιστη λύση).
Προσέγγιση 2: Υπολογίζονται όλες οι πιθανές διαδρομές και επιλέγεται αυτή με την ελάχιστη συνολική απόσταση (ολικά βέλτιστη λύση). Αυτή απαιτεί περισσότερους υπολογιστικούς πόρους.
Η ανάλυση κάθε προβλήματος είναι απαραίτητη, έτσι ώστε να αναζητηθεί η πλέον κατάλληλη μέθοδος που να παρέχει τη ζητούμενη λύση, όσο γίνεται ταχύτερα και με το λιγότερο δυνατό κόστος σε υπολογιστικούς πόρους.
Όχι, δεν υπάρχει ένας ενιαίος κανόνας ή μια γενική φόρμουλα που να αναφέρεται στην επίλυση του συνόλου των προβλημάτων.
Υπάρχουν όμως "συγγενή" προβλήματα, δηλαδή προβλήματα που μπορούν να αναλυθούν με παρόμοιο τρόπο και να αντιμετωπισθούν με αντίστοιχες μεθόδους και τεχνικές.
Η «Διαιρεί και Βασίλευε» (divide and conquer) αποτελεί μια μέθοδο σχεδίασης αλγορίθμων στην οποία εντάσσονται οι τεχνικές που υποδιαιρούν ένα πρόβλημα σε μικρότερα υποπροβλήματα, που έχουν την ίδια τυποποίηση με το αρχικό πρόβλημα, αλλά είναι μικρότερα σε μέγεθος.
Με όμοιο τρόπο, τα υποπροβλήματα αυτά μπορούν να διαιρεθούν σε ακόμη μικρότερα υποπροβλήματα κ.ο.κ. Έτσι η επίλυση ενός προβλήματος έγκειται στη σταδιακή επίλυση των όσο το δυνατόν μικρότερων υποπροβλημάτων, ώστε τελικά να προκύψει η συνολική λύση του αρχικού ευρύτερου προβλήματος.
Η προσέγγιση αυτή ονομάζεται «από πάνω προς τα κάτω» (top-down).
Στο πλαίσιο του μαθήματος, η υλοποίηση της μεθόδου «Διαιρεί και Βασίλευε» γίνεται με την επαναληπτική προσέγγιση (με διαδοχικές επαναλήψεις).
Ο μέγιστος αριθμός των συγκρίσεων (επαναλήψεων) που απαιτούνται για την εύρεση ενός στοιχείου σε ένα σύνολο n ταξινομημένων στοιχείων, συμπεριλαμβανομένης και της περίπτωσης μη ύπαρξης του στοιχείου, δίνεται από το ακέραιο μέρος του:
Η απόδειξη του τύπου υπερβαίνει τα όρια της διδακτέας ύλης. Επομένως, για τον υπολογισμό θεωρείται γνωστό το log₂(n).
Παράδειγμα: Για n = 100: log₂(100) ≈ 6,64 → [6,64 + 1] = [7,64] = 7 συγκρίσεις.
8. Τι κάνει η μέθοδος «Διαιρεί και Βασίλευε»;
9. Πώς ονομάζεται η προσέγγιση της μεθόδου «Διαιρεί και Βασίλευε»;
10. Ποιος είναι ο τύπος για τον μέγιστο αριθμό συγκρίσεων σε n ταξινομημένα στοιχεία;
11. Για n = 100, ποιος είναι ο μέγιστος αριθμός συγκρίσεων;
12. Ποιο χαρακτηριστικό παράδειγμα ακολουθεί τη λογική «Διαιρεί και Βασίλευε»;
Υπολόγισε τον μέγιστο αριθμό συγκρίσεων για ταξινομημένα σύνολα με τα εξής μεγέθη:
Χρησιμοποίησε τον τύπο: [log₂(n) + 1]
Λύση:
Ένας αλγόριθμος «Διαιρεί και Βασίλευε» χρειάζεται 5 επαναλήψεις για να λύσει ένα πρόβλημα μεγέθους n.
Ερωτήσεις:
Λύση:
Έχουμε ένα ταξινομημένο σύνολο με 1.000.000 στοιχεία.
Ερωτήσεις:
Λύση:
Ένας αλγόριθμος ταξινομεί έναν πίνακα 8 αριθμών χρησιμοποιώντας τη μέθοδο «Διαιρεί και Βασίλευε» (Merge Sort).
Ερωτήσεις:
Λύση:
Πρόβλημα: Ένας μαθητής θέλει να βρει τη μέγιστη βαθμολογία σε μια λίστα 100 μαθητών. Έχει δύο επιλογές:
Ερωτήσεις:
Λύση: