84
ecnicas Cl´ asicas de Optimizaci´ on. Parte I: Programaci´ on Lineal y No Lineal Mar´ ıa Merino Maestre Facultad de Ciencia y Tecnolog´ ıa Departamento de Matem´ atica Aplicada y Estad´ ıstica e Investigaci´ on Operativa UPV/EHU

T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

  • Upload
    lydung

  • View
    226

  • Download
    3

Embed Size (px)

Citation preview

Page 1: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

Tecnicas Clasicas de Optimizacion.Parte I: Programacion Lineal y No Lineal

Marıa Merino Maestre

Facultad de Ciencia y Tecnologıa

Departamento de Matematica Aplicada yEstadıstica e Investigacion Operativa

UPV/EHU

Page 2: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

Indice general

Prologo 3

I Programacion Lineal y No Lineal 5

1 Programacion Lineal 71.1 Introduccion a la Investigacion Operativa . . . . . . . . . . . . . 7

1.1.1 Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . 71.1.2 Clasificacion . . . . . . . . . . . . . . . . . . . . . . . . . 81.1.3 Metodologıa . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.2 Introduccion a la Programacion Lineal . . . . . . . . . . . . . . 111.2.1 Formulacion matematica . . . . . . . . . . . . . . . . . . 121.2.2 Transformaciones . . . . . . . . . . . . . . . . . . . . . . 131.2.3 Clasificacion . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.2.4 Resolucion grafica . . . . . . . . . . . . . . . . . . . . . . 161.3 El metodo Sımplex . . . . . . . . . . . . . . . . . . . . . . . . . 20

1.3.1 Resolucion algebraica . . . . . . . . . . . . . . . . . . . . 211.3.2 Resolucion tabular . . . . . . . . . . . . . . . . . . . . . 271.3.3 Casos especiales . . . . . . . . . . . . . . . . . . . . . . . 301.3.4 Identificacion de SBF iniciales . . . . . . . . . . . . . . . 341.3.5 Teorıa del Metodo Sımplex . . . . . . . . . . . . . . . . . 36

1.4 Teorıa de dualidad y analisis de sensibilidad . . . . . . . . . . . 48

1.4.1 Propiedades de la Teorıa de Dualidad . . . . . . . . . . . 491.4.2 Interpretacion economica . . . . . . . . . . . . . . . . . . 511.4.3 Analisis de sensibilidad . . . . . . . . . . . . . . . . . . . 53

2 Programacion No Lineal 572.1 Introduccion a la Programacion No Lineal . . . . . . . . . . . . 572.2 Tipos de problemas de PNL . . . . . . . . . . . . . . . . . . . . 62

i

Page 3: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

INDICE GENERAL 1

2.3 Optimizacion no restringida . . . . . . . . . . . . . . . . . . . . 672.4 Optimizacion restringida: condiciones KKT . . . . . . . . . . . 722.5 Programacion cuadratica . . . . . . . . . . . . . . . . . . . . . . 73

2.5.1 Formulacion cuadratica . . . . . . . . . . . . . . . . . . . 732.5.2 Condiciones KKT para programacion cuadratica . . . . . 752.5.3 Metodo Sımplex Modificado . . . . . . . . . . . . . . . . 77

Page 4: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

2 INDICE GENERAL

Page 5: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

Prologo

La asignatura Tecnicas Clasicas de Optimizacion forma parte del Masteren Modelizacion e Investigacion Matematica, Estadıstica y Computacion, veasehttp://riemann.unizar.es/matg5/.

Esta asignatura pretende introducir al alumnado en metodologıas modernasque contribuyen a resolver problemas de decision donde hay que optimizar eluso de recursos limitados en contextos aplicados (industriales, economicos, ...).

La asignatura esta dividida en tres partes:

Parte I: Programacion Continua (Lineal y No Lineal).

Parte II: Programacion Entera.

Parte III: Programacion Estocastica.

Se recomienda consultar la siguiente bibliografıa y enlaces: para Opti-mizacion los libros [1, 2, 3, 4, 5], para Optimizacion No Lineal [6, 7], paraOptimizacion Estocastica [8, 9, 10].

Sobre software de Optimizacion pueden consultarse las siguientes referen-cias:

COIN-OR: el codigo abierto de la Comunidad de Investigacion OperativaCOmputational INfrastructure for Operations Research se puede consul-tar en [11] y una guıa en [12].

CPLEX: el optimizador de IBM ILOG CPLEX se puede consultar en [13],ası como una guıa en [14].

XPRESS: la edicion de estudiante del sofware FICO Xpress Optimizationsuite esta disponible en la web [15].

GUSEK: el GLPK Under Scite Extended Kit esta disponible en la pagina[16].

3

Page 6: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

4 INDICE GENERAL

Page 7: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

Parte I

Programacion Lineal y NoLineal

5

Page 8: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea
Page 9: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

Capıtulo 1

Programacion Lineal

1.1 Introduccion a la Investigacion Operativa

1.1.1 Definiciones

¿En que consiste la Investigacion Operativa? Veamos algunas de las defini-ciones dadas:

• Un metodo cientıfico para dotar a los departamentos ejecutivos de unabase cuantitativa para las decisiones que tengan que ver con las opera-ciones bajo su control (McCord y Kimball, 1951)

• El uso de la logica y de la matematica de forma que no interfieran conel sentido comun (Woolsey, 1980).

• La ciencia que estudia el modelado de sistemas probabilısticos y deter-minısticos que se originan en la vida real desde un punto de vista detoma de decisiones optimas (Hillier y Lieberman, 1990).

• El estudio de como formular modelos matematicos para problemas com-plejos de administracion e ingenierıa y como analizarlos para tener unavision de las posibles soluciones (Rardin, 1998).

• Un enfoque cientıfico para la toma de decisiones ejecutivas, que consisteen el arte de modelar situaciones complejas, la ciencia de desarrollartecnicas para resolver dichos modelos y la capacidad de comunicar efec-tivamente los resultados (Lawrence y Pasternak, 1998).

7

Page 10: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

8 CAPITULO 1. PROGRAMACION LINEAL

• Rama interdisciplinaria de la Matematica Aplicada que emplea la mod-elizacion matematica, estadıstica y algoritmos de optimizacion para al-canzar soluciones optimas (o cuasi-optimas) a complejos sistemas reales,con la finalidad de mejorar su funcionamiento. Ayuda en el proceso detoma de decisiones utilizando metodos cientıficos (Wikipedia [17], 2013).

Esta disciplina, tambien conocida como Ciencia de la Gestion, Teorıa de laToma de Decisiones, Programacion Matematica, Optimizacion, Ciencia parala Mejora, cuenta con aplicaciones en multiples campos tan amplios como elindustrial, economico y cientıfico (vease [18]). En cuanto a las aplicaciones enbeneficio de la Humanidad y de la Sociedad, pueden consultarse libros comopor ejemplo, [19] y [20] de Russell Lincoln Ackoff (1919-2009), de la Universidadde Penssylvania y Charles West Churchman (1913-2004), de la Universidad deCalifornia, Berkeley.

Las Sociedades de Investigacion Operativa estan organizadas bajo la fed-eracion mundial fundada en 1959 IFORS (International Federation of Oper-ational Research Societies, [21]) a la que pertenecen unas 30000 personas ycuya mision es la promocion de la Investigacion Operativa como disciplinaacademica y como profesion. La Federacion agrupa unos 45 paıses en cua-tro regiones geograficas: Asia Pacıfico, Europa, America del Norte y AmericaLatina. Cada region a su vez cuenta con su propia asociacion que agrupalas sociedades creadas en su entorno, las primeras constituıdas a mediados delsiglo XX: en Europa se encuentra EURO (Association of European OperationalResearch Societies, 1976) a la que pertenece la espanola SEIO (Sociedad deEstadıstica e Investigacion Operativa, 1962); America del Norte cuenta conla Asociacion NORAM (Association of North American Operations ResearchSocieties, 1987) y el Instituto INFORMS (Institute for Operations Researchand Management Sciencies, 1995); a Asia Pacıfico pertenece APORS (Associ-ation of Asian-Pacific Operational Research Societies, 1985); y por ultimo enLatinoamerica se establece ALIO (Asociacion Latino-Iberoamericana de Inves-tigacion Operativa, 1982).

1.1.2 Clasificacion

Los problemas que aborda la Investigacion Operativa se pueden clasificar dediferentes formas.

Atendiendo a la certidumbre de los datos, se dividen en:

(a) modelos determinısticos, en los cuales todos los datos se suponen cono-cidos;

Page 11: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.1. INTRODUCCION A LA INVESTIGACION OPERATIVA 9

(b) modelos probabilısticos, cuando los datos se consideran inciertos y vienendados por distribuciones de probabilidad; y

(c) modelos hıbridos, como combinacion de los anteriores.

Segun el objetivo del problema se pueden clasificar en modelos de opti-mizacion, cuando el objetivo es maximizar o minimizar una cantidad, sujeta auna serie de limitaciones que restringen la decision; y modelos de prediccion,cuando el objetivo es predecir o describir sucesos dadas ciertas condiciones.

Entre los modelos de optimizacion, se encuentran:

• Problemas de secuenciacion, como puede ser decidir el orden a procesaren el mınimo tiempo un numero de trabajos en varias maquinas querequieren tiempos diferentes.

• Problemas de localizacion, como los problemas de asignacion que con-sisten en asignar recursos limitados (materias primas, inversion, horas-maquina, horas-hombre) de la manera mas eficiente (costo mınimo, mınimotiempo, mınimo de desperdicios) o los problemas de transporte o trans-bordo, que distribuyen objetos desde ciertos orıgenes a varios destinos.

• Problemas de rutas, tratan de encontrar la ruta optima desde un origena un destino cuando existen varias alternativas posibles, como el delviajante de comercio que tiene que visitar varias ciudades una unica vezantes de volver a su origen.

• Problemas de busqueda de informacion para tomar una decision, comorealizar exploraciones de la tierra para encontrar recursos naturales.

En cuanto a ejemplos de modelos de prediccion, estan los siguientes:

• Problemas de reemplazamiento o sustitucion, se pueden realizar de man-era preventiva o correctiva, por vejez, desgaste o muerte subita. Se ocu-pan de decidir el tiempo adecuado para reemplazar los equipos que fal-lan o se deterioran, como decidir cuando cambiar de coche, ordenador omaquinaria.

• Problemas de inventario o existencias, consisten en determinar la can-tidad ideal de productos que se deben tener disponibles en una tiendao almacen. Responden a las decisiones de cuantos artıculos reponer ycuando hacerlo.

Page 12: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

10 CAPITULO 1. PROGRAMACION LINEAL

• Problemas de colas o lıneas de espera, se ocupan de estudiar el numerode clientes que solicita un servicio en funcion del tiempo de llegada delcliente y de espera hasta ser atendido. Buscan el numero de instalacionesnecesarias para minimizar la espera, como puede ser la atencion en unbanco o supermercado.

• Problemas de competencia o teorıa de juegos, cuando dos o mas sujetoscompiten por un recurso. Como la obtencion de un contrato para prestarun servicio, la efectividad de las campanas publicitarias o la lealtad delos clientes frente a la aparicion de otra marca.

1.1.3 Metodologıa

En cuanto a la metodologıa que emplea la Investigacion Operativa, puedereducirse a los siguientes pasos:

1. Analisis de la realidad y formulacion del problema, el analista debe ob-servar desde diferentes puntos de vista, consciente de las realidades so-ciopolıticas y economicas, para definir de forma clara los objetivos ylimitaciones.

2. Modelado matematico representativo, se deben identificar las variablesde decision, la funcion objetivo y las restricciones del problema

3. Resolucion del modelo, en esta fase se elige la tecnica de resolucion y segeneran las soluciones.

4. Presentacion de resultados, se lleva a cabo el analisis y verificacion desoluciones, se analiza la representatividad del modelo y se realiza analisisde sensibilidad.

5. Implementacion de resultados: ejecucion, se preparan los informes y pre-sentaciones y se supervisa la aplicacion.

Como la realidad es compleja, muchos de estos modelos presentan las sigu-ientes caracterısticas:

1. Son de dimensiones enormes, en terminos del numero de variables dedecision o del numero de condiciones.

2. Son estocasticos, es decir, hay parametros cuyos valores no pueden sercontrolados por la persona que toma la decision y son desconocidos.

Page 13: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.2. INTRODUCCION A LA PROGRAMACION LINEAL 11

La incertidumbre puede deberse a carencia de datos fiables, errores demedida o parametros que representan informacion sobre el futuro.

3. Son enteros, es decir, intervienen variables enteras. Esto ocurre enmuchas situaciones de la vida real: las variables representan objetos indi-visibles; o en particular problemas binarios en los que aparecen decisionesde tipo sı/no, comprar/vender, etc.

4. Son no lineales, es decir, tanto la funcion objetivo como alguna de lascondiciones son funciones no lineales.

Cada una de estas caracterısticas, dimension, estocasticidad, integralidad y nolinealidad, dificultan enormemente la resolucion del problema, considerandoseproblemas de complejidad computacional elevada.

La solucion es clave para guiar a muchas organizaciones en areas tales comola toma de decisiones en planificacion de inversiones financieras, gestion de ac-tivos y pasivos, planificacion y distribucion de la produccion, planificacion decadenas de montaje, planificacion de la generacion de energıa, planificacionde los recursos hidraulicos, control del trafico aereo, asignacion de rutas devehıculos, agricultura y polıtica publica, por citar algunos de los muchos cam-pos de aplicacion. Los problemas con las caracterısticas anteriores se transfor-man en modelos matematicos de optimizacion.

1.2 Introduccion a la Programacion Lineal

La toma de decisiones es inherente a la mayorıa de los aspectos de las finanzas,la economıa, la empresa, la industria y las actividades sociales y polıticas. Enla actualidad, los procesos de decision basados en modelos son esenciales comobuena practica de la gestion y organizacion de las empresas.

Una de las herramientas que actualmente proporciona decisiones mas fi-ables es la Optimizacion, campo en el que confluyen las Matematicas y lasCiencias de la Computacion. El proposito de esta es construir y resolver deforma efectiva modelos realistas de la situacion que se estudia, con objeto depermitir que los tomadores de decisiones exploren una amplia variedad de posi-bles alternativas. Mas concretamente, la Optimizacion se refiere al analisis yresolucion de problemas en que se debe tomar una solucion entre un conjuntode soluciones factibles. El objetivo es encontrar la mejor solucion (no necesari-

Page 14: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

12 CAPITULO 1. PROGRAMACION LINEAL

amente unica) y las elecciones se comparan de acuerdo a una cierta funcion,llamada funcion objetivo.

Entre los objetivos de esta ciencia interdisciplinaria, estan los clasicos demaximizacion de beneficios o rendimiento y minimizacion de perdida, costes oriesgo, a los que se suman -entre otros- los objetivos de eficiencia (asignacion derecursos a actividades), la optimizacion espacio-temporal (por ejemplo, mınimaespera en una cola o mınima distancia a recorrer en un viaje) y la mejora enterminos de equidad (como la minimizacion de diferencias entre individuos encuanto al reparto de trabajo o la distribucion de vacaciones).

El reconocimiento de la importancia de este tipo de problemas coincidiocon el desarrollo en 1947 de un metodo eficiente, el metodo sımplex por GeorgeBernard Dantzig (1914-2005) y un medio, el ordenador, para aplicarlo. Unagran parte de los fundamentos de la Programacion Lineal se descubrio entre1947 y 1949, un periodo sorprendentemente corto de tiempo de intensa la-bor de investigacion y desarrollo. En la actualidad, el algoritmo sımplex esuna herramienta estandar que ha ahorrado enormes cantidades de dinero a lamayorıa de las empresas en los paıses industrializados y su extension a otrossectores de la sociedad avanza rapidamente. A comienzos del milenio, este al-goritmo aparece en la revista Computing in Science & Engineering [22] elegidopor John F. Nash como uno de los diez algoritmos de mayor influencia en el

desarrollo y la practica de la ciencia y la ingenierıa en el siglo XX.

1.2.1 Formulacion matematica

Una de las areas mas importantes y activas de la Optimizacion es la Progra-macion Lineal. Los problemas que trata se basan en la optimizacion (mini-mizacion o maximizacion) de una funcion lineal conocida como funcion obje-tivo, sujeta a una serie de restricciones lineales de igualdad o desigualdad.

Matricialmente, un problema de PL en notacion estandar (con igualdades)se puede expresar como:

max z = cxs.a Ax = b

x ≥ 0(1.1)

donde cx es la funcion objetivo a maximizar (o minimizar), x ∈ IR+n representael vector de variables a determinar, c ∈ IRn es el vector de costos asociado alas variables, A ∈ Mm×n es la matriz de coeficientes y b ∈ IR+m el vectorde terminos independientes (o rhs) relativos a las restricciones. Es decir, elproblema (1.1) es equivalente al problema (1.2) en notacion extendida:

Page 15: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.2. INTRODUCCION A LA PROGRAMACION LINEAL 13

maximizar z = c1x1 + c2x2 + . . .+ cnxn

sujeto a a11x1 + a12x2 + . . .+ a1nxn = b1

a21x1 + a22x2 + . . .+ a2nxn = b2

· · ·

am1x1 + am2x2 + . . .+ amnxn = bm

x1, x2, . . . , xn ≥ 0

(1.2)

Definicion 1.1. Se llama region factible del problema al conjunto de posiblesvalores que satisfacen todas las restricciones, R = {x ∈ IRn : Ax = b, x ≥ 0}.Una solucion del problema (1.1) se dice solucion factible si satisface todaslas restricciones del mismo, es decir, x ∈ R. Una solucion factible se dicesolucion optima si proporciona el valor mas favorable a la funcion objetivo,es decir, x∗ ∈ R es optima si ∀x ∈ R, cx∗ ≥ cx.

La funcion objetivo puede representar un problema de maximizacion ominimizacion. En un problema concreto, las restricciones pueden venir dadasen terminos de igualdad o desigualdad (≥ o ≤) y las variables pueden ser nonegativas (x ≥ 0), no restringidas (x ∈ IR) o acotadas (l ≤ x ≤ u). Sinembargo, dichas variantes pueden transformarse en el problema dado en formaestandar en (1.1) anadiendo variables adicionales. A lo largo de este curso,consideraremos problema en notacion estandar (con desigualdades) a:

max z = cxs.a Ax ≤ b

x ≥ 0(1.3)

y su version equivalente en notacion extendida:

maximizar z = c1x1 + c2x2 + . . .+ cnxn

sujeto a a11x1 + a12x2 + . . .+ a1nxn ≤ b1

a21x1 + a22x2 + . . .+ a2nxn ≤ b2

· · ·

am1x1 + am2x2 + . . .+ amnxn ≤ bm

x1, x2, . . . , xn ≥ 0

(1.4)

1.2.2 Transformaciones

Transformar un problema a notacion estandar:

Page 16: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

14 CAPITULO 1. PROGRAMACION LINEAL

1. Transformaciones sobre la funcion objetivo:

