Τίτλος Υποέργου: Εφαρµογές Τεχνητής Νοηµοσύνης στην Τεχνολογία Λογισµικού και στην Ιατρική



Σχετικά έγγραφα
"The Project ARXIMIDIS ΙΙ is co-funded by the European Social Fund and National Resources EPEAEK ΙΙ "

Κλάσεις και Αντικείµενα

Τίτλος Υποέργου: Εφαρµογές Τεχνητής Νοηµοσύνης στην Τεχνολογία Λογισµικού και στην Ιατρική

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Γ ΚΠΣ ΕΠΕΑΕΚ ΙΙ ΜΕΤΡΟ 2.2, ΚΑΤΗΓΟΡΙΑ ΠΡΑΞΗΣ ια. ΕΡΓΟ: «ΠΕΡΙΒΑΛΛΟΝ - ΑΡΧΙΜΗΔΗΣ-Ενίσχυση ερευνητικών ομάδων του ΤΕΙ ΚΡΗΤΗΣ»

Λύσεις 1 ης Σειράς Ασκήσεων (Αξιολόγηση της Αποτελεσµατικότητας της Ανάκτησης)

ΕΙΣΑΓΩΓΗ σ. 2 Α. ΕΡΕΥΝΑ ΚΑΙ ΕΠΕΞΕΡΓΑΣΙΑ Ε ΟΜΕΝΩΝ 2

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

LIFE ENVIRONMENT STRYMON

Κεφάλαιο , 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Επεξεργασία Αρχείων Κειµένου

Λογισµικό (Software SW) Γλώσσες

Μάιος 02. Αναγνωστόπουλος - Παν. Αθηνών 1

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

Προγραμματισμός Η/Υ (ΤΛ2007 )

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ÏÅÖÅ

Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους

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

Α. Ερωτήσεις Ανάπτυξης

StatXact ΒΙΟΣΤΑΤΙΣΤΙΚΗ ΙΙ. StatXact. ΜΑΘΗΜΑ 5 ΕΡΓΑΣΤΗΡΙΟ 1 - συνέχεια ΜΕΤΡΑ ΚΙΝ ΥΝΟΥ & ΣΥΜΠΕΡΑΣΜΑΤΟΛΟΓΙΑ ΜΕ ΤΗΝ ΧΡΗΣΗ StatXact

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

Κεφάλαιο 7. Έλεγχος Υποθέσεων. Ένα παράδειγµα

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

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α.

Μη Παραµετρικά Κριτήρια. Παραµετρικά Κριτήρια

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

Δομημένος Προγραμματισμός (ΤΛ1006)

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Διαδικασίες και συναρτήσεις. 22 Νοε 2008 Ανάπτυξη εφαρμογών/ Υποπρογράμματα 1

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

ΤΕΙ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ

Βασικές Έννοιες Δοµών Δεδοµένων

Ανάπτυξη και Σχεδίαση Λογισμικού

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

Περιεχόμενα Πρόλογος 1. Εισαγωγή 2. Τα Βασικά Μέρη ενός Προγράμματος Prolog

δήλωσης δεδοµένων και σε παραβίαση των συντακτικών κανόνων της γλωσσάς.

Προπαρασκευή για Α.Ε.Ι. & Τ.Ε.Ι. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ

Προγραµµατιστικές Τεχνικές

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΜΑΘΗΜΑ 2 ΑΝΑΠΑΡΑΣΤΑΣΗ - ΤΕΧΝΙΚΕΣ ΤΝ (1)

Υποπρογράμματα (Subroutines)

Κασταλία Σύστηµα στοχαστικής προσοµοίωσης υδρολογικών µεταβλητών

HY118- ιακριτά Μαθηµατικά

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή

ΚΕΦΑΛΑΙΟ Μηχανική Μάθηση

Παραδοτέο: Π3.2 - Ερευνητική Μελέτη Σχεδιασµού του Συστήµατος

Επιτεύγµατα των Λ.Σ.

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK

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

Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους

Κεφάλαιο 15. Παραγοντική ανάλυση διακύµανσης. Παραγοντική

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει.

