Problema clasico (Granjero, Lobo, Cabra, Repollo) !!!!

Iniciado por luka.ghost, 30 Abril 2006, 08:23 AM

0 Miembros y 1 Visitante están viendo este tema.

luka.ghost

Hola
Te atreverias a solucionar el clásico problema del Granjero, el Lobo, la Cabra y el Repollo; donde el Granjero quiere cruzar un río pero solo hay un bote y en el cual además de poder ir él solo hay espacio para uno mas, pero este no puede dejar en la misma orilla al Lobo y a la Cabra porque el Lobo se la come y sucede lo mismo con la Cabra y el Repollo.
La solucion de este problema debe estar sobre la base de que se pueda generalizar a cualquier cantidad de Lobos, Cabras, Repollos y de posibles Granjeros en el Bote, de manera que la explicación anterior es sólo el caso particular donde hay una Lobo, una Cabra, un Repollo, y un espacio en el Bote además del Granjero.
Por ejemplo:
¿ Cual sería la solucion para el caso de que sean 3 granjeros, 2 lobos, 4 cabras y 5 repollos ?. Tenga en cuenta ademas de que en el bote pueden viajar mas integrantes.



Espero que disfruten de este nuevo desafio....

Saludos...   ;)

PD: Por favor las respuestas por privados para que no pierda la gracia
Saludos... ;-)

luka.ghost

Hola, al parecer no han entendido el kit de dicho problema, las respuesta que he recivido hasta el momento todas han sido en base a la solucion trivial:
1- Cruza al otro lado con la cabra, y vuelve solo.
2- Cruza con el repollo, lo deja y regresa con la cabra.
3- Cruza con el lobo, lo deja y vuelve.
4- Cruza con la cabra.
pero la complejidad de este proplema se concentra en encontrar esa solucion para el caso general, cuando se tienen mas de 1 elemento de cada tipo y que ademas en el bote puede ir mas de 1 granjero con 1 acompañante.

Recuerden las respuestas por privado, la mejor respuesta y su autor seran publicados para el conocimiento de todos en esta sección.

Saludos...  ;)

PD: De ser posible envie las respuesta en prolog
Saludos... ;-)

luka.ghost

Hola, hasta ahora solo he resivido la respuesta de 2 concursantes, que sucede, ¿no te llama la atencion darle solucion a este acertijo ?
Recuerda que la solucion de este debe ser la solucion general en la cual pueden viajar hasta mas integrantes en el bote, de manera que la solucion de 1 elemento de cada tipo es solo la trivial.

Saludos... ;)
Saludos... ;-)

cintiayalis

Necesito de tu ayuda!!
Para que me envies la solucion del problema de (Granjero, Lobo, Cabra, Repollo) ya que tengo que hacer un proyecto parecido a este.

Saludosssss ;)

euyyn

cómo te voy a mandar la respuesta en prolog, mi niño? como mucho te mando el planteamiento y el backtracking encuentra las soluciones que existan. A no ser que quieras que te ponga algo como:

X = [[oveja], [], [repollo], [oveja], ...];
X = [[...]];
...
False

xDDDD


Mira, aclarame una cosa: hay varios granjeros pero una sola barca, o también varias barcas?
No se supone que con 2 granjeros ya no hay problema? Porque cada uno se pone en una orilla y listo...
Dices tb que en la/s barca/s hay N puestos: ¿pueden ir 2 granjeros + una cabra, por ejemplo, o 1 granjero con un lobo y un repollo?
Euyyn el astronauta
(las ganas mías, claro)

euyyn

Y otra cosa, te pusieron esto como trabajo de prolog? xD
Euyyn el astronauta
(las ganas mías, claro)

luka.ghost

#6
Hola,
  Cuando me referia a enviar la respuesta en prolog me referia a que enviaran todos aquellos predicados que consideraran necesarios para darle solucion a este enigma, y por supuesto que una vez planteados mediante el uso de un algoritmo de busqueda (ejemplo : busqueda en profundidad) el backtraking te devuelve todas aquellas posibles soluciones que encuentre.

  Al realizar este enigma yo considere que las orillas estaban a salvo cuando se necesita el minimo de granjeros para custodiar a aquellos elementos que se coman entre si, ejemplo:
sin_problemas(estado(L1, L2)):-
    es_seguro(L1), es_seguro(L2).

es_seguro(lado(_, Hombres, Zorras, Ocas, Granos)):-
   minimo(Lobos, Obejas, R1), R1 =< Granjeros,
   minimo(Obejas, Repollos, R2), R2 =< Granjeros.

pero puedes considerar tus restrinciones como gustes, la cuestion es encontrar la solucion que debe se != de llevarlos a todos en un solo viaje.

En cuanto la cantidad de botes, solo existe uno para cruzar de una orilla a otra y como restriccion tome que puede viajar la minima cantidad de granjeros necesarios para custodiar a aquellos elementos que se coman entre si.

  Este enigma se me ocurrio publicarlo para probar el poder de razonamiento de aquellos asiduos a los Desafios - Wargames.

Espero haber sido mas explicito ahora, cualquier duda, pregunten sin pena.

Saludos... ;)
Saludos... ;-)

Nakp

es facilisimo pero yo me lo podia con un leon una oveja y no me acuerdo que... ah.. y un barco..
mañana mando la respuesta... ya tengo sueño... :-\
salu2 ;)
Ojo por ojo, y el mundo acabará ciego.

luka.ghost

#8
Hola Comunidad:
   Les informo que en esta ocación no contamos con ninguna solución brindada por los participantes que resuelva eficientemente la problemática planteada.

   El código fuente que soluciona el problema que inició dicho hilo de discusión está publicado en la sección de Código Fuente del portal de La Web del Programador desarrollado por el autor del hilo de discución en cuestión....

He aquí el link para acceder al codigo fuente

Saludos...  ;)
Saludos... ;-)

whaky

vale, keda klaro q tienes 2 user distintos....

pa q???
pa dar x el kulo el doble???
Los muertos hablan y las paredes oyen
por si acaso nunca reveles tu identidad.