PROGRAMACIÓN LINEAL ENTERA



Documentos relacionados
PROGRAMACIÓN LINEAL ENTERA

PROGRAMACION ENTERA. M. en C. Héctor Martínez Rubin Celis 1

4. Método Simplex de Programación Lineal

PASO 1: Poner el problema en forma estandar.

Programación Entera. Nelson Devia C. IN Modelamiento y Optimización Departamento de Ingeniería Industrial Universidad de Chile

Dirección de Operaciones. SESIÓN # 5: El método simplex. Segunda parte.

DUALIDAD EN PROGRAMACION LINEAL

Resolución. Resolución gráfica de problemas de optimización

Métodos de Optimización para la toma de decisiones

Definición de problemas de programación lineal. Método gráfico. Método del SIMPLEX. Método de las dos fases. Análisis de sensibilidad y problema dual

Pasos en el Método Simplex

PROGRAMACIÓN LINEAL. 1. Introducción

UNIDAD UNO PROGRAMACIÓN LÍNEAL Parte 3

UNIDAD 5. PROGRAMACIÓN ENTERA

Instituto tecnológico de Minatitlán. Investigación de operaciones Ing. Erika Lissette Minaya mortera Unidad 3: programación no lineal

El Método Simplex. H. R. Alvarez A., Ph. D. 1

9. Programación lineal entera.

Programación Lineal Entera

RESOLUCIÓN DE MODELOS DE PROGRAMACIÓN ENTERA

EL MÉTODO SIMPLEX ALGEBRAICO. M. En C. Eduardo Bustos Farías

Desarrollo de las condiciones de optimalidad y factibilidad. El problema lineal general se puede plantear como sigue:

Complementos de Matemáticas, ITT Telemática

Tema 2. Divisibilidad. Múltiplos y submúltiplos.

CONVEXIDAD: CONCEPTOS BÁSICOS

El método Ramifica y acota (Branch and Bound) (V)

EJEMPLO DE SIMPLEX PARA PROBLEMA DE PROGRAMACIÓN LINEAL CASO DE MAXIMIZAR Prof.: MSc. Julio Rito Vargas Avilés

UNIVERSIDAD NACIONAL DE INGENIERÍA UNI RUACS ESTELI

INTRODUCCIÓN A LA PROGRAMACIÓN ENTERA

Módulo Programación lineal. 3 Medio Diferenciado

Problemas de Programación Lineal: Método Simplex

Práctica 2 Métodos de búsqueda para funciones de una variable

Si el objetivo es maximizar, entonces se tiene la forma estándar de maximización y, si el objetivo es minimizar, la forma estándar de minimización.

Pruebas de Acceso a Enseñanzas Universitarias Oficiales de Grado (PAEG) Matemáticas aplicadas a las Ciencias Sociales II - Junio Propuesta B

EL MÉTODO SIMPLEX ALGEBRAICO: MINIMIZACION. M. En C. Eduardo Bustos Farías

Polinomios. 1.- Funciones cuadráticas

MÉTODO SIMPLEX MÉTODO DE SOLUCIÓN GRÁFICO

Análisis Post Optimal y Algoritmo de Ramificación y Acotamiento

La programación lineal hace referencia al uso eficiente o distribución de recursos limitados, para alcanzar unos objetivos determinados.

CLAVE: MIS 206 PROFESOR: MTRO. ALEJANDRO SALAZAR GUERRERO

Programación entera 1

CAPÍTULO 4 PROGRAMACIÓN LINEAL ENTERA

PROBLEMAS de Programación Lineal : Resolución Gráfica

En el siguiente capítulo se hará un repaso de algunas propiedades básicas de conjuntos convexos, para después explicar el método simplex.

RAMIFICAR-ACOTAR Y PLANOS DE CORTE

Problemas de programación entera: El método Ramifica y Acota. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

Teniendo en cuenta los valores de las variables se tienen 3 tipos de modelos lineales enteros:

METODO SIMPLEX ANALISIS DE SENSIBILIDAD Y DUALIDAD

Grado en Química Bloque 1 Funciones de una variable

Programación Lineal Entera. Programación Entera

Ejemplo : PROGRAMACIÓN LINEAL

Universidad Tec Milenio: Profesional IO04001 Investigación de Operaciones I. Tema # 6. revisado

3. Métodos clásicos de optimización lineal

Teoría a de Juegos. M. En C. Eduardo Bustos as

EL MÉTODO SIMPLEX. los redondos. Por último, a los manteles rectangulares se les deben colocar cuatro esquineros de refuerzo.

Tema 3: El Método Simplex. Algoritmo de las Dos Fases.

