- 2024.06: update figures and fix typos.
- 2024.03: new figures to
media/
, several minor modifications. - 2024.02: release the code.
This repository is for a research paper authored by Cao Chen, Shilin Xiao, Fen Zhou, and Massimo Tornatore, entitled Throughput Maximization in Multi-Band Optical Networks with Column Generation. This paper has been submitted to the conference ICC 2024.
The key contribution is to address the routing, wavelength, and band assignment (RWBA) problem via a low-complexity Column Generation (CG) decomposition approach. This problem is subject to the constraints of transmission performance, spectral width, and cost of devices across multiple optical bands. Our results demonstrate the scalability of the CG-based approach. We observed a computation time in the magnitude order of 10 seconds when solving cases with varying numbers of wavelengths, ranging from 75 to 1200, in a 14-node network. This greatly benefits from a reformulation of the master problem, where we use the concept of wavelength configuration to describe routes. Based on this new formulation, a large number of wavelength-related constraints (e.g., wavelength continuity and wavelength non-overlapping constraints) are replaced by few wavelength limitation constraints (i.e., convexity constraint or coupling constraint) when formulating the master problem. The pricing problem used to design the wavelength configuration was expected to be time-consuming, but we dealt with it by using a simple heuristic algorithm, significantly reducing the solution time.
Interested readers may refer to the original paper, or the 4-node network example that illustrates how CG works.
Hope you can enjoy it!
@article{CXZT23, title={Throughput Maximization in Multi-Band Optical Networks with Column Generation}, author={Cao Chen and Shilin Xiao and Fen Zhou and Massimo Tornatore}, year={2023}, journal={arXiv:2311.07335}, month={Nov.}, }
- Gurobi: ver 9.0 is used for the paper
- YAMLIP-R20200930 (strongly recommended if using Gurobi 9.0, as less compatible issues between them)
- MATLAB: R2017b is used
run('allTest.m');
%%
configFile = 'setup/SimulationSetup_EX4.yaml';
SimulationSetting = ReadYaml(configFile);
SimulationSetting.default_baud_rate = 50;
[LightPathSet, isEdgeUseSlot, info] = main(SimulationSetting);
%%
fprintf("Running time = %g seconds\n",info('Time'));
%%
pause(0.1);
figure(87),
clf;
imagesc(logical(isEdgeUseSlot), 'CDataMapping', 'scaled');colorbar
title('Spectrum Usage Graph');
xlabel('Slot');
ylabel('Edge');
hold off;
%%
itemName = {...
'sourceNo'...
, 'destinationNo'...
, 'capacity'...
, 'cost'...
, 'strPath'...
, 'wavelengthNo'...
, 'transceiverNo'...
, 'transmissionModeNo'...
};
printLightPathSet(...
LightPathSet, ...
itemName, ...
'test.txt', 'w+');
type test.txt
We strongly encourage the reader to compute the SNRs of different optical bands according to your knowledge of physical layer impairment. But in case you have no prior knowledge, you can refer to the following physical layer impairment model that was mentioned in this paper.
with
Symbol | Description | Value | Unit |
---|---|---|---|
Group velocity dispersion | -21.7 | ps^2/m | |
Symbol rate | 32 | GBaud | |
Channel spacing | 32 | GHz | |
Raman gain slope | 0.029 | W/km/THz | |
Raman cutoff frequency | 15 | THz | |
Fiber span length | 100 | km | |
Reference center wavelength | 1570 | nm | |
Light speed | 3.00E+08 | m/s | |
Planck constant | 6.63E-34 | J/s | |
Noise figure | 5 | dB | |
Total bandwidth | 15 | THz | |
Optical band bandwidth |
5 | THz | |
Power per channel | 0.45 | mW/ch | |
Total power | 0.21 | W |
- Thanks Johan Löfberg for his YAMLIP project that saves my time when modelling.
- Thanks Lloyd Russell for his yml reading file ReadYaml.m
- Thanks professor Zhe Liang for his Chinese video presentation. This video helps me to learn Column Generation.
- The coding style of this project follows "The Elements of MATLAB Style" by Richard Johnson