Storing a non-accepted eval on a chain; candidate exchange chains with replacement.#46
Storing a non-accepted eval on a chain; candidate exchange chains with replacement.#46theloudis wants to merge 2 commits intofloswald:masterfrom
Conversation
A function evaluation that returns eval.status < 0 will also have eval.value = -1 because of the way the Eval object is initialised. This value is mistakenly saved in the chain if one does not condition on ev.accepted==true, as it is always smaller than anything else on the chain up to that point.
According to Baragatti et al (2013), "N pairs of chains are chosen uniformly in all possible pairs with replacement"
|
hi! thanks for the contribution. regarding 1. there is the allAccepted method. I prefer to save all values on the chain. True if you stop after iteration 1, your best value is -1 one. but then you have other problems to deal with :-) regarding 2., it may be a sensible addition to allow for this to be an option to be set by the user. in my exerpience the algorithm is extremely sensitive to all the related tuning parameters (which I consider this one to be). What worked for them (i.e. resampling) need not work for other applications. i think i set that to any idea why travis is failing? |
No idea about travis, sorry! |
|
then something else seems to be wrong... the algo should not use non-accpepted values to update, that doesn't make much sense: https://github.com/floswald/SMM.jl/blob/master/src/mopt/AlgoBGP.jl#L312 |
|
Thanks Florian. Regarding 1: Still, if one does not condition on
I would expect that |
|
I see, that makes sense! There seems to be an issue with this indeed. happy to accept any proposals! :-) |
Updated set_eval!() to store best value only if eval is accepted. A function evaluation that returns eval.status < 0 will also have eval.value = -1 because of the way the Eval object is initialised. This value is mistakenly saved in the chain if one does not condition on ev.accepted==true, as it is always smaller than anything else on the chain up to that point.
Candidate exchange pairs of chains are chosen WITH replacement according to Baragatti et al (2013) "N pairs of chains are chosen uniformly in all possible pairs with replacement".