Sie sind auf Seite 1von 41

Programacin entera

En muchos problemas reales las variables slo pueden tomar


valores enteros
Ejemplos:
decisiones sobre inversiones, compras, arranques, etc.
Cantidades de productos no divisibles, personas, etc.
Problemas con el mtodo Simplex:
soluciones no estn en vrtices
cmo saber si tenemos una solucin?
2
Programacin entera
Problema entero puro:
min c
T
x
s.a Ax = b
x > 0
x
i
entera i
Problema entero mixto:
min c
T
x
s.a Ax = b
x > 0
x
i
entera i e I
3
Programacin entera
Por simplicidad: problema entero puro
Mtodos tambin aplicables al problema mixto
Dificultad principal:
no podemos emplear aproximaciones basadas en la
continuidad de las funciones del problema
no podemos extraer conclusiones para puntos prximos
4
Programacin entera
La solucin no tiene que estar en un vrtice, ni contigua
a un vrtice
Solucin relajada
Solucin entera
5
Programacin entera
Mtodos de solucin:
Comparar todas las alternativas (no es eficiente)
Procedimientos eficientes para seleccionar o descartar
alternativas
Basados en la aproximacin del problema mediante problemas
lineales (que sabemos resolver)
6
Programacin entera
Procedimiento ms simple:
ignorar la condicin de que las variables sean enteras, y
redondear la solucin
Inconvenientes:
tiene significado la solucin no entera?
cmo se redondea la solucin?
cmo se obtiene una solucin redondeada factible?
cundo es ptima una solucin redondeada?
7
Programacin entera
Mtodo ms sofisticado:
introducir restricciones adicionales que no eliminen
soluciones enteras (cubierta convexa)
Si las soluciones enteras son vrtices, podemos aplicar el
mtodo Simplex
Inconvenientes:
Cmo se calculan las restricciones necesarias?
Cuntas hacen falta?
8
Programacin entera
Cubierta convexa
9
Programacin entera
Mtodos ms eficientes:
Combinacin de ideas
se aaden restricciones que aproximan la cubierta convexa
(planos de corte), o
se aaden restricciones que eliminan puntos que no pueden
ser solucin (branch and bound)
se resuelven problemas lineales relajados
10
Programacin entera
Mtodo de branch and bound
Se trata de:
dividir la regin factible, y
descartar aquellas partes en las que no puede encontrarse la
solucin
Partes que no pueden descartarse:
se calcula la solucin por el mtodo Simplex, o
se subdividen en nuevas partes aadiendo restricciones
11
Programacin entera
Procedimiento:
Dado el problema min c
T
x
s.a Ax = b
x > 0
x
i
entera i
se resuelve su versin relajada (P
0
)
Si la solucin de (P
0
) es entera, se termina
Si no lo es, se subdivide el problema en varios
12
Programacin entera
Divisin del problema
Supongamos que la solucin del problema relajado es
x
k
*
, y que (x
k
*
)
i
no es entera
En la solucin (entera) se cumplir una de las dos
condiciones siguientes:
x
i
s (x
k
*
)
i
, x
i
> (x
k
*
)
i
+ 1
donde x

denota la parte entera de x
13
Programacin entera
Divisin del problema
Se generan los dos problemas siguientes:
P
1
= P
0
{x
i
s (x
k
*
)
i
}, P
2
= P
0
{x
i
> (x
k
*
)
i
+1}
En general, se tiene una lista de problemas pendientes de
resolver
Se toman los problemas de la lista, y se resuelven hasta que la
lista queda vaca
14
Programacin entera
Ejemplo grfico
Solucin P0
Solucin P1 Solucin P2
Solucin P3
P4 no factible
Solucin entera
15
Programacin entera
P0: NE
P3: E
P4: NF
P2: NE
P1: NE
P5: NE
P9: NF
P8: E
P7: NE
P6: NF
P10: NE
P12: B
P11: E
16
Programacin entera
Qu sucede al resolver subproblemas?
Subproblema no factible:
nada
Subproblema con solucin no entera:
se generan nuevos subproblemas
Subproblema con solucin entera:
se compara con la mejor solucin entera hasta el momento
17
Programacin entera
Eliminacin de nodos
Mtodo no eficiente si es necesario examinar todos los
subproblemas
Nmero de subproblemas: ~ 2
n

