Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Concapanxxiii Prolog 090615181944 Phpapp01
Concapanxxiii Prolog 090615181944 Phpapp01
Inteligencia Artificial
Presentado por:
Egdares Futch H.
Qu es la IA ?
Disciplina que sistematiza y
automatiza tareas intelectuales
para crear mquinas que:
Acten como
humanos
Piensen como
humanos
Acten
racionalmente
Piensen
racionalmente
Contra:
Pensar y actuar
racionalmente
Siempre tomar la mejor decisin
con lo
que
se tenga
a mano
Conexin
a la
economa,
investigacin
de operaciones,
(tiempo,
conocimiento, recursos)
y teora
de control
Pero ignora el rol de la conciencia, emociones, miedos,
Conocimiento perfecto, recursos
ilimitados razonamiento lgico
Conocimiento imperfecto, recursos
limitados racionalidad limitada
Pensar (meditacin de
Feynman)
Todos conocemos la mente
humana porque tenemos una
Pensar no requiere instrucciones
Algunas caractersticas
Frontera entre programacin tradicional e IA
La IA es programacin
Frontera se mueve: cuando algo funciona ya no es IA
La IA se ocupa de aquellos problemas para los que no existen
soluciones algortmicas satisfactorias y de aquellos que requieren el
manejo explcito del conocimiento
Introduccin a Prolog
Prolog es el lenguaje ms difundido
en la programacin lgica. Algunas
de sus caractersticas son:
Ms
Ms
Las clasulas proveen de una forma
conveniente para analizar casos e
indeterminismo.
Algunas veces se requiere de
caractersticas que no pertenecen a la
lgica pura.
Un programa en Prolog puede ser
considerado como una base de datos
relacional que contiene reglas y hechos.
Prolog es un lenguaje
declarativo
Las clasulas muestran lo que es cierto
sobre un problema, en vez de instrucciones
de cmo lograr la solucin.
El sistema interno de Prolog usa las clasulas
para buscar como lograr la solucin
buscando en el espacio de soluciones.
No todos los problemas pueden ser resueltos
de esta forma, por lo que incorpora
sentencias extralgicas.
{
list t = list u = copylist(a);
while (t.tail != nil) t = t.tail;
t.tail = b;
return u;
}
En un lenguaje funcional
En un lenguaje declarativo
cat(a,b)
if b = nil then a
else cons(head(a),
cat(tail(a),b))
cat([], Z, Z).
cat([H|T], L, [H|Z]) :- cat(T, L, Z).
Sintaxis completa de
Prolog
Trmino
Constante
Trmino compuesto
Nombra un individuo
Atomo
alpha17
pago
juan_perez
gripe
+
=/=
12Q&A
Nmero
0
1
57
1.618
2.04e-27
-13.6
gusta(juan, maria)
libro(cervantes, quijote)
f(x)
[1, 3, g(a), 7, 9]
-(+(15, 17), t)
15 + 17 - t
Variable
Reemplaza un individuo
que no puede ser nombrado
cuando el programa se
escribe
X
Quincena
Enfermedad
_257
_
Trminos compuestos
padres(manchas, pongo, perdita)
componentes (trminos)
perdita
Estructura de los
programas
Los programas consisten en procedimientos
Los procedimientos consisten en clasulas
Cada clasula es un hecho o una regla
Los programas se ejecutan haciendo preguntas
Por ejemplo
Ejemplo
Predicado
Procedimiento para elefante
Hechos
Clasulas
Regla
elefante(dumbo).
elefante(jumbo).
elefante(X) :- gris(X), mamifero(X),
tieneTrompa(X).
Ejemplo
Pregunta
?- elefante(jumbo).
yes
?- elefante(pongo).
Respuesta
no
Interpretacin de las
clasulas
Las clasulas pueden leerse de forma declarativa o
procedimental
Interpretacin
declarativa
Interpretacin
procedimental
Unificacin
Dos trminos se unifican si pueden sustituirse
variables de tal forma que los trminos se
hacen idnticos.
El algoritmo de unificacin procede por
descenso recursivo de los dos trminos.
Constantes unifican si son idnticas
Variables unifican con cualquier trmino,
incluyendo otras variables
Trminos compuestos unifican si el functor y
componentes unifican.
Ejemplos
f
f
d
a
X
b
Ejemplos
f
f
Z
a
X
b
Z
c
Ejemplos
f
f
Z
a
c
b
Z
c
Listas
Las listas en Prolog son similares a
las de otros lenguajes ya que se
compone de trminos de cualquier
tamao agrupados.
La lista de largo 0 se llama nil, y se
escribe [].
La lista de largo n es [cabeza,cola],
donde cola es una lista de largo n-1.
Reevaluacin (backtracking)
y no determinismo
miembro(X, [X|_]).
miembro(X, [_|T]) :- miembro(X, T).
Determinstico
?- miembro(fred, [john, paul, fred, ringo]).
yes
No determinstico
Controlando la
reevaluacin
color(cereza, rojo).
color(banana, amarillo).
color(manzana, rojo).
color(manzana, verde).
color(naranja, naranja).
color(X, desconocido).
?- color(banana, X).
X = amarillo
?- color(sandia, X).
X = desconocido
?- color(cereza, X).
X = rojo;
X = desconocido;
no
Casos de aplicacin
Sistemas expertos
Un sistema informtico que simula el
proceso de aprendizaje, de
memorizacin, de razonamiento, de
comunicacin y de accin de un experto
humano en una determinada rama de la
ciencia, suministrando, de esta forma,
un consultor que puede sustituirle con
unas ciertas garantas de xito
Casos de aplicacin
Sistemas expertos
Estas caractersticas le permiten
almacenar datos y conocimiento, sacar
conclusiones lgicas, tomar decisiones,
aprender de la experiencia y los datos
existentes, comunicarse con expertos
humanos u otros Sistemas Expertos,
explicar el porqu de las decisiones
tomadas y realizar acciones como
consecuencia de todo lo anterior
Casos de aplicacin
Procesamiento de lenguaje natural (NLP)
Casos de aplicacin
Asignacin de recursos limitados
Casos de aplicacin
Diseo experto de productos
Casos de aplicacin
Verificacin de circuitos digitales
Casos de aplicacin
Configurador (Wizard) de red de Windows
NT
Muchas gracias!
efutchh@unitec.edu
http://maestros.unitec.edu/~efut
ch