Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεMarigold Manago Τροποποιήθηκε πριν 10 χρόνια
1
Flex Κέλυφος Εμπείρων Συστημάτων Expert System Shell Νίκος Βασιλειάδης, Άνοιξη 2003
2
Τι είναι το Flex; Το Flex είναι ένα ισχυρό εργαλείο ανάπτυξης εμπείρων συστημάτων. Κέλυφος εμπείρων συστημάτων (expert system shell) Στηρίζεται πάνω στη γλώσσα LPA WinProlog Aποτελείται από: Πρόσθετα κατηγορήματα στην Prolog. Τη γλώσσα αναπαράστασης γνώσης KSL (Knowledge Specification Language) Ένα μετα-διερμηνέα που μεταφράζει την KSL Prolog.
3
Βασικά Χαρακτηριστικά Flex Ορθή ακολουθία εκτέλεσης Ανάστροφη ακολουθία εκτέλεσης Πλαίσια και κληρονομικότητα Ερωτήσεις και απαντήσεις Επεξηγήσεις Προγραμματισμός οδηγούμενος από τα δεδομένα
4
Ορθή ακολουθία εκτέλεσης Forward chaining Οι κανόνες παραγωγής ακολουθούν την κλασσική μορφή "εάν-τότε" (IF-THEN). Πολλαπλά συμπεράσματα ή ενέργειες στο THEN μέρος. Δυνατότητα επεξήγησης. Υποστηρίζονται πολλοί αλγόριθμοι επίλυσης συγκρούσεων (conflict resolution) κανόνων. Υπάρχει δυνατότητα ορισμού νέων αλγορίθμων. Μηχανισμός δυναμικής βαθμολόγησης των κανόνων (scoring mechanism) για την επίλυση συγκρούσεων κατά την πυροδότησή τους.
5
Ανάστροφη ακολουθία εκτέλεσης Backward chaining Κανόνες ανάλογοι των κανόνων της Prolog. Ονομάζονται συσχετίσεις (relations) Έχουν ένα μόνο συμπέρασμα το οποίο αληθεύει αν όλες οι συνθήκες είναι δυνατό να αποδειχθούν.
6
Πλαίσια και κληρονομικότητα Frames, Inheritance Το Flex υποστηρίζει ιεραρχίες πλαισίων επιτρέποντας στις ιδιότητες τους να κληρονομούνται. Κάθε πλαίσιο ή στιγμιότυπο (instance) έχει ένα σύνολο από ιδιότητες (slots) που περιγράφουν τα χαρακτηριστικά των πλαισίων. Τα πλαίσια κληρονομούν τις τιμές των ιδιοτήτων άλλων πλαισίων σύμφωνα με τη θέση τους στην ιεραρχία. Αποφεύγεται η επανάληψη πληροφοριών και απλοποιείται σημαντικά ο κώδικας. Η κληρονομικότητα γίνεται αυτόματα και είναι δυνατό να ελεγχθεί με διάφορες οδηγίες (directives).
7
Ερωτήσεις και απαντήσεις Ενσωματωμένο υποσύστημα ερωταπαντήσεων. Τα προγράμματα που αναπτύσσονται με το Flex μπορούν να ζητήσουν από το χρήστη να εισάγει δεδομένα μέσω παραθύρων διαλόγου.
8
Επεξηγήσεις Ενσωματωμένο σύστημα επεξήγησης το οποίο υποστηρίζει τις επεξηγήσεις πώς (how) και γιατί (why). How: πώς έφτασες σε αυτό το συμπέρασμα; Why: Γιατί μου κάνεις αυτή την ερώτηση; Οι επεξηγήσεις μπορούν να ενσωματωθούν στους κανόνες και στις ερωτήσεις.
9
Προγραμματισμός οδηγούμενος από τα δεδομένα Eιδικές διαδικασίες οι οποίες μπορούν να προσαρτηθούν σε πλαίσια. Παραμένουν αδρανείς έως ότου ενεργοποιηθούν από την προσπέλαση ή την τροποποίηση των πλαισίων στα οποία έχουν προσαρτηθεί. Υπάρχουν 4 τύποι διαδικασιών: διαδικασίες αρχικοποίησης (launches) δαίμονες (demons) φύλακες (watchdogs) περιορισμοί (constraints)
10
Η Γλώσσα KSL Knowledge Specification Language Χρησιμοποιείται για τον ορισμό κανόνων, πλαισίων, διαδικασιών κλπ. Υποστηρίζει μαθηματικές, λογικές και υποθετικές εκφράσεις Είναι επεκτάσιμη με τη χρήση των συνωνύμων και των προτύπων. Βασικά στοιχεία: όροι (terms) αντικείμενα (objects) αριθμητικές εκφράσεις (numerical expressions) λογικές και διαδικαστικές εκφράσεις (formulae) δομές ελέγχου (control structures) προτάσεις (sentences) προτάσεις (sentences)
11
Προτάσεις Καθορίζουν τι μπορεί να δηλωθεί σε ένα πρόγραμμα. Αρχίζουν με μια από τις ακόλουθες λέξεις-κλειδιά και τερματίζουν με ένα διάστημα ακολουθούμενο από μια τελεία. frame, instance rule, ruleset relation action, function launch, constraint, demon, watchdog question data, do group synonym, template
12
Πλαίσια και στιγμιότυπα Υπάρχουν 3 μέρη στον καθορισμό ενός πλαισίου. Το 1ο καθορίζει σε ποιο σημείο της ιεραρχίας βρίσκεται το πλαίσιο. Αυτό επιτυγχάνεται με τον καθορισμό των πλαισίων-γονέων (αν υπάρχουν). Το 2ο και καθορίζει ποιες είναι οι ιδιότητες του πλαισίου και οι προκαθορισμένες τιμές τους. Στο 3ο επαναπροσδιορίζεται η ιεραρχία της κληρονομικότητας. Ορισμένα πλαίσια μπορούν να γίνουν πλαίσια- γονείς για κάποιο άλλο πλαίσιο προκειμένου να κληρονομήσει ορισμένες ιδιότητές τους Συγκεκριμένες ιδιότητες μπορούν να δηλωθούν έτσι ώστε να μην κληρονομηθούν.
13
frame Name is a kind of Frame1, Frame2, … ; default Attribute1 is Value; inherit Attribute2 from Frame; do not inherit Attribute3 from Frame. Γενική σύνταξη πλαισίου 1 2 3
14
Παράδειγμα frame wedge is a kind of block, toy ; do not inherit shape and inherit volume from block and inherit density from pyramid, toy.
15
Στιγμιότυπα Διαφέρουν από τα πλαίσια: Μπορούν να έχουν μόνο ένα πλαίσιο- γονέα Δεν μπορούν να έχουν παιδιά Κληρονομούν όλες τις ιδιότητες του πλαισίου-γονέας Δεν υπάρχει δυνατότητα ορισμού νέων ιδιοτήτων Όλες οι τιμές των ιδιοτήτων τους θεωρούνται τρέχουσες (current values)
16
Δήλωση στιγμιότυπου Σύνταξη: instance Instance is a Frame ; Attribute is Value. Παράδειγμα: instance tweety is a kind of bird ; habitat is a cage and predator is sylvester; do not inherit motions.
17
Παράδειγμα ζωικού βασιλείου
18
Αρχικό πλαίσιο animal Ορισμός ιδιότητας blood frame animal ; default blood is warm.
19
Πλαίσια mammal, bird Κληρονόμηση ιδιότητας blood frame mammal is a kind of animal; default skin is fur and default habitat is the land and default motions are { walk and swim }. frame bird is a kind of animal; default skin is feather and default habitat is a tree and default motions are { fly }.
20
Πλαίσιο fish Αλλαγή τιμής για την ιδιότητα blood frame fish is a kind of animal; default skin is scale and default habitat is the water and default motions are { swim } and default blood is cold.
21
Πλαίσια carnivore, herbivore Δε συνδέονται στην υπάρχουσα ιεραρχία frame carnivore; default meal is meat. frame herbivore; default meal is plant.
22
Πλαίσιο penguin Αλλαγή τιμής για τις ιδιότητες habitat, motions Ορισμός ιδιότητας size frame penguin is a bird; default habitat is the land and default motions are { walk and swim } and default size is medium.
23
Πλαίσια 'sea water fish‘, 'fresh water fish' Αλλαγή τιμής (εξειδίκευση) για την ιδιότητα habitat frame 'sea water fish' is a fish; default habitat is the sea. frame 'fresh water fish' is a fish; default habitat is a river.
24
Πλαίσιο salmon Πολλαπλή κληρονομικότητα (2 πλαίσια-γονείς) frame salmon is a 'sea water fish', 'fresh water fish'.
25
Πλαίσιο feline Κληρονομεί την ιδιότητα meal από το πλαίσιο carnivore Ορίζει 3 νέες ιδιότητες tail, speed, legs frame feline is a mammal; default tail is { long and furry } and default speed is 'very fast' and default legs are 4 ; inherit meal from carnivore.
26
Πλαίσια tiger, cat Η ιδιότητα size έχει οριστεί ξανά στο πλαίσιο penguin frame tiger is a feline; default size is large and default state is predator and default habitat is the jungle and default meal is human. frame cat is a feline; default size is medium.
27
Πλαίσια manx, moggy Η κολοβή γάτα δεν κληρονομεί την ιδιότητα tail! frame manx is a cat; do not inherit tail. Η κουτσή γάτα έχει άλλη τιμή για την ιδιότητα legs! frame moggy is a cat; default legs are 3.5.
28
Πλαίσιο rodent Ορίζει 2 νέες ιδιότητες tail (ξανά), status Κληρονομεί την ιδιότητα meal από το herbivore frame rodent is a mammal; default tail is { short and thin } and default status is pest and default habitat is sewer; inherit meal from herbivore.
29
Πλαίσιο squirrel Ορίζει την ιδιότητα size (ξανά) Δίνει άλλη τιμή στην ιδιότητα tail Δεν κληρονομεί την ιδιότητα habitat frame squirrel is a rodent; default size is small and default tail is { long and bushy } ; do not inherit habitat.
30
Πλαίσιο whale Δεν ορίζεται ως «θαλάσσιο ψάρι» γιατί το μόνο κοινό με αυτά είναι το habitat frame whale is a mammal; default habitat is the sea.
31
Διάφορα στιγμιότυπα (cat, tiger) Οι τιμές που θέτουμε στις ιδιότητες υπερισχύουν των default τιμών instance arthur is a cat ; skin is shaggy and meal is 'kit-e-kat' and habitat is 'my house'. instance shere_khan is a tiger ; speed is 'quite slow' and legs are 3.5.
32
Διάφορα στιγμιότυπα (tiger, bird) Η τιμή μιας ιδιότητας μπορεί να είναι το όνομα ενός άλλου πλαισίου ή στιγμιότυπου instance my_other_tig is a tiger ; meal is my_pusscat. Παίρνει όλες τις default τιμές instance joey is a bird.
33
Ορισμός στιγμιότυπου με εντολή data Δημιουργία στιγμιότυπου του πλαισίου salmon κατά τη διάρκεια του compilation data new_freddie do freddie is a new salmon whose size is large and whose habitat is fish_tank and echo('freddie has been created') and nl. Εμφάνιση μηνύματος σε παράθυρο
34
Δεδομένα και δηλώσεις Τα δεδομένα (data) είναι μία σειρά εντολών Δημιουργούν νέα στιγμιότυπα Αντιστοιχίζουν τιμές σε ιδιότητες Τροποποιούν τα γεγονότα μιας βάση δεδομένων Χρησιμοποιούνται για την αρχικοποίηση του προβλήματος, αφού εκτελούνται Κατά τη στιγμή της μεταγλώττισης Κάθε φορά που καλείται η ρουτίνα restart/0. Σύνταξη: data data_name do directive(s)
35
Παράδειγμα data data start_up_configuration do the contents of jugA becomes 2 and jugB`s contents becomes jugB`s capacity-2 and remember that danger_level(yellow) Κάνει “assert” κάτι στη βάση δεδομένων Αλλάζει την τιμή του slot
36
Πρόταση do Συντάσσεται παρόμοια με μια πρόταση data Εκτελεί τις εντολές της μόνο κατά τη στιγμή της μεταγλώττισης. Σύνταξη: do directive(s).
37
Παράδειγμα do do c1 is a new car whose engine_size is 1100 and c1`s model := ‘Whizzo’ and c1`s colour := metallic_blue Δημιουργεί νέο στιγμιότυπο Αλλάζει τιμές ιδιοτήτων Θα μπορούμε να γραφεί και ως: the colour of c1 becomes metallic_blue
38
Χρήση πλαισίων Τα πλαίσια αναπαριστούν με ευέλικτο τρόπο τα αντικείμενα και τις έννοιες του φυσικού κόσμου Από μόνα τους τα πλαίσια είναι δομές δεδομένων Δεν αποτελούν κάτι το εκτελέσιμο Το ρόλο του προγράμματος παίζουν οι κανόνες, forward ή backward
39
Παράδειγμα ζωικού βασιλείου ANIMAL.KSL Θέλουμε να ορίσουμε μία «ρουτίνα» η οποία να επιστρέφει το πλαίσιο στο οποίο «ταιριάζει» ένα ζώο, δίνοντας ιδιότητες που αυτό έχει (θετικά παραδείγματα) ιδιότητες που σίγουρα δεν έχει (αρνητικά παραδείγματα) ?- identify( Class, [habitat-land,size-medium], [meal-meat]).
40
Αλγόριθμος εύρεσης πλαισίου Επέλεξε κάποιο τυχαίο πλαίσιο Έλεγξε αν έχει όλα τα θετικά παραδείγματα Έλεγξε αν δεν έχει όλα τα αρνητικά παραδείγματα Αν τα παραπάνω ισχύουν, τότε το αρχικό πλαίσιο πρέπει να επιστραφεί, αλλιώς επέστρεψε στο πρώτο βήμα
41
Χρήση πλαισίων μέσα από relation relation identify(Frame,PosAtts,NegAtts) if isa_frame( Frame, _ ) and for every PosAttr-PosVal is included in PosAtts do [ check the PosAttr of Frame includes PosVal or check the PosAttr of Frame is equal to PosVal ] end for and for every NegAttr-NegVal is included in NegAtts do check the NegAttr of Frame does not include NegVal and check the NegAttr of Frame is not equal to NegVal end for. Ενσωματωμένο κατηγόρημα Prolog που προσθέτει το Flex Βρόχος επανάληψης για όλα τα στοιχεία μιας λίστας Έλεγχος συνθήκης
42
Συσχετίσεις (relations) Κανόνες ανάστροφης ακολουθίας εκτέλεσης, αντίστοιχοι της Prolog. Μια συσχέτιση καθορίζεται από μια συλλογή προτάσεων. Σύνταξη: relation relation_name if condition(s). Παράδειγμα: relation is_leaf( Node ) if the links_out of Node is empty.
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.