ΑΡΧΙΜΗΔΗΣ ΙΙΙ Ενίσχυση Ερευνητικών Ομάδων στο ΤΕΙ Δυτικής Μακεδονίας» - MIS

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

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

Ε ανάληψη. Α ληροφόρητη αναζήτηση

A) Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1-10 και δίπλα τη λέξη Σωστό, αν είναι σωστή, ή τη λέξη Λάθος, αν είναι

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ÏÅÖÅ

Γ ΚΠΣ ΕΠΕΑΕΚ ΙΙ ΜΕΤΡΟ 2.2, ΚΑΤΗΓΟΡΙΑ ΠΡΑΞΗΣ ια. ΕΡΓΟ: «ΠΕΡΙΒΑΛΛΟΝ - ΑΡΧΙΜΗΔΗΣ-Ενίσχυση ερευνητικών ομάδων του ΤΕΙ ΚΡΗΤΗΣ»

Εισαγωγή στην Πληροφορική

Sheet2. Σωστή, και µπράβο που µεριµνήσατε για λίστες διαφορετικών µεγεθών.

1. ΕΠΙΤΡΟΠΗ ΧΟΡΗΓΗΣΗΣ ΥΠΟΤΡΟΦΙΩΝ

VHDL Εισαγωγικές έννοιες

Ενότητα 13. Εισαγωγή στην Πληροφορική. Κεφάλαιο 13Α. Αρχεία. Χειµερινό Εξάµηνο ρ. Παναγιώτης Χατζηδούκας (Π..407/80) προγραµµατισµός

Μονιµοποίηση κ. Nόβα ηµήτριου, Καθηγητή Εφαρµογών του Τµήµατος, µε ειδικότητα στα Μαθηµατικά και εξειδίκευση στα Πληροφοριακά Συστήµατα Μάρκετινγ».

«ΧΡΗΣΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ (ΤΠΕ) ΓΙΑ ΣΥΓΚΡΙΤΙΚΗ ΑΞΙΟΛΟΓΗΣΗ ΚΑΤΑΝΑΛΩΤΙΚΩΝ ΑΓΑΘΩΝ»

Εισαγωγή στον Προγραμματισμό με C++

Σκοπός. Προγραμματίζοντας τον Arduino ΙΙ Εντολή Εκχώρησης & Εντολές. Συλλογή & Επεξεργασία Δεδομένων. Πρόγραμμα. Εντολές Επεξεργασίας Δεδομένων

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΟΙΚΗΣΗΣ MANAGEMENT INFORMATION SYSTEMS (M.I.S.)

Προγραµµατισµός. Αναδροµή (1/2)

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

Πανεπιστήµιο Κρήτης - Τµήµα Επιστήµης Υπολογιστών. ΗΥ-217: Πιθανότητες-Χειµερινό Εξάµηνο ιδάσκων : Π. Τσακαλίδης

Περιγραφική Ανάλυση ποσοτικών μεταβλητών

Λειτουργικά Συστήµατα

ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων. Βιβλιογραφία Ενότητας

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

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

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

Οδηγίες και αρχές Διπλωµατικών Εργασιών (Διατριβών) του Μεταπτυχιακού Προγράµµατος Σπουδών στη Βιοστατιστική

Τεχνολογία Λογισµικού Ι Κεφάλαιο 6

ιαφάνειες παρουσίασης #4

ΠΑΡΑ ΕΙΓΜΑΤΑ ΣΤΗ ΓΛΩΣΣΑ PROLOG ΠΑΡΑ ΕΙΓΜΑ 1

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal

Υποέργο: 2 Τίτλος: «Δημιουργία και Αξιολόγηση Εικονικού Χώρου Εργαστηριών Ηλεκτρονικής» Επιστημονικός Υπεύθυνος: ΠΑΝΕΤΣΟΣ ΣΠΥΡΟΣ

ΠΕ3 : ΕΚΤΙΜΗΣΗ ΜΕΤΕΩΡΟΛΟΓΙΚΩΝ ΚΑΙ ΘΑΛΑΣΣΙΩΝ ΑΚΡΑΙΩΝ ΤΙΜΩΝ ΣΥΝΕΚΤΙΜΩΝΤΑΣ ΤΗΝ ΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ.

Μεθόδων Επίλυσης Προβλημάτων

ΘΕΤΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ


Παρουσίαση της απαλλακτικής εργασίας στο μάθημα Νέες Τεχνολογίες στην Επιστημονική Έρευνα: Διαδίκτυο και Εκπαίδευση (Εαρινό 2015)

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 3-4: Προγραμματισμός MIPS. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Προγραμματισμός Η/Υ (ΤΛ2007 )

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

ΒΙΟΜΗΧΑΝΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ

Διάλεξη 15η: Αναδρομή, μέρος 1ο

ÔÏÕËÁ ÓÁÑÑÇ ÊÏÌÏÔÇÍÇ

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων

Transcript:

Αρχιµήδης ΙΙ Ενίσχυση Ερευνητικών Οµάδων του ΤΕΙ Κρήτης Τίτλος Υποέργου: Εφαρµογές Τεχνητής Νοηµοσύνης στην Τεχνολογία Λογισµικού και στην Ιατρική Επιστηµονικός Υπεύθυνος: ρ Εµµανουήλ Μαρακάκης ραστηριότητα 1: Εργαλεία Μετασχηµατισµού και Επαλήθευσης Προγραµµάτων Πακέτο Εργασίας 1.3 (ΠΕ 1.3): Αξιολόγηση του Συστήµατος Μετασχηµατισµών. Χρονική ιάρκεια : 1/12/05 µέχρι 28/2/06 Παραδοτέο: Π1.3 - Ερευνητική Μελέτη Αξιολόγησης του Συστήµατος Μετασχηµατισµού Λογικών Προγραµµάτων. Μέλη της ερευνητικής Οµάδας Ονοµατεπώνυµο Α. ρ Εµµανουήλ Μαρακάκης Υπογραφή Β. Χαρά Κουνάλη. Γ. Μαριάννα Σγουράκη Επιστηµονικός Υπεύθυνος Υποέργου "The Project ARXIMIDIS ΙΙ is co-funded by the European Social Fund and National Resources EPEAEK ΙΙ " 1

Περιεχόµενα Κατάλογος Προγραµµάτων... 2 Κατάλογος Πινάκων... 2 1. Εισαγωγή... 3 2. Αξιολόγηση του υποσυστήµατος «µετασχηµατισµού προγραµµάτων»... 4 3. Συµπεράσµατα και µελλοντικές βελτιώσεις και επεκτάσεις... 8 4. Βιβλιογραφία... 9 Κατάλογος Προγραµµάτων ΠΡΟΓΡΑΜΜΑ 2.1: ΚΑΤΗΓΟΡΗΜΑ PRINT_STATISTICS/7. 5 ΠΡΟΓΡΑΜΜΑ 2.2: ΚΑΤΗΓΟΡΗΜΑ TEST/2. 5 Κατάλογος Πινάκων ΠΙΝΑΚΑΣ 2.1 : ΣΥΓΚΡΙΣΗ ΑΡΧΙΚΟΥ ΚΑΙ ΜΕΤΑΣΧΗΜΑΤΙΣΜΕΝΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ 7 2

1. Εισαγωγή Αυτή η τεχνική αναφορά περιγράφει την αξιολόγηση του συστήµατος µετασχηµατισµού Λογικών Προγραµµάτων Φειδίας. Η αξιολόγηση στηρίζεται στη σύγκριση των αρχικών µε τα αντίστοιχα µετασχηµατισµένα προγράµµατα. Για το σκοπό αυτό έχει κατασκευαστεί το υποσύστηµα «Evaluate Programs» στο σύστηµα Φειδίας το οποίο αυτόµατα συγκρίνει το αρχικό µε το µετασχηµατισµένο πρόγραµµα. Τα κριτήρια και οι παράµετροι που χρησιµοποιούνται για την σύγκριση των αντίστοιχων προγραµµάτων παρουσιάζοναι στο δεύτερο κεφάλαιο αυτής της τεχνικής αναφοράς. Στο τρίτο κεφάλαιο γίνεται συζήτηση των αποτελεσµάτων της σύγκρισης και προτείνονται µελλοντικές βελτιώσεις του συστήµατος Φειδίας. 3

