Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

el lobo la cabra y la col

acertijo el lobo la cabra y la col

  • Loggen Sie sich ein, um Kommentare anzuzeigen.

  • Gehören Sie zu den Ersten, denen das gefällt!

el lobo la cabra y la col

  1. 1. TRUJILLO-PERU Universidad Nacional de Trujillo ESCUELA DE INFORMATICA INTEGRANTES: APRECIADO RIVERA JHEFERSOWN DOMINGUEZ HONORIO EMERSON ALEXANDER ESQUIVEL SALDAÑA GIANCARLOS LAURENTE PACHAMANGO CRISTHIAN EL GRANJERO, EL LOBO, LA CABRA Y LA COL DOCENTE: ARTURO DIAZ PULIDO MONOGRAFIA
  2. 2. 1 INDICE 1. DEDICATORIA ………………………………………………………………...................... 2 2. INTRODUCCION …………………………………………………………………………........... 3 3. MARCO TEORICO …………………………………………………………………………………….. 4 3.1 ANTECEDENTES DE ACERTIJO …………………………………………………….. 4 3.2 ANALISIS DE ACERTIJO …………………………………………………….. 4 3.2.1 DECLARACION DEACERTIJO …………………………………………… 4 3.2.2 METODO DE SOLUCION POR ESTADOS ………………………….. 4 3.2.3 AUTOMATA DE SOLUCIONES …………………………………………. 5 3.2.4 TIPO DE METODOS DE BUSQUEDA …………………………………. 5 3.3 REPPRESENTACION DE CASO Y PROBLEMA ……………………………………….. 6 3.3.1 PEOR CASO ……………………………………………………………………….. 7 3.4 IMPLEMENTACION EN PROLOG ………………………………………………………. 8 3.4.1 ALGORITMO …………………………………………………………………….. 8 3.4.2 ANALISIS DE ALGORITMO …………………………………………………… 9 4. CONCLUCIONES ……………………………………………………………………………………….. 10 5. ANEXOS ……………………………………………………………………………………… 11 6. BIOGRAFIA ……………………………………………………………………………………….. 11
  3. 3. 2 DEDICATORIA A Dios, por brindarnos la dicha de la salud y bienestar físico y espiritual
  4. 4. 3 INTRODUCCION El presente documento plantea la solución a un acertijo matemático.se esquematiza la solución con un gráfico de autómata para un mejor entendimiento. Se explica los 2 tipos de búsqueda pero solo se utilizara un tipo de búsqueda. La solución se realiza implementa en el lenguaje de programación llamado prolog.
  5. 5. 4 Capítulo 1: ANTECEDENTES DEL ACERTIJO El acertijo del lobo, la cabra y la col es un popular juego de lógica. Se sabe que existe al menos desde el siglo IX y que forma parte del folclore de un gran número de grupos étnicos. Capítulo 2: ANALISIS DEL ACERTIJO 2.1. DECLARACION DEL ACERTIJO: Hace mucho tiempo un granjero fue al mercado y compró un lobo, una cabra y una col. Para volver a su casa tenía que cruzar un río. El agricultor dispone de una barca para cruzar a la otra orilla, pero en la barca solo caben él y una de sus compras. Si el lobo se queda solo con la cabra se la come, si la cabra se queda sola con la col se la come. El reto del granjero era cruzar él mismo y dejar sus compras a la otra orilla del río, dejando cada compra intacta. ¿Cómo lo hizo? 2.2. METODO DE SOLUCION POR ESTADOS:  Espacio de estados: granjero, cabra, lobo, col; izquierda y derecha.  Numero de estados: 13.  Estado inicial: izquierda.  Estado final (único): pasar todos a la derecha.  Operadores : Pasa el granjero solo Pasa el granjero con el lobo Pasa el granjero con la cabra Pasa el granjero con la col  Paso de soluciones: Dejar la cabra al otro lado Vuelve Dejar el lobo del otro lado Regresar con la cabra Dejar a la col o al lobo del otro lado Vuelve Dejar a la cabra del otro lado
  6. 6. 5 2.3. AUTOMATA DEL PROCESO DE SOLUCINES:  Estados :  Diagrama del autómata : 2.4. TIPOS DE METODOS DE BUSQUEDA:  Búsqueda por anchura: - Los nodos se visitan y generan niveles - La estructura para los nodos abiertos es una cola (FIFO) - Un nodo es visitado cuando todos los nodos de los niveles superiores y sus hermanos precedentes han sido visitados
  7. 7. 6  Búsqueda por profundidad: - Los nodos se visitan y generan buscando los nodos a mayor profundidad y retrocediendo cuando no se encuentran los nodos sucesores - La estructura de los nodos abiertos es un pila (LIFO) - Para garantizar que el algoritmo acaba de imponerse un límite en la profundidad de explosión. Capítulo 3: REPRESENTACIÓN Y CASOS DEL PROBLEMA  Estado Predicado (F, W, G, C), describe la ubicación del agricultor, lobo, la cabra y la col.  Las ubicaciones posibles son el correo para este, w para oeste, banco para cada una de las 4 variables.  Estado inicial es el estado (w, w, w, w)  Estado de metas es estatal (e, e, e, e)
  8. 8. 7  Gráfico de espacio de estado, incluidas estados inseguros: 3.1 PEOR CASO: BUCLE INFINITO: Trate agricultor teniendo lobo. Cabra come la col. Inseguro? Backtrack.
  9. 9. 8 Capítulo 4: IMPLEMENTACION EN PROLOG: 4.1ALGORITMO : %Cambiar cambiar(d,i). cambiar(i,d). %Mover mover([X,X,Cabra,Col],lobo,[Y,Y,Cabra,Col]) :- cambiar(X,Y). mover([X,Lobo,X,Col],cabra,[Y,Lobo,Y,Col]) :- cambiar(X,Y). mover([X,Lobo,Cabra,X],col,[Y,Lobo,Cabra,Y]) :- cambiar(X,Y). mover([X,Lobo,Cabra,C],nada,[Y,Lobo,Cabra,C]) :- cambiar(X,Y). %Revisar esIgual(X,X,_). esIgual(X,_,X). %Verificar verificacion([Granjero,Lobo,Cabra,Col]) : esIgual(Granjero,Cabra,Lobo), esIgual(Granjero,Cabra,Col). %Hallar la solución solucion([d,d,d,d],[]). solucion(Config,[Movi|Rest]) :- mover(Config,Movi,SigConfig), verificacion(SigConfig), solucion(SigConfig,Rest).
  10. 10. 9 4.2ANALISIS DE CODIGO:  Para resolver este problema, se puede codificar la configuración de los 4 objetos (el granjero, el lobo, la cabra, la col) en forma de lista.  Si ' i ' denota la ribera izquierda y ' d ' la ribera derecha, entonces el estado inicial es el siguiente: [i, i, i, i] (Todo el mundo está en la orilla de la izquierda)  Si el granjero se va con el lobo, entonces la configuración se convierte en: [d, d, i, i] (y la cabra se come la col)  La configuración final deseada es: [d, d, d, d] (Todo el mundo está en la orilla de la derecha)  En cada movimiento, el granjero cruza el río con el lobo, la cabra, la col, o nada. Cada movimiento puede ser representado por un átomo correspondiente: lobo, la cabra, la col, y nada.  Esto se puede escribir como un predicado de movimiento(Config, Movi, SigConfig) donde : Config es una configuración Movi es uno de los cuatro movimientos básicos SigConfig es la configuración que resulta de la aplicación de esa medida a Config  Ahora, hay un movimiento cuando van el granjero y el lobo mover ([X, X, Cabra, Col], lobo, [Y, Y, Cabra, Col]): - cambio (X, Y).  que supone que un predicado de cambio se define como: cambiar (d, i). cambiar (i, d).  Uno podría haber pensado en sólo escribir: mover ([X, X, Cabra, Col], lobo, [Y, Y, Cabra, Col]).  pero en este caso X e Y anteriormente podrían unificar a cualquier átomo (por ejemplo, a la cabra), el cual no es válido.
  11. 11. 10  Ahora, uno puede codificar todos los movimientos válidos: cambiar(d, i). cambiar(i, d). mover([X,X,Cabra,Col],lobo,[Y,Y,Cabra,Col]) :- cambiar(X,Y). mover([X,Lobo,X,Col],cabra,[Y,Lobo,Y,Col]) :- cambiar(X,Y). mover([X,Lobo,Cabra,X],col,[Y,Lobo,Cabra,Y]) :- cambiar(X,Y). mover([X,Lobo,Cabra,C],nada,[Y,Lobo,Cabra,C]) :- cambiar(X,Y).  A continuación, las configuraciones deben ser probadas para la seguridad (para que nada se coma a nada). Para ello se define un predicado esIgual(X, Y, Z) que es true si al menos uno de Y o Z es igual a X. esIgual(X, X, _). esIgual (X, _, X).  La idea es que si al menos uno, la cabra o el lobo está en el mismo lado del granjero, y si al menos una, la cabra o la col, está en el mismo lado del granjero. Esto puede ser codificada como: verificacion([Granjero,Lobo,Cabra,Col]) :- esIgual(Granjero,Cabra,Lobo), esIgual(Granjero,Cabra,Col).  Una solución se define como una configuración inicial y una lista de movimientos que le lleva a la configuración del objetivo. Una solución para [d, d, d, d] sería la lista vacía (no se necesitan movimientos). De lo contrario, una solución se define recursivamente como una movida que le lleva a una configuración segura, seguido de una solución.
  12. 12. 11  Esta recursión es fácilmente codificada como: solucion([d,d,d,d],[]). solucion(Config,[Movi|Rest]) :- mover(Config,Movi,SigConfig), verificacion(SigConfig), solucion(SigConfig,Rest).  ADVERTENCIA: Una solución podría ser arbitraria larga (por ejemplo, insertar un número infinito de nada se mueve cuando la cabra está en un lado y el lobo y la col en la otra). Pero aquí se pidió una solución de una longitud específica, se le obliga a: ? - Length (X, 7), solución ([w, w, w, w], X). X = [cabra, nada, el lobo, la cabra, la col, la nada, la cabra] CONCLUCIONES:  El problema ayuda a incrementar la capacidad de análisis de la persona dado que se utiliza mucha lógica para su análisis.  El documento plantea una implementación a un acertijo matemático con más de 1000 años de antigüedad.  Para el desarrollo del problema se estructuro en forma de árbol por lo cual se utilizó el lenguaje de programación prolog y métodos de búsqueda por profundidad ANEXO:  Applications of C++ Programming: Administration, Finance, and Statistics. http://books.google.com.pe/books?id=I8bq7QaM7UsC&pg=PA339&dq=wolf+c abbage+goat&hl=es&sa=X&ei=u0izU5icNriosAT7lYHoBA&ved=0CBkQ6AEwAA# v=onepage&q=wolf%20cabbage%20goat&f=false BIBLIOGRAFIA:  VICENTE MEAVILLA, el lobo la cabra y la col 272 pags

×