Repaso del algoritmo SIMPLEX

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

El método simplex 1. 1 Forma estándar y cambios en el modelo. 2 Definiciones. 3 Puntos extremos y soluciones factibles básicas. 4 El método simplex.

Optimización de Problemas de Producción

INGENIERÍA DE SISTEMAS INVESTIGACIÓN OPERATIVA

Programación lineal: Algoritmo del simplex

Un sistema de ecuaciones diferenciales son aquellas que tienen varias posibilidades para su solución. Estas son:

Formulación del problema de la ruta más corta en programación lineal

Flujo en Redes. IN34A: Clase Auxiliar. Universidad de Chile Facultad de Ciencias Físicas y Matemáticas Departamento de Ingeniería Industrial

BASES MATEMÁTICAS DEL MÉTODO SIMPLEX (Parte 3)

Degeneración y ciclaje. Método de las dos fases CO-3411 (S08) 30/03/

Universidad Nacional Autónoma de Nicaragua UNAN-Managua Curso de Investigación de Operaciones

Figura 1: Esquema de las tablas simplex de inicio y general.

RESOLUCIÓN DE MODELOS DE PROGRAMACIÓN ENTERA MÉTODOS DE CORTE CORTES DE GOMORY

Programación Lineal. El método simplex

Pasos en el Método Simplex

Lo que se hace entonces es introducir variables artificiales ADAPTACIÓN A OTRAS FORMAS DEL MODELO.

INVESTIGACION DE OPERACIONES:

PASO 1: Poner el problema en forma estandar.

La lección de hoy de febrero de Notación. Solución factible básica

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

1.Restricciones de Desigualdad 2.Procedimiento algebraico

POST-OPTIMIZACIÓN Y SENSIBILIDAD EN PROBLEMAS LINEALES.

Con miras a conocer la metodología que se aplica en el Método SIMPLEX, tenemos a continiacion un ejemplo:

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

Universidad Tec Milenio: Profesional HG04002 Análisis de Decisiones I

Tema 3. El metodo del Simplex.

Esta expresión polinómica puede expresarse como una expresión matricial de la forma; a 11 a 12 a 1n x 1 x 2 q(x 1, x 2,, x n ) = (x 1, x 2,, x n )

EJERCICIO 1. Max Z = 6 x x 2 s.r. (1) 4 x x 2 12 (2) 2 x x 2 16 (3) 2 x 1 6 x 1, x 2 0

Soluciones básicas factibles y vértices Introducción al método símplex. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

INVESTIGACIÓN OPERATIVA

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

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

Algebra lineal y conjuntos convexos

Contenido: Solución algebraica a los problemas de programación lineal con el método simplex.

Tema 1: Matrices. Sistemas de ecuaciones. Determinantes

Matrices, determinantes y sistemas de ecuaciones lineales

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

Colección de Problemas II. mín Z = 8x 1 + 9x 2 + 7x 3 s. a: x 1 + x 2 + x x 1 + 3x 2 + x x 1 + x 2 x 3 30

Universidad Nacional de Ingeniería Sede: UNI-Norte Investigación de Operaciones I

OPTIMIZACIÓN Y SIMULACIÓN PARA LA EMPRESA. Tema 4 Optimización no Lineal

MÉTODO DEL DUAL (TEORIA DE DUALIDAD)

Tema 7: Problemas clásicos de Programación Lineal

Aplicaciones Lineales. Diagonalización de matrices.

Clase 9 Programación No Lineal

Sistemas de Ecuaciones Lineales

Capítulo 4 Método Algebraico

Matrices: repaso. Denotaremos con M m n el conjunto de matrices de tamaño m n, o sea, de m filas y n columnas. Una matriz A M m n es de la forma A =

PLs no acotados El método símplex en dos fases PLs no factibles. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

Introducción a Programación Lineal


Método Simplex: Encontrado una SBF

RESOLUCIÓN INTERACTIVA DEL SIMPLEX

IN Guía de Problemas Resueltos de Geometría de Programación Lineal v1.0

MÉTODO SIMPLEX. PROFESORA: LILIANA DELGADO HIDALGO Estandarización Tradicional

Tema 5: Análisis de Sensibilidad y Paramétrico

Algunos Tipos de matrices. Matrices. Algunos Tipos de matrices. Algunos Tipos de matrices

