21 Apr 2019

Modelación Linear Discreta

Parte dos de la guia para estudiar la materia del curso ICS1113 Optimización (curso de la Pontificia Universidad Católica de Chile). Faltan algunos.

Técnica 1: Formular restricciones usando lógica proposicional y luego traducir.

  • ij lo reescribimos como ij.
  • ¬i lo reescribimos como 1i.
  • un a la izquierda divide en dos condiciones: ijk se reescribe como ik y jk.
  • un a la izquierda: ijk se reescribe como i+jk+1

Técnica 2: Para restricciones condicionadas.

axb cuando y se escribe: axb+m(1y). Donde m es un valor muy grande, así tenemos que cuando y=0 la restricción funciona como si fuera un axb+= que siempre se cumple.

axb cuando y se escribe: axbm(1y).

Ejemplo para y{0,1}:

{axibcuando y=1axibeoc.

Queda:

axib+m(1y)
axibm(y)

Técnica 3: Para funciones por partes.

si queremos modelar y={ax+bcuando xkcx+deoc.

Defino variables:

x1={xcuando xk0eoc.
x2={xcuando xk+10eoc.
w1={1cuando xk0eoc.
w2={1cuando xk+10eoc.

Las restricciones son:

y=(ax1+bw1)+(cx2+dw2)
x1kw1
x2(k+1)w2
x=x1+x2
1=w1+w2

Problema de seleccionar: Knapsack

Llevar el producto i me aporta pi dolares y me cuesta wi. Tengo un total de W dolares. Maxmimizar el precio de los productos que llevo.

Defino xi={1cuando llevo producto i0eoc.

maxixipi

s.a.

ixiwiW

Problema con costos fijos: Producción e inventario con costos fijos 1

El mismo problema de producción e inventario (ver publicación pasada), pero si uso maquina en t tengo un costo adicional kt (o sea, si produzco algo, tengo costo fijo).

Primero, como es un problema de producción e inventario defino xti como la cantidad de i que produzco en t, y yti como hay almacenado de i en t.

Defino wt={1usé la maquina en t0eoc.

minitxticti+ytihti+wttktt

s.a.

ixti0+mwt

Obtenemos esta restricción usando la técnica 2. Vemos que sólo si se prende la maquina (wt=1) podemos producir.

yt1i+xti=yti+dtii,t
xti,yti0i,t

Problema con costos fijos y continuidad: Producción e inventario con costos fijos 2

Imaginemos ahora que en el problema anterior no hay costo fijo si la maquina estuvo prendida en t1 (ej. no es necesario prenderla).

Defino zt={1encendí la maquina en t0eoc.

Son las mismas restricciones que las de arriba, sólo agrego:

ztwtwt1

Problemas de subdivision/asignación: Coloring

2 nodos en un grafo no pueden tener el mismo color si están conectados (Ci son los nodos conectados con i). Minimice la cantidad de colores usados.

Defino xik={1cuando nodo i es de color k0eoc.

Defino yk={1cuando uso color k0eoc.

minkyk

s.a.

Todos los nodos con un color: kxik=1i

Si uso un color se activa yk: ixik0+Mykk

xi,k¬xj,k para nodos conectados: xik1xjki,k,jCi


Tags:
0 Comments comments