En el estudio de algoritmos , un problema de tipo LP (también llamado programa lineal generalizado ) es un problema de optimización que comparte ciertas propiedades con los programas lineales de baja dimensión y que puede resolverse mediante algoritmos similares. Los problemas de tipo LP incluyen muchos problemas de optimización importantes que no son en sí mismos programas lineales, como el problema de encontrar el círculo más pequeño que contenga un conjunto dado de puntos planos. Pueden resolverse mediante una combinación de algoritmos aleatorios en una cantidad de tiempo que es lineal en el número de elementos que definen el problema y subexponencial en la dimensión del problema.
Los problemas de tipo LP fueron definidos por Sharir y Welzl (1992) como problemas en los que se da como entrada un conjunto finito S de elementos y una función f que asigna subconjuntos de S a valores de un conjunto totalmente ordenado. La función debe satisfacer dos propiedades clave:
Una base de un problema de tipo LP es un conjunto B ⊆ S con la propiedad de que cada subconjunto propio de B tiene un valor de f menor que B mismo, y la dimensión (o dimensión combinatoria ) de un problema de tipo LP se define como la cardinalidad máxima de una base.
Se supone que un algoritmo de optimización puede evaluar la función f solo en conjuntos que son bases en sí mismos o que se forman agregando un solo elemento a una base. Alternativamente, el algoritmo puede restringirse a dos operaciones primitivas: una prueba de violación que determina, para una base B y un elemento x , si f ( B ) = f ( B ∪ { x }) , y un cálculo de base que (con las mismas entradas) encuentra una base de B ∪ { x }. La tarea que debe realizar el algoritmo es evaluar f ( S ) utilizando solo estas evaluaciones restringidas o primitivas.
Un programa lineal puede definirse por un sistema de d variables reales no negativas , sujeto a n restricciones de desigualdad lineal, junto con una función objetivo lineal no negativa a minimizar. Esto puede ubicarse en el marco de problemas de tipo LP dejando que S sea el conjunto de restricciones y definiendo f ( A ) (para un subconjunto A de las restricciones) como el valor mínimo de la función objetivo del programa lineal más pequeño definido por A . Con suposiciones de posición general adecuadas (para evitar que múltiples puntos de solución tengan el mismo valor óptimo de la función objetivo), esto satisface los requisitos de monotonía y localidad de un problema de tipo LP, y tiene una dimensión combinatoria igual al número d de variables. [1] De manera similar, un programa entero (que consiste en una colección de restricciones lineales y una función objetivo lineal, como en un programa lineal, pero con la restricción adicional de que las variables deben tomar solo valores enteros) satisface tanto las propiedades de monotonía como de localidad de un problema de tipo LP, con las mismas suposiciones de posición general que para los programas lineales. Los teoremas de Bell (1977) y Scarf (1977) muestran que, para un programa entero con d variables, la dimensión combinatoria es como máximo 2 d . [1]
Muchos problemas de optimización natural en geometría computacional son de tipo LP:
Los problemas de tipo LP también se han utilizado para determinar los resultados óptimos de ciertos juegos en la teoría de juegos algorítmicos , [11] mejorar la colocación de vértices en mallas de métodos de elementos finitos , [12] resolver problemas de ubicación de instalaciones , [13] analizar la complejidad temporal de ciertos algoritmos de búsqueda de tiempo exponencial, [14] y reconstruir las posiciones tridimensionales de los objetos a partir de sus imágenes bidimensionales. [15]
Seidel (1991) presentó un algoritmo para programación lineal de baja dimensión que puede adaptarse al marco de problemas de tipo LP. El algoritmo de Seidel toma como entrada el conjunto S y un conjunto separado X (inicialmente vacío) de elementos que se sabe que pertenecen a la base óptima. Luego considera los elementos restantes uno por uno en un orden aleatorio, realiza pruebas de violación para cada uno y, dependiendo del resultado, realiza una llamada recursiva al mismo algoritmo con un conjunto más grande de elementos de base conocidos. Puede expresarse con el siguiente pseudocódigo:
función seidel( S , f , X ) es R := conjunto vacío B := X para x en una permutación aleatoria de S : si f ( B ) ≠ f ( B ∪ { x }): B := seidel( R , f , X ∪ { x }) R := R ∪ { x } devuelve B
En un problema con dimensión combinatoria d , la prueba de violación en la iteración i ésima del algoritmo falla solo cuando x es uno de los d − | X | elementos base restantes, lo que ocurre con una probabilidad de como máximo ( d − | X |)/ i . Con base en este cálculo, se puede demostrar que, en general, el número esperado de pruebas de violación realizadas por el algoritmo es O( d ! n) , lineal en n pero peor que exponencial en d .
Clarkson (1995) define dos algoritmos, un algoritmo recursivo y un algoritmo iterativo, para la programación lineal basada en técnicas de muestreo aleatorio, y sugiere una combinación de los dos que llama al algoritmo iterativo desde el algoritmo recursivo. El algoritmo recursivo elige repetidamente muestras aleatorias cuyo tamaño es aproximadamente la raíz cuadrada del tamaño de entrada, resuelve el problema muestreado de forma recursiva y luego utiliza pruebas de violación para encontrar un subconjunto de los elementos restantes que deben incluir al menos un elemento base:
función recursiva( S , f ) es X := conjunto vacío repetir R := un subconjunto aleatorio de S con tamaño d√n B := base para R ∪ X , calculada recursivamente V := { x | f ( B ) ≠ f ( B ∪ { x })} X := X ∪ V hasta que V esté vacío devolver B
En cada iteración, el tamaño esperado de V es O( √ n ) , [16] y siempre que V no esté vacío incluye al menos un nuevo elemento de la base eventual de S . Por lo tanto, el algoritmo realiza como máximo d iteraciones, cada una de las cuales realiza n pruebas de violación y hace una única llamada recursiva a un subproblema de tamaño O( d √ n ) .
El algoritmo iterativo de Clarkson asigna pesos a cada elemento de S , inicialmente todos ellos iguales. Luego elige un conjunto R de 9 d 2 elementos de S al azar, y calcula los conjuntos B y V como en el algoritmo anterior. Si el peso total de V es como máximo 2/(9 d − 1) veces el peso total de S (como sucede con probabilidad constante), entonces el algoritmo duplica los pesos de cada elemento de V , y como antes, repite este proceso hasta que V se vacía. En cada iteración, se puede demostrar que el peso de la base óptima aumenta a una tasa mayor que el peso total de S , de lo que se deduce que el algoritmo debe terminar dentro de O(log n ) iteraciones.
Al utilizar el algoritmo recursivo para resolver un problema dado, cambiar al algoritmo iterativo para sus llamadas recursivas y luego cambiar nuevamente al algoritmo de Seidel para las llamadas realizadas por el algoritmo iterativo, es posible resolver un problema de tipo LP dado utilizando pruebas de violación O( dn + d ! d O(1) log n ) .
Cuando se aplica a un programa lineal, este algoritmo puede interpretarse como un método símplex dual . [17] Con ciertas primitivas computacionales adicionales más allá de la prueba de violación y las primitivas de cálculo de base, este método puede volverse determinista. [18]
Matoušek, Sharir y Welzl (1996) describen un algoritmo que utiliza una propiedad adicional de los programas lineales que no siempre se cumple en otros problemas de tipo LP, es decir, que todas las bases tienen la misma cardinalidad entre sí. Si un problema de tipo LP no tiene esta propiedad, se puede hacer que la tenga añadiendo d nuevos elementos ficticios y modificando la función f para que devuelva el par ordenado de su antiguo valor f ( A ) y del número min( d ,| A |) , ordenado lexicográficamente .
En lugar de añadir elementos de S de a uno por vez, o buscar muestras de los elementos, Matoušek, Sharir y Welzl (1996) describen un algoritmo que elimina elementos de a uno por vez. En cada paso mantiene una base C que inicialmente puede ser el conjunto de elementos ficticios. Puede describirse con el siguiente pseudocódigo:
función msw( S , f , C ) es si S = C entonces devuelve C elige un elemento aleatorio x de S \ C B = msw( S \ x , f , C ) si f ( B ) ≠ f(B ∪ {x}) entonces B := base( B ∪ { x }) B := msw( S , f , B ) devuelve B
En la mayoría de las llamadas recursivas del algoritmo, la prueba de violación tiene éxito y se omite la declaración if. Sin embargo, con una pequeña probabilidad, la prueba de violación falla y el algoritmo realiza un cálculo de base adicional y luego una llamada recursiva adicional. Como muestran los autores, el tiempo esperado para el algoritmo es lineal en n y exponencial en la raíz cuadrada de d log n . Al combinar este método con los procedimientos recursivos e iterativos de Clarkson, estas dos formas de dependencia del tiempo se pueden separar entre sí, lo que da como resultado un algoritmo que realiza O( dn ) pruebas de violación en el algoritmo recursivo externo y un número que es exponencial en la raíz cuadrada de d log d en los niveles inferiores del algoritmo. [19]
Matoušek (1995) considera una variación de los problemas de optimización de tipo LP en los que se da, junto con el conjunto S y la función objetivo f , un número k ; la tarea es eliminar k elementos de S para hacer que la función objetivo en el conjunto restante sea lo más pequeña posible. Por ejemplo, cuando se aplica al problema del círculo más pequeño, esto daría el círculo más pequeño que contiene todos menos k de un conjunto dado de puntos planares. Muestra que, para todos los problemas de tipo LP no degenerados (es decir, problemas en los que todas las bases tienen valores distintos) este problema puede resolverse en tiempo O( nk d ) , resolviendo un conjunto de O( k d ) problemas de tipo LP definidos por subconjuntos de S .
Algunos problemas de optimización geométrica pueden expresarse como problemas de tipo LP en los que el número de elementos en la formulación de tipo LP es significativamente mayor que el número de valores de datos de entrada para el problema de optimización. Como ejemplo, considere una colección de n puntos en el plano, cada uno moviéndose con velocidad constante. En cualquier punto en el tiempo, el diámetro de este sistema es la distancia máxima entre dos de sus puntos. El problema de encontrar un momento en el que se minimice el diámetro puede formularse como la minimización del máximo puntual de O( n 2 ) funciones cuasiconvexas, una para cada par de puntos, midiendo la distancia euclidiana entre el par como una función del tiempo. Por lo tanto, puede resolverse como un problema de tipo LP de dimensión combinatoria dos en un conjunto de O( n 2 ) elementos, pero este conjunto es significativamente mayor que el número de puntos de entrada. [20]
Chan (2004) describe un algoritmo para resolver problemas de tipo LP definidos implícitamente como éste, en el que cada elemento de tipo LP está determinado por una k -tupla de valores de entrada, para una constante k . Para aplicar su enfoque, debe existir un algoritmo de decisión que pueda determinar, para una base de tipo LP dada B y un conjunto S de n valores de entrada, si B es una base para el problema de tipo LP determinado por S.
El algoritmo de Chan realiza los siguientes pasos:
Suponiendo que el algoritmo de decisión toma una cantidad de tiempo O( T ( n )) que crece al menos polinomialmente como función del tamaño de entrada n , Chan muestra que el umbral para cambiar a una formulación LP explícita y el número de subconjuntos en la partición se pueden elegir de tal manera que el algoritmo de optimización de tipo LP implícito también se ejecute en el tiempo O( T ( n )) .
Por ejemplo, para el diámetro mínimo de puntos móviles, el algoritmo de decisión solo necesita calcular el diámetro de un conjunto de puntos en un tiempo fijo, un problema que se puede resolver en tiempo O( n log n ) utilizando la técnica de calibradores rotatorios . Por lo tanto, el algoritmo de Chan para encontrar el tiempo en el que se minimiza el diámetro también toma tiempo O( n log n ) . Chan utiliza este método para encontrar un punto de profundidad máxima de Tukey entre una colección dada de n puntos en el espacio euclidiano d -dimensional, en tiempo O( n d − 1 + n log n ) . Una técnica similar fue utilizada por Braß, Heinrich-Litan y Morin (2003) para encontrar un punto de profundidad máxima de Tukey para la distribución uniforme en un polígono convexo.
El descubrimiento de algoritmos de tiempo lineal para programación lineal y la observación de que los mismos algoritmos podrían en muchos casos usarse para resolver problemas de optimización geométrica que no fueran programas lineales se remonta al menos a Megiddo (1983, 1984), quien proporcionó un algoritmo de tiempo esperado lineal tanto para programas lineales de tres variables como para el problema del círculo más pequeño. Sin embargo, Megiddo formuló la generalización de la programación lineal geométricamente en lugar de combinatoriamente, como un problema de optimización convexa en lugar de como un problema abstracto sobre sistemas de conjuntos. De manera similar, Dyer (1986) y Clarkson (en la versión de conferencia de 1988 de Clarkson 1995) observaron que sus métodos podían aplicarse tanto a programas convexos como a programas lineales. Dyer (1992) demostró que el problema del elipsoide envolvente mínimo también podía formularse como un problema de optimización convexa agregando un pequeño número de restricciones no lineales. El uso de la aleatorización para mejorar los límites de tiempo para la programación lineal de baja dimensión y problemas relacionados fue iniciado por Clarkson y por Dyer y Frieze (1989).
La definición de problemas de tipo LP en términos de funciones que satisfacen los axiomas de localidad y monotonía es de Sharir & Welzl (1992), pero otros autores en el mismo período de tiempo formularon generalizaciones combinatorias alternativas de programas lineales. Por ejemplo, en un marco desarrollado por Gärtner (1995), la función f se reemplaza por un ordenamiento total en los subconjuntos de S . Es posible romper los empates en un problema de tipo LP para crear un ordenamiento total, pero solo a expensas de un aumento en la dimensión combinatoria. [21] Además, como en los problemas de tipo LP, Gärtner define ciertas primitivas para realizar cálculos en subconjuntos de elementos; sin embargo, su formalización no tiene un análogo de la dimensión combinatoria.
Otra generalización abstracta tanto de los programas lineales como de los problemas de complementariedad lineal , formulada por Stickney y Watson (1978) y estudiada posteriormente por varios otros autores, se refiere a las orientaciones de las aristas de un hipercubo con la propiedad de que cada cara del hipercubo (incluido el hipercubo completo como cara) tiene un único sumidero , un vértice sin aristas salientes. Una orientación de este tipo puede formarse a partir de un problema de tipo LP haciendo corresponder los subconjuntos de S con los vértices de un hipercubo de tal manera que dos subconjuntos difieran en un único elemento si y solo si los vértices correspondientes son adyacentes, y orientando la arista entre conjuntos vecinos A ⊆ B hacia B si f ( A ) ≠ f ( B ) y hacia A en caso contrario. La orientación resultante tiene la propiedad adicional de que forma un gráfico acíclico dirigido , a partir del cual se puede demostrar que un algoritmo aleatorio puede encontrar el sumidero único de todo el hipercubo (la base óptima del problema de tipo LP) en un número de pasos exponencial en la raíz cuadrada de n . [22]
El marco de trabajo más reciente de los espacios violadores generaliza los problemas de tipo PL, en el sentido de que cada problema de tipo PL puede ser modelado por un espacio violador, pero no necesariamente al revés. Los espacios violadores se definen de manera similar a los problemas de tipo PL, por una función f que asigna conjuntos a valores de la función objetivo, pero los valores de f no están ordenados. A pesar de la falta de ordenación, cada conjunto S tiene un conjunto bien definido de bases (los conjuntos mínimos con el mismo valor que el conjunto completo) que se pueden encontrar mediante variaciones de los algoritmos de Clarkson para problemas de tipo PL. De hecho, se ha demostrado que los espacios violadores caracterizan exactamente los sistemas que se pueden resolver mediante los algoritmos de Clarkson. [23]
{{citation}}
: Mantenimiento de CS1: falta la ubicación del editor ( enlace ).