<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#ffffff">
    <br>
    <br>
    Op 05-05-12 08:50, Nurlan schreef:
    <blockquote cite="mid:1336200655939-3964160.post@n3.nabble.com"
      type="cite">
      <pre wrap="">Hi guys!
I'm using drools-planner-*5.4.0.CR1*...

Let's say I have some solution(NOT FINAL BEST SOLUTION) which done by human
manually and I want get list of broken contraints for that solution, I've
tried

        this.scoreDirector.setWorkingSolution(someSolution);
        this.scoreDirector.calculateScore();
</pre>
    </blockquote>
    Something like that should work. For the exact correct usage, see
    the new section for the 5.4.0.Final manual:<br>
    &nbsp;
<a class="moz-txt-link-freetext" href="https://hudson.jboss.org/hudson/view/Drools%20jBPM/job/drools-planner/lastSuccessfulBuild/artifact/drools-planner-docs/target/docbook/publish/en-US/html_single/index.html#d0e3786">https://hudson.jboss.org/hudson/view/Drools%20jBPM/job/drools-planner/lastSuccessfulBuild/artifact/drools-planner-docs/target/docbook/publish/en-US/html_single/index.html#d0e3786</a><br>
    It should never return null. I do in the examples all the time.<br>
    <br>
    There is a point though, that the code above still requires the
    creation of a Solver (but it doesn't you to actually run it):<br>
    <pre class="JAVA"><a id="d0e3786"><span class="java_type">ScoreDirectorFactory</span><span class="java_plain">&nbsp;scoreDirectorFactory&nbsp;</span><span class="java_operator">=</span><span class="java_plain"> solverFactory.buildSolver()</span><span class="java_separator">.</span><span class="java_plain">getScoreDirectorFactory</span><span class="java_separator">();</span>
<span class="java_type">ScoreDirector</span><span class="java_plain">&nbsp;guiScoreDirector&nbsp;</span><span class="java_operator">=</span><span class="java_plain">&nbsp;scoreDirectorFactory</span><span class="java_separator">.</span><span class="java_plain">buildScoreDirector</span><span class="java_separator">();
</span></a><a id="d0e3786"><span class="java_plain">guiScoreDirector</span><span class="java_separator">.</span><span class="java_plain">setWorkingSolution</span><span class="java_separator">(</span><span class="java_plain">solution</span><span class="java_separator">);</span>
<span class="java_type">Score</span><span class="java_plain">&nbsp;score&nbsp;</span><span class="java_operator">=</span><span class="java_plain">&nbsp;guiScoreDirector</span><span class="java_separator">.</span><span class="java_plain">calculateScore</span><span class="java_separator">();</span></a><a id="d0e3786">
</a></pre>
    Feel free to make a jira if you agree that it shouldn't be needed to
    do a ".buildSolver()" in that code.<br>
    <br>
    <blockquote cite="mid:1336200655939-3964160.post@n3.nabble.com"
      type="cite">
      <pre wrap="">
it returns *null* since it isn't connected with Solver

then I've tried using Solver with
&lt;termination&gt;&lt;maximumStepCount&gt;0&lt;/maximumStepCount&gt;&lt;/termination&gt;:
        this.scoreDirector.setWorkingSolution(someSolution);
        this.solver.setPlanningProblem(this.scoreDirector.getWorkingSolution());
        
        this.solver.solve();
                
        this.scoreDirector.setWorkingSolution(this.solver.getBestSolution());
        this.scoreDirector.calculateScore();

then it shows *java.lang.UnsupportedOperationException* because there is no
best solution in Solver

java.lang.UnsupportedOperationException: StepCountTermination can only be
used for phase termination.
        at
org.drools.planner.core.termination.StepCountTermination.isSolverTerminated(StepCountTermination.java:40)
        at
org.drools.planner.core.termination.OrCompositeTermination.isSolverTerminated(OrCompositeTermination.java:42)
        at
org.drools.planner.core.solver.DefaultSolver.runSolverPhases(DefaultSolver.java:181)
        at
org.drools.planner.core.solver.DefaultSolver.solve(DefaultSolver.java:151)


how can implement this task? or I have to implement setBestSolution in
Solver, i think this is bad idea...
</pre>
    </blockquote>
    bad idea indeed<br>
    <blockquote cite="mid:1336200655939-3964160.post@n3.nabble.com"
      type="cite">
      <pre wrap="">

--
View this message in context: <a class="moz-txt-link-freetext" href="http://drools.46999.n3.nabble.com/getting-list-of-broken-constraints-for-some-solution-NOT-BEST-SOLUTION-in-drools-planner-tp3964160.html">http://drools.46999.n3.nabble.com/getting-list-of-broken-constraints-for-some-solution-NOT-BEST-SOLUTION-in-drools-planner-tp3964160.html</a>
Sent from the Drools: User forum mailing list archive at Nabble.com.
_______________________________________________
rules-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a>

</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
With kind regards,
Geoffrey De Smet</pre>
  </body>
</html>