Skip to content

Commit

Permalink
code style + rename Period to PeriodWrapper after PLANNER-275 Add Dro…
Browse files Browse the repository at this point in the history
…ols score rules for example CheapTime Scheduling
  • Loading branch information
ge0ffrey committed Mar 13, 2015
1 parent bcf2663 commit 162c821
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 26 deletions.
Expand Up @@ -64,4 +64,5 @@ public int compareTo(IdleCost other) {
public String toString() { public String toString() {
return "machine = " + machine + ", activePeriodAfterIdle = " + activePeriodAfterIdle + ", cost = " + cost; return "machine = " + machine + ", activePeriodAfterIdle = " + activePeriodAfterIdle + ", cost = " + cost;
} }

} }
@@ -1,6 +1,5 @@
package org.optaplanner.examples.cheaptime.solver.drools; package org.optaplanner.examples.cheaptime.solver.drools;


import java.util.ArrayList;
import java.util.List; import java.util.List;


import org.apache.commons.lang.builder.CompareToBuilder; import org.apache.commons.lang.builder.CompareToBuilder;
Expand All @@ -12,6 +11,7 @@
import org.optaplanner.examples.cheaptime.domain.TaskRequirement; import org.optaplanner.examples.cheaptime.domain.TaskRequirement;


public class MachinePeriodPart { public class MachinePeriodPart {

private final Machine machine; private final Machine machine;
private final int period; private final int period;


Expand All @@ -34,32 +34,32 @@ public MachinePeriodPart(Machine machine, int period, int resourceListSize, List
addTaskAssignment(taskAssignment); addTaskAssignment(taskAssignment);
} }


resourceInShortTotal = 0; resourceInShortTotal = 0;
for (int resourceAvailable : resourceAvailableList) { for (int resourceAvailable : resourceAvailableList) {
if (resourceAvailable < 0) { if (resourceAvailable < 0) {
resourceInShortTotal += resourceAvailable; resourceInShortTotal += resourceAvailable;
} }
} }
} }


private void addTaskAssignment(TaskAssignment taskAssignment) { private void addTaskAssignment(TaskAssignment taskAssignment) {
active = true; active = true;
Task task = taskAssignment.getTask(); Task task = taskAssignment.getTask();
for (int i = 0; i < resourceAvailableList.length; i++) { for (int i = 0; i < resourceAvailableList.length; i++) {
TaskRequirement taskRequirement = task.getTaskRequirementList().get(i); TaskRequirement taskRequirement = task.getTaskRequirementList().get(i);
resourceAvailableList[i] -= taskRequirement.getResourceUsage(); resourceAvailableList[i] -= taskRequirement.getResourceUsage();
} }
} }


public boolean isActive() { public boolean isActive() {
return active; return active;
} }


public void setActive(boolean active) { public void setActive(boolean active) {
this.active = active; this.active = active;
} }


public int[] getResourceAvailableList() { public int[] getResourceAvailableList() {
return resourceAvailableList; return resourceAvailableList;
} }


Expand All @@ -68,8 +68,8 @@ public void setResourceAvailableList(int[] resourceAvailableList) {
} }


public int getResourceInShortTotal() { public int getResourceInShortTotal() {
return resourceInShortTotal; return resourceInShortTotal;
} }


public Machine getMachine() { public Machine getMachine() {
return machine; return machine;
Expand Down
Expand Up @@ -4,11 +4,11 @@
import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.HashCodeBuilder;


public class Period { public class PeriodWrapper {


private int period; private int period;


public Period(int period) { public PeriodWrapper(int period) {
this.period = period; this.period = period;
} }


Expand All @@ -23,8 +23,8 @@ public void setPeriod(int period) {
public boolean equals(Object o) { public boolean equals(Object o) {
if (this == o) { if (this == o) {
return true; return true;
} else if (o instanceof Period) { } else if (o instanceof PeriodWrapper) {
Period other = (Period) o; PeriodWrapper other = (PeriodWrapper) o;
return new EqualsBuilder() return new EqualsBuilder()
.append(period, other.period) .append(period, other.period)
.isEquals(); .isEquals();
Expand All @@ -39,7 +39,7 @@ public int hashCode() {
.toHashCode(); .toHashCode();
} }


public int compareTo(Period other) { public int compareTo(PeriodWrapper other) {
return new CompareToBuilder() return new CompareToBuilder()
.append(period, other.period) .append(period, other.period)
.toComparison(); .toComparison();
Expand All @@ -49,4 +49,5 @@ public int compareTo(Period other) {
public String toString() { public String toString() {
return String.valueOf(period); return String.valueOf(period);
} }

} }
Expand Up @@ -31,7 +31,7 @@ import org.optaplanner.examples.cheaptime.domain.TaskAssignment;
import org.optaplanner.examples.cheaptime.domain.TaskRequirement; import org.optaplanner.examples.cheaptime.domain.TaskRequirement;
import org.optaplanner.examples.cheaptime.solver.CheapTimeCostCalculator; import org.optaplanner.examples.cheaptime.solver.CheapTimeCostCalculator;
import org.optaplanner.examples.cheaptime.solver.drools.IdleCost; import org.optaplanner.examples.cheaptime.solver.drools.IdleCost;
import org.optaplanner.examples.cheaptime.solver.drools.Period; import org.optaplanner.examples.cheaptime.solver.drools.PeriodWrapper;
import org.optaplanner.examples.cheaptime.solver.drools.MachinePeriodPart; import org.optaplanner.examples.cheaptime.solver.drools.MachinePeriodPart;


global HardMediumSoftLongScoreHolder scoreHolder; global HardMediumSoftLongScoreHolder scoreHolder;
Expand All @@ -43,7 +43,7 @@ rule "period"
CheapTimeSolution($globalPeriodRangeFrom : globalPeriodRangeFrom, $globalPeriodRangeTo : globalPeriodRangeTo) CheapTimeSolution($globalPeriodRangeFrom : globalPeriodRangeFrom, $globalPeriodRangeTo : globalPeriodRangeTo)
then then
for (int i = $globalPeriodRangeFrom; i < $globalPeriodRangeTo; i++) { for (int i = $globalPeriodRangeFrom; i < $globalPeriodRangeTo; i++) {
insert(new Period(i)); insert(new PeriodWrapper(i));
} }
end end


Expand All @@ -52,7 +52,7 @@ rule "machinePeriodPart"
salience 2 salience 2
when when
CheapTimeSolution($resourceList : resourceList) CheapTimeSolution($resourceList : resourceList)
Period($period : period); PeriodWrapper($period : period);
$machine : Machine() $machine : Machine()
$taskAssignmentList : ArrayList() from collect ( $taskAssignmentList : ArrayList() from collect (
TaskAssignment( TaskAssignment(
Expand Down Expand Up @@ -165,7 +165,7 @@ end
// Task power cost: Each task consumes power too, which infers a power cost (depending on the power price during its time). // Task power cost: Each task consumes power too, which infers a power cost (depending on the power price during its time).
rule "taskPowerCost" rule "taskPowerCost"
when when
Period($period : period) PeriodWrapper($period : period)
TaskAssignment(startPeriod <= $period, endPeriod > $period, $task : task) TaskAssignment(startPeriod <= $period, endPeriod > $period, $task : task)
$periodPowerPrice : PeriodPowerPrice(period == $period) $periodPowerPrice : PeriodPowerPrice(period == $period)
then then
Expand Down

0 comments on commit 162c821

Please sign in to comment.