CLASE 1
Facultad de Ingeniería de Sistemas
Programación Lógica
Ing. Saúl Pérez Vega
Ing. Saúl Pérez Vega
•
OBJETIVOS GENERALES El alumno al término del curso está capacitado para aplicar los conocimientos sobre la programación lógica y funcional aplicada con herramientas de software de programación. OBJETIVOS ESPECIFICOS Fundamentación teórica de la Programación lógica y funcional Aplicación de programación lógica con el lenguaje de programación PROLOG. Aplicación de programación funcional con el lenguaje de programación LISP. •
•
•
Ing. Saúl Pérez Vega
Asignaturas teóricos-prácticos de aula y/o laboratorio. El promedio Final será: Donde:
PF
EP EP
EP= Examen Parcial EF= Examen Final PP= Promedio de Prácticas Ing. Saúl Pérez Vega
2 EF EF PP 4
“The Art of Prolog”, Leon Sterling & Ehud Shapiro, MIT MI T Press “Programming in Prolog”, Clocksin & Mellish, SpringerVerlag "Logic, Programming and Prolog ", Ulf Nilsson Ni lsson and Jan Jan Maluszynski , Segunda Edición, Edi ción, Noviembre 2000. Prolog Programing For Artificial Inteligence . IVAN BRATKO. • •
•
•
Language Tutorial Prolog. Broendby Denmark. “Lisp”, WINSTON, P.H. y HORN, B.K.P. X. Addison-Wesley Addison-Wesley “Lisp”, HENRY, PATRICK; HORN , Tercera Edición, Ed. McGraw Hill • • •
Ing. Saúl Pérez Vega
Introducción IA Áreas de la IA Sistemas Expertos Representación del Conocimiento Programación Lógica vs Programación Funcional Fundamentos de la Programación Lógica Ing. Saúl Pérez Vega
Introducción a IA •
•
Es una rama de la ciencia de la computación que estudia los fundamentos teóricos y prácticos de sistemas que muestran características inteligentes del ser humano, como: resolución de problemas, comprensión de lenguajes, aprendizaje, razonamiento. La IA trata de encontrar técnicas para diseñar y programar computadoras que emulen y entiendan nuestras capacidades mentales.
Ing. Saúl Pérez Vega
Introducción a IA •
La inteligencia artificial estudia como lograr que las máquinas realicen tareas que, por el momento, son realizadas mejor por los seres humanos.
Ing. Saúl Pérez Vega
¿Que es inteligencia?
Ing. Saúl Pérez Vega
Ing. Saúl Pérez Vega
Inteligencia es la capacidad para resolver problemas nuevos
Ing. Saúl Pérez Vega
Memoria de elefante
Ing. Saúl Pérez Vega
Tipos de Inteligencia •
•
•
•
•
•
•
•
Verbal Lingüístic Lingüísticaa Lógico Numérica Espacial Física o Kinestésica Intrapersonal o Emocional Interpersonal Natural o Ambiental Musical
Ing. Saúl Pérez Vega
Áreas de la IA •
•
•
•
•
•
•
Sistemas Expertos Juegos Robótica Visión Artificial Prueba de teoremas y matemáticas simbólica Autoaprendizaje Lenguaje Natural
Ing. Saúl Pérez Vega
Sistemas Expertos
Ing. Saúl Pérez Vega
Representación del Conocimiento
Ing. Saúl Pérez Vega
1. Tipo Tipo Grafo o Red Semántica Emplea círculos u óvalos para representar a los objetos y arcos rotulados para las relaciones. Considerar un sistema dado por las siguientes relaciones: a) Luis es alumno b) Luis le gusta teme a los perros c) Perro es un mamífero d) Un mamífero toma leche.
Ing. Saúl Pérez Vega
2. Tipo Estructura Los objetos y las relaciones se representan mediante una colección de datos simples llamamos campos. (campo1, campo 2, . . . . . . , campo n) A su vez cada campo puede tener otros campos Ejemplo: ( Luis (es alumno) (teme perros) ) ( Perro (es mamífero) ) ( Mamífero (toma leche) )
LISP Ing. Saúl Pérez Vega
3. Tipo Predicado Cada relación se representa mediante un predicado que puede tomar el valor de Verdadero o Falso, según se cumpla o no para los objetos involucrados. Ejemplo: Es ( Luis, alumno ) Teme ( Luis, perro ) Es ( perro, mamífero ) Toma ( Mamífero, leche ) •
Verbo
Sustantivo
PROLOG Ing. Saúl Pérez Vega
Ejercicio # 1 1. Se define un sistema por las reglas: a) A, B y C son bloques. b) M es una mesa. c) A est estaa enc encim imaa de de M, M, C en enci cima ma de A y B enc encim imaa de de C. d) A es es de de col color or Az Azul, ul, B es es Bla Blanc ncoo y C es es Rojo Rojo..
Ing. Saúl Pérez Vega
Solución # 1 B C A
M
Ing. Saúl Pérez Vega
Ejercicio # 2 Dada las siguientes relaciones a) Si Dan Daniel iel,, Bet Betsy sy y San Sandr draa son son hijo hijoss de Gu Gust stav avoo y Marlene y b) Lu Luis is,, Ros Rosaa y Pa Patr tric icia ia son son hij hijos os de Da Dani niel. el. c) Ke Kellllyy y Ma Mayyra son son hi hija jass de Be Bets tsyy d) Kel Kelly ly,, May Mayra, Luis Luis,, Rosa Rosa y Pat Patric ricia ia son son Niet Nietos os de Gustavo y Marlene. •
Representar estas relaciones usando Grafos, Estructura y Predicados
Ing. Saúl Pérez Vega
Ejercicio # 3 Las tres ranas de la derecha tienen que quedar en la izquierda y viceversa. Estas ranas quieren cruzar el charco, el problema es que tres de ellas quieren ir en un sentido y las otras en el sentido contrario, así que no habiendo forma de ponerlas de acuerdo, te corresponde ayudarles. Reglas: Sólo cabe una rana en cada piedra. Si la rana está mirando a la derecha, la rana sólo irá hacia la derecha, lo mismo para la izquierda. Salta máximo de piedra a piedra o sobre otra rana si la piedra siguiente está vacia. Si te atascas, termina el juego y vuelve a empezar. Ing. Saúl Pérez Vega
La rana saltarina
Ing. Saúl Pérez Vega
Ejercicio # 4 •
•
Tres misioneros se perdieron explorando una jungla. Separados de sus compañeros, sin alimento y sin radio, sólo sabían que para llegar a su destino debían cruzar un río que les bloqueaba el paso, preguntándose que podían hacer. De repente, aparecieron tres caníbales llevando un bote, pues también ellos querían cruzar el río. Ya anteriormente se habían encontrado grupos de misioneros y caníbales, y cada uno respetaba a los otros, pero sin confiar en ellos. Los caníbales se lo comían a los misioneros cuando los superaban en número en cualquiera de las dos orillas. orill as.
Ing. Saúl Pérez Vega
Programación Lógica vs Funcional •
•
•
Los problemas de IA se escriben en lenguajes especiales como LISP o PROLOG, porque ofrecen recursos adecuados para representar y procesar datos de sistemas de inteligencia artificial, se pueden utilizar otros lenguajes convencionales como C++, Pascal, Visual Basic, etc, pero estos exigen mayor esfuerzo en el diseño y manejo de los datos del problema. LISP List Processing PROLOG Programing Logic
Ing. Saúl Pérez Vega
Ing. Saúl Pérez Vega
[email protected]
Ing. Saúl Pérez Vega