Ανάπτυξη Έμπειρου Συστήματος Διάγνωσης Βλαβών Η/Υ για Εκπαιδευτικούς Σκοπούς



Σχετικά έγγραφα
Οικονόμου Παναγιώτης.

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Μαλούτα Θεανώ Σελίδα 1

Rule Based systems Συστήματα Βασισμένα σε κανόνες

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Κεφάλαιο 10 ο Υποπρογράµµατα

ΑΕΠΠ Ερωτήσεις θεωρίας

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ.

Προγραμματισμός Ι (HY120)

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι

Πληροφορική 2. Τεχνητή νοημοσύνη

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

Πρόβλημα 29 / σελίδα 28

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

RobotArmy Περίληψη έργου

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Οδηγός γρήγορης εκκίνησης του PowerSuite

Προγραμματισμός ΙI (Θ)

Μάριος Αγγελίδης

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Διδακτική της Πληροφορικής ΙΙ

Επιµέλεια Θοδωρής Πιερράτος

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

Δομημένος Προγραμματισμός

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

Περιεχόμενο του μαθήματος

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

711 Πληροφορικής ΤΕΙ Αθήνας

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος

ΠΑΙΓΝΙΑ Παιχνίδια Γενική Θεώρηση μεγιστοποιήσει την πιθανότητά

Αναγνώριση Προτύπων Ι

Εισαγωγή - Βασικές έννοιες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

ΚΕΦΑΛΑΙΟ 2ο ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΑΚΡΙΤΩΝ ΓΕΓΟΝΟΤΩΝ

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

Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο

Μια πρόταση διδασκαλίας για το μάθημα του προγραμματισμού Η/Υ στο Λύκειο με τη μεθοδολογία STEM

Πρόβλημα 37 / σελίδα 207

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

Ψευδοκώδικας. November 7, 2011

710 -Μάθηση - Απόδοση

Δομές Δεδομένων & Αλγόριθμοι

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

Managing Information. Lecturer: N. Kyritsis, MBA, Ph.D. Candidate Athens University of Economics and Business.

710 -Μάθηση - Απόδοση

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι

Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ - ΓΛΩΣΣΑ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

Η διάρκεια πραγματοποίησης της ανοιχτής εκπαιδευτικής πρακτικής ήταν 2 διδακτικές ώρες

Υπολογιστικής Σκέψης

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Συστήματα Πληροφοριών Διοίκησης

ΔΙΑΧΕΙΡΙΣΗ ΥΔΑΤΙΚΩΝ ΠΟΡΩΝ

Διδακτική Προγραμματισμού. Χαρίκλεια Τσαλαπάτα 20/2/2012

Ενδεικτικές Ερωτήσεις Θεωρίας

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

Οδηγίες σχεδίασης στο περιβάλλον Blender

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗ, Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ

Πληροφοριακά Συστήματα Διοίκησης. Διοικητική Επιστήμη και Λήψη Αποφάσεων

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

1. Ποιους μαθησιακούς στόχους θα προσδιορίζατε στα πλαίσια της διδακτικής δραστηριότητας;

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΘΕΩΡΙΑ ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΗ ΛΗΨΗ ΑΠΟΦΑΣΕΩΝ (1)

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ

Μεταβλητές. Σενάριο για μαθητές Γ γυμνασίου διάρκειας 3+ ωρών

O7: Πρόγραμμα Κατάρτισης Εκπαιδευτικών O7-A1: Αναπτύσσοντας εργαλεία για το Πρόγραμμα Κατάρτισης Εκπαιδευτικών

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

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

Αρχιτεκτονική σχεδίαση με ηλεκτρονικό υπολογιστή

723 Τεχνολογίας Πληροφορικής και Τηλεπικοινωνιών ΤΕΙ Λάρισας

Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή

Πανεπιστήµιο Πατρών Τµήµα Μηχ/κών Η/Υ & Πληροφορικής ΜΠΣ ΕΠΙΣΤΗΜΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΥΦΥΗ ΣΥΣΤΗΜΑΤΑ ΑΠΟΦΑΣΕΩΝ. Ι.

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. 4o Εργαστήριο Σ.Α.Ε

Ευφυής Προγραμματισμός

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Transcript:

ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΠΕΙΡΑΙΑ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Ανάπτυξη Έμπειρου Συστήματος Διάγνωσης Βλαβών Η/Υ για Εκπαιδευτικούς Σκοπούς ΝΤΟΥΣΚΑΣ ΦΩΤΙΟΣ Α.Μ.: 29480 Επιβλέπων Καθηγητής: Κανίδης Ευάγγελος ΑΘΗΝΑ 2011

Στους ανθρώπους που αγαπώ και με στηρίζουν: Στη μητέρα μου και στην αδερφή μου. Στη Μυρσίνη, στον Παναγιώτη και στον Στράτο.