1. RESOLVER el siguiente problema de programación lineal. max z =15x x 2 suj.a : 2x 1 + x x 1 + x x 1 500

315 M/R Versión 1 Integral 1/ /1 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA

Divisibilidad y congruencias

Qué es la programación lineal?

Optimización en Ingeniería

Sistemas de ecuaciones

3.2 DIVIDIR UN POLINOMIO POR x a. REGLA DE RUFFINI

EJERCICIOS RESUELTOS DE INECUACIONES. Juan Jesús Pascual. Inecuaciones

Optimización lineal con R José R. Berrendero

7. Forma de Lagrange para el polinomio interpolador. 9. Forma de Newton para el polinomio interpolador

Método Simplex: Encontrado una SBF

Métodos Numéricos: Resumen y ejemplos Tema 5: Resolución aproximada de ecuaciones

(2.c) RESOLUCIÓN DE MODELOS LINEALES. ALGORITMO DEL SIMPLEX

El cuerpo de los números reales

Algoritmos y Diagramas de flujo

Códigos para tratamiento de errores

LA MAXIMIZACION DE BENEFICIOS CON UN INSUMO VARIABLE

Sistemas de ecuaciones lineales

Límites e indeterminaciones

PROGRAMACIÓN ALGORITMOS y DIAGRAMAS

Formulación de un Modelo de Programación Lineal

2.2 PROGRAMACION LINEAL: METODOS DE SOLUCION

UNIDAD 4.- INECUACIONES Y SISTEMAS (tema 4 del libro)

4. Métodos de Solución PPL : Solución Algebraica: METODO SIMPLEX Primera Parte

Para que un problema pueda ser solucionado por el método de transporte, este debe reunir tres condiciones:

P. A. U. LAS PALMAS 2005

Ecuaciones de primer grado

Tema 2. Sistemas de ecuaciones lineales

Ejercicio 1: Realiza las siguientes divisiones por el método tradicional y por Ruffini: a)

VALOR ABSOLUTO. Definición.- El valor absoluto de un número real, x, se define como:

Cómo resolver el Método Simplex, con penalizaciones, o gran M

Inecuaciones en dos variables

Programación Lineal. Unidad 1 Parte 2

Tema 2 Divisibilidad

Estructuras de control

MÉTODO SIMPLEX MÉTODO DE SOLUCIÓN GRÁFICO. M. En C. Eduardo Bustos Farías

Por Sustitución: y= 2x+6 x + 3 (2x+6) = 4 x + 6x + 18 = 4 7x = -14 x= -2 y=2 (-2)+6 y=2. Por Igualación: 6x+18=4-x 7x=-14 x= -2 y=2 (-2)+6 y=2

TEMA I: LOS CONCEPTOS FUNDAMENTALES DE LA TEORÍA DE LA COMPUTABILIDAD

PROBLEMA DEL TRANSPORTE VRP (VEHICLE ROUTING PROBLEM)

CURSO BÁSICO DE MATEMÁTICAS PARA ESTUDIANTES DE ECONÓMICAS Y EMPRESARIALES

2.1. LÍMITE CUANDO X TIENDE A INFINITO (Valores grandes de la variable x)

El Método de Gauss. Hallar el conjunto solución del siguiente sistema de ecuaciones. (1.1)

Ecuaciones. 3º de ESO

Selectividad Junio 2007 JUNIO 2007

Transcripción:

PROGRAMACIÓN LINEAL ENTERA Programación lineal: hipótesis de perfecta divisibilidad Así pues decimos que un problema es de programación lineal entera, cuando prescindiendo de las condiciones de integridad, el problema resultante es un problema de programación lineal. CLASIFICACIÓN DE LOS PROBLEMAS LINEALES ENTEROS. Atendiendo al tipo de variables: Enteros puros: son aquellos en que todas las variables únicamente pueden tomar valores enteros. también se distinguen dentro de estos los problemas totalmente enteros como aquellos en que tanto las variables como todos los coeficientes que intervienen en el problema han de ser enteros. Mixtos: son aquellos en los que hay al mismo tiempo variables continuas y variables que sólo pueden tomar valores enteros. Binarios: las variables sólo pueden tomar los valores cero o uno. Atendiendo al criterio del tipo de problema: Directo: Si el problema de decisión involucra variables enteras. Codificado: Cuando se trata de un problema que contiene además de aspectos cuantitativos, alguna consideración de tipo cualitativos, y por ello para tratar este tipo de aspectos se requiere el uso de variable enteras o binarias. Transformado: Cuando el problema no incluye variables enteras, pero para ser tratado analíticamente requiere el uso de variable enteras artificiales. 1

