SlideShare una empresa de Scribd logo
Programación Entera Mixta
52 años de revolución en marcha
Luis M. Torres
Departamento de Matemática
Escuela Politécnica Nacional, Quito

XII Encuentro de Matemática y sus Aplicaciones
Quito, 2010

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

1 / 45
Hace 52 años...
1958
“Idea de un algoritmo para las
soluciones enteras a programas lineales”
Este (borrador de) paper marca el inicio de la
programación entera
...que tendrá un impacto
enorme sobre las técnicas de
optimización...

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

2 / 45
Hace 52 años...
1958
“Idea de un algoritmo para las
soluciones enteras a programas lineales”
Este (borrador de) paper marca el inicio de la
programación entera
...que tendrá un impacto
enorme sobre las técnicas de
optimización...

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

2 / 45
Hace 52 años...
1958
“Idea de un algoritmo para las
soluciones enteras a programas lineales”
Este (borrador de) paper marca el inicio de la
programación entera
...que tendrá un impacto
enorme sobre las técnicas de
optimización...

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

2 / 45
Un cambio revolucionario
Hoy en día modelos de optimización entera (mixta) se usan en:
planificación de sistemas de transportación
cadenas logísticas de abastecimiento
asignación de recursos escasos
diseño de redes robustas de telecomunicaciones
localización de servicios críticos
modelización de sistemas biológicos complejos
...

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

3 / 45
Ralph E. Gomory

1929:
1954:
1957:
1959:
1970:
1973:
1988:
1989:

Nace en Brooklyn, EEUU
Doctorado en la Universidad de Princeton
Profesorado Princeton
Ingresa al Área de Investigación de IBM
Director del Área de Investigación de IBM
Vicepresidente de IBM
Medalla Nacional de Ciencias
Presidente de la Fundación Alfred P. Sloan
para el desarrollo de la ciencia, tecnología,
educación, nivel de vida y productividad
económica
2008: Profesorado en la Universidad de Nueva
York

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

4 / 45
Antecedentes: Programación Lineal

1939
L. V. Kantorovitch: Modelo de aginación óptima de recursos escasos
en un proceso productivo. Sienta las bases para la programación
lineal.

1947
G. B. Dantzig: Modelo para encontrar “programas” óptimos
concernientes a aspectos logísticos militares. Invención del algoritmo
del simplex.

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

5 / 45
George B. Dantzig (1914 - 2005)
1914: Nace en Portland, Oregón, EEUU
1941: Interrumpe doctorado en Berkeley, ingresa la USAF; en la División de Análisis
de Combate, trabaja en la elaboración de
“programas” para operaciones militares
1946: Termina doctorado en Berkeley, retorna a
la USAF
1947: Formula modelo lineal para automatizar
programas y diseña un algoritmo para su
solución: el simplex!
1948: T. J. Koopmans acuña el término
“Programación Lineal”
1952:
1960:
1966:
1976:
1982:

Continúa desarrollo del simplex desde la coorporación RAND
Acepta profesorado en Berkeley
Cambia a la Universidad de Standford
Obtiene Medalla Nacional al Mérito Científico
La Mathematical Programming Society instaura el Premio Dantzig,
entregado cada 3 años
Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

6 / 45
Leonid V. Kantorovich (1912 - 1986)
1912: Nace en Petersburgo, Rusia
1930: Doctorado en matemáticas en la Univ.
Leningrado
1934: Profesorado en Leningrado
1939: Estudia el problema de asignación de recursos escasos y propone técnicas pioneras de solución (“precursor del simplex”)
1961: Dirige Dpto. Matemáticas y Economía de
la zona siberiana de la URSS
1964: Elegido miembro de la Academia de Ciencias de la URSS
1971: Dirige un centro de investigación del Instituto Nacional de Planificación
Económica de Moscú
1976: Comparte Premio Nobel en Economía con T. J. Koopmans

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

7 / 45
Los temas de hoy...

¿Qué es la programación lineal entera?

¿Dónde aparecen PLEs en la solución de problemas
prácticos?

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

8 / 45
Los temas de hoy...

¿Qué es la programación lineal entera?

¿Dónde aparecen PLEs en la solución de problemas
prácticos?

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

8 / 45
Outline

1

Aplicaciones prácticas

2

Programas lineales

3

Programas lineales enteros (mixtos)

4

¿Dónde estamos hoy?

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

9 / 45
Aplicaciones prácticas

Outline

1

Aplicaciones prácticas

2

Programas lineales

3

Programas lineales enteros (mixtos)

4

¿Dónde estamos hoy?

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

10 / 45
Aplicaciones prácticas

El problema de la dieta
Problema: [Stigler, 1939]
Dado un conjunto de alimentos, encontrar una dieta de costo mínimo que permita satisfacer ciertos requerimientos nutricionales
Alimentos
papas
Costo

arroz

carne

fréjol

2.0

0.9

5.0

1.5

Calorías

2000

2200

5000

2500

Carbohid.

1200

1100

400

800

Proteínas

150

160

450

400

50

45

120

40

Grasas

Luis M. Torres

