Aprender PLE15

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 15

Conjunto convexo

Es un conjunto que verfica que para cualesquiera dos puntos del conjunto el
segmento cerrado que los une está contenido en el propio conjunto.

Proposición 1.1

1. La intersección (y la intersección finita) de conjuntos convexos en ℝ n es convexo en ℝ n


n n
2. La suma y la diferencia de conjuntos convexos en ℝ es convexo en ℝ
n n
3. El producto de un real con un de conjuntos convexos en ℝ es convexo en ℝ (homotecia)

Envoltura convexa de un subconjunto, S.

Es la intersección de todos los conjuntos convexos, S i , que contienen a S , es decir,


H (S )= ∩i ∈ I S i

Proposición 1.2

1. H (S ) es convexo
2. H ( S ) es el menor convexo que contiene a S
3. H (S )=S si S es convexo

Teorema 1.2

H ( S ) es igual al conjunto de todas las combinaciones convexas de puntos de S

Politopo

Es la envoltura convexa de un número finito de puntos.

Nota:

No puede haber un simplex con n+ 1 vérices. En E 1 un 1-Simplex es un segmento que


une dos puntos disintos. En E 2 el 2-Simplex es un triágulo formado por tres puntos no
alineados. En E 3 el 3-Simplex es un tetraedro con 4 vérices en distintos planos.

Entorno de un punto x con radio ε

N ϵ ( x)={y ∈ E n :‖y−x‖<ϵ }: x∈ E n , ϵ >0

Punto clausura de un conjunto S

Es cualquier punto, x , de E n que cumple : S ∩N ϵ ( x)≠∅ ∀ ϵ : S ⊂E n


El conjunto de puntos de clausura de S se denota por Cl (S )
El conjunto S es cerrado si S =Cl ( S )
Interior de un conjunto S

Es cualquier punto de E n que verifique que : ∃ϵ >0 : N ϵ ( x)⊂S ⊂E n


El conjunto de puntos interiores se denota por Int (S )
Un conjunto, S , es abierto si S=Int(S )

Frontera de un conjunto S

Es cualquier punto, x , de E n que verifica que:


c
∀ ϵ >0 N ϵ ( x)∩(S ∧S )≠∅ : S⊂ E n
El conjunto de los puntos fronteras de S se denota por F (S )

Proposición 1.3 Regla del paralelogramo

Para cualquier par de vectores, a , b∈ E n , se cumple ‖a±b‖2=‖a‖2 +‖b‖2±2 at b


Donde a t es el vector a traspuesto.

Hiperplano en el n-espacio

Es el subconjunto, H , de E n : H ={x ∈ E n : p t x=α } donde p≠0 un vector


y α ∈ℝ un escalar cualquiera. El vector p se denomina vector normal a H

Semiespacios de un hiperplano

Son los conjuntos, H + , H − (de forma general H ±i :i∈ I ) tales que :


Semiespacios cerrados definidos por H : H + ={x ∈E n : pt x≥α } H − ={x∈ E n : pt x≤α }
Semiespacios abiertos definidos por H : H +A={x∈E n : pt x > α } H −A ={x ∈ E n : p t x< α }

Separaciones de H sobre dos conjuntos no vacíos S

Separación impropia : ∀ x∈ S 1 p t x≥α y ∀ x∈ S 2 pt x≤α


t t
Separación propia : ∀ x ∈S 1 p x≥α y ∀ x ∈S 2 p x≤α y S 1∪S 2⊄ H
Separación estricta : ∀ x ∈S 1 p t x >α y ∀ x ∈S 2 p t x <α
Separación fuerte : ∀ x∈ S 1 pt x≥α +ϵ y ∀ x ∈S 2 p t x≤α con ϵ > 0 escalar

Teorema 1.7 (Teorema de Farkas)

Dados A∈M m×n , c∈E n entonces uno de los dos sistemas siguientes
tiene solución :
t t
Sistema 1: ∃ x ∈ E n : Ax≤0 ; c x> 0 c es un vector y c su traspuesto
Sistema 2: ∃ y ∈E m : At y=c ; y≥0

Hiperplano soporte (o apoyo) de un conjunto en un punto

Es un hiperplano, H , sobre un conjunto S ⊂E n :S ≠∅ en el que S ⊂( H +⊗ H − )


t
donde H ={x∈ E n : p ( x− x̄ )=0} con x̄ ∈ F (S ) fijo.
Hiperplano soporte propio

Es un hiperplano soporte de S en x̄ tal que S ⊄H

