Universidad Tecnica Federico Santa Mar ıa Departamento de Informatica Valpara

Reviews
´ Universidad Tecnica Federico Santa Mar´ ıa ´ Departamento de Informatica Valpara´ – Chile ıso ´ PROGRAMACION CON RESTRICCIONES PARA EL TRATAMIENTO DE INCERTIDUMBRE EN ´ CSP NUMERICOS Tesis presentada como requerimiento parcial para optar al grado acad´mico de e ´ MAGISTER EN INGENIER´ INFORMATICA IA y al t´ ıtulo profesional de ´ INGENIERO CIVIL EN INFORMATICA por Carlos Grand´n Espinoza o Comisi´n Evaluadora: o Dra. Mar´ Cristina Riff (Gu´ UTFSM) ıa ıa, Dr. Carlos Castro (UTFSM) Dr. Eric Monfroy (IRIN, Nantes, France) ENERO 2004 ´ Universidad Tecnica Federico Santa Mar´ ıa ´ Departamento de Informatica Valpara´ – Chile ıso TITULO DE LA TESIS: ´ PROGRAMACION CON RESTRICCIONES PARA EL TRATAMIEN´ TO DE INCERTIDUMBRE EN CSP NUMERICOS AUTOR: ´ CARLOS GRANDON ESPINOZA Tesis presentada como requerimiento parcial para optar al grado acad´mico e de Magister en Ingenier´ Inform´tica y al t´ ıa a ıtulo profesional de Ingeniero Civil en Inform´tica de la Universidad T´cnica Federico Santa Mar´ a e ıa. Dra. Mar´ Cristina Riff ıa Profesor Gu´ ıa Dr. Carlos Castro Profesor Correferente Dr. Eric Monfroy Profesor Externo Enero 2004. Valpara´ Chile. ıso, ii A Marcela y mis hijos. iii Agradecimientos Es dif´ restringir a una p´gina todos los agradecimientos que por una u otra raz´n ıcil a o merecen aquellas personas que hicieron posible la realizaci´n de esta Tesis. En primer lugar o est´n, como siempre, mis padres. Con sus virtudes y defectos han sabido apoyarme y guiarme, a a trav´s de sus experiencias y vivencias, que muchas veces han sido de ayuda invaluable. Mis e m´s sinceros agradecimientos, por creer en m´ a´n en aquellos momentos en que yo no cre´ a ı, u ı. A Marcela y mis hijos, a quienes dedico con mucho amor esta Tesis, por todos los a˜os n que han pasado a mi lado. Mis esfuerzos y sacrificios ha estado acompa˜ados, sin duda n alguna, por sus esfuerzos y sacrificios. Gracias por permanecer conmigo, por sobre todas las dificultades que hemos vivido. A mis hermanos, Andrea, Nicol´s y Diego, porque gracias a su fuerza y su apoyo, he a podido superar etapas muy dolorosas, que me han servido para aprender y mejorar muchos aspectos de mi vida. Les agradezco por ser ustedes, mis hermanos. A mis suegros, por el apoyo que le han dado a Marcela y a mis hijos durante todos estos a˜os. n A mis amigos m´s cercanos, que a pesar de ser pocos, han sido de mucha ayuda y apoyo. a Entre ellos Michael, porque siempre he sentido que puedo confiar en ti, y porque nunca nos has dado la espalda. A mi profesora gu´ Dra. Mar´ Cristina Riff, porque gracias a ella he adquirido conocimienıa, ıa tos y experiencia que me han ayudado a crecer, no solo en el plano acad´mico, sino tambi´n e e en el personal. Gracias por el apoyo y la confianza que deposit´ en m´ han sido de gran o ı, ayuda. Finalmente deseo agradecer a todo el cuerpo docente del departamento, y adem´s, a tres a personas muy especiales, que con su alegr´ y diligencia, hacen m´s grado y llevadero los ıa a dif´ ıciles d´ de muchos estudiantes. Me refiero a Lidia, Carolina e Ignacio. Para ustedes, que ıas apoyan enormemente desde el anonimato, les dedico mis sinceros agradecimientos. Valpara´ Chile ıso, Enero 12, 2004 Carlos Grand´n Espinoza o iv Resumen La incertidumbre en Problemas de Satisfacci´n de Restricciones involucra un cierto grado o de ignorancia en la determinaci´n de uno o m´s par´metros al modelar un problema. Por o a a ejemplo, los problemas que involucran restricciones de distancia pueden tener incertidumbre en la medida de la distancia. Esta incertidumbre produce un intervalo de tolerancia en las soluciones del problema, y por consiguiente, varios conjuntos continuos de posibles soluciones. En este trabajo se estudia una metodolog´ basada en Programaci´n por Restricciones ıa o para manejar la incertidumbre en problemas de ecuaciones de distancia, y de qu´ manera e es posible extender esta metodolog´ a un problema m´s general. El prop´sito es mejorar ıa a o el algoritmo de tratamiento de incertidumbre en sistemas de ecuaciones de distancia, propuesto en [Tou02], el cual determina una aproximaci´n interna y externa para cada conjunto o soluci´n, y extender esta metodolog´ a un problema de satisfacci´n de restricciones sobre o ıa o los reales m´s general. a Palabras Claves: Problemas de Satisfacci´n de Restricciones; Ecuaciones de distancia; o Programaci´n con Restricciones. o v Abstract Uncertainty in Constraint Satisfaction Problems involves a certain degree of ignorance in the measure of one or more parameters when modelling a problem. For example, problems that involve distance constraints can have uncertainty in the measure of the distance. This uncertainty produces a tolerance in the problem solutions, and therefore, several continuous sets of possible solutions. In this work we study a methodology based in Constraint Programming for tackling uncertainty in the distance equations problems, and how we can extend this methodology to a more general problem. Our purpose is to improve the algorithm of treatment of uncertainties in the distance equations systems, proposed in [Tou02], which determines internal and external boxes for approximating solution sets, and to extend this methodology to more general Numeric Constraint Satisfaction Problems. Keywords: Constraint Satisfaction Problems; Distance Equations Systems; Constraint Programming. vi ´ Indice de Contenidos Agradecimientos Resumen Abstract ´ Indice de Contenidos ´ Indice de cuadros ´ Indice de figuras Abreviaciones Glosario IV V VI VII X XI XIII XIV I Visi´n General o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 2 3 3 4 4 5 5 1. Introducci´n o 1.1. Problemas de satisfacci´n de restricciones . o 1.2. Programaci´n con Restricciones . . . . . . o 1.3. Metodolog´ actual de resoluci´n . . . . . ıa o ´ 1.4. Ambito del Trabajo . . . . . . . . . . . . . 1.4.1. Motivaci´n . . . . . . . . . . . . . o 1.4.2. Hip´tesis . . . . . . . . . . . . . . . o 1.4.3. Organizaci´n de la Tesis . . . . . . o II Estado del Arte 7 8 8 11 12 2. Problemas de Satisfacci´n de Restricciones o 2.1. Definiciones previas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Complejidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1. Complejidad algor´ ıtmica . . . . . . . . . . . . . . . . . . . . . . . . . vii 2.2.2. Complejidad de un problema . . . . . . . . . . . . . . . . . . . . . . . 2.3. Resumen del cap´ ıtulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. Programaci´n con Restricciones o 3.1. Introducci´n . . . . . . . . . . . . . . . . . . . . . . o 3.2. Aritm´tica de Intervalos . . . . . . . . . . . . . . . e 3.2.1. Definiciones en aritm´tica de intervalos . . . e 3.2.2. Propiedades . . . . . . . . . . . . . . . . . . 3.3. T´cnicas de Consistencia . . . . . . . . . . . . . . . e 3.3.1. Consistencia en dominios finitos . . . . . . . 3.3.2. Consistencia externa en dominios continuos 3.3.3. Consistencia interna en dominios continuos . 3.4. Ejemplo gr´fico de t´cnicas de consistencia . . . . . a e 3.5. Resumen del cap´ ıtulo . . . . . . . . . . . . . . . . . 4. Metodolog´ de Resoluci´n ıa o 4.1. Explicaci´n mediante un ejemplo o 4.2. Algoritmo . . . . . . . . . . . . . 4.2.1. C´lculo de cajas interiores a 4.2.2. C´lculo de cajas exteriores a 4.3. Resumen del cap´ ıtulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 14 15 15 17 18 20 20 21 23 26 28 29 31 32 37 38 39 42 III Trabajo aplicado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 44 45 47 48 49 51 52 52 53 55 57 57 58 59 61 64 68 ´ 5. Areas de mejoramiento 5.1. Determinaci´n cualitativa del tipo de configuraci´n o o 5.2. Influencia de la incertidumbre previa . . . . . . . . 5.3. Relaci´n entre los puntos de una soluci´n . . . . . . o o 5.4. Dificultades del algoritmo de separaci´n de puntos . o 5.5. Conclusi´n del cap´ o ıtulo . . . . . . . . . . . . . . . . 6. Mejoras Propuestas 6.1. Detecci´n y clasificaci´n de tipos de problemas . . . . . . . . . . . . . o o 6.2. Un algoritmo de separaci´n de puntos para restricciones de distancia o 6.3. Algoritmo de separaci´n de soluciones . . . . . . . . . . . . . . . . . . o 6.4. Algoritmo de an´lisis de soluciones . . . . . . . . . . . . . . . . . . . a 6.5. Metodolog´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ıa 6.6. Resultados preliminares . . . . . . . . . . . . . . . . . . . . . . . . . 6.6.1. Sistema de ecuaciones de distancia en el plano . . . . . . . . . 6.6.2. Determinaci´n de la estructura de una mol´cula . . . . . . . . o e 6.6.3. Extensi´n de la metodolog´ a un problema m´s general . . . o ıa a 6.7. Conclusi´n del cap´ o ıtulo . . . . . . . . . . . . . . . . . . . . . . . . . . viii 7. Conclusiones 69 IV Ap´ndices e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 73 73 73 75 76 76 77 78 79 80 82 82 85 98 A. ILOG Concert/Solver A.1. Introducci´n . . . . . . . . . . . . . . . . . o A.2. Definici´n de un modelo (ILOG Concert) . o A.3. Resoluci´n del modelo (ILOG Solver) . . . o A.4. Elementos de un modelo . . . . . . . . . . A.4.1. Tipos de Variables . . . . . . . . . A.4.2. Expresiones . . . . . . . . . . . . . A.4.3. Tipos de Restricciones . . . . . . . A.4.4. Funci´n Objetivo . . . . . . . . . . o A.5. Manipulaci´n de la resoluci´n . . . . . . . o o A.6. Ejemplo . . . . . . . . . . . . . . . . . . . A.7. Consideraciones sobre dominios continuos . B. Algoritmo General Bibliograf´ ıa ix ´ Indice de cuadros 1. 2. Abreviaciones utilizadas en la Tesis . . . . . . . . . . . . . . . . . . . . . . . xiii T´rminos de uso com´n en la Tesis . . . . . . . . . . . . . . . . . . . . . . . xiv e u 38 39 40 41 54 55 59 60 62 63 63 64 65 67 4.1. Algoritmo de extensi´n de dominios i-consistentes . . . . . . . . . . . . . . . o 4.2. Algoritmo general de extensi´n de dominios . . . . . . . . . . . . . . . . . . o 4.3. Funci´n de verificaci´n de coordenadas . . . . . . . . . . . . . . . . . . . . . o o 4.4. Funci´n de separaci´n de puntos en espacios disjuntos . . . . . . . . . . . . . o o 6.1. Algoritmo general de separaci´n de puntos . . . . . . . . . . . . . . . . . . . o 6.2. Aplicaci´n de una funci´n de separaci´n . . . . . . . . . . . . . . . . . . . . o o o 6.3. Resultados obtenidos con el algoritmo actual . . . . . . . . . . . . . . . . . . 6.4. Resultados obtenidos con el algoritmo propuesto . . . . . . . . . . . . . . . . 6.5. Informaci´n de distancia entre ´tomos . . . . . . . . . . . . . . . . . . . . . o a 6.6. Resumen de resultados obtenidos por ambos algoritmos . . . . . . . . . . . . 6.7. Detalle de los errores encontrados en algoritmo propuesto . . . . . . . . . . . 6.8. Descripci´n de los principales objetos definidos . . . . . . . . . . . . . . . . . o 6.9. Resultados del sistema par´bola-recta . . . . . . . . . . . . . . . . . . . . . . a 6.10. Resultados para el sistema seno-par´bola . . . . . . . . . . . . . . . . . . . . a x ´ Indice de figuras 2.1. Ejemplo de un CSP sobre dominios discretos . . . . . . . . . . . . . . . . . . 2.2. Ejemplo de un CSP sobre dominios continuos . . . . . . . . . . . . . . . . . 3.1. Ejemplo de aplicaci´n de aritm´tica de intervalos. . . . . . . . . . . . . . . . o e 3.2. Ejemplo de un CSP no arco-consistente (A) y uno arco-consistente (B) . . . 3.3. Ejemplo de un CSP arco-consistente sin soluci´n . . . . . . . . . . . . . . . . o 3.4. Extensi´n de dominios consistentes en CSP . . . . . . . . . . . . . . . . . . . o 3.5. Relaci´n entre la e-consistencia y la i-consistencia . . . . . . . . . . . . . . . o 4.1. Ejemplo de un problema de ecuaciones de distancia . . . . . . . . . . . . . . 4.2. Simplificaci´n del problema en un plano cartesiano . . . . . . . . . . . . . . o 4.3. Problema en plano cartesiano considerando incertidumbres . . . . . . . . . . 4.4. C´lculo de caja interior a trav´s de consistencia interna . . . . . . . . . . . . a e 4.5. Separaci´n de puntos pertenecientes a soluciones diferentes . . . . . . . . . . o 4.6. C´lculo de cajas exteriores para cada soluci´n . . . . . . . . . . . . . . . . . a o 4.7. Caja exterior calculada sin separaci´n de conjuntos soluci´n . . . . . . . . . o o 5.1. Ejemplos de configuraci´n soluci´n . . . . . . . . . . . . . . . . . . . . . . . o o 5.2. Ejemplo de casos degenerados . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3. Influencia de las incertidumbres previas . . . . . . . . . . . . . . . . . . . . . 5.4. Influencia parcial en la determinaci´n de puntos soluci´n . . . . . . . . . . . o o 5.5. Aplicaci´n del algoritmo de separaci´n de puntos . . . . . . . . . . . . . . . o o 5.6. C´lculo de cajas exteriores a partir del espacio dividido . . . . . . . . . . . . a 6.1. Ejemplo de aplicaci´n de una estructura de ´rbol . . . . . . . . . . . . . . . o a 6.2. Resultados del algoritmo actual, en el plano cartesiano . . . . . . . . . . . . 6.3. Resultados del algoritmo propuesto, en el plano cartesiano . . . . . . . . . . 10 11 17 22 22 28 29 32 33 34 35 36 37 40 45 46 47 48 50 51 56 60 61 xi 6.4. Ejemplo de aplicaci´n para una par´bola y una recta . . . . . . . . . . . . . o a 6.5. Ejemplo de una funci´n senoidal y una par´bola . . . . . . . . . . . . . . . . o a 65 66 xii Abreviaciones Abrev. CSP CP Significado Constraint Satisfaction Problem Constraint Programming Traducci´n o Problema de Satisfacci´n de Restricciones o Programaci´n con Restricciones o Cuadro 1: Abreviaciones utilizadas en la Tesis xiii Glosario T´rmino e Espacio soluci´n o Espacio de b´squeda u Soluci´n del problema o Punto soluci´n o Explicaci´n o Conjunto de valores que cumplen las restricciones del problema Producto cartesiano de los dominios de las variables Instanciaci´n de las variables que cumple las restricciones del problema o Conjunto de una o m´s variables que representan una sub-soluci´n del problema a o Cuadro 2: T´rminos de uso com´n en la Tesis e u xiv Parte I Visi´n General o 1 Cap´ ıtulo 1 Introducci´n o El trabajo presentado en esta tesis se centra principalmente en dos grandes ´reas de a investigaci´n: Los problemas de satisfacci´n de restricciones y las t´cnicas basadas en la o o e programaci´n con restricciones para su resoluci´n. En cuanto a los problemas, el estudio se o o centra en la resoluci´n de los CSP con variables que poseen dominios reales. Con respecto a o las t´cnicas, se consideran las t´cnicas de consistencia y an´lisis de intervalos pertenecientes e e a al ´rea de la programaci´n con restricciones. a o 1.1. Problemas de satisfacci´n de restricciones o Los problemas de satisfacci´n de restricciones tienen una gran importancia en divero sas ´reas del quehacer humano. Muchos de los problemas de la vida cotidiana pueden ser a modelados a trav´s de un conjunto de entidades y sus relaciones particulares. Una subcate egor´ de esta clase de problemas la constituyen los CSP con variables continuas, y m´s ıa a espec´ ıficamente, aquellos que manejan intervalos. Esta clase de problemas poseen una gran importancia en ´reas como la biolog´ molecular [KB99, Bac98]. Uno de los problemas funa ıa damentales en esta ´rea consiste en determinar la estructura molecular de una prote´ a a ına partir de la informaci´n de sus amino´cidos constituyentes y las relaciones de distancia entre o a ellos. Debido a que las mediciones de la distancia entre los amino´cidos de una prote´ se a ına obtienen a trav´s de m´todos experimentales, se tiene un cierto grado de incertidumbre en la e e medici´n. Por otro lado, bas´ndose en estudios de fuerzas de atracci´n entre las mol´culas, es o a o e posible determinar l´ ımites para estas distancias y de esta forma acotar las posibles soluciones 2 del problema. Dada la incertidumbre asociada, no es posible entregar una soluci´n exacta o al problema, por lo que se hace necesario estudiar t´cnicas de tratamiento de incertidumbre e para aproximar sus soluciones. El estudio de estas t´cnicas y su aplicabilidad en sistemas de e ecuaciones sobre los reales es la principal motivaci´n del trabajo de esta tesis. o 1.2. Programaci´n con Restricciones o La programaci´n con restricciones se basa en el modelamiento y resoluci´n con restrico o ciones [MS98, Tho93]. Dado un problema descrito a trav´s de variables, donde cada variable e posee un dominio asociado, compuesto por un conjunto de potenciales valores y un conjunto de restricciones que representan las diferentes relaciones entre las variables que deben ser satisfechas para resolver el problema, la idea principal de la CP es usar el conocimiento de las restricciones para eliminar del dominio de las variables todos aquellos valores que no pueden formar parte de una soluci´n al problema. De esta forma, es posible resolver un problema o reduciendo los dominios de sus variables hasta conseguir aproximaciones muy cercana al valor soluci´n, o reducir el dominio de una o m´s variables hasta eliminar todos sus posibles o a valores (en cuyo caso el problema no tiene soluci´n). o 1.3. Metodolog´ actual de resoluci´n ıa o El problema de ecuaciones de distancia con incertidumbre puede ser descrito de la siguiente forma: Sea E = Rn , con n > 1, un espacio n-dimensional con base en los reales. Sea P1 , . . . , Pm un conjunto de m puntos en el espacio E, con k < m fijos. El sistema de ecuaciones formado por relaciones del tipo: d(Pi , Pj ) = dij ± eij i, j = 1, . . . , m donde d(Pi , Pj ) representa la distancia euclidiana entre los puntos Pi y Pj , y eij representa la incertidumbre asociada a la medici´n de esta distancia; es un sistema de ecuaciones de o distancia con incertidumbre. Existen diferentes enfoques aplicados para resolver un sistema como el planteado anteriormente. Por ejemplo, en [Bac98] se analiza el problema de predecir la estructura molecular de una prote´ utilizando un lattice model (modelo basado en enrejados). Por su parte, en ına, 3 [KB99], se aplica un modelo simplificado basado en cajas, que aproxima las esferas en torno a los puntos de referencia y calcula regiones factibles utilizando t´cnicas de programaci´n e o con restricciones. Por su parte en [Tou02], se estudia la aplicaci´n combinada de t´cnicas de o e consistencia interna y externa para el tratamiento de incertidumbres en CSP de distancia. La metodolog´ propuesta en este ultimo considera la aplicaci´n de los siguientes pasos: ıa ´ o 1. Solucionar el sistema de ecuaciones sin considerar la influencia de las incertidumbres. Es decir, encontrar todas las soluciones al problema, considerando la medici´n con o precisi´n absoluta. o 2. Agregar las incertidumbres al sistema, transformando las ecuaciones iniciales en inecuaciones que contemplen los l´ ımites (cotas m´ximas conocidas) para cada una de a las mediciones. Por cada soluci´n conocida, extender los dominios de las variables en o forma consistente hasta obtener un intervalo de tolerancia en cada una. 3. Separar los conjuntos soluci´n para cada una de las variables del problema y aplicar o una t´cnica de consistencia externa para obtener el m´ e ınimo intervalo conteniendo el conjunto completo de soluci´n. o 1.4. 1.4.1. ´ Ambito del Trabajo Motivaci´n o La motivaci´n del trabajo es la de investigar de qu´ forma se generalizan las t´cnicas o e e de Programaci´n con Restricciones para ser aplicadas sobre dominios continuos (reales). En o particular, estudiar la metodolog´ para el tratamiento de incertidumbre en problemas de ıa ecuaciones de distancia y de qu´ forma mejorar esta propuesta. e Del estudio de esta metodolog´ se identificaron varios puntos susceptibles de mejorar. ıa En particular referidos a: 1. Procedimientos de separaci´n de puntos. o 2. Estudio posterior de resultados obtenidos. a 3. An´lisis previo del problema. 4 El trabajo m´s profundo se centr´ en el primer punto, dado que constituye uno de los a o pilares fundamentales de la metodolog´ Se asume inicialmente que los puntos son separables, ıa. pero aun as´ la separaci´n podr´ caer en c´lculos err´neos en las cajas exteriores. ı o ıa a o El segundo punto se centra en la imposibilidad de reducir a cero el error en el c´lculo a de cajas exteriores. Dado que el punto de corte separa el espacio de b´squeda inicial en u subespacios disjuntos, una separaci´n incorrecta produce cajas exteriores que coinciden con o los l´ ımites del subespacio. Adem´s, puede existir m´s de una caja exterior mal calculada, a a por lo que ser´ posible determinar qu´ puntos tuvieron problemas de separaci´n. ıa e o Por ultimo, para el tercer punto, se estudian propiedades del problema que puedan ser ´ utilizadas para la implementaci´n de un algoritmo de an´lisis previo, que permita reducir o a los errores de c´lculo, previendo posibles problemas de separaci´n. a o 1.4.2. Hip´tesis o A partir de las observaciones previas se plantean las siguientes hip´tesis: o 1. La implementaci´n de un nuevo algoritmo de separaci´n de puntos incrementa el deo o sempe˜o de la metodolog´ reduciendo los errores en el c´lculo de cajas exteriores. n ıa, a a 2. Un algoritmo de an´lisis posterior de resultados permite identificar errores previos de separaci´n y facilita la correcta interpretaci´n de resultados. o o 1.4.3. Organizaci´n de la Tesis o Esta Tesis est´ organizada de la siguiente manera: a En el cap´ ıtulo 2, se presentan los Problemas de Satisfacci´n de Restricciones y sus definio ciones asociadas. Adem´s se examinan las nociones de complejidad asociada al problema y a al algoritmo de b´squeda de soluci´n. El cap´ u o ıtulo 3 est´ dedicado al estado del arte de la a Programaci´n con Restricciones, particularmente sobre dominios continuos. En ´l, se examo e inan los conceptos relacionados con la aritm´tica de intervalos y las t´cnicas de consistencia e e aplicadas, tanto a dominios discretos como a dominios continuos. En el cap´ ıtulo 4 se presenta una metodolog´ de resoluci´n de sistemas de ecuaciones de distancia con incertidumbre a ıa o trav´s de un ejemplo concreto. La contribuci´n de esta Tesis comienza en el cap´ e o ıtulo 5, en donde se presenta un conjunto de observaciones relacionadas con los sistemas de ecuaciones 5 de distancia con incertidumbre y la influencia de estas observaciones en la metodolog´ actuıa al. En el cap´ ıtulo 6 se presenta un nuevos algoritmo de separaci´n de puntos, basado en las o observaciones del cap´ ıtulo anterior, que mejora las aproximaciones de la metodolog´ actual ıa y un algoritmo de an´lisis posterior que permite detectar errores en la separaci´n de cona o juntos soluci´n. Posteriormente, en el cap´ o ıtulo 7 se presentan las conclusiones y propuestas para trabajos futuros. 6 Parte II Estado del Arte 7 Cap´ ıtulo 2 Problemas de Satisfacci´n de o Restricciones En este cap´ ıtulo se examinan las principales definiciones relacionadas con los Problemas de Satisfacci´n de Restricciones. Adem´s, se presentan ejemplos de CSP sobre dominios o a discretos y continuos. Finalmente se revisan las nociones de complejidad, asociadas tanto a las caracter´ ısticas del problema en s´ como al algoritmo de b´squeda de soluci´n. ı, u o Los CSP tienen una gran importancia en diversas ´reas del quehacer humano. Muchos de a los problemas de la vida cotidiana pueden ser modelados a trav´s de un conjunto de entidades e denominadas variables, a las cuales se asocian conjuntos de valores posibles denominados dominios y que poseen conjuntos de relaciones entre s´ las cuales reciben el nombre de ı, restricciones. En este contexto un modelo es, entonces, una representaci´n simplificada de la realidad o a trav´s de estas entidades. e 2.1. Definiciones previas Dada la gran cantidad de terminolog´ existentes para denotar un CSP, es necesario ıas formalizar su definici´n y la de sus componentes relacionados. En este trabajo, se tratar´ un o a subconjunto de los problemas de satisfacci´n de restricciones, que corresponden a los CSP o con dominios continuos que involucran ecuaciones de distancia. La definici´n formal de un o CSP se presenta a continuaci´n: o 8 Definici´n 2.1.1 (CSP). Un problema de satisfacci´n de restricciones P = (X, D, C) es o o una tripleta con X = {x1 , ..., xn } conjunto de variables, D = {Dx1 , ..., Dxn } conjunto de dominios asociados a las variables y C = {c1 , ..., cm } conjunto de restricciones sobre las variables. Definici´n 2.1.2 (Espacio de b´ squeda). Sea P = (X, D, C) un problema de satisfacci´n o u o u de restricciones con D = {Dx1 , ..., Dxn }. El espacio de b´squeda E asociado a P se define como E = Dx1 × ... × Dxn el producto cartesiano de los dominios asociados a cada una de las variables del problema. Definici´n 2.1.3 (Soluci´n). Una soluci´n s = (a1 , ..., an ) de un CSP P = (X, D, C) es o o o una asignaci´n de valores a las variables donde x1 = a1 ∈ Dx1 , ... , xn = an ∈ Dxn , tal que o ∀ c ∈ C, c(s) es verdadera. o Definici´n 2.1.4 (Espacio soluci´n). Sea P = (X, D, C) un problema de satisfacci´n de o o restricciones con espacio de b´squeda E. Sea S ⊂ E. Se dice que S es el espacio soluci´n de u o P si ∀ s ∈ S, s es soluci´n del problema y ∀ e ∈ E − S, e no es soluci´n del problema. o o En las definiciones previas no se ha restringido el tipo de dominios asignados a las variables ni las caracter´ ısticas de las restricciones. Si bien el dominio de las variables depende del problema en s´ es posible clasificarlo en dos grandes grupos: dominios discretos y dominios ı, continuos. Las figuras 2.1 y 2.2 muestran dos ejemplos de CSP. El primero corresponde a un problema cl´sico de satisfacci´n de restricciones con dominios discretos denominado coloreo a o de grafos, mientras que el segundo corresponde a un problema con dominios continuos de ecuaciones de distancia. 1. Problema de coloreo de grafos con 3 colores: El problema de la figura 2.1 consiste en un grafo de tres nodos: X, Y , Z. Para cada nodo se debe seleccionar un color desde su dominio, de tal forma que dos nodos conectados por un arco no posean igual color. La soluci´n al problema consiste en determinar una asignaci´n simult´nea de colores para o o a todos los nodos del grafo, asegurando que todo par de nodos adyacentes posea diferente color. Por ejemplo, la asignaci´n N odo(X) = negro, N odo(Y ) = azul y N odo(Z) = o rojo, es una soluci´n al problema. o Dado que el dominio de las variables es discreto, se dice que el CSP es discreto, y m´s a espec´ ıficamente, un CSP sobre dominios discretos. Una aplicaci´n directa de este tipo o 9 {negro , azul , rojo } x {negro , azul } y z {negro , rojo } Figura 2.1: Ejemplo de un CSP sobre dominios discretos de problemas se encuentra en el dise˜o de mapas. El objetivo es colorear un mapa n respetando un conjunto m´ximo de colores, y asegurando que dos regiones colindantes a del mapa no posean igual color. Formalmente el problema consiste en resolver P = (X, D, C) con X = {x, y, z}, D = {{negro, azul, rojo}, {negro, azul}, {negro, rojo}}, y C = {{x = y}, {x = z}, {y = z}}. La versatilidad de este problema permite usarlo y aplicarlo a problemas de asignaci´n o horaria y planificaci´n, entre otros. o 2. Problema de ecuaciones de distancia: El problema de la figura 2.2 consiste en dos puntos en el plano con ubicaci´n fija X e Y , y un tercer punto Z que debe ser posicionado o a una distancia no mayor a r1 del punto X y r2 del punto Y . Formalmente se trata de resolver P = (X, D, C) con X = {x, y, z}, D = {Dx = Dy = Dz = [0, 100] × [0, 100]}, y C = {{x = a}, {y = b}, {d(z, x) ≤ r1 }, {d(z, y) ≤ r2 }}. La soluci´n a este probleo ma consiste en determinar la zona del plano que cumple con todas las restricciones simult´neamente. a La zona demarcada representa todos aquellos puntos del plano que cumplen con las restricciones planteadas. Dado que el dominio de las variables (punto Z) es continuo, existen infinitas soluciones para el problema. Este tipo de problema recibe el nombre de CSP num´rico ´ CSP sobre dominios continuos. Una aplicaci´n directa de este tipo de e o o problemas se encuentra en la determinaci´n de zonas de interferencia entre dos torres o emisoras de ondas con cobertura limitada. En este caso interesa determinar las regiones del espacio que podr´ presentar problemas de interferencia, debido a la influencia de ıan 10 y r1 x ??? ??? ??? r2 y x Figura 2.2: Ejemplo de un CSP sobre dominios continuos diferentes ondas emanadas de artefactos emisores fijos. Existe adem´s una tercera clasificaci´n de problemas: los CSP mixtos, que son aquellos a o que involucran variables con dominios discretos y continuos. Esta clase de CSP se denominan com´nmente CSP h´ u ıbridos, y poseen un grado de complejidad adicional, ya que requieren una combinaci´n de t´cnicas dise˜adas para cada tipo de dominio. Un listado general de o e n ejemplos de CSP y t´cnicas aplicadas para su resoluci´n se pueden consultar en [Kum92]. e o 2.2. Complejidad El tema de la complejidad puede verse de dos formas distintas: algoritmo de b´squeda u de soluci´n y problema en s´. La principal diferencia entre ambas es el centro de estudio. o ı Mientras la complejidad del algoritmo estudia las caracter´ ısticas propias de las t´cnicas para e resolver un problema, la complejidad del problema estudia las caracter´ ısticas del problema en s´ Ambas alternativas poseen gran importancia en el estudio y soluci´n de problemas ı. o complejos y pueden ser complementadas. La primera sirve para comparar dos algoritmos que resuelven el mismo problema y la segunda permite clasificar problemas basados en la dificultad de su resoluci´n. o 11 2.2.1. Complejidad algor´ ıtmica Frecuentemente es necesario comparar algoritmos para medir cu´l de ellos posee el mejor a desempe˜o. Existen b´sicamente dos formas de realizar esta comparaci´n: la evaluaci´n n a o o comparativa y el an´lisis de algoritmo. a Evaluaci´n comparativa o Consiste en ejecutar ambos programas en el mismo entorno (misma m´quina) con un a sistema operativo, un compilador y un conjunto de datos de entrada en particular y medir cual de ellos se ejecuta en forma m´s r´pida o cual de ellos necesita menos memoria para su a a ejecuci´n. o El principal problema de este tipo de comparaci´n es la particularidad de la medici´n. Por o o esta raz´n, este m´todo de comparaci´n es poco utilizado en la pr´ctica, y s´lo est´ limitado o e o a o a a sistemas muy particulares en entornos muy est´ticos. a An´lisis de algoritmo a Este m´todo es independiente de las entradas y del tipo de implantaci´n realizada. Cone o siste b´sicamente en realizar un an´lisis de la cantidad de tareas (instrucciones) que rea a alizar´ cada algoritmo abstrayendo las entradas y su implantaci´n. El an´lisis se realiza en a o a dos pasos: 1. Abstrayendo la entrada. Es decir, caracterizando al problema a trav´s de un par´metro e a en particular. Una posible medida es la longitud de la secuencia (cantidad de variables o valores de entrada) que se caracteriza con un n´mero n. u 2. Abstrayendo la implantaci´n. Es decir, encontrando una medida de desempe˜o o n que no dependa de la m´quina, sistema operativo o compilador utilizado. Una posible a medida es la cantidad de l´ ıneas de c´digo ejecutadas, o la sumatoria de las instrucciones o b´sicas realizadas (sumas, restas, asignaciones, comparaciones, entre otras). De esta a forma se obtiene una caracterizaci´n, basada en los datos de entrada, denominada o T (n). Si bien este enfoque representa mejoras con respecto al anterior, su utilizaci´n no est´ cao a rente de problemas. El principal problema radica en que la ejecuci´n de un programa no es o independiente de los datos de entrada, por lo que el c´lculo exacto del tiempo requerido T (n) a 12 para una entrada de datos n, no es una medida de gran utilidad (ya que no posee una unica ´ respuesta). Por otro lado, es posible determinar una funci´n T (n), suponiendo la utilizaci´n de o o diferentes tipos de entrada, y obtener un tiempo Tpeor (n), en el peor de los casos; Tmejor (n), en el mejor de los casos; y un tiempo Tprom (n) que denotar´ el tiempo promedio de ejecuci´n ıa o del algoritmo suponiendo una determinada distribuci´n de datos de entrada. o De esta forma se obtiene la caracterizaci´n general de un algoritmo denominada aproxio maci´n O(). o Definici´n 2.2.1. Un algoritmo es O(n) si su medida es a lo m´s una constante m´ltiplo de o a u n, con la posible excepci´n de algunos casos particulares. De manera general, se tiene que: o T (n) es O(f (n)) ⇐⇒ ∃ k, n0 ∈ N / T (n) kf (n) ∀ n > n0 . Esta aproximaci´n es la m´s utilizada en el an´lisis de algoritmo, ya que representa un o a a buen compromiso entre precisi´n y facilidad de an´lisis. o a Es importante destacar que, si bien es dif´ expresar la diferencia entre dos algoritmos ıcil con igual funci´n O() sin recurrir a un an´lisis m´s profundo, es relativamente claro que un o a a algoritmo O(n) poseer´ mejor desempe˜o que uno O(n2 ), salvo en algunos casos particulares. a n Otro punto importante, relacionado con los algoritmos utilizados para resolver CSP, es que la comparaci´n se realiza usando como medida en n´mero de chequeo de restricciones o u (y no el n´mero de instrucciones de m´quina, como se mostr´ en los casos previos). u a o Una explicaci´n m´s detallada acerca de complejidad en an´lisis de algoritmos puede ser o a a obtenida en [AVA88]. 2.2.2. Complejidad de un problema De igual forma que se realiza el an´lisis de algoritmos para determinar su complejidad, se a estudian las caracter´ ısticas de los problemas que los hacen m´s o menos dif´ a ıciles de resolver. La principal diferencia global entre los problemas es el tiempo requerido para resolverlos. En primer lugar se encuentran aquellos que son susceptibles de ser resueltos en un tiempo polinomial. A ellos se les clasifica com´nmente como problemas P . Por otra parte, existen u aquellos problemas para los cuales no existe aun un algoritmo capaz de resolverlos en este tiempo (para cualquier instancia particular del problema), por lo que se los clasifica como problemas N P . 13 Los problemas pertenecientes a la clasificaci´n P son en general sencillos, ya que suelen o ser resueltos por algoritmos del tipo O(f (n)) donde f (n) representa un polinomio particular. A esto problemas se les denomina gen´ricamente manejables. e Por otra parte, los problemas clasificados como N P se caracterizan porque el tiempo necesario para resolverlos crece, al menos, exponencialmente ante un crecimiento lineal en el tama˜o de la entrada. Esto dificulta su resoluci´n, incluso para entradas de tama˜o reducido. n o n Una subclasificaci´n de problemas N P es la denominada N P completos. Este tipo de o problemas corresponde a los m´s dif´ a ıciles de resolver de la clase N P . Se ha demostrado que si es posible resolver uno de estos problemas en tiempo polinomial (para cualquier instancia particular), entonces todos ellos pueden ser resueltos en tiempo polinomial. Una explicaci´n m´s detallada acerca de complejidad e intratabilidad puede ser obtenida o a en [GJ79]. 2.3. Resumen del cap´ ıtulo En este cap´ ıtulo se han definido los conceptos relacionados con los Problemas de Satisfacci´n de Restricciones, tales como el espacio de b´squeda, soluci´n y espacio soluci´n. Se o u o o entregaron dos ejemplos de CSP, uno sobre dominios discretos y otro sobre dominios continuos. Adem´s, se presentaron las nociones de complejidad asociada a un problema en s´ y al a ı algoritmo de b´squeda de soluci´n. u o 14 Cap´ ıtulo 3 Programaci´n con Restricciones o La programaci´n con restricciones involucra tanto el modelamiento como la resoluci´n de o o sistemas basados en restricciones. Como disciplina abarca ´reas del conocimiento y la investia gaci´n como las matem´tica discretas, el an´lisis de intervalos, la programaci´n matem´tica, o a a o a la inteligencia artificial y el c´lculo formal. a Entre sus principales campos de aplicaci´n se encuentran los problemas de optimizaci´n o o combinatoria y ordenamiento, an´lisis financiero, dise˜o y construcci´n de circuitos integraa n o dos [BBM94], la biolog´a molecular [KB99] y la resoluci´n de problemas geom´tricos [Cha93], ı o e entre otras. Como idea general, la programaci´n con restricciones intenta dise˜ar estrategias de reso n oluci´n eficientes, usando el conocimiento y la estructura del problema. o En este cap´ ıtulo se presenta una introducci´n de la Programaci´n con Restricciones desde o o sus inicios, comenzando con los m´todos de resoluci´n de problemas restringidos a variables e o lineales, y continuando con sus extensiones en dominio y complejidad. Posteriormente se presenta un descripci´n detallada de la aritm´tica de intervalos, seguida de las t´cnicas de o e e consistencia para problemas con dominios discretos y su extensi´n a problemas con dominios o continuos. Finalmente se muestra un ejemplo que unifica los conceptos presentados en el cap´ ıtulo. 3.1. Introducci´n o Uno de los primeros indicios de la programaci´n con restricciones se encuentra en el o a˜o 1947, cuando George Dantzig crea el m´todo simplex para programaci´n lineal, descrito n e o 15 por primera vez en su paper Programming in a linear structure [Dan48] (Programaci´n en o una estructura lineal). El t´rmino programming (programaci´n) estaba referido a los tipos e o de problemas abordados por Dantzig en aquellos a˜os, denominados programming problems n (problemas de programaci´n), relacionados con la investigaci´n en devise programs of activo o ities for future conflicts del departamento de defensa de los Estados Unidos. Posteriormente se utiliza el t´rmino programaci´n lineal en lugar de programaci´n en una estructura lineal, e o o y los problemas pertenecientes a esta ´rea reciben el nombre de problemas de programaci´n a o lineal. De esta forma se asocia el t´rmino programaci´n con un tipo de problema matem´tico e o a espec´ ıfico en la literatura de la Investigaci´n de Operaciones. o La programaci´n con restricciones, tambi´n denominada constraint logic programming o e (Programaci´n l´gica con restricciones) comienza a desarrollarse a mediados de los a˜os 80, o o n como una t´cnica de la inform´tica que combina el desarrollo de la comunidad de Inteligene a cia Artificial con los avances en lenguajes de programaci´n. En este contexto, la palabra o programming se refiere espec´ ıficamente a un programa computacional. De esta forma, la programaci´n con restricciones es en s´ una t´cnica de programaci´n de computadores deso ı, e o de un punto de vista l´gico. La programaci´n l´gica se caracteriza por ser declarativa y o o o utilizar un estilo relacional basado en la l´gica de primer orden. o Si bien en sus comienzos se utilizaban algoritmos simples para resolver las estructuras l´gicas de un problema, el avance en investigaci´n de nuevas t´cnicas y algoritmos m´s o o e a poderosos han extendido enormemente sus potencialidades. Desde el punto de vista de la arquitectura, la programaci´n con restricciones posee dos o niveles [Hen99]: el componente restringido y el componente de programaci´n. El primer nivel o permite formular la definici´n del problema desde el punto de vista de sus variables y reso tricciones, de una forma relativamente simple y sin necesidad de grandes conocimientos de lenguajes de programaci´n. Por otro lado, el componente de programaci´n permite escribir o o algoritmos espec´ ıficos para indicar de qu´ manera deber´n ser modificadas las variables para e a encontrar valores que satisfagan las restricciones. Para facilitar la aplicaci´n de este tipo de t´cnicas a problemas complejos se han desaro e rollado diversos lenguajes de programaci´n, que van desde ALICE [Lau78] en la d´cada del o e 70 hasta los m´s actuales, como OPL [PVH99, Hen99] o ILog [ILO00b, ILO00a], a fines de a la d´cada del 90. e Una descripci´n m´s detallada de los inicios de la programaci´n con restricciones y su o a o evoluci´n, puede ser obtenida en [LP01]. o 16 Dado el tema de esta Tesis se profundizar´ en los conceptos relacionados con intervalos. a La siguiente secci´n presenta las definiciones vinculadas a la Aritm´tica de Intervalos. o e 3.2. Aritm´tica de Intervalos e Una amplia gama de problemas industriales requieren la resoluci´n de CSP con restrico ciones sobre los reales. Como se vio en la secci´n 2.1, un CSP num´rico involucra variables o e con dominios continuos (subconjuntos de los reales), que requieren de t´cnicas espec´ e ıficas de manipulaci´n de intervalos para su resoluci´n. En t´rminos generales, la aritm´tica de intero o e e valos puede ser descrita como un m´todo para tomar un conjunto de relaciones matem´ticas e a entre ciertas cantidades, y construir a partir de ellas un proceso que mapea intervalos iniciales en intervalos finales para todas ellas [OV93]. La figura 3.1 muestra un ejemplo de la aplicaci´n de la aritm´tica de intervalo para o e reducir el dominio inicial de las variables pertenecientes a un problema particular. y y g y1 y1 g y0 y0 f f x x0 x1 x1' x0' x (A) (B) Figura 3.1: Ejemplo de aplicaci´n de aritm´tica de intervalos. o e El problema consiste en dos funciones y = f (x) e y = g(x) en el plano. Ambas poseen propiedades de monoton´ deseables y un punto de intersecci´n que interesa encontrar. A ıa o grandes rasgos, la estrategia consiste en partir de un intervalo dado [x0 , x1 ] por ejemplo, y proyectar los valores para una funci´n determinada, sobre el eje contrario. En (A) se muestra o la proyecci´n [y0 , y1 ] obtenida como y0 = f (x0 ) e y1 = f (x1 ), que corresponde a la imagen o del intervalo original. A partir de ella, se obtiene el intervalo de llegada, como preimagen 17 de la proyecci´n obtenida y considerando la segunda funci´n (B). El nuevo intervalo [x1 , x0 ] o o (obtenido de x0 = g −1 (y0 ) y x1 = g −1 (y1 )) es intersectado con el intervalo original para obtener el nuevo dominio. Una observaci´n importante del problema planteado, es que si: o g(x) es mon´tona creciente o f (x) es mon´tona decreciente o La intersecci´n del intervalo original y el final es vac´ o ıa se puede asegurar que el intervalo original no conten´ al punto soluci´n. Por el contrario, ıa o si el intervalo original contiene al punto soluci´n, la intersecci´n nunca ser´ vac´ o o a ıa. A continuaci´n se entregan un conjunto de definiciones que permiten explicar de una o manera m´s formal los conceptos relacionados con la aritm´tica de intervalos. a e 3.2.1. Definiciones en aritm´tica de intervalos e Debido a las limitaciones que poseen los computadores para representar de manera exacta el conjunto de los n´meros reales, es necesario distinguir el conjunto de valores representables u del conjunto real [SSHF01, Rue02]. Para ello, el conjunto de los n´meros reales R extendido u con los dos s´ ımbolos de infinito y denotado por R∞ = R ∪ {−∞, +∞}, es aproximado por el subconjunto F∞ , que usualmente corresponde a los n´meros de punto flotante usados en u la implementaci´n de una m´quina. o a Por otro lado, si a ∈ F∞ , entonces a+ corresponde al menor valor de F∞ estrictamente mayor que a. An´logamente a− corresponde al mayor valor de F∞ estrictamente menor que a a. Estos valores tienen sentido al considerar que la m´quina posee precisi´n finita, en otra a o palabras, un conjunto limitado de valores. u Definici´n 3.2.1 (Intervalo). Un intervalo [a, b] con a, b ∈ F es el conjunto de n´meros o reales { r ∈ R | a r b} Adicionalmente, si r es un n´mero real, es decir r ∈ R, r corresponde al m´s peque˜o u ˜ a n intervalo [a, b] que contiene a r. Definici´n 3.2.2 (Aproximaci´n de conjunto). Sea S un subconjunto de R, La aproxio o maci´n de S, denotada por 2S, es el menor intervalo I tal que S ⊆ I. o 18 Esta definici´n corresponde a la extensi´n de conjuntos de la definici´n anterior. Si el o o o conjunto S corresponde a un punto aislado p, entonces 2S = p. ˜ Definici´n 3.2.3 (k-box). Un k-box B = I1 × . . . × Ik es la parte de un espacio ko dimensional definida por el producto cartesiano de los intervalos (I1 , . . . , Ik ). Definici´n 3.2.4 (Extensi´n de los intervalos). Una funci´n definida sobre un conjunto o o o de intervalos F : I n → I, es una extensi´n sobre los intervalos de f : Rn → R si y s´lo si o o ∀ I1 , . . . , In ∈ I : r1 ∈ I1 , . . . , rn ∈ In ⇒ f (r1 , . . . , rn ) ∈ F (I1 , . . . , In ). De igual forma, una relaci´n sobre un conjunto de intervalos C : I n → Bool, es una o extensi´n sobre los intervalos de la relaci´n definida sobre los reales c : Rn → Bool si y s´lo o o o si ∀ I1 , . . . , In ∈ I : r1 ∈ I1 , . . . , rn ∈ In ⇒ [c(r1 , . . . , rn ) ⇒ C(I1 , . . . , In )]. . . Por ejemplo, la relaci´n sobre los intervalos = definida como I1 = I2 ⇔ (I1 ∩ I2 ) = ∅ es o una extensi´n de los intervalos de la relaci´n de igualdad sobre los reales. o o Definici´n 3.2.5 (Extensi´n natural de los intervalos). Una funci´n definida sobre o o o un conjunto de intervalos F : I n → I, es una extensi´n natural sobre los intervalos de o f : Rn → R si y s´lo si F es una extensi´n sobre los intervalos de f obtenida al reemplazar o o ˜ en f cada constante k por su extensi´n natural sobre los intervalos k, cada variable por una o variable sobre los intervalos y cada operaci´n aritm´tica por su extensi´n ´ptima [Moo66] o e o o de los intervalos. De manera informal se define la extensi´n ´ptima como el intervalo m´s o o a peque˜o que conserva el conjunto de soluciones de una funci´n continua. n o Como ejemplo, se muestra la definici´n de la extensi´n ´ptima de los intervalos para las o o o cuatro operaciones b´sica {+, -, ∗, /}: a [a, b] ⊕ [c, d] = [a + c, b + d] [a, b] [c, d] = [a − d, b − c] [a, b] ⊗ [c, d] = [min(ac, ad, bc, bd), max(ac, ad, bc, bd)] [a, b] b b b b [c, d] = [min( a , a , c , d ), max( a , a , c , d )], siempre que 0 ∈ [c, d] / c d c d 19 3.2.2. Propiedades Con respecto a las propiedades, una observaci´n importante es que la forma sint´ctica de o a la funci´n influye en la precisi´n de la extensi´n natural de los intervalos que le ser´ asociada. o o o a Por ejemplo, las funciones f1 (x) = x2 − x y f2 (x) = x(x − 1) tienen (para un dominio dado x = [0, 5]) diferente valor de extensi´n natural F1 ([0, 5]) = [−5, 25] y F2 ([0, 5]) = [−5, 20]. o Por esta raz´n, si bien los operadores {+, ∗} cumplen con las propiedades de conmutatividad o y asociatividad, no cumplen con la propiedad distributiva. Otras propiedades interesantes son las siguientes: Proposici´n 3.2.1. Sea F : I n → I la extensi´n natural de los intervalos de f : Rn → R y o o sea fsol = 2{f (r1 , . . . , rn ) | r1 ∈ I1 , . . . , rn ∈ In }. Si cada ri posee s´lo una ocurrencia en f , o entonces fsol = F (I1 , . . . , In ). En caso contrario fsol ⊆ F (I1 , . . . , In ). Proposici´n 3.2.2. Sea C : I n → Bool, la extensi´n natural de los intervalos de una o o ecuaci´n c : Rn → Bool. Si cada xi posee s´lo una ocurrencia en la ecuaci´n c, entonces o o o C(I1 , . . . , In ) ⇔ (∃ x1 ∈ Dx1 , . . . , xn ∈ Dxn | c(x1 , . . . , xn ) se cumple ). En la siguiente secci´n se describe un conjunto de t´cnicas de consistencia, partiendo o e por la arco-consistencia utilizada en la resoluci´n de problemas con dominios discretos, para o continuar con extensiones de esta t´cnica sobre dominios continuos. e 3.3. T´cnicas de Consistencia e Las t´cnicas de consistencia juegan un papel fundamental en la aplicaci´n de algoritmos e o de propagaci´n para reducir los dominios de las variables pertenecientes a un problema. De o manera general, las t´cnicas de consistencia examinan el dominio de las variables en busca e de valores o conjunto de valores que no podr´ ser asignados respetando las restricciones del ıan problema. Se denominan t´cnicas de filtrado y se aplican para encontrar un CSP equivalente1 . e Una de las t´cnicas de consistencia m´s difundida y utilizada para reducir dominios en e a CSP con dominios discretos en la arco-consistencia [Mac77]. Las t´cnicas discutidas en este e trabajo, aplicadas sobre dominios continuos se han basado en arco-consistencia, relajando sus exigencias para ser aplicada sobre intervalos [Fal94]. 1 Se dice que un CSP P es equivalente a un CSP P si ambos poseen el mismo espacio soluci´n. o 20 3.3.1. Consistencia en dominios finitos arco-consistencia El algoritmo para la arco-consistencia reduce los dominios de las variables eliminando aquellos valores que son inconsistentes (para una restricci´n dada) con los valores permitidos o para las otras variables involucradas en la restricci´n. De manera formal, la arco-consistencia o se define como: Definici´n 3.3.1 (restricci´n arco-consistente). Sea c(x1 , . . . , xn ) una relaci´n entre las o o o variables x1 , . . . , xn de dominios Dx1 , . . . , Dxn discretos. La relaci´n c es arco-consistente ssi o ∀ vi ∈ Dxi , ∃ (v1 , . . . , vi−1 , vi+1 , . . . , vn ) ∈ Dx1 ×. . . Dxi−1 ×Dxi+1 . . .×Dxn tal que c(v1 , . . . , vn ) se cumple, ∀ i = 1, ..., n. Este tipo de consistencia es denominada local, ya que s´lo examina la influencia de una o restricci´n, y no el conjunto de restricciones del problema. A partir de ella se define un CSP o arco-consistente como aquel que posee todas sus restricciones arco-consistentes. Definici´n 3.3.2 (CSP arco-consistente). Sea P = (X, D, C) un CSP. Se dice que P es o arco-consistente ssi ∀vi ∈ Dxi , ∀c ∈ C ∃(v1 , ..., vi−1 , vi+1 , ..., vn ) ∈ Dx1 × ...Dxi−1 × Dxi+1 ... × Dxn tal que c(v1 , ..., vn ) se cumple, ∀ i = 1, ..., n. Es importante notar que el operador ∃ est´ ligado a cada restricci´n c, ya que debe existir a o una n-upla que cumpla la restricci´n (no necesariamente igual para todas las restricciones). o La figura 3.2 muestra un ejemplo de CSP no arco-consistente (A) y un CSP arco-consistente (B). El ejemplo corresponde a un problema de coloreo de grafo con tres nodos. Cada nodo est´ conectado con los otros dos, por lo que no pueden compartir un mismo color. En (A), la a variable x1 posee en color negro como parte del su dominio. Dado que la variable x3 s´lo posee o el color negro en su dominio y la restricci´n x1 = x3 debe ser satisfecha, entonces x1 = negro o no es una asignaci´n consistente para el problema. En conclusi´n, el valor negro debe ser o o eliminado del dominio de x1 . Este an´lisis es independiente de las dem´s restricciones del a a problema, y puede ser realizado antes de comenzar una etapa de b´squeda de soluci´n. Por u o otro lado, en (B) se tiene un CSP arco-consistente, ya que para cada valor perteneciente al dominio de una variable existe un valor en el dominio de las dem´s que satisface cada una a de las restricciones. 21 {azul , rojo , negro } {azul , rojo } x1 x1 ¹ ¹ {azul , rojo } ¹ ¹ ¹ (B) {azul , rojo } x2 ¹ (A) x3 {negro } x2 x3 {negro } Figura 3.2: Ejemplo de un CSP no arco-consistente (A) y uno arco-consistente (B) Es importante remarcar que un CSP arco-consistente no es sin´nimo de un problema o con soluci´n. Las t´cnicas de consistencia s´lo aseguran la incapacidad que tienen algunos o e o valores pertenecientes a los dominios para satisfacer las restricciones del problema, pero nada dice acerca de si el problema tiene soluci´n. La figura 3.3 muestra un ejemplo de CSP o arco-consistente que no posee soluci´n. o {blanco , rojo } x1 ¹ ¹ ¹ {blanco , rojo } x2 x3 {blanco , rojo } Figura 3.3: Ejemplo de un CSP arco-consistente sin soluci´n o En el ejemplo, cada variable posee dos valores que son arco-consistente para cada una de las restricciones, pero la asignaci´n de un valor para cualquiera de ellas produce un sistema o inconsistente. No existe soluci´n factible que respete simult´neamente todas las restricciones. o a Definici´n 3.3.3 (Filtraje por arco-consistencia). Un filtraje por arco-consistencia de o un CSP P = (X, D, C) con D = {Dx1 , . . . , Dxn } es un CSP P = (X, D , C) con D = {Dx1 , . . . , Dxn } tal que: 22 P y P tienen el mismo espacio soluci´n. o P es arco-consistente. Dxi ⊂ Dxi ∀ i, y los dominios de P son los m´s grandes de tal forma que P sea a arco-consistente. La definici´n anterior no especifica el algoritmo utilizado para filtrar los dominios de o las variables hasta conseguir un CSP arco-consistente. En la literatura existen diferentes algoritmos que realizan este procedimiento, y su comparaci´n se basa en la eficiencia (como plejidad algor´ ıtmica). Entre ellos se pueden destacar AC-1, AC-2, AC-3, AC-4 y MAC [Mac77, Dec01, Mil03] como los m´s difundidos. a 3.3.2. Consistencia externa en dominios continuos En esta secci´n se estudia m´s detalladamente las t´cnicas de consistencia utilizadas para o a e filtrar dominios de CSP num´ricos. Dado que existen diferentes t´cnicas para aproximar e e el conjunto soluci´n de un CSP, se han integrado conceptualmente bajo el nombre de eo consistencia o consistencia externa. En lo sucesivo, se entender´ por consistencia externa a a una de las t´cnicas de consistencia aqu´ presentadas (la que produzca la mejor aproximaci´n). e ı o De manera general, un filtraje por e-consistencia de un CSP, ser´ aquel que calcula la m´s a a peque˜a caja exterior (v´ase definici´n 3.2.3) que contiene a su conjunto soluci´n. n e o o Adicionalmente se utilizar´ como notaci´n: Φtecnica (P ) donde t´cnica = {2B, 3B, Box, a o e Bound }, para denotar un CSP P filtrado por la t´cnica respectiva. Adem´s, la notaci´n e a o ΦA (P ) ΦB (P ) se utilizar´ para indicar que el m´todo A produce una reducci´n al menos a e o igual que el m´todo B. Por ultimo, la notaci´n ΦA (P ) ≡ ΦB (P ) se usar´ para indicar que e ´ o a ambas t´cnicas producen reducciones similares. e En las siguientes secciones se har´ una revisi´n de las 4 t´cnicas de reducci´n m´s utia o e o a lizadas en el manejo de intervalos. 2B-consistencia Conceptualmente la 2B-consistencia es una aproximaci´n de la arco-consistencia para o dominios continuos [OV90]. Una restricci´n c es 2B-consistente si, para toda variable x o con dominio Dx = [a, b] existen valores en el dominio de las otras variables que satisfacen la restricci´n c cuando x es instanciada con a y cuando x es instanciada con b. En otras o 23 palabras, si c puede ser escrita de la forma f (x) = 0, entonces a y b corresponden al menor y mayor cero de f en el espacio delimitado por Dx1 ×. . .×Dxn . Formalmente la 2B-consistencia se define como: Definici´n 3.3.4 (2B-consistencia). Sea P = (X, D, C) un CSP con D = {Dx1 , . . . , Dxn }. o La restricci´n k-aria c ∈ C es 2B-consistente ssi: ∀i, Dxi = 2{vi ∈ Dxi tal que ∃v1 ∈ o Dx1 , . . . , ∃vi−1 ∈ Dxi−1 , ∃vi+1 ∈ Dxi+1 , . . . , ∃vn ∈ Dxk tal que c(v1 , . . . , vi−1 , xi , vi+1 , . . . , vk ) se cumple }. Un CSP se dir´ 2B-consistente si todas sus restricciones lo son. a A diferencia de la noci´n de arco-consistencia, la 2B-consistencia no impone una restrico ci´n sobre todos los valores pertenecientes al dominio de la variable, sino s´lo sobre los bordes o o (l´ ımite inferior y superior) del intervalo. Definici´n 3.3.5 (Filtraje por 2B-consistencia). Un filtraje por 2B-consistencia de o un CSP P = (X, D, C) con D = {Dx1 , . . . , Dxn } es un CSP P = (X, D , C), con D = {Dx1 , . . . , Dxn } tal que: P y P tienen el mismo espacio soluci´n. o P es 2B-consistente. ∀i, Dxi ⊂ Dxi y los dominios de P son los m´s grandes de tal forma que P sea a 2B-consistente. Una descripci´n m´s detallada de la 2B- consistencia y los algoritmos de filtraje puede o a ser obtenida en [Rue02]. 3B-consistencia El principio fundamental de la 3B-consistencia es comprobar que el sistema de restricciones no se convierta en trivialmente inconsistente [Lho93]. Esto debido a que la 2Bconsistencia es aplicada considerando s´lo una restricci´n a la vez. La 3B-consistencia examo o ina los bordes del intervalo con el fin de comprobar que ´ste pueda efectivamente ser soluci´n e o del problema. Definici´n 3.3.6 (3B-consistencia). Sea P = (X, D, C) un CSP y x una variable de X o 1 con dominio [a, b]. Sean PDx ←[a,a+ ) el CSP derivado de P al sustituir el dominio Dx por 2 1 2 Dx = [a, a+ ); y PDx ←(b− ,b] el CSP derivado de P al sustituir el dominio Dx por Dx = (b− , b]. 1 2 El dominio Dx es 3B-consistente si y s´lo si Φ2B (PDx ) = Pφ y Φ2B (PDx ) = Pφ . Un CSP o ser´ 3B-consistente si todos sus dominios lo son. a 24 Box-consistencia La Box-consistencia ha sido definida [BMV94] para remediar alguno problemas introducidos por la descomposici´n de restricciones en primitivas para el c´lculo de la 2B-consistencia. o a A diferencia de ´sta ultima, la Box-consistencia no requiere descomposici´n del sistema de e ´ o restricciones para ser aplicada. La definici´n formal es: o Definici´n 3.3.7 (box-consistencia). Sea (X, D, C) un CSP y c ∈ C una restricci´n ko o aria definida sobre (x1 , . . . , xk ). Se dice que c es Box-consistente si: ∀ xi ∈ {x1 , . . . , xk } | Dxi = [a, b], las siguientes relaciones se cumplen: C(Dx1 , . . . , Dxi−1 , [a, a+ ), Dxi+1 , . . . , Dxk ), C(Dx1 , . . . , Dxi−1 , (b− , b], Dxi+1 , . . . , Dxk ) El filtraje por Box-consistencia se define de manera similar al filtraje por 2B-consistencia. Una observaci´n importante es que Φ2B (P ) o aparecen una sola vez en cada restricci´n. o Bound-consistencia La Bound-consistencia tiene sobre la Box-consistencia el mismo efecto que la 3B-consistencia sobre la 2B-consistencia, es decir, examina los bordes del intervalo para evitar que el sistema se vuelva trivialmente inconsistente [ZW98]. En otras palabras, verifica si la box-consistencia puede ser aplicada cuando el dominio de una variable es reducido al valor de uno de sus bordes. Formalmente: Definici´n 3.3.8 (bound-consistencia). Sea (X, D, C) un CSP P , y c ∈ C una restricci´n o o de orden k. Se dice que c es Box-consistente si: ∀ xi ∈ {x1 , ..., xk } | Dxi = [a, b], se cumple que: Φbox (C(Dx1 , . . . , Dxi−1 , [a, a+ ), Dxi+1 , . . . , Dxk )) = P∅ , Φbox (C(Dx1 , . . . , Dxi−1 , (b− , b], Dxi+1 , . . . , Dxk )) = P∅ Se puede comprobar que, as´ como Φbox (P ) ı Φ2B (P ), se tiene que Φbound (P ) Φ3B (P ) Φbox (P ) y Φ2B (P ) ≡ Φbox (P ) si las variables 25 C´lculo de consistencia externa con an´lisis de intervalos a a Finalmente se entrega un ejemplo del c´lculo de consistencia externa utilizando la aa ritm´tica de intervalos [COP01]. El procedimiento consiste en determinar los l´ e ımites del intervalo [L, R] de tal forma que encierren todas las soluciones al problema, y no sea posible reducirlo. Para calcular el l´ ımite superior R, el intervalo inicial [a, b] es dividido en dos subespacios disjuntos [a, a+b ] y [ a+b , b], analizando la presencia de soluci´n en el subespacio o 2 2 superior. Si ´ste no posee soluci´n, se elimina. Por el contrario, si aun posee soluci´n, este e o o nuevo subespacio es dividido en dos, y se analiza el nuevo subespacio en forma recursiva. El proceso se detiene cuando el largo del intervalo es menor que una precisi´n establecida. o Por ejemplo, consid´rese la funci´n f (x) = x2 − 2x + 1 = 0, para un x en el intervalo e o [2, 4]. La determinaci´n de R se realiza considerando inicialmente el intervalo [3, 4]. Como o f ([3, 4]) = [3, 4]2 − 2 ∗ [3, 4] + 1 = [2, 11], vale decir, no contiene ceros para la funci´n, el o intervalo [3, 4] es eliminado. De igual forma, para el c´lculo de [L, se analiza el intervalo a [2, 3], obteni´ndose f ([2, 3]) = [−1, 6]. Vale decir, no es posible descartar el intervalo, por e lo tanto se procede al an´lisis del intervalo [2, 2,5]. La determinaci´n de [L contin´a con la a o u siguiente progresi´n: o f ([2, 2,5]) = f ([2, 2,25]) = f ([2,25, 3]) = [0, 3,25] ⇒ L = [2, 3] L = [2,25, 3] x=∅ [0,5, 2,0625] ⇒ [0,0625, 5,5] ⇒ De esta forma, se determina que el intervalo [2, 4] no posee ceros para el funci´n f (x) = o x2 − 2x + 1. 3.3.3. Consistencia interna en dominios continuos A diferencia de las t´cnicas de e-consistencia, que est´n basadas en la arco-consistencia e a para reducir los dominios de las variables, la i-consistencia [H´l99] es un concepto para denoe tar aquellos CSP compuestos por variables que s´lo poseen dominios factibles. Formalmente o se define como: Definici´n 3.3.9 (i-consistencia). Sea P = (X, D, C) un CSP con D = {Dx1 , . . . , Dxn }. o P ser´ i-consistente ssi ∀c ∈ C, ∀(x1 , . . . , xn ) ∈ Dx1 × . . . × Dxn , c(x1 , . . . , xn ) se cumple. a En estricto rigor la definici´n implica que toda asignaci´n de valores a las variables cumple o o todas y cada una de las restricciones del problema. Como ejemplo, suponga un problema 26 P = {X = {x1 , x2 }, D = {[2, 4], [5, 8]}, C = {x1 < x2 }}. Se dice que P es i-consistente, ya que s´lo posee asignaciones v´lidas en el dominio de sus variables. o a Extensi´n de dominio i-consistente o La noci´n de i-consistencia permite desarrollar una metodolog´ de extensi´n de dominio, o ıa o que posee la caracter´ ıstica de mantener s´lo asignaciones v´lidas para cada variable. Foro a malmente: Definici´n 3.3.10 (Extensi´n derecha i-consistente). Sea P = (X, D, C) un CSP io o consistente. P = (X, D , C) es una extensi´n derecha i-consistente de Dx para P ssi: o ∀ Di ∈ D\{Dx }, Di = Di Dx ⊂ Dx , Dx = Dx , es decir, conservan el mismo l´ ımite inferior. P es i-consistente. An´logamente se define una extensi´n izquierda i-consistente, teniendo en cuenta que los a o l´ ımites superiores de ambos dominios permanecen fijos. Definici´n 3.3.11 (Funci´n extrema). Sea c una inecuaci´n de tipo f (x1 , . . . , xn ) o o o ´ f (x1 , . . . , xn ) o Fc min(x) 0 0, cequ denota la ecuaci´n correspondiente a c, es decir f (x1 , . . . , xn ) = 0. o min(x) (D) es una funci´n extrema optimal de cequ para la variable x si Fc o (D) calcula el menor valor de x, el cual es soluci´n de cequ en el espacio delimitado por D. o Finalmente, la metodolog´ propuesta en [H´l99] para la extensi´n derecha de dominios ıa e o i-consistentes consta de los siguientes pasos: ´ 1. Buscar un subconjunto del espacio soluci´n del problema. Este puede ser incluso un o punto soluci´n. o 2. Seleccionar la variable a la cual se desea extender el dominio. 3. Definir, para cada inecuaci´n, una funci´n extrema que calcule la soluci´n m´s a la o o o a izquierda de la variable seleccionada en el espacio definido por el dominio de las otras variables. 4. Encontrar la menor soluci´n de todas las funciones extremas. o 27 Ejemplo Para ejemplificar la extensi´n de dominios consistentes en un CSP, consid´rese el CSP o e P = (X = {x1 , x2 }, D = {[0, 100], [0, 100]}, C = {x1 ∗ x2 5}) mostrado en la figura 3.4. Suponga que se tiene un dominio inicial, que se sabe es soluci´n del problema (dominio o i-consistente), Dx1 = [0, 1] y Dx2 = [1, 2]. Para realizar una extensi´n derecha del dominio o Dx1 se considera la ecuaci´n x1 ∗ x2 = 5 en el espacio delimitado por x1 ∈ [1, 3] y x2 ∈ [1, 2]. o La soluci´n m´s a la izquierda del nuevo problema es x1 = 2,5 y x2 = 2. Por lo tanto, el o a nuevo dominio i-consistente extendido por la derecha de x1 es Dx1 = [0; 2,5]. x2 3 ??? ??? ??? ??? 2 1 0 x1 1 2 3 4 Figura 3.4: Extensi´n de dominios consistentes en CSP o 3.4. Ejemplo gr´fico de t´cnicas de consistencia a e La figura 3.5 muestra la relaci´n existente entre las t´cnicas de consistencia presentadas o e en las secciones 3.3.2 y 3.3.3, al ser aplicadas a un CSP. Las zonas blancas representan el espacio soluci´n de un CSP particular sobre el plano o cartesiano. Se ha considerado como dominio inicial el primer cuadrante del plano. El rect´ngua lo punteado externo, representa la aplicaci´n de una t´cnicas de consistencia externa para o e aproximar las soluciones del CSP. N´tese que la aplicaci´n de e-consistencia encierra todas las o o 28 ?? ?????? ?? ?????? ?? A Figura 3.5: Relaci´n entre la e-consistencia y la i-consistencia o soluciones del problema, abarcando adem´s espacio que no es soluci´n. El cuadrado peque˜o, a o n etiquetado como conjunto A, representa un conjunto soluci´n inicial dado u obtenido con o alg´n m´todo de b´squeda de soluci´n. Si al CSP original, se le restringe el dominio al espau e u o cio abarcado por el conjunto A, se tiene un CSP i-consistente. Por ultimo, suponiendo que se ´ tiene un CSP i-consistente y se desea extender el dominio de una variable, se obtiene como resultado el rect´ngulo horizontal inscrito en la zona blanca mayor (para una extensi´n sobre a o el eje X), y el rect´ngulo vertical inscrito en la zona blanca mayor (para una extensi´n sobre a o el eje Y) del dominio i-consistente. 3.5. Resumen del cap´ ıtulo En este cap´ ıtulo se han definido los conceptos relacionados con la Programaci´n con o Restricciones, centr´ndose principalmente en aquellos relacionados con dominios continuos. a Se presentaron las nociones b´sicas de la aritm´tica de intervalos, as´ como las t´cnicas a e ı e de consistencia aplicadas a los CSP con dominios continuos. Se explicaron las t´cnicas de e 2B-consistencia, 3B-consistencia, Box-consistencia y Bound-consistencia, agrup´ndolas bajo a el concepto de e-consistencia. Adem´s, se present´ una clase particular de consistencia, a o denominada i-consistencia, que consiste en una noci´n m´s que en una t´cnica de filtraje. o a e 29 Por ultimo, se present´ una t´cnica de extensi´n de dominios consistentes, que utiliza la ´ o e o i-consistencia para asegurar que el dominio final posea s´lo soluciones al problema, y se o mostr´ un ejemplo del resultado esperado por cada una de las t´cnicas. o e 30 Cap´ ıtulo 4 Metodolog´ de Resoluci´n ıa o Hasta ahora se han revisado los conceptos relacionados con los CSP y las t´cnicas de e CP aplicadas a la resoluci´n de esta clase de problemas. En lo que sigue, se presenta la o metodolog´ realizada por Julien Touati en el INRIA de Sophia-Antipolis, Francia. El objeıa tivo de esta metodolog´ es aproximar las soluciones de un sistema de ecuaciones de distancia, ıa cuando la medida de la distancia posee un cierto grado de incertidumbre1 . El trabajo completo puede ser obtenido en [Tou02]. El objetivo principal es el tratamiento de incertidumbre en restricciones de distancia y puede ser resumida en los siguientes pasos: 1. Encontrar todas las soluciones del sistema de ecuaciones sin considerar la influencia de las incertidumbres. 2. Incluir las incertidumbres del problema, transformado las ecuaciones en sus inecuaciones correspondientes y, para cada soluci´n encontrada, extender los dominios de o las variables en forma consistente para obtener una caja interior (m´ ınimo espacio de tolerancia) para cada uno de los puntos pertenecientes a la soluci´n. o 3. Separar cada punto perteneciente a una soluci´n, de sus alternativas existentes en otras o soluciones, aislando su posible influencia en el c´lculo posterior de cajas exteriores. a 4. Por cada punto perteneciente a una soluci´n, aplicar t´cnicas de consistencia externa o e para obtener una caja exterior (m´ximo espacio de tolerancia). a La noci´n de incertidumbre corresponde al grado de tolerancia en la medida de la distancia, debido por o ejemplo a la precisi´n del instrumento de medici´n, y que convierte a un punto soluci´n en una zona de o o o factibilidad. Esta incertidumbre se asume acotada y peque˜a en comparaci´n a la medida en s´ n o ı. 1 31 En conclusi´n, se desea obtener una aproximaci´n de las soluciones del sistema cono o siderando la influencia que las incertidumbres provocan. 4.1. Explicaci´n mediante un ejemplo o Antes de estudiar en detalle la metodolog´ de Touati, se plantea un ejemplo simplifiıa cado para visualizar los diferentes pasos y sus influencias en la resoluci´n de los sistemas o planteados. La figura 4.1 muestra un problema que consiste en encontrar la posici´n de un artefacto o emisor de ondas que ha ca´ en una zona cercana a dos antenas de recepci´n. Dadas las caıdo o racter´ ısticas de la onda emitida, cada antena posee cierta informaci´n de la posible distancia o a la que se encuentra el objeto. Por la magnitud de la se˜al, la primera antena determina que n el objeto se encuentra a una distancia d1 de ´sta, mientras que la segunda antena determina e que entre ella y el objeto existe una distancia d2 . Debido a las caracter´ ısticas de los aparatos de medici´n, no se asegura que la distancia calculada sea exacta, pero si es posible afirmar o que el valor real no dista por m´s de i metros del valor propuesto para ambas distancias. a d 2±i d 1±i 1 Figura 4.1: Ejemplo de un problema de ecuaciones de distancia Dado que la ubicaci´n en ambas antenas receptoras es bien conocida, y suponiendo ciertas o caracter´ ısticas del terreno (plano), es posible simplificar el problema plante´ndolo de la a 32 siguiente manera: dado dos puntos P1 y P2 (fijos) en el plano cartesiano, se desea determinar la ubicaci´n de un tercer punto P3 que se encuentra a una distancia d(P1 , P3 ) = d1 ± i y o d(P2 , P3 ) = d1 ± i a los primeros, respectivamente. En el problema se asume que la incertidumbre en ambas mediciones es la misma, y corresponde al valor de i. y P3 d1 P1 P3' P2 d2 x Figura 4.2: Simplificaci´n del problema en un plano cartesiano o La figura 4.2 muestra el problema simplificado en un plano cartesiano, omitiendo la influencia de la incertidumbre en la medici´n de la distancia. Suponga que el punto P1 tiene o coordenadas (p1a , p1b ) = (0, 0) y el punto P2 tiene coordenadas (p2a , p2b ) = (0, 5). Entonces, se desean determinar las coordenadas del punto P3 = (p3a , p3b ) que cumplen con las restricciones del problema. El sistema de ecuaciones que describe la situaci´n planteada anteriormente o puede ser escrito de la siguiente manera: p1a = 0 y p1b = 0 p2a = 0 y p2b = 5 d(P1 , P3 ) = d(P2 , P3 ) = (p1a − p3a )2 + (p1b − p3b )2 = d1 (p2a − p3a )2 + (p2b − p3b )2 = d2 (punto P1 fijo) (punto P2 fijo) (distancia entre P1 y P3 ) (distancia entre P2 y P3 ) 33 Suponiendo que la situaci´n sea, cualitativamente, la mostrada en la figura 4.2, la resoo luci´n del sistema de ecuaciones anterior entregar´ dos posibles soluciones: los puntos P3 y o ıa P3 mostrados en ella. Si bien es claro que estos puntos son soluci´n del problema simplificado (al omitir la o influencia de las incertidumbres), los valores obtenidos pueden no reflejar la posici´n exacta o del objeto. M´s a´n, la soluci´n exacta del problema no entrega informaci´n acerca de la a u o o zona real en donde podr´ encontrarse. Por esta raz´n, es necesario estudiar la influencia de ıa o las incertidumbres en las soluciones, con el fin de determinar una aproximaci´n m´s clara o a de la zona en donde podr´ encontrarse el objeto. La figura 4.3 muestra ambos conjuntos ıa soluci´n al considerar las incertidumbres en la medici´n. o o y P1 ? ? ? ? P3 P3' P2 x Figura 4.3: Problema en plano cartesiano considerando incertidumbres La zona achurada representa el espacio soluci´n del problema completo. En ella se observa o que existe un rango de tolerancia para ambas soluciones, y que la soluci´n exacta al problema o o (los puntos P3 y P3 ), representa s´lo un caso particular. La metodolog´ de resoluci´n de sistemas de ecuaciones con incertidumbre plantea, en ıa o primera instancia, la determinaci´n de los puntos soluci´n del problema sin considerar las o o incertidumbre. El segundo paso consiste en utilizar t´cnicas de la programaci´n con restricciones para e o extender los dominios de las variables de forma consistente. Para ello, es necesario modificar 34 el modelo original, transformando sus ecuaciones en inecuaciones que consideren la incertidumbre. El nuevo sistema de ecuaciones puede ser escrito de la siguiente manera: x1a = 0 y x1b = 0 x2a = 0 y x2b = 5 (x1a − x3a )2 + (x1b − x3b )2 (x1a − x3a )2 + (x1b − x3b )2 (x2a − x3a )2 + (x2b − x3b )2 (x2a − x3a )2 + (x2b − x3b )2 d1 + i d1 − i d2 + i d2 − i (punto P1 fijo) (punto P2 fijo) (distancia entre P1 y P3 m´s incertidumbre) a (distancia entre P1 y P3 menos incertidumbre) (distancia entre P2 y P3 m´s incertidumbre) a (distancia entre P2 y P3 menos incertidumbre) La figura 4.4 muestra el resultado de la extensi´n de dominios para ambas soluciones. o y P3 P1 P3' P2 x Figura 4.4: C´lculo de caja interior a trav´s de consistencia interna a e La caja interna calculada, representa una aproximaci´n inferior al espacio soluci´n, es deo o cir, un subconjunto del espacio de b´squeda original que contiene solamente puntos soluci´n u o del sistema de ecuaciones. De esta forma es posible afirmar que cualquier punto contenido en la caja interior es soluci´n del problema planteado. o El tercer paso de la metodolog´ consiste en separar cada punto perteneciente a una ıa soluci´n, de sus alternativas existentes en otras soluciones. En otra palabras, se separa el o espacio de b´squeda en subespacios, cada uno de los cuales posee s´lo una de las soluciones u o 35 al problema. En el problema planteado no existen alternativas para los puntos P1 y P2 , ya que son considerados fijos. Por el contrario, existen dos alternativas para el tercer punto: P3 y P3 . La figura 4.5 muestra la separaci´n de los puntos soluci´n P3 y P3 del problema en subespacios o o disjuntos. y sub- espacio 2 P3 CORTE P1 P3' P2 sub- espacio 1 x Figura 4.5: Separaci´n de puntos pertenecientes a soluciones diferentes o Una vez independizados los puntos pertenecientes a las soluciones del problema, se procede al cuarto paso de la metodolog´ que consiste en aplicar t´cnicas de consistencia externa ıa e para encontrar una caja exterior que contenga el m´ximo grado de tolerancia para cada una a de las soluciones encontradas. La figura 4.6 muestra la aplicaci´n de las t´cnicas de consistencia externa a cada subeo e spacio de b´squeda. u El resultado final de esta metodolog´ es la obtenci´n de una caja interior y una exterior, ıa o por cada uno de los puntos pertenecientes a una soluci´n. La caja interior indica una zona o de cumplimiento absoluto de las restricciones, es decir, cualquier valor contenido en ella es soluci´n del sistema de ecuaciones planteado (considerando las incertidumbres). Por otro o lado, la caja exterior indica una zona de cumplimiento l´ ımite, vale decir, no existen puntos fuera de esta zona que cumplan con las restricciones planteadas en el sistema de ecuaciones, a´n considerando las incertidumbres. u 36 y sub- espacio 2 P3 CORTE P1 P3' P2 sub- espacio 1 x Figura 4.6: C´lculo de cajas exteriores para cada soluci´n a o En conclusi´n, el espacio comprendido entre la caja interior y la caja exterior representa o una aproximaci´n de las soluciones del sistema de ecuaciones con incertidumbre. o Finalmente, y como respuesta al problema inicial de encontrar la posici´n del artefacto o emisor de ondas, se puede concluir que existen dos posibles ubicaciones en el terreno. Para cada una de ellas se tiene una caja interior (que marca el lugar m´s probable donde se puede a encontrar el artefacto) y una caja exterior (que marca el l´ ımite de la zona en donde se deber´ ıa buscar. La ventaja inmediata de esta metodolog´ es la posibilidad de entregar una respuesta ıa m´s precisa al problema, que refleje las caracter´ a ısticas de incertidumbre involucrada. 4.2. Algoritmo dij ± eij , sobre un espacio d-dimensional compuesto de n puntos, de los Para este estudio se consider´ un sistema compuesto por p ecuaciones de distancia de la o forma d( pi , pj ) cuales m son fijos. En primera instancia, se resuelve el sistema de ecuaci´n sin considerar las incertidumbres. o Para ello se utilizan bibliotecas especializadas de resoluci´n de sistemas, en particular, ILOG o Solver. Para mayor informaci´n, en el anexo A se entrega una introducci´n a las tecnolog´ o o ıas 37 de ILOG Concert e ILOG Solver. Una vez determinadas las soluciones al problema, se realiza el c´lculo de cajas interiores a (aplicando extensi´n de dominios i-consistentes) y el c´lculo de cajas exteriores (aplicando o a separaci´n de puntos en el espacio). De esta forma se acota la incertidumbre entre ambas o cajas. 4.2.1. C´lculo de cajas interiores a Para el c´lculo de cajas interiores se aplica el algoritmo de extensi´n de dominios ia o consistentes mostrado en el cuadro 4.1. function icons(V = {x1 , . . . , xd }, D = I1 × . . . × Id , c) for (k = 1; k < d; k + +) a ← Inf (Ik ) a ← Sup(Ik ) Ik ← ] − ∞, a] 2B-consistencia(V , D, !c) ak ← M ax(Ik ) Ik ← [b, ∞[ 2B-consistencia(V , D, !c) bk ← M in(Ik ) Ik ← [ak , bk ] end for end function Cuadro 4.1: Algoritmo de extensi´n de dominios i-consistentes o El algoritmo recibe inicialmente un conjunto de variables que corresponden a las coordenadas de un punto en el espacio d-dimensional y sus dominios asociados. Originalmente cada dominio corresponde a un intervalo muy peque˜o (o un valor puntual), pues no se n consider´ las incertidumbres en la resoluci´n del sistema. o o A partir de estos intervalos se realiza la extensi´n de dominios para cada coordenada del o punto, una a una, manteniendo las dem´s coordenadas fijas. a Para extender el dominio en una coordenada particular, considerando una restricci´n c, se o separa el intervalo inicial [a, b] en dos subintervalos disjuntos ] − ∞, a] y [b, ∞[, manteniendo fijas las dem´s coordenadas. a La extensi´n izquierda del intervalo para la coordenada i se obtiene considerando un o nuevo CSP con los dominios iniciales para todas las dem´s coordenadas, y el dominio ]−∞, a] a 38 para la coordenada i. A continuaci´n, se aplica una t´cnica de consistencia externa (por o e ejemplo, 2B-consistencia), considerando la restricci´n opuesta a la original (vale decir, not(c) o en lugar de c). De esta forma, se obtiene un nuevo intervalo [c, d] con d a, en donde la restricci´n opuesta es v´lida. En conclusi´n, si la restricci´n not(c) es v´lida s´lo en el o a o o a o intervalo [c, d], esto implica que la restricci´n c es v´lida en el intervalo [d, a], por lo que el o a nuevo l´ ımite inferior para la coordenada i pasa a ser d. La extensi´n derecha se realiza en forma an´loga, obteni´ndose un nuevo intervalo para o a e la coordenada i. De igual forma se extiende el dominio de cada una de las coordenadas, obteni´ndose como resultado la caja interior correspondiente. e Dado que existe m´s de una restricci´n en el CSP original, es necesario aplicar el algoritmo a o por cada una de las restricciones del problema, para luego intersectar los intervalos extendidos y obtener la caja interior que cumpla con todas las restricciones del problema. El cuadro 4.2 muestra el algoritmo de extensi´n general. o function iconsgen(V = {x1 , . . . , xd }, D = I1 × . . . × Id , C = {c1 , . . . , cm }) for (k = 1; k < m; k + +) icons(V, D, ck ) Dk ← D end for D ← D1 ∩ . . . ∩ Dm end function Cuadro 4.2: Algoritmo general de extensi´n de dominios o Por cada restricci´n se calcula la extensi´n de dominios y se obtiene un nuevo dominio Dk . o o Posteriormente, los Dk son intersectados, obteni´ndose una caja interior que por construcci´n e o es i-consistente. 4.2.2. C´lculo de cajas exteriores a Debido a que las t´cnicas de consistencia externa reducen el espacio de b´squeda a un e u subespacio que contiene todas las soluciones del problema, es necesario independizar los conjuntos soluci´n antes de aplicarlas. La figura 4.7 muestra la caja exterior resultante, sin o separaci´n de conjuntos soluci´n, calculada para el problema presentado en la secci´n 4.1. o o o Como puede apreciarse en la figura, es necesario independizar los conjuntos soluci´n para o obtener mejores aproximaciones en cada una de las posiciones posibles de un punto. Para 39 y P1 P2 x Figura 4.7: Caja exterior calculada sin separaci´n de conjuntos soluci´n o o ello, se propone la utilizaci´n de una funci´n de verificaci´n de coordenadas, presentada en o o o el cuadro 4.3. function testnaif({A1 , . . . , Ar }) for (k = 1; k < d; k + +) if (∀ (Ai , Aj ) ∈ {A1 , . . . , Ar } × {A1 , . . . , Ar }, πk (Ai ) = πk (Aj )) return k end if end for return 0 end function Cuadro 4.3: Funci´n de verificaci´n de coordenadas o o La expresi´n πk (Ai ) representa la proyecci´n del punto Ai en la coordenada k. Esta o o funci´n recibe el conjunto de puntos a ser separados e investiga, para cada coordenada, si o existe m´s de un punto que comparta el mismo valor. Si todos los puntos tienen un valor a distinto para una coordenada en particular, ´sta es devuelta como la coordenada a utilizar e para separar el espacio de b´squeda, en caso contrario, la funci´n retorna una coordenada u o nula (valor cero). 40 Asumiendo que la coordenada para la separaci´n no es nula, se aplica la funci´n preseno o tada en el cuadro 4.4, que divide en espacio de b´squeda original en n subespacios disjuntos, u cada uno conteniendo uno de los puntos a separar. function algonaif(E, {A1 , . . . , Ar }) p ← testnaif({A1 , . . . , Ar }) if (p > 0) sort({A1 , . . . , Ar }, p) for (i = 1; i < r; i + +) π (A )+π (A ) π (A )+π (A ) p−1 Ei ← k=1 πk (E) × [ p i 2 p i−1 , p i+1 2 p i ] × end for end if end function d k=p+1 πk (E) Cuadro 4.4: Funci´n de separaci´n de puntos en espacios disjuntos o o La funci´n recibe el espacio original y el conjunto de puntos. A partir de la funci´n o o testnaif determina la coordenada de corte. A continuaci´n, todos los puntos son ordenados o por el valor de su proyecci´n sobre la coordenada de corte. Finalmente, el espacio es dividido o en los puntos medios entre cada par de puntos consecutivos. Por convenci´n se asume que o A0 representa el punto de coordenada −∞ y Ar+1 el punto de coordenada ∞. Para aquellos casos particulares, en donde no es posible encontrar una coordenada p en donde realizar la separaci´n de todos los puntos, el algoritmo contempla la separaci´n del eso o pacio en el valor medio del primer par de puntos con coordenadas diferentes. Posteriormente, se analizan los subespacios obtenidos utilizando la funci´n testnaif. Este procedimiento se o realiza en forma recursiva, hasta que los subespacios resultantes puedan ser divididos a trav´s e de algonaif o posean s´lo un punto soluci´n. o o Una vez independizados los espacios que contienen s´lo un conjunto soluci´n, se aplica o o una t´cnica de e-consistencia para reducir los dominios de las variables y determinar una e aproximaci´n externa. El resultado de este procedimiento es una caja exterior que rodea a o cada uno de los puntos soluci´n encontrados inicialmente. En otras palabras, por cada uno o de los conjuntos soluci´n, se tendr´ una aproximaci´n inferior (caja interior) y una superior o a o (caja exterior) que acotan su espacio de soluci´n. o 41 4.3. Resumen del cap´ ıtulo En este cap´ ıtulo se present´ la metodolog´ para el tratamiento de incertidumbres en o ıa sistemas de ecuaciones de distancia propuesta por Touati. En primer lugar se present´ una o explicaci´n mediante un ejemplo, para familiarizar al lector con los pasos propuestos por o la metodolog´ Posteriormente se mostr´ el algoritmo en detalle, haciendo hincapi´ en sus ıa. o e principales estructuras. En lo que sigue se presentar´ el an´lisis realizado a esta metodolog´ a a ıa, sus principales ´reas de mejoramiento y los algoritmos propuestos para mejorar e interpretar a los resultados obtenidos. 42 Parte III Trabajo aplicado 43 Cap´ ıtulo 5 ´ Areas de mejoramiento Del estudio de la metodolog´ de resoluci´n de sistemas de ecuaciones de distancia con ıa o incertidumbre, expuesta en el cap´ ıtulo 4, se han detectado deficiencias en tres grandes ´reas: a 1. La determinaci´n cualitativa del tipo configuraci´n de la soluci´n. Es decir, en ella se o o o asume que el sistema de ecuaciones posee soluci´n y adem´s, que los puntos soluci´n o a o se distribuyen de manera conveniente. o o 2. Muy relacionado con la observaci´n anterior, se omite la medici´n del grado de incertidumbre y su influencia en el c´lculo de otros puntos pertenecientes a la soluci´n. a o 3. Se omite la relaci´n entre puntos pertenecientes a una misma soluci´n, separando o o todos los valores posibles para un mismo punto, sin considerar que su validez depende, adem´s, de los otros valores asignados a las variables de una soluci´n. a o El estudio de estas tres deficiencias permite mejorar el algoritmo de separaci´n de puntos o y, de esta forma, obtener mejores aproximaciones en el c´lculo de cajas exteriores. a En este cap´ ıtulo se profundizar´ en cada una de las deficiencias detectadas, comenzando a por la determinaci´n cualitativa del tipo de soluci´n que permite determinar a priori las o o caracter´ ısticas generales de las soluciones. Posteriormente se analiza la influencia que tienen las incertidumbres previas en el c´lculo posterior de puntos, y la relaci´n que existe entre a o la validez de un punto y la elecci´n de otro como soluci´n. Finalmente se presentan las o o dificultades del algoritmo de separaci´n de puntos a trav´s de un ejemplo concreto. o e 44 5.1. Determinaci´n cualitativa del tipo de configuraci´n o o Los sistemas de ecuaciones de distancia poseen caracter´ ısticas especiales que les proporcionan ciertas facilidades en el tratamiento de las soluciones. Por ejemplo, es posible estudiar a priori el comportamiento del sistema, bas´ndose en la informaci´n de distancias y a o en la incertidumbre, para determinar, de manera cualitativa, qu´ tipo de soluciones se deben e esperar. Sea PA = (x1 , y1 ) y PB = (x2 , y2 ) dos puntos de referencia. Sea PX un tercer punto con relaciones de distancia r1 y r2 a los dos primeros, respectivamente. Suponga que existe un cierto grado de incertidumbre en la medici´n de esta distancia. Es posible clasificar, de forma o cualitativa, el tipo de configuraci´n soluci´n en: o o 1. Un sistema de ecuaciones sin un conjunto soluci´n. o 2. Un sistema de ecuaciones con s´lo un conjunto soluci´n. o o 3. Un sistema de ecuaciones con dos o m´s conjuntos soluci´n disjuntos. a o La figura 5.1 muestra estas tres posibilidades para el problema planteado. Para facilitar la compresi´n de las ideas aqu´ planteadas, se presenta el ejemplo suponiendo que la distancia o ı desde los puntos de referencia al tercer punto es menor que la distancia entre ambos puntos de referencia. Las observaciones son tambi´n v´lidas cuando los puntos de referencia se e a encuentran a menor distancia que el tercer punto, obteni´ndose una circunferencia incluida e en otra. y y y r2 r2 r2 y2 P2 y2 P2 y2 r1 r1 r1 P2 P1 y1 y1 P1 P1 y1 x1 x2 x x1 x2 x x1 x2 x (A) (B) (C ) Figura 5.1: Ejemplos de configuraci´n soluci´n o o 45 En la letra A, se presenta un sistema sin soluci´n, es decir, no es posible encontrar un o punto Px que se encuentre a una distancia r1 del punto PA y a distancia r2 del punto PB simult´neamente (a´n considerando las incertidumbres). La letra B, muestra un sistema a u con un s´lo conjunto soluci´n, es decir, cualquiera de los valores pertenecientes a la zona o o demarcada son soluci´n del sistema. Por ultimo la letra C, muestra un sistema con conjuntos o ´ soluci´n independientes, es decir, dos zonas del espacio de b´squeda que poseen valores que o u cumplen todas las restricciones del sistema. El punto importante a tener en cuenta aqu´ es la posibilidad de determinar el tipo de ı, soluciones que se debieran con certeza esperar para el sistema, antes de aplicar un algoritmo de resoluci´n. De esta forma, pueden utilizarse m´todos alternativos para cada tipo de o e sistema, utilizando las caracter´ ısticas del problema para guiar de mejor forma la metodolog´ ıa. Existe adem´s dos casos especial de configuraci´n soluci´n, mostrado en la figura 5.2, a o o que pertenece a la clasificaci´n B y son llamados casos degenerados. o y y r2 r2 y2 P2 r1 y2 P2 r1 y1 P1 y1 P1 x1 x2 x x1 x2 x (D) (E ) Figura 5.2: Ejemplo de casos degenerados Estos tipos de configuraci´n soluci´n presentan una mayor dificultar que los otros. En la o o letra D, se muestra un sistema que al calcular las soluciones (sin considerar las incertidumbres) entrega dos puntos independientes, mientras que el sistema con incertidumbre posee s´lo un conjunto soluci´n. La letra E presenta una dificultad a´n mayor, ya que el sistema de o o u ecuaciones sin incertidumbre no posee soluci´n, mientras que el sistema con incertidumbre o s´ posee un conjunto soluci´n. ı o 46 5.2. Influencia de la incertidumbre previa Dado que la determinaci´n de la posici´n de un punto se realiza en relaci´n a las distancias o o o entre ´l y los otros puntos de referencia, el grado de incertidumbre en la medici´n de un punto e o P influir´ sobre todos aquellos puntos determinadas a partir de ecuaciones de distancia al a punto P . Esto tambi´n influye sobre la configuraci´n soluci´n del problema. e o o y y r2 r2 y2 P2 y2 r1 P2 P1 y1 r1 y1 P1 x1 x2 x x1 x2 x (A) (B) Figura 5.3: Influencia de las incertidumbres previas La figura 5.3 muestra la configuraci´n soluci´n de un sistema de ecuaciones de distancia o o con dos puntos de referencia calculados sin incertidumbre (letra A). El mismo sistema, considerando que los puntos de referencia han sido calculados a partir de otros puntos de referencia (es decir, poseen un grado de incertidumbre en su medici´n), es mostrado en la o letra B. En ella se observa que la configuraci´n soluci´n cambia, producto de la incertidumbre o o en la posici´n de los puntos de referencia. o De manera m´s general, si PA y PB son dos puntos de referencia y se desea calcular la a posici´n de un tercer punto PX , el tipo de configuraci´n soluci´n puede ser aproximado calo o o culando la suma de la incertidumbre en el c´lculo del punto de referencia y la incertidumbre a en la medici´n del nuevo punto. o Este enfoque considera que es posible determinar un punto s´lo en relaci´n a otros dos o o puntos de referencia. 47 5.3. Relaci´n entre los puntos de una soluci´n o o Cuando se divide el espacio de b´squeda de dos puntos pertenecientes a soluciones difeu rentes, todas las soluciones son subdivididas en dos subconjuntos. Esto reduce la cantidad de puntos que debieran ser independizados posteriormente. En estricto rigor, s´lo los puntos o pertenecientes a las soluciones de cada subconjunto necesitan ser separados de sus pares. La metodolog´ original considera el c´lculo de cajas exteriores para cada conjunto soluıa a ci´n. Para ello, se aplica un algoritmo de separaci´n de puntos para independizar las soluo o ciones y evitar la influencia de un conjunto soluci´n en el c´lculo de la caja exterior de otro o a conjunto soluci´n. o En la secci´n 4.2 se vio que para obtener mejores aproximaciones de cajas exteriores o era necesario separar, para cada punto a determinar, el espacio de b´squeda en dos o m´s u a subespacios independientes que contengan s´lo un conjunto soluci´n. Si bien este enfoque o o parece correcto, existen sin embargo casos particulares de soluci´n, donde la influencia de o sus puntos es parcial. y r3 P4 P4' P 4 '' r4 r2 P3 P2 r1 P1 P3' P 4 ''' x Figura 5.4: Influencia parcial en la determinaci´n de puntos soluci´n o o La figura 5.4 muestra el problema de ubicar los puntos P3 y P4 en un plano cartesiano, dados los puntos de referencia P1 y P2 fijos. Sea r1 = d(P1 , P3 ) la distancia entre el primer y el tercer punto, r2 = d(P2 , P3 ) la distancia entre el segundo y el tercer punto, r3 = d(P2 , P4 ) 48 la distancia entre el segundo y el cuarto punto y r4 = d(P3 , P4 ) la distancia entre el tercer y el cuarto punto. Se asume que todas las mediciones de distancia posee un cierto grado de incertidumbre. La soluci´n del problema para el tercer punto muestra dos posibles ubicaciones: P3 y P3 . o Adem´s, el cuarto punto posee cuatro ubicaciones posibles: P4 , P4 , P4 y P4 . a La figura muestra que existe interferencia entre los punto P4 y P4 , debido a que comparten un ´rea del espacio en com´n. Sin embargo, esta influencia podr´ ser calificada como parcial, a u ıa o o o debido a que P4 es un punto soluci´n del problema s´lo si se considera que P3 es la ubicaci´n del tercer punto, mientras que P4 es punto soluci´n s´lo si P3 es la ubicaci´n del tercer o o o punto. Esta observaci´n tiene una fuerte implicancia en el algoritmo de separaci´n utilizado por o o la metodolog´ ya que significa que no es necesario separar los cuatro conjuntos soluci´n ıa, o (ubicaciones posibles) del cuarto punto, debido a que la separaci´n del espacio de b´squeda o u del tercer punto provoca autom´ticamente una separaci´n de las soluciones en dos subcona o juntos conteniendo dos posiciones posibles para el cuarto punto. 5.4. Dificultades del algoritmo de separaci´n de puntos o Este algoritmo se basa en la funci´n presentada en el cuadro 4.3. El objetivo de esta o funci´n es encontrar una coordenada donde no exista m´s de un punto con el mismo valor. o a Primeramente se seleccionan todos todas las posiciones diferentes para un mismo punto perteneciente a las soluciones. Luego, el conjunto de puntos es enviado a la funci´n testnaif(). o Esta funci´n examina la primera coordenada (proyecci´n del punto sobre un eje) donde no o o existen valores coincidentes dos o m´s puntos. La coordenada es retornada como resultado a de la llamada. Si existe una coordenada que cumpla con la condici´n, se ordena el conjunto de puntos o por el valor de su proyecci´n sobre esta coordenada y se divide el espacio en subespacios o independientes, cada uno conteniendo s´lo una de las posiciones posibles para el punto dado, o como se muestra en el cuadro 4.4. Se han encontrado fuertes limitantes para este enfoque. En primer lugar, la separaci´n del o espacio de b´squeda en subespacios independientes se realiza por punto y no por soluci´n. En u o la secci´n 5.3 se muestra el ejemplo de un sistema formado por cuatro puntos. La figura 5.4 o muestra las posiciones factibles para el tercer y cuarto punto. En el ejemplo, la separaci´n del o 49 espacio de b´squeda del tercer punto divide el conjunto de soluciones en dos subconjuntos. u En otras palabras: cuando el espacio de dos puntos es dividido, el conjunto de soluciones es tambi´n dividido, por lo tanto, s´lo aquellas posiciones pertenecientes al mismo subconjunto e o de soluciones requerir´n separaci´n para cada punto en particular. a o En segundo lugar, la determinaci´n de una coordenada con diferentes valores, para todas o las posiciones factibles, de un determinado punto no garantizan la correcta obtenci´n de cajas o exteriores. La figura 5.5 muestra la aplicaci´n del algoritmo algonaif(); para un problema de o tres puntos (dos fijos) y dos soluciones factibles. y P2 P1 x Figura 5.5: Aplicaci´n del algoritmo de separaci´n de puntos o o Ambas soluciones no poseen igual valor en su coordenada X, por lo que la respuesta de la funci´n testnaif(); entrega ´sta como coordenada de corte. La separaci´n de ambos puntos o e o se realiza en el punto medio entre sus proyecciones sobre el eje X. La figura 5.6 muestra el resultado del c´lculo de cajas exteriores a partir de la divisi´n a o realizada por algonaif();. En ella se observa que ambas soluciones poseen problemas en el c´lculo de cajas exteriores. En este ejemplo, un corte a trav´s del eje Y habr´ entregado a e ıa una correcta aproximaci´n para ambos conjuntos soluci´n. o o 50 y P2 P1 x Figura 5.6: C´lculo de cajas exteriores a partir del espacio dividido a 5.5. Conclusi´n del cap´ o ıtulo En este cap´ ıtulo se presentaron las posibles ´reas de mejoramiento, haciendo ´nfasis en a e la influencia de las incertidumbres en la aproximaci´n de soluciones, y las dificultades del o actual algoritmo de separaci´n de puntos en el c´lculo de cajas exteriores. En el pr´ximo o a o cap´ ıtulo se presentan dos nuevos algoritmos que mejoran los resultados de la metodolog´ ıa, lo que se debe a la importancia de la separaci´n en el c´lculo de cajas exteriores y que o a motivar´ la creaci´n de un nuevo algoritmo de separaci´n de puntos y de an´lisis posterior a o o a de soluciones, con el fin de determinar errores en la etapa de divisi´n del espacio. o 51 Cap´ ıtulo 6 Mejoras Propuestas Tanto para la resoluci´n de los sistemas de ecuaciones e inecuaciones, como para la o aplicaci´n de las t´cnicas de consistencia interna y externa se utilizaron las bibliotecas del o e paquete ILOG − Solver e ILOG − Concert. Una introducci´n al uso de estas herramientas o puede ser consultada en el ap´ndice A. Informaci´n adicional puede ser obtenida en [Nev02b] e o y [Nev02a], o en los manuales de usuario [ILO00b] y de referencia [ILO00a] del paquete. ¸ c Las mejoras propuestas se estructuran de la siguiente manera: en primer lugar se estudiar´ las caracter´ a ısticas de los sistemas de ecuaciones de distancia, que pueden ser utilizadas en la implementaci´n de un algoritmo de clasificaci´n de problemas. Posteriormente se preo o sentar´ un algoritmo de separaci´n de puntos que permite dividir un espacio inicial en dos o a o m´s subespacios disjuntos que contienen un solo punto. Este algoritmo ser´ utilizado por el a a algoritmo de separaci´n de soluciones, que utiliza una estructura de ´rbol para independizar o a efectivamente las soluciones. Finalmente se expone el algoritmo de an´lisis de soluciones, a seguida por la metodolog´ propuesta y un conjunto de resultados preliminares. ıa 6.1. Detecci´n y clasificaci´n de tipos de problemas o o A continuaci´n se propone una metodolog´ de clasificaci´n cualitativa del tipo de cono ıa o figuraci´n soluci´n. El objetivo es clasificar los problemas seg´n el tipo de soluci´n esperada, o o u o para decidir, a priori, la forma en la cual deben ser interpretadas las soluciones y la forma en la cual deber´n separarse los puntos. a Dado un problema de satisfacci´n de restricciones en dominios continuos P = (X, D, C), o definido por un conjunto de puntos PA = (x1 , y1 ) y PB = (x2 , y2 ) fijos y PX variable, con 52 restricciones de distancia d(PX , PA ) = r1 ± i1 y d(PX , PB ) = r2 ± i2 a los dos primeros, respectivamente; y dado dAB la distancia entre los puntos PA y PB , si dAB > (r1 + i1 ) y dAB > (r2 + i2 ) se tiene que: 1. Si (r1 + i1 ) + (r2 + i2 ) < dAB , entonces el sistema no tiene soluci´n (caso A, figura 5.1). o 2. Si ((r1 − i1 ) + (r2 − i2 ) < dAB ) ∧ ((r1 + i1 ) + (r2 + i2 > dAB ) y ((r1 + i1 ) + (r2 − i2 ) < dAB )∧((r1 −i1 )+(r2 +i2 ) < dAB ), entonces existe s´lo un conjunto soluci´n al problema. o o (caso B, figura 5.1). 3. Si (r1 − i1 ) + (r2 − i2 ) > dAB entonces existe m´s de un conjunto soluci´n independiente a o (caso C, figura 5.1). 4. Finalmente, si ((r1 − i1 ) + (r2 − i2 ) < dAB ) ∧ ((r1 + i1 ) + (r2 + i2 > dAB ) y ((r1 + i1 ) + (r2 − i2 ) > dAB ) ∨ ((r1 − i1 ) + (r2 + i2 ) > dAB ), entonces existe un caso degenerado (figura 5.2). Estas observaciones pueden ser f´cilmente adaptadas para el caso en que dAB < (r1 + i1 ) a o dAB < (r2 + i2 ), de tal forma que es posible estimar las posibles soluciones a partir de la informaci´n del problema. o No es el prop´sito de esta tesis el generalizar el conjunto de observaciones a m´s de dos o a dimensiones, sino s´lo mostrar que es posible, bajo ciertas condiciones, conocer de forma o cualitativa las caracter´ ısticas de la configuraci´n soluci´n. o o Estas proposiciones ayudan a determinar c´mo deben ser interpretadas las soluciones o del problema, por ejemplo, en el caso de conjuntos soluci´n independientes (caso C), ´stos o e deber´n ser separados antes de aplicar una t´cnica de consistencia externa. Por otro lado, si a e existe s´lo un conjunto soluci´n (o un caso degenerado), las t´cnicas de consistencia externa o o e deber´n envolver un s´lo conjunto de soluci´n, a´n cuando el problema posea m´s de un a o o u a punto soluci´n y se haya calcular m´s de una caja interior. o a 6.2. Un algoritmo de separaci´n de puntos para reso tricciones de distancia Para aplicar una t´cnica de consistencia externa que filtre el dominio de las variables, es e necesario separar en espacios independientes las posiciones posibles (conjuntos soluci´n) de o 53 un mismo punto. Si esta separaci´n se realiza de un modo incorrecto, las cajas externas calo culadas a partir de los subespacios obtenidos ser´n tambi´n incorrectas. El algoritmo general a e de separaci´n de puntos mostrado en el cuadro 6.1 reduce los casos donde la separaci´n de o o puntos provoca errores en el c´lculo de cajas exteriores, de la metodolog´ mostrada en el a ıa cap´ ıtulo 4. Sin perjuicio de lo anterior y una vez calculada la caja exterior para un conjunto soluci´n, o es posible examinar la relaci´n existente entre el punto de corte del espacio de b´squeda o u (resultante del algoritmo de separaci´n) y los l´ o ımites de la caja exterior. Si ambos valores coinciden, existe una alta probabilidad de que la separaci´n del espacio se haya realizado de o forma incorrecta. function sepa(H = {A1 , ..., Am }, E) if (|H| > 1) point ← newplansepa(H, &coord); for (i = 1; i < m; i + +) if (Ai [coord] ) almacena una restricci´n y su incertidumbre o parte izquierda de la ecuaci´n o incertidumbre en la parte derecha de la ecuaci´n o verdadera si todas las variables est´n en la restricci´n a o variables que forman parte de la restricci´n o almacena los dominios y los valores soluci´n o identificador de la soluci´n (´nico) o u valores soluci´n para cada variable (vector) o dominios de las variables (Box) Objeto Atributo Objeto Atributo Objeto Atributo Objeto Atributo Cuadro 6.8: Descripci´n de los principales objetos definidos o Problema general de una par´bola y una recta a Para este ejemplo se ha seleccionado un sistema de ecuaciones con dos inc´gnitas. La o ecuaci´n 6.6.1 describe una par´bola en el plano cartesiano, mientras que la ecuaci´n 6.6.2 o a o 64 describe una recta. Ambas ecuaciones poseen incertidumbres asociadas (e1 = 0.5 y e2 = 1, respectivamente). 7x2 − y − 20 = 0 x+5−y =0 Los dominios para ambas variables han sido fijados en el intervalo [-50, 50]. La figura 6.4 muestra la gr´ficas del sistema de ecuaciones en torno a los puntos soluci´n. a o En ella se muestra el c´lculo de cajas exteriores para ambos conjuntos soluci´n. a o (6.6.1) (6.6.2) Figura 6.4: Ejemplo de aplicaci´n para una par´bola y una recta o a Los resultados obtenidos se muestran en el cuadro 6.9. x 1.9626 [1.9534, 1.97168] [-50, 50] [1.9340, 1.9907] -1.81974 [-1.8295, -1.8099] [-50, 50] [-1.84786, -1.7912] y 6.9626 [6.9626, 6.9626] [5.07143, 50] [6.4340, 7.4907] 3.18026 [3.18025, 3.18027] [-50, 5.07143] [2.68972, 3.67084] Soluci´n 1 o Caja interna Dominio Caja externa Soluci´n 2 o Caja interna Dominio Caja externa Cuadro 6.9: Resultados del sistema par´bola-recta a Para el sistema sin incertidumbre se encontraron dos soluciones: los puntos (1.9626, 6.9626) y (-1.81974, 3.18026). Una vez incluidas las incertidumbres del problema, se calcularon las cajas interiores para cada variable de la soluci´n encontrada. Posteriormente se o 65 aplic´ el algoritmo de separaci´n de soluciones, que dividi´ el espacio correspondiente a la o o o segunda variable en el valor 5.07143. A partir de los nuevos dominios se calcularon las cajas externas, aproximando de esta forma las soluciones del problema. Problema general con funciones trigonom´tricas e Este ejemplo muestra la aplicaci´n de la metodolog´ a un problema m´s general que o ıa a involucra funciones trigonom´tricas. La ecuaci´n 6.6.3 describe una curva en el plano cartee o siano, formada por la suma de una funci´n logar´ o ıtmica y una senoidal, mientras que la ecuaci´n 6.6.4 describe una par´bola o a 100log(x + 10)sin(2x) − y − 50 = 0 2x2 − y = 0 (6.6.3) (6.6.4) Los dominios de las variables fueron restringidos a los intervalos Dx = [−9, 9] y Dy = [0, 200]. Por otra parte, se consideraron las incertidumbres e1 = 0.3 y e2 = 0.2, respectivamente. La figura 6.5, muestra la gr´fica del sistema de ecuaciones sin considerar las a incertidumbres. y x Figura 6.5: Ejemplo de una funci´n senoidal y una par´bola o a Dado que existen diez soluciones al problema (puntos del plano que cumplen ambas restricciones en forma simult´nea), se dividi´ el espacio de b´squeda inicial en diez subespaa o u cios, cada uno conteniendo una sola soluci´n. De esta forma, se calculan las cajas interiores o y exteriores utilizando la metodolog´ propuesta. ıa 66 Soluci´n 1 o Dominio Caja interior Caja exterior Soluci´n 2 o Dominio Caja interior Caja exterior Soluci´n 3 o Dominio Caja interior Caja exterior Soluci´n 4 o Dominio Caja interior Caja exterior Soluci´n 5 o Dominio Caja interior Caja exterior Soluci´n 6 o Dominio Caja interior Caja exterior Soluci´n 7 o Dominio Caja interior Caja exterior Soluci´n 8 o Dominio Caja interior Caja exterior Soluci´n 9 o Dominio Caja interior Caja exterior Soluci´n 10 o Dominio Caja interior Caja exterior x 7.54929 [-9, 9] [7.54897, 7.54961] [7.54878, 7.54979] 6.53504 [-9, 9] [6.53473, 6.53534] [6.5345, 6.53557] 4.53856 [-9, 9] [4.53826, 4.53886] [4.53808, 4.53904] 3.28172 [0.158495, 9] [3.28142, 3.28202] [3.28121, 3.28223] 1.45862 [-0.122822, 9] [1.45831, 1.45894] [1.4581, 1.45914] -5.05478 [-9, 9] [-5.05542, -5.05415] [-5.05595, -5.05362] -5.80388 [-9, 9] [-5.8047, -5.80307] [-5.80509, -5.80268] 0.108977 [-9, 9] [0.108647, 0.109308] [0.108594, 0.109528] -2.96473 [-9, 0.158495] [-2.96513, -2.96433] [-2.96538, -2.96408] -1.70427 [-9, -0.122822] [-1.70464, -1.7039] [-1.70489, -1.70364] y 113.983 [99.6985, 200] [113.983, 113.983] [113.88, 114.087] 85.4135 [76.3918, 99.6985] [85.4135, 85.4135] [85.2995, 85.5274] 41.1971 [31.3682, 46.1494] [41.1971, 41.1971] [41.0953, 41.2988] 21.5394 [11.6941, 31.3682] [21.5394, 21.5394] [21.4326, 21.6461] 4.25515 [2.13945, 11.6941] [4.25515, 4.25515] [4.15455, 4.35576] 51.1017 [46.1494, 59.2359] [51.1017, 51.1017] [50.9782, 51.2253] 67.3701 [59.2359, 76.3918] [67.3701, 67.3701] [67.2645, 67.4757] 0.023752 [0, 2.13945] [0.0237439, 0.0237907] [0, 0.123993] 17.5793 [11.6941, 31.3682] [17.5792, 17.5793] [17.4777, 17.6808] 5.80904 [2.13945, 11.6941] [5.80904, 5.80904] [5.70477, 5.91333] Cuadro 6.10: Resultados para el sistema seno-par´bola a 67 El cuadro 6.10, muestra el resultado de la aplicaci´n del algoritmo general para el probleo ma planteado. Para cada soluci´n, se presentan los valores de la coordenada X e Y, seguido o por el subespacio asignado (Nuevo dominio para ambas variables), y los resultados obtenidos para cajas interiores y exteriores. Los valores obtenidos aproximan las soluciones del problema planteado, considerando la influencia de las incertidumbres. 6.7. Conclusi´n del cap´ o ıtulo En este cap´ ıtulo se present´ una metodolog´ para el tratamiento de incertidumbres en siso ıa temas de ecuaciones de distancia y su extensi´n a problemas m´s generales. En primer lugar o a se expuso las propiedades de los CSP de distancia que permiten implementar un algoritmo de clasificaci´n de problemas. Posteriormente se propusieron tres algoritmos: de separaci´n o o de puntos, separaci´n de soluciones y an´lisis de soluciones, que integran la metodolog´ o a ıa propuesta, mejorando las aproximaciones de las soluciones del problema. Finalmente, se presentaron los resultados preliminares, obtenidos tanto para sistemas de ecuaciones de distancia como para problemas de ´ ındole m´s general. Estos resultados a mostraron las debilidades de la metodolog´ actual, y c´mo es posible mejorar las soluciones ıa o con la nueva propuesta. 68 Cap´ ıtulo 7 Conclusiones En este trabajo se estudi´ una metodolog´ para el tratamiento de incertidumbre en CSP o ıa num´ricos, y sus aplicaciones en sistemas de ecuaciones de distancia. Se desarroll´ adem´s, e o a un estudio te´rico y pr´ctico de las t´cnicas modernas de la programaci´n con restricciones o a e o adaptadas a dominios continuos, y sus aplicaciones en problemas reales. Desde el punto de vista te´rico, se propusieron importantes cambios a los algoritmos o originales que mejoran la aproximaci´n de soluciones desde el punto de vista de la correco titud. Se demostr´ que la modificaci´n del algoritmo de separaci´n de puntos reduce los o o o problemas causados por el corte inapropiado del espacio de b´squeda, aumentando los casos u para los cuales la metodolog´ permite resolver el problema satisfactoriamente. Por otro lado, ıa la inclusi´n de un algoritmo de an´lisis posterior de resultados mostr´ su efectividad en la o a o detecci´n de problemas de corte y c´lculo de cajas exteriores, permitiendo una mejor intero a pretaci´n de los resultados. Este punto adquiere gran importancia, ya que la metodolog´ o ıa original asume la separabilidad de los puntos soluci´n, y no es capaz de detectar fallos en la o determinaci´n de las soluciones debidos a violaciones de las premisas. o Otro punto importante es la posibilidad te´rica de determinar, de una forma cualitativa, o el tipo de configuraci´n soluci´n que poseer´ el sistema, a trav´s del estudio de las obsero o a e vaciones propuestas en la secci´n 5.1. Si bien no se profundiz´ en la generalizaci´n de estas o o o observaciones a mayores dimensiones, es posible concluir que un estudio m´s detallado poa dr´ incrementar fuertemente la potencialidades de este enfoque. Adem´s, deja en claro que ıa a no es recomendable aplicar esta metodolog´ sin poseer conocimiento previos del problema ıa particular, ya que los resultados poseen directa relaci´n con el nivel de incertidumbre y las o relaciones particulares de los puntos. 69 La ventaja de este enfoque por sobre otras metodolog´ como la propuesta en [KB99] ıas, o en [Bac98], es que aproxima las soluciones de forma interna y externa. En otras palabras, adem´s de entregar una aproximaci´n que encierra todo el conjunto soluci´n, determina un a o o espacio de tolerancia (incluido en la aproximaci´n interior), que s´lo posee puntos v´lidos o o a para el problema. Esto es importante porque en general las t´cnicas de consistencia no e aseguran la presencia de soluci´n, sino s´lo la ausencia de ella en un espacio determinado. Por o o esta raz´n, una doble aproximaci´n (i-consistente y e-consistente), entrega una aproximaci´n o o o m´s precisa para el problema. a Desde el punto de vista pr´ctico, se implement´ un nuevo algoritmo basado en la metodolog´ a o ıa original, y que integra las nuevas propuestas en relaci´n con los algoritmos de separaci´n o o y an´lisis posterior de soluciones, que fue comparado con el algoritmo original, obteniendo a aproximaciones m´s precisas (y correctas) para un conjunto de casos de prueba. a Por otra parte, se implement´ un algoritmo que extiende esta metodolog´ de tratamiento o ıa de incertidumbres, permitiendo su utilizaci´n en CSP num´ricos de ´ o e ındole m´s general. Si a bien, esta propuesta posee, en principio, grandes limitaciones respecto a los algoritmos de separaci´n (ya que no es posible asegurar simetr´ y en la determinaci´n cualitativa de las o ıas) o soluciones, permite una aproximaci´n inicial para las soluciones de aquellos sistemas que, o por sus caracter´ ısticas, no pueden omitir la influencia de las incertidumbres en el c´lculo de a sus soluciones. Propuestas de Trabajos Futuros Varios son los trabajos que pueden desarrollarse a partir de este estudio. En particular, la generalizaci´n de las observaciones propuestas para un algoritmo de an´lisis previo, que o a proporcione una clasificaci´n de problemas en abordables a trav´s de esta metodolog´ y o e ıa aquellos que, a priori, se sabe que entregar´n soluciones incorrectas o imprecisas. a Por otro lado, en el c´lculo de cajas interiores, s´lo se asegura la obtenci´n de una cota a o o inferior, pero en ning´n momento se tiene en cuenta la optimizaci´n de esta cota, de tal forma u o que sea la mayor caja interior inscrita en el conjunto soluci´n. Esto se debe al procedimieno to utilizado para calcular la cota inferior, que extiende los dominios de cada coordenada hasta el l´ ımite de su capacidad, restando posibilidades a todas aquellas coordenadas calculadas despu´s de cada extensi´n. Este problema podr´ llegar a ser tan complicado, como el e o ıa determinar el conjunto soluci´n exacto. o 70 Para finalizar, se observ´ un aumento en el tiempo de resoluci´n requerido por el algoo o ritmo ante iguales problemas. Este hecho puede deberse al tama˜o del espacio de b´squeda n u resultante despu´s de aplicar la estructura de ´rbol para la separaci´n de soluciones. Debido e a o a que los subespacios en el nuevo algoritmo son, en general, mayores que en el algoritmo original, las t´cnicas de consistencia requieren mayores tiempos para realizar el filtraje necee sario. 71 Parte IV Ap´ndices e 72 Ap´ndice A e ILOG Concert/Solver A.1. Introducci´n o Este apartado pretende ser una ayuda para trabajar con las bibliotecas ILOG Solver en la resoluci´n de problemas de satisfacci´n de restricciones. Las bibliotecas para C++ de ILOG o o Solver permiten realizar definiciones de alto nivel y resolver CSP, manteniendo un cierto control sobre las estructuras de datos. ILOG Solver trabaja en conjunto con la tecnolog´ ıa ILOG Concert, que proporciona clases para definir el modelo, mientras que ILOG Solver proporciona aquellas necesarias para resolverlo. Para comenzar es necesario definir el entorno (variables, restricciones, etc.), que contendr´ el problema en s´ Posteriormente, se aplican las bibliotecas de resoluci´n. Todas las a ı. o clases Concert comienzan por Ilo, mientras la clases Solver comienzan por Ilo o Ilc. En el caso de modelos de programaci´n lineal es posible utilizar la herramienta integrada o CPLEX, que permite resolver este tipo de modelos en lugar de utilizar Solver. Ambos utilizan la misma definici´n formulada con Concert. o A.2. Definici´n de un modelo (ILOG Concert) o Existe un conjunto de convenciones que es importante tener en cuenta antes de comenzar la definici´n de modelos. Las principales son: o 1. Los nombres de las clases se han formado concatenando palabras, con la primera letra de cada palabra en may´scula. Por ejemplo: IloIntV ar. u 73 2. Para nombres de argumentos, instancias y funciones miembro se utiliza al comienzo una letra min´scula, y en caso de poseer m´s de una palabra se coloca la primera letra u a de la palabra en may´scula. Por ejemplo: IloAnyV ar :: setDomain. u 3. Los nombres de los datos miembros comienzan con underscore, seguido del nombre. Por ejemplo: char ∗ boys;. 4. Generalmente los accesos comienzan con la palabra get (como getV alue()), a menos que sean miembros booleanos, en cuyo caso se utiliza la palabra is (como en isBig()). Para establecer valores se usa frecuentemente la palabra set (como en setConstraints()). 5. Adem´s, se utilizan los siguientes nombres para tipos de datos b´sicos: a a IloInt para enteros largos con signo. IloAny para punteros (equivale a void*). IloNum para valores de punto flotante de doble precisi´n. o IloBool para valores booleanos (IloTrue y IloFalse). 6. Por ultimo, los par´ntesis cuadrados denotan dominios de las variables. Por ejemplo, ´ e [0 2] significa que la variable puede tomar el valor 0 o el valor 2. Por el contrario la expresi´n [0 .. 2] denota el rango de valores (intervalo de enteros) entre 0 y 2, o sea 0, o 1 y 2. Un entorno es una instancia de la clase IloEnv, y es el encargando de administrar el modelo interno. Adem´s, manipula las salidas, memoria y la finalizaci´n de los algoritmos a o entre otras cosas. Un modelo es una instancia de la clase IloM odel, y contiene los objetos del modelo, como las variables o las restricciones. Es creado utilizando el entorno. Para crear un modelo, el primero paso es definir una instancia de la clase IloEnv con la siguiente instrucci´n: o IloEnv entorno; Una vez creado el entorno, se procede a la creaci´n de los objetos del modelo (variables o y restricciones). IloNumVar x(entorno, 0, 10, ILOINT); IloConstraint ct = (x != 0); //Variable x entera, dominio 0-10 //Restricci´n ct unaria o 74 Luego se crea el modelo y se llena con los objetos: IloModel modelo(entorno); modelo.add(ct); //Creacion del modelo //Ingreso de un restricci´n o Una vez que se hay resuelto el problema, es posible solicitar la memoria de todos los objetos y limpiar las estructuras internas del entorno llamando al m´todo IloEnv :: end. Es e recomendable hacer esto antes de salir de la aplicaci´n. o A.3. Resoluci´n del modelo (ILOG Solver) o Una vez creado el modelo, se crea una instancia de la clase IloSolver para proceder a la resoluci´n. Las operaciones b´sicas son extraer el modelo usando el m´todo IloSolver :: o a e extract y luego resolver el modelo usando el m´todo IloSolver :: solve. A continuaci´n se e o muestra un ejemplo: IloSolver solver(entorno); solver.extract(modelo); //Creacion de la instancia //Extracci´n del modelo o Tambi´n existe una forma resumida de realizar las operaciones anteriores: e IloSolver solver(modelo); //Creacion de la instancia y extracci´n o Durante la extracci´n, se escanean todos los elementos del modelo y se crean objetos o de ellos. Estos objetos estan usualmente precedidos del prefijo Ilc. Se puede acceder a ellos usando los m´todos del Solver. Por ejemplo: e IlcIntVar solx = solver.getIntVar(x); //Valor de la variable x A continuaci´n se muestra un ejemplo completo del c´digo para resolver un CSP. El o o problema posee una variable (x) entera, con dominio [0 .. 10] y una restricci´n (x = 0). El o resultado del programa se muestra en pantalla (a trav´s del metodo IloSolver :: out()) en e corchetes ([1]). #include int main(){ IloEnv entorno; IloNumVar x(entorno, 0, 10, ILOINT); IloConstraint ct = (x != 0); IloModel modelo(entorno); modelo.add(ct); 75 IloSolver solver(modelo); solver.solve(); solver.out()<=, >, ! =) han sido sobrecargados para este efecto. Este tipo de restricciones son m´s bien “clasicas”. a Existen adem´s restricciones denominadas simb´licas [ILO00b], que permiten definiciones a o especiales y frecuentemente utilizadas por los modelos. Por ejemplo, es muy frecuente la restricci´n “todas las variables deben ser diferentes”, por lo que existe una manera r´pida o a de realizar esto a partir de un arreglo de variables con la expresi´n IloAllDif f (). Otra o ´ restricci´n predefinida de gran utilidad es IloDistribute(c, vl, vr). Esta puede ser usada o para, por ejemplo, contar el n´mero de variables que toman un valor dado en un arreglo. u La declaraci´n de restricciones se puede incluir directamente al modelo, o se puede definir o previamente. Por ejemplo: IloConstraint r1 = (x + 1 == y); IloConstraint r2 = IloAllDiff(a); modelo.add(r1); modelo.add(x != y); //Define la restricci´n r1. o //Define la restricci´n r2. o //Incluye restricci´n definida o //Incluye una nueva restricci´n o La primera l´ ınea define una restricci´n de diferencia entre x e y llamada r1. Esta no o forma parte del modelo, a menos que se incluya expl´ ıcitamente. La segunda l´ ınea define la restricci´n todas la variables del arreglo a deben ser diferentes. La cuarta l´ o ınea incluye una restricci´n (declarada previamente) al modelo. Por el contrario en la quinta l´ o ınea una restricci´n es incluida directamente en el modelo sin definici´n previa (al contrario de la o o l´ ınea 9). Un detalle importante es que el modelo as´ propuesto tend´ dos variables y dos ı ıa restricciones (la restricci´n de diferencias mostrada en la l´ o ınea 2 nunca se incluy´ en el o modelo). En el ejemplo anterior se mostr´ el uso de IloAllDif f (), una restricci´n simb´lica que o o o se interpreta como cada valor del arreglo entre par´ntesis debe ser distinto a los dem´s. A e a diferencia de las restricciones expl´ ıcitas, este tipo de restricciones evitan la escritura de un conjunto (potencialmente) exponencial de restricciones en el modelo. Otro ejemplo de este tipo, con la restricci´n IloDistribute() se muestra a continuaci´n: o o IloNumVarArray ocurrencias(entorno, 5, 0, 4, ILOINT); IloNumArray valores(entorno, 5); IloNumVarArray variables(entorno, 5, a, b, c, d, e); 78 modelo.add(IloDistribute(entorno, ocurrencias, valores, variables)); La primera l´ ınea define un arreglo (ocurrencias) de 5 variables con dominio entre [0 .. 4]. La segunda define un arreglo de 5 valores (que deben ser llenados a trav´s del operador [ ]. e La tercera l´ ınea define un arreglo (variables) de 5 variables (a, b, c, d, e). La restricci´n de la o l´ ınea 5 es incluida directamente en el modelo, y su significado es cada valor valores[i] debe aparecer ocurrencias[i] veces en las variables del conjunto variables. Una caracter´ ıstica adicional e importante de destacar es el echo de que Solver interpreta los valores verdadero y f also como 1 y 0 respectivamente. Esto es util cuando se desea definir ´ meta − restricciones, o sea, restricciones que involucran otras restricciones. A continuaci´n o se entrega un ejemplo de esto: IloNumVar bin = (x < 4); modelo.add(bin + (y > 2) == 1); //Definicion variable bin //Meta restricci´n o En el ejemplo, la variable bin puede tomar los valores 1 o 0, ya se que se cumpla o no la restricci´n x < 4. Por otra parte, la restricci´n incluida en el modelo es en realidad una o o meta-restricci´n, puesto que obliga a que se cumpla x < 4 ´ y > 2, pero una y s´lo una de o o o ellas. A.4.4. Funci´n Objetivo o Una de las caracter´ ıstica m´s frecuentes de los problemas que involucran restricciones a es que poseen un cierto objetivo que se desea optimizar. Por ejemplo, minimizando alguna variable definida en funci´n de otras o maximizando una expresi´n dada. Solver proporciona o o una clase (IloObjective) que permite definir funciones objetivo. Ejemplo: IloObjective obj = IloMaximize(entorno, x); modelo.add(obj); modelo.add(IloMinimize(entorno,IloSum(a) + x * x)); En el primer ejemplo (l´ ıneas 1 y 2) se define una instancia de la clase IloObjective (obj) como la maximizaci´n de una variable (x). Luego se incluye el objetivo en el modelo, tal o como se inclu´ las restricciones. En el segundo ejemplo el objetivo es pasado directamente ıan al modelo, como la minimizaci´n de la suma de un vector (a) m´s el cuadrado de la variable o a x (x2 ). 79 A.5. Manipulaci´n de la resoluci´n o o Cuando se resuelve un CSP existen diferentes posibilidades de selecci´n de variables, doo minios, etc, de acuerdo a alg´n objetivo dado. IloSolver posee clases (IloGoal e IloGenerate) u que permiten manipular estos criterios. Por ejemplo: IloEnv entorno; IloModel modelo(entorno); IloNumVar x(entorno, 0, 2, ILOINT), y(entorno, 0, 2, ILOINT); modelo.add(x!=y); IloSolver solver(modelo); IloGoal objetivo=IloGenerate(entorno, IloNumVarArray(entorno, 2, x, y)); if (solver.solve(objetivo)){ solver.out()<<"x: "< int main(int argc, char** argv){ IloEnv entorno; if (argc<3) { cerr< ... "< void main(){ IloEnv env; IloNumVar x(env, -10, 10); //Variable x continua, dominio [-10,10] IloNumVar y(env, -20, 20); //Variable y continua, dominio [-20,20] IloNumVarArray vars(env, 2, x, y); //Arreglo de variables x e y IloModel model(env); //Creacion del modelo model.add(x*IloCos(y) + IloSquare(x)*IloCos(y) == 1); model.add(IloSquare(x) + IloSquare(y) == 1); IloSolver solver(env); //La resoluci´n o solver.setDefaultPrecision(1e-10); //Precision (10 d´gitos) ı //Uso de funciones num´ricas (Box?, Newton?) e //solver.useNonLinConstraint(IlcFalse); solver.extract(model); //Extracci´n del modelo o //Uso de propagaci´n mas fuerte (3B, Bound y su precisi´n) o o //IlcSearch search=solver.newSearch(IloSplit(env,vars,IloTrue,1e-6)); //Resoluci´n simple sin llamar a propagaciones mas fuertes o IlcSearch search=solver.newSearch(IloSplit(env,vars)); while (search.next()){ 83 cout<<"Soluci´n "<<" x ["< #include using namespace std ; ILOSTLBEGIN // Class "Interval", storage interval’s limits for variables or uncertainty class Interval{ IloNum lower; // Minimum value of interval IloNum upper; // Maximum value of interval public : Interval(){;} Interval(IloNum inf, IloNum sup){ lower = inf; upper = sup; } IloNum getLb(){ return lower; } IloNum getUb(){ return upper; } void setLb(IloNum inf){ lower = inf; 85 } void setUb(IloNum sup){ upper = sup; } friend ostream& operator<<(ostream& os,const Interval &i){ os<<"["< limits; // Space "var" dimensional public: Box(){;} Box(IloInt number){ limits.resize(number); } void addInterval(Interval i){ limits.push_back(i); } void setVarInterval(IloInt pos, Interval i){ limits[pos] = i; } Interval getVarInterval(IloInt pos){ return limits[pos]; } void setDimension(IloInt number){ limits.resize(number); } void clear(){ limits.clear(); } }; 86 // Class "Constraint", storage constraint and uncertaninty class Constraint{ IloExpr expression; // Constraint’s expression Interval uncertainty; // Uncertainty in right part IloBool allvars; // True: all variables inside IloNumArray varsinside; // Variables inside expression public : Constraint(){;} Constraint(IloExpr expr, IloNum inf, IloNum sup){ expression = expr; uncertainty.setLb(inf); uncertainty.setUb(sup); allvars = true; } void setExpresion(IloExpr expr){ expression = expr; } void setUncertainty(IloNum inf, IloNum sup){ uncertainty.setLb(inf); uncertainty.setUb(inf); } IloExpr getExpr(){ return expression; } IloNum getLb(){ return uncertainty.getLb(); } IloNum getUb(){ return uncertainty.getUb(); } void setAllVarInside(IloBool a){ allvars = a; } void setVarInConstraint(IloNumArray var){ varsinside = var; } IloBool isAllVarInside(){ return allvars; } IloNumArray getVarInConstraint(){ return varsinside; } }; 87 // Class "Solution", hold solutions values and variables’ domains class Solution{ IloInt id; // Solutions identifier vector values; // Values for all variables Box limits; // Variables’ domains public: Solution(){;} Solution(IloInt i, IloInt nvars){ id = i; values.resize(nvars); } IloInt setId(IloInt i){ id = i; } void setBox(Box domains){ limits = domains; } void setVarValue(IloInt varid, IloNum value){ values[varid] = value; } void setVarLb(IloInt varid, IloNum lb){ Interval aux = limits.getVarInterval(varid); aux.setLb(lb); limits.setVarInterval(varid, aux); } void setVarUb(IloInt varid, IloNum ub){ Interval aux = limits.getVarInterval(varid); aux.setUb(ub); limits.setVarInterval(varid, aux); } IloNum getVarValue(IloInt varid){ return values[varid]; } Interval getVarInterval(IloInt varid){ return limits.getVarInterval(varid); } IloInt getId(){ return id; } 88 bool operator==(Solution &s2){ for (IloInt i=0;i 1e-4) return false; return true; } }; // Class "Problem" hold the object of problem (variables, .. // ..constraints, solutions points, etc.) class Problem{ vector constraints; // Constraints of problem vector solutions; // Solutions of problem vector i_box; // intern-Box solutions vector e_box; // extern-box solutions IloNumVarArray variables; // Variables of problem Box initdomain; // Initial variables’ domains IloInt nvars; // Number of variables IloInt ncons; // Number of constraints IloInt nsols; // Number of solutions IloNum prec; // Precition of calculs vector sconst; public: Problem(){ nvars = 0; ncons = 0; nsols = 0; prec = 1e-8; } void addVars(IloNumVarArray v){ variables = v; nvars = v.getSize(); Box aux(nvars); for (IloInt i=0;i IloAbs(ub - lb)/4) && IloAbs(ub - lb)>0) prec = IloAbs(ub - lb)/4; } void setPrecision(IloNum p){ prec = p; } // Special Constraints for solving 89 void addConstraint(IloExpr e, IloNum val){ Constraint aux(e,-val/2,val/2); constraints.push_back(aux); ncons++; if ((prec > val/4) && val > 0) prec = val/4; } void addConstraint(IloExpr e){ Constraint aux(e,0,0); constraints.push_back(aux); ncons++; } void setVarInConstraint(IloNum pos, IloNumArray var){ constraints[pos].setAllVarInside(false); constraints[pos].setVarInConstraint(var); } void sortSolsByCoord(IloInt cord){ if (cord == -1){ for(IloInt i=0;isolutions[j].getId()){ Solution aux = solutions[i]; solutions[i] = solutions[j]; solutions[j] = aux; } } else { for(IloInt i=0;isolutions[j].getVarValue(cord)){ Solution aux = solutions[i]; solutions[i] = solutions[j]; solutions[j] = aux; } } } void splitDomain(vector > ds){ IloInt sols = ds[0].size(); if (sols>1){ IloNum distance = 0.0; IloInt coordenate; IloNum point = 0.0; for (IloInt i=0;i > dssup; dssup.resize(nvars); for (IloInt i=0;i=0;j--) if (solutions[ds[i][j]].getVarValue(coordenate)>point){ dssup[i].insert(dssup[i].begin(),ds[i][j]); ds[i].erase(ds[i].begin() + j); } splitDomain(ds); splitDomain(dssup); } } void separateSols(){ if (nsols>1){ vector > ds; for (IloInt i=0;i aux; for (IloInt j=0;j= sup); IloNum infinity = initdomain.getVarInterval(var).getUb(); variables[var].setBounds(variables[var].getUb(),infinity); IloSolver solver(model); if (solver.solve(IloGenerateBounds(*env,variables,prec))) if (solver.getMin(variables[var])= sup); IloNum minusinfinity = initdomain.getVarInterval(var).getLb(); variables[var].setBounds(minusinfinity, variables[var].getLb()); IloSolver solver(*env); solver.useNonLinConstraint(); /* Optional */ solver.extract(model); if (solver.solve(IloGenerateBounds(*env,variables,prec))) if (solver.getMax(variables[var])>maxextend) maxextend = solver.getMax(variables[var]); solver.end(); model.end(); } Interval aux = i_box[sol].getVarInterval(var); aux.setLb(maxextend); i_box[sol].setVarInterval(var,aux); } catch (IloException& ex){ cerr<<"Error in Problem::extendLeftDomain(): "<= inf); model.add(exp <= sup); } IloSolver solver(*env); solver.useNonLinConstraint(); /* Optional */ solver.extract(model); if (solver.solve(IloGenerateBounds(*env,variables,prec))){ Box boxaux; for (IloInt i=0; i 1){ for (IloInt i=0;i=0;i--) if (solutions[i].getId()==-1){ solutions.erase(solutions.begin() + i); i_box.erase(i_box.begin() + i); nsols--; } for (IloInt i=0;i 9999){ cout<<"\nError: More than 9999 solutions found!. "<n){ cout<<"Solution "<n){ cout<<"eBox Sol."<n){ cout<<"ibox Sol."<n){ cout<<"Doms Sol."<
Related docs
premium docs
Other docs by rockman16
My Life is in You Lord
Views: 441  |  Downloads: 1
Garner Crechale Polles Inc
Views: 206  |  Downloads: 4
Duty1
Views: 123  |  Downloads: 0
When the Night is Falling
Views: 208  |  Downloads: 1
When We All Get to Heaven
Views: 307  |  Downloads: 1
I Praise You Lord
Views: 283  |  Downloads: 1
I Will Never Be The Same Again
Views: 258  |  Downloads: 5
pos030
Views: 117  |  Downloads: 0
app001
Views: 108  |  Downloads: 0
at165
Views: 167  |  Downloads: 0
Wonderful Merciful Savior
Views: 226  |  Downloads: 5
cd160
Views: 87  |  Downloads: 0
MLA Format for Annotated Bibliographies
Views: 9753  |  Downloads: 35
Criminal Law Outlin1
Views: 411  |  Downloads: 5
de125
Views: 133  |  Downloads: 0