Programación Entera Mixta

George J. Stigler
Premio Nobel en
Economía 1982

XII Encuentro de Matemática

11 / 45
Aplicaciones prácticas

El problema de la dieta
Idea:
Definir una variable de decisión xi para la cantidad de cada alimento
Expresar el costo de la dieta como una función objetivo
Expresar los requerimientos nutricionales como restricciones
min 2,0x1 + 0,9x2 + 5,0x3 + 1,5x4
s.a.r
20x1 + 22x2 + 50x3 + 25x4 ≥ 20

(calorías)

12x1 + 11x2 + 4x3 + 8x4 ≥ 15

(carbohidratos)

15x1 + 16x2 + 45x3 + 40x4 ≥ 30

(proteínas)

50x1 + 45x2 + 120x3 + 40x4 ≤ 80

(grasas)

xi ≥ 0,

Luis M. Torres

∀1 ≤ i ≤ 4

Programación Entera Mixta

XII Encuentro de Matemática

12 / 45
Aplicaciones prácticas

El problema de la dieta

Un problema de la dieta con 77 variables y 9 restricciones fue
resuelto “al tanteo” por Stigler en 1939:
Encontró una solución de costo $39.93
“Parece no haber un método matemático directo para encontrar el
mínimo de una función lineal sujeta a restricciones lineales”
En 1947 Laderman empleó el (recién creado) simplex para
encontrar la solución óptima:
Luego de 120 días-hombre de cálculo...
...demostró que la dieta óptima tenía un valor de $39.69!!!

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

13 / 45
Aplicaciones prácticas

El problema de la dieta

Un problema de la dieta con 77 variables y 9 restricciones fue
resuelto “al tanteo” por Stigler en 1939:
Encontró una solución de costo $39.93
“Parece no haber un método matemático directo para encontrar el
mínimo de una función lineal sujeta a restricciones lineales”
En 1947 Laderman empleó el (recién creado) simplex para
encontrar la solución óptima:
Luego de 120 días-hombre de cálculo...
...demostró que la dieta óptima tenía un valor de $39.69!!!

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

13 / 45
Aplicaciones prácticas

El problema de la dieta

Un problema de la dieta con 77 variables y 9 restricciones fue
resuelto “al tanteo” por Stigler en 1939:
Encontró una solución de costo $39.93
“Parece no haber un método matemático directo para encontrar el
mínimo de una función lineal sujeta a restricciones lineales”
En 1947 Laderman empleó el (recién creado) simplex para
encontrar la solución óptima:
Luego de 120 días-hombre de cálculo...
...demostró que la dieta óptima tenía un valor de $39.69!!!

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

13 / 45
Aplicaciones prácticas

El problema del agente viajero (TSP)
Problema:
Dado un conjunto de ciudades, determinar la ruta más corta para
visitar exactamente una vez cada ciudad y retornar al punto de partida.

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

14 / 45
Aplicaciones prácticas

El problema del agente viajero (TSP)
El TSP ha recibido siempre amplia atención mediática:

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

15 / 45
Aplicaciones prácticas

El problema del agente viajero (TSP)
Algunos récords mundiales:
1954
1971
1975
1977
1980
1987
1987
1987
1994
1998
2001
2004
2006

Dantzig, Fulkerson & Johnson
Held & Karp
Camerini, Fratta & Maffioli
Grötschel
Crowder & Padberg
Padberg & Rinaldi
Grötschel & Holland
Padberg & Rinaldi
Applegate, Bixby, Chvátal & Cook
Applegate, Bixby, Chvátal & Cook
Applegate, Bixby, Chvátal & Cook
Applegate, Bixby, Chvátal, Cook, & Helsgaun
Applegate, Bixby, Chvátal, Cook, Espinoza, Goycoolea & Helsgaun

49
64
67
120
318
532
666
2,392
7,397
13,509
15,112
24,978
85,900

Fuente: http://www.tsp.gatech.edu/index.html
Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

16 / 45
Aplicaciones prácticas

El problema del agente viajero (TSP)
La “vuelta al mundo” de Martin Grötschel:

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

17 / 45
Aplicaciones prácticas

El problema del agente viajero (TSP)
El TSP “geográfica” más grande es Sueco...

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

18 / 45
Aplicaciones prácticas

El problema del agente viajero (TSP)
...pero el campeón es un circuito!!! (85.900 “ciudades”)

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

19 / 45
Aplicaciones prácticas

El problema del agente viajero (TSP)
Idea:
Emplear variables de decisión binarias para indicar cuáles conexiones
entre las ciudades (“aristas”) son seleccionadas en la ruta (“tour”):
⇔

xij = 1
min

arista ij forma parte del tour
dij xij

i=j

s.a.r
xij = 2,

∀i ∈ V ,

j=i

xij ≥ 2,

∀W ⊂ V , |W | ≥ 3,

ij∈δ(W )

xij ∈ {0, 1}
Luis M. Torres

∀i, j ∈ V .

Programación Entera Mixta

XII Encuentro de Matemática

20 / 45
Aplicaciones prácticas

