Un Algoritmo Simplex No-Estándar para Programación...

65
UNIVERSIDAD CENTROCCIDENTAL “LISANDRO ALVARADO” Decanato de Ciencias y Tecnología Departamento de Matemáticas. Un Algoritmo Simplex No-Estándar para Programación Lineal. Trabajo Especial de Grado presentado por: Br. Marisela V. Bravo Osuna Como requisito final para obtener el título de Licenciado en Ciencias Matemáticas Área de Conocimiento: Matemática aplicada. Tutor: Dr. Javier Hernández Benítez. Barquisimeto, Venezuela. Junio 2010

Transcript of Un Algoritmo Simplex No-Estándar para Programación...

UNIVERSIDAD CENTROCCIDENTAL“LISANDRO ALVARADO”

Decanato de Ciencias y TecnologíaDepartamento de Matemáticas.

Un Algoritmo Simplex No-Estándar paraProgramación Lineal.

Trabajo Especial de Grado presentado por:

Br. Marisela V. Bravo Osuna

Como requisito final para obtener el título deLicenciado en Ciencias Matemáticas

Área de Conocimiento: Matemática aplicada.Tutor: Dr. Javier Hernández Benítez.

Barquisimeto, Venezuela.Junio 2010

Un Algoritmo Simplex No-Estándarpara Programación Lineal

ResumenEl algoritmo Simplex viaja, por el politopo implícito, de vértice en vér-tice hasta llegar a un vértice óptimo. Con la misma estructura Simplex,el algoritmo propuesto genera una serie de puntos factibles (que no sonnecesariamente vértices). En particular, es un método de punto interiorsi un punto interior inicial es usado. El proceso finaliza en un un vérticeóptimo aproximado, o puede finalizar en un vértice óptimo si se realizaun proceso de purificación.Palabras claves: Algoritmo Simplex, No-estándar, punto factible, reglade la columna, purificación.

A mis padres.

AgradecimientosGracias Señor porque me has dado todo en tu amor incondicional, gracias por

guiarme, cuidarme y permitirme evolucionar cada día de mi vida.

Agradezco en especial a mis padres quienes me han apoyado siempre y sonfuente infinita de sabiduría, amor y experiencia. Ustedes me han dado un norte, contodo su esfuerzo y sacrificio son el mayor ejemplo de que todo se puede lograr concariño, constancia y mucha paciencia, los admiro y los amo profundamente, y quie-ro que sepan que mi logro también les pertenece, Dios les bendiga ustedes son lomáximo!

A mis hermanos, ingenieros: Julio C., Héctor J. y Dulci, quienes me han acom-pañado por este sendero desde el comienzo, han vivido conmigo momentos muyimportantes de mi vida, estoy segura que sin ustedes nada sería igual, ustedes sonmuy valiosos para mi, gracias por haber estado cuando mas los necesite, y graciaspor haberme comprendido en los momentos difíciles, los quiero mucho.

A mi tutor Dr. Javier Hernández, a quien admiro profundamente como profesio-nal y como persona, gracias por ser mi guía cuando todo estaba oscuro, y graciaspor su apoyo y consejo y porque mas que un tutor fue mi profesor y compañero eneste andar.

A mis amigas Raisa, Iris, Emca, Sra. Luisa, Shyrley, Alejandra, Carla, Johela,Katherina, Mariangela, Xiomara, y amigos Wiber, Homer, Reivy, Prof. Eibar, JoséG., Luis, Marcos y Germán... gracias por ser participes sinceros en esta importanteetapa de mi vida, gracias porque siempre creyeron en mi, me dieron ánimo y apoyoincondicional, los aprecio con todo mi corazón, serán siempre una pieza fundamen-tal en mi vida.A los profesores que me formaron en este tiempo y tanto les debo.Finalmente agradezco a todas aquellas personas que de una u otra forma han con-tribuido y me han ayudado en la realización de esta mi mayor meta.A todos aquellos que estuvieron para mi de una forma u otra, mis mas sinceraspalabras de agradecimiento.

Índice general

Introducción 3

1. El problema de Programación Lineal 5

1.1. El problema de programación lineal . . . . . . . . . . . . . . . . . 6

1.2. Condiciones de Optimalidad . . . . . . . . . . . . . . . . . . . . . 7

1.3. Condiciones KKT con Cotas . . . . . . . . . . . . . . . . . . . . . 9

1.4. El problema Dual . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.5. Geometría del conjunto factible . . . . . . . . . . . . . . . . . . . . 14

1.5.1. Puntos básicos factibles . . . . . . . . . . . . . . . . . . . 14

1.6. Vértices de un politopo factible . . . . . . . . . . . . . . . . . . . . 15

2. Estratégias de parada de un problema de programación lineal 17

2.1. El método Simplex . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.1.1. Terminación finita del método . . . . . . . . . . . . . . . . 20

2.1.2. Un paso del método . . . . . . . . . . . . . . . . . . . . . 21

2.2. Método de las dos fases . . . . . . . . . . . . . . . . . . . . . . . . 22

2.2.1. Solución y convergencia . . . . . . . . . . . . . . . . . . . 22

2.2.2. La solución básica factible e inicial . . . . . . . . . . . . . 23

2.2.3. Variables Artificiales . . . . . . . . . . . . . . . . . . . . . 26

2.3. El método Simplex para Variables Acotadas . . . . . . . . . . . . . 28

2.3.1. Algoritmo de las Variables Acotadas . . . . . . . . . . . . . 28

2.4. Métodos de Puntos Interiores . . . . . . . . . . . . . . . . . . . . . 31

1

ÍNDICE GENERAL 2

2.4.1. Método de Trayectoria Central . . . . . . . . . . . . . . . . 32

2.4.2. Conjunto factible estricto. . . . . . . . . . . . . . . . . . . 33

2.4.3. Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3. UN ALGORITMO SIMPLEX NO-ESTÁNDAR PARA PROGRAMA-CIÓN LINEAL 36

3.1. Aspectos principales del algoritmo. . . . . . . . . . . . . . . . . . . 36

3.2. Operaciones para hacer el pivoteo . . . . . . . . . . . . . . . . . . 37

3.3. Regla de la columna de Dantzig . . . . . . . . . . . . . . . . . . . 39

3.4. Nueva regla de la columna . . . . . . . . . . . . . . . . . . . . . . 40

3.4.1. Regla 1: Regla de la columna . . . . . . . . . . . . . . . . 40

3.5. Dirección de Búsqueda. . . . . . . . . . . . . . . . . . . . . . . . . 41

3.6. Pivoteo de fila y determinación del tamaño de paso. . . . . . . . . . 43

3.6.1. Regla de la fila . . . . . . . . . . . . . . . . . . . . . . . . 44

3.7. El Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.7.1. Algoritmo1 (Algoritmo Simplex no-estándar) . . . . . . . . 45

3.8. Fase-1 Procedimiento . . . . . . . . . . . . . . . . . . . . . . . . . 55

3.9. Purificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Conclusión 58

Bibliografía 60

Introducción

En el presente trabajo el problema de programación lineal que se consideraráes:

mın cT x,sujeto a: Ax = b,

` ≤ x ≤ u.(0.0.1)

donde A es una matriz de orden m × n (A ∈ Rmxn) y rang(A) = m. Se asumiráque los valores de las componentes ` y u son finitos. Para solucionar problemascon límites infinitos se puede usar un número negativo muy pequeño, o un númeropositivo muy grande.

El algoritmo Simplex para resolver problemas PL ha sido bastante exitoso en lapráctica, desde 1947 cuando George B. Dantzig lo creó (ver [5]).

Reconocido como uno de los diez algoritmos en el siglo XX (IEEE2002), es unade las herramientas más famosas y ampliamente usada en las matemáticas a nivelmundial.

La contribución de William Orchard-Hays a este campo ha jugado un papel muyimportante en el desarrollo exitoso del Algoritmo Simplex. En 1954 él implementóel algoritmo Simplex revisado y escribió el primer software comercial para resolveralgoritmos de problemas PL (ver [12]). Sus ideas han sido empleadas y desarro-lladas, entre otros, por Murtagh, M. A. Sanders (ver [11]) y Bixby (ver [3]). Esosesfuerzos han transformado la teoría de programación lineal, de una simple teoría auna poderosa herramienta, que estimuló al desarrollo del campo en sí.Por otra parte, Klee y Minty, hicieron explícito en 1972 que el algoritmo Simplexpodía requerir una cantidad exponencial de trabajo para resolver problemas PL (ver[10]). Por otra parte, en los comienzos de la programación lineal los investigadores

3

ÍNDICE GENERAL 4

Hoffman y Beal revelaron que el ciclaje podía ocurrir con el algoritmo Simplex enpresencia de degeneración (ver [2],[8]). Si bien las técnicas de anti-ciclaje fueronpropuestas de tiempo en tiempo, su ejecución práctica resultó insatisfactoria (ver[6],[13],[4]). En la práctica, sin embargo, el ciclaje raramente ocurrirá a pesar de laaparición frecuente de la degeneración. Más aún, muchos estudiosos creen que ladegeneración disminuye considerablemente la eficiencia, ya que el algoritmo podríaestancarse en un vértice degenerado por mucho tiempo antes de finalizar.

Al parecer el impacto de la degeneración es severo, no obstante, sí es posibleeliminarlo, con el algoritmo Simplex cuando este se va moviendo de vértice a vér-tice sobre el poliedro subyacente. En el pasado algunos se hicieron algunos ensayospara desarrollar algoritmos alternativos que se alejaran de esta filosofía. El más im-portante fue el descubrimiento del algoritmo del Punto Interior, el cual se aproximaa una solución óptima, recorriendo de un lado a otro el interior del poliedro.Talestipos de algoritmos se consideraron exitosos tanto teórica como computacionalmen-te.

El Algoritmo Afín-Escala, propuesto por Dikin en 1967, es el primer algoritmode punto interior para programación lineal (ver [7]). Muchos años después, Karmar-kar con su famoso algoritmo Polinomial-time en 1984 inspirando un resurgimientode el algoritmo de punto interior (ver [9]). Todo este impulso deja como resulta-do algunos algoritmos de puntos interiores muy eficientes, para resolver de maneraamplia problemas del tipo P.L. sin embargo estos algoritmos no son muy adecuadospara casos donde una solución básica factible es requerida, como en una ampliagama de aplicaciones; en la solución de problemas de programación lineal cuyasolución viene expresada en números enteros o problemas de programación linealentera mixta, por ejemplo, los algoritmos Simplex que aún no son reemplazables enla actualidad (ver [3]).

Capítulo 1

El problema de Programación Lineal

