Η σκοπιμότητα της πρότασης αφορά τη θεσμοθέτηση εργαστηρίου στο ΤΕΙ Κρήτης που θα προωθεί την επιστημονική έρευνα σε σημαντικά πεδία όπως Τεχνητή Νοημοσύνη και Τεχνολογία Λογισμικού και ειδικότερα σε περιοχές όπως Λογικός Προγραμματισμός, Μεθοδολογία και Σχεδιασμός Συστημάτων και Δικτύων σε Chip, και Ιατρικές Εφαρμογές σε συνεργασία με γνωστά διεθνώς Πανεπιστήμια, Ερευνητικά Κέντρα και Εταιρείες. Οι δραστηριότητες αυτού του υποέργου αντιστοιχούν στις προαναφερθείσες περιοχές. Ελπίζουμε ότι αυτό το υποέργο θα βοηθήσει στην ανάπτυξη της έρευνας, και ιδιαίτερα στην καλύτερη ερευνητική παρουσία, την θεσμοθέτηση και στη βελτίωση της υποδομής του υπάρχοντος εργαστηρίου ¨”Τεχνητής Νοημοσύνης και Τεχνολογίας Λογισμικού” του ΤΕΙ Κρήτης. Επίσης η συνεργασία με κορυφαία Πανεπιστήμια και ιδιαίτερα με Εταιρείες, νομίζουμε ότι θα αναδείξει σημαντικά την Εφαρμοσμένη Τεχνολογική Έρευνα στο ΤΕΙ Κρήτης.

 

Δραστηριότητα 1 : Εργαλεία Μετασχηματισμού και Επαλήθευσης Προγραμμάτων

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

Υπάρχουν μεθοδολογίες ανάπτυξης λογισμικού οι οποίες κατασκευάζουν πολύ δομημένα προγράμματα [Μarakakis94, Marakakis97]. Τα κατασκευαζόμενα προγράμματα απεικονίζουν τις σχεδιαστικές αποφάσεις οι οποίες έχουν ακολουθηθεί κατά την κατασκευή του. Αυτές οι μεθοδολογίες κατασκευάζουν ένα εκτελέσιμο σχέδιο προγράμματος παρά ένα αποτελεσματικό πρόγραμμα. Α αποτελεσματικότητα δεν είναι ένα θέμα το οποίο πρέπει να λαμβάνεται υπόψη κατά την φάση κατασκευή του προγράμματος. Τα πλεονεκτήματα τέτοιων μεθοδολογιών είναι τα εξής: 1) Το κατασκευαζόμενο πρόγραμμα λόγω της πολύ δομημένης του μορφής μπορεί να χρησιμοποιείται για συντήρηση του προγράμματος και για απόδειξη ιδιοτήτων του προγράμματος. Αλλαγές στο πρόγραμμα μπορούν να γίνονται στο επίπεδο των αποφάσεων σχεδίασης. Δηλαδή, αλλαγή στο πρόγραμμα σημαίνει αλλαγή σ’ ένα σύνολο αποφάσεων σχεδίασης. 2) Η απόδειξη της ορθότητας των κατασκευαζόμενων προγραμμάτων διευκολύνεται από την πολύ δομημένη μορφή τους. 3) Ένα εργαλείο μπορεί να κατασκευαστεί το οποίο αυτόματα θα μετασχηματίζει τα δομημένα προγράμματα σε αντίστοιχα πιο αποτελεσματικά και μικρότερου μεγέθους τα οποία θα χρησιμοποιούνται για τρέξιμο.

Αυτό το υποέργο σκοπεύει στην ανάπτυξη εργαλείων χρησιμοποιώντας τεχνικές Τεχνητής Νοημοσύνης τα οποία θα αυξήσουν και θα δείξουν την ισχύ τέτοιων κατασκευαστικών μεθόδων λογισμικού [Marakakis94, Marakakis97]. Επιπλέον, θα μελετηθούν οι τομείς του μετασχηματισμού προγραμμάτων καθώς και της επαλήθευσης προγραμμάτων. Στοχεύουμε στην ανάπτυξη των εξής εργαλείων: 1) Κατασκευή ενός αυτόματου ή ημιαυτόματου εργαλείου το οποίο θα μετασχηματίζει τα πολύ δομημένα προγράμματα σε αντίστοιχα πιο συμπαγή (μικρότερος κώδικας) και πιο αποτελεσματικά προγράμματα. 2) Ανάπτυξη ενός διαλογικού επαληθευτή (verifier) o οποίος θα αποδεικνύει την ορθότητα των κατασκευαζόμενων προγραμμάτων. Επιπλέον, θα μελετηθεί η σχέση η οποία μπορεί να υπάρχει στην δομή των κατασκευαζόμενων προγραμμάτων και στην δομή της απόδειξης της ορθότητας τους.