El problema del agente viajero (TSP)
Idea:
Emplear variables de decisión binarias para indicar cuáles conexiones
entre las ciudades (“aristas”) son seleccionadas en la ruta (“tour”):
⇔

xij = 1
min

arista ij forma parte del tour
dij xij

i=j

s.a.r
xij = 2,

∀i ∈ V ,

j=i

xij ≥ 2,

∀W ⊂ V , |W | ≥ 3,

ij∈δ(W )

xij ∈ {0, 1}
Luis M. Torres

∀i, j ∈ V .

Programación Entera Mixta

XII Encuentro de Matemática

20 / 45
Aplicaciones prácticas

Planificación de líneas de transporte

Sistema de Trolebús de Quito
250.000 pasajeros por día
corredor central (26 est., 113 un.) + alimentadoras (238 est., 89un.)
Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

21 / 45
Aplicaciones prácticas

Planificación de líneas de transporte
Un modelo de optimización:
min

(K x + c f )
m∈M ∈Lm

s.a.r.
κm f ≥ g a ,
m∈M

∀a ∈ A satisfacer demanda

∈Lm
a

f ≤ f max x

∀ ∈L

f ∈ Z+

∀ ∈L

x ∈ {0, 1}

∀ ∈L

Luis M. Torres

restr. acople

Programación Entera Mixta

XII Encuentro de Matemática

22 / 45
Programas lineales

Outline

1

Aplicaciones prácticas

2

Programas lineales

3

Programas lineales enteros (mixtos)

4

¿Dónde estamos hoy?

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

23 / 45
Programas lineales

Programas lineales
Definición
Un programa lineal es el problema de optimizar (maximizar o
minimizar) una función lineal de varias variables, cuyos valores
factibles (admisibles) están expresados por medio de restricciones
lineales (ecuaciones y desigualdades).
max c T x
s.r.
Ax ≤ b,
x ∈ Rn .

con A ∈ Rm×n , b ∈ Rm , c ∈ Rn .
Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

24 / 45
Programas lineales

Programas lineales
La región de factibilidad de un programa lineal es un poliedro (o
polítopo, si es acotada)

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

25 / 45
Programas lineales

Programas lineales

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

26 / 45
Programas lineales

Programas lineales

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

27 / 45
Programas lineales

Programas lineales
El método del simplex
Considerar el siguiente PL con 2 variables y 3 restricciones:

Añadiendo 3 nuevas variables, las restricciones pueden escribirse
como igualdades:

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

28 / 45
Programas lineales

Programas lineales
De esta última formulación podemos construir el tableau del simplex

asignando el valor de 0 a x1 y x2 obtenemos una solución factible
x T = (0, 0, 1, 3, 2) cuyo valor es z = 0
esta solución se conoce como solución básica y la base
correspondiente es B0 = {3, 4, 5}
el simplex construye una secuencia de soluciones básicas de
valores ascedentes
Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

29 / 45
Programas lineales

Programas lineales
Para mejorar el valor de la solución actual, podemos incrementar x2

Realizamos la sustitución x2 ↔ x3 (pivotaje)

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

30 / 45
Programas lineales

Programas lineales
Podemos mejorar aún más el valor de la solución actual
incrementando x1

Realizamos la sustitución x1 ↔ x5

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

31 / 45
Programas lineales

Programas lineales
Incrementamos ahora el valor de x3

Realizamos la sustitución x3 ↔ x4

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

32 / 45
Programas lineales

Programas lineales
Examinemos el último tableau:

la fila final nos dice que cualquier solución donde x5 o x4 sean
positivos, tendrá un valor menor a 5
pero nuestra solución tiene un valor de 5
hemos encontrado el óptimo!!!

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

33 / 45
Programas lineales

Programas lineales
La secuencia de cambios de base corresponde a una secuencia de
desplazamientos entre los vértices del poliedro

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

34 / 45
Programas lineales

Programas lineales

Aunque el método del simplex es eficiente para problemas
prácticos, su polinomialidad (“eficiencia teórica”) no ha sido
demostrada
En 1979, Khachiyan presentó el método del elipsoide de
complejidad computacional polinomial, pero de mal desempeño
práctico
A partir del trabajo de Karmarkar (1984) se introdujeron además
los métodos de punto anterior

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

35 / 45
Programas lineales

Programas lineales

Para resolver PLs hoy en día existen disponibles solvers tanto
comerciales como de código abierto:
CPLEX
Gurobi
Xpress
CLP
SoPlex

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

36 / 45
Programas lineales enteros (mixtos)

Outline

1

Aplicaciones prácticas

2

Programas lineales

3

Programas lineales enteros (mixtos)

4

¿Dónde estamos hoy?

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

37 / 45
Programas lineales enteros (mixtos)

Programas lineales enteros
Definición
Un programa lineal entero es el problema de optimizar (maximizar o
minimizar) una función lineal de varias variables enteras, cuyos
valores factibles (admisibles) están expresados por medio de
restricciones lineales (ecuaciones y desigualdades).
max c T x
s.r.
Ax ≤ b,
x ∈ Zn .

con A ∈ Rm×n , b ∈ Rm , c ∈ Rn .
Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