Programación Lineal Continua

Determinantes. Determinante de orden uno. a 11 = a 11 5 = 5

DUALIDAD EN PROGRAMACION LINEAL

Universidad Nacional de Ingeniería Facultad de Ciencias. Física Computacional CC063. Algebra Lineal. Prof: J. Solano 2012-I

MATEMÁTICAS APLICADAS A LAS C.C. SOCIALES

Sistemas de ecuaciones

APUNTE DE PROGRAMACION LINEAL ASIGNATURA: MATEMATICA II - U.N.R.N. AÑO: 2010

Problemas de Programación Lineal: Método Simplex

Programación Lineal Pedro Sánchez

Matrices, Determinantes y Sistemas Lineales.

Tema 2.- Formas Cuadráticas.

Una forma fácil de recordar esta suma (regla de Sarrus): Primero vamos a estudiar algunas propiedades de los determinantes.

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

PROGRAMACIÓN LINEAL PROGRAMACIÓN LINEAL.

Tema 2: Teorema de estructura de los grupos abelianos finitamente generados.

Investigación de Operaciones Método Simplex

Tema 11.- Autovalores y Autovectores.

de la forma ), i =1,..., m, j =1,..., n, o simplemente por (a i j ).

Integradora 3. Modelos de Programación Lineal

Matrices y Sistemas Lineales

RESOLUCIÓN INTERACTIVA DEL SIMPLEX DUAL

RELACIÓN DE PROBLEMAS DE CLASE DE PROGRAMACIÓN LINEAL ENTERA

Unidad 2. Matrices Conceptos básicos 2.2. Operaciones con matrices 2.3. Matriz Inversa 2.4. El método de Gauss-Jordan 2.5.

Matrices y determinantes

1 SISTEMAS DE ECUACIONES LINEALES. MÉTODO DE GAUSS

SISTEMAS DE ECUACIONES LINEALES

Matrices Invertibles y Elementos de Álgebra Matricial

Matriz sobre K = R o C de dimensión m n

Sistem as de ecuaciones lineales

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

1 ÁLGEBRA DE MATRICES

MATRICES. Se simboliza tal matriz por y se le llamará una matriz x o matriz de orden x (que se lee por ).

2.2 PROGRAMACION LINEAL: METODOS DE SOLUCION

WinQSB. Módulo de Programación Lineal y Entera. Al ejecutar el módulo Linear and Integer Programming, la ventana de inicio es la siguiente

Matrices y Sistemas Lineales

Diagonalización de matrices

PROBLEMA 1. Considere el siguiente problema de programación lineal:

PROBLEMA DE PROGRAMACIÓN LINEAL RESUELTO POR MÉTODO SIMPLEX

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

PROGRAMACION DE REDES. MODELOS DE TRANSPORTE

Transcripción:

Universidad de Chile Facultad de Ciencias Físicas y Matemáticas Departamento de Ingeniería Industrial IN70K: Clase Auxiliar Repaso del algoritmo SIMPLEX Marcel Goic F. 1 1 Esta es una versión bastante preliminar por lo que puede contar con numerosas faltas de ortografia y errores no forzados. Si encuentran alguno favor de denunciarlo a mgoic@ing.uchile.cl

IN70K: Programación Matemática Pag. 1 1. Desempolvando lo que ya sabemos Algunos resultados importantes de programación lineal: El óptimo de todo PL (en caso de existir) se encuentra en un vértice del poliedro que define el conjunto factible. Sea un poliedro definido por A x b con A IR m n, x IR n, b IR m, rg(a) m. Todo vértice del poliedro puede ser caracterizado como una solución básica en que se escogen m variables (asociadas a m columnas de A)para que formen la base y las (n m) variables restantes (asociadas a (n m) columnas de A) para ser fijadas en 0. Para encontrar el valor de las m componentes no nulas del vértice, resolvemos el sistema de ecuaciones de m m resultante. Finalmente, para resolver el sitema de ecuaciones lo mas directo es realizar eliminación gaussiana. De esta manera, lo que hace simplex es ir escogiendo columnas de manera inteligente de modo de ir recorriendo los vértices del poliedro factible. Así, cada vez que tenemos un vértice necesitamos: 1. Ver si es óptimo. 2. Si no es óptimo, escoger cual es el nuevo vértice determinando cual variable entra a la base y cual sale. 3. Adicionalmente debemos ser capaces de determinar cuando: La solución es no acotada: se puede mejorar infinitamente el valor de la función objetivo. Existen óptimos alternativos: toda una cara del poliedro tiene el mismo valor de la función objetivo. La solución es degenerada: un vértice esta sobredeterminado por lo que de una iteración a la otra estaremos en el mismo vértice. 2. Algoritmo SIMPLEX (para problemas de minimización) La presente sección corresponde a la transcripción de material de clase preparado por el distinguidísimo catedratico Sr.Felipe Caro V. Forma canónica o usando tablas Se tiene el problema lineal en su forma canónica para alguna solución básica factible dada ( b i 0 i 1,..., m)). Las variables básicas son aquellas que tienen costo reducido nulo y su respectiva columna es un vector canónico de R m.

