Programación Lineal y Entera
  1. Programación Lineal
    1. Introducción
    2. Construcción de modelos
    3. Programación lineal
    4. Forma estándar del modelo
    5. Tipos de puntos en un PL
      1. Observación
    6. Modelos de asignación de recursos
      1. Variables de decisión
      2. Restricciónes de repartos
    7. Modelos de mezclas
      1. Variables de mezclas
      2. Restricciones de composición
    8. Modelos de planificación de operaciones
      1. Variables de decisión de gran magnitud
      2. Restricciones de balance
    9. Modelos de gestión de personal
      1. Restricciones de cubrimiento
    10. Modelos de planificación multiperiodo
      1. Variables de decisión por periodo
      2. Restricciones de balace
    11. Resolución geométrica de un PL
      1. Paso a seguir para la resolución de forma gráfica
    12. Postoptimización
      1. Sensibilidad cualitativa
        1. Aumento del conjunto factible
        2. Reduccion del conjunto factible
        3. Cambios en Right-Hand Side
          1. Relajar una restriccion
          2. Tensar una restriccion
        4. Cambios en A
          1. Inclusion de nuevas restricciones
          2. Eliminacion de restricciones
          3. Inclusion de nuevas variables
          4. Eliminacion de variables
      2. Sensibilidad cuantitativa
        1. Variables duales
        2. Signo de una variable dual
      3. Formulación del problema dual
      4. Teoremas de dualidad
        1. Teorema débil de dualidad
      5. Teorema fuerte de dualidad
      6. Casos factible, infactible y no acotado
  2. Programación Entera
    1. Problema de la mochila
      1. Objetivo
      2. Variable de decisión
      3. Formulación
    2. Modelos de asignacion del presupuesto
    3. Modelos de asignación
      1. Objetivo
      2. Variable de decisión
      3. Restricciones
      4. Formulación
    4. Modelos de asignación generalizada
      1. Formulación
    5. Modelos de la optimización discreta
    6. Problema de cubrimiento y partición
      1. Parametros
      2. Restricciones
        1. Problema de cubrimiento
        2. Problema de partición
    7. Diseño de redes
      1. Objetivo
      2. Formulación
    8. Localización de plantas
      1. Objetivo
      2. Formulación
    9. Problema de viajante
      1. Variable de decisión
      2. Restricciones
        1. El agente debe salir de todas las ciudades
        2. El agente debe llegar a todas las ciudades
        3. Eliminación de subciclos
    10. Modelado de condiciones lógica
      1. Selección múltiple
        1. Al menos dos tipos seleccionados
        2. Exactamente dos tipos seleccionados
        3. A lo sumo dos tipos seleccionados
      2. Costes fijos
      3. Variables semicontinuas
      4. Implicaciones
        1. 1 o 2 -> 3
        2. 1 y 2 -> no 3
        3. Incompatibilidad
        4. Disyunción
    11. Decisiones Multiobjetivo
      1. Puntos eficientes
      2. Optimización multiobjetivo por suma ponderada de objetivos
      3. Optimizacion multiobjetivo por metas
  3. Reference

Programación Lineal

Introducción

La programación lineal es una herramienta matemática que nos proporciona una forma modelar el sistema y selelcionar el valor de las variables controlables que permiten un funcionamiento óptimo del sistema.

Construcción de modelos

  • Definir unas variables, de estado, de control, de salida.

  • Variables no controlables se modelan como variables aleatorias

  • Determinar los parámetros

  • Estudiar las relaciones entre los distintos elementos y representarlos mediante expresiones matemáticas.

Programación lineal

La Programación Lineal estudia la optimización de una función lineal en presencia de restricciones lineales.

En un problema general podemos encontrar

  • $m$ recursos

  • $n$ actividad

  • nivel de actividad

  • rendiemiento global $Z$

Denotamos varios componentes de un modelo de programación con los siguientes siguientes simbolos

  • $Z$ = valor de la medida global del rendimiento, Normalmente puede interpretarse como el coste o el beneficio.

  • $x_j$ = nivel de actividad $j$ para $j = 1,2,…,n$

  • $c_j$ = el impacto en la funcion objetivo por unidad de actividad j.

  • $b_i$ = cantidad de recurso que está disponible para la asignación a actividades.

  • $a_{ij}$ = cantidad de recursos $i$ consumido por cada unidad de actividad $j$

  • $x_1, x_2, x_3, x_4$ son llamadas las variables de decisión, cada variable de decision de un PL (x1, . . . , xn) normalmente puede interpretarse como la eleccion del nivel de una actividad.