Περίληψη Αυτή η πτυχιακή εργασία, αποτελεί μελέτη της τεχνολογίας των έμπειρων συστημάτων τόσο σε θεωρητικό όσο και σε πρακτικό επίπεδο, ανταποκρινόμενη πάντα στα δεδομένα της σημερινής εποχής. Ιδιαίτερη βαρύτητα δίνεται στα έμπειρα συστήματα που βασίζονται σε κανόνες, τα οποία συναντώνται σχεδόν σε όλες τις επιχειρήσεις. Η αρχιτεκτονική των συστημάτων κανόνων αναλύεται σε βάθος, γίνεται μελέτη της μηχανής κανόνων Jess και παρουσιάζεται η ανάπτυξη του δικού μας έμπειρου συστήματος κανόνων για τη διάγνωση βλαβών ενός Η/Υ. Σχετικά με τη συγγραφή της εργασίας, καταβλήθηκε μεγάλη προσπάθεια στην απόδοση της γνώσης με τρόπο κατανοητό και εκτιμώ ότι η μελέτη της μπορεί όχι μόνο να εισαγάγει κάθε ενδιαφερόμενο στον κόσμο των έμπειρων συστημάτων, αλλά και να του προσφέρει την απαραίτητη γνώση και μεθοδολογία για την ανάπτυξη ενός δικού του έμπειρου συστήματος κανόνων. Abstract This thesis studies the expert systems technology from a theoretical as well as a practical point of view, always being on par with today s standards. Special focus is given on the rule-based expert systems, which have become a part of nearly every enterprise. The rulebased systems architecture is deeply analyzed, along with the modern rule engine named Jess. Finally, there is a detailed presentation of our own developed rule-based expert system used for PC hardware issues diagnosis. As long as the writing of this thesis is concerned, a great effort has been made so that the knowledge herein is interpreted comprehensibly and I reckon that after studying this thesis, one can not only be introduced to the world of expert systems, but also acquire the necessary knowledge and methodology to be able to develop the rulebased expert system of his/her liking. i

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ... 1 ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ ΣΤΑ ΕΜΠΕΙΡΑ ΣΥΣΤΗΜΑΤΑ 1.1 - Εισαγωγή 2 1.2 - Τι ονομάζουμε έμπειρο σύστημα 3 1.2.1 - Η δομή ενός έμπειρου συστήματος...... 3 1.3 - Μηχανική γνώσης... 5 1.3.1 - Συνεντεύξεις. 5 1.3.2 - Έρευνα.. 7 1.4 - Αναπαράσταση της γνώσης.... 7 1.4.1 - Κανόνες. 8 1.4.2 - Σημασιολογικά δίκτυα.. 9 1.4.3 - Πλαίσια. 9 1.5 - Μηχανές διεξαγωγής συμπερασμάτων..... 10 1.6 - Εφαρμογές.... 12 ΚΕΦΑΛΑΙΟ 2: ΣΥΣΤΗΜΑΤΑ ΚΑΝΟΝΩΝ (RULE-BASED SYSTEMS) 2.1 - Εισαγωγή...... 14 2.2 - Η αρχιτεκτονική των συστημάτων κανόνων.... 14 2.2.1 - Η μηχανή διεξαγωγής συμπερασμάτων..15 2.2.2 - Η βάση κανόνων. 16 2.2.3 - Η λειτουργική μνήμη...... 17 2.2.4 - Η ταύτιση προτύπων... 17 2.2.5 - Η ατζέντα 18 2.2.6 - Η μηχανή εκτέλεσης... 18 2.3 - Μέθοδοι λειτουργίας συστημάτων κανόνων 19 2.3.1 - Ορθή αλυσίδωση (forward chaining). 19 2.3.2 - Ανάστροφη αλυσίδωση (backward chaining).20 2.3.3 - Συντελεστές βεβαιότητας (certainty factors).. 21 2.3.4 - Ασαφής λογική (fuzzy logic)...... 22 2.4 - Ο αλγόριθμος Rete... 24 2.4.1 - Το πρόβλημα προς επίλυση.... 24 2.4.2 - Ο τρόπος λειτουργίας του αλγόριθμου Rete... 25 ΚΕΦΑΛΑΙΟ 3: JESS: Η ΜΗΧΑΝΗ ΚΑΝΟΝΩΝ ΓΙΑ ΤΗ JAVA 3.1 - Εισαγωγή.. 28 ii

3.2 - Η βασική σύνταξη της γλώσσας Jess.....28 3.2.1 - Το πρόγραμμα «Hello World!».. 29 3.2.2 - Λίστες..... 29 3.2.3 - Κλήση συναρτήσεων.. 30 3.2.4 - Μεταβλητές. 31 3.2.5 - Έλεγχος ροής.. 31 3.2.6 - Ορίζοντας συναρτήσεις με τη deffunction. 33 3.3 - Αναπαριστώντας γεγονότα στη Jess 33 3.3.1 - Δημιουργώντας γεγονότα με την assert.. 34 3.3.2 - Αφαιρώντας γεγονότα με τη retract 35 3.3.3 - Εκκαθάριση και αρχικοποίηση της λειτουργικής μνήμης.. 36 3.3.4 - Η δομή deffacts... 36 3.3.5 - Τα γεγονότα και η λειτουργική μνήμη της Jess.. 37 3.3.6 - Η δομή deftemplate.....38 3.4 - Γράφοντας κανόνες στη Jess 40 3.4.1 - Η δομή defrule.... 40 3.4.2 - Περιορισμοί σταθερών... 41 3.4.3 - Περιορισμοί μεταβλητών....42 3.4.4 - Multifields...43 3.4.5 - Λογικές συνθήκες... 44 3.4.6 - Διαμερισμός της βάσης κανόνων με τη defmodule.... 44 ΚΕΦΑΛΑΙΟ 4: ΑΠΟ ΤΗ ΘΕΩΡΙΑ ΣΤΗΝ ΠΡΑΞΗ: ΕΜΠΕΙΡΟ ΣΥΣΤΗΜΑ ΔΙΑΓΝΩΣΗΣ ΒΛΑΒΩΝ Η/Υ 4.1 - Εισαγωγή...... 47 4.2 - Το περιβάλλον χρήσης.. 48 4.3 - Περιπτώσεις χρήσης..... 52 4.3.1 - Περίπτωση χρήσης 1: Ασταθής Λειτουργία... 52 4.3.2 - Περίπτωση χρήσης 2: Ο Η/Υ δεν ενεργοποιείται... 54 4.3.3 - Περίπτωση χρήσης 3: Σφάλματα ανάγνωσης/εγγραφής οπτικών δίσκων..55 4.4 - Η μέθοδος λειτουργίας της μηχανής διεξαγωγής συμπερασμάτων.. 56 4.5 - Ακολουθώντας την ενεργοποίηση των κανόνων.. 58 ΚΕΦΑΛΑΙΟ 5: Ο ΚΩΔΙΚΑΣ ΤΗΣ ΕΦΑΡΜΟΓΗΣ 5.1 - Εισαγωγή.. 66 5.2 - Κώδικας.... 67 ΒΙΒΛΙΟΓΡΑΦΙΑ... 138 iii