• Transformar un problema de mınimo en un problema de maximo:

max(−z) = min z

2. Transformaciones sobre las restricciones:

• Transformar una restriccion con rhs negativo:si existe i tal que bi < 0, entonces basta multiplicar por (−1) larestriccion.

• Transformar desigualdades ≤ en igualdades:si aparece una restriccion del tipo ai1x1 + ai2x2 + . . . + ainxn ≤ bi,entonces definimos una nueva variable de holgura xn+1 ≥ 0 con costonulo, cn+1 = 0, de manera que reemplazamos la desigualdad por lasiguiente igualdad de forma equivalente:

ai1x1 + ai2x2 + . . .+ ainxn + xn+1 = bi.

• Transformar desigualdades ≥ en igualdades:si aparece una restriccion del tipo ai1x1 + ai2x2 + . . . + ainxn ≥ bi,entonces definimos una nueva variable de superavit xn+1 ≥ 0 concosto nulo, cn+1 = 0, de manera que reemplazamos la desigualdadpor la siguiente igualdad de forma equivalente:

ai1x1 + ai2x2 + . . .+ ainxn − xn+1 = bi.

3. Transformaciones sobre las variables:

• Transformar una variable no positiva en una variable no negativa:si existe j tal que xj ≤ 0, entonces la reemplazamos por una nuevavariable no negativa

xj = −xj , xj ≥ 0.

• Transformar una variable no restringida en dos variables no negati-vas:si existe j tal que xj ∈ IR (no restringida), entonces la reemplazamospor la diferencia entre dos variables no negativas:

xj = x+j − x−

j , x+j ≥ 0, x−

j ≥ 0.

Page 17: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.2. INTRODUCCION A LA PROGRAMACION LINEAL 15

• Transformar una variable acotada inferiormente en una variable nonegativa:si existe j tal que xj ≥ lj, entonces la reemplazamos por una nuevavariable no negativa

xj = xj − lj, xj ≥ 0.

• Transformar una variable acotada superiormente en una variable nonegativa:si existe j tal que xj ≤ uj, entonces la reemplazamos por una nuevavariable no negativa

xj = uj − xj , xj ≥ 0.

Ejemplo 1.1. Transformar a notacion estandar (con desigualdades) el sigu-iente problema de PL:

min z = 3x1 + 5x2

s.a. : x1 +x2 ≥ 44x1 +8x2 = 10

x1 ∈ IR, x2 ≥ 0

(1.5)

Desdoblamos la variable no restringida y la restriccion en igualdad, ası:

max −z = −3x+1 + 3x−

1 − 5x2

s.a. : −x+1 −x−

1 −x2 ≤ −44x+

1 −4x−1 +8x2 ≤ 10

−4x+1 +4x−

1 −8x2 ≤ −10x+1 , x

−1 , x2 ≥ 0

(1.6)

Ejemplo 1.2. Transformar a notacion estandar (con igualdades) el siguienteproblema de PL:

min z = z1 + z2s.a. : 15 −4x1 +4x2 −u1 −z1 ≤ 0

30 +4x1 −8x2 −2u1 −z2 ≤ 0x1 +2x2 −30 ≤ 0

x1, x2, u1, z1, z2 ≥ 0

(1.7)

Anadimos las variables de holgura y1, y2, v1 y obtenemos:

Page 18: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

16 CAPITULO 1. PROGRAMACION LINEAL

max −z = −z1 − z2s.a. : 4x1 −4x2 +u1 −y1 +z1 = 15

−4x1 +8x2 +2u1 −y2 +z2 = 30x1 +2x2 +v1 = 30

x1, x2, u1, y1, y2, v1z1, z2 ≥ 0

(1.8)

1.2.3 Clasificacion

Los problemas de optimizacion pueden clasificarse, segun el caracter de lasvariables, en:

Problemas lineales generales, si todas sus variables de decision son con-tinuas, es decir, toman valores en el espacio de numeros reales IR. Sedenominaran simplemente problemas lineales y se denotaran por PL.

Problemas enteros, si todas sus variables de decision son enteras, es decir,toman valores en el espacio de numeros enteros Z. Tambien se conocencomo problemas enteros puros lineales, y se denotan por PE. En par-ticular, se tiene un problema entero 0–1, si todas sus variables sonbinarias, es decir, toman valores en el conjunto {0, 1}.

Problemas mixtos, si tienen variables de decision tanto continuas como en-teras. Tambien se conocen como problemas enteros mixtos lineales, y sedenotaran por PM . En particular, un problema mixto 0–1 es aquelque contiene tanto variables continuas como variables binarias.

1.2.4 Resolucion grafica

Ejemplo 1.3. Formulacion matematica y resolucion grafica de un problema

de PL

En la Companıa Wyndor Glass se producen artıculos de vidrio de alta cal-idad, incluidas ventanas y puertas de vidrio. Consta de tres plantas. En laPlanta 1 se hacen marcos y molduras de alumnio, en la Planta 2 marcos ymolduras de madera y la Planta 3 se produce el vidrio y se ensamblan de losproductos. Debido a una reduccion de las ganancias, la Direccion ha decididoreorganizar la lınea de produccion de la companıa. Se dejara libre una partede la capacidad de produccion para emprender la fabricacion de dos productosnuevos cuyas ventas potenciales son muy prometedoras:

• Producto 1: una puerta de vidrio de 240cm con marco de aluminio

Page 19: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.2. INTRODUCCION A LA PROGRAMACION LINEAL 17

• Producto 2: una ventana corrediza con marco de madera de 120cm x180cm

El producto 1 requiere parte de la capacidad de produccion en las plantas 1 y3 y nada en la planta 2. El producto 2 solo necesita trabajo en las plantas2 y 3. La division de comercializacion ha concluido que la companıa puedevender todos los productos que se puedan fabricar en las plantas. Sin embargo,como ambos productos competirıan por la misma capacidad de produccion enla planta 3, no esta claro que combinacion de productos serıa la mas rentable.Por lo tanto, se ha formado un Equipo de Optimizacion para estudiar esteproblema. El grupo comenzo por reunirse con la Direccion para identificar losobjetivos del estudio. Como consecuencia desarrollo la siguiente definicion delproblema:Determinar que tasas de produccion deben tener los dos productos con el finde maximizar las utilidades totales, sujetas a las restricciones impuestas porlas capacidades de produccion limitadas disponibles en las tres plantas. (Cadaproducto se fabricara en lotes de 20 unidades, de manera que la tasa de pro-duccion esta definida como el numero de lotes que se producen a la semana.)Se permite cualquier combinacion de tasas de produccion que satisfaga estasrestricciones, incluso no fabricar uno de los productos y elaborar todo lo quesea posible del otro.

El Equipo de Optimizacion tambien identifico los datos que necesitaba re-unir:

1. Numero de horas de produccion disponibles por semana en cada plantapara fabricar estos nuevos productos. (Casi todo el tiempo de estas plan-tas esta comprometido con los productos actuales, lo que limita la capaci-dad para manufacturar nuevos productos.)

2. Numero de horas de fabricacion que se emplea para producir cada lote decada artıculo nuevo en cada una de las plantas.

3. La ganancia por lote de cada producto nuevo. (Se escogio la ganancia porlote producido como una medida adecuada una vez que el equipo llego ala conclusion de que la ganancia incremental de cada lote adicional pro-ducido serıa, en esencia, constante, sin que importase el numero total delotes producidos. Debido a que no se incurre en costos sustanciales parainiciar la produccion y la comercializacion de estos nuevos productos, laganancia total de cada uno es aproximadamente la ganancia por lote quese produce multiplicada por el numero de lotes.)

Page 20: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

18 CAPITULO 1. PROGRAMACION LINEAL

La obtencion de estimaciones razonables de estas cantidades requirio delapoyo de personal clave en varias unidades de la companıa. El personal de ladivision de manufactura proporciono los datos de la primera categorıa men-cionada. En la segunda categorıa, el desarrollo de estimaciones requirio unanalisis de los ingenieros de manufactura involucrados en el diseno de los pro-cesos de produccion para elaborar los nuevos artıculos. Al analizar los datos decostos que se obtuvieron, junto con la decision sobre los precios de la divisionde marketing, el departamento de contabilidad calculo las estimaciones para latercera categorıa.

La Tabla 1.1 resume los datos reunidos. De inmediato, el Equipo de Opti-mizacion reconocio que se trataba de un problema de programacion lineal deltipo clasico de mezcla de productos y procedio a la formulacion del modelomatematico correspondiente.

Tabla 1.1: Datos del Ejemplo 1.3Tiempo de produccion por lote Tiempo de produccion

Planta Producto 1 Producto 2 disponible por semana1 1 hora 0 horas 4 horas2 0 horas 2 horas 12 horas3 3 horas 2 horas 18 horas

Ganancia 3000 euro 2000 euro

Consideraremos x1 y x2 el numero de lotes del producto 1 y 2, respecti-vamente, producidas por semana y z la ganancia semanal total (en miles deeuros) generada por estos dos productos. Por tanto, x1 y x2 son las variablesde decision del modelo y el objetivo es elegir los valores que maximicen

z = 3x1 + 5x2

sujeto a las restricciones impuestas sobre dichos valores limitadas por la disponi-bilidad de capacidad de las plantas. Segun la Tabla 1.1 cada lote de producto 1producida por semana emplea 1 hora de produccion en la Planta 1, donde solose dispone de 4 horas semanales. Esta restriccion se expresa matematicamentepor la desigualdad x1 ≤ 4. Analogamente la Planta 2 impone la restriccion2x2 ≤ 12. El numero de horas de produccion usadas a la semana en la Planta 3consumido por elegir x1 y x2 como las nuevas tasas de produccion de los produc-tos serıa 3x1+2x2. Por tanto, la restriccion para la Planta 3 es 3x1+2x2 ≤ 18.Finalmente, como las tasas de produccion no pueden ser negativas, es necesarioanadir: x1 ≥ 0 y x2 ≥ 0. En resumen, en el lenguaje matematico de la PL, elproblema consiste en elegir los valores x1 y x2 solucion de:

Page 21: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.2. INTRODUCCION A LA PROGRAMACION LINEAL 19

max z = 3x1 +5x2

sujeto a x1 ≤ 42x2 ≤ 12

3x1 +2x2 ≤ 18x1 ≥ 0, x2 ≥ 0

(1.9)

Como es un problema pequeno con tan solo dos variables de decision sepuede representar graficamente en el espacio de dos dimensiones, donde losejes corresponden a las variables de x1 y x2. En primer lugar, identificamoslos valores (x1, x2) posibles dadas las restricciones, que estan representados enla region coloreada de la Figura 1.1 conocida como region factible. Para ello sedibujan las rectas correspondientes a las restricciones en igualdad y finalmentela region correspondiente. Para encontrar la mejor solucion (x1, x2), es decir,la que maximice la funcion objetivo z = 3x1 + 2x2, vamos dando valores az = 10, 20, 30, . . . y dibujamos las rectas asociadas 10 = 3x1 + 2x2, 20 =3x1+2x2, 30 = 3x1+2x2, . . . A medida que ascendemos conseguimos mejorar lafuncion objetivo (ya que se trata de un problema de maximo), de esta maneraobservamos que la mejor solucion es la que corresponde al punto (2, 6) quereporta un beneficio de z = 36. Esto indica que la empresa deberıa producir losproductos 1 y 2 a tasas de 2 y 6 por semana, respectivamente con un beneficioresultante de 36000 epor semana. Aun mas, ninguna otra combinacion esmejor, respecto a este modelo. Llegados a este punto, el Departamento deI.O. estarıa listo para evaluar la validez del modelo y realizar un analisis desensibilidad sobre las estimaciones de la Tabla 1.1.

0 1 2 3 4 5 6 7 80

1

2

3

4

5

6

7

8

9

10

b b

b

bb

3x1 + 2x2 = 18

2x2 = 12

x1 = 4

z = 10 = 3x1 + 5x2

z = 20 = 3x1 + 5x2

z = 36 = 3x1 + 5x2

Figura 1.1: Region factible del ejemplo 1.3

Page 22: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

20 CAPITULO 1. PROGRAMACION LINEAL

1.3 El metodo Sımplex

El metodo Sımplex es un algoritmo para la resolucion de PL. Consiste enun proceso algebraico en el que cada iteracion calcula una solucion factible.Mediante un criterio de parada en el que se chequea la optimalidad de lasolucion, se encuentra la solucion optima. Ademas, tiene una interpretaciongeometrica muy util. Si recordamos el Ejemplo 1.3 y su Figura 1.1 asociada,tenıamos 5 restricciones lineales y 5 puntos interseccion claves, (0, 0), (0, 6),(2, 6), (4, 3) y (4, 0), ya que son los puntos-extremos de la region factible ypor tanto, soluciones factibles de punto-extremo del problema. Dos solucionesfactibles de punto-extremo se dice que son adyacentes si estan conectadas porun unico segmento en la frontera de la region factible.

El metodo sımplex se basa en tres propiedades claves de las solucionesfactibles de punto-extremo, bajo el supuesto de que el problema tiene solucionfactible y acotada,

1. Si hay exactamente una unica solucion optima, debe ser una solucionfactible de punto-extremo. Si hay soluciones optimas multiples, entoncesal menos dos deben ser soluciones de punto extremo adyacentes.

2. Hay un numero finito de soluciones factibles de punto-extremo.

3. Si una solucion factible de punto-extremo es igual o mejor (en terminosde z) que todas sus soluciones factibles adyacentes, entonces es igual omejor que todas las soluciones factibles de punto extremo, es decir, essolucion optima.

La propiedad 1 implica que la busqueda se reduce a un numero finito desoluciones y la propiedad 3 da la clave para el test de optimalidad. El metodoexplota estas tres propiedades examinando solo una cantidad relativamentepequena de soluciones factibles punto-extremo y parando tan pronto comoel test de optimalidad se satisfaga. En cada iteracion se mueve de maneraeficiente de un punto extremo a otro adyacente mejor. El procedimiento puederesumirse en el esquema algorıtmico de la Figura 1.2.

Page 23: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.3. EL METODO SIMPLEX 21

Paso inicialBusqueda de solucion SFPE inicial

Paso iterativoMover a solucion SFPE adyacente mejor

Test de optimalidad¿Ninguna SFPE adyacente

es mejor?

Parar

no

Figura 1.2: Esquema del algoritmo Sımplex

1.3.1 Resolucion algebraica

Vamos a resolver el Ejercicio 1.3 utilizando el metodo sımplex, para ello nece-sitamos transformar el modelo a forma estandar con igualdades, por lo queconvertimos las restricciones de desigualdad en igualdad anadiendo 3 variablesde holgura. Ası, el problema 1.9 en forma estandar con igualdades es:

max z = 3x1 + 5x2

sujeto a x1 +x3 = 42x2 +x4 = 12

3x1 +2x2 +x5 = 18xi ≥ 0, ∀i = 1, 2, 3, 4, 5

(1.10)

Esta formulacion es mucho mas conveniente para la manipulacion alge-braica y la identificacion de soluciones factibles punto extremo.

Definicion 1.2. Una solucion aumentada es una solucion de un prob-lema originariamente con restricciones de desigualdad transformado en prob-

Page 24: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

22 CAPITULO 1. PROGRAMACION LINEAL

lema de igualdades mediante la incorporacion de las variables de holgura nece-sarias. Una solucion basica es una solucion punto extremo aumentada. Unasolucion basica factible es una solucion factible punto extremo aumentada.

En el ejemplo, la solucion (3, 2) tiene su correspondiente solucion aumen-tada (3, 2, 1, 8, 5). La solucion (4, 6) es solucion infactible punto extremo y(4, 6, 0, 0,−6) es solucion basica mientras que (0, 6) es solucion factible punto-extremo y por tanto, (0, 6, 4, 0, 6) es solucion basica factible.

Estas definiciones son esenciales en el vocabulario de la PL, por lo queaclararemos sus propiedades algebraicas. Observese que en la forma estandar(1.10) del ejemplo, el sistema tiene 5 variables y 3 restricciones, se dice entoncesque tiene 2 grados de libertad, ya que dos variables pueden fijarse a un valorarbitrario, y resolver las 3 ecuaciones en funcion de las 3 variables restantes. Elsımplex utiliza el 0 para este valor arbitrario. Las variables que se fijan a 0 sellaman variable no basicas y el resto variables basicas. En terminos generales, elnumero de variables no basicas corresponde al numero de grados de libertad delsistema y el numero de variables basicas al de ecuaciones. La solucion completase llama solucion basica y si todas las variables basicas son no negativas, lasolucion se llama solucion basica factible. Para cualquier solucion basica, lacorrespondiente solucion punto extremo se obtiene eliminando las variables deholgura. Dos soluciones factibles basicas son adyacentes si todas menos una delas variables no basicas son las mismas y lo mismo para las variables basicas.Por lo que moverse de una solucion basica factible a otra adyacente, suponecambiar una variable basica por una no basica y viceversa.

El algoritmo necesita manipular la funcion objetivo por lo que convienereescribir de nuevo el problema (1.10) como:

(0) z −3x1 −5x2 = 0(1) x1 +x3 = 4(2) 2x2 +x4 = 12(3) 3x1 +2x2 +x5 = 18

(1.11)

Ası, la funcion objetivo sera tratada como la ecuacion (0) y z como unavariable basica adicional permanente. Denotaremos por E(i) la ecuacion i-esima del problema. Hay varias cuestiones a las que ir respondiendo:

Page 25: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.3. EL METODO SIMPLEX 23

Pasos del algoritmo Sımplex

Paso inicial: ¿Como seleccionar una SFPE (solucion factible basica)inicial?

Paso iterativo: ¿Como moverse a una SFPE adyacente (solucionfactible basica adyacente) mejor?

Fase 1: ¿Que variable no basica entra en la base?

Fase 2: ¿Que variable basica sale de la base?

Fase 3: ¿Como identificar la nueva solucion?

Test de optimalidad: ¿Como determinar que la SFPE actual esmejor que cualquiera adyacente?

Vamos a explicar el procedimiento algebraico resolviendo el ejemplo.

Ejemplo 1.4. Resolucion algebraica del algoritmo Sımplex

Paso inicialCuando el problema original esta en forma de desigualdades, se comienza

en el origen, solucion xN ≡ (x1, x2) = (0, 0). Ası, tras introducir variablesde holgura, las variables originales se consideran no basicas y las variables deholgura variables basicas, xB ≡ (x3, x4, x5). Como las no basicas se fijan acero, la solucion basica factible inicial es (0, 0, 4, 12, 18). Observar que estasolucion es inmediata porque cada restriccion tiene una unica variable basicacon coeficiente +1 y no aparece en ninguna otra restriccion.

Paso iterativo 1: ¿que variable entra en y cual abandona la base?Para movernos de la actual SBF a otra adyacente mejor, debemos reem-

plazar una variable no basica (entrante) por una nueva variable (saliente).Las candidatas a entrar en la base son las variables no basicas, como al

