|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Multi-commodity flow algorithms. More...
#include <vector>#include <limits>#include <chrono>#include <tpl_agraph.H>#include <tpl_dynMapTree.H>#include <Simplex.H>#include <ah-errors.H>Go to the source code of this file.
Classes | |
| struct | Aleph::Commodity< Node, Flow_Type > |
| Commodity definition for multi-commodity flow. More... | |
| struct | Aleph::MCF_Arc< Arc_Info, FT > |
| Arc information for multi-commodity flow. More... | |
| class | Aleph::MCF_Graph< NodeT, ArcT > |
| Multi-commodity flow network (directed graph). More... | |
| struct | Aleph::MCF_Result< Flow_Type > |
| Multi-commodity flow result. More... | |
| class | Aleph::MCF_LP_Solver< Net > |
| Multi-commodity flow solver using LP formulation. More... | |
Namespaces | |
| namespace | Aleph |
| Main namespace for Aleph-w library functions. | |
Functions | |
| template<class Net > | |
| MCF_Result< typename Net::Flow_Type > | Aleph::solve_multicommodity_flow (Net &net) |
| Solve multi-commodity flow problem. | |
Multi-commodity flow algorithms.
This file provides data structures and algorithms for solving multi-commodity flow problems on capacitated networks.
In a multi-commodity flow problem, multiple commodities (types of flow) share the same network infrastructure. Each commodity has its own source-sink pair and demand, but all commodities compete for the shared arc capacities.
Given:
Minimize: Σ_k Σ_{(i,j)} c_ij^k * x_ij^k
Subject to:
Where b_i^k = d_k if i=s_k, -d_k if i=t_k, 0 otherwise.
The LP formulation has O(K*E) variables and O(K*V + E) constraints. Solution time depends on the LP solver used.
Definition in file tpl_multicommodity.H.