Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir...

51
Programación lineal Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 5 de marzo del 2013 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 1 / 51

Transcript of Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir...

Page 1: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal

Dr. Eduardo A. RODRÍGUEZ TELLO

CINVESTAV-Tamaulipas

5 de marzo del 2013

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 1 / 51

Page 2: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

1 Programación linealIntroducciónPL en espacios dimensionales mayoresPL en dos dimensionesConstrucción determinística incrementalAnálisis de complejidadAlgoritmo aleatorizadoAnálisis inverso para PL aleatorizada

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 2 / 51

Page 3: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal

El material de esta clase está basado en el capítulo 4 del libro:Mark de Berg, Otfried Cheong, Marc van Kreveld and MarkOvermars. Computational Geometry: Algorithms and Applications.Springer, 3rd edition (April 16, 2008), ISBN-10: 3540779736.

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 3 / 51

Page 4: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Introducción

1 Programación linealIntroducciónPL en espacios dimensionales mayoresPL en dos dimensionesConstrucción determinística incrementalAnálisis de complejidadAlgoritmo aleatorizadoAnálisis inverso para PL aleatorizada

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 4 / 51

Page 5: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Introducción

Introducción

La última clase se estudió el problema del cálculo de laintersección de n semiplanos, y presentó un algoritmo óptimoO(n log n) para este problema

En muchas aplicaciones no es importante conocer todo elpolígono (o, en general todo el poliedro en dimensiones mayores),sino sólo encontrar un punto particular de interés

Una aplicación especialmente importante es la de ProgramaciónLineal (PL)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 5 / 51

Page 6: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Introducción

Introducción

En PL se nos da un conjunto de desigualdades lineales, orestricciones, que podemos ver como la definición de un poliedro(posiblemente vacío o no acotado) en el espacio, conocido comoregión factible

También se da una función objetivo lineal, la cual debe serminimizada o maximizada sujeta a las restricciones

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 6 / 51

Page 7: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Introducción

Introducción

La descripción típica de un problema de programación lineald-dimensional pueden ser:

Maximizar: c1x1 + · · ·+ cdxdSujeto a: a1,1x1 + · · ·+ a1,dxd ≤ b1

a2,1x1 + · · ·+ a2,dxd ≤ b2...an,1x1 + · · ·+ an,dxd ≤ bn

(1)

donde ai,j, ci, y bi son números reales

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 7 / 51

Page 8: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Introducción

Introducción

Esto también puede ser expresado en notación matricial de lasiguiente forma:

Maximizar: cTx,Sujeto a: Ax ≤ b (2)

donde c y x son vectores d-dimensionales, b es un vectorn-dimensional y A es una matriz de n× d

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 8 / 51

Page 9: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Introducción

Introducción

Desde una perspectiva geométrica, la región factible es laintersección de semiespacios, por lo tanto, es un poliedro convexo(posiblemente no acotado) en el d-espacio

Podemos pensar en la función objetivo como un vector~c, y elproblema es encontrar el punto de la región factible que es máslejano en la dirección~c, llamado vértice óptimo

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 9 / 51

Page 10: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Introducción

Introducción

Programación lineal en 2 dimensiones

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 10 / 51

Page 11: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Introducción

Introducción

Tenga en cuenta que la magnitud de~c es irrelevante, ya que elproblema permanece sin cambios para cualquier escalar positivomúltiplo de~c

En muchos de nuestros ejemplos, vamos a imaginar que~c es elvector que apunta hacia abajo (es decir,~c = (0,−1)), y por lo tanto,el problema es sólo el de encontrar el punto más bajo (con mínimacoordenada y) de la región factible

Esto no implica pérdida de generalidad, ya que siempre es posibletransformar el problema en uno en el que~c = (0,−1) medianteuna rotación adecuada

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 11 / 51

Page 12: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Introducción

Introducción

Existen tres posibles resultados para un determinado problema dePL:

Factible: El punto extremo existe (y suponiendo la posición generales único) como un vértice de la región factibleNo factible: La región factible es no acotada, y por lo tanto, no haysoluciónNo acotado: La región factible es no acotada en la dirección de lafunción objetivo, por lo que no existe solución óptima finita

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 12 / 51

Page 13: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Introducción

Introducción

Como se mencionó anteriormente, sin la suposición de la posicióngeneral, es posible que un problema de PL factible tenga unnúmero infinito de soluciones óptimas (finitas) de igual valor