Problema

Los $c_j$, $b_i$, $a_{ij}$ también se refieren como los párametros, algunos de ellos podrían ser estimaciones del valor exacto.

Forma estándar del modelo

$$
\begin{split}
\max Z &= \sum_j{c_jx_j}\\\\
Sujeto , a \quad
\sum_{i}{a_{ij}}x_i &< b_i \forall{j}\\\\
\end{split}
$$

Tipos de puntos en un PL

un punto factible es una solución que cumple todas las restricciones.

un punto no factible es una solucón que se viola al menos una restricción.

un punto de frontera es una solución que al menos una de desigualdad se cumple la igualdad.

un punto interior Punto factible que no es punto frontera.

un punto estremo or CPF corner-point feasible es la solución que se encuentra en la intersección de dos o mas línea, son los vértices del conjunto factible.

Una solución óptima es punto factible con el mejor valor de la función objetivo.

La región factible es la colección de todas los puntos factibles.

Observación

Un PL puede tener 0, 1, ó infinitos puntos óptimos. El mejor punto extremo debe ser una solución óptima.

Ejemplo

Modelos de asignación de recursos

Repartimos un recursos entre varias actividades.

Variables de decisión

Determinan qué cantidad de recursos asignamos a cada actividad.

Restricciónes de repartos

Son restricciones de igualdad.

$$
\begin{split}
\min z(x) &= \sum_i {c_i x_i}\\\\
s.a. A\textbf{x}&=\textbf{b}\\\\
x &\ge 0\\\\
\end{split}
$$

Modelo de Asignación - Cerveza

Modelo de Asignación - Petroquimica

Modelo de Asignación - Minera

Modelo de Asignación - cabre

Modelo de Asignación - Refinería

Modelo de Asignación - Leche

Modelos de mezclas

Los combinamos los recursos

Variables de mezclas

Determinan qué cantidad de cada recurso incluimos en la mezcla.

Restricciones de composición

Determinan cotas superiores y/o inferiores a las propiedades de la mezcla resultante.

Modelo de mezclas - Refinado

Modelo de mezclas - Siderúrgica

Modelo de mezclas - Dieta

Modelo de mezclas - Gasolina

Modelos de planificación de operaciones

Debemos decidir qué hacer, cuando, y donde.

Variables de decisión de gran magnitud

Las variables de decisión enteras y de gran magnitud se suelen tratar como variables continuas para simplificar la solución del problemas.

Restricciones de balance

El flujo entrante de materias primas debe ser igual al flujo saliente de productos manufacturados (ecuación de balance).

Modelos de planificación de operaciones - Producción

Modelo de planificación de operaciones - Transporte

Modelo de planificación de operaciones - Transbordo

Modelo de planificación de operaciones - Sumistradora

Modelo de planificación de operaciones - Residuos

Modelo de planificación de operaciones - Accion

Modelo de planificación de operaciones - Agricultora

Modelos de gestión de personal

Los modelos de gestión de operaciones deciden qué tarea realizar en cada momento de forma que los recursos sean usados eficientemente, decidimos qué tipo de empleado y cuántos de cada tipo deben realizar cada tarea.

Restricciones de cubrimiento

En la planificación de los turnos debemos asegurar que el número de operario asignados cubre las necesidades de cada periodo. Para ello imponemos la siguiente restricción de cubrimiento.

$$
\sum_{turnos} (Producción , por , operario) * (Operarios , en , servicio) \ge , del , periodo
$$

Modelo de gestión de personal - Jornada

Modelos de planificación multiperiodo

Planificar en un horizonte de tiempo que abarca varios periodos, medelos dinámicos.

Variables de decisión por periodo

Muchas variables de decisión tiene una versión para cada periodo

Restricciones de balace

Describen la evolucion temporal de una magnitud

$$
Situación_{t} + Cambios_{t} = Situación_{t + 1}
$$

Modelos de planificación multiperiodo - Piensos

Resolución geométrica de un PL

Consideramos un PL de dimesión dos, cuya función objectivo es

$$
z(x) = c^{T}x
$$

donde $c^{T} = (c_1, c_2)$ y $x = (x_1, x_2) $.

Para todos los puntos sobre la recta

