Tool for designing and optimizing the electrical cable network of offshore wind farms.
| Documentation: optiwindnet.readthedocs.io |
|
|---|---|
|
pip install optiwindnet
or
conda install --channel conda-forge optiwindnet
Detailed instructions in Installation.
Python version 3.11 or 3.12 is recommended to run OptiWindNet. Python 3.13+ may cause issues with the optiwindnet.db module, but all other features work fine. The last version to support Python 3.10 was v0.1.0.
The use of a Python virtual environment is recommended. OptiWindNet's dependencies (except for MILP solvers, see docs) will be installed automatically when using pip install optiwindnet or conda install optiwindnet.
One may optionally pre-install the dependencies in a python environment by using either:
- requirements.txt:
pip install -r requirements.txt - environment.yml:
conda env create -f environment.yml(name: optiwindnet_env)
The methodology implemented in OptiWindNet is described in the peer-reviewed scientific article:
- Mauricio Souza de Alencar, Tuhfe Göçmen, Nicolaos A. Cutululis, Flexible cable routing framework for wind farm collection system optimization, European Journal of Operational Research, 2025, ISSN 0377-2217, https://doi.org/10.1016/j.ejor.2025.07.069.
@article{SOUZADEALENCAR20261037,
title = {Flexible cable routing framework for wind farm collection system optimization},
journal = {European Journal of Operational Research},
volume = {329},
number = {3},
pages = {1037-1051},
year = {2026},
issn = {0377-2217},
doi = {https://doi.org/10.1016/j.ejor.2025.07.069},
url = {https://www.sciencedirect.com/science/article/pii/S0377221725005946},
author = {Mauricio {Souza de Alencar} and Tuhfe Göçmen and Nicolaos A. Cutululis},
keywords = {Combinatorial optimization, Network design, Collection system, Wind farm},
}
The heuristics implemented in this repository (release 0.0.1) are presented and analyzed in the MSc thesis Optimization heuristics for offshore wind power plant collection systems design (DTU Wind - Technical University of Denmark, July 4, 2022)
The meta-heuristic used is vidalt/HGS-CVRP: Modern implementation of the hybrid genetic search (HGS) algorithm specialized to the capacitated vehicle routing problem (CVRP). This code also includes an additional neighborhood called SWAP*. via its Python bindings chkwon/PyHygese: A Python wrapper for the Hybrid Genetic Search algorithm for Capacitated Vehicle Routing Problems (HGS-CVRP).
The cable routing relies on a navigation mesh generated by the library artem-ogre/CDT: Constrained Delaunay Triangulation (C++) via its Python bindings - artem-ogre/PythonCDT: Constrained Delaunay Triangulation (Python).