entrar su valor pasara de nulo a positivo (excepto en casos degenerados), lacandidata es la que en mayor medida pueda mejorar la funcion objetivo z, esdecir, la que tenga el coeficiente positivo mayor en la funcion objetivo. En elejemplo, como c1 = 3 < c2 = 5, la candidata a entrar en la base es la variablex2.

Como x1 permanece a 0, geometricamente nos movemos a lo largo delsemieje positivo x2. La SFPE adyacente es (0, 6) Las posibles variables aabandonar la base son x3, x4 y x5. Necesitamos analizar en que situacionx2 aumentarıa lo mas posible antes de que ninguna variable sea negativa, ver

Page 26: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

24 CAPITULO 1. PROGRAMACION LINEAL

Tabla 1.2. Como x4 impone la menor cota superior para x2, la variable queabandona la base es x4, que se fija a 0 y ası x2 = 6 entra en la nueva base.

Tabla 1.2: Determinacion de la variable a abandonar la base en la iteracion 1

xB Ecuacion Cota superior para x2

x3 (1) x3 = 4− x1 x2 ≤ ∞x4 (2) x4 = 12− 2x2 x2 ≤

122= 6 (minimo)

x5 (3) x5 = 18− 3x1 − 2x2 x2 ≤182= 9

Como xN ≡ (x1, x4) = (0, 0), entonces xB ≡ (x3, x2, x5) = (4, 6, 6).De cara a la siguiente iteracion, nos interesa convertir el sistema en uno

similar al de la primera iteracion, es decir, donde cada ecuacion tenga una unicavariable basica con coeficiente +1 y que no aparezca en ninguna otra ecuacion.Esto se logra realizando dos tipos de operaciones algebraicas legıtimas:

• Multiplicar una ecuacion por una constate no nula:

E(i) := k · E(i)

• Anadir un multiplo de una ecuacion a otra ecuacion:

E(j) := E(j) + k · E(i)

Para obtener el coeficiente +1 en la nueva variable basica x2 hacemos

E(2) :=1

2· E(2)

Para eliminar x2 del resto de ecuaciones:

E(0) := E(0) + (5) · E(2)

E(1) := E(1) + (0) · E(2)

E(3) := E(3) + (−2) · E(2)

Ası, el sistema (1.11) se transforma en el siguiente sistema equivalente:

(0) z −3x1 +52x4 = 30

(1) x1 +x3 = 4

(2) x2 +12x4 = 6

(3) 3x1 −x4 +x5 = 6

(1.12)

Page 27: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.3. EL METODO SIMPLEX 25

Intercambiando la posicion de x2 y x4 para ilustrar el resultado:

(0) z −3x1 +52x4 = 30

(1) x1 +x3 = 4

(2) 12x4 +x2 = 6

(3) 3x1 −x4 +x5 = 6

(1.13)

Ası, la nueva SBF es (x1, x2, x3, x4, x5) = (0, 6, 4, 0, 6) que obtiene un ben-eficio de z = 30. Este metodo algebraico es similar al Metodo de eliminacionGauss Jordan.

Test de optimalidadPara determinar si la solucion es optima, reconvertimos la ecuacion (0),

en funcion objetivo: z = 30+3x1−52x4. Como el coeficiente de x1 es positivo,

podriamos movernos a una SBF adyacente mejor que la actual, por lo que lasolucion obtenida no es optima. En general, las SBF es optima si y solo sitodas las variables no basicas tienen coeficientes no positivos (≤ 0) en la formaactual de la funcion objetivo. Es por ello que se utiliza la funcion objetivo enla forma de la ecuacion (0) ya que contiene todas las variables no basicas yninguna basica.

Paso iterativo 2: ¿que variable entra en y cual abandona la base?Mirando a los coeficientes de la funcion objetivo, el mayor (y unico) coefi-

ciente positivo implica que x1 es la variable a entrar en la nueva base.Analizando la menor cota superior para x1, ver Tabla 1.3, la variable a

entrar en la base es x5.

Tabla 1.3: Determinacion de la variable a abandonar la base en la iteracion 2

xB Ecuacion Cota superior para x2

x3 (1) x3 = 4− x1 x1 ≤41= 4

x2 (2) x2 = 6− 12x4 x1 ≤ ∞

x5 (3) x5 = 6− 3x1 + x4 x1 ≤63= 2 (minimo)

Tras eliminar la variable x1 de todas las ecuaciones excepto E(3) con elmetodo algebraico:

E(3) :=1

3· E(3)

E(0) := E(0) + (3) · E(3)

Page 28: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

26 CAPITULO 1. PROGRAMACION LINEAL

E(1) := E(1) + (−1) · E(3)

E(2) := E(2) + (0) · E(3)

Ası, el sistema (1.13) se transforma en el siguiente sistema equivalente:

(0) z 32x4 +x5 = 36

(1) x3 +13x4 −1

3x5 = 2

(2) x2 +12x4 = 6

(3) x1 −13x4 +1

3x5 = 2

(1.14)

Ası, la solucion factibe basica es (x1, x2, x3, x4, x5) = (2, 6, 2, 0, 0), con unbeneficio de z = 36.

Test de optimalidad

Como la funcion objetivo z = 36− 32x4 − x5 tiene todos los coeficientes de

las variables no basica negativos, la solucion es optima.

Resumiendo, el esquema para la resolucion algebraica es el siguiente:

Page 29: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.3. EL METODO SIMPLEX 27

Resolucion algebraica del algoritmo Sımplex

Paso inicial: Introducir las variables de holgura como basicas y lasoriginales como no basicas a 0. Ir al Test de Optimalidad.

Paso iterativo: Consta de 3 fases:

Fase 1: Determinar la variable a entrar en la base, chequeando lamagnitud de los coeficientes de la funcion objetivo reescritaen terminos de las variables no basicas.

Fase 2: Determinar la variable a salir de la base, seleccionando lavariable basica que se anula primera al aumentar la variablebasica entrante recien seleccionada.

Fase 3: Determinar la nueva SBF, utilizando el metodo de elimi-nacion Gauss Jordan para reescribir el sistema de maneraque cada variable basica aparezca en una unica restriccioncon el signo +1.

Test de optimalidad: Chequear si z puede aumentar al aumentaruna variable no basica, que serıa candidata a entrar en la nuevabase. Si es posible, ir al Paso iterativo; en caso contrario, se haencontrado la solucion optima, parar.

1.3.2 Resolucion tabular

La resolucion tabular es matematicamente equivalente a la forma algebraica,pero mas conveniente a la hora de realizar calculos a mano, ya que repre-sentaremos en la tabla solo la informacion esencial, es decir: los coeficientes delas variables, los terminos rhs de las ecuaciones y las variables basicas de cadaecuacion.

Ejemplo 1.5. Resolucion tabular del algoritmo Sımplex

Resolvamos el ejemplo mediante la resolucion tabular.

Paso inicial:

Representamos el sistema (1.11) en forma de tabla de la siguiente manera:

Page 30: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

28 CAPITULO 1. PROGRAMACION LINEAL

Tabla 1.4: Tabla sımplex inicial

xB Ec. num. z x1 x2 x3 x4 x5 rhsz (0) 1 −3 −5 0 0 0 0x3 (1) 0 1 0 1 0 0 4x4 (2) 0 0 2 0 1 0 12x5 (3) 0 3 2 0 0 1 18

Observamos que esta en la forma apropiada, es decir, las variables basicas(variables de holgura) aparecen con coeficiente +1 una unica vez, por lo quela solucion es inmediata ya que las variables no basicas (variables iniciales)toman el valor cero: (x1, x2, x3, x4, x5) = (0, 0, 4, 12, 18).

Test de optimalidadLa actual SBF es optima si y solo si todos los coeficientes de la ecuacion (0)

son no negativos (≥ 0). Como no es el caso, comienza la primera iteracion.Paso iterativo 1Entre las variables negativas, se considera la de mayor valor absoluto, como

max{|− 3|, |− 5|} = 5, entonces la variable x2 entra en la base y a la columnaasociada se la llama columna pivote.

Ahora, entre los coeficientes positivos se considera el mınimo cociente entreel rhs correspondiente y dicho coeficiente, como min{12

2, 18

2} = 6, entonces la

variable x4 sale de la base y a dicha fila se la llama fila pivote, en este casoE(2). A la interseccion entre la fila y la columna pivote, se le llama elementopivote, en esta iteracion el numero 2, los pivotes se han representado en rojoen la Tabla 1.5.

Tabla 1.5: Tabla sımplex inicial con columna, fila y elemento pivote

xB Ec. num. z x1 x2 x3 x4 x5 rhsz (0) 1 −3 −5 0 0 0 0x3 (1) 0 1 0 1 0 0 4x4 (2) 0 0 2 0 1 0 12x5 (3) 0 3 2 0 0 1 18

Para determinar la nueva SBF se construye la tabla apropiada. Para ellola fila pivote se divide por el elemento pivote:

E(p) :=E(p)

p⇒ E(2) :=

E(2)

2

Page 31: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.3. EL METODO SIMPLEX 29

Para el resto de las filas, la nueva fila se calcula como la antigua menos elcoeficiente de la columna pivote por la nueva fila pivote:

∀i 6= p, E(i) := E(i) − (aip) · E(p) ⇒

E(0) := E(0) − (−5) · E(2)

E(1) := E(1) − (0) · E(2)

E(3) := E(3) − (2) · E(2)

De esta forma se obtiene la Tabla 1.6, completandose asi la primera it-eracion. Como cada variable no basica es nula, cada basica toma el valor rhsy ası (x1, x2, x3, x4, x5) = (0, 6, 4, 0, 6) con beneficio z = 30.

Tabla 1.6: Tabla sımplex iteracion 1

xB Ec. num. z x1 x2 x3 x4 x5 rhsz (0) 1 −3 0 0 5/2 0 30x3 (1) 0 1 0 1 0 0 4x2 (2) 0 0 1 0 1/2 0 6x5 (3) 0 3 0 0 −1 1 6

Test de optimalidad:Como hay un coeficiente negativo, la solucion actual no es optima.Paso iterativo 2:max{|−3|} = 3, entonces la variable x1 entra en la base (columna pivote).

Y por el test de mınimo cociente: min{41, 63} = 2, entonces la variable x5 sale

de la base (fila pivote). Ası, el elemento pivote es 3, ver Tabla 1.7.

Tabla 1.7: Tabla sımplex iteracion 1 con columna, fila y elemento pivote

xB Ec. num. z x1 x2 x3 x4 x5 rhsz (0) 1 −3 0 0 5/2 0 30x3 (1) 0 1 0 1 0 0 4x2 (2) 0 0 1 0 1/2 0 6x5 (3) 0 3 0 0 −1 1 6

Las operaciones algebraicas a realizar son ahora:

E(3) :=E(3)

3

E(0) := E(0) − (−3) · E(3)

E(1) := E(1) − (1) · E(3)

E(3) := E(3) − (0) · E(3)

Page 32: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

30 CAPITULO 1. PROGRAMACION LINEAL

Como vemos en la Tabla 1.8, la nueva SBF es (x1, x2, x3, x4, x5) = (2, 6, 2, 0, 0)con beneficio z = 36.

Tabla 1.8: Tabla sımplex iteracion 2

xB Ec. num. z x1 x2 x3 x4 x5 rhsz (0) 1 0 0 0 3/2 1 36x3 (1) 0 0 0 1 1/3 −1/3 2x2 (2) 0 0 1 0 1/2 0 6x1 (3) 0 1 0 0 −1/3 1/3 2

Test de optimalidadComo ningun coeficiente de la ecuacion (0) es negativo, el algoritmo ter-

mina, la solucion actual es optima, x1 = 2 y x2 = 6.Observese que los valores 0, 3

2y 1 son los precios sombra de los tres

recursos, es decir, el valor marginal o tasa a la que z podrıa aumentar si seaumenta la capacidad disponible b1, b2 y b3, respectivamente. Por ejemplo, sila capacidad disponible para la Planta 2 aumentara una unidad, de b2 = 12a b2 = 13, entonces la solucion pasarıa de ser (2, 6) con valor z = 36 a ser(53, 13

2) con valor z = 371

2. Efectivamente, z aumentarıa ligeramente en 3

2.

1.3.3 Casos especiales

Veamos algunos casos ambiguos, que no han sido abordados hasta el momento.(a) Empates para la variable basica a entrarEn la primera fase del paso iterativo, se elige variable candidata a entrar en

la base entre las variables no basicas con coeficiente negativo en la ecuacion (0)cuyo valor absoluto sea mayor. Por ejemplo, si la funcion objetivo del ejemplofuera z = 3x1 + 3x2. ¿Como resolver el empate? La respuesta es: arbitraria-mente. La solucion optima se alcanzara independientemente de dicha eleccion.En este caso, se encontrarıa el optimo (2, 6) en tres iteraciones si elegimosen primer lugar x1 como variable a entrar en la base, y en dos iteraciones sieligieramos a x2 en primer lugar.

(b) Empates para la variable basica a abandonar: degeneracionCuando se elige la variable basica a abandonar la base, tambien podrıa

haber empates. Supongamos que el empate ocurre entre dos o mas variablesbasicas cuando se elige la variable que sale en la segunda fase del paso itera-tivo ¿Importa cual se escoge? En teorıa, sı, pero de forma crıtica debido a lo

Page 33: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.3. EL METODO SIMPLEX 31

que podrıa ocurrir. Primero, todas las variables empatadas se hacen cero almismo tiempo cuando aumenta el valor de la variable entrante. Por lo tanto,aquellas que no se eligieron como variable basica saliente tambien tendran unvalor de cero en la nueva SBF. Las variables basicas con valor 0 se llamandegeneradas,y la correspondiente SBF se llama solucion factible basicadegenerada. Segundo, si una de estas variables basicas degeneradas siguecon valor de cero hasta que se selecciona como variable basica que sale en unaiteracion posterior, la variable basica entrante debera tambien quedar con valorde cero (ya que no puede crecer sin que la variable basica que sale se vuelvanegativa), por lo que el valor de z no cambiara. Tercero, si z permanece igualen lugar de mejorar en cada iteracion, el metodo sımplex puede caer en unbucle que repite la misma secuencia de soluciones de forma periodica, en lugarde aumentar en algun momento para llegar a la solucion optima. En realidad,se han construido ejemplos artificiales que se quedan atrapados en un bucleinfinito de este tipo. Afortunadamente, aunque el buble es teoricamente posi-ble, muy raramente ocurre en problemas en la practica. Si ocurriera un buclesiempre se puede salir de el al cambiar la eleccion de la variable basica que sale.En ejercicios practicos se recomienda romper los empates de modo arbitrarioy seguir el proceso sin preocuparse de las variables degeneradas que puedanresultar. Ademas se han construido reglas especiales para deshacer empatesde manera que se eviten bucles infinitos, por lo que no debemos preocuparnospor las variables basicas degeneradas.

(c) Inexistencia de variable basica a abandonar: solucion inaco-tada

En la segunda fase del paso iterativo podria ocurrir otra posibilidad que nohemos comentado aun: que no haya variables candidatas a abandonar la base.(Observese que esto no serıa un problema en la primera fase, como sabemos,por el test de optimalidad). Esto puede ocurrir si la variable basica candidataa entrar podrıa aumentar indefinidamente sin que ninguna de las variablesbasicas llegue a dar valores negativos. En la forma tabular observarıamos queen la columna pivote todos los coeficientes son nulos o negativos.

Ejemplo 1.6. Resolucion de un problema inacotado

Si en el Ejemplo 1.3 eliminamos las dos ultimas restricciones nos encon-trarıamos con esta situacion.

Page 34: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

32 CAPITULO 1. PROGRAMACION LINEAL

Tabla 1.9: Tabla sımplex inicial del Ejemplo 1.6

xB Ec. num. z x1 x2 x3 rhsz (0) 1 −3 −5 0 0x3 (1) 0 1 0 1 4

max z = 3x1 + 5x2

sujeto a x1 +x3 = 4xi ≥ 0, ∀i = 1, 2, 3

(1.15)

0 1 2 3 4 5 6 7 80

1

2

3

4

5

6

7

8

9

10

b b

bb

Figura 1.3: Region factible inacotada del Ejemplo 1.6

Esto se interpreta de la siguiente manera: las restricciones no impiden elcrecimiento indefinido de la funcion objetivo, ası que el algoritmo pararıa conel mensaje de que z es inacotado. Como la PL no ha descubierto la manera deconseguir beneficios infitos, el mensaje real para los problemas en la practicaes que ¡hay algun error! Probablemente en la modelizacion del problema: porhaber omitido restricciones relevantes o haberlas formulado incorrectamente.

(d) Soluciones optimas multiplesEn muchas aplicaciones de PL el problema tiene soluciones optimas mul-

tiples, que aportan el mismo valor a la funcion objetivo. Cuando el algoritmosımplex encuentra una SBF optima, ¿como reconoce si hay otras y como lasencuentra?

Page 35: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.3. EL METODO SIMPLEX 33

Cuando un problema tiene mas de una SBF optima, al menos una de lasvariables no basicas tiene coeficiente 0 en la ecuacion (0), ası que aumentardicha variable no varıa el valor de z. Ası, que se pueden encontrar otras solu-ciones, realizando iteraciones adicionales del algoritmo, eligiendo una variableno basica con coeficiente cero como candidata a entrar en la base.

Ejemplo 1.7. Resolucion de un problema de soluciones multiples

Si en el Ejemplo 1.3 modificamos levemente la funcion objetivo, z = 3x1 +2x2, nos encontrarıamos con esta situacion. Cada problema tiene al menosdos soluciones factibles de punto extremo optimas (SBF), en el ejemplo (2, 6)y (4, 3), por lo que todas las soluciones en el segmento son optimas.

0 1 2 3 4 5 6 7 80

1

2

3

4

5

6

7

8

9

10

b b

b

bb

Figura 1.4: Region factible del Ejemplo 1.7

Veamos la resolucion tabular del algoritmo sımplex para este ejemplo en laTabla 1.10.

Page 36: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

34 CAPITULO 1. PROGRAMACION LINEAL

Tabla 1.10: Tabla sımplex para soluciones multiples

Iteracion xB Ec. num. z x1 x2 x3 x4 x5 rhs Optima?0 z (0) 1 −3 −2 0 0 0 0 No

x3 (1) 0 1 0 1 0 0 4x4 (2) 0 0 2 0 1 0 12x5 (3) 0 3 2 0 0 1 18

1 z (0) 1 0 −2 3 0 0 12 Nox1 (1) 0 1 0 1 0 0 4x4 (2) 0 0 2 0 1 0 12x5 (3) 0 0 2 −3 0 1 6

2 z (0) 1 0 0 0 0 1 18 Sıx1 (1) 0 1 0 1 0 0 4x4 (2) 0 0 0 3 1 −1 6x2 (3) 0 0 1 −3/2 0 1/2 3

Extra z (0) 1 0 0 0 0 1 18 Sıx1 (1) 0 1 0 0 −1/3 1/3 2x3 (2) 0 0 0 1 1/3 −1/3 2x2 (3) 0 0 1 0 1/2 0 6

