3. Prolog 2 - Inteligencia Articial Introduccin a Prolog o...

Info iconThis preview shows pages 1–6. Sign up to view the full content.

View Full Document Right Arrow Icon
Inteligencia Artifcial: Introducci´ on a Prolog Jorge Baier DCC-PUC Jorge Baier (DCC-PUC) Intro a Prolog 1/16
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Funcionamiento del Int´ erprete de Prolog Como mencion´ aramos anteriormente, le int´ erprete recibe como entrada una consulta: g 1 , g 2 ,... g m . Los literales g 1 , g 2 g m se interpretan como una lista de objetivos a ser demostrados uno a uno. Prolog determinar´ a si existe una sustituci´on θ para la cual la conjunci´ on de [ g 1 θ, g 2 θ,. . . g m θ ]sea demostrable apa rt irde l programa. El int´ erprete maneja una lista G de objetivos que inicialmente se inicializa como: G [ g 1 , g 2 g m ] . Adem´ as, maneja una sustituci´on θ inicializada en vac´ ıo. Jorge Baier (DCC-PUC) Intro a Prolog 2/16
Background image of page 2
Algoritmo de Prolog para resoluci´on de consultas Usaremos la siguiente convenci´on: GL 0 : Lista de literales correspondientes al objetivo o consulta inicial. GL : Lista de objetivos (literales positivos). S , S ± , S ± ,... : sustituciones. ren: Recibe una lista de literales y renombra las variables con nombres nuevos. PP y PP aux : Reciben una lista de objetivos y retornan una sustituci´ on o #Falso si no hay sustituci´on posible. PP aux recibe adem´ as de la lista de objetivos, un ´ ındice a una cl´ ausula dentro del programa. UMG Prolog : El procedimiento UMG sin el occurs check . c 1 , c 2 c m : Las cl´ ausulas del programa. #m : N´umero de cl´ ausulas del programa. Cabeza y Cola : dos funciones sobre reglas o listas de objetivos. Si x es una lista, Cabeza(x) es el primer elemento de x y Cola(x) es el resto de la lista. Si x es una cl´ ausula, Cabeza(x) es la Jorge Baier (DCC-PUC) Intro a Prolog 3/16
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Algoritmo de demostraci´on de Prolog Esta es una versi´ on simplifcada del algoritmo de demostraci´ on de prolog 1 . Function PP(GL,S) /* devuelve una sustituci´ on que satisfaga GL o #Falso */ { if GL=nil return(S); PP_aux(GL,S,1) } Function PP aux(GL,S,i) /* devuelve sustituci´ on que satisfaga GL o #Falso */ { cl´ ausula C’; /* variables auxiliares */ sustituci´ on S’, S’’; if i>#m return(#Falso); C’:= ren(C[i]); S’:= UMG_Prolog(Cabeza(GL),Cabeza(C’)); if S’=#Falso return(PP_aux(GL,S,i+1)); S’’:=PP(aplicarSust(S’,append(Cola(C’),Cola(GL))),composici´on(S,S’)); if S’’=#Falso return(PP_aux(GL,S,i+1)); return(S’’); } 1 En este procedimiento no se considera la posibilidad de que unodelosob jet ivos pueda corresponder al predicado extra-l´ ogico = . Tampoco se considera resatisfacci´ on de consultas. Jorge Baier (DCC-PUC) Intro a Prolog 4/16
Background image of page 4
Implementando Backtracking Si quisi´ eramos agregar la posibilidad de buscar nuevas soluciones cada vez que encuentra una, este algoritmo se complica levemente. Para ello, lo que necesitamos es utilizar continuaciones .Las continuaciones permiten recuperar ambientes de ejecuci´ on. Por ejemplo, antes de ejecutar la ´ultima instrucci´on del procedimiento PP aux : return(S’’); podr´ ıamos guardar el estado de la computaci´on en un objeto .Este objeto, llamado continuaci´on, contendr´ ıa el stack de registros de activaci´ on, los registros de la CPU y el punto en el cual se est´ a ejecutando el procedimiento.
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 6
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 03/09/2011 for the course INGENIERIA 111 taught by Professor Jorgevera during the Spring '10 term at Pontificia Universidad Católica de Chile.

Page1 / 26

3. Prolog 2 - Inteligencia Articial Introduccin a Prolog o...

This preview shows document pages 1 - 6. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online