Foro de elhacker.net

Seguridad Informática => Desafíos - Wargames => Mensaje iniciado por: luka.ghost en 30 Abril 2006, 08:23 am



Título: Problema clasico (Granjero, Lobo, Cabra, Repollo) !!!!
Publicado por: luka.ghost en 30 Abril 2006, 08:23 am
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


Título: Re: Problema clasico (Granjero, Lobo, Cabra, Repollo) !!!!
Publicado por: luka.ghost en 3 Mayo 2006, 14:42 pm
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


Título: Re: Problema clasico (Granjero, Lobo, Cabra, Repollo) !!!!
Publicado por: luka.ghost en 5 Mayo 2006, 23:28 pm
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... ;)


Título: Re: Problema clasico (Granjero, Lobo, Cabra, Repollo) !!!!
Publicado por: cintiayalis en 6 Mayo 2006, 17:18 pm
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 ;)


Título: Re: Problema clasico (Granjero, Lobo, Cabra, Repollo) !!!!
Publicado por: euyyn en 8 Mayo 2006, 16:34 pm
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?


Título: Re: Problema clasico (Granjero, Lobo, Cabra, Repollo) !!!!
Publicado por: euyyn en 8 Mayo 2006, 16:36 pm
Y otra cosa, te pusieron esto como trabajo de prolog? xD


Título: Re: Problema clasico (Granjero, Lobo, Cabra, Repollo) !!!!
Publicado por: luka.ghost en 9 Mayo 2006, 06:06 am
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... ;)


Título: Re: Problema clasico (Granjero, Lobo, Cabra, Repollo) !!!!
Publicado por: Nakp en 9 Mayo 2006, 06:39 am
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 ;)


Título: Re: Problema clasico (Granjero, Lobo, Cabra, Repollo) !!!!
Publicado por: luka.ghost en 26 Junio 2006, 17:32 pm
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 (http://lawebdelprogramador.com/codigo/index.php) del portal de La Web del Programador (http://www.lawebdelprogramador.com) desarrollado por el autor (http://foro.elhacker.net/index.php?action=profile;u=143096) del hilo de discución en cuestión....

He aquí el link (http://lawebdelprogramador.com/codigo/enlace.php?idp=1379&id=77&texto=Prolog) para acceder al codigo fuente

Saludos...  ;)


Título: Re: Problema clasico (Granjero, Lobo, Cabra, Repollo) !!!!
Publicado por: whaky en 2 Julio 2006, 00:21 am
vale, keda klaro q tienes 2 user distintos....

pa q???
pa dar x el kulo el doble???


Título: Re: Problema clasico (Granjero, Lobo, Cabra, Repollo) !!!!
Publicado por: _NexuS_ en 4 Julio 2006, 01:10 am
espero no ser duro..

Pero en este subforo tenemos crackmes dificilisimos, acertijos indesifrables


Y QUIERES QUE DESAROLLEMOS ALGO DE PRIMERO?!!
La gracia ya la perdio, este acertijo es muy facil  :P


Título: Re: Problema clasico (Granjero, Lobo, Cabra, Repollo) !!!!
Publicado por: kasador_one en 4 Julio 2006, 01:15 am
a mi en primero basico me pasaron uno parecido pero era de el hombre el maiz el pollo y el zorro :)

Saludos !!!


Título: Re: Problema clasico (Granjero, Lobo, Cabra, Repollo) !!!!
Publicado por: euyyn en 7 Julio 2006, 17:33 pm
Chacho no se metan con el pibe, que todos pasamos por primero tb, y antes de eso todos tuvimos una epoca en que no sabiamos ni que carajo era un puntero.

Me gusta la solución que diste para que nadie se coma a nadie, lo de que el nº de granjeros en orillas _y barca_ sea al menos min(L, O, R). Tal y como yo entendía el problema original, era la mera presencia del granjero lo que inhibía a los animales y, claro, así el problema no se puede generalizar bien.

Lo que tiene el Prolog es que es él el que resuelve los problemas, tú sólo le pones las restricciones y le das al botón. Así no tiene gracia un acertijo, no es lo mismo.


Título: Re: Problema clasico (Granjero, Lobo, Cabra, Repollo) !!!!
Publicado por: Karen Izaguirre en 1 Mayo 2011, 00:33 am
hola que tal como esta me gustaria que por favor me ayudara a ver como puedo hacer una consulta en prolog para la solucion del problema del granjero y la cabra ya que me interesa saber porque tengo un examen de este problema y la verdad no le entiendo mucho perdon por la molestia gracias por todo espero su respuesta positiva gracias y lo mas pronto