Por lo que las dos SBF optimas encontradas son (4, 3, 0, 6, 0) y (2, 6, 2, 0, 0),cada una alcanza un beneficio de z = 18. Observese que la variable x4 tambienpresenta coeficiente 0 en la ecuacion (0), pero entrar en la base supondrıa volvera la iteracion 2. El resto de soluciones optimas son promedio ponderado deambas, es decir, todas las que se encuentran en el segmento entre (2, 6) y (4, 3),es decir,

{(2, 6) + λ[(4, 3)− (2, 6)] : λ ∈ [0, 1]} = {(2 + 2λ, 6− 3λ) : λ ∈ [0, 1]}

1.3.4 Identificacion de SBF iniciales

El unico problema real que pueden acarrear las diferentes formulaciones delas restricciones es el calculo de la SBF inicial. La tecnica que se empleaen estos casos es la tecnica de variables artificiales. Este procedimiento con-siste en introducir variables artificiales (dummy) con el fin de convertirse envariables basicas iniciales. Se les asigna un peso M en la funcion objetivoexorbitante (penalizacion), con el fin de que el metodo las vaya expulsando

Page 37: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.3. EL METODO SIMPLEX 35

automaticamente, hasta que todas queden fuera (fijadas a 0) y se resuelva elproblema real. A esto se le conoce como el metodo de la gran M .

Ejemplo 1.8. Identificacion de soluciones iniciales

Consideremos que en el Ejemplo 1.3 se requiere utilizar la Planta 3 a ca-pacidad completa. Es decir, la restriccion (3) se da en igualdad. Graficamentela region factible, es tan solo el segmento (2, 6) a (4, 3).

Tras introducir las dos variables de holgura en la inecuaciones (1) y (2) elmodelo resultante viene dado en (1.16).

max z = 3x1 + 5x2

sujeto a x1 +x3 = 42x2 +x4 = 12

3x1 +2x2 = 18xi ≥ 0, ∀i = 1, 2, 3, 4

(1.16)

No hay una SBF obvia ya que ha desaparecido la variable de holgura dela ultima restriccion. Por ello, introducimos una variable artificial, xM ≥ 0.Y obtenemos una SBF inicial (x1, x2, x3, x4, xM) = (0, 0, 4, 12, 18). De estamanera hemos aumentado la region factible del problema. El modelo resultantesera equivalente siempre que la solucion de la variable artificial sea nula, esdecir, xM = 0. Por lo que utilizaremos el metodo de la gran M para garantizarque la solucion caiga en la region factible inicial. Es decir, reformulamosel modelo (1.16) como (1.17), donde M es un valor positivo suficientementegrande

max z = 3x1 + 5x2 −MxM

sujeto a x1 +x3 = 42x2 +x4 = 12

3x1 +2x2 +xM = 18x1, x2, x3, x4, xM ≥ 0

(1.17)

La ecuacion (0) serıa entonces

E(0) : z − 3x1 − 5x2 +MxM = 0.

Sin embargo, el algoritmo no puede aplicarse aun, recordemos que para el testde optimalidad y para la fase 1 del paso iterativo cada variable basica debe tenerun coeficiente 0 en la funcion objetivo y no lo satisface la variable ficticia xM .Como en la fase 3 del paso iterativo, vamos a reemplazar la fila 0 por

E(0) := E(0) −M · E(3)

Page 38: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

36 CAPITULO 1. PROGRAMACION LINEAL

Ası,E(0) : z + (−3− 3M)x1 + (−5 − 2M)x2 = −18M

De esta forma se completa el trabajo adicional que requiere el paso inicialdel algoritmo para problemas de este tipo. A partir de aquı, el algoritmo seresuelve como hemos visto. Las cantidades relativas a M solo apareceran enla ecuacion (0), por lo que solo afectaran al test de optimalidad y a la fase 1del paso iterativo. La resolucion tabular viene expresada en la Tabla 1.11.

Tabla 1.11: Tabla sımplex con variables artificiales

It xB Ec. num. z x1 x2 x3 x4 xM rhs0 z (0) 1 −3 − 3M −5− 2M 0 0 0 −18M

x3 (1) 0 1 0 1 0 0 4x4 (2) 0 0 2 0 1 0 12xM (3) 0 3 2 0 0 1 18

1 z (0) 1 0 −5− 2M 3 + 3M 0 0 12− 6Mx1 (1) 0 1 0 1 0 0 4x4 (2) 0 0 2 0 1 0 12xM (3) 0 0 2 −3 0 1 6

2 z (0) 1 0 0 −9/2 0 5/2 +M 27x1 (1) 0 1 0 1 0 0 4x4 (2) 0 0 0 3 1 −1 6x2 (3) 0 0 1 −3/2 0 1/2 3

3 z (0) 1 0 0 0 3/2 1 +M 36x1 (1) 0 1 0 0 −1/3 1/3 2x3 (2) 0 0 0 1 1/3 −1/3 2x2 (3) 0 0 1 0 1/2 0 6

La solucion que se obtiene es (x1, x2, x3, x4, xM) = (2, 6, 2, 0, 0).

1.3.5 Teorıa del Metodo Sımplex

En esta seccion vamos a revisar los fundamentos teoricos del algoritmo sımplexy presentar el metodo sımplex revisado. Este metodo fue disenado a partir delmetodo anterior y fue desarrollado para que la ejecucion computacional seaeficiente.

Recordemos la formulacion matricial del modelo general de PL (1.3):

Page 39: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.3. EL METODO SIMPLEX 37

max z = cxs.a Ax ≤ b

x ≥ 0

donde c es el vector fila

c = (c1 c2 . . . cn),

x, b, 0 son los vectores columna:

x =

x1

x2...xn

, b =

b1b2...bm

, 0 =

00...0

,

y A es la matriz

A =

a11 a12 . . . a1na21 a22 . . . a2n...

......

am1 am2 . . . amn

Para convertirlo en un problema de igualdades introducimos lasm variablesde holgura en cada restriccion:

xh =

xn+1

xn+2...

xn+m

ası que las restricciones del modelo en forma estandar son:

(

A I)

(

xxh

)

= b y

(

xxh

)

≥ 0

donde I es la matriz identidad m × m y el vector 0 tiene ahora n + melementos.

Recordemos que el metodo consiste en encontrar SBF hasta llegar a laoptima. Una vez identificadas las variables basicas xB y las no basicas xN , lasolucion basica es el resultado del sistema de m ecuaciones

(

A I)

(

xxh

)

= b

Page 40: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

38 CAPITULO 1. PROGRAMACION LINEAL

donde las xN seran n variables elegidas de entre las n+m de

(

xxh

)

que seran

igualadas a 0. Al eliminar esas n variables, se obtiene un conjunto de mecuaciones y m incognitas (las variables basicas xB). Denotemos este conjuntode ecuaciones como

BxB = b

donde la matriz basica B y el vector de variables basicas xB son

B =

B11 B12 . . . B1m

B21 B22 . . . B2m...

......

Bm1 Bm2 . . . Bmm

, xB

xB1

xB2...

xBm

donde la matriz B se obtiene eliminando las columas correspondientes a lascoeficientes de las variables xN de (A I). Para resolver BxB = b, multiplicamospor B−1 a ambos lados y se tiene

xB = B−1b.

Sea cB el vector que se obtiene al eliminar los coeficientes de las variablesno basicas de (c 0) y cN el correspondiente a las no basicas, el valor de lafuncion objetivo es

z = cBxB + cNxN = cBxB = cBB−1b

Ejemplo 1.9. Formulacion matricial del algoritmo Sımplex

En el Ejemplo 1.3 tenemos m = 3 ecuaciones y n = 2 variables originales:

c = (3 5), (A I) =

1 0 1 0 00 2 0 1 03 2 0 0 1

, b =

41218

, x =

(

x1

x2

)

, xh =

x3

x4

x5

.

Como vimos en la resolucion la secuencia de SBF obtenidas iterativamenteson:

Iteracion inicial

xB =

x3

x4

x5

, B =

1 0 00 1 00 0 1

, B−1 = I,

⇒ xB = B−1b = b =

41218

, cB = (0 0 0) ⇒ z = cBxB = 0.

Page 41: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.3. EL METODO SIMPLEX 39

Iteracion 1

xB =

x3

x2

x5

, B =

1 0 00 2 00 2 1

, B−1 =

1 0 00 1

20

0 −1 1

,

⇒ xB = B−1b =

466

, cB = (0 5 0) ⇒ z = cBxB = 30.

Iteracion 2

xB =

x3

x2

x1

, B =

1 0 10 2 00 2 3

, B−1 =

1 13

−13

0 12

00 −1

313

,

⇒ xB = B−1b =

262

, cB = (0 5 3) ⇒ z = cBxB = 36.

El conjunto de ecuaciones original es

(

1 −c 00 A I

)

zxxh

=

(

0b

)

. (1.18)

Esto corresponde a la iteracion inicial al comienzo de la Tabla 1.12. Tras cadaiteracion xB = B−1b y z = cBB

−1b, ası que

(

zxB

)

=

(

1 cBB−1

0 B−1

)(

0b

)

=

(

cBB−1b

B−1b

)

.

Por tanto, si premultiplicamos el conjunto de ecuaciones (1.18) por la misma

matriz

(

1 cBB−1

0 B−1

)

, obtenemos para cada iteracion

(

1 cBB−1A− c cBB

−1

0 B−1A B−1

)

zxxh

=

(

cBB−1b

B−1b

)

.

Page 42: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

40 CAPITULO 1. PROGRAMACION LINEAL

Tabla 1.12: Tabla sımplex en forma matricial

Iteracion xB Ec. num. z x xh rhs0 z (0) 1 −c 0 0

xB (1)− (m) 0 A I bi z (0) 1 cBB

−1A− c cBB−1 cBB

−1bxB (1)− (m) 0 B−1A B−1 B−1b

Hay dos implicaciones resenables que se deducen de la forma matricial. Laprimera es que dados los parametros originales A, b, cB, solo se necesita calcularB−1 para obtener todos los numeros necesarios. La segunda es que no hacefalta obtener todos los numeros, sino tan solo los necesarios.

Definicion 1.3. Dados dos puntos x′, x′′ ∈ IRn, se denomina segmento lin-eal de x′ a x′′ al conjunto de puntos {λx′ + (1 − λ)x′′ : λ ∈ (0, 1)}. Lospuntos del segmento se dice que son combinacion lineal convexa de x′ y x′′.

Definicion 1.4. Un conjunto S ⊆ IRn se dice conjunto convexo si para todopar de puntos del conjunto, el segmento que los une esta totalmente contenidoen el conjunto; es decir,

∀x′, x′′ ∈ S, λx′ + (1− λ)x′′ ∈ S, ∀λ ∈ (0, 1).

Es decir, si para todo par de puntos, el segmento rectilıneo que une dichospuntos esta dentro de la region.

Page 43: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.3. EL METODO SIMPLEX 41

b b

b

bb

region convexa

(a)

b b

b

bb

b

region convexa

(b)

b

b

b b

bb

region no convexa

(c)

b

b

b b

bb

region no convexa

(d)

Figura 1.5: Convexidad de regiones

Definicion 1.5. Un poliedro es un conjunto de puntos comunes a uno o massemiespacios. Un poliedro siempre es convexo.

Definicion 1.6. Un punto extremo de un conjunto convexo es un punto ztal que si z = λx′ + (1− λ)x′′ para un cierto λ ∈ (0, 1), entonces x′ = x′′ = z.Es decir, no puede ponerse como combinacion lineal convexa de ningun par depuntos distintos del conjunto.

Definicion 1.7. Dado un conjunto convexo cerrado S ⊆ IRn, un vector no nulod ∈ IRn se llama direccion si x+λd ∈ S, ∀λ ≥ 0, ∀x ∈ S. Dos direcciones d1y d2 son direcciones distintas si d1 6= αd2, ∀α ≥ 0. Una direccion d se dicedireccion extrema si no puede ponerse como combinacion lineal positiva dedos direcciones distintas, esto es, si existe λ1, λ2 > 0 tal que d = λ1d1 + λ2d2,entonces d1 = αd2 para algun α > 0.

Teorema 1.1. Sea S = {x ∈ IRn : Ax = b, x ≥ 0} donde A ∈ Mm×n esuna matriz de rango m y b ∈ IRm es un vector columna. Un punto x ∈ IRn

es un punto extremo de S si y solo si A puede descomponerse, tras reordenar

sus columnas, en la forma A =(

BN)

cumpliendo que x =

(

xB

xN

)

=

(

B−1b0

)

,

donde B ∈ Mm×m es una matriz inversible tal que B−1b ≥ 0.

Page 44: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

42 CAPITULO 1. PROGRAMACION LINEAL

Demonstracion.⇐ Supongamos que A puede descomponerse, tras reordenar sus colum-

nas, en la forma A =(

BN)

cumpliendo que x =

(

xB

xN

)

=

(

B−1b0

)

, donde

B ∈ Mm×m es una matriz inversible tal que B−1b ≥ 0. Obviamente, x ∈ S.Supongamos que existen x′, x′′ ∈ S, λ ∈ (0, 1) tales que x = λx′ + (1− λ)x′′, siexpresamos los puntos x′, x′′ en funcion de la factorizacion anterior, tenemos

(

B−1b0

)

= x =

(

xB

xN

)

= λ

(

x′B

x′N

)

+ (1− λ)

(

x′′B

x′′N

)

=

(

λx′B + (1− λ)x′′

B

λx′N + (1− λ)x′′

N

)

.

Como x′N , x

′′N ≥ 0 y λ, (1− λ) > 0, entonces x′

N = x′′N = 0 y esto implica que

x′B = x′′

B = B−1b ya que b = Ax′ = A(x′B, x

′N)

t = Bx′B + Nx′

N = Bx′B + 0 =

Bx′B y analogamente para x′′. Ası, x = x′ = x′′, por lo que x es un punto

extremo de S.⇒ Supongamos que x es un punto extremo de S. Sin perdida de gener-

alidad, supongamos que x = (x1, x2, . . . , xk, 0, . . . , 0) con x1, . . . , xk > 0. De-mostraremos que las columnas correspondientes A1, . . . Ak de A son linealmenteindependientes. Por reduccion al absurdo, supongamos que no es ası, entoncesexistirıan λ1, . . . , λk escalares no todos nulos tales que

∑k

j=1 λjAj = 0, sea∆ = (λ1, . . . , λk, 0, . . . , 0). Construimos los siguientes dos vectores x′ = x+α∆y x′′ = x− α∆, donde α > 0 se elige de manera que x′, x′′ ≥ 0. Entonces,

Ax′ =

k∑

j=1

(xj + αλj)Aj =

k∑

j=1

xjAj + α

k∑

j=1

λjAj = b

y

Ax′′ =k

j=1

(xj − αλj)Aj =k

j=1

xjAj − αk

j=1

λjAj = b

Resumiendo, x′, x′′ ∈ S, x′ 6= x′′ ya que α > 0 y ademas x = 12x′ + 1

2x′′ y esto

contradice el hecho de que x es un punto extremo. Por lo que A1, . . . , Ak sonlinealmente independientes y pueden elegirse m−k columnas del resto de n−kcolumnas que sean linealmente independientes con estas k columnas, ya que elrango de A es m. Supongamos que estas son Ak+1, . . . , Am, podemos escribirA =

(

B N)

donde B =(

A1 . . . Ak Ak+1 . . . Am

)

, ademas B−1b =(x1, x2, . . . , xk, 0, . . . , 0)

t ≥ 0, entonces B−1b ≥ 0 y la demostracion del teoremaesta completa. En efecto, Ax =

(

B N)

x = BxB +NxN = b, B−1b = xB.

Corolario. El numero de puntos extremos de S es finito.

Page 45: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.3. EL METODO SIMPLEX 43

Teorema 1.2. Sea S = {x ∈ IRn : Ax = b, x ≥ 0} no vacıo y A ∈ Mm×n esuna matriz de rango m y b ∈ IRm es un vector columna, entonces S tiene almenos un punto extremo.

Teorema 1.3. Sea S = {x ∈ IRn : Ax = b, x ≥ 0} y A ∈ Mm×n es unamatriz de rango m y b ∈ IRm es un vector columna. Un vector d es unadireccion extrema de S si y solo si A puede descomponerse en

(

B N)

tal queB−1Aj ≤ 0 para alguna columna Aj de la matriz N y d es un multiplo positivode d =

(

−B−1Aj ej)

, ej es un n −m vector de ceros excepto en la posicionj donde tiene un 1.

Corolario. El numero de direcciones extremas de S es finito.

El siguiente resultado permite representar cualquier punto de un poliedrocomo sumas de puntos y direcciones extremas.

Teorema 1.4. Teorema de representacionSea S = {x ∈ IRn : Ax = b, x ≥ 0} un poliedro no vacıo y A ∈ Mm×n es

una matriz de rango m y b ∈ IRm es un vector columna. Sean x1, x2, . . . , xk ∈IRn los puntos extremos de S y d1, d2, . . . , dl las direcciones extremas de S.Entonces x ∈ S si y solo si

x =

k∑

j=1

λjxj +

l∑

k=1

µjdj

donde∑k

j=1 λj = 1, λj ≥ 0, j = 1, . . . , k y µj ≥ 0, j = 1, . . . , l.

Corolario. Sea S = {x ∈ IRn : Ax = b, x ≥ 0} un poliedro no vacıoy A ∈ Mm×n es una matriz de rango m y b ∈ IRm es un vector columna.Entonces S tiene al menos una direccion extrema si y solo si es no acotado.

Teorema 1.5. Condiciones de optimalidad en Programacion LinealSea el problema de PL

max z = cxs.a Ax = b

x ≥ 0

cuya region factible es no vacıa, donde x1, x2, . . . , xk ∈ IRn son los puntosextremos de la region factible S = {x ∈ IRn : Ax = b, x ≥ 0}, y d1, d2, . . . , dl

las direcciones extremas de S. Una condicion necesaria y suficiente para queexista una solucion optima finita del problema es que

cdj ≤ 0, j = 1, . . . , l

En este caso existe un punto extremo que es solucion optima del problema.

Page 46: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

44 CAPITULO 1. PROGRAMACION LINEAL

Demonstracion. Por el Teorema de representacion, Teorema 1.4, Ax = b yx ≥ 0 es equivalente a que x se puede escribir como

x =

k∑

j=1

λjxj +

l∑

k=1

µjdj

donde∑k

j=1 λj = 1, λj ≥ 0, j = 1, . . . , k y µj ≥ 0, j = 1, . . . , l. Por tanto elproblema de PL puede ponerse como

max z = c(∑k

j=1 λjxj +

∑l

k=1 µjdj)

s.a∑k

j=1 λj = 1

λj, µj ≥ 0

⇐ Si existe algun j tal que cdj > 0, entonces µj puede elegirse arbitraria-mente grande, proporcionando una solucion no acotada. Esto demuestra queuna condicion necesaria y suficiente para que haya solucion optima finita escdj ≤ 0, ∀j = 1, . . . , l.

