PROGRAMACIÓN LINEAL Introducción ♦ La programación lineal es instrumento ♦Características de un programa lineal ♦Análisis geométrico de programas lineales ♦Formulación de programas lineales ♦Matrices y soluciones básicas ♦El método Simplex Definición de programa lineal habitual en empresas. ♦ Una de las ramas de la Optimización más desarrollada. Definición de programa lineal ♦ Función objetivo y restricciones lineales ⎧ opt F ( x ) = c x + c x + L + c x ⎪ ⎪a x + a x + L + a x ≤ b ⎪⎪ ⎨M ⎪ ⎪a x + a x + L + a x ≤ b ⎪ ⎪⎩ x , x , K x ≥ 0 1 11 1 m1 1 12 1 2 2 m 2 1 2 2 1n 2 n 1 n mn n n m n ♦ Es convexo: – Todo óptimo es global – Las condiciones necesarias son suficientes – Si hay dos soluciones distintas, también lo es cualquier combinación lineal convexa Análisis geométrico ⎧máx 3 x + 4 y ⎪ ⎪⎪2 x + 3 y ≤ 10 ⎨ ⎪x + 3 y ≥ 5 ⎪ ⎪⎩ x, y ≥ 0 Máximo en el (5,0): vértice ♦ Ventajas: – Fáciles de definir y formular – Se trabaja de forma eficiente con un número elevado de variables de decisión – Se adaptan mejor al tratamiento algorítmico con computadores Análisis geométrico ⎧máx 4 x + 6 y ⎪ ⎪⎪2 x + 3 y ≤ 10 ⎨ ⎪x + 3 y ≥ 5 ⎪ ⎪⎩ x, y ≥ 0 Máximo en todos los puntos de uno de los lados del polígono 1 Análisis geométrico ⎧máx 2 x + 3 y ⎪ ⎪⎪ x + y ≥ 4 ⎨ ⎪x ≥ 2 ⎪ ⎪⎩ y ≥ 0 Análisis geométrico ♦ Deducción de propiedades: – El espacio D de soluciones factibles es un polítopo. Recomendable que sea acotado. – Todo óptimo es global y siempre se alcanza en la frontera de D (alguna restricción se satura). – Si existe óptimo, éste se alcanza, al menos, en un vértice de D. – Si varios puntos son óptimos, también cualquier combinación lineal convexa. D no acotado en la dirección de crecimiento de la función Formulación de programas lineales Análisis geométrico ♦ Primer método de resolución: – Localizar los vértices de D. – Calcular la función objetivo sobre todos los vértices – Elegir aquél sobre el que la función alcance el menor o el mayor valor -> solución – Si varios vértices son óptimos, también cualquier combinación lineal convexa. ♦ Formulación estándar: ⎧ mín c x + c x + L + c x ⎪ ⎪a x + a x + L + a x = b ⎪ ⎪⎪ a x + a x + L + a x = b ⎨ ⎪M ⎪ ⎪a x + a x + L + a x = b ⎪ ⎪⎩ x , x , K x ≥ 0 ; n ≥ m ; b ≥ 0 , i = 1 , 2 , K , m ♦ Formulación estándar matricial: 1 2 1 12 2 21 1 22 2 m1 1 No aconsejable para problemas de grandes dimensiones 1 11 1 2 m 2 Formulación de p. lineales 2 i i1 1 1 in n i i1 1 n in n – Si xi no está sujeta a la condición de no negatividad: x = y − z con y , z ≥ 0 – Para que bi>=0, multiplicar por -1 i i i i 2 n n m i ♦ A matriz de m filas y n columnas, n>=m in i a x + L + a x ≥ b ⇒ ∃ y ≥ 0 tal que a x + L + a x − y = b i1 n cx ⎧ mín ⎪⎪ Ax = b ⎨ ⎪ ⎪⎩ x ≥ 0 a x + L + a x ≤ b ⇒ ∃ y ≥ 0 tal que a x + L + a x + y = b n mn 1 Matrices y soluciones básicas – máx f(x)= mín -f(x) – mín c1x1+...cnxn+d=mín c1x1+...cnxn – Variables de holgura: in n n 2n forma estándar: 1 n 1n ⎧ mín cx ⎪⎪ ⎨ Ax = b ⎪ ⎪⎩ x ≥ 0 ♦ Transformación de un p. lineal a su i1 2 i i ♦ De rango m (no hay restricciones redundantes) Matriz básica: submatriz de A con det. no nulo formada por m columnas de A Si B es una de ellas, es básica factible si B-1b>=0 Variables naturales y variables de holgura 2 Matrices y soluciones básicas Matrices y soluciones básicas ♦ Cada matriz básica B origina una ♦ Si xD=0 : solución básica: A = (B | D) x B = B Solución básica: ⎛x x = ⎜⎜ ⎝x ⎞ variables básicas ⎟ ⎟ variables no básicas ⎠ ⎛x ⎞ Ax = b ⇒ ( B D ) ⎜⎜ ⎟⎟ = Bx + Dx ⎝x ⎠ B D B B D =b D ⇓ x = B b − B Dx −1 B −1 D −1 b ⎛x ⎞ x = ⎜⎜ ⎟⎟ ⎝0⎠ B ♦ Construcción de soluciones básicas : – Bxb=b y dando valores nulos a las restantes variables ♦ Soluciones básicas : – Factibles si xb>=0 • Degeneradas: alguna v. Básica es nula • No degeneradas: xb>0 – Infactibles si alguna v. básica es negativa Matrices y soluciones básicas Matrices y soluciones básicas ♦ Interpretación geométrica de las ♦ Las soluciones básicas factibles de: soluciones básicas: ⎧mín 3 x + 4 y Soluciones básicas factibles: ⎪ (5,0,0,0) ⎪⎪2 x + 3 y ≤ 10 (0,5/3,5,0) ⎨ (0,10/3,0,5) ⎪x + 3 y ≥ 5 ⎪ ⎪⎩ x, y ≥ 0 cx ⎧ mín ⎪⎪ Ax = b ⎨ ⎪ ⎩⎪ x ≥ 0 se corresponden con los vértices de D. ♦ Teorema fundamental de la programación lineal: dado un programa lineal en forma estándar, si existe solución óptima, ésta se alcanza al menos sobre una de las soluciones básicas factibles. El método Simplex El método Simplex ♦ Encontrar la solución básica óptima sin ♦ En un número finito de pasos se tener que construirlas todas, sólo utilizando un subconjunto: – Se parte de una solución básica factible inicial. – Si no es óptima, encontrar otra que disminuya el valor de la función objetivo o que, por lo menos, no aumente. – Repetir el proceso hasta encontrar una solución básica factible óptima. encuentra el óptimo. Para ello se necesita: – Un test de optimalidad que permita reconocer cuándo una solución básica factible es óptima. – Un método efectivo de paso de una solución básica a otra que mejore el valor de la función objetivo. 3 El método Simplex El método Simplex ♦ Test de optimalidad: vértice óptimo vértice inicial D El método Simplex cx ⎧ mín ⎪⎪ ⎨ Ax = b ⎪ ⎪⎩ x ≥ 0 (C2) xB1 .... xBm (C3) c1 b1 a11 .... bm am1 cB ο b cB ο A1 z1 – Teorema: una solución básica factible es óptima si y sólo si r=cD-cBB-1 D>=0 Se demonina a r el vector de costes reducidos –Teorema: si existe una solución básica factible en la que r>0, esa solución básica es el único óptimo del problema. El método Simplex ♦ Método del Simplex en forma de tabla: (C1) cB1 .... cBm cx ⎧ mín ⎪⎪ Ax = b ⎨ ⎪ ⎪⎩ x ≥ 0 .... .... .... .... .... .... .... .... .... .... cn a1n (F1) amn cB ο An (Fm+2) zn (F1)- (Fm+2) Cada tabla está asociada a una solución básica factible ♦ Si todos los elementos de la última fila son mayores o iguales a 0, se ha alcanzado el óptimo. ♦ Si los valores de la última fila asociados a las variables no básicas,( r ), son >0, la solución es el único óptimo. Importante: • Los elementos de C3 salvo el último, deben ser >=0 •Las columnas de A asociadas a las variables básicas forman la matriz identidad 4