GUI bugs

Hi everyone.
Packages will be offline for a few days due to some bugs in the Qt GUI.
For instance, the GUI can in some cases mix up the buffers for source files criterion.tpp and dynamics.tpp, which is quite annoying to say the least.
Working on it for a 2.0.4 release soon.

2.0.3 bugfix

15 oct update: windows package was incorrectly linked to an empty file. Fixed.

Packages for 2.0.3 are up again.
In particular, problems written with previous problems should no longer fail to build due to the absence of the file ‘dependencies.cpp’ (you could also create an empty file as a quick workaround).

Bocop 2.0.3

Bocop 2.0.3 is out.

This is mostly a maintenance release. Main changes include:

  • Bug fix: fix for the “don’t have function for random number generator” error that could prevent building Ipopt on Linux.
  • Bug fix: a pre-built version of Ipopt for Windows was added as a workaround to the build process hanging during Matlab detection.
  • GUI command ‘Run’ now automatically saves the c++ files and builds the bocop executable if needed. Therefore, no more error message for missing executable, and no need to launch the ‘Build’ command manually before ‘Run’. Also, building process now uses Release settings by default, the option to build with ‘Debug’ settings was added in the Build menu.
  • New optional feature: you can now save the solution files corresponding to the iterations of the optimization solver (Ipopt). This option is governed by a new parameter in the problem.def file: iteration.output.frequency. The default value of 0 will disable the save of iterations, keeping only the usual .sol file at the convergence. A value of k will save one in k iterations. These iterations saves are named problem.sol.iterxxx. This option is useful to track the progress of the optimization, for instance to investigate convergence problems, or help tune Ipopt parameters.

Links and complete changelog are available on the Download page.

BocopHJB 1.0.1

BocopHJB 1.0.1 is out!

The BocopHJB package implements a global optimization method. Similarly to the Dynamic Programming approach, the optimal control problem is solved in two steps. First we solve the Hamilton-Jacobi-Bellman equation satisfied by the value function of the problem. Then we simulate the optimal trajectory from any chosen initial condition.

Key features:

  • Global optimization for both deterministic and stochastic optimal control problems.
  • Handles switching between discrete modes of the system.
  • Stopping time problems can be solved using switching.
  • Built-in simulation module to recompute optimal strategies.
  • Support advanced rules to define the discrete control set.
  • Parallel execution with OpenMP.
  • Matlab/Python scripts to read the value function and simulated trajectories.

Ipopt incompatibility with gcc 4.8.3

The following error may occur when compiling Bocop for the first time on Linux:

error: #error "don't have function for random number generator"

It is caused by an incompatibility between Ipopt 3.11.8 and gcc 4.8.3.

We will release a new version of Bocop that fix that problem. Meanwhile, to fix it, you can compile Ipopt yourself by executing the following commands:

cd <BOCOP>/ThirdParty/Ipopt-3.11.8
./configure --prefix=<BOCOP>/ThirdParty/Ipopt-3.11.8/ --enable-static coin_skip_warn_cxxflags=yes
make -j
make install

where <BOCOP> is the absolute path to the install directory of Bocop (the one in which you have extracted the package).

Bocop 2.0.2

Bocop 2.0.2 is out.

Main changes include:

  • Single variable initialization from file.
  • New pre-defined functions callable in problem definition source files (see section A.4  “Public Tools” in the User Guide).
  • Automatic backup files of problem definition and solution.

Links and complete changelog are available on the Download page.

Using multiples versions/packages of Bocop

Dear users,

It is quite possible to have several versions of Bocop on the same machine, for instance if you want to upgrade while keeping your previous version just in case.
In this case, however, you have to make sure the Qt interface knows which package/version to use when building the executables for your problems.
This is done in the menu bar with the ‘Set path’ option, in which you simply have to give the location of the root folder for the Bocop package (meaning the folder with the README, INSTALL, LICENSE, etc files).

The GUI already checks by itself that its version number matches the version number for the core package, but this check will fail for instance if you use both a precompiled and source package with the same version number.

So in short, when you install a new package on a machine with a previous install of Bocop, please make sure that the path to the root of the package is correctly set. Menu bar -> Set root path.


Pierre Martinon

Bocop 2.0.1

Bocop 2.0.1 is out.

Main fixes include:

  • Batch folder created if not existing when calling a batch optimization from command line
  • Final time of the observation files allowed to be equal to final time of the problem  when doing parameter identification
  • Batch conversion between number of optimizations and batch step fixed
  • Keep memory of the batch informations when switching between batch and single optimization in the GUI

Links and complete changelog are available on the Download page.