diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/.DS_Store" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/.DS_Store" new file mode 100644 index 0000000..0c5e2ad Binary files /dev/null and "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/.DS_Store" differ diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232.pdf" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232.pdf" new file mode 100644 index 0000000..9d96cbd Binary files /dev/null and "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232.pdf" differ diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/.idea/.gitignore" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/.idea/.gitignore" new file mode 100644 index 0000000..13566b8 --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/.idea/.gitignore" @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/.idea/compiler.xml" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/.idea/compiler.xml" new file mode 100644 index 0000000..23e55e9 --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/.idea/compiler.xml" @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/.idea/encodings.xml" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/.idea/encodings.xml" new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/.idea/encodings.xml" @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/.idea/jarRepositories.xml" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/.idea/jarRepositories.xml" new file mode 100644 index 0000000..712ab9d --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/.idea/jarRepositories.xml" @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/.idea/misc.xml" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/.idea/misc.xml" new file mode 100644 index 0000000..9dc782b --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/.idea/misc.xml" @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_gitignore" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_gitignore" new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_gitignore" @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/_gitignore" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/_gitignore" new file mode 100644 index 0000000..13566b8 --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/_gitignore" @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/compiler.xml" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/compiler.xml" new file mode 100644 index 0000000..23e55e9 --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/compiler.xml" @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/encodings.xml" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/encodings.xml" new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/encodings.xml" @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/jarRepositories.xml" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/jarRepositories.xml" new file mode 100644 index 0000000..712ab9d --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/jarRepositories.xml" @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/misc.xml" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/misc.xml" new file mode 100644 index 0000000..fdc35ea --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/misc.xml" @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/uiDesigner.xml" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/uiDesigner.xml" new file mode 100644 index 0000000..2b63946 --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/uiDesigner.xml" @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/vcs.xml" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/vcs.xml" new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/vcs.xml" @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/workspace.xml" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/workspace.xml" new file mode 100644 index 0000000..62ea8d3 --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/_idea/workspace.xml" @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + { + "lastFilter": { + "state": "OPEN", + "assignee": "zllwhu" + } +} + { + "selectedUrlAndAccountId": { + "url": "https://github.com/zllwhu/AdvancedAlgorithmExp.git", + "accountId": "171a47a0-3048-4d14-8d82-7135c4e0467b" + } +} + { + "associatedIndex": 5 +} + + + + + + + + + + + + + + + + + + + + + + + + 1708998432123 + + + + + + \ No newline at end of file diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/pom.xml" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/pom.xml" new file mode 100644 index 0000000..6d12b1f --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/pom.xml" @@ -0,0 +1,17 @@ + + + 4.0.0 + + org.example + DroneRouting + 1.0-SNAPSHOT + + + 21 + 21 + UTF-8 + + + \ No newline at end of file diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/Main.java" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/Main.java" new file mode 100644 index 0000000..cf75559 --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/Main.java" @@ -0,0 +1,87 @@ +package org.example; + +import org.example.entities.DistributionCenter; +import org.example.entities.Drone; +import org.example.entities.Position; +import org.example.entities.Priority; +import org.example.simulations.Init; +import org.example.simulations.OrderList; +import org.example.utils.Util; + +import java.util.ArrayList; +import java.util.Arrays; + +public class Main { + public static int currentTime = 0; + public static int maxIter = 48; + + public static void main(String[] args) { + Init init = new Init(); + init.loadMap(1); + +// System.out.println(Arrays.toString(init.getDistributionCenters())); +// System.out.println(Arrays.toString(init.getDischargePoints())); + +// for (int i = 0; i < 20; i++) { +// System.out.println(Util.randomPriority()); +// } +// System.out.println(Priority.HIGH); +// System.out.println(Priority.MEDIUM); +// System.out.println(Priority.LOW); + +// OrderList orderList = new OrderList(); +// orderList.newOrders(init.getDischargePoints(), 10, 0); +// System.out.println(orderList.orders); +// +// System.out.println(); +// orderList.orderDistribution(init.getDistributionCenters()); +// for (DistributionCenter distributionCenter : init.getDistributionCenters()) { +// System.out.println(distributionCenter.orders); +// } +// System.out.println(orderList.orders); + +// ArrayList path = new ArrayList<>(); +// path.add(new Position(6, 34)); +// path.add(new Position(13, 37)); +// path.add(new Position(14, 37)); +// path.add(new Position(11, 32)); +// double length = Util.pathLength(path); +// System.out.println("Path length: " + length); + +// System.out.println(); +// for (DistributionCenter distributionCenter : init.getDistributionCenters()) { +// distributionCenter.droneSchedule(5, 20, 1); +// for (Drone Drone : distributionCenter.getDrones()) { +// System.out.println(Drone.getPath()); +// } +// } + + OrderList orderList = new OrderList(); + for (int i = 1; i <= maxIter; i++) { + System.out.println(); + System.out.println("Iteration #" + i); + orderList.newOrders(init.getDischargePoints(), 10, currentTime); + orderList.orderDistribution(init.getDistributionCenters()); + if (i == 48) { + double d = 0; + for (DistributionCenter distributionCenter : init.getDistributionCenters()) { + d += distributionCenter.droneSchedule(5, 20, 1, true); + } + System.out.println("本次航行总距离:" + d); + } else { + double d = 0; + for (DistributionCenter distributionCenter : init.getDistributionCenters()) { + d += distributionCenter.droneSchedule(5, 20, 1, false); + for (Drone drone : distributionCenter.drones) { + System.out.println(drone.getPath()); + } + } + System.out.println("本次航行总距离:" + d); + } + for (DistributionCenter distributionCenter : init.getDistributionCenters()) { + distributionCenter.drones.clear(); + } + currentTime += 30; + } + } +} diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/entities/DischargePoint.java" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/entities/DischargePoint.java" new file mode 100644 index 0000000..e24a796 --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/entities/DischargePoint.java" @@ -0,0 +1,42 @@ +package org.example.entities; + +import java.util.Random; + +public class DischargePoint { + Position position; + + public DischargePoint(Position position) { + this.position = position; + } + + public Position getPosition() { + return position; + } + + public void setPosition(Position position) { + this.position = position; + } + + @Override + public String toString() { + return position.toString(); + } + + @Override + public boolean equals(Object o) { + if (o instanceof DischargePoint other) { + return this.position.equals(other.position); + } + return false; + } + + @Override + public int hashCode() { + try { + return position.hashCode(); + } catch (Exception e) { + Random random = new Random(); + return random.nextInt(100); + } + } +} diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/entities/DistributionCenter.java" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/entities/DistributionCenter.java" new file mode 100644 index 0000000..97923e9 --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/entities/DistributionCenter.java" @@ -0,0 +1,129 @@ +package org.example.entities; + +import org.example.utils.Util; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Random; + +public class DistributionCenter { + Position position; + public ArrayList orders; + public ArrayList drones; + + public DistributionCenter(Position position, ArrayList orders, ArrayList drones) { + this.position = position; + this.orders = orders; + this.drones = drones; + } + + public DistributionCenter(Position position) { + this.position = position; + this.orders = new ArrayList<>(); + this.drones = new ArrayList<>(); + } + + public Position getPosition() { + return position; + } + + public void setPosition(Position position) { + this.position = position; + } + + public ArrayList getOrders() { + return orders; + } + + public void setOrders(ArrayList orders) { + this.orders = orders; + } + + public ArrayList getDrones() { + return drones; + } + + public void setDrones(ArrayList drones) { + this.drones = drones; + } + + @Override + public String toString() { + return position.toString(); + } + + @Override + public boolean equals(Object o) { + if (o instanceof DistributionCenter other) { + return this.position.equals(other.position); + } + return false; + } + + @Override + public int hashCode() { + try { + return position.hashCode(); + } catch (Exception e) { + Random random = new Random(); + return random.nextInt(100); + } + } + + public double droneSchedule(int n, double maxDis, double s, boolean flag) { + System.out.println("***************************************"); + System.out.println("当前该中心订单总数:" + orders.size()); + ArrayList ordersPlan = new ArrayList<>(); + if (flag) { + ordersPlan.addAll(orders); + orders.clear(); + } else { + Random random = new Random(); + ArrayList removeOrders = new ArrayList<>(); + for (int i = 0; i < orders.size(); i++) { + if (orders.get(i).remainTime <= 30) { + ordersPlan.add(orders.get(i)); + removeOrders.add(i); + } else { + if (random.nextInt(2) == 1) { + ordersPlan.add(orders.get(i)); + removeOrders.add(i); + } + } + } + removeOrders.sort(Collections.reverseOrder()); + for (int i : removeOrders) { + orders.remove(i); + } + } + System.out.println("本次配送订单个数:" + ordersPlan.size()); + while (!ordersPlan.isEmpty()) { + Drone drone = new Drone(); + drone.path.add(position); + ArrayList removeOrders = new ArrayList<>(); + for (int i = 0; i < ordersPlan.size(); i++) { + drone.path.add(ordersPlan.get(i).getPosition()); + if (drone.currentLoad < n && Util.pathLength(drone.path) <= maxDis && Util.pathTime(drone.path, s) <= ordersPlan.get(i).remainTime) { + drone.currentLoad++; + removeOrders.add(i); + continue; + } + drone.path.removeLast(); + } + removeOrders.sort(Collections.reverseOrder()); + for (int i : removeOrders) { + ordersPlan.remove(i); + } + removeOrders.clear(); + drones.add(drone); + } + System.out.println("本配送中心本次出动无人机:" + drones.size()); + System.out.println("***************************************"); + + double totalDistance = 0; + for (Drone drone : drones) { + totalDistance += Util.pathLength(drone.getPath()); + } + return totalDistance; + } +} diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/entities/Drone.java" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/entities/Drone.java" new file mode 100644 index 0000000..7edb53e --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/entities/Drone.java" @@ -0,0 +1,42 @@ +package org.example.entities; + +import java.util.ArrayList; + +public class Drone { + public ArrayList path; + int currentLoad; + + public Drone() { + this.path = new ArrayList<>(); + this.currentLoad = 0; + } + + public Drone(ArrayList path, int currentLoad) { + this.path = path; + this.currentLoad = currentLoad; + } + + public ArrayList getPath() { + return path; + } + + public void setPath(ArrayList path) { + this.path = path; + } + + public int getCurrentLoad() { + return currentLoad; + } + + public void setCurrentLoad(int currentLoad) { + this.currentLoad = currentLoad; + } + + @Override + public String toString() { + return "Drone{" + + "path=" + path + + ", currentLoad=" + currentLoad + + '}'; + } +} diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/entities/Order.java" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/entities/Order.java" new file mode 100644 index 0000000..2957931 --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/entities/Order.java" @@ -0,0 +1,57 @@ +package org.example.entities; + +public class Order { + Priority priority; + double createTime; + double remainTime; + Position position; + + public Order(Priority priority, double createTime, double remainTime, Position position) { + this.priority = priority; + this.createTime = createTime; + this.remainTime = remainTime; + this.position = position; + } + + public Position getPosition() { + return position; + } + + public void setPosition(Position position) { + this.position = position; + } + + public Priority getPriority() { + return priority; + } + + public void setPriority(Priority priority) { + this.priority = priority; + } + + public double getCreateTime() { + return createTime; + } + + public void setCreateTime(double createTime) { + this.createTime = createTime; + } + + public double getRemainTime() { + return remainTime; + } + + public void setRemainTime(double remainTime) { + this.remainTime = remainTime; + } + + @Override + public String toString() { + return "Order{" + + "priority=" + priority + + ", createTime=" + createTime + + ", remainTime=" + remainTime + + ", position=" + position + + "}\n"; + } +} diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/entities/Position.java" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/entities/Position.java" new file mode 100644 index 0000000..c5af61f --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/entities/Position.java" @@ -0,0 +1,40 @@ +package org.example.entities; + +public class Position { + int x; + int y; + + public Position(int x, int y) { + this.x = x; + this.y = y; + } + + public int getX() { + return x; + } + + public void setX(int x) { + this.x = x; + } + + public int getY() { + return y; + } + + public void setY(int y) { + this.y = y; + } + + @Override + public String toString() { + return "(" + x + ", " + y + ")"; + } + + @Override + public boolean equals(Object o) { + if (o instanceof Position other) { + return this.x == other.x && this.y == other.y; + } + return false; + } +} diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/entities/Priority.java" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/entities/Priority.java" new file mode 100644 index 0000000..6315713 --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/entities/Priority.java" @@ -0,0 +1,7 @@ +package org.example.entities; + +public enum Priority { + HIGH, + MEDIUM, + LOW +} diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/simulations/Init.java" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/simulations/Init.java" new file mode 100644 index 0000000..3e6f880 --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/simulations/Init.java" @@ -0,0 +1,124 @@ +package org.example.simulations; + +import org.example.entities.DischargePoint; +import org.example.entities.DistributionCenter; +import org.example.entities.Position; +import org.example.utils.Util; + +import java.util.*; + +public class Init { + DistributionCenter[] distributionCenters; + DischargePoint[] dischargePoints; + + public Init() { + } + + public Init(DistributionCenter[] distributionCenters, DischargePoint[] dischargePoints) { + this.distributionCenters = distributionCenters; + this.dischargePoints = dischargePoints; + } + + public DistributionCenter[] getDistributionCenters() { + return distributionCenters; + } + + public void setDistributionCenters(DistributionCenter[] distributionCenters) { + this.distributionCenters = distributionCenters; + } + + public DischargePoint[] getDischargePoints() { + return dischargePoints; + } + + public void setDischargePoints(DischargePoint[] dischargePoints) { + this.dischargePoints = dischargePoints; + } + + @Override + public String toString() { + return "Init{" + "distributionCenters=" + Arrays.toString(distributionCenters) + ", dischargePoints=" + Arrays.toString(dischargePoints) + '}'; + } + + public void createMap(int scaleX, int scaleY, int j, int k) { + Random random = new Random(); + Set distributionCenterSet = new HashSet<>(); + Set dischargePointSet = new HashSet<>(); + while (distributionCenterSet.size() < j) { + int x = random.nextInt(scaleX); + int y = random.nextInt(scaleY); + if (distributionCenterSet.isEmpty()) { + distributionCenterSet.add(new DistributionCenter(new Position(x, y))); + } + boolean flag = true; + for (DistributionCenter center : distributionCenterSet) { + if (Util.distance(center.getPosition(), new Position(x, y)) < 8) { + flag = false; + break; + } + } + if (flag) { + distributionCenterSet.add(new DistributionCenter(new Position(x, y))); + } + } + while (dischargePointSet.size() < k) { + int x = random.nextInt(scaleX); + int y = random.nextInt(scaleY); + for (DistributionCenter center : distributionCenterSet) { + if (Util.distance(center.getPosition(), new Position(x, y)) < 10) { + dischargePointSet.add(new DischargePoint(new Position(x, y))); + break; + } + } + } + this.distributionCenters = new DistributionCenter[j]; + Iterator iter1 = distributionCenterSet.iterator(); + for (int i = 0; i < j; i++) { + this.distributionCenters[i] = iter1.next(); + } + this.dischargePoints = new DischargePoint[k]; + Iterator iter2 = dischargePointSet.iterator(); + for (int i = 0; i < k; i++) { + this.dischargePoints[i] = iter2.next(); + } + } + + public void loadMap(int type) { + int[][] pos1 = {{7, 10}, {8, 2}, {25, 16}}; + int[][] pos2 = {{28, 19}, {20, 14}, {19, 18}, {27, 16}, {13, 15}, {28, 10}, {13, 10}, + {26, 8}, {5, 15}, {3, 5}, {10, 19}, {16, 16}, {23, 10}, {13, 3}, {11, 4}}; + int[][] pos3 = {{6, 34}, {48, 23}, {53, 0}, {15, 9}, {43, 13}, {23, 37}, {58, 19}, {6, 5}, {32, 4}, {18, 18}}; + int[][] pos4 = {{52, 15}, {49, 28}, {46, 21}, {28, 6}, {25, 11}, {40, 17}, {24, 30}, {30, 4}, {48, 30}, {35, 3}, + {49, 4}, {15, 5}, {13, 37}, {23, 19}, {19, 36}, {4, 39}, {32, 1}, {15, 27}, {14, 37}, {7, 13}, + {46, 24}, {39, 4}, {16, 26}, {54, 11}, {23, 15}, {33, 6}, {30, 39}, {8, 37}, {17, 20}, {23, 28}, + {54, 11}, {16, 3}, {11, 32}, {13, 31}, {1, 2}, {15, 35}, {58, 14}, {19, 38}, {3, 5}, {44, 3}}; + + switch (type) { + case 0: { + this.distributionCenters = new DistributionCenter[3]; + for (int i = 0; i < 3; i++) { + this.distributionCenters[i] = new DistributionCenter(new Position(pos1[i][0], pos1[i][1])); + } + this.dischargePoints = new DischargePoint[15]; + for (int i = 0; i < 15; i++) { + this.dischargePoints[i] = new DischargePoint(new Position(pos2[i][0], pos2[i][1])); + } + break; + } + case 1: { + this.distributionCenters = new DistributionCenter[10]; + for (int i = 0; i < 10; i++) { + this.distributionCenters[i] = new DistributionCenter(new Position(pos3[i][0], pos3[i][1])); + } + this.dischargePoints = new DischargePoint[40]; + for (int i = 0; i < 40; i++) { + this.dischargePoints[i] = new DischargePoint(new Position(pos4[i][0], pos4[i][1])); + } + break; + } + default: { + System.out.println("Choose Correct Map Type."); + } + } + } +} diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/simulations/OrderList.java" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/simulations/OrderList.java" new file mode 100644 index 0000000..6866070 --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/simulations/OrderList.java" @@ -0,0 +1,57 @@ +package org.example.simulations; + +import org.example.entities.*; +import org.example.utils.Util; + +import java.util.ArrayList; +import java.util.Random; + +public class OrderList { + public ArrayList orders; + + public OrderList() { + } + + public OrderList(ArrayList orders) { + this.orders = orders; + } + + public void newOrders(DischargePoint[] dischargePoints, int m, double currentTime) { + orders = new ArrayList<>(); + for (DischargePoint dischargePoint : dischargePoints) { + Random random = new Random(); + int num = random.nextInt(m + 1); + for (int i = 0; i < num; i++) { + Priority priority = Util.randomPriority(); + double remainTime = 0; + if (priority == Priority.LOW) { + remainTime += 180; + } + if (priority == Priority.MEDIUM) { + remainTime += 90; + } + if (priority == Priority.HIGH) { + remainTime += 30; + } + Position position = dischargePoint.getPosition(); + orders.add(new Order(priority, currentTime, remainTime, position)); + } + } + } + + public void orderDistribution(DistributionCenter[] distributionCenters) { + for (Order order : orders) { + double minDist = Double.MAX_VALUE; + int flag = 0; + for (int j = 0; j < distributionCenters.length; j++) { + double d = Util.distance(order.getPosition(), distributionCenters[j].getPosition()); + if (d < minDist) { + minDist = d; + flag = j; + } + } + distributionCenters[flag].orders.add(order); + } + orders.clear(); + } +} diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/utils/Util.java" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/utils/Util.java" new file mode 100644 index 0000000..7586b1b --- /dev/null +++ "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/src/main/java/org/example/utils/Util.java" @@ -0,0 +1,34 @@ +package org.example.utils; + +import org.example.entities.Position; +import org.example.entities.Priority; + +import java.util.ArrayList; +import java.util.Random; + +public class Util { + public static Random random = new Random(); + + public static double distance(Position x, Position y) { + return Math.sqrt(Math.pow(x.getX() - y.getX(), 2) + Math.pow(x.getY() - y.getY(), 2)); + } + + public static Priority randomPriority() { + return Priority.values()[random.nextInt(Priority.values().length)]; + } + + public static double pathLength(ArrayList path) { + double totalLength = 0.0; + for (int i = 0; i < path.size(); i++) { + Position current = path.get(i); + Position next = path.get((i + 1) % path.size()); + totalLength += distance(current, next); + } + return totalLength; + } + + public static double pathTime(ArrayList path, double speed) { + double totalLength = pathLength(path); + return totalLength / speed; + } +} diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/Main.class" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/Main.class" new file mode 100644 index 0000000..4bcbed6 Binary files /dev/null and "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/Main.class" differ diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/entities/DischargePoint.class" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/entities/DischargePoint.class" new file mode 100644 index 0000000..5a16a61 Binary files /dev/null and "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/entities/DischargePoint.class" differ diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/entities/DistributionCenter.class" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/entities/DistributionCenter.class" new file mode 100644 index 0000000..1d17c27 Binary files /dev/null and "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/entities/DistributionCenter.class" differ diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/entities/Drone.class" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/entities/Drone.class" new file mode 100644 index 0000000..3446c64 Binary files /dev/null and "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/entities/Drone.class" differ diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/entities/Order.class" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/entities/Order.class" new file mode 100644 index 0000000..9819e29 Binary files /dev/null and "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/entities/Order.class" differ diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/entities/Position.class" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/entities/Position.class" new file mode 100644 index 0000000..6f990d6 Binary files /dev/null and "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/entities/Position.class" differ diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/entities/Priority.class" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/entities/Priority.class" new file mode 100644 index 0000000..27231e0 Binary files /dev/null and "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/entities/Priority.class" differ diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/simulations/Init.class" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/simulations/Init.class" new file mode 100644 index 0000000..50aec17 Binary files /dev/null and "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/simulations/Init.class" differ diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/simulations/OrderList.class" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/simulations/OrderList.class" new file mode 100644 index 0000000..95e173e Binary files /dev/null and "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/simulations/OrderList.class" differ diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/utils/Util.class" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/utils/Util.class" new file mode 100644 index 0000000..e581744 Binary files /dev/null and "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/DroneRouting/target/classes/org/example/utils/Util.class" differ diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/datas.xlsx" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/datas.xlsx" new file mode 100644 index 0000000..207e9dc Binary files /dev/null and "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/datas.xlsx" differ diff --git "a/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/logs.docx" "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/logs.docx" new file mode 100644 index 0000000..af68929 Binary files /dev/null and "b/2023202210120-\350\265\265\350\267\257\350\267\257-\351\253\230\347\272\247\347\256\227\346\263\225\350\256\276\350\256\241\344\270\216\345\210\206\346\236\220\344\275\234\344\270\232/logs.docx" differ