ΕΙΣΑΓΩΓΗ Τα έμπειρα συστήματα αποτελούν την πρώτη επιτυχημένη μορφή λογισμικού τεχνητής νοημοσύνης. Το βασικό πρόβλημα που καλούνται να επιλύσουν είναι η αναπαράσταση και επεξεργασία της ανθρώπινης γνώσης με τρόπο που να τους παρέχει τη δυνατότητα διεξαγωγής συμπερασμάτων σε προβλήματα εντός συγκεκριμένου γνωστικού πεδίου. Συγκεντρώνοντας τη γνώση των ανθρώπων-ειδικών κάποιου πεδίου, τα πρώτα έμπειρα συστήματα χρησιμοποιήθηκαν σε ιατρικές διαγνώσεις, στην εφαρμοσμένη μηχανική, στη χημεία και στις πωλήσεις ηλεκτρονικών υπολογιστών. Τα έμπειρα συστήματα παρουσιάζουν κάποια πλεονεκτήματα σε σχέση με τους ανθρώπους. Πρωτίστως, σε αντίθεση με τον άνθρωπο, μπορούν να αποδίδουν στο 100% κατά τη διάρκεια ολόκληρου του εικοσιτετραώρου. Επίσης, η γνώση του ειδικού που έχει αιχμαλωτισθεί, γίνεται αμέσως διαθέσιμη σε ένα μεγάλο πλήθος ανθρώπων και θα συνεχίσει να είναι διαθέσιμη ακόμα και αν ο άνθρωπος-ειδικός συνταξιοδοτηθεί ή φύγει. Στη βιβλιογραφία της επιστήμης των υπολογιστών, αναφέρονται πολλές περιπτώσεις στις οποίες τέτοια συστήματα ξεπέρασαν σε επιδόσεις τους αντίστοιχους ειδικούς του πεδίου. Έτσι, άρχισαν να γίνονται προβλέψεις ότι κάποια μέρα τα εξελιγμένα έμπειρα συστήματα θα μπορούσαν να προσομοιώσουν την ανθρώπινη νοημοσύνη σε ικανότητες επίλυσης προβλημάτων γενικής φύσης. Κάτι τέτοιο φυσικά δεν συνέβη και έγινε ξεκάθαρο στους ερευνητές ότι είχαν υποτιμήσει κατά πολύ την πολυπλοκότητα της γνώσης βάσει κοινής λογικής, η οποία και υποστηρίζει τον γενικό τρόπο συλλογισμού των ανθρώπων. Παρόλα αυτά, ακόμα και στις μέρες μας υπάρχουν εξαιρετικές εφαρμογές για τα κλασσικά έμπειρα συστήματα. Αλλά ένας συγκεκριμένος τύπος έμπειρων συστημάτων είναι αυτός που πραγματικά έχει επικρατήσει και αποτελεί πια αναπόσπαστο κομμάτι μιας πληθώρας εξελιγμένων εφαρμογών. Η αναφορά γίνεται για τα έμπειρα συστήματα κανόνων ή απλώς συστήματα κανόνων (rule-based systems), που παρουσιάζουν το μεγαλύτερο ενδιαφέρον και στα οποία θα δώσουμε ιδιαίτερη βαρύτητα. Όπως θα δείτε, στο πλαίσιο του πρακτικού μέρους αυτής εργασίας, αναπτύσσουμε ένα τέτοιο έμπειρο σύστημα κανόνων, για την καθοδήγηση στη διάγνωση βλαβών ενός Η/Υ. Ελπίζω να βρείτε ενδιαφέρουσα την εργασία και εύχομαι να αποτελέσει βάση έμπνευσης συναδέλφων για την ανάπτυξη ενός ανώτερου συστήματος κανόνων από αυτό που αναπτύχθηκε. 1

ΕΙΣΑΓΩΓΗ ΣΤΑ ΕΜΠΕΙΡΑ ΣΥΣΤΗΜΑΤΑ Κεφάλαιο 1 1.1 Εισαγωγή Τα πρώτα υπολογιστικά συστήματα δημιουργήθηκαν για την επεξεργασία αριθμών. Οι αριθμοί, όπως και οι λέξεις ή τα σχήματα, αποτελούν σύμβολα. Με το να γενικεύσουμε την «επεξεργασία αριθμών» σε «επεξεργασία συμβόλων», καταλήγουμε σε μια πολύ πιο γενική και πολύ πιο χρήσιμη θεώρηση των υπολογιστικών συστημάτων ως επεξεργαστών συμβόλων. Αυτή η θεώρηση έχει μεγάλη σημασία για τα συστήματα τεχνητής νοημοσύνης διότι η επεξεργασία της γνώσης αποτελεί αναπόσπαστο κομμάτι τους. Η επεξεργασία της γνώσης μέσα στο πλαίσιο των υπολογιστικών συστημάτων, συνεπάγεται την αναπαράστασή της με συμβολικό τρόπο. Τα προβλήματα με τα οποία καταπιάνονται τα συστήματα τεχνητής νοημοσύνης είναι συνήθως δύσκολα και αδύνατο να επιλυθούν με εξαντλητική εξέταση όλων των πιθανών λύσεων. Για αυτό το λόγο ένα ευφυές σύστημα πρέπει να έχει την ικανότητα να πλοηγείται με αποτελεσματικότητα και αποδοτικότητα, σε ένα πολύ μεγάλο χώρο αναζήτησης, επιλέγοντας σε κάθε στάδιο την πιο «υποσχόμενη» διαδρομή η οποία στην πλειονότητα των περιπτώσεων θα το οδηγήσει εάν όχι σε βέλτιστη λύση, τουλάχιστον σε μια αρκετά ικανοποιητική λύση. Γενικά, η επεξεργασία γνώσης μέσω συμβολικών αναπαραστάσεων και η καθοδήγηση αναζήτησης λύσεων είναι τα χαρακτηριστικά που διακρίνουν τις μεθόδους τεχνητής νοημοσύνης από τις υπόλοιπες υπολογιστικές μεθόδους. Σε αυτό το σημείο πρέπει να αναφέρουμε ότι οι απόψεις διίστανται σχετικά με το τι είναι τεχνητή νοημοσύνη. Μερικοί άνθρωποι όταν χρησιμοποιούν τον όρο τεχνητή νοημοσύνη, αναφέρονται σε συστήματα που έχουν κάποια ικανότητα μάθησης και βελτιώνουν τις επιδόσεις τους με το χρόνο καθώς κερδίζουν εμπειρία στην επίλυση προβλημάτων. Άλλοι άνθρωποι όταν χρησιμοποιούν τον όρο τεχνητή νοημοσύνη, αναφέρονται σε συστήματα που έχουν την ικανότητα επίδειξης επιδόσεων ανθρώπινου επιπέδου σε κάποιο συγκεκριμένο πεδίο. Η τελευταία προσέγγιση είναι αυτή που χαρακτηρίζει το κυρίως εφαρμοσμένο μέρος της τεχνητής νοημοσύνης, το οποίο είναι η τεχνολογία των έμπειρων συστημάτων. 2