Resolver un problema de Programación Matemática, consiste generalmente enminimizar (ó maximizar) una función, llamada función objetivo, las variables quedefinen la función objetivo están restringidas a cumplir algunas (o ninguna) restric-ción es espresada mediante ecuaciones y/o inecuaciones definidas con esas mismasvariables. La forma mas sencilla que presenta esta función es aquella donde todassus componentes son a lo más primer grado. Problemas de este tipo, con las carac-terísticas antes mencionadas, reciben el nombre de Programación Lineal (PL). Aun-que estos problemas fueron ya estudiados en los siglos XVII y XVIII por Newton,Leibnitz, Lagrange, etc... ha sido a partir de los años 50 del siglo pasado, cuandogracias al avance de la electrónica, se ha podido llevar a cabo su efectiva resolución.

La razón más importante del interés suscitado por los PL ha sido el desarrollode la economía aplicada y de las técnicas modernas de gestión. Ahora bien, noes suficiente saber resolver este tipo de problemas sino que es preciso conocer eltiempo de computo necesario para obtener la solución y el coste de esta obtención,ya que en muchos casos nos encontraremos con problemas con un gran número devariables y restricciones.

La programación lineal es una de las áreas más importantes, dentro de la Inves-tigación Operativa. El desarrollo teórico ha venido sugerido y acelerado por un grannúmero de aplicaciones prácticas en diversos campos laborales.

Se sabe que la investigación de operaciones modela problemas complejos, ha-ciendo uso de las matemáticas y la lógica; cuyas soluciones se determinan mediante

5

1.1. El problema de programación lineal 6

algoritmos que proporcionan reglas fijas de cómputo que se aplican en forma repe-titiva a los problemas en muchos casos, pues cada repetición produce una soluciónmás cercana a la óptima; donde los cálculos suelen ser tediosos y voluminosos, porlo que se ejecutan estos algoritmos en computadora.

1.1. El problema de programación lineal

Un problema de programación lineal estándar es usualmente analizado de lasiguiente forma:

mın cT x,sujeto a Ax = b,

x ≥ 0.(1.1.1)

donde c y x son vectores en Rn, b es un vector en Rm, y A es una matriz m × n. Unrecurso sencillo puede ser usado para transformar cualquier programa lineal a estaforma. Por ejemplo, dado el problema

mın cT x,sujeto a Ax ≥ b,

(1.1.2)

Podemos convertir las restricciones de desigualdad en igualdades introduciendoun vector de variables de excedente z y escribiendo

mın cT x,sujeto a Ax − z = b,

z ≥ 0.(1.1.3)

Esta forma no es aún completamente estándar, dado que no todas las varia-bles son restricciones no-negativas. Para cambiar la condición anterior, es conve-niente dividir a x en sus partes no-negativa y no-positiva, x = x+ − x−, dondex+ = max(x, 0) ≥ 0 y x− = max(−x, 0) ≥ 0. El problema (1.1.1) puede ahoraser escrito como:

1.2. Condiciones de Optimalidad 7

min

c−c0

T

x+

x−

z

, su jeto a[A −A −I

] x+

x−

z

= b,

x+

x−

z

≥ 0,

el cual claramente tiene la misma forma de (1.1.1). Las restricciones de de-sigualdad de la forma x ≤ u o Ax ≤ b pueden ser modificadas sumando variables deholguras para compensar la diferencia entre el lado derecho y lado izquierdo. Por lotanto

x ≤ u⇐⇒ x + w = u, w ≥ 0,

Ax ≤ b⇐⇒ Ax + y = b, y ≥ 0.

También se puede convertir la función objetivo de "maximizar"max cT x en mi-nimizar el problema (1.1.1), para lo cual se niega la función objetivo para obtenermin − cT x.

1.2. Condiciones de Optimalidad

En esta sección se enuncian las condiciones de Karush-Kun-Tucker de primerorden, las cuales por si solas constituyen una condicion necesaria para la solucióndel problema de programación lineal. La convexidad del problema asegura que éstascondiciones son suficientes para un mínimo global como se mostrará posteriormentemediante un argumento simple.

Las condiciones KKT presentes en el siguiente teorema requieren de indepen-dencia lineal. Por otra parte, se hace una división de los multiplicadores de lagrangedel problema (1.1.1) en dos vectores π y s donde π ∈ Rm es el vector multiplicadorpara la restricciones de igualdad Ax = b, mientras que sεRn es el vector multiplica-dor para la restricción acotada x ≥ 0.

Teorema 1.2.1 (ver[1]) Consideremos el problema (1.1.1), si x∗ es solución óptima

1.2. Condiciones de Optimalidad 8

para dicho problema entonces existen π ∈ Rm y s ∈ Rn de donde

ATπ + s = c, (1.2.1)

Ax = b, (1.2.2)

x ≥ 0, (1.2.3)

s ≥ 0, (1.2.4)

xisi = 0, i = 1, 2, ..., n. (1.2.5)

las expresiones (1.2.1)-(1.2.5) son conocidas como las condiciones Karush-Kuhn-Tucker

Al aplicar el teorema anterior se observa que la condición necesaria de primer-orden para que x∗ sea una solución de (1.1.1) es que existan vectores π y s tales quecumplan con (1.2.1),(1.2.2),(1.2.3),(1.2.4), (1.2.5).

La condición complementaria (1.2.4), indica esencialmente, que al menos unade las componentes xi y si debe ser cero para cada i = 1, ..., n; es usualmente es-crita en la forma alternativa xT s = 0. A causa de las condiciones de no-negatividad(1.2.3),(1.2.4), las dos formas son equivalentes.

Sea (x∗, π∗, s∗), el cual denota un triple vector que satisface todas las condicionesde KKT. Al combinar las tres ecuaciones (1.2.1), (1.2.4) y (1.2.5), se encuentra que

cT x∗ = (ATπ∗ + s∗)T x∗ = (Ax∗)Tπ∗ = bTπ∗ (1.2.6)

Como se verá en un momento, bTπ es la función objetivo para el problema dualpara (1.1.1), así (1.2.6) indica que los objetivos primal y dual son iguales para eltriple vector (x, π, s) que satisface las condiciones de KKT.

Es fácil probar directamente que las condiciones de KKT son suficientes paraque x∗ sea una solución global del problema (1.1.1). Sea x otro punto factible, talque Ax = b y x ≥ 0. Entonces

cT x = (ATπ∗ + s∗)T x = bTπ∗ + xT s∗ ≥ bTπ∗ = cT x∗ (1.2.7)

1.3. Condiciones KKT con Cotas 9

Lo anterior ocurre por (1.2.6)

Se han usado las condiciones de KKT y (1.2.6); la relación de desilguadad siguetrivialmente de x ≥ 0 y s∗ ≥ 0. La inecuación (1.2.7) indica que ningún otro puntofactible puede tener un valor objetivo inferior que cT x∗. Más aún, El punto factiblex es óptimo si y sólo si

xT s∗ = 0,

De otro modo, la desigualdad en (1.2.7) es estricta. En otras palabras, cuandos∗i > 0, entonces podemos tener que xi = 0 para todas las soluciones x de (1.1.1).

1.3. Condiciones KKT con Cotas

Min cT xS .a. Ax = b (y)

x ≤ u (z)

x ≤ l (w)

L(x, λ, µ1, µ2) = cT x + λT (Ax − b) + µT1 (x − u) + µT

2 (l − x)L(x, λ, µ1, µ2) = c + ATλ + u1 + u2 = 0

λT (Ax − b) = 0µT

1 (x − u) = 0µT

2 (l − u) = 0

µ1 ≥ 0µ2 ≥ 0

Entonces la holgura complementaria no es xT s = 0 si(u − x)T u1 = 0 con u − x ≥ 0(x − l)T u2 = 0 con x − l ≥ 0

1.4. El problema Dual 10

u1, u2 ≥ 0

Por otra parte,

Max bT y − uT z + lT wS .a. AT y − z + w = c

z ≥ 0, w ≥ 0

LD = bT y − uT z + lT w + xT (c − AT y + z − w) + v1z + v2w

v1, v2, z,w ≥ 0.

De lo anterior se obtienen

∂LD

∂y = bT − xAT = 0

∂LD

∂z = −u + x + v1 = 0 asi v1 = u − x ≥ 0

∂LD

∂w = l − x + v2 = 0 asi v2 = x − l ≥ 0

1.4. El problema Dual

Dados c, b y A, el cual define el problema (1.1.1), se puede definir otro problema,cercanamente relacionado, como sigue:

max bTπ,

sujeto a ATπ ≤ c.(1.4.1)

Este problema es llamado el problema dual de (1.1.1). En contraste, (1.1.1) esllamado frecuentemente problema primal. Los problemas primal y dual son los doslados de una misma moneda, como se verá cuando se escriban las condiciones de

1.4. El problema Dual 11

KKT para (1.4.1). Al reescribir el problema (1.4.1) queda

min − bTπ su jeto a c − ATπ ≥ 0,

Luego, al usar x ∈ Rn para denotar los multiplicadores de Lagrange para lasrestricciones ATπ ≤ c, se escribe la función lagrangiana como

L(π, x) = −bTπ − xT (c − ATπ).

Nótese de nuevo que las conclusiones del teorema (1.2.1) continúan mantenién-dose si la suposición de independencia lineal es reemplazada por la linealidad detodas las restricciones, luego se observa que la condición necesaria de primer ordenpara que π sea óptima por (1.4.1) es que existe un vector x tal que

Ax = b, (1.4.2)

ATπ ≤ c, (1.4.3)

x ≥ 0, (1.4.4)

xi(c − ATπ)i = 0, i = 1, 2, ..., n (1.4.5)

Si definimos s = c − ATπ y sustituimos en las condiciones anteriores, encontra-mos que las condiciones de KKT son idénticas. Los multiplicadores de Lagrangeóptimos π en el problema primal son las variables óptimas en el problema dual,mientras que los multiplicadores de Lagrange óptimos x en el problema dual sonlas variables óptimas en el problema primal.

La relación primal-dual es simétrica, pues al tomar el dual del dual, se recobrael primal. Para ver esto, se reafirma (1.4.1) en la forma estándar introduciendo elvector de holgura s (de manera que ATπ + s = c) y dividiendo las variables no aco-tadas π como π = π+ − π−, donde π+ ≥ 0, y π− ≥ 0. Podemos ahora reescribir elproblema dual como

1.4. El problema Dual 12

min

b−b0

T π+

π−

s

, su jeto a[A −A −I

] π+

π−

s

= c,

π+

π−

s

≥ 0, (1.4.6)

el cual claramente tiene la forma estándar de 1.1.1. El problema dual de (1.1.16)es ahora

max cT z su jeto a

A−AI

z ≤

−bb0

Ahora Az ≤ −b y −Az ≤ b simultáneamente implican que Az = −b, así seobtiene el problema equivalente

min − cT z su jeto a Az = −b, z ≥ 0.

Al hacer la identificación z = −x, recobramos 1.1.1, como se dijo.

Dado un vector factible x para el problema primal (esto es cuando Ax = b yx ≥ 0) y un punto factible (π, s) para el dual, es decir, ATπ + s = c, s ≥ 0, ocurre en(1.2.7) que