Eliminar subproblemas:
si la funcin objetivo ptima del problema relajado cumple
ciertas condiciones
18
Programacin entera
Eliminacin de subproblemas
Basada en mejor solucin entera
Mejor valor de la funcin objetivo para una solucin entera
(hasta el momento): z
Si para un subproblema se cumple
c
T
x
k
*
> z
descartar el subproblema (y todos los subproblemas que se
generen de l)
Todas sus soluciones enteras son peores que z
19
Programacin entera
Seleccin de subproblema
Anlisis en profundidad del rbol de subproblemas
Se toma el ltimo subproblema generado
Se obtienen rpidamente soluciones enteras
Alternativa: bsqueda en extensin
Se examinan primero todos los problemas de un nivel dado
20
Programacin entera
Arbol de subproblemas
P0
P8
P5
P1
P6 P4 P3
P7
P2
P9
P11
P10
P12
- Bsqueda en profundidad:
P0, P1, P3, P4, P2, P5, P7
P9, P10, P11, P12, P8, P6

- Bsqueda en extensin:
P0, P1, P2, P3, P4, P5, P6,
P7, P8, P9, P10, P11, P12
21
Programacin entera
Generacin de nuevos subproblemas:
Qu variable no entera se escoge para generar los
subproblemas?
Aquella que permita obtener la solucin ms rpidamente
Aquella que d un menor valor de la funcin objetivo (ms
cerca de la solucin)
Como el valor de la funcin objetivo relajada aumenta, variable con
menor aumento
22
Programacin entera
Estimacin de cambios en la f. objetivo:
x
i
x
i

La variable i es bsica y pasa a ser no bsica
Una variable no bsica debe pasar a ser bsica
x
i
+ (B
-1
N )
i
x
N
= (B
-1
b )
i

x
i
+ (B
-1
N )
i
x
N
= (B
-1
b )
i

c
T
(x - x ) > (x
i
- x
i
) min
k
(-c
k
/n
ik
)
Se escoge la variable i con el menor cambio
23
Programacin entera
Resolucin de subproblemas
Dado un subproblema resuelto, aadimos una
restriccin al subproblema
La ltima solucin no cumple la restriccin
Aplicamos el mtodo dual del Simplex:
Ponemos la restriccin en forma estndar
Aadimos la restriccin a la tabla
Aplicamos el mtodo dual
24
Programacin entera
Ejemplo:
max 8x
1
+ 9x
2

s.a 76 x
1
+ 68 x
2
s 767
-38 x
1
+ 32 x
2
s 29
2 x
2
> 3
x > 0 entera
Solucin del problema relajado:
x
1
= 9/2 , x
2
= 25/4
o
3
= -299/2508 , o
4
= -70/2508
25
Programacin entera
Nuevas restricciones:
x
1
s 4 , x
1
> 5
Primer subproblema:
x
1
+ s
4
= 4 , s
4
> 0
Nueva solucin del primer subproblema:
x
1
= 4 , x
2
= 181/32
o
4
= -9/32 , o
4
= -299/16
26
Programacin entera
Mtodos de planos de corte
Alternativa a mtodos branch and bound
Introducir nuevas restricciones
sin dividir el problema
sin eliminar soluciones enteras
Objetivo: solucin del problema relajado = solucin del
problema entero
27
Programacin entera
Planos de corte
Condiciones sobre las nuevas restricciones (cortes):
No eliminar soluciones enteras
Eliminar la ltima solucin
Forma de las restricciones:
Restricciones lineales generales
28
Programacin entera
Planos de corte de Gomory
Nuevas restricciones se generan a partir de solucin del
problema relajado
Suponemos que todas las variables han de ser enteras y
no negativas
Basados en estudiar la parte entera y la fraccionaria de
las restricciones
29
Programacin entera
Planos de corte de Gomory
Supongamos una solucin relajada no entera
Variable bsica i-sima no entera
Restriccin correspondiente
x
i
+
k
n
ik
x
k
= b
i

Lado derecho no entero (variable no entera)
30
Programacin entera
Planos de corte de Gomory
Justificacin de la expresin del corte
Por ser las x positivas,
x
i
+
k
n
ik
x
k
= b
i
x
i
+
k
n
ik
x
k
= b
i

Por ser las x enteras,
x
i
+
k
n
ik
x
k
= b
i
x
i
+
k
n
ik
x
k
= b
i

31
Programacin entera
Planos de corte de Gomory
Combinando la restriccin inicial con la nueva,

k
(f
n
)
ik
> (f
b
)
i