1.2 Τι ονομάζουμε έμπειρο σύστημα Ένα έμπειρο σύστημα (expert system ή knowledge-based system) είναι ένα λογισμικό το οποίο χρησιμοποιεί ανθρώπινη γνώση για την επίλυση προβλημάτων που κανονικά θα απαιτούσαν ανθρώπινη νοημοσύνη. Αυτά τα συστήματα είναι «έμπειρα» σε κάποιο συγκεκριμένο πεδίο προβλημάτων και ενσωματώνουν (μέχρι ενός σημείου) τη γνώση, την εμπειρία και τις στρατηγικές επίλυσης προβλημάτων ενός πραγματικού ειδικού. Τα βιβλία και τα εγχειρίδια χρήσης περιλαμβάνουν τεράστιες ποσότητες γνώσης αλλά κάποιος πρέπει να τα διαβάσει και να ερμηνεύσει τη γνώση για να μπορέσει αυτή να χρησιμοποιηθεί. Τα έμπειρα συστήματα αναπαριστούν τη γνώση ως δεδομένα ή κανόνες μέσα στον υπολογιστή. Αυτοί οι κανόνες και τα δεδομένα μπορούν να κληθούν ανά πάσα στιγμή για την επίλυση κάποιου προβλήματος. Τα συμβατικά προγράμματα στους υπολογιστές εκτελούν εργασίες χρησιμοποιώντας συμβατική λογική λήψης αποφάσεων, περιλαμβάνοντας ελάχιστη γνώση πέρα από το βασικό αλγόριθμο επίλυσης του συγκεκριμένου προβλήματος. Στα προγράμματα αυτά, η γνώση είναι ενσωματωμένη στον κώδικα του προγράμματος και όταν η γνώση αλλάζει, το πρόγραμμα πρέπει να αλλαχθεί και να ανακατασκευαστεί (rebuild). Τα έμπειρα συστήματα συλλέγουν τη γνώση σε μια βάση γνώσης (knowledge base) η οποία χρησιμοποιείται για την άντληση των πληροφοριών που απαιτεί η επίλυση του εκάστοτε προβλήματος. Κάποιο διαφορετικό πρόβλημα, πάντα εντός του πεδίου της βάσης γνώσης, μπορεί να επιλυθεί χρησιμοποιώντας το ίδιο πρόγραμμα χωρίς ανακατασκευή. Τα έμπειρα συστήματα αποτελούν την πρώτη πραγματικά επιτυχημένη μορφή λογισμικού τεχνητής νοημοσύνης. 1.2.1 Η δομή ενός έμπειρου συστήματος Όπως ήδη αναφέραμε, ένα έμπειρο σύστημα είναι ένα λογισμικό το οποίο χρησιμοποιεί ανθρώπινη εμπειρογνωμοσύνη για την επίλυση προβλημάτων. Η γνώση είναι η «καρδιά» του έμπειρου συστήματος και η δημιουργία μιας βάσης γνώσης η οποία χρησιμοποιεί μία συγκεκριμένη δομή αναπαράστασης αυτής της γνώσης, είναι το άλφα και το ωμέγα για ένα έμπειρο σύστημα. Αναφερόμενοι στον επιχειρηματικό κόσμο, η υλοποίηση της βάσης γνώσης κάνει τη διαφορά ανάμεσα σε ένα αποτυχημένο έμπειρο σύστημα και σε ένα σύστημα που αποφέρει τεράστια κέρδη σε μία επιχείρηση. Η άκρως σημαντική διαδικασία συγκέντρωσης και μορφοποίησης της γνώσης για την ενσωμάτωσή της στο έμπειρο σύστημα 3

ονομάζεται μηχανική γνώσης (knowledge engineering) και αποτελεί αναπόσπαστο κομμάτι της δομής ενός έμπειρου συστήματος. Εικόνα 1-1: Η δομή ενός έμπειρου συστήματος. Ο μηχανικός γνώσης, μετά από έρευνα και συνεντεύξεις με τους ειδικούς του πεδίου, χρησιμοποιεί μια δομημένη αναπαράσταση της γνώσης για την εισαγωγή της στη βάση γνώσης του έμπειρου συστήματος. Θα μελετήσουμε τις διάφορες αναπαραστάσεις της γνώσης σε επόμενη ενότητα αυτού του κεφαλαίου. Τα δεδομένα που περιέχονται στη βάση γνώσης και τα δεδομένα εισόδου της διεπαφής του χρήστη αντλούνται από τη μηχανή διεξαγωγής συμπερασμάτων (inference engine). Στο εσωτερικό της μηχανής διεξαγωγής συμπερασμάτων εκτελούνται διαδικασίες που μπορούν να προσθέσουν νέα δεδομένα γνώσης και να καταλήξουν σε κάποιο συμπέρασμα σχετικά με την επίλυση του προβλήματος. Η μηχανή διεξαγωγής συμπερασμάτων υλοποιείται συνήθως από κάποιον αλγόριθμο τεχνητής νοημοσύνης. Στην τελευταία ενότητα του επόμενου κεφαλαίου θα μελετήσουμε τον αλγόριθμο που χρησιμοποιεί η μηχανή διεξαγωγής συμπερασμάτων του έμπειρου συστήματος που αναπτύχθηκε στο πλαίσιο του πρακτικού μέρους αυτής της εργασίας. 4