Esto sucede cuando una arista o cara de la región factible esortogonal al vector de la función objetivo

En estos casos es común romper los empates de alguna manerapara producir una solución única

Por ejemplo, podríamos exigir que la solución sealexicográficamente máxima, es decir, entre todas las solucionesóptimas seleccionar una con el vector lexicográfico máximo

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 13 / 51

Page 14: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal PL en espacios dimensionales mayores

1 Programación linealIntroducciónPL en espacios dimensionales mayoresPL en dos dimensionesConstrucción determinística incrementalAnálisis de complejidadAlgoritmo aleatorizadoAnálisis inverso para PL aleatorizada

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 14 / 51

Page 15: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal PL en espacios dimensionales mayores

PL en espacios dimensionales mayores

La PL es una técnica muy importante utilizada en la solución deproblemas de optimización de gran tamaño

Las instancias típicas pueden comprender cientos de miles derestricciones en un espacio altamente dimensional

Es sin duda una de las formulaciones más importantes deproblemas generales de optimización

Los principales métodos utilizados para la solución de problemasde PL altamente dimensionales son el algoritmo simplex ydiversos métodos de punto interior

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 15 / 51

Page 16: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal PL en espacios dimensionales mayores

PL en espacios dimensionales mayores

El algoritmo simplex trabaja encontrando un vértice en el poliedrode la región factible, y luego camina arista por arista hacia abajohasta llegar a un mínimo local

Por convexidad, el mínimo local es el mínimo global

Es bien conocido que existen casos en los que el algoritmo simplexse ejecuta en tiempo exponencial

La incógnita de si la PL ere resoluble en tiempo polinomial semantuvo sin respuesta hasta que Khachiyan publicó su algoritmodel elipsoide (a finales de los 70) y Karmarkar un algoritmo máspráctico de punto interior (a mediados de los 80)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 16 / 51

Page 17: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal PL en dos dimensiones

1 Programación linealIntroducciónPL en espacios dimensionales mayoresPL en dos dimensionesConstrucción determinística incrementalAnálisis de complejidadAlgoritmo aleatorizadoAnálisis inverso para PL aleatorizada

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 17 / 51

Page 18: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal PL en dos dimensiones

PL en dos dimensiones

Nos limitaremos a estudiar en esta clase instancias de PL de bajadimensionalidad

Existen varios problemas interesantes de optimización que sepueden plantear como un problema de PL de bajadimensionalidad, o como problemas de optimizaciónestrechamente relacionados

Un ejemplo es el problema de encontrar el círculo de radiomínimo que encierra un conjunto de n puntos (capítulo 4 libro deBerg et al.)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 18 / 51

Page 19: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal PL en dos dimensiones

PL en dos dimensiones

Consideremos por ahora el problema sólo en el plano

Aquí sabemos que existe un algoritmo O(n log n) basado sólo enel cálculo del poliedro factible, y encontrando su vértice más abajo

Sin embargo, ya que sólo estamos interesados en un punto delpoliedro, parece que podemos esperar hacerlo de manera máseficiente

Además, en un espacio d dimensional, un politopo delimitado porn semiespacios puede tener una complejidad máxima de Ω(nbd/2c)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 19 / 51

Page 20: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal PL en dos dimensiones

PL en dos dimensiones

Mostraremos que los problemas de PL en 2 dimensiones puedenresolverse en tiempo O(n)

Este algoritmo puede ser aplicado en cualquier dimensión d, peroel factor constante oculto por la notación asintótica crece como d!,por lo que no es práctico, excepto para dimensiones muypequeñas

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 20 / 51

Page 21: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal PL en dos dimensiones

PL en dos dimensiones

Supongamos que se nos da un conjunto de n desigualdadeslineales (semiplanos) H = h1, . . . , hn de la forma:

hi : ai,xx + ai,yy ≤ bi (3)

y una función objetivo diferente de cero dada por el vector~c = (cx, cy)

El problema es determinar si la instancia de PL es factible yacotada, y si lo es, calcular el punto factible p = (px, py) quemaximiza el producto punto cxpx + cypy (tratando p como vector)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 21 / 51

Page 22: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal PL en dos dimensiones

PL en dos dimensiones

Por lo tanto, asumiremos que~c = (0,−1)

Note que a medida que se decrementa la coordenada y de unpunto, el valor de la función objetivo se incrementa

