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

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

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

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

View Full Document Right 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 a partir del 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
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 cabeza de la cl´ ausula y Cola(x) es el cuerpo. Jorge Baier (DCC-PUC) Intro a Prolog 3 / 16
Image of page 3

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

View Full Document Right Arrow Icon
Algoritmo de demostraci´ on de Prolog Esta es una versi´ on simplificada 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 uno de los objetivos pueda corresponder al predicado extra-l´ ogico = . Tampoco se considera resatisfacci´ on de consultas. Jorge Baier (DCC-PUC) Intro a Prolog 4 / 16
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
Image of page 5

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

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

{[ snackBarMessage ]}

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern