Programación lineal Problemas lineales (forma estándar)

Slides:



Advertisements
Presentaciones similares
Investigación Operativa
Advertisements

Sabemos reconocerlas, y calcularlas como soluciones de sistemas de ecuaciones, o de desigualdades Buscamos métodos de cálculo generales y eficientes Problemas.
UNIVERSIDAD NACIONAL DE CHIMBORAZO TEMA: LINEAR OPTIMIZATION (ANDROID). Créditos Autores: José Chapalbay, Fausto Morocho. Asignatura: Modelación y Simulación.
Propiedad Intelectual Cpech PPTCAC042MT21-A16V1 Plano y espacio Propiedad Intelectual Cpech ACOMPAÑAMIENTO ANUAL BLOQUE 21.
 E Expresión de un problema de programación lineal  A Aplicaciones de la programación lineal  S Soluciones de un problema de programación lineal.
Sistemas de Ecuaciones Lineales. Métodos de Resolución del sistema Métodos de Resolución de un Sistema de Ec. Lineales Método Geométrico Gráfico Método.
INVESTIGACIÓN OPERATIVA I Grace Maureira Alegría Licenciatura en Ciencias de la Ingeniería Estudiante de Ingeniería Civil Industrial.
VECTORES UNIDAD IV: VECTORES N.SN J. Pomales CeL CONCEPTOS BÁSICOS.
Programación Lineal SOLUCIÓN MEDIANTE SOFTWARE POM FOR WINDOWS.
Funciones.
Potenciación Bibliografía: el mentor de matemática Grupo Océano
LÍMITES Y CONTINUIDAD IVºELECTIVO
DE PRIMERO Y SEGUNDO GRADO Diseño: M. en C. Juan Adolfo Alvarez Mtz.
. Primera Open Class Asignatura: Programación Estructurada Tema:
Metodo geométrico para la extracción de endmembers
SUMA DE MATRICES 2º BCT.
Optimización: Programación Lineal
INVESTIGACIÓN DE OPERACIONES
INVESTIGACIÓN DE OPERACIONES
Unidad 5. Capítulo VI. Sistemas lineales no homogéneos.
Estructuras de Datos Recursividad.
MATRICES.
Problema de transporte método de vogel
Sistemas de ecuaciones lineales
TALLER Nº2: Modelo de Distribución de Viajes
Tele clase 5 Sistemas de ecuaciones lineales.
Toribio Sarmiento Miguel Sesarego Cruz Rosmery
Facultad de Contaduría y Administración
2.1 POTENCIAS Y RADICALES.
METODO DE TRANSPORTE APROXIMACION DE VOGEL
PROGRAMACION LINEAL UNIVERSIDAD LIBRE 2016
Método de vogel PROGRAMACION LINEAL FACULTAD DE INGENIERIA
Simulador modular secuencial basado en ecuaciones
ALGORITMOS Un procedimiento o método para resolver un problema que cumpla con unos requisitos se dice que es un algoritmo. Se puede dar por tanto la siguiente.
METODO DE LA GRAN M SANDRA PAOLA FORERO JHON SEBASTIAN GUATAVITA
salto de piedra a piedra programación lineal
MULTIPLICACIÓN DE VECTORES. EXISTEN DIFERENTES MÉTODOS PARA LA MULTIPLICACIÓN DE VECTORES: Producto de un vector por un escalar Producto escalar o producto.
Tema 2. Ecuaciones y sistemas. Inecuaciones
FunciÓn PotenciaL, exponencial y logarÍtmica.
Tema 7 LÍMITES Y CONTINUIDAD Bloque Análisis Matemático.
Vectores en el espacio 2º Bachillerato
Sucesiones.
Juan José Bravo B., M.Sc. Solución de Modelos de Programación Lineal El Metodo Simplex Juan José Bravo B, M.Sc. ©
Variables acotadas Sea: (P) Min c T x / Ax = b x  0, x  u donde c  R n, b  R m y A es una matriz de rango completo mxn con n>m. En una iteración cualquiera.
Tema 8: Integrales y sus aplicaciones
MATEMÁTICAS UD 6 ECUACIONES
Tipos de Datos abstractos
Sea la ecuación diferencial lineal de orden “n” y de coeficientes variables
Tipos de Datos abstractos
POLINOMIOS p(x) = p0 + p1x + p2x2 + p3x3 + … + pnxn pn ≠ 0
Sistemas de Ecuaciones 2º Bachillerato
Tema X: Optimización con restricciones de desigualdad
Análisis Numéricos Unidad 2
Optimización de Procesos.
Tipos de Ecuaciones. El signo igual El signo igual se utiliza en: El signo igual se utiliza en: Igualdades numéricas: Igualdades numéricas: = 5.
Resolución interactiva del Simplex
ECUACIONES Y SISTEMAS U. D. 6 * 4º ESO E. Angel Prieto Benito
PROPIEDADES DE LAS FUNCIONES CONTINUAS MATEMÁTICAS II.
DEPARTAMENTO DE MATEMÁTICAS
DEPARTAMENTO DE MATEMÁTICAS
Vectores fijos en el plano Vector fijo: Es un segmento orientado, con el sentido del recorrido que va desde el origen al extremo. A B Extremo Origen.
MC Beatriz Beltrán Martínez Verano 2018
2/22/2019 SISTEMAS NO LINEALES.
MÉTODO SIMPLEX. Ejemplo de Simplex: Vamos a resolver el siguiente problema: MaximizarZ = f(x 1,x 2 ) = 3x 1 + 2x 2 Sujeto a:2x 1 + x 2 ≤ 18 2x 1 + 3x.
Licenciatura en Ingeniería en Sistemas y Comunicaciones
TEMARIO DEFINICIÓN ………………………………………………………..………..
DUALIDAD EN PROGRAMACION LINEAL Relaciones primal-dual Asociado a cada problema lineal existe otro problema de programación lineal denominado problema.
Obtención de soluciones básicas factibles
Programac. De Métodos Numéricos Unidad 2
Construcción de la tabla inicial del método simplex
Transcripción de la presentación:

Programación lineal Problemas lineales (forma estándar) min cTx s.a Ax = b x  0 Estudiaremos sus propiedades especiales Métodos específicos de solución: Método Simplex Métodos de puntos interiores

A (x +(1-)y ) = Ax + (1-)Ay = b + (1-)b = b Programación lineal Propiedades especiales del problema La región factible es convexa Toda solución local es global Las condiciones necesarias de primer orden son suficientes Propiedad de convexidad: x e y factibles, A (x +(1-)y ) = Ax + (1-)Ay = b + (1-)b = b x +(1-)y  0

Figura limitada por hiperplanos Programación lineal Propiedades especiales del problema La región factible es un politopo : Figura limitada por hiperplanos Elementos de un politopo: Caras, aristas, vértices Algunos de estos elementos son importantes para el cálculo de la solución Cómo identificarlos: caracterización algebraica

Programación lineal Politopos

Programación lineal Soluciones

Programación lineal Teorema básico: Importancia de los vértices: “Si existe una solución del problema lineal, existe un vértice solución” Importancia de los vértices: Basta con buscar soluciones en vértices (número finito) Método Simplex: Probar vértices eficientemente hasta encontrar la solución

cT x = i i cTxi  mini cTxi Programación lineal Justificación: Resultado básico (teor. de representación) Todo punto de un conjunto convexo puede expresarse como combinación convexa de n+1 puntos extremos del conjunto x = i i xi , i i = 1, i  0 cT x = i i cTxi  mini cTxi

Programación lineal Caracterización algebraica de vértices Representación gráfica solo válida si n  3 Caracterización general basada en la de otras partes de un politopo Caras, aristas, etc.

Programación lineal Partes de un politopo, Ax  b Caras: subconjuntos de hiperplanos Vértices: Puntos intersección de al menos n caras Aristas: Segmentos intersección de n - 1 caras Comienzan y acaban en un vértice Vértices contiguos: unidos por una misma arista

Ab  nn, bb  n, det(Ab )  0, Programación lineal Caracterización algebraica: Caras: {x | j ajTx = bj , Ax  b } Vértices: existe una partición de A y b, Ab bb A = b = An bn Ab  nn, bb  n, det(Ab )  0, Ab x = bb , An x  bn