$$
R_k = c^{T}x = k
$$

El valor de la función objetivo es $k$.

La rectas $R_k$ son perpendiculares a $c$ y por tanto paralelas entre ellas.

La curva de nivel $k$ de $z(x)$ es la curva que cumple $z(x) = k$. Y las curvas de nivel de $z(x) = k$ son las rectas $R_k$ para todo $k \in \mathbb{R}$.

La región factible de PL corresponde a la región determinada por los puntos que cumplen todas las restricciones.

Paso a seguir para la resolución de forma gráfica

  1. Representar el conjunto factible
  2. Representar el vector $c$
  3. Representar la recta $R_{k*} = c^{T}x = k*$ tal que
    a. Es perpendicular a $c$
    b. Intersecta el conjunto factible
    c. $k*$ tiene el valor máximo posible
  4. Elegir un $vértice$ factible que pertenezca a $R_k*$ y que llamamos $x*$
  5. Determinar las coordenadas exactas de $x*$ resolviendo el sistema lineal asociado a las restricciones que determinan $x*$
  6. El punto óptimo del PL es $x*$ y el beneficio óptimo es $z(x)$.
  7. En caso de minimizar hacemos lo mismo salvo que en el anterior algoritmo debemos sustitutir $c$ por $-c$.

Postoptimización

El análisis de sensibilidad permite conocer si la solución obtenida es sensible a pequeños cambios de los parámetros.

  • Recursos limitados: Dado un b ≥ 0, una restriccion ≤ normalmente corresponde a un límite en la disponibilidad de un recurso.
  • Satisfaccion de demandas: Dado un b ≥ 0, una restriccion ≥ normalmente corresponde a la satisfaccion de una demanda.
  • Restricciones de igualdad: Una restriccion de igualdad puede interpretarse como dos restricciones de desigualdad simultaneas y opuestas.
  • Restriccion de no negatividad: x ≥ 0: Aunque es una restriccion, normalmente se interpreta como una declaracion de un tipo de variable.

Sensibilidad cualitativa

Aumento del conjunto factible

Si el nuevo conjunto factible incluye al conjunto factible inicial, el optimo no cambia o mejora.

Reduccion del conjunto factible

Si el nuevo conjunto factible esta incluido en el conjunto factible inicial, el optimo no cambia o empeora.

Cambios en Right-Hand Side

Relajar una restriccion

Modificar dicha restricción de forma que el conjunto factible aumente, el óptimo o no cambia o mejora.

Tensar una restriccion

Modificar dicha restricción de forma que el conjunto factible disminuya, el óptimo o no cambia o empeora.

Cambios en A

Inclusion de nuevas restricciones

Si en un PL incluimos nuevas restricciones el optimo ser a igual o peor.

Eliminacion de restricciones

Si en un PL eliminamos restricciones el optimo ser a igual o mejor.

Inclusion de nuevas variables

Si en un PL incluimos nuevas variables el optimo ser a igual o mejor.

Eliminacion de variables

Si en un PL eliminamos variables el optimo ser a igual o peor.

Sensibilidad cuantitativa

El problema dual es un problema de optimizacion auxiliar que puede ser utilizado para cuantificar la sensibilidad de la solucion primal (óptima) ante cambios en los parametros.

Variables duales

Son las variables del problema dual. Tenemos una variable dual $v_i$ por cada restriccion del problema primal, $i \in I = {1, . . . , m}$.

Cada variable dual optima representa la tasa de cambio del coste optimo respecto a cambios en el termino de la derecha de la restricción correspondiente. La variable dual óptima $v^*_i$ puede interpretarse como precio sombra del producto o recurso asociado a la restricción i.

Cada variable dual optima representa la pendiente de $C_i$($b_i$):

$$
v^{∗}i = C^{‘}{i}(bi)
$$

(excepto en los puntos no derivables).

El problema dual nos dara sólo los valores de la tasa de cambio del coste optimo correspondiente al b concreto de nuestro problema

$$
C^{‘}_1(b_1), . . . , C^{‘}_m(b_m).
$$

Signo de una variable dual

Primal Restriccion i $\le$ Restriccion i $\ge$ Restriccion i =
Min $v_i \le 0$ $v_i \gt 0$ Sin restricción de signo
Max $v_i \gt 0$ $v_i \le 0$ Sin restricción de signo

Formulación del problema dual

Problema Dual

