Closed jrhalket closed 1 year ago
Yes, you are reading it correctly. The motivation is that the user should be informed about NaN
s, which usually signal an anomaly, and should sanitize them in the code (eg replace with Inf
).
The code as is does not add new Sobol points in case Inf
are encountered, they are treated like any other objective value. That said, since they are sorted after, if you have enough finite values they will not be visited for local optimization.
If you do get a lot of infeasible pointts (which happens for some problems) and use Inf
to mark those, I would advise increasing the number of Sobol points.
I am open to suggestions for the algorithm though. Visiting new points for each Inf
point could make sense. Feel free to link code, but only if it is with a compatible license.
ok thanks. I've gone the route of replacing NaNs with Inf as they are due to computational precision issues.
On Thu, Sep 15, 2022 at 3:33 AM Tamas K. Papp @.***> wrote:
Yes, you are reading it correctly. The motivation is that the user should be informed about NaNs, which usually signal an anomaly, and should sanitize them in the code (eg replace with Inf).
The code as is does not add new Sobol points in case Inf are encountered, they are treated like any other objective value. That said, since they are sorted after, if you have enough finite values they will not be visited for local optimization.
If you do get a lot of infeasible pointts (which happens for some problems) and use Inf to mark those, I would advise increasing the number of Sobol points.
I am open to suggestions for the algorithm though. Visiting new points for each Inf point could make sense. Feel free to link code, but only if it is with a compatible license.
— Reply to this email directly, view it on GitHub https://github.com/tpapp/MultistartOptimization.jl/issues/35#issuecomment-1247697306, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABJGWDGMZ4BKHBGEVSVVPILV6LGN3ANCNFSM6AAAAAAQMZGEF4 . You are receiving this because you authored the thread.Message ID: @.***>
-- Jonathan Halket Department of Finance Texas A&M University www.halket.com
Does the code cycle to new Sobol Points if the original set contains some where the function returns NaN? I believe the fortran version of the TikTak code from @serdarozkan now does this but here I see an assert which throws an error if the set contains an NaN. Am I reading the code properly?