Programación lineal Vértices de Ax = b, x  0, A  mn Ax = b x  0 Siempre existen m restricciones activas, Ax = b Necesitamos n - m restricciones activas en x  0 En un vértice al menos n - m variables deben ser iguales a cero: variables no básicas Variables distintas de cero: variables básicas

Programación lineal Ejemplo: Comprobar si son vértices: min 2x1 + x2 - x3 + 3x4 s.a x1 + 2x2 - x3 + x4 + x5 = 3 2x1 + 4x2 + x3 + 2x4 - x5 = 12 x1 + 4x2 + x3 - x4 + 2x5 = 9 x  0 Comprobar si son vértices: ( 1 1 2 1 1 )T , ( -3 4 0 0 -2 )T , ( 9/2 1/4 5/2 0 1/2 )T , ( 3 1 2 0 0 )T

Programación lineal Procedimiento básico Método Simplex: Suponemos conocido un vértice factible Comprobamos si es solución: Comprobar condiciones necesarias y suficientes Si no lo es, buscamos un vértice contiguo mejor Criterio de selección entre vértices contiguos

Programación lineal Método Simplex: Aspectos básicos: ¿Cómo podemos calcular un vértice factible? ¿Qué debemos comprobar para saber si un vértice es solución? ¿Cómo podemos escoger un vértice contiguo mejor?

Programación lineal Comprobar si un vértice es óptimo: Paso 1. ¿Es un vértice factible? ¿Es factible? ¿Tiene al menos n - m variables iguales a cero? Paso 2. ¿Es solución? Condiciones de óptimo Signo de los multiplicadores

Programación lineal Condiciones de óptimo en un vértice Problema en forma estándar Versión más eficiente de las condiciones Sistema de ecuaciones de tamaño reducido Basado en partición de variables para un vértice factible xb cb x = c = A = ( B N ) xn cn

Programación lineal Derivación de condiciones de óptimo Condiciones generales de extremo Condición basada en ausencia de descenso Estudiar las direcciones factibles en el vértice Estudiar solo las aristas que salen del vértice Determinar si la función objetivo decrece Vértice solución: si la f. objetivo no decrece a lo largo de ninguna arista

Programación lineal Condiciones necesarias y suficientes: Ax = b , x  0 c = AT +    0 , Tx = 0 Para comprobar si un punto es solución: Factibilidad Existencia de multiplicadores Signo de multiplicadores 

Programación lineal Ejemplo: Comprobar si ( 3 1 2 0 0 )T es solución min 2x1 + x2 - x3 + 3x4 s.a x1 + 2x2 - x3 + x4 + x5 = 3 2x1 + 4x2 + x3 + 2x4 - x5 = 12 x1 + 4x2 + x3 - x4 + 2x5 = 9 x  0 Comprobar si ( 3 1 2 0 0 )T es solución

Programación lineal Condiciones simplificadas: cb BT 0 =  + , n  0 cn NT n Equivalentes a cb = BT , cn = NT + n , n  0 o bien cn - NTB -T cb  0 Se resuelve un sistema de dimensión m  m

Programación lineal Comprobación de las condiciones: Paso 1. Se resuelve el sistema de ecuaciones BT = cb Paso 2. Se calcula el multiplicador como n = cn - NT Paso 3. Se comprueba la condición n  0

Programación lineal Condiciones de óptimo en un vértice Esfuerzo a realizar: Factibilidad Multiplicar matriz por vector Existencia de multiplicadores Resolver un sistema de ecuaciones Dimensión n  n Signo de los multiplicadores Comparación simple

Programación lineal 1 2 -1 1 1 2 3 B = 2 4 1 N = 2 -1 cB = 1 cN = Cálculo de los multiplicadores para ( 3 1 2 0 0 )T 1 2 -1 1 1 2 3 B = 2 4 1 N = 2 -1 cB = 1 cN = 1 4 1 -1 2 -1 0 B T = cb   = ( 5/6 4/3 -3/2 )T n = cn - NT = ( -2 7/2 )T Como (n )1 < 0 , el punto no es solución

