Basic Prolog.ppt

上传人:cleanass300 文档编号:378849 上传时间:2018-10-09 格式:PPT 页数:18 大小:378KB
下载 相关 举报
Basic Prolog.ppt_第1页
第1页 / 共18页
Basic Prolog.ppt_第2页
第2页 / 共18页
Basic Prolog.ppt_第3页
第3页 / 共18页
Basic Prolog.ppt_第4页
第4页 / 共18页
Basic Prolog.ppt_第5页
第5页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、Basic Prolog,Structure of Programs,Programs consist of procedures.Procedures consist of clauses.Each clause is a fact or a rule.Programs are executed by posing queries.,Clauses: Facts and Rules,“if“ “provided that“ “turnstile“,Head :- Body.,This is a rule.,Head.,This is a fact.,Full stop at the end.

2、,Body of a (Rule) Clause Contains Goals,Head,Body,Goals,:-,likes(mary, X),human(X), honest(X).,Example Program,elephant(george). elephant(mary). elephant(X) :- grey(X), mammal(X),hasTrunk(X).,Predicate,Procedure for elephant,Facts,Clauses can be interpreted in a declarative or a procedural way,Claus

3、e:Declarative reading:Procedural reading:,H :- G1, G2, , Gn.That H is provable follows fromgoals G1, G2, , Gn being provableTo execute procedure H, the procedures called by goals G1, G2, , Gn are executed first,Interpretation of Clauses,Interpretation of Clauses,Clauses can be interpreted in a decla

4、rative, or in a procedural way,Clause:Declarative reading:Procedural reading:,H :- G1, G2, , Gn.That H is provable follows fromgoals G1, G2, , Gn being provableTo execute procedure H, the procedures called by goals G1, G2, , Gn are executed first,Clauses,Clauses provide a convenient way to express c

5、ase analysis and non-determinism.Program clauses and data have the same form.A Prolog program can also be seen as a relational database containing rules and facts.The relational form of procedures makes it possible to define reversible procedures.,Unification,Term-manipulation that passes parameters

6、, returns results, selects and constructs data structuresBasic control flow model is backtrackingSometimes it is necessary to use control features that are not part of logic,Computation via Queries,Facts and rules are stored in a database They can be queried ?- likes(joe, fish). yes ?- likes(joe, ch

7、ocolate) no Important: no means “I know its false, or I dont know” yes means “I can prove it” asymmetric,Example Queries,Queries,Replies,?- elephant(george).Yes?- elephant(jane).no,Prologs Style,State the facts and rules Pose queries Prolog finds the answers by searching the facts deducing new facts

8、 from the rules Answers depend on the search algorithm,Imperative/Functional/Declarative Styles Example - Concatenate lists a and b,concat(, Z, Z). concat(H|T, L, H|Z) :- concat(T, L, Z).,list procedure concat(list a, list b) list t = list u = copylist(a);while (t.tail != nil) t = t.tail;t.tail = b;

9、return u; ,cat(a,b) if b = nil then aelse cons(head(a), concat(tail(a),b),In an imperative PL,In a functional PL,In a declarative PL,Example: Zoo,/* Facts */ elephant(gigi). elephant(mary). elephant(joe). panda(chi_chi). panda(ming_ming). stripey(tigger). stripey(mrED). big_teeth(tigger). isaCat(tig

10、ger). isaHorse(mrED). venomous(rattler). venomous(grass_snake).,/* Rules */ dangerous(X) :- big_teeth(X). dangerous(X) :- venomous(X). swims(Y) :- isaFish(Y). guess(X, tiger) :- stripey(X),big_teeth(X), isaCat(X). guess(X, koala) :-arboreal(X), sleepy(X). guess(X, zebra) :- stripey(X),isaHorse(X)./*

11、 Sample Queries */ ?- dangerous(ming_ming). ?- dangerous(X). ?- guess(X,Y).,www2.hawaii.edu/janst/313/prolog/zoo.pl,Colored ball problem,Find the correct sequence of colored balls to satisfy the given rules: One red, one black and one white ball Solution will be a permutation of red,black,white whit

12、e is just to the right of black If black is in pos1, white is in pos2, If black is in pos2, white is in pos3 black is not in the center Black cant be in pos2www2.hawaii.edu/janst/313/prolog/colors.pl,Cryptarithmatic Problem,Find the unique digit that will replace each character to solve a puzzleS E

13、N D + M O R E - M O N E Ywww2.hawaii.edu/janst/313/prolog/crypto.pl,Eight Queens Problem,Given an 8-by-8 chessboard, place 8 queens so that they do not threaten each other along a row, column, or a diagonalMathematically determine diagonal two queens are on the same / (UR-BL) diagonal iff the sum of

14、 the row and the column is the same for each two queens are on the same (UL-BR) diagonal iff the difference between the row and the column are the same for eachGeneralize: N queens (N =4),www2.hawaii.edu/janst/313/prolog/queens.pl,N-Queens Without Searching,A solution to the N-Queens problem for any N = 4Placing queens takes constant time per queen, O(N)Drawing the board takes O(N2) timePublished in ACM SIGART Bulletin, 2(2), page 7See example at www.apl.jhu.edu/hall/NQueens.html now unfortunately broken,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学课件 > 大学教育

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1