TaylorModels.jl icon indicating copy to clipboard operation
TaylorModels.jl copied to clipboard

Improve the product of TaylorModels

Open uzlinares opened this issue 5 years ago • 8 comments

This PR implements the product of TaylorModel's product as discussed in #80.

uzlinares avatar Jun 28 '20 22:06 uzlinares

@mforets Do you have any comments on this PR?

lbenet avatar Jul 17 '20 16:07 lbenet

I don't have further comments about the implementation, looks good to me :tada:

About the evaluation of the new method, it would be interesting to run the ARCH-NLN RE on TaylorModels#master and on this branch, and compare the accuacy measures such as the width of the final states. (This is now quite easy to setup since all results are stored in result/results.csv.)

mforets avatar Jul 17 '20 18:07 mforets

I don't know for sure but maybe there is a difference only in models handling "small" numbers; in that sense, the Production-Destruction model is a good candidate.

mforets avatar Jul 17 '20 18:07 mforets

About the evaluation of the new method, it would be interesting to run the ARCH-NLN RE on TaylorModels#master and on this branch, and compare the accuacy measures such as the width of the final states. (This is now quite easy to setup since all results are stored in result/results.csv.)

It seems a good suggestion to me; can you check that, @UzielLinares ?

lbenet avatar Jul 17 '20 21:07 lbenet

I've checked out the suggested for the ProductionDestrucion model and found the following

Model Time Width Branch
PRDE20 I 3.0750348345000003 3.338181794366981e-20 master
PRDE20 P 8.14854831 5.386499535725456e-21 master
PRDE20 IP 5.807060152 1.0659289899163344e-20 master
PRDE20 I 3.6199666665000003 3.338181794366981e-20 current
PRDE20 P 9.537335849 5.386499535725456e-21 current
PRDE20 IP 6.833716878000001 1.0659289899163344e-20 current

This new implementation of the product takes 1.17x compared to the implementation on master. Additionally, I've tested the discussed on issue #80 and found that the improvement in the bound is very small (of order 10^-14).

uzlinares avatar Jul 24 '20 01:07 uzlinares

Though ~20% slower run times is not too bad, the actual improvement of the remainder using the proposed changes is not actually seen. My guess is that the changes may be seen for larger boxes.

I propose to leave this PR open, and try to speed up the functions involved, probably in IntervalArithmetics.jl.

@mforets @dpsanders: Do you have any comments or suggestions?

lbenet avatar Jul 24 '20 14:07 lbenet

I've checked out the suggested for the ProductionDestrucion model and found the following

thanks for checking !

I propose to leave this PR open

sounds good to me. i'd also like to play a bit with the new method. we could benchmark remainder_product(a, b, aux, Δnegl) in isolation.

mforets avatar Jul 24 '20 14:07 mforets

Another option is to run the benchmark suite in master and this branch, and check how different the results are with respect to time and also the final remainders. But this may be time consuming.

lbenet avatar Jul 24 '20 14:07 lbenet