0 ≤ xT s = xT (c − ATπ) = cT x − bTπ. (1.4.7)

Por lo tanto, tenemos cT x ≥ bTπ cuando ambas variables la primal y la dual sonfactibles, la función objetivo dual es la mínima cota sobre la función objetivo primal.

Teorema 1.4.1 (Teorema de dualidad para programación lineal) (ver[16])

1.4. El problema Dual 13

(i) Si algunos de los problemas (1.1.1) o (1.4.1), tiene una solución con valor obje-tivo finito óptimo, entonces se hace el otro y los valores objetivos son iguales.

(ii) Si algunos de los problemas (1.1.1) o (1.4.1) tiene un objetivo no acotado,entonces el otro problema no tiene puntos factibles.

Como se nota en la discusión que sigue del teorema (1.2.1), los valores de losmultiplicadores π y s para (1.1.1) indican cuan sensitivo es el valor objetivo óp-timo en la perturbacion de las restricciones. De hecho, el proceso para encontrar(π, s) para un x óptimo dado es frecuentemente llamado análisis de sensitividad.Para ilustrar esta dependencia se puede hacer un argumento directo simple. Si unpequeño cambio es hecho 4b es hecho al vector b (el lado derecho del problema(1.1.1) y el gradiente objetivo en el problema (1.4.1)), entonces se deberian esperarpequeñas perturbaciones en la solución primal y dual. Si estas pertubaciones

(4x,4π,4s)

son suficientemente pequeñas, se sabe que el problema dado es no degenerado. Losvectores 4x y 4s toman el valor cero en la misma vecindad, respectivamente. Dadoque x y s son complementarios (ver (1.2.5)) se sigue que

xT s = xT4s = (4x)T4s = 0

Ahora, del teorema de dualidad para programación lineal tenemos

cT (x + 4x) = (b + 4b)T (π + 4π).

ComocT x = bTπ, A(x + 4x) = b + 4b, AT4π = −4s

ocurrecT4x = (b + 4b)T4π + 4bTπ

= (x + 4x)T AT4π + 4bTπ

= −(x + 4x)T4s + 4bTπ

= 4bTπ

En particular, si 4b = εe j, donde e j es el vector unitario j-ésimo en Rm, así para

1.5. Geometría del conjunto factible 14

todo ε suficientemente pequeño se tiene que

cT4x = επ j (1.4.8)

Esto es debido a que el cambio en el objetivo primal es lineal, para el valor de π j

para perturbaciones pequeñas en los componentes del lado derecho de b j.

1.5. Geometría del conjunto factible

.

1.5.1. Puntos básicos factibles

se supondrá que

La matriz A en (1.1.1) tiene rango igual que el numero de f ilas. (1.5.1)

En la práctica, se aplica una fase de procesamiento sobre los datos originalespara remover algunas redundancias de las restricciones dadas y así eliminar algunasde las variables. La reformulación al sumar variables de holguras, y de superavitse añaden para transformar el modelo PL desde un formato dado hacia el formatoestándar, sobre el cual se puede aplicar el método Simplex. Las variables artificialesse añaden para para construir una base inicial "fácil"de determinar para un sistemaAx ≤ b, añadir la variable s ≥ 0 tal que Ax + s = b hace que se mantenga el rangode A, lo que sucede es que la matriz de trabajo pasa a ser [AI], satisfaciendo de estamanera la propiedad (1.5.1).

Supóngase que x es un punto factible con a lo más m componentes distintas decero. Supóngase, también, que podemos identificar un subconjunto B(x) del con-junto de índices {1, 2, ..., n} tal que

B(x) contiene exactamente m índices;

i < B(x)⇒ xi = 0

1.6. Vértices de un politopo factible 15

La matriz B de orden m × m definida por

B = [Ai]i∈B(x) (1.5.2)

es no singular, donde Ai es la i-ésima columna de A.

Si todas estas condiciones son verdaderas, llamamos x un punto básico factiblede (1.1.1).

El método Símplex genera una sucesión de iteraciones xk las cuales son puntosbásicos factibles. Como lo que se quiere es que la sucesión anterior converja a lasolución de (1.1.1), la estratégia Símplex será aplicada sólo si

(a) el problema tiene puntos factibles básicos; y

(b) al menos uno de tales puntos es un punto óptimo básico, es decir, una soluciónde (1.1.1) que es también un punto factible básico.

Tanto (a) como (b) son verdaderos bajo suposiciones mínimas.

Teorema 1.5.1 (Teorema Fundamental de Programación lineal) (ver [16])

(i) Si hay un punto factible para (1.1.1), entonces es un punto básico factible.

(ii) Si (1.1.1) tiene solución, entonces al menos una solución es un punto básicofactible óptimo.

(iii) Si (1.1.1) es factible y acotado, entonces tiene una solución óptima.

1.6. Vértices de un politopo factible

El conjunto factible definido por las restricciones lineales es llamado un polito-po, los vértices de este politopo son los puntos que no están situados en una línea

1.6. Vértices de un politopo factible 16

recta situada entre dos puntos en el conjunto. Geométricamente, ellos son fácilmen-te reconocibles;

Algebraicamente, los vértices son exactamente los puntos básicos factibles quese describieron antes. Por lo tanto tenemos una importante relación desde el puntode vista algebraico y geométrico y una ayuda útil para entender como trabaja elmétodo Simplex.

Teorema 1.6.1 (ver [16]) Todos los puntos factibles básicos de (1.1.1) son vérticesdel politopo factible {x/Ax = b, x ≥ 0} y viceversa.

Definición 1.6.2 (Problema Lineal Degenerado) Un problema lineal (1.1.1) se di-ce que es degenerado si existe por lo menos un punto básico factible que tiene menosde m componentes distintas de cero.

Capítulo 2

Estratégias de parada de unproblema de programación lineal

2.1. El método Simplex

El algoritmo comienza con una solución factible y prueba si esta solución es ono óptima. Si no lo es, viaja por un polígono de vértice en vértice hasta llegar aun vértice óptimo. En resumen este método constituye un procedimiento algebraicoque permite ir mejorando la solución actual a cada paso. Siendo que el procesoconcluye cuando no es posible seguir mejorando mas dicha solución. Es en estemomento cuando se está ante la presencia de una solución óptima.

Como se sabe, se sabe que exactamente todas las iteraciones del método símplexson puntos básicos factibles de (1.1.1) y por lo tanto conforman el conjunto devértices del politopo factible. La mayoría de los pasos que se realizan consistenen moverse de un vértice actual a un vértice adyacente para lo cual el conjunto deíndices básicos B difiere en exactamente una componente. En pasos posteriores, seobservará que el valor de la función objetivo primal cT x es decrece.

El mayor problema en cada iteración símplex es decidir cuál índice cambiar enel conjunto básico B. Al menos que el paso sea una dirección no acotada, un índicepuede ser removido de B y reemplazado por otro que este fuera de B. Se puedeconseguir alguna comprensión de como es hecha esta decisión, cuando se observande nuevo las condiciones KKT para ver como ellos se relacionan con el algoritmo.

17

2.1. El método Simplex 18

De B y las condiciones de KKT, se pueden derivar valores no solo para la variableprimal x sino también para la variable dual π y s como mostraremos ahora. Para ellose define el conjunto de índices no-básicosN como el complemento de B, es decir:

N = {1, 2, ..., n} � B (2.1.1)

Dado que B es la submatriz columna de A que corresponde al índice i ∈ B, usa-mos N para denotar la submatriz N = [Ai]i∈N . Además se dividen los n-elementosde los vectores x, s y c de acuerdo con el conjunto de índices B y N , usando lanotación

xB = [xi]i∈B, xN = [xi]i∈N , sB = [si]i∈B, sN = [si]i∈N .

De la condición KKT (1.2.2)

Ax = BxB + NxN = b.

donde

A = [B|N] y x =

xB

xN

=

B−1b0

La variable primal x de esta iteración está definida de la siguiente manera

xB = B−1b, xN = 0 (2.1.2)

Desde que se comenzó a considerar solamente a los puntos básicos factibles, sesabe que B es una matriz no-singular y que xB ≥ 0, así esta selección de la variablex satisface dos de las condiciones de KKT a saber:La igualdad de las restricciones (1.2.2) y la condición de no negatividad (1.2.3). Seseleccionó s para satisfacer la condición complementaria (1.2.5) haciendo sB = 0.Las componentes π y sN pueden ser encontradas al establecer una partición de estacondición en componentes B y N, usando sB = 0 para obtener:

BTπ = cB, NTπ + sN = cN (2.1.3)

Y como, B es una matriz cuadrada y no-singular, la primera ecuación define solo a

2.1. El método Simplex 19

π comoπ = B−T cB (2.1.4)

La segunda ecuación en ((2.1.3)) implica un valor para sN:

sN = cN − NTπ = cN − (B−1N)T cB (2.1.5)

El cálculo del vector sN es frecuentemente llamado vector de precios, cuyascomponentes son llamadas costos reducidos de las variables no básicas xN .

La condición KKT que no se tiene explícitamente es la condición de no-negatividads ≥ 0. Las componentes básicas sB ciertamente satisfacen esta condición, debido ala elección sB = 0. Si el vector sN definido por (2.1.5) también satisface sN ≥ 0, sehabrá encontrado un vector triple óptimo (x, π, s), así el algoritmo puede terminarpuede ser declarado un éxito. Usualmente, sin embargo, es que una o más de lascomponentes de sN sean negativas, por lo que la condición s ≥ 0 no se cumple.El nuevo índice de entrada al conjunto índice básico B es escogido para ser unode los índices q ∈ N para el cual sq < 0. Como se mostrará después, la funciónobjetivo cT x decrece cuando xq se convierte positiva si y sólo si q cumple sq < 0. Elprocedimiento para alterar B para cambiar a x y a s acordemente es

Permitir xq se incremente desde el nivel cero durante el siguiente paso.

Fijar todas las otras componentes de xN en el nivel cero.

Investigar el efeto del incremento de xq en el vector básico actual xB, dado quese quiere mantener factible con respecto a las restricción de igualdad Ax = b

Mantener el incremento de xq hasta que uno de los componentes de xB (co-rrespondiente a xp) sea llevada al nivel cero, o se determine que no existe talcomponente (caso no-acotado).

Remover el índice p (conocido como el índice saliente) de B y reemplazarlocon el índice entrante q

Es fácil formalizar este procedimiento en términos algebraicos. Lo que se quierea largo plazo es que ambas iteraciones: la nueva x+ y la actual x satisfagan Ax = b,y como xN = 0 y x+

i = 0, para i ∈ N/{q}, se obtiene:

2.1. El método Simplex 20

Ax+ = Bx+B + Aqx+

q = BxB = Ax.

Al multiplicar esta expresión por B−1 da como resultado:

x+B = xB − B−1Aqx+

q (2.1.6)

