From 8ce8fd4f156181f0221079d8b93fb339a82135a4 Mon Sep 17 00:00:00 2001 From: Mitsuo Tokumori Date: Tue, 31 May 2022 13:29:00 -0500 Subject: Run ACO-VRP (OS dependant, needs ~/.odiparpack) Python to Java translation proved very difficult. For now only call python from Java. No more Java motto "Write once, run everywhere". --- .../src/main/java/com/odiparpack/acovrp/Ant.java | 33 ++++++++++++++++++ .../src/main/java/com/odiparpack/acovrp/Main.java | 19 ++++++++++ .../odiparpack/acovrp/MultipleAntColonySystem.java | 4 +++ .../java/com/odiparpack/acovrp/VrptwGraph.java | 4 +++ .../src/main/java/org/example/Main.java | 40 +++++++++++++++++++++- 5 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/Ant.java create mode 100644 back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/Main.java create mode 100644 back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/MultipleAntColonySystem.java create mode 100644 back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/VrptwGraph.java (limited to 'back') diff --git a/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/Ant.java b/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/Ant.java new file mode 100644 index 0000000..f422f31 --- /dev/null +++ b/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/Ant.java @@ -0,0 +1,33 @@ +package com.odiparpack.acovrp; + +import java.util.ArrayList; + +public class Ant { + // graph + public int current_index; + public double vehicle_load; + public double vehicle_travel_time; + ArrayList travel_path; + ArrayList index_to_visit; + double total_travel_distance; + + public Ant() { + travel_path = new ArrayList<>(); + index_to_visit = new ArrayList<>(); + } + + public static void main(String[] args) { + int i = 0; + Ant a = new Ant(); + + for (i = 0; i < 100; i++) { + a.travel_path.add(100 - i); + } + + for (i = 0; i < 100; i++) { + System.out.format("%d\n", a.travel_path.get(i)); + } + System.out.println(a.travel_path); + System.out.println(a); + } +} diff --git a/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/Main.java b/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/Main.java new file mode 100644 index 0000000..33320bc --- /dev/null +++ b/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/Main.java @@ -0,0 +1,19 @@ +package com.odiparpack.acovrp; + +public class Main { + public static void basic_aco() { + + } + + public static void vrptw_aco_figure() { + + } + + public static void example1() { + + } + + public static void main(String[] args) { + example1(); + } +} diff --git a/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/MultipleAntColonySystem.java b/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/MultipleAntColonySystem.java new file mode 100644 index 0000000..8ece5aa --- /dev/null +++ b/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/MultipleAntColonySystem.java @@ -0,0 +1,4 @@ +package com.odiparpack.acovrp; + +public class MultipleAntColonySystem { +} diff --git a/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/VrptwGraph.java b/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/VrptwGraph.java new file mode 100644 index 0000000..9ee546b --- /dev/null +++ b/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/VrptwGraph.java @@ -0,0 +1,4 @@ +package com.odiparpack.acovrp; + +public class VrptwGraph { +} diff --git a/back/aco-mdvrptw/src/main/java/org/example/Main.java b/back/aco-mdvrptw/src/main/java/org/example/Main.java index 407f157..ce5a91a 100644 --- a/back/aco-mdvrptw/src/main/java/org/example/Main.java +++ b/back/aco-mdvrptw/src/main/java/org/example/Main.java @@ -1,7 +1,45 @@ package org.example; +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.io.InputStreamReader; + public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); + String command = "pwd && date && ls ~"; + command = "~/.odiparpack"; + try { + System.out.println( + System.getProperty("os.name") + "\n" + + System.getProperty("user.name") + ); + ProcessBuilder pb + = new ProcessBuilder("sh", "-c", command); + pb.directory( + new File(System.getProperty("user.home")) + ); + Process process = pb.start(); + + StringBuilder output = new StringBuilder(); + BufferedReader reader + = new BufferedReader(new InputStreamReader( + process.getInputStream() + )); + String line; + while ((line = reader.readLine()) != null) { + output.append(line + '\n'); + } + int exitVal = process.waitFor(); + if (exitVal == 0) { + System.out.println("The output is:"); + System.out.println(output); + //System.exit(0); + } + } catch (IOException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); + } } } \ No newline at end of file -- cgit v1.2.3