[rules-users] Fw: proble with localSearch
Michiel Vermandel
mvermand at yahoo.com
Wed Jan 9 05:30:02 EST 2013
>For 6.0, implementing cloneSolution() yourself will be optional, as we 'll have a reflection based implementation out-of-the-box too.
Great!
-----------------
http://www.codessentials.com - Your essential software, for free!
Follow us at http://twitter.com/#!/Codessentials
________________________________
From: Geoffrey De Smet <ge0ffrey.spam at gmail.com>
To: Michiel Vermandel <mvermand at yahoo.com>; Rules Users List <rules-users at lists.jboss.org>
Sent: Wednesday, January 9, 2013 11:07 AM
Subject: Re: Fw: proble with localSearch
Op 09-01-13 11:01, Michiel Vermandel schreef:
Ok, I found the problem.
>I did not copy the third planning variable value when cloning my planning entity.
For 6.0, implementing cloneSolution() yourself will be optional, as we 'll have a reflection based implementation out-of-the-box too.
Problem fixed.
>
>
>Regards,
>
>
>Michiel
>
>
>-----------------
>http://www.codessentials.com - Your essential software, for
free!
>Follow us at http://twitter.com/#!/Codessentials
>
>
>________________________________
> From: Michiel Vermandel <mvermand at yahoo.com>
>To: Rules Users List <rules-users at lists.jboss.org>
>Sent: Wednesday, January 9, 2013 10:32 AM
>Subject: Re: [rules-users] Fw: proble with localSearch
>
>
>There is a construction heuristic that should have already filled in that planning entity.
>The two other planning variables are filled for each planning entity.
>I have put a printline in the setter of the troublesome planning variable:
>
>
> @PlanningVariable(strengthComparatorClass = TasktypeStrengthComparator.class, nullable = false)
> @ValueRange(type =
ValueRangeType.FROM_SOLUTION_PROPERTY,
solutionProperty = "tasktypes")
> public TaskType getType() {
> return type;
> }
>
> public void setType(TaskType type) {
> System.out.println("Type set to " + type);
> this.type = type;
> }
>
>
>And I get the following outprint:
>
>Type set to TL
>Type set to null
>Type set to TL
>Type set to TL
>Type set to null
>Type set to TL
>Type set to null
>Type set to TL
>Type set to null
>Type set to TL
>Type set to null
>Type set to TL
>Type set to TL
>Type set to null
>Type set to TL
>...
>Type set to null
>Type set to TL
>Type set to null
>Type set to TL
>
>Note that I also tried to set the annotation
property nullable to false.
>This seems to have no effect.
>
>Thanks,
>Michiel
>
>-----------------
>http://www.codessentials.com - Your essential software, for free!
>Follow us at http://twitter.com/#!/Codessentials
>
>
>________________________________
> From: Geoffrey De Smet <ge0ffrey.spam at gmail.com>
>To: Rules Users List <rules-users at lists.jboss.org>
>Sent: Wednesday, January 9, 2013 9:30 AM
>Subject: Re: [rules-users] Fw: proble with localSearch
>
>
>
>
>Op 09-01-13 08:21, Michiel Vermandel schreef:
>
>Hi Geoffrey,
>>
>>
>>Thanks for your advice.
>>Indeed one of the planning variables is consistently null over all planning entities.
And there was a construction heuristic that should have already filled in that planning entity?
>Enable DEBUG logging, so you can see in the
construction heuristic log if it does steps
which change that variable from null to a
non-null value.
>
>If you have 2 <constructionHeuristics>
configurations before the <localSearch>
configuration (which I don't see how you could
with the 5.5 CH behavior):
>I just fixed a bug/feature for 6.0 earlier
this week to support that.
>
>
>Should drools planner take care of this or should I impose an extra rule to exclude these selections?
>>Once again I seem to struggle with nulls being passed in as planning variable...
>>
>>
>>Thanks,
>>
>>
>>Michiel
>>
>>
>>-----------------
>>http://www.codessentials.com - Your essential software, for free!
>>Follow us at http://twitter.com/#!/Codessentials
>>
>>
>>________________________________
>> From: Geoffrey De Smet <ge0ffrey.spam at gmail.com>
>>To: Michiel Vermandel <mvermand at yahoo.com>; Rules Users List <rules-users at lists.jboss.org>
>>Sent: Tuesday, January 8, 2013 4:27 PM
>>Subject: Re: proble with localSearch
>>
>>
>>
>>
>>Op 08-01-13 15:24, Michiel Vermandel schreef:
>>
>>Hi,
>>>
>>>I'm trying to
implement a basic
local search (really
new to it).
>>>
>>>When I run my
project I now get:
>>>
>>>Exception in thread
"main"
java.lang.IllegalStateException:
Phase localSearch
started with an
uninitialized
Solution. First
initialize the
Solution. For
example, run a phase
constructionHeuristic
first.
>>> at
org.drools.planner.core.localsearch.DefaultLocalSearchSolverPhase.phaseStarted(DefaultLocalSearchSolverPhase.java:120)
>>>
You have a construction heuristic configured, so all @PlanningVariable's should be different from null after that phase is ended.
>>So when the local search
phase starts, that check
should be ok and not
throw that exception.
>>
>>Comment out local
search, write the
solution to disk an
verify that all planning
variables are now not
null.
>>Or debug where that
exception is throw and
inspect
phaseScope.getSolverScope().getScoreDirector().getWorkingSolution().
>>
>>
>>>This is my config:
>>>
>>><?xml
version="1.0"
encoding="UTF-8"?>
>>><solver>
>>>
<environmentMode>DEBUG</environmentMode>
>>>
>>> <!-- Domain
model configuration
-->
>>>
<solutionClass>be.axi.planner.app.InspectionSchedule</solutionClass>
>>>
<planningEntityClass>be.axi.planner.domain.Task</planningEntityClass>
>>>
>>> <!-- Score
configuration -->
>>>
<scoreDirectorFactory>
>>>
<scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>
>>>
<scoreDrl>/inspectionRules.drl</scoreDrl>
>>>
</scoreDirectorFactory>
>>>
>>>
<constructionHeuristic>
>>>
<constructionHeuristicType>BEST_FIT_DECREASING</constructionHeuristicType>
>>> <!--
constructionHeuristicPickEarlyType>FIRST_LAST_STEP_SCORE_EQUAL_OR_IMPROVING</constructionHeuristicPickEarlyType-->
>>>
</constructionHeuristic>
>>>
>>>
<localSearch>
>>>
<termination>
>>>
<terminationCompositionStyle>OR</terminationCompositionStyle>
>>>
<maximumSecondsSpend>3600</maximumSecondsSpend>
>>>
<scoreAttained>0hard/0soft</scoreAttained>
>>>
</termination>
>>>
<unionMoveSelector>
>>>
<changeMoveSelector>
>>>
<valueSelector>
>>>
<planningVariableName>period</planningVariableName>
>>>
</valueSelector>
>>>
</changeMoveSelector>
>>>
<changeMoveSelector>
>>>
<valueSelector>
>>>
<planningVariableName>spector</planningVariableName>
>>>
</valueSelector>
>>>
</changeMoveSelector>
>>>
<changeMoveSelector>
>>>
<valueSelector>
>>>
<planningVariableName>type</planningVariableName>
>>>
</valueSelector>
>>>
</changeMoveSelector>
>>>
<swapMoveSelector>
>>>
</swapMoveSelector>
>>>
</unionMoveSelector>
>>>
>>>
<acceptor>
>>>
<planningEntityTabuSize>7</planningEntityTabuSize>
>>>
</acceptor>
>>>
<forager>
>>>
<minimalAcceptedSelection>1000</minimalAcceptedSelection>
>>>
</forager>
>>>
</localSearch>
>>>
>>></solver>
>>>
>>> Any thoughts on what I'm doing wrong?
>>>
>>>Thanks
>>>
>>>Michiel
>>>
>>>-----------------
>>>http://www.codessentials.com - Your essential software, for free!
>>>Follow us at http://twitter.com/#!/Codessentials
>>>
>>>
>>>_______________________________________________
rules-users mailing list rules-users at lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>>
>>
>>
>>
>>
>>_______________________________________________
rules-users mailing list rules-users at lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
>
>_______________________________________________
>rules-users mailing list
>rules-users at lists.jboss.org
>https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
>_______________________________________________
>rules-users mailing list
>rules-users at lists.jboss.org
>https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
>
>
>_______________________________________________
rules-users mailing list rules-users at lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20130109/c4816ee7/attachment-0001.html
More information about the rules-users
mailing list