Professional Documents
Culture Documents
Temas de la Inteligencia
Artificial a tratar:
Programacin
Lgica
Sistemas Basados en
Conocimiento
padre(felix, manuel)
Este hecho expresa que Flix es el padre de Manuel, o que la relacin padre se
establece entre los individuos nombrados Flix y Manuel.
A la relacin se le denomina predicado. Los nombres de los individuos son
constantes.
Cmo usted puede expresar la relacin de que 2 ms 1 es 3?.
suma(9,9,18).
Un conjunto finito de hechos constituye un programa. Esta es la forma
ms simple de un programa lgico.
Un conjunto de hechos es tambin una descripcin de una situacin.
Interrogantes:
Constituyen un medio de recuperar informacin desde un programa
lgico. Una interrogante averigua si cierta relacin est establecida entre
objetos. Por ejemplo, la interrogante :
? suma (0, 0, 0)
la pregunta a esta interrogante es s.
Sintcticamente las interrogantes y los hechos son similares, pero
pueden ser distinguidos por el contexto.
Un hecho P
?P pregunta si P es verdadero.
Otro ejemplo de programa es el que establece las relaciones binarias
entre dos personas: padre y madre, y las relaciones unarias: femenino y
masculino
Programa II:
padre(manolo, hugo).
padre(manolo, enrique).
padre(manolo, rene).
padre(hugo, grisel).
padre(rene, omara).
padre(rene, alfredo).
padre(rene, renecito).
madre(dalida, grisel).
femenino(grisel).
femenino(omara).
masculino(manolo).
masculino(hugo).
masculino(enrique).
masculino(alfredo).
masculino(rene).
Otro ejemplo es el siguiente:
Buscar a Handi.
Oficina
Sala
Cocina
Stano
Comedor
.
habitacion(cocina).
habitacion(sala).
habitacion(oficina)
habitacion(comedor)
habitacion(sotano)
localizacion(computadoras,oficina).
Variables de la Programacin Lgica.
Una variable de la Programacin Lgica es til para indicar un
objeto no especificado. Consideremos su uso en interrogantes.
Supongamos que nosotros deseamos conocer de quin Hugo es
el padre.
Una va es:
?padre(hugo,omara).
?padre(hugo,alfredo).
Hasta encontrar la respuesta afirmativa con la interrogante
?padre(hugo,grisel).
Una variable en la interrogante evita el tanteo.
?padre(hugo,X). , para la cual la respuesta es X=
grisel.
Las variables usadas de esta forma resumen algunas interrogantes.
Una interrogante que contiene una variable pregunta si existe un
valor de la variable que haga que la interrogante sea una
consecuencia lgica del programa.
Las variables en los programas lgicos se comportan diferentes
que las variables en lenguajes de programacin convencionales.
?padre(hugo, X)
Se lee:
X tal que hugo es padre de X?.
Generalizando:
La interrogante ?p(t1,t2,...,tn)
X2,..., Xk se lee:
? habitacion (X)
O se quiere saber qu objetos hay en la oficina, se escribe:
?localizacion(X,oficina).
Hechos universales.
Las variables son tiles tambin en los hechos.
Ejemplo: Supongamos que todas las personas que constituyen la
familia descrita en el programa II les gusta la guayaba:
gusta (manolo,guayaba).
gusta (hugo,guayaba).
gusta(X,guayaba).
Se deduce:
gusta (enrique,guayaba).
De este modo estamos introduciendo una regla de deduccin, la
instanciacin:
Desde una sentencia P cuantificada universalmente se deduce una
instancia de sta P, para cualquier sustitucin .
Cmo expresar la existencia del elemento neutro para la suma?.
suma(0,X,X).
Y se lee: X, 0 ms X es X.
La interrogante suma(0, 2, 2)? Provoca que se busque un hecho
para el cual la interrogante es una instancia.
Teniendo en cuenta el hecho anterior la respuesta es afirmativa.
Cul es la instancia de los objetivos siguientes?:
suma (0,3,Y)?
aplicando la sustitucin {Y = 3} se
tiene la instancia
suma (0, 3, 3)
suma (0,X,X)?
aplicando la sustitucin {X = 3} se
tiene la instancia suma (0, 3, 3)