The “Russian Farmer” Problem Continued

1 / 7

Lecture - PowerPoint PPT Presentation

The “Russian Farmer” Problem Continued. (F,W,G,C) (l, l, l, l). (r, l, r, l). (l, l, r, l). (r, r, r, l) (r, l, r, r). (l, r, l, l) (l, l, l, r). (r, r, l, r) (r, r, l, r). (l, r, l, r) (l, r, l, r). (r, r, r, r).

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

PowerPoint Slideshow about 'Lecture' - Melvin

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

The “Russian Farmer” Problem

Continued

Lecture 24 Farmer, Goat, Cabbage and Wolf Problem Continued

(F,W,G,C)

(l, l, l, l)

(r, l, r, l)

(l, l, r, l)

(r, r, r, l)(r, l, r, r)

(l, r, l, l) (l, l, l, r)

(r, r, l, r)(r, r, l, r)

(l, r, l, r)(l, r, l, r)

(r, r, r, r)

Lecture 24 Farmer, Goat, Cabbage and Wolf Problem Continued

?- go( state(left,left,left,left), state(right,right,right,right) ).

A solution is:

The farmer takes the Goat from left of the river to right

The farmer crosses the river from right to left

The farmer takes the Wolf from left of the river to right

The farmer takes the Goat from right of the river to left

The farmer takes the cabbage from left of the river to right

The farmer crosses the river from right to left

The farmer takes the Goat from left of the river to right

A solution is:

The farmer takes the Goat from left of the river to right

The farmer crosses the river from right to left

The farmer takes the cabbage from left of the river to right

The farmer takes the Goat from right of the river to left

The farmer takes the Wolf from left of the river to right

The farmer crosses the river from right to left

The farmer takes the Goat from left of the river to right

No

Lecture 24 Farmer, Goat, Cabbage and Wolf Problem Continued

go(Start,Target):-

path(Start, Target,[Start],Path),

write(‘A solution is:’),nl,

write_path(Path).

path(Start, Target,Visited,Path):-

move(Start, NextNode),% Generate a move

not( unsafe(NextNode) ),% Check that it issafe

not( member(NextNode,Visited) ),% Check for recurrence

path(NextNode, Target,[NextNode |Visited],Path),!.

path(Target, Target,Path,Path).% Reached the goal

Lecture 24 Farmer, Goat, Cabbage and Wolf Problem Continued

move(state(X,W,X,C),state(Y,W,Y,C)):-opposite(X,Y).% FARMER &GOAT

move(state(X,W,G,X),state(Y,W,G,Y)):-opposite(X,Y).%FARMER & Cbg.

move(state(X,W,G,C),state(Y,W,G,C)):-opposite(X,Y).% FARMER alone

unsafe( state(F,X,X,_) ):- opposite(F,X),!. % The wolf eats the goat

Other unsafe clauses

opposite(left,right).

opposite(right,left).

Lecture 24 Farmer, Goat, Cabbage and Wolf Problem Continued

write_path( [] ).

write_path( [H1,H2|T] ) :-write_move(H1,H2),

write_path([H2|T]).

write_move( state(X,W,G,C), state(Y,W,G,C) ) :-!,

write(‘The farmer crosses the river from ‘), write(X),write(‘ to ‘),write(Y),nl.

write_move( state(X,X,G,C), state(Y,Y,G,C) ) :-!,

write(‘The farmer takes the Wolf from the ‘), write(X),write(‘side of the river to ‘),write(Y),nl.

Lecture 24 Farmer, Goat, Cabbage and Wolf Problem Continued

?-go(X,Y).

?-go(state(left,left,left,left),Y).

Lecture 24 Farmer, Goat, Cabbage and Wolf Problem Continued