[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