1.3 Μηχανική γνώσης Κάθε έμπειρο σύστημα καταπιάνεται με ένα υποσύνολο της γνώσης που υπάρχει συγκεντρωμένη στον κόσμο. Αυτό το υποσύνολο αποτελεί το πεδίο του συστήματος. Η διαδικασία συγκέντρωσης των πληροφοριών ενός πεδίου για χρήση σε κάποιο σύστημα που βασίζεται στη γνώση ονομάζεται μηχανική γνώσης και οι άνθρωποι που ασχολούνται επαγγελματικά με αυτό το αντικείμενο ονομάζονται μηχανικοί γνώσης. Σε έργα μικρής κλίμακας οι ίδιοι οι προγραμματιστές ασκούν τη μηχανική γνώσης, ενώ σε μεγάλα έργα περιλαμβάνεται ολόκληρη ομάδα αφοσιωμένων μηχανικών γνώσης. Οι επαγγελματίες μηχανικοί γνώσης μπορούν να έχουν πτυχία σε διάφορους επιστημονικούς κλάδους, με τους πιο προφανείς να είναι η επιστήμη των υπολογιστών και η ψυχολογία, αλλά και επιπλέον πτυχία στοχευόμενα σε κάποιο πεδίο όπως η φυσική, η χημεία και τα μαθηματικά. Προφανώς είναι σημαντικό ένας μηχανικός γνώσης να γνωρίζει πολλά για τα συστήματα που βασίζονται στη γνώση, παρόλο που δεν απαιτείται να είναι προγραμματιστής. Ένας μηχανικός γνώσης πρέπει να μάθει αρκετά σχετικά με το πεδίο λειτουργίας του προτεινόμενου συστήματος αλλά δεν χρειάζεται να γίνει ειδικός, αν και αυτό συμβαίνει μερικές φορές. Σε γενικές γραμμές, ένας μηχανικός γνώσης πρέπει να γνωρίζει: Τις απαιτήσεις Η εξέταση του προβλήματος που αναμένεται να επιλύσει το σύστημα είναι το πρώτο βήμα. Παρόλα αυτά, συνήθως το πρόβλημα γίνεται πλήρως κατανοητό σε επόμενα βήματα της διαδικασίας. Τους κανόνες Πρέπει να μελετηθούν οι βασικοί κανόνες που χαρακτηρίζουν το πεδίο. Τις πηγές Μόλις γίνουν κατανοητοί οι κανόνες, οι κατάλληλες πηγές θα εφοδιάσουν τον μηχανικό γνώσης με τις απαραίτητες πληροφορίες. Τα όρια Σε κάθε πεδίο υπάρχουν σκοτεινές γωνίες και αδιέξοδα. Πρέπει να κατανοηθούν οι δυσκολίες, οι αμφισημίες και τα όρια της ανθρώπινης αντίληψης. 1.3.1 Συνεντεύξεις Οι άνθρωποι αποτελούν την καλύτερη πηγή πληροφοριών όσον αφορά τις απαιτήσεις ενός συστήματος. Πριν την έναρξη ενός έργου, συντάσσονται συνήθως κάποια έγγραφα απαιτήσεων τα οποία αποτελούν περιγραφές του τρόπου λειτουργίας ενός προτεινόμενου 5

συστήματος. Παρά τις καλύτερες προθέσεις, τέτοια έγγραφα σπανίως περιγράφουν το σύστημα σε επίπεδο λεπτομέρειας που να επιτρέπει την υλοποίησή του. Οι ελλιπείς λεπτομέρειες μπορούν να συγκεντρωθούν μιλώντας με τους ενδιαφερόμενους του συστήματος οι οποίοι είναι οι πελάτες για τους οποίους αναπτύσσεται το σύστημα, οι ειδικοί του πεδίου και οι πιθανοί χρήστες του συστήματος. Η ανάπτυξη υγιούς σχέσης με τους ανθρώπους που συμμετέχουν στη συνέντευξη είναι άκρως σημαντική για έναν μηχανικό γνώσης. Ιδιαίτερη σημασία πρέπει να δίνεται στα ακόλουθα: Ομιλία κατάλληλης γλώσσας Μπορεί να είναι δύσκολο για έναν προγραμματιστή να θυμάται ότι οι στοίβες, οι επαναλήψεις και οι δείκτες δεν αποτελούν μέρος του καθημερινού λεξιλογίου των ανθρώπων που δεν ασχολούνται με τον προγραμματισμό. Η χρήση προγραμματιστικών όρων αυξάνει την απόσταση ανάμεσα στον συνεντευξιαζόμενο και στον μηχανικό γνώσης. Ο μηχανικός γνώσης είναι αυτός που πρέπει να μάθει την τεχνική αργκό του πεδίου για το οποίο αναπτύσσεται το σύστημα. Ένδειξη σεβασμού Όσο απλό και αν φαίνεται ένα πεδίο, ο συνεντευξιαζόμενος γνωρίζει περισσότερα για αυτό από ότι ο μηχανικός γνώσης, οπότε ανεξαρτήτως μορφωτικού επιπέδου, η περιφρόνηση είναι περιττή. Οι γνώσεις προγραμματισμού δεν είναι καθόλου σημαντικότερες από τις γνώσεις απογραφής μιας αποθήκης. Ο χρόνος είναι το ίδιο πολύτιμος για όλους και ο μηχανικός γνώσης πρέπει να είναι ευγνώμων για το χρόνο που του αφιερώνει ο συνεντευξιαζόμενος. Ένδειξη ενδιαφέροντος Ο μηχανικός γνώσης πρέπει να κοιτάει στα μάτια τον συνεντευξιαζόμενο όταν του μιλάει και να θέτει επακόλουθες ερωτήσεις ως ένδειξη παρακολούθησης. Επίσης, οι απαντήσεις του συνεντευξιαζόμενου πρέπει να καταγράφονται έτσι ώστε να μην επαναλαμβάνονται οι ίδιες ερωτήσεις. Κατάλληλη ενδυμασία Για μια συνέντευξη ενός πελάτη σε τράπεζα δεν θα ήταν κατάλληλος ο συνδυασμός βερμούδας με κοντομάνικο. Η κατάλληλη ενδυμασία βοηθάει τον συνεντευξιαζόμενο να συσχετιστεί με τον μηχανικό γνώσης. Καθησύχαση Συχνά ένας μάνατζερ ζητά από τον μηχανικό γνώσης να πάρει συνέντευξη από κάποιον υπάλληλο και αυτός ο υπάλληλος μπορεί να φοβάται ότι θα αντικατασταθεί από το νέο σύστημα. Ο μηχανικός γνώσης πρέπει να 6