IN70K: Programación Matemática Pag. 2 c 1 c n z ā 11 ā 1n b1...... ā m1 ā mn bm 1. Si c j 0 j 1,..., n entonces la solución es óptima (las variables básicas son iguales a b i y las no básicas son nulas). 2. Si alguno de los costos reducidos es negativo ( c j < 0paraalgún j) entonces se debe escoger una variable no básica x s para que entre a la base. No es obligatorio, pero usualmente se usa el criterio c s mín{ c j c j < 0}. 3. Si ā is 0 i 1,..., m entonces el problema es no acotado. Siā is > 0para algún i, entonces se determina la variable que sale de la base mediante el criterio: br mín ā is > 0 { } bi 4. Se pivotea sobre para actualizar la tabla o la forma canónica. Las fórmulas de actualización son: ā is ā ij ā ij āis ā rj bi b i āis b r c j c j c s ā rj z z c s b r 5. Volver a 1. Forma matricial Se el problema en su forma estandar y se asume que se conoce una base B primal factible (o sea se tiene un vértice factible inicial) mín z c t x s.a A x b x 0 1. Determinar la inversa B 1 de la base. 2. Determinar la solución básica factible asociada a la base B. Para ello se tiene que resolver el sistema B x b b que tiene solución única. Luego x b b B 1 b y z c t B b. 3. Determinar si esta solución es óptima aplicandoel criterio de optimalidad. Para esto es necesario calcular los costos reducidos asociados a las variables no básicas c j c j c t B B 1 A j.si c j 0 j 1,..., n entonces la solución es óptima. En caso contrario, efectuar el cambio de base.

IN70K: Programación Matemática Pag. 3 4. Determinar la columna que entra a la base. Sea c s mín{ c j c j < 0}, entonces la variable x s aumentará su valor y la columna A s entraalabase. 5. Determinar la columna que sale de la base. Calcular Ā s B 1 A s.siā s 0 entonces el problema es no acotado. De lo contrario determinar r tal que br mín ā is > 0 { } bi Entonces la variable básica de la ecuación r es la primera que se anula cuando x s crece, por lo tanto la columna A r sale de la base. 6. Actualizar la base y volver a 1. ā is 3. Fase I del algoritmo Simplex. Para iniciar el proceso iterativo, simplex necesita un vértice (base) factible inicial. Si en los coeficientes del problema original aparece una identidad y todos los lados derechos tenemos una base factible inicial trivial: la correspondiente a las variables que forman la identidad 2. Sin embargo, en muchos casos esto no ocurre, por lo que tenemos que disponer de un método para hallar soluciones básica factibles si las hay. Esto consiste en agregar tantas variables artificiales como sea necesario para formar una identidad y luego resolver un problema de optimización consistente en tratar de que dichas variables artificiales se hagan nulas y por tanto se puedan eliminar. Para ello tratamos de minimizar la suma de variables artificiales: Si la suma óptima de variables artificiales es no nula significa que alguna variable artificial es positiva y por tanto no la podemos eliminar. En dicho caso, el problema es infactible. Si la suma óptima de variables artificiales es nula significa que todas las variables artificiales son nulas y por tanto las podemos eliminar obteniendo un vértice factible: Si ninguna variable artificial está enlabaseóptima de fase I, entonces tomamos dicha base como vértice inicial para la fase II. Si existen variables artificiales en la base óptima de fase I, entonces podemos intentar reemplazarla por cualquier variable no básica para formar una base factible para la fase II. 4. Problemas 4.1. Problema 1 Resolver usando el algoritmo simplex el siguiente problema: 2 típicamente las variables de holgura

