Vous êtes sur la page 1sur 34

Formulación del problema de Programación Lineal

Se desea determinar los valores de las variables reales , , … , , (variables de


decisión), de forma que se minimice una función lineal (función objetivo) en un conjunto
definido por un número finito de ecuaciones lineales (restricciones) y la condición de no
negatividad de las variables de decisión. Es decir, se considera el problema

min  + + ⋯+

sujeto a:
+ + ⋯+ =
+ + ⋯+ =
……………………………………
+ + ⋯+ =

≥ 0, ≥ 0, … , ≥ 0.

Considerando la matriz A (matriz de restricciones),


A= ⋮ ⋱ ⋮

y los vectores x (vector de variables de decisión), c (vector de costes) y b (vector de


términos independientes)

= ⋮ , = ⋮ , = ,

el problema de programación lineal consiste en determinar el vector  tal que:

min
: =
0

La anterior formulación del problema de programación lineal se denomina forma


estándar.
Otras formulaciones del problema de programación lineal consideran la maximización
de la función objetivo o restricciones definidas por inecuaciones lineales. La forma
canónica de un problema de minimización es la siguiente:

min
: 
0
y la forma canónica de un problema de maximización es la siguiente:

max
: 
0

Realmente, el único requerimiento que impone el problema de programación lineal es


la linealidad de la función objetivo y de las restricciones. El problema puede ser de
maximización o de minimización, las restricciones pueden estar definidas por ecuaciones
o inecuaciones (lineales) o las variables pueden ser negativas. Todo problema se puede
transformar fácilmente en un problema equivalente en forma estándar.
Cuando la función objetivo deba ser maximizada, se puede plantear el problema de
programación lineal como un problema de minimización cambiando los coeficientes de
la función objetivo por sus valores opuestos, puesto que

max ( ) = −min − ( ) .

Una inecuación (≤ , ≥) se puede transformar en una ecuación añadiendo (sumando,


restando) una variable no negativa adicional, que se denomina variable de holgura. Toda
variable de holgura se incorpora a la formulación del problema con un coeficiente nulo
en la función objetivo.

Cuando una variable de decisión no esté restringida a ser no negativa, se sustituye dicha
variable por la diferencia de dos variables no negativas. Si es la variable no restringida,
se puede expresar como
= −  0,  0 .

Se considera el problema de programación lineal en forma estándar (P):

min
: = (P)
0

Un vector  verificando = , se dice que es una solución de (P). Si  es una


solución de (P) y además 0, entonces se dice que x es una solución factible de (P). El
conjunto de soluciones factibles de (P) se denota por

=  | = ,  0 .

Una solución óptima es una solución factible que minimiza la función objetivo. El
objetivo de un problema de programación lineal es determinar una solución óptima. Para
un problema (P), la solución óptima puede no ser única, puede no existir o incluso puede
que no exista ninguna solución factible. Si el problema es factible ( ) pero no existe
solución óptima, se dice que el problema tiene solución no acotada.
Una propiedad fundamental del conjunto S es la de ser convexo.
Conjuntos convexos

Definición. Un conjunto C ⊆ , , es un conjunto convexo si, y sólo si,


 + (1 − )   ,   0,1 .
La combinación lineal no negativa cuyos coeficientes suman 1 se denomina combinación
lineal convexa. Por inducción, se demuestra que la combinación lineal convexa de k
puntos de un convexo C pertenece a C, es decir, dados , … , ∈ , para cualquier
( , … ,  ) tal que  ≥ 0 para todo  1, … , y ∑  = 1 , se verifica:

  .

Si F es una familia de conjuntos convexos y la intersección de todos los conjuntos en


F es no vacía, entonces dicha intersección es también un conjunto convexo. Por tanto,
para todo C ⊆ , , existe el menor conjunto convexo, ̅ , conteniendo C. Más
precisamente, para todo C ⊆ , , existe un conjunto convexo ̅ conteniendo C y
contenido en todo conjunto convexo conteniendo C. Sea F la familia de todos los
conjuntos convexos conteniendo C y sea ̅ la intersección de todos los conjuntos en F.
Trivialmente, C ⊆ ̅ y ̅ ⊆G para todo G∈F . Además, ̅ es convexo por la observación
anterior. El conjunto ̅ se denomina la envoltura convexa de C (Conv(C)).
Es fácil establecer una caracterización más explícita de las envolturas convexas. Sea C
un subconjunto arbitrario de , , se denota por ( ) el conjunto de todos los
puntos  tales que, para algún entero positivo k, algunos puntos , … , ∈ y
algunos números reales positivos  , … ,  , se tiene

=  y  = 1

es decir,
( )=
  , … , ∈ ,   , … ,  0 tales que  = ∑   y  ∑  =1 .

Teorema. ( ) es la envoltura convexa de C.

Definición. Dado un conjunto convexo C ⊆ , se dice que  es un punto extremo de


C si, y sólo si, se verifica la siguiente propiedad:
=  + (1 − ) , ,  , 01  y = z = x .

Definición. Dado un conjunto convexo C ⊆ , un vector  , 0, es una dirección


de C si, y sólo si, se verifica la siguiente propiedad:
  , 0, +   .
Dos direcciones de C, y , son equivalentes, y se denota por ≃ , cuando sean
los vectores proporcionales con una constante positiva, es decir, =  , con 0.

Definición. Dado un conjunto convexo C ⊆ , una dirección  , se dice que es una


dirección extrema de C si, y sólo si, se verifica la siguiente propiedad:
= + ,   ,  0 y , direcciones de  ≃ .
Dado un problema de programación lineal en forma estándar

min
: =
0

siendo el conjunto de soluciones factibles

=  | = ,  0
se considera la matriz A de coeficientes de las restricciones (A matriz m×n con rg(A)=m)
como un conjunto de n vectores del espacio vectorial :

= , ,…,
donde

= ⋮ ∀ j∈ 1, … , .

Por ser rg(A)=m, existe alguna submatriz cuadrada B, matriz m×m, no singular. Dicha
submatriz cuadrada se denomina base, por identificar un conjunto de m vectores
linealmente independientes del espacio vectorial .
Se denota por  , la selección de una base B formada por m columnas de la matriz A.
Se determina así una partición de la matriz A:
= ,
siendo N una matriz m×(n−m).
Puesto que a cada una de las n columnas de la matriz A se asocia una componente del
vector  , cualquier subconjunto de columnas de la matriz A determina un
subconjunto de componentes de x. Por consiguiente, al seleccionar una base  , la
descomposición = , determina una partición del vector  , de la forma:

donde las componentes de ∈ se denominan componentes básicas y las


componentes de ∈ se denominan componentes no básicas.
El número de bases de la matriz A, es a lo sumo


