Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Apuntes de Investigacion Operativa PDF
Apuntes de Investigacion Operativa PDF
Investigación Operativa
Darío
Blanco
Iturriaga
con
la
colaboración
de
alumno
Anónimo
CURSO
2010-‐2011
UNIVERSIDAD
POLITÉCNICA
DE
MADRID
INGENIERÍA
EN
INFORMÁTICA
Forma
estándar
de
maximización
Antes
de
resolver
un
problema
por
el
método
del
Simplex
Primal,
debemos
asegurarnos
de
que
se
encuentre
en
forma
de
estándar
de
maximización,
para
lo
cual
deberá
cumplir
las
siguientes
propiedades:
1. La
función
objetivo
debe
ser
siempre
de
maximización.
Si
no
lo
fuera,
podemos
cambiar
el
sentido
de
la
optimización
con
un
simple
cambio
de
signo
de
la
función.
! !
!
max ! = !! ∙ !! ⟺ min ! = − !! ∙ !!
!!! !!!
! = −!′
2. Las
constantes
a
la
derecha
de
las
restricciones
(xB)
han
de
ser
no
negativas.
Si
no
lo
fueran,
podemos
transformar
las
restricciones
multiplicando
ambos
miembros
por
-‐1.
Esta
multiplicación
cambia
el
sentido
de
las
desigualdades.
! !
!!" ∙ !! ≤ !! ⟺ !!" ∙ !! + !! = !!
!!! !!!
! !
!!" ∙ !! ≥ !! ⟺ !!" ∙ !! − !! = !!
!!! !!!
4. Todas
las
variables
han
de
ser
no
negativas
(tener
una
restricción
de
no
negatividad).
Si
esto
no
fuera
así,
sustituiremos
las
variables
no
restringidas
por
la
resta
de
dos
variables
restringidas,
de
modo
que
el
resultado
final
pueda
ser
negativo.
!"# !! !" !"#$!%&'%() !! = !′! − ! !!! !"# ! !! ! !!! ≥ 0
Método
del
Simplex
Primal
¡ATENCIÓN!
Antes
de
aplicar
el
método
del
Simplex
Primal,
el
problema
DEBE
estar
en
forma
estándar
de
maximización.
7. Si
para
algún
valor
indicador
zj
–
cj
<
0,
su
vector
asociado
yj
tiene
todas
sus
componentes
negativas
(yj
<
0),
el
problema
es
no
acotado.
En
otro
caso,
es
posible
la
mejora:
ir
al
paso
8.
10. Construimos
una
nueva
tabla
vacía.
La
posición
del
elemento
pivote
la
rellenamos
con
un
1,
el
resto
de
la
columna
pivote
con
ceros.
Rellenamos
el
resto
de
la
fila
pivote
por
el
resultado
de
dividir
sus
antiguos
elementos
por
el
elemento
pivote.
El
resto
de
las
posiciones
de
la
tabla
se
rellenan
restando
al
elemento
que
iba
ahí,
el
producto
de
los
elementos
diagonales
en
las
filas-‐columna
pivotes,
divididos
por
el
propio
pivote.
Tablas
del
Método
del
Simplex
Primal
Construiremos
la
tabla
inicial
así:
COEFICIENTES
DE
LA
FUNCIÓN
OBJETIVO
VARIABLES
DE
LA
FUNCIÓN
VARIABLES
BÁSICAS
c1
c2
c3
…
cn
OBJETIVO
V.B.
x1
x2
x3
.
xn
xB
cB1
xB1
y11
y12
y13
.
y1n
val(xB1)
VALORES
cB2
xB2
y21
y22
y23
.
y2n
val(xB1)
DE
LAS
VARIABLES
COEFICIENTES
BÁSICOS
…
…
…
…
.
…
…
BÁSICAS
Método
de
las
dos
fases
Es
una
forma
alternativa
de
resolución
para
el
método
del
símplex
con
variables
artificiales
frente
al
método
de
las
penalizaciones,
adecuada
para
los
ordenadores
ya
que
no
pueden
utilizar
–M
para
simbolizar
una
cantidad
muy
grande
y
tienen
que
poner
un
número
enorme,
generando
errores
de
redondeo.
Inicialización
0. Poner
el
programa
en
forma
estándar
de
maximización,
añadiendo
variables
artificiales
si
es
necesario.
Fase
I
1. Crear
una
nueva
función
objetivo
artificial
zº
del
siguiente
modo:
Tomamos
la
función
objetivo
del
paso
0
(ya
en
forma
estándar
de
maximización
y
con
variables
artificiales)
y
cambiamos
los
coeficientes,
asignando
-‐1
a
las
variables
artificiales
y
0
al
resto.
2. Aplicamos
el
método
del
simplex
al
programa
construido
con
la
nueva
función
zº
y
las
restricciones
originales
salidas
del
paso
0.
El
proceso
termina
cuando
o
bien
el
valor
de
la
función
objetivo
artificial
zº
=
0,
o
bien
todo
valor
indicador
zj
–
cj
≥
0.
Si
no
hay
variables
artificiales
en
la
base
con
valor
positivo,
ir
al
paso
3.
En
otro
caso,
el
problema
es
infactible,
parar.
Fase
II
3. Tomamos
ahora
la
función
objetivo
original
z
y
asignamos
coeficiente
0
a
todas
las
variables
artificiales
que
aparezcan
en
la
base
(con
valor
0)
al
final
de
la
fase
I
y
prescindimos
de
todas
las
variables
artificiales
no
básicas,
así
como
de
sus
columnas
asociadas
en
la
tabla
final
de
la
Fase
I.
4. La
tabla
del
simplex
inicial
de
la
Fase
II
es
la
tabla
final
de
la
Fase
I,
pero
sin
las
columnas
de
las
variables
artificiales
que
no
figuran
en
la
función
objetivo
construida
en
el
paso
anterior
(paso
3).
Además,
hay
que
calcular
de
nuevo
los
valores
zj
–
cj
de
la
fila
indicador
como
ya
sabemos,
con
la
fórmula
!! − !! = !!! ∙ !! − !! y
el
valor
de
z,
con
los
valores
de
xB.
5. Si
la
función
construida
en
el
paso
3
no
tiene
variables
artificiales,
aplicar
el
método
del
Simplex.
En
otro
caso,
ir
al
paso
siguiente
(paso
6).
6. Aplicamos
el
método
del
Simplex
con
la
siguiente
modificación
en
la
regla
para
elegir
la
variable
de
salida:
“Si
xk
es
la
variable
de
la
columna
pivote
(xk
es
la
variable
de
entrada),
considerar
los
valores
yik
de
las
variables
artificiales
de
la
base
(es
decir,
los
elementos
del
vector
yk
que
corresponden
a
una
variable
artificial
de
la
base)
y
si
alguno
de
estos
es
negativo,
tomar
como
variable
de
salida
alguna
de
las
variables
artificiales
con
yik
<
0.
En
otro
caso
(no
hay
variables
artificiales
en
la
base
o
ningún
yik
correspondiente
a
dichas
variables
artificiales
es
negativo),
aplicar
la
regla
de
la
variable
de
salida
del
método
del
Símplex”.
Relaciones
estructurales
en
dualidad
Programa
lineal
en
forma
simétrica
1. El
objetivo
es
de
la
forma
de
maximización
o
minimización.
2. Todas
las
restricciones
son
desigualdades
de
la
forma
≤
si
el
problema
es
de
maximización
y
de
la
forma
≥
si
se
trata
de
un
problema
de
minimización.
NUNCA
hay
restricciones
que
sean
igualdades.
Si
las
hay
se
transforman,
dando
lugar
a
dos
desigualdades
por
igualdad.
3. Todas
las
variables
son
no
negativas.
Relaciones
algebraicas
en
Dualidad
Relaciones
algebraicas
en
dualidad
1. El
dual
del
problema
dual
es
el
primal
2. (Dualidad
débil)
El
valor
de
la
función
objetivo
z
del
problema
de
maximización
es
menor
o
igual
que
el
valor
de
la
función
objetivo
w
del
problema
de
minimización.
3. Si
ambos
problemas
tienen
soluciones
factibles,
ambos
tienen
soluciones
óptimas.
4. Si
el
primal
es
factible,
pero
no
acotado,
el
dual
es
infactible,
y
recíprocamente,
si
el
dual
es
factible
pero
no
acotado,
el
primal
es
infactible.
5. Si
el
primal
es
infactible,
el
dual
puede
ser
no
acotado
o
infactible,
y
recíprocamente,
si
el
dual
es
infactible,
el
primal
puede
ser
no
acotado
o
infactible.
6. Si
existen
soluciones
factibles
para
los
problemas
primal
y
dual
que
dan
igual
valor
a
los
respectivos
objetivos,
tales
soluciones
son
óptimas.
7. Los
valores
óptimos
z*
y
w*
de
los
problemas
primal
y
dual
son
iguales.
Método
del
Símplex
Dual
Este
método,
al
contrario
que
el
símplex
primal,
parte
de
una
base
dual
factible
y
se
mueve
por
bases
duales
factibles
hasta
alcanzar
una
base
que
sea,
además,
primal
factible.
Por
ello,
este
método
es
únicamente
aplicable
a
un
problema
que
sea
primal
infactible
y
dual
factible,
es
decir,
si
inicialmente
uno
o
más
xBi
son
negativos
y
todo
zj
–
cj
≥
0.
La
tabla
que
usa
el
símplex
dual
es
la
misma
que
la
del
símplex
primal
y
se
pretende,
manteniendo
la
optimalidad
o
factibilidad
dual
(zj
–
cj
≥
0),
tratar
de
alcanzar
la
factibilidad
primal
(xBi
≥
0,
∀!).
El
algoritmo
finaliza
(si
hay
solución
óptima)
cuando
todos
los
xBi
≥
0,
en
cuyo
caso
la
solución
es
primal
y
dual
factible.
Análisis
de
Sensibilidad:
Cambios
Discretos
El
análisis
de
sensibilidad
estudia
el
efecto
de
cambios
en
el
modelo
sobre
la
solución
óptima.
Utilizaremos
la
tabla
óptima
del
símplex
para
obtener
con
el
cambio
de
algún
dato
la
nueva
solución
óptima
sin
tener
que
resolver
el
problema
nuevamente.
Análisis
de
Sensibilidad:
Incorporación
Incorporación
de
una
nueva
restricción
A
veces
es
necesario
añadir
una
nueva
restricción
una
vez
que
ya
se
ha
modelizado
y
resuelto
el
problema.
Para
evaluar
su
efecto,
basta
con
comprobar
si
la
solución
óptima
x*
satisface
esta
nueva
restricción:
-‐ Si
la
satisface,
no
hay
efecto
y
la
solución
x*
sigue
siendo
la
óptima.
-‐ De
lo
contrario,
hay
que
realizar
el
siguiente
procedimiento:
1. Incorporar
la
nueva
restricción
a
la
tabla
final
(añadiendo
una
fila
encima
de
los
indicadores),
considerando
además
una
nueva
variable
de
holgura
si
fuera
necesario
(si
fuera
una
desigualdad).
2. Una
vez
incorporada
a
la
tabla,
hay
que
hacer
cero
los
elementos
yij
correspondientes
a
las
variables
básicas,
esto
lo
haremos
mediante
operaciones
matriciales
elementales
(sumarle
a
la
nueva
fila
algún
múltiplo
de
cualquier
otra
fila).
3. Si
una
vez
que
hechos
0
los
elementos
yij
la
tabla
no
es
factible
(hay
un
valor
xB
negativo),
aplicamos
el
símplex
dual
hasta
alcanzar
la
optimalidad.
Análisis
de
sensibilidad:
Programación
Paramétrica
La
programación
paramétrica
estudia
variaciones
continuas
en
el
modelo,
considerando
cambios
simultáneos
en
función
de
un
parámetro.
Problema
del
Transporte
El
problema
del
transporte
consiste
en
determinar
las
cantidades
que
hay
que
transportar
de
un
producto
homogéneo
desde
un
conjunto
de
orígenes
a
un
conjunto
de
destinos
con
coste
mínimo,
satisfaciendo
al
mismo
tiempo
tanto
unas
disponibilidades
de
producto
en
los
orígenes,
como
una
demanda
en
los
destinos.
En
el
problema
general,
que
podemos
representar
como
una
red,
tendremos:
-‐ m
orígenes
Oi
cada
uno
con
una
disponibilidad
ai
(i
=
1,
…,
m),
-‐ n
destinos
Dj
cada
uno
con
una
demanda
bj
(j
=
1,
…,
n)
-‐ Una
serie
de
costes
cij
asociados
a
transportar
una
unidad
entre
el
origen
Oj
y
el
destino
Dj
y
que
se
supone
constante.
Podemos
así
representar
el
problema
en
forma
de
red
o
como
un
problema
de
programación
lineal,
cuya
función
objetivo
minimizará
el
coste
de
transporte:
! !
!!" ≤ !! ! = 1, … , !
!!!
!
!!" ≥ !! ! = 1, … , !
!!!
!!" ≥ 0 ∀!, !
Si
la
suma
de
las
disponibilidades
en
los
orígenes
es
menor
que
la
suma
de
las
demandas
en
los
destinos
( !! < !! ),
nunca
se
podrán
satisfacer
las
demandas,
mientras
que
si
la
suma
de
las
disponibilidades
es
mayor
que
las
demandas
( !! > !! ),
entonces
habrá
unidades
en
los
orígenes
que
no
habrán
sido
transportadas.
Un
problema
de
transporte
está
equilibrado
cuando
la
suma
de
las
disponibilidades
es
igual
a
la
de
las
demandas
!! = !! .
Si
está
equilibrado,
las
desigualdades
de
las
restricciones
en
el
problema
lineal
pasan
a
ser
igualdades.
Para
equilibrar
un
problema
de
transporte,
seguimos
estas
dos
reglas:
-‐ Si
hay
menos
demanda
que
disponibilidad
( !! > !! )
creamos
un
destino
ficticio
cuya
demanda
es
el
exceso
de
disponibilidad:
!!!! = !! − !! .
-‐ Si
hay
más
demanda
que
disponibilidad
( !! < !! )
se
creará
un
origen
ficticio
cuya
disponibilidad
es
el
exceso
de
demanda:
!!!! = !! − !! .
Problema
del
transporte:
Forma
Matricial
A
continuación
se
presenta
la
forma
matricial
del
problema
del
transporte,
denominada
tabla
del
transporte.
Esta
forma
presenta
una
resolución
bastante
más
eficiente
que
resolver
el
programa
lineal.
DESTINOS
(incluidos
los
ficticios)
cualquiera
ya
rellena
(no
inicial)
O1
…
a1
c11
c12
c1n
DISPONIBILIDADES
O2
…
a2
c21
c22
c2n
:
:
:
…
:
:
Om
…
am
cm1
cm2
cmn
DEM
b1
b2
…
bn
COSTES
DEMANDAS
Esta
es
la
tabla
inicial
del
transporte,
sus
casillas
se
denominan
posiciones.
En
cada
posición
aparecen
tres
valores:
-‐ cij
es
el
coste
de
enviar
1
unidad
de
producto
desde
el
origen
Oi
al
destino
Dj.
-‐ αij
es
el
valor
indicador
y
nos
dice
si
una
solución
es
óptima
o
no.
-‐ xij
representa
las
unidades
de
producto
transportada
desde
Oi
hasta
Dj.
Solo
escribiremos
en
la
tabla
los
valores
de
xij
distintos
de
cero.
A
las
posiciones
que
tienen
asignado
un
valor
de
xij
entero
positivo
(distinto
de
cero)
las
llamaremos
posiciones
localizadas.
El
coste
total
del
transporte
asociado
a
cualquier
solución
factible
se
obtiene
sumando
los
productos
de
los
costes
por
las
unidades
asignadas
a
las
posiciones
localizadas.
Podríamos
enfrentarnos
a
problemas
de
transporte
que
tengan
beneficios
en
lugar
de
costes
multiplicando
los
beneficios
por
-‐1.
Si
no
estuviera
permitido
el
transporte
entre
determinados
orígenes
y
destinos,
les
asignamos
un
coste
grande.
Problema
del
Transporte:
Método
de
las
ε-‐Posiciones
El
método
de
las
ε-‐posiciones
sirve
para,
partiendo
de
una
solución
degenerada,
obtener
una
no
degenerada.
Decimos
que
una
solución
es
degenerada
cuando
tiene
menos
de
n
+
m
–
1
posiciones
con
valor
positivo
(llamadas
posiciones
localizadas
o
posiciones
básicas).
n
+
m
–
1
es
el
número
de
orígenes
más
el
número
de
destinos,
menos
uno.
Consiste
en
asignar
convenientemente
el
valor
ε,
que
se
supone
una
cantidad
positiva
próxima
a
cero,
a
posiciones
no
localizadas
hasta
alcanzar
m
+
n
–
1
posiciones
localizadas,
obteniendo
así
una
solución
no
degenerada.
Estas
ε-‐
posiciones
se
tienen
en
cuenta
durante
todo
el
proceso
de
solución
de
la
Fase
II
como
si
fueran
posiciones
básicas
y
únicamente
al
terminar
el
proceso
de
solución,
al
alcanzar
la
optimalidad,
se
hacen
los
e
iguales
a
cero.
La
asignación
de
ε-‐posiciones
se
hace
a
las
posiciones
independientes
con
costes
más
bajos,
definidas
como
aquellas
posiciones
vacías
para
las
que
no
es
posible
construir
un
ciclo.
Un
ciclo
se
construye
considerando
una
sucesión
de
segmentos
alternativamente
verticales
y
horizontales
con
orígenes
y
destinos
en
posiciones
básicas
y
que
comienza
y
termina
en
a
posición
vacía
inicialmente
elegida.
A
las
posiciones
del
ciclo
construido
se
le
asignan
alternativamente
las
designaciones
τ+
y
τ-‐,
comenzando
con
τ+
en
la
posición
vacía
inicial.
El
hecho
de
asignar
las
ε-‐posiciones
de
entre
las
posiciones
independientes
a
aquellas
de
menor
coste,
se
debe
a
que
esta
asignación
puede
conducir
más
rápidamente
a
la
solución
final.
Una
propiedad
importante
es
que
“siempre
se
puede
construir
un
ciclo
a
partir
de
una
solución
básica
factible”.
Esto
nos
permitirá
obtener
siempre
una
solución
no
degenerada
y
así
entrar
en
la
Fase
II.
Problema
del
Transporte:
Método
MODI
El
algoritmo
MODI
o
u-‐v,
utiliza
el
dual
del
problema
del
transporte
para
hallar
una
solución.
En
primer
lugar
debemos
definir
los
números
MODI.
Si
=
-‐ui
(número
MODI
de
la
fila
i)
y
Tj
=
-‐vj
(número
MODI
de
la
columna
j)
Estos
números
se
sitúan
en
las
respectivas
filas
y
columnas
a
la
derecha
y
en
la
parte
inferior
de
la
tabla
del
transporte.
El
valor
indicador
de
cada
variable
xij
es:
αij
=
Si
+
Tj
+
cij
Problema
de
la
Mochila
El
problema
de
la
mochila
consiste
en
que
un
excursionista
debe
elegir
entre
varios
objetos
para
transportar
en
su
mochila,
que
no
debe
exceder
de
determinado
peso
y
donde
el
objetivo
consiste
en
maximizar
el
valor
de
la
mochila,
es
decir,
de
los
objetos
que
se
eligen.
Consideremos
n
objetos,
donde
el
objeto
j
tiene
asociado
un
determinado
peso
pj
y
un
valor
vj.
Para
cada
objeto
hay
que
decidir
si
se
incluye
o
no
en
la
mochila,
de
manera
que
es
posible
definir
las
variables
de
decisión
1
si
se
incluye
el
objeto
j
en
la
mochila.
xj
=
0
en
caso
contrario.
El
problema
se
puede
formular
de
la
siguiente
forma:
!
max ! = !! ∙ !!
!!!
!
!. !. !! ∙ !! ≤ !
!!!
!! = 0 ó 1 ∀!
Donde
P
es
el
límite
de
peso
de
la
mochila.
Tenemos
así
un
problema
de
programación
entera
0-‐1
con
importantes
aplicaciones
a
problemas
reales,
como
el
de
corte
óptimo
(rollos
de
papel,
tela,
etc.),
empaquetamiento
de
piezas
o
carga
de
vasos
con
capacidad
limitada,
entre
otros.
El
lugar
más
probable
en
el
examen
para
encontrar
un
problema
de
este
tipo,
es
en
los
ejercicios
de
modelización.
Problema
del
Viajante
El
problema
del
viajante
de
comercio
o
del
cartero
chino
es
un
problema
entero
de
gran
dificultad
computacional.
Se
sustenta
en
el
hecho
de
que
un
viajante
tiene
que
visitar
todas
y
cada
una
de
n
ciudades
una
sola
vez,
regresando
a
la
ciudad
de
origen.
El
problema
que
debemos
resolver
es
en
qué
orden
debe
visitar
las
distintas
ciudades
para
que
el
coste
(o
distancia)
del
viaje
sea
mínimo.
Este
problema
se
puede
representar
de
manera
natural
mediante
una
red
cuyos
vértices
simbolizan
las
n
ciudades
y
los
arcos
las
rutas
entre
pares
de
ciudades,
teniendo
asociado
un
coste
cij.
La
designación
de
los
arcos
se
hace
de
acuerdo
con
el
orden
del
viaje,
de
manera
que
el
k-‐ésimo
tramo
va
a
estar
asociado
con
el
k-‐esimo
arco.
Definimos
así
las
siguientes
variables
de
decisión:
1,
si
el
k-‐ésimo
arco
de
la
ruta
va
de
la
ciudad
i
a
la
j.
xijk
=
0,
en
caso
contrario.
El
problema
se
puede
formular
de
la
siguiente
manera:
! ! !
!!"# = 1 (! = 1, … , !)
!!! !!!
! !
!!"# = 1 (! = 1, … , !)
!!! !!!
! !
!!"# = 1 (! = 1, … , !)
!!! !!!
!!"# = !!"(!!!)
!!! !!!
!!"# = 0 ó 1 ∀!, !, !
donde
el
primer
conjunto
de
restricciones
expresa
que
desde
cualquier
ciudad
i
únicamente
se
puede
ir
a
otra
ciudad;
el
segundo,
que
se
puede
asignar
una
única
ruta
a
un
determinado
arco
k
de
la
solución;
el
tercero,
que
se
puede
tener
un
arco
final
en
j
desde
solamente
otra
ciudad;
y
el
último,
que
suponiendo
que
el
k-‐ésimo
arco
finaliza
en
la
ciudad
j,
el
k
+
1
debe
tener
su
origen
en
esa
ciudad
j.
Esta
formulación
como
problema
0-‐1
lleva
a
programas
de
tamaño
muy
grande,
incluso
para
un
número
pequeño
de
ciudades.
Existen
otros
métodos
alternativos
de
solución,
más
eficientes,
pero
que
no
se
estudiarán.
Ramificación
y
Acotación
Llamamos
problema
lineal
relajado
(PR)
asociado
a
un
problema
lineal
entero,
al
mismo
problema
entero,
pero
prescindiendo
de
la
condición
de
que
sus
variables
sean
enteras.
Ramificación
y
Acotación
es
un
método
de
solución
de
programas
enteros
que
consiste
en
ir
particionando
el
conjunto
factible
continuo
del
problema
lineal
relajado
en
subproblemas
o
subconjuntos
también
continuos
(ramificación),
prescindiendo
de
aquellas
partes
del
conjunto
factible
del
problema
lineal
relajado
que
no
lo
sean
del
problema
entero.
Por
otro
lado,
la
acotación
se
refiere
a
la
cota
superior
(para
la
forma
de
maximización)
que
se
obtiene
del
problema
lineal
relajado
y
a
la
cota
inferior
que
se
obtiene
del
valor
de
los
objetivos
de
los
subproblemas
obtenidos
en
el
proceso
de
ramificación,
para
ordenar
las
soluciones
de
los
subproblemas
y
así,
determinar
la
solución
óptima
del
problema
entero,
descartando
conjuntos
que
no
contienen
el
óptimo.
Presentamos
el
algoritmo
sistemático
para
aplicar
este
método:
0. (Inicialización)
Resolver
el
problema
lineal
relajado
(PR)
asociado
al
problema
entero.
Si
la
solución
óptima
obtenida
es
entera,
parar
y
tal
solución
lo
es
del
problema
entero
(PE).
En
caso
contrario,
asignar
como
cota
inferior
al
valor
óptimo
del
objetivo
el
valor
–∞
o
bien,
si
fuera
posible,
el
valor
de
la
función
objetivo
en
algún
punto
factible
del
PE.
1. (Ramificación)
Mediante
alguna
regla
de
ramificación,
seleccionar
un
subconjunto
(o
subproblema)
de
soluciones
factibles
que
quede
sin
sondear
(inicialmente
se
selecciona
F)
y
una
componente
no
entera
de
la
solución
del
subproblema
en
cuestión.
Hacer
una
partición
en
el
subconjunto
elegido
en
dos
subconjuntos
más
pequeños,
obtenidos
al
añadir
restricciones
que
excluyan
los
valores
fraccionarios
de
la
componente
elegida.
2. (Acotación)
Para
cada
nuevo
subconjunto,
determinar
una
cota
superior
zS
para
el
valor
del
objetivo
del
PE.
3. (Sondeo)
Analizar
los
subconjuntos
que
pueden
contener
la
solución
óptima
y
considerar
como
terminales
aquellos
que
cumplan
alguno
de:
a. El
subconjunto
es
infactible
b. zS
≤
zI
c. zS
se
alcanza
en
un
punto
factible
para
el
PE
y
zS
>
zI
4. (Convergencia)
Si
todos
los
subconjuntos
son
terminales
parar
y
la
solución
óptima
viene
dada
por
c).
En
caso
contrario,
ir
al
paso
1.
Las
reglas
de
ramificación
(para
el
paso
1)
nos
deben
indicar
la
variable
no
entera
sobre
la
que
ramificar.
Es
importante
que
cuando
se
implementa
en
un
ordenador,
haya
una
regla
definida,
para
hacerlo
a
mano
escogeremos
aleatoriamente.
Para
elegir
algún
conjunto
no
sondeado
para
ramificación
podemos
usar
dos
reglas:
la
mejor
cota
(conjunto
con
mayor
valor
para
el
objetivo,
mayor
cota
superior)
o
la
cota
más
reciente
(selecciona
el
último
conjunto
surgido,
el
más
reciente).
0 1
p
p
1-p
Comportamiento
de
una
transición
Estudio
de
los
tiempos
de
permanencia
de
cada
cadena
en
cada
estado.
Es
la
probabilidad
de
que
la
cadena
permanezca
en
el
estado
i
exactamente
m
pasos.
Probabilidad
de
transición
para
dos
pasos:
𝑃(!) = 𝑃(!) 𝑃(!)
Probabilidad
de
transición
para
tres
pasos:
𝑃(!) = 𝑃(!) 𝑃(!)
Probabilidad
de
transición
para
MAXIMUM
pasos:
𝑃(!) = 𝑃(!)
Comportamiento
estacionario
Estudio
de
la
cadena
a
largo
plazo.
Consideramos
que
las
CMTD
son
siempre
finitas
(espacio
de
estados
finito).
CMTD
irreductible
Cuando
todos
los
estados
de
la
CMTD
se
comunican
entre
sí
(y
por
lo
tanto,
constará
de
una
sola
clase
de
equivalencia).
0.3 0.8
0 1 2
0.7
1
0.2
Ilustración
1
-‐
CMTD
irreductible
0 1 2
0.5
0.2 0.2
0.3
3
0.7
4
1 {3,4}
Ilustración
2
-‐
CMTD
no
irreductible
Estado
recurrente
Si
comenzando
en
el
estado
recurrente,
el
número
esperado
de
instantes
que
la
cadena
está
en
el
propio
estado
(o
clase
de
equivalencia)
es
infinito.
Es
decir,
una
vez
entra
el
proceso
en
él,
no
sale.
En
el
ejemplo
anterior,
la
clase
{3,4}
es
una
clase
de
equivalencia
recurrente.
Al
ser
una
CMTD
finita,
todos
los
estados
recurrentes
son
estados
recurrentes
positivos.
Estado
transitorio
Si
comenzando
en
el
estado
transitorio,
el
número
esperado
de
instantes
que
la
cadena
está
en
el
propio
estado
(o
clase
de
equivalencia)
es
finito.
Es
decir,
existe
la
posibilidad
de
que
se
pueda
salir
de
ahí.
En
el
ejemplo
anterior,
la
clase
{0,
1,
2}
es
una
clase
de
equivalencia
transitoria.
Estado
periódico
Su
período
es
mayor
que
1.
El
período
de
un
estado
se
calcula
con
el
máximo
común
divisor
del
número
de
pasos
necesarios
para
volver
a
ese
estado
(suponiendo
que
se
ha
partido
de
él).
Los
estados
de
una
clase
de
equivalencia
comparten
el
mismo
período,
calculando
el
período
de
un
estado
de
esa
clase,
sabremos
el
de
la
clase.
Estado
aperiódico
Cuando
su
período
es
1.
Estado
absorbente
Si
ningún
otro
estado
de
la
cadena
es
accesible
desde
él.
Estado
ergódico
Si
es
aperiódico
y
recurrente
positivo.
Si
todos
los
estados
de
la
CMTD
son
ergódicos,
se
la
considera
una
CMTD
ergódica.
0.2
{0,1}
0 1
0.8
0.6
4
{4} 0.5
2
0.5
3
{2,3}
Ilustración
3
-‐
Ejemplo
de
clasificación
de
estados
0.5
0 1
0.5
3 2
0.5
Teoremas
límite
Si
la
CMTD
es
irreductible
(si
no
lo
es,
debemos
coger
una
clase
de
equivalencia),
existirá
una
distribución
de
probabilidad
estacionaria.
Comportamiento
Estacionario
La
distribución
estacionaria
se
puede
definir
de
forma
análoga
a
la
de
las
CMTD.
Primero
voy
a
poner
la
fórmula
general
y
la
explicación
de
cada
variable
infernal,
de
esta
manera
se
crearán
las
llamadas
ecuaciones
de
equilibrio:
𝑣! 𝜋! = 𝑞!" 𝜋!
𝜋! = 1
!
𝜋! − 𝑝𝑟𝑜𝑝𝑜𝑟𝑐𝑖ó𝑛 𝑑𝑒 𝑡𝑖𝑒𝑚𝑝𝑜 𝑎 𝑙𝑎𝑟𝑔𝑜 𝑝𝑙𝑎𝑧𝑜 𝑞𝑢𝑒 𝑒𝑙 𝑝𝑟𝑜𝑐𝑒𝑠𝑜 𝑒𝑠𝑡á 𝑒𝑛 𝑒𝑙 𝑒𝑠𝑡𝑎𝑑𝑜 𝑗
𝑣! − 𝑡𝑎𝑠𝑎 𝑑𝑒 𝑎𝑏𝑎𝑛𝑑𝑜𝑛𝑜 𝑑𝑒𝑙 𝑒𝑠𝑡𝑎𝑑𝑜 𝑗 𝑐𝑢𝑎𝑛𝑑𝑜 𝑒𝑙 𝑝𝑟𝑜𝑐𝑒𝑠𝑜 𝑒𝑠𝑡á 𝑒𝑛 é𝑙
𝑣! 𝜋! − 𝑡𝑎𝑠𝑎 𝑎 𝑙𝑎𝑟𝑔𝑜 𝑝𝑙𝑎𝑧𝑜 𝑑𝑒 𝑑𝑒𝑗𝑎𝑟 𝑒𝑙 𝑒𝑠𝑡𝑎𝑑𝑜 𝑗
𝑞!" − 𝑡𝑎𝑠𝑎 𝑑𝑒 𝑖𝑟 𝑑𝑒𝑙 𝑒𝑠𝑡𝑎𝑑𝑜 𝑖 𝑎𝑙 𝑗 𝑐𝑢𝑎𝑛𝑑𝑜 𝑒𝑙 𝑝𝑟𝑜𝑐𝑒𝑠𝑜 𝑒𝑠𝑡á 𝑒𝑛 𝑒𝑙 𝑒𝑠𝑡𝑎𝑑𝑜 𝑖
𝑞!" 𝜋! − 𝑡𝑎𝑠𝑎 𝑎 𝑙𝑎𝑟𝑔𝑜 𝑝𝑙𝑎𝑧𝑜 𝑑𝑒 𝑖𝑟 𝑑𝑒𝑙 𝑒𝑠𝑡𝑎𝑑𝑜 𝑖 𝑎𝑙 𝑗
𝑞!" 𝜋! − 𝑡𝑎𝑠𝑎 𝑎 𝑙𝑎𝑟𝑔𝑜 𝑝𝑙𝑎𝑧𝑜 𝑑𝑒 𝑖𝑟 𝑎𝑙 𝑒𝑠𝑡𝑎𝑑𝑜 𝑗
Diréis,
pero
qué
es
esto.
Muy
sencillo.
El
famoso
v
hace
referencia
a
la
suma
de
las
tasas
de
“salida”
del
estado
j,
y
el
puñetero
q
serán
las
tasas
de
“entrada”
a
j
(de
los
estados
que
se
comunican
con
j).
El
sumatorio
de
π
del
final
es
igual
que
en
CMTD
(para
poder
sacar
las
soluciones).
2 2
0 1 2
4 4
Ilustración
1
–
Diagrama
de
transición
CMTC
2𝜋! = 4𝜋!
4 + 2 𝜋! = 2𝜋! + 4𝜋!
4𝜋! = 2𝜋!
𝜋! + 𝜋! + 𝜋! = 1
Se
despejan
y
a
tope
ahí
con
el
resultado,
ya
tenemos
las
proporciones
de
tiempo
que
el
proceso
estará
en
cada
estado.
Tiempo
medio
que
“algo”
pasa
en
el
sistema
(Fórmula
de
Little)
𝐿
𝑊 =
𝜆
𝑊 = 𝑊! + 𝑊!
𝑊! − 𝑡𝑖𝑒𝑚𝑝𝑜 𝑚𝑒𝑑𝑖𝑜 𝑞𝑢𝑒 algo 𝑝𝑎𝑠𝑎 𝑒𝑛 𝑙𝑎 𝑐𝑜𝑙𝑎
𝑊! − 𝑡𝑖𝑒𝑚𝑝𝑜 𝑚𝑒𝑑𝑖𝑜 𝑞𝑢𝑒 𝑎𝑙𝑔𝑜 𝑝𝑎𝑠𝑎 𝑒𝑛 𝑒𝑙 𝑠𝑖𝑠𝑡𝑒𝑚𝑎
Proporción
de
tiempo
que
hay
cierto
estado
en
el
sistema
Al
hacer
las
ecuaciones
de
equilibrio,
el
resultado
de
𝜋!
es
la
proporción
de
tiempo
del
estado
i
en
el
sistema.
Número
medio
de
“algo”
que
está
siendo
procesado,
por
unidad
de
tiempo,
en
el
sistema
Se
tienen
en
cuenta
todos
los
π
correspondientes
a
estados
donde
se
está
procesando
algo
en
el
sistema.
Se
le
llama
𝐿! .
p+q+r = 1
3 r z
Servidor 1 Servidor 2
En
este
caso,
llegan
clientes
con
lambda
3
al
servidor
1,
pero
al
procesarles,
pueden
volver
a
este
servidor
con
probabilidad
p,
ir
al
servidor
2
con
probabilidad
r
o
abandonar
el
sistema
con
probabilidad
q.
A
su
vez,
al
procesar
a
los
clientes
en
el
servidor
2,
abandonan
el
sistema
(z
sería
probabilidad
1).
Por
lo
tanto,
para
este
caso
en
particular,
las
tasas
se
calculan
de
la
siguiente
manera:
Λ! = 3 + pΛ!
Λ! = 𝑟Λ!
Ahora
habría
que
despejar
las
ecuaciones.
Cálculo
de
la
probabilidad
de
que
haya
n
clientes
en
el
nodo
El
número
de
clientes
de
cada
nodo
es
independiente
del
número
del
resto.
Se
llega
a
estas
fórmulas
gracias
al
teorema
de
Burke.
!
Λ! ! Λ!
𝜋! = 1− − 𝑝𝑟𝑜𝑏. 𝑑𝑒 𝑛 𝑐𝑙𝑖𝑒𝑛𝑡𝑒𝑠 𝑒𝑛 𝑒𝑙 𝑛𝑜𝑑𝑜 1
𝜇! 𝜇!
!
Λ! ! Λ!
𝜋! = 1− − 𝑝𝑟𝑜𝑏. 𝑑𝑒 𝑛 𝑐𝑙𝑖𝑒𝑛𝑡𝑒𝑠 𝑒𝑛 𝑒𝑙 𝑛𝑜𝑑𝑜 1
𝜇! 𝜇!
𝜋!,! = 𝜋!! 𝜋! !
(𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛 𝑒𝑠𝑡𝑎𝑐𝑖𝑜𝑛𝑎𝑟𝑖𝑎 𝑝𝑎𝑟𝑎 𝑑𝑜𝑠 𝑛𝑜𝑑𝑜𝑠)
Es
importante
darse
cuenta
de
que
si
nos
piden
el
número
de
clientes,
su
variable
es
una
potencia
(n
ó
m).
Ese
número
de
clientes
son
variables
aleatorias
independientes.
Bibliografía