Más adelante se demostrará que la dirección −B−1Aq es una dirección de des-censo para cT x. Hablando geométricamente, ((2.1.6)) es un movimiento que sigueel camino por el borde del politopo factible que hace decrecer a la función cT x. Secontinuará este movimiento por el borde hasta que un nuevo vértice sea encontrado.Luego, en este vértice es conveniente detenernos, ya que por definición no se puedeseguir en movimiento sin dejar la región factible. En el nuevo vértice, una nuevadesigualdad xi ≥ 0 debe activarse, esto es, una de las componentes de xi, con i ∈ B,está en el nivel cero. Este índice i es el que se removerá de la base.

2.1.1. Terminación finita del método

Ahora se verifica que el paso definido en (2.1.6) conduce a un decrecimiento enla función objetivo cT x. Al usar la definición (2.1.6) de x+

B junto con

x+N = (0, ..., 0, x+

q , 0, ..., 0)T ,

se obtiene

cT x+ = cTB + cT

N x+N

= cTB x+

B + cqx+q

= cTB xB − cT

BB−1Aqx+q + cqx+

q (2.1.7)

Ahora, de ((2.1.4)) tenemos cTBB−1 = πT , mientras de ((2.1.3)) tenemos AT

q π =

cq − sq, dado que Aq es una columna de N. Por lo tanto,

2.1. El método Simplex 21

cTBB−1Aqx+

q = πT Aqx+q = (cq − sq)x+

q ,

así al sustituir en ((2.1.7))

cT x+ = cTB xB − (cq − sq)x+

q + cqx+q = cT

B xB − sqx+q

Pero como xN = 0, se tiene cT x = cTB xB y por lo tanto;

cT x+ = cT x − sqx+q (2.1.8)

Como se escogió q tal que sq < 0, y dado que x+q > 0, si se pudiera mover los

vértices por todos los bordes, se seguiría de ((2.1.8)) que el paso ((2.1.6)) produceun decrecimiento en la función objetivo primal cT x.

Si el problema es no-degenerado, entonces se puede garantizar que x+q > 0, así

se puede asegurar que ocurre un decrecimiento estricto en la función objetivo cT x encada paso del método Simplex. Por lo tanto, se puede probar, el siguiente resultadoconcerniente a la finalización del método .

Teorema 2.1.1 (ver [16]) Siempre que el programa lineal (1.1.1) sea no degenera-do y acotado, el método símplex terminará con un punto óptimo básico.

2.1.2. Un paso del método

Se ha cubierto la mayor parte de los mecanismos al tomar en cuenta un solo pasodel método Símplex. Para hacer mas fácil las discusiones posteriores se describiráel siguiente procedimiento de una manera semiformal

Procedimiento

(Un paso del método Símplex)Dado B, N , xB = B−1b ≥ 0, xN = 0;

2.2. Método de las dos fases 22

Resolver BTπ = cB para π,Calcular sN = cN − NTπ;

si sN ≥ 0Se detiene pues se ha encontrado punto óptimoSeleccionar q ∈ N con sq < 0 como índice de entrada;Resolver Bt = Aq para t;

si t ≤ 0Se detiene el proceso ya que el problema es no acotado

Calcular x+q = mini |ti>0 (xB)i/ti, y usar p para denotar el índice de la variable

básica para el cual este mínimo es alcanzadoActualizar x+

B = xB − tx+q , x+

N = (0, ...., 0, x+q , 0, ..., 0)T ;

Cambiar B agregando q y removiendo a p.

2.2. Método de las dos fases

2.2.1. Solución y convergencia

Para desarrollar el método Simplex con la hipótesis de que se dispone de unasolución básica factible inicial la cual es en muchos casos difícil de obtener, se re-quiere de algún trabajo previo antes de dar inicio a dicho método para obtener unasolución. En esta sección se describirá el método de dos fases, usando variablesartificiales, para obtener una solución básica factible inicial de un conjunto de res-tricciones ligeramente modificado. El método Simplex se utiliza en este caso paraeliminar variables artificiales y resolver el problema original. También se estudiarácon mayor detalle las dificultades asociadas con el caso degenerado. En particularse demostrará que el método Simplex converge en un número finito de pasos, aúncuando haya degeneración, siempre y cuando se adopte una regla básica para entrary/o salir de la base.(ver [1])

2.2. Método de las dos fases 23

2.2.2. La solución básica factible e inicial

Se sabe que el método Simplex comienza con una solución básica factible yse desplaza a una solución básica factible mejorada, hasta que se alcanza un puntoóptimo o bien, hasta que se verifica el no acotamiento de la función objetivo. Sinembargo para iniciar el método Simplex es necesario contar con una base B endonde b = B−1b ≥ 0. Se demostrará que el método Simplex siempre puede iniciarsecon una base muy simple, a saber, la identidad.

Caso fácil

Suponga que las restricciones son de la forma Ax ≤ b, x ≤ 0, donde A es unamatriz de orden m × n, y b es un m-vector no negativo. Si se añade el vector deholgura xS , las restricciones se escriben de en la siguiente forma estándar:Ax+ xS =

b, x ≥ 0, xS ≥ 0. Obsérvese que la nueva matriz de restricciones (A, I) de m×(m+n)tiene rango m, y que se dispone de una solución básica factible de este sistema,tomando xS como el valor básico factible inicial y x como el vector no básico. Elmétodo puede aplicarse con esta solución básica factible inicial xS = b y x = 0.

Algunos casos difíciles

En muchos ocasiones, encontrar una solución básica factible inicial no es tandirecto como en el caso descrito en el párrafo anterior. Por ejemplo, supongamosque restricciones son de la forma Ax ≤ b, x ≥ 0, pero suponga que el vector b noes no-negativo. En este caso, después de introducir el vector de holgura xS , no esposible tomar x = 0, pues xS = b viola el requerimiento de no negatividad.

Otra situación ocurre cuando las restricciones son de la forma Ax ≥ b, x ≥ 0, endonde b � 0. Después de restar el vector de holgura xS , se obtiene Ax − xS = b, Bes la matriz (A,−I) tal que b = B−1b ≥ 0.

En general, cualquier problema de programación lineal se puede transformar enun problema de la siguiente forma:

2.2. Método de las dos fases 24

mın cT x,sujeto a: Ax = b,

x ≥ 0.

En donde b ≥ 0 (Si bi < 0, entonces el i-ésimo renglón puede multiplicarsepor -1). Lo anterior puede obtener introduciendo variables de holgura y medianteuna simple manipulación de las restricciones y variables. Si A contiene una matrizidentidad, entonces de inmediato se obtiene una solución básica factible tomandosimplemente B = 1, y como b ≥ 0. En caso contrario es necesario hacer algo más.Un método de ensayo y error sería inútil, especialmente si el problema no es facti-ble.

Ejemplo 2.2.1 a.-Considere las siguientes restricciones:

x1 + 2x2 ≤ 4

−x1 + x2 ≤ 1

x1, x2 ≥ 0

Después de añadir las variables de holgura x3, x4 se obtiene:

x1 + 2x2 + x3 = 4

−x1 + x2 + x4 = 1

x1, x2, x3, x4 ≥ 0

Una solución básica factible inicial evidente está dada por:

xB =

x3

x4

=

41

xN =

x1

x2

=

00

2.2. Método de las dos fases 25

b.-Considere las siguientes restricciones:

x1 + 2x2 + x3 ≤ 6

−2x1 + 3x2 + 2x3 ≥ 3

x1, x2 ≥ 0

Observe que x1 no está restringida. Por tanto, se efectúa el cambio de variablex1 = x+

1 − x−1 . También se introducen las variables de holgura x4 y x5. Lo anteriorlleva a las restricciones siguientes:

x+1 − x−1 + x2 + x3 + x4 = 6

−2x+1 + 2x−1 + 3x2 + 2x3 − x5 = 3

x+1 , x

−1 , x2, x3, x4, x5 ≥ 0

Obsérvese que la matriz de restricción no contiene la identidad, de modo queno es posible extraer de manera evidente una base factible B

c.-Considere las restricciones siguientes:

x1 + x2 − 2x3 ≤ −3

−2x1 + x2 + 3x3 ≤ 7

x1, x2, x3 ≥ 0

Como el lado derecho de la restricción no es negativa, la primera desigualdad semultiplica por -1.Introduciendo las variables de holgura x4 y x5 se obtiene el siguiente sistema:

−x1 − x2 + 2x3 − x4 = 3

−2x1 + x2 + 3x3 + x5 = 7

x1, x2, x3, x4, x5 ≥ 0

2.2. Método de las dos fases 26

Nótese que esta matriz de restricciones resultante no contiene a la identidad.

2.2.3. Variables Artificiales

Después de manipular las restricciones e introducir variables de holgura, supon-ga que las restricciones se han escrito de la siguiente manera: Ax = b; x ≥ 0

Donde A es una matriz de orden m× n y b ≥ 0 es un m-vector. Suponga ademásque A no contiene ninguna submatriz identidad (Pues si A tuviese una submatrizidentidad, entonces se obtendría una solución básica factible inicial). En este caso serecurrirá a las variables artificiales para obtener una solución básica factible inicial,y después se aplicará el método para eliminar tales variables artificiales.

Por ejemplo, suponga que se cambian las restricciones añadiendo un vector ar-tificial xa, con lo cual se obtiene el sistema Ax + xa = b,x ≥ 0, Xa ≥ 0. Ahora,por construcción se tiene una matriz identidad correspondiente a un vector artifi-cial. Con lo anterior se obtiene de inmediato una solución básica factible, del nuevosistema; a saber, xa = b y x = 0. Aunque ahora se tiene una solución básica factibleinicial y es posible aplicar el método , observe que, de hecho se ha modificado elproblema. Para volver al problema original, es necesario hacer que estas dos varia-bles se vuelvan cero, ya que Ax = b si y solo si Ax + xa = b con xa = 0. Es decirque las variables artificiales son solo una herramienta para empezar el método , perodebe garantizarse que estas se volverán cero.

Así la diferencia entre las variables artificiales y las variables de holgura estáen que, una variable de holgura se introduce para plantear el problema en formade igualdad en cambio las variables artificiales no son variables legítimas, pero seintroducen de igual manera para facilitar en comienzo del método. No obstante talesvariables deben volverse cero a fin de lograr la factibilidad del problema original.

Ejemplo 2.2.2 Considere las siguientes restricciones:

x1 + 2x2 ≥ 4

−3x1 + 4x2 ≥ 5

2x1 + x2 ≤ 6

2.2. Método de las dos fases 27

x1, x2 ≥ 0

Introduciendo las variables de holgura x3, x4 y x5 se obtiene:

x1 + 2x2 − x3 = 4

−3x1 + 4x2 − x4 = 5

2x1 + x2 + x5 = 6

x1, x2, x3, x4, x5 ≥ 0