Teoremas de dualidad

Un PL versión minimización (P) y su dual (D)

Teorema débil de dualidad

La función objetivo dual en $\overline{v}$ es una cota inferior a la función objetivo primal en $\overline{v}$ y viceversa

Teorema fuerte de dualidad

Si cualquiera de las dos soluciones es óptima, la otro también y además sus valores óptimos respectivos coinciden.

Casos factible, infactible y no acotado

  • La función objetivo de (P) tiene un valor óptimo finito => La función objetivo de (D) tiene un valor óptimo finito.
  • La función objetivo de (P) no está acotada (inferiormente) => El problema (D) es infactible.
  • La función objetivo de (D) no está acotada (superiormente) => El problema (P) es infactible.

Programación Entera

La PLE corresponde a los problemas de Programacion Lineal (PL) donde además se impone la condición de que algunas o todas las variables sean enteras.

Ejemplo 1

Ejemplo 2

Problema de la mochila

Objetivo

seleccionar un subconjunto óptimo de objetos que maximize la utilidad total

Variable de decisión

$$
x_j =
\begin{cases}
& 1 \quad \text{si el objeto j es seleccionado} \\\\
& 0 \quad \text{en otro caso}\\\\
\end{cases}
$$

Formulación

$$
\begin{split}
\max & \quad c^Tx\\\\
s.t & \quad Ax \le b\\\\
& \quad x \in {0,1}^n\\\\
\end{split}
$$

Mochila

Modelos de asignacion del presupuesto

seleccionar el mejor reparto de un presupuesto entre n proyectos o inversiones bajo m restricciones.

Proyecto I+D

Modelos de asignación

Objetivo

Asignar eficientemente un conjunto de trabajadores a un conjunto de tareas.

Variable de decisión

$$
x_{ij} =
\begin{cases}
& 1 \quad \text{si el trabajador i se asigna a la tarea j} \\\\
& 0 \quad \text{en otro caso}\\\\
\end{cases}
$$

Restricciones

$$
\begin{split}
\sum_{i=1}^{n}{x_{ij}} &= 1 \quad \text{Cada tarea se realiza una vez}\\\\
\sum_{j=1}^{n}{x_{ij}} &= 1 \quad \text{Cada trabajador realiza una tarea}\\\\
\end{split}
$$

Formulación

$$\min \sum_i{\sum_j{c_{ij}x_{ij}}}$$

Abogado

Modelos de asignación generalizada

Es una generalización del modelo anterior. Cada trabajador puede hacer más de una tarea simultáneamente

Formulación

$$
\begin{split}
z &= \min \sum_i{\sum_j{c_{ij}x_{ij}}}\\\\
\sum_{i=1}^{n}{x_{ij}} &= 1 \quad \text{Cada tarea se realiza una vez}\\\\
\sum_{j=1}^{n}{a_{ij}x_{ij}} &\le b_i \quad \text{La capacidad maxima de cada trabajador}\\\\
x_{ij} &\in {0,1}\\\\
\end{split}
$$

Maquinaria

Modelos de la optimización discreta

Alguna o todas variables de un problema deben tomar valores enteros

Ordenador

Problema de cubrimiento y partición

Parametros

$$
a_{ij} =
\begin{cases}
& 1 \quad i \in S_j\\\\
& 0 \quad \text{en otro caso}\\\\
\end{cases}
$$

Restricciones

Problema de cubrimiento

$$
\sum_{i=1}^{n}{a_{ij}x_{ij}} \ge 1 \quad \text{Cada objeto debe pertenecer al menos a un conjunto}\\\\
$$

Problema de partición

$$
\sum_{i=1}^{n}{a_{ij}x_{ij}} = 1 \quad \text{Cada objeto debe pertenecer exactamente a un conjunto}\\\\
$$

Ambulancia

Cinta

Diseño de redes

Objetivo

Decidir qué arcos de una red abrimos de forma que el coste de servicio más costes fijos sea mínimo.

Formulación

  • $A$ conjunto de arcos de la red
  • $ij$ par de indices para los arcos de $A$
  • $V$ conjunto de nodos de la red
  • $k$ indice para los nodos de $V$
  • $x_{ij}$ flujo del arco $ij$
  • $y_{ij}$ es 1 si decidimos conectar $i$ con $j$
  • $b_{k}$ demanda de k
  • $c_{ij}$ coste por unidad de flujo
  • $f_{ij}$ coste de conectar i con j
  • $u_{ij}$ capacidad del arco $ij$