Conjunto poliédrico (o poliedro)

Es S ={x ∈E n : pti x≤α i i=1 ,... , m}≠∅ : pi son vectores no nulos y α i escalares
es decir, S es intersección de un número finito de semiespacios cerrados.

Punto extremo de un conjunto convexo S

Es un punto del conjunto S ≠∅ que no es combinación convexa de dos puntos


distintos cuales quiera de S .Formalmente : x= λ x 1 +(1− λ ) x 2 ⇒ x 1=x 2= x :
x 1 , x 2 ∈S , λ ∈(0,1)

Dirección de un conjunto convexo cerrado S

Es un vector no nulo, d , de E n en el que para x ∈S se cumple x + λ d ∈S ∀ λ ≥0

Dirección extrema de un conjunto convexo cerrado S

Es una dirección, d , de S que no es combinación lineal positiva de dos


direcciones distintas, es decir, si d = λ 1 d 1+ λ 2 d 2 : λ 1 , λ 2> 0 entonces
para algún α >0 se cumple d 1=α d 2

Teorema 1.12 (caracterización de extremos de S)

Dado un poliedro S ={x ∈E n : Ax=b , x≥0}: A∈M m×n , b∈ E m


entonces un punto x es extremo de S si y solo si A se puede

[ ][ ]
−1
x
descomponer de la forma [ B , N ]: x= B = B b
xN 0
−1 −1
donde B∈M m×m :∃ B y B b≥0 , y N ∈ M m×n− m

Teorema 1.13

Si un poliedro es de la forma S ={x ∈E n : Ax=b , x≥0}≠∅ : A∈ M m×n , rg ( A)=m


y el vector b∈E m entonces S tiene al menos un extremo.

Teorema 1.14 (Caracterización de las direcciones extremas)

Un vector es dirección extrema , d̄ , de S={a ∈E n : Ax=b , x≥0 }: A∈M m×n ,

( )
−1
rg( A)=m , y b∈E m si y solo si A=[ B , N ]:∃c j ∈ N : B−1 c j ≤0 y d̄ α = −B c j =d
ej
donde α > 0 , c j una columna de N , y e j es un (n-m)-vector con 0 salvo en j
Teorema 1.15

Todos los puntos de un poliedro son combinación lineal de los puntos extremos y
de las direcciones extremas, esto es, si x ∈S , x1 ,... , x k puntos extremos de S
k l
y d 1 ,... , d l direcciones extremas de S entonces x=∑ λ j x j + ∑ μ j d j :
j =1 j =1
k

∑ λ j =1 , λ j ≥0 : j=1 ,... , k , μ j≥0 : j=1 ,... , l


j =1

Corolario 1.13

Si un conjunto poliedrico S ={x ∈ E n : Ax=b , x≥0}: A∈M m×n rg ( A)=m entonces


tiene al menos una dirección extrema si y solo si es no acotado.

Programa (solución realizable o factible)

Conjunto de valores, x , que satisfacen todas las restricciones (incluida la no negatividad)


es decir, x t =( x 1 , ... , x n ) es un programa si Ax=b y x≥0

Programa óptimo

Es un programa finito que proporciona el valor óptimo para la función objetivo, es decir,
x̄ es un programa óptimo si es un programa y para cualquier programa x se cumple que
x̄≤c x

Solución básica asociada a la base

( )
B
Es el vector x̄ = x̄ : x̄ B=B−1 b .Considerando el PPL en la forma estándar
0
La solución básica es no degenerada si x̄ B≠0

Teorema 1.16

El conjunto de programas de un PPL en la forma estándar es un poliedro


convexo acotado inferiormente.

Corolario 1.14

El conjunto de programas óptimos de un PPL en la forma estándar es un


poliedro convexo acotado inferiormente.

Corolario 1.15

Si existe varios programas óptimos distintos toda combinación linela convexa


de ellos también es óptimo.
Sistema explícito

Son las ecuaciones siguientes, dado un PPL en la forma estándar.


x B + B−1 N x N = x̄ B (c N )t x N −( c B )t B−1 N x N =(c B )t x B +(c N )t x N −( c B )t x̄ B
Donde la función a minimizar es cx , las restricciones son A x=b : x≥0 : x ∈x ∀ x ,
A∈ M m ×n : m< n , y, rg( A)=m , B∈ M m es una base de A , N ∈ M n−m es la
matriz no básica de A, x B es el vector de la base y x N es el vector de variables
no básico. c B son los costes respecto las columnas de B y c N respectos los de N
x̄ B= B−1 b , z =( c B )t x B +(c N )t x N , z̄ =(c B)t x̄ B y B−1 N =Y