38 / 45
Programas lineales enteros (mixtos)

Programas lineales enteros

Resolver un PE es muy difícil!!!
No se conoce un algoritmo similar al simplex para el caso general Se
emplean combinaciones de varias técnicas:
Heurísticas y meta-heurísticas
Métodos de Ramificación y Acotación (Branch-and-Bound)
Métodos de planos cortantes
Combinaciones (Branch-and-Bound-Cut)
...

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

39 / 45
Programas lineales enteros (mixtos)

Programas lineales enteros

Para resolver PEs hoy en día existen disponibles solvers tanto
comerciales como de código abierto:
CPLEX
Gurobi
Xpress
CBC
SCIP

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

40 / 45
Programas lineales enteros (mixtos)

Programas lineales enteros

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

41 / 45
¿Dónde estamos hoy?

Outline

1

Aplicaciones prácticas

2

Programas lineales

3

Programas lineales enteros (mixtos)

4

¿Dónde estamos hoy?

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

42 / 45
¿Dónde estamos hoy?

Situación actual

Hoy en día podemos...
resolver PLs con cientos de miles de variables y millones de
restricciones
a través de técnicas como la generación de columnas podemos
resolver PLs con números astronómicos de variables hasta la
optimalidad
para los programas enteros, la situación es más complicada y
depende mucho de la estructura de los mismos

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

43 / 45
¿Dónde estamos hoy?

Situación actual

Entre 1988-2000 (estudio de Robert Bixby)
la velocidad de cálculo del hardware se aceleró en 800x
los algoritmos se “aceleraron” en 2360x
Esto nos da un factor total de incremento de velocidad de

1’900.000x

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

44 / 45
¿Dónde estamos hoy?

Situación actual

Entre 1988-2000 (estudio de Robert Bixby)
la velocidad de cálculo del hardware se aceleró en 800x
los algoritmos se “aceleraron” en 2360x
Esto nos da un factor total de incremento de velocidad de

1’900.000x

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

44 / 45
¿Dónde estamos hoy?

Situación actual

Entre 1988-2000 (estudio de Robert Bixby)
la velocidad de cálculo del hardware se aceleró en 800x
los algoritmos se “aceleraron” en 2360x
Esto nos da un factor total de incremento de velocidad de

1’900.000x

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

44 / 45
¿Dónde estamos hoy?

Situación actual

Entre 1988-2000 (estudio de Robert Bixby)
la velocidad de cálculo del hardware se aceleró en 800x
los algoritmos se “aceleraron” en 2360x
Esto nos da un factor total de incremento de velocidad de

1’900.000x

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

44 / 45
¿Dónde estamos hoy?

Gracias por su atención!!!

Luis M. Torres

Programación Entera Mixta

XII Encuentro de Matemática

45 / 45

Más contenido relacionado

Similar a Mi ps

L I B R O Version 1
L I B R O Version 1L I B R O Version 1
L I B R O Version 1
guest79a229
 
Introducción al modelado de problemas de Programación Lineal.
Introducción al modelado de problemas de Programación Lineal.Introducción al modelado de problemas de Programación Lineal.
Introducción al modelado de problemas de Programación Lineal.
Roanny Lamas
 
Razonamiento Analógico
Razonamiento AnalógicoRazonamiento Analógico
Razonamiento Analógico
Computer Learning Centers
 
1. Algoritmos y solucion de problemas.pptx
1. Algoritmos y solucion de problemas.pptx1. Algoritmos y solucion de problemas.pptx
1. Algoritmos y solucion de problemas.pptx
DanielGonzalez184830
 
Leopoldo Rojas Rico 205.pdf
Leopoldo Rojas Rico 205.pdfLeopoldo Rojas Rico 205.pdf
Leopoldo Rojas Rico 205.pdf
Leopoldo41
 
Ingeniería de Software &_desarrollo de productos digitales_ Junio 2022__© Ing...
Ingeniería de Software &_desarrollo de productos digitales_ Junio 2022__© Ing...Ingeniería de Software &_desarrollo de productos digitales_ Junio 2022__© Ing...
Ingeniería de Software &_desarrollo de productos digitales_ Junio 2022__© Ing...
Carlos Cantonnet
 
Unmsm fisi - introducción a la investigación de operaciones - io1 cl01
Unmsm   fisi - introducción a la investigación de operaciones - io1 cl01Unmsm   fisi - introducción a la investigación de operaciones - io1 cl01
Unmsm fisi - introducción a la investigación de operaciones - io1 cl01
Julio Pari
 
Programacion lineal
Programacion linealProgramacion lineal
Programacion lineal
carlosnavarropaez
 
APRENDIZAJE SOBRE _EL_ ALGORITMOS[1].pptx
APRENDIZAJE SOBRE _EL_ ALGORITMOS[1].pptxAPRENDIZAJE SOBRE _EL_ ALGORITMOS[1].pptx
APRENDIZAJE SOBRE _EL_ ALGORITMOS[1].pptx
ElizabethMosqueraMor1
 
