Requirements

OptiWindNet has been tested on Windows 10/11 and on Linux systems, but should run on MacOSX as well.

A recent Python version (3.10+) is required to run OptiWindNet, and the use of a dedicated Python virtual environment is recommended. This can be achieved by installing either:

  • Python, which provides: venv virtual environment creator and pip package manager;

  • or Miniforge (Anaconda or Miniconda also work, as long as the environment uses the conda-forge channel), which provides: conda environment and package manager.

Installation

The following commands must be run from the system’s command line interface (e.g. git-bash, cmd, powershell).

If using venv/pip

Run:

python -m venv optiwindnet_env
  • cmd: optiwindnet_env\Scripts\activate.bat

  • bash: source optiwindnet_env/Scripts/activate

  • powershell: optiwindnet_env\Scripts\Activate.ps1

Then:

pip install optiwindnet

If using conda

Download environment.yml, then run:

conda env create -f environment.yml
conda activate optiwindnet_env
pip install optiwindnet

Running

OptiWindNet is not an application and has no main program to be executed. The recommended way to use it is in an interactive Python notebook such as JupyterLab or the Jupyter Extension for Visual Studio Code.

Optional - Solvers

The installation procedure above enables OptiWindNet’s heuristics, meta-heuristic and mathematical optimization with Google’s OR-Tools (open-source software).

Other solvers can be used for mathematical optimization, but they are not installed by default. See the documentation section Exact Solvers for relevant parameters when calling each solver.

The commands suggested here assume that the Python environment for OptiWindNet has been already activated. For packages that are installable with both pip and conda, enter only one of the commands.

Solvers perform a search accross the branch-and-bound tree. This process can be accelerated in multi-core computers by using concurrent threads, but not all solvers have this feature. As of Mar/2025, only gurobi, cplex and cbc have this multi-threaded search capability. The ortools solver also benefits from multi-core systems by launching a portfolio of algorithms in parallel, with some information exchange among them.

Gurobi

Gurobi is proprietary software (academic license available). The trial version can only handle very small problems.:

pip install gurobipy
conda install -c gurobi gurobi

CPLEX

IBM ILOG CPLEX is proprietary software (academic license available). The Community Edition version can only handle very small problems.:

pip install cplex

HiGHS

HiGHS is open source software.:

pip install highspy
conda install highspy

SCIP

SCIP is open source software.:

conda install scip

CBC

COIN-OR’s Optimization Suite is open source software and its MILP solver is coin-or/Cbc: COIN-OR Branch-and-Cut solver.

Pyomo’s interface with CBC is through a system call, so it does not need to be part of a python environment, but Pyomo must be able to find the solver’s executable file. Conda has a package for it, but it may also be installed by following the instructions in the links above.:

conda install coin-or-cbc

Updating

Activate the Python environment for OptiWindNet and enter:

pip install --upgrade optiwindnet