Problemas De Etiquetado Complejidad Computacional

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

UNIVERSIDAD DE SEVILLA

Departamento de Matem´atica Aplicada I

P ROBLEMAS

DE

E TIQUETADO :

C OMPLEJIDAD C OMPUTACIONAL

Pedro Reyes Colum´e Sevilla, 2002

UNIVERSIDAD DE SEVILLA

Departamento de Matem´atica Aplicada I

P ROBLEMAS

DE

E TIQUETADO :

C OMPLEJIDAD C OMPUTACIONAL

Memoria presentada por Pedro Reyes Colum´e para optar al grado de Doctor en Matem´aticas por la Universidad de Sevilla

Vo Bo de los Directores:

´ Fdo.: Dra. Dna. ˜ Mar´ıa de los Angeles Garrido Vizuete

Fdo.: Dr. D. Alberto M´arquez P´erez

Sevilla, Septiembre del 2002

Una verdad es color de ceniza, otra verdad es color de planeta; mas todas las verdades, desde el suelo hasta el suelo, no valen la verdad sin color de verdades, la verdad ignorante de como ´ el hombre suele encarnarse en la nieve En cuanto a la mentira, basta decirle “quiero” para que brote entre las piedras su flor, que en vez de hojas luce besos, espinas en lugar de espinas. La verdad, la mentira, como labios azules, una dice, otra dice; pero nunca pronuncian verdades o mentiras su secreto torcido, verdades o mentiras son p´ajaros que emigran cuando los ojos mueren.

Luis Cernuda (1902–1963)

Resumen

Motivada por sus aplicaciones en diferentes a´ reas como la Cartograf´ıa, diseno ˜ asistido por ordenador, trazado de circuitos, etc., la comunidad cient´ıfica internacional ha mostrado gran inter´es por los problemas de etiquetado, como muestra la cantidad de trabajos que aparecen sobre la materia. Este inter´es queda refrendado por el hecho de que la ACM lo incorpora continuamente como a´ rea preferente de investigacion ´ dentro del campo de la Geometr´ıa Computacional. Dentro de este campo, y debido a la enorme complejidad de sus problemas, surgen multitud de variantes con distintas particularidades. Una de las variantes m´as naturales es la consistente en el etiquetado de puntos con etiquetas rectangulares, presentando a su vez al menos dos modelos: etiquetado con etiquetas fijas, donde cada etiqueta puede ser colocada en un numero ´ finito de posiciones, y etiquetado con etiquetas deslizantes, de forma que cada etiqueta puede ser colocada de forma que el punto quede situado en cualquiera de los puntos del contorno de la etiqueta. En numerosos problemas de etiquetado (redes de metro, diseno ˜ de circuitos) los puntos a etiquetar est´an alineados. Estos modelos de etiquetado son el objeto de estudio de la primera parte de la memoria, donde se estudiar´a la complejidad computacional de los distintos problemas que se pueden plantear, tanto cuando los puntos est´en situados sobre una l´ınea horizontal como en una l´ınea oblicua. Abordaremos los problemas derivados de decidir si puede realizarse el correspondiente etiquetado, as´ı como los derivados de obtener los tamanos ˜ m´aximos de las etiquetas que pueden ser colocadas. Entre los resultados obtenidos nos encontramos con la NP-completitud de uno de estos problemas de decision. ´ Al estudio de este problema y al de etiquetado de puntos con etiquetas de a´ rea m´ınima centramos la segunda parte de la memoria. En ella probaremos que aunque los dos problemas son NP–completos, lo son de distinta naturaleza, ya que uno de ellos es pseudo-polinomial mientras que el otro es fuertemente NP–completo. Entendemos que es la primera ocasion ´ en que se encuentran dos problemas de estas naturalezas cuyos enunciados son esencialmente geom´etricos y no num´ericos. El segundo de estos problemas admite una doble formulacion, ´ ya que puede ser enunciado en t´erminos de trazados ortogonales. Esto nos lleva a considerar el problema que los origina (emparejamiento ortogonal simple), cuya vertiente de decision ´ es polinomial, mientras que el problema de optimizacion ´ del numero ´ de emparejamientos es NP–duro. Tenemos por tanto tres problemas de optimizacion ´ del numero ´ de elementos de naturaleza NP–dura, siendo sus problemas de decision ´ asociados pseudo-polinomial, fuertemente NP–completo y polinomial respectivamente. La aproximacion ´ de estos problemas es tambi´en abordada en la segunda parte de la memoria, tanto mediante algoritmos deterministas como no deterministas. Para esto ultimo ´ se ha elegido el uso de los algoritmos gen´eticos, con la particularidad de que la codificacion ´ presentada es la misma para los tres problemas, a pesar de su distinta naturaleza.

vii

Agradecimientos

Si trato de enumerar a todas aquellas personas que de un modo u otro han hecho posible que esta memoria vea la luz, seguramente me olvidar´e de alguna. No obstante y adelantando el topico ´ de “vayan por anticipado mis disculpas a todas las personas que haya olvidado mencionar”me arriesgar´e a hacerlo. Gracias a todos mis companeros ˜ de Escuela, especialmente Yoli que tienes el “si”como tu palabra preferida y est´as siempre dispuesta para cargar con algunas de mis obligaciones m´as grotescas (corregir ex´amenes, dar alguna clase, etc.) y Tiki que siempre estabas disponible para esas pequenas ˜ cosas. Gracias, M.Angeles y Alberto, que con vuestra confianza y paciencia hab´eis conseguido que llegara a creer que era posible. Gracias JoseRa, por que tu ayuda ha sido clave en muchos momentos. Gracias a mi familia por su apoyo y por la paciencia que han demostrado conmigo, pues la elaboracion ´ de esta memoria me ha privado de poder compartir m´as tiempo con ellos. Gracias, M. Jos´e, y no solo ´ por la ayuda “log´ıstica”; y al resto de mis amigos, que afortunadamente no son pocos, por “aguantarme la paliza”durante tanto tiempo. Y gracias, Toni, ˜ por que tu´ lo eres todo. ¿Como ´ has podido aguantarme tantos malos momentos con ese car´acter tan dulce?.

´ Introduccion

Cuando nos encontramos ante un gr´afico, la informacion ´ que en e´ l aparece constituye un elemento central de cara a la consecucion ´ de su principal objetivo: ser capaz de exponer de la forma m´as clara posible el objeto de dicho gr´afico. As´ı por ejemplo en la mayor parte de los trabajos relacionados con la Cartograf´ıa, como mapas, planos cartogr´aficos, etc (v´ease la Figura 1), en la elaboracion ´ de organigramas de planificacion, ´ diagramas t´ecnicos de bloques, diseno ˜ asistido, diseno ˜ de circuitos, etc, nos encontramos con la necesidad de colocar diferente informacion ´ que ayude a identificar distintos elementos del gr´afico. Debido a la irrupcion ´ de los medios inform´aticos cobra un enorme auge la tecnolog´ıa de la composicion ´ y con ello aumenta considerablemente la informacion ´ que tiene que ser incorporada a cualquier gr´afico, hasta el punto que se estima que la tarea de situar la informacion ´ sobre los distintos elementos de un mapa constituye el 50% del tiempo total que se emplea en la elaboracion ´ del mismo [55]. Por este motivo resulta importante encontrar algoritmos que resuelvan de una manera eficaz este problema. As´ı aparecen numerosos trabajos poniendo de manifiesto el gran inter´es que el tema suscita en la comunidad cient´ıfica internacional. Tal es el grado de dicho inter´es que en el informe Computational Geometry Impact Task Force de la ACM [10], se recoge el etiquetado como una de sus principales a´ reas de investigacion. ´ Cuando pretendemos ofrecer informacion ´ sobre los elementos de un gr´afico es frecuente la necesidad de resaltar algunos de dichos elementos, para ello se suelen establecer criterios que los identifiquen, as´ı por ejemplo se utilizan tipos de fuente diferentes para resaltar distintos elementos del gr´afico, o bien utilizar etiquetas de distinto tamano, ˜ dependiendo de la relevancia del elemento a senalar. ˜ De esta forma surge la necesidad de establecer una codificacion ´ que garantice la eficacia del algoritmo que resuelve el problema de etiquetado. Los primeros pasos dados en este sentido aparecen en un trabajo elaborado en  por el Institut Cartographique National de Paris [37]. En un trabajo posterior debido a Imhof [43] publicado en  se recogen los criterios que deben prevalecer en una buena t´ecnica de etiquetado. Estos criterios son fundamentalmente est´eticos: el tamano ˜ de las etiquetas ha de ser lo suficientemente grande para que la informacion ´ que en ellas aparecen pueda ser legible, la ubicacion ´ de las etiquetas debe ser de forma que evite la ambiguedad, ¨ etc. El problema de decision ´ general de etiquetado podr´ıa enunciarse de la forma siguiente: PROBLEMA GENERAL DE ETIQUETADO : ENTRADA: Un conjunto de  objetos en un gr´afico y para cada uno de ellos una etiqueta con informacion. ´ PREGUNTA: ¿Se puede encontrar una posicion ´ para cada etiqueta cercana al objeto a que se refiere, sin que se produzcan intersecciones entre ellas?

Debido a que el estudio del problema general plantea una gran dificultad se procede a xi

xii

Figura 1: Mapa de carreteras de Sevilla.

particularizar el problema realizando una clasificacion ´ del mismo. Los problemas de etiquetado se pueden clasificar segun ´ algunas de las peculiaridades que se aprecian en su enunciado. Podemos clasificar los problemas de etiquetado segun ´ los objetos que hay que resaltar en el gr´afico (puntos, segmentos, conjuntos de puntos, etc.), segun ´ las caracter´ısticas de las etiquetas que se utilizan para ello (forma, tamano, ˜ a´ rea, etc.) y segun ´ su ubicacion ´ respecto de los elementos a etiquetar (fijas en un punto, en varios puntos, etc). Una importante clase de estos problemas la constituyen el etiquetado de puntos con etiquetas rectangulares, debido a que en gran cantidad de aplicaciones los elementos a etiquetar son puntos: ciudades en un mapa, estaciones de metro, puntos en un circuito impreso, etc. Lejos de lo que pudiera parecer, aun despu´es de esta restriccion ´ nos encontramos con problemas intratables desde el punto de vista computacional. Para esta clase de problemas existen dos modelos diferentes de etiquetado. Podemos abordar el etiquetado con etiquetas fijas, presentado por Formann y Wagner [22] en el que cada

xiii

etiqueta presenta un numero ´ finito  de opciones para su ubicacion. ´ Los casos m´as frecuentes ´ de la etiqueta rectangular de forma que el punto a son   , siendo posible la ubicacion etiquetar quede situado en cualquiera de los v´ertices del rect´angulo;   , si anadimos ˜ a los cuatro puntos anteriores los correspondientes a las cuatro posiciones norte, sur, este y oeste; etc. El otro modelo de etiquetado, conocido como etiquetado con etiquetas deslizantes, presenta la novedad de que existen un numero ´ no finito de posiciones para ubicar la etiqueta, ya que e´ sta puede ser colocada de forma que el punto pueda quedar situado sobre cualquiera de los puntos del contorno del rect´angulo. Este modelo fue introducido por Van Kreveld y otros [64]. En los dos trabajos mencionados anteriormente se pone de manifiesto el car´acter intratable de los dos problemas generales de etiquetado, tanto con etiquetas fijas como deslizantes. Por este motivo aparecen muchos art´ıculos en los que se incorporan restricciones al problema: etiquetas de dimensiones espec´ıficas, etiquetas de proporciones determinadas, etc. Por ejemplo en el trabajo presentado por Iturriaga y Lubiw [44] se presenta el problema de etiquetado con etiquetas el´asticas, que son etiquetas de a´ rea conocida pero de anchura y altura variables. En esta l´ınea de acercamiento al problema general mediante el estudio de casos particulares del mismo y teniendo en cuenta que en multitud de ocasiones los puntos a etiquetar se encuentran alineados, como es el caso de etiquetado de redes de metro (v´ease la Figura 4), etiquetado de circuitos impresos (v´ease la Figura 5), etc., resulta interesante abordar el problema de etiquetado de puntos alineados. Estos problemas ser´an objeto de estudio en la primera parte de esta memoria. En muchos casos los problemas de decision ´ de etiquetado son computacionalmente intratables. En otros, aunque el problema sea algor´ıtmicamente abordable, la respuesta es negativa. No obstante tenemos la necesidad de aportar una solucion ´ para el problema de etiquetado. Por este motivo, relacionados con el problema general de decision ´ de etiquetado, nos encontramos con dos problemas de optimizacion. ´ En primer lugar nos podemos plantear la obtencion ´ del mayor tamano ˜ posible para las etiquetas, de forma que puedan ser colocadas sobre los objetos sin intersecciones entre ellas. El otro planteamiento consiste en, manteniendo el tamano ˜ dado para las etiquetas, obtener el mayor numero ´ de tales etiquetas que pueden ser colocadas sobre los objetos del gr´afico, sin intersecciones entre ellas. De esta forma surgen los dos problemas siguientes de optimizacion ´ generales de etiquetado: ´ DEL TAMA NO ˜ DE LAS ETIQUETAS: M AXIMIZACI ON ENTRADA: Un conjunto de  objetos en un gr´afico y para cada uno de ellos una etiqueta con informacion. ´ ´ PREGUNTA: ¿Cu´al ser´a el mayor factor Æ de manera que se pueda encontrar una posicion para cada etiqueta, multiplicada por dicho factor, cercana al objeto a que se refiere, sin que se produzcan intersecciones entre ellas? ´ DEL N UMERO ´ DE ETIQUETAS : M AXIMIZACI ON ENTRADA: Un conjunto de  objetos en un gr´afico y para cada uno de ellos una etiqueta con informacion. ´ PREGUNTA: ¿Cu´al ser´a el mayor subconjunto de etiquetas para las que se puede encontrar una posicion ´ cercana al objeto a que se refiere, sin que se produzcan intersecciones entre ellas? La mayor´ıa de estos problemas son intratables, de ah´ı que se hayan utilizado diferentes heur´ısticas para abordarlos, como por ejemplo el uso de programacion ´ digital [70], algoritmos de aproximacion ´ [22, 57, 60], etc. En esta memoria afrontaremos el estudio de los problemas de optimizacion ´ del tamano ˜ de las etiquetas en el etiquetado de puntos alineados con etiquetas rectangulares. As´ı mismo es-

xiv

tudiaremos la aproximacion ´ de problemas NP–duros de optimizacion ´ del numero ´ de etiquetas, mediante algoritmos deterministas y no deterministas. Existe abundante bibliograf´ıa donde acudir para aclarar los conceptos b´asicos utilizados en esta memoria. En este sentido podemos recomendar los textos de Garey y Johnson [24] y Ausiello y otros [3] sobre complejidad computacional y algoritmos de aproximacion; ´ el texto de Bollobas [8] sobre teor´ıa de grafos; los textos sobre geometr´ıa computacional de Preparata y Shamos [59], de de Berg y otros [6] y el manual de Sack y Urrutia [62], y el texto de Tamassia y otros [16] sobre visualizacion ´ y trazado de grafos. No obstante en el Cap´ıtulo 1 se ofrecen a modo de resumen las nociones previas m´as importantes que son necesarias para el desarrollo de esta memoria. Como dec´ıamos, en la primera parte de la memoria nos ocuparemos del estudio de los problemas de etiquetado de puntos alineados con etiquetas rectangulares. Este estudio lo hemos dividido en dos apartados segun ´ que los puntos se encuentren sobre una l´ınea horizontal (o vertical) o sobre una l´ınea oblicua y considerando los dos modelos de etiquetado con etiquetas fijas y deslizantes.

Pequeña

Etiqueta mucho mas grande

Pequeña

Etiqueta mediana

Etiqueta mucho mas grande

Etiqueta mediana

Figura 2: Relevancia de las dimensiones de las etiquetas. Generalmente cuando utilizamos etiquetas para ofrecer informacion ´ sobre elementos de un gr´afico, el tamano ˜ de tales etiquetas viene determinado por la longitud del texto a situar en ellas. Por este motivo juega un papel mucho m´as importante, con el sistema de escritura occidental, la anchura de las etiquetas que su correspondiente altura. Ahora bien, como se aprecia en la Figura 2, si los puntos est´an situados sobre una l´ınea horizontal la altura de las etiquetas tiene poca relevancia, ya que no influye en el desarrollo del problema. Por el contrario si los puntos est´an situados sobre una l´ınea vertical es la anchura de las etiquetas la componente que no tiene inter´es para el estudio del problema. Es por este motivo por lo que estudiaremos tanto problemas con etiquetas iguales (que pueden ser asociadas a situaciones de etiquetado sobre una l´ınea vertical) como problemas con etiquetas de tamanos ˜ diferentes (que corresponder´ıan a situaciones de etiquetado sobre una l´ınea horizontal). En cada uno de los modelos de etiquetado seguiremos un proceso de generalizacion ´ en el tipo de etiquetas, comenzando con el caso m´as simple en que todas las etiquetas son cuadradas e iguales para ir generalizando los tipos de etiquetas.

xv

En el Cap´ıtulo 3 nos ocuparemos de los correspondientes problemas de decision. ´ Para ello utilizaremos un algoritmo incremental que ser´a de general uso para todos los casos. Obtendremos de esta forma algoritmos polinomiales que resuelven algunos de estos problemas. En cambio probaremos que otros casos resultan NP–completos, como el problema H –4 S de etiquetado de puntos sobre una l´ınea horizontal con etiquetas rectangulares deslizantes cualesquiera. En muchas ocasiones, aunque el problema sea resoluble por un algoritmo polinomial, el etiquetado no es posible con el tamano ˜ que hab´ıamos fijado a priori para las etiquetas, ya que e´ stas se solapan. No obstante seguimos teniendo la necesidad de elaborar el gr´afico (mapa, plano, etc). Por este motivo estudiamos en el Cap´ıtulo 4 los problemas de encontrar las etiquetas de mayor tamano ˜ (y por lo tanto m´as legibles) que permiten resolver el problema de etiquetado, correspondientes a los problemas de decision ´ estudiados previamente. Como hemos senalado ˜ con anterioridad, otra l´ınea en la que podemos avanzar cuando una instancia concreta del problema resulta imposible de etiquetar es tratar de encontrar el mayor numero ´ de etiquetas que pueden ser situadas en el gr´afico. En esta l´ınea seguiremos en la segunda parte de la memoria, donde acometeremos la aproximacion ´ de tres problemas de optimizacion ´ de naturaleza NP–dura. El primero de estos problemas es el problema de optimizacion ´ del numero ´ de etiquetas deslizantes rectangulares sobre puntos situados en una l´ınea horizontal (M AX N– H –4 S). Otro tipo de problemas de etiquetado nos lo encontramos cuando los elementos a etiquetar no vienen representados por puntos, sino regiones con un a´ rea determinada y disponemos de etiquetas rectangulares asociadas a dichas regiones y que las contienen. Uno de estos problemas es el siguiente: ´ ´ RTICES PREFIJADOS Y AREA ´ ETIQUETADO CON RECT ANGULOS DE V E M´I NIMA

3- RVP (1)( ,): ENTRADA: Un conjunto           de  ternas de puntos en el plano y para cada terna de puntos  un conjunto de a lo m´as tres rect´angulos de lados paralelos a los ejes coordenados      , de manera que cada rect´angulo   contiene a la envolvente rectangular de los tres puntos de  , estando e´ stos situados en la frontera de las etiquetas y al menos uno de ellos es uno de sus v´ertices. PREGUNTA: ¿Es posible elegir un rect´angulo para cada terna de puntos, de manera que no se produzcan intersecciones entre ellos? Este problema es NP–completo [36]. La Figura 3 muestra una instancia de dicho problema, en la que aparecen con trazado continuo las etiquetas que dan una solucion ´ del problema para dicha instancia. En los problemas de etiquetado que hemos mencionado la ortogonalidad es uno de sus principales ingredientes. Esto mismo ocurre con los problemas de conexiones ortogonales. En ellos se dispone de conjuntos de puntos en el plano que han de ser unidos mediante trazados ortogonales sin intersecciones. Un trazado ortogonal que une dos puntos  y del plano ser´a un camino de  a , contenido en la malla rectangular del plano. En un trazado ortogonal nos podemos encontrar con puntos donde se produce cambio de direccion ´ y no son puntos de la entrada del problema. Tales puntos los llamaremos codos. Una muestra de la relacion ´ entre los problemas de etiquetado y los de conexiones ortogo´ ya que puede nales es el hecho de que el problema 3- RVP (1) admite una doble formulacion, ser formulado como problema de conexiones ortogonales de la siguiente forma: 3- RVP (1)( ,): ENTRADA: Un conjunto           de  ternas de puntos en el plano y para cada uno

