Originally posted by: SystemAdmin
I have an interactive application using IloCP strictly with intvar decision variables representing categories (of questions), questions and answers to these questions. Making matters worse, there are subquestions which roll up to these questions as well. Everything is tied together using compatibility tables and "softer" indexed expression constraints. Initial propagation occurs and I can manually answer ALL questions manually, one by one, until every
rollup question is answered. However, when trying to implement a search phase for answering all remaining unanswered questions, I am declaring both IloCustomIntVarChooser and IloCustomIntValueChooser instances using the appropriate decision variables, such as:
IloIntVarChooser varChooser = new ILOGIntVarChooser(cp);
IloIntValueChooser valChooser = new ILOGIntValueChooser(cp);
IloIntVar[] vars = new IloIntVar[5];
vars[0] = Q_Plan_Answers;
vars[1] = Q_Option_Answers;
vars[2] = Q_ProviderType_Answers;
vars[3] = Q_Market_Answers;
vars[4] = Q_SolMode_Answers;
IloSearchPhase sp = cp.searchPhase(vars, varChooser, valChooser);
cp.startNewSearch(sp);
if (cp.next()) { blah blah blah }
My problem is, there are many hundreds of decision variables that are NOT a rollup question or answer and when I add appropriate display (cp.output().println("valuable display")) in each "chooser", the startNewSearch always fails with a constraint such as:
% P
internal constraint failure(0)
failure(0)
This occurs after initial propagation and the model in a stable state. All decision variables are integer values only, and I'm specifically passing in the array of IloIntVar decision variables I'd like for it to concentrate on.
If I know that the model is complete after answering all rollup questions only, is it possible to instruct CP that it's okay to leave some decision variables not fixed?
And what could be causing this initial failuer BEFORE any of my displays are coming out (within the choosers)?
Thank you for any help you can provide!!!
#CPOptimizer#DecisionOptimization