ge0ffrey wrote
On 08-05-14 14:38, dBijkoo wrote:
> ge0ffrey wrote
>> In OptaPlanner's architecture current philosophy, this is not legal:
>> a value range should be stable for each variable (of each entity) during
>> solving.
>> This not guaranteed to work (and it is guaranteed not to work if you do
>> phase caching of moves:
>> it will invalidly exclude part of the search space).
> So if I understand you correctly phase caching moves is the way to go?
No
Phase caching moves is definitely NOT the way to go :)
Phase caching means it caches as moves at the beginning of the solver
phase.
So as some variables change value in steps, the possible move set doesn't.
Ah yes I see, misread it.
ge0ffrey wrote
Anyway, what is the recommended solution?
Not sure.
A) Either just allow all combinations, that will work.
B) Or try
@Entity class Observation {
@Variable block;
}
@Entity class Block {
@Variable("periodRange) period;
@VariableProvider("periodRange") getPeriodRange();
}
Not sure if this matches for your case - multiple Observations might
share the same Block for a different period...
This is allowed - (it's called ValueRange from planning entity) and more
deeply supported (although it does have a few limits too).
C) Or try
class BlockPeriod {
Block;
Period;
}
@Entity class Observation {
@Variable BlockPeriod;
}
Hmm. I like alternative C!
I thought of option B myself aswell, a valid solution (since multiple
Observations should be using the same block) but couldnt get it working.
From what I understand it should be used like this:
@ValueRange(type = ValueRangeType.FROM_PLANNING_ENTITY_PROPERTY)
But the only time I have seen the above used was in a version 5.5 or lower
(I'm using 6.0.1.Final) and my optaplanner-core dependency can't find
@ValueRange annotation.
I however did notice use of something similiar in the 6.0.1 documentation
(
http://docs.jboss.org/drools/release/6.0.1.Final/optaplanner-docs/html_si...)
look for "4.3.5.2.2. ValueRangeProvider on a planning entity". But can't
seem to find the code for this in the 6.0.1.Final code example.
So basically my question comes down to how do i use "ValueRange from
planning entity" I tried searching for it but couldn't find it anywehere
except on version 5.5 or below as describer above.
--
View this message in context:
http://drools.46999.n3.nabble.com/rules-users-Drools-Planner-what-if-poss...
Sent from the Drools: User forum mailing list archive at
Nabble.com.