= .
 − 

A partir de la partición de las columnas de la matriz = , , tiene sentido definir


un tipo especial de soluciones para el problema de Programación Lineal.
Definición. Dado el problema de programación lineal:
min
: =
0
se dice que  es una solución básica si, y sólo si, existe una base  , tal que

= = .
0
Si, además, se verifica que 0, entonces x es una solución factible que se denomina
solución básica factible.

Teorema 1 (Caracterización de puntos extremos).


{ }
Sea S = x ∈ R n Ax = b, x ≥ 0 , donde A es una matriz m×n (m≤n) con rg(A)=m y

b es un vector de dimensión m. x es un punto extremo de S si, y sólo si, A y x pueden


 xB 
expresarse de la forma A=(B,N) y x =   , donde B es una matriz m×m con rg(B)=m,
x 
 N
N es una matriz m×(n−m), x B = B −1b ≥ 0 y x N = 0.

(Las soluciones básicas factibles de un problema de programación lineal son los puntos
extremos del conjunto convexo S de sus soluciones factibles).

Teorema 2 (Existencia de puntos extremos).

{ }
Sea S = x ∈ R n Ax = b, x ≥ 0 , donde A es una matriz m×n con rg(A)=m y b es

un vector de dimensión m. Si S≠∅, entonces S tiene al menos un punto extremo.

Teorema 3. Sea (P) un problema de programación lineal en forma estándar


{
min c t x Ax = b, x ≥ 0 }
donde A es una matriz m×n con rg(A)=m y b es un vector de dimensión m y c es un vector
de dimensión n. Si (P) tiene solución óptima, entonces existe algún punto extremo de su
región factible que es solución óptima de (P).

{ }
Lema 4. Sea S = x ∈ R n Ax = b, x ≥ 0 , donde A es una matriz m×n con rg(A)=m y b es

un vector de dimensión m. d es una dirección de S si, y sólo si, Ad=0, d ≥0 y d≠0.


Teorema 5 (Caracterización de direcciones extremas).

{ }
Sea S = x ∈ R n Ax = b, x ≥ 0 , donde A es una matriz m×n con rg(A)=m<n y b

es un vector de dimensión m. d es una dirección extrema de S si, y sólo si, A y d pueden


expresarse de la forma A=(B,N) y d =αd, donde B es una matriz m×m con rg(B)=m, N
 − B −1 a k 
es una matriz m×(n−m), α∈R, α >0, d=  ,
 = + , a k es la t-ésima
 et 
0

0
columna de la matriz N, B −1a k ≤ 0 y et=  1  t).
0

0

Teorema (Teorema de Representación)


{ }
Sea S un poliedro no vacío en Rn, de la forma S = x ∈ R n Ax = b, x ≥ 0 , donde A es

una matriz m×n con rg(A)=m y b es un vector de dimensión m. Sean x1,…,xk, los puntos
extremos de S y sean d1,…,dl, las direcciones extremas de S. x ∈ S si, y sólo si, x puede
expresarse de la siguiente forma

=  + μ

∑  =1

  0 = 1, … ,

μ  0 = 1, … , .

Teorema 6. Sea (P) el problema de programación lineal en forma estándar


{
min c t x Ax = b, x ≥ 0 }
donde A es una matriz m×n (m<n) con rg(A)=m, b es un vector de dimensión m, c es un
vector de dimensión n y la región factible de (P) no está acotada. Sean d 1 ,  , d l , las
direcciones extremas de la región factible de (P). (P) tiene solución óptima si, y sólo si
c t d j ≥ 0 ∀j ∈ {1, , l}.
Teorema 7 (Teorema fundamental de la Programación Lineal).

Sea (P) el problema de programación lineal en forma estándar


{
min c t x Ax = b, x ≥ 0 }
donde A es una matriz m×n con rg(A)=m, b es un vector de dimensión m y c es un vector
de dimensión n.
i) Si el problema es factible, entonces existe al menos una solución básica factible.
ii) Si el problema tiene solución óptima, entonces tiene al menos una solución básica
factible óptima.
iii) Si el problema no tiene solución óptima, entonces es infactible o es no acotado.

En los siguientes teoremas, se considera el problema (P) de programación lineal en


forma estándar:
{
min c t x Ax = b, x ≥ 0 }
donde A es una matriz m×n con rg(A)=m, b es un vector de dimensión m y c es un vector
de dimensión n.

Teorema 8. Sea x una solución básica factible de (P) asociada a una base B.
A = (a1 , , a n ) y c j := c j − c Bt B −1a j ∀j ∈ {1,, n}. Si c j ≥ 0 ∀j ∈ {1,  , n}, entonces
x es una solución óptima de (P).

Nota: Se define, para todo  1, … , , ̅ := − , denominándose ̅ coste


reducido de la variable respecto de la base considerada.

Teorema 9. Si (P) es factible y, respecto de alguna base B, asociada a una solución


básica factible, existe k ∈ {1,, n} tal que c k < 0 y B −1 a k ≤ 0, entonces c t x no está
acotada inferiormente en la región factible de (P).

Teorema 10. Sea x una solución básica factible de (P) asociada a una base B.
A = (a1 ,, a n ), B = (a1 , , a m ), Y j = B −1 a j y c j := c j − c Bt B −1a j ∀j ∈ {1,, n}. Si
existe k ∈ {m + 1,, n} , = + , tal que ̅ < 0 y alguna componente de es
positiva, entonces el vector

xl k xl x  −Y 
x =x+ d , donde = min  i i ∈ {1,, m} con y ik > 0 y d k =  k  ,
ylk ylk  y ik   et 

es una solución básica factible tal que c t x ≤ c t x . Además, c t x < c t x si, y sólo si, xl > 0.
Teorema (Teorema de Representación)

{
Sea S un poliedro no vacío en Rn, de la forma S = x ∈ R n Ax = b, x ≥ 0 , donde A es }
una matriz m×n con rg(A)=m y b es un vector de dimensión m. Sean x1,…,xk, los puntos
extremos de S y sean d1,…,dl, las direcciones extremas de S. x ∈ S si, y sólo si, x puede
expresarse de la siguiente forma

=  + μ

∑  =1 [1]

  0 = 1, … , [2]

μ  0 = 1, … , [3]

Demostración
Se considera el siguiente conjunto

= ∑  +∑ μ ∑  = 1,   0 , μ  0

Λ es un conjunto convexo cerrado. Además, por el teorema de existencia de puntos


extremos, Λ es no vacío. Claramente Λ ⊆ S. Para demostrar que S ⊆ Λ, supongamos
contrariamente que existe z∈ S tal que z∉ Λ . Por el teorema de separación de un
conjunto convexo cerrado y un punto no perteneciente a dicho conjunto, existe un vector
no nulo p y un número real α, tales que pt z > α y pt x ≤ α para todo x ∈ Λ, es decir,
existe un vector no nulo p y un número real α, tales que

  [4]

 + μ  

con  μ satisfaciendo [1], [2] y[3]. Puesto que μ puede ser arbitrariamente grande,
 0 para j=1,…,l. Considerando μ = 0 para todo j,  = 1 y  = 0 para r≠i, se
obtiene que   , para i=1,…,k. Puesto que  , se tiene  para todo i.
Resumiendo, existe un vector no nulo p tal que

 = 1, … , [5]

 0 = 1, … , [6]

Consideremos el punto extremo ̅ definido por

̅ = max [7]

 xB 
Por ser un punto extremo x =   , x B = B −1b ≥ 0 y x N = 0 , siendo A=(B, N). Por
x 
 N
ser z∈S, Az = b, z ≥ 0 . Por tanto + = y = − , donde
se ha descompuesto en ( , ). De [5], se obtiene − ̅  0, y descomponiendo
en ( , ) se deduce

0< − ̅

= ( − )+ − [8]

=( − )

Puesto que ≥ 0, de [8] se sigue que existe una componente j ≥ m+1, tal que >0 y
− > 0. En primer lugar se demuestra que = no puede tener todas
sus componentes menores o iguales que 0. Supongamos contrariamente que ≤ 0. Se
considera el vector
− y j 
dj = 
 e 
 j 

donde es un vector unitario n−m dimensional con 1 en la posición j-ésima. Por el


teorema de caracterización de direcciones extremas, es una dirección extrema de S. De
[6] se sigue que  0, es decir, − + ≤ 0, lo que contradice la suposición
de que − > 0. Por tanto, no todas las componentes de pueden ser menores
o iguales que 0, y se puede construir el siguiente vector:
b − y j 
x ′ =   + λ  
 e 
 0  j 

donde = y λ está dado por

 = min >0 =

Si > 0, entonces λ > 0 (*) y el vector x ′ ∈ , ya que x ′  0 y

x′ = − + =

Al sustituir en B la columna (puesto que x ′ = 0) por , se tiene una nueva base

B´, por ser ≠ 0. Por tanto, x ′ es también un punto extremo de S. Además

b − λ y j 
x′ = ( , ) 
 λe 
 j 

= − + = ̅ +  −  ̅

La última desigualdad se verifica al ser   0 y − > 0. Se ha llegado a una


contradicción con [7]. Esta contradicción establece que z debe pertenecer a Λ.

(*) Si = 0, al sustituir en B la columna por , se tiene una nueva base B´, por ser
≠ 0, asociada al mismo punto extremo ̅ . Como las distintas bases asociadas a un
mismo punto extremo pueden ordenarse convenientemente para evitar ciclos, después de
los cambios de base necesarios se llega a una base para la que el correspondiente > 0,
y por tanto λ > 0.
ALGORITMO (PRIMAL) DEL SIMPLEX (Problema de minimización)

Paso 1:
−1
Determinar una base inicial B tal que B b≥0, y su matriz no básica asociada N,
=( ,…, ,…, ).
Ir al paso 2.

Paso 2:
Poner x B = B −1b y x N = 0. Calcular

y N j = B −1 a N j y c N j = c N j − c Bt y N j ∀j ∈ {1,  , n − m}.

Paso 3 (Detección de optimalidad):

Si c N j ≥ 0 ∀j ∈ {1,, n − m}, PARAR ( x es solución óptima del problema). En otro


caso, ir al paso 4.

Paso 4 (Detección de no acotación):

Si ∃r ∈ {1,  , n − m} tal que c N r < 0 e y N r ≤ 0 , PARAR (el valor de la función objetivo


no está acotado, suponiendo = ( ,…, ), decrece a lo largo de

 xB   − y Nr 
  +  λ
 ∀λ ≥ 0. )
 x N   er 
En otro caso, ir al paso 5.

Paso 5 (Cálculo de una nueva solución básica factible)

Determinar

c N r = min{c N j j ∈ {1,, n − m} con c N j < 0} y

x Bl  x B 
= min  i i ∈ {1, , m} con y iN r > 0.
y lN r  y iN r 

Considerar la nueva base B ′ obtenida suprimiendo de = ( , … , , … , ) la


columna a Bl e incorporando en su lugar la columna a N r . Ir al paso 2.
ALGORITMO (PRIMAL) DEL SIMPLEX (Problema de maximización)

Paso 1:
−1
Determinar una base inicial B tal que B b≥0, y su matriz no básica asociada N,
=( ,…, ,…, ).
Ir al paso 2.

Paso 2:
Poner x B = B −1b y x N = 0. Calcular

y N j = B −1 a N j y c N j = c N j − c Bt y N j ∀j ∈ {1,  , n − m}.

Paso 3 (Detección de optimalidad):

Si c N j ≤ 0 ∀j ∈ {1,, n − m}, PARAR ( x es solución óptima del problema). En otro


caso, ir al paso 4.

Paso 4 (Detección de no acotación):


Si ∃r ∈ {1,  , n − m} tal que c N r > 0 e y N r ≤ 0 , PARAR (el valor de la función objetivo
no está acotado, suponiendo = ( ,…, ), crece a lo largo de

 xB   − y Nr 
  +  λ
 ∀λ ≥ 0. )
 x N   er 
En otro caso, ir al paso 5.

Paso 5 (Cálculo de una nueva solución básica factible)


Determinar
c N r = max {c N j j ∈ {1,, n − m} con c N j > 0} y

x Bl  x B 
= min  i i ∈ {1, , m} con y iN r > 0.
y lN r  y iN r 

Considerar la nueva base B ′ obtenida suprimiendo de = ( , … , , … , ) la


columna a Bl e incorporando en su lugar la columna a N r . Ir al paso 2.
Sin pérdida de generalidad, se supone que B = (a1, …, al, …,am)

x1 … xl … xm x m+1 … xk … xn
x1 1 … 0 … 0 y1, m +1 … y1,k … y1,n x1
       
xl 0 … 1 … 0 y l , m +1 … y l ,k … y l ,n xl →
       
xm 0 … 0 … 1 y m , m +1 … y m,k … y m,n xm
0 … 0 … 0 c m+1 … ck … cn z − c Bt x B

Actualización de la base: B´= ( a1, …, a l −1 , a k , al +1 , …,am)

x1 … xl … xm x m +1 … xk … xn
x1 1 … y1′,l … 0 y1′,m +1 … 0 … y1′,n x1′
       
xk 0 … y l′,l … 0 y l′,m +1 … 1 … y l′,n x k′
       
xm 0 … y m′ ,l … 1 y m′ , m +1 … 0 … y ′m ,n x m′
0 … cl′ … 0 c m′ +1 … 0 … c n′ z − c Bt ′ x B′ ′
PIVOTAJE

x1 … xl … xm x m+1 … xk … xn
x1 1 … y1,k … 0 y l , m +1 … 0 … y l ,n xl
− y1, m +1 − y1,k y1, n − y1, k xl − y1,k
y l ,k yl ,k y l ,k y l ,k
       
xk 0 … 1 … 0 y l ,m +1 … 1 … y l ,n xl
y l ,k y l ,k y l ,k y l ,k
       
xm 0 … y m,k … 1 y l , m +1 … 0 … y l ,n xl
− y m , m +1 − y m , k y m,n − y m,k x m − y m ,k
yl ,k y l ,k y l ,k y l ,k

0 … 1 … 0 y l ,m +1 … 0 … y l ,n xl
− ck c m +1 − c k cn − ck z − c Bt x B − c k
y l ,k yl ,k y l ,k y l ,k
El problema dual del problema (primal):

n
maximizar cj =1
j xj

n
sujeto a a j =1
ij x j ≤ bi (i = 1,, m) (1)

xj ≥ 0 ( j = 1,, n)

se define como el problema:

m
minimizar b y
i =1
i i

m
sujeto a a
i =1
ij yi ≥ c j ( j = 1, , n) (2)

yi ≥ 0 (i = 1, , m).

Se comprueba fácilmente que el dual del problema dual es el problema primal. Por tanto,
los problemas (1) y (2) identifican un par de problemas duales en forma canónica.

Relaciones de dualidad:

(i) Cada solución factible del problema primal (1) proporciona una cota inferior del valor
óptimo de la función objetivo del problema dual (2), y cada solución factible del problema
dual (2) proporciona una cota superior del valor óptimo de la función objetivo del
problema primal (1).
(ii) Si los dos problemas (1) y (2) son factibles, ambos problemas tienen solución óptima.
(iii) Si uno de los dos problemas es factible pero no acotado, el otro problema es
infactible.
(iv) Ambos problemas pueden ser infactibles.

Teorema de dualidad:
Si el problema primal (1) tiene solución óptima ( x1* , x 2* ,  , x n* ) , entonces el problema
dual (2) tiene solución óptima ( y1* , y 2* ,  , y m* ) tal que
n m

c j =1
j x j =  bi y i .
*

i =1
*
Teorema de holgura complementaria:

Sea ( x1* , x 2* ,  , x n* ) una solución factible de (1) y sea ( y1* , y 2* ,  , y m* ) una solución
factible de (2). Son condiciones necesarias y suficientes para la optimalidad simultánea
de ( x1* , x 2* ,  , x n* ) e ( y1* , y 2* ,  , y m* ) las siguientes:

a
i =1
ij y i* = c j o x *j = 0 para cada j = 1,  , n y

a
j =1
ij x *j = bi o y i* = 0 para cada i = 1,  , m.

Teorema: Una solución factible ( x1* , x 2* ,  , x n* ) de (1) es óptima si, y sólo si, existen
números y1* , y 2* ,  , y m* tales que

a
i =1
ij y i* = c j cuando x *j > 0
n
y i* = 0 cuando aj =1
ij x *j < bi

y
m

a
i =1
ij y i* ≥ c j para todo j = 1,  , n

y i* ≥ 0 para todo i = 1, , m.

Observación: Cada uno de los dos problemas siguientes es dual respecto del otro.

c
m
max
j =1
j xj min b y
i =1
i i

n m
sujeto a a
j =1
ij x j ≤ bi (i ∈ E ) sujeto a a ij yi ≥ c j ( j ∈ G)
i =1
n m

a
j =1
ij x j = bi (i ∈ F ) a
i =1
ij yi = c j ( j ∈ {1,, n}, j ∉ G )

xj ≥ 0 ( j ∈ G ⊆ {1, , n}) yi ≥ 0 (i ∈ E ).
ALGORITMO (DUAL) DEL SIMPLEX (Problema de minimización)

Paso 1:
Determinar una base inicial B tal que c t − c Bt B −1 A ≥ 0 , y su matriz no básica asociada
N. Ir al paso 2.

Paso 2:
Calcular x B = B −1b y establecer x N = 0. Calcular

y j = B −1a j ∀j ∈ {1,..., n}.

Paso 3 (Detección de optimalidad):

Si x B ≥ 0 , PARAR ( x es solución óptima del problema). En otro caso, ir al paso 4.

Paso 4 (Detección de infactibilidad):

Si ∃l ∈ {1,  , m} tal que x Bl < 0 e y lj ≥ 0 ∀j , PARAR (el problema es infactible). En


otro caso, ir al paso 5.

Paso 5 :

Determinar la variable que sale de la base y la variable que entra en la base, de la


siguiente forma:

̅ = ̅ ⁄ ∈ 1. . . con ̅ < 0

ck  c j 
− = min − j ∈ {1,  , n} con y lj < 0.
y lk  y lj 

siendo ̅ = − el coste reducido de la variable .


Considerar la nueva base B ′ obtenida suprimiendo de B la columna a Bl e incorporando
la columna a k . Ir al paso 2.
ALGORITMO (DUAL) DEL SIMPLEX (Problema de maximización)

Paso 1:
Determinar una base inicial B tal que c t − c Bt B −1 A ≤ 0 , y su matriz no básica asociada
N. Ir al paso 2.

Paso 2:
Calcular x B = B −1b y establecer x N = 0. Calcular

y j = B −1a j ∀j ∈ {1,..., n}.

Paso 3 (Detección de optimalidad):

Si x B ≥ 0 , PARAR ( x es solución óptima del problema). En otro caso, ir al paso 4.

Paso 4 (Detección de infactibilidad):

Si ∃l ∈ {1,  , m} tal que x Bl < 0 e y lj ≥ 0 ∀j , PARAR (el problema es infactible). En


otro caso, ir al paso 5.

Paso 5 :

Determinar la variable que sale de la base y la variable que entra en la base, de la


siguiente forma:

̅ = ̅ ⁄ ∈ 1. . . con ̅ < 0

ck  c j 
= min  j ∈ {1,  , n} con y lj < 0.
y lk  y lj 

siendo ̅ = − el coste reducido de la variable .


Considerar la nueva base B ′ obtenida suprimiendo de B la columna a Bl e incorporando
la columna a k . Ir al paso 2.
Se considera un grafo bipartito completo G=(V1,V2; E). Se formulan a
continuación el problema de asignación de mínimo coste y su problema dual:

n n
min  c ij xij n n

n
i =1 j =1
max  ui +  v j
x
i =1 j =1
s.a. ij =1 i = 1,..., n
j =1 s.a.
n cij − u i − v j ≥ 0 i = 1,..., n
x
i =1
ij =1 j = 1,..., n
j = 1,..., n
xij ≥ 0 i = 1,..., n j = 1,..., n

ALGORITMO PARA EL PROBLEMA DE ASIGNACIÓN (minimización)

Inicialización: Comenzar con una solución factible dual (u, v). Sea
{
E ′ = (i, j ) ∈ E cij′ = 0 . }
cij′ := c ij − u i − v j

Hallar un emparejamiento de máximo cardinal M* en el grafo G´=(V1,V2; E´) mediante


el algoritmo de emparejamiento de máximo cardinal, comenzando la construcción de cada
árbol alternante por un vértice de V1.
Si |M*|=n, parar. M* es solución óptima del problema.
En otro caso, guardar M:=M* y el bosque alternante al finalizar el algoritmo. Ir al
paso 2.

{ }
Paso 1. Sea E ′ = (i, j ) ∈ E cij′ = 0 . M es un emparejamiento en G´. Continuar con el
algoritmo de emparejamiento de máximo cardinal y hallar un emparejamiento óptimo
M*.
Si |M*|=n, parar. M* es solución óptima del problema.
En otro caso, guardar M:=M* y el bosque alternante al finalizar el algoritmo. Ir al
paso 2.

Paso 2. Efectuar el siguiente cambio dual. Sea δ = min{cij′ / i ∈V1P , j ∈V2≈ } . Hacer:

uˆ i = u i + δ para i ∈ V1 p
vˆ j = v j − δ para j ∈ V2I
Volver al paso 1.
Se considera un grafo bipartito completo G=(V1,V2; E). Se formulan a
continuación el problema de asignación de máximo coste y su problema dual:
n n
max  c ij xij n n

n
i =1 j =1
min u + v i j

x
i =1 j =1
s.a. ij =1 i = 1,..., n
j =1 s.a.
n u i + v j − cij ≥ 0 i = 1,..., n
x
i =1
ij =1 j = 1,..., n
j = 1,..., n
xij ≥ 0 i = 1,..., n j = 1,..., n

ALGORITMO PARA EL PROBLEMA DE ASIGNACIÓN (maximización)

Inicialización: Comenzar con una solución factible dual (u, v). Sea
{
E ′ = (i, j ) ∈ E cij′ = 0 , siendo }
cij′ := u i + v j − cij .

Hallar un emparejamiento de máximo cardinal M* en el grafo G´=(V1,V2; E´) mediante el


algoritmo de emparejamiento de máximo cardinal, comenzando la construcción de cada
árbol alternante por un vértice de V1.

Si |M*|=n, parar. M* es solución óptima del problema.

En otro caso, guardar M:=M* y el bosque alternante al finalizar el algoritmo. Ir al


paso 2.

{ }
Paso 1. Sea E ′ = (i, j ) ∈ E cij′ = 0 . M es un emparejamiento en G´. Continuar con el
algoritmo de emparejamiento de máximo cardinal y hallar un emparejamiento óptimo
M*.
Si |M*|=n, parar. M* es solución óptima del problema.

En otro caso, guardar M:=M* y el bosque alternante al finalizar el algoritmo. Ir al


paso 2.

Paso 2. Efectuar el siguiente cambio dual. Sea δ = min{cij′ / i ∈V1P , j ∈V2≈ } . Hacer:

uˆ i = u i − δ para i ∈V1 p
vˆ j = v j + δ para j ∈V2I
Volver al paso 1.
Definición. Sea A una matriz m×n con elementos enteros. Se dice que la matriz A es
totalmente unimodular si, y sólo si, cada submatriz cuadrada de A tiene determinante 0,
1, o −1.

Evidentemente si A es totalmente unimodular, todo elemento de A pertenece al conjunto


{0, 1, −1}.

Proposición. Las siguientes afirmaciones son equivalentes:


i) A es totalmente unimodular.
ii) La matriz transpuesta de A es totalmente unimodular.
iii) La matriz (A, I ) es totalmente unimodular.

El siguiente resultado muestra la relación entre unimodularidad total y la solución entera


de los problemas de programación lineales.

Teorema
Sea A una matriz entera. Toda solución básica factible definida por las restricciones:
≤ , ≥ 0 , es entera para cualquier vector entero b si, y sólo si, A es totalmente
unimodular.

Teorema
La matriz de incidencia vértices−arcos de un grafo dirigido (sin bucles) es
totalmente unimodular.

Teorema (Condición suficiente de unimodularidad total)


Una matriz A = (aij) es totalmente unimodular si se verifican las siguientes
condiciones:
i) aij∈{+1, −1, 0} para todo (i, j).
ii) Cada columna de A contiene a lo sumo dos elementos no nulos.
iii) Existe una partición (M1, M2) del conjunto M de filas de A tal que cada columna
j conteniendo dos elementos no nulos satisface

a
i∈M 1
ij − a
i∈M 2
ij = 0.
Definición: Dado un grafo simple G=(V,E), un emparejamiento es un subconjunto M de
aristas (M⊆E) con la propiedad de que dos aristas cualesquiera de M no son adyacentes.
Dado un emparejamiento M, se dice que M satura un vértice v (o que v es
M−saturado) si alguna arista de M es incidente con v. En caso contrario, se dice que v es
M−expuesto. Se dice que un emparejamiento es perfecto si satura todos los vértices.

Definición: Dado un emparejamiento M en G, una cadena M−alternante es una cadena


elemental P cuyas aristas alternativamente pertenecen a M y a E−M. Si, adicionalmente,
los vértices extremos de P son distintos y ambos son M−expuestos, entonces P es una
cadena de M−aumento.

Lema: Sean M1 y M2 dos emparejamientos en G. Se considera el grafo parcial


G ′ = (V, M1 ΔM 2 ) . Cada componente conexa de G´ es de uno de los siguientes tipos:
i) Vértice aislado.
ii) Ciclo elemental formado por un número par de aristas pertenecientes
alternativamente a M1 y a M2 .
iii) Cadena elemental cuyas aristas pertenecen alternativamente a M1 y a M2, y cuyos
extremos son vértices distintos (cada uno de ellos es expuesto respecto de alguno
de los dos emparejamientos).

Teorema (Teorema de cadena de aumento de un emparejamiento):


Un emparejamiento M en un grafo G=(V,E) es de máximo cardinal si, y sólo si,
no existe ninguna cadena de M−aumento.

Definición: Dado un emparejamiento M en G=(V,E), un árbol M−alternante, es un árbol


T=(V(T), E(T)), (V(T)⊆V, E(T)⊆E) con un vértice distinguido r (que se denomina la raíz
del árbol), cumpliendo las siguientes propiedades:
i) El vértice r es M−expuesto, y cada vértice de V(T) distinto de r es incidente con
una arista de M∩E(T);
ii) Para todo vértice v de V(T), la cadena en T de v a r es M−alternante.

Definición: Dado un grafo simple G=(V,E), un recubrimiento mediante vértices de G es


un subconjunto W de vértices (W⊆V) tal que, para cada arista de G, al menos uno de sus
extremos pertenece a W.

Teorema (Teorema de König): Si G es bipartito,


max{ M M es un emparejamiento} = min{ W W es un recubrimiento mediante vértices}.

La formulación mediante programación lineal (por la unimodularidad total) del


problema de emparejamiento de máximo peso en grafos bipartitos es
max c x
e∈E
e e

x
e∈δ ( v )
e ≤ 1 para cada v ∈ V

xe ≥ 0 para cada e ∈ E
δ(v) denota el conjunto de aristas incidentes en el vértice v.
El dual del problema anterior es
min π
v∈V
v

π
v:e∈δ ( v )
v ≥ ce para cada e ∈ E

π v ≥ 0 para cada v ∈ V

Algoritmo (Algoritmo de máximo emparejamiento en grafos bipartitos)

Input: Un emparejamiento M en un grafo bipartito G=(V1, V2; E) (puede ser M=∅).


Output: Un emparejamiento de máximo cardinal en G.

Inicialización: Sea M un emparejamiento arbitrario. Todos los vértices están sin etiquetar
y sin examinar.

Paso 1 (Test de Optimalidad): Si no existe ningún vértice no saturado, sin etiquetar, en


V1, el emparejamiento actual es óptimo. En otro caso, elegir un vértice r no saturado y
sin etiquetar perteneciente a V1. Asignar a r la etiqueta (P,−) (La primera componente de
la etiqueta de un vértice es P o I. Un vértice etiquetado se dice que es par, si la primera
componente de su etiqueta es P; en otro caso, se dice que es impar.)

Paso 2 (Crecimiento de un árbol alternante): Elegir un vértice i etiquetado y no


examinado.
Si i es impar y no saturado, ir al paso 4.
Si i es impar y saturado, asignar la etiqueta (P,i) al vértice unido con i mediante
una arista del emparejamiento. El vértice i queda examinado; ir al paso 3.
Si i es par, sea J={j / {i,j}∈E y j está sin etiquetar}. Asignar a cada vértice j∈J
la etiqueta (I,i). El vértice i queda examinado; ir al paso 3.

Paso 3: Si existe algún vértice etiquetado sin examinar, ir al paso 2; en otro caso, ir al
paso 1.

Paso 4 (Identificación de una cadena de aumento): Utilizar la segunda componente de


las etiquetas para identificar una cadena de aumento desde el vértice r al vértice i.
Eliminar todas las etiquetas, adaptar el emparejamiento, y volver al paso 1.

Teorema: El algoritmo anterior proporciona un emparejamiento de máximo cardinal,


en un grafo bipartito.
PROBLEMA DE ASIGNACIÓN CON MATRIZ DE COSTES:

3 5 6 7 6
 
11 9 7 8 13 
c 
ij ( i , j ) 5 5 8 7 9
 
 7 8 10 11 11 
 6 11 13 9 7 
 

Problema de minimización

u1  3, u2  7, u3  5, u4  7, u5  6,
Solución factible dual inicial:
v1  0, v2  0, v3  0, v4  1, v5  1.

( cij  cij  u i  v j para todo (i,j))

(I ,4)
0 2 3 3 2 ( P,1´)  0 2 3 3 2
   
4 2 0 0 5 4 2 0 0 5
c  
ij ( i , j )  0 0 3 1 3, 0 0 3 1 3
   
0 1 3 3 3 ( P, )  0 1 3 3 3
0 5 7 2 0  0 5 7 2 0 
 

Se considera el emparejamiento formado por las aristas marcadas. Se etiquetan los


vértices de la forma indicada, concluyendo que el emparejamiento actual es de cardinal
máximo.M*= 4.

Cambio dual: =1=min{2, 3, 3, 2, 1,3,3,3}.

u1  4, u2  7, u3  5, u4  8, u5  6,
Nueva solución factible dual:
v1  1, v2  0, v3  0, v4  1, v5  1.

( I , 4)( I , 4)
0 1 2 2 1 ( P,1´)  0 1 2 2 1
   
5 2 0 0 5 5 2 0 0 5
c  
ij ( i , j )  1 0 3 1 3 , ( P, 2´)  1 0 3 1 3
   
0 0 2 2 2 ( P, )  0 0 2 2 2
1 5 7 2 0  1 5 7 2 0 
 
Al añadir la arista 4  2´, después del cambio dual, se etiqueta el vértice 2´ con etiqueta
(I, 4) y a continuación se etiqueta el vértice 3 con etiqueta (P, 2´), concluyendo que el
emparejamiento actual es de cardinal máximo.M*= 4.

Cambio dual: =1=min{2, 2, 1, 3, 1,3, 2,2,2}.

u1  5, u2  7, u3  6, u4  9, u5  6,
Nueva solución factible dual:
v1  2, v2  1, v3  0, v4  1, v5  1.

( I , 4)( I , 4) ( I , 3)
0 1 1 1 0 ( P,1´)  0 1 1 1 0
   
6 3 0 0 5 6 3 0 0 5
c  
ij ( i , j )  1 0 2 0 2 , ( P, 2´)  1 0 2 0 2
   
0 0 1 1 1 ( P, )  0 0 1 1 1
2 6 7 2 0  2 6 7 2 0 
 

Al añadir la arista 3  4´, después del cambio dual, se etiqueta el vértice 4´ con etiqueta
(I, 3) y, al ser este vértice no saturado, se identifica la cadena de aumento:

4  2´  3  4´.

La sustitución de la arista 3  2´ por las aristas 3  4´ y 4  2´, da lugar a un


emparejamiento que satura todos los vértices y, por tanto, se obtiene la solución óptima.
M*= 5.

Solución óptima:

0 1 1 1 0 3 5 6 7 6
   
6 3 0 0 5 11 9 7 8 13 
c  
ij ( i , j )  1 0 2 0 2 , c 
ij ( i , j ) 5 5 8 7 9
   
0 0 1 1 1  7 8 10 11 11 
2 6 7 2 0   6 11 13 9 7 
  
n
min c j =1
j xj

n
sujeto a a
j =1
ij x j = bi i = 1,  , m

xj ≥ 0 j = 1,  , n
x j entero j ∈ J ⊆ {1,  , n}

Se supone que el problema relajado del problema anterior tiene solución óptima.

ESQUEMA GENERAL DEL MÉTODO DE RAMIFICACIÓN Y ACOTACIÓN

Paso 0:
Sea P0 el problema original. Hacer L={P0}, z = ∞, e ir al paso 2.

Paso 1:
Si L=∅ y z = ∞, el problema original es no factible. PARAR
Si L=∅ y z < ∞, la solución óptima del problema original es x . PARAR.
Si L≠∅, ir al paso 2.

Paso 2 (Relajación):
Elegir Pr∈L, relajarlo y resolver el problema lineal resultante Pr′ . Si Pr′ es no factible,
hacer L=L−{Pr} e ir al paso 1; en otro caso, sea x r la solución óptima de Pr′ y z el
r

correspondiente valor óptimo. Ir al paso 3.

Paso 3 (Eliminación por Acotación):


Si z ≥ z , hacer L=L−{Pr} e ir al paso 1. En otro caso, ir al paso 4.
r

Paso 4:
Si x rj ∈ Z , ∀j ∈ J , ir al paso 6. En otro caso, ir al paso 5.

Paso 5 (Separación por Ramificación):


Elegir j∈J tal que x rj ∉ Z . Generar, a partir de Pr , dos subproblemas Pr≤ ( Pr más la
restricción x j ≤ [ x rj ] ) y Pr≥ ( Pr más la restricción x j ≥ [ x rj ]+1 ). Hacer

L = (L−{Pr}) ∪ { Pr≤ , Pr≥ }


e ir al paso 2.

Paso 6:
Hacer x = x r , z = z r , L=L−{ Pr}, eliminando a la vez de L todos los problemas Pr con
z ≥ z , e ir al paso 1.
r
MÉTODO DE HIPERPLANOS DE CORTE EN

PROBLEMAS DE PROGRAMACIÓN ENTERA

Sea

/ , 0 ∈ 1, … ,

Siendo los elementos de la matriz A y las componentes del vector b números enteros.
Puesto que todas las variables deben ser enteras, se considera, un problema de
programación entera pura.

Se denomina relajación lineal o relajación continua del problema anterior al problema


lineal,
/ , 0

Sea
/ , 0

y sea la envoltura convexa de los puntos enteros de S. Se supone que S es un poliedro


acotado.
Las posibles soluciones óptimas de la relajación lineal son los puntos extremos de S,
mientras que las posibles soluciones óptimas del problema entero son los puntos
extremos de .
Cuando se debe resolver un problema entero, en primer lugar se resuelve su relajación
lineal continua. Si la solución óptima obtenida es un punto ∗ entero, entonces dicha
solución es también solución óptima del problema entero. En otro caso, se precisa de un
método para resolver el problema entero inicial.
Aún cuando la resolución de la relajación lineal no produzca directamente una solución
entera, es posible el uso (iterativo) de la Programación Lineal para resolver un problema
de Programación Lineal Entera.

Definición:

Dado un poliedro S y un punto extremo fraccional de S, se llama corte a una
desigualdad


válida para todos los puntos enteros de S y violada por .
Dado un punto extremo fraccional ∗ de un poliedro S, el problema de determinar un
corte que separe a ∗ de los puntos enteros de S, se denomina problema de separación.
El algoritmo de hiperplanos de corte asume disponer de un procedimiento que resuelva
el problema de separación. Dicho algoritmo se describe a continuación:
COMENZAR
Resolver la relajación lineal. Sea ∗ una solución óptima.
Mientras ∗ no sea entero, HACER
Encontrar un corte que separe ∗ de las posibles
soluciones enteras;
resolver la relajación lineal con la nueva desigualdad adicional.
Sea ∗ una solución óptima.
FINALIZAR

Podría ocurrir que un problema lineal fuese infactible, en cuyo caso el problema entero
también lo sería.

Una forma de obtener cortes de tipo general, es mediante la siguiente derivación debida
a Chvátal:

Sea ∈ un vector arbitrario. Entonces la igualdad es válida para


todo el poliedro S. Denotando por , 1, … , , las columnas de A, la anterior
igualdad se puede expresar como

Por tanto,

es también válida para todo el poliedro S. Ahora bien, la igualdad

Es válida para todos los puntos enteros en S, y quizás no para todo S. Esta última
igualdad se denomina derivación de Chvátal mediante el vector u.

Teorema
Si ∗ es un punto extremo no entero de S, entonces existe un vector tal que su
derivación de Chvátal es un corte que separa ∗ de los puntos enteros de S.
A continuación se expone una metodología constructiva, debida a Gomory, para
encontrar tal vector, además de demostrar el teorema.

Supongamos que se ha resuelto la relajación lineal del problema entero. Sea B la base
óptima obtenida, y por tanto,




0

es la solución óptima. Si dicha solución no es entera, entonces existe un índice


∈ 1, … , tal que no es entero. Se considera la r-ésima ecuación obtenida en la
tabla final del símplex:

siendo el conjunto de índices de las variables no básicas. Esta fila se ha obtenido


pivotando desde el sistema inicial, y por tanto existe un vector u tal que dicha fila es

siendo la r-ésima fila de la matriz .

Si se considera la desigualdad

se obtiene una derivación de Chvátal válida para todas las soluciones del problema
entero y violada por el punto ∗ , es decir, un corte; que se denomina corte de Gomory.

Una forma alternativa de expresar el corte de Gomory, resulta de restar la última


desigualdad de la igualdad anterior, obteniéndose

que se denomina forma fraccional del corte de Gomory, puesto que los coeficientes
que contiene coinciden con la parte fraccional de los coeficientes de la ecuación
generatriz.

Las variables de holgura de las dos formas alternativas de un corte de Gomory, son en
realidad la misma, y además sólo pueden tomar valores enteros, al ser las restantes
variables enteras. Esto garantiza que los nuevos problemas lineales ampliados son de
Programación Entera Pura.
Teorema: Sea X = {( z Br , z, x) ∈ Z + × Z +n1 × R+n2 / z Br + y
j∈N1
rj zj + y
j∈N 2
rj x j = br } ,

donde ni = N i para i = 1, 2. Si br ∉ Z , f = br − br  y fj = yrj - y rj  para j∈N1∪ N2.

El corte entero mixto de Gomory

f  (1 − f ) z y y
f f
jzj + j j + rj x j − rj x j ≥ f
fj≤f 1− f fj>f y rj > 0 1− f y rj < 0
j∈N1 j∈N1 j∈N 2 j∈N 2

es válido para X.

EJEMPLO

max z = 5 x1 + 2 x 2
s. a. : 2 x1 + 2 x 2 + x3 =9
3 x1 + x 2 + x 4 = 11
x1 ≥ 0, x 2 ≥ 0, x3 ≥ 0, x 4 ≥ 0,
x1 y x3 enteros

La solución óptima, del problema de programación lineal correspondiente a la relajación


continua del problema anterior, se presenta en la siguiente tabla

x1 x2 x3 x4

x2 0 1 3/4 −1/2 5/4

x1 1 0 −1/4 1/2 13/4

0 0 −1/4 −3/2 Z − (75/4)

1 1 13
Considerando como ecuación generatriz del corte: x1 − x3 + x 4 = ,
4 2 4
se obtiene el corte:
1 1 1
x3 + x 4 ≥ .
12 2 4
Teorema de Farkas
Sea A una matriz m×n y c un vector de R . Exactamente uno de los dos sistemas
n

siguientes tiene solución:


Ax ≤ 0 y c t x > 0
n
I) para algún x∈ R ,

yt A = ct y≥0
m
II) e para algún y∈ R .

Corolario (Teorema de Gordan)


Sea A una matriz m×n. Exactamente uno de los dos sistemas siguientes tiene solución:
Ax < 0
n
I) para algún x∈ R ,

yt A = 0 e y≥0
m
II) para algún y∈ R no nulo.

Se considera el problema:

( )

( )  ( )0 = 1, … ,

siendo : → y : → para = 1, … , .

Se denota por S el conjunto de soluciones factibles del problema (P):

=  |  ( )0 = 1, … , .

Definición
Sea S el conjunto de soluciones factibles del problema (P) y sea ̅ ∈ . El cono de
direcciones factibles de S en ̅ , denotado por ( ̅ ), se define por:

( ̅) = ∈ | ≠ 0,  ̅ +  ∈ ∀ ∈ (0, ) ú >0 .

Cada vector ∈ ( ̅ ) se denomina una dirección factible. Además, dada la función


: → ; el cono de direcciones de mejora (o de descenso) en ̅ , denotado por ( ̅ ),
se define por:

( ̅) = ∈ | ( ̅ +  ) < ( ̅ ) ∀ ∈ (0, ) ú >0 .

Cada vector ∈ ( ̅ ) se denomina una dirección de mejora o dirección descendente de


f en ̅ .
Teorema 1
Sea : → diferenciable en ̅ . Si existe un vector ∈ tal que ∇ ( ̅ ) < 0,
entonces existe un 0, tal que ( ̅ +  ) < ( ̅ ) para todo λ∈(0,δ), por tanto d es una
dirección descendente de f en ̅ .

Teorema 2
Se considera el problema ( )| ∈ , siendo : → y S un subconjunto no
vacío de Rn. Sea : → diferenciable en ̅ ∈ . Si ̅ es un óptimo local, entonces
( ̅ ) ∩ ( ̅ ) = ∅, siendo
( ̅) = ∈ | ∇ ( ̅ ) <0

y ( ̅ ) el cono de direcciones factibles de S en ̅ .

Lema 3
Dada una solución factible ̅ ∈ , sea = | ( ̅ ) = 0 el conjunto de índices para
las restricciones activas de ̅ . Se supone que gi , para cada ∈ , es diferenciable en ̅ , y
que gi , para cada  , es continua en ̅ . El conjunto:

( ̅) = ∈ | ∇ ( ̅ ) < 0 ∈ .

verifica
( ̅ )  ( ̅ ) .

Teorema 4
Se considera el problema:
min ( )

. .: ( ) ≤ 0 = 1, … ,

siendo : → , : → , = 1, … , . Sea ̅∈ una solución factible y sea


= | ( ̅ ) = 0 . Se supone que f es diferenciable en ̅ , que gi es diferenciable en ̅ ,
para cada ∈ , y que gi es continua en ̅ , para cada  . Si ̅ es un óptimo local, entonces

( ̅ ) ∩ ( ̅ ) = ∅.
Teorema (Condiciones necesarias de Fritz – John)

Sean f: R →R y gi: R →R para i=1,…,m. Se considera el problema (P):


n n

min ( )

. .: ( ) ≤ 0 = 1, … ,

Sea x una solución factible y sea I={i / gi( x )=0}. Se supone que f es diferenciable en
x , que gi , para cada i∈I, es diferenciable en x , y que gi , para cada i∉I, es continua
en x . Si x resuelve localmente el problema (P), entonces existen  y  , para
i∈I, tales que

u 0 ∇f ( x ) +  u i ∇g i ( x ) = 0
i∈I

u 0 ≥ 0, u i ≥ 0 para i ∈ I
(u 0 , (u i ) i∈I ) ≠ (0,0).

Además, si cada gi , para i∉I, es también diferenciable en x , entonces las condiciones


de Fritz John pueden escribirse en la siguiente forma equivalente,

m
u 0 ∇f ( x ) +  u i ∇ g i ( x ) = 0
i =1

ui g i ( x ) = 0 para i = 1, , m

u 0 ≥ 0, u i ≥ 0 para i = 1,  , m

(u 0 , (u i ) i =1,,m ) ≠ (0,0 ).

NOTA: Todo punto x para el cual existan multiplicadores ( u 0 , u ) tales que ( x , u 0 , u )


satisface las condiciones de Fritz John se denomina un punto de Fritz-John.
Teorema (Condiciones necesarias de Kuhn– Tucker)

Sean f: R →R y gi: R →R para i=1,…,m. Se considera el problema (P):


n n

min ( )

. .: ( ) ≤ 0 = 1, … ,

Sea x una solución factible y sea I={i / gi( x )=0}. Se supone que f es diferenciable en
x , que gi , para cada i∈I, es diferenciable en x , y que gi , para cada i∉I, es continua en
x . Además, se supone que los vectores ∇g i (x ) , para i∈I, son linealmente

independientes. Si x resuelve localmente el problema (P), entonces existen  , para


i∈I, tales que
∇f ( x ) +  u i ∇g i ( x ) = 0
i∈I

ui ≥ 0 para i ∈ I.

Si, además, cada gi , para i∉I, es también diferenciable en x , entonces las condiciones
de Kuhn– Tucker pueden escribirse en la siguiente forma equivalente,

m
∇f ( x ) +  u i ∇g i ( x ) = 0
i =1

ui g i ( x ) = 0 para i = 1, , m

ui ≥ 0 para i = 1, , m.

NOTA: Todo punto x para el cual existan multiplicadores u tales que ( x , u ) satisface
las condiciones de Kuhn– Tucker se denomina un punto de Kuhn– Tucker.

Vous aimerez peut-être aussi