⇒ Supongamos que cdj ≤ 0, ∀k = 1, . . . , l, como queremos maximizar lafuncion objetivo, elegimos µj = 0, ∀j, con lo que el problema se reduce a

max z = c(∑k

j=1 λjxj)

s.a∑k

j=1 λj = 1

λj ≥ 0

Esta claro que la solucion optima de este problema es finita y se encuentrahaciendo λi = 1, λj = 0, ∀j 6= i, donde el ındice i viene dado por cxi =max1≤j≤k cx

j. Observese que la solucion del problema se alcanza en el puntoextremo i-esimo, con lo que queda demostrado el teorema.

A continuacion revisitaremos los pasos del Algoritmo Sımplex, cuyo re-sumen puede observarse en el esquema de la Figura 1.6.

Paso inicialAnalicemos si la SBF de cualquier iteracion es o no optima.Sea x∗ un punto extremo y por tanto SBF, se puede escribir como

x∗ =

(

x∗B

x∗N

)

=

(

B−1b0

)

con B−1b ≥ 0 y A =(

B N)

. El valor de la funcion objetivo es cx∗ =cBx

∗B + cNx

∗N = cBx

∗B = cBB

−1b.

Page 47: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.3. EL METODO SIMPLEX 45

Consideremos que las variables correspondientes a la base son x1, x2, . . . , xm

y las variables no basica son xm+1, xm+2, . . . , xm+n.

Sea x un punto factible cualquiera, x puede factorizarse como x =

(

xB

xN

)

y se pueden realizar las siguientes operaciones. Como Ax = BxB +NxN = b,entonces xB = B−1b−B−1NxN . El valor de la funcion objetivo en el punto xpuede expresarse como cx = cBxB + cNxN = cB(B

−1b− B−1NxN ) + cNxN =cBB

−1b + (cN − cBB−1N)xN . Pero B−1b = x∗

B, luego cx = cBx∗B + (cN −

cBB−1N)xN , ademas cx∗ = cBx

∗B + cNx

∗N = cBx

∗B. Ası,

cx = cx∗ + (cN − cBB−1N)xN = cx∗ +

m+n∑

j=m+1

(cj − cBB−1Aj)xj

Pueden ocurrir dos situaciones:

1. Como xN ≥ 0 para cualquier solucion factible, si cj−cBB−1Aj ≤ 0, ∀j =

m + 1, . . . , m + n, entonces∑m+n

j=m+1(cj − cBB−1Aj)xj ≤ 0 y por tanto

cx ≤ cx∗, ∀x factible, por lo que x∗ es la solucion optima del problema.

2. Si por el contrario, existe j tal que cj−cBB−1Aj > 0, entonces si tomamos

una solucion en la que xj > 0 toma valor y el resto se quedan como estan,entonces,

cx = cx∗ + (cN − cBB−1N)xN = cx∗ +

m+n∑

j=m+1

(cj − cBB−1Aj)xj > cx∗

y por tanto, la solucion x mejorara a la solucion x∗.

Paso iterativo: fase 1Si hemos llegado a este paso, es porque existe al menos una variable xj

tal que cj − cBB−1Aj > 0. Sean j1, j2, . . . , jr los ındices de las variables que

satisfacen dicha desigualdad. Sabemos que

cx = cx∗ + (cN − cBB−1N)xN = cx∗ +

m+n∑

j=m+1

(cj − cBB−1Aj)xj

Como vamos a pasar una SBF adyacente, consideraremos todas las vari-ables basicas de x∗ excepto una. Como ya hemos comentado, entrara en lanueva base aquella variable que mejore en mayor cantidad el valor de la funcionobjetivo, es decir,

Page 48: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

46 CAPITULO 1. PROGRAMACION LINEAL

xe ∈ {xj1, . . . , xjr} : ce − cBB−1Ae = maxj1,...,jr{cj − cBB

−1Aj}

ya que por cada unidad de xj la funcion objetivo aumentara en cj − cBB−1Aj.

Esta regla es heurıstica.Paso iterativo: fase 2Supongamos que e ∈ {j1, . . . , jr} es el ındice de la variable no basica que

entra en la nueva base. Construimos un nuevo punto de la forma x = x∗+λde,

donde de =

(

−B−1Ae

ee

)

y ee es un vector nulo de dimension n −m, excepto

en la posicion e que tiene un 1.

Como Ade =(

B N)

(

−B−1Ae

ee

)

= −BB−1Ae + Ae = 0 y por tanto,

Ax = A(x∗+λde) = Ax∗+λAde = b, ∀λ. En conclusion, cualquier punto x dela forma x = x∗ + λde verifica Ax = b, y para que sea factible, debera verificarademas x ≥ 0, es decir,

x = x∗ + λde = x∗ + λ

(

−B−1Ae

ee

)

=

(

x∗B

0

)

+ λ

(

−B−1Ae

ee

)

≥ 0.

Si λ > 0, entonces la coordenada correspondiente a xe es mayor que cero.Pueden ocurrir dos situaciones:

1. Si B−1Ae ≤ 0 para todas sus coordenadas, entonces −B−1Ae ≥ 0 yλ(−B−1Ae) ≥ 0, ∀λ ≥ 0, por lo que x es factible para cualquier λ.

2. Si por el contrario, existe alguna coordenada tal que B−1Ae > 0, lasituacion no es tan sencilla y habra que elegir λ tal que

x =

(

B−1b+ λ(−B−1Ae)λee

)

=

(B−1b)1 − λ(B−1A)1e...

(B−1b)m − λ(B−1A)me

0...λ...0

≥ 0.

Por hipotesis, existe al menos un i tal que (B−1A)ie > 0. Para satisfacerx ≥ 0 bastara con que (B−1b)i−λ(B−1A)ie ≥ 0 para aquellos i en los que

Page 49: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.3. EL METODO SIMPLEX 47

(B−1A)ie > 0, es decir, que para estos i se cumpla λ ≤ (B−1b)i(B−1A)ie

Observese

que si (B−1A)ie ≤ 0, siempre se tiene (B−1b)1 − λ(B−1A)1e ≥ 0. Por loque se debe cumplir,

λ ≤(B−1b)i(B−1A)ie

, ∀i : (B−1A)ie > 0

Si tomamos λ como el mınimo de dichos cocientes, se tiene la condicion,ası

λ =(B−1b)s(B−1A)se

= min1≤i≤m{(B−1b)i(B−1A)ie

: (B−1A)ie > 0}

Ası, (B−1b)s − λ(B−1A)se = 0 y x tiene las variables que tenıa x∗ menosxs que pasa a tomar valor 0 y en su lugar aparece la variable xe que toma

valor λ, el resto de variables toma valor (B−1b)i −(B−1b)s(B−1A)se

(B−1A)ie. Yhemos construido una SBF adyacente a la anterior en la que xe tomavalor como deseabamos.

Ası el nuevo punto x = x∗ + λde aporta a la funcion objetivo el valor

cx = cx∗ + cλde = cx∗ + λc

(

−B−1Ae

ee

)

= cx∗ + λ(

cB cN)

(

−B−1Ae

ee

)

=

cx∗ + λ(−cBB−1Ae + ce) donde recordemos que λ = xe. ¿Cual es el valor de

la funcion objetivo en cada una de las dos posibles situaciones?

1. Si B−1Ae ≤ 0 para todas sus coordenadas, independientemente del valorλ la solucion es factible, por lo que ce − cBB

−1Ae > 0 y cx = cx∗ +λ(−cBB

−1Ae + ce) −→ ∞ cuando 0 < λ −→ ∞, y el problema tiene

solucion no acotada. En este caso, de =

(

−B−1Ae

ee

)

es una direccion

extrema cumpliendo que cde = ce − cBB−1Ae > 0, luego estamos en las

condiciones del Teorema 1.5 de condiciones de optimalidad en PL quenos permite concluir nuevamente que estamos ante solucion no acotada.

2. Si por el contrario, existe alguna coordenada tal que B−1Ae > 0. Eneste caso, el valor de la nueva SBF habra mejorado en |cx∗ − cx| =λ|ce − cBB

−1Ae| y como xe = λ la funcion objetivo habra mejorado en|ce − cBB

−1Ae| unidades por cada unidad de xe.

Page 50: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

48 CAPITULO 1. PROGRAMACION LINEAL

Paso inicialbusqueda de SBF inicial

Test de optimalidad∀j, cj − cBB

−1Aj ≤ 0?Pararoptimo

Paso iterativo: fase 1xe ∈ xN : max

cj−cBB−1Aj>0{cj − cBB

−1Aj}

(B−1A)e < 0?Parar

inacotado

Paso iterativo: fase 2

xs ∈ xB : min(B−1A)ie>0

{(B−1b)i(B−1A)ie

}

Paso iterativo: fase 3Pivotaje para nueva SBF

no

no

Figura 1.6: Esquema del algoritmo Sımplex.

1.4 Teorıa de dualidad y analisis de sensibili-

dad

Uno de los descubrimientos mas importantes durante el desarrollo inicial dela programacion lineal fue el concepto de dualidad y sus importantes ramifi-caciones. Este descubrimiento revelo que, asociado a todo problema de pro-gramacion lineal, existe otro problema lineal llamado dual. Desde distintospuntos de vista las relaciones entre el problema dual y el original (llamado

Page 51: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.4. TEORIA DE DUALIDAD Y ANALISIS DE SENSIBILIDAD 49

primal) son muy utiles. Por ejemplo, se vera que, en realidad, la solucionoptima del problema dual es la que proporciona los precios sombra que sedescribieron en la Seccion 1.3.2. Una de las aplicaciones mas importantes deesta teorıa es la interpretacion y realizacion del analisis de sensibilidad. Esuna parte esencial de casi todos los estudios de programacion lineal, debido aque la mayorıa de los valores de los parametros que se emplean en el modelooriginal son solo estimaciones de las condiciones futuras, es necesario investigarel efecto que tendrıan sobre la solucion optima en caso de que prevalecieranotras condiciones. Aun mas, ciertos valores de estos parametros (como la can-tidad de recursos) pueden representar decisiones administrativas, en cuyo casosu eleccion debe ser el aspecto principal de la investigacion, el cual se puedeestudiar a traves del analisis de sensibilidad.

Dada nuestra forma estandar para el problema primal, que se presenta ala izquierda (quiza despues de hacer conversiones cuando provienen de otrasformas), su problema dual tiene la forma que se muestra a la derecha.

max z = cxs.a Ax ≤ b

x ≥ 0(1.19)

min w = ybs.a yA ≥ c

y ≥ 0(1.20)

En general, la correspondencia entre ambos modelos viene dada en la Tabla1.13.

Tabla 1.13: Correspondencia primal-dual

Funcion objetivo max z min wRestricciones

aijxj ≤ bi yi ≥ 0∑

aijxj = bi yi ∈ IR∑

aijxj ≥ bi yi ≤ 0Variables xj ≥ 0

aijyi ≥ cjxj ∈ IR

aijyi = cjxj ≤ 0

aijyi ≤ cj

1.4.1 Propiedades de la Teorıa de Dualidad

A continuacion se presenta un resumen de las importantes relaciones entre losproblemas primal y dual.

1. Propiedad de dualidad debil: Si x es una solucion factible para el prob-

Page 52: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

50 CAPITULO 1. PROGRAMACION LINEAL

lema primal y y es una solucion factible para el problema dual, entonces

cx ≤ yb.

2. Propiedad de dualidad fuerte: Si x∗ es una solucion optima para el prob-lema primal y y∗ es una solucion optima para el problema dual, entonces

cx∗ = y∗b.

3. Propiedad de soluciones complementarias: En cada iteracion, el metodosımplex identifica de manera simultanea una solucion FEV, x, para elproblema primal y una solucion complementaria, y, para el problemadual (que se encuentra en la fila (0), como los coeficientes de las variablesde holgura), donde

cx = yb.

Si x no es optima para el problema primal, entonces y no es factible parael problema dual.

4. Propiedad de soluciones complementarias optimas: Al final de cada it-eracion, el metodo sımplex identifica de manera simultanea una solucionoptima x∗ para el problema primal y una solucion optima complemen-taria y∗ para el problema dual (que se encuentra en la fila (0) como loscoeficientes de las variables de holgura), donde

cx∗ = y∗b.

Los valores de y∗i son los precios sombra para el problema primal.

5. Propiedad de simetrıa: En el caso de cualquier problema primal y suproblema dual, las relaciones entre ellos deben ser simetricas debido aque el dual de este problema dual es este problema primal.

En consecuencia, todas las propiedades anteriores se cumplen sin que im-porte a cual de los dos problemas se le llame problema primal. (La direccionde la desigualdad de la propiedad de dualidad debil requiere que el problemaprimal se exprese o reexprese en la forma de maximizacion y el problema dualen la forma de minimizacion.) Por tanto, el metodo sımplex se puede aplicar acualquiera de los dos problemas e identificara al mismo tiempo las solucionescomplementarias (y en ultima instancia una solucion complementaria optima)para el otro problema.

Page 53: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.4. TEORIA DE DUALIDAD Y ANALISIS DE SENSIBILIDAD 51

Hasta este punto se han estudiado las relaciones entre las soluciones factiblesu optimas para el problema primal y las soluciones correspondientes para elproblema dual. Sin embargo, es posible que el problema primal (o el dual)no tenga soluciones factibles o bien tenga soluciones factibles pero no unasolucion optima (debido a que la funcion objetivo no este acotada). La ultimapropiedad resume las relaciones primal-dual de todas estas posibilidades.

Teorema 1.6. Teorema de la dualidadLas siguientes son las unicas relaciones posibles entre los problemas primal

y dual.

1. Si un problema tiene soluciones factibles y una funcion objetivo acotada(y, por ende, una solucion optima), entonces ocurre lo mismo con el otroproblema, de manera que se aplican tanto la propiedad de dualidad debilcomo la fuerte.

2. Si uno de los problemas tiene soluciones factibles y una funcion objetivono acotada (es decir, no tiene solucion optima), entonces el otro problemano tiene soluciones factibles.

3. Si un problema no tiene soluciones factibles, entonces el otro problemano tiene soluciones factibles o bien la funcion objetivo es no acotada.

1.4.2 Interpretacion economica

Recordemos la expresion del problema primal en notacion extendida dada en1.21:

maximizar z =∑n

j=1 cjxj

sujeto a∑n

j=1 aijxj ≤ bi, i = 1, 2, . . . , m

xj ≥ 0, j = 1, 2, . . . , n

(1.21)

La interpretacion economica de los coeficientes, es como en el Ejemplo 1.3:

xj: Nivel de la actividad j

cj: Ganancia unitaria debida a la actividad j

z: Ganancia total debida a todas las actividades

bi: Cantidad disponible del recurso i

Page 54: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

52 CAPITULO 1. PROGRAMACION LINEAL

aij: Cantidad del recurso i consumida por cada unidad de la actividad j

El primal tiene su correspondiente problema dual en 1.22:

minimizar w =∑m

i=1 biyi

sujeto a∑m

i=1 aijyi ≥ cj, j = 1, 2, . . . , n

yi ≥ 0, i = 1, 2, . . . , m

(1.22)

La interpretacion economica es la siguiente:

yi: contribucion a la ganancia por unidad del recurso i (precio sombra)

biyi: contribucion a la ganancia por disponer de bi unidades del recurso i

aijyi: contribucion a la utilidad de esa mezcla de recursos que se con-sumirıan si se usara 1 unidad de la actividad (producir 1 lote del productoj por semana)

aijyi ≥ cj: la contribucion actual a la utilidad de la mezcla anterior de re-cursos debe ser, por lo menos, tan grande como si 1 unidad de la actividadj la utilizara; de otra manera no se llevarıa a cabo la mejor utilizacionde estos recursos

yi ≥ 0: la contribucion a la utilidad por parte del recurso i debe ser no nega-tiva, pues de lo contrario serıa mejor no utilizar este recurso.

min w: minimizacion del valor total implıcito de los recursos consumidos porlas actividades.

La asociacion entre las variables de los problemas primal y dual viene dadaen la Tabla 1.14:

Tabla 1.14: Correspondencia variables primal-dualVariables primales Variables duales

De decision x1, . . . , xn De superavit z1 − c1, . . . , zn − cnDe holgura xn+1, . . . , xn+m De decision y1, . . . , ym

Page 55: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.4. TEORIA DE DUALIDAD Y ANALISIS DE SENSIBILIDAD 53

1.4.3 Analisis de sensibilidad

El analisis de sensibilidad consiste, en esencia, en la investigacion del efectoque tiene sobre la solucion optima el hecho de hacer cambios en los valores delos parametros del modelo aij , bi y cj . Sin embargo, al cambiar los valores delos parametros en el problema primal se cambian tambien los valores corre-spondientes en el problema dual. Por tanto, se puede elegir que problema seva a usar para investigar cada cambio.

Por ejemplo, suponga que los cambios que se hacen en el modelo originalocurren en los coeficientes de una variable que era no basica en la solucionoptima original. ¿Cual es el efecto de estos cambios sobre esta solucion? ¿To-davıa es factible? ¿Todavıa es optima? Como la variable en cuestion es nobasica (su valor es cero), el cambio en sus coeficientes no puede afectar lafactibilidad de la solucion, por lo cual, la pregunta que queda abierta en estecaso es si todavıa es optima. Una pregunta equivalente es si la solucion basicacomplementaria para el problema dual todavıa es factible despues de hacerestos cambios. Dado que los cambios afectan al problema dual nada mas enuna restriccion, la pregunta se puede responder de manera sencilla al verificarsi esta solucion basica complementaria satisface la restriccion revisada.

Las variables de decision del modelo suelen representar los niveles de lasdistintas actividades en consideracion. En algunas situaciones, se seleccionanalgunas de ellas de entre un grupo grande de actividades posibles en el quelas restantes no fueron elegidas debido a que parecıan ser menos atractivas. Oquizas estas otras actividades no fueron visibles sino hasta despues de formulary resolver el modelo original. De cualquier manera, la pregunta en este caso essi se justifica la inclusion de alguna de estas actividades no consideradas conanterioridad. En otras palabras, ¿cambiara la solucion optima original si seagrega cualquiera de estas actividades? La inclusion de otra actividad equivalea introducir en el modelo una nueva variable, con los coeficientes apropiadosen las restricciones funcionales y en la funcion objetivo. El unico cambioque resulta en el problema dual es la introduccion de una nueva restriccion.Una vez hechos estos cambios, ¿la solucion optima original, junto con la nuevavariable igual a cero (no basica), sera todavıa optima para el problema primal?Igual que en el caso anterior, una pregunta equivalente es si la solucion basicacomplementaria todavıa es factible para el problema dual, e igual que antes,esta pregunta se puede contestar con solo verifi car si esta solucion basicacomplementaria satisface una restriccion, que en este caso se trata de la nuevarestriccion del problema dual.

El trabajo del equipo de investigacion de operaciones apenas comienza una