καθησυχάσει τον υπάλληλο εξηγώντας του ότι είναι εξυπνότερος από έναν υπολογιστή και παρόλο που το νέο σύστημα θα αναλάβει εργασίες ρουτίνας, θα ελευθερωθεί χρόνος από τον υπάλληλο έτσι ώστε αυτός να ασχολείται με σημαντικότερα πράγματα. Δεν πρέπει να δημιουργηθεί η αντίληψη ότι ο μηχανικός γνώσης ή το σύστημα υπό ανάπτυξη είναι εχθροί των εργαζομένων. 1.3.2 Έρευνα Δεν είναι ανάγκη να εξαχθούν όλες οι πληροφορίες από ανθρώπους. Στις περιπτώσεις όπου αυτό είναι δυνατό, ένας μηχανικός γνώσης μπορεί να συλλέξει βασική γνώση από έγγραφο ή ηλεκτρονικό υλικό, έτσι ώστε να μην σπαταλάει το χρόνο των ανθρώπων. Λόγω του αχανούς πλήθους των πληροφοριών στις οποίες κάποιος μπορεί να έχει πρόσβαση σήμερα, προτείνεται σε έναν μηχανικό γνώσης να συμβουλεύεται τους ειδικούς του πεδίου σχετικά με τις έμπιστες πηγές πληροφοριών. Πέρα από την αναζήτηση στο διαδίκτυο, τα εισαγωγικά βιβλία της τριτοβάθμιας εκπαίδευσης αποτελούν μια εξαιρετική πηγή πληροφοριών για αρκετά τεχνικά και επιστημονικά πεδία. Τα εισαγωγικά αυτά βιβλία στοχεύουν συχνά σε γενικότερο αναγνωστικό κοινό οπότε μπορούν να μελετηθούν από ανθρώπους ανειδίκευτους στον εκάστοτε τομέα. Επίσης, οι μονογραφίες εξετάζουν διεξοδικά και από όλες τις πλευρές κάποιο θέμα-αντικείμενο και μπορούν να φανούν ιδιαίτερα χρήσιμες. Οι βιβλιοθήκες των εκπαιδευτικών ιδρυμάτων αποτελούν μια καλή πηγή για εισαγωγικά βιβλία και μονογραφίες. 1.4 Αναπαράσταση της γνώσης Η ενσωμάτωση της γνώσης σε ένα έμπειρο σύστημα συνεπάγεται την αναπαράστασή της με συμβολικό τρόπο. Ένα από τα πεδία ενασχόλησης της τεχνητής νοημοσύνης έχει ως βασικό σκοπό την αναπαράσταση της γνώσης με τρόπο που να διευκολύνεται η διαδικασία διεξαγωγής συμπερασμάτων από τη γνώση. Έτσι, έχουν οριστεί κάποια βασικά συμβολικά συστήματα για την αναπαράσταση της γνώσης, τα οποία χρησιμοποιούνται για την υλοποίηση της βάσης γνώσης ενός έμπειρου συστήματος. Σε μια τέτοια προσέγγιση, η βάση γνώσης ενός καλοσχεδιασμένου συστήματος μπορεί να συντηρηθεί σχετικά εύκολα ακόμα και από άτομα χωρίς τεχνική κατάρτιση. 7

1.4.1 Κανόνες Ο συνηθέστερος τρόπος αναπαράστασης της γνώσης σε ένα έμπειρο σύστημα είναι οι κανόνες. Η βάση γνώσης αποτελείται από ένα πλήθος κανόνων, καθένας από τους οποίους κωδικοποιεί ένας μέρος της γνώσης του ειδικού. Κάθε κανόνας περιλαμβάνει ένα αριστερό και ένα δεξί μέρος. Οι κανόνες είναι σαν δηλώσεις if then σε μια διαδικαστική γλώσσα, αλλά δεν χρησιμοποιούνται με διαδικαστικό τρόπο. Ενώ οι δηλώσεις if then εκτελούνται σε συγκεκριμένη χρονική στιγμή και με συγκεκριμένη σειρά, ανάλογα με τον τρόπο που συντάσσονται από τον προγραμματιστή, το δεξί (then) μέρος ενός κανόνα μπορεί να εκτελεστεί οποτεδήποτε ικανοποιείται το αριστερό (if) μέρος του. Αυτή η ιδιότητα καθιστά τους κανόνες λιγότερο προκαθορισμένους σε σχέση με ένα διαδικαστικό πρόγραμμα, επειδή η μηχανή διεξαγωγής συμπερασμάτων αποφασίζει τη σειρά με την οποία θα πυροδοτηθούν (εκτελεστούν) οι κανόνες. Ένας τυπικός κανόνας ενός τραπεζικού συστήματος θα μπορούσε να έχει την παρακάτω μορφή: (Πλήθος-καθυστερημένων-πληρωμών > 4) (Πλήθος-καθυστερημένων-πληρωμών < 8) => (Αύξηση-επιτοκίου-κατά 1%) Αριστερό μέρος Δεξί μέρος Όταν δηλαδή το πλήθος των καθυστερημένων πληρωμών έχει τιμή μεγαλύτερη από 4 και μικρότερη από 8, θα εκτελεστεί το δεξί μέρος του κανόνα προκαλώντας αύξηση του επιτοκίου κατά 1%. Η υλοποίηση των κανόνων επιτυγχάνεται με τη χρήση μηχανών κανόνων (rule engines), οι οποίες παρέχουν το βασικό πλαίσιο εργασίας για τη συγγραφή και εκτέλεση των κανόνων. Στο παρελθόν, οι μηχανές κανόνων αποτελούσαν αυτόνομες τεχνολογίες και η ενσωμάτωσή τους στις ήδη υπάρχουσες εφαρμογές ήταν αρκετά δύσκολη. Σήμερα, οι μηχανές κανόνων είναι ιδιαίτερα συμβατές με τις διάφορες τεχνολογίες λογισμικού, και τα έμπειρα συστήματα κανόνων (rule-based systems) είναι ευρέως διαδεδομένα στις περισσότερες επιχειρήσεις. 8

1.4.2 Σημασιολογικά δίκτυα Αρχικά ανεπτυγμένα για χρήση ως ψυχολογικά μοντέλα της ανθρώπινης μνήμης, τα σημασιολογικά δίκτυα χρησιμοποιούνται στην τεχνητή νοημοσύνη για να περιγράψουν σχέσεις μεταξύ εννοιών, αντικειμένων ή γεγονότων. Οι σχέσεις μεταξύ αυτών των στοιχείων (κόμβοι) αναπαριστώνται με συνδέσμους που ονομάζονται τόξα. Τα τόξα είναι ονοματισμένα και μπορούν να περιγράψουν ένα μεγάλο πλήθος σχέσεων μεταξύ των στοιχείων, ανάλογα με την υλοποίηση του σημασιολογικού δικτύου. Εικόνα 1-2: Παράδειγμα σημασιολογικού δικτύου. Για παράδειγμα, ένας συγκεκριμένος ελέφαντας (Ε1) που έχει καταχωρηθεί σε μία βάση γνώσης, θα μπορούσε να αναπαρασταθεί με τον τρόπο που απεικονίζεται παραπάνω. Παρόλα αυτά, κάποιες ιδιότητες δεν είναι εύκολο να εκφραστούν με τη χρήση σημασιολογικών δικτύων, όπως για παράδειγμα η άρνηση, η διάζευξη και γενική μηταξινομήσιμη γνώση. Υπάρχουν τρόποι για την έκφραση τέτοιων σχέσεων σε σημασιολογικά δίκτυα, αλλά είναι άσχημοι και δεν συνηθίζεται η χρήση τους. 1.4.3 Πλαίσια Ένα πλαίσιο είναι μια δομή δεδομένων για την αναπαράσταση μιας στερεότυπης κατάστασης. Τα πλαίσια μοιάζουν με τα σημασιολογικά δίκτυα από την άποψη ότι σχηματίζουν δίκτυα ιεραρχίας κόμβων και σχέσεων. Για κάθε κόμβο ορίζονται ιδιότητες οι οποίες περιγράφουν τα στοιχεία που αναπαριστά ο κόμβος. 9