$$
\min_{x,y} \quad z = \sum_{ij \in A}{c_{ij}x_{ij}} + \sum_{ij \ in A}{f_{ij}y_{ij}} \quad \text{coste total}\\\\
s.a. \quad \sum_{ik \in A}{x_{ik}} - \sum_{kj \in A}{x_{kj}} = b_k \quad \text{para todo k. (demanda)}\\\\
0 \le x_{ij} \le u_{ij}y_{ij} \quad \text{para todo ij (capacidad)}\\\\
y_{ij} \in {0,1} \text{para todo ij}
$$

Localización de plantas

Objetivo

Decidi qué plantas abrimos de forma que el coste de explotación sea mínimo.

Formulación

$$
\min_{x,y} \quad z = \sum_{ij}{c_{ij}d_{j}x_{ij}} + \sum_{i}{f_{i}y_{i}} \quad \text{coste total}\\\\
s.a. \sum_{i}{x_{ij}} = 1 \quad \text{satisfaccion de la demanda para todo j}\\\\
\sum_j{d_j x_{ij} \le u_i y_i} \quad \text{restricciones de capacidad para todo ij}\\\\
x_{ij} \ge 0\\\\
y_{ij} \in {0,1}\\\\
$$

Problema de viajante

Variable de decisión

$$
a_{ij} =
\begin{cases}
& 1 \quad \text{si el agente va de la ciudad i a la ciudad j}\\\\
& 0 \quad \text{en otro caso}\\\\
\end{cases}
$$

Restricciones

El agente debe salir de todas las ciudades

$$
\sum_{i}^{n}x_{ij} = 1\\\\
$$

El agente debe llegar a todas las ciudades

$$
\sum_{j} x_{ij} = 1\\\\
$$

Eliminación de subciclos

$$
\sum_{i \in S}{\sum_{j \not\in S}} x_{ij} \ge 1
$$

Modelado de condiciones lógica

Selección múltiple

Al menos dos tipos seleccionados

$$
\sum_i{\delta_i} \ge 2
$$

Exactamente dos tipos seleccionados

$$
\sum_i{\delta_i} = 2
$$

A lo sumo dos tipos seleccionados

$$
\sum_i{\delta_i} \le 2
$$

Costes fijos

$$
\delta * coste
$$

Variables semicontinuas

$$
minimo\delta \le x \le maximo\delta
$$

Implicaciones

1 o 2 -> 3

$$\delta_1 + \delta_2 \le 2*\delta_3$$

1 y 2 -> no 3

$$\delta_1 + \delta_2 \le 2 - \delta_3$$

Incompatibilidad

$$\delta_1 + \delta_2 \le 1$$

Disyunción

$\sum_i{a_ix_i} \le a$ o $\sum_j{b_jy_j} \ge b$

Se puede modelar utilizado

$\sum_i{a_ix_i} \le a + M\delta$ y $\sum_j{b_jy_j} \ge b + m(1-\delta)$

con $M$ suficientemente grande y $m$ suficientemente pequeño

Aceite

Petroquímica

Decisiones Multiobjetivo

En muchos problemas de decisión, es muy complicado o no es imposible transformar todos los objetivos involucrados en un único objetivo

Puntos eficientes

También se denomina punto de pareto, si al moverlo dentro de la región factible para mejorar algún objetivos, tenemos que empeorar al menos otro objetivo.

Optimización multiobjetivo por suma ponderada de objetivos

$$
min \quad z_1(x)\\\\
\vdots\\\\
min \quad z_m(x)\\\\
$$

en la suma ponderada de objetivos

$$
min z(x) = \sum_{i}\gamma_i z_i(x)
$$

donde cada peso $\gamma_i$ es un escalar estrictamente positivo para todo $i$.

Optimizacion multiobjetivo por metas

Tranforma siguiente problema

$$
meta \quad z_1(x) \le m_1\\\\
\vdots\\\\
meta \quad z_m(x) \le m_m\\\\
$$

en

$$
min z(d) = \sum_{i}\gamma_i z_i(d_i)\\\\
s.a. \quad
z_1(x) - d_1 \le m_1\\\\
\vdots\\\\
,,,,,,,,\quad
z_m(x) - d_m \le m_m\\\\
$$

Multiobjetivo

Reference