Hi Todor, On Tue, May 14, 2019 at 3:06 AM Todor Balabanov <todor.balabanov@gmail.com> wrote:
Hello! Currently DE implementation in NLPSover has a coefficient called FACTOR: https://github.com/LibreOffice/core/blob/f4ba484183a1e7b9824f10580d633466c266828f/nlpsolver/ThirdParty/EvolutionarySolver/src/net/adaptivebox/deps/behavior/DEGTBehavior.java#L41 https://github.com/LibreOffice/core/blob/330df37c7e2af0564bcd2de1f171bed4befcc074/nlpsolver/src/com/sun/star/comp/Calc/NLPSolver/DEPSSolverImpl.java#L129 There are some researches about multiple values of the scaling factor: https://www.sciencedirect.com/science/article/pii/S0020025511000909 My idea is FACTOR to be replaced with two coefficients: MIN_FACTOR MAX_FACTOR We can keep default values for them 0.5, as it is in the source code now. When we have MIN_FACTOR == MAX_FACTOR the algorithm will believe as it behaves now. When we have MIN_FACTOR < MAX_FACTOR each time when FACTOR is needed we can select random uniform value in the range. What do you think?
It sounds good to me. I don't think many developers have a great knowledge of nlpsolver so feel free to change that if it actually helps to iterate towards a solution faster. I'm sure since nlpsolver was written there were quite some advances in DE and PSO algorithms, which we could incorporate. All the best,
Todor
Best Regards, Tomaž Vajngerl