TUFTTE is a novel TE framework with decision-focused learning. Its objective function and constraints can be flexibly specified by the network operators. It is currently built upon the cvxpylayer, but I am also exploring other efficient tools.
Tuftte
├── algorithms
│ ├── DOTE-main
│ ├── __init__.py
│ ├── DoteSolver.py
│ ├── TEAVARSolver.py
│ ├── TESolver.py
│ └── TUFTTESolver.py
├── data
│ ├── gml_gen_topo.py
│ └── snd_gen_topo.py
├── utils
│ ├── __init__.py
│ ├── CvxpySolver.py
│ ├── GurobiSolver.py
│ ├── helper.py
│ ├── history.py
│ ├── NetworkParser.py
│ ├── NetworkTopology.py
│ ├── prediction.py
│ ├── riskMetric.py
│ └── scenario.py
├── availability.py
├── benchmark_consts.py
├── dl_experiment.py
├── environment.yml
├── main.py
├── motivation.py
└── prediction_details.py
We import DOTE from their public repository without modification.
First, install the conda environment using environment.yml.
conda create -n tuftte --file environment.ymlSecond, apply a license of GUROBI solver. If you don't have a license, you can use open-source CVXPY instead by replacing all the GurobiSolver() with CvxpySolver().
Third, prepare datasets. Download abilene.txt, directed-abilene-zhang-5min-over-6months-ALL-native.tar from SNDlib and move them to data/. Generate the topology by the following commands.
cd data/
python3 snd_gen_topo.pyIt is simple to conduct the experiments. The configuration of parameters is completed in benchmark_consts.py. You just need to run main.py with different values of the argument --experiment.
python3 main.py./main.py --experiment ffc_experimentfor Fig. 1a../main.py --experiment teavar_experimentfor Fig. 1b../main.py --experiment dl_experimentfor Fig. 4../main.py --experiment noise_effectfor Table II../main.py --experiment availabilityfor Fig. 5../main.py --experiment MSE_testfor Fig. 6a../main.py --experiment pos_negfor Fig. 6b../main.py --experiment watch_variationfor Fig. 7.
Please cite our paper if our contributions benefit your research.
@INPROCEEDINGS{zhao2025,
author={Zhao, Shiju and Zheng, Jiaqi and Chen, Guihai},
booktitle={2025 IEEE/ACM 33rd International Symposium on Quality of Service (IWQoS)},
title={Rethinking Failure-Tolerant Traffic Engineering with Demand Prediction},
year={2025},
volume={},
number={},
pages={1-6},
keywords={Uncertainty;Network topology;Quality of service;Telecommunication traffic;Production;Machine learning;Predictive models;Prediction algorithms;Topology;Optimization;failure tolerance;traffic engineering;machine learning;decision-focused learning},
doi={10.1109/IWQoS65803.2025.11143354}}