Εικόνα 1-3: Παράδειγμα πλαισίου. Μερικές από τις ιδιότητες του κόμβου «καρέκλα ξενοδοχείου» στο παράδειγμά μας είναι το ύψος και τα πόδια. Οι τιμές αυτών των ιδιοτήτων μπορούν να δηλωθούν κατηγορηματικά ή να οριστεί μια μέθοδος που θα καθορίζει τις τιμές τους βάσει άλλων πληροφοριών. Φυσικά, τα πλαίσια και τα σημασιολογικά δίκτυα συντάσσονται με διαφορετικό τρόπο σε προγραμματιστικό επίπεδο, εκτός αν χρησιμοποιηθεί κατάλληλος γραφικός συντάκτης ο οποίος παράγει τον κώδικα αυτόματα. 1.5 Μηχανές διεξαγωγής συμπερασμάτων Μια μηχανή διεξαγωγής συμπερασμάτων ή κέλυφος (shell), είναι ένα ολοκληρωμένο περιβάλλον ανάπτυξης για την υλοποίηση και συντήρηση ενός συστήματος που βασίζεται στη γνώση. Ο όρος κέλυφος χρησιμοποιείται επειδή από μόνη της μια μηχανή διεξαγωγής συμπερασμάτων είναι άχρηστη χωρίς τη γνώση βάσει της οποίας θα ενεργεί. Οι μηχανές διεξαγωγής συμπερασμάτων ενσωματώνονται συνήθως σε εφαρμογές που έχουν αναπτυχθεί σε συνήθεις γλώσσες προγραμματισμού, παρέχοντας με αυτόν τον τρόπο τη δυνατότητα «σκέψης» σε αυτές τις εφαρμογές. Κάθε μηχανή απαιτεί συγκεκριμένη μεθοδολογία ανάπτυξης και παρέχει κάποιο περιβάλλον χρήσης το οποίο σε ιδανικές περιπτώσεις είναι γραφικό, δίνοντας έτσι τη δυνατότητα στον μηχανικό γνώσης (υπό ορισμένες συνθήκες) να 10

μπορεί να εμπλέκει άμεσα τους ειδικούς του πεδίου στη δόμηση και κωδικοποίηση της γνώσης. Οι περισσότερες μηχανές παρέχουν πλούσιες δυνατότητες και εντολές σύνταξης, σε βαθμό που πληρούν τις προϋποθέσεις ένταξής τους στον κόσμο των γλωσσών προγραμματισμού. Μερικές από τις γνωστές μηχανές διεξαγωγής συμπερασμάτων που βασίζονται σε κανόνες είναι οι: CLIPS για C. Microsoft Business Rules Framework για.net. Jess για Java. Drools για Java. d3web για Java. LISA για Common LISP. Οι πρώτες εκδόσεις της CLIPS αναπτύχθηκαν στις αρχές του 1985 από τη NASA, η οποία έπαυσε την ανάπτυξη της γλώσσας στα μέσα του 1990. Από τότε η CLIPS αναπτύσσεται ανεξάρτητα και διατίθεται για χρήση δωρεάν, όπως και όλες οι υπόλοιπες μηχανές κανόνων που αναφέραμε παραπάνω εκτός από αυτήν της Microsoft. Απόγονος της CLIPS θεωρείται η Jess, η οποία χρησιμοποιήθηκε για την ανάπτυξη του έμπειρου συστήματος που παρουσιάζεται αργότερα σε αυτή την εργασία. Χωρίς να θεωρείται μηχανή διεξαγωγής συμπερασμάτων, δεν θα μπορούσαμε να παραλείψουμε την Prolog, μία από τις πρώτες γλώσσες λογικού προγραμματισμού γενικού σκοπού η οποία παραμένει ιδιαίτερα δημοφιλής και έχει χρησιμοποιηθεί για την ανάπτυξη μεγάλου πλήθους ελεύθερων και εμπορικών εφαρμογών. Για σοβαρές εμπορικές και επιχειρησιακές εφαρμογές, διατίθενται συστήματα διαχείρισης BRMS (Business Rule Management Systems) όπως το IBM ILOG και το FICO Blaze Advisor, τα οποία φυσικά δεν παρέχονται δωρεάν. Όλες οι προαναφερθείσες μηχανές διεξαγωγής συμπερασμάτων βασίζονται σε κανόνες, μιας και τα συστήματα κανόνων είναι αυτά που κατακλύζουν την αγορά. Το ενδιαφέρον για έμπειρα συστήματα πλαισίων και σημασιολογικών δικτύων είναι περιορισμένο αλλά οι εξεζητημένες εφαρμογές τους, διατηρούν ζωντανή την υποστήριξη ανάλογων μηχανών. Μερικές μηχανές που βασίζονται σε πλαίσια είναι το F-logic και το ανοικτού κώδικα Protégé. Όσον αφορά τα σημασιολογικά δίκτυα, χρησιμοποιούνται ευρέως το MultiNet και διάφορες διανομές της LISP όπως το SNePS. 11