Το λογισμικό που θα κατασκευαστεί καθώς και η μέθοδος κατασκευής λογικών προγραμμάτων [Marakakis94, Marakakis97] θα χρησιμοποιηθούν σε μαθήματα σχετικά με την ανάπτυξη λογισμικού (Προγρ/σμός ΙΙ, Τεχνολογία Λογισμικού). Επιπλέον, θα υλοποιηθούν προχωρημένες τεχνικές Τεχνητής Νοημοσύνης. Αυτές θα αξιοποιηθούν εκπαιδευτικά στο μάθημα Τεχνητή Νοημοσύνη. Στοχεύουμε να έλθουμε σε επαφή με εταιρίες ανάπτυξης λογισμικού οι οποίες θα αξιοποιήσουν περισσότερο τ’ αποτελέσματα αυτής της δραστηριότητας.

 

1.1. Μετασχηματισμός λογικών προγραμμάτων σε αντίστοιχα πιο αποτελεσματικά και μικρότερου μεγέθους.

Η πρώτη εργασία για μετασχηματισμό προγραμμάτων κατά την ανάπτυξη λογισμικού αναφέρεραι στο άρθρο των Burstall και Darlington [Burstall-Darlington77]. Στην πιο γενική του μορφή ένα μετασχηματισμός είναι μια σχέση μεταξύ δύο σχημάτων προγραμμάτων Σ και Σ’. Ο μετασχηματισμός θεωρείται σωστός εάν κάποια σημασιολογική σχέση ισχύει μεταξύ του Σ και Σ’ [Partsch-Steinbruggen83]. Η πιο σημαντική σημασιολογική σχέση είναι της ισοδυναμίας.

Το πρώτο σύστημα μετασχηματισμού για λογικά προγράμματα χωρίς άρνηση βασισμένο στους μετασχηματισμούς πτύξη (fold) – ανάπτυξη (unfold) αναπτύχθηκε από τον Tamaki και Sato [Tamaki-Sato84]. Στο άρθρο [Shepherdson92] γίνεται επέκταση των αποτελεσμάτων του Tamaki και Sato σε κανονικά λογικά προγράμματα όπου αρνητικοί στοιχειώδεις τύποι (literals) επιτρέπονται στο σώμα των προτάσεων. Βελτίωση στην αποτελεσματικότητα δεν εξασφαλίζεται όταν οι κανόνες μετασχηματισμού εφαρμόζονται απειθάρχητα χωρίς κάποια ιδιαίτερη σειρά. Γι’ αυτό το λόγο εισήχθησαν οι στρατηγικές μετασχηματισμών από τους Pettorossi και Proietti [Pettorossi-Proietti96], [Pettorossi-Proietti02]. Οι στρατηγικές μετασχηματισμών είναι μετα-κανόνες οι οποίοι κατευθύνουν την εφαρμογή των κανόνων μετασχηματισμού επιβάλοντας την εφαρμογή κατάληλων ακολουθιών κανόνων μετασχηματισμού έτσι ώστε να βελτιώνεται η αποτελεσματικότητα των παραγόμενων προγραμμάτων.

Ο στόχος του μετασχηματισμού προγραμμάτων είναι η βελτίωση της αποτελεσματικότητας ενώ ταυτόχρονα να διατηρείται η σημασιολογία του προγράμματος. Ο μετασχηματισμός αρχίζει από ένα αρχικό πρόγραμμα, Π0, και μετά ένας ή περισσότεροι στοιχειώδεις κανόνες μετασχηματισμών εφαρμόζονται. Έτσι, παίρνουμε μια ακολουθία Π0,..,Πν από προγράμματα. Εμείς θέλουμε το τελικό πρόγραμμα Πν να έχει την ίδια σημασιολογία με το αντίστοιχο αρχικό Π0. Αυτό επιτυγχάνεται εάν εφαρμόσομε κανόνες μετασχηματισμών οι οποίοι διατηρούν την σημασιολογία. Δηλαδή, για δύο προγράμματα Π και Ρ, σημασιολογία(Π) = σημασιολογία(Ρ) ισχύει εάν το Ρ μπορεί να παραχθεί από το Π με μια εφαρμογή ενός μόνο κανόνα μετασχηματισμών [Pettorossi-Proietti96], [Pettorossi-Proietti02]. Εμείς συνήθως θέλουμε το Πν να είναι περισσότερο αποτελεσματικό από το Π0. Θα μελετήσουμε μεταξύ άλλων και τους εξής κανόνες μετασχηματισμού λογικών προγραμμάτων. 1) Κανόνας νέου ορισμού. 2) Κανόνας ανάπτυξης (unfold). 3) Κανόνας πτύξης (fold). 4) Κανόνας αντικατάστασης στόχου. 5) Κανόνας διαγραφής πρότασης.

Η μη αποτελεσματικότητα των προγραμμάτων που κατασκευάζονται με την μέθοδο [Marakakis94, Marakakis97] μπορεί να οφείλεται στην πολύ δομημένη μορφή τους. Η αναποτελεσματικότητα αυτών των προγραμμάτων μπορεί να διορθωθεί εφαρμόζοντας κανόνες μετασχηματισμού λογικών προγραμμάτων όπως οι προαναφερθέντες. Ο στόχος αυτών των μετασχηματισμών είναι να αφαιρέσουν από τα προγράμματα το σχεδιαστικό επίπεδο με αποτέλεσμα το μέγεθος τους να ελαττωθεί αλλά και να τα κάνει περισσότερο αποτελεσματικά.

 

1.2. Επαληθευτής Λογικών Προγραμμάτων

Υπάρχουν δύο προσεγγίσεις στο πρόβλημα της ορθότητας ενός προγράμματος. Η μια προσέγγιση περιλαμβάνει εξέταση του προγράμματος μ’ ένα πεπερασμένο σύνολο ελέγχων. Οι έλεγχοι μπορούν να δείξουν ότι ένα πρόγραμμα δεν έχει λάθη για ένα δοσμένο πεπερασμένο σύνολο ελέγχων. Για προγράμματα με πολύπλοκη είσοδο/έξοδο είναι δύσκολο να δείξεις την ορθότητα του ή όχι. Εξέταση ενός προγράμματος δεν μπορεί να δείξει πλήρη απουσία λαθών. Η άλλη προσέγγιση είναι ν’ αποδείξεις ότι ένα πρόγραμμα είναι ορθό σε σχέση με τις προδιαγραφές του με τυπικούς συλλογισμούς.

Θεωρώντας ότι η προδιαγραφή ενός προγράμματος είναι δεδομένη υπάρχουν δύο κύριες προσεγγίσεις για απόδειξη της ορθότητας του. Στην πρώτη προσέγγιση, η ορθότητα εξασφαλίζεται κατά την κατασκευή του προγράμματος [Deville90, Flener00, Hogger81, Morgan90]. Σ’ αυτή την περίπτωση μια προδιαγραφή βελτιώνεται διαδοχικά σ’ ένα πρόγραμμα. Η διαδικασία κατασκευής συνίσταται είτε από μικρότερα προκαθορισμένα βήματα ανάπτυξης των οποίων η ορθότητα έχει αποδειχθεί ή από μετασχηματισμούς οι οποίοι διατηρούν την ισοδυναμία, δηλαδή μετασχηματίζουν μια προδιαγραφή ή πρόγραμμα σε άλλη ισοδύναμη μορφή. Στην δεύτερη προσέγγιση, ένα πρόγραμμα πρώτα κατασκευάζεται με κάποια μεθοδολογία και μετά αποδεικνύεται η ορθότητα του σε σχέση με την προδιαγραφή του [Bossi-Cocco89, Clark80].

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

Στην βιβλιογραφία υπάρχουν αρκετές προσεγγίσεις επαλήθευσης προγραμμάτων οι οποίες χρησιμοποιούν την ΛΠΤ σαν την γλώσσα προδιαγραφών [Clark80, Dayantis87, Deville90, Hansson-Tarnlund79, Tarnlund79]. Σ’ αυτές τις προσεγγίσεις μια προδιαγραφή αποτελείται από ένα σύνολο τύπων της ΛΠΤ. Κάθε τύπος εκφράζει την προδιαγραφή μιας σχέσης η οποία μπορεί να εκφράζεται συναρτήσει άλλων σχέσεων μέχρι του επιπέδου βασικών τμημάτων. Μια τυπική προδιαγραφή στην ΛΠΤ ονομάζεται λογική προδιαγραφή.

