[rules-users] Re: drools-solver (initialization and starting score)

Andrew Waterman andrew.waterman at gmail.com
Fri Feb 13 11:50:00 EST 2009


Sorry about this, my fault, I missed a line in the log.  The initial  
score is getting calculated properly:

> Feb 12, 2009 6:07:04 PM mx.edu.multigame.drools.SolverTest  
> testSolverWithUndevelopedSolution
> INFO: Invoking solver, this should take a few minutes...
> Feb 12, 2009 6:07:04 PM org.slf4j.impl.JCLLoggerAdapter info
> INFO: Solving with random seed (0).
> Undeveloped territory constraint tripped! 39
> Feb 12, 2009 6:07:04 PM org.slf4j.impl.JCLLoggerAdapter info
> INFO: Initialization time spend (14) for score (-5000004.0).  
> Updating best solution and best score.
> Undeveloped territory constraint tripped! 39

I definitely see your point with regards to my loop insertion; the  
solution continues to degrade.  I like your final suggested rule as  
well, I'll try that out today.

best wishes,

Andrew

---------------------------------
Andrew Waterman
San Cristóbal de las Casas, Chiapas, Mexico
+52 1 967 107 5902
+1 510 342 5693


On Feb 13, 2009, at 8:50 AM, Geoffrey De Smet wrote:

>
> With kind regards,
> Geoffrey De Smet
>
>
> Andrew Waterman schreef:
>> Hi,
>> I've been looking through my solver logs and on a problem i have  
>> posed, the solver seems to first initialize and setup a best score:
>> INFO: Initialization time spend (3) for score (-5000004.0).  
>> Updating best solution and best score.
>> However, this score is not correct.  I use collect to load Tokens  
>> of a certain type for my game, and those that are found, penalize  
>> the system with a constraint:
>> rule "Too much unclaimed territory"
>>    when
>>        $list : ArrayList ( size > 2) from collect  (
>>            Token ($type : type == TokenType.UNDEVELOPED))
>>    then
>>        for (int i = 0; i < $list.size(); i++) {
>>            insertLogical (new IntConstraintOccurrence (
>>                "Too much unclaimed territory",  
>> ConstraintType.NEGATIVE_SOFT, 3, $list));
>
> Doesn't this insert the same logical fact in a loop? So only 1  
> instance actually remains in the working memory?
> If you want to have to list.size() affect the score, just do:
>  3 * list.size()
>
>>        }
>> end
>
> Why use collect anyway?
>
>     when
>         $t1 : Token ($type : type == TokenType.UNDEVELOPED, id1 : id)
>         $t2 : Token ($type : type == TokenType.UNDEVELOPED, id >  
> id1, id2 : id)
>         $t3 : Token ($type : type == TokenType.UNDEVELOPED, id >  
> id2, id3 : id)
>
> // maybe you need things like this: not Token ($type : type ==  
> TokenType.UNDEVELOPED, id > id3)
>     then
>  insertLogical (new IntConstraintOccurrence ("Too much unclaimed  
> territory",  ConstraintType.NEGATIVE_SOFT, 3, $t1, $t2, $t3));
>
>> However, the initial score does not seem to account  for these  
>> inserted facts.  Due to this, all improving solutions are rejected,  
>> and I see no change in the solution the solver finds and my  
>> starting solution.  Any suggestions on how to delay  
>> initialization?  Or get the starting score to take into account  
>> this constraint (I've made it SOFT so the values aren't so hard to  
>> follow in the logs, it was initially a HARD constraint).  I'd love  
>> to find a way around this problem, I've spent most of the day  
>> playing with different configurations (acceptors and foragers)  
>> trying to find a configuration that works for this base problem.
>> best wishes,
>> Andrew
>> ---------------------------------
>> Andrew Waterman
>> San Cristóbal de las Casas, Chiapas, Mexico
>> +52 1 967 107 5902
>> +1 510 342 5693
>> ------------------------------------------------------------------------
>> _______________________________________________
>> 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/20090213/52c5233c/attachment.html 


More information about the rules-users mailing list