Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Monografia
1. Universidad Nacional De Trujillo
Escuela De Informática
PROGRAMACION EN LOGICA Página 1
UNIVERSIDAD NACIONAL DE TRUJILLO
FACULTAD DE CIENCIAS FISICA Y MATEMATICAS
INGENIERIA INFORMÁTICA
CURSO: PROGRAMACIÓN EN LOGICA
“PROBLEMA: EL LOBO, LA CABRA Y LA COL”
ELABORADO POR:
BALTODANO RODRIGUEZ,Byron Bryan
BARDALES LEQUERICA,Brenda Josselyn
LAZARO MAURICIO,Carlos Antonio
PROFESOR:
DIAZ PULIDO JOSE ARTURO
2014-I
2. Universidad Nacional De Trujillo
Escuela De Informática
PROGRAMACION EN LOGICA Página 2
INDICE
Pág.
DEDICATORIA.……………………………………………………… 3
INTRODUCCION…………………………………………………...... 4
CAPITULO I
DESCRIPCIÓN DEL PROBLEMA.............................................. 5
CAPITULO II
HISTORIAS Y VARIACIONES……………………………………….. 6
CAPITULO III
RESOLUCIÓN DEL PROBLEMA EN EL
ESPACIO DE ESTADOS…………..…………………………………...7
3.1. Resolución
3.2. Representacion de Estados
3.3. La construcción Grafica del Estado de Transición
CAPITULO IV
PROGRAMA EN PROLOG……………………………………………….11
CONCLUSIONES…………………………………………………………14
BLIOGRAFIA ……………………………………………………….15
3. Universidad Nacional De Trujillo
Escuela De Informática
PROGRAMACION EN LOGICA Página 3
DEDICATORIA
Este trabajo lo dedicamos a
dios todo poderoso por darnos
fuerza y valor para seguir
adelante en nuestra carrera
Este trabajo lo dedicamos a
nuestros padres que con su apoyo
moral y económico
que nos brindan día a día
para seguir adelante.
4. Universidad Nacional De Trujillo
Escuela De Informática
PROGRAMACION EN LOGICA Página 4
INTRODUCCION
A lo largo de los años se han ido creando múltiples juegos de diversos tipos, entre
ellos están los juegos lógicos. Estos juegos están orientados más a los niños que
al público en general, ya que permiten hacerles una pequeña introducción a la
inducción e imaginación. Además permite agilizar un poco la habilidad en
matemáticas, lógica e incluso imaginación. Ya que permiten ver los problemas de
diversas perspectivas en búsqueda de una solución. En este trabajo se plantea el
juego del Granjero, la cabra, la col y el Lobo. Es uno de los juegos más conocidos
de Lógica, se sabe que es uno de los juegos que forma parte del folclore de un
número de grupos étnicos.
5. Universidad Nacional De Trujillo
Escuela De Informática
PROGRAMACION EN LOGICA Página 5
CAPITULO I:
DESCRIPCIÓN DEL PROBLEMA
Un granjero y su lobo, la cabra y el repollo vienen a la orilla de un río que
quieren cruzar.
Hay un barco en la orilla del río que sólo el agricultor puede remar.
El agricultor puede tener como máximo un otro objeto además de él en un
cruce.
Si el lobo es dejado con la cabra, el lobo se comerá la cabra
Si la cabra es dejada con la col, la cabra se comerá la col
6. Universidad Nacional De Trujillo
Escuela De Informática
PROGRAMACION EN LOGICA Página 6
CAPITULO II
HISTORIAS Y VARIACIONES
Este acertijo es un forma parte de los denominados “puzzles de cruzar el río”, en
los que el objetivo es mover una serie de objetos al otro lado del río siguiendo una
serie de normas.
La aparición más temprana de este problema es en el manuscrito
medieval Propositiones ad Acuendos Juvenes, los tres objetos son un lobo, una
cabra y una col. Existen variaciones de este acertijo siendo los objetos una cabra,
una oveja y un repollo;3 ;2 , p. 26 un zorro, una gallina y unas semillas;4 un zorro, un
ganso y una mazorca de maíz5 y una pantera, un cerdo y unas gachas.6 La lógica
del acertijo sigue siendo la misma.
Este acertijo ha formado parte del folclore de los afroamericanos, Camerún, Cabo
Verde, Dinamarca, Etiopía, Ghana, Italia, Rusia, Rumania, Escocia, Sudán, Ugand
a, Zambia yZimbabue.2 , pp. 26–27;7 En algunos lugares de África, se han encontrado
variaciones del juego en las cuales la barca no puede llevar dos objetos en lugar
de sólo uno.2 , p. 27.
Este acertijo era uno de los favoritos de Lewis Carroll,8 y ha sido incluido en varios
libros de matemática recreativa.2 , p. 26.
El acertijo también ha sido parodiado en el episodio Adiós, Maggie, adiós de
la temporada 20 de la serie de animación Los Simpson. En él, Homer debe cruzar
un río con Maggie,Santa's Little Helper y un veneno para ratas. No puede dejar al
perro con Maggie ni a Maggie con el veneno.
7. Universidad Nacional De Trujillo
Escuela De Informática
PROGRAMACION EN LOGICA Página 7
CAPITULO III
RESOLUCIÓN DEL PROBLEMA EN EL
ESPACIO DE ESTADOS
2.1. Resolución:
2.1.1 Espacio de estados: granjero, cabra, lobo, col; izquierda y derecha.
2.1.2 Numero de estados: 13
2.1.3 Estado inicial : izquierda
2.1.4 Estado final (único) : pasar todos a la derecha
2.1.5 Operadores :
Pasa el granjero solo
Pasa el granjero con el lobo
Pasa el granjero con la cabra
Pasa el granjero con la col
2.1.6 Solución :
Deja a la cabra al otro lado
Vuelve
Deja al lobo en el otro lado
Regresa con la cabra
Deja la col o al lobo en el otro lado
Vuelve
Deja la cabra al otro lado
9. Universidad Nacional De Trujillo
Escuela De Informática
PROGRAMACION EN LOGICA Página 9
2.2. RepresentacióndelEstado:
Vamos a definir un estado de los rompecabezas por la ubicación del
grangero (F), el Lobo (W), cabra (G), y la col (C). Después de cada paso de
la embarcación, cada entidad debe ser en la orilla izquierda.
Cada estado puede ser representado en anidada-lista de notación,
utilizando dos sub-listas:
- La primera sub-lista describe las entidades que figuran en la margen
izquierda
- el segundo indica las entidades de la margen derecha.
Así, el estado inicial se denota por
((F W g C) ()):
Y el estado de la meta, por
(() (F W g C)):
2.3. La construcciónGrafica delEstado de Transición:
¿Qué movimientos son posibles desde el estado inicial ((FWGC), ())?
O el granjero cruza el río para sí solo, o con uno de sus tres posesiones.
Por lo tanto hay cuatro posibles movimientos, que representamos por el
estado resultante:
1. ((W G C) (F))
2. ((G C) (F W))
3. ((W C) (F G))
4. ((W G) (F C))
10. Universidad Nacional De Trujillo
Escuela De Informática
PROGRAMACION EN LOGICA Página 10
En lo anterior, estados seguros aparecen en estados azules, y letales en
rojo. Por ejemplo, Estado 2 es letal porque la cabra puede comer la col.
Ahora podemos empezar a construir el grafo de transición de estados, que
cuando esté completo contener un nodo para cada uno de los trece
estados posibles del rompecabezas. Sus bordes se conectar cada par de
estados que son accesibles a cada otra por un solo movimiento
F
W
G
C
W
G
C
F
G
C
F
W
C
F
W
G
W
G
F
C
F
W
C
G
W
F
G
C
W
C
F
G
F
G
C
W
F
W
G C
C
F
W
G
F
W
G
C
F
C
W
G
11. Universidad Nacional De Trujillo
Escuela De Informática
PROGRAMACION EN LOGICA Página 11
CAPITULO IV
PROGRAMA EN PROLOG
resolver (Id_Problema,PMax,Solucion)
resolver_pmax(Problema,PMax,[Eo|Solucion]) :-
estado_inicial(Problema,Eo),
resolver_pmax(Problema,Eo,PMax,[Eo],Solucion).
% resolver(Id_Problema,Ei,NumPasos,Visitados,Solucion)
resolver_pmax(Problema,En,_,_,[]) :-
estado_final(Problema,En).
resolver_pmax(Problema,Ei,NumPasos,Visitados,[En|Es]) :-
NumPasos > 0,
NumPasos1 is NumPasos-1,
mover(Problema,Ei,En),
no_esta(En,Visitados),
resolver_pmax(Problema,En,NumPasos1,[En|Visitados],Es).
no_esta(_,[]).
no_esta(X,[Y|Ys]) :-
X == Y,
no_esta(X,Ys).
% representaremos el estado del problema por una estructura estado/4:
%
% estado(Granjero,Lobo,Cabra,Col)
12. Universidad Nacional De Trujillo
Escuela De Informática
PROGRAMACION EN LOGICA Página 12
% donde cada componente representa el margen del rio en que se
% encuentra cada personaje (izq o der)
% al principio todos estan al mismo lado (izq)
estado_inicial(glcc, estado(izq,izq,izq,izq)).
% al final deben estar todos al otro lado (der)
estado_final(glcc, estado(der,der,der,der)).
% movimientos posibles
% cruza el granjero con el lobo
mover(glcc,estado(X,X,Cabra,Col), estado(Y,Y,Cabra,Col)) :-
cruza(X,Y),
a_salvo(estado(Y,Y,Cabra,Col)).
% cruza el granjero con la cabra
mover(glcc,estado(X,Lobo,X,Col),estado(Y,Lobo,Y,Col)) :-
cruza(X,Y).
% no es necesario comprobar nada
% cruza el granjero con la col
mover(glcc,estado(X,Lobo,Cabra,X),estado(Y,Lobo,Cabra,Y)) :-
cruza(X,Y),
a_salvo(estado(Y,Lobo,Cabra,Y)).
% cruza el granjero solo
mover(glcc, estado(X,Lobo,Cabra,Col), estado(Y,Lobo,Cabra,Col)) :-
cruza(X,Y),
13. Universidad Nacional De Trujillo
Escuela De Informática
PROGRAMACION EN LOGICA Página 13
a_salvo(estado(Y,Lobo,Cabra,Col)).
cruza(izq,der).
cruza(der,izq).
% una configuracion es segura:
% 1) si el granjero y la cabra estan en el mismo lado del rio
a_salvo(estado(X,_,X,_)).
% 2) si el granjero y la cabra estan en lados distintos,
% el lobo y la col deben estar con el granjero
a_salvo(estado(X,X,Cabra,X)) :- X = Cabra.
14. Universidad Nacional De Trujillo
Escuela De Informática
PROGRAMACION EN LOGICA Página 14
CONCLUSIONES
1. Aprendimos un nuevo algoritmo y de esta manera se obtuvieron nuevos
conocimientos.
2. Aprendimos sobre el trabajo en equipo en que fuesen complicadas de
comprender durante la implementación del programa.
3. Este problema nos ayudo a incrementar nuestra capacidad de análisis
donde utilizamos mucha lógica.
4. Este tipo de juego lógicos nos ayudaron a incrementar mas nuestros
conocimientos
15. Universidad Nacional De Trujillo
Escuela De Informática
PROGRAMACION EN LOGICA Página 15
BIBLIOGRAFIA
1. http://es.wikipedia.org/wiki/Acertijo_del_lobo,_la_cabra_y_la_col#Historia_y
_variaciones
2. http://inteligencia2013udla.blogspot.com/2013/06/problema-acertijo-del-
lobo-la-cabra-y.html
3. http://blog.jle.im/entry/wolf-goat-cabbage-the-list-monadplus-logic-problems
4. http://www.it.uu.se/edu/course/homepage/ai/vt08/Lecture_2/