Page 56: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

54 CAPITULO 1. PROGRAMACION LINEAL

vez que se aplica con exito el metodo sımplex para identificar una solucionoptima para el modelo. Un supuesto de programacion lineal es que todoslos parametros del modelo son constantes conocidas. En realidad, los valoresde los parametros que se usan en el modelo casi siempre son solo estimacionesbasadas en una prediccion de las condiciones futuras. Con frecuencia, los datosque se obtienen para desarrollar estas estimaciones son bastante burdos o noexisten, ası que los parametros de la formulacion original pueden representartan solo la opinion proporcionada por el personal correspondiente. Los datospueden incluso representar estimaciones optimistas o pesimistas que protegenlos intereses de los estimadores.

En consecuencia, un administrador razonable y el personal de investigacionde operaciones deben mantener cierto escepticismo saludable respecto de losnumeros originales que les proporciona el ordenador y, en muchos casos, lostomaran nada mas como un punto de partida para el analisis posterior delproblema. Una solucion optima lo es solo en lo que se refiere al modelo es-pecıfico que se usa para representar el problema real, y esa solucion no seconvierte en una guıa confiable para la accion hasta verificar que su compor-tamiento es bueno tambien para otras representaciones razonables del prob-lema. Aun mas, algunas veces los parametros del modelo (en particular las bi)se establecen como resultado de decisiones basadas en polıticas administrati-vas (por ejemplo, la cantidad de ciertos recursos que se ponen a disposicionde las actividades), y estas decisiones deben revisarse despues de detectar susconsecuencias potenciales.

Por estas razones es importante llevar a cabo un analisis de sensibilidad,para investigar el efecto que tendrıa sobre la solucion optima que proporcionael metodo sımplex el hecho de que los parametros tomen otros valores posi-bles. En general, habra algunos parametros a los que se les pueda asignarcualquier valor razonable sin que afecten la optimalidad de esta solucion. Sinembargo, tambien habra parametros con valores probables que lleven a unanueva solucion optima. Esta situacion es seria, en particular si la solucionoriginal adquiere valores muy inferiores en la funcion objetivo, o tal vez nofactibles.

Por tanto, un objetivo fundamental del analisis de sensibilidad es identificarlos parametros sensibles (es decir, los parametros cuyos valores no puedencambiar sin que cambie la solucion optima). Para coeficientes de la funcionobjetivo que no estan clasificados como sensibles, tambien puede resultar degran utilidad determinar el intervalo de valores del parametro para el que lasolucion optima no cambia. (Este intervalo de valores se conoce como inter-valo permisible para ese coeficiente.) En algunos casos, el cambio del valor

Page 57: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

1.4. TEORIA DE DUALIDAD Y ANALISIS DE SENSIBILIDAD 55

de un parametro en la columna del lado derecho dentro de una restriccionfuncional puede afectar la factibilidad de la solucion BF optima. Para mane-jar tales parametros, es util determinar el intervalo de valores para el que laSBF optima (con los valores ajustados de las variables basicas) seguira siendofactible. (Este intervalorecibe el nombre de intervalo permisible por ellado derecho involucrado.) Este rango de valores es tambien el rango den-tro del cual el precio sombra actual de la restriccion correspondiente permanecevalido.

Tal informacion es de gran valor en dos sentidos. Primero, identifica losparametros mas importantes, por lo que se debe tener un cuidado especialpara hacer estimaciones cercanas y seleccionar una solucion que tenga un buendesempeno para la mayorıa de los valores posibles. Segundo, identifica losparametros que sera necesario controlar muy de cerca cuando el estudio seimplante. Si se descubre que el valor real de un parametro esta fuera de suintervalo de valores permisibles, esta es una senal incontrastable de que esnecesario cambiar la solucion.

Para problemas pequenos, la verificacion del efecto de una variedad decambios en los valores de los parametros es directa con solo aplicar de nuevoel metodo sımplex para ver si cambia la solucion optima.

Sin embargo, en problemas mas grandes como los que se encuentran enla practica, el analisis de sensibilidad requerirıa de un esfuerzo computacionalexorbitante si fuera necesario volver a aplicar el metodo sımplex desde el prin-cipio para investigar cada cambio en el valor de un parametro. Por fortuna, sepueden analizar los cambios esenciales en la tabla sımplex para analizar comolos cambios en el modelo original alterarıan los numeros de la tabla sımplexfinal. Por tanto, despues de hacer unos cuantos calculos para actualizar estatabla sımplex, se puede verificar si la SBF optima original ahora es no optima(o no factible). Si es ası, esta solucion se usara como solucion basica inicialpara comenzar de nuevo el sımplex (o el sımplex dual) y encontrar una nuevasolucion optima, si se desea. Si los cambios en el modelo no son muy grandes,solo se requeriran unas cuantas iteraciones para obtener la nueva solucionoptima a partir de esta solucion basica inicial avanzada.

Resumen del procedimiento para analisis de sensibilidad:

1. Revision del modelo: se hacen los cambios deseados en el modelo que seva a investigar.

2. Revision de la tabla sımplex final: Se emplea la idea fundamental paradeterminar los cambios que resultan en la tabla sımplex final.

Page 58: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

56 CAPITULO 1. PROGRAMACION LINEAL

3. Conversion a la forma apropiada de eliminacion de Gauss: Se convierteesta tabla en la forma apropiada para identificar y evaluar la solucionbasica actual, para lo cual se aplica (segun sea necesario) eliminacion deGauss.

4. Prueba de factibilidad: Se prueba la factibilidad de esta solucion medi-ante la verificacion de que todas las variables basicas de la columna dellado derecho aun tengan valores no negativos.

5. Prueba de optimalidad: Se verifica si esta solucion es optima (factible),mediante la comprobacion de que todos los coeficientes de las variablesno basicas de la fila 0 continuen no negativos.

6. Reoptimizacion: Si esta solucion no pasa una de las pruebas, se puedeobtener (si se desea) la nueva solucion optima a partir de la tabla actualcomo tabla sımplex inicial (con las conversiones necesarias) por el metodosımplex o el sımplex dual.

Posibles casos a considerar:

• Cambios en las bi

• Cambios en los coeficientes de una variable no basica

• Introduccion de una nueva variable

• Cambios en los coeficientes de una variable basica

• Introduccion de una nueva restriccion

Page 59: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

Capıtulo 2

Programacion No Lineal

2.1 Introduccion a la Programacion No Lineal

Como respuesta a dos de las crıticas mas frecuentes de la PL, a saber, la re-strictividad de la hipotesis de linealidad y la dificultad de definir una unicafuncion objetivo, surge la Programacion no lineal (PNL) y la Teorıa de laDecision Multicriterio (que no abordaremos en este capıtulo). Efectivamente,un supuesto importante en PL es que todas sus funciones (objetivo y restric-ciones) son lineales. Aunque, en esencia, este supuesto se cumple en el caso demuchos problemas practicos, con frecuencia no es ası. Por lo que es necesarioabordarlo desde la Programacion No Lineal (PNL).

De manera general, un problema de PNL consiste en encontrar x = (x1, x2, . . . , xn)tal que

max f(x)s.a gi(x) ≤ bi, ∀i = 1, 2, . . . , m

x ≥ 0

donde f(x) y gi(x) son funciones dadas de n variables de decision1.

1Analogamente, puede tratarse de un problema de minimizacion

min f(x)s.a gi(x) ≥ bi, ∀i = 1, 2, . . . ,m

x ≥ 0

57

Page 60: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

58 CAPITULO 2. PROGRAMACION NO LINEAL

En notacion extendida:

max f(x1, x2, . . . , xn)s.a g1(x1, x2, . . . , xn) ≤ b1

g2(x1, x2, . . . , xn) ≤ b2...gm(x1, x2, . . . , xn) ≤ bmxj ≥ 0, ∀j = 1, 2, . . . , n

Existen muchos tipos de problemas de PNL, en funcion de las caracterısiticasde estas funciones, por lo que se emplean varios algoritmos para resolver losdistintos tipos. Para ciertos casos donde las funciones tienen formas sencillas,los problemas pueden resolverse de manera relativamente eficiente. En algunosotros casos, incluso la solucion de pequenos problemas representa un verdaderoreto.

Cuando un problema de PNL tiene solo una o dos variables, se puede rep-resentar en forma grafica. Si las funciones no son lineales, dibujaremos curvasen lugar de rectas, por lo que funcion objetivo y region factible dejaran detener el aspecto que adquieren en la PL. La solucion no tiene porque estaren un vertice de la region factible, ni siquiera tiene porque encontrarse en lafrontera de esta. Por lo que la desaparece ahora la gran simplificacion que seutiliza en PL, que permite limitar la busqueda de solucion optima a las solu-ciones en los vertices. Ademas en PNL un maximo local no es necesariamenteun maximo global y en general, los algoritmos de PNL no pueden distinguircuando se encuentra en un optimo local o en uno global. Por tanto, es crucialconocer las condiciones en las que se garantiza que un maximo local es unmaximo global en la region factible. Recuerde que en Analisis Matematico,cuando se maximiza una funcion ordinaria (doblemente diferenciable) de unasola variable f(x) sin restricciones, esta garantıa esta dada cuando

∀x,d2f

dx2≤ 0,

es decir, cuando la funcion es concava hacia abajo, o simplemente concava.

Ejemplo 2.1. Formulacion y resolucion grafica de un problema de PNL

Si se modifica ligeramente la funcion objetivo del Ejemplo 1.3, el problemase convierte en uno de PNL. El problema dado en (2.1) se puede representargraficamente por la Figura 2.1 y su solucion es el punto interior, (3, 3), de laregion factible.

Page 61: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

2.1. INTRODUCCION A LA PROGRAMACION NO LINEAL 59

max 54x1 − 9x21 + 78x2 − 13x2

2

sujeto a x1 ≤ 42x2 ≤ 12

3x1 +2x2 ≤ 18x1 ≥ 0, x2 ≥ 0

(2.1)

0 1 2 3 4 5 6 70

1

2

3

4

5

6

7

b b

b

bb

b

(3, 3)

z = 198

Figura 2.1: Region factible del ejemplo 2.1

Si un problema de PNL no tiene restricciones, el hecho de que la funcionobjetivo sea concava garantiza que un maximo local es un maximo global. (Deigual manera, una funcion objetivo convexa asegura que un mınimo local es unmınimo global.) Si existen restricciones, se necesita una condicion mas para daresta garantıa, a saber, que la region factible sea un conjunto convexo. Por estarazon, los conjuntos convexos tienen un papel fundamental en la programacionno lineal.

Recuerdese la Definicion 1.4 de conjunto convexo, es simplemente un con-junto de puntos tales que, para cada par de puntos de la coleccion, el segmentode recta que los une esta totalmente contenido en ella. Ası, la region factibleen el problema original de la Wyndor Glass Co. (vea la Figura 2.1) es unconjunto convexo. En realidad, la region factible de cualquier otro problemade PL es un conjunto convexo. En general, la region factible de un problemade PNL es un conjunto convexo siempre que todas las funciones gi(x) seanconvexas. Para garantizar que un maximo local sea un maximo global en unproblema de PNL con restricciones g1(x) ≤ b1, g2(x) ≤ b2, . . . , gm(x) ≤ bm yx ≥ 0, la funcion objetivo f(x) debe ser concava y cada gi(x) debe ser convexa.Un problema de este tipo se llama problema de programacion convexa y es unade las clases mas importantes de la PNL.

Page 62: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

60 CAPITULO 2. PROGRAMACION NO LINEAL

Dada la importancia de las nociones de concavidad de funciones y regionesen este capıtulo, veamos un resumen de sus definiciones y propiedades.

Definicion 2.1. Sea una funcion de una sola variable f(x) y consideremoscada par de valores de x, x′ y x′′

• Se dice que es una funcion convexa (o concava hacia arriba) si secumple

f(λx′′ + (1− λ)x′) ≤ λf(x′′) + (1− λ)f(x′), ∀λ ∈ (0, 1).

• Se dice que es una funcion estrictamente convexa si se cumple

f(λx′′ + (1− λ)x′) < λf(x′′) + (1− λ)f(x′), ∀λ ∈ (0, 1).

• Se dice que es una funcion concava (o concava hacia abajo) si secumple

f(λx′′ + (1− λ)x′) ≥ λf(x′′) + (1− λ)f(x′), ∀λ ∈ (0, 1).

• Se dice que es una funcion estrictamente concava si se cumple

f(λx′′ + (1− λ)x′) > λf(x′′) + (1− λ)f(x′), ∀λ ∈ (0, 1).

Observese que λx′′ + (1 − λ)x′ es el segmento que une los dos puntos x′

y x′′, por lo que en una funcion concava hacia arriba (convexa) el segmentoqueda por encima de la funcion, mientras que en una funcion concava haciaabajo (concava) el segmento queda por debajo. Por ejemplo, f(x) = x2 esconvexa, f(x) = −x2 es concava, f(x) = x es simultaneamente concava yconvexa, f(x) = x3 no es ni concava ni convexa. En la Figura 2.2 observamosgraficamente los diferentes casos de funciones segun su concavidad.

concava

(a)

convexa

(b)

concava y convexa

(c)

ni concava ni convexa

(d)

Figura 2.2: Convexidad de funciones

Page 63: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

2.1. INTRODUCCION A LA PROGRAMACION NO LINEAL 61

Si f(x) tiene derivadas de segundo orden para todo x, la caracterizacionde convexidad para funciones de una variable viene dada en la Tabla 2.1.

Tabla 2.1: Caracterizacion de convexidad para funciones de una variable

Convexa Estrictamente convexa Concava Estrictamente concavad2f

dx2 ≥ 0 > 0 ≤ 0 < 0

Definicion 2.2. Sea una funcion de varias variables f(x) = f(x1, x2, . . . , xn) yconsideremos cada par de puntos de x, x′ = (x′

1, x′2, . . . , x

′n) y x

′′ = (x′′1, x

′′2, . . . , x

′′n),

dado que los puntos sobre el segmento que une x′ y x′′ vienen dados por

λx′′ + (1− λ)x′ = (λx′′1 + (1− λ)x′

1, λx′′2 + (1− λ)x′

2, . . . , λx′′n + (1− λ)x′

n)

las definiciones dadas en la Definicion 2.1 siguen siendo validas donde x, x′, x′′

son vectores de n elementos.

Observese que en una funcion concava hacia arriba (convexa) el segmentoqueda por encima de la grafica de la funcion, mientras que en una funcionconcava hacia abajo (concava) el segmento queda por debajo. Si f(x) tienederivadas parciales de segundo orden para todas sus variables xj , necesitamosdefinir la matriz hessiana para expresar la caracterizacion de convexidad parafunciones de dos variables dada en la Tabla 2.2 y la generica para n variablesen la Tabla 2.3.

Definicion 2.3. Sea la funcion f : D ⊂ IRn → IR con derivadas parciales desegundo orden en el punto x∗ ∈ D, entonces definimos

• el gradiente como el vector de derivadas parciales de primer orden

∇f(x∗) =

(

∂f

∂x1

,∂f

∂x2

, . . . ,∂f

∂xn

)

|x∗

• la matriz hessiana como

∇2f(x∗) =

∂2f

∂x21

∂2f

∂x2∂x1. . . ∂2f

∂xn∂x1

∂2f

∂x1∂x2

∂2f

∂x22

. . . ∂2f

∂xn∂x2

......

. . ....

∂2f

∂x1∂xn

∂2f

∂x2∂xn. . . ∂2f

∂x2n

|x∗

Page 64: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

62 CAPITULO 2. PROGRAMACION NO LINEAL

• el determinante de orden k como el determinante que se obtiene de lamatriz hessiana al considerar las primeras k filas y k columnas, es decir,

Dk = det

∂2f

∂x21

∂2f

∂x2∂x1. . . ∂2f

∂xk∂x1

∂2f

∂x1∂x2

∂2f

∂x22

. . . ∂2f

∂xk∂x2

......

. . ....

∂2f

∂x1∂xk

∂2f

∂x2∂xk. . . ∂2f

∂x2k

|x∗

Tabla 2.2: Caracterizacion de convexidad para funciones de dos variables

Convexa Est. convexa Concava Est. concava

D1 =∂2f

∂x21

≥ 0 > 0 ≤ 0 < 0

D2 =∂2f

∂x21

∂2f

∂x22− ( ∂2f

∂x1x2)2 ≥ 0 > 0 ≥ 0 > 0

Tabla 2.3: Caracterizacion de convexidad para funciones de varias variables

Convexa Est. convexa Concava Est. concavaD1 ≥ 0 > 0 ≤ 0 < 0D2 ≥ 0 > 0 ≥ 0 > 0D3 ≥ 0 > 0 ≤ 0 < 0...

......

......

(si n par)Dn ≥ 0 > 0 ≥ 0 > 0(si n impar)Dn ≥ 0 > 0 ≤ 0 < 0

2.2 Tipos de problemas de PNL

Veamos las clases de problemas de PNL mas importantes:

• Optimizacion no restringida: problema sin restricciones, es decir, elproblema se reduce a

maxf(x).

Page 65: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

2.2. TIPOS DE PROBLEMAS DE PNL 63

Si f(x) es diferenciable, la condicion necesaria para que x = x∗ seaoptima es

∂f

∂xj

|x=x∗= 0, ∀j = 1, 2, . . . , n.

La condicion suficiente es que f(x) sea concava2.

• Optimizacion restringida linealmente: si todas las funciones de re-stricciones son lineales pero la funcion objetivo es no lineal. Se handesarrollado extensiones del metodo sımplex. Un caso particular, conm = 0 es aquel en que hay variables no negativas. Por ejemplo,

max f(x)s.a xj ≥ 0

