```{image} _static/OptiWindNet.svg
:alt: OptiWindNet
:width: 40%
:align: center
```
# OptiWindNet Documentation
**OptiWindNet: Wind Farm Electrical Network Optimizer**\
(distributed under the [MIT License](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/-/blob/main/LICENSE))
|||
|--:|:--|
Python Package Index (PyPI) |
Source code repository |
Issue tracker |
Jupyter notebooks used in this manual |
## About OptiWindNet
OptiWindNet is an electrical network design tool for offshore wind farms developed at the Technical University of Denmark -- DTU.
The package offers a framework to obtain optimal or near-optimal cable routes for a given turbine layout within the cable-laying boundaries. It provides high-level access to heuristic, meta-heuristic and mathematical optimization approaches to the problem.
The tool is distributed as the open-source Python package **optiwindnet**, which can be used either within an interactive Python session (e.g. Jupyter notebook) or as a library, by invoking OptiWindNet's API directly from another application (e.g. [TOPFARM](https://topfarm.pages.windenergy.dtu.dk/TopFarm2/notebooks/cables.html), [Ard](https://github.com/NLRWindSystems/Ard)).
## What can OptiWindNet do?
* Optimize the network of array cables (aka collection system, infield cables, internal grid, inter-array cables);
* Route the cables to avoid exclusion zones and cable-to-cable crossings;
* Assign cable types and calculate network costs;
* Use different optimization approaches according to the preferred time/quality trade-off;
* Employ user-provided models and objective functions within the mathematical optimization approach.
## Getting Started
[](setup) your Python environment and check the {doc}`Quickstart ` to begin using OptiWindNet.
## How to Cite
A peer-reviewed scientific article explaining the OptiWindNet framework and benchmarking it against state-of-the-art methods is available (open-access) at:
- 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, .
```{code-block} bib
@article{
SOUZADEALENCAR2025,
title = {Flexible cable routing framework for wind farm collection system optimization},
journal = {European Journal of Operational Research},
year = {2025},
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 OptiWindNet software package can be cited (unversioned) as:
> Souza de Alencar, M., Arasteh, A., & Friis-Møller, M. (2026). OptiWindNet by DTU Wind Energy. Zenodo. https://doi.org/10.5281/zenodo.18388438
To cite a specific version, get the version-specific DOI at [OptiWindNet's entry at Zenodo](https://doi.org/10.5281/zenodo.18388438). Select the desired version on the right column and use one of the ready-to-use citation formats available at the bottom right of that page.
## Acknowledgements
The development of OptiWindNet was carried out as part of a Ph.D. project at the Technical University of Denmark (DTU Wind), financially supported by the Independent Research Fund Denmark / Danmarks Frie Forskningsfond (DFF) under grant no. 1127-00188B, project _Integrated Design of Offshore Wind Power Plants_.
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](https://fulltext-gateway.cvt.dk/oafilestore?oid=62dddf809a5e7116caf943f3&targetid=62dddf80a41ba354e4ed35bc) (DTU Wind - Technical University of Denmark, July 4, 2022).
The meta-heuristic used is [vidalt/HGS-CVRP](https://github.com/vidalt/HGS-CVRP) — a modern implementation of the hybrid genetic search (HGS) algorithm specialized to the capacitated vehicle routing problem (CVRP), including an additional neighborhood called SWAP\* — via its Python bindings [mdealencar/HybGenSea](https://github.com/mdealencar/HybGenSea).
The cable routing relies on a navigation mesh generated by the library [artem-ogre/CDT](https://github.com/artem-ogre/CDT) (Constrained Delaunay Triangulation, C++) via its Python bindings [artem-ogre/PythonCDT](https://github.com/artem-ogre/PythonCDT).
## Documentation Contents
```{toctree}
setup
notebooks/quickstart_high
overview
high_level_api
low_level_api
theory
paper
```