Sure: here is the minimize stuff. As you can see the tool has different function. it can be used as a sat, optimizer or Pareto optimizer.
my problem also arises for simple minimization and sat: all search strategies do not complete with the same results
val (isSearchOnlyOne,isParetoSearch) = goal match {
case s:SimpleMappingGoal =>
minimize(simpleVarFinder(s))
(false,false)
case Pareto(a,b) => solver.paretoMinimize(simpleVarFinder(a), simpleVarFinder(b))
(false,true)
case Sat() => (true,false)
}
solver.addDecisionVariables(problem.varsToSave)
search {
val allVars = problem.varsToDistribute.toArray
if(isParetoSearch) {
binaryFirstFail(allVars)
}else{
binaryFirstFail(allVars)
//splitLastConflict(allVars)
//conflictOrderingSearch(allVars,allVars(_).min,allVars(_).min)
}
Only the binaryFirstFail finds something and the two others complete with no result found.
(I'v disabled discrepancies and timeouts)
Maybe some decision variables are missing in the search strategy and that's why I have problems?
Is there a way to know if the search completed with all variables bound?