xvi

Figura 3: Entrada del problema 3– RVP (1).

de ellos un conjunto de a lo m´as tres trazados ortogonales con a lo sumo tres codos que los unen formando un pol´ıgono convexo. PREGUNTA: ¿Es posible elegir un trazado para cada terna de puntos, de manera que no se produzcan intersecciones entre ellos? Desde este punto de vista aparece formulado en [58], donde se prueba que es NP–completo. ´ del numero ´ de tr´ıos de puntos Por lo tanto ser´a NP–duro el problema asociado de optimizacion que pueden ser etiquetados. Existen multitud de trabajos sobre conexiones ortogonales. Algunos de e´ stos aparecen ´ en [58, 29, 61]. De hecho la ultima ´ de estas referencias presenta el problema SBW de conexion ortogonal simple que da origen a toda la clase de problemas de conexiones ortogonales. Este problema consiste en tratar de conectar, mediante trazados ortogonales con a lo sumo un codo un conjunto de parejas de puntos en el plano sin que se produzcan intersecciones entre ellos. Este problema fue presentado por Raghavan y otros [61], quienes prueban que es resoluble por un algoritmo cuadr´atico y que el correspondiente problema de optimizacion ´ del numero ´ de parejas de puntos que pueden ser unidas mediante trazados ortogonales con a lo sumo un codo, M AX N– SBW, es NP–duro. Tenemos por tanto tres problemas, donde la ortogonalidad juega un papel fundamental, que son NP–duros. El estudio de estos tres problemas es el objeto de la segunda parte de la memoria. En esta segunda parte comenzamos, en el Cap´ıtulo 7, estudiando la naturaleza NP–completa de los problemas de decision ´ de etiquetado H –4 S y 3- RVP (1). Aunque ambos problemas son NP –completos, probaremos que el primero de ellos admite un algoritmo pseudo-polinomial que lo “resuelve”, mientras que el otro es fuertemente NP–completo. Es de destacar que es la primera ocasion ´ en que aparecen dos problemas de estas naturalezas NP–completas (fuerte y d´ebil) cuyos enunciados no son num´ericos, sino que obedecen a par´ametros principalmente geom´etricos y particularmente es la primera ocasion ´ en que nos encontramos con dos problemas de etiquetado de dichas naturalezas. Disponemos por tanto de tres problemas, con la ortogonalidad como ingrediente comun, ´ ´ asociado es de que son NP–duros pero con la particularidad de que el problema de decision ´ un probledistinta naturaleza, ya que el problema M AX N– SBW tiene por problema de decision ma polinomial, el segundo problema (M AX N– H –4 S) es generado por un problema de decision ´ pseudo-polinomial, mientras que el problema M AX N–3– RVP (1) es origen de un problema de

xvii

decision ´ fuertemente NP–completo. Disponemos entonces de tres problemas NP–duros cuyos problemas de decision ´ asociados presentan una dificultad de orden creciente. En los cap´ıtulos siguientes nos centramos en la aproximacion ´ de e´ stos tanto por algoritmos deterministas como no deterministas. En el Cap´ıtulo 8 presentaremos algoritmos deterministas de aproximacion ´ de los problemas M AX N– SBW y M AX N–3– RVP (1) y probaremos que pertenece a la clase PTAS el problema M AX N– H –4 S, pues presentaremos un esquema de aproximacion ´ polinomial para dicho problema. Nos planteamos en el Capitulo 9 como objetivo utilizar algoritmos no deterministas para aproximar dichos problemas. Debido al enorme auge que toman en los ultimos ´ tiempos los algoritmos gen´eticos para aproximar problemas de muy variada naturaleza, elegimos estos algoritmos para proceder a la aproximacion. ´ Presentamos una misma codificacion ´ general que permitir´a abordar la aproximacion ´ de los tres problemas, con la correspondiente adaptacion ´ particular a cada uno de ellos. Finalmente incluimos un cap´ıtulo destinado a la implementacion ´ de los diferentes algoritmos (deterministas y no deterministas). Esta implementacion ´ se lleva a cabo en lenguaje C++ y los resultados obtenidos se muestran en el Cap´ıtulo 10. En este punto nos parece oportuno hacer mencion ´ a la notacion ´ utilizada para nombrar los problemas de etiquetado de puntos alineados estudiados en esta memoria. Esta notacion ´ se explica detalladamente en el Cap´ıtulo 3 y, de forma resumida, podr´ıamos indicar que incorpora los tres elementos que identifican el problema a estudiar. La forma general de denotar ´ ”, donde el elemento “L´I NEA”se refiere al tipo un problema ser´a “L ´I NEA [ ETIQUETA ]- POSICI ON de l´ınea sobre el que est´an situados los puntos (horizontal u oblicua), el elemento “ETIQUE ´ ”distingue el caso TA ”se refiere al tipo de etiquetas que se utilizar´ an y el elemento “POSICI ON de etiquetas fijas de etiquetas deslizantes. Tabla 1: Problemas de decision ´ estudiados en la memoria

OR (  )–4 P

Posicion ´ puntos l´ınea horizontal l´ınea horizontal l´ınea horizontal l´ınea oblicua l´ınea oblicua

OR (  )–4 P

l´ınea oblicua

O 1 R –4 P

l´ınea oblicua

OC –4 S

l´ınea oblicua tr´ıos de puntos

Problema H –4 P H –4 S –1 C H –4 S OC –4 P

3- RVP (1)

Tipo etiquetas rect´angulos cualesquiera cuadrados iguales rect´angulos cualesquiera cuadrados iguales rect´angulos iguales rect´angulos de tamanos ˜ diferentes rect´angulos de igual altura cuadrados iguales



rect´angulos

Posicion ´ etiquetas fijas

deslizantes deslizantes

Complejidad Computacional

Referencia

´µ ´µ

Teorema 3.6

NP –completo pseudo-polinomial

Teorema 3.7 Seccion ´ 7.2

Teorema 3.4

fijas

´µ ´µ

Teorema 3.12

fijas

´¾ µ

Teorema 3.15

fijas

´µ

Teorema 3.19

deslizantes

´¾ µ

Teorema 3.23

fijas (3 opciones)

fuertemente NP –completo

Seccion ´ 7.3

fijas

Teorema 3.11

Los problemas de optimizacion ´ correspondientes se denotar´an anadiendo ˜ un prefijo al correspondiente problema de decision. ´ Para los problemas de optimizacion ´ del tamano ˜ de las ´ del numero ´ etiquetas utilizaremos el prefijo “M AX T–”y para los problemas de optimizacion de etiquetas el prefijo “M AX N–”. Las Tablas 1 y 2 muestran todos los problemas estudiados en esta memoria, indicando sus caracter´ısticas principales. La primera de ellas est´a dedicada a los

xviii

Tabla 2: Problemas de optimizacion ´ estudiados en la memoria Problema

Optimiza

Posicion ´ puntos l´ınea horizontal l´ınea horizontal l´ınea oblicua

M AX T– H –4 P

tamano ˜

M AX T– H –4 S –1 C

tamano ˜

M AX T– OC –4 P

tamano ˜

M AX T– O 1 R –4 P

tamano ˜

l´ınea oblicua

M AX T– OC –4 S

tamano ˜

l´ınea oblicua

Tipo etiquetas rect´angulos cualesquiera cuadrados iguales cuadrados iguales rect´angulos de igual altura cuadrados iguales

Posicion ´ etiquetas fijas

Complejidad Computacional   

Teorema 4.3

deslizantes

  

Teorema 4.7

fijas

  

Teorema 4.10

fijas

 

Teorema 4.12

deslizantes

  

Teorema 4.14

PTAS

M AX N– H –4 S

numero ´

l´ınea horizontal

rect´angulos cualesquiera

deslizantes

M AX N–3– RVP (1)

numero ´

tr´ıos de puntos

rect´angulos

fijas (3 posiciones)

M AX N– SBW

numero ´

pares de puntos

trazados ortogonales

——Aprox. por alg. gen´eticos Algoritmo de aproximacio´ n ——Aprox. por alg. gen´eticos Algoritmo de aproximacio´ n ——Aprox. por alg. gen´eticos

Referencia

Seccio´ n 8.3 ——Seccio´ n 9.3.2 Seccio´ n 8.4 ——Seccio´ n 9.3.3 Seccio´ n 8.2 ——Seccio´ n 9.3.1

problemas de decision ´ mientras que la segunda se ocupa de los problemas de optimizacion. ´ Para finalizar quer´ıamos resaltar que en el proceso de elaboracion ´ de esta memoria han ido surgiendo resultados parciales que se han presentado ante la comunidad cient´ıfica en diversos foros, desde regionales hasta internacionales [25, 26, 28, 30, 31, 32, 33, 34, 35, 36].

xix

Figura 4: Plano del metro de Barcelona.

xx

Figura 5: Circuito de un decodificador de video.

´Indice General

Resumen

vii

Introduccion ´

xi

´ Indice General

xxi

1 Preliminares 1.1 Nociones de grafos . . . . . . . . . 1.2 Algunos aspectos sobre algoritmos 1.3 NP–completitud . . . . . . . . . . . 1.4 Algoritmos de aproximacion ´ . . . 1.5 Algoritmos gen´eticos . . . . . . . . 1.6 El problema SBW . . . . . . . . . .

1 1 4 5 9 11 17

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

I Etiquetado de puntos alineados 2 Introduccion ´

23

3 Problemas de decision ´ en etiquetado de puntos alineados 3.1 Introduccion ´ . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Descripcion ´ del algoritmo incremental . . . . . . . . . 3.3 Puntos sobre una l´ınea horizontal . . . . . . . . . . . . 3.4 Puntos sobre una l´ınea oblicua . . . . . . . . . . . . .

. . . .

27 27 29 30 43

4 Optimizacion ´ del tamano ˜ de las etiquetas 4.1 Introduccion ´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Punto sobre una l´ınea horizontal . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Puntos sobre una l´ınea oblicua . . . . . . . . . . . . . . . . . . . . . . . . . . . .

55 55 56 61

5 Conclusiones y problemas abiertos

67 xxi

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

xxii

II ´ de Etiquetado: Aproximacion problemas de distinta naturaleza NP–dura 6 Introduccion ´

73

7 Etiquetado: Problemas de distinta naturaleza NP–completa 7.1 Introduccion ´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Algoritmo pseudo-polinomial para H –4 S . . . . . . . . . . . . . . . . . . . . . . 7.3 NP-completitud fuerte del problema 3- RVP (1) . . . . . . . . . . . . . . . . . . . .

77 77 78 82

8 Aproximacion ´ por algoritmos deterministas 8.1 Introduccion ´ . . . . . . . . . . . . . . . . . . . . . . 8.2 Aproximacion ´ del problema M AX N- SBW . . . . . 8.3 El problema M AX N- H -4 S pertenece a la clase PTAS 8.4 Aproximacion ´ del problema M AX N-3- RVP (1) . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

95 . 95 . 97 . 103 . 112

9 Aproximacion ´ por algoritmos gen´eticos 9.1 Introduccion ´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2 Esquema general para la aproximacion ´ de problemas NP–duros 9.3 Adaptacion ´ a cada uno de los problemas . . . . . . . . . . . . . 9.4 Otro enfoque para el problema M AX N– SBW . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

117 . 117 . 118 . 122 . 132

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

10 Tests comparativos 137 10.1 Algoritmos deterministas frente a algoritmos gen´eticos . . . . . . . . . . . . . . 138 10.2 Nuevo enfoque para el problema M AX N- SBW . . . . . . . . . . . . . . . . . . . 157 10.3 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 11 Conclusiones y problemas abiertos A Listados A.1 Generar poblacion ´ aleatoria . . . . . . . . . . . . . . . . . . A.2 Algoritmos deterministas . . . . . . . . . . . . . . . . . . . A.3 Algoritmos gen´eticos . . . . . . . . . . . . . . . . . . . . . . A.4 Enfoque particular para el problema M AX N– SBW . . . . . A.5 Notebooks para visualizar los resultados con Mathematica

165

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

167 168 183 195 216 224

Referencias

229

´ Indice Alfab´etico

235

CAP´ITULO

1

Preliminares

1.1.

Nociones de grafos

Puesto que resulta ser la base de muchas de las ideas expuestas en esta memoria, introducimos aquellos conceptos de la Teor´ıa de Grafos que nos pueden resultar de utilidad para el desarrollo de la misma. Estos conceptos pueden encontrarse de una forma detallada por ejemplo en los libros de Harary [40] y Bollobas [8]. Se define un grafo como el par de conjuntos   , donde los elementos de se llaman v´ertices y el conjunto est´a formado por pares no ordenados de v´ertices, llamados aristas. Diremos que dos aristas son incidentes si tienen un v´ertice en comun ´ y diremos que dos v´ertices

 y  son adyacentes si existe una arista que los une (      ). Toda arista  se dice que es un lazo y se dice que un grafo posee aristas multiples ´ si dos v´ertices son adyacentes mediante m´as de una arista. Un grafo que contiene aristas multiples ´ o lazos se dice que es un multigrafo, en caso contrario se dice que es un grafo simple, siendo estos grafos los unicos ´ que utilizaremos en esta memoria. Por este motivo cuando nombremos un grafo nos estaremos refiriendo a un grafo simple. ´ de Se denomina valencia o grado de un v´ertice , y la denotaremos por Æ , al numero aristas que contienen a , o lo que es lo mismo, al numero ´ de v´ertices adyacentes a . Si todos los v´ertices tienen la misma valencia, diremos que se trata de un grafo regular. Un grafo cuyos  se dice que es un -grafo. v´ertices tienen valencia no superior a un numero ´ Un grafo de  v´ertices se dice que es un grafo completo, y lo denotamos por   , si es un grafo regular cuyos v´ertices tienen valencia   , o sea es un grafo regular   -valente de      . v´ertices. El numero ´ de aristas del grafo   es ´ del conjunto Un grafo    se dice que es un grafo bipartito si existe una particion en dos conjuntos  y  de manera que cada arista de contiene un v´ertice de  y otro de  y no es vac´ıo. Un grafo bipartito se dice que es un grafo bipartito completo si todos los v´ertices de  son adyacentes a todos los v´ertices de  . Estos grafos se denotan por  , siendo  el numero ´ de v´ertices de  y  el numero ´ de v´ertices de  . 1

2

1. Preliminares

Figura 1.1: Los grafos  ,  y  . Dado un grafo   , se llama camino en a toda lista ordenada            de v´ertices de forma que cada par      es una arista de (         ). Igualmente diremos que un camino es una lista ordenada de aristas de , de forma que el v´ertice final de cada una de ellas coincide con el v´ertice inicial de la siguiente. Diremos que el camino                    une los v´ertices  y  . La longitud de un camino es igual al numero ´ de aristas que lo componen (en el ejemplo   ) o lo que es lo mismo el numero ´ de v´ertices menos uno. Un camino se dice que es simple si no repite v´ertices. Si existe un camino que une dos puntos entonces existe un camino simple que los une, por esta razon ´ nos referiremos siempre a caminos simples. Si los v´ertices primero y ultimo ´ coinciden diremos que el camino es un ciclo. La relacion ´ de equivalencia  entre los v´ertices de un grafo   , definida de modo que dos v´ertices y  est´an relacionados ( ) si existe un camino entre y , establece una clasificacion ´  del grafo en clases de equivalencia. Estas clases de equivalencia se conocen con el nombre de componentes conexas del grafo . Es decir una componente conexa est´a formada por todos los v´ertices del grafo que pueden ser unidos entre s´ı mediante un camino de aristas. Si un grafo tiene una unica ´ componente conexa se dice que es un grafo conexo. Por lo tanto en un grafo conexo todos los v´ertices pueden ser unidos por caminos. Se dice que el grafo      es un subgrafo del grafo   si   y   . Dado un grafo   y un subconjunto  de v´ertices de , se llama subgrafo inducido por

  al grafo que resulta de suprimir en los v´ertices que no est´an en  y todas las aristas que los contengan.

v w

Figura 1.2: Grafo inducido por    . Un v´ertice de un grafo se dice que es un punto de corte si el subgrafo inducido por

   tiene m´as componentes conexas que . Un grafo conexo que no tiene puntos de corte

se dice que es un grafo -conexo. Siguiendo con esta idea podemos generalizar el concepto de conexion. ´ Decimos que el conjunto de v´ertices          es un conjunto de corte si el grafo inducido por          tiene m´as componentes conexas que el grafo . Entonces decimos que un grafo es un grafo  -

3

1.1. Nociones de grafos

conexo si para romper su conexion ´ es necesario eliminar al menos  v´ertices.

v1

v1

v2

v1

v2 v3

Figura 1.3: De izquierda a derecha: grafo no conexo, grafo simplemente conexo, grafo conexo y grafo -conexo. Senalados ˜ los conjuntos de corte. Entre los grafos especiales que ser´an utilizados en este trabajo est´an los llamados a´ rboles. Un grafo conexo se dice que es un a´ rbol si no contiene ciclos. Un grafo no conexo cuyas componentes conexas son a´ rboles se denomina bosque. ´ en el plano Un grafo   se dice que es un grafo plano si admite una representacion sin que se corten sus aristas. a tal representacion ´ se le llama inmersi´on del grafo en el plano. La Figura 1.4 muestra el grafo plano (octaedro) y el grafo no plano  .

Figura 1.4: El octaedro es plano.

 no es plano.

Uno de los resultados m´as importantes de la teor´ıa de grafos, debido a Kuratowski [51], caracteriza a los grafos planos. Para llegar a enunciar dicho resultado necesitamos introducir algunos conceptos previos. Si        es una arista de un grafo   , llamaremos partici´on de la arista  al resultado de sustituirla por el camino simple             , donde los v´ertices  , para    , son todos distintos y ninguno de ellos pertenece a . Dado un grafo se llama subdivisi´on del grafo a todo grafo que se obtiene realizando particiones de sus aristas y diremos que dos grafos  y  son homeomorfos si existe un tercer ´ de  y  . grafo  que sea subdivision Ya estamos en condiciones de enunciar el Teorema de Kuratowsky: Un grafo es plano si y s´olo si no contiene a ningun ´ subgrafo homeomorfo a  ni a  . Llamaremos inmersi´on ortogonal de un grafo a aquella cuyas aristas son poligonales contenidas en la malla rectangular (grid) del plano. En estas inmersiones, un punto donde una arista cambia de direccion, ´ y no es un v´ertice, se denomina codo. Tamass´ıa y otros prueban que todo grafo plano admite una inmersion ´ ortogonal [16]. Si las aristas de un grafo son pares ordenados de v´ertices, diremos que se trata de un grafo dirigido o digrafo. La relacion ´ de equivalencia  , definida de modo que dos v´ertices y  son equivalentes si existe un camino que lleva de a  y otro camino que lleva de  a , clasifica el digrafo

4

1. Preliminares

Figura 1.5: Inmersion ´ ortogonal plana de  . en un conjunto  de clases de equivalencia, denominadas componentes fuertemente conexas del grafo dirigido .

1.2.

Algunos aspectos sobre algoritmos

En Ciencias de la Computacion ´ un problema se dice que est´a compuesto de una entrada, formada por un conjunto de par´ametros, y una pregunta, sobre las propiedades de la solucion. ´ Un algoritmo es un m´etodo para resolver el problema. Es decir es un m´etodo que para cada entrada devuelve la respuesta adecuada a la pregunta. Los problemas que estudiaremos en esta memoria son susceptibles de encontrar un algoritmo que los resuelva. Por ello estableceremos la notacion ´ que utilizaremos para dichos algoritmos. Para ello podemos seguir la notacion ´ aportada en algunos de los trabajos m´as importantes que existen sobre la Teor´ıa de la Complejidad Computacional, como por ejemplo el libro de Garey y Johnson [24] y en los trabajos de Knuth [50] y Cook [15]. Por cuestiones de claridad expresaremos en la medida de lo posible los algoritmos en lenguaje natural, pero siguiendo la estructura de un lenguaje estructurado. ´ La complejidad de un algoritmo nos da idea de la mayor o menor bondad del mismo. Esta depende de dos factores, como son el tiempo que tarda en obtener la solucion ´ del problema y el espacio que ocupa. El espacio que ocupa un algoritmo en los ultimos ´ tiempos pasa a ser un elemento f´acilmente subsanable, debido fundamentalmente al aumento de la capacidad de almacenamiento de los ordenadores y a la disminucion ´ del precio de los elementos de memoria. Por este motivo juega un papel secundario en los estudios de complejidad computacional llevados a cabo en esta memoria. El primero de los factores es el que fundamentalmente va a centrar nuestros esfuerzos de cara al diseno ˜ de los algoritmos, ya que el tiempo es un problema que no tiene solucion ´ posible. El tiempo empleado por un algoritmo ser´a la suma de todos los tiempos empleados por las distintas operaciones realizadas por el algoritmo. De esta manera aparece lo que se conoce como efectividad o complejidad del algoritmo. La complejidad de un algoritmo es una funcion ´   positiva, donde  es el tamano ˜ de la entrada, que expresa el mayor tiempo empleado para resolver el problema con entradas de  elementos. Este tiempo puede medirse en FLOPS (operaciones en coma flotante por segundo) tal y como se hace en An´alisis Num´erico o en operaciones activas, que es el mecanismo utilizado en Ciencias de la Computacion ´ y que utilizaremos en esta memoria.

