Πρόλογος





Η Συμβολική Υπολογιστική είναι εκείνος ο κλάδος της Υπολογιστικής Επιστήμης ο οποίος σχεδιάζει, αναλύει, υλοποιεί και εφαρμόζει αλγεβρικούς αλγόριθμους. Σύμφωνα με αυτόν τον ορισμό, ένα υπολογιστικό σύστημα που είναι ικανό να εκτελεί συμβολικούς υπολογισμούς είναι ένα εργαλείο με την βοήθεια του οποίου είμαστε σε θέση να διαπραγματευτούμε μαθηματικά προβλήματα στον υπολογιστή. Οι συμβολικοί υπολογισμοί περιλαμβάνουν: την χρήση καθ'αυτή του εργαλείου, τον αλγόριθμο με τον οποίο το εργαλείο επιτυγχάνει τον σκοπό του, και τον σχεδιασμό και την αποτελεσματικότητα της εφαρμογής του εργαλείου.

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

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

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

Πρώτα από όλα, δεν υπάρχει απώλεια ακρίβειας επειδή τα συμβολικά αντικείμενα αναπαριστάνονται στον υπολογιστή ακριβώς. Προεπιλεγμένα, οι αριθμοί αποθηκεύονται ως ρητοί, π.χ. το 0.5 αποθηκεύεται ως 1/2, και το 1/3 αποθηκεύεται ως 1/3. Οι αριθμοί δεν μετατρέπονται αυτόματα σε προσεγγίσεις αριθμών κινητής υποδιαστολής, το οποίο σημαίνει ότι οι αριθμητικές πράξεις υλοποιούνται ακριβώς. Οι άρρητοι αριθμοί, όπως o $\pi$ και o $e$, αναγνωρίζονται ως μαθηματικές σταθερές με το όνομά τους και χειρίζονται συμβολικά. Για παράδειγμα, σε ένα ΣΣΥ η έκφραση $\pi\,r^2$ θα διατηρηθεί σε αυτήν την μορφή, μέχρι την στιγμή που ο χρήστης ζητήσει από το σύστημα τον υπολογισμό της για συγκεκριμένες τιμές.

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

$$ (a+b)^2\,,\qquad a\,x^2+b\,x+c = 0\,,$$
είναι ικανό να μας δώσει ως αποτέλεσμα εκφράσεις στην ακριβή μορφή

$$ a^2+2\,a\,b+b^2\,,\qquad x = \frac{-b\pm\sqrt{b^2-4\,a\,c}}{2\,a}\,,$$
αντίστοιχα. Στον παραδοσιακό αριθμητικό χειρισμό, θα είχαμε θέσει κάποιες τιμές στις μεταβλητές $a,b$, και $c$, πριν από οποιαδήποτε επιπλέον επεξεργασία. Οπότε, αν ζητούσαμε από ένα αριθμητικό σύστημα να μας ''λύσει την εξίσωση $4\,x^2-8+1=0$ ως προς $x$'', το πιθανότερο είναι ότι θα ανταποκρινόταν με τις αριθμητικές τιμές ''$0.133974596215561$'' και ''$1.86602540378444$'', ενώ ένα ΣΣΥ θα ανταποκρινόταν με ''$\lbrace x=1-\frac{1}{2}\sqrt{3} \, , \, x=1+\frac{1}{2}\sqrt{3}\rbrace$''.

Όσο απλοϊκά κι αν φαίνονται τα παραπάνω παραδείγματα, υποκρύβουν το γεγονός ότι ένα ΣΣΥ είναι ικανό να αντιμετωπίσει, εξίσου εύκολα, μαθηματικά προβλήματα με πολύ υψηλότερο βαθμό δυσκολίας. Από αυτή την σκοπιά ένα ΣΣΥ είναι ένα χρησιμότατο εργαλείο για την διαπραγμάτευση μαθηματικών εννοιών, ιδίως σε προπτυχιακό επίπεδο.

