[71.14] Modelos y Optimización I

Transcripción

[71.14] Modelos y Optimización I
Modelos y Optimización I
María Inés Parnisari
7 de enero de 2012
Índice
1. Deniciones
2
2. Método Simplex
2
3. Problemas
4
4. Modelización
10
5. Heurísticas
10
1
1 Deniciones
Investigación operativa: aplicación de la ciencia moderna a problemas complejos que aparecen en la administración de sistemas formados por personas, materiales, equipos y dinero. Su característica es la elaboración
de modelos cientícos que mediante la incorporación de factores de riesgo e incertidumbre permitan evaluar
decisiones.
1.1 Supuestos básicos de la programación lineal
1.
2.
Proporcionalidad: el benecio y el uso de recursos son directamente proporcionales al nivel de actividad.
Aditividad: no existen interacciones entre las actividades que cambien la medida total de la efectividad
o el uso total de algún recurso.
3.
Divisibilidad: pueden permitirse valores fraccionarios.
4.
Certeza: todos los parámetros del modelo son constantes conocidas.
1.2 Elementos de un modelo
Análisis del problema
Objetivo: ¾qué hacer? ¾cuándo? ¾para qué?
Hipótesis: supuestos aceptados como verdaderos
Actividad: procesos que se realizan en el sistema, caracterizados por consumir recursos y generar resultados económicos
Variables: indican el estado de una actividad
•
Continuas: miden
•
Enteras: indican
2 Método Simplex
Algoritmo 1 Método simplex
1.
Transformar las desigualdades en igualdades, agregando variables slacks o variables
artificiales
2.
Mover las constantes a los 2dos miembros
3.
Armar la tabla
4.
Mientras hay algún zj − cj negativo (zmax ) o positivo (zmin ):
a ) Elegir la variable que entra:
1)
2)
Menor zj − cj (zmax )
Mayor zj − cj (zmin )
b ) Elegir la variable que sale:
1)
Menor θ positiva (o θ = 0 si aij > 0)
c ) Armar nueva tabla:
1)
2)
3)
Dividir la fila del pivote por el pivote
Aplicar el método del rectángulo para las demás filas
znuevo = zviejo − θmin · (zj − cj )variable que entra a la base
2
2.1 Teoremas
Teorema 1. El conjunto de todas las soluciones factibles a un problema de programación lineal es un poliedro
convexo.
Teorema. El funcional alcanza su mínimo (o máximo) en un punto extremo del poliedro convexo.
Teorema 2. El número de vértices del conjunto factible del problema es:
m+n
m
=
(m + n)!
m!(m + n − m)!
donde n es la cantidad de variables reales y m es la cantidad de ecuaciones.
2.2 Análisis de variables
Cj
Xj
Bj
aij
Coeciente en el funcional de cada
Xj
Variable que forma parte de la base (nivel de actividad
Valor de
Xj
j)
en la base (las que no están valen 0)
Cuánto disminuye el valor de
Xi [f ila]
por cada unidad de
Xj [columna]
que
decida fabricarse o que sobre
zj − cj
Yj
Costo de oportunidad si
Xj está
j
en la base; Valor marginal de un
Xj
slack
Valor marginal del recurso
Recurso saturado: recurso con cero sobrante. Equivale a tener una variable slack xj = 0.
P
Lucro cesante: ∀i U soRecursoi · V alorM arginalRecursoi
Valor marginal
Costo de oportunidad
Variable real
Cuánto va a empeorar el funcional si
debemos fabricar una unidad de ese
producto
Variable slack
Cuánto va a mejorar el funcional si se
tiene una unidad más de ese recurso
2.3 Análisis de sensibilidad
El
análisis de sensibilidad
se efectúa en todo estudio de programación lineal porque la mayoría de los
parámetros utilizados en el modelo suelen ser solamente estimaciones de condiciones futuras.
1. Variación de los
cj
El rango para que la solución óptima siga siéndolo es
2. Variación de los
cj
tal que
zj − cj ≥ 0 (zmax )
bj
El análisis se hace tomando la tabla del problema dual y analizando los
3. Variación simultánea de varios
bj
El análisis se hace tomando la tabla del problema dual y analizando los
4. Variación simultánea de varios
cj
Primero analizar los cambios de
cambios de
y varios
bj
bj
5. Curva de oferta
Es un gráco de la variación de cada
Xj
en función de
2.4 Dualidad
Dual
Maximizar:
z=
Pn
j=1 Cj
Sujeto a:
· Xj
Xj ≥ 0 ∀j
j=1 aij · Xj ≤ Bj ∀i
Pn
Minimizar:
W =
Pm
i=1
Bj · Yi
Sujeto a:
Pm
i=1
bj
en el problema dual, y luego hacer el dual del dual para analizar los
cj
Primal
cj
Yi ≥ 0 ∀i
aij · Yi ≥ Cj ∀j
3
Cj
2.4.1 Teorema fundamental de la dualidad
1.
X
tiene solución óptima nita
2.
X
es poliedro abierto
3.
X
es incompatible
⇐⇒Y
⇐⇒(Y
⇐⇒Y
tiene solución óptima nita
es incompatible
es incompatible)
∨ (Y
es poliedro abierto)
2.4.2 Modicaciones al problema original
1. Agregar un producto:
a)
La columna del producto en la tabla óptima será:
y = A·x donde A es la matriz inversa óptima (tiene
1
las columnas de la tabla óptima que corresponden a la matriz identidad del 1er paso, ordenados ), y
x
b)
es el vector de coecientes del producto.
Con la nueva tabla formada, calcular el
2. Cambios en los
zj − cj
y proseguir normalmente.
Cj
Reemplazar en la tabla nal en todos los lugares que aparezcan y recalcular los
3. Cambios en los
zj − cj
involucrados.
Bj
Realizar (2) tomando la tabla del dual.
4. Agregar una restricción
a)
b)
Vericar si la nueva restricción no afecta a la solución actual.
Si afecta, realizar (1) tomando la tabla del dual. Recordar que si había un coeciente negativo en el
funcional del primal, habrá un coeciente de
x
negativo.
2.5 Tipos de soluciones
Punto
degenerado
Cuándo
Solución
alternativa
Acumulación de
Hay otro vértice
vértices en un
del poliedro con el
punto
mismo
Poliedro abierto
Incompatible
No existe solución
No existe solución
óptima
factible
Hay una variable
En la tabla óptima
z
Tabla anterior:
empate de
En Simplex
θ
mínimos. Tabla
actual:
Bk = 0
para una variable
zj − cj = 0
de una
variable que no
está en la base
que quiere entrar a
hay una variable
la base pero
articial en la base
ninguna puede salir
con
Bk 6= 0
de la base
Gráco
3 Problemas
3.1 Problema de análisis de actividad
Datos:
n
m
1 Si
actividades
recursos
la matriz identidad del 1er paso incluye a variables articiales, no utilizar éstas, sino las reales cambiadas de signo.
4
Bi =disponibilidad
aij =cantidad
ci =ganancia
del recurso
de recurso
i
i
que consume la actividad
unitaria de la actividad
j
i
Problema: encontrar la intensidad de trabajo de las actividades, para maximizar la ganancia total.
Denición de variables:
xi =intensidad
de la actividad
i
Funcional:
Pn
· xi
i=1 ci
Zmax =
Modelización:
1. La cantidad de recursos utilizados no puede superar la disponibilidad del recurso
Pn
j=1
aij · xj ≤ Bi
para todo
i
2. Condición de no negatividad
xi ≥ 0
i
para todo
3.2 Problema de centros de producción
Problema: determinar cuánto producir y cuánto insumo consumir en cada centro de producción.
Modelización:
1. Relación E/S:
M ERM A ·
P
Entradai Ck =
P
Salidai Ck
2. Mezcla a la entrada:
%dDEi ENk ·
P
Entradai Ck = Entradai Ck
3. Mezcla a la salida:
%DEi ENk ·
P
Salidai Ck = Salidai Ck
4. Capacidad productiva:
HS.P ORkG.Ck ·
P
Entradai Ck ≤ Cap.Hs.Ck
3.3 Problema del viajante
Datos:
n
ciudades
Cij =costo
de ir de la ciudad
Simetría (Cij
= Cji )
i
a la ciudad
o asimetría (Cij
j
6= Cji )
del problema
Problema: encontrar el orden en el cual un viajante visita las ciudades para minimizar la distancia total recorrida.
Cada ciudad debe ser visitada solo una vez, y al terminar el recorrido debe volverse a la ciudad de origen.
Denición de variables:
(
Yij =
1
0
Ui =orden
si va de la ciudad
i
a la ciudad
j
directamente
si no
de visita de la ciudad
i, {1, 2, . . . , n}
Funcional:
5
Zmin =
Pn
i=0
Pn
j=0
Cij · Yij
Modelización:
1. Hay solo una ciudad después de
Pn
j=0
Yij = 1, ∀i, i 6= j
2. Hay solo una ciudad antes de
Pn
i=0
i
j
Yij = 1, ∀j, i 6= j
3. Evitamos subtours
Ui − Uj + n · Yij ≤ n − 1, ∀i, j i 6= j
3.4 Problema de distribución
Datos:
m
n
Orígenes / Suministros
Demandas / Destinos
Cij =costo
de enviar el producto desde el origen
i
al destino
Si =cantidad
de producto disponible en el suministro
i
Di =cantidad
de producto demandada por el destino
i
j
Hipótesis:
Cualquier origen puede enviar producto a cualquier destino
Producto homogéneo
Costos lineales
Problema: determinar qué origen le envía a cuál destino para minimizar los costos de transporte.
Denición de variables:
Xij =cantidad
de productos enviados desde el origen
i
al destino
j
Funcional:
Zmin =
Pm Pn
i=1
j=1
Cij · Xij
Modelización:
Si
1. La cantidad enviada desde
Pm
i=1
Xij ≤ Si
para cada
2. La cantidad que llega a
Pn
i=1
Xij ≥ Dj
i
Di
para cada
debe ser menor o igual a su disponibilidad
debe ser mayor o igual a su demanda
j
3. Condición de no negatividad
Xij ≥ 0
para cada
i, j
6
3.5 Problema de transbordo
Datos:
o
Orígenes
d
Destinos
t
Transbordos
COi Tj =costo
de enviar un producto desde el origen
i
CTi Dj =costo
de enviar un producto desde el transbordo
al transbordo
i
j
al destino
j
Hipótesis:
Los transbordos tienen capacidad de stock ilimitada
Costos lineales
Problema: determinar qué origen le envía a cuál transbordo, y qué transbordo le envía a cuál destino, para
minimizar los costos de transporte.
Denición de variables:
XOi Tj =cantidad
enviada desde el origen
i
XTi Dj =cantidad
enviada desde el transbordo
al transbordo
i
j
al destino
j
Funcional:
Zmin =
Po
i=1
Pt
i=1
COi Tj · XOi Tj +
Pt
i=1
Pd
i=1
CTi Dj · XTi Dj
Modelización:
1. La cantidad enviada desde
Pt
j=1
XOi Tj ≤ Oi
para cada
2. La cantidad que llega a
Pt
i=1
XTi Dj ≥ Dj
Oi
Di
debe ser menor o igual a su disponibilidad
i
debe ser mayor o igual a su demanda
para cada
j
3. Todo lo que entra a un transbordo, es enviado a un destino
Po
i=1
XOi Tj =
Pd
k=1
XTj Dk
para cada
j
4. Condición de no negatividad
XOi Tj ≥ 0
para cada
i, j
XTi Dj ≥ 0
para cada
i, j
3.6 Problema de la dieta
Datos:
m
Comidas
n
Nutrientes
Ri =requerimiento
Pi =precio
mínimo diario del nutriente
por unidad de la comida
cij =cantidad
de nutriente
j
i
i
en la comida
i
Problema: determinar una dieta que satisfaga los requisitos alimenticios a un costo mínimo.
Denición de variables:
7
Yi =cantidad
de comida
i
a comprar por día
Funcional:
Pm
Zmin =
Pi · Yi
i=1
Modelización:
1. Se deben satisfacer los requerimientos alimenticios
Pm
· Yi ≥ Ri
i=1 cij
para cada
j
2. Condición de no negatividad
Yi ≥ 0
para cada
i
3.7 Problema del secuenciamiento de máquinas (Job Shop Scheduling)
Datos:
n
trabajos
m
máquinas
Problema: determinar en qué orden y en qué máquinas se procesarán todos los trabajos para minimizar el
tiempo que lleva terminar todos los trabajos.
3.8 Problema de asignación
Datos:
p
personas
t
trabajos
aij =ganancia
que se obtiene cuando la persona
i
está con el trabajo
Problema: determinar qué personas realizarán qué trabajos.
Denición de variables:
(
xij =
1
0
si la persona
ise
asigna al trabajo
j
si no
Funcional:
Zmax =
Pp
i=1
Pt
j=1
aij · xij
Modelización:
1. Un trabajo por persona
Pt
j=1
xij = 1
para cada
i
2. Una persona por trabajo
Pp
i=1
xij = 1
para cada
j
8
j
3.9 Problema de asignación cuadrática
Datos:
m
fábricas
m
ciudades
dij =distancia
de la ciudad
cij =capacidad
i
a la ciudad
j
de transporte de la fábrica
i
a la fábrica
j
Problema: determinar qué fábricas se instalarán en qué ciudades para minimizar la suma de las distancias
multiplicado por la capacidad de transporte.
Denición de variables:
cijkl = cij · dkl
(
1 si la fábrica ise instala
xij =
0 si no
(
1 si xij = xkl = 1
Yijkl =
0 si no
en la ciudad
j
Funcional:
Zmin =
Pm Pm Pm Pm
i=1
j=1
k=1
l=1
Yijkl · cijkl
para todo
i 6= k
y para todo
j 6= l
Modelización:
1. Valor para
Yijkl
2 · Yijkl ≤ xij + xkl ≤ Yijkl + 1
3.10 Problema de la mochila
Datos:
k
objetos
pk =peso
del objeto
vk =valor
P =peso
k
económico del objeto
k
máximo de la mochila
Problema: determinar qué objetos meter dentro de la mochila para satisfacer la restricción de peso, y maximizar
el valor de los objetos guardados.
Denición de variables:
(
1
xi =
0
si el objeto
ise
guarda en la mochila,
i = {1, . . . , k}
si no
Funcional:
Zmax =
Pk
i=1
vi · x i
Modelo:
1. El peso de los objetos de la mochila no debe superar el peso máximo permitido:
Pk
i=1
p i · xi ≤ P
9
4 Modelización
cantidad de producto
Pn
n · YAN D ≤ Pi=1 xi ≤ YAN D + n − 1
n
YOR ≤P i=1 xi ≤ n · YOR
n
i=1 xi ≤ 1
m · YN N ≤ x ≤ M · YN N
xi ≤ M AX P
≤ xi + M · Yi i = {1, . . . , n}
n
i=1 Yi = n − 1,
Yi es bivalente
xi − M · Yi P
≤ M IN ≤ xi i = {1, . . . , n}
n
i=1 Yi = n − 1,
Yi es bivalente
c1 · x1 + c3 · x3 + · · · + cn · xP
n ≤ Y ≤ c2 · x1 + c4 · x3 + · · · + cn+1 · xn
n
i=1 xi = 1,
xi es bivalente
Y − (0,5 − m) ≤ x ≤ Y + 0,5
−m · (1 − YP OS ) + m · YP OS ≤ x ≤ M · YP OS
$IN I + IN GRESOS − EGRESOS − $F IN =
EXCESO − DEF ECT O
Q = cantidad de producto (u.)
Ci = costo i ($), i = {1, . . . , n}, n intervalos
Q = Q1 + Q2 + · · · + Qn
COST OQ = $C1 · Q1 + $C2 · Q2 + · · · + $Cn · Qn
$min1 · x1 ≤ Q1 ≤ $max1 · x1
$min2 · x2 ≤ Q2 ≤ $max2 · x2
Continuidad de
$min
Pn n · xn ≤ Qn ≤ $maxn · xn
i=1 xi = 1
stockinicial + produccion = demanda + stocksobrante
YAN D = x1 ∧ x2 ∧ . . . ∧ xn
YOR = x1 ∨ x2 ∨ . . . ∨ xn
XOR
x>0
M AX =
max(x1 , x2 , . . . , xn )
M IN =
min(x1 , x2 , . . . , xn )
Y ∈ [c1 , c2 ] o Y ∈ [c3 , c4 ]
... o Y ∈ [cn , cn+1 ]
Y = round(x)
x ≶ 0, x 6= 0
Restricciones nancieras
Costos dependientes de la
.
.
.
inventarios
5 Heurísticas
Heurística: técnica que aumenta la eciencia de un proceso de búsqueda, posiblemente sacricando demandas
de completitud.
Heurísticas de construcción: se utilizan para encontrar una solución al problema
Heurísticas de mejoramiento: parten de una solución conocida y tratan de mejorarla
Función heurística: correspondencia entre las descripciones de estados del problema hacia alguna medida de
deseabilidad, generalmente representada por números.
HEU R ≤ K · OP T IM O
donde:
HEU R =valor
K=
óptimo encontrado por la heurística
constante de calidad
OP T IM O =valor
óptimo real
Si para una función heurística puede encontrarse un valor de
problemas de un mismo tipo, esta heurística tendrá
K
que permanezca constante para todos los
garantía de calidad.
5.1 Análisis de características de un problema para elegir el mejor
método
1. ¾Puede descomponerse el problema?
10
2. ¾Pueden deshacerse o ignorarse pasos hacia una solución?
3. ¾El universo es predecible?
4. Una solución adecuada, ¾es absoluta o relativa?
5. La solución, ¾es un estado o una ruta?
6. ¾Cuál es el papel del conocimiento?
7. ¾La tarea necesita interactuar con la persona?
5.2 Ejemplos de heurísticas
5.2.1 Para el problema del viajante
De construcción:
1. Heurística del vecino más próximo: consiste en seleccionar en cada paso la ciudad que se encuentre más
cerca de la actual. Este tipo de algoritmos también se conocen como
greedy,
porque en cada paso hacen
lo que sea mejor, sin tener en cuenta estados anteriores o posteriores. Es muy fácil de implementar, pero
puede arrojar soluciones muy lejanas a la óptima.
2. Heurística del emparchamiento más cercano.
3. Heurística de la inserción más cercana.
4. Heurística de barrido: se rota una semirrecta alrededor del centro del plano y se determina el tour a medida
que la recta vaya tocando ciudades.
5. Heurística con curvas de llenado.
6. Heurística con algoritmos genéticos.
De mejoramiento:
1. Heurística de los K-intercambios: se toma una solución factible y se trata de mejorarla cambiando K ejes
de la solución. La complejidad de este algoritmo es de
nk .
2. Heurística de recocido simulado: se evalúan algunos vecinos del estado actual y probabilísticamente se
decide entre efectuar una transición a un nuevo estado o quedarse en el estado actual.
5.2.2 Para el problema de secuenciamiento
Técnicas de despacho:
1. SPT (
Shortest processing time )
First come, rst served )
2. FCFS (
3. MWKR (
4. LWKR (
Most work remaining )
Least work remaining )
5. MOPNR (
Most operation remaining )
5.2.3 Para el problema de distribución
1. Regla del Noroeste
2. Costos mínimos progresivos
3. Método VAM
11
5.3 Metaheurísticas
Metaheurística:
método de solución general que proporciona una estructura general y criterios estratégicos
para desarrollar un método heurístico especíco que se ajuste a un tipo particular de problema.
Ejemplos:
GRASP: Greedy Randomized Adaptative Search Procedure.
Para resolver problemas combinatorios. En
cada iteración hay dos fases: construcción y búsqueda local. En la fase de construcción se construye una
solución factible, y en la búsqueda local se examinan las soluciones vecinas hasta encontrar un mínimo
local.
Algoritmos genéticos
Ant Colony Optimization
Simulated Annealing
Taboo Search
12

Documentos relacionados