Véase que esta matriz de restricciones no contiene ninguna submatriz identidad.Es posible de esta manera introducir tres variables artificiales para obtener unasolución básica factible inicial. Dado que x5 solo aparece en el último renglón y sucoeficiente es 1. Por lo que solo es necesario introducir dos variables artificiales x6

y x7, lo cual conduce al siguiente sistema de ecuaciones:

x1 + 2x2 − x3 + x6 = 4

−3x1 + 4x2 − x4 x7 = 5

2x1 + x2 + x5 = 6

x1, x2, x3, x4, x5, x6, x7 ≥ 0

Ahora de inmediato se tiene una solución básica factible inicial del nuevo sis-tema; a saber,x5 = 6,x6 = 4 y x7 = 5. Así las variable restantes no son básicas ytienen valor cero. Puntualizando lo que se quiere a la larga es que las variablesartificiales se hagan cero.

Nota 2.2.3 Existen varios métodos con los cuales es posible eliminar las variablesartificiales. Uno de estos métodos consiste en minimizar la suma de las variablesartificiales, sujeto a las restricciones Ax + xa = b, x ≥ 0 y xa ≥ 0. Si el problema

original tiene una solución factible, entonces el valor óptimo de este problemaes cero, con todas las variables artificiales iguales a cero. Lo que es mas importanteaún, a medida que las variables artificiales se hacen cero, salen de la base y en su

2.3. El método Simplex para Variables Acotadas 28

lugar entran las variables legítimas.

2.3. El método Simplex para Variables Acotadas

2.3.1. Algoritmo de las Variables Acotadas

En los modelos de programación lineal, las variables pueden tener cotas superiore inferior explícitas. Por ejemplo en las instalaciones productivas las cotas superiore inferior pueden representar la demanda máxima y mínima de ciertos productos.

El algoritmo acotado es computacionalmente eficiente porque tiene en cuenta alas cotas en forma explícita, se estudiarán primero las cotas inferiores por ser estecaso más sencillo.

Si se denotan por l y u a los vectores cota inferior y cota superior respectiva-mente entonces se obtiene el problema lineal (1.1.1) pero con variables acotadas, esdecir

l ≤ x ≤ u.

Dada l 6 x se usa la sustitución x = l + x′ con x′ > 0 se resuelve el problema entérminos de x′ (cuya cota inferior es igual a cero en este momento).

La x original se determina por sustitución en reversa la cual es legítima porquegarantiza que x = x′ + l permanecerá siendo no-negativa para x > 0.

A continuación se estudiarán las restricciones de cota superior x ≤ u. La ideade la sustitución directa (es decir: x = u − x” con x” ≥ 0) no es correcta, porque lasustitución en reversa x = u − x” no asegura que x se mantenga no-negativa. En-tonces se necesita un método distinto, un modelo de programación lineal con cotasuperior, como el siguiente:

2.3. El método Simplex para Variables Acotadas 29

Min cT xS .a. Ax = b

0 6 x 6 u

El algoritmo acotado solo usa las restriccionesx Ax = b, x = 0 en forma explícita ytiene en cuenta a x ≤ u en forma implícita al modificar la condición de factibilidad.

Sea xB = B−1b una solución básica factible actual de Ax = b con x ≥ 0 ysupongamos que de acuerdo a la condición de optimalidad (usual), P j es el vectorentrante, entonces dado que todas las variables no-básicas son cero, la ecuación derestricción de la i-ésima variable queda:

(xB)i = (B−1b)i − (B−1P j)ix j

Cuando la variable entrante x j aumenta sobre el nivel cero, (xB)i aumentará o dis-minuirá dependiendo de si (B−1P j)i es negativa o positiva respectivamente.

Así, cuando se determina el valor de la variable entrante x j, se deben satisfacerlas siguientes condiciones (para la variable saliente):

1. La variable básica (xB)i permanece no-negativa es decir (xB)i ≥ 0.

2. La variable básica no rebasa su cota superior, esto es:

(xB)i ≤ (uB)i

donde (uB) comprende los elementos ordenados de U correspondientes a (xB).

3. La variable entrante x j no puede tomar un valor mayor al de su cota superior,esto es

x j ≤ u j

donde u j es el j-ésimo elemento de u. La primera condición (xB)i ≥ 0 requiereque

(B−1b)i − (B−1P j)ix j ≥ 0

2.3. El método Simplex para Variables Acotadas 30

lo cual se satisface si

x j ≤ θ1 = mini{(B−1b)i

(B−1P j)i: (B−1P j)i > 0}

(Esta es la misma condición que la de factibilidad en el método regular.)A continuación la condición 2 donde ocurre (xB)i ≤ (uB)i especifica que

(B−1b)i − (B−1P j)ix j ≤ (uB)i

y lo anterior se satisface si

x j ≤ θ2 = mini{(B−1b)i − (uB)i

(B−1P j)i: (B−1P j)i < 0}

Al combinar las tres restricciones, x j entra a la solución en el nivel que satis-faga x j = min{θ1, θ2, u j} el cambio de base para la siguiente iteración dependede si x j entra a la solución al nivel θ1, θ2 o u j. Suponiendo que (xBr) es lavariable saliente se tienen las siguientes reglas:

x j = θ1 tal que (xB)r sale de la solución básica (se vuelve no-básica) al nivelcero. La nueva iteración se genera de la forma normal , usando (xB)r como lasvariables entrantes y salientes respectivamente.

x j = θ2 tal que (xB)r se vuelve no-básica en su cota superior. La nueva itera-ción se genera como en el caso anterior de x j = θ1 con una modificación quetiene en cuenta que (xB)r será no-básica en la cota superior.

Como los valores de θ1 y θ2 se dedujeron del hecho de que todas las variablesno-básicas están en el nivel cero, se debe convertir la nueva variable no-básica(xB)r en la cota superior a una variable no-básica en el nivel cero.

Esto se logra con la sustitución

(xB)r = (uB)r − (xB)′r

siendo (xB)′r ≥ 0 no importa si la sustitución se hace antes o después de habercalculado la nueva base.

2.4. Métodos de Puntos Interiores 31

x j = u j El vector no-básico xB queda sin cambio porque x j = u j se detieneantes de forzar a alguna de las variables básicas actuales a llegar a ser cotainferior o superior.Eso quiere decir que x j permanecerá no-básica pero en la cota superior yademás tambien existe una variable no-básica con valor mayor que cero.Si hay un empate entre θ1, θ2 y u j se puede romper en forma arbitraria sinembargo es preferible que cuando sea posible se implemente la tercera reglaes decir x j = u j ya que esto implica menos cálculos.La sustitución x j = u j − x′j cambiará las c j, P j y b en

c′j = −c j, P′j = −P j y b′ = b − u jP j.

Esto quiere decir que si se usa el método modificando todos los cálculos (porejemplo de B−1, xB y z j−c j) se deben basar en los valores actualizados de A, cy b en cada iteración.

Nota 2.3.1 Tradicionalmente los PL se resuelven aplicando el método Simplex, elcual viaja por los puntos extremos de la región factible hasta encontrar el óptimodel problema. En sistemas de gran tamaño el número de vértices aumenta exponen-cialmente con relación al número de variables y por lo tanto el proceso de búsquedapuede requerir gran tiempo de computo.

2.4. Métodos de Puntos Interiores

En los años 80 fue descubierto que muchos problemas lineales podrían ser re-sueltos de forma eficiente usando formulaciones y algoritmos de la programaciónno lineal y de ecuaciones no lineales. Estos métodos requerían que las iteracionessatisfacieran las restricciones de desigualdad de forma estricta, por esta razón seles llama métodos de puntos interiores. Los métodos de puntos interiores surgende la búsqueda de algoritmos con mejores características teóricas que el métodoSimplex ya que el tiempo que éste requiere para resolver un problema de programa-ción lineal crece exponencialmente con el tamaño del problema, es decir, el númerode variables desconocidas y el almacenaje necesario para los datos del problema

2.4. Métodos de Puntos Interiores 32

incrementan los costos computacionales. Los métodos de puntos interiores se di-ferencian del método Simplex en que cada iteración, de éste último es más costosacomputacionalmente. En cambio, el método de Puntos Interiores, puede acercarsemás rápido a la solución, mientras que el método Simplex requiere un número másgrande de iteraciones.

2.4.1. Método de Trayectoria Central

El método de trayectoria central es un método de punto interior el cual utilizauna técnica para problemas no lineales denominada barrera logarítmica, en vez desolucionar el problema lineal

Min cT xS .a Ax = b

x ≥ 0

(PL)soluciona una secuencia de problemas de programación no lineal de la forma

mınx

CT x − µn∑

i=1

Ln(xi)

sujeto aAx = B

(PNL)Esta función de barrera logarítmica fue introducida con el motivo de eliminar lasrestricciones de no negatividad. Nótese que xi nunca será cero para que la funciónlogaritmo esté bien definida. Se puede observar que a medida que µ→ 0 la sucesiónde soluciones del (PNL) se acerca a la solución del (PL). El conjunto de solucio-nes del (PNL) para diferentes valores de µ proporciona la denominada trayectoriacentral en su conjunto factible. Análogamente se introduce una función de barreralogarítmica para el problema dual y se obtiene una trayectoria central en su conjuntofactible. El método de trayectoria central sigue un camino cercano a la trayectoriacentral dada por el problema primal-dual en su búsqueda del óptimo. El camino

2.4. Métodos de Puntos Interiores 33

cercano que se acaba de mencionar es la vecindad de la Trayectoria central que acontinuación se define

N−∞(γ) = {(x, λ, s) ∈ F0 : xisi ≥ γµ, i = 1, ..., n}

para algúnγ ∈ (0, 1],

yF0 = {(x, λ, s) : Ax = b, Atλ + s = c, (x, s) ≥ 0}.

2.4.2. Conjunto factible estricto.

Además depende de dos parámetros σmin y σmax que son los límites inferior ysuperior de el parámetro central σk. La dirección de búsqueda se obtiene al resolverel sistema de ecuaciones:

0 At In

A 0 0Sk 0 Xk

∆xk

∆λk

∆sk

=

−Atλk − sk + c

−Axk + b−XkSke + σkµke

(2.4.1)

con X = diag(x1, ..., xs), S = diag(s1, ..., sn) y e = (1, ..., 1)t

El tamaño de paso αk se selecciona de manera que sea el máximo de los α ∈[0, 1] tal que los iterados permanezcan en N−∞ (γ) De ahora en adelante usaremosla siguiente notación,

(xk(α), λk(α), sk(α)) = (xk, λk, sk) + α(∆xk,∆λk,∆sk)

y

µk =xk(α)tsk(α)

n

2.4. Métodos de Puntos Interiores 34

2.4.3. Algoritmo

