Sie sind auf Seite 1von 26

CLASE 1 8 de Noviembre del 2011

Facultad de Ingeniería de Sistemas

Programación Lógica

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.
Asignaturas teóricos-prácticos de aula y/o laboratorio. El promedio Final será:

Donde:

EP  2 EF  PP PF  4

EP= Examen Parcial EF= Examen Final PP= Promedio de Prácticas


•“The Art of Prolog”, Leon Sterling & Ehud Shapiro, MIT Press •“Programming in
Prolog”, Clocksin & Mellish, SpringerVerlag • "Logic, Programming and Prolog", Ulf
Nilsson and Jan Maluszynski , Segunda Edició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. AddisonWesley • “Lisp”, HENRY,
PATRICK; HORN , Tercera Edición, Ed. McGraw Hill
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
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.
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.
¿Que es inteligencia?
Inteligencia es la capacidad para resolver problemas nuevos
Tipos de Inteligencia
• • • • • • • Verbal Lingüística Lógico Numérica Espacial Física o Kinestésica
Intrapersonal o Emocional Interpersonal Natural o Ambiental (Steve Irwin)
(Mozart, Beethoven, etc)

• Musical
Áreas de la IA
• • • • • Sistemas Expertos Juegos Robótica Visión Artificial Prueba de teoremas y
matemáticas simbólica • Autoaprendizaje • Lenguaje Natural
Sistemas Expertos
Representación del Conocimiento

Representación Interna

Representación Interna

Datos de Entrada

Procesos Internos

Datos de Salida
1. 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) Patricia es alumna b) Patricia les gustan los patos c) Pato es un ave d) Ave
nacen de huevos
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: ( Patricia (es alumna) (le gustan los patos) ) ( Pato (es un ave) ) ( Ave
(nacen de huevos) )

LISP
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
( Patricia, alumna ) Le Gusta ( Patricia, patos ) Es ( pato, ave ) Nacen de ( ave,
huevos )
Verbo Sustantivo

PROLOG
Ejercicio # 1
1. Se define un sistema por las reglas: a) A, B y C son bloques. b) M es una mesa.
c) A esta encima de M, C encima de A y B encima de C. d) A es de color Azul, B es
Blanco y C es Rojo. Representar el conocimiento por medio de: • Grafo • Estructura
• Predicados
Solución # 1
B C A M
Ejercicio # 2
Dada las siguientes relaciones a) Si Daniel, Betsy y Sandra son hijos de Gustavo y
Marlene y b) Luis, Rosa y Patricia son hijos de Daniel. c) Kelly y Mayra son hijas
de Betsy d) Kelly, Mayra, Luis, Rosa y Patricia son Nietos de Gustavo y Marlene.
Representar el conocimiento mediante: • Grafos, • Estructura y • Predicados
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.
La rana saltarina
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.
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

sperez@utp.edu.pe