28.04.2013 Views

3.3 Teoria de la demostració - La Salle

3.3 Teoria de la demostració - La Salle

3.3 Teoria de la demostració - La Salle

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Estratègia d’execució (el control)<br />

En l’exemple anterior hem vist que l’estratègia per l’execució d’un programa inclou els<br />

següents processos:<br />

1. Incloure objectius en <strong>la</strong> llista d’objectius com a resultat <strong>de</strong> <strong>la</strong> resolució entre un<br />

objectiu i una reg<strong>la</strong>.<br />

2. Seleccionar una reg<strong>la</strong>, entre les possibles, per resoldre un objectiu.<br />

3. Seleccionar el proper objectiu, <strong>de</strong> <strong>la</strong> llista d’objectius a resoldre.<br />

Visual Prolog segueix <strong>la</strong> següent estratègia. Sigui o1, o2,...en què <strong>la</strong> llista d’objectius a<br />

<strong>de</strong>mostrar en un pas <strong>de</strong>terminat <strong>de</strong> l’execució.<br />

1. Seleccionar l’objectiu més a l’esquerra (o1). Efectivament, es <strong>de</strong>mostraran<br />

d’esquerra a dreta.<br />

2. Seleccionar una reg<strong>la</strong> r1 :- p1,p2,...pm. <strong>de</strong> manera que o1 i r1 tinguin el mateix nom<br />

<strong>de</strong> predicat i els seus termes (arguments) siguin unificables. Com <strong>la</strong> lògica permet tenir<br />

predicats no <strong>de</strong>terministes, aleshores po<strong>de</strong>n haver-hi diverses regles potencials per<br />

resoldre l’objectiu. Prolog selecciona <strong>la</strong> primera en l’ordre que apareixen en el<br />

programa. Fixeu-vos doncs en <strong>la</strong> importància <strong>de</strong> l’ordre ja que és una manera<br />

d’intervenir en l’estratègia.<br />

3. Aplicar <strong>la</strong> reg<strong>la</strong> seleccionada. L’execució <strong>de</strong> <strong>la</strong> reg<strong>la</strong> consisteix en:<br />

- unificar els termes <strong>de</strong> l’objectiu i <strong>de</strong>l predicat <strong>de</strong> <strong>la</strong> part esquerra <strong>de</strong> <strong>la</strong> reg<strong>la</strong>.<br />

- aplicar l’unificador als predicats <strong>de</strong> <strong>la</strong> part dreta <strong>de</strong> <strong>la</strong> reg<strong>la</strong> i els objectius restants <strong>de</strong><br />

<strong>la</strong> llista que falten per <strong>de</strong>mostrar.<br />

- substituir l’objectiu que s’està <strong>de</strong>mostrant per als predicats unificats <strong>de</strong> <strong>la</strong> part dreta<br />

<strong>de</strong> <strong>la</strong> reg<strong>la</strong>.<br />

Aquests predicats s’insereixen com a nous objectius en <strong>la</strong> part esquerra <strong>de</strong> <strong>la</strong> llista<br />

d’objectius<br />

Backtracking<br />

En l’estratègia <strong>de</strong>scrita anteriorment, a l’hora d’escollir i aplicar una reg<strong>la</strong> <strong>de</strong> les<br />

possibles per <strong>de</strong>mostrar un objectiu, po<strong>de</strong>n presentar-se dues situacions:<br />

1. Algun o tots els objectius nous introduïts no po<strong>de</strong>n ser provats.<br />

2. Els objectius nous introduïts po<strong>de</strong>n ser provats però hi ha altres regles que també<br />

ens portarien a una solució.<br />

En els dos casos Visual Prolog aplica <strong>la</strong> tècnica <strong>de</strong> backtracking. És a dir, torna enrere<br />

<strong>de</strong>sfent el que ha fet per seguir un altre camí aplicant <strong>la</strong> següent reg<strong>la</strong> possible. En el<br />

primer cas és necessari per continuar provant i per esgotar tots el camins per trobar<br />

una solució. En el segon cas, es fa per trobar totes les solucions possibles. Aquesta és<br />

una característica espectacu<strong>la</strong>r <strong>de</strong> Prolog que fa que sigui un llenguatge <strong>de</strong><br />

programació molt po<strong>de</strong>rós.<br />

En aquesta mateixa sessió donarem exemples per il·lustrar aquest mecanisme.<br />

105

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!