Οι τύποι (types) είναι ένα σημαντικό τμήμα των προδιαγραφών. Η φύση της γνώσης που εμπλέκεται στις προδιαγραφές περιέχει τύπους. Προδιαγραφές οι οποίες στηρίζονται στην λογική και δεν περιέχουν τύπους δεν είναι αρκετά εκφραστικές για προδιαγραφή μεγάλων συστημάτων λογισμικού. Δημοφιλείς γλώσσες προδιαγραφών οι οποίες στοχεύουν για προδιαγραφή σύνθετων συστημάτων λογισμικού χρησιμοποιούν λογική με τύπους [Jones90, Spivey92].

Μια λογική προδιαγραφή στη δική μας προσέγγιση ουσιαστικά ακολουθεί τις προσεγγίσεις οι οποίες βασίζονται στην ΛΠΤ αλλά επιπλέον χρησιμοποιεί ΛΠΤ με τύπους και ισότητα. Στοχεύουμε στην ανάπτυξη ενός ημιαυτόματου επαληθευτή για απόδειξη της ορθότητας λογικών προγραμμάτων τα οποία κατασκευάζονται από τη μεθοδολογία [Marakakis94, Marakakis97] σε σχέση με την προδιαγραφή τους η οποία εκφράζεται σε ΛΠΤ με τύπους. Ο επαληθευτής θα κατευθύνεται από τον προγραμματιστή. Δηλαδή, ο προγραμματιστής θα επιλέγει εξαγωγές συμπερασμάτων (inferences) και ο επαληθευτής θα τις εκτελεί. Βλέπουμε ένα τέτοιο επαληθευτή να γίνεται περισσότερο αυτόματος σταδιακά μετακινώντας αποφάσεις απόδειξης από τον προγραμματιστή στο σύστημα. Ο επαληθευτής θα μπορεί να αποδεικνύει λήμματα τα οποία στη συνέχεια θα μπορούν να χρησιμοποιούνται σε επόμενες αποδείξεις. Ο επαληθευτής εκτός από εξαγωγές συμπερασμάτων πρώτης τάξεως θα μπορεί να εκτελεί και επαγωγικές αποδείξεις.

 

Δραστηριότητα2: Πιστοποίηση συστημάτων και δικτύων επικοινωνίας σε chip

Γιά την ανεύρεση λαθών, σύνθετα συστήματα, όπως το σύστημα σε chip ή δίκτυο επικοινωνίας σε chip (system-on-chip, network on-chip), συνήθως διεξάγονται δυο τρόποι ελέγχου:

– Επαλήθευση (verification). Κατά την επαλήθευση το σύστημα ελέγχεται κατά πόσον αναπτύσσεται σωστά, σύμφωνα με τις προδιαγραφές. Η επαλήθευση γίνεται όταν υπάρχει ένα τμήμα τελειωμένο που εργάζεται κανονικά και συνήθως ο έλεγχος ακολουθεί το μοντέλο κύκλου λογισμικού (software cycle model).

– Πιστοποίηση (validation): Η διαδικασία της πιστοποίησης διαπιστώνει ότι το σύστημα που αναπτύσσεται είναι αυτό που ο πελάτης και ο τελικός χρήστης επιθυμούν. Η πιστοποίηση που γίνεται για κάθε περίπτωση χρήσης, συνήθως χρησιμοποιεί προσομοίωση (simulation) για να εξετάσει τις αλληλεπιδράσεις με το σύστημα. Έτσι αποστέλλει η λαμβάνει μηνύματα προς/από το σύστημα ή εναλλάσσει πληροφορίες με το σύστημα, με σκοπό να ελέγξει την αρχικοποίηση κάθε υποσυστήματος, να εξετάσει τη χρονική ροή των μηνυμάτων (events, messages) όπως και εναλλακτικές ροές γεγονότων, και να τσεκάρει την ισοδυναμία των αποτελεσμάτων κάθε προβλεπόμενης χρήσης

Υπάρχουν πολλά ανοικτά προβλήματα που σχετίζονται με τις δραστηριότητες επαλήθευσης υποσυστημάτων και πιστοποίησης συστημάτων σε chip ή δικτύων επικοινωνίας σε chip