Ιστορικά, η ιδέα ένός ΣΣΥ διατυπώθηκε για πρώτη φορά από την ταλαντούχα μαθηματικό και προγραμματίστρια Ada Lovelace, κόρη του φημισμένου ποιητή Lord Byron. Η Ada Lovelace κατά την διάρκεια της συνεργασίας της με τον Charles Babbage για την κατασκευή της ''Αναλυτικής Μηχανής'' του, έγραψε:

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

Αρχικά, τα πιο νοήμονα ΣΣΥ ήταν το προϊόν της εργασίας που επιτελέστηκε στα τέλη της δεκαετίας του 1960, σε δυο Πανεπιστήμια των Ηνωμένων Πολιτειών της Αμερικής, το REDUCE στο Πανεπιστήμιο του Stanford, και το MACSYMA στο MIT. Και τα δυο ΣΣΥ σχεδιάστηκαν για να επιλύουν μια πληθώρα αλγεβρικών προβλημάτων. Οι ικανότητες και των δυο ΣΣΥ έχουν εξελιχθεί στην πορεία του χρόνου κι εξακολουθούν να χρησιμοποιούνται ακόμα και σήμερα σε ευρεία κλίμακα.

Ποιοι είναι οι λόγοι για να χρησιμοποιεί κάποιος ένα ΣΣΥ, και πολύ περισσότερο γιατί να υπάρχει ένα προπτυχιακό μάθημα με αυτό το αντικείμενο, τόσο από την πλευρά του διδάσκοντα, αλλά πολύ περισσότερο από την πλευρά του διδασκόμενου;

Από την πλευρά του φοιτητή:

  • Τα ΣΣΥ εξοικονομούν χρόνο: παρέχουν γρήγορους χειρισμούς άλγεβρικών και αριθμητικών εκφράσεων, και μας δίνουν άμεση απάντηση όταν το ζητούμενο είναι να ελέγξουμε τις απαντήσεις που έχουμε καταλήξει κάνοντας τους αντίστοιχους υπολογισμούς με μολύβι και χαρτί, όπου πάντα υπεισέρχεται ο παράγοντας του λάθους!

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

  • Τα ΣΣΥ αντικαθιστούν τους πίνακες συναρτήσεων, σειρών, ολοκληρωμάτων κοκ.

Από την πλευρά του διδάσκοντα, υπάρχουν τουλάχιστον δέκα διαφορετικοί λόγοι για να χρησιμοποιεί ένα ΣΣΥ στο μάθημα που διδάσκει, αλλά δεν θα επιχειρηματολογήσουμε για τους λόγους αυτούς εδώ.

Οι σημειώσεις αυτές φιλοδοξούν να αποτελέσουν μια σύντομη (αρκετά ελλιπή) εισαγωγή στο σύστημα συμβολικών υπολογισμών Sage, με στόχο να χρησιμοποιηθούν στην επίλυση απλών και πιο σύνθετων μαθηματικών προβλημάτων στο εργαστήριο. Πρωτογράφτηκαν τον Φεβρουάριο του 2017 για να καλύψουν συμπληρωματικές ανάγκες της διδασκαλίας του προπτυχιακού μαθήματος “Ανώτερα Μαθηματικά με Συστήματα Συμβολικών Υπολογισμών” στο Τμήμα Μαθηματικών του Παν. Πατρών.

Για τις ανάγκες του μαθήματος, μέχρι και το ακαδημαϊκό έτος 2015-16, ως ΣΣΥ χρησιμοποιούνταν το Mathematica και το Maple, έχοντας το Τμήμα Μαθηματικών στην κατοχή του τις απαραίτητες άδειες για την χρήση τους, αφού πρόκειται για εμπορικά λογισμικά.

Από το ακαδημαϊκό έτος 2016-2017, τα προαναφερόμενα ΣΣΥ, αντικαταστάθηκαν από το ελεύθερο λογισμικό, ανοικτού κώδικα Sage, από τα αρχικά Software for Algebra, Geometry and Experimentation.

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