Open khrudkova opened 2 months ago
NumSynth finds numerical values which discriminate between the positive and negative examples, but does not optimise the choice of numerical values. NumSynth only minimises the size of programs.
For instance, given the positive examples [f(3), f(6)] and the negative examples [f(10), f(12)], all of the hypotheses below would be optimal solutions:
f(A) :- leq(A,6) f(A) :- leq(A,7) f(A) :- leq(A,8) f(A) :- leq(A,9)
Since these hypotheses are of the same size, NumSynth does not prioritize one over another and might return any of them.
Moreover, the solver we use to generate hypothesis (Clingo) is non-deterministic. Therefore, it might enumerate programs of the same size in a different order, which can produce completely different solutions.
It is difficult to prevent this randomness. However, any solution returned should be optimal (have minimal size).
Hello,
please, I would like to ask you, whether and why on some datasets, the solution hypotheses differ.
I have done several test runs on dataset numeric-zendo2 and the solutions had the same hypotheses, but different numbers on several of them.
On modified numeric-zendo2 dataset, the differences in solutions between repeated runs were more notable, than on the original dataset.
What is causing this and it is possible to prevent this randomness?
Thank you.