Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v1.4.0 #999

Draft
wants to merge 18 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.5)
# ===========================================================================

PROJECT(antaresXpansion VERSION 1.4.0)
set(ANTARES_XPANSION_RC 4)
set(ANTARES_XPANSION_RC 6)

# ===========================================================================
# Default parameters
Expand All @@ -33,9 +33,9 @@ endif ()

# for centos docker to run MPI tests as root
if (ALLOW_RUN_AS_ROOT)
set(ALLOW_RUN_AS_ROOT "true")
set(ALLOW_RUN_AS_ROOT "true")
else ()
set(ALLOW_RUN_AS_ROOT "false")
set(ALLOW_RUN_AS_ROOT "false")
endif ()

# Set solvers to use
Expand All @@ -45,8 +45,8 @@ option(XPRESS "Use solver FICO XPRESS" OFF)
if (COIN_OR)
message("Coin-OR Solvers Clp and Cbc used. Solvers version are those present in orTools release linked to project.")
else ()
message(FATAL_ERROR "COIN_OR has to be true, it is required in lpnamer module of Antares Xpansion.")
endif()
message(FATAL_ERROR "COIN_OR has to be true, it is required in lpnamer module of Antares Xpansion.")
endif ()


# ===========================================================================
Expand Down Expand Up @@ -396,12 +396,12 @@ if (ANTARES_XPANSION_RC)
endif ()

# Get the latest abbreviated commit hash of the working branch
execute_process(
execute_process(
COMMAND git log -1 --format=%h
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
OUTPUT_VARIABLE GIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
)

#version file to define Xpansion and Antares-simulator versions
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/python/antares_xpansion/__version__.py.in ${CMAKE_CURRENT_SOURCE_DIR}/src/python/antares_xpansion/__version__.py)
Expand Down
2 changes: 1 addition & 1 deletion antares-version.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"antares_version": "9.2.0-rc10",
"antares_version_executable": "9.2",
"antares_xpansion_version": "1.4.0-rc4",
"antares_xpansion_version": "1.4.0-rc6",
"minizip_ng_version": "3.0.6",
"or-tools-rte": "9.11-rte1.1"
}
172 changes: 105 additions & 67 deletions docs/changelog/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,47 @@ Antares-Xpansion changelog

v1.4.0 (12/2024)
--------------------------------------------------------

### Features
* Update Antares Simulator to 9.2
* Output file **criterions.txt** is renamed **LOLD.txt** as it gathers the loss of load for each area at each iteration of the algorithm
* End to end coherence of solvers : if Xpress is selected, it is also used for Antares step (does not work yet with memory mode), if coin is selected, sirius is used in Antares

