Problema de Cobertura Optimización Discreta 2025-20

Yisel Díaz
Manuel Coronado
Shaday Berástegui
María José Lopez

2025-11-11

¿Qué es el Problema de Cobertura en Optimización Discreta?

El problema de cobertura (Set Covering Problem, SCP) es un modelo de optimización combinatoria de tipo discreto, cuya finalidad es determinar un subconjunto mínimo de elementos que cubran completamente un conjunto universal de requerimientos o entidades.

Objetivo

El objetivo principal es determinar la ubicación óptima de instalaciones o recursos que permitan cubrir un conjunto de puntos de demanda, garantizando el servicio requerido con el menor número posible de instalaciones o al mínimo costo total.

Definición Técnica

Elemento Descripción
Formulación Modelo entero binario para ubicar instalaciones con menor costo total.
Conjuntos Puntos posibles de instalación y de demanda.
Parámetros Costos y relaciones de cobertura entre sitios y demandas.
Variables de decisión Binarias: 1 si se instala, 0 en caso contrario.
Función objetivo Minimizar costos o número de instalaciones con cobertura total.
Restricciones Toda demanda debe estar cubierta y las variables son binarias.
Interpretación general Busca la solución más eficiente con mínima inversión y cobertura completa.

Ventajas y Desventajas

Ventajas Desventajas
Optimiza recursos y reduce costos. Problema NP-difícil.
Aplicable en logística, redes y servicios. Requiere alto poder computacional.
Formulación matemática clara. A veces necesita heurísticas.
Mejora decisiones de planificación. Sensible a datos o cambios en costos.

Áreas de Aplicación

Área Aplicación típica
Logística Ubicación de almacenes o centros.
Transporte Asignación de rutas o vehículos.
Telecomunicaciones Ubicación de antenas o repetidores.
Seguridad Estaciones de policía o bomberos.
Salud Ubicación de hospitales o clínicas.
Aviación Asignación de tripulaciones a vuelos.

Descripción del Problema

La empresa Southwestern Airways necesita asignar tres tripulaciones con base en San Francisco (SF) para cubrir una serie de vuelos programados entre distintas ciudades: Los Ángeles (LA), Denver (DE), Chicago (CH) y Seattle (SE).

Cada tripulación puede seguir una secuencia factible de vuelos, es decir, una combinación de trayectos que forma un itinerario posible dentro de las restricciones de horarios y logística operativa.
En total existen 12 secuencias de vuelos factibles, cada una con un costo asociado (expresado en miles de dólares).

Objetivo del Problema

El propósito de la empresa es asignar tres de esas secuencias —una por cada tripulación— de manera que se cumplan las siguientes condiciones:

  1. Todos los vuelos programados deben estar cubiertos al menos una vez.
    (Puede haber más de una tripulación asignada a un mismo vuelo, aunque esto puede aumentar el costo total).

  2. El costo total de operación debe ser mínimo.

Tabla — Secuencias de vuelos y costos

Vuelo 1 2 3 4 5 6 7 8 9 10 11 12
1. SF → LA 1 1 1 1 1
2. SF → Denver 1 1 2 3
3. SF → Seattle 1 1
4. LA → Chicago 2 3
5. LA → SF 2 3 5
6. Chicago → Denver 3 3 4
7. Chicago → Seattle 3
8. Denver → SF 2 3
9. Denver → Chicago 4 2
10. Seattle → SF 4 5
11. Seattle → LA 4 4 2
Costo (miles de $) 2 3 4 6 7 5 7 8 9 9 8 9

Formulación Matemática

Conjuntos

  • ( I = {1, , 11} ): conjunto de vuelos.
  • ( J = {1, , 12} ): conjunto de secuencias factibles de vuelos.

Parametros

\[ a_{ij} = \begin{cases} 1, & \text{si la secuencia } j \text{ incluye (cubre) el vuelo } i, \\[4pt] 0, & \text{en caso contrario.} \end{cases} \]

  • ( a_{ij} {0,1} ) para ( i I, j J ): indicador de cobertura.
  • ( c_j ) para ( j J ): costo de asignar una tripulación a la secuencia ( j ) (en miles de dólares).
  • ( p = 3 ): número de tripulaciones a asignar.

Variables de decisión

\[ x_j = \begin{cases} 1, & \text{si se selecciona la secuencia } j, \\[4pt] 0, & \text{en caso contrario.} \end{cases} \]

Función objetivo

El objetivo es minimizar el costo total de asignar tripulaciones a las secuencias de vuelos, asegurando que todos los vuelos sean cubiertos y que se asignen exactamente tres tripulaciones.

\[ \min Z = \sum_{j \in J} c_j x_j \tag{1} \]

Restricciones


\[\begin{align} \sum_{j \in J} a_{ij} x_j &\ge 1 && \forall i \in I \tag{2} \\ \sum_{j \in J} x_j &= p && \tag{3} \\ x_j &\in \{0,1\} && \forall j \in J \tag{4} \end{align}\]

Resultados

Southwestern Airways debe asignar tres tripulaciones con base en San Francisco para cubrir todos sus vuelos programados, eligiendo las secuencias más eficientes que aseguren la cobertura completa con el menor costo operativo posible. El modelo fue implementado mediante funciones de R.

Solución Óptima

  • Costo total mínimo (óptimo): 82
  • Secuencias seleccionadas: 1, 3, 11

Cobertura de vuelos:

  • Secuencia 1 → Vuelos: 2, 3, 4, 6, 7, 9, 11 (Costo = 30)
  • Secuencia 3 → Vuelos: 8, 10 (Costo = 28)
  • Secuencia 11 → Vuelos: 1, 2, 5, 6, 9, 11 (Costo = 24)

Interpretación

La solución óptima selecciona las secuencias 1, 3 y 11 para asignar las tres tripulaciones.
Cada vuelo es cubierto al menos una vez, garantizando la cobertura total con el costo mínimo posible.

Conclusión

El Problema de Cobertura permitió comprender cómo optimizar recursos y reducir costos operativos.
En el caso de Southwestern Airways, el modelo facilitó la asignación eficiente de tripulaciones, asegurando la cobertura total de los vuelos con menor uso de recursos y mayor eficiencia operativa.

¡GRACIAS!