Teorema 2.2

Dado un programa de base asociado a un base B, si existe k: ( z k −c k )> 0 , y algún


y s , j> 0 , entonces la solución de base asociada a la nueva base B ' ( cambiando la
x̄ x̄
columna a l por la columna a j donde l : l =min { i : y i , j > 0}), es un nuevo
yl , j yi , j
programa de base que da a la función objetivo un valor z̄ ' ≤ z̄

Esquema del Algoritmo del Simplex

1. Poner el PPL en la forma estándar (sumando una variable si p( x)≤b , y restando


en el caso P( x)≥b , con una variable nueva para cada restricción)
2. Determinar un progrma inicial de base x̄ B asociado a una base B
3. Calcular las matrices Y =B−1 N , c B Y
4. Comprobar los valores (c B Y −c N )
4.1 Finalizar (el programa actual es un programa básico óptimo) si ( c B y j−c j)≤0 ∀ j
Si maximizamos :( c B y j−c j )≥0 ∀ j
4.2 Si existe un j :(c B y j−c j)>0 entonces definir un conjunto J 1={∀ j∈J :(c B y j −c j )> 0}
Si maximizamos J 1={∀ j∈ J :(c B y j−c j)<0 }
5. Comprobar los vectores (columnas de Y) y j
5.1 No existe programa mínimo finito si existe un j∈ J 1 : y j≤0 . Finalizar.
5.2 Si ∀ j∈J 1 se verifica que y j > 0 entonces determinar k , y l : x̄ i ∈B−1 b
x̄ x̄
|c B y k −c k|=máx {|c B y j −c j|: j∈ J 1 } C.entrada ; l =min { i : yi , k >0} C.Salida
yl , k y i ,k
x̄ x̄
Si maximizamos: |c B y k −c k|=min {|c B y j−c j|: j∈ J 1 } ; l =min { i : y i ,k > 0}
yl , k yi , k
6. Calcular la nueva base B' conseguida al sustituir en B la columna a k de N por la columna
al de B . Calcular el nuevo programa x̄ B ' (repetir algoritmo desde el paso 3)

Pivote

Es el denotado por y l , k >0


tal que la variable entrante es x k y la variable saliente es xl
Proposición 2.1 (fórmulas de cambio de base de pivotaje)

yl , j
y ' s , j= y s , j− · y : s∈ I −{l }+ {0 }; j∈{0,1 , ... , n}
yl, k s, k
y
y ' k , j = l , j : j∈{0,1 , ... , n }
yl , k

Base artificial

Si no se dispone de un programa básico incial factible se crea uno, para ello:


1. Poner el problema en la forma estándar.
2. Poner los b1 , ... bm ≥0 , multiplicando por -1 cuando sea necesario.
3. Aumentar la matriz A con columnas unidad de manera que contenga la
submatriz I m . La nueva matriz se denota por Aa

Problema aumentado

()
a
Es el PPL que cumple : minimizar z=cx sujeto a Aa x =b ; x a , x≥0
x

Vector de variables artificiales

Es el vector columnas añadido para obtener Aa =[I m , A], se denota por x a


Cada variable añadida se denota por x ai :i∈{1 ,... , p} y x a =( x1a , ... , x ap )t
Los vectores artificiales se añaden después de los de holgura, es decir,
los vectores artificiales complementan en caso necesario a los de holgura
de manera que se consiga una matriz identidad de tamaño m gracias a
las variables de holgura y a las variables artificiales.

Problema penalizado de método de las penalidades


p
Es el problema que cumple : Minimizar z =M ( ∑ x ai )+ cx
i=1

( )
a
sujeto a A x =b : x , x≥0 y M es una constante positiva
a a

x
superior en valor absoluto a cualquier número con el que se
compare en el trascurso de los cálculos.

Problema auxiliar del método de las dos fases


p
Es el problema que cumple : Minimizar ζ =∑ x ai sujeto a
i=1

( )
a
Aa x =b : x a , x≥0 ;(c B Y −c N )=c B Y
x
Fases del método de las dos fases

1. Determinar si el problema original es factible, en tal caso calcular