Programacion lineal trabajo final-
Programacion lineal  trabajo final-Programacion lineal  trabajo final-
Programacion lineal trabajo final-
Dayana Castro
 
Ingenieria industrial
Ingenieria industrialIngenieria industrial
Ingenieria industrial
Andrea Chaves
 

Similar a Mi ps (11)

L I B R O Version 1
L I B R O Version 1L I B R O Version 1
L I B R O Version 1
 
Introducción al modelado de problemas de Programación Lineal.
Introducción al modelado de problemas de Programación Lineal.Introducción al modelado de problemas de Programación Lineal.
Introducción al modelado de problemas de Programación Lineal.
 
Razonamiento Analógico
Razonamiento AnalógicoRazonamiento Analógico
Razonamiento Analógico
 
1. Algoritmos y solucion de problemas.pptx
1. Algoritmos y solucion de problemas.pptx1. Algoritmos y solucion de problemas.pptx
1. Algoritmos y solucion de problemas.pptx
 
Leopoldo Rojas Rico 205.pdf
Leopoldo Rojas Rico 205.pdfLeopoldo Rojas Rico 205.pdf
Leopoldo Rojas Rico 205.pdf
 
Ingeniería de Software &_desarrollo de productos digitales_ Junio 2022__© Ing...
Ingeniería de Software &_desarrollo de productos digitales_ Junio 2022__© Ing...Ingeniería de Software &_desarrollo de productos digitales_ Junio 2022__© Ing...
Ingeniería de Software &_desarrollo de productos digitales_ Junio 2022__© Ing...
 
Unmsm fisi - introducción a la investigación de operaciones - io1 cl01
Unmsm   fisi - introducción a la investigación de operaciones - io1 cl01Unmsm   fisi - introducción a la investigación de operaciones - io1 cl01
Unmsm fisi - introducción a la investigación de operaciones - io1 cl01
 
Programacion lineal
Programacion linealProgramacion lineal
Programacion lineal
 
APRENDIZAJE SOBRE _EL_ ALGORITMOS[1].pptx
APRENDIZAJE SOBRE _EL_ ALGORITMOS[1].pptxAPRENDIZAJE SOBRE _EL_ ALGORITMOS[1].pptx
APRENDIZAJE SOBRE _EL_ ALGORITMOS[1].pptx
 
Programacion lineal trabajo final-
Programacion lineal  trabajo final-Programacion lineal  trabajo final-
Programacion lineal trabajo final-
 
Ingenieria industrial
Ingenieria industrialIngenieria industrial
Ingenieria industrial
 

