Prolog -> Duda

Alain Sanchez
04 de Mayo del 2006
inicial(hzog, estado(lado(1, Hombres, Zorras, Ocas, Granos), lado(2, 0, 0, 0, 0), 'orilla 1')):-
write('cantidad de Hombres : '), read(Hombres),
write('cantidad de Zorras : '), read(Zorras),
write('cantidad de Ocas : '), read(Ocas),
write('cantidad de Granos : '), read(Granos).

final(hzog, estado(lado(1, 0, 0, 0, 0), lado(2, Hombres, Zorras, Ocas, Granos), 'orilla 2')).

basado en esos estados de que forma le digo al estado final que sus valores de Hombre, Zorras, Ocas y Granos son los mismo que los del estado inicial ???

Como puede ver el fragmento de código consiste en darle solución al clásico problema del Granjero, Lobo, Cabra y Repollo que deben cruzar un río y solo hay un bote, pero este ejercicio tiene la particularidad de que debe resolverse de forma general, o sea que pueden haber cualquier cantidad de Granjeros, Lobos, Cabras y Repollos y que además el bote puede viajar con mayor capacidad si es necesario.

Agradeceré toda la ayuda que pueda brindarme al respecto.
Saludos... ☺
Alain Sánchez