Programación lineal Método Simplex Nos dan un vértice factible Si es solución, se termina Si no lo es, buscar un nuevo vértice Cálculo de un nuevo vértice Para alcanzar la solución más rápidamente, se calcula un vértice mejor Para facilitar el cálculo del nuevo vértice, se elige un vértice contiguo

Programación lineal Cálculo del nuevo vértice Buscar entre vértices contiguos Problema en forma estándar: Un vértice contiguo comparte n - 1 restricciones activas Un vértice contiguo comparte n - m - 1 variables no básicas Una variable no básica diferente Existen n - m vértices contiguos

Programación lineal ¿Qué vértice contiguo escoger? El mejor: Vértice contiguo con el menor valor de la función objetivo Demasiado caro de calcular El que resulte más prometedor: Vértice contiguo en la arista con el mayor descenso en la función objetivo

Programación lineal Vértice más prometedor ?

Programación lineal Selección de vértice contiguo Clave: valor de los multiplicadores Multiplicador: cambio en la función objetivo al alejarse de la restricción Supongamos que i < 0 Si aumenta xi , la función objetivo disminuye a un ritmo dado por i Multiplicador más negativo: decrecimiento más rápido

Programación lineal Cálculo del vértice contiguo Si el vértice no es solución, existe algún multiplicador negativo Seleccionar el multiplicador más negativo Desplazarse a lo largo de la arista asociada Expresión de la arista: x + p ,   0 p vector que representa la dirección de la arista  escalar que indica distancia sobre la arista Cuanto mayor es  , más nos alejamos del vértice

Programación lineal Cálculo de dirección de movimiento, p Dirección p tal que a lo largo de x + p : Aumente xi Las restricciones de igualdad se cumplan Las demás variables no básicas sean cero Cálculo de componentes básicas y no básicas: pb p = pn

Programación lineal Información de partida: vértice factible x xb x = , A x = b , x  0 , xn = 0 xn Condiciones que debe cumplir p : Debe aumentar (xn)i  (pn)i > 0 Demás variables no básicas iguales a cero  (pn)j = 0 j  i

Programación lineal Condiciones que debe cumplir p : Se deben cumplir las restricciones de igualdad A x = b , A (x + p ) = b  Ap = 0  Bpb + Npn = 0  Bpb = -Npn ¿Qué queda por determinar? Componente no básica a aumentar, i Valor de la componente (pn)i Se toma el valor 1

cTp = cnTpn + cbTpb = ( cn + N TB -Tcb )T ei = (n )i Programación lineal Resumen Forma de p : pn = ei , Bpb = -Nei ¿Qué i se selecciona? Variable no básica con (n)i más negativo Justificación: cT (x + p ) = cTx +  cTp cTp = cnTpn + cbTpb = ( cn + N TB -Tcb )T ei = (n )i

Programación lineal Cálculo de p Dado un vértice factible no solución Paso 1. Encontrar el multiplicador más negativo, (n )i Paso 2. Definir pn como pn = ei Paso 3. Resolver el sistema de ecuaciones Bpb = -Nei

Programación lineal Ejemplo: Estudiar el punto ( 3 1 2 0 0 )T min 2x1 + x2 - x3 + 3x4 s.a x1 + 2x2 - x3 + x4 + x5 = 3 2x1 + 4x2 + x3 + 2x4 - x5 = 12 x1 + 4x2 + x3 - x4 + 2x5 = 9 x  0 Estudiar el punto ( 3 1 2 0 0 )T -2 n = cn - NTB -Tcb = 7/2

Programación lineal Definición de p Componentes no básicas: pn = e1 Componentes básicas: 1 2 1 1 1 -1 -3 Bpb = -Ne1  2 4 1 pB = - 2 -1 e1 = -2  pB = 1 1 4 1 1 2 1 0 Dirección de movimiento: p = ( -3 1 0 1 0 )T

cT p < 0 descenso, cT p > 0 ascenso Programación lineal Justificación de la condición de óptimo ¿Se tiene ascenso en el vértice a lo largo de todas las aristas? Cálculo de todas las aristas en un vértice: pn = ei i , Bpb = -Npn Puntos a lo largo de la arista: x +  p ¿Descenso o ascenso? cT ( x +  p ) - cT x =  cT p cT p < 0 descenso, cT p > 0 ascenso

