Τρίτη, 26 Ιουλίου 2011

Αλγόριθμοι και τεχνητή νοημοσύνη.



Πραγματικά, είναι εντυπωσιακό αυτό το ρομποτάκι Lego Mindstorms. Πόσοι δεν ζηλεύουμε την ευφυΐα του, να μπορεί να επιλύει με τέτοια άνεση τον κύβο του Rubik!

Πρόκειται όμως για ευφυΐα ή μήπως για κάτι άλλο;

Θα γυρίσω λιγάκι πίσω, στα πρώτα μαθητικά μας χρόνια. Τότε που για να λύσουμε την εξίσωση
x+5=12
μας δίδασκαν ότι πρέπει να μεταφέρουμε το 5 στο άλλο μέρος με αλλαγμένο πρόσημο, καταλήγοντας έτσι στην
x=12-5, 
δηλαδή x=7
Ο "μηχανισμός" ήταν τόσο "αυτόματος" μέσα μας, που τον εφαρμόζαμε παντού! Κάνοντας συχνά και χοντροειδή λάθη!

Τέτοιου είδους μηχανισμούς είχε πολλούς η Άλγεβρα και ελάχιστα υποβάλαμε τους εαυτούς μας στην βάσανο να τους  εκλογικεύσει. Απλώς τους μαθαίναμε και ο δάσκαλος μας θεωρούσε άριστους μαθητές! 

Οι μηχανισμοί αυτοί καλούνται "αλγόριθμοι" από το όνομα του Άραβα Μαθηματικού Αλ-Κουαρίσμι (Muhammad ibn Musa al-Khwarizmi). Μάλιστα, το παραπάνω "κόλπο" όπου αλλάζουμε μέλος και πρόσημο σε έναν αριθμό, είναι δικό του. Το ονόμασε al-jabr (αλ-τζαμπρ) και καλώς μας θυμίζει την λέξη "Άλγεβρα", καθώς από εκεί πήρε το όνομά του ο κλάδος των Μαθηματικών που ασχολείται με την επίλυση εξισώσεων, πράξεις και τόσα άλλα.

Οι αλγόριθμοι λοιπόν ήταν το "εύκολο" κομμάτι των Μαθηματικών, αν και όχι τόσο αγαπητό, γιατί δεχθήκαμε κυριολεκτικά βομβαρδισμό από αυτούς: ο αλγόριθμος της ευκλείδειας διαίρεσης, ο αλγόριθμος εύρεσης μέγιστου κοινού διαιρέτη (ΜΚΔ) και τόσοι άλλοι.

Αντίθετα, όσα Μαθηματικά δεν είχαν αλγόριθμους, ας πούμε η Γεωμετρία, χαρακτηρίζονταν ως "δύσκολα". Γιατί ό,τι απαιτεί λογική και διερεύνηση είναι δύσκολο!

Όμως, όσο κι αν ακούγεται περίεργο, το στοίχημα σήμερα είναι να βρούμε αλγόριθμους εκεί που δεν υπάρχουν. Για παράδειγμα, ξέρουμε πως δεν υπάρχει αλγόριθμος που να επιλύει μια πολυωνυμική εξίσωση 5ου βαθμού. Όμως, κάποιοι μαθηματικοί, όπως ο Newton, βρήκαν αλγόριθμο που να προσεγγίζει την λύση της πολυωνυμικής. Γιατί όμως αυτό είναι τόσο σημαντικό; Γιατί εκεί στηρίζεται η "τεχνητή νοημοσύνη". Στους αλγόριθμους. Όταν το κομπιουτεράκι υπολογίζει την τετραγωνική ρίζα του 2, το κάνει γιατί υπάρχει κάποιος αλγόριθμος από πίσω. Και φυσικά, όταν το ρομποτάκι Lego Mindstorms επιλύει τον κύβο του Rubic, το κατορθώνει γιατί υπάρχει κάποιος αλγόριθμος από πίσω.