Sei sulla pagina 1di 7

Conferencia #3: El modelo computacional de la programacin lgica.

Sumario:
4.1 Caractersticas de las sentencias de un programa lgico.
4.2 Reglas recursivas.
Introduccin:
En las conferencias 1 y 2 se han visto los tres tipos de sentencias de la programacin
lgica: hechos, interrogantes y reglas, as como las reglas de inferencias para contestar
una interrogante a un programa lgico.
oda esto viene dado por la forma de las sentencias en !rolog, "ue se denominan
cl#usulas de $orn, en honor al lgico %lfred $orn, "uien las introdu&o en 1'(1 y del cual
se reportan tra)a&os so)re *gica, +isin en ro)tica, etc. Ro)ert ,o-als.i utili/ este
tipo de cl#usula en su o)ra 0*ogic for !ro)lem 1olving2 3*gica para la resolucin de
pro)lemas4, en 1'5'.
4.1 Caractersticas de las sentencias de un programa lgico.
*as cl#usulas de $orn son 6tiles por"ue para ellas e7iste un procedimiento de inferencia
de tiempo polinomial. 1u forma es la siguiente:
84 !
1


!
2
...!
n
9
:onde !
i
y 9 son #tomos no negados o literales positivos.
1e conoce por la *gica ;atem#tica "ue esta e7presin es e"uivalente a:
3 !
1


!
2
... !
n
4 9
!
1


!
2
... !
n
9
!or la forma "ue toman estas sentencias se dice "ue tienen al menos un literal positivo.
Este tipo de cl#usula presenta dos casos especiales, considerados los m#s importantes:
1.< 1i 9 es la constante =%*1> los !
i
no pueden ser todos +ER:%:ER>1 por"ue
verdadero no implica falso.
2.< Cuando n?1 y !
1
?+erdadero entonces 9 es verdadero por"ue verdadero no puede
implicar falso.
Recuerde "ue la ta)la de verdad de la implicacin lgica 3!94 es:
! 9 ! ! 9
1 @ 1 @
1 @ 1 1
0 1 0 0
1 1 @ 1
>)serve en la pen6ltima fila "ue verdadero no puede implicar falso.
Ao siempre es posi)le e7presar todas las )ases de conocimiento como un con&unto de
cl#usulas de $orn, pero con las "ue s sea posi)le hacerlo, el procedimiento de inferencia
es sencillo: se utili/a ;odus !onens Bniversal o Cenerali/ado.
*a sentencia 84 se escri)e en !rogramacin *gica: 9 !
1
,

