ΚΕΦΑΛΑΙΟ 3 : ΕΜΠΕΙΡΑ ΣΥΣΤΗΜΑΤΑ (*) 3.1 ΕΙΣΑΓΩΓΗ ΙΣΤΟΡΙΚΑ ΣΤΟΙΧΕΙΑ Τα έµπειρα συστήµατα αποτελούν το γνωστότερο πεδίο εφαρµογής της τεχνητής νοηµοσύνης. Είναι προγράµµατα, που συνδυάζουν τη γνώση των ειδικών και προσπαθούν να επιλύσουν ειδικά προβλήµατα, µιµούµενα τη διαδικασία της λογικής των. Η ανάπτυξή τους άρχισε από τα τέλη της δεκαετίας του 1960. Αυτή τη περίοδο οι προσπάθειες ήταν στραµµένες προς την επίλυση προβληµάτων γενικού σκοπού που είχε αναπτυχθεί από τους Newell και Simon [21] (1972) στη προσπάθειά τους για δηµιουργία ενός "νοήµονος υπολογιστή". Από τις αρχές του '80 οι τεχνολογίες ανάπτυξης Έμπειρων Συστημάτων, που περιορίζονταν σε πανεπιστηµιακούς χώρους άρχισαν να εφαρµόζονται για την ανάπτυξη εµπορικών εφαρµογών (R-1, XCON, XSEL, CATS-1 κ.α.) [22]. Ταυτόχρονα άρχισαν οι προσπάθειες ανάπτυξης ειδικών εργαλείων, που θα συνέβαλαν στην ταχύτερη ανάπτυξη Έμπειρων Συστημάτων (EMYCIN, AGE, KAS, EURISKO, M.1, EXSYS κ.α.) και τα οποία άρχισαν να εµφανίζονται στην αγορά από το 1983. Στην ραγδαία ανάπτυξη των Έμπειρων Συστημάτων οδήγησε η από µέρους τους κάλυψη υπαρχόντων αναγκών της αγοράς. Η όλο και αυξανόµενη ανάγκη για όσο το δυνατόν πιο εξειδικευµένες συµβουλές, σε όλα τα επίπεδα αφενός και αφετέρου η έλλειψη και το υψηλό κόστος εξειδικευµένου προσωπικού ώθησε τις επιχειρήσεις να επενδύσουν τεράστια ποσά για την ανάπτυξη έµπειρων συστηµάτων. 3.2 ΟΡΙΣΜΟΣ ΕΜΠΕΙΡΟΥ ΣΥΣΤΗΜΑΤΟΣ Υπάρχει πληθώρα ορισμών για τα έμπειρα συστήματα που εξαρτώνται από τη γωνία, που ο καθένας τα προσεγγίζει. Μερικοί από τους ορισμούς που έχουν δοθεί κατά καιρούς είναι: Ο Feigenbaum [23] (1982) θεωρεί ότι ένα έµπειρο σύστηµα είναι ένα έξυπνο πρόγραµµα το οποίο για να λύσει κάποιο πρόβληµα, που είναι αρκετά δύσκολο ώστε να απαιτεί σηµαντική εµπειρία για την επίλυσή του, χρησιµοποιεί ειδική γνώση και διαδικασίες εξαγωγής συµπερασµάτων. Η γνώση που είναι απαραίτητη (*) Από τη Διατριβή Διπλώματος Ειδίκευσης του Γιώργου Πάνου με τίτλο «Ανάπτυξη Έμπειρου Συστήματος για τη Διαχείριση Οδοστρωμάτων» 1
για τη λειτουργία σε αυτό το επίπεδο, µαζί µε τις διαδικασίες εξαγωγής συµπερασµάτων, µπορεί να θεωρηθούν σαν ένα µοντέλο εµπειρίας των καλύτερων ειδικών του χώρου. Ο Hart [24], (1986) εκτιµά ότι τα Ε.Σ. είναι προγράµµατα, τα οποία εκτελούν εργασίες τις οποίες συνήθως τις κάνουν ειδικοί. Αυτά ενσωµατώνουν τη γνώση ειδικών και την ικανότητά τους να χρησιµοποιούν αυτή τη γνώση για να επιλύουν προβλήµατα. Τα προγράµµατα αυτά περιορίζονται από τον τύπο των εργασιών που µπορούν να εκτελέσουν, αλλά παρουσιάζουν την εξειδίκευσή τους κατά την προσέγγιση κατάλληλων προβληµάτων. Σε τέτοια προγράµµατα η γνώση κωδικοποιείται δηµιουργώντας έτσι ισχυρά εργαλεία. Ο Curry and Moutinho, [25] (1991) ορίζουν ως έµπειρα συστήµατα τα προγράµµατα µε τα οποία γίνεται προσπάθεια να αναπαρασταθεί η συµπεριφορά ενός ειδικού κάποιου τοµέα. Τα συστήµατα αυτά διαθέτουν γνώση και εµπειρία και είναι ικανά µε τη χρήση λογικής να παρέχουν συµβουλές ή να παίρνουν αποφάσεις έχοντας την ικανότητα να αιτιολογούν το πώς οδηγούνται σε αυτές. Οι Doukidis and Paul, [26] (1992), συνδυάζοντας το τι και το πώς κάνει ένα έµπειρο σύστηµα ορίζουν ότι έµπειρο σύστηµα είναι ένα πρόγραµµα που βοηθά το χρήστη, παρέχοντας πληροφορίες σε κάποιο ιδιαίτερο πεδίο. Αυτό το πετυχαίνει χειριζόµενο πληροφορίες, σχετικές µε ένα χώρο, που παρέχονται από µια σειρά από "ειδικούς" του χώρου αυτού. Ένα άλλο σηµαντικό χαρακτηριστικό ενός έµπειρου συστήµατος είναι ότι αυτό έχει τη δυνατότητα να εξηγεί/αιτιολογεί τις χρησιµοποιηθείσες µεθόδους για την παροχή πληροφοριών. 3.3 ΔΟΜΗ ΤΩΝ ΕΜΠΕΙΡΩΝ ΣΥΣΤΗΜΑΤΩΝ Κάθε έµπειρο σύστηµα έχει δύο όψεις. Η µία είναι αυτή που βλέπει ο κατασκευαστής του, κατά τη φάση ανάπτυξης και εισαγωγής της γνώσης σε αυτό, ενώ η άλλη είναι αυτή που αντιλαµβάνεται ο χρήστης του συστήµατος κατά τη διάρκεια της λειτουργίας του όταν δέχεται τις συµβουλές του. Μια τυπική διαδικασία χρήσης ενός έµπειρου συστήµατος είναι αρχικά να διατυπωθεί ένα αίτηµα, από το χρήστη, για παροχή µιας συµβουλής. Στη συνέχεια το έμπειρο σύστημα χρησιµοποιεί το µηχανισµό εξαγωγής συµπερασµάτων για να χειρισθεί τους κανόνες της βάσης γνώσης. Αν το σύστηµα έχει κάποιες απορίες σχετικά µε κάποια γεγονότα τότε απευθύνεται στο χρήστη για πρόσθετες πληροφορίες. Τα 2
γεγονότα αυτά καθώς και όσα προκύπτουν στα διάφορα ενδιάµεσα στάδια λειτουργίας του Ε.Σ. αποθηκεύονται στη µνήµη εργασίας. Η διαδικασία συνεχίζεται µέχρι το σύστηµα να καταλήξει σε ένα τελικό συµπέρασµα. Το συµπέρασµα αυτό µπορεί να είναι είτε η παροχή συµβουλής στο αρχικό ερώτηµα, είτε να δηλώσει αδυναµία παροχής συµβουλής επειδή δεν υπάρχει επαρκής γνώση για αυτό. Στη συνέχεια θα εξετασθούν αναλυτικότερα τα διάφορα τµήµατα ενός αντιπροσωπευτικού έµπειρου συστήµατος όπως αυτού που παρουσιάζεται στο σχήµα 3.1. Βάση γνώσης Γεγονότα Κανόνες Χρήστης Μονάδα διεπαφής συστήματος Μηχανισμός εξαγωγής συμπερασμάτων Έμπειρο Σύστημα Σχήμα 3.1. Δομή έμπειρου συστήματος 3.3.1 Χρήστης Ο χρήστης ενός έµπειρου συστήµατος µπορεί να είναι ένας από τους παρακάτω: Πελάτης: Είναι κάποιος µη ειδικός ο οποίος χρησιµοποιεί το Ε.Σ. γιατί χρειάζεται τη συµβουλή του. Με τη χρήση του συστήµατος µπορεί να βελτιώσει τη ποιότητα των αποφάσεων που παίρνει. Φοιτητής-σπουδαστής: Εδώ ο χρήστης χρησιµοποιεί το Ε.Σ. για να αυξήσει τη γνώση του πάνω σε ένα ειδικό θέµα. Το σύστηµα στη περίπτωση αυτή παίζει το ρόλο του εκπαιδευτή. Ειδικός: Για να έχει µια δεύτερη γνώµη σε κάποια απόφαση που θέλει να πάρει ή για να τον βοηθά σε κάποιες δευτερεύουσες εργασίες ή τέλος γιατί θέλει να παρακολουθεί τη λογική, µέσω των σταδιακών βηµάτων που ακολουθεί το σύστηµα, για να οδηγηθεί σε κάποιο συµπέρασµα. Κατασκευαστής: Το άτοµο αυτό χρησιµοποιεί το σύστηµα για να το ελέγχει, να το βελτιώνει και για να αυξάνει τη γνώση που αυτό περιέχει. 3
3.3.2 Μονάδα διεπαφής Μέσω του υποσυστήµατος αυτού και µε τη βοήθεια διαφόρων γραφικών οθονών για καλύτερα αποτελέσµατα εξασφαλίζεται η επικοινωνία του χρήστη µε το σύστηµα σε φυσική γλώσσα. Ο χρήστης µπορεί να επικοινωνεί µε το σύστηµα και να συντηρεί τις διάφορες βάσεις (γνώσης, δεδοµένων, µοντέλων) που είναι απαραίτητες για τη σωστή λειτουργία του. Οι συµβουλές που δέχεται, λαµβάνονται µέσω του υποσυστήµατος αυτού. Ο χρήστης µπορεί να εκµεταλλευτεί τις ικανότητες επεξήγησης και να λάβει απαντήσεις στα ερωτήµατα: Πώς οδηγήθηκε σε κάποιο συµπέρασµα; Ποια είναι η διαδικασία για να καταλήξει το σύστηµα στο τελικό συµπέρασµα; Γιατί το σύστηµα υποβάλλει κάποιες ερωτήσεις στη προσπάθειά του να οδηγηθεί στη τελική απάντηση; 3.3.3 Βάση γνώσης Στη βάση γνώσης περιέχονται δύο βασικά στοιχεία, τα γεγονότα (facts) και οι κανόνες (rules). Τα γεγονότα αναφέρονται τόσο στη κατάσταση του προβλήµατος, όσο και στην αντίστοιχη θεωρία. Οι κανόνες κατευθύνουν την εκµετάλλευση της υπάρχουσας γνώσης για την επίλυση του τρέχοντος προβλήµατος. Ουσιαστικά η βάση γνώσης περιέχει όλα τα απαιτούμενα στοιχεία με τα οποία περιγράφεται το συγκεκριμένο πρόβλημα. Αυτά περιλαμβάνουν τις απαιτούμενες περιγραφές, τις διαδικασίες και τα μέσα που είναι απαραίτητα για την ανάπτυξη ενός έμπειρου συστήματος. Δύο τρόποι υπάρχουν για την αναπαράσταση της γνώσης εμπειρίας : οι κανόνες και τα πλαίσια γνώσης (knowledge frames). Τα έμπειρα συστήματα που βασίζονται στους κανόνες πρόκειται για προγράμματα που περιέχουν έναν μεγάλο αριθμό από κανόνες της μορφής Εάν Τότε (Ιf Τhen) στενά συνδεδεμένους, οι οποίοι είναι η βάση για τη γνώση του συστήματος. Οι κανόνες που ακολουθούν τα συστήματα αυτά στηρίζονται συνήθως στην εμπειρική γνώση παρά στην επιστημονική έρευνα και παρακολούθηση. Ο δεύτερος τρόπος αναπαράστασης της γνώσης, το πλαίσιο γνώσης είναι µια δοµή δεδοµένων που αναπαριστά ένα συγκεκριµένο αντικείµενο ή γεγονός. Σε κάθε αντικείµενο υπάρχουν πεδία στα οποία αποθηκεύονται είτε oι πληροφορίες που το αφορούν είτε τα χαρακτηριστικά που διαθέτει. Τα πεδία αποτελούνται από υποπεδία. Σε αυτά µπορεί να αποθηκεύονται άλλα πλαίσια, 4
διαδικασίες, κανόνες, προκαθορισµένες τιµές ή οποιασδήποτε µορφής πληροφορία. Στο σχήμα 3.2 απεικονίζεται ένα παράδειγμα αναπαράστασης της γνώσης με πλαίσια γνώσης. ΠΛΑΙΣΙΟ : ΦΟΙΤΗΤΗΣ ΠΛΑΙΣΙΟ : ΠΑΝΟΣ Γ. ΠΕΔΙΑ ΤΜΗΜΑ : Α.Μ. : ΕΤΟΣ : ΒΑΘΜΟΙ : ΔΙΕΥΘΥΝΣΗ : ΠΕΔΙΑ ΤΜΗΜΑ : Π.Μ. Α.Μ. :1234 ΕΤΟΣ : Ε ΒΑΘΜΟΙ : ΠΛΑΙΣΙΟ ΒΑΘΜ_1 ΔΙΕΥΘΥΝΣΗ : ΠΛΑΙΣΙΟ ΔΙΕΥΘ_1 ΠΛΑΙΣΙΟ : ΔΙΕΥΘΥΝΣΗ ΠΕΔΙΑ ΠΛΑΙΣΙΟ : ΒΑΘΜΟΙ ΜΑΘΗΜΑ_1 : ΜΑΘΗΜΑ_2 : ΠΕΔΙΑ ΟΔΟΣ : ΑΡΙΘΜΟΣ : ΠΟΛΗ : ΧΩΡΑ : Σχήμα 3.2. Αναπαράσταση της γνώσης με πλαίσια Στο σχήμα 3.2 το πλαίσιο φοιτητής συνδέεται με το πλαίσιο που περιέχει τα χαρακτηριστικά του κάθε φοιτητή (π.χ. του φοιτητή «Πάνος Γ.») όπου στη συνέχεια τα πεδία (βαθμοί και διεύθυνση) του πλαισίου «Πάνος Γ.» συνδέονται με άλλα πλαίσια. 3.3.4 Μηχανισμός εξαγωγής συμπερασμάτων Ο ρόλος του μηχανισμού εξαγωγής συμπερασμάτων είναι να χρησιμοποιεί τους κανόνες, που είναι διαθέσιμοι, και να καταλήγει σε συμπεράσματα βάσει των δεδομένων που υπάρχουν. Αρχικά, ο μηχανισμός εξαγωγής συμπερασμάτων ερευνά στα δεδομένα της μονάδας γνώσης για να εντοπίσει τη λύση του προβλήματος. Αν δεν αποδώσει αυτή η προσπάθεια τότε ο μηχανισμός εξαγωγής συμπερασμάτων συνδυάζει τα δεδομένα της μονάδας γνώσης με τα δεδομένα που εισάγει ο χρήστης του προγράμματος. Ουσιαστικά ο μηχανισμός εξαγωγής συμπερασμάτων είναι η στρατηγική που χρησιμοποιείται για την 5
εξέταση των κανόνων στη βάση γνώσης. Οι πιο συνηθισμένες στρατηγικές που χρησιμοποιούνται είναι η ορθή συλλογιστική (forward chaining) και η ανάστροφη συλλογιστική (backward chaining). Στην ορθή συλλογιστική ο μηχανισμός εξαγωγής συμπερασμάτων ξεκινά από την υπάρχουσα ήδη γνώση και με βάση αυτή προχωρεί στην σύνταξη των κατάλληλων συμπερασμάτων. Η ανάστροφη συλλογιστική, είναι η στρατηγική η οποία ψάχνει την βάση κανόνων ξεκινώντας από μια υπόθεση και συνεχίζει με ερωτήσεις στον χρήστη για γεγονότα μέχρι που υπόθεση να επαληθευθεί ή όχι. Γενικά η ανάστροφη συλλογιστική χρησιμοποιείται όταν υπάρχουν πολλά τελικά συμπεράσματα και όταν υπάρχουν πολλοί κανόνες προς εξέταση. 3.4 ΔΙΑΦΟΡΕΣ ΕΜΠΕΙΡΩΝ ΣΥΣΤΗΜΑΤΩΝ ΚΑΙ ΣΥΜΒΑΤΙΚΩΝ ΠΡΟΓΡΑΜΜΑΤΩΝ Τα Έμπειρα Συστήματα χαρακτηρίζονται από σημαντική προσαρμοστικότητα και προσφέρουν εξαιρετική ευελιξία, λόγω της ευκολίας που παρέχουν για προσθήκη νέας γνώσης και αναθεώρηση της ήδη υπάρχουσας και της ευχέρειας που προσφέρουν για σταδιακή ανάπτυξη. Αυτό ακριβώς συνιστά μια πρώτη ειδοποιό διαφορά των συστημάτων αυτών σε σχέση με τα παραδοσιακά προγράμματα. Ένα έμπειρο σύστημα είναι ικανό να εξηγήσει για το πως και γιατί έφτασε στο τελικό συμπέρασμα ανά πάσα στιγμή αν αυτό ζητηθεί από τον χρήστη. Η δομή της βάσης δεδομένων του έμπειρου συστήματος εύκολα μπορεί να εξεταστεί και να ελεγχθεί (διότι χρησιμοποιούνται κανόνες If-Then), σε αντίθεση με τα συμβατικά προγράμματα τα οποία χρησιμοποιούν εντολές και μεταβλητές για να αναπαραστήσουν γνώση. Στον πίνακα 3.1, απεικονίζονται οι διαφορές των έμπειρων συστημάτων και των συμβατικών προγραμμάτων. 6
Πίνακας 3.1. Διαφορές Έμπειρων συστημάτων και συμβατικών προγραμμάτων [27] Συμβατικά προγράμματα Βασίζονται σε εξισώσεις που μπορούν να αποδειχθούν. Εάν δοθούν τα σωστά δεδομένα θα προταθούν οι ορθές λύσεις της κατάστασης. Παρέχουν μόνο απαντήσεις. Απαιτούνται όλα τα δεδομένα για να λειτουργήσουν. Συνήθως αναπτύσσονται από προγραμματιστές οι οποίοι δεν συνεργάζονται με εμπειρογνώμονες του χώρου. Χρησιμοποιούν γλώσσες προγραμματισμού όπως FORTRAN, PASCAL, C, κ.τ.λ. Έμπειρα συστήματα Κυρίως βασίζονται σε θεωρήματα που είναι γενικά αξιόπιστα αλλά όχι πάντα αληθή. Πρόκειται για αντιλήψεις που δεν μπορούν να περιοριστούν σε εξισώσεις ή αριθμούς. Επεξηγείται ο συλλογισμός και η λογική του συστήματος. Μπορούν και λειτουργούν ακόμη και με ελλειπή στοιχεία. Η ομάδα υλοποίησης απαρτίζεται από τους προγραμματιστές και από τους ειδικούς στον εν λόγω τομέα οι οποίοι έχουν στενή συνεργασία μεταξύ τους. Χρησιμοποιούνται συμβολικές γλώσσες προγραμματισμού όπως η PROLOG, LISP, CLIPS, κ.τ.λ. 3.5 ΑΝΑΠΤΥΞΗ ΕΜΠΕΙΡΩΝ ΣΥΣΤΗΜΑΤΩΝ Η ανάπτυξη έµπειρων συστηµάτων δεν είναι µια σταθερή και απόλυτη ακολουθία διαδοχικών ενεργειών που τηρούν όλοι οι κατασκευαστές. Κάθε έµπειρο σύστηµα έχει της δικές του ιδιοµορφίες και κάθε οµάδα κατασκευαστών έχει τις δικές της πρακτικές που ακολουθεί. Πολλοί ερευνητές έχουν προτείνει κατά καιρούς διάφορες µεθοδολογίες ανάλυσης των συστηµάτων. Γενικά, μπορεί να πει κανείς, ότι οι διαδικασίες που ακολουθούνται για την ανάπτυξη ενός έμπειρου συστήματος είναι : Καθορισμός του στόχου Προσδιορισμός των ιδεών (για υλοποίηση) Οργάνωση των γνώσεων Δημιουργία της δομής του συστήματος και τέλος Έλεγχος καλής λειτουργίας Οι παραπάνω διαδικασίες απεικονίζονται στο σχήμα 3.3. 7
Ανάλυση Συστήματος Ειδικός Χρήστης Βήμα 1 Καθορισμός του στόχου Βήμα 2 Βήμα 3 Ορισμός των κανόνων Δοκιμή πρωτότυπου συστήματος Ανασχεδιασμός Ανασχεδιασμός Βήμα 4 Κατασκευή του Interface Βήμα 5 Καθοδήγηση από τα τεστ του χρήστη Βήμα 6 Χρήση του συστήματος Βήμα 7 Συντήρηση του συστήματος Σχήμα 3.3. Στάδια ανάπτυξης έμπειρου συστήματος. Στη χρονοβόρα και εξαιρετικά περίπλοκη διαδικασία ανάπτυξης ενός έµπειρου συστήµατος αφενός εµπλέκονται µε τον ένα ή τον άλλο τρόπο πολλοί άνθρωποι διαφόρων ειδικοτήτων, αφετέρου απαιτείται η λήψη αποφάσεων τόσο σε θέµατα οικονοµικά, κοινωνικά όσο και τεχνικά. Στην όλη διαδικασία ανάπτυξης ενός Ε.Σ., τους κορυφαίους ρόλους παίζουν δύο παράγοντες, ο ειδικός του τοµέα και ο µηχανικός γνώσης. Τα τεχνικά θέµατα της απόσπασης γνώσης, της αναπαράστασής της και της κατάλληλης χρήσης της στη κατασκευή και επεξήγηση της λογικής, είναι σηµαντικά προβλήµατα στη σχεδίαση συστηµάτων βασιζόµενων στη γνώση και αποτελούν µέρος των ευθυνών του µηχανικού γνώσης. Για τη δουλειά του ο µηχανικός γνώσης χρειάζεται να έχει στη διάθεσή του γνώση, την οποία µπορεί να αποκτήσει από: ειδικούς, βιβλία, βάσεις δεδοµένων, αναφορές και από διάφορες άλλες πηγές. Ο ρόλος του ειδικού αφενός μεν έγκειται στη παροχή της γνώσης εμπειρίας στο σύστημα, αφετέρου δε στη διαδικασία ποιοτικού ελέγχου του σχεδίου ανάπτυξης του έμπειρου συστήματος. 8
3.6 ΕΡΓΑΛΕΙΑ ΑΝΑΠΤΥΞΗΣ ΕΜΠΕΙΡΩΝ ΣΥΣΤΗΜΑΤΩΝ Το λογισµικό που χρησιµοποιείται για την ανάπτυξη των Ε.Σ. αποτελείται από: Συµβατικές γλώσσες (π.χ. C, Fortran, Pascal, Basic) και γλώσσες τεχνητής νοηµοσύνης (π.χ. Lisp, Prolog) Κελύφη και περιβάλλοντα (π.χ. 1st CLASS, ESE, Nexpert, Level5, ART, Level5 Object, EXSYS CORVID, Xpert Rule κ.α) Βοηθήµατα µε τα οποία κατασκευάζονται τα διάφορα τµήµατα ενός ΕΣ, εκτός από τη βάση γνώσης, που µπορεί να κατασκευασθεί και µε τη βοήθεια φλοιών. Υβριδικά συστήµατα, που αποτελούνται από βοηθήµατα και γλώσσες προγραµµατισµού. Με αυτά παρέχεται η δυνατότητα ταχύτερης ανάπτυξης φλοιών ή ειδικών Ε.Σ. (π.χ. ART, KEE, Nexpert Object κ.α. ). Ειδικά έµπειρα συστήµατα που απευθύνονται σε εξειδικευµένα θέµατα. Στην παρούσα διπλωματική το εργαλείο που χρησιμοποιήθηκε για την υλοποίηση του έμπειρου συστήματος ήταν το EXSYS CORVID το οποίο ανήκει στην κατηγορία των κελυφών και περιβαλλόντων. Τα εργαλεία αυτά είναι ουσιαστικά έμπειρα συστήματα με τη βάση γνώσης τους να είναι κενή. Αναλυτικότερα εμπεριέχουν την μονάδα εξαγωγής συμπερασμάτων, μέσα για το χειρισμό της αναπαράστασης της γνώσης και την μονάδα αλληλεπίδρασης χρήστη. Στο σχήμα 3.4 παρουσιάζονται τα εργαλεία ανάπτυξης των έμπειρων συστημάτων και τα επίπεδα τεχνολογίας τους. Η ροή του σχήματος από πάνω προς τα κάτω δείχνει τα επίπεδα τεχνολογίας των εργαλείων ανάπτυξης έμπειρων συστημάτων ξεκινώντας από το πρώτο εργαλείο που χρησιμοποιήθηκε (γλώσσες προγραμματισμού) και συνεχίζει έως το πιο πρόσφατο (ειδικά έμπειρα συστήματα). 9
Γλώσσες Προγραμματισμού Βοηθήματα Υβριδικά Συστήματα Κελύφη - Περιβάλλοντα Ειδικά Έμπειρα Συστήματα Σχήμα 3.4. Εργαλεία ανάπτυξης Έμπειρων Συστημάτων και επίπεδα τεχνολογίας Με τη βοήθεια των γλωσσών προγραμματισμού μπορούν να αναπτυχθούν βοηθήματα, υβριδικά συστήματα, κελύφη και ειδικά Ε.Σ. Για την ανάπτυξη των ειδικών Ε.Σ μπορούν να χρησιµοποιηθούν είτε γλώσσες προγραμματισμού, υβριδικά συστήματα είτε κελύφη, για την ανάπτυξη των οποίων χρησιµοποιούνται βοηθήματα, γλώσσες προγραμματισμού και υβριδικά συστήματα. Η επιλογή του σωστού λογισμικού που θα χρησιμοποιηθεί για την ανάπτυξη ενός έμπειρου συστήματος δεν είναι τυχαία. Υπάρχουν ορισμένα κριτήρια που πρέπει να ληφθούν υπόψη στην επιλογή του κατάλληλου εργαλείου όπως π.χ. ο τύπος της εφαρμογής, η ικανότητά του να συνδέεται με άλλα προγράμματα, το κόστος του κ.α.. Στον πίνακα 3.2 παρατίθενται τα κριτήρια επιλογής του λογισμικού για την ανάπτυξη έμπειρων συστημάτων. 10
Πίνακας 3.2 Κριτήρια επιλογής λογισμικού για την ανάπτυξη έμπειρων συστημάτων [27] Κριτήρια επιλογής Τύπος της εφαρμογής. Ικανότητα να συνδέεται με άλλα προγράμματα. Διαθεσιμότητα πολύπλοκων μαθηματικών ρουτίνων. Τύπος ελέγχου της στρατηγικής και μηχανισμός εξαγωγής συμπερασμάτων. Χρόνος ανταπόκρισης (κατά την επίλυση προβλημάτων). Βοήθειες προγραμματισμού. Υποστήριξη χρήστη. Κόστος. 3.6.1 Πακέτα λογισμικού για υλοποίηση Έμπειρων Συστημάτων Σημαντικό ρόλο στην υλοποίηση ενός έμπειρου συστήματος έχει η επιλογή του λογισμικού που θα χρησιμοποιηθεί. Τα λογισμικά που χρησιμοποιήθηκαν για την υλοποίηση των έμπειρων συστημάτων που αναφέρονται στη βιβλιογραφική ανασκόπηση ήταν επί το πλείστον παλαιάς τεχνολογίας (συγκεκριμένα το OP5S, LEVEL 5 OBJECT, CRYSTAL και TRIS) με περιορισμένες δυνατότητες και δύσκολα στη χρήση. Συνεπώς κρίθηκε αναγκαίο να ανεβρεθούν λογισμικά νέας τεχνολογίας που να είναι πιο εύχρηστα, πιο φιλικά προς το χρήστη και στον κατασκευαστή του έμπειρου συστήματος, και να λειτουργούν σε περιβάλλον Windows. Με βάση τα αποτελέσματα από την αξιολόγηση, αποφασίστηκε το έμπειρο σύστημα να υλοποιηθεί με λογισμικό που ανήκει στην κατηγορία των κελυφών-περιβαλλόντων. Τα εξεταζόμενα προγράμματα αυτής της κατηγορίας ήταν : το EXSYS Corvid, το XpertRule Knowledge Builder και το Κnowledge Wright Workshop v4.1.10. Στο ακόλουθο εδάφιο γίνεται μια συνοπτική περιγραφή των χαρακτηριστικών των προγραμμάτων και εξηγούνται οι λόγοι για τους οποίους επιλέχθηκε για την υλοποίηση του έμπειρου συστήματος το πρόγραμμα EXSYS Corvid. 11
3.6.1.1 Knowledge Wright Workshop v4.1.10 Το Knowledge Wright Workshop [18] αποτελείται από δυο βασικά στοιχεία : Τα αντικείμενα, τα οποία αποτελούν τη βάση γνώσης. Το μηχανισμό εξαγωγής συμπερασμάτων Τα αντικείμενα αυτά χρησιμοποιούνται αφενός για τη δημιουργία κανόνων, γεγονότων, και ερωτήσεων προς το χρήστη και αφετέρου για την παρουσίαση των αποτελεσμάτων. Ο μηχανισμός εξαγωγής συμπερασμάτων του Knowledge.W.B v1.1.10 είναι η ανάστροφη συλλογιστική. Ενδεικτικές εικόνες από το περιβάλλον του προγράμματος απεικονίζονται παρακάτω. Εικόνα 3.1 Η βασική οθόνη του προγράμματος. Εικόνα 3.2 Οθόνη ορισμού των κανόνων. Το Knowledge W.B. v1.1.10 παρουσιάζει το πλεονέκτημα έναντι των άλλων δυο προγραμμάτων, ότι διατίθεται δωρεάν. Από την άλλη μεριά τα μειονεκτήματα που εμφανίζει είναι : Υποστηρίζει μόνο την ανάστροφη συλλογιστική. Δεν υποστηρίζει την Ελληνική γλώσσα. Η εισαγωγή των δεδομένων είναι μια αρκετά χρονοβόρα διαδικασία. Η μονάδα αλληλεπίδρασης με το χρήστη είναι φτωχή. Δεν έχει χρησιμοποιηθεί για εφαρμογές στα οδοστρώματα. 12
3.6.1.2 XpertRule Knowledge Builder Κύριο χαρακτηριστικό του προγράμματος XpertRule Knowledge Builder [19] είναι ότι η αναπαράσταση της γνώσης γίνεται με δέντρο-διαγράμματα ή και με κανόνες. Το πλεονέκτημα της αναπαράστασης της γνώσης με δέντρο-διαγράμματα είναι η ευκολία της εισαγωγής και του έλεγχου των δεδομένων. Είναι πολύ πιο εύχρηστο και πιο πλούσιο στη μονάδα αλληλεπίδρασης με το χρήστη από ότι το Knowledge W.B. 1.1.10. Ενδεικτικές εικόνες από το περιβάλλον εργασίας του XpertRule Knowledge Builder απεικονίζονται παρακάτω. Εικόνα 3.3 Η βασική οθόνη του προγράμματος. Εικόνα 3.4 Οθόνη αναπαράστασης της γνώσης σε μορφή δέντρο-διαγράμματος. Τα πλεονεκτήματα του XpertRule Knowledge Builder είναι : Υποστηρίζει ορθή και ανάστροφη συλλογιστική. Η αναπαράσταση της γνώσης γίνεται εκτός από κανόνες και με δέντροδιαγράμματα. Αντίστοιχα τα μειονεκτήματά του είναι : Δεν παρέχει τη δυνατότητα γραφικής απεικόνισης των δεδομένων και των αποτελεσμάτων. Δεν υποστηρίζει την Ελληνική γλώσσα. Δεν έχει χρησιμοποιηθεί για εφαρμογές στα οδοστρώματα. 13
3.6.1.3 EXSYS Corvid Η δομή του EXSYS Corvid [20] είναι βασισμένη στο μοντέλο της Microsoft s Visual Basic. Τα βασικά χαρακτηριστικά του αυτού προγράμματος είναι : Οι μεταβλητές. Τα μπλοκ λογικής (Logic Block). Τα μπλοκ εντολών (Command block). Οι μεταβλητές είναι τα βασικά στοιχεία για τη δημιουργία έμπειρων συστημάτων με το πρόγραμμα EXSYS Corvid. Μπορούν να παράγουν ερωτήσεις, να επεξεργάζονται δεδομένα, να παρουσιάζουν αποτελέσματα κ.τ.λ.. Τα μπλοκ λογικής είναι τα βασικά εργαλεία για την αναπαράσταση της γνώσης. Ένα μπλοκ λογικής μπορεί να είναι ένας οποιοδήποτε συνδυασμός κανόνων και δέντρο-διαγραμμάτων σχετικά μεταξύ τους. Ουσιαστικά το μπλοκ λογικής είναι η βάση κανόνων του συστήματος ενώ το μπλοκ εντολών ελέγχει τη διαδικασία λειτουργίας του συστήματος. Είναι εκείνο το μέρος του προγράμματος στο οποίο καθορίζεται ο μηχανισμός εξαγωγής συμπερασμάτων και η παρουσίαση των αποτελεσμάτων. Ενδεικτικές εικόνες από το περιβάλλον εργασίας του EXSYS Corvid απεικονίζονται παρακάτω. Εικόνα 3.5 Η οθόνη εισαγωγής μεταβλητών. Εικόνα 3.6 Η οθόνη του μπλοκ λογικής. 14
Εικόνα 3.7 Η οθόνη του μπλοκ εντολής. Εικόνα 3.8 Μονάδα διεπαφής χρήστη- συστήματος. Τα πλεονεκτήματα του EXSYS Corvid είναι : Υποστηρίζει ορθή και ανάστροφη συλλογιστική. Η αναπαράσταση της γνώσης γίνεται εκτός από κανόνες και με δέντροδιαγράμματα. Προσφέρει τη δυνατότητα μεταφοράς του έμπειρου συστήματος στο Internet διαμέσου της γλώσσας Java Apllet. Έχει χρησιμοποιηθεί για εφαρμογές στα οδοστρώματα. Υποστηρίζει την Ελληνική γλώσσα. Έχει την δυνατότητα της γραφικής απεικόνισης των δεδομένων και των αποτελεσμάτων. Επισημαίνεται η ιδιαίτερα υψηλή τιμή αγοράς του η οποία πλησιάζει τα 5500. Συμπερασματικά, ένας από τους βασικούς λόγους της επιλογής του προγράμματος EXSYS Corvid για την υλοποίηση του έμπειρου συστήματος στην παρούσα εργασία, ήταν η δοκιμασμένη χρήση του σε εφαρμογές στα οδοστρώματα είτε όσον αφορά τη συντήρηση ή την κατασκευή τους. Η υποστήριξη της Ελληνικής γλώσσας καθώς και η ευκολία εισαγωγής των δεδομένων ήταν από τους παράγοντες εκείνους που συνέβαλαν στην τελική επιλογή του. Τέλος στον ακόλουθο πίνακα (πίνακας 3.3) παρατίθενται συνοπτικά τα χαρακτηριστικά των προαναφερθέντων προγραμμάτων. 15
Πίνακας 3.3 Χαρακτηριστικά των εξεταζόμενων προγραμμάτων υλοποίησης έμπειρων συστημάτων Προγράμματα Χαρακτηριστικά EXSYS Corvid XpertRule Knowledge Builder Knowledge.W.B v1.1.10 Αναπαράσταση γνώσης Με κανόνες και δένδρο-διαγράμματα Με κανόνες και δένδρο-διαγράμματα Με κανόνες Μηχανισμός εξαγωγής συμπερασμάτων Ορθή ή ανάστροφη συλλογιστική Ορθή ή ανάστροφη συλλογιστική Ανάστροφη συλλογιστική Υποστήριξη της Ελληνικής γλώσσας Μονάδα διεπαφής με το χρήστη Γραφική απεικόνιση δεδομένων και αποτελεσμάτων Χρησιμοποίηση σε εφαρμογές για οδοστρώματα Φιλικότητα προς το χρήστη Ναι Όχι Όχι Πολύ καλή Καλή Μέτρια Ναι Όχι Όχι Ναι Όχι Όχι Πολύ καλή Καλή Κακή Τιμή Υψηλή Μέτρια Δωρεάν 16
ΒΙΒΛΙΟΓΡΑΦΙΚΕΣ ΑΝΑΦΟΡΕΣ [18] Knowledge Wright 4.2, Expert System Shell, http://www.amzi.com, Amzi, 2000. [19] XpertRule, Expert System Development Tool, http://www.attar.com, Attar, 2000. [20] EXSYS CORVID, Expert System Development Tool, http://www.exsys.com EXSYS, 2000. [21] Newell A., and Simon H. (1972), Human problem solving, Englewood. [22] www.auburn.edu, www.terry.uga.edu, www. Mayaweb.upr.clu.edu [23] Feigenbaum E. (1982), Knowledge Engineering for the 1980 s, California. [24] Hart A. (1986), Knowledge acquisition for Expert Systems, New York. [25] Curry B., Moutinho (1991), Expert Systems, Journal of Marketing Channels, vol. 1, No. 1, pp. 23-37. [26] Doukidis G., Paul R., (1992), Decision Support System Concepts in Expert Systems, Decision Support Systems, Vol. 4, No. 3. [27] Wentworth J. (1993), Highway applications of Expert Systems, Public Roads, Vol. 4, pp.148-152. 17