From 8e5545fc8069eb32f934798949a8ff80f8437a4c Mon Sep 17 00:00:00 2001 From: Arthur Bit-Monnot Date: Mon, 12 Apr 2021 15:48:42 +0200 Subject: [PATCH] Remove a misleading method of ResourceOrder --- doc/src/encodings.md | 4 ++-- doc/src/prelude.md | 6 ++++-- src/main/java/jobshop/MainTest.java | 14 ++++++-------- src/main/java/jobshop/encodings/JobNumbers.java | 4 ++-- src/main/java/jobshop/encodings/ResourceOrder.java | 7 ------- src/main/java/jobshop/solvers/BasicSolver.java | 2 +- src/main/java/jobshop/solvers/RandomSolver.java | 2 +- 7 files changed, 16 insertions(+), 23 deletions(-) diff --git a/doc/src/encodings.md b/doc/src/encodings.md index 88d3139..e7f4349 100644 --- a/doc/src/encodings.md +++ b/doc/src/encodings.md @@ -18,9 +18,9 @@ Convenience methods: - `asciiGantt()`: generates a Gantt chart view of the solution in ASCII art. - ## NumJobs + ## JobNumbers - The `NumJobs` encoding consists of a sequence of job numbers. To produce a schedule, one should iterate on the job numbers and try to schedule *as early as possible* the next task of the job. + The `JobNumbers` encoding consists of a sequence of job numbers. To produce a schedule, one should iterate on the job numbers and try to schedule *as early as possible* the next task of the job. For instance the encoding `[0 0 1 1 0 1]` will produce a schedule by trying to place as early as possible the following tasks (in this order): diff --git a/doc/src/prelude.md b/doc/src/prelude.md index bbdce9e..6ef07d9 100644 --- a/doc/src/prelude.md +++ b/doc/src/prelude.md @@ -26,14 +26,16 @@ classrooms as well as on `montp.insa-toulouse.fr`. To import the project in IntelliJ (once IntelliJ is running): - Open a new project : `Open project` or `File > Open` - - Select the `gradle.build` file in the cloned repository. + - Select the `build.gradle` file in the cloned repository. - Select `Open as project`. To run the program in IntelliJ, you can - Right click on the `src/main/java/jobshop/Main` class in the project view. - Select `Run Main.main()`. The program should execute but complain that some arguments are missing. - - Give it the expected command line arguments : `Run > Edit Configuration`, then fill in the `Program arguments` text box. + - Specify the expected command line arguments : + - open the run configuration dialog: `Run > Edit Configuration` + - fill in the `Program arguments` text box with `--solver basic random --instance aaa1 aaa2` (see the next page for more details on the meaning of the arguments) ### Working on the command line (Gradle) diff --git a/src/main/java/jobshop/MainTest.java b/src/main/java/jobshop/MainTest.java index e6f234a..ccda127 100644 --- a/src/main/java/jobshop/MainTest.java +++ b/src/main/java/jobshop/MainTest.java @@ -3,8 +3,6 @@ package jobshop; import jobshop.encodings.JobNumbers; import jobshop.encodings.ResourceOrder; import jobshop.encodings.Schedule; -import jobshop.encodings.Task; -import jobshop.solvers.GreedySolver; import java.io.IOException; import java.nio.file.Paths; @@ -19,12 +17,12 @@ public class MainTest { // builds a solution in the job-numbers encoding [0 0 1 1 0 1] JobNumbers enc = new JobNumbers(instance); - enc.addTask(0); - enc.addTask(0); - enc.addTask(1); - enc.addTask(1); - enc.addTask(0); - enc.addTask(1); + enc.addTaskOfJob(0); + enc.addTaskOfJob(0); + enc.addTaskOfJob(1); + enc.addTaskOfJob(1); + enc.addTaskOfJob(0); + enc.addTaskOfJob(1); System.out.println("\nENCODING: " + enc); diff --git a/src/main/java/jobshop/encodings/JobNumbers.java b/src/main/java/jobshop/encodings/JobNumbers.java index 38e8a1a..01d0691 100644 --- a/src/main/java/jobshop/encodings/JobNumbers.java +++ b/src/main/java/jobshop/encodings/JobNumbers.java @@ -47,13 +47,13 @@ public final class JobNumbers extends Encoding { .min(Comparator.comparing(t -> schedule.startTime(t.job, t.task))) .get(); - this.addTask(next.job); + this.addTaskOfJob(next.job); nextOnJob[next.job] += 1; } } /** Schedule the next task of the given job. */ - public void addTask(int jobNumber) { + public void addTaskOfJob(int jobNumber) { this.jobs[nextToSet++] = jobNumber; } diff --git a/src/main/java/jobshop/encodings/ResourceOrder.java b/src/main/java/jobshop/encodings/ResourceOrder.java index f56fe4e..d6292a7 100644 --- a/src/main/java/jobshop/encodings/ResourceOrder.java +++ b/src/main/java/jobshop/encodings/ResourceOrder.java @@ -53,13 +53,6 @@ public final class ResourceOrder extends Encoding { } } - /** Enqueues a task for the given job on the machine. We automatically, find the task - * that must be executed on this particular machine. */ - public void addToMachine(int machine, int jobNumber) { - Task taskToEnqueue = new Task(jobNumber, instance.task_with_machine(jobNumber, machine)); - addTaskToMachine(machine, taskToEnqueue); - } - /** Adds the given task to the queue of the given machine. */ public void addTaskToMachine(int machine, Task task) { tasksByMachine[machine][nextFreeSlot[machine]] = task; diff --git a/src/main/java/jobshop/solvers/BasicSolver.java b/src/main/java/jobshop/solvers/BasicSolver.java index b8bacab..c761283 100644 --- a/src/main/java/jobshop/solvers/BasicSolver.java +++ b/src/main/java/jobshop/solvers/BasicSolver.java @@ -14,7 +14,7 @@ public class BasicSolver implements Solver { JobNumbers sol = new JobNumbers(instance); for(int t = 0 ; t