TESTS: t7140-solver-MGH09.pl can finish ( sucess / Pass ) with relaxed options in sample MGH09.gnumeric
using the std 'options' of 1000 iterations and 30 seconds t7140-solver-MGH09.pl fails with:
| Solver reached time or iteration limit
--> -3.533480449113425
which is handeled in the test batch by:
Known failure.
setting 'ok' to 1, and printing 'Pass'.
Allowing ~12000 iterations produced:
Unexpected success.
with a 'quality' of ~6.93253... in K39 here within ~12 seconds.
( seems relative short / fast calculations )
A. should we change sample and test to have an indicator if code changes harm this success?
B. could it be of help to identify the shortcomings in the other 'Known failure' candidates?
additional thoughts and info - Click to expand
how to perform the test ( for other 'newbies' ): load 'samples/solver/MGH09.gnumeric' and click 'Tools - Solver... - Options ( change if neccessary ) - Solve', the relevant result is not the 'Objective value' shown, but comes up in cell K39. !Beware! that if you save the sheet after a solver run the actual results will be taken as start values for subsequent runs, thus you loose control if the solver does anything meaningful. Alternatively call 't7140-solver-MGH09.pl' in a terminal in 'test'. ( don't expect any more knowledge about the solvers from me, I'm just scratching the surface )tested with actual 1.12.54 as well as older 1.12.52,
works in std 'double' and 'long' versions,
have the impression that:
-
use of 'sharp rounding',
-
applying 'ties away from zero' rounding mode also for big! results of add, sub and mul calculations,
-
use 'long' datatype,
solo or in combinations improve speed ( down to 08 sec. ), require less iterations ( down below 10000 ), improve 'quality' ( up to ~8.5 ),
still testing ... but would like a cross check if the basic idea that solving is possible is meaningful and reproducible on other systems.
find attached patched sample - MGH09.gnumeric and test - t7140-solver-MGH09.pl to check for differences if not reproducible.