Η έννοια της "αποτελεσματικότητας" της λύσης δεν οφείλει να υπάρχει και στα υπόλοιπα μαθήματα;
Σε τι διαφέρει το δικό μας (αν διαφέρει);;
Στα μαθηματικά:
Ένας μαθητής αποδεικνύει το τάδε θεώρημα με 5 σελίδες.
Ένας καθηγητής του λέει ότι υπάρχει
συντομότερη απόδειξη, με 5 γραμμές.
Στην πληροφορική:
Ένας μαθητής λύνει μια ταξινόμηση με 5 γραμμές, χρησιμοποιώντας τη φυσαλίδα.
Ένας καθηγητής του λέει ότι υπάρχει
αποδοτικότερη ταξινόμηση, με 5 σελίδες (π.χ. radix sort).
Τι σχέση έχει η μία επιστήμη με την άλλη; Απολύτως καμία.
Στα μαθηματικά μια αποτελεσματική λύση θα ήταν μια μικρή λύση. Αντίθετα, μια μεγάλη λύση θα "κούραζε" τον λύτη, αλλά δεν θα μειώνε το γεγονός ότι απέδειξε αυτό που ήθελε. Ο σκοπός της λύσης στα μαθηματικά είναι (συνήθως) μια απόδειξη, όχι η ταχύτητα της απόδειξης.
Στην πληροφορική μια αποτελεσματική λύση θα ήταν μια γρήγορη λύση
από πλευράς υπολογιστή, όχι από πλευράς λύτη (ή μια λύση που να καταναλώνει λιγότερη μνήμη κτλ).
Η διαφορά στην απόδοση διάφορων αλγορίθμων στην πληροφορική είναι τρομακτική. Ένας βέλτιστος αλγόριθμος μπορεί να λύσει ένα πρόβλημα σε λίγα δευτερόλεπτα, ενώ κάποιος άλλος αλγόριθμος να χρειαστεί εκατομμύρια χρόνια για τη λύση του. Σ' αυτήν την περίπτωση ουσιαστικά δεν μπορεί να θεωρηθεί ότι έχει βρεθεί λύση, ακόμα κι αν ο αλγόριθμος είναι σωστός.
Έστω ότι δίνεται το πρόβλημα "να λυθεί μια δευτεροβάθμια εξίσωση".
Τον κλασσικό τρόπο τον ξέρουμε όλοι.
Ένας μαθητής αποφασίζει να κάνει το εξής:
ΓΙΑ Χ1 από -1000000000000 ΜΕΧΡΙ 1000000000000 ΜΕ_ΒΗΜΑ 0.0000000000001
ΑΝ Τριώνυμο(Χ) = 0 ΤΟΤΕ
ΓΡΑΨΕ 'Βρέθηκε μια λύση'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Όπου η αρχική και τελική τιμή είναι ο μικρότερος/μεγαλύτερος πραγματικός που υποστηρίζει ο υπολογιστής.
Εμείς θα έπρεπε βάσει όσων λέμε να το θεωρήσουμε σωστό και να του δώσουμε όλες τις μονάδες, ακόμα κι αν ο αλγόριθμός του ήθελε εκατομμύρια χρόνια να εκτελεστεί.
Πάμε πάλι στα μαθηματικά. Ο ίδιος μαθητής θα προσπαθούσε να λύσει το τριώνυμο με
δοκιμές, και ίσως πριν πάρει σύνταξη να κατάφερνε να το λύσει. Αν υποθέσουμε ότι ο καθηγητής του ζούσε ακόμα, θα του έβαζε άριστα;
Εμείς γιατί να του βάλουμε;
Συμπέρασμα; μην παρομοιάζουμε τις λύσεις της πληροφορικής με αυτές των άλλων επιστημών, δεν έχουν απολύτως καμία σχέση. Αν πρέπει ντε και καλά να παραλληλίσουμε κάτι, θα πρέπει να παραλληλίσουμε τον φόρτο του υπολογιστή (= απόδοση), όχι το μέγεθος της ίδιας της λύσης...