Download presentation

Presentation is loading. Please wait.

Published byAna Wakeham Modified over 2 years ago

1
Prolog The language of logic

2
History Kowalski: late 60’s Logician who showed logical proof can support computation. Colmerauer: early 70’s Developed early version of Prolog for natural language processing, mainly multiple parses. Warren: mid 70’s First version of Prolog that was efficient.

3
Characteristics Prolog approximates first-order logic. Every program is a set of Horn clauses. Inference is by resolution. Search is by backtracking with unification. Basic data structure is term or tree. Variables are unknowns not locations. Prolog does not distinguish between inputs and outputs. It solves relations/predicates.

4
SWI-Prolog Notes Free! Down Loadable To load a file: – consult( ‘C:\\kibler\\prolog\\test’). For help: –help(predicate-name). “ ; “ will give you next solution. listing(member) will give definition.

5
Example Facts: () –likes(john,mary). –likes(john,X). % Variables begin with capital Queries –?- likes(X,Y). – X=john, y=Mary. % hit “;” for more –?- likes(X,X). –X=john.

6
Example Rules –likes(john,X) :- likes(X,wine). % :- = if –likes(john,X):- female(X), likes(X,john). Note: variables are dummy. Standarized apart Some Facts: –likes(bill,wine). female(mary). female(sue). Query: ? - likes(john,Y). –Y = bill ; –no.

7
Family father(a,b). father(e,d). mother(c,b). mother(d,f). parent(X,Y) :- father(X,Y). parent(X,Y) :- mother(X,Y). grandfather(X,Y):- father(X,Z),parent(Z,Y). % Do your own for practice.

8
Informal Summary Program is facts + rules. (horn clauses). Query = conjunct of predicates. First set of bindings for variables that solve query are reported. If none, then Prolog returns no. Use “;” to get other solutions. Can be viewed as constraint satisfaction program.

9
MapColoring color(r). color(g). color(b). colormap(C1,C2,C3):- color(C1),color(C2),color(C3), C1\==C2, C1\==C3, C2\==C3. Query: colormap(X,Y,Z). –X = r, Y= g, Z=b. Is that it. Yes! Turn on trace.

10
Unification: (matching) terms Two terms UNIFY if there is a common substitution for all variables which makes them identical. f(g(X),Y) = f(Z,Z). % = cheap unification –X = _G225, Y=g(_G225). Look at parse tree for each term. –variables match –variable matches anything (set the binding) –function symbols only match identical function symbols.

11
Satisfiability: uses unification sat(true). % base case sat(not(false)). % base case sat(or(X,Y)):- sat(X). sat(or(X,Y)):-sat(Y). sat(and(X,Y)):-sat(X),sat(Y). test1(X,Y):- sat(and(not(X),X)). test2(X,Y):- sat(and(X,not(Y))).

12
List Operator [H |T] [a,b,c] is a list in Prolog. [H|T] = [a,b,c] results in –H = a i.e. the head of list –T = [b,c] i.e. the tail of the list. membership definition –member(H,[H|T]). % base case first. Why? –member(H,[_|T]):- member(H,T). –Use it.

13
Member Tests ?- member(3,X). –X = [3| _G109]. % _G.., system generated variable – X= [_G11,3| _]. % etc. ?- member(X,Y). –X = _G131, Y= [_G131|, _G321].

14
Permutation & Insert insert(X,L, [X|L]). insert(X,[H|T],[H|T1]):- insert(X,T,T1). perm([],[]). perm([H|T],P):-perm(T,T1),insert(H,T1,P).

15
DFS % solve(goal, solution Path) % s(state, successor-state) dfs(N,[N]) :- goal(N). dfs(N,[N|Sol1]):- s(N,N1), dfs(N1,Sol1). s(a,b). s(a,c). s(b,d). s(b,e). s(c,f). s(c,g). s(d,h). s(e,i). s(e,j). s(f,k). goal(i). goal(f). ?- dfs(a,N). N = [a, b, e, i] ; N = [a, c, f] ;

16
Limitations 2 nd order: Can’t ask what is relationship between heart and lungs? Probabilities: What is likelihood of fire destroying Julian?

Similar presentations

OK

Logic Programming Two possible work modes: 1.At the lab: Use SICstus Prolog. To load a prolog file (*.pl or *.pro extension) to the interpreter, use: ?-

Logic Programming Two possible work modes: 1.At the lab: Use SICstus Prolog. To load a prolog file (*.pl or *.pro extension) to the interpreter, use: ?-

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Pdf to ppt online Ppt on viruses and anti viruses available Ppt on positive thinking tips Ppt on event handling in javascript for loop Ppt on eisenmenger syndrome causes Ppt on drama julius caesar by william shakespeare Download ppt on conservation of energy resources Ppt on economic reforms in india 1991 crisis Ppt on standing order Ppt on consumer equilibrium in case of two commodity