Академический Документы
Профессиональный Документы
Культура Документы
Q.1Write a program to find all possible path from source node ‘a’ to the destination node ‘f’ on
the following graph .
5
c d
5
1
5 5 f
a 5
5 4
Prolog Code: b e
DOMAINS 9
NODE=SYMBOL
DISTANCE=integer
PREDICATES
nondeterm link(node,node,distance)
nondeterm path(node,node,distance)
CLAUSES
link(a,c,1).
link(a,b,5).
link(b,e,9).
link(c,b,5).
link(c,e,5).
link(c,d,5).
link(e,d,5).
link(d,f,5).
link(e,f,4).
path(S,D,TDist):-
link(S,D,TDist).
path(S,D,TDist):-
link(S,X,TD1),path(X,D,TD2),TDist=TD1+TD2.
GOAL
path(a,f,TotalDistance).
Output:
1
Q.2 Write a program to traverse the following tree in depth first order.
Animal
Vertebrate Invertebrate
Prolog Code:
DOMAINS
treetype = tree(string, treetype, treetype) ; empty()
PREDICATES
traverse(treetype)
CLAUSES
traverse(empty).
traverse(tree(Name,Left,Right)):-
write(Name,'\n'),
traverse(Left),
traverse(Right).
GOAL
traverse(tree("Animal",
tree("Vertebrate",
tree("Mammal", empty, empty),
tree("Bird", empty, empty)),
tree("Invertibrates",
tree("Insect", empty, empty),
tree("Worm", empty, empty)))).
Output:
2
Q.3 Write a program to create the above tree of question no. 2 .
Prolog Code:
DOMAINS
treetype = tree(string,treetype,treetype) ; empty()
PREDICATES
inquire
create_tree(string,treetype)
insert_left(treetype,treetype,treetype)
insert_right(treetype, treetype, treetype)
CLAUSES
create_tree(A,tree(A,empty,empty)).
insert_left(X,tree(A,_,B),tree(A,X,B)).
insert_right(X,tree(A,B,_),tree(A,B,X)).
inquire:-
GOAL
inquire.
3
Q. 4 Write a program which creates the tree of following binary tree.
2 3
4 5 6 7
Prolog Code:
DOMAINS
treetype = tree(integer,treetype,treetype) ; empty()
PREDICATES
inquire
create_tree(integer,treetype)
insert_left(treetype,treetype,treetype)
insert_right(treetype, treetype, treetype)
CLAUSES
create_tree(A,tree(A,empty,empty)).
insert_left(X,tree(A,_,B),tree(A,X,B)).
insert_right(X,tree(A,B,_),tree(A,B,X)).
inquire:-
create_tree(1,One),
create_tree(2,Two),
create_tree(3,Three),
create_tree(4,Four),
create_tree(5,Five),
create_tree(6,Six),
create_tree(7,Seven),
insert_left(Six,Three ,P),
insert_right(Seven,P,Q),
insert_left(Four,Two, R),
insert_right(Five, R,S),
insert_left(S,One, T),
insert_right(Q,T, U),
write(U, '\n').
GOAL
inquire.
Output:
The End
4