un programa inicial de base. Para ello se remplaza la función objetivo
por la función auxiliar, obteniedo el problema auxiliar. Resolver el problema
hasta que:
ζ =0 y la base actual no contiene variables artificiales. Pasar a 2.a
ζ =0 y la base actual contiene variables artificiales nulas. Pasar a 2.b
ζ >0 y mínimo. El problema original no tiene soluciones factibles
2. Encontar el programa óptimo usando el programa inicial de base. Para ello
se vuelve a tomar la función objetivo original z =cx y se untiliza la tabla simplex
2.a Se aplica el algoritmo del simplex a la matriz A ampliada con las variables de
holgura y de separaciónel, iniciando con la base obtenída en el paso 1.
2.b Se aplica Simplex, con la base obtenida en el paso 1 al problema original añadiendo
las restriccines : x j =0 : ζ j−c aj <0 al final de la fase 1 : caj = 0 si corresponde con una
variable original y 1 si corresponde con una artificial. ζ j es el equivalente a z j=c B Y .
Finalizar cuando se llega al óptimo (finito o infinito).

Programa básico degenerado

Es un programa en el que los valores de una o más variables básicas son cero

Proposición 2.3

La condición necesaria y suficiente para que una variable básica se haga nula
es que o bien entre en la base en sustitución por una que ya lo era, o bien que
el mínimo calculado por el criterio de salida del simplex no sea única.

Ciclaje del algoritmo del Simplex

Llegar mediante al algoritmo del Simplex a una Base de una iteración anterior.
Repitiendo el algoritmo indefinidamente si se sigue iterando.

Regla Lexicográfica para prevenir el ciclaje

Aplicar el criterio de salida modificado, este es :



1. Calcular min { i : y i , k >0} si el mínimo es único entonces i=l
yi , k
x̄ x̄
En caso contrario I 1={r ∈I : r =min{ i : y i , k > 0}}
yr , k yi , k

2. Calcular min { s , l : s ∈I 1 } Si el mínimo es único entonces s=l
y s,k
ȳ ȳ
En caso contrario I 2={r ∈I 1 : r ,1 =min{ s ,1 : s ∈ I 1 }}
yr , k ys , k
3. Repetir el proceso anterior definiendo I j , donde j indica el paso,
ȳ ȳ
a partir de I j −1 : I j={r ∈ I j−1 : r , j −1 =min { s , j−11 :s ∈ I j −1}}
yr , k y s,k
Problemas duales (Primal y Dual)

Son los dos siguientes problemas relacionados, el dual de uno da el otro:

[ ]
Sea A= F p =[C q ,C q +1 ] ,b t=[b p , b p+1 ] , c t=[c q , c q +1] , x t =[ x q , x q+1 ] , ut =[ u p , u p +1 ]
F p+1
Problema Primal Problema Dual
t
Minimizar z =c x :c ∈E n Maximizar w=bt u : b∈ E m
F p x≥b p u t C q≤cq
F p +1 x=b p+1 ut C q +1=cq +1
x≥0 ∀ x ∈x q u≥0 ∀ u ∈u p
cualquier x ∈x q +1 cualquier u ∈u p+1
Donde F p son las p primeras filas de A, y F p +1 las restantes filas de A desde la
fila p+ 1 incluida. Análogo con C q y C q+1 pero con las columnas. A∈ M m×n

Formas equivalentes

Forma mixta: Haciendo q=n⇒ ∄q+1


Forma canónica: Haciendo p=m , q=n⇒ ∄ p+1 , q+1
Forma estándar: Haciendo p+1=1 , q=n ⇒∄ p , q +1

Restricciones duales de un par de problemas duales

Son las restricciones del problema dual en forma canónica,esto es :


A x≥b : x ≥0 ∀ x ∈x u A≤c : u≥0 ∀ u ∈u

Proposición 2.5

Si x̄ y ū son programas de un par de problmas duales (programas duales)


entonces : c x̄≥ū b

Corolario 2.4

Dos programas duales son óptimos si c x̄≤ū b

Proposición 2.6

Si la matriz de restricciones es antisimétrica, At=− A, entonces tenemos un


sistema autodual : A x≥0 , x≥0 ∀ x ∈ x , tiene una solución x̄ : A x̄ + x̄ >0

Teorema 2.7

Una condición necesaria y suficiente para que un programa de un par de problemas


duales sea óptimo, es que exista un programa del otro problema : c x̄= ū b

Teorema 2.8 (Teorema débil de las holguras complementarias)

Una condición necesaria y suficiente para que sus programas sean óptimos es :
ū ( A x̄−b)=0
(c−ū A) x̄=0
Teorema 2.9 (Teorema fuerte de las holguras complementarias)