Dado γ, σmin, σmax con γ ∈ (0, 1)0 < σmin ≤ σmax < 1y (x0, λ0, s0) ∈ N−∞(γ)Parak = 0, 1, 2, ... elegir σk ∈ [σmin, σmax]Resolver (2.4.1) para obtener (∆xk,∆λk,∆sk) Elegir αk como el valor más grande deα en [0, 1] tal que(xk(α), λk(α), sk(α)) = (xk, λk, sk) + α(∆xk,∆λk,∆sk) ∈ N−∞(γ)Establecer(xk+1, λk+1, sk+1) = (xk(αk), λk(αk), sk(αk)) = (xk, λk, sk) + αk(∆xk,∆λk,∆sk)A continuación se presenta un resultado técnico (Lema (2.4.1)) el cual se utilizópara obtener una cota sobre el vector de productos pares 4xi4si donde i = 1, 2, ..., n(Lema (2.4.2)). El teorema (2.4.1) encuentra una cota inferior sobre el tamaño depaso αK y una estimación correspondiente de la reducción de µ en la iteración K.Finalmente el teorema (2.4.5) prueba queO(n | logε |) las iteraciones son requeridaspara identificar un punto para el cual µk < ε para una tolerancia ε ∈ (0, 1).

Lema 2.4.1 (ver [16]) Sean u y v dos vectores en Rn con utv ≥ 0 entonces.

‖UVe‖2 ≤ 2−32 ‖u + v‖22

DondeU = diag(u1, ..., un) y V = diag(v1, ..., vn)

Lema 2.4.2 (ver [16]) Si

(x, λ, s) ∈ N−∞(γ) entonces ‖∆X∆Se‖2 ≤ 2−32 (1 +

)nµ

ConδX = diag(∆x1, ...,∆xn) y ∆S = diag(∆s1, ...,∆sn)

Proposición 2.4.3 [16]∆xt∆s = 0

2.4. Métodos de Puntos Interiores 35

Teorema 2.4.4 [16] Dados los parámetros σmin y σmax en el algoritmo existe unaconstante δ independiente de n tal que

µk+1 ≤ (1 −δ

nµk) para todo k ≥ 0

Teorema 2.4.5 [16] Dado ε ∈ (0, 1) y γ ∈ (0, 1). Supóngase que el punto inicial

(x0, λ0, s0)

satisface que:(x0, λ0, s0) ∈ N−∞(γ)

Entonces existe K, con

K = 0(nLog(1ε

))

tal que: µk ≤ εµ0 para todo k ≥ K.

Nota 2.4.6 La técnica de optimización denominada Puntos Interiores surge comouna forma alternativa para la solución de problemas lineales y no-lineales. Estatécnica evoluciona en el interior de la región factible, a diferencia del método Sim-plex que evoluciona por sus puntos extremos, esta es una ventaja que se refleja enla disminución considerable del tiempo necesario para determinar una solución aun problema PL de tipo general.Si en una estratégia de Puntos Interiores se parte de un punto interior a la regiónfactible, el progreso hacia la solución en un solo paso puede ser mucho mayor quepartiendo de otro cualquiera, evidentemente cualquier vector que parta desde esepunto definirá una dirección de movimiento factible. El problema que surge enton-ces es el de cuánto moverse a lo largo de cualquiera de esas direcciones de formatal que se reduzca suficientemente la función objetivo.

Capítulo 3

UN ALGORITMO SIMPLEXNO-ESTÁNDAR PARAPROGRAMACIÓN LINEAL

3.1. Aspectos principales del algoritmo.

Lo ideal sería que un algoritmo tuviese las ventajas sobre ambos algoritmos, elSimplex y el de Puntos Interiores, obviando sus respectivas desventajas. Q. PANpropone un algoritmo que podría ser llamado El algoritmo de pivote (ver [14]).Estos algoritmos poseen bases deficientes, caracterizadas como una submatriz de Aque tiene menos columnas que filas y cuyo rango incluye a el vector b. PAN proponeun algoritmo que produce una sucesión de puntos interiores así como una secuenciade vértices hasta llegar a un vértice óptimo (ver [15]). Debido a que la descompo-sición QR se usó para formar una proyección sobre el espacio nulo de la matriz A,sin embargo, este algoritmo puede que no sea confiable para manejar problemas agran escala y escasa magnitud. El trabajo hecho por Q.PAN es una continuación delos esfuerzos que previamente fueron mencionados, descrito como "no-estándar",los aspectos principales del algoritmo propuesto, son los siguientes:1.1.-Está basado en el marco del algoritmo Simplex. Cada iteración consiste en ope-raciones de pivoteo y cambio de base, tal como en el algoritmo Simplex.1.2.-Se usa una nueva regla de la columna.

36

3.2. Operaciones para hacer el pivoteo 37

1.3.-Produce iterados que pueden ser cualquier punto factible. Empezando con unpunto interior; en particular, es sólo un algoritmo de Punto Interior1.4.-Puede ofrecer una solución aproximada a un vértice óptimo, en cierto sentido.1.5.-Puede llegar a una solución vértice optima si se lleva a cabo una estrategia depurificación.

3.2. Operaciones para hacer el pivoteo

En la siguiente sección se describen operaciones por filas y columnas. Este tó-pico está íntimamente relacionado a la determinación de la dirección de búsqueday búsqueda lineal para actualizar las iteraciones.Sea B la base a considerar y N la matriz que no es base asociada, es decir, sin confu-sión consideremos de nuevo a B y a N como matrices y denotémoslas como matrizbásica y matriz no-básica, respectivamente, para más simplicidad de exposición, seasumirá que B es una submatriz compuesta de las primeras m columnas. Por otraparte, se re-escribirá el problema inicial primal (0.0.1) en función de los costos re-ducidos. Para ello se considerará el siguiente problema:

mın z = cTB xB + cT

N xN ,

