Transition Path: redesign of convergence criteria

NOTE: Your transition path code probably just got slower, this is purely because the new default convergence criterion for transition paths is stricter than the old one.

Previously, convergence in transition path was based on the change in price p_i-p_{i-1}, were i is the iterations of the transition path. You chose the convergence tolerance using transitionpathoptions.tolerance.

I have changed this. First, alongside convergence in prices you can now also measure convergence in the general eqm conditions, so g_i which should go to zero. You control the convergence tolerance with transitionpathoptions.toleranceGEcondns.

There is alongside this also still the tolerance in prices, and the convergence tolerance has been renamed to transitionpathoptions.toleranceGEprices.

The default is transitionpathoptions.toleranceGEcondns=1e-4 and transitionpathoptions.toleranceGEprices=Inf; notice this means the default is to only care about convergences in the GE condns.

Two main motivators. First, the main motivator for turning off the prices convergence by default, is that it interacts with the size of the ‘factor’ used to update prices in the shooting algorithm. Second, is that now the convergence is transition paths is handled exactly the same way as it is in stationary general eqm.

Old codes will work under the new approach with no changes, although the default settings for convergence are stricter now so run times likely increase as a by product of this increased strictness. You can of course always set a different value for transpathoptions.toleranceGEcondns so that it is the old strictness and runtime. [If you set transitionpathoptions.tolerance you will see an error telling you to update this.]