2. Αξιολόγηση του υποσυστήµατος «µετασχηµατισµού προγραµµάτων» Για την αξιολόγηση του υποσυστήµατος «µετασχηµατισµού προγραµµάτων» πρέπει να συγκρίνουµε τα αρχικά προγράµµατα µε τα µετασχηµατισµένα. Το υποσύστηµα «αξιολόγησης αρχικού µετασχηµατισµένου προγράµµατος» εκτελεί την σύγκριση του αρχικού και του αντίστοιχου µετασχηµατισµένου τρέχοντας και τα δυο µε τον ίδιο στόχο. Η σύγκριση του αρχικού µε το µετασχηµατισµένο πρόγραµµα γίνεται στα στοιχεία που αφορούν το µέγεθος του προγράµµατος και στην αποτελεσµατικότητα [Clocksin, 1997], [SICStus Prolog User s Manual, 2003], [Sterling and Shapiro, 1997]. Μέγεθος προγράµµατος. Το µέγεθος προγράµµατος εκφράζεται από το πλήθος των προτάσεων του προγράµµατος. Τα µετασχηµατισµένα προγράµµατα έχουν ίδιο ή µικρότερο πλήθος προτάσεων. Αποτελεσµατικότητα. Για την αποτελεσµατικότητα θα συγκριθεί ο χρόνος εκτέλεσης ίδιων στόχων και οι απαιτήσεις σε µνήµη. Χρόνος εκτέλεσης στόχων: Επειδή οι διαφορές των χρόνων εκτέλεσης είναι µικρές για να τις αποτυπώσουµε θα χρησιµοποιήσουµε 1000 εκτελέσεις του ίδιου στόχου από τα δύο προγράµµατα. Απαιτήσεις σε Μνήµη: Οι απαιτήσεις σε µνήµη κατά την εκτέλεση ενός προγράµµατος Prolog εκφράζεται από την µνήµη που χρησιµοποιείται για τις εξής δοµές της Prolog. 1) Global stack : Η σφαιρική στοιβάδα (global stack) είναι µια στοιβάδα στην οποία αποθηκεύονται οι σύνθετοι όροι του προγράµµατος. 2) Local stack : Η τοπική στοιβάδα (local stack) είναι µια στοιβάδα η οποία περιέχει το περιβάλλον (τοπικές µεταβλητές) από τις κλήσεις των αναδροµικών κατηγορηµάτων (υποπρογραµµάτων). 3) Trail : Η trail είναι µια περιοχή δεδοµένων στην οποία καταγράφονται εκείνες οι µεταβλητές οι οποίες πρέπει να γίνουν µη δεσµευµένες (unbound) όταν γίνεται οπισθοδρόµηση (backtracking) κατά την εκτέλεση του προγράµµατος. 4) Choice stack : Η στοιβάδα επιλογών (choice stack) είναι µια στοιβάδα στην οποία αποθηκεύεται η τρέχουσα κατάσταση υπολογισµών όταν η κλήση κάποιας διαδικασίας έχει εναλλακτικές προτάσεις ικανοποίησης της. ηλαδή όταν η διαδικασία που καλείται έχει περισσότερες από µια προτάσεις (clauses). Η κατάσταση υπολογισµών αποθηκεύεται για να χρησιµοποιηθεί στην οπισθοδρόµηση (backtracking). ηλαδή στην ικανοποίηση του στόχου µε κάποια άλλη πρόταση του κληθέντος κατηγορήµατος. Για την εύρεση αυτών των τιµών χρησιµοποιούµε το κατηγόρηµα της Sicstus Prolog statistics/2 [SICStus Prolog User s Manual, 2003]. Το κατηγόρηµα αυτό µας επιτρέπει να συλλέξουµε διάφορα στατιστικά στοιχεία κατά την εκτέλεση ενός προγράµµατος. Το κατηγόρηµα print_statistics/0, Πρόγραµµα 2.1, επιστρέφει τα στατιστικά στοιχεία που µας ενδιαφέρουν για την αξιολόγηση των προγραµµάτων. 4