* Update Antares Simulator to 9.2
* Output file **criterions.txt** is renamed **LOLD.txt** as it gathers the loss of load for each area at each iteration
of the algorithm
* End to end coherence of solvers : if Xpress is selected, it is also used for Antares step (does not work yet with
memory mode), if coin is selected, sirius is used in Antares
* Support for in memory problems between Antares and problem generation
* Remove local UI support [#972](https://github.com/AntaresSimulatorTeam/antares-xpansion/pull/972)
* Properly handle Antares Simulator errors. Especially error -9 occurring when running out of memory where Xpansion tried to continue in an improper state.
* Properly handle Antares Simulator errors. Especially error -9 occurring when running out of memory where Xpansion
tried to continue in an improper state.
* When using xpress, problems generated by problem_generation are in a binary format to save space.
* Various performance improvements

### For developers

* Various improvement on dependency management through vcpkg.
* Update and improve documentation
* Use devtoolset 11 for CentOS and OL8
* Add some tests using cucumber
* Improve maintainability [#965](https://github.com/AntaresSimulatorTeam/antares-xpansion/pull/965)
* Fix performance regression with missing TBB dependency [#970](https://github.com/AntaresSimulatorTeam/antares-xpansion/pull/970)
* Add script to convert markdown docs for support in xwiki [#973](https://github.com/AntaresSimulatorTeam/antares-xpansion/pull/973)
* Fix performance regression with missing TBB
dependency [#970](https://github.com/AntaresSimulatorTeam/antares-xpansion/pull/970)
* Add script to convert markdown docs for support in
xwiki [#973](https://github.com/AntaresSimulatorTeam/antares-xpansion/pull/973)
* Add script based on docker to generate centOS7 assets
* Update project organisation. Mainly move headers file in dedicated include directory.
* Update and apply clang-format

### New Contributors

* @pet-mit made their first contribution in https://github.com/AntaresSimulatorTeam/antares-xpansion/pull/944

**Full Changelog**: https://github.com/AntaresSimulatorTeam/antares-xpansion/compare/v1.3.2...v1.4.0-rc3

v1.3.2 (07/2024)
--------------------------------------------------------

### Bug Fixes

* Fix an issue where the application would crash if a user specified a value for "playlist_reset" in general_data.ini
* Fix an issue with "singleFiles" assets on Ubuntu not working due to mpi runtime library not being found

Expand All @@ -38,8 +53,10 @@ v1.3.1 (07/2024)
### Features

- **outer_loop** option is renamed **adequacy_criterion**
- New output file **criterions.txt** is added under **lp/** dir to store adequacy criterions for all valid patterns (area+criterion)
- New output file **PositiveUnsuppliedEnergy.txt** is added under **lp/** dir to store the amount of unsupplied energy for all valid patterns (area+criterion)
- New output file **criterions.txt** is added under **lp/** dir to store adequacy criterions for all valid patterns (
area+criterion)
- New output file **PositiveUnsuppliedEnergy.txt** is added under **lp/** dir to store the amount of unsupplied energy
for all valid patterns (area+criterion)

### Bug Fixes

Expand All @@ -58,12 +75,13 @@ v1.3.0 (06/2024)

- Embedding Mpi in Windows
- Allow sensitivity study to run unzipped study
- Allow to specify a security criterion in number of hours of loss of load in the study. This feature is referred as outer_loop (renamed to adequacy_criterion in 1.3.1)
- Allow to specify a security criterion in number of hours of loss of load in the study. This feature is referred as
outer_loop (renamed to adequacy_criterion in 1.3.1)

### Bug Fixes

- Duplicate Xpress loading messages
- Remove whitespace from Xpress path on Windows
- Remove whitespace from Xpress path on Windows
- Fix truncated xpress path on linux

v1.2.2 (02/2024)
Expand Down Expand Up @@ -96,15 +114,16 @@ v1.1.0 (09/2023)
### Features

- Implementation of the Benders by batch algorithm : performance improvements over the classical Benders algorithm
- New parameter `batch_size` in `settings.ini` to tune the Benders by batch algorithm, more details [here](../user-guide/get-started/settings-definition.md#batch_size)
- New parameter `batch_size` in `settings.ini` to tune the Benders by batch algorithm, more
details [here](../user-guide/get-started/settings-definition.md#batch_size)
- Logs improvements:
- Print user and hostname in the standard output and in `reportbenders.txt`
- Print both walltime and cumulative CPU time for subproblems resolution


### For developers

- MPI dependency is now mandatory as `benderssequential` and `bendersmpi` have been merged in a single `benders` executable
- MPI dependency is now mandatory as `benderssequential` and `bendersmpi` have been merged in a single `benders`
executable

v1.0.3 (02/2023)
--------------------
Expand Down Expand Up @@ -139,10 +158,11 @@ v1.0.0 (12/2022)
- Use Antares-Simulator 8.4.1
- Performance improvement in execution time
- In-out stabilisation of the Benders algorithm : new parameters `separation_parameter` and `relaxed_optimality_gap`
to tune the stabilization, more
information [here](../user-guide/get-started/settings-definition.md#separation_parameter)
to tune the stabilization, more
information [here](../user-guide/get-started/settings-definition.md#separation_parameter)
- Parallelization of the `problem_generation` step
- Performance improvement in disk space consumption : in full run mode i.e with option `--step full` (default behavior), Antares-Xpansion outputs are zipped within Antares study archive
- Performance improvement in disk space consumption : in full run mode i.e with option `--step full` (default behavior),
Antares-Xpansion outputs are zipped within Antares study archive
- Change the default value of `relative_gap` from `1e-12` to `1e-6`

### Documentation
Expand All @@ -162,11 +182,13 @@ v0.8.0 (10/2022)
- Weights files must be stored in `user/expansion/weights`

### Bug fixes

- Allow the `capa` folder to be missing if unused
- The algorithm now properly stops after `max_iteration` instead of `max_iteration + 1` iterations

v0.7.0 (06/2022)
--------------------

### Features

- Add the possibility to perform sensitivity studies on optimal investment solutions
Expand All @@ -175,6 +197,7 @@ v0.7.0 (06/2022)
- Add `log_level` option to choose the verbosity level of the solver
- Add `resume` step, to provide the possibility to resume an unfinished study
- Bump antares version used by Xpansion to 8.1.1

### Bug fixes

### For developers
Expand All @@ -184,10 +207,11 @@ v0.7.0 (06/2022)

v0.6.0 (12/2021)
--------------------

### Features

- Antares-Xpansion is now compatible with Antares v8.1 studies
- Add `relative_gap` option as a stopping criterion for the Antares-Xpansion algorithm
- Add `relative_gap` option as a stopping criterion for the Antares-Xpansion algorithm
- Add `--antares-n-cpu` option to use Antares-Simulator parallelism
- Add `-v, --version` option to show Antares-Xpansion version
- Add `--antares-version` option to show Antares-Simulator version
Expand All @@ -196,100 +220,114 @@ v0.6.0 (12/2021)
- Set default value of `--simulationName` to `last` in order to use the last Antares simulation

### Bug fixes

- Path to binaries directory was not found in some situations with python launcher and in python exclusive package
- Correct bug when there are too many zeros in a link-profile
- Correct bug when there are too many zeros in a link-profile

### For developers

- cpp `lpnamer` library is split into smaller and consistent libraries
- Each Antares-Xpansion step has its own driver (python class) instead of the all-in driver
- Upgrade to a new version of `antares-deps` (bug fix)

v0.5.0 (10/2021)
--------------------

### Features

- In benders optimization, master problem .mps is written after each resolution
- Several investment candidates on the same link
- Review of `candidates.ini` file content (remove `has-link-profile` and add `enable` feature)
- In benders optimization, master problem .mps is written after each resolution
- Several investment candidates on the same link
- Review of `candidates.ini` file content (remove `has-link-profile` and add `enable` feature)

### Bug fixes

- Option `keepMps` was still removing some files needed for lp step
- Correction of lp step call if it was the only step asked by user
- Correction of optimization if hurdles cost were used in Antares-Simulator
- Correction of optimization with binary additionnal constraint between investment candidates
- Option `keepMps` was still removing some files needed for lp step
- Correction of lp step call if it was the only step asked by user
- Correction of optimization if hurdles cost were used in Antares-Simulator
- Correction of optimization with binary additionnal constraint between investment candidates

### For developers
- Fix mergemps optimization in debug mode
- Fix vcpkg on Github Actions
- Add build cache for Github Actions (Ubuntu only) to speed up the build
- Add sonarcloud analysis
- Use of docker image for build on centos7
- Add read-the-docs documentation
- Generation of pdf user guide from read-the-docs documentation
- Update Cmake to support Xpress on centos7


- Fix mergemps optimization in debug mode
- Fix vcpkg on Github Actions
- Add build cache for Github Actions (Ubuntu only) to speed up the build
- Add sonarcloud analysis
- Use of docker image for build on centos7
- Add read-the-docs documentation
- Generation of pdf user guide from read-the-docs documentation
- Update Cmake to support Xpress on centos7

v0.4.0 (07/2021)
--------------------

### Features

- A new multi solver interface is introduced, we no longer use OR-tools
- The user can choose different solvers
- The optimality gap is no longer hard-coded and the user can define it in the inputs
- In case of unfeasible problems, the program now prints a console and file outputs
- Solver traces can be activated by specific option in benders/bendersmpi console applications
- Benders console information are now also printed on a specific file
- A new multi solver interface is introduced, we no longer use OR-tools
- The user can choose different solvers
- The optimality gap is no longer hard-coded and the user can define it in the inputs
- In case of unfeasible problems, the program now prints a console and file outputs
- Solver traces can be activated by specific option in benders/bendersmpi console applications
- Benders console information are now also printed on a specific file

### Bug fixes

- Remove erroneus value from the `"problem_status"` entry of the output json file
- Fix display of overall cost of the best solutions
- Remove erroneus value from the `"problem_status"` entry of the output json file
- Fix display of overall cost of the best solutions

v0.3.0 (05/2021)
--------------------

### Features

- Add `yearly-weights` file support to define a weight for each antares study MC years
- Clean of intermediate result file after each simulation step
- Creation of a Antares-Xpansion version with only one executable
- Add `yearly-weights` file support to define a weight for each antares study MC years
- Clean of intermediate result file after each simulation step
- Creation of a Antares-Xpansion version with only one executable

### Bug fixes

- Use study stored in mount network drive
- Problem accepting capital letters in candidate areas
- Small alignment fix in output
- Use study stored in mount network drive
- Problem accepting capital letters in candidate areas
- Small alignment fix in output

v0.2.0 (04/2021)
--------------------

### Features

- Add `update` step to update antares study links with calculated investments

### Bug fixes
- Add `update` step to update antares study links with calculated investments

- Invalid best iteration display in logs
- Rounding problem in writing MPS with OR-tools
- Antares-Xpansion can't be launched twice at the same time
- Windows: Add Microsoft Visual Studio needed redistribuable to installer
- Linux: wrong `antares-solver` executable permission and install directory
### Bug fixes

- Invalid best iteration display in logs
- Rounding problem in writing MPS with OR-tools
- Antares-Xpansion can't be launched twice at the same time
- Windows: Add Microsoft Visual Studio needed redistribuable to installer
- Linux: wrong `antares-solver` executable permission and install directory

v0.1.0 (03/2021)
--------------------
We’re happy to announce the first open-source version v0.1.0 of Antares-Xpansion.
Antares-Xpansion optimizes the installed capacities of an Antares study.

The investment decisions are optimized by running Antares' simulations iteratively. At each iteration, the installed capacity of the investments are updated, and the simulations are repeated until the total costs have converged to a minimum. The total cost evaluated in this problem are the sum of the **expected operation cost during one year** and **the investment annuity**.
The user defines investment candidates. Candidate capacities for investment are necessarily links from an Antares study. Investment candidates can be:
- transmission capacity between two areas
- thermal generation capacity (located in a virtual node)
- renewable generation capacity (located in a virtual node)
- or even flexibilities (located in virtual nodes)
The investment decisions are optimized by running Antares' simulations iteratively. At each iteration, the installed
capacity of the investments are updated, and the simulations are repeated until the total costs have converged to a
minimum. The total cost evaluated in this problem are the sum of the **expected operation cost during one year** and *
*the investment annuity**.
The user defines investment candidates. Candidate capacities for investment are necessarily links from an Antares study.
Investment candidates can be:

- transmission capacity between two areas
- thermal generation capacity (located in a virtual node)
- renewable generation capacity (located in a virtual node)
- or even flexibilities (located in virtual nodes)

## Notes
This version is only compatible with Antares v8.0 [Antares-Simulator](https://antares-simulator.org). The Antares binaries needed by Antares-Xpansion are available in the installation package of Antares-Xpansion.

An annual cost, a potential, a link-profile or an already-installed-capacity can be defined for each candidate. Linear constraints between the invested capacities of investment candidates can also be imposed.
This version is only compatible with Antares v8.0 [Antares-Simulator](https://antares-simulator.org). The Antares
binaries needed by Antares-Xpansion are available in the installation package of Antares-Xpansion.

An annual cost, a potential, a link-profile or an already-installed-capacity can be defined for each candidate. Linear
constraints between the invested capacities of investment candidates can also be imposed.

The optimization is launched from the command prompt, where the details of the iterations are displayed.

Expand Down
2 changes: 1 addition & 1 deletion format-code.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ if [ $# -eq 0 ]
then
# No arguments: format all
SOURCE_DIRS="src/cpp"
SOURCE_FILES=$(find $SOURCE_DIRS -regextype egrep -regex ".*/*\.(c|cxx|cpp|cc|h|hxx|hpp)$")
SOURCE_FILES=$(find $SOURCE_DIRS -regextype egrep -regex ".*/*\.(c|cxx|cpp|cc|h|hxx|hpp)$" ! -path '*/antlr-interface/*')
else
# Format files provided as arguments
SOURCE_FILES="$@"
Expand Down
Loading