S.a: BxB + NxN = b,` ≤ x ≤ u.

(3.2.1)

De lo anterior:

BxB + NxN = b⇒ xB = B−1b − B−1NxN (3.2.2)

Sustituyendo el valor de xB en la función objetivo, obtenemos la expresión:

z = cTBB−1b + (cN − cT

BB−1N)xN

= cTBB−1b + (cT

N − NT (BT )−1cB)T xN (3.2.3)

3.2. Operaciones para hacer el pivoteo 38

Haciendo: π = (BT )−1cB se obtiene: BTπ = cB

Por otra parte, definamos:

cN = cN − NT (BT )−1cB = cN − NTπ (3.2.4)

Luego, considerando:

A = [B|N], C =

cB

cN

, x =

xB

xN

De esta manera el problema original queda:

mın z = cTB xB + cT

N xN ,

S.a: BxB + NxN = b,lB ≤ xB ≤ uB

lN ≤ xN ≤ uN .

(3.2.5)

Además;z = πT b + cN xN ,

lo cual implica que:cB = cB − BT B−T cB = 0.

Así;z = πT b + cN xN + cBxB (3.2.6)

Por lo tanto;

mın z = πT b + cBxB + cN xN ,

S.a: BxB + NxN = b,l ≤ (xB, xN) ≤ u,

(3.2.7)

Donde, los costos reducidos vienen dados por

cB = 0, cN = cN − NTπ; BTπ = cB. (3.2.8)

3.3. Regla de la columna de Dantzig 39

Así, Los conjuntos no-básicos indizados son

J1 = { j ∈ N/c j < ε1} (3.2.9)

J2 = { j ∈ N/c j > ε1} (3.2.10)

Donde ε1 > 0 es una tolerancia.En la siguiente discusión teórica se asume que ε1 = 0.Sea x la solución factible en general en el contexto estándar Simplex

3.3. Regla de la columna de Dantzig

Sea x una solución básica factible en el contexto estándar Simplex Acotado.Debido a los valores de sus componentes no-básicos son iguales a alguno de loslímites asociados, ya sea el superior ó inferior dados en el problema inicial primal.Ahora bien, si el conjunto indizado:

J = { j ∈ J1|x j = l j} ∪ { j ∈ J2|x j = u j} (3.3.1)

es igual a vacío, entonces una solución óptima es almacenada y finaliza el pro-ceso. En otro caso, el principio original de Dantzig determina un índice entero q elcual es usado para identificar la variable de entrada a la matriz básica, tal que:

q = argmax{|c j|/ j ∈ J} (3.3.2)

Esto implica que el valor objetivo tendrá un decrecimiento máximo (debido al valorde |cq|), con el valor de la variable asociada incrementándose ( j ∈ J1) ó reduciéndose( j ∈ J2) por unidad.Una desventaja de la regla (3.3.2) es que no tiene en cuenta el valor por el cualla variable asociada pueda aumentar o disminuir. A pesar de que |cq| sea un valorgrande, el monto de la variable sería muy pequeño cuando así lo sea uq − lq. Dehecho, el monto actual depende del tamaño de paso que la variable tome, el cual

3.4. Nueva regla de la columna 40

está condicionado a mantener la factibilidad de las variables, y hacerlo requieredemasiado tiempo computacional.

3.4. Nueva regla de la columna

Sea x una solución factible y observemos que esta nueva regla toma en cuentalos rangos de las variables no-básicas.Con este propósito se introduce la siguientenotación:

δ j =

u j − x j si j ∈ J1

x j − l j si j ∈ J2(3.4.1)

3.4.1. Regla 1: Regla de la columna

Esta regla selecciona un índice entero q tal que:

|cq|δq = max{|c j|δ j/ j ∈ J1 ∪ J2} (3.4.2)

En el contexto estándar Simplex, a manera de resultado, el valor objetivo dismi-nuirá a lo más en una cantidad |cq|δq si no existe alguna variable básica que impidaalcanzar tal disminución en la función objetivo.

Sin embargo ningún progreso puede hacerse si δq = 0.

Proposición 3.4.1 (Condición de Optimalidad) x y c son un par de solucionesbásicas óptimas, primal y dual respectivamente si ocurre que:

δ j = 0 ∀ j ∈ J1 ∪ J2 (3.4.3)

Demostración Considerando que x y π son las soluciones primal y dual, facti-bles, la condición (3.4.3) implica que:

c jδ j = 0, ∀ j ∈ J1 ∪ J2 (3.4.4)

3.5. Dirección de Búsqueda. 41

Luego por (3.2.8), (3.2.9), y (3.2.10) se sigue que

c j = 0 ∀ j ∈ (B ∪N) − (J1 ∪ J2)

Lo cual, conjuntamente con (3.4.4) muestra que se satisface la condición holguracomplementaria de x y π. Por lo tanto, son un par de soluciones óptimas, primal ydual, respectivamente.Ahora bien, al volver al caso general. Cuando x es factible pero no necesariamentebásica se usará la Regla 1 para seleccionar un índice entero correspondiente a lavariable entrante. En la práctica, lo que se requiere es solo una solución óptimaaproximada, por lo que se modificó la condición (3.4.3) como sigue.

Definición 3.4.2 x es una solución básica ε-óptima si:

δ j ≤ ε, j ∈ J1 ∪ J2 (3.4.5)

Donde ε > 0 es la tolerancia.

3.5. Dirección de Búsqueda.

Supongamos ahora que la condición (3.4.4) no se satisface y que un índice en-tero q ha sido determinado por la Regla 1. Definamos el vector

4x = (4xTB 4xT

N)T

4x j =

−sign(cq) si j = q0 si jεN ; j , q

(3.5.1)

4xB = sig(cq)aq; Baq = aq (3.5.2)

Usando la notación precedente obtenemos:

Lema 3.5.1 El vector 4x satisface:

3.5. Dirección de Búsqueda. 42

A4x = 0 cT4x < 0 (3.5.3)

Demostración Sabemos de (3.4.4) que:4x =

4xTB

4xTN

Donde

4x j =

−sign(cq) si j = q0 si j ∈ N y j , q

(3.5.4)

4xB = sign(cq)aq; Baq = aq

Luego;

A4x = [B|N]

4xB

4xN

= B4xB + N4xN

= B(signcqaq) + N(−signcq)= signcqBaq − signcqN= signcqB(B−1aq) − signcqaq

= signcqaq − signcqaq

= 0.

Por lo tanto, 4x está en el espacio nulo de A. De (3.2.8) se sigue que:

cq = cq − aTq (B−T cB)

= cq − cTBB−1aq

LuegocT4x = (cT

B, cTN)

(4xB4xN

)= cT

B4xB + cTN4xN

= −sign(cq)cq + sign(cq)cTBB−1aq

= −sign(cq)(cq − cTBB−1aq)

= −sign(cq)cq < 0.

Nota 3.5.2 El lema (3.5.1) indica que 4x definido de esa forma es apropiado porser dirección de descenso.Es posible que se puedan definir otras direcciones de descenso.

3.6. Pivoteo de fila y determinación del tamaño de paso. 43

3.6. Pivoteo de fila y determinación del tamaño depaso.

Usando 4x como una dirección de búsqueda, se propondrá para el esquema debúsqueda lineal a:

x = x + α4x (3.6.1)

o equivalentemente,

xB = xB + α4xB (3.6.2)

xkq = xq − sign(cq)α (3.6.3)

xk j = x j, j ∈ N , j , q (3.6.4)

Donde α es un tamaño de paso a ser determinado, el cual deberá ser siemprepositivo. Ahora bien, para hacer que las formulas (3.6.2) − (3.6.4) sean aplicablesactualizadas, el tamaño de paso α debería ser determinado sujeto a la siguiente con-dición:l ≤ x ≤ u

Usando la notación:

γi =

(ui − xi)/4xi si 4xi > 0 con i ∈ B(li − xi)/4xi si 4xi < 0 con i ∈ B

(3.6.5)

Se deducirá ahora el valor más grande posible para α, es decir:

α = mın{δq,mın{γi/4xi , 0, i ∈ B}} (3.6.6)

Si α = δq,no será necesario un cambio de base (Como se verá posteriormente).

Si α < δq entonces las γi en este caso coinciden con las variables salientes, es

3.6. Pivoteo de fila y determinación del tamaño de paso. 44

decir:α =

ui − xi

4xi

oα =

li − xi

4xi

Luego, podrían darse dos casos el primero que:

xB = ui

y el segundoxB = li

En cualquiera de los dos casos anteriores se representará precisamente la variablebásica saliente que se convertirá en no-básica en una de las cotas, la superior oinferior. Tómese en cuenta esto ocurre si y solo si α , S q, en otro caso, la siguienteRegla es la pertinente:

3.6.1. Regla de la fila

Acá se selecciona un índice p y se fija de manera que:

α = γp para algun p ∈ B con 4xp , 0 (3.6.7)

Nota 3.6.1 No se tomará α, como tamaño de paso en su lugar, tomaremos un valormás pequeño:

α = λα, 0 < λ < 1 (3.6.8)

Lema 3.6.2 x, definido por (3.6.2) − (3.6.4) satisface que Ax = b para cualquierreal α

Demostración Por lo descrito anteriormente, se sabe que, la expresión: Ax = bse satisface. Además:

x = x + α4x

3.7. El Algoritmo 45

Pero 4x es una dirección de búsqueda,por lo que:

Ax = A(x + α4x) = Ax + Aα4x = b + 0

De esta manera se cumple que: Ax = b para cualquier α real.

Una componente de una solución factible se dice que es una componente inte-rior, si su valor no coincide ni con cota superior, ni con la cota inferior, y en otrocaso se dice que esta es una componente límite.A pesar de que x no es en general una solución básica, es aún llamada solución no-degenerada (Asociada con la base B), si sus componentes básicas son todas com-ponentes interiores, es decir:

lB < xB < uB (3.6.9)

3.7. El Algoritmo

En esta sección se describe el algoritmo propuesto formalmente y se hacen algu-nos análisis teóricos. Primero, supongamos que un nuevo iterado x ha sido calculadomediante (3.6.2)-(3.6.4) junto con (3.6.6) y (3.6.9).Si α definido por (3.6.6) es igual a δq, entonces el cambio de base no necesario ra-zón por la cual es posible proceder con la siguiente iteración .En otro caso, el índice saliente p es determinado por la regla 2. Entonces, la si-guiente base estará formada a partir de B, reemplazando la p-ésima columna, porla q-ésima columna de A. Luego del cambio de base, la siguiente iteración podrárealizarse.Los pasos, en total, son iguales a los del algoritmo Simplex, excepto por las opera-ciones de pivoteo.

3.7.1. Algoritmo1 (Algoritmo Simplex no-estándar)

Sea x la solución inicial factible y sea B una base inicial.Dados ε > 0 ε1 > 0 suficientemente pequeños. Es posible observar que este algorit-mo resuelve a (0.0.1) de la siguiente manera:1.-Resolver BTπ = cB para π

3.7. El Algoritmo 46

2.-Calcule cN = cN − NTπ

3.-Test de optimalidad(1) Determine J1 y J2 por (3.2.9) y (3.2.10)

(2) Calcule δ j j ∈ J1 ∪ J2 por (3.4.1)

(3) Pare si δ j < ε ∀ j ∈ J1 ∪ J2

4.-Determine un índice entero q por la Regla 1.5.-Resuelva Baq = aq.6.-Calcule ∆x mediante (3.4.5) y (3.5.1).7.-Calcule α con el paso (3.6.6) y (3.6.8).8.-Pare si α es muy grande.9.-Inicialice x mediante (3.6.2)- (3.6.4) conjuntamente con (3.2.10) .10.-Vuelva al paso 1 si x = δq

11.-Determine un índice saliente p por la Regla 2.12.-Inicialice la base B reemplazando su p-ésima columna por la q-ésima columnade A13.-Ir al paso 1.Concerniente al algoritmo anterior, lo siguiente es claro:

Teorema 3.7.1 Suponga que el algoritmo 1 ha finalizado.Lo anterior ocurrirá cuando:

a)Paso 3-(3) almacenando una solución ε óptima básica, ó

b)Paso (8) declarando que no hay limitaciones inferiores.En este paso, no se puede descartar la posibilidad de que el Algoritmo 1 sea in-finito, se cree que el algoritmo 1 debe ser finito en la práctica, como el algoritmoestándar Simplex.

Inclusive si aún no ha finalizado dicho algoritmo y siendo que este sea finito o no,en principio se tiene los siguientes resultados:

Ejemplo 3.7.2 Consideremos el siguiente PL:

Max 6x1 + 4x2

3.7. El Algoritmo 47

S .a : 3x1 + 2x2 ≤ 12

x1 + 2x2 ≤ 9

0 ≤ x1 ≤ 3

0 ≤ x2 ≤ 4

Haciendo los cambios respectivos el problema transformado queda:

Min − 6x1 − 4x2

S .a : 3x1 + 2x2 + x3 = 12

x1 + 2x2 + 0x3 + x4 = 9

Con:

0 ≤ x1 ≤ 3

0 ≤ x2 ≤ 4

0 ≤ x3 ≤ 20

0 ≤ x4 ≤ 20

1era. Iteración:Consideremos los puntos iniciales: x1 = 0, x2 = 9

2 , x3 = 3 y x4 = 0 que fueroncalculados mediante el método Simplex de Dos Fases. Sea

B = [a2, a3] =

2 12 0

, N =

3 01 1

= [a1, a4]

cB = BTπ−40

=

2 12 0

π1

π2

3.7. El Algoritmo 48

de donde se obtiene 2π1 + 2π2 = −4π1 = 0

Luegoπ2 = −2Por lo tanto

π =

0−2

cN = cN − NTπ

=

−60

− 3 10 1

0−2

=

−42

δ1 = {1} δ2 = {4}

Asíδ1 = 3 J2 = 0.

|cq|δq = max{|c j|δ j/ j ∈ J1 ∪ J2}

= max{|c1|J1; |c4|J4}

= max{12; 0} = 12

De esta manera se obtuvo un índice para la variable entrante a la matriz básica

q = 1.

3.7. El Algoritmo 49

Baq = Ba1 =

2 11 0

a11

a21

=

31

Entonces 2a11 + a21 = 32a11 + 0 = 1

=⇒ a21 = 3 − 1 = 2

Por lo tanto,a11 = 1/2; a21 = 2

4x = (4xBT ,4xTN)T ,

4xN =

1 si j = 10 si j = 4

4xB = sign(c1)a1 = −

1/22

=

−1/2−2

Así,

4x1 = 1

4x2 = −1/2

4x3 = −2

4x4 = 0

γ2 = 9

γ3 =32

α = min{δ1,min{γ2, γ3}}

= min{9, 3/2} = 3/2

Entoncesα = 3/2

3.7. El Algoritmo 50

Luego;

α = λα

tomando(0 < λ = 0, 25 < 1)

α = (0, 25)(3/2)α = 3/8

xB = xB + α4xB

=

9/23

+ (0, 375)

−1/2−2

=

4,31252, 25

Como α < δ1 el algoritmo continúa.

2da Iteración:Ahora bien, se tomará α = γ2

B =[a1 a3

]=

3 11 0

, N =[a2 a4

]=

2 02 1

Como

cB = BTπ

entonces −60

=

3 11 0

π1

π2

de donde 3π1 + π2 = −6

π1 = 0

3.7. El Algoritmo 51

Así;π2 = −6

por lo tanto

π =

0−6

cN = cN − NTπ

=

−40

− 2 20 1

0−6

=

−40

− −12−6

=

86

J2 = {2, 4} = { j ∈ N/c2, c4 > 0}

δ2 = x2 − `2 = 8; δ4 = x4 − `4 = 6

||cq|δq = max{|c2|δ2, |c4|δ4}

= max{64, 36} = 64

por lo quecq = c2

luegoq = 2

Ba2 = a2

implica que 3 11 0

a21

a31

=

22

Asía31 = −4

3.7. El Algoritmo 52

4x = (4xTB,4xT

N)T , 4xN =

−sign(c2) si j = 20 si j = 4

⇒ 4xN =

1 si j = 20 si j = 4

4xB = sign(c2)aq = (1)

2−4

donde 4x1 = 2 y 4x3 = −4

Entonces:

4x1 = 2

4x2 = −1

4x3 = −4

4x4 = 0

γ1 =u1 − x1

4x1=

32

γ3 =`3 − x3