Programación lineal Justificación de la condición de óptimo Expresión formal cT p = cnT pn + cbT pb = cnT ei + cbT (-B -1Nei ) = eiT ( cn - NTB -T cb ) = eiT n donde n = cn - NTB -T cb Se tiene una solución (para minimización) si n  0

Programación lineal Cálculo de la longitud de paso  xk+1 = xk + pk ¿Cómo interesaría moverse? A lo largo de pk la función objetivo decrece linealmente Moverse tan lejos como sea posible Unica limitación: Restricciones de cota de las variables básicas

 = min { -xi /pi | pi < 0 } Programación lineal Cálculo de la longitud de paso  Condición: xi + pi  0 i  B Para cada componente i básica calculamos el mayor paso factible, -xi /pi El paso se define como el menor de los cocientes para los pasos positivos  = min { -xi /pi | pi < 0 }

Programación lineal Ejemplo: min 2x1 + x2 - x3 + 3x4 s.a x1 + 2x2 - x3 + x4 + x5 = 3 2x1 + 4x2 + x3 + 2x4 - x5 = 12 x1 + 4x2 + x3 - x4 + 2x5 = 9 x  0 En ( 3 1 2 0 0 )T hemos obtenido p = ( -3 1 0 1 0 )T Solo existe una componente negativa en p  = -3/(-3) = 1 , x’ = x + p = ( 0 2 2 1 0 )T

Programación lineal Cálculo del vértice factible inicial Para aplicar el método Simplex falta un vértice inicial Pero el método Simplex es capaz de generar vértices factibles Las soluciones de un problema lineal lo son Basta con encontrar un problema lineal con las propiedades adecuadas

Programación lineal Problema lineal auxiliar (fase I) Problema lineal relacionado con el de partida, pero distinto de él Propiedades deseadas: Debe tener un vértice factible que se pueda calcular de forma trivial La solución del problema auxiliar debe ser un vértice factible del problema de partida

Programación lineal Supondremos que b  0 Problema auxiliar min cTx min eTw s.a Ax = b  s.a Ax + w = b x  0 x ,w  0 Vértice inicial: ( x , w ) = ( 0 , b ) Si la solución del problema modificado resultase ser ( x , 0 ) , x sería un vértice factible del problema original

Programación lineal Paso 1. Asegurar que b  0 Paso 2. Construir el problema modificado Paso 3. Resolver dicho problema partiendo de ( 0 , b ) Paso 4. Si en la solución w = 0 , resolver el problema original desde x Paso 5. Si en la solución w  0 , el problema original no es factible

Programación lineal Ejemplo: Lado derecho mayor que cero: max 2x1 - 3x2 - x3 + 2x4 s.a x1 + x2 - x3 - x4  -2 2x1 - x2 + 2x3 + x4  1 -x1 + x2 + x3 - 2x4 = -2 x  0 Lado derecho mayor que cero: s.a -x1 - x2 + x3 + x4  2 x1 - x2 - x3 + 2x4 = 2

Programación lineal Problema en forma estándar Problema auxiliar: max 2x1 - 3x2 - x3 + 2x4 s.a -x1 - x2 + x3 + x4 + s1 = 2 2x1 - x2 + 2x3 + x4 - s2 = 1 x1 - x2 - x3 + 2x4 = 2 x , s  0 Problema auxiliar: min w1 + w2 2x1 - x2 + 2x3 + x4 - s2 + w1 = 1 x1 - x2 - x3 + 2x4 + w2 = 2 x , s , w  0

Programación lineal Ejemplo Punto inicial del problema auxiliar: x = ( 0 0 0 0 )T , s = ( 2 0 )T , w = ( 1 2 )T Punto solución del problema auxiliar: x = ( 0 0 0 1 )T , s = ( 1 0 )T , w = ( 0 0 )T Vértice factible del problema inicial: x = ( 0 0 0 1 )T

