This web is incomplete. We are working on it'''''

Solver Constructor And With Backtracking

We have created two new Solver, a firts Solver will use a Analyzer builds the construction plan always. And, a second Solver will use the previous funcionality in the construction plan, but its Analyzer will be iterative (with a backtracking decompositor).

Solver Constructor

If you want get this Solver, you must create a new SolverConstructor object with a ConstructionPlanRobustFactory its parameters, this new constructor inherit all the functionality of ConstructionPlanFactory and adds functionality of to create a construction plan always.

solver = new SolverConstructor(new Analyzer(new BruteForceTreeDecompositor(new MyFilter()),new ConstructionPlanRobustFactory()), new SelectorFromSketch(), new Constructor(), model);

To learn more about this new ConstructorPlanFactory you can go to this section.

SolverConstructor inherits of Solver and differences were found only in resolve function. These differences are:

  • This solver does not ask if the Analyzer is complete, because the Analyzer is using a constructor plan factory that builds the construction plan always.
  • You must build a new class instance ParamatersAssig, with all the restrictions that have been inserted in the evaluation of problem (private boolean addConstraintsToAssigs(ConstructionPlan cp)).

But if we do not make this, when we try to build the solution with the Constructor, it can not relate the new constraints of the construction plan, with the instance parAssig that we have as a parameter in the resolve() function.

Here we can see that the Constructor uses the ConstructionPlan (cp) modified by the Analyzer, and the set of ParametersAssig (assig):

...

constructor.setConstructionPlan(cp);
constructor.eval(assig,iAss);

...

Solver Constructor with Backtracking (SolverConstructorWithBK)

The SolverConstructorWithBK class inherits all the functionality of the previous class (SolverConstructor) and also adds a new attribute, an iterative Analyzer To learn more about this new Analyzer, you can go to next section).