• No se han encontrado resultados

Parte I: Un nuevo esquema gen´ erico CFLP(D) para la progra-

2.4. Resolutores de restricciones sobre un dominio

2.4.3. Reglas de transformaci´on de almacenes

Π ``solveD

X ¥, para indicar que k = 0. En este caso, hablaremos de una in- vocaci´on fallida del resolutor, dando lugar a un almac´en insatisfactible de la

forma ¥ = ¨ 2 ε.

Tal y como se ha definido previamente, un almac´en de restricciones Π 2 σ se dice que est´a en forma resuelta con respecto a un conjunto de variables cr´ıticas X (o simplemente en forma resuelta si X = ∅) si y s´olo si solveD(Π, X ) = Π 2 ε. En

la pr´actica, las formas resueltas pueden reconocerse mediante criterios puramente sint´acticos, de forma que una invocaci´on del resolutor solveD(Π, X ) es ejecutada

s´olo en el caso en el que Π 2 σ no est´e ya en forma resuelta con respecto a X . Siempre que un resolutor es invocado, la condici´on de correcci´on requiere que ninguna soluci´on nueva (bien tipada o no) sea introducida por el resolutor, mientras que la condici´on de completitud requiere que ninguna soluci´on bien tipada se pier- da. En la pr´actica, se espera que cualquier resolutor sea correcto. Sin embargo, la completitud podr´ıa satisfacerse s´olo para algunas elecciones concretas del conjunto de restricciones Π que se va a resolver. Pedir la propiedad de completitud para solu- ciones arbitrarias (m´as all´a de las que sean bien tipadas) podr´ıa ser un requerimiento todav´ıa menos realista en la pr´actica. En el caso de resolutores que adem´as tengan que trabajar con restricciones de igualdad y de desigualdad estricta, la completitud est´a sujeta a ciertas limitaciones relacionadas con la aparici´on de patrones opacos en los c´omputos que se discutir´an m´as adelante para cada uno de los dominios concretos que se van a considerar en este trabajo.

En el Cap´ıtulo 4 de la tesis nos interesar´a demostrar resultados te´oricos sobre la completitud de procedimientos de resoluci´on de objetivos para el esquema CFLP(D), haciendo abstracci´on de la dificultad pr´actica de implementar resolutores completos. Para ello, optaremos por suponer que se dispone de un resolutor idealmente completo en el que la condici´on (6) pedida en la Definici´on 5 se cumple si cambiamos WTSolD por SolD. De esta forma, se consigue identificar claramente cu´ales son las condiciones

que garantizan la completitud de la sem´antica operacional del esquema CFLP(D) con respecto a todas las posibles soluciones, sean estas bien tipadas o no, de manera an´aloga a como se realiza en los trabajos [LRV04b, Vad05]. En el resto de este cap´ıtulo seguiremos suponiendo la condici´on de completitud de un resolutor tal como aparece enunciada en la condici´on (6) m´as arriba.

2.4.3. Reglas de transformaci´on de almacenes

Desde el punto de vista del usuario, un resolutor puede comportarse como una “caja

negra” o como una “caja transparente”. Los resolutores de “caja negra” pueden

ser invocados para computar disyunciones de formas resueltas, pero los usuarios no pueden observar sus c´omputos internos, en contraste con el caso de los resolutores de “caja transparente”. En particular, los resolutores de “caja transparente” pueden ser definidos por el usuario mediante el uso de herramientas apropiadas, como las

66 2. El esquema de programaci´on CFLP(D) denominadas Constraint Handling Rules [Fru98] de Fr¨uwirth. En el resto de este cap´ıtulo usaremos reglas de transformaci´on de almacenes como t´ecnica abstracta ´

util para especificar el comportamiento de resolutores de caja transparente. Sistemas de transformaci´on de almacenes

Un sistema de transformaci´on de almacenes (abreviadamente sts, del ingl´es store

transformation system) sobre un dominio de restricciones D se especifica mediante

un conjunto de reglas de transformaci´on de almacenes (abreviadamente str, del ingl´es store transformation rule) RL por medio de las cuales es posible describir los diferentes modos de transformar un almac´en dado Π 2 σ con respecto a un conjunto dado X de variables cr´ıticas. Las nociones y notaciones que se definen a continuaci´on son ´utiles para describir transformaciones de almacenes. Algunas de ellas hacen referencia a un conjunto seleccionado de strs denotado por RS.

Π 2 σ ``D, X Π02 σ0 indica que el almac´en de restricciones Π 2 σ puede ser

transformado en un nuevo almac´en Π0 2 σ0 en un solo paso, usando una de

las strs disponibles. Esta notaci´on puede tambi´en usarse para indicar un paso de transformaci´on fallido, sin m´as que considerar el almac´en de restricciones inconsistente ¥ = ¨ 2 ε en lugar de Π0 2 σ0.

Π 2 σ ``∗

D, X Π02 σ0 indica que el almac´en Π 2 σ puede ser transformado en

el nuevo almac´en Π0 2 σ0 en una cantidad finita de pasos.

El almac´en Π 2 σ se denomina RS-irreducible si y s´olo si no existe ninguna

str RL ∈ RS que pueda ser aplicada con el fin de transformar el almac´en

de restricciones Π 2 σ. Se observa as´ı que trivialmente esto es cierto en el caso particular en el que RS sea el conjunto vac´ıo. Si RS es el conjunto de todas las strs disponibles, entonces el almac´en Π 2 σ se denomina simplemente

irreducible (o tambi´en una X -forma resuelta).

Π 2 σ ``∗

D, X! Π02 σ0 indica que el paso de transformaci´on Π 2 σ ``∗D, X Π02 σ0

se cumple, y adem´as, que el almac´en de restricciones final Π02 σ0es irreducible.