print_statistics(v0,v1,v2,v3,v4,v5,v6) :- statistics(memory,v0), statistics(global_stack,v1), statistics(local_stack,v2), statistics(trail,v3), statistics(choice,v4), statistics(runtime,v5), statistics(garbage_collection,v6). Πρόγραµµα 2.1: Κατηγόρηµα print_statistics/7. Για να βρούµε τον χρόνο τρεξίµατος για κάθε πρόγραµµα χρησιµοποιούµε το κατηγόρηµα test/2, Πρόγραµµα 2.2, όπου test(g, N) όπου G είναι ο στόχος που τρέχουµε για N επαναλήψεις. Το κατηγόρηµα αυτό µας επιστρέφει τον χρόνο τρεξίµατος για τον κάθε στόχο. Για να συγκρίνουµε το αρχικό µε το µετασχηµατισµένο πρόγραµµα, τρέχουµε τον ίδιο στόχο και για τα δύο για 1000 επαναλήψεις (N = 1000). test(g,n) :- time(run(g,0,n),tp), time(run(true,0,n),td), Rtp is Tp - Td, write(time(rtp)). time(g,t) :- statistics(runtime,_), G, statistics(runtime,[_,t1]), T is T1/1000. Πρόγραµµα 2.2: Κατηγόρηµα test/2. Παράδειγµα Σύγκριση προγραµµάτων sum.pl και sum_transformed.pl Για να συγκρίνουµε τα δυο προγράµµατα τρέχουµε το στόχο sum([10,-5,99,0,-30],m). H Prolog για να µας επιστρέψει τιµές για τα global stack, local stack, trail και choice stack εκτελεί τον στόχο?- sum([10,-5,99,0,-30],m), print_statistics. Ενώ για να µας δώσει το χρόνο τρεξίµατος εκτελεί τον στόχο?- test(sum([10,-5,99,0,-30],m), 1000). 5

Τα αποτελέσµατα της σύγκρισης για ένα σύνολο προγραµµάτων που χρησιµοποιήσαµε στο σύστηµα Φειδίας φαίνονται στο πίνακα 7.1. Από τον πίνακα 7.1 παρατηρούµε τα εξής : 1. Πλήθος προτάσεων : Τα µετασχηµατισµένα προγράµµατα έχουν ίδιο ή µικρότερο αριθµό προτάσεων από τα αρχικά. 2. Χρόνος τρεξίµατος : Ο χρόνος τρεξίµατος των µετασχηµατισµένων προγραµµάτων είναι µικρότερος από τα αντίστοιχα αρχικά σ όλες τις περιπτώσεις. 3. Απαιτήσεις σε µνήµη : a) Τα µετασχηµατισµένα προγράµµατα απαιτούν λιγότερη µνήµη για την global stack από τα αντίστοιχα αρχικά. b) Τα µετασχηµατισµένα απαιτούν λιγότερη ή ίση local stack από τα αρχικά. c) Οι απαιτήσεις µνήµης για την choice stack και την περιοχή trail είναι περίπου ίδιες για το µετασχηµατισµένα και τα αρχικά προγράµµατα. Οι διαφορές είναι ανεπαίσθητες. 6

Αριθµός προτάσεων Χρόνος τρεξίµατος(1000 runs) Global stack Local stack Trail size Choice stack Program name sum 8 8 0.08 0.03 18300,8760 18172,8888 188,1654 188,1654 572,2153 572,2153 156,2153 156,2153 fac 6 6 0.07 0.04 17160,9900 17072,9988 188,1654 188,1654 556,2154 556,2154 156,2153 156,2153 max_seq 19 19 0.141 0.06 20108,6952 19764,7296 188,1654 188,1654 576,2150 576,2150 204,2150 204,2150 incrord 18 16 0.16 0.08 18796,8264 18204,8856 164,1656 68,1666 544,2154 544,2154 156,2154 156,2154 inssort 21 21 0.3 0.11 25964,1782 24464,1932 380,1634 380,1634 596,2135 596,2135 492,2135 492,2135 Πίνακας 2.1: Σύγκριση αρχικού και µετασχηµατισµένου προγράµµατος 7