MÉTODOS DE RESOLUCIÓN Aunque en un principio pueda parecer que los problemas lineales enteros son más fáciles de resolver que los continuos, dado que el número de soluciones factibles a analizar, cuando el conjunto de oportunidades está acotado, es finito, éste número suele ser lo suficientemente grande (en un problema binario con n variables el número de soluciones factibles a estudiar es 2 n ) como para que resulte imposible su comparación. COMPLEJIDAD VARIABLES SOLUCIONES INCREMENTO 1 2 2 4 2 4 16 12 5 32 16 10 1.024 992 15 32.768 31.744 20 1.048.576 1.015.808 25 33.554.432 32.505.856 50 1,1259E+15 1,1259E+15 100 1,2677E+30 1,2677E+30 200 1,6069E+60 1,6069E+60 500 3,2734E+150 3,2734E+150 1000 1,0715E+301 1,0715E+301 ORDENADOR CON 1,000,000,000,000 DE OPERACIONES POR SEGUNDO 1E+12 1 SEGUNDO 1 1E+12 1 MINUTO 60 6E+13 1 HORA 60 3,6E+15 1 DÍA 24 8,64E+16 1 MES 30 2,592E+18 1 AÑO 12 3,1104E+19 1 SIGLO 100 3,1104E+21 100 SIGLOS 100 3,1104E+23 1000 SIGLOS 10 3,1104E+24 MILLON DE SIGLOS 1000 3,1104E+27 100 MILLONES SIGLOS 100 3,1104E+29 1,2675E+30 1000 MILLONES SIGLOS 10 3,1104E+30 Problema con 100 variables 1,2677E+30 408 Millones de siglos 2

