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.