• Τα υπάρχοντα μοντέλλα υποσυστημάτων (λογισμικό) συχνά αναπτύσσονται και ελέγχονται με διαφορετικά εργαλεία, που οδηγεί σε ένα ετερογενές περιβάλλον. Έτσι μόνο η συμβατότητα (interoperability) εργαλείων πολύπλοκων και διαφορετικών καθώς και γλωσσών μπορεί να δώσει δυνατότητες επαναχρησιμοποίησης (software reuse).

• Τα μοντέλα του συστήματος που μπορεί να συνυπάρχουν σε διαφορετικά επίπεδα αφαίρεσης (abstraction levels) απαιτούν ξεχωριστή επαλήθευση και πιστοποίηση.

• Η αποδοτική μοντελοποίηση συστήματος απαιτεί παράλληλη ή κατανεμημένη προσομοίωση.

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

Η πρώτη γενιά εργαλείων για αυτόματη επαλήθευση βασίστηκε σε μεθόδους μοντελοποίησης χρονικής λογικής (temporal logic). Το σύστημα (κύκλωμα ή διαδικασία) περιγράφεται ως μια μηχανή πεπερασμένων καταστάσεων (finite state machine), ενώ οι ιδιότητες του εκφράζονται σαν τύποι χρονικής λογικής με δυνατότητες έκφρασης αλληλοσυσχέτισης (mutual exclusion), ταυτόχρονης προσπέλασης, και δικαιοσύνης (fairness). Ένα παράδειγμα αποτελεί το σύστημα SMV που αναπτύχθηκε στο Carnegie Mellon University και χρησιμοποιεί λογική υπολογιστικού δένδρου (Computational Tree Logic, ή CTL) [Clarke-Grumberg94]. Η τεχνική αυτή έχει χρησιμοποιηθεί επιτυχώς, π.χ. για την επαλήθευση συστημάτων λεωφορείων όπως Futurebus και PCI local bus.

Μερικές ιδιότητες δεν εκφράζονται σε CTL, αλλά μπορούν να εκφραστούν σαν πεπερασμένα αυτόματα (και αντίστροφα) . Έτσι μια δεύτερη θεώρηση χρησιμοποιεί την μέθοδο υποσυνόλου γλωσσών (language containment) για να ελέγξει ότι οι ιδιότητες του συστήματος που εκφράζονται σαν πεπερασμένα αυτόματα περιέχουν τις απαραίτητες σχέσεις. Το σύστημα COSPAN, αναπτύχθηκε πειραματικά από τα Bell Labs, και χρησιμοποιείται τώρα από εργαλεία της Cadence [Krurshan94]. Πρέπει επίσης να τονίσουμε ότι το σύστημα HSIS που αναπτύχθηκε στο Παν. Berkeley χρησιμοποιεί ένα συνδυασμό των δύο τεχνικών [Brayton94, Brayton-Hachtel96].

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

Πιο συγκεκριμένα, τα τεχνικά θέματα που θα μελετηθούν περιλαμβάνουν τεχνικές ταυτόχρονης προσπέλασης (concurrency) και ανάκαμψης (recovery) για το σχεδιασμό προηγμένων παράλληλων και κατανεμημένων δομών δεδομένων και αλγορίθμων [Narayan-etal96]. Θα βασιστούμε στη θεωρία γράφων (graph theory), τη συνδυαστική (combinatorics), τις πιθανότητες (probabilistic algorithms), και τεχνικές τεχνητής νοημοσύνης, που να μπορούν να χρησιμοποιηθούν για την αναπαράσταση περιορισμών και την πιστοποίηση συστημάτων ή δικτύων επικοινωνίας σε chip. Ειδικότερα, θα χρησιμοποιήσουμε σαν βάση την αντικειμενοστραφή μοντελοποίηση συστημάτων με το νέο βιομηχανικό στάνταρντ SystemC2.0 [www-systemc]. Το κυρίως ανοικτού κώδικα λογισμικό που θα χρησιμοποιηθεί αρχικά αποτελείται από νέα εργαλεία επαλήθευσης και προσομοίωσης συστημάτων σε chip, π.χ. o Τestbuilder της Cadence, το στάνταρντ SCV (SystemC Verification Library) [www-systemc], καθώς και πρόσφατα άρθρα που αναφέρονται σε συγκεκριμένες η γενικότερες τεχνικές πιστοποίησης συστημάτων, όπως αναφέρουμε παρακάτω

