Ποια είναι τα πρωταρχικά ερωτήματα που τίθενται για την κατανόηση της επίδοσης ενός αλγορίθμου;
Σκέψη / Μεθοδολογία: Κλειστή ερώτηση απαρίθμησης — τα τρία ερωτήματα δίνονται ρητά στην αρχή του §5.1.
Λύση:
Ανατρέχουμε στην αρχή του §5.1 και απαριθμούμε τα τρία ερωτήματα που τίθενται.
Απάντηση: Τα πρωταρχικά ερωτήματα είναι: (1) πώς υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου, (2) πώς μπορούν να συγκριθούν μεταξύ τους οι διάφοροι αλγόριθμοι, και (3) πώς μπορεί να γνωρίζει κανείς αν ένας αλγόριθμος είναι «βέλτιστος».
Πρόσεξε:
Τι είναι και πώς μπορεί να εκφρασθεί η χειρότερη περίπτωση ενός αλγορίθμου;
Σκέψη / Μεθοδολογία: Ανατρέχουμε στον ορισμό του §5.1.1: η χειρότερη περίπτωση αφορά το μέγιστο κόστος εκτέλεσης, και εκφράζεται με τον αριθμό βασικών πράξεων.
Λύση:
Απάντηση: Η χειρότερη περίπτωση ενός αλγορίθμου αφορά το μέγιστο κόστος εκτέλεσής του (σε υπολογιστικούς πόρους). Εκφράζεται με τη μέτρηση του αριθμού των βασικών πράξεων (π.χ. αναθέσεις τιμών, συγκρίσεις, αριθμητικές πράξεις) που εκτελεί ο αλγόριθμος για τη δυσμενέστερη δυνατή είσοδο — δηλαδή αυτή που οδηγεί στην εκτέλεση του μέγιστου αριθμού βασικών πράξεων.
Πρόσεξε:
Να περιγραφεί το μέγεθος της εισόδου ενός αλγορίθμου και να δοθεί ένα παράδειγμα αναγνώρισης και καταγραφής αυτού του μεγέθους.
Σκέψη / Μεθοδολογία: Δίνουμε τον ορισμό από το §5.1.2 και χρησιμοποιούμε τον Πίνακα 5.1 ως έτοιμο παράδειγμα αναγνώρισης μεγέθους εισόδου σε τρεις κατηγορίες προβλημάτων.
Λύση:
Απάντηση: Το μέγεθος εισόδου ενός αλγορίθμου είναι η μεταβλητή (ή οι μεταβλητές) που εκφράζει το πλήθος των δεδομένων που δίνονται ως είσοδος και καθορίζει τη συμπεριφορά/το κόστος του αλγορίθμου. Παράδειγμα: στην αναζήτηση σε πίνακα, το μέγεθος εισόδου είναι το πλήθος n των στοιχείων του πίνακα· στην ταξινόμηση είναι το πλήθος των αντικειμένων προς ταξινόμηση· στον πολλαπλασιασμό είναι το πλήθος των ψηφίων των αριθμών.
Πρόσεξε:
Από ποιους κύριους παράγοντες εξαρτάται ο χρόνος εκτέλεσης ενός αλγορίθμου;
Σκέψη / Μεθοδολογία: Κλειστή ερώτηση απαρίθμησης — οι πέντε παράγοντες δίνονται ρητά στο §5.1.4.
Λύση:
Ανατρέχουμε στη λίστα παραγόντων του §5.1.4 και τους απαριθμούμε.
Απάντηση: Ο χρόνος εκτέλεσης ενός αλγορίθμου εξαρτάται κυρίως από: τον τύπο του ηλεκτρονικού υπολογιστή που θα εκτελέσει το πρόγραμμα, τη γλώσσα προγραμματισμού που θα χρησιμοποιηθεί, τη δομή του προγράμματος και τις δομές δεδομένων που χρησιμοποιούνται, τον χρόνο πρόσβασης στον δίσκο και τις ενέργειες εισόδου-εξόδου, και το είδος του συστήματος (ενός ή πολλών χρηστών).
Πρόσεξε:
Ποιες είναι οι απαραίτητες προϋποθέσεις για να είναι δυνατή η σύγκριση μεταξύ δύο προγραμμάτων αλγορίθμων;
Σκέψη / Μεθοδολογία: Κλειστή ερώτηση απαρίθμησης — οι τέσσερις προϋποθέσεις δίνονται ρητά στο §5.1.4.
Λύση:
Ανατρέχουμε στις τέσσερις προϋποθέσεις του §5.1.4 και τις απαριθμούμε.
Απάντηση: Για να έχει νόημα η σύγκριση δύο προγραμμάτων αλγορίθμων πρέπει: (1) και τα δύο προγράμματα να έχουν συνταχθεί στην ίδια γλώσσα προγραμματισμού, (2) να έχει χρησιμοποιηθεί ο ίδιος μεταφραστής της γλώσσας, (3) να χρησιμοποιείται η ίδια υπολογιστική πλατφόρμα, και (4) ακριβώς τα ίδια δεδομένα να αποτελούν είσοδο κατά τον έλεγχο και των δύο αλγορίθμων.
Πρόσεξε:
Να ορισθεί η αποδοτικότητα αλγορίθμων.
Σκέψη / Μεθοδολογία: Το βιβλίο δεν δίνει μονολεκτικό τυπικό ορισμό, αλλά περιγράφει την αποδοτικότητα μέσω σύγκρισης δύο αλγορίθμων με το ίδιο αποτέλεσμα — συνθέτουμε τον ορισμό από αυτή την περιγραφή.
Λύση:
Ενδεικτική απάντηση: Η αποδοτικότητα ενός αλγορίθμου εκφράζει πόσο καλά αξιοποιεί τους υπολογιστικούς πόρους (χρόνο, μνήμη) για να δώσει το ζητούμενο αποτέλεσμα. Αν δύο αλγόριθμοι Α και Β δίνουν το ίδιο αποτέλεσμα, ο Β θεωρείται αποδοτικότερος του Α όταν το πετυχαίνει σε λιγότερο χρόνο ή με λιγότερη μνήμη — πάντα υπό τον όρο ότι η σύγκριση γίνεται με τα ίδια δεδομένα και τις ίδιες συνθήκες εκτέλεσης.
Πρόσεξε:
