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

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

Μέτα-προγραμματισμός. Μέτα-Προγραμματισμός Μέτα-προγράμματα: χρησιμοποιούν άλλα προγράμματα ως δεδομένα για επεξεργασία. Χρήσεις: –Παράγουν αποδείξεις.

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


Παρουσίαση με θέμα: "Μέτα-προγραμματισμός. Μέτα-Προγραμματισμός Μέτα-προγράμματα: χρησιμοποιούν άλλα προγράμματα ως δεδομένα για επεξεργασία. Χρήσεις: –Παράγουν αποδείξεις."— Μεταγράφημα παρουσίασης:

1 Μέτα-προγραμματισμός

2 Μέτα-Προγραμματισμός Μέτα-προγράμματα: χρησιμοποιούν άλλα προγράμματα ως δεδομένα για επεξεργασία. Χρήσεις: –Παράγουν αποδείξεις (επιτυχίας/αποτυχίας) –Υλοποίηση διαφορετικών τρόπων αναζήτησης –Κέλυφος για έμπειρα συστήματα –Αυτόματη διόρθωση προγραμμάτων (debugging)

3 Μέτα-μεταφραστές Παράδειγμα 1: solve(A):- A. Η μεταβλητή Α είναι μέτα-μεταβλητή! Παράδειγμα 2 (Vannila): –solve(true). –solve((A,B)):-solve(A),solve(B). –solve(A):-clause(A,B), solve(B). Προσομοίωση ταυτοποίησης και οπισθοδρόμησης.

4 Μέτα-μεταφραστές Παράδειγμα 2 (Vannila συνέχεια): –solve(Α):-(A),system(A), A. –solve(not(A)):-not solve(A). –solve(!):- ! ?????????

5 Μέτα-μεταφραστές Παράδειγμα 3 (Vannila με άλλη αναπαράσταση κανόνων): –Κανόνες: rule(A, [B1,…Bn]). –Γεγονότα: rule(A, [ ]). –solve([]). –solve([A|B]):-solve-one(A), solve(B). –solve-one(A):-rule(A,B), solve(B). –solve-one(A):-system(A), A.

6 Μέτα-μεταφραστές Παράδειγμα 4 (Δέντρο Απόδειξης): %solve(Goal,Proof) –solve(true,true). –solve((A,B) (ProofA,ProofB)):- solve-one(A,ProofA), solve(B,ProofB). –solve(A, (A isa builtin)):-builtin(A), A. –solve(A, (A follows from Proof)):- clause(A,B), solve(B, Proof).

7 Μέτα-μεταφραστές Παράδειγμα 4 (Δέντρο Απόδειξης-Αλλαγή): %solve(Goal,Proof) –solve(true,true). –solve((A,B) (ProofA,ProofB)):- solve-one(A,ProofA), solve(B,ProofB). –solve(A, (A isa builtin)):-builtin(A), A. –solve(A, (A is a fact)):- clause(A,B), B = true. –solve(A, (A follows from Proof)):- clause(A,B), B \= true, solve(B, Proof).

8 Παράδειγμα Πρόγραμμα αντικειμένου P: son (X, Y) :- father (Y, X), male (X). daughter (X, Y) :- father (Y, X), female (X). father (haran, lot).male (isaac)female () father (abraham, isaac). male (lot) ?solve (son (lot, haran), Proof). Yes Proof = (son (lot, haran) follows ((father (haren, lot) is a fact), (male (lot) is a fact)))

9 Ανιχνευτής της Prolog % solve_trace ( Goal)  Goal is true given the Prolog program defined by clause/2. The program traces the proof by side effects. solve_trace (Goal)  solve_trace (Goal, 0). solve_trace (true, Depth)  !. solve_trace ((A, B), Depth)  !, solve_trace(A, Depth), solve_trace(B, Depth). solve_trace (A, Depth)  builtin (A), !, A, display (A, Depth), nl. solve_trace (A, Depth)  clause (A, B), display (A, Depth), nl, Depth1 is Depth + 1, solve_trace (B, Depth1).

10 Ανιχνευτής της Prolog (συν.) display (A, Depth)  Spacing is 3*Depth, put_spaces (Spacing), write (A). put_spaces (N)  between (1, N, I), put_char (' '), fail. put_spaces (N). betveen(1, N, I) - See Program. 8.5.

11 Προγραμματισμός – Συλλογισμός με Αβεβαιότητα solve ( Goal, Certainty)  Certainty is our confidence that Goal is true. solve (true, 1)  !. solve ((A, B),C)  !, solve(A, C1), solve (B, C2), minimum (C1, C2, C). solve (A, 1)  builtin (A), !, A. solve (A, C)  clause_cf (A, B, C1), solve(B, C2), C is C1 * C2. clause_cf (A, B, C1) :- …. (Ανάλογα με την αναπαράσταση της γνώσης στους κανόνες αντικειμένου)

12 Προγραμματισμός – Συλλογισμός με Αβεβαιότητα solve ( Goal, Certainty, Threshold)  Certainty is our confidence, greater than Threshold, that Goal is true solve (true, 1, T)  !. solve ((A, B), C, T)  !, solve(A, C1, T), solve(B, C2, T), minimum(C1, C2, C). solve (A, 1, T)  builtin (A), !, A. solve (A, C, T)  clause_cf (A, B, C1), C1 > T, T1 is T/C1, solve (B, C2, T1), C is C1 * C2.


Κατέβασμα ppt "Μέτα-προγραμματισμός. Μέτα-Προγραμματισμός Μέτα-προγράμματα: χρησιμοποιούν άλλα προγράμματα ως δεδομένα για επεξεργασία. Χρήσεις: –Παράγουν αποδείξεις."

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


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