Nueva restriccin a aadir al problema
La cumplen todas las soluciones enteras
No la cumple la ltima solucin
Resolucin eficiente: mtodo dual del Simplex
32
Programacin entera
Ejemplo de planos de corte
Problema entero anterior. Solucin:
x
1
= 9/2 , x
2
= 25/4
16/2508 -34/2508
N = 19/2508 38/2508
38/2508 76/2508
Nueva restriccin
16/2508 s
1
+ 2474/2508 s
2
> 1/2
16 s
1
+ 2474 s
2
- 2508 s
4
> 1254 , s
4
> 0
33
Programacin entera
Ejemplo
34
Corte 1 , x1
Corte 1 - x2 Corte 2 , x2
min -x
1
- x
2

s.a 4x
1
- 2x
2
- s
1
= 3
4x
1
+ 2x
2
+ s
2
= 9
x , s > 0
Programacin entera
Limitaciones del procedimiento
La ecuacin que define el corte es vlida si todas las
variables son enteras
Los datos del problema (A, b, c ) han de ser enteros
Las variables de holgura han de introducirse sobre
restricciones con coeficientes enteros
35
Programacin entera
Convergencia
Al resolver un problema relajado
Problema no factible
el problema entero no es factible
Problema no acotado
el problema entero no est acotado (slo para el primer problema)
Problema ptimo con solucin entera
es la solucin del problema entero
Problema ptimo con solucin no entera
introducir cortes
36
Programacin entera
Convergencia finita
Si se siguen las reglas:
Se introducen cortes tambin sobre la funcin objetivo
Se selecciona la primera de las variables bsicas que toman
valores no enteros
La funcin objetivo se toma como la primera variable
37
Programacin entera
Cortes sobre la funcin objetivo
Se introduce una nueva restriccin
x
0
-
i
c
i
x
i
= 0
Variable x
0
siempre bsica. Corte:
1 -c
T
0 1 -c
b
T

A = , b = , B =
0 A b 0 B
1 0 -c
n
T
+ c
b
T
B
-1
N c
b
T
B
-1
b
B

-1
A = , B
-1
b =
0 I B
-1
N B
-1
b
38
Programacin entera
Cortes sobre la funcin objetivo
De los resultados anteriores, el corte

k
(f
-o
)
k
x
k
> f
z

se obtiene de las partes fraccionales de
-c
n
T
+ c
b
T
B
-1
N = -o
n
, c
b
T
B
-1
b = z
Valores de los multiplicadores, cambiados de signo
39
Programacin entera
Problemas enteros mixtos
Si algunas variables no son enteras,

keI
f
ik
x
k
+ f
i 0
/(1-f
i 0
)
keJ
(1-f
ik
)x
k
+
keK
n
ik
x
k

- f
i 0
/(1-f
i 0
)
keL
n
ik
x
k
> f
i 0

I = {i eE : f
ik
< f
i 0
}, J = {i eE : f
ik
> f
i 0
},
K = {i eE : n
k
> 0 }, L = {i eE : n
k
s 0 }
No es posible introducir cortes sobre la funcin
objetivo (convergencia)
40
Programacin entera
Mtodo Simplex dual
M M t to od do o s si im mp pl le ex x M M t to od do o s si im mp pl le ex x d du ua al l
V V r rt ti ic ce e i in ni ic ci ia al l F Fa ac ct ti ib bl le e ( (x x > > 0 0) )
N No o p pt ti im mo o ( (o o
i i
< < 0 0) )
O Op pt ti im mo o ( (o o > > 0 0) )
N No o f fa ac ct ti ib bl le e ( (x x
i i
< < 0 0) )
D Di ir re ec cc ci i n n d de e
m mo ov vi im mi ie en nt to o
p p
n n
= = e e
i i
B B p p
b b
= = - - N N e e
i i
A Ao o
b b
= = e e
i i
, , B B
T T
A A = = - -A Ao o
b b
A Ao o
n n
= = - -N N
T T
A A
L Lo on ng gi it tu ud d d de e
p pa as so o
x x
b b
+ + o o p p
b b
> > 0 0 o o
n n
+ + o o A Ao o
n n
> > 0 0
C Co om mp pr ro ob ba ac ci i n n
m mu ul lt ti ip pl li ic ca ad do or re es s
o o
n n
= = c c
n n
N N
T T
B B
- -T T
c c
b b
> > 0 0 x x
b b
= = B B
1 1
b b > > 0 0
41

Das könnte Ihnen auch gefallen