3. Συµπεράσµατα και µελλοντικές βελτιώσεις και επεκτάσεις Η µέθοδος µετασχηµατισµού των λογικων προγραµµάτων του συστήµατος Φειδίας έχει αρκετά προτερήµατα τα οποία την κάνουν µια πολύ καλή και ιδιαίτερα εύχρηστη µέθοδο. Αυτά έχουν συζητηθεί στις τεχνικές αναφορές [Μαρακάκης, Κουνάλη και Σγουράκη, 2005α] και [Μαρακάκης, Κουνάληκαι Σγουράκη, 2005β]. Εδώ θα συζητήσουµε τα αποτελέσµατα από την σύγκριση των αντίστοιχων προγραµµάτων. Τα παραγόµενα προγράµµατα είναι πιο αποτελεσµατικά από τ αντίστοιχα αρχικά και σε µερικές περιπώσεις έχουν λιγότερες προτάσεις. Όµως οι βελτιώσεις δεν είναι τόσο µεγάλες ώστε να είναι αισθητές όταν τρέχουµε το αρχικό και το µετασχηµατισµένο πρόγραµµα. Θα πρέπει να γίνει άλλο ένα επίπεδο βελτιώσεων των µετασχηµατισµένων προγραµµάτων. Το σύστηµα Φειδίας θα πρέπει να επεκταθεί µε ένα εργαλείο µερικών υπολογισµών (partial evaluation) το οποίο θα γκρεµίσει όλη την δοµή του προγράµµατος. Παράλληλα οι δοµές δεδοµένων που είναι "εγκλωβισµένες" στους τελεστές των τύπων δεδοµένων (data types operations) θα µετακινηθούν προς την κορυφή του προγράµµατος. Με αυτό τον τρόπο τα προγράµµατα θα γίνουν ακόµα µικρότερα σε µέγεθος και ακόµα περισσότερο αποτελεσµατικά. Τέλος, αυτή η µεθοδολογία χρειάζεται να βελτιωθεί ώστε οι αλλαγές που γίνονται κατά τους µετασχηµατισµούς να απεικονίζονται και στους τύπους δεδοµένων των ορισµάτων (data types) των κατηγορηµάτων καθώς και στο mode κάθε ορίσµατος.

4. Βιβλιογραφία Ελληνόγλωσση βιβλιογραφία. [Μαρακάκης, Κουνάλη και Σγουράκη, 2005α] Μανόλης Μαρακάκης, Χαρά Κουνάλη, Μαριάννα Σγουράκη, Αυτόµατος Μετασχηµατισµός οµηµένων Λογικών Προγραµµάτων, Πρόγραµµα: Αρχιµήδης ΙΙ Ενίσχυση Ερευνητικών Οµάδων στο ΤΕΙ Κρητης Υποέργο: Εφαρµογές Τεχνητής Νοηµοσύνης στην Τεχνολογία Λογισµικού και στην Ιατρική, ραστηριότητα 1: Εργαλεία Μετασχηµατισµού και Επαλήθευσης Προγραµµάτων, Πακέτο εργασίας ΠΕ1.1, Παραδοτέο Π1.1. [Μαρακάκης, Κουνάλη και Σγουράκη, 2005β] Μανόλης Μαρακάκης, Χαρά Κουνάλη, Μαριάννα Σγουράκη, Φειδίας: Ένα Αυτόµατο Σύστηµα Μετασχηµατισµού Λογικών Προγραµµάτων, Πρόγραµµα: Αρχιµήδης ΙΙ Ενίσχυση Ερευνητικών Οµάδων στο ΤΕΙ Κρητης Υποέργο: Εφαρµογές Τεχνητής Νοηµοσύνης στην Τεχνολογία Λογισµικού και στην Ιατρική, ραστηριότητα 1: Εργαλεία Μετασχηµατισµού και Επαλήθευσης Προγραµµάτων, Πακέτο εργασίας ΠΕ1.2, Παραδοτέο Π1.2. Ξενόγλωσση βιβλιογραφία. [Clocksin, 1997] W. F. Clocksin, Clause and effect: Prolog ming for the working mer, Springer, 1997. [SICStus Prolog User s Manual, 2003] SICStus Prolog User s Manual, Intelligent Systems Laboratory, Swedish Institute of Computer Science, October 2003. [Sterling and Shapiro, 1997] L. Sterling, E. Shapiro, The Art of Prolog, Second Edition, The MIT Press, 1997. 9