1.3. NP–completitud

5

Para expresar la efectividad de un algoritmo utilizaremos la notaci´on asint´otica. Esta notacion ´ es debida a Bachmann [4] y ha sido ampliamente utilizada desde que la incorporara Knuth [50]. Para obtener esta complejidad computacional deberemos analizar siempre los “peores”casos que pueden presentarse entre las posibles entradas del problema. La notacion ´ asintotica ´ est´a basada en los conjuntos de funciones   

,  

,   

y   

. Denotaremos por   

al conjunto de todas las funciones   tales que existen una constante positiva  y un numero ´ natural  tales que, para todo   ,      . Este conjunto ser´a empleado para describir cotas superiores de la complejidad de un algoritmo. Denotaremos por  

al conjunto de todas las funciones   tales que existen una constante positiva  y un numero ´ natural  de forma que, para todo   ,      . Lo utilizaremos para las cotas inferiores de la efectividad de un algoritmo. Igualmente denotaremos por   

al conjunto de todas las funciones   tales que existen dos constantes positivas  y  y un numero ´ natural  tales que, para todo   ,         . Este conjunto ser´a utilizado para describir los algoritmos que son o´ ptimos. Por ultimo ´ denotaremos con   

al conjunto de funciones   que verifican que para ´ natural  tal que      para todo cualquier constante positiva  existe un numero  

  , o lo que es lo mismo      . Si un algoritmo requiere un tiempo que viene dado por un polinomio de tercer grado, por ejemplo             diremos que el algoritmo es   . Diremos que un algoritmo es polinomial si es   siendo  un numero ´ natural. Son especialmente importantes los casos   ,    y   . En el primero de ellos diremos que se trata de un algoritmo cuadr´atico, en el segundo que el algoritmo es lineal y en el ultimo ´ caso diremos que el algoritmo corre en tiempo constante.

1.3.

NP –completitud

Cuando un investigador se encuentra ante un problema, fundamentalmente en a´ reas derivadas de las matem´aticas, computacion, ´ geometr´ıa computacional, teor´ıa de grafos, etc, el gran reto es encontrar un algoritmo que lo resuelva. En este sentido es cada vez m´as frecuente encontrarse con problemas que son “intratables”desde un punto de vista algor´ıtmico. Por eso ´ tiempos. aparece el calificativo de NP–completo, que tiene un auge importante en los ultimos Como ve´ıamos en la seccion ´ anterior la complejidad computacional de un algoritmo para resolver un problema se mide en funcion ´ del tiempo y espacio que necesitar´ıa para obtener una respuesta del problema para una entrada cualquiera del mismo. Hace algunos anos ˜ Edmonds [19] y Cobham [14] establecen la diferencia entre algoritmos polinomiales y exponenciales, diciendo que los algoritmos polinomiales son “buenos” algoritmos para resolver problemas, mientras que califican de “intratables” aquellos problemas que probablemente no podr´an ser resueltos por ningun ´ algoritmo polinomial.

6

1. Preliminares

Un problema se dice que es un problema de decisi´on si las unicas ´ posibles soluciones del mismo son “si” o “no”. Entonces llamamos  al conjunto de todas sus posibles entradas y    al conjunto de todas las entradas que ofrecen resultado afirmativo. Un algoritmo se dice que es un algoritmo determinista si para cada entrada del problema nos proporciona una solucion. ´ En un problema de decision ´ , dada una instancia cualquiera    , un algoritmo determinista nos debe decir si    o    . Por el contrario un algoritmo no determinista est´a compuesto de dos etapas. Dada una instancia del problema    , la primera etapa (etapa de conjetura) nos proporciona una estructura  . Esta estructura  junto con la instancia  constituyen la entrada de la segunda etapa (etapa de chequeo), en la que se comprueba si con la estructura  la instancia     . Diremos que un algoritmo determinista “resuelve” el problema , si para cualquier instancia  del mismo se tienen las dos propiedades siguientes: 1. Si    entonces en la primera etapa se puede generar una estructura  de manera que con ella se garantiza en la segunda etapa que  produce respuesta afirmativa. 2. Si     no se puede generar en la primera etapa ninguna estructura  que nos lleve, en la segunda etapa, a la respuesta afirmativa para  . Al contrario de lo que ocurre con los algoritmos deterministas, los algoritmos no deterministas no resuelven el problema, sino que permiten comprobar si cierta estructura asociada a una entrada determinada del problema es realmente una solucion ´ de dicha entrada. Decimos que un algoritmo no determinista resuelve un problema en tiempo polinomial, si existe un polinomio  tal que para cada entrada  del problema, existe la estructura  de la primera etapa, de manera que con ella la segunda etapa nos conducir´ıa a la respuesta afirmativa ´ del tamano ˜ de  . para  , en tiempo  en funcion Un problema se dice que es polinomial, o que pertenece a la clase de problemas P, si existe algun ´ algoritmo determinista que lo resuelve en tiempo y espacio polinomial. Un problema se ´ algoritmo no determinista que lo dice que pertenece a la clase de problemas NP si existe algun resuelve en tiempo polinomial. Es de gran importancia la relacion ´ existente entre estas clases de problemas. La clase de problemas P est´a contenida en la clase de problemas NP, ya que cualquier algoritmo determinista genera un algoritmo determinista, ya que bastar´ıa considerar el propio algoritmo como la estructura a generar en la primera etapa y e´ sta nos conducir´ıa a la respuesta afirmativa en la segunda etapa. La inclusion ´ contraria en cambio no est´a probada, aunque existen fuertes ´ en la que razones para probar que no se da tal inclusion, ´ es decir P NP y es en esta direccion se trabaja. Por esta razon ´ es frecuente encontrarnos con resultados que utilizan la expresion ´ “el problema  NP - P, a no ser que PNP”. Karp [48] establece el concepto de reduccion ´ polinomial de un problema a otro y prueba que el problema de satisfacibilidad SAT definido m´as adelante tiene la propiedad de que otros problemas en NP pueden reducirse polinomialmente a e´ l. De esta manera nace la categor´ıa de problemas NP–completos. Dados dos problemas de decision ´  y  diremos que     es una reducci´on polinomial de  a  , y escribiremos   , si verifica las dos condiciones siguientes. 1.

 es computable en tiempo polinomial.

2. Para cualquier entrada     ,    si, y solo ´ si,    Se puede apreciar que si  P y   , entonces  P. Un problema se dice que es NP–completo si  NP y cualquier otro problema  NP– completo se puede reducir polinomialmente a e´ l. Para probar que un problema  es NP–completo tenemos que seguir los pasos siguientes.

1.3. NP–completitud

7

1. Probar que pertenece a NP. Es decir encontrar un algoritmo no determinista que lo resuelva y tenga una complejidad computacional polinomial. ´ po2. Encontrar otro problema  , conocido como NP–completo, y obtener una reduccion linomial de  a  . Es decir, dada una instancia cualquiera     obtener (en tiempo polinomial) otra instancia    , de manera que    si, y solo ´ si,    . Por este motivo estudiamos algunos de estos problemas NP–completos. El problema de satisfacibilidad a que hac´ıamos referencia, y que es el primer problema NP–completo, se define como sigue. SATISFACIBILIDAD ( SAT ): ´ y un conjunto  de cl´ausulas sobre  . ENTRADA: Un conjunto  de variables logicas PREGUNTA: ¿Es posible encontrar alguna asignacion ´ de verdad para las variables de  que satisfaga a todas las cl´ausulas de  ?

Existen otras variantes interesantes de este problema, y que nosotros utilizaremos en la memoria. 2- SATISFACIBILIDAD (2- SAT): ´ y un conjunto  de cl´ausulas sobre  , de maENTRADA: Un conjunto  de variables logicas nera que cada cl´ausula contiene exactamente dos literales. PREGUNTA: ¿Es posible encontrar alguna asignacion ´ de verdad para las variables de  que satisfaga a todas las cl´ausulas de  ? Este problema en cambio es polinomial. Even y otros [20] encuentran un algoritmo, lineal en el numero ´ de variables m´as el numero ´ de cl´ausulas, para resolverlo. Cook [15] prueba que cuando el numero ´ de literales de cada cl´ausula es  el problema es NP –completo. Este es conocido con el nombre de 3- SAT . 3- SATISFACIBILIDAD (3- SAT) ENTRADA: Un conjunto  de variables logicas ´ y un conjunto  de cl´ausulas sobre  , de manera que cada cl´ausula contiene exactamente tres literales. PREGUNTA: ¿Es posible encontrar alguna asignacion ´ de verdad para las variables de  que satisfaga a todas las cl´ausulas de  ? ´ Una variante de este problema sigue siendo NP–completo. Esta variante es conocida como problema 3- SAT PLANO y tambi´en fue estudiado por Cook. 3- SATISFACIBILIDAD PLANA (3- SAT PLANO) ENTRADA: Un conjunto  de variables logicas ´ y un conjunto  de cl´ausulas sobre  , de manera que cada cl´ausula contiene exactamente tres literales. Adem´as el grafo bipartito que tiene por v´ertices las variables y las cl´ausulas y las aristas son los pares   ! de forma que la ´ literal de la variable  es plano. cl´ausula ! contiene algun PREGUNTA: ¿Es posible encontrar alguna asignacion ´ de verdad para las variables de  que satisfaga a todas las cl´ausulas de  ? Otro de los problemas NP–completos, tambi´en presentado por Karp [48], que referenciamos

8

1. Preliminares

´ . en esta memoria es el conocido problema de la PARTICI ON ´ PARTICI ON





ENTRADA: Un conjunto finito  y para cada "   un valor # "  $ . PREGUNTA: ¿Existe algun ´ subconjunto    de manera que # "  # " ? ¼ ¼ En esta memoria utilizaremos exactamente una variante de este problema, tambi´en NP– ´ completo. Esta variante establece una agrupacion ´ de los elementos del conjunto  de la ins´ en parejas, de manera que cada parte de la particion ´ ha de contener a un tancia de PARTICI ON elemento de cada pareja. ´ -2 PARTICI ON ENTRADA: Un conjunto finito   "  "      "  y para cada "   un valor # "  $ . PREGUNTA: ¿Existe algun ´ subconjunto    de manera que # "  # " y tal ¼ ¼ que  contiene exactamente un elemento de cada pareja "  "    ?





Una coleccion ´ detallada de estos problemas puede encontrarse en el texto de Garey y Johnson [24]. En un intento de estudiar el espacio NP - P, de cuyo car´acter no vac´ıo se tienen fuertes sospechas, surgen distintas caracterizaciones de los problemas NP–completos. Cuando medimos la complejidad de un algoritmo, que actua ´ sobre un problem , lo hacemos en funcion ´ de Length , que nos da una medida de la extension ´ de  (habitualmente el numero ´  de elementos de la entrada). No obstante tambi´en es frecuente tratar de controlar la complejidad de un algoritmo a trav´es de otros elementos que nos den una idea de la magnitud de una instancia del problema. En este sentido se suele utilizar otra cota Max  que nos aporte alguna luz sobre cu´al es el tamano ˜ de los elementos de la instancia  . Entonces decimos que un algoritmo que resuelve el problema es un algoritmo pseudopolinomial si el tiempo de ejecucion ´ del mismo est´a acotado por una funcion ´ polinomica ´  de las dos variables Length  y Max . Obviamente todo algoritmo polinomial es un algoritmo pseudo-polinomial, el rec´ıproco por supuesto no es siempre cierto, el hecho de que un problema sea NP–completo no nos permite descartar que pueda ser resuelto mediante un algoritmo pseudo-polinomial. En muchos problemas de decision ´ la cota Max  est´a a su vez acotada por  Length  , siendo  un polinomio. Diremos que un problema de decision ´ es un problema num´erico si no es posible encontrar un polinomio  de forma que Max   Length  . Entonces si es un problema no num´erico y NP–completo no puede ser resuelto por un algoritmo pseudopolinomial (a menos que NP=P) ya que entonces ser´ıa polinomial. Sea un problema de decision ´ y   $ $ un polinomio, llamamos  al subproblema de que se obtiene limitando sus entradas a aquellas que verifican Max   Length  . ´ Un problema se dice que es fuertemente NP–completo si pertenece a NP y adem´as existe algun subproblema  que es NP–completo. Si es un problema fuertemente NP–completo no puede ser resuelto por un algoritmo pseudopolinomial (a menos que NP=P), ya que entonces el subproblema correspondiente se resolver´ıa por un algoritmo polinomial. La Figura 1.6 nos muestra una clasificacion ´ de los problemas pertenecientes a NP. Aparte de esta clase de problemas de decision ´ existen otros problemas que son tan duros como los NP–completos. a ellos va dirigido el concepto de problema NP–duro para problemas generales.

9

1.4. Algoritmos de aproximacion ´

NP P NP-completo Fuertemente NP-completo

Pseudo-P

Figura 1.6: Clasificacion ´ de problemas pertenecientes a NP.

Un problema de busqueda ´ est´a formado por un conjunto de entradas y para cada entrada un conjunto de soluciones. Diremos que un algoritmo resuelve un problema de busqueda ´ si dada una entrada devuelve respuesta negativa cuando no existe ninguna solucion ´ y en otro caso proporciona una de sus soluciones. Es posible generalizar el concepto de transformacion ´ polinomial para problemas de bus´ queda. Esta generalizacion ´ est´a motivada por la observacion ´ de que cualquier transformacion ´ polinomial entre dos problemas de decision ´ proporciona un algoritmo polinomial que resuelve el primero a partir de uno, tambi´en polinomial, que resuelve el segundo. y  , una reducci´on de Turing polinomial de en  es Dados dos problemas de busqueda ´ un algoritmo que resuelve utilizando una hipot´etica subrutina  para resolver  de forma que, si  fuera un algoritmo polinomial para  , entonces ser´ıa un algoritmo polinomial para . Si existe una reduccion ´ de Turing polinomial de en  escribiremos  . Un problema de busqueda ´ es NP–duro si existe un problema NP–completo % tal que % . ´ algoritmo polinomial que Se puede observar que un problema NP–duro no admite ningun lo resuelva, a menos que P=NP.

1.4.

Algoritmos de aproximaci´on

Hemos visto en secciones anteriores como con frecuencia aparecen problemas intratables desde un punto de vista algor´ıtmico. No obstante nos encontramos con la necesidad de, si no es posible obtener la solucion ´ exacta, al menos encontrar un m´etodo que nos aporte una solucion ´ lo suficientemente aproximada. En este sentido existen multitud de t´ecnicas que nos ofrecen la posibilidad de obtener dichas aproximaciones, como programaci´on din´amica, divide y vencer´as, aproximaci´on voraz, etc. [3, 2] Son especialmente utiles ´ estas t´ecnicas en el estudio de los problemas de optimizacion. ´ Un ´ viene caracterizado por los siguientes elementos: problema de optimizacion

10

1. Preliminares

 Un conjunto  de entradas.  Para cada entrada     un conjunto %  de posibles soluciones.  Una funcion ´  de medida, que asocia un numero ´ positivo a cada par  # , siendo    y #  %  .  Como objetivo pretende obtener, para cada entrada  , el mayor (o menor) valor de   # para todas las posibles soluciones #  %  . Muchos de estos problemas son NP–duros. En tales casos nos plantearemos encontrar t´ecnicas que nos ofrezcan soluciones que no est´en muy alejadas de la solucion ´ optima. ´ Cualquier solucion ´ posible &  %  podemos entender que es una soluci´on aproximada del problema y por tanto llamaremos algoritmo de aproximaci´on del problema a todo algoritmo capaz de obtener alguna solucion ´ posible del mismo. En la mayor´ıa de los problemas, por muy intratables que e´ stos pudieran llegar a ser, es f´acil encontrar algun ´ algoritmo polinomial de aproximacion. ´ No obstante es interesante disenar ˜ algoritmos polinomiales que aporten soluciones que est´en lo suficientemente “cerca”de la solucion ´ optima. ´ Una de las t´ecnicas, que utilizaremos en esta memoria, que nos aportan algoritmos de aproximacion ´ para determinados problemas es el m´etodo voraz. Este m´etodo es utilizado cuando los problemas tienen sus entradas formadas por un conjunto de elementos y hemos de obtener aquel subconjunto de tales elementos que maximize (o minimize) la funcion ´  de medida. Puede verse abundante informacion ´ sobre este m´etodo en el trabajo de Graham y otros [39]. Este m´etodo comienza con la ordenacion, ´ segun ´ algun ´ criterio, de los elementos de la entrada. Entonces comenzando con el conjunto vac´ıo, en cada paso anade ˜ un nuevo elemento a la solucion, ´ si este elemento aporta una solucion ´ posible, o lo descarta si su incorporacion ´ no ofrece una solucion ´ posible. ´ de los eleEl coste computacional de un algoritmo voraz es     por la ordenacion mentos de la entrada, m´as el coste que produce en cada paso saber si anadir ˜ un nuevo elemento aporta o no una solucion. ´ Logicamente ´ este coste depende de las caracter´ısticas del problema concreto. Estamos interesados en “controlar”el grado de acercamiento que tiene la solucion ´ aportada por un algoritmo a la solucion ´ optima ´ del problema. En este sentido veamos algunos conceptos que resultan de inter´es para el desarrollo de esta memoria. Por razones de comodidad, y debido a que los problemas estudiados en esta memoria lo son, supondremos que hablamos de problemas de maximizaci´on, es decir cuando el objetivo es obtener la solucion ´ que tiene una mayor medida. ´ posible Dado un problema de maximizacion ´ , una entrada  del problema y una solucion #  %  , llamamos error absoluto de la solucion ´ # a   #       # , siendo   el valor optimo ´ para la entrada  y   # la medida de la solucion ´ # . Un algoritmo  de aproximacion ´ de un problema diremos que es un algoritmo absoluto de aproximaci´on si existe una constante  tal que para toda entrada  se verifica    

 , siendo   la solucion ´ que aporta el algoritmo  para la entrada  . Igualmente se define el error relativo de una solucion ´ # para una entrada  al cociente

  # 

     #

 

Un algoritmo de aproximacion ´  se dice que es un algoritmo '-aproximado si para cualquier entrada  se tiene    

'.

1.5. Algoritmos gen´eticos

11

Otra manera de controlar el grado de acercamiento de una solucion ´ posible a la solucion ´ optima ´ es el rendimiento. Dada una instancia  de un problema y una solucion ´ posible #   # . para la entrada  , se llama rendimiento de la solucion ´ # al cociente   #    