4x3=

34

α = min{δ2,min{γ1, γ3}}

= min8,mın 3/2, 3/4

= min8, 3/4 = 3/4

Por lo tanto,α = 3/4

3.7. El Algoritmo 53

xB = xB + α4xB =

03 + (0, 75)

2−4

=

3/20

xk2 = xq − sign(C2)α =

92− (1)(0, 75) = 3, 75

xk4 = xq = 0

donde4 ∈ N, 4 , 2

α = 0, 75 < 8 = δ2

El proceso continua.

Teorema 3.7.3 Se asumirá como hipótesis que la solución inicial factible es no-degenerada. Entonces todos los tamaños de pasos subsecuentes son positivos, yluego todos los iterados son soluciones no-degeneradas factibles, más aún el valorobjetivo decrece estrictamente.

Demostración Es suficiente considerar una iteración actual. Luego, por el lema,el nuevo iterado x satisface Ax = b.De la factibilidad de x por (3.6.2) − (3.6.4) y (3.6.8) es decir:

x = x + α4x

xB = xB + α4x

xkq = xq − sign(cq)α

xk j = x j, j ∈ N ; j , q

α = λα; 0 < λ < 1

De lo anterior se sigue que: x satisface l ≤ x ≤ u y además es una solución factible.Por otra parte dado que:

δ j =

u j − x j si j ∈ J1

x j − l j si j ∈ J2

entonces δ j > 0 ya que de otra forma el proceso habría finalizado en el paso 3(3) del

3.7. El Algoritmo 54

Algoritmo 1 (recordar que el algoritmo se detiene si δ j ≤ ε para toda j pertenecientea J1 ∪ J2. Adicionalmente la suposición de no-degeneración implica que las γi lascuales están definidas por:

γi =

(ui − xi)/4xi si 4xi > 0 con i ∈ B(li − xi)/4xi si 4xi < 0 con i ∈ B

Son positivas para todo iεB con 4xi , 0.Luego,dado que:

α = min{δq,min{γi/4x , 0}

}> 0

y además,α = λα con 0 < λ < 1 donde α > 0

entonces0 < α < α

Consecuentemente, de (3.6.2)−(3.6.4) se sigue que x es una solución no-degenerada.Por otra parte,Dado que α > 0

cT x = cT (x + α4x)= cT x + αcT4x= cT x − sign(cq)αcq.

considerando que sign(cq)cq > 0 entonces

cT x − sign(cq)αcq < cT x

lo cual, implica quecT x < cT x

Con lo anterior, la prueba está completa.

Ahora bien, veamos que el algoritmo tiene las siguientes características favora-bles.

3.8. Fase-1 Procedimiento 55

Proposición 3.7.4 (ver [15]) Suponga que la solución inicial factible es no-degenerada.Un componente límite de x se puede convertir en un componente interior, pero, cual-quier componente interior nunca se convierte en un componente límite.

Se nota que el algoritmo procede tal como el algoritmo de punto interior si lasolución inicial x es interior. Por otra parte, las iteraciones generadas no son vérticesen general, incluso si la solución inicial lo es. Es por ello que el Algoritmo 1 llevael término de no-estándar.

3.8. Fase-1 Procedimiento

El Algoritmo 1 necesita una solución factible y una base para empezar. Usamosel procedimiento de la Fase 1 para este propósito, el cual es similar al que se usaregularmente en la aproximación de punto interior, y que se describirá brevementeen esta sección.Por otra parte, obsérvese que cualquier base puede ser tomada como base inicial,aunque una base que se encuentre cerca de un óptimo es lo más deseable.Supongamos que una base está disponible.Ahora, supóngase que x0 satisface l ≤ x0 ≤ u.Definamos.

an+1 = b − Ax0

y consideremos el siguiente problema auxiliar:

mın xn+1

S.a: Ax + xn+1an+1 = bl ≤ x ≤ u0 ≤ xn+1 ≤ 1

(3.8.1)

El problema anterior tiene una solución óptima, ya que tiene el punto interior (x0, 1)T ,y su objetivo está acotado inferiormente. Suponiendo que (3.8.1) ha sido resueltopor el Algoritmo 1 con la solución final x es claro que el programa original (0.0.1)no tiene solución factible, si el valor óptimo es mayor que cero. En otro caso, usan-

3.9. Purificación 56

do aN y B para denotar conjuntos de índices tal que xN = 0 y xB > 0, se re-formulael programa (0.0.1), quedando:

mın cTB xB

S.a: ABxB = bxB ≥ 0

(3.8.2)

Consecuentemente, xB > 0 queda disponible como un punto inicial interior paraque el procedimiento de la Fase 2 comience.

3.9. Purificación

El Algoritmo 1, junto con una purificación simple, pueden ser usados para ob-tener una solución básica óptima exacta.Supongamos que el Algoritmo 1 termina en el paso 3-(3) con una solución ε -óptimabásica, en otras palabras si se cumple δ j ≤ ε.Entonces la purificación es hecha moviendo todos los componentes no-básicos dela solución sobre sus límites más cercanos, es decir:

l j ≤ x∗j ≤ u j

Sea x0 la solución resultante del proceso de purificación, entonces es claro que seráuna solución óptima básica si se satisface la siguiente expresión,es decir:

Ax0 = b

Si lo anterior no se cumple entonces es necesario definir un problema auxiliar, con-siderando:

an+1 = b − Ax0 , 0

De acá, se conforman la matriz y el vector:

A = [A|an+1]

3.9. Purificación 57

x =

xxn+1

De manera, que quede reformulado el problema como sigue a continuación:

mın xn+1

S.a: Ax = bl ≤ x ≤ u0 ≤ xn+1 ≤ 1

(3.9.1)

El punto x0,

x0 =

x0

1

es un punto factible de (3.9.1).Luego, se comienza el proceso para minimizar la función objetivo usando el Algo-ritmo 1 que servirá para dar solución al problema planteado en (3.9.1).Ahora bien, si ocurre que el valor óptimo encontrado es igual a cero

x∗ =x∗

x∗n+1

entonces x∗n+1 = 0.Por lo tanto

Ax = b

de donde, se tieneb = Ax

=[

A an+1

] x∗

0

= Ax∗

Así

Ax∗ = b

Por lo tanto x∗ es una solución básica factible.

Conclusiones

Se presentó una disertación del artículo llamado: Un Algoritmo Simplex no-estándar propuesto por Pin−Qi Pan, publicado en el año 2009, el cual propone unnuevo algoritmo para resolver problemas de programación lineal de tipo general conmenor coste computacional que aprovecha las ventajas de los algoritmos Simplex yPuntos Interiores.

Para el buen entendimiento del comportamiento de este algoritmo se requiereuna clara comprensión de la teoría previa, dada a conocer al comienzo de este estu-dio, por lo que es conveniente considerar las posibles ventajas y desventajas que sepresentan en la descripción tanto del método Simplex como en el método de PuntosInteriores, de igual manera la conexión de este algoritmo con estos dos métodos esevidente y cabe esperar futuras interpretaciones de su contenido en este contexto.

El algoritmo propuesto por Pin−Qi Pan es novedoso y aspira mejorar ciertosaspectos que los algoritmos previamente mencionados poseen, y esto es logradomediante la combinación e implementación de herramientas ya conocidas, tales co-mo la estructura del algoritmo Simplex.

Cada iteración del algoritmo, consiste en operaciones de pivoteo y cambio debase tal como en el algoritmo Simplex, variando éste por la aplicación de una nuevaregla de la columna para generar el índice de la variable entrante. Posteriormente sedescriben operaciones para determinar la dirección de búsqueda. Luego se formulael algoritmo no-estándar propuesto, siendo éste el resultado principal de la presenteinvestigación. A continuación se procede con la Fase-1 del problema, método conel que se precisa cuáles son los valores de los puntos iniciales de las variables del

58

3.9. Purificación 59

PL. Así mismo, en este proceso se producen iterados que pueden ser iguales a cual-quier punto factible del PL, además se debe tener en cuenta que si el procedimientoempieza con un punto interior, en particular, el algoritmo propuesto será sólo unalgoritmo de Punto Interior.

Finalmente, se puede decir que este método ofrece una solución muy aproxima-da a un vértice óptimo del politopo factible, pero, también se puede lograr obteneruna solución básica óptima exacta, de ser necesario, si se efectúa un proceso depurificación.

Bibliografía

[1] M. S. Bazaraa and J. J. Jarvis. Programación lineal y flujo en redes. Limusa,2da edition, 2007.

[2] E. M. L. Beale. Cycling in the dual algorithm. Naval Research LogisticsQuaterly, 2:269–275, 1955.

[3] R. E. Bixby. Solvin real-world linear programs: A decade and more of pro-gress. Operations research, 50(1):3–15, 2002.

[4] R. G. Bland. New finite pivoting rules for the simplex method. Mathematicsof Operations Research, 2:103–107, 1997.

[5] G. B. Dantzig. Programming in a linear structure. Comptroller,USAF, 1948.

[6] G. B. Dantzig, A. Orden, and P. Wolfe. The generalized simplex method forminimizing a linear form under linear inequality restraints. Pacific Journal ofMathematics, 5:183–195, 1955.

[7] I. I. Dikin. Iterative solution of problems of linear and quadratic programming.Soviet mathematics Doklady, 8:674–675, 1967.

[8] A. J. Hoffman. Cycling in the algorithm. Technical Report 2974, Nat. Bur.Standards, Washington, D. C., 1953.

[9] N. Karmarkar. A new polynomial time algorithm for linear programming.Combinatorica, 4:373–395, 1984.

[10] V. Klee and G. L. Minty. How good is the algorithm? In (O. Shisha), editor,Inequalities, III, pages 159–175, New York, 1972. Academic Press.

60

BIBLIOGRAFÍA 61

[11] B. A. Murtagh and Saunders. MINOS 5.5 User’s Guide. Technical ReportSOL 83-20R, Dept. of Operations Research, Stanford University, Stanford,1998.

[12] W. Orchard-Hays. Background developmentand extensions of the revised met-hod. Technical Report 1433, The Rand Corporation, Santa Mónica, California,1954.

[13] Ping-Qi Pan. Practical finite pivoting rules for the simplex method. OR Spek-trum, 12:219–225, 1990.

[14] Ping-Qi Pan. A revised dual proyective pivot algorithm for linear program-ming. SIAM J. on optimization, 16(1):49–68, 2005.

[15] Ping-Qi Pan. A nonstandard algorithm for linear programming. OptimizationOnline, page 11, 2009.

[16] S. Wright and J. Nocedal. Numerical optimization. Springer series in opera-tions research and financial engineering. Springer, 2nd edition, 2006.