summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMitsuo Tokumori <[email protected]>2022-05-31 13:29:00 -0500
committerMitsuo Tokumori <[email protected]>2022-05-31 13:30:15 -0500
commit8ce8fd4f156181f0221079d8b93fb339a82135a4 (patch)
tree960b093863b6b343212d8032a21a907e8755cc5f
parent975a540ad6ef828d2b4e8f02afc3c2e0e8477b6e (diff)
downloadDP1_project-8ce8fd4f156181f0221079d8b93fb339a82135a4.tar.gz
DP1_project-8ce8fd4f156181f0221079d8b93fb339a82135a4.tar.bz2
DP1_project-8ce8fd4f156181f0221079d8b93fb339a82135a4.zip
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".
-rw-r--r--back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/Ant.java33
-rw-r--r--back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/Main.java19
-rw-r--r--back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/MultipleAntColonySystem.java4
-rw-r--r--back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/VrptwGraph.java4
-rw-r--r--back/aco-mdvrptw/src/main/java/org/example/Main.java40
5 files changed, 99 insertions, 1 deletions
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<Integer> travel_path;
+ ArrayList<Integer> 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