Programación lineal Los cálculos del método Simplex: Paso 1. Obtener un vértice factible inicial Paso 1.1 Asegurar que b  0 Añadir variables auxiliares Formar problema auxiliar Paso 1.2 Fase I Resolver el problema auxiliar Determinar un vértice factible para el problema original

Programación lineal Paso 2. BT = cb , n = cn - NT n  0 ? Paso 3. Comprobar si el vértice factible es solución BT = cb , n = cn - NT n  0 ? Paso 3. Calcular la dirección de movimiento p i = arg mink (n )k pn = ei , Bpb = -Nei

 = min { -xi /pi | pi < 0 } Programación lineal Paso 4. Calcular la longitud de paso   = min { -xi /pi | pi < 0 } Paso 5. Obtener el nuevo vértice x’ = x + p

Programación lineal Ejemplo Paso 0. Poner en forma estándar min x1 - 2x2 - x3 s.a x1 + x3  1 x1 + 2x2 + 2x3  2 x  0 Paso 0. Poner en forma estándar s.a x1 + x3 - s1 = 1 x1 + 2x2 + 2x3 + s2 = 2 x , s  0

Programación lineal Paso 1. Vértice factible inicial Problema auxiliar: min a s.a x1 + x3 - s1 + a = 1 x1 + 2x2 + 2x3 + s2 = 2 x , s , a  0 Vértice factible inicial: x = ( 0 0 0 )T , s = ( 0 2 )T , a = 1 Solución: x = ( 1 0 0 )T , s = ( 0 1 )T , a = 0

Programación lineal Paso 2. Solución del problema original Variables básicas: x1 , s2 ¿Es solución el vértice?  = B -Tcb = ( 1 0 )T , n = cn - NT = ( -2 -2 1 )T Dirección de movimiento: pn = ( 1 0 0 )T , pb = -B -1Npn = ( 0 -2 )T , p = ( 0 1 0 0 -2 )T Longitud de paso:  = 1/2 Nuevo vértice: x’ = ( 1 1/2 0 0 0 )T

 = B -Tcb = ( 2 -1 )T , n = cn - NT = ( -1 2 1 )T Programación lineal Siguiente iteración: Variables básicas: x1 , x2 ¿Es solución el vértice?  = B -Tcb = ( 2 -1 )T , n = cn - NT = ( -1 2 1 )T Dirección de movimiento: pn = ( 1 0 0 )T , pb = -B -1Npn = ( -1 -1/2 )T , p = ( -1 -1/2 1 0 0 )T Longitud de paso:  = min{ 1/1 , (1/2)/(1/2) } = 1 Nuevo vértice: x’ = ( 0 0 1 0 0 )T

 = B -Tcb = ( 3 -2 )T , n = cn - NT = ( 2 3 2 )T Programación lineal Siguiente iteración: Variables básicas: x1 , x3 ¿Es solución el vértice?  = B -Tcb = ( 3 -2 )T , n = cn - NT = ( 2 3 2 )T El vértice es solución Vértice degenerado ¿Qué habría sucedido si hubiésemos considerado como variables básicas x2 , x3 ?

Programación lineal Convergencia del método Simplex Un problema lineal puede ser: No factible No acotado max x1 + x2 s.a x  0 Factible y acotado  óptimo

Programación lineal Convergencia del método Simplex Si el problema no tiene solución Basta con poder identificar la situación Si el problema no es factible: La fase I acaba con una solución w  0 Si el problema no está acotado: El método Simplex encuentra un paso  =  En alguna iteración pb  0

Programación lineal Si el problema es óptimo En cada iteración la función objetivo decrece Descenso: cTp = (n )i < 0 Siempre que  > 0 Se sigue descendiendo hasta que n  0 Existe un número finito de vértices El argumento solo puede fallar si  = 0

Programación lineal Vértices degenerados Para que  = 0 se debe tener que i , (xb )i = 0 y (pb )i < 0 Puede suceder en vértices degenerados Posibilidad de ciclos: Intercambiar variables básicas y no básicas Sin modificar el valor de x

Programación lineal Cómo evitar ciclos: Si no hay empate, no pueden existir ciclos En caso de empates: regla de Bland Variable que entra en la base: Primera con el menor valor del multiplicador Variable que sale de la base: Primera con el menor cociente para  Orden de variables: cualquiera pero fijo Ineficiencia en la práctica