Entonces la condicion necesaria cambiarıa a :{

∂f

∂xj|x=x∗= 0, x∗

j > 0∂f

∂xj|x=x∗≤ 0, x∗

j = 0

• Programacion cuadratica: problema restringido linealmente con funcionobjetivo cuadratica (contiene cuadrados de variables o/y productos devariables, como la del Ejemplo 2.1)

f(x1, x2) = a1x21 + a2x

22 + a3x1x2 + a4x1 + a5x2.

Se han desarrollado muchos algoritmos para f(x) concava, esta formu-lacion surge de manera natural en muchas aplicaciones.

• Programacion convexa: abarca una amplia clase de problemas, entrelos cuales, como casos especiales, se puede mencionar todos los tiposanteriores cuando f(x) es una funcion concava que debe maximizarse.Los supuestos son: (i) f(x) es concava y (ii) cada gi(x) es convexa.Estos supuestos aseguran que un maximo local es global3.

2Si el problema es de minimizacion la conficion suficiente es que f(x) sea convexa.3Si el problema es de minimizacion

min f(x)s.a gi(x) ≤ bi

f(x) convexa y g1(x), g2(x), . . . , gm(x) convexas aseguran que un mınimo local es global.

Page 66: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

64 CAPITULO 2. PROGRAMACION NO LINEAL

• Programacion separable: es un caso especial de programacion con-vexa, en donde el supuesto adicional es: todas las funciones f(x) y gi(x)son separables. Una funcion separable es una funcion en la que cadatermino incluye una sola variable, por lo que la funcion se puede separaren una suma de funciones de variables individuales. Por ejemplo, si f(x)es una funcion separable, se puede expresar como

f(x) =n

j=1

fj(xj)

donde cada fj(xj) incluye solo los terminos con xj . Como en el Ejem-plo 2.1, f(x1, x2) = 54x1 − 9x2

1 + 78x2 − 13x22 es una funcion separable

porque puede ser expresada como f(x1, x2) = f1(x1) + f2(x2) dondef1(x1) = 54x1 − 9x2

1 y f2(x2) = 78x2 − 13x22 son cada una funciones de

una sola variable. Es importante distinguir estos problemas de otros deprogramacion convexa, pues cualquier problema de programacion sepa-rable se puede aproximar muy de cerca mediante uno de programacionlineal y, entonces, se puede aplicar el eficiente metodo sımplex.

• Programacion no convexa: incluye todos los problemas de PNL queno satisfacen los supuestos de programacion convexa. En este caso, auncuando se tenga exito en encontrar un maximo local, no hay garantıade que sea tambien un maximo global. Por lo tanto, no se cuenta conun algoritmo que garantice encontrar una solucion optima para todosestos problemas; sin embargo, existen algunos algoritmos bastante ade-cuados para encontrar maximos locales, en especial cuando las formasde las funciones no lineales no se desvıan demasiado de aquellas que sesupuso para programacion convexa. Ciertos tipos especıficos de proble-mas de programacion no convexa se pueden resolver sin mucha dificultadmediante metodos especiales.

• Programacion geometrica: cuando se aplica PNL a problemas dediseno de ingenierıa, muchas veces la funcion objetivo y las funciones derestriccion toman la forma

g(x) =N∑

k=1

ckPk(x)

dondePk(x) = xak1

1 xak22 · · ·xakn

n , k = 1, 2, . . . , N

Page 67: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

2.2. TIPOS DE PROBLEMAS DE PNL 65

En tales casos, ck y akj con frecuencia representan las constantes fısicas,mientras que las xj son las variables de diseno. Estas funciones por logeneral no son ni concavas ni convexas, por lo que las tecnicas de progra-macion convexa no se pueden aplicar en forma directa a estos problemasde programacion geometrica. Sin embargo, existe un caso importante enel que el problema se puede transformar en un problema de programacionconvexa equivalente. Este caso es aquel en el que todos los coeficientesck de cada funcion son estrictamente positivos, es decir, las funcionesson polinomios positivos generalizados (ahora llamados posinomios), yla funcion objetivo se tiene que minimizar. El problema equivalente deprogramacion convexa con variables de decision y1, y2, . . . , yn se obtieneal establecer

xj = eyj , j = 1, 2, . . . , n

en todo el modelo original, de modo que ya se puede aplicar un algo-ritmo de programacion convexa. Se ha desarrollado otro procedimientode solucion para resolver estos problemas de programacion posinomial,al igual que para problemas de programacion geometrica de otros tipos.

• Programacion fraccional: si la funcion objetivo se encuentra en laforma de una fraccion, esto es, como razon o cociente de dos funciones,

max f(x) = f1(x)f2(x)

Estos problemas de programacion fraccional surgen, por ejemplo, cuandose maximiza la razon de la produccion entre las horas-persona empleadas(productividad), o la ganancia entre el capital invertido (tasa de rendi-miento), o el valor esperado dividido entre la desviacion estandar de al-guna medida de desempeno de una cartera de inversiones (rendimiento /riesgo). Se han formulado algunos procedimientos de solucion especialespara ciertas formas de f1(x) y f2(x). Cuando es posible, el enfoque masdirecto para resolver un problema de programacion fraccional es transfor-marlo en un problema equivalente de algun tipo estandar que dispongade un procedimiento eficiente. Para ilustrar este enfoque, suponga quef(x) es de la forma de programacion fraccional lineal

f(x) =cx+ x0

dx+ d0

donde c y d son vectores fila, x es un vector columna y c0 y d0 sonescalares. Tambien suponga que las funciones de restriccion gi(x) son

Page 68: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

66 CAPITULO 2. PROGRAMACION NO LINEAL

lineales, es decir, las restricciones en forma matricial son Ax ≤ b y x ≥0. Bajo algunos supuestos debiles adicionales, el problema se puedetransformar en un problema equivalente de programacion lineal si seestablece

y =x

dx+ d0y t =

1

dx+ d0

de manera que x =y

t. Este resultado conduce a

max z = cy + c0ts.a Ay − bt ≤ 0

dy + d0t = 1y ≥ 0, t ≥ 0,

que se puede resolver con el metodo sımplex. En terminos generales, sepuede usar el mismo tipo de transformacion para convertir un problemade programacion fraccional con f1(x) concava, f2(x) convexa y gi(x)convexas, en un problema equivalente de programacion convexa.

• Problema de complementariedad: Dadas las variables w1, w2, . . . , wp

y z1, z2, . . . , zp, el problema de complementariedad encuentra una solucionfactible para el conjunto de restricciones

w = F (z), w ≥ 0, z ≥ 0

que tambien satisface la llamada restriccion de complementariedad,

wtz = 0.

Aquı, w y z son vectores columna, F es una funcion vectorial y el su-perındice t denota la transpuesta. El problema no tiene funcion objetivo,de manera que, desde un punto de vista tecnico, no es un problema deprogramacion no lineal completo. Se llama problema de complemen-tariedad por las relaciones complementarias que establecen las tambienconocidas como variables complementarias que

wi = 0 o zi = 0 i = 1, 2, . . . , p.

Un caso en especial importante es el problema de complementariedadlineal, donde

F (z) = q +Mz,

Page 69: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

2.3. OPTIMIZACION NO RESTRINGIDA 67

donde q es un vector columna dado y M es una matriz dada de ordenp × p. Se dispone de algoritmos eficientes para resolver este problemabajo algunos supuestos adecuados sobre las propiedades de la matriz M .Uno de estos requiere pivotear de una solucion basica factible a la sigu-iente, en forma muy parecida a la del metodo sımplex para programacionlineal. Ademas de tener aplicaciones en programacion no lineal, los prob-lemas de complementariedad se utilizan en teorıa de juegos, problemasde equilibrio economico y problemas de equilibrio en ingenierıa.

2.3 Optimizacion no restringida

Consideremos el caso de maximizar una funcion diferenciable de una variableconcava (f ′′(x∗) < 0) no sujeta a ninguna restriccion. Recordemos el resultadode Analisis Matematico que nos dice que x∗ es maximo global si y solo si

df(x∗)

dx= 0.

Si se puede despejar x∗ de modo directo, el problema llega a su fin; perosi f(x) no es una funcion sencilla y su derivada no es una funcion lineal ocuadratica, tal vez sea imposible resolver la ecuacion analıtica. De ser ası,existe una cantidad de procedimientos de busqueda para resolver el problemaen forma numerica. El enfoque con cualquiera de estos procedimientos debusqueda implica encontrar una serie de ensayos de solucion que conduzcanhacia una solucion optima. En cada iteracion se comienza con la solucion deprueba actual para llevar a cabo una busqueda sistematica, que culmina conla identificacion de una nueva solucion de prueba mejorada. El procedimientocontinua hasta que la solucion de prueba haya convergido hacia una solucionoptima, en caso de que exista una. Como el conocido procedimiento intuitivoy directo Metodo de Biseccion para resolver

f ′(x) = 0,

cuyo algoritmo viene dado a continuacion.

Page 70: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

68 CAPITULO 2. PROGRAMACION NO LINEAL

Metodo de Biseccion

Paso inicial: Seleccionar una toleracia ǫ ≈ 0 Encontrar x y x porinspeccion, ubicar un valor con derivada positiva y otro conderivada negativa. Seleccionar una solucion de prueba inicialintermedia x(0) := x+x

2, i := 0.

Paso iterativo: Avanzar i := i + 1. Evaluar df(x(i))dx

. Si es positivo,redefinir x := x(i). Si es negativo, redefinir x := x(i). Seleccionaruna nueva solucion intermedia: x(i) := x+x

2.

Criterio de parada: Si x− x ≤ 2ǫ, parar, x∗ ≈ x(i). Sino, ir al Pasoiterativo.

Ejemplo 2.2. Aplicacion del Metodo de Biseccion

Utiliza el Metodo de Biseccion con tolerancia ǫ = 0.01 para resolver elproblema:

max 12x− 3x4 − 2x6

s.a : x ≥ 0

f(x) = 12x− 3x4 − 2x6. Como f ′′(x) = −12(3x2 + 5x4) ≤ 0, f es concavapor lo que si encontramos un maximo local, sera maximo global. El maximo x∗

debe satisfacer f ′(x∗) = 0, por lo que el problema de maximizacion se reduce aresolver la ecuacıon no lineal

12− 12x3 − 12x5 = 0.

Tabla 2.4: Metodo de Biseccion en el ejemploIteracion f ′(x) x x x(i) f(x(i))0 0 2 1 71 −12 0 1 0.5 5.78122 +10.12 0.5 1 0.75 7.69483 +4.09 0.75 1 0.875 7.84394 −2.19 0.75 0.875 0.8125 7.86725 +1.31 0.8125 0.875 0.84375 7.88296 −0.34 0.8125 0.84375 0.828125 7.88157 +0.51 0.828125 0.84375 0.8359375 7.8839

Page 71: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

2.3. OPTIMIZACION NO RESTRINGIDA 69

Dada dicha tolerancia, el algoritmo pararıa en la iteracion 7, ofreciendo unresultado de x∗ ∈ (0.828125, 0.84375) y x∗ ≈ 0.8359375.

Presentamos a continuacion el esquema algorıtmico Metodo de Newtonpara resolver

f ′(x) = 0,

tecnica que juega un papel fundamental en la PNL.

Metodo de Newton

Paso inicial: Seleccionar una toleracia ǫ ≈ 0 Encontrar por in-speccion una solucion de prueba inicial, i := 0.

Paso iterativo: Evaluar df(x(i))dx

y d2f(x(i))dx2 . Redefinir una nueva

solucion: x(i+1) := x(i) − f ′(x(i))

f ′′(x(i)).

Criterio de parada: Si |x(i+1) − x(i)| ≤ ǫ, parar, x∗ ≈ x(i+1). Sino,avanzar i := i+ 1, ir al Paso iterativo.

Ejemplo 2.3. Aplicacion del Metodo de Newton

Utiliza el Metodo de Newton con tolerancia ǫ = 0.00001 para resolver elproblema del Ejercicio 2.2 anterior:

Tabla 2.5: Metodo de Newton en el ejemploIteracion x(i) f(x(i)) f ′(x(i)) f ′′(x(i)) x(i+1)

1 1 7 12 96 0.8752 0.875 7.8439 2.1940 62.733 0.840033 0.84003 7.8838 0.1325 55.279 0.837634 0.83763 7.8839 0.0006 54.790 0.83762

Dada dicha tolerancia, el algoritmo pararıa en la iteracion 4, ofreciendo unresultado de x∗ ≈ 0.83762.

En solo cuatro iteraciones, este metodo ha convergido con un grado muyalto de precision. Una comparacion de esta tabla con la Tabla 2.2 ilustra cuantomas rapido converge el metodo de Newton que el metodo de biseccion. Si seaplica este ultimo, se requerirıan cerca de 20 iteraciones para converger con elmismo grado de precision. Aunque esta convergencia rapida es muy usual enel metodo de Newton, su desempeno varıa de problema a problema.

Page 72: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

70 CAPITULO 2. PROGRAMACION NO LINEAL

Consideremos ahora el caso de maximizar una funcion diferenciable devarias variables concava no sujeta a ninguna restriccion. Recordemos el re-sultado de Analisis Matematico que nos dice que x∗ es maximo global si y solosi

∇f(x∗) =

(

∂f(x∗)

∂x1

,∂f(x∗)

∂x2

, . . . ,∂f(x∗)

∂xn

)

= (0, 0, . . . , 0).

Supongamos que el sistema no se puede resolver en forma analıtica, por lo quedebe emplearse un procedimiento de busqueda numerico. Igual que en el casode una variable, existen varios procedimientos de busqueda para resolver estetipo de problema en forma numerica. Uno de estos, el Metodo de busquedadel gradiente, es muy importante porque identifica y utiliza la direccion demovimiento, desde la solucion de prueba actual, que maximiza la tasa a lacual se incrementa f(x). Esta es una de las ideas clave de la programacion nolineal. Las adaptaciones de esta idea para tomar en cuenta las restriccionestambien son una caracterıstica central de muchos algoritmos que se utilizanpara llevar a cabo una optimizacion restringida.

Metodo de busqueda del gradiente

Paso inicial: Seleccionar una toleracia ǫ ≈ 0 Encontrar por in-speccion una solucion de prueba inicial x∗. Ir al Criterio deparada.

Paso iterativo: Consta de tres fases:

• Expresar f(x∗ + t∇f(x∗)) como funcion de t al establecer

xj = x∗j + t

∂f(x∗)

∂xj

, ∀j = 1, 2, . . . , n

y sustituir estas expresiones en f(x).

• Utilizar el procedimiento de busqueda en una dimensionpara encontrar t = t∗ que maximice f(x∗ + t∇f(x∗)) parat ≥ 0.

• Establecer x∗ := x∗ + t∗∇f(x∗). Ir al criterio de parada.

Criterio de parada: Evaluar ∇f(x∗). Si |∂f(x∗)

∂xj| ≤ ǫ, ∀j =

1, 2, . . . , n, parar, la aproximacion a la solucion optima es x∗.Sino, ir al Paso iterativo.

Page 73: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

2.3. OPTIMIZACION NO RESTRINGIDA 71

La version general del metodo de Newton esta disenada para resolver prob-lemas de optimizacion restringida con variables multiples. La idea basica es lamisma, es decir, se trabaja con una aproximacion cuadratica de la funcion ob-jetivo f(x), donde, en este caso, x = (x1, x2, . . . , xn). Esta funcion cuadraticade aproximacion se obtiene al truncar la serie de Taylor alrededor de la solucionde prueba actual despues del termino de la segunda derivada. Despues, estafuncion aproximada se maximiza (o minimiza) exactamente para obtener lanueva solucion de prueba para iniciar la siguiente iteracion. Cuando la funcionobjetivo es concava y tanto la solucion de prueba actual x como su gradiente∇f(x) se escriben como vectores columna, la solucion x∗ que maximiza lafuncion cuadratica de aproximacion tiene la forma

x∗ = x− [∇2f(x)]−1∇f(x)

donde [∇2f(x)]−1 es la inversa de esta matriz hessiana. Los algoritmos deprogramacion no lineal que emplean el metodo de Newton (incluso aquellos quelo adaptan para ayudar a tratar con problemas de optimizacion restringida)por lo general aproximan el inverso de la funcion hessiana de varias maneras.Estas aproximaciones del metodo de Newton son conocidas como metodoscuasi-Newton (o metodos metricos variables).

Ejemplo 2.4. Aplicacion del Metodo de busqueda del gradiente

Utiliza el Metodo de Busqueda del Gradiente para resolver el problema:

max 2x1x2 + 2x2 − x21 − 2x2

2

s.a : x1 ≥ 0, x2 ≥ 0

∇f(x) = (2x2 − 2x1, 2x1 + 2 − 4x2). Como ∇2f(x) =

(

−2 22 −4

)

< 0, f

es concava por lo que si encontramos un maximo local, sera maximo global.Consideremos (0, 0) la solucion inicial de prueba.

Tabla 2.6: Metodo de Busqueda del Gradiente en el ejemploIteracion x∗ ∇f(x∗) x∗ + t∇f(x∗) f(x∗ + t∇f(x∗)) t∗ x∗ + t∗∇f(x∗)1 (0, 0) (0, 2) (0, 2t) 4t− 8t2 1/4 (0, 1/2)2 (0, 1/2) (1, 0) (t, 1/2) t− t2 + 1/2 1/2 (1/2, 1/2)

En iteraciones sucesivas, se obtienen: (12, 34), (3

4, 34), (3

4, 78), (7

8, 78), . . . Esta

sucesion converge a (1, 1) que es la solucion optima, ya que ∇f(1, 1) = (0, 0).

Page 74: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

72 CAPITULO 2. PROGRAMACION NO LINEAL

2.4 Optimizacion restringida: condiciones KKT

Hemos visto las condiciones de optimalidad para el caso no restringido, parael caso restringido general, veremos las condiciones de Karush-Kuhn-Tucker(condiciones KKT), que fueron desarrolladas de manera independiente porKarush (tesis de master, 1939) y por Kuhn y Tucker (1951). En la Tabla 2.7se resumen las condiciones de optimalidad para problema de PNL restringidoso no.

Tabla 2.7: Condiciones de optimalidadRestricciones Condiciones necesarias Condiciones suficientesNo ∇f(x) = 0 f(x) concavaxj ≥ 0 ∇f(x) = 0 & ∇f(x) ≤ 0 si xj = 0 f(x) concavaGeneral condiciones KKT f(x) concava y gi(x) convexas

Teorema 2.1. • (Condiciones nesarias)Sean f(x), g1(x), g2(x), . . . , gm(x) funciones diferenciables que satisfacenciertas condiciones de regularidad. Entonces, x∗ = (x∗

1, x∗2, . . . , x

∗n) puede

ser una solucion optima para el problema de PNL (2.1), solo si existen mnumeros u1, u2, . . . , um que satisfagan las siguientes condiciones KKT:

1. ∂f(x∗)∂xj

−∑m

i=1 ui∂gi(x

∗)∂xj

≤ 0, j = 1, 2, . . . , n

2. x∗j

(

∂f(x∗)∂xj

−∑m

i=1 ui∂gi(x∗)∂xj

)

= 0, j = 1, 2, . . . , n

3. gi(x∗)− bi ≤ 0, i = 1, 2, . . . , m

4. ui(gi(x∗)− bi) = 0, i = 1, 2, . . . , m

5. x∗j ≥ 0, j = 1, 2, . . . , n

6. ui ≥ 0, i = 1, 2, . . . , m

• (Condiciones suficientes)Sea f(x) concava y g1(x), g2(x), . . . , gm(x) convexas (es decir, se tratade un problema de programacion convexa), donde todas estas funcionessatisfacen las condiciones de regularidad y x∗ satisface las condicionesKKT. Entonces, x∗ es una solucion optima.

Veremos una aplicacion de las condiciones KKT en la Seccion 2.5.

Page 75: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

2.5. PROGRAMACION CUADRATICA 73

2.5 Programacion cuadratica

Como se ha mencionado en la clasificacion de problemas de PNL en la Seccion2.2, la programacion cuadratica difiere de la programacion lineal nada mas enque la funcion objetivo es una funcion cuadratica, es decir, incluye tambienterminos cuadrados o productos de variables.

2.5.1 Formulacion cuadratica

Definicion 2.4. Sea f : IRn → IR, f es una funcion cuadratica si

f(x1, x2, . . . , xn) =n

i,j=1

qijxixj = (x1 x2 . . . xn)

q11 q12 . . . q1nq21 q22 . . . q2n...

.... . .

...qn1 qn2 . . . qnn

x1

x2...xn

.

Propiedad: Las funciones cuadraticas cumplen la propiedad

f(λx1, λx2, . . . , λxn) = λ2f(x1, x2, . . . , xn).

Definicion 2.5. Sea f : IRn → IR una funcion cuadratica, se dice que es

• definida positiva si f(x) > 0, ∀x ∈ IRn − {0},

• semidefinida positiva si f(x) ≥ 0, ∀x ∈ IRn,

• definida negativa si f(x) < 0, ∀x ∈ IRn − {0},

• semidefinida negativa si f(x) ≤ 0, ∀x ∈ IRn,

• indefinida si no entra en ninguna de las clasificaciones anteriores.

Recuerdese la caracterizacion de matrices definidas positivas: todos losautovalores λj son positivos, o equivalentemente, todos los determinantes delos menores principales son positivos. Por el contrario, la caracterizacion dematrices definidas negativas: todos los autovalores λi son negativos, o equiv-alentemente, todos los determinantes de los menores principales tienen signosalternos, siendo el primero negativo.

Page 76: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

74 CAPITULO 2. PROGRAMACION NO LINEAL

Tabla 2.8: Caracterizacion de definicion para funciones cuadraticas

Autovalores Semidefinida Positiva Semidefinida Negativapositiva negativa

λ1 ≥ 0 > 0 ≤ 0 < 0λ2 ≥ 0 > 0 ≤ 0 < 0λ3 ≥ 0 > 0 ≤ 0 < 0...

......

......

λn ≥ 0 > 0 ≤ 0 < 0

En consecuencia, si se usa la notacion matricial el problema es encontrar xpara

max f(x) = cx+ 12xtQx

s.a Ax ≤ bx ≥ 0

donde c ∈ IRn es un vector fila y x ∈ IRn y b ∈ IRn son vectores columna.Q = (qij) ∈ Mn×n y A = (aij) ∈ Mm×n son matrices y el superındice t denotala transpuesta. Los elementos qij de Q son constantes dadas tales que qij = qji(es decir, Q es una matriz simetrica, Qt = Q). Ası, la funcion objetivo seexpresa en terminos de estas qij , los elementos cj de c y las variables xj , de lasiguiente manera:

f(x) = cx+1

2xtQx =

n∑

j=1

cjxj +1

2

n∑

i=1

n∑

j=1

qijxixj

Ejemplo 2.5. Formulacion de un problema cuadratico

Consideremos el siguiente problema cuadratico de dos variables:

max f(x1, x2) = 15x1 + 30x2 + 4x1x2 − 2x21 − 4x2

2

s.a x1 + 2x2 ≤ 30x1 ≥ 0, x2 ≥ 0

Si observamos la funcion objetivo:

f(x) = cx+1

2xtQx =

(

c1 c2)

(

x1

x2

)

+1

2

(

x1 x2

)

(

q11 q12q12 q22

)(

x1

x2

)

=

= c1x1 + c2x2 +1

2(q11x

21 + 2q12x1x2 + q22x

22)

Page 77: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

2.5. PROGRAMACION CUADRATICA 75

Igualando coeficiente a coeficiente con la expresion:

f(x1, x2) = 15x1 + 30x2 +1

2(−4x2

1 + 8x1x2 − 8x22)

tenemos

c =(

15 30)

, Q =

(

−4 44 −8

)

, A =(

1 2)

, b = 30

Se dispone de varios algoritmos para el caso especial de un problema deprogramacion cuadratica donde la funcion objetivo es una funcion concava. Lafuncion objetivo f(x) = cx+ 1

2xtQx es concava si +1

2xtQx es concava, es decir,

si xtQx es semidefinida negativa. En efecto, recuerdese la caracterizacion deconvexidad dada en la Tabla 2.3 y observese que

∇2f(x) = Q.

Se describira uno de estos algoritmos, el metodo sımplex modificado, quees muy aceptado porque se basa en el metodo sımplex con una pequena modi-ficacion. La clave de este enfoque es construir las condiciones KKT y despuesreexpresarlas de una manera conveniente que se parezca a programacion lineal.Por esto, antes de describir el algoritmo, se desarrollara esta practica forma.

2.5.2 Condiciones KKT para programacion cuadratica

Ejemplo 2.6. Condiciones KKT en programacion cuadratica

Analicemos las condiciones KKT en el Ejemplo 2.5 anterior.

1. Para j = 1 : 15 + 4x2 − 4x1 − u1 ≤ 0

Para j = 2 : 30 + 4x1 − 8x2 − 2u1 ≤ 0

2. Para j = 1 : x1(15 + 4x2 − 4x1 − u1) = 0

Para j = 2 : x2(30 + 4x1 − 8x2 − 2u1) = 0

3. x1 + 2x2 − 30 ≤ 0

4. u1(x1 + 2x2 − 30) = 0

5. x1 ≥ 0, x2 ≥ 0

6. u1 ≥ 0

Page 78: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

76 CAPITULO 2. PROGRAMACION NO LINEAL

Para poder reexpresar estas condiciones en una forma mas conveniente,se mueven las constantes de las condiciones 1 y 3 al lado derecho y despuesse introducen variables de holgura no negativas (denotadas por y1, y2 y v1,respectivamente) para convertir estas desigualdades en ecuaciones.

−4x1 +4x2 −u1 + y1 = −154x1 −8x2 −2u1 +y2 = −30x1 +2x2 +v1 = 30

Observe que la condicion 2 para j = 1 se puede reexpresar ahora en formasimple como la necesidad de que se cumpla una de las dos, x1 = 0 o bieny1 = 0; esto es,

x1y1 = 0.

Exactamente en la misma forma, las condiciones 2 para j = 2 y 4 se puedensustituir por

x2y2 = 0

u1v1 = 0

Para cada uno de estos tres pares (x1, y1), (x2, y2) y (u1, v1), las dos vari-ables se llaman variables complementarias, porque solo una de las dospodrıa ser diferente de cero. Estas nuevas formas de las condiciones 2 y 4 sepueden combinar en una unica restriccion, llamada restriccion de comple-mentariedad:

x1y1 + x2y2 + u1v1 = 0.

Despues de multiplicar las ecuaciones de las condiciones 1. por −1 paraobtener lados derechos no negativos, se obtiene la forma deseada del conjuntocompleto de condiciones:

4x1 −4x2 +u1 −y1 = 15−4x1 +8x2 +2u1 −y2 = 30

x1 +2x2 +v1 = 30x1, x2, u1, y1, y2, v1 ≥ 0x1y1 + x2y2 + u1v1 = 0

(2.2)

Esta forma es en especial conveniente puesto que excepto por la restriccionde complementariedad, estas condiciones son restricciones de programacionlineal.

En cualquier problema de programacion cuadratica, sus condiciones KKTse pueden reducir a la misma forma conveniente que contiene solo restricciones

Page 79: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

2.5. PROGRAMACION CUADRATICA 77

de programacion lineal y una restriccion de complementariedad. En notacionmatricial, esta forma general es

−Qx+ Atu− y = ct,Ax+ v = b

x, u, y, v ≥ 0xty + utv = 0

donde los elementos del vector columna u ∈ IRm son las ui de las condicionesKKT y los elementos de los vectores columna y ∈ IRn y v ∈ IRm son variablesde holgura.

Como se supone que la funcion objetivo del problema original es concava ycomo las funciones de restriccion son lineales y, por tanto, convexas, se puedeaplicar el Teorema 2.1. Ası, x es optima si y solo si existen valores de y,u y v tales que los cuatro vectores juntos satisfacen todas estas condiciones.Ası pues, el problema original se reduce al problema equivalente de encon-trar una solucion factible para estas restricciones. Es interesante observar queeste problema equivalente es un ejemplo del problema de complementariedadlineal que se introdujo en la Seccion 2.2, y que una restriccion clave de esteproblema de complementariedad lineal es precisamente su restriccion de com-plementariedad.

2.5.3 Metodo Sımplex Modificado

El Metodo Sımplex Modificado explota el importante hecho de que, conexcepcion de la restriccion de complementariedad, las condiciones KKT ex-presadas en la forma conveniente que se acaba de obtener, no son otra cosaque restricciones de programacion lineal. Aun mas, la restriccion de comple-mentariedad simplemente implica que no es permisible que las dos variablescomplementarias de un par dado sean basicas (no nulas) al considerar SBF (nodegeneradas). Por tanto, el problema se reduce a encontrar una SBF inicialpara cualquier problema de programacion lineal con estas restricciones, su-jeta a la restriccion adicional sobre la identidad de las variables basicas. (Estasolucion inicial basica factible puede ser la unica solucion factible en este caso.)

Como se analizo en la Subseccion 1.3.4, tal SBF inicial se encuentra caside modo directo. En el sencillo caso de que ct ≤ 0 (poco probable) y b ≥ 0, lasvariables basicas iniciales son los elementos de y y v (se multiplica por −1 todoel primer conjunto de ecuaciones), de manera que la solucion deseada es x = 0,u = 0, y = −ct, v = b. De otra manera, es necesario revisar el problema eintroducir una variable artificial en cada una de las ecuaciones donde cj > 0 (se

Page 80: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

78 CAPITULO 2. PROGRAMACION NO LINEAL

agrega la variable una variable artificial por la izquierda) o bi < 0 (se resta unavariable artificial por la izquierda y despues se multiplican los dos lados por−1), con el fin de usar estas variables artificiales (que se denotan por zj) comovariables basicas iniciales del problema revisado. (Observe que esta seleccion devariables basicas iniciales satisface la restriccion de complementariedad, puestoque como variables no basicas x = 0 y u = 0, de manera automatica.) Despuesse utiliza la fase 1 del metodo de dos fases para encontrar una SBF para elproblema real; es decir, se aplica el metodo sımplex (con una modificacion) alsiguiente problema de programacion lineal

min z =∑

j

zj

sujeta a las restricciones anteriores de programacion lineal que se obtu-vieron de las condiciones KKT, pero con estas variables artificiales incluidas.

La modificacion del metodo sımplex es el siguiente cambio en el proced-imiento para elegir una variable basica entrante.

Regla de entrada restringida: cuando se elige la variable basica en-trante, se excluye de las posibilidades cualquier variable no basica cuya variablecomplementaria sea basica; la eleccion debe hacerse entre las otras variablesno basicas, segun el criterio normal del metodo sımplex.

Esta regla asegura que la restriccion de complementariedad se satisface entodo el curso del algoritmo.

Cuando se obtiene una solucion optima x∗, u∗, y∗, v∗ y z = 0 para la fase 1de este problema, x∗ es la solucion optima deseada para el problema originalde programacion cuadratica. La fase 2 del metodo de dos fases no se necesita.

Ejemplo 2.7. Resolucion del Metodo Sımplex Modificado

Vamos a aplicar el algoritmo en el Ejemplo 2.5. Como hemos visto, la

matriz Q =

(

−4 44 −8

)

es definida negativa, por lo que la funcion objetivo a

maximizar f(x) es concava. El punto de partida para resolver este ejemploson las condiciones KKT en la forma conveniente (2.2) que se obtuvo en elEjemplo 2.6. Una vez que se introducen las variables artificiales z necesarias,el problema de programacion lineal que se resolvera en forma explıcita por elmetodo sımplex modificado es

Page 81: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

2.5. PROGRAMACION CUADRATICA 79

min z = z1 + z24x1 −4x2 +u1 −y1 +z1 = 15

−4x1 +8x2 +2u1 −y2 +z2 = 30x1 +2x2 +v1 = 30

x1, x2, u1, y1, y2, v1z1, z2 ≥ 0

(2.3)

La restriccion de complementariedad adicional

x1y1 + x2y2 + u1v1 = 0

no se incluye de manera explıcita, porque el algoritmo garantiza que se satisfagaesta restriccion de manera automatica con la regla de entrada restringida.En particular, en cada uno de los tres pares de variables complementariassiempre que una de las dos variables sea ya una variable basica, la otra seexcluye de las candidatas como variable basica entrante. Recuerde que sololas variables diferentes de cero son variables basicas. Dado que el conjuntoinicial de variables basicas del problema de programacion lineal (z1, z2 y v1)proporciona una SBF inicial que satisface la restriccion de complementariedad,no hay manera de violar esta restriccion con ninguna de las SBF subsiguientes.

En la Tabla 2.9 se muestran los resultados de la aplicacion del metodosımplex modificado a este problema.

En la iteracion inicial se presenta el sistema de ecuaciones inicial despuesde convertir de minimizacion de z a maximizacion de −z y de eliminar alge-braicamente las variables basicas iniciales de la ecuacion (0). Las tres itera-ciones proceden igual que en el metodo sımplex normal, excepto por la elimi-nacion de ciertos candidatos para la variable basica entrante, segun la reglade entrada restringida. En la iteracion 1 se elimina u1 como candidatoporque su variable complementaria v1 es ya una variable basica (de todas man-eras, habrıa entrado x2 puesto que | − 4| > | − 3|). En la iteracion 2 seelimina tanto u1 como y2 (puesto que sus complementarias v1 y x2 son vari-ables basicas) y de manera automatica se elige x1 como unico candidato concoeficientes negativos en la fila (0), mientras que el metodo sımplex normalhabrıa permitido la entrada de x1 o bien de u1, porque estan empatadas con elcoeficiente mas negativo. En la iteracion 3 se eliminan y1 y y2 (porque x1 y x2

son variables basicas). Esta vez u1 no se elimina, puesto que v1 ya no es unavariable basica, ası que se elige u1 como variable entrante. La solucion optimaque resulta para esta fase del problema es x1 = 12, x2 = 9, u1 = 3, mien-tras el resto de las variables son nulas. Ademas, se satisfacen las condicionesKKT del problema original, por lo que la solucion optima para el problema deprogramacion cuadratica es (x1, x2) = (12, 9) con z = 270.

Page 82: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

80 CAPITULO 2. PROGRAMACION NO LINEAL

Tabla 2.9: Tabla Metodo Sımplex Modificado

It. xB Ec. z x1 x2 u1 y1 y2 v1 z1 z2 rhs0 z (0) −1 0 −4 −3 1 1 0 0 0 −45

z1 (1) 0 4 −4 1 −1 0 0 1 0 15z2 (2) 0 −4 8 2 0 −1 0 0 1 30v1 (3) 0 1 2 0 0 0 1 0 0 30

1 z (0) −1 −2 0 −2 1 1/2 0 0 1/2 −30z1 (1) 0 2 0 2 −1 −1/2 0 1 1/2 30x2 (2) 0 −1/2 1 1/4 0 −1/8 0 0 1/8 15/4v1 (3) 0 2 0 −1/2 0 1/4 1 0 −1/4 45/2

2 z (0) −1 0 0 −5/2 1 3/4 1 0 1/4 −15/2z1 (1) 0 0 0 5/2 −1 −3/4 −1 1 3/4 15/2x2 (2) 0 0 1 1/8 0 −1/16 1/4 0 1/16 75/8x1 (3) 0 1 0 −1/4 0 1/8 1/2 0 −1/8 45/4

3 z (0) −1 0 0 0 0 0 0 1 1 0u1 (1) 0 0 0 1 −2/5 −3/10 −2/5 2/5 3/10 3x2 (2) 0 0 1 0 1/20 −1/40 3/10 −1/20 1/40 9x1 (3) 0 1 0 0 −1/10 1/20 2/5 1/10 −1/20 12

Page 83: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

Referencias

[1] H. Calvete and P. Mateo, Programacion lineal, entera y meta. ColeccionTextos Docentes. Prensa Universitaria de Zaragoza, 1994.

[2] F. Hillier and G. Lieberman, Introduccion a la investigacion de opera-ciones. Editorial McGraw-Hill, 2001.

[3] J. J. Salazar, Programacion Matematica. Ed. Diaz de Santos, 2011.

[4] C. Maroto, J. Alcaraz, and R. Ruiz, Investigacion Operativa. Modelos yTecnicas de optimizacion. Editorial Universidad Politecnica de Valencia,2002.

[5] W. L. Winston, Operations Research: Applications and Algorithms. In-ternational Thomson Publishing, 1994.

[6] J. Dennis and R. Schnable, Numerical methods for unconstrained opti-mization and nonlinear equations. Prentice-Hall, Inc., New Jersey, 1983.

[7] J. Nocedal and S. Wright, Numerical optimization. Springer, USA, 1999.

[8] J. Birge and F. Louveaux, Introduction to Stochastic Programming.Springer, 1997.

[9] L. Escudero, A. Garin, M. Merino, and G. Perez, “A general algorithm forsolving two-stage stochastic mixed 0-1 first-stage problems.,” Computersand Operations Research, vol. 36, pp. 2590–2600, 2009.

[10] A. Ramos, A. Alonso-Ayuso, and G. P. (eds.), Optimizacion bajo incer-tidumbre. Publicaciones de la Universidad Pontificia Comillas, 2009.

[11] COIN-OR, “COmputational INfrastructure for Operations Research.”Website. http://www.coin-or.org/.

81

Page 84: T´ecnicas Cl´asicas de Optimizacio´n. Parte I: Programacio ... · PDF file8 CAP´ITULO 1. PROGRAMACION LINEAL´ • Rama interdisciplinaria de la Matematica Aplicada que emplea

82 REFERENCIAS

[12] G. Perez and M. Garın, “On downloading and using COIN-OR for solvinglinear/integer optimization problems,” tech. rep., Working paper seriesBiltoki, UPV/EHU. DT.2010.05, Basque Country University, Spain, 2010.

[13] IBM, “ILOG CPLEX optimizer.” Website. http://www-01.ibm.com/software/integration/optimization/cplex-optimizer/.

[14] G. Perez and M. Garın, “On Downloading and Using CPLEX withinCOIN-OR for Solving Linear/Integer Optimization Problems,” tech. rep.,Working paper series Biltoki, UPV/EHU. DT.2011.08, Basque CountryUniversity, Spain, 2011.

[15] FICO, “XPRESS optimization suite - student edition.” Website. http://optimization.fico.com/student-version-of-fico-xpress.html.

[16] “GUSEK (GLPK under scite extended kit).” Website. http://gusek.sourceforge.net/gusek.html.

[17] Wikipedia, “OR.” http://en.wikipedia.org/wiki/Operations_research/.

[18] INFORMS, “Science of better.” http://www.scienceofbetter.org/.

[19] R. L. Ackoff, El arte de resolver problemas: las fabulas de Ackoff. Noriega,Limusa Wiley, 2007.

[20] C. Churchman, R. Ackoff, and E. Arnoff, Introduction to Operations Re-search. Wiley, New York, 1957.

[21] IFORS. http://www.ifors.org/.

[22] J. Nash, “The (dantzig) simplex method for linear programming,” Com-puting in Science & Engineering, pp. 29–31.