12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- package jobshop;
-
- import jobshop.encodings.JobNumbers;
- import jobshop.encodings.ResourceOrder;
- import jobshop.encodings.Schedule;
- import jobshop.encodings.Task;
-
- import java.io.IOException;
- import java.nio.file.Paths;
- import java.util.NoSuchElementException;
-
- /** A java main classes for testing purposes. */
- public class MainTest {
-
- public static void main(String[] args) {
- try {
- // load the aaa1 instance
- Instance instance = Instance.fromFile(Paths.get("instances/aaa1"));
-
- // builds a solution in the job-numbers encoding [0 0 1 1 0 1]
- JobNumbers enc = new JobNumbers(instance);
- enc.addTaskOfJob(0);
- enc.addTaskOfJob(0);
- enc.addTaskOfJob(1);
- enc.addTaskOfJob(1);
- enc.addTaskOfJob(0);
- enc.addTaskOfJob(1);
-
- // convert to a schedule and display
- Schedule schedule = enc.toSchedule().get();
- System.out.println("VALID: " + schedule.isValid());
- System.out.println("MAKESPAN: " + schedule.makespan());
- System.out.println("SCHEDULE: " + schedule.toString());
- System.out.println("GANTT: " + schedule.asciiGantt());
-
- // Création du schedule a la main
- Schedule manualSchedule = new Schedule(instance);
- 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("SCHEDULE: " + manualSchedule.toString());
- System.out.println("GANTT: " + manualSchedule.asciiGantt());
-
- //Creation du RO a la main
- ResourceOrder manualRO = new ResourceOrder(instance);
- 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("SCHEDULE: " + manualRO.toSchedule().get().toString());
- 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("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));
- try {
- System.out.println("GANTT: " + manualROInvalid.toSchedule().get().asciiGantt());
- } catch (NoSuchElementException e ){
- System.out.println("On ne peut pas générer le Schedule");
- }
-
- } catch (IOException e) {
- e.printStackTrace();
- System.exit(1);
- }
-
- }
- }
|