IN70K: Programación Matemática Pag. 4 máx z 2x 1 +3x 2 s.a x 1 + x 2 5 x 1 3x 2 9 x 1,x 2 0 Solución Pasamos el problema a forma estandar: mín z 5x 1 3x 4 s.a x 1 + x 2 + x 2 5 x 1 +3x 2 + x 4 0 x 1,x 2,x 3,x 4 0 Iteración 1: Trivialmente tenemos una base factible formada por las variables de holgura x 3 y x 4 : x 3 x 4 x 1 x 2 0 0-2 -3 0 1 0 1 1 5 0 1 1 3 9 Notamos que esta en forma aanónica porque las variables básicas forman cada una un vector caaónico de IR 2 y tienen funciones coeficeintes en la función objetivo nulos. Así, podemos aplicar los criterios de optimalidad, entrada y salida de la base: 1. Optimalidad: No es óptimo porque existen variables no básicas con costos reducidos negatiaos. 2. Entrada: Entra la variable con menor costo reducido: x 2. 3. Salida: mín{ 5, 9} 3, luego, sale x 1 3 4. Iteración 2: Al intercambiar las variables x 2 por x 4 nuestra base queda conformada por las variables x 3 y x 2 : x 3 x 7 x 1 x 4 0-3 -2 0 0 1 1 0 0 5 0 3 1 1 9

