[rules-users] "OR"-constraint doesn't work [planner]
Geoffrey De Smet
ge0ffrey.spam at gmail.com
Mon Jan 6 09:10:02 EST 2014
Duplicates
http://stackoverflow.com/questions/20937673/or-constraint-with-simple-score-calculator-doesnt-work
On 06-01-14 12:29, rob_87 wrote:
> Hey guys,
>
> I'm trying to build a simple score-calculator with optaplanner.
> Method "A_at_Index2_or_Index3" should force "A" to be at index 2 or index 3.
> Method "no_A_at_Index2" forces "A" not to be at Index 2. So, "A" only can be
> at index 3 ... but it doesn't.
> Optaplanner says the score is -1, but the score has to be 0. Method
> "no_A_at_Index2" works well. "A_at_Index2_or_Index3" seems to be wrong.
>
> Does anyone know what I am doing wrong? Do u have any examples for building
> complex constraints like XOR, AND, ...)?
>
> @Override
> public SimpleScore calculateScore(NCells nCells) {
>
> int score = 0;
> if (!(this.A_at_Index2_or_Index3(nCells))){
> score--;
> }
>
> if (!(this.no_A_at_Index2(nCells))){
> score--;
> }
> return SimpleScore.valueOf(score);
> }
>
>
> public boolean A_at_Index2_or_Index3(NCells nCells){
>
> List<Cell> cellList = nCells.getCellList();
> ChomskyRule rule1 = cellList.get(2).getRule();
> ChomskyRule rule2 = cellList.get(3).getRule();
> int a_counter = 0;
> if ( rule1 != null && rule1.getLeftSide().equals("A")){
> a_counter++;
> }
> if ( rule2 != null && rule2.getLeftSide().equals("A")){
> a_counter++;
> }
>
> if (a_counter==0 && rule1!=null && rule2!=null){
> return false;
> }
> return true;
> }
>
> public boolean no_A_at_Index2(NCells nCells){
>
> List<Cell> cellList = nCells.getCellList();
> ChomskyRule rule = cellList.get(2).getRule();
> if(rule!=null && rule.getLeftSide().equals("A")){return false;}
> return true;
> }
>
>
>
> --
> View this message in context: http://drools.46999.n3.nabble.com/OR-constraint-doesn-t-work-tp4027525.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
More information about the rules-users
mailing list