Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Prolog Επεξεργασία και Αναπαράσταση Γνώσης

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Prolog Επεξεργασία και Αναπαράσταση Γνώσης"— Μεταγράφημα παρουσίασης:

1 Prolog Επεξεργασία και Αναπαράσταση Γνώσης
ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολογίας Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο: Τεχνητή Νοημοσύνη

2 Αναδρομή Με τον όρο αναδρομή εννοούμε τη δυνατότητα ένας κανόνας να περιέχει στο σώμα του μια κλήση προς τον εαυτό του. Οι κανόνες που χρησιμοποιούν αναδρομή ονομάζονται αναδρομικοί, ενώ αυτοί που δεν χρησιμοποιούν μη αναδρομικοί. Είναι ο μόνος τρόπος δημιουργίας μιας δομής επανάληψης

3 Παράδειγμα Αναδρομής (1/3)
Έστω τα γεγονότα: parent(john,george). parent(john,nick). parent(jim,bill). parent(jim,jack). parent(gregory,john). parent(gregory,jim). parent(bob,gregory). parent(joseph,bob). Θέλουμε να ορίσουμε έναν κανόνα predecessor(X,Y), ο οποίος να αληθεύει αν ο Χ είναι πρόγονος του Υ.

4 Παράδειγμα Αναδρομής (2/3)
Λύση με μη αναδρομικούς κανόνες: predecessor(X,Z):- parent(X,Z). predecessor(X,Z):- parent(X,Y),parent(Y,Z). predecessor(X,Z):- parent(X,Y1),parent(Y1,Y2), parent(Y2,Z). Με αυτόν τον τρόπο δεν μπορούμε να ορίσουμε τη σχέση για πολύ μακρινούς απογόνους. Π.χ. στην ερώτηση ?- predecessor(X,george). X=john X=gregory X=bob

5 Παράδειγμα Αναδρομής (3/3)
Λύση με αναδρομικούς κανόνες: predecessor(X,Z):- parent(X,Z). predecessor(X,Z):- parent(X,Y),predecessor(Y,Z). Παρατήρηση: Όταν ένα κατηγόρημα ορίζεται αναδρομικά, εμφανίζεται πάντα με τουλάχιστον δύο κανόνες. Ο πρώτος συνήθως δεν περιέχει αναδρομική κλήση, λειτουργώντας σαν τερματική συνθήκη.

6 Παραγοντικό 0! = 1 N! = N * (N-1)! factorial(0,1). factorial(N,F) :- N>0, N1 is N-1, factorial(N1,F1), F is N * F1.

7 Η αναδρομή στις δυνάμεις
a^0 = 1 a^n = a * a^(n-1) raise(B, 0, 1). raise(B, E, Y) :-         E1 is E - 1,         raise(B, E1, Y1),         Y is  B*Y1.

8 H αναδρομή στον αριθμό Fibonacci
fib(N, Y) :- N >2, N2 is N – 2, fib(N2, Y2), N1 is N – 1, fib(N1, Y1), Y is Y1 + Y2. fibonacci(0) = 0 fibonacci(1) = 1 fibonacci(N) = fibonacci(N-1) + fibonacci(N-2)


Κατέβασμα ppt "Prolog Επεξεργασία και Αναπαράσταση Γνώσης"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google