[jboss-svn-commits] JBL Code SVN: r17468 - labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/solver.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Dec 31 09:10:56 EST 2007


Author: ge0ffrey
Date: 2007-12-31 09:10:55 -0500 (Mon, 31 Dec 2007)
New Revision: 17468

Modified:
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/solver/NeighbourExaminationMoveFactory.java
Log:
bugfix: not to all possible solutions

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/solver/NeighbourExaminationMoveFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/solver/NeighbourExaminationMoveFactory.java	2007-12-31 13:57:42 UTC (rev 17467)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/solver/NeighbourExaminationMoveFactory.java	2007-12-31 14:10:55 UTC (rev 17468)
@@ -16,29 +16,32 @@
  */
 public class NeighbourExaminationMoveFactory extends AbstractMoveFactory {
 
+    private static final int PERIOD_JUMP = 2;
+    private static final int ROOM_JUMP = 2;
+
     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 firstPeriodDayIndex = periodList.get(0).getDayIndex();
-        int lastPeriodDayIndex = periodList.get(periodList.size() - 1).getDayIndex();
+        int firstPeriodIndex = periodList.get(0).getPeriodIndex();
+        int lastPeriodIndex = periodList.get(periodList.size() - PERIOD_JUMP).getPeriodIndex();
         List<Room> roomList = examination.getRoomList();
         long firstRoomId = roomList.get(0).getId();
-        long lastRoomId = roomList.get(roomList.size() - 1).getId();
+        long lastRoomId = roomList.get(roomList.size() - PERIOD_JUMP).getId();
         for (Exam exam : examination.getExamList()) {
             for (Period period : periodList) {
-                if ((Math.abs(period.getDayIndex() - exam.getPeriod().getDayIndex()) <= 1)
-                        || (period.getDayIndex() == firstPeriodDayIndex
-                            && exam.getPeriod().getDayIndex() == lastPeriodDayIndex)
-                        || (period.getDayIndex() == lastPeriodDayIndex
-                            && exam.getPeriod().getDayIndex() == firstPeriodDayIndex)
+                if ((Math.abs(period.getPeriodIndex() - exam.getPeriod().getPeriodIndex()) <= PERIOD_JUMP)
+                        || (period.getPeriodIndex() == firstPeriodIndex
+                            && exam.getPeriod().getPeriodIndex() == lastPeriodIndex)
+                        || (period.getPeriodIndex() == lastPeriodIndex
+                            && exam.getPeriod().getPeriodIndex() == firstPeriodIndex)
                         ) {
                     moveList.add(new PeriodChangeMove(exam, period));
                 }
             }
             for (Room room : roomList) {
-                if ((Math.abs(room.getId() - exam.getRoom().getId()) <= 1)
+                if ((Math.abs(room.getId() - exam.getRoom().getId()) <= ROOM_JUMP)
                         || (room.getId() == firstRoomId
                             && exam.getRoom().getId() == lastRoomId)
                         || (room.getId() == lastRoomId




More information about the jboss-svn-commits mailing list