Así pues, la mayoría de los métodos de resolución comienzan su ejecución con la resolución del problema lineal asociado (en adelante PLA) consistente en eliminar las condiciones de integridad, obteniéndose en consecuencia un problema de programación lineal que puede ser resuelto mediante el algoritmo del simplex. La resolución del PLA en primer lugar, tiene una ventaja y es que si la solución a dicho problema verifica las condiciones de integridad de las variables, esta será la solución al problema entero, con lo cual no será necesario aplicar ninguna técnica especial para resolverlo. Si la solución al PLA no verifica las condiciones de integridad, lo que ocurre la mayoría de las veces, entonces habrá que utilizar algún método que nos permita resolver el problema entero. Algo que no debemos hacer, es caer en la tentación de redondear la solución obtenida al PLA a valores enteros y tomarla como válida, pues si bien esto puede ser aceptable en aquellos problemas en el que los valores de las variables son muy grandes y en consecuencia el error puede ser mínimo, en general nos puede generar dos graves `problemas que son: 3

a) La solución obtenida por redondeo no es la óptima e incluso puede ser muy diferente de ella, como ocurre con el siguiente problema Max F(X) = 4x 1 + 3x 2 s.a. 2x 1 + x 2 2 3x 1 + 4x 2 6 x 1 0, x 2 0 x x {0,1 } 1, 2 Max F(X) = 4x 1 + 3x 2 s.a. 2x 1 + x 2 2 3x 1 + 4x 2 6 1 x 1 0, 1 x 2 0 se obtiene como solución x 1 = 0,4, x 2 = 1,2 y F(X) = 5,2. Redondeo: x 1 = 0, x 2 = 1, F(X) = 3, Solución optima: x 1 = 1, x 2 = 0, F(X) = 4 (0,1) F=3 (O.4,1.2) F=5,2 (1,0) F=4 4

b) Max F(X) = 8x 1 + 10x 2 s.a. 4x 1 + 6x 2 24 8x 1 + 3x 2 24 x 1 0,x 2 0, x 1, x 2 Z + resolviendo el PLA asociado Max F(X) = 8x 1 + 10x 2 s.a. 4x 1 + 6x 2 24 8x 1 + 3x 2 24 x 1 0,x 2 0 Solución x 1 =2,x 2 =8/3,F(X)= 128/3 Redondeo al punto x 1 =2,x 2 =3, infactible Redondeo al punto x 1 =2,x 2 =2 F(X)=36 Solución optima: x 1 =0,x 2 =4, F(X)=40. 5

(0,4) F= 40 4x1+6x2 =24 (0,3) F=30 (1,3) F=38 (2,8/3) F= 128/3 F(x) = 8x1+10x2 (0,2) F=20 (1,2) F=28 (1,3) F=38 8x1+3x2=24 (0,1) F=10 (1,1) F=18 (2,1) F=26 (0,0) F=0 (1,0) F=8 (2,0) F=16 (3,0) F=24 Así pues si queremos obtener la solución óptima al problema entero, necesariamente habremos de utilizar algún método de resolución para problemas enteros. 6

Unicamente se trataran los dos métodos, que consideramos más representativos y además pioneros en la resolución de problemas enteros, como son los métodos de corte (algoritmo fraccional de Gomory) y el de ramificación y acotación (Branch and Bound). MÉTODO DE RAMIFICACIÓN Y ACOTACIÓN (Branch and Bound). El método de ramificación y acotación, más conocido por su nombre en inglés Branch and Bound, recibe su nombre precisamente por las dos técnicas en las que basa su desarrollo, que son la ramificación y la acotación. El método de ramificación y acotación comienza por resolver el PLA, de modo que si la solución al PLA verifica las condiciones de integridad, entonces también es la solución al problema entero, en caso contrario se comienza con la ramificación del problema. La ramificación consiste en dividir cada problema en dos nuevos subproblemas, obtenidos mediante la imposición de restricciones excluyentes que dividen el conjunto de oportunidades del problema original en dos partes, pero eliminando en ambas partes la solución no entera del problema original. Cuando en la solución al PLA una variable que ha de ser entera x i toma el valor x bi no entero, entonces se generan a partir de dicho valor dos restricciones x i [x bi ] y x i [x bi ]+1 (siendo [x bi ] la parte entera por defecto de x bi ), que añadidas cada uno por separado al problema original, da lugar a dos nuevos subproblemas. Vamos a explicar este proceso a traves de un ejemplo particular: 7

Consideremos el siguiente problema Max F(x) = 4x 1 + 5x 2 (1) s.a. 2x 1 + x 2 8 x 2 5 x 1,x 2 0 y enteras la solución al PLA, prescindiendo de la condición de que las variables han de ser enteras es x 1 = 1,5, x 2 =5 y F(x) = 31 como dicha solución no verifica las condiciones de integridad se elige la variable x 1 que no es entera y a partir de ella se generan dos restricciones x 1 1 y x 1 2 que añadidas cada una de ellas al problema original dan lugar a dos nuevos subproblemas que serían los siguientes: Max F(x) = 4x 1 + 5x 2 (1.1) Max F(x) = 4x 1 + 5x 2 (1.2) s.a. 2x 1 + x 2 8 s.a. 2x 1 + x 2 8 x 2 5 x 2 5 x 1 1 x 1 2 x 1,x 2 0 x 1,x 2 0 de este modo se han eliminado todas las posibles soluciones no enteras del conjunto de oportunidades tales que 1< x 1 < 2. El proceso se repite con cada uno de los dos subproblemas obtenidos, los cuales darán lugar a otros dos subproblemas cada uno de ellos y así sucesivamente hasta que en todos los subproblemas tengan solución entera o infactible. 8

Utilizando únicamente la ramificación, el número de subproblemas a resolver crece exponencialmente, por este motivo para evitar el tener que resolver todos los subproblemas, la ramificación se combina con la acotación. La acotación se basa en el hecho de que dado que los conjuntos de oportunidades del subproblema 1.1. (S 11 ) y del subproblema 1.2 (S 12 ) son a su vez subconjuntos del conjunto de oportunidades del problema 1 (S 1 ) la solución óptima de los dos subproblemas siempre será inferior (problema de máximo o superior para problemas de mínimo) que la solución óptima del problema 1 por ser los conjuntos de elección menores. Así pues, el proceso de acotación consiste, para problemas de máximo, en tomar como cota inferior aquella solución entera con mayor valor de la función objetivo obtenida y dado que cualquier otro subproblema con solución no entera sabemos que al ramificarlo nos dará como resultado valores de la función objetivo menores o iguales, nos permite descartar como subproblemas a ramificar todos aquellos que tengan como solución óptima un valor de la función inferior a la cota establecida. De este modo se reduce el número de subproblemas a ramificar y por lo tanto el tiempo necesario para la resolución de los problemas enteros. El proceso a seguir en la resolución de problemas enteros mediante el método de ramificación y acotación se resume en el siguiente esquema algorítmico: 9

Esquema del algoritmo de ramificación y acotación. RESOLVER EL P.L.A. SOLUCION OPTIMA SI ES SOLUCION ENTERA? NO ELEGIR UNA VARIABLE ENTERA Xi CUYO VALOR EN LA SOLUCION DEL P.L.A. SEA FRACCIONAL STOP RESOLVER DOS PROBLEMAS LINEALES IGUALES AL ANTERIOR CON LAS RESTRICCIONES ADICIONALES: UNO CON LA RESTRICCIÓN Xi<[Xi] Y EL OTRO CON LA RESTRICCION Xi > [Xi]+1 ELEGIR EL PROBLEMA QUE TENGA EL MEJOR VALOR DE LA FUNCION OBJETIVO ANALIZAR SOLAMENTE EL PROBLEMA CON MEJOR SOLUCION QUE CUALQUIERA DE LAS SOLUCIONES ENTERAS CONOCIDAS 10

Ejemplo Max F(X) = 8x 1 + 10x 2 s.a. 4x 1 + 6x 2 24 8x 1 + 3x 2 24 x 1 0,x 2 0, x 1, x 2 Z + Resolviendo en primer lugar el PLA, es decir Max F(X) = 8x 1 + 10x 2 s.a. 4x 1 + 6x 2 24 8x 1 + 3x 2 24 x 1 0,x 2 0 se obtiene la solución x 1 = 2, x 2 = 8/3, f(x) = 128/3, dado que ésta solución no es entera se ramifica a partir de la variable x 2 del siguiente modo subproblema 1 subproblema 2 Max F(X) = 8x 1 + 10x 2. Max F(X) = 8x 1 + 10x 2 s.a. 4x 1 + 6x 2 24 s.a. 4x 1 + 6x 2 24 8x 1 + 3x 2 24 8x 1 + 3x 2 24 x 2 3 x 2 2 x 1 0,x 2 0 solución x 1 =1,5, x 2 =3,F(x)=42 x 1 0,x 2 0 solución x 1 =2,5, x 2 =2,F(x)=38 11

(0,4) F= 40 4x1+6x2 =24 subp 1 (0,3) F=30 (1.5,3) F(x)=42 (1,3) F=38 x2>3 (0,2) F=20 (1,2) F=28 (1,3) F=38 (2.5,2) F(x)=38 x2<2 subp 2 8x1+3x2=24 (0,1) F=10 (1,1) F=18 (2,1) F=26 (0,0) F=0 (1,0) F=8 (2,0) F=16 (3,0) F=24 12

como la solución del subproblema 1, tiene el mayor valor de la función objetivo y no es entera ramificaremos este subproblema a partir de la variable x 1, del siguiente modo: subproblema 1.1 subproblema 1.2 Max F(X) = 8x 1 + 10x 2. Max F(X) = 8x 1 + 10x 2 s.a. 4x 1 + 6x 2 24 s.a. 4x 1 + 6x 2 24 8x 1 + 3x 2 24 8x 1 + 3x 2 24 x 2 3 x 2 3 x 1 1 x 1 2 x 1 0,x 2 0 solución x 1 =1, x 2 =10/3,F(x)=124/3 x 1 0,x 2 0 solución infactible. 13

(0,4) F= 40 4x1+6x2 =24 x1>2 subp 1.1 (0,3) F=30 (1,3) F=38 (1,10/3) F(x)=124/3 infactible subp 1.2 x2>3 x1<1 14

dado que de todos los subproblemas todavía no ramificados (subproblemas 2, 1.1 y 1.2) el que tiene una mayor solución factible no entera es el subproblema 1.1, ramificaremos este subproblema a partir de la variable x 2, es decir subproblema 1.1.1 subproblema 1.1.2 Max F(X) = 8x 1 + 10x 2. Max F(X) = 8x 1 + 10x 2 s.a. 4x 1 + 6x 2 24 s.a. 4x 1 + 6x 2 24 8x 1 + 3x 2 24 8x 1 + 3x 2 24 x 2 3 x 2 3 x 1 1 x 1 1 x 2 3 x 2 4 x 1 0,x 2 0 solución x 1 =1, x 2 =3,F(x)=38 x 1 0,x 2 0 solución x 1 =0, x 2 =4,F(x)=40 Dado que ya conocemos una solución entera x 1 =0, x 2 =4,F(x)=40, ésta solución actuará como cota inferior y solamente deberán ser ramificados aquellos subproblemas con soluciones factible no enteras que tengan un valor para la función objetivo que 40. Como el único subproblema por ramificar es el subproblema 2 y la función objetivo vale 38, el proceso se dá por terminado, siendo por tanto la solución óptima al problema entero x 1 = 0, x 2 = 4, F(x) = 40 el arbol del problema resuelto es el siguiente: 15

2 X1=2,5,X2=2,F=3 1.1.1 X1=1,X2=3,F=3 X2<2 X2<3 PLA X1=2,X2=8/3,F=128/3 1.1 X1=1,X2=10/3,F=124/ X2>3 X1< X2>4 1 X1=1,5,X2=3,F=4 1.1.2 X1=0,X2=4,F=4 X1>2 1.2 INFACTIBLE 16