. Το προγραμματιστικό περιβάλλον που θα υλοποιηθεί θα χρησιμοποιηθεί και σε αντίστοιχα μαθήματα επιλογής του TEI ώστε να γίνει αποτίμηση των συνδυαστικών/ ευρηματικών τεχνικών (combinatorics, heuristics) και να βελτιωθεί η αποδοτικότητα του συστήματος με νέους αποδοτικότερους αλγορίθμους. Επίσης ελπίζουμε σε συνεργασία με την βιομηχανία για την κατάλληλη αξιοποίηση του.

 

Δραστηριότητα 3: Πληροφοριακό Σύστημα Υποστήριξης για την Διάγνωση Παιδικής Επιληψίας

 

3.1 Επισκόπιση ερευνητικού αντικειμένου

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

Το πρώτο εμπεριστατωμένο βιβλίο το οποίο αναφερόταν στις τεχνικές ανάπτυξης συστημάτων που υποστηρίζουν την ιατρική διάγνωση, γράφτηκε από το Szolovits και εκδόθηκε το 1982 με τον τίτλο «Τεχνητή Νοημοσύνη στην Ιατρική» [Szolovits82]. Αυτή η έκδοση, έκανε μία εκτενή αναφορά στα πρώτα συστήματα υποστήριξης διάγνωσης, παρουσιάζοντας τις μεθοδολογίες που είχαν αναπτυχθεί μέχρι τότε και απετέλεσε την αφετηρία για την έρευνα στον συγκεκριμένο τομέα την δεκαετία που ακολούθησε.

Βέβαια κατά κάποιο τρόπο κάθε σύστημα πληροφορικής το οποίο έχει να κάνει με διαχείριση κάποιων ιατρικών δεδομένών ή με την αναπαραγωγή της ιατρικής γνώσης, μπορεί να θεωρηθεί ότι συμβάλει στην κλινική διάγνωση. Έτσι ο Shortliffe [Shortliffe87] αναφέρει ότι υπάρχουν τρεις βασικές μορφές συστημάτων πληροφορικής, τα οποία μπορούν να προσφέρουν βοήθεια στην διαδικασία της διάγνωσης:

1. Συστήματα πληροφορικής που κάνουν απλή διαχείριση δεδομένων.

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

3. Συμβουλευτικά συστήματα πληροφορικής τα οποία στηρίζονται σε πληροφορίες που αφορούν συγκεκριμένες περιπτώσεις ασθενών (patient-specific).

Το 1994 ο Miller [Miller94] παρουσιάζει μία εκτενή μελέτη για την πορεία των συστημάτων που υποστηρίζουν την ιατρική διάγνωση. Σε αυτή την έρευνα αναφέρονται όλες σχεδόν οι προσπάθειες των ερευνητών μέχρι τότε, καταδεικνύοντας το ενδιαφέρον που παρουσιάζει ο συγκεκριμένος τομέας. Στο τέλος του εν λόγω άρθρου ο συγγραφέας καταλήγει με την πρόβλεψη ότι το μέλλον των συστημάτων υποστήριξης ιατρικών αποφάσεων (MDDS) διαγράφεται μακρινό και ότι ο αριθμός των ερευνητών στο συγκεκριμένο πεδίο θα αυξάνεται συνεχώς. Διαβλέπει δε σημαντικό εμπορικό ενδιαφέρον από εταιρείες του χώρου για αυτού του είδους τα συστήματα και ότι καθώς θα προχωρά η τεχνολογία της Πληροφορικής θα γίνεται ολοένα πιο συμφέρουσα διαχείριση των κλινικών δεδομένων για μία αποτελεσματικότερη περίθαλψη υγείας.

Λίγο αργότερα, ο Υ Reedman σε σχετικό του άρθρο [Reisman96] διακρίνει συγκεκριμένες τεχνικές ανάπτυξης διαγνωστικών συστημάτων πληροφορικής και προσπαθεί να κάνει μία επισκόπηση και ταξινόμηση των διάφορων εργαλείων και μεθοδολογιών, που προσφέρονται από τον τομέα της Πληροφορικής με στόχο να βοηθήσουν την κλινική ιατρική διάγνωση. Έτσι αναλύει τις διάφορες τεχνικές και διακρίνει τις ακόλουθες κατηγορίες συστημάτων που στηρίζονται σε :

1. σε λογισμικό το οποίο κάνει ανάλυση βάσεων πληροφοριών.
2. σε κλινικούς αλγορίθμους.
3. σε διάφορα μαθηματικά μοντέλα.
4. στην στατιστική αναγνώριση προτύπων.
5. στον κανόνα του Βayes.
6. στην θεωρία λήψης αποφάσεων.
7. σε συμβολικές λογικές προσεγγίσεις.

