Mise en place de code et Manupulation des représentations : TERMINE
This commit is contained in:
parent
fcf0a8b19a
commit
9bc6dfdec3
2 changed files with 56 additions and 4 deletions
22
notes.txt
Normal file
22
notes.txt
Normal file
|
@ -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
|
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue