Skip to content

Biogeme 3.3.0

Choose a tag to compare

@michelbierlaire michelbierlaire released this 01 Aug 16:24
385aaf3

In this major release, arithmetic expressions and their derivatives are no longer evaluated using cythonbiogeme.
Instead, Biogeme now relies on JAX, a high-performance numerical computing library for Python.

This transition required substantial changes to the underlying codebase. A large portion had to be re-implemented from scratch.
Although the release has undergone extensive testing, some issues may still persist.
If you encounter any problems, please report them on the user group.

To the extent possible, the user interface, namely the syntax for model specification, remains consistent with previous versions.
As a result, we anticipate only minor adjustments will be needed in existing code. However, some updates may be necessary.

The impact on computation time is substantial. Preliminary tests on the Swissmetro dataset show the following improvements:

Model Computation Speedup (3.3.0 vs 3.2.14)
Logit Function only 60.0×
Logit Function + Gradient 164.8×
Logit Function + Gradient + Hessian 54.7×
CNL Function only 120.0×
CNL Function + Gradient 42.7×
CNL Function + Gradient + Hessian 2.7×
Mixtures_100 Function only 29.0×
Mixtures_100 Function + Gradient 89.2×
Mixtures_100 Function + Gradient + Hessian 13.2×