De esta forma más grande no significa mejor

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 22 / 51

Page 23: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal PL en dos dimensiones

PL en dos dimensiones

Los dos algoritmos de PL que vamos a discutir son muy simples yse basan en un método llamado construcción incremental

Un método es determinístico y el otro es aleatorizado (nodeterminístico)

El método de construcción incremental es una de las técnicasalgorítmicas más comunes en geometría computacional, y esta esotra razón importante por la cual estudiar el problema de PL

En primer lugar, analizaremos el algoritmo determinísticoincremental

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 23 / 51

Page 24: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Construcción determinística incremental

1 Programación linealIntroducciónPL en espacios dimensionales mayoresPL en dos dimensionesConstrucción determinística incrementalAnálisis de complejidadAlgoritmo aleatorizadoAnálisis inverso para PL aleatorizada

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 24 / 51

Page 25: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Construcción determinística incremental

Construcción determinística incremental

Supongamos por ahora que la instancia del problema de PL esacotada, y además podemos encontrar dos semiplanos cuyaintersección (un cono) es acotada con respecto a la funciónobjetivo

El libro de Berg et al. explica cómo tratar estos casos especiales enun tiempo O(n) adicional

Vamos a suponer que los semiplanos están numerados como h1 yh2, y que v2 denota este primer vértice óptimo, donde las doslíneas asociadas a estos semiplanos se intersectan

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 25 / 51

Page 26: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Construcción determinística incremental

Construcción determinística incremental

A continuación, añadiremos los semiplanos uno por uno,h3, h4, . . . , y con cada adición se actualiza el vértice óptimo

Sea vi el vértice óptimo factible después de la adición deh1, h2, . . . , hi

El problema consiste en actualizar vi con cada nueva adición

Tenga en cuenta que con cada nueva restricción, la región factiblegeneralmente se reduce, y por tanto el valor de la función objetivoen el vértice óptimo sólo puede decrecer

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 26 / 51

Page 27: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Construcción determinística incremental

Construcción determinística incremental

Hay dos casos que pueden surgir cuando se agrega hi

En el primer caso, vi−1 se encuentra dentro del semiplano hi, porlo que cumple esta restricción

Si es así, entonces es fácil ver que el mejor vértice no cambia, i.e.vi = vi−1

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 27 / 51

Page 28: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Construcción determinística incremental

Construcción determinística incremental

En el segundo caso, vi−1 viola la restricción hi por lo que tenemosque encontrar un nuevo vértice óptimo

Vamos a examinar este segundo caso con mayor detalle

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 28 / 51

Page 29: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Construcción determinística incremental

Construcción determinística incremental

Una observación importante es que (suponiendo que la regiónfactible no es vacía) el nuevo vértice óptimo deberá situarse en lalínea de que acota hi

Llamemos a esta línea `i

Nuestro libro de texto demuestra este hecho formalmente (serecomienda estudiar la demostración), pero aquí presentaremossólo un argumento intuitivo

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 29 / 51

Page 30: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Construcción determinística incremental

Construcción determinística incremental

Supongamos que el nuevo vértice óptimo no cae en `i

Dibujemos un segmento de línea de vi−1 al nuevo óptimo

Observemos que:Conforme caminamos a lo largo de este segmento el valor de lafunción objetivo decrece monótonamente (por linealidad)Este segmento debe cruzar `i (ya que pasa de ser no factible conrespecto a hi a ser factible). Por lo tanto, es maximizado en el puntode cruce, que cae en `i

Las propiedades de convexidad y linealidad son muy importantespara la demostración

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 30 / 51

Page 31: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Construcción determinística incremental

Construcción determinística incremental

