Este documento resume la historia y aplicaciones de la programación lineal entera. En 1958, Gomory propuso un algoritmo para encontrar soluciones enteras a programas lineales, marcando el inicio de la programación lineal entera. Hoy en día, los modelos de optimización entera se usan ampliamente para problemas como la planificación del transporte, cadenas de suministro y asignación de recursos. El documento también describe aplicaciones clásicas como el problema de la dieta y el problema del agente viajero.
Este documento describe varias herramientas de software para investigación operativa, tanto propietarias como de código abierto. Entre las propietarias se encuentran SAS, SPSS, KnowledgeSEEKER, AMPL, CPLEX e IBM ILOG CPLEX Optimization Studio y Gurobi, que resuelven diferentes tipos de problemas de optimización. Las herramientas de código abierto incluyen R Project, RapidMiner, GLPK, Symphony y OpenSolver, las cuales también permiten realizar análisis de datos, minería de datos, aprendizaje automático y resolver problemas
"Programacion Lineal Entera", diapositivas del Ingeniero Eduardo Quiroz en la clase Investigacion de Operaciones I, Secciones K y L de la Escuela Profesional de Ingenieria Economica de la Facultad de Ingenieria Economica y Ciencias Sociales (FIECS)
Este documento explica diferentes modelos de programación entera, incluyendo modelos puros, binarios y mixtos. Describe ejemplos de problemas de corte de madera, programación de producción y programación de proyectos para ilustrar estos modelos. También resume problemas típicos de programación entera como el problema del transporte, flujo de costo mínimo en red, asignación, mochila, emparejamiento, recubrimiento, empaquetado, partición, costo fijo y el problema del viajante.
Este documento ofrece instrucciones sobre cómo usar diferentes funciones de numeración y viñetas en Microsoft Word, incluyendo cómo crear listas numeradas o con viñetas de un solo nivel o con varios niveles, modificar el formato de números o viñetas, y separar los elementos de una lista. También explica cómo convertir una lista de un solo nivel en una lista con varios niveles y elegir un estilo de lista con varios niveles de la galería.
Este documento ofrece instrucciones sobre cómo usar diferentes funciones de numeración y viñetas en Microsoft Word, incluyendo cómo crear listas numeradas o con viñetas de un solo nivel o con varios niveles, modificar el formato de números o viñetas, y separar los elementos de una lista. También explica cómo convertir una lista de un solo nivel en una lista con varios niveles y elegir un estilo de lista con varios niveles de la galería.
El documento proporciona instrucciones sobre cómo usar las funciones básicas de Microsoft Word 2007, incluyendo cómo aplicar formatos de texto como negrita, cursiva y subrayado, cómo agregar viñetas y numeración, cómo usar la corrección ortográfica, cómo cambiar entre mayúsculas y minúsculas, cómo combinar correspondencia de formato, e insertar tablas. Explica los comandos básicos y las extensiones de archivo compatibles con Word.
Este documento ofrece instrucciones sobre cómo usar diferentes funciones de numeración y viñetas en Microsoft Word, incluyendo cómo crear listas numeradas o con viñetas de un solo nivel o con varios niveles, cambiar el formato de los números o viñetas, y separar los elementos de una lista. También explica cómo elegir estilos predefinidos de listas anidadas desde la galería.
Este documento describe varias herramientas de software para investigación operativa, tanto propietarias como de código abierto. Entre las propietarias se encuentran SAS, SPSS, KnowledgeSEEKER, AMPL, CPLEX e IBM ILOG CPLEX Optimization Studio y Gurobi, que resuelven diferentes tipos de problemas de optimización. Las herramientas de código abierto incluyen R Project, RapidMiner, GLPK, Symphony y OpenSolver, las cuales también permiten realizar análisis de datos, minería de datos, aprendizaje automático y resolver problemas
"Programacion Lineal Entera", diapositivas del Ingeniero Eduardo Quiroz en la clase Investigacion de Operaciones I, Secciones K y L de la Escuela Profesional de Ingenieria Economica de la Facultad de Ingenieria Economica y Ciencias Sociales (FIECS)
Este documento explica diferentes modelos de programación entera, incluyendo modelos puros, binarios y mixtos. Describe ejemplos de problemas de corte de madera, programación de producción y programación de proyectos para ilustrar estos modelos. También resume problemas típicos de programación entera como el problema del transporte, flujo de costo mínimo en red, asignación, mochila, emparejamiento, recubrimiento, empaquetado, partición, costo fijo y el problema del viajante.
Este documento ofrece instrucciones sobre cómo usar diferentes funciones de numeración y viñetas en Microsoft Word, incluyendo cómo crear listas numeradas o con viñetas de un solo nivel o con varios niveles, modificar el formato de números o viñetas, y separar los elementos de una lista. También explica cómo convertir una lista de un solo nivel en una lista con varios niveles y elegir un estilo de lista con varios niveles de la galería.
Este documento ofrece instrucciones sobre cómo usar diferentes funciones de numeración y viñetas en Microsoft Word, incluyendo cómo crear listas numeradas o con viñetas de un solo nivel o con varios niveles, modificar el formato de números o viñetas, y separar los elementos de una lista. También explica cómo convertir una lista de un solo nivel en una lista con varios niveles y elegir un estilo de lista con varios niveles de la galería.
El documento proporciona instrucciones sobre cómo usar las funciones básicas de Microsoft Word 2007, incluyendo cómo aplicar formatos de texto como negrita, cursiva y subrayado, cómo agregar viñetas y numeración, cómo usar la corrección ortográfica, cómo cambiar entre mayúsculas y minúsculas, cómo combinar correspondencia de formato, e insertar tablas. Explica los comandos básicos y las extensiones de archivo compatibles con Word.
Este documento ofrece instrucciones sobre cómo usar diferentes funciones de numeración y viñetas en Microsoft Word, incluyendo cómo crear listas numeradas o con viñetas de un solo nivel o con varios niveles, cambiar el formato de los números o viñetas, y separar los elementos de una lista. También explica cómo elegir estilos predefinidos de listas anidadas desde la galería.
Este documento proporciona instrucciones sobre cómo usar diferentes funciones de numeración y viñetas en Microsoft Word, incluido cómo crear listas numeradas y con viñetas de un solo nivel y varios niveles, aplicar formatos a números y viñetas, y separar elementos de una lista. También explica cómo convertir una lista de un solo nivel en una lista con varios niveles y elegir estilos de lista de varios niveles de la galería.
Introducción al modelado de problemas de Programación Lineal.Roanny Lamas
Este documento presenta una introducción a la investigación de operaciones. Explica que la investigación de operaciones es la ciencia de la toma de decisiones y que involucra profesionales de diversas áreas como ingeniería, matemáticas e informática. Luego, introduce la programación lineal como una técnica fundamental que utiliza modelos matemáticos lineales para representar problemas de asignación de recursos de forma óptima. Finalmente, propone algunos ejercicios prácticos de modelado matemático de problemas de programación lineal.
El documento presenta dos lecturas. La lectura A describe cómo Alan Turing utilizó su concepto de algoritmo y una máquina teórica para intentar resolver el décimo problema de Hilbert sobre ecuaciones diofantinas. Aunque no encontró una solución, sentó las bases de la computación moderna. La lectura B explica cómo un profesor descubrió un error en el procesador Pentium utilizando cálculos de teoría de números, lo que demostró la utilidad de esta rama matemática para probar sistemas informáticos. Ambas lecturas m
El documento introduce el concepto de pensamiento computacional y describe sus características y habilidades. Luego, resume brevemente la historia de los lenguajes de programación y la computación, desde los primeros telares programables hasta lenguajes modernos como Python y C++.
Este documento presenta información sobre la asignatura Informática 2. Incluye el temario dividido en tres bloques sobre algoritmos, herramientas de software y software educativo. También describe las fechas y criterios de evaluación para tres exámenes parciales y el examen final, así como los días inhábiles y el periodo vacacional. Finalmente, incluye una autoevaluación diagnóstica para los estudiantes.
Este documento presenta una charla sobre ingeniería de software y desarrollo de productos digitales. Comienza reflexionando sobre la predicción del futuro y las revoluciones tecnológicas. Luego discute el cambio del pensamiento de proyecto a producto, así como prácticas relacionadas con la entrega de valor como mostrar el trabajo y reducir las dependencias. Finalmente, presenta conceptos como el Teorema de Bayes y las métricas proxy.
Unmsm fisi - introducción a la investigación de operaciones - io1 cl01Julio Pari
Este documento introduce la Investigación de Operaciones (IO). Define la IO y describe sus características principales y naturaleza. Explica brevemente la historia de la IO durante la Segunda Guerra Mundial y su desarrollo posterior. También cubre los campos de acción de la IO y los diversos problemas que resuelve, como la optimización, planificación estratégica, uso de recursos y distribución de bienes.
La programación lineal se desarrolló originalmente durante la Segunda Guerra Mundial para planificar gastos y retornos militares de forma óptima. En 1947, George Dantzig publicó el algoritmo simplex para resolver problemas de programación lineal de forma eficiente. Más tarde, otros matemáticos como John von Neumann, Leonid Kantoróvich y Leonid Khachiyan contribuyeron al desarrollo de la teoría y métodos de la programación lineal.
Este documento trata sobre algoritmos y su enseñanza en matemáticas. Define algoritmo como un método sistemático para resolver operaciones numéricas de forma guiada. Discute la importancia de enseñar algoritmos tradicionales en primaria para sumar, restar, multiplicar y dividir. También analiza nuevos enfoques como los algoritmos recursivos y el uso de tecnologías como Logo para enseñar geometría de forma más significativa.
Este documento presenta una sopa de letras con conceptos clave de la programación lineal. Incluye definiciones breves de términos como optimización, programación lineal, sensibilidad, restricción, solución, objetivo, región factible, variable y decisión. También menciona a algunos autores importantes en el desarrollo de la programación lineal.
El documento habla sobre la carrera de Ingeniería Industrial que el autor eligió estudiar. Explica que esta carrera involucra investigación, administración de operaciones con un enfoque práctico. Esto permitirá al autor intervenir no solo en aspectos administrativos sino también técnicos de las empresas. Además, la carrera cubre temas como programación lineal, programación entera, simulación, cadenas de Markov y gestión de proyectos.
Este documento proporciona instrucciones sobre cómo usar diferentes funciones de numeración y viñetas en Microsoft Word, incluido cómo crear listas numeradas y con viñetas de un solo nivel y varios niveles, aplicar formatos a números y viñetas, y separar elementos de una lista. También explica cómo convertir una lista de un solo nivel en una lista con varios niveles y elegir estilos de lista de varios niveles de la galería.
Introducción al modelado de problemas de Programación Lineal.Roanny Lamas
Este documento presenta una introducción a la investigación de operaciones. Explica que la investigación de operaciones es la ciencia de la toma de decisiones y que involucra profesionales de diversas áreas como ingeniería, matemáticas e informática. Luego, introduce la programación lineal como una técnica fundamental que utiliza modelos matemáticos lineales para representar problemas de asignación de recursos de forma óptima. Finalmente, propone algunos ejercicios prácticos de modelado matemático de problemas de programación lineal.
El documento presenta dos lecturas. La lectura A describe cómo Alan Turing utilizó su concepto de algoritmo y una máquina teórica para intentar resolver el décimo problema de Hilbert sobre ecuaciones diofantinas. Aunque no encontró una solución, sentó las bases de la computación moderna. La lectura B explica cómo un profesor descubrió un error en el procesador Pentium utilizando cálculos de teoría de números, lo que demostró la utilidad de esta rama matemática para probar sistemas informáticos. Ambas lecturas m
El documento introduce el concepto de pensamiento computacional y describe sus características y habilidades. Luego, resume brevemente la historia de los lenguajes de programación y la computación, desde los primeros telares programables hasta lenguajes modernos como Python y C++.
Este documento presenta información sobre la asignatura Informática 2. Incluye el temario dividido en tres bloques sobre algoritmos, herramientas de software y software educativo. También describe las fechas y criterios de evaluación para tres exámenes parciales y el examen final, así como los días inhábiles y el periodo vacacional. Finalmente, incluye una autoevaluación diagnóstica para los estudiantes.
Este documento presenta una charla sobre ingeniería de software y desarrollo de productos digitales. Comienza reflexionando sobre la predicción del futuro y las revoluciones tecnológicas. Luego discute el cambio del pensamiento de proyecto a producto, así como prácticas relacionadas con la entrega de valor como mostrar el trabajo y reducir las dependencias. Finalmente, presenta conceptos como el Teorema de Bayes y las métricas proxy.
Unmsm fisi - introducción a la investigación de operaciones - io1 cl01Julio Pari
Este documento introduce la Investigación de Operaciones (IO). Define la IO y describe sus características principales y naturaleza. Explica brevemente la historia de la IO durante la Segunda Guerra Mundial y su desarrollo posterior. También cubre los campos de acción de la IO y los diversos problemas que resuelve, como la optimización, planificación estratégica, uso de recursos y distribución de bienes.
La programación lineal se desarrolló originalmente durante la Segunda Guerra Mundial para planificar gastos y retornos militares de forma óptima. En 1947, George Dantzig publicó el algoritmo simplex para resolver problemas de programación lineal de forma eficiente. Más tarde, otros matemáticos como John von Neumann, Leonid Kantoróvich y Leonid Khachiyan contribuyeron al desarrollo de la teoría y métodos de la programación lineal.
Este documento trata sobre algoritmos y su enseñanza en matemáticas. Define algoritmo como un método sistemático para resolver operaciones numéricas de forma guiada. Discute la importancia de enseñar algoritmos tradicionales en primaria para sumar, restar, multiplicar y dividir. También analiza nuevos enfoques como los algoritmos recursivos y el uso de tecnologías como Logo para enseñar geometría de forma más significativa.
Este documento presenta una sopa de letras con conceptos clave de la programación lineal. Incluye definiciones breves de términos como optimización, programación lineal, sensibilidad, restricción, solución, objetivo, región factible, variable y decisión. También menciona a algunos autores importantes en el desarrollo de la programación lineal.
El documento habla sobre la carrera de Ingeniería Industrial que el autor eligió estudiar. Explica que esta carrera involucra investigación, administración de operaciones con un enfoque práctico. Esto permitirá al autor intervenir no solo en aspectos administrativos sino también técnicos de las empresas. Además, la carrera cubre temas como programación lineal, programación entera, simulación, cadenas de Markov y gestión de proyectos.
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
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
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
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
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