1 / 42

Flex

Flex. Κέλυφος Εμπείρων Συστημάτων Expert System Shell. Νίκος Βασιλειάδης, Άνοιξη 2003. Τι είναι το Flex;. Το Flex είναι ένα ισχυρό εργαλείο ανάπτυξης εμπείρων συστημάτων. Κέλυφος εμπείρων συστημάτων (expert system shell) Στηρίζεται πάνω στη γλώσσα LPA WinProlog A ποτελείται από:

caron
Download Presentation

Flex

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. Ορθή ακολουθία εκτέλεσης Forwardchaining • Οι κανόνες παραγωγής ακολουθούν την κλασσική μορφή "εάν-τότε" (IF-THEN). • Πολλαπλά συμπεράσματα ή ενέργειες στο THEN μέρος. • Δυνατότητα επεξήγησης. • Υποστηρίζονται πολλοί αλγόριθμοι επίλυσης συγκρούσεων (conflictresolution) κανόνων. • Υπάρχει δυνατότητα ορισμού νέων αλγορίθμων. • Μηχανισμός δυναμικής βαθμολόγησης των κανόνων (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. Η Γλώσσα KSLKnowledgeSpecificationLanguage • Χρησιμοποιείται για τον ορισμό κανόνων, πλαισίων, διαδικασιών κλπ. • Υποστηρίζει μαθηματικές, λογικές και υποθετικές εκφράσεις • Είναι επεκτάσιμη με τη χρήση των συνωνύμων και των προτύπων. • Βασικά στοιχεία: • όροι (terms) • αντικείμενα (objects) • αριθμητικέςεκφράσεις(numerical expressions) • λογικές και διαδικαστικές εκφράσεις (formulae) • δομέςελέγχου(control structures) • προτάσεις(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 Αλλάζει την τιμή του slot 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” κάτι στη βάση δεδομένων

  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 Ενσωματωμένο κατηγόρημα Prolog που προσθέτει το Flex 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 toNegVal end for . Έλεγχος συνθήκης Βρόχος επανάληψης για όλα τα στοιχεία μιας λίστας

  42. Συσχετίσεις (relations) • Κανόνες ανάστροφης ακολουθίας εκτέλεσης, αντίστοιχοι της Prolog. • Μια συσχέτιση καθορίζεται από μια συλλογή προτάσεων. • Σύνταξη: relation relation_name if condition(s) . • Παράδειγμα: relation is_leaf( Node ) if the links_out of Node is empty .

More Related