Por lo tanto, surge la pregunta de cómo encontrar el vérticeóptimo situada en la línea `i

Este resulta ser un problema de PL 1-dimensional

Simplemente se intersectan cada uno de los semiplanos con estalínea

Cada intersección adoptará la forma de un rayo que cae en la línea

Podemos pensar que cada rayo representa un intervalo (noacotado a la izquierda ni a la derecha)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 31 / 51

Page 32: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Construcción determinística incremental

Construcción determinística incremental

Todo lo que necesitamos hacer es intersectar estos intervalos, yencontrar el punto que maximiza la función objetivo (es decir, elpunto más bajo)

Calcular la intersección de una colección de intervalos, es muyfácil y se puede resolver en tiempo lineal

Sólo tenemos que encontrar la cota superior más pequeña y la cotainferior más grande

Seleccionamos el punto que maximiza la función objetivo

Si este intervalo es vacío, entonces la región factible es vacía, yterminamos reportando que no existe solución

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 32 / 51

Page 33: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Construcción determinística incremental

Construcción determinística incremental

Observe que hemos resuelto un problema de PL 2-dimensionalmediante una reducción a un problema de PL 1-dimensional (quees fácil de resolver)

Este enfoque general se pueden aplicar a la solución de problemasPL en cualquier dimensión, mediante la reducción repetida aproblemas de PL en la dimensión inmediatamente inferior

Siempre que el vértice óptimo actual no sea factible

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 33 / 51

Page 34: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Construcción determinística incremental

Construcción determinística incremental

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 34 / 51

Page 35: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Análisis de complejidad

1 Programación linealIntroducciónPL en espacios dimensionales mayoresPL en dos dimensionesConstrucción determinística incrementalAnálisis de complejidadAlgoritmo aleatorizadoAnálisis inverso para PL aleatorizada

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 35 / 51

Page 36: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Análisis de complejidad

Análisis de complejidad

¿Cuál es el tiempo de ejecución para el peor caso de estealgoritmo?

Hay aproximadamente n inserciones de semiespacios

En el paso i, podemos encontrar, ya sea que el vértice óptimoactual es factible, en cuyo caso el tiempo de transformación esconstante

O que el vértice óptimo actual es no factible, entonces tenemos queresolver un programa lineal 1-dimensional con i− 1 restricciones

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 36 / 51

Page 37: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Análisis de complejidad

Análisis de complejidad

En el peor de los casos, este segundo paso se produce todo eltiempo, por lo que el tiempo de ejecución está determinado por lasumatoria:

n∑i=3

(i− 1) ≤n−1∑i=1

i =n(n− 1)

2= O(n2) (4)

Esto a partir de propiedades conocidas de las sumatorias

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 37 / 51

Page 38: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Análisis de complejidad

Análisis de complejidad

Sin embargo observe que este peor caso se basa más bien en lasuposición pesimista de que el vértice actual es casi siempre nofactible

A continuación se estudiará si este supuesto es razonable, y lamejor manera de tratar esta situación

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 38 / 51

Page 39: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Algoritmo aleatorizado

1 Programación linealIntroducciónPL en espacios dimensionales mayoresPL en dos dimensionesConstrucción determinística incrementalAnálisis de complejidadAlgoritmo aleatorizadoAnálisis inverso para PL aleatorizada

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 39 / 51

Page 40: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Algoritmo aleatorizado

Algoritmo aleatorizado

El tiempo de ejecución O(n2) del algoritmo determinísticoincremental no es muy favorable

Esto considerando que se podría calcular la totalidad de la regiónfactible en tiempo O(n log n)

Pero se ha presentado ya que conduce a un muy elegantealgoritmo aleatorizado cuyo tiempo esperado de ejecución es O(n)

Tenga en cuenta que la expectativa es sobre la secuencia denúmeros aleatorios, y no depende de ninguna suposiciónprobabilística sobre la distribución de los datos de entrada

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 40 / 51

Page 41: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Algoritmo aleatorizado

Algoritmo aleatorizado

El algoritmo funciona exactamente de la misma manera, peroinsertamos los semiplanos en orden aleatorio, cada vezactualizando la respuesta en base a los semiplanos existentes

Este es un ejemplo de una clase general de algoritmos llamadosalgoritmos aleatorizados incrementales

Sólo hay una diferencia entre este tipo de algoritmos y losdeterminísticos incrementales que acabamos de estudiar

La diferencia es que justo antes de ejecutar el algoritmoincremental, se llama un procedimiento que permutaaleatoriamente la lista de entrada inicial

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 41 / 51

Page 42: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Algoritmo aleatorizado

Algoritmo aleatorizado

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 42 / 51

Page 43: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Análisis inverso para PL aleatorizada

1 Programación linealIntroducciónPL en espacios dimensionales mayoresPL en dos dimensionesConstrucción determinística incrementalAnálisis de complejidadAlgoritmo aleatorizadoAnálisis inverso para PL aleatorizada

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 43 / 51

Page 44: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Análisis inverso para PL aleatorizada

Análisis inverso para PL aleatorizada

Vamos a analizar el tiempo de ejecución del algoritmoaleatorizado incremental de PL mediante una técnica conocidacomo análisis inverso (backwards analysis)

Para ello asumimos que el algoritmo ya terminó de ejecutarse yque devolvió el vértice vn

Sea pi la probabilidad de que la inserción del i-ésimo semiplano enel orden aleatorio resulte en un cambio en el vértice óptimo

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 44 / 51

Page 45: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Análisis inverso para PL aleatorizada

Análisis inverso para PL aleatorizada

Con probabilidad (1− pi) no hay cambio (caso 1), y nos toma untiempo O(1) determinar ésto (tiempo O(d) en general en ddimensiones)

Con probabilidad pi tenemos que invocar una instancia de PL1-dimensional sobre un conjunto de i− 1 semiplanos en ladimensión 1, lo cual implica un tiempo de ejecución O(i)

En general, si T(n, d) es el tiempo esperado de ejecución para nsemiespacios en d dimensiones, entonces el costo seríaT(i− 1, d− 1)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 45 / 51

Page 46: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Análisis inverso para PL aleatorizada

Análisis inverso para PL aleatorizada

Combinando esto tenemos un tiempo esperado total de ejecuciónde:

T(n) =

n∑i=1

((1− pi) · 1 + pi · i) ≤ n +

n∑i=1

pi · i (5)

Lo único que resta es determinar el valor de pi, para ello vamos aaplicar la misma técnica

Sea Si un subconjunto arbitrario consistente en i de los semiplanosoriginales

Entre todos las i! permutaciones posibles de Si, ¿en cuántas elvértice óptimo cambia con el i-ésimo paso?

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 46 / 51

Page 47: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Análisis inverso para PL aleatorizada

Análisis inverso para PL aleatorizada

Sea vi vértice óptimo para estos i semiplanos

Note que vi sólo depende del conjunto Si y no en el orden de suinserción

Asumiendo la posición general, hay dos semiplanos h′ y h′′ de Sipasando a través de vi

Si ninguno de ellos es el último insertado, entonces vi = vi−1, y nohay ningún cambio

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 47 / 51

Page 48: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Análisis inverso para PL aleatorizada

Análisis inverso para PL aleatorizada

Si h′ o h′′ fue el último insertado, entonces vi aún no existía, y porlo tanto el óptimo debió haber cambiado como resultado de estainserción

De esta manera, el óptimo cambia si y sólo h′ o h′′ fue el últimosemiplano insertado

Dado que todos los i semiplanos tienen la misma probabilidad deser los últimos en ser insertados, entonces esto ocurre conprobabilidad 2/i

Por lo que pi = 2/i

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 48 / 51

Page 49: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Análisis inverso para PL aleatorizada

Análisis inverso para PL aleatorizada

Para ilustrar esto, consideremos el ejemplo que se muestra en lasiguiente figura

Tenemos i = 7 semiplanos que han sido insertados aleatoriamentehasta el momento, y vi = v es el vértice óptimo actual que estádefinido por h4 y h8

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 49 / 51

Page 50: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Análisis inverso para PL aleatorizada

Análisis inverso para PL aleatorizada

Asumamos que el último semiplano insertado fue h5

Consideraremos la situación con todos los semiplanos excepto h5

Antes de ésto v ya había sido considerado como el vértice óptimo,por lo tanto insertar h5 tomó un tiempo O(1)

Por otro lado, si h8 fue el último en ser insertado, habríamostenido un vértice óptimo diferente, llamado v′ (el óptimo tambiéncambia si el último insertado fuera h4)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 50 / 51

Page 51: Dr. Eduardo A. RODRÍGUEZ Tertello/gc/sesion13.pdf · Los dos algoritmos de PL que vamos a discutir son muy simples y ... El libro de Berg et al. explica cómo tratar estos casos

Programación lineal Análisis inverso para PL aleatorizada

Análisis inverso para PL aleatorizada

En resumen, en 2 de 7 casos (h4 y h8) en la inserción i-ésimarequerimos resolver una instancia de PL 1-dimensional en tiempoO(i) y en 5 de 7 casos un tiempo O(1) es necesario

Volviendo a nuestro análisis, ya que pi = 2/i tenemos que:

T(n) ≤ n +

n∑i=1

pi · i = n +

n∑i=1

2ii

= n + 2n = O(n) (6)

Por lo tanto, el tiempo de ejecución esperado es lineal en n

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Programación lineal 5 de marzo del 2013 51 / 51