Si en un par de problemas duales factibles existe al menos un par de progrmas


óptimos, x̄ , ū , entonces se verifica (A x̄−b)+ ū t > 0 y ( c−ū A)+ x̄ t > 0

Proposición 2.8

Determinado un programa básico óptimo del problema primal en su forma


estándar, x̄ , con base asociada B . Entonces ū=c B B−1 es una solución
óptima para el problema dual. Además ū i=−( z n +i−cn +i )=−z n+i :i=1 ,... , m

Proposición 2.9

Si una solución es básica y factible tanto del primal como del dual, entonces
es una solución óptima.

Proposición 2.10

Sea B una base del primal y sean x̄ B =B−1 b y ū=c B B−1 . Supuesto x̄ B dual factible
B
1. Si ū no es un programa óptimo del dual, entonces x̄ no es primal factible.
2. Si existe x̄ l < 0 entonces se puede encontrar otro programa dual ū ' mejor que ū

Forma del algoritmo dual del Simplex

1. Determinar una base, B , del problema primal : z j −c j≤0 , j∈ J (ínidce columnas N de A)


z j=c B y j =c B B−1 a j , I es el índice de columnas de B respecto de A.
2. Si x̄ B= B−1 b≥0 entonces es un programa mínimo y se finaliza. En caso contrario
determinar I 1⊂I (es el conjunto de índices, s ) : x̄ s <0
3. Si ∃s ∀ j : y s , j≥0 entonces el primal no es factible y se finaliza. Si ∃ j ∀ s : y s , j <0
( z −c ) ( z −c j )
entonces determinar l : x̄l =min {x¯s } y determinar k :| k k |=min {| j |: y l , j < 0}
yl , k yl , j
4. Considerar la nueca base B ' obtenida la sustituir de B la columna a l por la a k . Calcular
los nuevos valores de x̄ B ' , z ' , Y ' usando las fórmulas de transformación, repetir el algoritmo
desde el paso 2.

Problema aumentado del algoritmo dual del Simplex

Es el siguiente problema:
Minimizar z = z̄ −∑ ( z j−c j ) x j :( z j−c j )>0 suejeto a :
j∈ J
x s + ∑ y s , j x j= x¯s : x̄ s <0 ; x 0 + ∑ x j =M (M =valor positivo tan grande como se quiera)
j ∈J j∈ J
x 0 , x s , x j≥0
Notas importantes

1. Modificar b puede dar lugar a que x̄ B deje de ser primal factible, pero es dual factible
2. Modificar c puede dejar de hacer óptima x̄ B y dejar de ser un programa dual.
Modificación de b

Sea b' =b+ δ b la modificación a b, entonces si


1. x ' B= x̄ B + B−1 (δ b)≥0 ⇒ x ' B es un programa óptimo
2. x s '= x̄ s + β s (δ b)<0 para algún s,entonces no es un programa.
Si no es un programa se reoptimiza mediante Dual Simplex

Modificar c

Sea c ' =c+ δ c entonces si:


1. z j '−c j≤0 ∀ j ⇒ x̄ B sigue siendo un programa óptimo. z̄ '= z̄ + δ c B x̄ B
2. z j '−c j > 0 para algún j ⇒ x̄ B no es mínimo. Se recalcula la primera
fila de la tabla del simplex y se continua con el algoritmo desde la última
tabla obtenida. No es necesario conocer explícitamente la inversa de B

Adición de una variable

Añadir una variable implica añadir una nueva columna en A y una componenete en c
1. Si c B B−1 an +1−c n +1≤0 el programa mínimo es invariante
2. Si c B B−1 a n+1−c n+1 >0 entonces se introduce la variable x n +1 en la base, aplicando
el algoritmo del Simplex a la última tabla completada con una nueva columna
correspondiente a la variable añadida.

Modificación de los coeficientes de A y c de una variable x

Las consecuencias de modficicar c es aplicable al alterar a j , c j de x j


Si se modifica a j ⇒ Si no pertenece a la base se aplica los razonamientos
de modificar c. Si es un vector de la base, la modificación a este pude no ser
una base, y si resulta ser una base, la solución asociada puede no ser factible
u óptima. Comprobamos en qué caso nos econtramos.

Adicción de una restricción

1. Si el programa óptimo original verifica las restricciones suplementarias


entonces será óptimo para el nuevo problema.
2. Si no se verifica el programa óptimo para alguna restricción, se debe volver
a calcularse el programa óptimo.

El algoritmo todo entero