Programación lineal Organización de los cálculos cT 0 A b Para su aplicación manual Se disponen los datos en una tabla, cT 0 A b En un vértice, la tabla se reajusta como cT - cbTB -1A -cbTB -1b B -1A B -1b

Programación lineal ¿Qué información proporciona la tabla? cT - cbTB -1A -cbTB -1b B -1A B -1b Multiplicadores Función objetivo Dir. de movimiento Valores de variables Cada vértice corresponde a diferentes valores de B y cB

Programación lineal ¿Cómo actualizar la tabla al cambiar B ? Cambio de B Variable no básica  básica: multiplicador Variable básica  no básica: longitud de paso Una columna de B cambia por otra B = ( b1 ... bk ... bm )  ( b1 ... bj ... bm ) = B’ B’ = B + (bj - bk )ekT = B (I + ( B -1bj - ek )ekT ) = BE

Programación lineal La matriz de interés en la tabla es la inversa, B’ -1 = E -1B -1 , E -1 = I - (1/ekTB -1bj )( B -1bj - ek )ekT N’ = B -1N , nj’ = B -1nj B’ -1A = B -1A - (1/ekTnj’ )(nj’ - ek )ekTB -1A Operaciones sobre la tabla: A cada fila i se le resta la fila k multiplicada por nij’ /nkj’ Se pivota sobre el elemento kj

Programación lineal La misma operación de pivotaje se aplica al lado derecho y a la fila superior Ejemplo: Introducir en la base x3 y eliminar x1 0 -5 3 0 -1 26 -3 -2 0 0 2 20 0 2 -3 1 1 2  3 -1 0 1 -2 8 1 -1 1 0 -1 2 1 -1 1 0 -1 2 Propiedad de las columnas básicas: Matriz identidad más ceros en la fila superior

Programación lineal Ejemplo Problema auxiliar: min x1 - 2x2 - x3 s.a x1 + x3  1 x1 + 2x2 + 2x3  2 x  0 Problema auxiliar: min a s.a x1 + x3 - s1 + a = 1 x1 + 2x2 + 2x3 + s2 = 2 x , s , a  0

Programación lineal Tablas para el problema auxiliar 1 -2 -1 0 0 0 0 1 -2 -1 0 0 0 0 0 0 0 0 0 1 0 -1 0 -1 1 0 0 -1 1 0 1 -1 0 1 1  1 0 1 -1 0 1 1 1 2 2 0 1 0 2 1 2 2 0 1 0 2 Paso 2.1. ¿Son positivos los multiplicadores? Paso 2.2. Dir. de movimiento y long. de paso: Columna multipl. más negativo, fila cociente menor Se pivota sobre el valor 1

Programación lineal Nueva tabla: 1 -2 -1 0 0 0 0 0 -2 -2 1 0 -1 -1 -1 0 -1 1 0 0 -1 0 0 0 0 0 1 0 1 0 1 -1 0 1 1  1 0 1 -1 0 1 1 1 2 2 0 1 0 2 0 2 1 1 1 -1 1 Nueva tabla es óptima para problema auxiliar 0 -2 -2 1 0 -1 1 0 1 -1 0 1 0 2 1 1 1 1

Programación lineal De vuelta al problema original: ¿Es solución? No 0 -2 -2 1 0 -1 0 0 -1 2 1 0 1 0 1 -1 0 1  1 0 1 -1 0 1 0 2 1 1 1 1 0 1 1/2 1/2 1/2 1/2 ¿Es solución? No Siguiente vértice: 0 0 -1 2 1 0 0 2 0 1 2 1 1 0 1 -1 0 1  1 -2 0 -2 -1 0 0 1 1/2 1/2 1/2 1/2 0 2 1 1 1 1

Programación lineal Resumen: En la tabla se selecciona: Columna del multiplicador más negativo Fila con menor cociente bik’ /nik’ para nik’ > 0 Se pivota sobre el elemento nik’ El proceso se repite hasta que los multiplicadores tienen el signo correcto