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("SCHEDULE: " + schedule.toString());
|
||||||
System.out.println("GANTT: " + schedule.asciiGantt());
|
System.out.println("GANTT: " + schedule.asciiGantt());
|
||||||
|
|
||||||
|
// Création du schedule a la main
|
||||||
Schedule manualSchedule = new Schedule(instance);
|
Schedule manualSchedule = new Schedule(instance);
|
||||||
// TODO: encode the same solution
|
manualSchedule.setStartTime(0,0,0);
|
||||||
//manualSchedule.setStartTime(....);
|
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);
|
ResourceOrder manualRO = new ResourceOrder(instance);
|
||||||
// TODO: encode the same solution
|
manualRO.addTaskToMachine(0, new Task(0,0));
|
||||||
//manualRO.addTaskToMachine(..., new Task(..., ...));
|
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) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|
Loading…
Reference in a new issue