[jboss-svn-commits] JBL Code SVN: r33476 - in labs/jbossrules/trunk/drools-planner: drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/competition and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Jun 13 13:58:35 EDT 2010


Author: ge0ffrey
Date: 2010-06-13 13:58:35 -0400 (Sun, 13 Jun 2010)
New Revision: 33476

Added:
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/competition/NurseRosteringCompetitionLongApp.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/competition/NurseRosteringCompetitionMediumApp.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/competition/nurseRosteringCompetitionLongSolverConfig.xml
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/competition/nurseRosteringCompetitionMediumSolverConfig.xml
   labs/jbossrules/trunk/drools-planner/src/main/assembly/nurseRosteringCompetition/scripts/nurseRosteringLong.sh
   labs/jbossrules/trunk/drools-planner/src/main/assembly/nurseRosteringCompetition/scripts/nurseRosteringMedium.sh
Modified:
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/competition/NurseRosteringCompetitionSprintApp.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/competition/competition-log4j.xml
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/competition/nurseRosteringCompetitionSprintSolverConfig.xml
   labs/jbossrules/trunk/drools-planner/src/main/assembly/nurseRosteringCompetition/scripts/nurseRosteringSprint.sh
Log:
nurse rostering competition app: medum and long version

Copied: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/competition/NurseRosteringCompetitionLongApp.java (from rev 33474, labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/competition/NurseRosteringCompetitionSprintApp.java)
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/competition/NurseRosteringCompetitionLongApp.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/competition/NurseRosteringCompetitionLongApp.java	2010-06-13 17:58:35 UTC (rev 33476)
@@ -0,0 +1,89 @@
+package org.drools.planner.examples.nurserostering.competition;
+
+import java.io.File;
+import java.util.Arrays;
+
+import org.drools.planner.config.XmlSolverConfigurer;
+import org.drools.planner.core.Solver;
+import org.drools.planner.examples.common.app.LoggingMain;
+import org.drools.planner.examples.nurserostering.domain.NurseRoster;
+import org.drools.planner.examples.nurserostering.persistence.NurseRosteringSolutionExporter;
+import org.drools.planner.examples.nurserostering.persistence.NurseRosteringSolutionImporter;
+
+/**
+ * @author Geoffrey De Smet
+ */
+public class NurseRosteringCompetitionLongApp extends LoggingMain {
+
+    public static final String COMPETITION_LOGGING_CONFIG
+            = "/org/drools/planner/examples/nurserostering/competition/competition-log4j.xml";
+    public static final String SOLVER_CONFIG
+            = "/org/drools/planner/examples/nurserostering/competition/nurseRosteringCompetitionLongSolverConfig.xml";
+    private static final int DEFAULT_TIME_SECONDS_SPEND = 36000;
+    private static final String INPUT_FILE_NAME_PREFIX = "long";
+
+    public static void main(String[] args) {
+        long maximumSecondsSpend;
+        if (args.length > 1) {
+            throw new IllegalArgumentException("Only one argument (maximumSecondsSpend) is allowed.");
+        } else if (args.length == 1) {
+            try {
+                maximumSecondsSpend = Integer.parseInt(args[0]);
+            } catch (NumberFormatException e) {
+                throw new IllegalArgumentException("The argument maximumSecondsSpend (" + args[0]
+                        + ") is not a number.");
+            }
+        } else {
+            maximumSecondsSpend = DEFAULT_TIME_SECONDS_SPEND;
+        }
+        new NurseRosteringCompetitionLongApp(maximumSecondsSpend).solve();
+    }
+
+    protected NurseRosteringSolutionImporter importer;
+    protected NurseRosteringSolutionExporter exporter;
+    protected Solver solver;
+    protected File inputDir;
+    protected File outputDir;
+
+    public NurseRosteringCompetitionLongApp(long maximumSecondsSpend) {
+        super(COMPETITION_LOGGING_CONFIG);
+        inputDir = new File("input");
+        if (!inputDir.exists()) {
+            throw new IllegalArgumentException("The input directory  (" + inputDir + ") does not exist.");
+        }
+        outputDir = new File("output");
+        if (!outputDir.exists()) {
+            throw new IllegalArgumentException("The output directory (" + outputDir + ") does not exist.");
+        }
+        importer = new NurseRosteringSolutionImporter();
+        exporter = new NurseRosteringSolutionExporter();
+
+        XmlSolverConfigurer configurer = new XmlSolverConfigurer();
+        configurer.configure(SOLVER_CONFIG);
+        configurer.getConfig().getTerminationConfig().setMaximumSecondsSpend(maximumSecondsSpend);
+        solver = configurer.buildSolver();
+    }
+
+    private void solve() {
+        File[] inputFiles = inputDir.listFiles();
+        if (inputFiles == null) {
+            throw new IllegalArgumentException("The input directory  (" + inputDir + ") does not exist.");
+        }
+        Arrays.sort(inputFiles);
+        for (File inputFile : inputFiles) {
+            String inputFileName = inputFile.getName();
+            if (inputFileName.toLowerCase().endsWith(".xml") && inputFileName.toLowerCase().startsWith(INPUT_FILE_NAME_PREFIX)) {
+                logger.info("Solving {}", inputFileName);
+                NurseRoster startingSolution = (NurseRoster) importer.readSolution(inputFile);
+                solver.setStartingSolution(startingSolution);
+                solver.solve();
+                NurseRoster bestSolution = (NurseRoster) solver.getBestSolution();
+                File outputFile = new File(outputDir, inputFileName.substring(0, inputFileName.length() - 4)
+                        + "_geoffrey_de_smet.xml");
+                exporter.writeSolution(bestSolution, outputFile);
+            }
+        }
+        logger.info("Done");
+    }
+
+}

Copied: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/competition/NurseRosteringCompetitionMediumApp.java (from rev 33474, labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/competition/NurseRosteringCompetitionSprintApp.java)
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/competition/NurseRosteringCompetitionMediumApp.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/competition/NurseRosteringCompetitionMediumApp.java	2010-06-13 17:58:35 UTC (rev 33476)
@@ -0,0 +1,89 @@
+package org.drools.planner.examples.nurserostering.competition;
+
+import java.io.File;
+import java.util.Arrays;
+
+import org.drools.planner.config.XmlSolverConfigurer;
+import org.drools.planner.core.Solver;
+import org.drools.planner.examples.common.app.LoggingMain;
+import org.drools.planner.examples.nurserostering.domain.NurseRoster;
+import org.drools.planner.examples.nurserostering.persistence.NurseRosteringSolutionExporter;
+import org.drools.planner.examples.nurserostering.persistence.NurseRosteringSolutionImporter;
+
+/**
+ * @author Geoffrey De Smet
+ */
+public class NurseRosteringCompetitionMediumApp extends LoggingMain {
+
+    public static final String COMPETITION_LOGGING_CONFIG
+            = "/org/drools/planner/examples/nurserostering/competition/competition-log4j.xml";
+    public static final String SOLVER_CONFIG
+            = "/org/drools/planner/examples/nurserostering/competition/nurseRosteringCompetitionMediumSolverConfig.xml";
+    private static final int DEFAULT_TIME_SECONDS_SPEND = 600;
+    private static final String INPUT_FILE_NAME_PREFIX = "medium";
+
+    public static void main(String[] args) {
+        long maximumSecondsSpend;
+        if (args.length > 1) {
+            throw new IllegalArgumentException("Only one argument (maximumSecondsSpend) is allowed.");
+        } else if (args.length == 1) {
+            try {
+                maximumSecondsSpend = Integer.parseInt(args[0]);
+            } catch (NumberFormatException e) {
+                throw new IllegalArgumentException("The argument maximumSecondsSpend (" + args[0]
+                        + ") is not a number.");
+            }
+        } else {
+            maximumSecondsSpend = DEFAULT_TIME_SECONDS_SPEND;
+        }
+        new NurseRosteringCompetitionMediumApp(maximumSecondsSpend).solve();
+    }
+
+    protected NurseRosteringSolutionImporter importer;
+    protected NurseRosteringSolutionExporter exporter;
+    protected Solver solver;
+    protected File inputDir;
+    protected File outputDir;
+
+    public NurseRosteringCompetitionMediumApp(long maximumSecondsSpend) {
+        super(COMPETITION_LOGGING_CONFIG);
+        inputDir = new File("input");
+        if (!inputDir.exists()) {
+            throw new IllegalArgumentException("The input directory  (" + inputDir + ") does not exist.");
+        }
+        outputDir = new File("output");
+        if (!outputDir.exists()) {
+            throw new IllegalArgumentException("The output directory (" + outputDir + ") does not exist.");
+        }
+        importer = new NurseRosteringSolutionImporter();
+        exporter = new NurseRosteringSolutionExporter();
+
+        XmlSolverConfigurer configurer = new XmlSolverConfigurer();
+        configurer.configure(SOLVER_CONFIG);
+        configurer.getConfig().getTerminationConfig().setMaximumSecondsSpend(maximumSecondsSpend);
+        solver = configurer.buildSolver();
+    }
+
+    private void solve() {
+        File[] inputFiles = inputDir.listFiles();
+        if (inputFiles == null) {
+            throw new IllegalArgumentException("The input directory  (" + inputDir + ") does not exist.");
+        }
+        Arrays.sort(inputFiles);
+        for (File inputFile : inputFiles) {
+            String inputFileName = inputFile.getName();
+            if (inputFileName.toLowerCase().endsWith(".xml") && inputFileName.toLowerCase().startsWith(INPUT_FILE_NAME_PREFIX)) {
+                logger.info("Solving {}", inputFileName);
+                NurseRoster startingSolution = (NurseRoster) importer.readSolution(inputFile);
+                solver.setStartingSolution(startingSolution);
+                solver.solve();
+                NurseRoster bestSolution = (NurseRoster) solver.getBestSolution();
+                File outputFile = new File(outputDir, inputFileName.substring(0, inputFileName.length() - 4)
+                        + "_geoffrey_de_smet.xml");
+                exporter.writeSolution(bestSolution, outputFile);
+            }
+        }
+        logger.info("Done");
+    }
+
+}

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/competition/NurseRosteringCompetitionSprintApp.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/competition/NurseRosteringCompetitionSprintApp.java	2010-06-13 17:26:37 UTC (rev 33475)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/competition/NurseRosteringCompetitionSprintApp.java	2010-06-13 17:58:35 UTC (rev 33476)
@@ -1,9 +1,7 @@
 package org.drools.planner.examples.nurserostering.competition;
 
 import java.io.File;
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.List;
 
 import org.drools.planner.config.XmlSolverConfigurer;
 import org.drools.planner.core.Solver;
@@ -21,7 +19,8 @@
             = "/org/drools/planner/examples/nurserostering/competition/competition-log4j.xml";
     public static final String SOLVER_CONFIG
             = "/org/drools/planner/examples/nurserostering/competition/nurseRosteringCompetitionSprintSolverConfig.xml";
-    private static final int COMPETITION_TIME_SECONDS_SPEND = 10;
+    private static final int DEFAULT_TIME_SECONDS_SPEND = 10;
+    private static final String INPUT_FILE_NAME_PREFIX = "sprint";
 
     public static void main(String[] args) {
         long maximumSecondsSpend;
@@ -35,7 +34,7 @@
                         + ") is not a number.");
             }
         } else {
-            maximumSecondsSpend = COMPETITION_TIME_SECONDS_SPEND;
+            maximumSecondsSpend = DEFAULT_TIME_SECONDS_SPEND;
         }
         new NurseRosteringCompetitionSprintApp(maximumSecondsSpend).solve();
     }
@@ -73,7 +72,7 @@
         Arrays.sort(inputFiles);
         for (File inputFile : inputFiles) {
             String inputFileName = inputFile.getName();
-            if (inputFileName.endsWith(".xml")) {
+            if (inputFileName.toLowerCase().endsWith(".xml") && inputFileName.toLowerCase().startsWith(INPUT_FILE_NAME_PREFIX)) {
                 logger.info("Solving {}", inputFileName);
                 NurseRoster startingSolution = (NurseRoster) importer.readSolution(inputFile);
                 solver.setStartingSolution(startingSolution);

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/competition/competition-log4j.xml
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/competition/competition-log4j.xml	2010-06-13 17:26:37 UTC (rev 33475)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/competition/competition-log4j.xml	2010-06-13 17:58:35 UTC (rev 33476)
@@ -14,10 +14,6 @@
         <priority value="info" />
     </category>
 
-    <category name="org.drools.planner">
-        <priority value="warn" />
-    </category>
-
     <root>
         <priority value="warn" />
         <appender-ref ref="consoleAppender" />

Copied: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/competition/nurseRosteringCompetitionLongSolverConfig.xml (from rev 33474, labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/competition/nurseRosteringCompetitionSprintSolverConfig.xml)
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/competition/nurseRosteringCompetitionLongSolverConfig.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/competition/nurseRosteringCompetitionLongSolverConfig.xml	2010-06-13 17:58:35 UTC (rev 33476)
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<localSearchSolver>
+    <scoreDrl>/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl</scoreDrl>
+    <scoreDefinition>
+        <scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>
+    </scoreDefinition>
+    <startingSolutionInitializerClass>org.drools.planner.examples.nurserostering.solver.solution.initializer.NurseRosteringStartingSolutionInitializer</startingSolutionInitializerClass>
+    <termination>
+        <!-- The main method set the maximumSecondsSpend parameter -->
+    </termination>
+    <selector>
+        <selector>
+            <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeChangeMoveFactory</moveFactoryClass>
+            <absoluteSelection>300</absoluteSelection>
+        </selector>
+        <selector>
+            <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.AssignmentSwitchMoveFactory</moveFactoryClass>
+            <absoluteSelection>300</absoluteSelection>
+        </selector>
+        <selector>
+            <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.AssignmentSequenceSwitchLength2MoveFactory</moveFactoryClass>
+            <absoluteSelection>150</absoluteSelection>
+        </selector>
+        <selector>
+            <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.AssignmentSequenceSwitchLength3MoveFactory</moveFactoryClass>
+            <absoluteSelection>150</absoluteSelection>
+        </selector>
+        <selector>
+            <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.AssignmentPillarPartSwitchMoveFactory</moveFactoryClass>
+            <absoluteSelection>300</absoluteSelection>
+        </selector>
+    </selector>
+    <acceptor>
+      <completeSolutionTabuSize>1000</completeSolutionTabuSize>
+      <completePropertyTabuSize>11</completePropertyTabuSize>
+    </acceptor>
+    <forager>
+        <foragerType>MAX_SCORE_OF_ALL</foragerType>
+    </forager>
+</localSearchSolver>

Copied: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/competition/nurseRosteringCompetitionMediumSolverConfig.xml (from rev 33474, labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/competition/nurseRosteringCompetitionSprintSolverConfig.xml)
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/competition/nurseRosteringCompetitionMediumSolverConfig.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/competition/nurseRosteringCompetitionMediumSolverConfig.xml	2010-06-13 17:58:35 UTC (rev 33476)
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<localSearchSolver>
+    <scoreDrl>/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl</scoreDrl>
+    <scoreDefinition>
+        <scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>
+    </scoreDefinition>
+    <startingSolutionInitializerClass>org.drools.planner.examples.nurserostering.solver.solution.initializer.NurseRosteringStartingSolutionInitializer</startingSolutionInitializerClass>
+    <termination>
+        <!-- The main method set the maximumSecondsSpend parameter -->
+    </termination>
+    <selector>
+        <selector>
+            <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeChangeMoveFactory</moveFactoryClass>
+            <absoluteSelection>300</absoluteSelection>
+        </selector>
+        <selector>
+            <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.AssignmentSwitchMoveFactory</moveFactoryClass>
+            <absoluteSelection>300</absoluteSelection>
+        </selector>
+        <selector>
+            <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.AssignmentPillarPartSwitchMoveFactory</moveFactoryClass>
+            <absoluteSelection>300</absoluteSelection>
+        </selector>
+    </selector>
+    <acceptor>
+      <completeSolutionTabuSize>1000</completeSolutionTabuSize>
+      <completePropertyTabuSize>11</completePropertyTabuSize>
+    </acceptor>
+    <forager>
+        <foragerType>MAX_SCORE_OF_ALL</foragerType>
+    </forager>
+</localSearchSolver>

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/competition/nurseRosteringCompetitionSprintSolverConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/competition/nurseRosteringCompetitionSprintSolverConfig.xml	2010-06-13 17:26:37 UTC (rev 33475)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/competition/nurseRosteringCompetitionSprintSolverConfig.xml	2010-06-13 17:58:35 UTC (rev 33476)
@@ -20,7 +20,7 @@
     </selector>
     <acceptor>
       <completeSolutionTabuSize>1000</completeSolutionTabuSize>
-      <completePropertyTabuSize>10</completePropertyTabuSize>
+      <completePropertyTabuSize>11</completePropertyTabuSize>
     </acceptor>
     <forager>
         <foragerType>MAX_SCORE_OF_ALL</foragerType>

Added: labs/jbossrules/trunk/drools-planner/src/main/assembly/nurseRosteringCompetition/scripts/nurseRosteringLong.sh
===================================================================
--- labs/jbossrules/trunk/drools-planner/src/main/assembly/nurseRosteringCompetition/scripts/nurseRosteringLong.sh	                        (rev 0)
+++ labs/jbossrules/trunk/drools-planner/src/main/assembly/nurseRosteringCompetition/scripts/nurseRosteringLong.sh	2010-06-13 17:58:35 UTC (rev 33476)
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+mainJar=lib/drools-planner-examples-${project.version}.jar
+mainClass=org.drools.planner.examples.nurserostering.competition.NurseRosteringCompetitionLongApp
+
+echo "Usage: ./nurseRosteringLong.sh [timeInSeconds]"
+echo "For example: ./nurseRosteringLong.sh"
+echo "             ./nurseRosteringLong.sh 36000"
+echo "All files under the input directory will be solved and placed under the output directory"
+echo ""
+echo "Some notes:"
+echo "- Working dir should be the directory of this script."
+echo "- Java must be the Sun JDK, at least version 6 update 10 (preferably the last update)"
+echo "- The environment variable JAVA_HOME should be set to the JDK installation directory"
+echo "  For example: export JAVA_HOME=/usr/lib/jvm/java-6-sun"
+echo
+echo "Starting competition app..."
+
+# -Xmx128M probably works too, but it might be slower
+$JAVA_HOME/bin/java -Xms256m -Xmx1024m -server -cp ${mainJar} ${mainClass} $*


Property changes on: labs/jbossrules/trunk/drools-planner/src/main/assembly/nurseRosteringCompetition/scripts/nurseRosteringLong.sh
___________________________________________________________________
Name: svn:eol-style
   + LF

Copied: labs/jbossrules/trunk/drools-planner/src/main/assembly/nurseRosteringCompetition/scripts/nurseRosteringMedium.sh (from rev 33474, labs/jbossrules/trunk/drools-planner/src/main/assembly/nurseRosteringCompetition/scripts/nurseRosteringSprint.sh)
===================================================================
--- labs/jbossrules/trunk/drools-planner/src/main/assembly/nurseRosteringCompetition/scripts/nurseRosteringMedium.sh	                        (rev 0)
+++ labs/jbossrules/trunk/drools-planner/src/main/assembly/nurseRosteringCompetition/scripts/nurseRosteringMedium.sh	2010-06-13 17:58:35 UTC (rev 33476)
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+mainJar=lib/drools-planner-examples-${project.version}.jar
+mainClass=org.drools.planner.examples.nurserostering.competition.NurseRosteringCompetitionMediumApp
+
+echo "Usage: ./nurseRosteringMedium.sh [timeInSeconds]"
+echo "For example: ./nurseRosteringMedium.sh"
+echo "             ./nurseRosteringMedium.sh 600"
+echo "All files under the input directory will be solved and placed under the output directory"
+echo ""
+echo "Some notes:"
+echo "- Working dir should be the directory of this script."
+echo "- Java must be the Sun JDK, at least version 6 update 10 (preferably the last update)"
+echo "- The environment variable JAVA_HOME should be set to the JDK installation directory"
+echo "  For example: export JAVA_HOME=/usr/lib/jvm/java-6-sun"
+echo
+echo "Starting competition app..."
+
+# -Xmx128M probably works too, but it might be slower
+$JAVA_HOME/bin/java -Xms256m -Xmx1024m -server -cp ${mainJar} ${mainClass} $*

Modified: labs/jbossrules/trunk/drools-planner/src/main/assembly/nurseRosteringCompetition/scripts/nurseRosteringSprint.sh
===================================================================
--- labs/jbossrules/trunk/drools-planner/src/main/assembly/nurseRosteringCompetition/scripts/nurseRosteringSprint.sh	2010-06-13 17:26:37 UTC (rev 33475)
+++ labs/jbossrules/trunk/drools-planner/src/main/assembly/nurseRosteringCompetition/scripts/nurseRosteringSprint.sh	2010-06-13 17:58:35 UTC (rev 33476)
@@ -5,8 +5,8 @@
 
 echo "Usage: ./nurseRosteringSprint.sh [timeInSeconds]"
 echo "For example: ./nurseRosteringSprint.sh"
-echo "             ./nurseRosteringSprint.sh 9"
-echo "All files under the input directory will be solved and placed under the export directory"
+echo "             ./nurseRosteringSprint.sh 10"
+echo "All files under the input directory will be solved and placed under the output directory"
 echo ""
 echo "Some notes:"
 echo "- Working dir should be the directory of this script."



More information about the jboss-svn-commits mailing list