From 9bc6dfdec3e7621d9fcfcfebbcc0dca0aab3dc76 Mon Sep 17 00:00:00 2001 From: Faure Paul Date: Wed, 14 Apr 2021 10:38:06 +0200 Subject: [PATCH] =?UTF-8?q?Mise=20en=20place=20de=20code=20et=20Manupulati?= =?UTF-8?q?on=20des=20repr=C3=A9sentations=20:=20TERMINE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- notes.txt | 22 +++++++++++++++++ src/main/java/jobshop/MainTest.java | 38 ++++++++++++++++++++++++++--- 2 files changed, 56 insertions(+), 4 deletions(-) create mode 100644 notes.txt diff --git a/notes.txt b/notes.txt new file mode 100644 index 0000000..d67a74b --- /dev/null +++ b/notes.txt @@ -0,0 +1,22 @@ +Encodage : ordre des jobs [0,0,1,1,0,1] + => job 0 puis job 0 puis 1 ... +Du coup : +J0T0 -> machine0 [0,3] +J0T1 -> machine1 [3,6] +J1T0 -> machine1 [6,8] +J1T1 -> machine0 [8,10] +J0T2 -> machine2 [6,8] +J1T2 -> machine2 [10,14] + +Validé par experimentation + +Version optimum + +J0T0 -> machine0 [0,3] +J1T0 -> machine1 [0,2] +J0T1 -> machine1 [3,6] +J1T1 -> machine0 [3,5] +J1T2 -> machine2 [5,9] +J0T2 -> machine2 [9,11] + +Attention SI SOLUTION PAS POSSIBLE, RAISE EXCEPTION diff --git a/src/main/java/jobshop/MainTest.java b/src/main/java/jobshop/MainTest.java index b6efd18..2666de8 100644 --- a/src/main/java/jobshop/MainTest.java +++ b/src/main/java/jobshop/MainTest.java @@ -34,13 +34,43 @@ public class MainTest { System.out.println("SCHEDULE: " + schedule.toString()); System.out.println("GANTT: " + schedule.asciiGantt()); + // Création du schedule a la main Schedule manualSchedule = new Schedule(instance); - // TODO: encode the same solution - //manualSchedule.setStartTime(....); + manualSchedule.setStartTime(0,0,0); + manualSchedule.setStartTime(0,1,3); + manualSchedule.setStartTime(0,2,6); + manualSchedule.setStartTime(1,0,6); + manualSchedule.setStartTime(1,1,8); + manualSchedule.setStartTime(1,2,10); + System.out.println("GANTT: " + manualSchedule.asciiGantt()); + //Creation du RO a la main ResourceOrder manualRO = new ResourceOrder(instance); - // TODO: encode the same solution - //manualRO.addTaskToMachine(..., new Task(..., ...)); + manualRO.addTaskToMachine(0, new Task(0,0)); + manualRO.addTaskToMachine(0, new Task(1,1)); + manualRO.addTaskToMachine(1, new Task(0,1)); + manualRO.addTaskToMachine(1, new Task(1,0)); + manualRO.addTaskToMachine(2, new Task(0,2)); + manualRO.addTaskToMachine(2, new Task(1,2)); + System.out.println("GANTT: " + manualRO.toSchedule().get().asciiGantt()); + //Modification du RO vers optimum + manualRO.swapTasks(1,0,1); + manualRO.swapTasks(2,0,1); + System.out.println("OPTIMUM: "); + System.out.println("VALID: " + manualRO.toSchedule().get().isValid()); + System.out.println("MAKESPAN: " + manualRO.toSchedule().get().makespan()); + System.out.println("SCHEDULE: " + manualRO.toSchedule().get().toString()); + System.out.println("GANTT: " + manualRO.toSchedule().get().asciiGantt()); + + //Creation du RO INVALIDE a la main + ResourceOrder manualROInvalid = new ResourceOrder(instance); + manualROInvalid.addTaskToMachine(0, new Task(1,1)); + manualROInvalid.addTaskToMachine(0, new Task(0,0)); + manualROInvalid.addTaskToMachine(1, new Task(0,1)); + manualROInvalid.addTaskToMachine(1, new Task(1,0)); + manualROInvalid.addTaskToMachine(2, new Task(0,2)); + manualROInvalid.addTaskToMachine(2, new Task(1,2)); + System.out.println("GANTT: " + manualROInvalid.toSchedule().get().asciiGantt()); } catch (IOException e) { e.printStackTrace();