Mi ps

  • 1. Programación Entera Mixta 52 años de revolución en marcha Luis M. Torres Departamento de Matemática Escuela Politécnica Nacional, Quito XII Encuentro de Matemática y sus Aplicaciones Quito, 2010 Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 1 / 45
  • 2. Hace 52 años... 1958 “Idea de un algoritmo para las soluciones enteras a programas lineales” Este (borrador de) paper marca el inicio de la programación entera ...que tendrá un impacto enorme sobre las técnicas de optimización... Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 2 / 45
  • 3. Hace 52 años... 1958 “Idea de un algoritmo para las soluciones enteras a programas lineales” Este (borrador de) paper marca el inicio de la programación entera ...que tendrá un impacto enorme sobre las técnicas de optimización... Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 2 / 45
  • 4. Hace 52 años... 1958 “Idea de un algoritmo para las soluciones enteras a programas lineales” Este (borrador de) paper marca el inicio de la programación entera ...que tendrá un impacto enorme sobre las técnicas de optimización... Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 2 / 45
  • 5. Un cambio revolucionario Hoy en día modelos de optimización entera (mixta) se usan en: planificación de sistemas de transportación cadenas logísticas de abastecimiento asignación de recursos escasos diseño de redes robustas de telecomunicaciones localización de servicios críticos modelización de sistemas biológicos complejos ... Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 3 / 45
  • 6. Ralph E. Gomory 1929: 1954: 1957: 1959: 1970: 1973: 1988: 1989: Nace en Brooklyn, EEUU Doctorado en la Universidad de Princeton Profesorado Princeton Ingresa al Área de Investigación de IBM Director del Área de Investigación de IBM Vicepresidente de IBM Medalla Nacional de Ciencias Presidente de la Fundación Alfred P. Sloan para el desarrollo de la ciencia, tecnología, educación, nivel de vida y productividad económica 2008: Profesorado en la Universidad de Nueva York Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 4 / 45
  • 7. Antecedentes: Programación Lineal 1939 L. V. Kantorovitch: Modelo de aginación óptima de recursos escasos en un proceso productivo. Sienta las bases para la programación lineal. 1947 G. B. Dantzig: Modelo para encontrar “programas” óptimos concernientes a aspectos logísticos militares. Invención del algoritmo del simplex. Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 5 / 45
  • 8. George B. Dantzig (1914 - 2005) 1914: Nace en Portland, Oregón, EEUU 1941: Interrumpe doctorado en Berkeley, ingresa la USAF; en la División de Análisis de Combate, trabaja en la elaboración de “programas” para operaciones militares 1946: Termina doctorado en Berkeley, retorna a la USAF 1947: Formula modelo lineal para automatizar programas y diseña un algoritmo para su solución: el simplex! 1948: T. J. Koopmans acuña el término “Programación Lineal” 1952: 1960: 1966: 1976: 1982: Continúa desarrollo del simplex desde la coorporación RAND Acepta profesorado en Berkeley Cambia a la Universidad de Standford Obtiene Medalla Nacional al Mérito Científico La Mathematical Programming Society instaura el Premio Dantzig, entregado cada 3 años Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 6 / 45
  • 9. Leonid V. Kantorovich (1912 - 1986) 1912: Nace en Petersburgo, Rusia 1930: Doctorado en matemáticas en la Univ. Leningrado 1934: Profesorado en Leningrado 1939: Estudia el problema de asignación de recursos escasos y propone técnicas pioneras de solución (“precursor del simplex”) 1961: Dirige Dpto. Matemáticas y Economía de la zona siberiana de la URSS 1964: Elegido miembro de la Academia de Ciencias de la URSS 1971: Dirige un centro de investigación del Instituto Nacional de Planificación Económica de Moscú 1976: Comparte Premio Nobel en Economía con T. J. Koopmans Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 7 / 45
  • 10. Los temas de hoy... ¿Qué es la programación lineal entera? ¿Dónde aparecen PLEs en la solución de problemas prácticos? Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 8 / 45
  • 11. Los temas de hoy... ¿Qué es la programación lineal entera? ¿Dónde aparecen PLEs en la solución de problemas prácticos? Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 8 / 45
  • 12. Outline 1 Aplicaciones prácticas 2 Programas lineales 3 Programas lineales enteros (mixtos) 4 ¿Dónde estamos hoy? Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 9 / 45
  • 13. Aplicaciones prácticas Outline 1 Aplicaciones prácticas 2 Programas lineales 3 Programas lineales enteros (mixtos) 4 ¿Dónde estamos hoy? Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 10 / 45
  • 14. Aplicaciones prácticas El problema de la dieta Problema: [Stigler, 1939] Dado un conjunto de alimentos, encontrar una dieta de costo mínimo que permita satisfacer ciertos requerimientos nutricionales Alimentos papas Costo arroz carne fréjol 2.0 0.9 5.0 1.5 Calorías 2000 2200 5000 2500 Carbohid. 1200 1100 400 800 Proteínas 150 160 450 400 50 45 120 40 Grasas Luis M. Torres Programación Entera Mixta George J. Stigler Premio Nobel en Economía 1982 XII Encuentro de Matemática 11 / 45
  • 15. Aplicaciones prácticas El problema de la dieta Idea: Definir una variable de decisión xi para la cantidad de cada alimento Expresar el costo de la dieta como una función objetivo Expresar los requerimientos nutricionales como restricciones min 2,0x1 + 0,9x2 + 5,0x3 + 1,5x4 s.a.r 20x1 + 22x2 + 50x3 + 25x4 ≥ 20 (calorías) 12x1 + 11x2 + 4x3 + 8x4 ≥ 15 (carbohidratos) 15x1 + 16x2 + 45x3 + 40x4 ≥ 30 (proteínas) 50x1 + 45x2 + 120x3 + 40x4 ≤ 80 (grasas) xi ≥ 0, Luis M. Torres ∀1 ≤ i ≤ 4 Programación Entera Mixta XII Encuentro de Matemática 12 / 45
  • 16. Aplicaciones prácticas El problema de la dieta Un problema de la dieta con 77 variables y 9 restricciones fue resuelto “al tanteo” por Stigler en 1939: Encontró una solución de costo $39.93 “Parece no haber un método matemático directo para encontrar el mínimo de una función lineal sujeta a restricciones lineales” En 1947 Laderman empleó el (recién creado) simplex para encontrar la solución óptima: Luego de 120 días-hombre de cálculo... ...demostró que la dieta óptima tenía un valor de $39.69!!! Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 13 / 45
  • 17. Aplicaciones prácticas El problema de la dieta Un problema de la dieta con 77 variables y 9 restricciones fue resuelto “al tanteo” por Stigler en 1939: Encontró una solución de costo $39.93 “Parece no haber un método matemático directo para encontrar el mínimo de una función lineal sujeta a restricciones lineales” En 1947 Laderman empleó el (recién creado) simplex para encontrar la solución óptima: Luego de 120 días-hombre de cálculo... ...demostró que la dieta óptima tenía un valor de $39.69!!! Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 13 / 45
  • 18. Aplicaciones prácticas El problema de la dieta Un problema de la dieta con 77 variables y 9 restricciones fue resuelto “al tanteo” por Stigler en 1939: Encontró una solución de costo $39.93 “Parece no haber un método matemático directo para encontrar el mínimo de una función lineal sujeta a restricciones lineales” En 1947 Laderman empleó el (recién creado) simplex para encontrar la solución óptima: Luego de 120 días-hombre de cálculo... ...demostró que la dieta óptima tenía un valor de $39.69!!! Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 13 / 45
  • 19. Aplicaciones prácticas El problema del agente viajero (TSP) Problema: Dado un conjunto de ciudades, determinar la ruta más corta para visitar exactamente una vez cada ciudad y retornar al punto de partida. Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 14 / 45
  • 20. Aplicaciones prácticas El problema del agente viajero (TSP) El TSP ha recibido siempre amplia atención mediática: Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 15 / 45
  • 21. Aplicaciones prácticas El problema del agente viajero (TSP) Algunos récords mundiales: 1954 1971 1975 1977 1980 1987 1987 1987 1994 1998 2001 2004 2006 Dantzig, Fulkerson & Johnson Held & Karp Camerini, Fratta & Maffioli Grötschel Crowder & Padberg Padberg & Rinaldi Grötschel & Holland Padberg & Rinaldi Applegate, Bixby, Chvátal & Cook Applegate, Bixby, Chvátal & Cook Applegate, Bixby, Chvátal & Cook Applegate, Bixby, Chvátal, Cook, & Helsgaun Applegate, Bixby, Chvátal, Cook, Espinoza, Goycoolea & Helsgaun 49 64 67 120 318 532 666 2,392 7,397 13,509 15,112 24,978 85,900 Fuente: http://www.tsp.gatech.edu/index.html Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 16 / 45
  • 22. Aplicaciones prácticas El problema del agente viajero (TSP) La “vuelta al mundo” de Martin Grötschel: Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 17 / 45
  • 23. Aplicaciones prácticas El problema del agente viajero (TSP) El TSP “geográfica” más grande es Sueco... Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 18 / 45
  • 24. Aplicaciones prácticas El problema del agente viajero (TSP) ...pero el campeón es un circuito!!! (85.900 “ciudades”) Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 19 / 45
  • 25. Aplicaciones prácticas El problema del agente viajero (TSP) Idea: Emplear variables de decisión binarias para indicar cuáles conexiones entre las ciudades (“aristas”) son seleccionadas en la ruta (“tour”): ⇔ xij = 1 min arista ij forma parte del tour dij xij i=j s.a.r xij = 2, ∀i ∈ V , j=i xij ≥ 2, ∀W ⊂ V , |W | ≥ 3, ij∈δ(W ) xij ∈ {0, 1} Luis M. Torres ∀i, j ∈ V . Programación Entera Mixta XII Encuentro de Matemática 20 / 45
  • 26. Aplicaciones prácticas El problema del agente viajero (TSP) Idea: Emplear variables de decisión binarias para indicar cuáles conexiones entre las ciudades (“aristas”) son seleccionadas en la ruta (“tour”): ⇔ xij = 1 min arista ij forma parte del tour dij xij i=j s.a.r xij = 2, ∀i ∈ V , j=i xij ≥ 2, ∀W ⊂ V , |W | ≥ 3, ij∈δ(W ) xij ∈ {0, 1} Luis M. Torres ∀i, j ∈ V . Programación Entera Mixta XII Encuentro de Matemática 20 / 45
  • 27. Aplicaciones prácticas Planificación de líneas de transporte Sistema de Trolebús de Quito 250.000 pasajeros por día corredor central (26 est., 113 un.) + alimentadoras (238 est., 89un.) Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 21 / 45
  • 28. Aplicaciones prácticas Planificación de líneas de transporte Un modelo de optimización: min (K x + c f ) m∈M ∈Lm s.a.r. κm f ≥ g a , m∈M ∀a ∈ A satisfacer demanda ∈Lm a f ≤ f max x ∀ ∈L f ∈ Z+ ∀ ∈L x ∈ {0, 1} ∀ ∈L Luis M. Torres restr. acople Programación Entera Mixta XII Encuentro de Matemática 22 / 45
  • 29. Programas lineales Outline 1 Aplicaciones prácticas 2 Programas lineales 3 Programas lineales enteros (mixtos) 4 ¿Dónde estamos hoy? Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 23 / 45
  • 30. Programas lineales Programas lineales Definición Un programa lineal es el problema de optimizar (maximizar o minimizar) una función lineal de varias variables, cuyos valores factibles (admisibles) están expresados por medio de restricciones lineales (ecuaciones y desigualdades). max c T x s.r. Ax ≤ b, x ∈ Rn . con A ∈ Rm×n , b ∈ Rm , c ∈ Rn . Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 24 / 45
  • 31. Programas lineales Programas lineales La región de factibilidad de un programa lineal es un poliedro (o polítopo, si es acotada) Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 25 / 45
  • 32. Programas lineales Programas lineales Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 26 / 45
  • 33. Programas lineales Programas lineales Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 27 / 45
  • 34. Programas lineales Programas lineales El método del simplex Considerar el siguiente PL con 2 variables y 3 restricciones: Añadiendo 3 nuevas variables, las restricciones pueden escribirse como igualdades: Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 28 / 45
  • 35. Programas lineales Programas lineales De esta última formulación podemos construir el tableau del simplex asignando el valor de 0 a x1 y x2 obtenemos una solución factible x T = (0, 0, 1, 3, 2) cuyo valor es z = 0 esta solución se conoce como solución básica y la base correspondiente es B0 = {3, 4, 5} el simplex construye una secuencia de soluciones básicas de valores ascedentes Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 29 / 45
  • 36. Programas lineales Programas lineales Para mejorar el valor de la solución actual, podemos incrementar x2 Realizamos la sustitución x2 ↔ x3 (pivotaje) Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 30 / 45
  • 37. Programas lineales Programas lineales Podemos mejorar aún más el valor de la solución actual incrementando x1 Realizamos la sustitución x1 ↔ x5 Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 31 / 45
  • 38. Programas lineales Programas lineales Incrementamos ahora el valor de x3 Realizamos la sustitución x3 ↔ x4 Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 32 / 45
  • 39. Programas lineales Programas lineales Examinemos el último tableau: la fila final nos dice que cualquier solución donde x5 o x4 sean positivos, tendrá un valor menor a 5 pero nuestra solución tiene un valor de 5 hemos encontrado el óptimo!!! Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 33 / 45
  • 40. Programas lineales Programas lineales La secuencia de cambios de base corresponde a una secuencia de desplazamientos entre los vértices del poliedro Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 34 / 45
  • 41. Programas lineales Programas lineales Aunque el método del simplex es eficiente para problemas prácticos, su polinomialidad (“eficiencia teórica”) no ha sido demostrada En 1979, Khachiyan presentó el método del elipsoide de complejidad computacional polinomial, pero de mal desempeño práctico A partir del trabajo de Karmarkar (1984) se introdujeron además los métodos de punto anterior Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 35 / 45
  • 42. Programas lineales Programas lineales Para resolver PLs hoy en día existen disponibles solvers tanto comerciales como de código abierto: CPLEX Gurobi Xpress CLP SoPlex Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 36 / 45
  • 43. Programas lineales enteros (mixtos) Outline 1 Aplicaciones prácticas 2 Programas lineales 3 Programas lineales enteros (mixtos) 4 ¿Dónde estamos hoy? Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 37 / 45
  • 44. Programas lineales enteros (mixtos) Programas lineales enteros Definición Un programa lineal entero es el problema de optimizar (maximizar o minimizar) una función lineal de varias variables enteras, cuyos valores factibles (admisibles) están expresados por medio de restricciones lineales (ecuaciones y desigualdades). max c T x s.r. Ax ≤ b, x ∈ Zn . con A ∈ Rm×n , b ∈ Rm , c ∈ Rn . Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 38 / 45
  • 45. Programas lineales enteros (mixtos) Programas lineales enteros Resolver un PE es muy difícil!!! No se conoce un algoritmo similar al simplex para el caso general Se emplean combinaciones de varias técnicas: Heurísticas y meta-heurísticas Métodos de Ramificación y Acotación (Branch-and-Bound) Métodos de planos cortantes Combinaciones (Branch-and-Bound-Cut) ... Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 39 / 45
  • 46. Programas lineales enteros (mixtos) Programas lineales enteros Para resolver PEs hoy en día existen disponibles solvers tanto comerciales como de código abierto: CPLEX Gurobi Xpress CBC SCIP Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 40 / 45
  • 47. Programas lineales enteros (mixtos) Programas lineales enteros Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 41 / 45
  • 48. ¿Dónde estamos hoy? Outline 1 Aplicaciones prácticas 2 Programas lineales 3 Programas lineales enteros (mixtos) 4 ¿Dónde estamos hoy? Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 42 / 45
  • 49. ¿Dónde estamos hoy? Situación actual Hoy en día podemos... resolver PLs con cientos de miles de variables y millones de restricciones a través de técnicas como la generación de columnas podemos resolver PLs con números astronómicos de variables hasta la optimalidad para los programas enteros, la situación es más complicada y depende mucho de la estructura de los mismos Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 43 / 45
  • 50. ¿Dónde estamos hoy? Situación actual Entre 1988-2000 (estudio de Robert Bixby) la velocidad de cálculo del hardware se aceleró en 800x los algoritmos se “aceleraron” en 2360x Esto nos da un factor total de incremento de velocidad de 1’900.000x Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 44 / 45
  • 51. ¿Dónde estamos hoy? Situación actual Entre 1988-2000 (estudio de Robert Bixby) la velocidad de cálculo del hardware se aceleró en 800x los algoritmos se “aceleraron” en 2360x Esto nos da un factor total de incremento de velocidad de 1’900.000x Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 44 / 45
  • 52. ¿Dónde estamos hoy? Situación actual Entre 1988-2000 (estudio de Robert Bixby) la velocidad de cálculo del hardware se aceleró en 800x los algoritmos se “aceleraron” en 2360x Esto nos da un factor total de incremento de velocidad de 1’900.000x Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 44 / 45
  • 53. ¿Dónde estamos hoy? Situación actual Entre 1988-2000 (estudio de Robert Bixby) la velocidad de cálculo del hardware se aceleró en 800x los algoritmos se “aceleraron” en 2360x Esto nos da un factor total de incremento de velocidad de 1’900.000x Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 44 / 45
  • 54. ¿Dónde estamos hoy? Gracias por su atención!!! Luis M. Torres Programación Entera Mixta XII Encuentro de Matemática 45 / 45