1.6 Εφαρμογές Τα πρώτα επιτυχημένα έμπειρα συστήματα αναπτύχθηκαν με βάση τους κανόνες για χρήση σε ιατρικές διαγνώσεις, στην εφαρμοσμένη μηχανική, στη χημεία και στις πωλήσεις ηλεκτρονικών υπολογιστών. Ένα από τα συστήματα αυτά ήταν το MYCIN, μία εφαρμογή για τη διάγνωση βακτηριακών μολύνσεων του αίματος. Χρησιμοποιώντας μια σχετικά απλή μηχανή διεξαγωγής συμπερασμάτων και μια βάση γνώσης 600 κανόνων, ανάλογα με τη διάγνωση, το MYCIN σύστηνε αντιβιοτικά με δοσολογία προσαρμοσμένη στο σωματικό βάρος του ασθενούς. Αναγνωρίζοντας την επιτυχία του MYCIN, η ομάδα που το ανέπτυξε αφαίρεσε όλη την ιατρική γνώση από την εφαρμογή αποκομίζοντας με αυτόν τον τρόπο ένα άδειο πλαίσιο συγγραφής κανόνων με δυνατότητα διεξαγωγής συμπερασμάτων που ονομάστηκε EMYCIN (Empty MYCIN) και αποτέλεσε το πρώτο κέλυφος έμπειρου συστήματος. Ένα παράδειγμα έμπειρου συστήματος που ευθύνεται για το μεγαλύτερο πλήθος των σημερινών συστημάτων κανόνων είναι το XCON της DEC (Digital Equipment Corporation). Το αρχικό XCON περιλάμβανε 210 κανόνες για την υποστήριξη παραγγελιών υπολογιστικών συστημάτων, επιλέγοντας αυτόματα τα εξαρτήματα που ήταν συμβατά με τον υπολογιστή της παραγγελίας του πελάτη. Η ώριμη έκδοση του XCON περιλάμβανε 17.500 κανόνες και «γνώριζε» 31.000 υπολογιστικά εξαρτήματα. Το εκτιμώμενο κέρδος της DEC εκείνη την εποχή (1989) ανερχόταν στα 40 εκατομμύρια δολάρια ετησίως λόγω αυξημένης ακρίβειας, μειωμένων λαθών στις παραγγελίες και υψηλής ικανοποίησης των πελατών. Σήμερα, τα συστήματα κανόνων, ανεξαρτήτως αν προορίζονται ως αντικαταστάτες πραγματικών ειδικών ή ως συστήματα αυτοματοποίησης και κωδικοποίησης εταιρικών πρακτικών, αποτελούν μέρος σχεδόν όλων των επιχειρήσεων. Πολλοί διακομιστές εμπορικών εφαρμογών περιλαμβάνουν κάποια μηχανή κανόνων, και οι περισσότεροι από τους υπόλοιπους προσφέρουν τη δυνατότητα ενσωμάτωσης μιας τέτοιας μηχανής. Επειδή οι ενέργειες ενός συστήματος κανόνων τείνουν να αποκρύπτονται από την κοινή θέα, οι άνθρωποι δεν αντιλαμβάνονται την ευρεία κλίμακα στην οποία χρησιμοποιούνται αυτά τα συστήματα. Μερικές από τις εφαρμογές των συστημάτων κανόνων είναι οι ακόλουθες: 12

Φιλτράρισμα μηνυμάτων ηλεκτρονικού ταχυδρομείου. Μηχανές σάρωσης antivirus. Τεχνητή νοημοσύνη βιντεοπαιχνιδιών. Επεξεργασία φυσικής γλώσσας. Προηγμένες διαδικτυακές εφαρμογές. Διδακτικά συστήματα. Ηλεκτρονική σχεδίαση. Δρομολόγηση τηλεφωνικών κλήσεων. Έλεγχος βιομηχανικών διαδικασιών. Τα έμπειρα συστήματα βρίσκονται παντού απλώς δεν τα αναφέρουμε πια με αυτό το όνομα. 13

ΣΥΣΤΗΜΑΤΑ ΚΑΝΟΝΩΝ (RULE-BASED SYSTEMS) Κεφάλαιο 2 2.1 Εισαγωγή Τα συστήματα κανόνων βρίσκονται παντού και αποτελούν το επικρατέστερο υποσύνολο των έμπειρων συστημάτων. Η εκτόξευση της αποθηκευτικής χωρητικότητας των υπολογιστικών συστημάτων επέτρεψε σε κάθε ενδιαφερόμενο τη χρήση συστημάτων κανόνων, κάτι που παλαιότερα ήταν αποκλειστικότητα των επιχειρήσεων που διέθεταν μεγάλα συστήματα διαχείρισης πληροφοριών για τη διατήρηση της βάσης γνώσης (βάση κανόνων). Οι εφαρμογές που χρησιμοποιούν μηχανές κανόνων υπερέχουν στην επίλυση προβλημάτων που είναι δύσκολο να λυθούν με παραδοσιακές αλγοριθμικές μεθόδους, και λειτουργούν ακόμη και όταν τα δεδομένα εισόδου είναι ελλιπή. Περιβάλλοντα ανάπτυξης και εφαρμογές των συστημάτων κανόνων έχουν αναφερθεί στις τελευταίες ενότητες του προηγούμενου κεφαλαίου. 2.2 Η αρχιτεκτονική των συστημάτων κανόνων Εκτός από τη διεπαφή χρήστη (user interface) η οποία υλοποιείται συνήθως από την εφαρμογή στην οποία ενσωματώνεται η μηχανή κανόνων, τα περισσότερα σύγχρονα συστήματα κανόνων αποτελούνται από τα ακόλουθα στοιχεία: Μια μηχανή διεξαγωγής συμπερασμάτων (inference engine). Μια βάση κανόνων (rule base). Τη λειτουργική μνήμη (working memory). Η μηχανή διεξαγωγής συμπερασμάτων αποτελείται με τη σειρά της από: Μια μέθοδο ταύτισης προτύπων (pattern matcher). Μια ατζέντα (agenda). Μια μηχανή εκτέλεσης (execution engine). 14

Εικόνα 2-1: Η αρχιτεκτονική ενός τυπικού συστήματος κανόνων. 2.2.1 Η μηχανή διεξαγωγής συμπερασμάτων Η μηχανή διεξαγωγής συμπερασμάτων είναι το κεντρικό στοιχείο μιας μηχανής κανόνων. Ο πρωτεύων σκοπός μιας μηχανής κανόνων είναι η εφαρμογή κανόνων σε δεδομένα, και η μηχανή διεξαγωγής συμπερασμάτων είναι το στοιχείο που ελέγχει την όλη διαδικασία εφαρμογής των κανόνων στα δεδομένα της λειτουργικής μνήμης για να λάβει την έξοδο του συστήματος. Συνήθως μια μηχανή διεξαγωγής συμπερασμάτων λειτουργεί σε διακριτούς κύκλους που ακολουθούν τα εξής βήματα: 1. Όλοι οι κανόνες συγκρίνονται με τη λειτουργική μνήμη (με τη χρήση της ταύτισης προτύπων) για να καθοριστεί ποιοι πρέπει να ενεργοποιηθούν κατά τη διάρκεια του συγκεκριμένου κύκλου. Αυτή η αταξινόμητη λίστα των ενεργοποιημένων κανόνων, μαζί με οποιουσδήποτε ενεργοποιημένους κανόνες προηγούμενων κύκλων, ονομάζεται σύνολο διένεξης (conflict set). 2. Το σύνολο διένεξης διατάσσεται για να σχηματίσει την ατζέντα τη λίστα με τους κανόνες το δεξί μέρος των οποίων θα πυροδοτηθεί (εκτελεστεί). Η 15