Modelos sobre grafos: conservación de flujo, transporte, flujo a costo mínimo, ruta mínima y ruteo con eliminación de subtours (VRP). La restricción de balance de nodo y el arquetipo de redes de la I1.
Un modelo de redes vive sobre un grafo dirigido G=(N,A): nodos N (ciudades, bodegas) y arcos A (rutas). La variable xa es el flujo que circula por el arco a. Las dos reglas base son la conservación de flujo en cada nodo y la capacidad de cada arco.
En un nodo intermedio (ni origen ni destino), todo lo que entra debe salir. Con δi− = arcos que entran a i y δi+ = arcos que salen:
En nodos con oferta o demanda, el balance queda desequilibrado por esa cantidad neta. La forma general con oferta neta bi (positiva = fuente, negativa = sumidero) es ∑δi+xa−∑δi−xa=bi.
Si ves balance de nodo ('lo que entra = lo que sale') estás ante un modelo de redes. Casi todo se arma sobre esa conservación + capacidades de arco; el resto son variaciones.
El problema de transporte envía producto desde orígenes i (con oferta si) a destinos j (con demanda dj), minimizando el costo total de envío. Variable xij≥0 = unidades enviadas de i a j.
Dos familias de restricciones: oferta (no enviar más de lo que tiene cada origen, ≤si) y demanda (cubrir lo que pide cada destino, ≥dj). Es un LP; su matriz es totalmente unimodular, así que la relajación lineal ya da solución entera.
Cuida el sentido: la oferta limita por arriba (≤si, no puedes enviar lo que no tienes) y la demanda exige por abajo (≥dj, hay que cubrirla). Invertirlos es el error clásico del transporte.
El problema de flujo a costo mínimo (PFCM) generaliza a transporte, asignación y ruta mínima. Enviar flujo por la red minimizando costo, con balance de nodo (oferta neta bi) y capacidad de arco:
La ruta mínima de un origen s a un destino t es un PFCM donde se envía 1 unidad: bs=1 (fuente), bt=−1 (sumidero) y bi=0 en el resto. El flujo óptimo traza el camino más barato; con costos no negativos, la solución es un camino simple.
Cuando la red puede no alcanzar a cubrir toda la demanda, se agrega una variable de faltante rj≥0 que se penaliza en la FO: ∑a∈δj−xa=dj−rj.
Transporte, asignación y ruta mínima son casos del PFCM. Si dominas balance de nodo + capacidad + costo por arco, adaptas cualquiera de ellos cambiando solo los bi y las cotas ua.
En ruteo (TSP, VRP) la variable de arco es binaria: xij∈{0,1} = "el vehículo usa el arco de i a j". Se pide visitar cada cliente una vez (restricciones de grado: entra un arco y sale un arco por nodo). Esto vuelve el problema un MILP.
Las restricciones de grado por sí solas permiten ciclos desconectados (subtours) en vez de un único recorrido. Hay que eliminarlos. La formulación MTZ (Miller-Tucker-Zemlin) agrega variables de orden ui que fuerzan una secuencia coherente:
Si xij=1, la restricción obliga uj≥ui+1: el nodo j va "después" de i en el orden, lo que impide cerrar ciclos que no pasen por el depósito. La otra opción es la eliminación de subtours por flujo (mandar flujo por los arcos usados).
Las restricciones de grado (entrar y salir una vez) no bastan: sin eliminación de subtours el modelo admite ciclos sueltos. Si el enunciado pide 'una sola ruta' o 'un recorrido', tienes que agregar MTZ o eliminación por flujo. Olvidarlo es un error típico.