Las reglas de transformaci´on de almacenes deben ser cuidadosamente especificadas. Asumamos un sts dado sobre un dominio de restricciones D tal que para cualquier conjunto finito de restricciones at´omicas primitivas Π ⊆ AP ConD, y para cualquier

conjunto de variables cr´ıticas X ⊆ cvarD(Π), el conjunto

SFD(Π, X ) = {Π0 2 σ0 | Π 2 ε ``

D, X! Π0 2 σ0}

es finito. Entonces, es posible especificar el comportamiento del resolutor solveD

2.4.3 Reglas de transformaci´on de almacenes 67

solveD(Π, X ) =W{ ∃Y0. (Π0 2 σ0) | (Π0 2 σ0) ∈ SF

D(Π, X ),

Y0 = var(Π0 2 σ0) \ var(Π) }

Una vez que el resolutor solveDha sido definido de este modo, la notaci´on Π ``

solveD

X ∃Y0. (Π0 2 σ0) tiene el significado de que Π 2 ε ``

D, X! Π0 2 σ0 y Y0 = var(Π0 2

σ0) \ var(Π). En este sentido, los s´ımbolos ``

solveD

X y ``

D, X! no deber´ıan prestarse a

confusi´on, aunque tengan significados relacionados.

La siguiente definici´on especifica diferentes propiedades de los sistemas de trans- formaci´on de almacenes que son de utilidad a la hora de comprobar si los resolutores definidos por medio de ellos satisfacen o no las condiciones que se han fijado en la Definici´on 5.

Definici´on 6 (Propiedades de los Sistemas de Transformaci´on) Asumamos

un sistema de transformaci´on de almacenes sts sobre D cuya relaci´on de transici´on

es ``D, X y un conjunto seleccionado RS de strs. Entonces, el sts se dice que satis-

face:

(1) La propiedad de variables locales frescas si Π 2 σ ``D, X Π0 2 σ0 implica

que Π0 2 σ0 es un almac´en de restricciones, Y0 = var(Π0 2 σ0) \ var(Π 2 σ)

son variables locales frescas y σ0 = σσ

1.

(2) La propiedad de vinculaci´on segura de variables cr´ıticas si Π 2 σ ``D, X

Π0 2 σ0 implica que σ0(X) es una constante para todo X ∈ X ∩ vdom(σ0).

(3) La propiedad de ramificaci´on finita si para cualquier almac´en dado Π 2 σ

hay una cantidad finita de almacenes Π0 2 σ0 tal que Π 2 σ ``

D, X Π0 2 σ0.

(4) La propiedad de terminaci´on si no existe una secuencia infinita de la forma

{Πi 2 σi | i ∈ N} tal que Πi 2 σi ``D, X Πi+1 2 σi+1 para todo i ∈ N.

(5) La propiedad de correcci´on local si para cualquier almac´en de restricciones

Π 2 σ en D, la uni´on S

{ SolD(∃Y0. (Π0 2 σ0)) | Π 2 σ ``D, X Π0 2 σ0,

Y0 = var(Π0 2 σ0) \ var(Π 2 σ) }

es un subconjunto de SolD(Π 2 σ).

(6) La propiedad de completitud local para pasos RS-libres si para cualquier almac´en de restricciones Π 2 σ en D que sea RS-irreducible pero que no

est´e en X -forma resuelta, WTSolD(Π 2 σ) es un subconjunto de la uni´on

S

{ WTSolD(∃Y0. (Π0 2 σ0)) | Π 2 σ ``

D, X Π0 2 σ0,

68 2. El esquema de programaci´on CFLP(D)

Si RS es un conjunto vac´ıo (en cuyo caso todos los almacenes son trivialmente RS-irreducibles) esta propiedad se denomina simplemente completitud local.

Asumamos ahora un resolutor solveD que haya sido definido mediante un sts dado

cuya relaci´on de transici´on sea ``D, X y un conjunto seleccionado RS de strs. Si el sts satisface la propiedad de terminaci´on, la siguiente definici´on recursiva tiene sentido: Un almac´en de restricciones dado Π 2 σ es hereditariamente RS-irreducible si y s´olo si Π 2 σ es RS-irreducible y todos los almacenes Π0 2 σ0 tales que Π 2 σ ``

D, X

Π0 2 σ0 (si es que hay alguno) son tambi´en hereditariamente RS-irreducibles. Una invocaci´on del resolutor solveD(Π, X ) se denomina RS-libre si y s´olo si el almac´en

de restricciones Π 2 ε es hereditariamente RS-irreducible. Este concepto juega un papel importante en el siguiente lema t´ecnico (probado en el Ap´endice A), el cual puede ser aplicado a la hora de demostrar que solveD satisface los requerimientos

para resolutores especificados en la Definici´on 5.

Lema 4 (Resolutores Definidos Mediante Sistemas de Transformaciones)

Cualquier sistema de transformaci´on de almacenes de restricciones en el dominio D que sea finitamente ramificado y terminante verifica las siguientes propiedades:

(1) SFD(Π, X ) es siempre finito, y por tanto, solveD est´a bien definido y satisface

trivialmente la propiedad de formas resueltas.

(2) solveD posee la propiedad de variables locales frescas (respectivamente, la pro- piedad de vinculaci´on segura) si el sistema de transformaci´on de almacenes posee la propiedad correspondiente del mismo nombre.

(3) solveD es correcto si el sistema de transformaci´on de almacenes es localmente

correcto.

(4) solveDes completo para invocaciones RS-libres si el sistema de transformaci´on

de almacenes es localmente completo para pasos RS-libres. En el caso en el

que RS sea vac´ıo, esto quiere decir que solveD es completo si el sistema de

transformaci´on de almacenes es localmente completo.