El algoritmo básico
1. Usar la tabla del Simplex ''toda entera''.Resolver el problema de PLC.
1.1 Si no es factible el PLC no lo es el PLE, finalizar. Si es factible continuar.
2. Buscar una restricción de desigualda que haga no factible el PLC pero no altere
el PLE. Añadir esta restricción como última fila de la tabla Simplex. Continuar.
3. Usar el método Dual del Simplex (en su forma lexicográfica si es necesario).
3.1 Si el nuevo PPLC no es factible, el PPLE no tiene solución, Finalizar.
3.2 Si el nuevo PPLC es óptimo entero, el problema está resuelro. Finalizar.
3.3 En otro caso volver al paso 2.
La tabla del Simplex en PLE

Formato del PPLE para algoritmos de planos de corte


Maximizar x 0=a 00+ a 01(− x1 )+a 02 (−x 2 )+ ...+ a 0 n (−x n )
Sujeto a :
x1 = (−1)(− x 1)
x2 = (−1)(− x 2)

xn = (−1)(− x n)
x n+1 = a n+1,0 + a n+1,1 (− x 1)+a n +1,2 (−x 2 )+...+a n+ 1 ,n (−x n )

x n+ m = a n+m ,0 + a n+ m ,1 (−x 1 )+ a n+ m ,2 (−x 2 )+...+ a n+ m , n (−x n )
x t ≥0 y entero t=1 , ... , n+ m
Hay que tener en cuenta que: x 0=z ; a 00=0 ;−a 0 j =c j ; a n +i ,0=bi ; a n +i , j=ai , j
x n+i=variables de holguras: j=1 , ... , n ; i=1 ,... , m

Tabla de PLE (Algoritmo fraccional de Gomory?)

1 − x1 ⋯ −x j ⋯ −x
x0 = a 00 a 01 ⋯ a0 j ⋯ a0n
x1 = 0 −1 ≥0
⋮ ⋱ ⋮
xj = 0 −1 ≥0
⋮ ⋱ ⋮
xn = 0 −1 ≥0
x n +1 = a n +1,0 a n +1,1 ⋯ a n+1 , j ⋯ a n +1 , n ≥0
⋮ ⋮ ⋮ ⋮ ⋮ ⋮
x n+ m = a n+m ,0 a n +m ,1 ⋯ a n +m , j ⋯ a n +m , n ≥0

k-ésimo corte de Gomory


n
x n+m +k =− f v ,0 + ∑ (− f v , j)(− x J ( j ))≥0 : f v , j=a v , j−(a v , j ), j=0,1 ,... , n ;
j=1
y x n+m +k es la k-ésima variable holgura correspondiente a la k-ésima
desigualdad añadida. J ( j) es el j-ésimo elemento correspondiente al
conjunto de índices de las variables fuera de la base.(Fila fuente)

Proposición 3.1

Las restricciones de desigualdad añadidas como corte de Gomory, son coeficientes


enteros cuando se expresa en función de las variables no básicas originales.

Estrategias para la aplicación del algoritmo

Para la fila fuente


1. Seleccionar la primera fila en la que aprezca un término fraccional.
f
2. Selecionar la fila v : v 0 sea máximo
f vj
El algoritmo mixto

El algoritmo básico
1. Resolver el problema mixto sin considerar las restricciones de integridad.
1.1 Si no es factible el PC no lo es el PE, finalizar.
1.2 Si la solución óptima del PC toda variable entera toma valor entero, finalizar
se ha encontrado la solución óptima del problema mixto. En otro caso continuar.
2. Buscar una restricción de desigualda que haga no factible el PMC pero no altere
el PME. Añadir esta restricción como última fila de la tabla Simplex. Continuar.
3. Usar el método Dual del Simplex.
3.1 Si el nuevo PPLC no es factible, el PPME no tiene solución, Finalizar.
3.2 Si el nuevo PPLC es óptimo entero, el problema está resuelro. Finalizar.
3.3 En otro caso volver al paso 2.

k-ésimo corte de Gomory en el algoritmo entero-mixto


n
x n+m +k =− f v ,0 + ∑ (g v , j )(−x J ( j) )≥0 :
j=1
a vj si a vj ≥0 y x J ( j ) es una variable continua
f v0
a si a vj < 0 y x J ( j) es una variable continua
f v 0−1 vj
g vj =
f vj si f vj ≤ f v0 y x J ( j ) es una variable entera
f v0
(1− f vj ) si f vj > f v 0 y x J ( j ) es una variable entera
1− f v0

Algoritmo de ramificación y acotación

PL0 es el problema inicial sin la condición de integridad (hacer el problema continuo.)


Los PLi son los subproblemas cuya unión contiene la solución.
Paso inicial:
Definir z como cota inferior para el valor óptimo de PPE.
Inicialmente hacer z=−∞ , e i=0. Para minimizar.
1. Sondeo/Acontación. Selecionar un PLi (no selecionado) para resolver y sondear.
1.1 Sondear (Si PLi tiene solución óptima factible entera o no tiene soluciones factibles)
1.1.1 Si se ha encontrado una solución entera superior, pasarla como z. Si no volver a 1.
1.1.2 Si todos los PLi han sido investigados, finalizar. El óptimo está asociado con
el PLi con la mejor conta z.
1.2 Si el PLi tiene soluciones factibles no enteras continuar.
*
2. Ramficación. Selecionar una de las variables x j cuyo valor óptimo x j en la solución de
PLi no cumpla la condición de integridad (ser entero), solo una y de manera arbitraria.
2.1 Eliminar la región [ x *j ]< x j <[ x *j ]+1 :[ x *j ] es el mayor entero menor o igual que x *j
2.2 Crear dos subproblemas con las restricciones anteriores y se le añade:
a uno la restricción x j≤[ x j *], y a otro x j ≥[ x *j ]+ 1. Volver al paso 1.
Definición del modelo del transporte

Sean ai > 0 ,b j >0 y cij >0∈ℝ ∀ i , j :i=1 , ... , m; j=1 , ... , n ⇒


m n n m
Minimizar z =∑ ∑ cij x ij Sujeto a : ∑ x ij≤ai , ∑ x ij≥b j , x ij≥0
i=1 j=1 j=1 i=1
La oferta de cada origen es a i .La demandas de cada destino es b j
Los costes unitarios de cada transporte es c ij .La cantidad a transportar es x ij

Forma equilibrada del problema del transporte

Sean ai > 0 ; b j >0 ; cij >0 ∀ i , j


m n n m m n
Minimizar z =∑ ∑ cij x ij Sujeto a : ∑ x ij =ai , ∑ x ij=b j , x ij ≥0 , ∑ a i=∑ b j
i=1 j=1 j=1 i=1 i =1 j=1

Forma matricial del problema del transporte

Minimizar z =cx Sujeto a Ax=b , x≥0


t
x=( x 11 ,... , x 1 n , x 21 , ... , x 2 n , x m 1 , ... , x mn) , c=( c11 , ... , c 1 n , c 21 , ... ,c 2 n , c m 1 , ... , c mn )
b=( a1 ,... a m , b1 , ... , b n)t , A=(a 11 ,... , a1 n , a 21 , ... , a 2 n , a m 1 , ... , a mn )
Siendo a ij =e i +e m + j vectores columna de dimensión m+n, donde e i ∈ℝ m+ n es un
vector unitario con un 1 en el lugar i, y 0 en el resto (análogo con e m+ j )

Teorema 3.3

Un problema de transporte siempre es factible.


La región factible es acotada si lo son ai y b j

Teorema 3.4

La matriz A es de rango m+ n−1

Teorema 3.5

La matriz A es totalmente unimodular, es decir, toda submatriz cuadrada


de A tiene determinante igual a 0,1 ,−1

Teorema 3.6

Toda matriz básica de A es triangular superior

Corolario 3.4

Si los valores de a i ,b j son números enteros, entonces todo programa básico


toma valores enteros y existe al menos un programa óptimo entero.
Proposición 3.2

En una iteración cualquiera del Simplex aplicado al problema del transporte,


todos los elementos de una tabla del sistema de ecuaciones son ±1 o 0 . Además,
cada vector a ij puede obtenerse como combinación de sumas y restas de los vectores
de la base.

Algoritmo del Transporte

Algoritmo
1. Determinar una solución básica inicial factible.
2. Finalizar si tiene solución óptima, si no determinar la variable entrante.
3. Determinar la variable saliente
4. Obtener la nueva solución básica factible y volver al paso 2.

Método de la esquina noroeste (superior izquierda)

Para determinar una solución básica factible.


1. Hacer : x 11=min {^a1 , b^ 1 } y hacer a^ 1=a^ 1−x 11 y b^ 1=b^ 1−x 11
2. Hacer uno de los siguientes cambios :
2.1 Si a^ 1> b^ 1 ir a la casilla (1,2), y x 12=min {^a1 , b^ 2 } hacer a^ 1=a^ 1− x12 y b^ 2=b^ 2−x 12
2.2 Si a^ 1< b^ 1 ir a la casilla (2,1), y x 21=min {^a 2 , b^ 1 } hacer a^ 2= a^ 2−x 21 y b^ 1= b^ 1−x 21
2.1 Si a^ 1=b^ 1 se produce degeneración
3. Volver al paso 1 con la nueva casilla, finalizar cuando todas las ofertas y demandas
estén ajustadas al valor 0.
Las a i indican las filas y las b j las columnas.
Restamos el menor a la fila y columna y nos desplazamos en dirección del mayor.

Método Primal

Para las condiciones de optimalidad


1. Determinar los z ij −c ij sumando y restando los costes de algunas variables básicas.
1.1 Seguir un ciclo para ello : a ij =aik −a lk + a ls −...+ a nj
1.2 Hacer (z ij −c ij )=(c ik −c lk +c ls −...+c nj )−c ij
2. Si z ij −c ij ≤∀ ij ⇒ es óptimo. Si ∃ z kl −c kl > 0⇒ ∃ x kl : max {x kl }∈ B

Método Dual

Para condiciones de optimalidad


1. Resolver el sistema w=c B B−1 : B=( a pq , ... , st , e m +n) con m+n-1 columnas
y c B =(c pq , ... , c st , c a ):c a =0 costo asociado a la variable artificial. Por último
w=(u1 ,... , um , v 1 , ... , v n) vector de variables duales.
La varible artificial puede ser cualquier v j
Determinación de la variable saliente

1. Escoger la casilla que va a entrar en la base (k,l)


2. Determinar la variable que sale x B= x̄ B − y kl Δkl : y kl ∈{±1,0} dan representación a
la columna no básica (k,l) en función de las columnas básicas.
2.1 Determinar el valor de y kl siguiendo el ciclo. Δ=min {^xij }: los (i,j) tienen
representación básica +1 en la casilla (k,l). Δ decrece con +1, y crece con -1.
Método del menor coste

Para la determinación de la región factible


1. Asignar la mayor cantidad posible a la variable con menor coste unitario.
1.1 En caso de empate elegir una arbitrariamente.
1.2 Marcar la fila o columna que le asigna el menor costo (solo una).
1.3 La fila y la columna que satisfacen 1.2 pasan a tenerl el valor de la variable
2. Repetir el paso 1 con las filas y columnas no marcadas.
2.1 Volver al paso uno sobre las filas o columnas no marcadas, hasta que
solo quede una fila o columna sin marcar.
Método de aproximación de Vogel

Para la determinación de la región factible * Fila=f, Columna=c *


0. Comenzar con todas las casillas sin asignar
1. Calcular una penalidad para cada fila y cada columna, restando el coste más
pequeño de la f o c del siguiente coste más pequeño de la f o c
2. Identificar la f o c con penalidad máxima. Asignar la mayor cantidad a xij que
permita su f y c con menor coste la f o c seleccionada.
2.1 Ajustar las ofertas y demandas, y eliminar la f o c con oferta o demanda nula
2.2 Ajustar la otra a 0, y no considerarla y lo que sigue.
3. Finalizar si queda una únca f o c por eliminar.
4. Usar método de coste mínimo, si solo queda una f o c con ofertas/demandas +
para determinar las variables básicas en la f o c.
5. Si todas las f o c tiene ofertas/demandas ajustadas a 0, determinar las variables
básicas nulas por el método del coste mínimo.Finalizar.
6. En otro caso volver a calcular las penalidade para las f y c no eliminadas.

Algoritmo Húngaro

0. Obtener la matriz reducida de la matriz de costes. Si se pretende maximizar hay que cambiar
los signos de la matriz de costes, y luego obtener la reducida.
1. Trazar el mínimo número de líneas, s, sobre las filas y las columnas para cubrir todos los 0
de la matriz reducida.
1.1 Si s=m entonces se tiene la solución óptima. Finalizar.
1.2 En caso contrario continuar.
2. Seleccionar el mínimo elemento no cubierto.
2.1 Restar este valor a cada elemento no cubierto y sumarlo a cada elemento cubierto por
dos líneas. Volver al paso 1.
Determina los valores que minimizan.

Teorema 3.8

Si todos los elementos de la matriz de coste son enteros no negativos, y están acotados
superiormente ⇒ el algoritmo húngaro converge en número finito de iteraciones.

También podría gustarte