Un algoritmo de aproximacion ´  se dice que es un algoritmo (-aproximado si para cualquier entrada  se tiene    

(. La clase APX est´a formada por aquellos problemas para los que existe un algoritmo (aproximado que corre en tiempo polinomial. Esta clase de problemas est´a contenida en NP y, a menos que P=NP, APX  NP. Veamos a continuacion ´ otro tipo especial de algoritmos de aproximacion. ´ Sea un problema de maximizacion ´ NP. Un algoritmo  se dice que es un esquema de aproximaci´on polinomial para si, para cada entrada  del problema y cada numero ´ racional ( ) , el algoritmo apli´ (-aproximada de  en tiempo polinomial en  . cado a  ( aporta una solucion Logicamente ´ debido a que estamos ante un problema intratable, el tiempo de computacion ´ del algoritmo no solo ´ depender´a del cardinal de la entrada, sino que tambi´en ser´a funcion ´ de (, de manera que cuanto m´as pequeno ˜ sea ( mayor ser´a el tiempo de ejecucion ´ del algoritmo. Aquellos problemas que admiten un esquema de aproximacion ´ polinomial constituyen la clase de problemas PTAS. Esta clase de problemas contiene a la clase APX, siendo esta inclusion ´ estricta, a menos que P = NP . Estas relaciones entre clases de problemas se ponen de manifiesto con ejemplos en el texto de Ausiello y otros [3]. Los conceptos aqu´ı definidos nos ser´an de utilidad en el estudio de los problemas de optimizacion ´ del tamano ˜ de las etiquetas del Cap´ıtulo 8.

1.5.

Algoritmos gen´eticos

En los ultimos ´ tiempos se ha encontrado gran utilidad en la aplicacion ´ de algoritmos evolutivos a problemas muy diversos como teor´ıa de juegos, problemas de transporte, optimizacion ´ de estructuras de datos, etc. ([38, 21, 5]). Este auge se ha traducido en la aparicion ´ de gran cantidad de art´ıculos sobre la materia. Dos grandes clases de t´ecnicas han sido generalmente utilizadas para aproximar un problema de optimizacion, ´ atendiendo a la naturaleza del problema a aproximar: t´ecnicas de aproximacion ´ local y global. Las t´ecnicas de aproximacion ´ local, como el m´etodo del gradiente, tienen el inconveniente de que solo ´ se ha probado su convergencia en problemas con funciones de buen comportamiento (unimodales), fallando cuando trabajamos con funciones que tienen varios optimos ´ locales. Una caracter´ıstica fundamental de estos m´etodos estriba en el hecho de que utilizan t´ecnicas basadas en la generacion ´ punto a punto de nuevas soluciones a partir de una dada, siguiendo por tanto una t´ecnica unidireccional. Las t´ecnicas de aproximacion ´ global, a las que pertenecen los algoritmos evolutivos, son utiles ´ para una mayor cantidad de problemas, incluso con problemas de varias soluciones optimas ´ locales, incluy´endose habitualmente t´ecnicas para evitar el fenomeno ´ de encasillamiento en un optimo ´ local, que no fuera optimo ´ global. Se diferencia de las t´ecnicas de aproximacion ´ local en que trabajan en cada paso con un conjunto de soluciones posibles y no con solo ´ una de ellas, y en cada iteracion ´ un nuevo conjunto de soluciones posibles es generado.

12

1. Preliminares

Si tratamos de aproximar la solucion ´ de un problema de optimizacion ´ , dada una entrada

   , tratamos de obtener el subconjunto    de mayor (o menor) medida   . Llamamos solucion ´ posible a cualquier subconjunto de  que verifique las condiciones del problema. Cuando trabajamos con un algoritmo evolutivo disponemos de una poblacion ´ inicial formada por un conjunto de soluciones posibles del problema y mediante algun ´ proceso de seleccion ´ vamos reproduciendo diferentes poblaciones en sucesivas generaciones. Las t´ecnicas de selecci´on y reproducci´on de los nuevos individuos deben estar basadas en el valor , que llamaremos fitness de los individuos de la poblacion. ´ El Programa 1.1 muestra la forma general de un algoritmo evolutivo, siguiendo la sintaxis de un lenguaje estructurado.

01 procedure algoritmo evolutivo 02 begin 03 t :=0; 04 inicializar  * ; 05 evaluar  * ; 06 while (not criterio de parada) do 07 begin 08 t:=t+1; 09 seleccionar  * a partir de *   ; 10 alterar  * ; 11 evaluar  * ; 12 end 13 end Programa 1.1: Algoritmo evolutivo

Los algoritmos evolutivos son algoritmos probabil´ısticos, de manera que las funciones inicializar, seleccionar y alterar tienen una fuerte componente aleatoria. Una clase de estos algoritmos evolutivos, conocida como algoritmos gen´eticos est´an basados en la teor´ıa Darwiniana de la evolucion ´ de las especies, donde se afirma la supervivencia de los “mejores”individuos de cada especie, y en la transmision ´ gen´etica, desarrollada por Mendel. En ellos los mejores individuos de cada generacion ´ se reproducen, mientras que los peores “mueren”. Para realizar esta seleccion ´ es utilizada una funci´on objetivo, que ayudar´a a simular la seleccion ´ natural de la teor´ıa Darwiniana. Un algoritmo gen´etico, como todo algoritmo evolutivo, ha de tener los siguiente cinco componentes [54]: 1. Una representacion ´ gen´etica de las soluciones posibles del problema (codificacion). ´ 2. Una manera de crear una poblacion ´ inicial de soluciones posibles (genomas y poblacion). ´ 3. Una funcion ´ que evalue ´ a los individuos y haga el efecto de la seleccion ´ natural, clasificando las soluciones atendiendo a su “fortaleza”(funcion ´ objetivo). 4. Operadores gen´eticos que permitan alterar la composicion ´ de las soluciones (reproduccion). ´ 5. Valores de varios par´ametros que utiliza el algoritmo gen´etico.

1.5. Algoritmos gen´eticos

13

A continuacion ´ describimos cada uno de estos componentes: Codificacion ´ Dada una entrada del problema, un algoritmo gen´etico debe poder alcanzar una solucion ´ del problema para dicha entrada. Las posibles soluciones del problema deben poder representarse de alguna manera en el algoritmo gen´etico mediante un conjunto de par´ametros, a menudo llamados “individuos” o “genomas”. Un genoma, o coleccion ´ de genes, es una estructura que representa una solucion ´ del problema y debe ser susceptible de ser sometida al proceso evolutivo. En t´erminos gen´eticos, este conjunto de par´ametros constituye el llamado “genotipo”y la codificacion ´ para una determinada solucion ´ constituye el llamado “fenotipo”. El comportamiento de cada individuo ser´a determinado por la aplicacion ´ de la funcion ´ objetivo a dicho fenotipo. Este componente es quiz´a el m´as decisivo para poder garantizar el e´ xito del algoritmo gen´etico, de ah´ı que su desarrollo tenga que realizarse con sumo cuidado. Genoma y poblacion ´ Como hemos indicado cada genoma viene determinado por las caracter´ısticas del problema, siendo el numero ´ total de sus genes dependiente del numero ´ de par´ametros elegidos para la codificacion ´ de la solucion. ´ La poblacion ´ estar´a formada por un conjunto de genomas. El numero ´ total de genomas que hemos de elegir para cada poblacion ´ debe ser tal que tengamos suficiente diversidad para poder garantizar la eficiencia del algoritmo y que este produzca buenos hijos durante el proceso de evolucion. ´ La poblacion ´ inicial se obtendr´a utilizando algun ´ generador de numeros ´ aleatorios, de acuerdo con la codificacion ´ elegida. Funcion ´ objetivo Este componente es el que mayor relacion ´ directa tiene con el problema concreto a estudiar, y es uno de los apartados donde parece m´as necesaria la aportacion ´ del investigador que estudia el problema concreto. Esta funcion ´ debe poder ayudarnos a realizar la mejor seleccion ´ posible de individuos que deber´an reproducirse, de manera que asignar´a valores m´as altos a las soluciones cuanto m´as se acerquen a la solucion ´ optima. ´ De esta forma atendiendo a esta funcion ´ nos permitir´a hablar de individuos “buenos”, con gran probabilidad de salir triunfantes y se elegidos para una reproduccion ´ posterior, e individuos “malos”, que tienen gran probabilidad de ser destinados a desaparecer. Reproduccion ´ En esta fase del algoritmo gen´etico han de ser elegidos aleatoriamente de la poblacion ´ unos “padres”, de forma que los individuos para los que la funcion ´ objetivo sea mayor tengan m´as probabilidad de ser elegidos. Estos padres ser´an combinados, mediante dos nuevos operadores, llamados operadores de cruce y mutaci´on. Una vez elegidos dos individuos de la poblacion ´ como padres de la generacion ´ posterior, e´ stos pueden ser sometidos al proceso de cruce o pasar intactos a la generacion ´ siguiente. Esta decision ´ se har´a aleatoriamente y para ello estableceremos un par´ametro general del algoritmo

14

1. Preliminares

gen´etico, llamado probabilidad de cruce. Una vez realizado el proceso de cruce, se llevar´a a cabo el proceso de mutacion, ´ actuando e´ ste sobre genomas individualmente. Cada uno de los genes de cada individuo es susceptible de ser sometido a mutacion. ´ Esta eleccion ´ se har´a aleatoria en funcion ´ del par´ametro general probabilidad de mutaci´on. Generalmente la probabilidad de mutacion ´ suele ser mucho m´as pequena ˜ que la probabilidad de cruce. El fenomeno ´ de cruce es considerado el m´as importante del proceso de reproduccion, ´ siendo el de mutacion ´ unicamente ´ destinado a garantizar que cualquier solucion ´ del problema tiene probabilidad no nula de aparecer en el proceso. Existen varias modalidades de operadores de cruce y de mutacion. ´ Algunas de estas modalidades son las siguientes:









 Cruce en un punto: Dados dos individuos +            y +            , elegi(  ( ,  y obtenemos los hijos intercambiando los genes a mos al azar un numero ´ partir del que ocupa la posicion ´ (:

 

 

+                      +                     



 

       Cruce en dos puntos: Dados dos individuos +         y +         , +                       +                     

elegimos al azar dos numeros ´ ( # ( ( los genes de la siguiente forma:













, # , ) y obtenemos los hijos intercambiando

 

 

+                                +                               



 

 

+                                 +                               





 mutaci´on por substituci´on: Sea +            un individuo. Elegimos al azar un ( ( ( ) y un nuevo gen  y sustituimos el gen   por el nuevo gen  : numero ´



+                           







 +                       







 mutaci´on por intercambio: Sea +            un individuo. Elegimos al azar dos numeros ´ ( # ( ( # ) e intercambiamos los genes que ocupan las posiciones ( y #.



+                               







 +                               



15

1.5. Algoritmos gen´eticos

Los operadores de cruce y mutacion ´ m´as utilizados habitualmente son los de cruce en un punto y mutacion ´ por substitucion, ´ respectivamente. El proceso evolutivo Una vez definidos los distintos pasos del proceso evolutivo, podemos redefinir el algoritmo evolutivo para dar lugar al algoritmo gen´etico descrito en el Programa 1.2. En e´ l aparece la variable * como contador de generaciones, que suele ser utilizado habitualmente como criterio de parada. 01 procedure algoritmo e´ gentico 02 begin 03 t :=0; 04 inicializar  * ; 05 evaluar  * ; 06 while (not criterio de parada) do 07 begin 08 t:=t+1; 09 seleccionar  * a partir de  *   ; 10 Efectuar el proceso de cruce en  * ; 11 Efectuar el proceso de omutacin ´ en  * ; 12 evaluar  * ; 13 end 14 end Programa 1.2: Algoritmo gen´etico La Figura 1.7 muestra el aspecto t´ıpico de la evolucion ´ del mejor fitness de cada generacion ´ y la media del mismo en funcion ´ del numero ´ de generaciones. Este ejemplo corresponde a ´ se una ejecucion ´ del algoritmo gen´etico para el problema M AX N- SBW cuya implementacion describe en la Seccion ´ 10. Holland [42] y Goldberg [38] desarrollaron los fundamentos teoricos ´ de la teor´ıa de los algoritmos gen´eticos, usando la teor´ıa de esquemas. Para ello utilizaremos en la codificacion ´ un alfabeto binario e introducen el concepto de esquema. Un esquema es una plantilla que examina similitudes entre los genomas de una poblacion. ´ Si codificamos los genes de un individuo con  y , para introducir los esquemas utilizaremos, adem´as de los dos d´ıgitos binarios, el car´acter comod´ın , para representar cualquiera de ellos. Un esquema ser´a una cadena de elementos del conjunto    de igual extension ´ que el genotipo. As´ı por ejemplo el esquema     representa a cualquiera de los genomas:    ,    ,     y    . Un esquema  tiene dos par´ametros asociados. La longitud Æ  es la diferencia entre los elementos fijos primero y ultimo ´ y el orden   es el numero ´ de posiciones fijas del mismo, es decir el numero ´ de elementos menos el numero ´ de elementos comod´ın. El ejemplo anterior tiene longitud Æ    y orden    . El primero de estos par´ametros es importante para preservar la supervivencia respecto de los cruces, mientras que el segundo de ellos preserva la supervivencia en las mutaciones. ´ de individuos que responden al esquema  en la generacion ´ Si llamamos   * al numero *, sea  la media del fitness de la poblacion ´ en la generacion ´ * y  la media de todos los individuos de la poblacion ´ en la generacion ´ * que responden al esquema  . Goldberg prueba

16

1. Preliminares

Algoritmo genético en el problema MaxN-SBW 30

25

Fitness

20

15 Mejor individuo Media población

10

5

0 0

5

10

15

20

25

30

35

40

45

50

55

60

65

70

75

80

85

90

95

100

Generaciones

Figura 1.7: Evolucion ´ del algoritmo gen´etico en el problema M AX N- SBW. que el numero ´ de individuos que responden al esquema  en la generacion ´ siguiente *   es acotado por: Æ 

   *     *

        *





siendo  y  las probabilidades de mutacion ´ y cruce, respectivamente. Este resultado nos permite afirmar que los esquemas cortos, de bajo orden y por debajo de la media disminuyen exponencialmente al aumentar el numero ´ de generaciones en un algoritmo gen´etico. Este resultado es conocido como Teorema de los Esquemas y es la base de la convergencia de los algoritmos gen´eticos. Holland afirma que la forma optima ´ de explorar el espacio de soluciones consiste en asignar a los individuos probabilidades de ser reproducidos proporcionales a la razon ´ de su fitness frente al resto de la poblacion, ´ es decir proporcional al “fitness relativo”. El hecho de que cada individuo pertenece a un gran numero ´ de esquemas diferentes que son procesados simult´aneamente (este fenomeno ´ es llamado paralelismo impl´ıcito) explica el buen comportamiento de los algoritmos gen´eticos. Este hecho es conocido con el nombre de Hipotesis ´ de los Componentes B´asicos: Un algoritmo gen´etico trata de encontrar un comportamiento cercano al o´ ptimo mediante la yuxtaposici´on de esquemas cortos, de bajo orden y alto comportamiento (fitness superior a la media), llamados componentes b´asicos. Mediante esta hipotesis, ´ Goldberg afirma que el rendimiento de un algoritmo gen´etico depende de su capacidad de encontrar estos componentes b´asicos. Es en esta direccion ´ en la

17

1.6. El problema SBW

que hay que dirigir los esfuerzos a la hora de codificar el problema, de manera que favorezca su formacion, ´ teniendo en cuenta que existe una pequena ˜ interaccion ´ entre los genes. Esta relacion ´ entre genes puede dar lugar a efectos colaterales, afectando al comportamiento del algoritmo gen´etico. Este fenomeno ´ se conoce con el nombre de ep´ıstasis.

1.6.

El problema SBW

El problema SBW de emparejamiento ortogonal simple, que fue introducido por Raghavan y otros [61], resulta ser el punto de partida de la clase de problemas de conexiones ortogonales, que son objeto de estudio en esta memoria. En este problema disponemos de parejas de puntos en el plano y tratamos de decidir si pueden ser unidos, mediante trazados ortogonales con a lo sumo un codo, sin intersecciones entre los trazados. Un trazado ortogonal es un camino entre dos puntos  y en el plano, contenido en la malla rectangular del plano (grid). A los puntos donde se produce cambio de direccion ´ se le denomina codo. EMPAREJAMIENTO ORTOGONAL SIMPLE ( SBW )( ) ENTRADA: Un conjunto  de parejas de puntos en el plano. PREGUNTA: ¿Es posible unir todas las parejas de puntos mediante trazados ortogonales con a lo sumo un codo, sin que se produzcan intersecciones entre los trazados? Raghavan y otros [61] prueban que existe un algoritmo cuadr´atico que lo resuelve. Para ello ˜ detalle establecen una reduccion ´ al problema de satisfacibilidad 2- SAT. Veamos un pequeno de este algoritmo. Sea una entrada del problema            formada por  parejas de puntos en el plano. Para unir cualquier pareja de puntos en el plano existen dos posibles trazados ortogonales con a lo sumo un codo, un trazado “superior”y un trazado “inferior”, como indica la Figura 1.8.

inferior (w i)

superior (w i)

Figura 1.8: Union ´ de una pareja de puntos mediante trazados ortogonales con a lo sumo un codo. Para establecer la conexion ´ con el problema 2- SAT se reduce cada pareja de puntos   a una variable, correspondiendo cada uno de sus trazados uno de sus literales. Por ejemplo el trazado superior corresponde al literal afirmado   y el inferior al literal negado   . Dos parejas de puntos, con sus correspondientes trazados, presentan diferentes posiciones relativas. Cada una de estas posiciones relativas son equivalentes a una formula ´ logica, ´ con dos variables y a lo sumo dos cl´ausulas. La Figura 1.9 muestra, a modo de ejemplo, algunas de estas posibilidades.

18

1. Preliminares

a

b

a

b

a

b

b

a b a

b

b

a (a

b)

(a

a b)

a

a

Figura 1.9: Formulas ´ logicas ´ que simbolizan la interaccion ´ de dos parejas de puntos. Obteniendo todas las cl´ausulas a que dan lugar las  posibles interacciones de las parejas de puntos tendremos una entrada del problema 2- SAT con un numero ´ lineal de variables y un numero ´ cuadr´atico de cl´ausulas. Por lo tanto resoluble en tiempo   (v´ease [20]). Raghavan y otros prueban que esta entrada es satisfacible si, y solo ´ si, la entrada del problema SBW es realizable. El problema SBW da lugar a la clase de problemas de trazados ortogonales (en [58] se presenta una amplia coleccion ´ de e´ stos). Cabe destacar la generalizacion ´ que se lleva a cabo en [29], donde se estudia el problema SBW en otras superficies diferentes al plano. Raghavan y otros [61] prueban que el problema de optimizacion ´ del numero ´ de parejas de puntos que pueden ser unidos sin intersecciones con trazados ortogonales con a lo sumo un ´ 9.4 presentamos una codificacion ´ para aproxicodo, M AX N– SBW, es NP–duro. En la Seccion mar este problema mediante algoritmos gen´eticos, utilizando para ello el algoritmo cuadr´atico descrito anteriormente para resolver el problema SBW.

I

Etiquetado de puntos alineados

21

Tratamos en esta primera parte de la memoria de los problemas de etiquetado de puntos situados sobre una l´ınea con etiquetas rectangulares. En un problema general de etiquetado disponemos de un conjunto de puntos situados en el plano y una etiqueta asociada a cada punto y nos planteamos la posibilidad de colocar la etiqueta “cercana” a cada punto de forma que no se produzcan intersecciones entre ellas. Los problemas de etiquetado aqu´ı estudiados son clasificados atendiendo a dos caracter´ısticas diferentes. Por un lado podemos clasificarlos atendiendo a la posicion ´ de los puntos en el plano y por otro lado a las caracter´ısticas de las etiquetas, como forma y ubicacion ´ de las mismas. Con respecto a la primera caracter´ıstica, los problemas tratados son problemas de etiquetado de puntos situados sobre una l´ınea, considerando los casos en que esta l´ınea sea horizontal (vertical) u oblicua. Atendiendo a la segunda caracter´ıstica tenemos dos posibilidades: la forma y la ubicacion ´ de la etiqueta. Respecto a la forma estudiaremos distintos problemas de etiquetado con diferentes modelos de etiquetas rectangulares, comenzando con el caso m´as particular en que todas las etiquetas sean cuadradas e iguales y mediante un proceso de generalizacion ´ ir estudiando casos m´as generales, como etiquetas cuadradas de diferente tamano, ˜ rect´angulos de igual tamano, ˜ etc. Por otro lado tambi´en hemos clasificado los problemas estudiados en funcion ´ de la ubicacion ´ de la etiqueta sobre el punto. En este sentido hemos considerado dos tipos de etiquetas: etiquetas fijas y etiquetas deslizantes. En el primero de los casos las etiquetas (siempre rectangulares) pueden ser colocadas de forma que el punto asociado quede situado sobre cualquiera de los v´ertices del rect´angulo, mientras que cuando hablamos de etiquetas deslizantes e´ stas pueden ser situadas de forma que el punto asociado quede sobre cualquiera de los puntos del contorno del rect´angulo. La diferencia fundamental entre estos dos tipos de problemas radica en el hecho de que si bien en el caso de las etiquetas fijas e´ stas pueden situarse en un ´ de numero ´ finito () de posiciones diferentes, en el caso de etiquetas deslizantes este numero posiciones posibles de ubicacion ´ de la etiqueta no es finito. Nos ocupamos por tanto en esta parte de la memoria del estudio de la complejidad computacional de tales problemas. Despu´es de un cap´ıtulo introductorio, presentamos un cap´ıtulo dedicado al estudio de los problemas de decision ´ en cada uno de los casos senalados ˜ anteriormente. Motivados por la necesidad de proceder a etiquetar los puntos aun en el caso de que el problema no tenga solucion, ´ o a ofrecer un etiquetado lo m´as claro posible en el caso de que el problema s´ı tenga solucion, ´ dedicamos otro cap´ıtulo al estudio de los problemas correspondientes de optimizacion ´ del tamano ˜ de las etiquetas. En algunos de estos problemas ofreceremos algoritmos polinomiales que los resuelven y en otros casos probaremos que los problemas son NP–completos.

CAP´ITULO

2

´ Introduccion

En multitud de aplicaciones, como trabajos relacionados con la cartograf´ıa, trazado de mapas, organigramas, dibujos de grafos, diseno ˜ de circuitos impresos, etc., nos encontramos con la necesidad de ofrecer informacion ´ sobre distintos elementos situados en un gr´afico. Adem´as en los ultimos ´ tiempos cobra un enorme auge la tecnolog´ıa de la composicion ´ y aumenta considerablemente la informacion ´ que tiene que ser visualizada en cualquier gr´afico. En este sentido, se estima que en el trazado de mapas la tarea de situar informacion ´ sobre los elementos del mapa requiere m´as de la mitad del tiempo empleado en su fabricacion ´ [55]. Por este motivo cobra un gran inter´es el desarrollo de algoritmos que resuelvan esta tarea de etiquetar determinados elementos del gr´afico con informacion ´ sobre los mismos, lo que ha motivado el inter´es de gran cantidad de investigadores del a´ rea de la Geometr´ıa Computacional [22, 56, 52, 64], por sus aplicaciones en la Cartograf´ıa [7, 41, 43, 18] y en la generacion ´ de gr´aficos mediante ordenadores [13, 12]. Como muestra del inter´es que este campo ha despertado podemos destacar que la American Computing Machinery, en su informe Computational Geometry Impact Task Force [10], lo ha senalado ˜ como una de las m´as importantes a´ reas de investigacion. ´ Para constatar la importancia que da al tema la comunidad cient´ıfica internacional basta observar la abundante produccion ´ de trabajos producidos ultimamente ´ sobre la materia [28, 27, 68, 69, 17]. Una muy detallada bibliograf´ıa sobre etiquetado puede encontrarse en la p´agina web [67]. Una buena t´ecnica de etiquetado debe recoger todas aquellas caracter´ısticas necesarias para la mejor comprension ´ del gr´afico. Las etiquetas transmiten informacion ´ sobre los elementos del gr´afico, resaltadas por caracter´ısticas como el estilo, el tamano ˜ y la ubicacion ´ de las etiquetas. Es frecuente utilizar distintos tipos de fuentes para resaltar distintos elementos de un mapa, por ejemplo letras en it´alica para r´ıos, montanas, ˜ etc. As´ı mismo el tamano ˜ de la etiqueta debe servir para potenciar los elementos m´as importantes del gr´afico, etc. Los primeros intentos de encontrar una codificacion ´ que permita afrontar la busqueda ´ de la solucion ´ del problema aparecen en el trabajo elaborado por el Institut Geographique National de Par´ıs [37] en  y en un primer trabajo debido a Imhof [43] en el que establecen cu´ales han de ser los principales elementos para una “buena”calidad del etiquetado. Estos elementos est´an basados en criterios est´eticos, siendo algunos de ellos los siguientes:

 La informacion ´ ofrecida por el etiquetado ha de ser legible, es decir el tamano ˜ de las etiquetas debe ser lo suficientemente grande como para que puedan ser le´ıdas sin nece23

24

2. Introduccion ´

sidad de aumentarlas artificialmente.

 El etiquetado debe evitar la ambiguedad. ¨ Es decir las etiquetas deben estar lo suficientemente proximas ´ a los objetos a etiquetar como para que no se confunda la informacion. ´ Podemos formular el problema general de etiquetado (de decision) ´ de la forma siguiente: PROBLEMA GENERAL DE ETIQUETADO : ENTRADA: Un conjunto de  objetos en un gr´afico y para cada uno de ellos una etiqueta con informacion. ´ PREGUNTA: ¿Se puede encontrar una posicion ´ para cada etiqueta cercana al objeto a que se refiere, sin que se produzcan intersecciones entre ellas? Debido a la dificultad del problema general es necesario realizar una clasificacion ´ del mismo. Esta clasificacion ´ la podemos hacer atendiendo a los tres elementos que aparecen en su enunciado. Es decir, podemos clasificar los problemas de etiquetado atendiendo a qu´e tipo de objetos hay que etiquetar (puntos, segmentos, regiones planas, etc.), segun ´ las etiquetas que utilicemos para ello (su tamano, ˜ forma, a´ rea, etc) y segun ´ la ubicacion ´ que e´ stas han de tener con respecto a los objetos a etiquetar (fijas en un punto, colindantes, etc.). En muchas de las ocasiones los elementos a etiquetar son puntos (ciudades en un mapa, estaciones en redes de metro, diseno ˜ de circuitos, etc) y hemos de colocar etiquetas rectangulares que contienen la informacion ´ sobre los puntos. Lejos de lo que pudiera parecer con esta restriccion, ´ como nos encargaremos de probar en esta memoria, existen situaciones en los que el problema sigue siendo intratable. En los problemas de etiquetado de puntos con etiquetas rectangulares nos encontramos con dos modelos diferentes de etiquetado. Por un lado tenemos el modelo, introducido por Formann y Wagner [22], que llamaremos de etiquetas fijas y en el que cada etiqueta puede ser colocada en un numero ´ determinado de puntos. El caso m´as frecuente se refiere a la colocacion ´ de las etiquetas de tal manera que el punto quede ubicado en alguno de los cuatro v´ertices del rect´angulo. Existen muchos trabajos que estudian este modelo de etiquetado [65, 66]. Por otro lado tenemos el modelo conocido como etiquetado con etiquetas deslizantes que, introducido por Van Kreveld y otros [64], considera la posibilidad de que cada etiqueta pueda ser colocada de forma que el punto quede situado sobre cualquiera de los puntos del contorno de la etiqueta. Esta nueva forma de etiquetado introduce como novedad el hecho de que cada etiqueta puede ser situada en un numero ´ no finito de posiciones. Los problemas generales de etiquetado de puntos con etiquetas rectangulares son intratables, con cualquiera de los dos modelos de etiquetado (v´ease [22] y [64]). Por este motivo numerosos investigadores dirigen sus esfuerzos en la l´ınea de introducir restricciones en el problema que lo hacen m´as abordable. As´ı por ejemplo se ha estudiado el etiquetado de puntos con etiquetas rectangulares de a´ rea fija pero longitud y anchura flexibles llamadas etiquetas el´asticas [45] o el problema de optimizacion ´ del tamano ˜ de etiquetas rectangulares de proporciones : , con cuatro posiciones fijas [60]. Frecuentemente los objetos a etiquetar son puntos situados sobre una l´ınea recta –como en etiquetado de planos de redes de metro (v´ease la Figura 4), diseno ˜ de diagramas t´ecnicos o circuitos impresos (v´ease la Figura 5), etc–. Por este motivo es interesante el estudio de los problemas de etiquetado de puntos alineados con etiquetas rectangulares. En este aspecto han aparecido algunos estudios de esta clase de problemas. Por ejemplo han sido estudiados [49, 57] algunos problemas de etiquetado de puntos situados sobre una l´ınea horizontal, con la restriccion ´ de que todas las etiquetas han de colocarse por encima de la l´ınea. Esta clase de problemas ser´a objeto de estudio en esta primera parte de la memoria. Muchas veces los problemas de decision ´ de etiquetado son intratables desde el punto de vista computacional o, siendo resolubles, la solucion ´ es negativa. No obstante seguimos te-

25

niendo la necesidad de colocar las etiquetas para identificar los objetos del gr´afico. Por este motivo nos planteamos el problema de obtener el “mejor etiquetado posible”. Esta optimizacion ´ puede hacerse en dos direcciones diferentes. Por un lado podemos mantener el tamano ˜ que tenemos a priori para las etiquetas y optimizar el numero ´ de ellas que pueden ser ubicadas sin intersecciones o, por el contrario, podemos tratar de encontrar el mayor tamano ˜ de las etiquetas que hacen posible el etiquetado completo. De esta forma surgen los dos problemas generales de optimizacion ´ de etiquetado, formulados a continuacion: ´ ´ DEL TAMA NO ˜ DE LAS ETIQUETAS: M AXIMIZACI ON ENTRADA: Un conjunto de  objetos en un gr´afico y para cada uno de ellos una etiqueta con informacion. ´ ´ PREGUNTA: ¿Cu´al ser´a el mayor factor Æ de manera que se puede encontrar una posicion para cada etiqueta, multiplicada por dicho factor, cercana al objeto a que se refiere, sin que se produzcan intersecciones entre ellas? ´ DEL N UMERO ´ M AXIMIZACI ON DE ETIQUETAS : ENTRADA: Un conjunto de  objetos en un gr´afico y para cada uno de ellos una etiqueta con informacion. ´ PREGUNTA: ¿Cu´al ser´a el mayor subconjunto de etiquetas para las que se puede encontrar una posicion ´ para cada etiqueta cercana al objeto a que se refiere, sin que se produzcan intersecciones entre ellas? Estos dos problemas son NP–duros [23, 22], as´ı como la mayor´ıa de los problemas que surgen imponiendo restricciones a los mismos, de ah´ı que investigadores del a´ rea de cartograf´ıa, dibujo de grafos y geometr´ıa computacional hayan sugerido algunas heur´ısticas para atacar los problemas, basadas por ejemplo en sistemas expertos [1], programacion ´ digital [70], algoritmos de aproximacion ´ [22, 57, 60], etc. En esta primera parte de la memoria nos ocuparemos de los problemas de optimizacion ´ del tamano ˜ de las etiquetas en etiquetado de puntos alineados con etiquetas rectangulares, mientras que los problemas de optimizacion ´ del numero ´ de etiquetas ser´an objeto de estudio en la segunda parte de esta memoria. Como dec´ıamos, en esta primera parte de la memoria nos centraremos en el estudio de los problemas de etiquetado de puntos alineados con etiquetas rectangulares, tanto en el modelo de etiquetado con etiquetas fijas como con etiquetas deslizantes. Consideraremos que las etiquetas son topologicamente ´ abiertas, es decir est´a permitido que dos etiquetas est´en en contacto. Cuando tratamos de colocar etiquetas con informacion ´ sobre puntos el tamano ˜ de las etiquetas viene provocado por la extension ´ del texto a colocar en ellas. Por este motivo resulta frecuente que la anchura de las etiquetas sea variable, mientras que la altura sea constante. Teniendo en cuenta que si los puntos se encuentran situados sobre una l´ınea horizontal la altura de las etiquetas no tiene relevancia para el estudio del problema, mientras que si por el contrario los puntos est´an situados sobre una l´ınea vertical es la anchura de las etiquetas la que no tiene trascendencia para la resolucion ´ del problema. Por ello es de inter´es estudiar tanto problemas de etiquetado con etiquetas iguales (en este apartado se encontrar´ıan los problemas de etiquetado de puntos sobre una l´ınea horizontal) como de etiquetado con etiquetas diferentes (situaciones que se presentar´ıan cuando los puntos se encuentran sobre una l´ınea horizontal). Por esta razon ´ dentro de cada modelo de etiquetado estudiaremos los problemas concernientes a etiquetas iguales y a etiquetas diferentes. En este sentido realizaremos un proceso de generalizacion ´ en los tamanos ˜ de las etiquetas: etiquetado con etiquetas cuadradas iguales, cuadradas diferentes, rectangulares de igual tamano, ˜ etc.

26

2. Introduccion ´

En el Cap´ıtulo 3 estudiaremos los problemas de decision ´ de etiquetado de puntos alineados con etiquetas rectangulares. El proceso utilizado para abordar los distintos problemas es similar y est´a basado en un algoritmo incremental descrito en la Seccion ´ 3.2. Los problemas los hemos clasificado atendiendo al tipo de l´ınea en el que est´an ubicados los puntos, dedicando la Seccion ´ 3.3 al caso de puntos situados sobre una l´ınea horizontal (los resultados ser´ıan equivalentes para puntos situados sobre una l´ınea vertical) y la Seccion ´ 3.4 al etiquetado de puntos sobre una l´ınea oblicua. A continuacion ´ estudiaremos en el Cap´ıtulo 4 los problemas de optimizacion ´ del tamano ˜ de las etiquetas correspondientes a los problemas estudiados en el cap´ıtulo anterior, tanto en el caso de etiquetas situadas sobre una l´ınea horizontal como etiquetas situadas sobre una l´ınea oblicua. Por ultimo, ´ y a modo de resumen, presentamos en el Cap´ıtulo 5 los distintos resultados obtenidos, as´ı como aquellos problemas que ser´ıa interesante abordar en trabajos futuros.

CAP´ITULO

3

´ en etiquetado de puntos alineados Problemas de decision

Estudiaremos en este cap´ıtulo los problemas de decision ´ de etiquetado de puntos alineados con etiquetas rectangulares, tanto en el caso de etiquetas que han de ser colocadas de forma que el punto quede situado en alguno de los v´ertices del rect´angulo (etiquetas fijas) como si las etiquetas pueden ser situadas de forma que el punto quede ubicado en alguno de los lados del rect´angulo (etiquetas deslizantes). El estudio de todos los problemas lo llevaremos a cabo mediante un mismo algoritmo de tipo incremental. A la presentacion ´ de este algoritmo dedicamos la Seccion ´ 3.2. En las secciones siguientes realizamos el estudio de los diferentes problemas, agrupando dichos problemas segun ´ que el tipo de l´ınea en el que est´an situados los puntos. En la Seccion ´ 3.3 nos centramos en el estudio de los problemas de etiquetado de puntos situados sobre una l´ınea horizontal y en la Seccion ´ 3.4 los derivados del etiquetado de puntos situados sobre una l´ınea oblicua.

´ Introduccion

3.1.

Cuando nos disponemos a situar informacion ´ sobre mapas de carreteras, redes de l´ıneas de metro, diagramas de circuitos, etc., es frecuente que los puntos sobre los que necesitamos situar dicha informacion ´ se encuentren alineados. Este hecho nos motiva a estudiar los problemas de etiquetado de puntos sobre una l´ınea recta y en un intento de generalizar progresivamente el problema, comenzaremos estudiando los casos en que los puntos se encuentran en una l´ınea horizontal, para m´as adelante estudiar el caso en que los puntos est´an situados sobre una l´ınea oblicua. En cualquiera de estos casos, y segun ´ la posicion ´ que puede ocupar la etiqueta con informacion ´ sobre el punto, los problemas a estudiar se dividir´an en dos tipos: aquellos en los que la etiqueta pueda ser colocada de manera que el punto coincida con alguno de sus v´ertices, en cuyo caso hablaremos de etiquetas fijas, y aquellos casos en los que la etiqueta pueda situarse de manera que el punto coincida con alguno de los puntos de los lados de la etiqueta y diremos que se trata de etiquetas deslizantes. La diferencia fundamental entre estos dos tipos de problemas estriba en el hecho de que si bien en los primeros las etiquetas pueden ser colocadas en 27

28

3. Problemas de decision ´ en etiquetado de puntos alineados

un numero ´ finito de posiciones, las etiquetas deslizantes pueden ser colocadas en un numero ´ infinito de posiciones diferentes, como se aprecia en la Figura 3.1

2 3

P P

1 P

4

P

(a) P

(b)

Figura 3.1: Posiciones de etiquetas fijas (a) y deslizantes (b)

En funcion ´ de la cantidad o tipo de informacion ´ que debe contener la etiqueta, la forma y dimensiones de e´ sta puede variar. Tenemos as´ı tres par´ametros que caracterizar´an al problema de etiquetado. Para designar cada problema utilizaremos una notacion ´ que resalte los elementos diferen´ ”. En primer lugar “L ´I NEA”se refiere al tipo ciadores senalados: ˜ “L ´I NEA [ ETIQUETA ]– POSICI ON ´ ”para de l´ınea en la que est´an situados los puntos, as´ı utilizaremos “H [ ETIQUETA ]– POSICI ON problemas de etiquetado de puntos que est´an situados sobre una l´ınea horizontal y para los ´ ”. casos de puntos sobre una l´ınea oblicua, “O [ ETIQUETA ]– POSICI ON El elemento “ETIQUETA”indicar´a el tipo de etiqueta a utilizar. los casos que estudiare´ ”cuando todas las etiquetas son cuadrados iguales, “L ´I NEA mos ser´an “L´I NEA C – POSICI ON ´ ”cuando e´ stas son rect´angulos de entre  modelos diferentes posibles (el caso R (m)– POSICI ON ´ ” corresponder´a al caso en que todas las etiquetas son recparticular “L ´I NEA R (1)– POSICI ON ´ ”si son rect´angulos diferentes de altura , tangulares e iguales entre s´ı), “L ´I NEA 1 R – POSICI ON no indic´andose ningun ´ valor para este elemento si todas las etiquetas fueran rectangulares sin ´ ”. ninguna limitacion, ´ “L´I NEA – POSICI ON ´ ”se refiere a la posicion ´ que puede tomar la etiqueta soPor ultimo ´ el elemento “POSICION bre el punto en cuestion, ´ siendo “L´I NEA [ ETIQUETA ]–4 P”si el punto puede quedar ubicado en cualquiera de los v´ertices de la etiqueta y “L ´I NEA [ ETIQUETA ]–4 S”si pudiera quedar ubicado sobre cualquiera de los lados de la misma. Por ejemplo “H –4 P”es utilizado para referirnos al problema “ETIQUETAS FIJAS SOBRE UNA L´I NEA HORIZONTAL ”, de etiquetado de puntos sobre una l´ınea horizontal, utilizando etiquetas rectangulares de cualquier tamano, ˜ y de forma que las etiquetas pueden ser colocadas de manera que el punto coincida con alguno de los v´ertices del rect´angulo, “oc–4S”para referirnos al problema de decidir si puede ser ubicado un cuadrado de lado  sobre cada uno de los puntos situados sobre una l´ınea oblicua, de manera que dicho punto quede sobre algunos de los lados del cuadrado, etc.

3.2.

´ del algoritmo incremental Descripcion

3.2. Descripcion ´ del algoritmo incremental

29

Seguiremos para el estudio de todos estos problemas un mismo algoritmo de tipo incremental. Comenzando con el primer punto, en cada paso dispondremos de la situacion ´ parcial del problema para un numero ´ determinado  de puntos de la entrada y tratamos de descubrir qu´e ocurrir´a si consideramos un nuevo punto, de manera que las soluciones parciales del problema para los primeros    puntos las obtendremos a partir de las soluciones parciales del mismo para los primeros  puntos. Logicamente ´ para ello ser´a necesario tener previamente ordenados los puntos que constituyen la entrada del problema. Sea el problema gen´erico de etiquetado sobre una l´ınea. ETIQUETADO SOBRE UNA L ´I NEA E ( ,)): ENTRADA: Un conjunto de puntos           alineados y un conjunto de etiquetas   %      %  de lados paralelos a los ejes coordenados. PREGUNTA: ¿Puede colocarse la etiqueta % sobre cada punto  , con el modelo de etiquetado E , sin que se produzcan intersecciones entre las etiquetas? Para algunos problemas encontraremos algoritmos polinomiales que los resuelven. En tal caso, si tenemos una instancia ordenada del problema y consideramos unicamente ´ el primer punto y su etiqueta, la respuesta podremos darla de inmediato, de hecho en cualquiera de los problemas que estudiaremos y que han sido presentados en la Seccion ´ 3.1 esta respuesta es afirmativa, ya que siempre se puede etiquetar un solo ´ punto con cualquiera de estos modelos. Disenaremos ˜ una estrategia de manera que si disponemos de la respuesta a la pregunta en el caso de considerar solo ´ las primeras  etiquetas, nos permita decidir, usando tiempo y espacio polinomial, cu´al ser´a la respuesta para el caso de considerar las primeras    etiquetas. Como se puede apreciar es de transcendental importancia en el diseno ˜ de esta estrategia el hecho de que los puntos de la instancia est´en previamente ordenados. En caso contrario al coste computacional del problema habr´ıa que anadir ˜ el coste     correspondiente a su ordenacion. ´ Sea una entrada del problema, formada por un conjunto ordenado  =         de puntos situados sobre una recta , llamada l´ınea de entrada, y para cada punto   una etiqueta rectangular % . Diremos que  =(      (  es una  -realizaci´on de  para el modelo E si cada (          representa una posicion ´ de % v´alida segun ´ el modelo E, de manera que las etiquetas no intersecan entre si. Por tanto una  -realizacion ´ ser´a una configuracion ´ que resolver´ıa el problema parcial (considerados los  primeros puntos), ya que su existencia indica la respuesta afirmativa al problema parcial. Si queremos tener garant´ıas de que nuestro algoritmo pueda decidir si despu´es de realizar ˜ la etiqueta correspondiente al punto   , tendr´ıamos que consideel paso  se puede anadir ˜ la etiqueta %   rar el conjunto de todas las  -realizaciones y comprobar si puede ser anadida en cualquiera de las posiciones permitidas por el modelo de etiquetado E. Pero el numero ´ de  -realizaciones posibles crece exponencialmente, lo que har´ıa intratable el problema. No obstante este inconveniente lo evitaremos introduciendo el concepto de “sombra de una  realizacion”que ´ nos permitir´a establecer una clasificacion ´ del conjunto de  -realizaciones en el “conjunto de sombras”(clases de  -realizaciones con la misma sombra). Introduciremos as´ı mismo una ordenacion ´ de este conjunto, de manera que podremos manejar el concepto de minimalidad, en el sentido de que garanticemos que si no puede ser anadida ˜ la etiqueta %  a una -realizacion ´ m´ınima (cuya sombra es m´ınima) entonces no puede ser anadida ˜ con e´ xito a ninguna otra  -realizacion. ´ Entonces nos bastar´a con llevar el control del numero ´ de -realizaciones m´ınimas en cada paso  y hacerlo obviamente en tiempo y espacio polinomial. Dada una etiqueta % colocada en una determinada posicion ´ (, segun ´ el modelo E, llamamos v´ertice saliente de dicha etiqueta al punto de la frontera de % que est´a m´as alejado segun ´ la direccion ´ de la l´ınea de entrada y llamamos sombra # ( de la etiqueta % en la posici´on ( al cuadrante del plano definido por los lados de la etiqueta % colocada en la posicion ´ ( que contienen a su v´ertice saliente si e´ ste est´a situado como origen de coordenadas. (V´ease Figura 3.2).

30

3. Problemas de decision ´ en etiquetado de puntos alineados

l

l Vértice saliente

P

L

Vértice saliente P

L

Figura 3.2: Sombra de una etiqueta



Igualmente dada una  -realizacion ´   =(      (  llamamos sombra #  ) de la realizaci´on  a la union ´ de las sombras de sus etiquetas, #    # ( . La Figura 3.3 muestra un ejemplo.

l

Figura 3.3: Sombra de una -realizacion ´ Una vez introducidos estos conceptos previos de car´acter general pasamos a estudiar los distintos problemas concretos.

3.3.

Puntos sobre una l´ınea horizontal

En muchas situaciones particulares en que tenemos la necesidad de situar etiquetas en mapas para ofrecer informacion ´ sobre determinados elementos del mismo nos encontramos con que estos puntos est´an a lo largo de una l´ınea horizontal (o vertical), tales como ciudades a lo largo de un r´ıo, en la costa, etc. Abordaremos entonces los problemas derivados del etiquetado de puntos situados sobre una l´ınea horizontal y probaremos que en el caso de etiquetas fijas sobre una l´ınea horizontal el problema general se puede resolver en tiempo y espacio lineal, mientras que probaremos la

3.3. Puntos sobre una l´ınea horizontal

31

NP –completitud

del problema en el caso de etiquetas deslizantes. Como senal´ ˜ abamos anteriormente los problemas van a ser divididos en funcion ´ del tipo de ubicacion ´ de las etiquetas (fijas o deslizantes). Veremos como ´ esta diferencia en el tipo de etiqueta juega un papel muy importante en la complejidad del problema. Como ya hemos senalado, ˜ la razon ´ principal de este hecho es que si estamos estudiando problemas de etiquetado con etiquetas fijas, cada etiqueta %, correspondiente a un punto  , puede ser colocada en cualquiera de los cuatro v´ertices del rect´angulo. La posicion ´ que adopte la etiqueta la denota(      que indica el cuadrante en el que se encuentra ubicada remos con un numero ´ la etiqueta, en relacion ´ a un sistema de coordenadas con origen en el punto  . Si en cambio estudiamos problemas de etiquetado con etiquetas deslizantes, las posiciones posibles para cada etiqueta no son finitas. Comenzaremos estudiando el problema de etiquetado de puntos sobre una l´ınea horizontal con etiquetas fijas. ETIQUETAS FIJAS SOBRE UNA L ´I NEA HORIZONTAL ( H –4 P ( ,))

ENTRADA: Un conjunto  =        de  puntos situados sobre una l´ınea horizontal y un conjunto =%      %  de  rect´angulos de lados paralelos a los ejes coordenados. PREGUNTA: ¿Se puede colocar cada rect´angulo %  en su punto correspondiente  , de tal forma que dicho punto quede situado sobre alguno de los v´ertices del rect´angulo, sin que se produzcan intersecciones entre los rect´angulos? Como ya indic´abamos, para el desarrollo del algoritmo incremental es necesario que los puntos de la entrada del problema est´en ordenados. Si esto no fuera as´ı tendremos que anadir ˜ ´ Supondremos que e´ stos el coste computacional     derivado de su previa ordenacion. est´an ordenados en orden creciente segun ´ el valor de su abscisa. Siguiendo el proceso incremental senalado, ˜ comenzando con la etiqueta % , trataremos en cada paso de anadir ˜ una nueva etiqueta, de manera que si conseguimos colocar la etiqueta %  el problema dar´ıa respuesta afirmativa, y si en algun ´ paso no se pudiera anadir ˜ la correspondiente etiqueta, el m´etodo utilizado nos debe garantizar que la respuesta del problema ser´ıa negativa. (      (como Como la posicion ´ de cada etiqueta viene expresada por un numero ´ se aprecia en la Figura 3.1 (a)), una  -realizacion ´ vendr´a determinada por una secuencia de numeros ´   (      (   (     . ´   , si llamamos * a la abscisa del v´ertice saliente de la etiqueta Dada una  -realizacion situada m´as a la derecha sobre la l´ınea de entrada y -  a la de la situada m´as a la derecha bajo dicha l´ınea, su sombra viene determinada por el par *   - (v´ease la Figura 3.4). Si en una  -realizacion ´ efectuamos una simetr´ıa respecto de la l´ınea de entrada obtenemos otra  -realizacion. ´ Esto nos proporciona un fenomeno ´ de dualidad. Sea   =(      (  una -realizacion, ´ se llama dual de   a la  -realizacion ´  =(      ( , siendo (    ( , para        . La -realizacion ´   dual es por tanto la sim´etrica de la  -realizacion ´   respecto de la l´ınea de entrada. Tal como dec´ıamos en la Seccion ´ 3.2 definimos a continuacion ´ la relacion ´ que nos permitir´a establecer la clasificacion ´ del conjunto de  -realizaciones en clases de  -realizaciones con la misma sombra. Dos  -realizaciones  y  se dicen que son equivalentes, y lo denotaremos por    , si #   #  o #   #  . Dos  -realizaciones son por tanto equivalentes si producen sombras iguales, salvo dualidad. En la Figura 3.5 se muestran dos  -realizaciones equivalentes. Esta definicion ´ nos proporciona una relacion ´ de equivalencia que clasifica el conjunto de -realizaciones en clases que tienen en comun ´ la misma sombra (excepto dualidad). ´ de orden entre Una vez clasificado el conjunto de  -realizaciones, introducimos la relacion

32

3. Problemas de decision ´ en etiquetado de puntos alineados

tk

P1

P2

l

Pk bk tk

P1

P2

l

Pk bk

Figura 3.4: Sombra de una  -realizacion ´

tk

Pk

l

bk t'k

Pk

l

b'k Figura 3.5: Dos  -realizaciones equivalentes. ´ ser´a menor que otra si deja un mayor espacio ellas. De una forma intuitiva una  -realizacion libre para poder colocar la etiqueta %   . Entonces, formalmente, dadas dos  -realizaciones  y  , diremos que   si #   #  o #   #  . Obs´ervese que, en el caso de etiquetado sobre una l´ınea horizontal que nos ocupa, si identificamos las sombras de las  -realizaciones  y  mediante los pares *  - y *  - , la relacion ´ de orden se puede definir de la forma siguiente:

* *  *  - *  -  * -

& - - o

& - *

La Figura 3.6 ilustra esta relacion ´ de orden entre realizaciones mediante sus sombras.

33

3.3. Puntos sobre una l´ınea horizontal

R1 t1

b1

l

R2 t2

b2

l

R3 b3

t3

l

R4 t4

Figura 3.6:    ,  .

b4

l

 no es comparable con las dem´as.

Lema 3.1. La relaci´on previamente definida es una relaci´on de orden parcial en el conjunto de clases de

-realizaciones.

Demostraci´on. La propiedad reflexiva es inmediata. Si  y  son dos  -realizaciones tales que   y   : 

 



 





#   # 

 #    #   #   #  



#   # 

 #    #   #   #  



























Los casos que se pueden presentar son los siguientes. 1) #   #  y #   #  , por lo que #   #  . 2) #   #  y #   #  , entonces #   #  . Pero #   #   # 

nos lleva a #   #  , o lo que es lo mismo #   #  , por lo tanto #   #  . 3) #   #  y #   #  , que es equivalente al anterior, intercambiando  y  . 4) #   #  y #   #  , entonces #   #   #   #  y tendremos #   #  . En cualquiera de los tres casos se tiene la equivalencia    y sigue la propiedad antisim´etrica.

34

3. Problemas de decision ´ en etiquetado de puntos alineados

Por ultimo ´ sean  ,  y  tales que   y   :

   

#   # 

 #    # 

#   # 

 #    # 





 

 













#   #   # 

#   #   #    #   #    #    # 



#    #   # 

#   #   #   # 

#   # 

#    # 



#    #   # 

#   #   # 

 

 

 





 















 













 

y en todos los casos se tiene   y por tanto la propiedad transitiva. Esta relacion ´ de orden entre sombras de  -realizaciones nos permite introducir el concepto de minimalidad en el conjunto de  -realizaciones, en el sentido de que una  -realizacion ´ ser´a m´ınima si no hay otra que ocupe una sombra menor y por tanto ofrezca m´as posibilidades ´  se dice que es una de colocacion ´ de la etiqueta %  que ella. Por tanto una  -realizacion -realizacion ´ m´ınima si no existe ninguna otra  -realizacion ´   tal que   . En la Figura 3.7 aparecen dos  -realizaciones,   es m´ınima y  no lo es (  ).

t1 R1

L2 L1

P1

L4 P3

P2

L5 L3

P4 P5

l

P6

L6 b1

t2 R2

L3 L1

P1

P2

L4 L2

P3

L5 P P5 L64

P6

l

b2 Figura 3.7:   es m´ınima (  ). A continuacion ´ probaremos que para poder decidir si existe una    -realizacion ´ basta con comparar la etiqueta correspondiente al punto   con las  -realizaciones m´ınimas.

3.3. Puntos sobre una l´ınea horizontal

35

Lema 3.2. Si existe una    -realizaci´on entonces debe existir otra    -realizaci´on de tal forma que sus  primeros elementos forman una  -realizaci´on m´ınima, para          . Demostraci´on. Sea    (      (  (   una    -realizacion. ´ Si es m´ınima la  -realizacion ´   (      (  el lema queda probado. En caso contrario, existir´a otra  -realizacion ´   menor que ella y m´ınima. De esta manera podemos garantizar que existir´a una  -realizacion ´ m´ınima   (      (  tal que   . Si #   #  entonces %  , que se pod´ıa situar en  , tambi´en se podr´a situar en  y as´ı    (      (  (   ser´a una    realizacion ´ donde sus primeros  elementos constituyen una realizacion ´ m´ınima. En cambio ´ que verifica el si #   #  es entonces    (      (    (   la    -realizacion lema. Si en el paso  tenemos un conjunto de  -realizaciones m´ınimas, atendiendo a este lema, en el paso    de nuestro algoritmo incremental bastar´a decidir si la etiqueta %  puede ser anadida ˜ con e´ xito a alguna de las  -realizaciones m´ınimas. Si no es as´ı la respuesta al problema ser´ıa negativa. Si en cambio la etiqueta %   puede ser anadida ˜ a alguna de las  -realizaciones m´ınimas, tendremos que considerar todas las posibles    -realizaciones y elegir aquellas que son m´ınimas, para continuar con el paso siguiente. No obstante, esta afirmacion ´ carecer´ıa de inter´es si no consigui´eramos controlar el numero ´ de realizaciones m´ınimas. Esto lo hacemos en el siguiente lema. Lema 3.3. En el problema H –4 P existen a lo sumo dos  -realizaciones m´ınimas no equivalentes para

       .

Demostraci´on. Procederemos por induccion ´ en  . Sabemos que las dos 1-realizaciones equivalentes     son m´ınimas, lo que prueba el lema para   . Sean   *  -

y    *  - las sombras de dos    -realizaciones m´ınimas. Si ambas    realizaciones son m´ınimas no pueden ser comparables por lo que, salvo simetr´ıas (dualidad) deber´a ser * *  - - . La Figura 3.8 muestra las distintas posibilidades ˜ que se pueden presentar, atendiendo a las distintas posibles posiciones del punto  , al anadir la etiqueta % a las dos    -realizaciones m´ınimas. Como se aprecia, en ningun ´ caso se obtienen m´as de dos  -realizaciones m´ınimas. Ya estamos en condiciones de probar que el problema H –4 P es polinomial. Teorema 3.4. Si los puntos est´an previamente ordenados sobre la l´ınea horizontal, el problema H –4 P se puede resolver en tiempo y espacio lineal. Demostraci´on. Sea una entrada del problema, formada por el conjunto de  puntos ordenados sobre una l´ınea horizontal,          , y un conjunto =%      %  de  rect´angulos de lados paralelos a los ejes coordenados asociados a cada uno de los puntos. Llevemos a cabo el proceso incremental descrito. Para  tenemos una -realizacion ´ m´ınima     (  ,    ). En el paso -´esimo disponemos, de acuerdo con el Lema 3.3, de dos    -realizaciones m´ınimas y habremos de anadir ˜ la etiqueta correspondiente al punto  . Para ello estudiamos, para cada una de ellas, si es posible colocar la etiqueta %  en cualquiera de sus cuatro posiciones posibles. Tendremos por lo tanto en cada paso un total de a lo sumo cuatro realizaciones (las posiciones y  de una etiqueta son siempre menores que las correspondientes  y ), que habremos de estudiar entre s´ı, qued´andonos con las dos -realizaciones m´ınimas que garantiza el Lema 3.3. Debido al numero ´ de comprobaciones este paso se puede realizar en tiempo constante. Si para algun ´ valor de  la etiqueta correspondiente al punto  no puede ser colocada sobre ninguna de las dos    -realizaciones el etiquetado no ser´ıa factible, en caso contrario el algoritmo disenado ˜ nos ofrecer´ıa una realizacion ´ del problema, en tiempo y espacio lineal.

36

3. Problemas de decision ´ en etiquetado de puntos alineados

tk-1

tk-1

tk

Lk

tk

Lk

mínima

mínima

Pk

Pk bk-1= b k

bk-1= b k

t'k-1

t'k-1

t'k

Lk Pk

mínima

Pk b'k-1= b'k

b'k-1 tk-1

tk

Lk tk-1

Pk

tk

Lk

bk-1= bk t'k-1

Pk

Lk

bk-1= bk t'k-1

t'k mínima

Pk

t'k

Lk

b'k-1= b'k mínima

t'k-1= t'k

Pk b'k-1= b'k

Pk

Lk b'k

b'k-1 tk-1

tk-1= tk

tk

Lk

Pk Pk

bk-1= b k t'k-1

t'k-1= t'k Pk

mínima

Pk b'k-1= b'k

bk

bk-1

t'k

Lk

mínima

Lk

Lk b'k-1

b'k

Figura 3.8: Problema H –4 P: Obtencion ´ de las  -realizaciones en el paso  . Afrontamos a continuacion ´ el problema de etiquetado con etiquetas deslizantes, es decir los puntos pueden quedar ubicados en cualquiera de los puntos de los lados de la etiqueta. En este caso cada etiqueta puede ser colocada de un numero ´ no finito de formas diferentes. Este hecho fundamentalmente ser´a el motivo de que, a diferencia del problema anterior, este ´ problema sea NP–completo, como probaremos a continuacion.

3.3. Puntos sobre una l´ınea horizontal

37

Como se puede apreciar en la Figura 3.12 el deslizamiento vertical no influye en el desarrollo del problema ya que todas las soluciones en las que la etiqueta quede situada en algun ´ punto de su lados verticales son mejoradas por cualquiera de las dos soluciones correspondientes en los extremos. Por esta razon ´ consideraremos siempre etiquetas que tienen algun ´ lado horizontal sobre la l´ınea de entrada. Vamos a distinguir los problemas atendiendo al tipo de etiquetas, obteniendo diferentes complejidades computacionales de los mismos. En primer lugar estudiaremos el caso particular de etiquetas iguales. ETIQUETAS DESLIZANTES IGUALES SOBRE UNA L ´I NEA HORIZONTAL (( H –4 S -1 C( ,)): ENTRADA: Un conjunto  =        de  puntos situados sobre una l´ınea horizontal. PREGUNTA: ¿Se puede colocar en cada punto   un cuadrado  unitario, de tal forma que dicho punto quede situado sobre alguno de los lados horizontales del cuadrado, sin que se produzcan intersecciones entre ellos? Si tratamos de seguir el algoritmo incremental de los problemas anteriores observamos que el numero ´ de  -realizaciones m´ınimas no se mantiene constante, como se puede apreciar en la Figura 3.9 en la que las realizaciones ,  ,  y . son m´ınimas. No obstante, debido a que todas las etiquetas son del mismo tamano ˜ observamos que la etiqueta del punto   +   

estar´a situada m´as a la derecha del punto +      por lo que el conjunto de puntos del plano cuya abscisa es menor que +    son intrascendentes para la etiqueta del punto   en el estudio del problema (estos puntos aparecen en la Figura 3.9 con relleno discontinuo), de manera que si este nuevo conjunto lo incorporamos a la sombra de la  -realizacion ´ entonces el numero ´ de sombras de realizaciones m´ınimas se reduce. En el ejemplo solo ´ ser´ıan m´ınimas las realizaciones  y . Una de ellas tiene alternativamente las etiquetas por encima y por debajo de la l´ınea de entrada, por este motivo introduciremos el concepto de  -realizacion ´ alternada y veremos que ser´a suficiente controlar estas realizaciones. ´    (      (  de forma que Llamaremos  -realizaci´on alternada a aquella  -realizacion (    , y las etiquetas de las posiciones ( y (  (         ) est´an en distinto semiplano definido por la l´ınea de entrada y situadas lo m´as a la izquierda posible. ´ alternada se obtiene colocando las etiquetas lo m´as a la izquierda Es decir una  -realizacion posible y alternativamente por encima y por debajo de la l´ınea de entrada. Obs´ervese por ´ alternada es unica, ´ salvo dualidad. De ah´ı que nos tanto que en caso de existir, la  -realizacion refiramos a ella en singular.

Lema 3.5. Si no existe la  -realizaci´on alternada, para el problema H –4 S -1 C, entonces no existe ninguna  -realizaci´on, para        . Demostraci´on. Sea    +         +    una entrada del problema formada por un conjunto de puntos ordenados segun ´ el sentido creciente de sus abscisas. ´ alternada es debido a que la sombra de la    -realizacion ´ Si no existe la  -realizacion alternada contiene al punto  . Es decir, el punto  es anterior al v´ertice saliente de las ´ etiquetas correspondientes a los puntos  y  . La Figura 3.10 muestra esta situacion para  par (para  impar la situacion ´ es sim´etrica). Como se aprecia en dicha figura, el punto  , que corresponde a una etiqueta por encima de la l´ınea de entrada, no coincide con el v´ertice inferior derecho de su etiqueta % por lo que la etiqueta % debe estar impidiendo su deslizamiento hacia la izquierda, por lo tanto han de estar en contacto las etiquetas % y % , si la etiqueta % no est´a en posicion ´ la etiqueta % debe contactar con ella y as´ı sucesivamente hasta que encontrar´ıamos una etiqueta en posicion ´ . Igualmente el punto  no est´a en la posicion ´  por lo que la etiqueta % est´a haciendo de tope para ella, y as´ı ´ . Esta etiqueta existe continuamos hasta encontrar una etiqueta % que est´e en posicion

38

3. Problemas de decision ´ en etiquetado de puntos alineados

;;; ;;; ;; ;; ;; ;;

A

B

C

D

E

F

Figura 3.9: Problema H –4 S -1 C: Cuatro -realizaciones m´ınimas. Una de ellas es alternada. pues al menos % es una de ellas. Segun ´ se aprecia en la Figura 3.10, tenemos / etiquetas en contacto por debajo de la l´ınea y la distancia entre los puntos  y  es menor que /  .

Lk-2j+1

L1 P1

Lk-3

Lk-1

Pk-5 Pk-3

Pk-1

Pk-6

Pk-4

Pk-2 Pk

Lk-6

Lk-4

Pk-2j+1 P2

L2

Lk-5

Pk-2j Lk-2j

Lk-2

Figura 3.10: Problema H –4 S -1 C: No existe la  -realizacion ´ alternada. Si existiera una  -realizacion ´ cualquiera, el espacio m´aximo entre estos puntos se produce colocando la etiqueta %  en posicion ´ , la etiqueta % en posicion ´  y la etiqueta % en posicion ´ , como indica la Figura 3.11. Por lo tanto el espacio disponible encima y debajo de la l´ınea es inferior a /   y hemos ´ posible tendr´ıa que llevar al de colocar /    /     etiquetas. Cualquier realizacion

39

3.3. Puntos sobre una l´ınea horizontal

Lk-2j+1

L1

Pk-5 Pk-3

Pk-2j+1

P1 P2 L2

Lk-1

Pk-2j Lk-2j

Pk-6 j-1

Pk-4

Pk-1 Pk-2 Pk Lk

Figura 3.11: Problema H –4 S -1 C: Si no existe la  -realizacion ´ alternada el etiquetado no es posible. menos /   de estas etiquetas en uno de los dos semiplanos, por encima o por debajo de la l´ınea, por lo que resultar´ıa imposible. Entonces no existe ninguna  -realizacion. ´ Teniendo en cuenta este resultado, para resolver el problema bastar´a estudiar las  -realizaciones alternadas. Teorema 3.6. Si los puntos est´an previamente ordenados, el problema H –4 S –1 C se resuelve en tiempo y espacio lineal. Demostraci´on. Si los puntos    +         +    de la entrada del problema est´an previamente ordenados, seguiremos de nuevo un procedimiento incremental. Comenzando con  , en cada paso estudiamos si podemos obtener la  -realizacion ´ alternada   a la    realizacion ´ alternada   . Si es cierto continuamos con el paso siguiente, pero en caso negativo podemos afirmar que la respuesta al problema para esta entrada es negativa, finalizando el proceso. Como para cada valor de  esta comprobacion ´ se hace en tiempo constante, el algoritmo descrito corre en tiempo, y por supuesto espacio, lineal. Tras considerar el caso particular de cuadrados unitarios, veamos como ´ el problema se convierte en intratable cuando las etiquetas pueden ser de tamanos ˜ diferentes. ETIQUETAS DESLIZANTES SOBRE L ´I NEA HORIZONTAL (( H –4 S ( ,)): ENTRADA: Un conjunto  =        de  puntos situados sobre una l´ınea horizontal y un conjunto =%      %  de  rect´angulos de lados paralelos a los ejes coordenados. PREGUNTA: ¿Se puede colocar cada rect´angulo %  en el punto  , de tal forma que dicho punto quede situado sobre alguno de los lados horizontales del rect´angulo, sin que se produzcan intersecciones entre ellos? Como se puede apreciar en la Figura 3.12 el deslizamiento vertical no influye en el desarrollo del problema ya que todas las soluciones en las que la etiqueta quedara situada en algun ´ punto de su lados verticales son mejoradas por cualquiera de las dos soluciones correspondientes en los extremos. Por esta razon ´ consideraremos siempre etiquetas que tienen algun ´ lado horizontal sobre la l´ınea de entrada. Conservamos para este problema las nociones introducidas para el caso de etiquetas fi´ m´ınima. V´ease la jas, tales como la relacion ´ de orden parcial y el concepto de  -realizacion Figura 3.12 Si realizamos el mismo proceso incremental descrito en el estudio del problema H –4 P nos encontramos que el numero ´ de  -realizaciones m´ınimas puede crecer exponencialmente en  . En la Figura 3.13 se aprecia como ´ de dos    -realizaciones m´ınimas se obtienen cuatro  realizaciones no comparables. Por lo tanto el algoritmo determinista polinomial descrito en el

40

3. Problemas de decision ´ en etiquetado de puntos alineados

L1

L2

t5=b5

L4

L5

L3

t5=b5 l

l

t5 L1

L2

L4

l

L3

L1

t5

L2

l

L5

L4

b5

b5

t5

t5

L5

l

l

L3 b5

b5

Figura 3.12: Problema H-4S: Realizaciones y sombras en H -4 S.

Teorema 3.4 no tendr´ıa utilidad. De hecho probaremos que ningun ´ otro algoritmo determinista polinomial ser´a util ´ en este caso, a no ser que P NP, pues probaremos la NP–completitud del problema H -4 S.

tk-1 Lk

tk-1= t2k

t1 k

Pk

Pk bk-1= b1k t'k-1 t3 k Lk Pk b'k-1= b3k t2 k

t'k-1= t

bk-1

4

Lk b2 k

k

Pk Lk

b'k-1

t4 k

b4 k

t1 k t3 k

b3 k b1 k

b4kb2k

Figura 3.13: Problema H-4S: Crecimiento exponencial de las  -realizaciones m´ınimas. Para ello, despu´es de probar que el problema pertenece a la clase NP, definiremos una reduccion ´ polinomial de una de las variantes del problema de la particion ´ a nuestro problema H –4 S . El problema general de la particion ´ es el problema de distribuir en dos partes de igual peso

41

3.3. Puntos sobre una l´ınea horizontal

los elementos ponderados de un conjunto. Este problema se define de la forma siguiente ´ : PARTICI ON

ENTRADA: Un conjunto  y para cada elemento "   un tamano ˜ # "  $ .  PREGUNTA: ¿Existe algun ´ subconjunto    de tal manera que son iguales las sumas # "  # " ? ¼ ¼ ´ Este problema es NP–completo ([24]). Es m´as, el problema sigue siendo NP–completo aun en el caso de que los elementos del conjunto  se distribuyan en parejas y a la particion ´ se le exija que distribuya un elemento de cada pareja a cada subconjunto. Para distinguir esta ´ -2. variante del problema general de la particion, ´ la llamaremos PARTICI ON





´ -2: PARTICI ON ENTRADA: Un conjunto   "  "      "  "   "  $ . PREGUNTA: ¿Existe algun ´ subconjunto    de tal manera que son iguales las sumas " ", y tal que  contiene exactamente un elemento de cada pareja "  " ¼ ¼ para        ? Probamos entonces la NP–completitud de H –4 S.





Teorema 3.7. H –4 S es NP–completo. Demostraci´on. Veamos en primer lugar que el problema pertenece a NP. Para ello consideremos el siguiente algoritmo no determinista, que corre en tiempo polinomial. Elijamos al azar una upla !  !      !  con !  * -, siendo e´ stos dos valores indicativos del semiplano en que colocaremos la correspondiente etiqueta. Para ello, dada esta -upla, colocaremos las etiquetas del problema H –4 S de la siguiente manera, supuestos ordenados los puntos de izquierda a derecha. Colocamos la etiqueta del punto  en la posicion ´ si !  * o en la posicion ´  si !  - y para cada punto  si es posible colocamos su etiqueta % en la posicion ´  si !  * (o  si !  -) y la deslizamos hacia la izquierda hasta tropezar con la etiqueta colocada en el ultimo ´ de los puntos anteriores  tal que !  ! o hasta que el v´ertice derecho de la etiqueta coincida con  , si esto no ocurre. Si tenemos una entrada del problema H –4 S con respuesta negativa, logicamente ´ no habr´a una -upla ! realizable. En cambio si la entrada produce respuesta afirmativa, el algoritmo descrito obtiene una -realizacion ´ con probabilidad no nula. Para completar la prueba de la NP–completitud haremos una reduccion ´ polinomial del ´ -2 al problema H –4 S, de tal manera que reduzcamos cada entrada  de problema PARTICI ON ´ -2 a una entrada ( ,) de 0  # de forma que se pueda particionar el conjunto  PARTICI ON (en las condiciones de la variante mencionada) si, y solo ´ si, existe una realizacion ´ para ( ,). ´ -2 y sean  un Sea   "  "      "  " , con "  $ la entrada de PARTICI ON  ´ suficientemente pequeno ˜ (   " y numero ´ suficientemente grande y ! un numero  !   "      "  , por ejemplo). Consideremos como entrada del problema H –4 S la formada por el conjunto de puntos     1              $ , formado por cuatro puntos  1  $ que servir´an de tope y otros  puntos    , ordenados de izquierda a derecha y tal que las distancias entre ellos son 1   $  !, 1      ,    "  "  ,      . Por lo tanto



1  1                     "  "         "  "    

42

3. Problemas de decision ´ en etiquetado de puntos alineados



     " 

Para cada uno de los puntos consideramos etiquetas de anchuras

        1      " . Tenemos que

      "  1 . Debido a la enorme dimension´ de las etiquetas 



  de los topes, los puntos  han de tener sus etiquetas en el espacio que hay entre estos topes, siendo el espacio que hay entre ellos (teniendo en cuenta las posiciones encima y debajo de la l´ınea) 1  $  1  !, que resulta ser una cantidad m´ınimamente superior a la suma de las anchuras de las etiquetas de los puntos  . V´ease la Figura 3.14.

C/2

A

B

P1

c

C/2

C P 2i

P 2i-1

P 2n P 2i+1

Y Z

(a 2i-1 +a 2i)/2

´ -2 a H –4 S Figura 3.14: Reduccion ´ de una entrada de PARTICI ON Si existe una -realizacion ´ para esta entrada (  ), e´ sta deber´a ser bastante ajustada (sobrar´a unicamente ´ el espacio !), de manera que habr´a tantas etiquetas por encima de la l´ınea como por debajo, debi´endose colocar alternativamente una arriba y otra abajo, siendo cada punto  muy cercano al centro de su etiqueta. Por lo tanto las etiquetas  quedar´an por encima de la l´ınea y los puntos  quedar´an por debajo de ella (o viceversa) y el subconjunto   "  "      "  dar´ıa la particion ´ deseada de A. Por otro lado, si existiera la particion ´   "  "      "  de A, y teniendo en cuenta que A’ debe contener exactamente a uno de los elementos de cada pareja "   " , podr´ıamos resolver el correspondiente problema de etiquetado colocando la etiqueta de cada punto  ("   ) por encima de la l´ınea y pegada a la del punto anterior, es decir en el punto de   " , siendo + la abscisa del punto 1 . Igualmente colocar´ıamos por debajo abscisa +   de la l´ınea las etiquetas de los puntos correspondientes a los numeros ´ que no est´an en A’. ´ -2 dada La Figura 3.15 representa el etiquetado para la entrada del problema PARTICI ON por el conjunto         que admite la particion ´     . ´ -2 a H –4 S, de manera Hemos encontrado por tanto una reduccion ´ polinomial de PARTICION que dada una entrada del primero obtenemos una entrada del segundo que es factible si, y solo ´ si, lo es aquella. Por lo tanto H –4 S es NP–completo.



Si analizamos la demostracion ´ anterior vemos que para probar la NP–completitud del problema hemos tenido que hacer uso de etiquetas desmesuradamente grandes, que no son muy comunes en la pr´actica. Esto nos lleva a pensar en la posibilidad de controlar de alguna manera el problema en funcion ´ del tamano ˜ de las etiquetas. Bas´andonos en esta idea, en la Seccion ´ 7.2 encontraremos un algoritmo pseudo-polinomial que “resuelve”este problema.

43

3.4. Puntos sobre una l´ınea oblicua

L1=C+1 B A

L3=C+3

L6=C+7

P3

P1 P2 L2=C+2

P6 P4

L4=C+4

P5

Y Z

L5=C+5

´ -2 Figura 3.15: Reduccion ´ de la entrada       de PARTICI ON

3.4.

Puntos sobre una l´ınea oblicua

En muchos de las aplicaciones descritas previamente nos encontramos con la necesidad de colocar informacion ´ sobre puntos situados en una l´ınea oblicua, como por ejemplo en el etiquetado de l´ıneas de metro, mapas de carreteras, etc. No tenemos conocimiento sobre la complejidad computacional del problema general con etiquetas rectangulares deslizantes de cualquier tamano. ˜ Por simplificacion ´ iremos de lo concreto a lo general, estudiando la complejidad de casos particulares del problema, comenzando con el problema con etiquetas cuadradas iguales e iremos generalizando el tipo de etiquetas. Concretamente estudiaremos los problemas de etiquetado de puntos sobre una l´ınea oblicua ˜ diferentes fijas, con etiquetas rectangulares iguales fijas, etiquetas rectangulares de  tamanos etiquetas rectangulares de altura constante fijas y etiquetas cuadradas iguales deslizantes. Sin p´erdida de generalidad podemos suponer que los puntos se encuentran situados sobre una l´ınea oblicua con pendiente positiva y abordaremos los problemas atendiendo a los diferentes casos dependiendo del tipo de etiquetas (cuadradas o rectangulares) y el lugar de colocacion ´ de las mismas (en los v´ertices o en los lados). En el primero de los casos recordemos que cada etiqueta presentaba cuatro posibilidades de colocacion, ´ mientras que el numero ´ de posibilidades para etiquetas deslizantes no era finito. Normalmente cuando se trata de etiquetar puntos alineados, estos puntos se encuentran sobre una l´ınea no significativa para la aplicacion ´ o al menos de menor trascendencia que los propios puntos a etiquetar. Por este motivo permitiremos que las etiquetas corten a la l´ınea de entrada. En caso contrario solo ´ ser´ıan posibles dos posiciones por etiqueta, por lo que todos los problemas de decision ´ podr´ıan ser reducidos al problema de satisfacibilidad 2- SAT y resolverse por tanto en tiempo lineal [22]. Para abordar estos problemas utilizaremos de nuevo el algoritmo incremental descrito en la Seccion ´ 3.2. Para ello necesitaremos que los puntos est´en previamente ordenados, segun ´ los ´ y valores crecientes de sus abscisas. Continuaremos utilizando los conceptos de  -realizacion sombra de una  -realizacion. ´ Pero en cambio no haremos uso del concepto de dualidad. Por lo tanto dos realizaciones  y  diremos que son equivalentes, y escribiremos    si tienen la misma sombra, #   #  . ´ su sombra, introducimos la relacion ´ de orden Una vez clasificadas las  -realizaciones segun necesaria para poder disponer del concepto de minimalidad. As´ı, dadas dos  -realizaciones  y  . Se dice que   si #   #  . Diremos que una -realizacion ´  es una -realizacion ´ m´ınima si para cualquier otra  -realizacion ´   se tiene   . Una    -realizacion ´   es hija de una  -realizacion ´   si los elementos de  son los  primeros elementos de   . Por lo tanto una    -realizacion ´ hija se obtiene anadiendo ˜ ´ la etiqueta correspondiente al punto   . a una  -realizacion

44

3. Problemas de decision ´ en etiquetado de puntos alineados

El Lema 3.2 afirmaba que, para el problema H –4 P, si existe una (  )-realizacion ´ entonces ´ m´ınima. Si se obserexiste otra donde sus  primeros elementos constituyen una  -realizacion va la demostracion ´ de este lema veremos que esta misma demostracion ´ ser´ıa de utilidad para los problemas de etiquetado de puntos sobre una l´ınea oblicua, tanto con etiquetas fijas como deslizantes. Por lo tanto podemos asegurar que manteniendo control sobre las  -realizaciones m´ınimas podremos abordar estos problemas con el mismo procedimiento incremental utilizado anteriormente, consistente en cada paso en obtener a partir de las distintas  -realizaciones m´ınimas sus correspondientes    -realizaciones m´ınimas hijas. Pasamos a estudiar los distintos problemas concretos. Comenzamos con el caso de etiquetas cuadradas iguales fijas, es decir una vez colocada la etiqueta, el punto debe quedar en alguno de los cuatro v´ertices del cuadrado. Por comodidad, y sin perdida de generalidad podemos considerarlos cuadrados unitarios. ETIQUETAS CUADRADAS IGUALES FIJAS SOBRE UNA L ´I NEA OBLICUA (OC –4 P( )) ENTRADA: Un conjunto  =        de puntos situados sobre una l´ınea oblicua. PREGUNTA: ¿Puede colocarse en cada uno de los puntos un cuadrado de lado la unidad, de manera que los puntos queden en alguno de los v´ertices del cuadrado, y no se produzcan intersecciones entre ellos? Siguiendo la misma notacion ´ de la Figura 3.1, las etiquetas pueden ser colocadas en cuatro ´ * *     , es claro posiciones. Si denotamos por % a la etiqueta colocada en la posicion que las relaciones entre las sombras de dicha etiqueta son # % # % , # % # % , # % # % , # % # % , # % # % y # % y # % no son comparables. Veamos el numero ´ de (  )-realizaciones m´ınimas que aporta cada  -realizacion. ´

Lema 3.8. Una  -realizaci´on, para el problema OC –4 P, tiene a lo sumo dos    -realizaciones hijas que son m´ınimas. Demostraci´on. Sea  una  -realizacion ´ y la etiqueta cuadrada %   correspondiente al punto   . Si el punto    #  no tendr´ıa ninguna hija. Por el contrario, y teniendo en cuenta la relacion ´ existente entre las sombras de las diferentes posiciones de una etiqueta, si ˜ en la posicion ´  habr´a una unica ´    -realizacion ´ m´ınima. la etiqueta %  puede anadirse En caso contrario podr´ıa ocurrir que se pudiera colocar en las posiciones y , dando lugar a ´ dar´ıa lugar a una    dos hijas m´ınimas y si solo ´ se pudiera colocar en la posicion ´  solo realizacion ´ m´ınima hija (Figura 3.16).

Pk+1 3

2 Pk+1 4

1 Pk+1

Figura 3.16: Problema OC -4 P: Hijos de una  -realizacion ´ Veremos a continuacion ´ la influencia en la sombra de una  -realizacion ´ m´ınima la colocacion ´ de una nueva etiqueta. De forma intuitiva diremos que el siguiente lema pondr´a de

45

3.4. Puntos sobre una l´ınea oblicua

manifiesto que en el proceso incremental, al colocar una nueva etiqueta, bastar´a considerar su incidencia en las dos ultimas ´ etiquetas del paso anterior. Lema 3.9. Si al anadir ˜ a una  -realizaci´on   la etiqueta del punto   , en el problema OC -4 P, no corta a las etiquetas correspondientes a los dos ultimos ´ puntos  y  , entonces no cortar´a a ninguna de ellas. Demostraci´on. Si una etiqueta no forma parte del perfil de la sombra de una  -realizacion, ´ para que la etiqueta %  la cortara, tendr´ıa que cortar previamente a aquellas que forman parte de dicho perfil. Por lo tanto ser´a suficiente probar que la sombra de cualquier realizacion ´ estar´a determinada a lo sumo por las sombras de sus dos ultimas ´ etiquetas. Para ello consideraremos las diferentes posibilidades, segun ´ las posiciones de la ultima ´ etiqueta.

Pk-1

Pk

Pk+1

1

Pk Pk-1

Pk

Pk-1

4

2

2

2

Pk+1

4

Pk

Pk-1

3

Pk+1

Pk+1

4

Pk-2

Figura 3.17: Problma OC –4 P: Perfil de la sombra de una  -realizacion ´ Como ´ se aprecia en la Figura 3.17, en la que se han dibujado las situaciones m´as desfavorables, si la etiqueta % est´a en la posicion ´ , entonces en el perfil de la sombra solo ´ aparece la ultima ´ etiqueta. En cualquiera de las otras tres posiciones aparecen a lo sumo las dos ultimas. ´ Este lema nos garantiza que la sombra de una  -realizacion ´ queda determinada por las de las dos ultimas ´ etiquetas, por lo tanto en lo sucesivo cuando se hable de la sombra de una -realizacion ´ nos referiremos unicamente ´ a la producida por las dos ultimas ´ etiquetas, ya que el resto no tiene relevancia para el desarrollo del problema. Estamos en condiciones de probar que podemos controlar el numero ´ de sombras correspondientes a realizaciones m´ınimas. Esto lo hacemos en el siguiente lema. Lema 3.10. En el problema OC -4 P existen a lo sumo dos sombras distintas correspondientes a  realizaciones m´ınimas, para        . Demostraci´on. Haremos un desglose de las distintas posibilidades en virtud de la posible colocacion ´ de las dos ultimas ´ etiquetas, % y % , teniendo en cuenta que en las sombras solo ´ intervienen las dos ultimas ´ etiquetas, segun ´ indica el Lema 3.9.

46

3. Problemas de decision ´ en etiquetado de puntos alineados

La realizacion ´   (      (  tendr´a una sombra determinada por la pareja de numeros ´ (  ( . Utilizaremos la notacion ´ (  %  para indicar que la etiqueta del punto  est´a colocada en la posicion ´ *, siendo *     .

Hacemos el estudio de posibilidades, comenzando con la etiqueta % y con cada posibilidad de colocacion ´ de e´ sta (,   , ), vemos qu´e ocurre con la etiqueta %  , atendiendo a criterios de minimalidad, es decir la posicion ´  es mejor que las otras, y  no son comparables ´ Este estudio queda reflejado en el siguiente cuadro: y  es la peor opcion.





%













%















%

















s´ı  %  

%  % 

s´ı     ¿%  ?

  ¿% ? %  %



  imposible s´ı  %  

%  % 



s´ı     



%  %

o´ % ¿% ? s´ı  imposible

  ¿%?





  ¿%? %  %





   %  % s´ı  %  



%  % 



s´ı    



%  % ¿%  ?

  ¿% ?

s´ı  %  %   







  ¿%? negativa

  ¡respuesta para esta entrada! 





































 

 



 





 









Como se ve en el cuadro a lo sumo se presentan dos sombras correspondientes a realizaciones m´ınimas, lo que prueba el lema. La Figura 3.18 presenta los cuatro casos en los que se tienen estas dos sombras. Tambi´en podemos afirmar que dadas las sombras correspondientes a las   -realizaciones m´ınimas se pueden obtener las sombras correspondientes a  -realizaciones m´ınimas en tiempo constante, ya que es constante el numero ´ total de comprobaciones a realizar. Concretamente un numero ´ no superior a  , ya que tendremos que comprobar las cuatro posibles posiciones de las dos ultimas ´ etiquetas. Por lo tanto estamos en condiciones de probar el teorema siguiente, que afirma que el problema OC -4 P es polinomial.

47

3.4. Puntos sobre una l´ınea oblicua

L 2k

L3k-1

L2k-1 L 4k

{L 3k-1 ,L 2k},{L 3k-1 ,L 4k}

L 2k

L4k-1

L 4k

{L 2k-1 ,L 4k},{L 4k-1 ,L 2k} L 2k

L2k-1

L 1k L4k-1

{L 2k-1 ,L 1k},{L 4k-1 ,L 1k}

L 4k L1k-1

{L 1k-1 ,L 2k},{L 1k-1 ,L 4k}

Figura 3.18: Sombras m´ınimas en el problema OC -4 P. Teorema 3.11. Si los puntos est´an previamente ordenados segun ´ la direcci´on creciente de la l´ınea de entrada, el problema OC –4 P se puede resolver en tiempo y espacio lineal. Demostraci´on. Sea una entrada del problema, formada por un conjunto  =         de puntos sobre una l´ınea oblicua y ordenados segun ´ su abscisa. Comenzando con   , realizaremos de nuevo el proceso incremental. En cada paso  tenemos a lo sumo dos sombras correspondientes a  -realizaciones m´ınimas, segun ´ el Lema 3.10, y en el paso   , segun ´ el Lema 3.8, se obtienen por cada una de ellas dos    -realizaciones m´ınimas hijas, de las cuales nos quedaremos con a lo sumo dos    -realizaciones m´ınimas, haci´endose este estudio en tiempo constante, ya que se realizan un numero ´ constante de comprobaciones, no superior a   . Por lo tanto el problema OC –4 P se resuelve en tiempo y espacio lineal. A continuacion ´ realizamos la primera generalizacion. ´ Consideraremos etiquetas rectangulares iguales entre s´ı. ETIQUETAS RECTANGULARES IGUALES FIJAS SOBRE UNA L ´I NEA OBLICUA (OR (1)–4 P( ,)) ENTRADA: Un conjunto de puntos  situados sobre una l´ınea oblicua y un rect´angulo  de lados paralelos a los ejes coordenados. PREGUNTA: ¿Puede colocarse un rect´angulo  en cada uno de los puntos, de manera que estos puntos queden en alguno de los v´ertices del rect´angulo y no se produzcan intersecciones entre ellos? Podemos convertir, como se aprecia en la Figura 3.19, cualquier entrada de este problema ´ af´ın del plano (estiramienen una entrada del problema OC –4 P mediante una transformacion to), resolverlo y su solucion ´ transformarla mediante la transformacion ´ af´ın inversa en una solucion ´ del otro problema OR (1)–4 P, por lo que los problemas son equivalentes y podemos enunciar el teorema siguiente.

Teorema 3.12. Si los puntos est´an previamente ordenados segun ´ la direcci´on creciente de la l´ınea de entrada, el problema OR (1)–4 P se puede resolver en tiempo y espacio lineal.

48

3. Problemas de decision ´ en etiquetado de puntos alineados

P'4 P2 P1

P3

P4

P'2 P'1

P'3

Figura 3.19: Equivalencia OR (1)-4 P con OC -4 P En un nuevo intento de generalizacion ´ consideremos el etiquetado de puntos sobre una l´ınea oblicua, si para ello disponemos de  rect´angulos de  dimensiones diferentes. ETIQUETAS DE

 TIPOS RECTANGULARES FIJAS SOBRE UNA L ´I NEA OBLICUA

(OR()–4 P( ,)) ENTRADA: Un conjunto de puntos           situados sobre una l´ınea oblicua y un conjunto           de n rect´angulos, de lados paralelos a los ejes coordenados y de m tipos diferentes. PREGUNTA: ¿Puede colocarse el rect´angulo  en cada punto  , de manera que el punto quede en alguno de los v´ertices del rect´angulo, y no se produzcan intersecciones entre ellos? Podemos apreciar la similitud de este problema con el problema anterior, con la diferencia de que tendremos que controlar en el proceso incremental las dos ultimas ´ etiquetas de cada tipo. Por este motivo podemos obtener una inmediata generalizacion ´ del Lema 3.9. Lema 3.13. En el problema OR()–4 P, si la etiqueta del punto    no corta a ninguna de las dos ultimas ´ etiquetas de cada uno de los  tipos diferentes de una  -realizaci´on  , entonces no cortar´a a ninguna de ellas. Teniendo en cuenta este lema, como en las sombras influir´an a lo sumo las dos ultimas ´ etiquetas de cada tipo de rect´angulo, cada sombra vendr´a determinada por un numero ´ no superior a  etiquetas. Lema 3.14. En el problema OR()–4 P existen a lo sumo  sombras distintas correspondientes a -realizaciones m´ınimas, para        . Demostraci´on. Cuando se anade ˜ una nueva etiqueta %   a una  -realizacion ´ m´ınima, en el peor de los casos podr´ıa ocurrir que la etiqueta %  pudiera colocarse en las posiciones y  y no en la posicion ´ , ya que esta ultima ´ no duplicar´ıa el numero ´ de etiquetas. Pero aun ´ en este ultimo ´ caso, y haciendo el mismo razonamiento que en el Lema 3.10 mantendr´ıamos el numero ´ de sombras, a no ser que el tipo de rect´angulo %  no hubiera aparecido todav´ıa en ´ de realizaciones m´ınimas. Por las  primeras etiquetas, que entonces si duplicar´ıa el numero lo que el numero ´ de realizaciones m´ınimas, en cada paso, es no superior a  . Siguiendo el mismo razonamiento empleado en la demostracion ´ del Teorema 3.11 queda probado el siguiente teorema. Teorema 3.15. Si los puntos est´an previamente ordenados, segun ´ la direcci´on creciente de la l´ınea de entrada, el problema OR()–4 P se puede resolver en tiempo y espacio    , siendo ! una constante. Cuando se trata de etiquetar mapas, l´ıneas de metro, etc, las etiquetas normalmente tienen una misma altura, dada por el tipo de letra a utilizar, y diferentes anchuras, dadas por la

;; ; ;;

3.4. Puntos sobre una l´ınea oblicua

49

4

2

4

2

1

Figura 3.20: A lo sumo  realizaciones m´ınimas en OR()–4 P. extension ´ del texto a colocar en ellas. Por esta razon ´ es de inter´es el siguiente problema. 1- RECTANGULARES FIJAS SOBRE UNA L ´I NEA OBLICUA (O 1 R –4 P( , )) ENTRADA: Un conjunto de puntos           situados sobre una l´ınea oblicua y un conjunto de numeros ´ reales          . PREGUNTA: ¿Puede colocarse un rect´angulo de dimensiones    en cada punto  , de manera que estos puntos queden en alguno de los v´ertices del rect´angulo, y no se produzcan intersecciones entre ellos? Siguiendo con el esquema senalado ˜ en problemas anteriores trataremos de llevar el control del numero ´ de realizaciones m´ınimas en cada paso. En lo sucesivo cuando consideremos la ´ nos referiremos unicamente ´ a la parte de dicha sombra que es sombra de una  -realizacion susceptible de ser cortada por la etiqueta del punto   , ya que el resto no influye en el desarrollo del problema. El siguiente resultado es de demostracion ´ evidente. ETIQUETAS

Lema 3.16. En el problema O 1 R –4 P, la etiqueta %  correspondiente al punto  debe estar en la sombra de cualquier  -realizaci´on  . ´ a todo v´ertice superior derecho de Llamamos escal´on de una sombra de una  -realizacion cualquier etiqueta de la frontera de dicha sombra. Lema 3.17. En el problema O 1 R –4 P, las sombras de  -realizaciones m´ınimas tienen a lo sumo dos escalones, para        . Demostraci´on. Dado que todas las etiquetas tienen altura , probaremos que cualquier realizacion ´ m´ınima puede tener a lo sumo un escalon ´ correspondiente a una etiqueta norte (colocada ´ correspondiente a una etiqueta sur (colocada en en posiciones  o ) y a lo sumo un escalon posiciones  o ). La primera parte es debido al hecho de que las sombras producidas por etiquetas norte forman una sucesion ´ creciente en el sentido de crecimiento de la l´ınea de entrada, por lo tanto si tenemos dos etiquetas en posicion ´ norte %  %  " -, la etiqueta % no puede pertenecer al contorno de la sombra. Por otro lado, si existieran dos escalones de etiquetas %  %   / en posicion ´ sur correspondientes a puntos  +  & y  +  & , y debido a que las etiquetas tienen altura , &  & )  por lo que la etiqueta % no podr´ıa ser cortada por la etiqueta %  , como indica la Figura 3.21. Por lo tanto si no tenemos en cuenta la parte de la

50

3. Problemas de decision ´ en etiquetado de puntos alineados

sombra que no puede ser cortada por la etiqueta %  , la sombra de la  -realizacion ´ m´ınima tendr´a a lo sumo escalones.

Pj Pb

Pa

>1

Pi

Figura 3.21: Escalones de sombras en O 1 R -4 P Por lo tanto todas las escaleras tienen a lo sumo dos escalones, siendo la etiqueta causante de dichos escalones la ultima ´ etiqueta norte y la ultima ´ etiqueta sur de la  -realizacion. ´ Lema 3.18. En el problema O 1 R –4 P habr´a a lo sumo   -realizaciones m´ınimas no equivalentes, para

       .

Demostraci´on. Todas las realizaciones m´ınimas tienen a lo sumo dos escalones. Atendiendo a la posicion ´ de la etiqueta que produce el escalon ´ habr´a cuatro tipos de sombras de 1 escalon. ´ De la misma manera podemos afirmar que habr´a    tipos de sombras de dos escalones, por lo que pueden haber a lo sumo 20 tipos de sombras diferentes. Diremos que la sombra de la realizacion ´  es #   "  - , con "      y   /  , si e´ sta es del tipo "  - y los escalones est´an producidos por las etiquetas % y % , respectivamente. Sean  y  dos  -realizaciones m´ınimas con el mismo tipo de sombra. Si estas sombras son de un solo ´ escalon ´ han de ser equivalentes, ya que este escalon ´ ha de estar producido por la ultima ´ etiqueta, en virtud del Lema 3.16. Si en cambio e´ stas son de dos escalones, #   "  -  y #   "  - , como en virtud del citado lema, la ultima ´ etiqueta est´a en la sombra, han de ser /  /   o      . Si /  /   entonces han de ser    , ya que si uno de los dos fuera menor que el otro una sombra estar´ıa contenida en la otra y no ser´ıa una realizacion ´ m´ınima, por ejemplo si  ,  entonces #   #  . Igualmente ocurrir´ıa en el otro caso      . Por lo tanto las dos  -realizaciones m´ınimas han de ser equivalentes, lo que prueba el lema. Teorema 3.19. Si los puntos est´an previamente ordenados, el problema O 1 R –4 P se puede resolver en tiempo y espacio lineal. Demostraci´on. Realizando un proceso incremental en cada paso  tendremos las 20 posibles realizaciones m´ınimas, al incorporar la etiqueta %  comparar´ıamos las distintas posiciones de e´ sta con esas realizaciones m´ınimas, qued´andonos en el paso    con las a lo sumo nuevas 20 realizaciones m´ınimas. Obviamente este paso se puede realizar en tiempo y espacio constante, por lo que el problema se resuelve en tiempo y espacio lineal.

51

3.4. Puntos sobre una l´ınea oblicua

En el siguiente problema consideramos etiquetas cuadradas deslizantes, es decir los puntos pueden quedar sobre cualquiera de los lados de la etiqueta. ETIQUETAS CUADRADAS IGUALES DESLIZANTES SOBRE UNA L ´I NEA OBLICUA

(OC –4 S( )) ENTRADA: Un conjunto de puntos  situados sobre una l´ınea oblicua. PREGUNTA: ¿Puede colocarse en cada uno de los puntos un cuadrado de lado la unidad, de manera que los puntos queden en alguno de los lados del cuadrado, y no se produzcan intersecciones entre ellos? Cuando trabajamos con etiquetas deslizantes el numero ´ de posiciones posibles de cada etiqueta no es finito. Para identificar la posicion ´ de una etiqueta en una realizacion ´ m´ınima ´ optima. ´ Para este la colocamos en la posicion ´  y la deslizamos hasta conseguir su posicion deslizamiento tenemos dos posibilidades, comenzar con un deslizamiento horizontal hacia la izquierda, hasta llegar a su tope y si fuera posible continuar con un deslizamiento vertical hacia abajo, hasta llegar nuevamente a su tope, esta opcion ´ la denotaremos  o realizar en primer lugar el deslizamiento vertical hacia abajo y despu´es deslizar lo m´as a la izquierda posible, que denotaremos  , como muestra la Figura 3.22.

IA

AI

Figura 3.22: Posiciones de una etiqueta en OC -4 S Obs´ervese que todas las sombras que se producen siguiendo un determinado camino ( o  ) son comparables entre s´ı y cada vez menores, por lo que la m´ınima sombra se alcanza cuando la etiqueta alcanza el tope. Por otro lado las sombras de un camino no son comparables con las del otro camino, excepto en el caso de que por ambos caminos se llegue a la posicion ´  en la etiqueta, caso en que coincidir´an sus sombras. Utilizaremos la notacion ´   2      2  para indicar que en la  -realizacion ´ m´ınima  la etiqueta % se ha colocado siguiendo el camino 2 , con 2     . Algunos de los resultados de problemas anteriores permanecen. Veamos que sigue siendo v´alido el Lema 3.8, que permite controlar el numero ´ de realizaciones m´ınimas hijas de una realizacion. ´ Lema 3.20. En el problema OC –4 S, cada  -realizaci´on tiene a lo sumo dos (  )-realizaciones hijas que son m´ınimas. Demostraci´on. Si   2      2  es una  -realizacion ´ m´ınima, e´ sta tendr´a a lo sumo dos    -realizaciones m´ınimas    2      2      y    2      2     que ´ se se obtendr´an colocando la etiqueta %  en las posiciones  y  , respectivamente, segun aprecia en la Figura 3.22. El siguiente lema acota el numero ´ de etiquetas que determinan la sombra.

52

3. Problemas de decision ´ en etiquetado de puntos alineados

Lema 3.21. Sea   una  -realizaci´on para una entrada del problema OC –4 S. Si la etiqueta %  no corta a las dos ultimas ´ etiquetas de  , entonces no cortar´a a ninguna de ellas. Demostraci´on. Veamos que no es posible que la etiqueta %  no puede cortar a % . Si as´ı fuera la Figura 3.23 muestra la situacion ´ m´as desfavorable para el desarrollo de la demostracion. ´ En esta situacion ´ la etiqueta %  est´a en contacto con la etiqueta % , entonces las etiquetas % y % no pueden pisar la zona sombreada. Pero la etiqueta %  lo m´as alejada que ´ . En este caso la etiqueta % tendr´ıa puede estar de % es estando colocada en posicion que colocarse en una franja vertical de anchura menor que la unidad, por lo que resultar´ıa imposible.

1

s-s

e-e

yk-yk-1 NumElementos; int local,nalea,n; int ancho=100; for (i=0;ipoblacion[i].punto2x) { local=poblacion[i].punto1x; poblacion[i].punto1x=poblacion[i].punto2x;poblacion[i].punto2x=local; local=poblacion[i].punto1y; poblacion[i].punto1y=poblacion[i].punto2y;poblacion[i].punto2y=local; }; }; //Las siguientes instrucciones almacenan la entrada //en un fichero de texto FILE *fichentrada; char ficheroe[81]; printf( "Guardar la entrada en el fichero: " ); gets(ficheroe); if ((fichentrada=fopen(ficheroe,"w"))==NULL) exit(1); fprintf(fichentrada,"%5d\n",NumElementos); for (i=0;i -w); return x; }

/*-----------------------------------------------------La siguiente rutina recibe dos valores reales "a" y "b" y devuelve un numero real aleatorio entre ellos con la distribuci´ on normal N((a+b)/2,(b-a)/8) y para ello usa la funci´ on anterior. ------------------------------------------------------*/ int rand_norm(double a,double b) { double m=(a+b)/2.0;double s=(b-a)/8.0; double ret=a-1; while (retb) ret=s*gen_norm()+m; return round(ret); } int round(double a) { int x=a; if (a-x>=0.5) x++; return x; }

A. Listados

A.1. Generar poblacion ´ aleatoria

Problema M AX N– H –4 S /*-----------PROGRAMA MAXH4SGENER.CPP--------------------Este programa genera una entrada aleatoria para el problema MaxN--H--4S, formada por NumElementos puntos y sus correspondientes etiquetas, de la siguiente forma: 1) El se genera de forma aleatoria uniformemente distribuido en una placa de dimensiones AnchuraPlaca x AlturaPlaca 2) La anchura de la etiqueta se genera aleatoriamente normalmente distribuida, mediante la forma polar del m´ etodo de Box-Muller. ------------------------------------------------------*/ #include #include #include #include #include #include //definici´ on de variables y estructuras #define AlturaPlaca 2048 #define AnchuraPlaca 2048 int NumElementos=1000; struct etiqueta{int punto;int ancho;}; struct etiqueta poblacion[1000]; int randval(int,int); int rand_norm(double,double); double gen_norm(); int round(double); int abs(int); //rutina principal void main() { int i; cout > NumElementos; //Las siguiente lineas alteran la semilla aleatoria time_t ltime; time(<ime); srand(ltime); int izquierdo=10;int derecho=AnchuraPlaca-10; int anchura=4*int(AnchuraPlaca/NumElementos); for (i=0;i -w); return x; } /*-----------------------------------------------------La siguiente rutina recibe dos valores reales "a" y "b" y devuelve un numero real aleatorio entre ellos con la distribuci´ on normal N((a+b)/2,(b-a)/8) y para ello usa la funci´ on anterior. ------------------------------------------------------*/ int rand_norm(double a,double b) { double m=(a+b)/2.0;double s=(b-a)/8.0; double ret=a-1; while (retb) ret=s*gen_norm()+m; return round(ret); }

int round(double a) { int x=a; if (a-x>=0.5) x++; return x; } int abs(int a) { if (a>=0) return a; else return -a; }

Problema M AX N–3– RVP (1) /*-----------PROGRAMA MAX3RVPGENER.CPP--------------------Este programa genera una entrada aleatoria para el problema MaxN--3-RVP(1), formada por NumTr´ ıangulos tr´ ıos de puntos y sus tres etiquetas rectangulares. Generaci´ on de una entrada aleatoria del problema:

A.1. Generar poblacion ´ aleatoria

Entrada del problema conteniendo tri´ angulos de todos los tipos posibles. Generamos aleatoriamente, con distribuci´ on uniforme su posici´ on (uno de sus puntos) y con distribuci´ on normal el resto de los puntos (po lo tanto su tama˜ no) y los puntos adicionales (que dan lugar a las etiquetas del tri´ angulo). ------------------------------------------------------*/ #include #include #include #include #include #include





//definici´ on de variables y estructuras int NumElementos; FILE *galog; int randval(int,int); int rand_norm(double,double); double gen_norm(); int round(double); int abs(int); #define AlturaPlaca 2048 #define AnchuraPlaca 2048 struct punto{int x;int y;int zona;}; struct etiqueta{struct punto vertice[5];}; struct triangle { int tipo; struct punto p[3];struct punto adp[3];struct etiqueta trazad[3]; }; struct triangle poblacion[1000]; struct triangle triangulo; struct punto genera_punto(struct triangle triang); struct etiqueta genera_etiqueta(struct triangle triang, struct punto ad_point); int tri; void main() { cout > NumElementos; //Preparar semilla aleatoria time_t ltime; time(<ime); srand(ltime); // int i,j,k; struct punto pp; int ntipo,n,n0; for (tri=0;tri