!
2
, ... , !
n
.
1e aprecia "ue a la i/"uierda de esta cl#usula solo aparece un literal y en su parte derecha
una con&uncin de literales. am)iDn cuando n?@ solo se tiene un literal 9, "ue es el caso
de un hecho "ue siempre se considera verdadero. *a interrogante es otra cl#usula de $orn
donde no est# la conclusin o ca)e/a 9.
Como los programas lgicos est#n compuestos solo por cl#usulas y no por e7presiones
lgicas ar)itrarias da lugar a dos importantes consecuencias:
1.< :e)ido a la representacin uniforme se puede escri)ir un sencillo y potente intDrprete
"ue resulte efica/ para reali/ar la inferencia a partir de un programa lgico y una
interrogante.
2.< *a lgica de los sistemas de cl#usulas de $orn es decidi)le 3al contrario de la lgica
de predicados de primer orden completa4.
4.2 eglas recursi!as
En programacin lgica las reglas recursivas con muy importantes. Como en otros
lengua&es las definiciones recursivas son posi)les, pero en programacin lgica casi son
imprescindi)les.
!odemos decir "ue una regla recursiva se define a partir de s misma; esto es, el
predicado que aparece en la cabeza de la regla es tambin uno de los objetivos del
cuerpo.
E7isten varios casos cl#sicos donde vemos recursividad. !or e&emplo cuando tratamos un
pro)lema de inferencia de transitividad. Bna relacin transitiva puede verse como:
r3E,F4G r3E,H4, r3H,F4.
Esta regla de transitividad est# presente en varios e&emplos, como cuando tenemos &efes
en una organi/acin. !or e&emplo las personas "ue tra)a&an en el departamento de
matem#tica tienen un &efe de departamento, a su ve/ el &efe de departamento tiene un
vicedecano docente "ue es su &efe, y por transitividad &efe del miem)ros del
departamento, este vicedecano tiene un &efe 3decano4 "ue por transitividad es &efe del &efe
de departamento y de los miem)ros del departamento, y as sucesivamente.
ICmo representaramos esta relacin de &efeJ
En nuestro programa lgico tendramos un predicado &efeKde3Lefe, 1u)ordinado4, donde
se pueda manifestar los diferentes hechos "ue definen los &efes inmediatos superiores.
Como por e&emplo:
&efeKde3maria, vicente4.
&efeKde3vicente, carlos4.
&efeKde3vicente, ricardo4.
&efeKde3vicente, al)erto4.
!ara representar la regla de &efe superior podemos )asarnos en la regla de transitividad.
!ero en este caso, en una regla un poco m#s general. 1uponga "ue lo definimos seg6n
defini encima, "uedara:
&efeKde3E,F4:<&efeKde3E,H4, &efeKde3H,F4.
Cuando reali/amos la interrogante
J< &efeKde3maria, carlos4.
Responder# positivo ya "ue e7isten los hechos &efeKde3maria, vicente4 y &efeKde3vicente,
carlos4, de forma "ue unificar#n directamente. !ero esto puede provocar un ciclo infinito,
si se pide una solucin alternativa o si se pregunta:
J< &efeKde3maria, &ose4.
Fa "ue no encontrar# ninguno de los hechos "ue unifi"uen con los o)&etivos de la regla
definida anteriormente y se seguir# llamando ella misma.
Esto significa "ue hay "ue tener mucho cuidado cuando definamos una regla recursiva.
:e)emos tener siempre una condicin de parada y adem#s en una regla "ue se llame ella
misma de)emos tener un o)&etivo "ue no sea el de la llamada recursiva, "ue permita parar
el posi)le ciclo.
> sea, la forma de definir las reglas recursivas para un caso de inferencia recursiva puede
ser como sigue:
rKtrans3E,F4 :< r3E,F4.
rKtrans3E,F4 :< r3E,4, rKtrans3,F4.
+Dase "ue se ha definido un primer predicado: r_trans(X,Y) ! r(X,Y), "ue tiene como
o)&etivo un predicado "ue sirve de condicin de parada 3puede ser un hecho o una regla4.
En el segundo predicado, se tiene como o)&etivos de esa regla un primer predicado 3como
el anterior4 y como segundo o)&etivo la llamada recursiva. =&ese "ue no es lo mismo
ha)er puesto:
rKtrans3E,F4 :< rKtrans3,F4, r3E,4.
Esto de)e tratar de evitarse, ya "ue si ponemos la llamada recursiva como primer o)&etivo
esto pude caer en un ciclo infinito.
En el e&emplo puesto de &efe pude definirse como:
&efeKsuperior3!ersona,>tra!ersona4:<&efeKde 3!ersona,>tra!ersona4.
&efeKsuperior3!ersona,>tra!ersona4:<&efeKde 3!ersona,%lguien4,
&efeKde3%lguien,>tra!ersona4.
>tro e&emplo es si definimos una relacin ancestro o predecesor, "ue significa "ue E es
predecesor de F si es su progenitor, o es progenitor de su progenitor o es M., y as
sucesivamente.
E&emplo:
predecesor3E,H4 :< progenitor3E,H4.
predecesor3E,H4 :< progenitor3E,F4,
predecesor3F,H4.
>)serve "ue en este procedimiento predecesor, la primera regla no es recursiva, sin
em)argo la segunda s lo es, ya "ue se define predecesor en funcin de s mismo. !ara
evitar un ciclo infinito tiene "ue lograrse "ue en alguna llamada recursiva a predecesor
se satisfaga la primera regla.
Bn diagrama "ue ilustra la formulacin recursiva de la relacin predecesor es:
>tro de los pro)lemas en los "ue podemos encontrar estructuralmente un lengua&e
recursivo es cuando tratamos de definir una relacin conmutativa
p3E,F4:<p3F,E4.
pero esta declaracin, como hemos visto anteriormente nos provoca un ciclo infinito en
!rolog, si no e7iste una cl#usula con la "ue unifi"ue. !ara evitar esto, en estos casos se
recomienda, definir otra relacin:
p23E,F4:<p3E,F4.
p23E,F4:<p3F,E4.
Bn e&emplo lo encontramos en la conferencia 2 cuando definimos la relacin
conectividad entre las ha)itaciones, para el pro)lema de Nuscar a $andi.
progenitor
predecesor
predecesor
>tro caso tpico de recursividad es cuando estamos en presencia de una regla de
inferencia por herencia. !or e&emplo, "ue la propiedad p de X tiene el valor "alue si
pro)amos "ue X est# relacionado con Y por el predicado r y Y tiene el valor "alue por el
predicado p. Este caso puede verse muy parecido a la inferencia por transitividad.
p3E, +alue4:< r3E,F4, p3F,+alue4.
:e tal manera "ue r es un predicado definido en nuestro programa lgico. %"u tam)iDn
hay "ue tener cuidado con el orden de los o)&etivos en el cuerpo de la regla, para evitar
ciclos infinitos.
Estos son los casos "ue se presentan muy a menudo en pro)lemas de inteligencia
artificial.
En cual"uier variante de regla recursiva siempre hay "ue tener en cuenta las condiciones
de parada para no caer en un ciclo infinito, o hacerlo menos eficiente.
esumen
*a regla es la sentencia m#s importante de la programacin lgica permitiendo
esta)lecer nuevas relaciones entre o)&etos a partir de otras relaciones esta)lecidas.
ICu#les son las partes integrantes de una reglaJ
- *as condiciones o antecedentes u)icadas en la parte derecha de la regla,
denominada tam)iDn cuerpo. El cuerpo es una lista de o)&etivos separados por
comas. *as comas representan con&unciones.
- *a conclusin o consecuente en la parte i/"uierda es denominada ca)e/a.
ICu#l es la diferencia esencial entre un hecho y una reglaJ
*os hechos son siempre verdaderos y las reglas especifican relaciones, propiedades
"ue pueden ser verdaderas si ciertas condiciones esta)lecidas son satisfechas.
Bn hecho constituye un caso particular de una regla donde el cuerpo no e7iste o no
est# presente.
ICmo se escri)e en programacin lgica el siguiente enunciadoJ
E y F: F es un descendiente de E si E es un progenitor de F.
Respuesta: descendiente3F,E4 progenitor3E,F4.
*as interrogantes slo tienen cuerpo.
En el c#lculo de un programa lgico o de una deduccin lgica, una varia)le puede
ser sustituida por otro tDrmino, en este caso se dice "ue la varia)le se ha instanciado.
*as varia)les "ue aparecen en una regla se cuantifican universalmente a travDs del
cuantificador universal 34, es posi)le tam)iDn "ue las varia)les "ue slo aparecen en
el cuerpo y no en la ca)e/a de la regla se cuantifi"uen e7istencialmente 34.
Reglas recursivas: 1on las reglas "ue se definen a partir de s mismasO esto es, el
predicado "ue aparece en la ca)e/a de la regla es tam)iDn uno de los o)&etivos del
cuerpo.
"i#liografa:
1. 8ntroduccin a la 8nteligencia %rtificial.
Colectivo de autores.
:e este li)ro, "ue aparece tam)iDn en la red, estudiar los aspectos tratados en la
conferencia en Captulo (: !aradigma de la !rogramacin *gica.
2. !rolog: !rogramming for %rtificial 8ntelligence de 8van Nrat.o 3*i)ro del mdulo
en copia dura y formato digital, ver carpeta de la asignatura4.