IN70K: Programación Matemática Pag. 5 Notamos que no esta en forma canónica porque lo que tenemos que pyvotear: x 3 x 2 x 1 x 4 0 0-1 1 9 1 0 2/3-1/3 3 0 1 1/3 1/3 3 Notar aquí que nuestra solucion en curso es (0, 3, 2, 2) con valor de la función objetivo de 9. Como ahora está en forma canónica por lo que podemos aplicar los criterios de optimalidad, entrada y salida de la base: 1. Optimalidad: No es óptimo porque existen variables no básicas con costos reducidos negativos. 2. Entrada: Entra la varianle con menor costo reducido: x 1. 3. Salida: mín{ 2 3 2/3 1/3 3. Iteracion 3: Al intercambiar las variables x 1 por x 3 nuestra base queda conformada por las variables x 1 y x 2 : x 1 x 2 x 3 x 4-1 0 0 0 9 2/3 0 1-1/3 2 1/3 1 0 1/3 3 Notamos que no esta en forma canónica porque lo que tenemos que pivotear: x 1 x 2 x 3 x 4 0 0 3/2 1/2 12 1 0 3/2-1/2 3 0 1-1/2 1/2 2 Notar aquí que nuestra solucion en curso es (3, 2, 0, 0) con valor de la función objetivo de 12. Como ahora está en forma canónica por lo que podemos aplicar los criterios de optimalidad, entrada y salida de la base: 1. Optimalidad: Es óptimo porque no existen variables no básicas con costos reducidos negativos. La forma matricial es completamente análoga, solo que en vez de pivotear, todas las actualizaciones se explicitan por medio del calculo de operaciones matriciales: c R c R c B B 1 R

IN70K: Programación Matemática Pag. 6 b B 1 b A j B 1 A j Así por ejemplo, la iteracion 2 se realizaría matricialmente como sigue: ( 1 1 (c 1, c 4 )( 2, 0) (0, 3) 0 3 ( ) ( ) 1 ( ) b1 1 1 5 b 2 ( a11 a 12 ) 0 3 ( 1 1 0 3 ) 1 ( 1 1 ) 1 ( 1, 1) ( ) 2 9 3 ) ( ) 2/3 1/3 1. Optimalidad: Como c 1 < 0noesóptimo 2. Entrada: Entra la única variable con costo reducido negativo: x 1 3. Salida: mín{ 2 2/3, 3 1/3 } 3porloquesalex 3 4.2. Problema 2 Resolver el siguiente problema usando el algoritmo simplex: máx z 6x 1 +4x 2 s.a x 1 + x 2 10 2x 1 + x 2 4 x 1,x 2 0 Solución Como siempre, comenzamos por escribir el problema en la forma estandar: mín z 6x 1 4x 2 s.a x 1 + x 2 + x 3 10 2x 1 + x 2 x 4 4 x 1,x 2,x 3,x 4 0

IN70K: Programación Matemática Pag. 7 Si bien tenemos lados derechos positivos, no tenemos una submatriz identidad en la matriz de coeficientes y por lo tanto no tenemos una solución básica factible inicial para comenzar a iterar con el algoritmo simplex. Luego debemos resolver la Fase I del algoritmo simplex. Para ello agregamos variables artificiales y resolvemos el siguiente problema: mín w x 5 s.a x 1 + x 2 + x 3 10 2x 1 + x 2 x 4 + x 5 4 x 1,x 2,x 3,x 4,x 5 0 Iteración 1 (Fase I): Nuestra base esta compuesta por las variables x 3 y x 5. Luego el tableau asociado es: x 3 x 5 x 1 x 2 x 4 0 1 0 0 0 0 1 0 1 1 0 10 0 1 2 1-1 4 No esta en forma canónica (hay costos reducidos de variables básicas no nulos), por lo que debemos pivotear llegando al siguiente tableau: x 3 x 5 x 1 x 2 x 4 0 0-2 -1 1-4 1 0 1 1 0 10 0 1 2 1-1 4 Ahora, como esta en forma estandar podemos aplicar los criterios de optimalidad, entrada y salida: 1. Optimalidad: No es óptimo porque existen costos reducidos negativos. 2. Entrada: Entra x 1 porque tiene el minimo costo reducido. 3. Salida: mín{ 10, 4} 2 sale x 1 2 5. Iteración 2 (Fase I): Nuestra base ahora esta compuesta por las variables x 3 y x 1. Luego el tableau asociado es: x 3 x 1 x 5 x 2 x 4 0-2 0-1 1-4 1 1 0 1 0 10 0 2 1 1-1 4 No esta en forma canónica por lo que debemos pivotear llegando al siguiente tableau:

IN70K: Programación Matemática Pag. 8 x 3 x 1 x 5 x 2 x 4 0 0 1 0 0 0 1 0-1/2 1/2 1/2 8 0 1 1/2 1/2-1/2 2 Ahora, como esta en forma estandar podemos aplicar los criterios de optimalidad, entrada y salida: 1. Optimalidad: Es óptimo porque no existen costos reducidos negativos. Ahora, como (variables artificiales) 0 tenemos una solución basica factible la cual esta dada por: x 1 2,x 3 8 (variables básicas) y x 2 0,x 4 0 (variables no básicas). Con esto, podríamos tomar esta solución y partir todo de nuevo para resolver la Fase II, pero es mas eficiente continuar con la solución en curso cambiando la función objetivo y eliminando las variable artificiales (que ya sabemos que no nulas). Iteración 1 (Fase II): Nuestra base esta compuesta por las variables x 3 y x 1. Luego el tableau asociado es: x 3 x 1 x 2 x 3 0-6 -4 0 0 1 0 1/2 1/2 8 0 1 1/2-1/2 2 No esta en forma canónica (hay costos reducidos de variables básicas no nulos), por lo que debemos pivotear llegando al siguiente tableau: x 3 x 1 x 2 x 4 0 0-1 -3 12 1 0 1/2 1/2 8 0 1 1/2-1/2 2 Ahora, como esta en forma estandar podemos aplicar los criterios de optimalidad, entrada y salida: 1. Optimalidad: No es óptimo porque existen costos reducidos negativos. 2. Entrada: Entra x 4 porque tiene el minimo costo reducido. 3. Salida: mín{ 8 2 1/2 1/2 3. Iteración 2 (Fase II): Nuestra base ahora esta compuesta por las variables x 4 y x 1. Luego el tableau asociado es:

IN70K: Programación Matemática Pag. 9 x 4 x 1 x 2 x 3-3 0-1 0 12 1/2 0 1/2 1 8-1/2 1 1/2-1 2 No esta en forma canónica por lo que debemos pivotear llegando al siguiente tableau: x 4 x 1 x 2 x 3 0 0 2 6 60 1 0 1 2 16 0 1 1 1 10 Ahora, como esta en forma estandar podemos aplicar los criterios de optimalidad, entrada y salida: 1. Optimalidad: Es óptimo porque no existen costos reducidos negativos.