Πρόσφατα (2001) ο Long σε σχετική του μελέτη αναφέρεται στην εξέλιξη των εφαρμογών της Τεχνητής Νοημοσύνης στην Ιατρική εξετάζοντας διάφορες μεθοδολογίες συλλογισμού που χρησιμοποιούνται από τους ερευνητές σήμερα, καταγράφοντας τις οργανωτικές δομές στις οποίες στηρίζονται [Long01]. Ο συγγραφέας υποστηρίζει ότι τα στοιχεία τα οποία μπορούν να επηρεάσουν έναν μηχανισμό συλλογισμού είναι οι σχέσεις μεταξύ συμπτωμάτων και ασθενειών, οι πιθανότητες που έχουν εκτιμηθεί, οι γνωστές αιτίες που προκαλούν μια ασθένεια, οι λειτουργικές (μετρήσεις, εξισώσεις κλπ) και προσωρινές (που έχουν σχέση με την χρόνο) συσχετίσεις που μπορούν να υπάρχουν, οι ομοιότητες που δυσκολεύουν την διάκριση, η περιοχή του σώματος του ασθενούς και η κλινική πρακτική. Δηλαδή δίνεται μεγαλύτερη έμφαση στην μορφή των δεδομένων που θα στηριχθεί η διάγνωση αλλά και στις ιδιαιτερότητες κάθε ασθένειας και όχι απαραίτητα μόνο στην μηχανιστική μεθοδολογία της πληροφορικής που θα χρησιμοποιηθεί. Ο Long ξεφεύγει από την «άχαρη» και μονομερή καταγραφή κάποιων συγκεκριμένων μεθοδολογιών για την αναπαράσταση και την εκμετάλλευση της ιατρικής γνώσης, δίνοντας τους μία διαφορετική διάσταση. Το ενδιαφέρον πλέον εστιάζεται στην ωφελιμότητα και στην χρήση αυτών των υποστηρικτικών για την ιατρική διάγνωση συστημάτων.

Πάντως, είναι γενική διαπίστωση ότι από τις αρχές τις δεκαετίας του 90, ερευνητές είχαν επισημάνει ότι το μέλλον του πεδίου των εφαρμογών της Τεχνητής Νοημοσύνης στην Ιατρική θα εξαρτηθεί από την ανάπτυξη και λειτουργία ολοκληρωμένων συστημάτων πληροφορικής στον τομέα της Υγείας [Shortliffe92]. Αυτές οι σύγχρονες υποδομές, θα επιτρέψουν την σύνδεση των χρηστών, την τυποποιημένη καταχώρηση στοιχείων, την απρόσκοπτη ανταλλαγή ψηφιακών δεδομένων, την συγχώνευση ή την παράλληλη λειτουργία και διαχείριση βάσεων γνώσεων / δεδομένων, την άμεση πρόσβαση σε πληροφόρηση και γενικότερα αναμένεται να βοηθήσουν σημαντικά στην κατάλληλη εκμετάλλευση των αποθηκευμένων πληροφοριών για την πληρέστερη ενημέρωση των χρηστών ενός συστήματος υγείας [Wolfram95, Gardner99, Slack99, Brost99].

 

3.2 Σκοπός

Η διάγνωση περιπτώσεων επιληψίας βασικά στηρίζεται στα χαρακτηριστικά του τύπου της επιληπτικής κρίσης, η οποία παρατηρείται στον ασθενή. Πολλοί άνθρωποι είναι δυνατόν κατά την διάρκεια της ζωής τους να παρουσιάσουν κάποια μεμονωμένη επιληπτική κρίση και σε αυτές τις περιπτώσεις δεν αξιολογείται το εύρημα. Όταν όμως παρατηρείται παρουσία περισσότερων της μίας επιληπτικών κρίσεων, τότε παρουσιάζει ενδιαφέρον η διάγνωση της επιληψίας. Επιπλέον ο ιατρός θα προβεί σε ορισμένες εξετάσεις, οι οποίες θα τον βοηθήσουν στην τελική του διάγνωση [Μπαλλής98, Cockerell96].
Στόχος του συγκεκριμένου διαγνωστικού συστήματος, είναι να βοηθήσει τον γιατρό να κατατάξει ένα περιστατικό επιληπτικής κρίσης σε συγκεκριμένη κατηγορία της διεθνούς ταξινόμησης [ILAE81,ILAE89] και κατά συνέπεια να συμβάλει σημαντικά στην διαγνωστική διαδικασία που συνήθως ακολουθούν οι ιατροί σε περιπτώσεις επιληψίας. Παράλληλα η δυνατότητα αναζήτησης παρόμοιων περιστατικών από την βάση δεδομένων (φάκελος ασθενούς) θα του δίνει την ευκαιρία να εξετάζει ανάλογες καταστάσεις, μελετώντας αντίστοιχες διαγνωστικές διαδικασίες, και θεραπευτικές μεθοδολογίες που εφαρμόστηκαν. Το σύστημα θα εστιάσει σε περιπτώσεις επιληψιών που παρουσιάζονται κατά την διάρκεια της παιδικής ηλικίας, όπου και υπάρχουν τα περισσότερα προβλήματα διάγνωσης και διαφορικής διάγνωσης, καθώς ο πολυμορφισμός της ασθένειας που παρατηρείται σε αυτές τις ηλικίες καθιστούν το έργο της διάγνωσης εξαιρετικά πολύπλοκο.

 

3.3. Μεθοδολογία οργάνωσης & σχεδιασμού
Θα μπορούσαμε να χαρακτηρίσουμε σαν ιατρική γνώση τον μηχανισμό της συνεπαγωγής του ιατρού και τα δεδομένα που χρησιμοποιεί αυτός για να φτάσει σε συμπεράσματα. Αυτή η γνώση, η οποία απαιτείται για την υλοποίηση ενός διαγνωστικού συστήματος, πρέπει να εισαχθεί και να αναπαρασταθεί στον υπολογιστή με διάφορους τρόπους και στην συνέχεια να αξιοποιηθεί κατάλληλα από το λογισμικό. Γενικότερα, για την ανάπτυξη συστημάτων υποστήριξης διάγνωσης, θα πρέπει να ληφθεί ιδιαίτερη μέριμνα για την αποτύπωση στο υπολογιστικό σύστημα του τρόπου σκέψης του ειδήμονα, όταν αυτός πρόκειται να λάβει κάποια απόφαση στηριζόμενος σε ορισμένα διαθέσιμα δεδομένα.
Η κατασκευή ενός συστήματος υποστήριξης αποφάσεων ιατρικής, μοιραία ακολουθεί την κλασική μεθοδολογία ανάπτυξης έργων Πληροφορικής και συγκεκριμένα θα πρέπει να εναρμονίζεται με τον κύκλο ζωής λογισμικού, που προτείνεται από τον τομέα της «Μηχανικής/Τεχνολογίας Λογισμικού» της Πληροφορικής [Somerville95]. Πολλοί ερευνητές, ιδιαίτερα μετά την δεκαετία του 80, προτείνουν μεθοδολογίες ανάπτυξης συστημάτων στήριξης ιατρικής διάγνωσης στα πλαίσια της Μηχανικής Λογισμικού [Breuker87, Szolovits91, Fox93, Healthfield93, Musen97].
Συνοπτικά, η ανάπτυξη του συστήματος υποστήριξης διάγνωσης για την παιδική επιληψία, διαμορφώνεται στα εξής 4 βασικά στάδια υλοποίησης:
1: Ανάλυση Συστήματος.
.2: Σχεδιασμός Συστήματος.
3: Υλοποίηση Συστήματος.
4: Ελεγχος Συστήματος.

 

3.4. Καινοτομία / χρησιμότητα

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

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

Το προτεινόμενο σύστημα με την εφαρμογή τεχνολογιών Τεχνητής Νοημοσύνης και Βάσεων Δεδομένων θα αναπτυχθεί στα προαναφερθέντα πλαίσια και αναμένεται να αποτελέσει σημαντικό βοήθημα στην διάγνωση της παιδικής επιληψίας ιδιαίτερα για τους νέους και τους ειδικευόμενους παιδονευρολόγους. Παράλληλα θα θέσει τις βάσεις για την δημιουργία αντίστοιχης ερευνητικής υποδομής στο ΤΕΙ Κρήτης, η οποία στο μέλλον θα βελτιώσει το υπό ανάπτυξη σύστημα με χρήση και άλλων τεχνολογιών της Πληροφορικής και της Τηλεπληροφορικής και πιθανότατα θα αναπτύξει αντίστοιχα νέα συστήματα σε άλλους τομείς της Ιατρικής, όπου υπάρχει ανάγκη τέτοιων εργαλείων και εκτεταμένο πεδίο έρευνας.