[jboss-svn-commits] JBL Code SVN: r17455 - in labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main: resources/org/drools/solver/examples/itc2007/examination/solver and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Dec 30 09:46:07 EST 2007
Author: ge0ffrey
Date: 2007-12-30 09:46:07 -0500 (Sun, 30 Dec 2007)
New Revision: 17455
Added:
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/solver/NeighbourExaminationMoveFactory.java
Modified:
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationSolverConfig.xml
Log:
Neighbour...MoveFactory
Copied: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/solver/NeighbourExaminationMoveFactory.java (from rev 17407, labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/solver/ExaminationMoveFactory.java)
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/solver/NeighbourExaminationMoveFactory.java (rev 0)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/solver/NeighbourExaminationMoveFactory.java 2007-12-30 14:46:07 UTC (rev 17455)
@@ -0,0 +1,54 @@
+package org.drools.solver.examples.itc2007.examination.solver;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.drools.solver.core.localsearch.decider.selector.AbstractMoveFactory;
+import org.drools.solver.core.move.Move;
+import org.drools.solver.examples.itc2007.examination.domain.Exam;
+import org.drools.solver.examples.itc2007.examination.domain.Examination;
+import org.drools.solver.examples.itc2007.examination.domain.Period;
+import org.drools.solver.examples.itc2007.examination.domain.Room;
+
+/**
+ * @author Geoffrey De Smet
+ */
+public class NeighbourExaminationMoveFactory extends AbstractMoveFactory {
+
+ public Iterator<Move> iterator() {
+ List<Move> moveList = new ArrayList<Move>();
+ Examination examination = (Examination) localSearchSolver.getCurrentSolution();
+ List<Period> periodList = examination.getPeriodList();
+ // periodList should not be empty
+ int firstPeriodDay = periodList.get(0).getDateInDays();
+ int lastPeriodDay = periodList.get(periodList.size() - 1).getDateInDays();
+ List<Room> roomList = examination.getRoomList();
+ long firstRoomId = roomList.get(0).getId();
+ long lastRoomId = roomList.get(roomList.size() - 1).getId();
+ for (Exam exam : examination.getExamList()) {
+ for (Period period : periodList) {
+ if ((Math.abs(period.getDateInDays() - exam.getPeriod().getDateInDays()) <= 1)
+ || (period.getDateInDays() == firstPeriodDay
+ && exam.getPeriod().getDateInDays() == lastPeriodDay)
+ || (period.getDateInDays() == lastPeriodDay
+ && exam.getPeriod().getDateInDays() == firstPeriodDay)
+ ) {
+ moveList.add(new PeriodChangeMove(exam, period));
+ }
+ }
+ for (Room room : roomList) {
+ if ((Math.abs(room.getId() - exam.getRoom().getId()) <= 1)
+ || (room.getId() == firstRoomId
+ && exam.getRoom().getId() == lastRoomId)
+ || (room.getId() == lastRoomId
+ && exam.getRoom().getId() == firstRoomId)
+ ) {
+ moveList.add(new RoomChangeMove(exam, room));
+ }
+ }
+ }
+ return moveList.iterator();
+ }
+
+}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationSolverConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationSolverConfig.xml 2007-12-30 11:54:57 UTC (rev 17454)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationSolverConfig.xml 2007-12-30 14:46:07 UTC (rev 17455)
@@ -8,16 +8,19 @@
<maximumSecondsSpend>429</maximumSecondsSpend>
<!--<maximumStepCount>100</maximumStepCount>-->
</finish>
- <selector>
- <moveFactoryClass>org.drools.solver.examples.itc2007.examination.solver.ExaminationMoveFactory</moveFactoryClass>
- <shuffleMovesEveryStep>true</shuffleMovesEveryStep>
- </selector>
+ <!--<selector>-->
+ <!--<moveFactoryClass>org.drools.solver.examples.itc2007.examination.solver.NeighbourExaminationMoveFactory</moveFactoryClass>-->
+ <!--</selector>-->
<!--<accepter>-->
<!--<completeSolutionTabuSize>1500</completeSolutionTabuSize>-->
<!--</accepter>-->
<!--<forager>-->
<!--<foragerType>MAX_SCORE_OF_ALL</foragerType>-->
<!--</forager>-->
+ <selector>
+ <moveFactoryClass>org.drools.solver.examples.itc2007.examination.solver.ExaminationMoveFactory</moveFactoryClass>
+ <shuffleMovesEveryStep>true</shuffleMovesEveryStep>
+ </selector>
<accepter>
<accepterType>SIMULATED_ANNEALING</accepterType>
</accepter>
More information about the jboss-svn-commits
mailing list