├── out
└── production
│ └── PDPTW
│ ├── alns
│ ├── Main.class
│ ├── destroy
│ │ ├── Fitness.class
│ │ ├── IALNSDestroy.class
│ │ ├── ShawDestroy.class
│ │ ├── RandomDestroy.class
│ │ └── WorstCostDestroy.class
│ ├── repair
│ │ ├── BestPos.class
│ │ ├── GreedyRepair.class
│ │ ├── IALNSRepair.class
│ │ ├── RandomRepair.class
│ │ ├── RegretRepair.class
│ │ └── ALNSAbstractRepair.class
│ ├── config
│ │ ├── IALNSConfig.class
│ │ ├── ALNSConfiguration.class
│ │ └── ControlParameter.class
│ └── operation
│ │ ├── IALNSOperation.class
│ │ └── ALNSAbstractOperation.class
│ ├── algrithm
│ ├── Cost.class
│ ├── Solver.class
│ ├── Solution.class
│ ├── GreedyVRP.class
│ ├── CheckSolution.class
│ ├── MyALNSProcess.class
│ └── MyALNSSolution.class
│ └── instance
│ ├── Node.class
│ ├── Route.class
│ └── Instance.class
├── .idea
├── vcs.xml
├── .gitignore
├── misc.xml
├── modules.xml
├── libraries
│ └── commons_csv_1_9_0.xml
└── runConfigurations.xml
├── src
├── alns
│ ├── repair
│ │ ├── ALNSAbstractRepair.java
│ │ ├── IALNSRepair.java
│ │ ├── GreedyRepair.java
│ │ ├── RandomRepair.java
│ │ └── RegretRepair.java
│ ├── destroy
│ │ ├── IALNSDestroy.java
│ │ ├── RandomDestroy.java
│ │ ├── WorstCostDestroy.java
│ │ └── ShawDestroy.java
│ ├── config
│ │ ├── IALNSConfig.java
│ │ ├── ControlParameter.java
│ │ └── ALNSConfiguration.java
│ ├── operation
│ │ ├── IALNSOperation.java
│ │ └── ALNSAbstractOperation.java
│ └── Main.java
├── algrithm
│ ├── Solver.java
│ ├── Solution.java
│ ├── Cost.java
│ └── CheckSolution.java
└── instance
│ ├── Route.java
│ └── Node.java
├── PDPTW.iml
├── README.md
└── instances
└── solomon
├── solomon_25
├── R101.txt
├── C101.txt
├── C102.txt
├── C103.txt
├── C104.txt
├── C105.txt
├── C106.txt
├── C107.txt
├── C108.txt
├── C109.txt
├── C201.txt
├── C203.txt
├── R102.txt
├── R103.txt
├── R105.txt
├── R106.txt
├── R107.txt
├── R108.txt
├── R110.txt
├── R112.txt
├── C202.txt
├── C204.txt
├── C205.txt
├── C206.txt
├── C207.txt
├── C208.txt
├── R104.txt
├── R109.txt
├── R111.txt
├── R202.txt
├── R203.txt
├── R204.txt
├── R205.txt
├── R207.txt
├── R208.txt
├── R209.txt
├── R210.txt
├── R211.txt
├── RC101.txt
├── RC102.txt
├── RC103.txt
├── RC104.txt
├── RC105.txt
├── RC106.txt
├── RC107.txt
├── RC108.txt
├── RC201.txt
├── RC202.txt
├── RC203.txt
├── RC204.txt
├── RC205.txt
├── RC206.txt
├── RC207.txt
├── RC208.txt
├── R201.txt
└── R206.txt
└── solomon_50
├── R101.txt
├── C101.txt
├── C102.txt
├── C103.txt
├── C104.txt
├── C105.txt
├── C106.txt
├── C107.txt
├── C108.txt
├── C109.txt
├── C201.txt
├── C203.txt
├── C204.txt
└── C207.txt
/out/production/PDPTW/alns/Main.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/alns/Main.class
--------------------------------------------------------------------------------
/out/production/PDPTW/algrithm/Cost.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/algrithm/Cost.class
--------------------------------------------------------------------------------
/out/production/PDPTW/algrithm/Solver.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/algrithm/Solver.class
--------------------------------------------------------------------------------
/out/production/PDPTW/instance/Node.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/instance/Node.class
--------------------------------------------------------------------------------
/out/production/PDPTW/instance/Route.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/instance/Route.class
--------------------------------------------------------------------------------
/out/production/PDPTW/algrithm/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/algrithm/Solution.class
--------------------------------------------------------------------------------
/out/production/PDPTW/instance/Instance.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/instance/Instance.class
--------------------------------------------------------------------------------
/out/production/PDPTW/algrithm/GreedyVRP.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/algrithm/GreedyVRP.class
--------------------------------------------------------------------------------
/out/production/PDPTW/alns/destroy/Fitness.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/alns/destroy/Fitness.class
--------------------------------------------------------------------------------
/out/production/PDPTW/alns/repair/BestPos.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/alns/repair/BestPos.class
--------------------------------------------------------------------------------
/out/production/PDPTW/algrithm/CheckSolution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/algrithm/CheckSolution.class
--------------------------------------------------------------------------------
/out/production/PDPTW/algrithm/MyALNSProcess.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/algrithm/MyALNSProcess.class
--------------------------------------------------------------------------------
/out/production/PDPTW/algrithm/MyALNSSolution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/algrithm/MyALNSSolution.class
--------------------------------------------------------------------------------
/out/production/PDPTW/alns/config/IALNSConfig.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/alns/config/IALNSConfig.class
--------------------------------------------------------------------------------
/out/production/PDPTW/alns/destroy/IALNSDestroy.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/alns/destroy/IALNSDestroy.class
--------------------------------------------------------------------------------
/out/production/PDPTW/alns/destroy/ShawDestroy.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/alns/destroy/ShawDestroy.class
--------------------------------------------------------------------------------
/out/production/PDPTW/alns/repair/GreedyRepair.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/alns/repair/GreedyRepair.class
--------------------------------------------------------------------------------
/out/production/PDPTW/alns/repair/IALNSRepair.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/alns/repair/IALNSRepair.class
--------------------------------------------------------------------------------
/out/production/PDPTW/alns/repair/RandomRepair.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/alns/repair/RandomRepair.class
--------------------------------------------------------------------------------
/out/production/PDPTW/alns/repair/RegretRepair.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/alns/repair/RegretRepair.class
--------------------------------------------------------------------------------
/out/production/PDPTW/alns/destroy/RandomDestroy.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/alns/destroy/RandomDestroy.class
--------------------------------------------------------------------------------
/out/production/PDPTW/alns/config/ALNSConfiguration.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/alns/config/ALNSConfiguration.class
--------------------------------------------------------------------------------
/out/production/PDPTW/alns/config/ControlParameter.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/alns/config/ControlParameter.class
--------------------------------------------------------------------------------
/out/production/PDPTW/alns/destroy/WorstCostDestroy.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/alns/destroy/WorstCostDestroy.class
--------------------------------------------------------------------------------
/out/production/PDPTW/alns/operation/IALNSOperation.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/alns/operation/IALNSOperation.class
--------------------------------------------------------------------------------
/out/production/PDPTW/alns/repair/ALNSAbstractRepair.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/alns/repair/ALNSAbstractRepair.class
--------------------------------------------------------------------------------
/out/production/PDPTW/alns/operation/ALNSAbstractOperation.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/linhtran1028/PDPTW/HEAD/out/production/PDPTW/alns/operation/ALNSAbstractOperation.class
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/alns/repair/ALNSAbstractRepair.java:
--------------------------------------------------------------------------------
1 | package alns.repair;
2 |
3 | import alns.operation.ALNSAbstractOperation;
4 |
5 | abstract class ALNSAbstractRepair extends ALNSAbstractOperation {
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 | # Datasource local storage ignored files
5 | /dataSources/
6 | /dataSources.local.xml
7 | # Editor-based HTTP Client requests
8 | /httpRequests/
9 |
--------------------------------------------------------------------------------
/src/alns/repair/IALNSRepair.java:
--------------------------------------------------------------------------------
1 | package alns.repair;
2 |
3 | import algrithm.MyALNSSolution;
4 | import alns.operation.IALNSOperation;
5 |
6 | public interface IALNSRepair extends IALNSOperation {
7 |
8 | MyALNSSolution repair(MyALNSSolution from);
9 | }
10 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/alns/destroy/IALNSDestroy.java:
--------------------------------------------------------------------------------
1 | package alns.destroy;
2 |
3 | import algrithm.MyALNSSolution;
4 | import alns.operation.IALNSOperation;
5 |
6 | public interface IALNSDestroy extends IALNSOperation {
7 |
8 | MyALNSSolution destroy(MyALNSSolution s, int nodes) throws Exception;
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/.idea/libraries/commons_csv_1_9_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/alns/config/IALNSConfig.java:
--------------------------------------------------------------------------------
1 | package alns.config;
2 |
3 | public interface IALNSConfig {
4 |
5 | int getOmega();
6 |
7 | int getTau();
8 |
9 | double getR_p();
10 |
11 | int getSigma_1();
12 |
13 | int getSigma_2();
14 |
15 | int getSigma_3();
16 |
17 | double getC();
18 |
19 | double getDelta();
20 |
21 | double getBig_omega();
22 |
23 | }
--------------------------------------------------------------------------------
/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
--------------------------------------------------------------------------------
/src/alns/operation/IALNSOperation.java:
--------------------------------------------------------------------------------
1 | package alns.operation;
2 |
3 | public interface IALNSOperation {
4 |
5 | int getPi();
6 |
7 | void setPi(int pi);
8 |
9 | void addToPi(int pi);
10 |
11 | double getP();
12 |
13 | void setP(double p);
14 |
15 | double getW();
16 |
17 | void setW(double p);
18 |
19 | void drawn();
20 |
21 | int getDraws();
22 |
23 | void setDraws(int d);
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/PDPTW.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/algrithm/Solver.java:
--------------------------------------------------------------------------------
1 | package algrithm;
2 |
3 | import alns.config.ControlParameter;
4 | import alns.config.IALNSConfig;
5 | import instance.Instance;
6 |
7 |
8 | public class Solver {
9 |
10 | public Solver() {
11 | }
12 |
13 | public Solution getInitialSolution(Instance instance) {
14 | GreedyVRP greedyVRP = new GreedyVRP(instance);
15 | return greedyVRP.getInitialSolution();
16 | }
17 |
18 | public Solution improveSolution(Solution s, IALNSConfig ac, ControlParameter cp, Instance is) throws Exception {
19 | MyALNSProcess ALNS = new MyALNSProcess(s, is, ac, cp);
20 | return ALNS.improveSolution();
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/alns/config/ControlParameter.java:
--------------------------------------------------------------------------------
1 | package alns.config;
2 |
3 | public class ControlParameter {
4 |
5 | private final boolean solutionsLinechart;
6 | private final boolean operationsLinechart;
7 | private final boolean solutionImages;
8 |
9 | public ControlParameter(boolean showSolutionsLinechart, boolean showOperationsLinechart, boolean createSolutionImages) {
10 | solutionsLinechart = showSolutionsLinechart;
11 | operationsLinechart = showOperationsLinechart;
12 | solutionImages = createSolutionImages;
13 | }
14 |
15 | public boolean isSolutionsLinechart() {
16 | return this.solutionsLinechart;
17 | }
18 |
19 | public boolean isOperationsLinechart() {
20 | return this.operationsLinechart;
21 | }
22 |
23 | public boolean isSolutionImages() {
24 | return this.solutionImages;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/alns/operation/ALNSAbstractOperation.java:
--------------------------------------------------------------------------------
1 | package alns.operation;
2 |
3 | import java.util.*;
4 |
5 | public abstract class ALNSAbstractOperation implements IALNSOperation {
6 | private final Random r = new Random();
7 | private int pi;
8 | private double p;
9 | private int draws;
10 | private double w;
11 |
12 | @Override
13 | public void drawn() {
14 | draws++;
15 | }
16 |
17 | @Override
18 | // Để tối ưu hóa giải pháp thỏa mãn tối ưu, tăng giá trị của pi
19 | public void addToPi(int pi) {
20 | this.pi += pi;
21 | }
22 |
23 | public int getPi() {
24 | return this.pi;
25 | }
26 |
27 | public void setPi(int pi) {
28 | this.pi = pi;
29 | }
30 |
31 | public double getP() {
32 | return this.p;
33 | }
34 |
35 | public void setP(double p) {
36 | this.p = p;
37 | }
38 |
39 | public int getDraws() {
40 | return this.draws;
41 | }
42 |
43 | public void setDraws(int draws) {
44 | this.draws = draws;
45 | }
46 |
47 | public double getW() {
48 | return this.w;
49 | }
50 |
51 | public void setW(double w) {
52 | this.w = w;
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## A Large Neighborhood Search for the Pickup and Delivery Problem with Time Windows
2 |
3 | ### Bài toán cần giải quyết
4 | Bài toán giao và nhận hàng với cửa sổ thời gian ( Pickup and Delivery Problem with Time Windows - PDPTW) là bài toán định tuyến xe đa điểm giao và nhận hàng yêu cầu phải được đón hàng từ nhiều địa điểm khác nhau hoặc một địa điểm và giao hàng tại một địa điểm.
5 | - Trong mỗi yêu cầu, các mặt hàng được yêu cầu nhận từ các địa điểm khác nhau để được vận chuyển và bốc dỡ tại một địa điểm giao hàng chung rồi giao hàng tới khách hàng.
6 | - Với ràng buộc về khung cửa sổ thời gian (Time Windows - TW) được liên kết với mỗi nút, sao cho việc nhận hàng và giao hàng chỉ có thể được thực hiện trong thời gian bắt đầu và kết thúc của nút.
7 | - Mục tiêu của bài toán là định tuyến các xe để đảm bảo các yêu cầu giao nhận hàng, một yêu cầu chỉ có thể được phục vụ bởi một xe duy nhất đồng thời giảm thiểu chi phí đi kèm.
8 |
9 | ### Mô hình bài toán
10 | 
11 |
12 | ### Hướng tiếp cận và giải quyết bài toán
13 | An Adaptive Large Neighborhood Search Heuristic for the Pickup and Delivery Problem with Time Windows
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/alns/destroy/RandomDestroy.java:
--------------------------------------------------------------------------------
1 | package alns.destroy;
2 |
3 | import algrithm.MyALNSSolution;
4 | import alns.operation.ALNSAbstractOperation;
5 | import instance.Route;
6 |
7 | import java.util.ArrayList;
8 | import java.util.Collections;
9 | import java.util.Random;
10 |
11 | public class RandomDestroy extends ALNSAbstractOperation implements IALNSDestroy {
12 |
13 | @Override
14 | public MyALNSSolution destroy(MyALNSSolution s, int removeNr) throws Exception {
15 |
16 | if(s.removalCustomers.size() != 0) {
17 | System.err.println("removalCustomers is not empty.");
18 | return s;
19 | }
20 |
21 | while(s.removalCustomers.size() < removeNr ) {
22 |
23 | // Lấy số ngẫu nhiên
24 | Random r = s.instance.getRandom();
25 |
26 | ArrayList routeList= new ArrayList();
27 | for(int j = 0; j < s.routes.size(); j++)
28 | routeList.add(j);
29 |
30 | Collections.shuffle(routeList);
31 |
32 | // Chọn đường dẫn nơi nút bị loại bỏ
33 | int removenRoutePosition = routeList.remove(0);
34 | Route removenRoute = s.routes.get(removenRoutePosition);
35 |
36 | while(removenRoute.getRoute().size() <= 2) {
37 | removenRoutePosition = routeList.remove(0);
38 | removenRoute = s.routes.get(removenRoutePosition);
39 | }
40 |
41 | // Chọn điểm đã loại bỏ
42 | int removenCustomerPosition = r.nextInt(removenRoute.getRoute().size() - 2) + 1;
43 |
44 | s.removeCustomer(removenRoutePosition, removenCustomerPosition);
45 | }
46 |
47 | return s;
48 | }
49 |
50 | }
51 |
--------------------------------------------------------------------------------
/src/alns/repair/GreedyRepair.java:
--------------------------------------------------------------------------------
1 | package alns.repair;
2 |
3 | import algrithm.Cost;
4 | import algrithm.MyALNSSolution;
5 | import instance.Node;
6 |
7 | public class GreedyRepair extends ALNSAbstractRepair implements IALNSRepair {
8 |
9 | @Override
10 | public MyALNSSolution repair(MyALNSSolution s) {
11 | //nếu không có yêu cầu nào bị xóa
12 | if(s.removalCustomers.size() == 0) {
13 | System.err.println("removalCustomers is empty!");
14 | return s;
15 | }
16 |
17 | int removeNr = s.removalCustomers.size();
18 |
19 | for(int k = 0; k < removeNr; k++) {
20 |
21 | Node insertNode = s.removalCustomers.remove(0);
22 |
23 | double bestCost;
24 | int bestCusP = -1;
25 | int bestRouteP = -1;
26 | bestCost = Double.POSITIVE_INFINITY;
27 |
28 | for(int j = 0; j < s.routes.size(); j++) {
29 |
30 | if(s.routes.get(j).getRoute().size() < 1) {
31 | continue;
32 | }
33 |
34 | // Tìm vị trí chèn tối ưu
35 | for (int i = 1; i < s.routes.get(j).getRoute().size() - 1; ++i) {
36 |
37 | // Đánh giá vị trí chèn
38 | Cost newCost = new Cost(s.cost);
39 | s.evaluateInsertCustomer(j, i, insertNode, newCost);
40 |
41 | if(newCost.total > Double.MAX_VALUE) {
42 | newCost.total = Double.MAX_VALUE;
43 | }
44 |
45 | // nếu tìm thấy vị trí chèn tốt hơn, hãy đặt vị trí cần chèn trong lần di chuyển
46 | // và cập nhật chi phí tối thiểu được tìm thấy
47 | if (newCost.total < bestCost) {
48 | bestCusP = i;
49 | bestRouteP = j;
50 | bestCost = newCost.total;
51 | }
52 | }
53 | }
54 | s.insertCustomer(bestRouteP, bestCusP, insertNode);
55 | }
56 | return s;
57 | }
58 | }
--------------------------------------------------------------------------------
/src/instance/Route.java:
--------------------------------------------------------------------------------
1 | package instance;
2 |
3 | import algrithm.Cost;
4 |
5 | import java.util.ArrayList;
6 | import java.util.List;
7 |
8 | public class Route {
9 |
10 | private int id;
11 |
12 | /**
13 | * Chi phí của Tuyến đường hiện tại. Nó được tính bằng tổng khoảng cách của mọi nút tiếp theo so với nút trước đó.
14 | */
15 | private List route;
16 | private Cost cost;
17 |
18 | public Route(int id) {
19 | this.route = new ArrayList<>();
20 | this.id = id;
21 | this.cost = new Cost();
22 | }
23 |
24 | public Route cloneRoute() {
25 | Route clone = new Route(this.id);
26 | clone.cost = new Cost(this.cost);
27 | clone.route = new ArrayList<>(this.route);
28 |
29 | return clone;
30 | }
31 |
32 | public int getId() {
33 | return this.id;
34 | }
35 |
36 | public List getRoute() {
37 | return route;
38 | }
39 |
40 | /**
41 | * Trả về nút cuối cùng trong tuyến xe
42 | */
43 | public Node getLastNodeOfTheRoute() {
44 | return this.route.get(this.route.size() - 1);
45 | }
46 | public void addNodeToRoute(Node node) {
47 | this.route.add(node);
48 | }
49 | public void addNodeToRouteWithIndex(Node node, int index) {
50 | this.route.add(index, node);
51 | }
52 | public Node removeNode(int index) {
53 | return this.route.remove(index);
54 | }
55 |
56 | @Override
57 | public String toString() {
58 | String result = "Route{" +
59 | "cost = " + this.cost +
60 | ", route = [";
61 |
62 | for (Node customer: this.route) {
63 | result += "\n\t\t" + customer;
64 | }
65 |
66 | return result + "]}";
67 | }
68 |
69 | public Cost getCost() {
70 | return this.cost;
71 | }
72 |
73 | public void setCost(Cost cost) {
74 | this.cost = cost;
75 | }
76 |
77 | }
78 |
--------------------------------------------------------------------------------
/src/alns/config/ALNSConfiguration.java:
--------------------------------------------------------------------------------
1 | package alns.config;
2 |
3 |
4 | public enum ALNSConfiguration implements IALNSConfig {
5 |
6 | DEFAULT(5000, 500, 0.1, 20, 5, 1, 0.99937, 0.05, 0.5);
7 |
8 |
9 | private final int omega;//Số lần lặp lại
10 | private final int tau;//Cập nhật khoảng thời gian lặp lại của xác suất lựa chọn toán tử
11 | private final double r_p;//tính toán xác suất
12 | private final int sigma_1;//tìm tối ưu toàn cục
13 | private final int sigma_2;//Tìm giá trị tối ưu cục bộ
14 | private final int sigma_3;// Độ chênh lệch
15 | private final double c;
16 | private final double delta;
17 | private final double big_omega;
18 |
19 | ALNSConfiguration(int omega, int tau, double r_p, int sigma_1, int sigma_2, int sigma_3, double c, double delta, double big_omega) {
20 | this.omega = omega;
21 | this.tau = tau;
22 | this.r_p = r_p;
23 | this.sigma_1 = sigma_1;
24 | this.sigma_2 = sigma_2;
25 | this.sigma_3 = sigma_3;
26 | this.c = c;
27 | this.delta = delta;
28 | this.big_omega = big_omega;
29 | }
30 |
31 | @Override
32 | public int getOmega() {
33 | return omega;
34 | }
35 |
36 | @Override
37 | public int getTau() {
38 | return tau;
39 | }
40 |
41 | @Override
42 | public double getR_p() {
43 | return r_p;
44 | }
45 |
46 | @Override
47 | public int getSigma_1() {
48 | return sigma_1;
49 | }
50 |
51 | @Override
52 | public int getSigma_2() {
53 | return sigma_2;
54 | }
55 |
56 | @Override
57 | public int getSigma_3() {
58 | return sigma_3;
59 | }
60 |
61 | @Override
62 | public double getC() {
63 | return c;
64 | }
65 |
66 | @Override
67 | public double getDelta() {
68 | return delta;
69 | }
70 |
71 | @Override
72 | public double getBig_omega() {
73 | return big_omega;
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R101.txt:
--------------------------------------------------------------------------------
1 | R101
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 230 0
11 | 1 41 49 10 161 171 10
12 | 2 35 17 7 50 60 10
13 | 3 55 45 13 116 126 10
14 | 4 55 20 19 149 159 10
15 | 5 15 30 26 34 44 10
16 | 6 25 30 3 99 109 10
17 | 7 20 50 5 81 91 10
18 | 8 10 43 9 95 105 10
19 | 9 55 60 16 97 107 10
20 | 10 30 60 16 124 134 10
21 | 11 20 65 12 67 77 10
22 | 12 50 35 19 63 73 10
23 | 13 30 25 23 159 169 10
24 | 14 15 10 20 32 42 10
25 | 15 30 5 8 61 71 10
26 | 16 10 20 19 75 85 10
27 | 17 5 30 2 157 167 10
28 | 18 20 40 12 87 97 10
29 | 19 15 60 17 76 86 10
30 | 20 45 65 9 126 136 10
31 | 21 45 20 11 62 72 10
32 | 22 45 10 18 97 107 10
33 | 23 55 5 29 68 78 10
34 | 24 65 35 3 153 163 10
35 | 25 65 20 6 172 182 10
36 |
--------------------------------------------------------------------------------
/src/alns/Main.java:
--------------------------------------------------------------------------------
1 | package alns;
2 |
3 |
4 | import algrithm.CheckSolution;
5 | import algrithm.Solution;
6 | import algrithm.Solver;
7 | import alns.config.ALNSConfiguration;
8 | import alns.config.ControlParameter;
9 | import alns.config.IALNSConfig;
10 | import instance.Instance;
11 | import org.apache.commons.csv.CSVFormat;
12 | import org.apache.commons.csv.CSVPrinter;
13 |
14 | import java.io.FileWriter;
15 | import java.util.ArrayList;
16 | import java.util.List;
17 |
18 |
19 | public class Main {
20 |
21 | public static void main(String args[]) {
22 |
23 | String[] instances = { "C101" };
24 | String[][] result = new String[instances.length][];
25 |
26 | for (int j = 0; j < instances.length; j = j + 1) {
27 | try {
28 | result[j] = solve(
29 | instances[j],
30 | "Solomon",
31 | 25,
32 | ALNSConfiguration.DEFAULT,
33 | new ControlParameter(
34 | false,
35 | false,
36 | false
37 | ));
38 |
39 | } catch (Exception e2) {
40 | e2.printStackTrace();
41 | }
42 | }
43 | }
44 |
45 | private static String[] solve(String name, String instanceType, int size, IALNSConfig c, ControlParameter cp) throws Exception {
46 |
47 | // Đọc dữ liệu đầu vào
48 | Instance instance = new Instance(size, name, instanceType);
49 | // Kiểm tra giải pháp
50 | CheckSolution checkSolution = new CheckSolution(instance);
51 | // giải pháp mới được khởi tạo
52 | Solver solver = new Solver();
53 |
54 | Solution is = solver.getInitialSolution(instance);
55 | Solution ims = solver.improveSolution(is, c, cp, instance);
56 | System.out.println(ims);
57 | System.out.println(checkSolution.Check(ims));
58 |
59 | String[] result = {String.valueOf(ims.getTotalCost()), String.valueOf(ims.testTime)};
60 | return result;
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/C101.txt:
--------------------------------------------------------------------------------
1 | C101
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 1236 0
11 | 1 45 68 10 912 967 90
12 | 2 45 70 30 825 870 90
13 | 3 42 66 10 65 146 90
14 | 4 42 68 10 727 782 90
15 | 5 42 65 10 15 67 90
16 | 6 40 69 20 621 702 90
17 | 7 40 66 20 170 225 90
18 | 8 38 68 20 255 324 90
19 | 9 38 70 10 534 605 90
20 | 10 35 66 10 357 410 90
21 | 11 35 69 10 448 505 90
22 | 12 25 85 20 652 721 90
23 | 13 22 75 30 30 92 90
24 | 14 22 85 10 567 620 90
25 | 15 20 80 40 384 429 90
26 | 16 20 85 40 475 528 90
27 | 17 18 75 20 99 148 90
28 | 18 15 75 20 179 254 90
29 | 19 15 80 10 278 345 90
30 | 20 30 50 10 10 73 90
31 | 21 30 52 20 914 965 90
32 | 22 28 52 20 812 883 90
33 | 23 28 55 10 732 777 90
34 | 24 25 50 10 65 144 90
35 | 25 25 52 40 169 224 90
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/C102.txt:
--------------------------------------------------------------------------------
1 | C102
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 1236 0
11 | 1 45 68 10 0 1127 90
12 | 2 45 70 30 0 1125 90
13 | 3 42 66 10 0 1129 90
14 | 4 42 68 10 727 782 90
15 | 5 42 65 10 0 1130 90
16 | 6 40 69 20 621 702 90
17 | 7 40 66 20 0 1130 90
18 | 8 38 68 20 255 324 90
19 | 9 38 70 10 534 605 90
20 | 10 35 66 10 357 410 90
21 | 11 35 69 10 448 505 90
22 | 12 25 85 20 0 1107 90
23 | 13 22 75 30 30 92 90
24 | 14 22 85 10 567 620 90
25 | 15 20 80 40 384 429 90
26 | 16 20 85 40 475 528 90
27 | 17 18 75 20 99 148 90
28 | 18 15 75 20 179 254 90
29 | 19 15 80 10 278 345 90
30 | 20 30 50 10 10 73 90
31 | 21 30 52 20 0 1135 90
32 | 22 28 52 20 812 883 90
33 | 23 28 55 10 732 777 90
34 | 24 25 50 10 65 144 90
35 | 25 25 52 40 169 224 90
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/C103.txt:
--------------------------------------------------------------------------------
1 | C103
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 1236 0
11 | 1 45 68 10 0 1127 90
12 | 2 45 70 30 0 1125 90
13 | 3 42 66 10 0 1129 90
14 | 4 42 68 10 727 782 90
15 | 5 42 65 10 0 1130 90
16 | 6 40 69 20 621 702 90
17 | 7 40 66 20 0 1130 90
18 | 8 38 68 20 255 324 90
19 | 9 38 70 10 534 605 90
20 | 10 35 66 10 357 410 90
21 | 11 35 69 10 448 505 90
22 | 12 25 85 20 0 1107 90
23 | 13 22 75 30 30 92 90
24 | 14 22 85 10 0 1106 90
25 | 15 20 80 40 384 429 90
26 | 16 20 85 40 0 1105 90
27 | 17 18 75 20 99 148 90
28 | 18 15 75 20 0 1110 90
29 | 19 15 80 10 0 1106 90
30 | 20 30 50 10 0 1136 90
31 | 21 30 52 20 0 1135 90
32 | 22 28 52 20 812 883 90
33 | 23 28 55 10 732 777 90
34 | 24 25 50 10 0 1131 90
35 | 25 25 52 40 169 224 90
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/C104.txt:
--------------------------------------------------------------------------------
1 | C104
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 1236 0
11 | 1 45 68 10 0 1127 90
12 | 2 45 70 30 0 1125 90
13 | 3 42 66 10 0 1129 90
14 | 4 42 68 10 727 782 90
15 | 5 42 65 10 0 1130 90
16 | 6 40 69 20 0 1127 90
17 | 7 40 66 20 0 1130 90
18 | 8 38 68 20 255 324 90
19 | 9 38 70 10 534 605 90
20 | 10 35 66 10 0 1129 90
21 | 11 35 69 10 448 505 90
22 | 12 25 85 20 0 1107 90
23 | 13 22 75 30 30 92 90
24 | 14 22 85 10 0 1106 90
25 | 15 20 80 40 384 429 90
26 | 16 20 85 40 0 1105 90
27 | 17 18 75 20 0 1112 90
28 | 18 15 75 20 0 1110 90
29 | 19 15 80 10 0 1106 90
30 | 20 30 50 10 0 1136 90
31 | 21 30 52 20 0 1135 90
32 | 22 28 52 20 0 1133 90
33 | 23 28 55 10 732 777 90
34 | 24 25 50 10 0 1131 90
35 | 25 25 52 40 169 224 90
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/C105.txt:
--------------------------------------------------------------------------------
1 | C105
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 1236 0
11 | 1 45 68 10 885 994 90
12 | 2 45 70 30 802 893 90
13 | 3 42 66 10 25 186 90
14 | 4 42 68 10 699 810 90
15 | 5 42 65 10 15 120 90
16 | 6 40 69 20 580 743 90
17 | 7 40 66 20 142 253 90
18 | 8 38 68 20 220 359 90
19 | 9 38 70 10 499 640 90
20 | 10 35 66 10 331 436 90
21 | 11 35 69 10 420 533 90
22 | 12 25 85 20 617 756 90
23 | 13 22 75 30 30 155 90
24 | 14 22 85 10 541 646 90
25 | 15 20 80 40 362 451 90
26 | 16 20 85 40 448 555 90
27 | 17 18 75 20 75 172 90
28 | 18 15 75 20 142 291 90
29 | 19 15 80 10 244 379 90
30 | 20 30 50 10 10 137 90
31 | 21 30 52 20 888 991 90
32 | 22 28 52 20 776 919 90
33 | 23 28 55 10 709 800 90
34 | 24 25 50 10 25 184 90
35 | 25 25 52 40 142 251 90
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/C106.txt:
--------------------------------------------------------------------------------
1 | C106
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 1236 0
11 | 1 45 68 10 890 989 90
12 | 2 45 70 30 816 879 90
13 | 3 42 66 10 55 156 90
14 | 4 42 68 10 703 806 90
15 | 5 42 65 10 15 60 90
16 | 6 40 69 20 559 764 90
17 | 7 40 66 20 172 223 90
18 | 8 38 68 20 250 329 90
19 | 9 38 70 10 489 650 90
20 | 10 35 66 10 361 406 90
21 | 11 35 69 10 450 503 90
22 | 12 25 85 20 647 726 90
23 | 13 22 75 30 30 95 90
24 | 14 22 85 10 571 616 90
25 | 15 20 80 40 392 421 90
26 | 16 20 85 40 478 525 90
27 | 17 18 75 20 105 142 90
28 | 18 15 75 20 172 261 90
29 | 19 15 80 10 274 349 90
30 | 20 30 50 10 10 77 90
31 | 21 30 52 20 918 961 90
32 | 22 28 52 20 806 889 90
33 | 23 28 55 10 739 770 90
34 | 24 25 50 10 55 154 90
35 | 25 25 52 40 172 221 90
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/C107.txt:
--------------------------------------------------------------------------------
1 | C107
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 1236 0
11 | 1 45 68 10 850 1030 90
12 | 2 45 70 30 758 938 90
13 | 3 42 66 10 16 196 90
14 | 4 42 68 10 665 845 90
15 | 5 42 65 10 15 195 90
16 | 6 40 69 20 572 752 90
17 | 7 40 66 20 108 288 90
18 | 8 38 68 20 200 380 90
19 | 9 38 70 10 480 660 90
20 | 10 35 66 10 294 474 90
21 | 11 35 69 10 387 567 90
22 | 12 25 85 20 597 777 90
23 | 13 22 75 30 30 210 90
24 | 14 22 85 10 504 684 90
25 | 15 20 80 40 317 497 90
26 | 16 20 85 40 412 592 90
27 | 17 18 75 20 34 214 90
28 | 18 15 75 20 127 307 90
29 | 19 15 80 10 222 402 90
30 | 20 30 50 10 10 190 90
31 | 21 30 52 20 850 1030 90
32 | 22 28 52 20 758 938 90
33 | 23 28 55 10 665 845 90
34 | 24 25 50 10 15 195 90
35 | 25 25 52 40 107 287 90
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/C108.txt:
--------------------------------------------------------------------------------
1 | C108
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 1236 0
11 | 1 45 68 10 830 1049 90
12 | 2 45 70 30 756 939 90
13 | 3 42 66 10 16 336 90
14 | 4 42 68 10 643 866 90
15 | 5 42 65 10 15 226 90
16 | 6 40 69 20 499 824 90
17 | 7 40 66 20 87 308 90
18 | 8 38 68 20 150 429 90
19 | 9 38 70 10 429 710 90
20 | 10 35 66 10 279 488 90
21 | 11 35 69 10 363 590 90
22 | 12 25 85 20 547 826 90
23 | 13 22 75 30 30 280 90
24 | 14 22 85 10 489 698 90
25 | 15 20 80 40 318 495 90
26 | 16 20 85 40 394 609 90
27 | 17 18 75 20 33 226 90
28 | 18 15 75 20 68 365 90
29 | 19 15 80 10 176 447 90
30 | 20 30 50 10 10 265 90
31 | 21 30 52 20 836 1043 90
32 | 22 28 52 20 704 991 90
33 | 23 28 55 10 664 845 90
34 | 24 25 50 10 15 333 90
35 | 25 25 52 40 88 305 90
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/C109.txt:
--------------------------------------------------------------------------------
1 | C109
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 1236 0
11 | 1 45 68 10 760 1120 90
12 | 2 45 70 30 668 1028 90
13 | 3 42 66 10 16 376 90
14 | 4 42 68 10 575 935 90
15 | 5 42 65 10 15 375 90
16 | 6 40 69 20 482 842 90
17 | 7 40 66 20 18 378 90
18 | 8 38 68 20 110 470 90
19 | 9 38 70 10 390 750 90
20 | 10 35 66 10 204 564 90
21 | 11 35 69 10 297 657 90
22 | 12 25 85 20 507 867 90
23 | 13 22 75 30 30 390 90
24 | 14 22 85 10 414 774 90
25 | 15 20 80 40 227 587 90
26 | 16 20 85 40 322 682 90
27 | 17 18 75 20 33 393 90
28 | 18 15 75 20 37 397 90
29 | 19 15 80 10 132 492 90
30 | 20 30 50 10 10 370 90
31 | 21 30 52 20 760 1120 90
32 | 22 28 52 20 668 1028 90
33 | 23 28 55 10 575 935 90
34 | 24 25 50 10 15 375 90
35 | 25 25 52 40 17 377 90
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/C201.txt:
--------------------------------------------------------------------------------
1 | C201
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 700
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 3390 0
11 | 1 52 75 10 311 471 90
12 | 2 45 70 30 213 373 90
13 | 3 62 69 10 1167 1327 90
14 | 4 60 66 10 1261 1421 90
15 | 5 42 65 10 25 185 90
16 | 6 16 42 20 497 657 90
17 | 7 58 70 20 1073 1233 90
18 | 8 34 60 20 2887 3047 90
19 | 9 28 70 10 2601 2761 90
20 | 10 35 66 10 2791 2951 90
21 | 11 35 69 10 2698 2858 90
22 | 12 25 85 20 2119 2279 90
23 | 13 22 75 30 2405 2565 90
24 | 14 22 85 10 2026 2186 90
25 | 15 20 80 40 2216 2376 90
26 | 16 20 85 40 1934 2094 90
27 | 17 18 75 20 2311 2471 90
28 | 18 15 75 20 1742 1902 90
29 | 19 15 80 10 1837 1997 90
30 | 20 30 50 10 10 170 90
31 | 21 30 56 20 2983 3143 90
32 | 22 28 52 20 22 182 90
33 | 23 14 66 10 1643 1803 90
34 | 24 25 50 10 116 276 90
35 | 25 22 66 40 2504 2664 90
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/C203.txt:
--------------------------------------------------------------------------------
1 | C203
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 700
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 3390 0
11 | 1 52 75 10 0 3272 90
12 | 2 45 70 30 0 3279 90
13 | 3 62 69 10 0 3270 90
14 | 4 60 66 10 1261 1421 90
15 | 5 42 65 10 0 3284 90
16 | 6 16 42 20 497 657 90
17 | 7 58 70 20 0 3273 90
18 | 8 34 60 20 2887 3047 90
19 | 9 28 70 10 2601 2761 90
20 | 10 35 66 10 2791 2951 90
21 | 11 35 69 10 2698 2858 90
22 | 12 25 85 20 0 3261 90
23 | 13 22 75 30 2405 2565 90
24 | 14 22 85 10 0 3260 90
25 | 15 20 80 40 2216 2376 90
26 | 16 20 85 40 0 3259 90
27 | 17 18 75 20 2311 2471 90
28 | 18 15 75 20 0 3264 90
29 | 19 15 80 10 0 3260 90
30 | 20 30 50 10 0 3290 90
31 | 21 30 56 20 0 3288 90
32 | 22 28 52 20 22 182 90
33 | 23 14 66 10 1643 1803 90
34 | 24 25 50 10 0 3285 90
35 | 25 22 66 40 2504 2664 90
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R102.txt:
--------------------------------------------------------------------------------
1 | R102
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 230 0
11 | 1 41 49 10 0 204 10
12 | 2 35 17 7 0 202 10
13 | 3 55 45 13 0 197 10
14 | 4 55 20 19 149 159 10
15 | 5 15 30 26 0 199 10
16 | 6 25 30 3 99 109 10
17 | 7 20 50 5 0 198 10
18 | 8 10 43 9 95 105 10
19 | 9 55 60 16 97 107 10
20 | 10 30 60 16 124 134 10
21 | 11 20 65 12 67 77 10
22 | 12 50 35 19 0 205 10
23 | 13 30 25 23 159 169 10
24 | 14 15 10 20 32 42 10
25 | 15 30 5 8 61 71 10
26 | 16 10 20 19 75 85 10
27 | 17 5 30 2 157 167 10
28 | 18 20 40 12 87 97 10
29 | 19 15 60 17 76 86 10
30 | 20 45 65 9 126 136 10
31 | 21 45 20 11 0 201 10
32 | 22 45 10 18 97 107 10
33 | 23 55 5 29 68 78 10
34 | 24 65 35 3 153 163 10
35 | 25 65 20 6 172 182 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R103.txt:
--------------------------------------------------------------------------------
1 | R103
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 230 0
11 | 1 41 49 10 0 204 10
12 | 2 35 17 7 0 202 10
13 | 3 55 45 13 0 197 10
14 | 4 55 20 19 149 159 10
15 | 5 15 30 26 0 199 10
16 | 6 25 30 3 99 109 10
17 | 7 20 50 5 0 198 10
18 | 8 10 43 9 95 105 10
19 | 9 55 60 16 97 107 10
20 | 10 30 60 16 124 134 10
21 | 11 20 65 12 67 77 10
22 | 12 50 35 19 0 205 10
23 | 13 30 25 23 159 169 10
24 | 14 15 10 20 0 187 10
25 | 15 30 5 8 61 71 10
26 | 16 10 20 19 0 190 10
27 | 17 5 30 2 157 167 10
28 | 18 20 40 12 0 204 10
29 | 19 15 60 17 0 187 10
30 | 20 45 65 9 0 188 10
31 | 21 45 20 11 0 201 10
32 | 22 45 10 18 97 107 10
33 | 23 55 5 29 68 78 10
34 | 24 65 35 3 0 190 10
35 | 25 65 20 6 172 182 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R105.txt:
--------------------------------------------------------------------------------
1 | R105
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 230 0
11 | 1 41 49 10 151 181 10
12 | 2 35 17 7 40 70 10
13 | 3 55 45 13 106 136 10
14 | 4 55 20 19 139 169 10
15 | 5 15 30 26 24 54 10
16 | 6 25 30 3 89 119 10
17 | 7 20 50 5 71 101 10
18 | 8 10 43 9 85 115 10
19 | 9 55 60 16 87 117 10
20 | 10 30 60 16 114 144 10
21 | 11 20 65 12 57 87 10
22 | 12 50 35 19 53 83 10
23 | 13 30 25 23 149 179 10
24 | 14 15 10 20 32 62 10
25 | 15 30 5 8 51 81 10
26 | 16 10 20 19 65 95 10
27 | 17 5 30 2 147 177 10
28 | 18 20 40 12 77 107 10
29 | 19 15 60 17 66 96 10
30 | 20 45 65 9 116 146 10
31 | 21 45 20 11 52 82 10
32 | 22 45 10 18 87 117 10
33 | 23 55 5 29 58 88 10
34 | 24 65 35 3 143 173 10
35 | 25 65 20 6 156 186 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R106.txt:
--------------------------------------------------------------------------------
1 | R106
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 230 0
11 | 1 41 49 10 0 204 10
12 | 2 35 17 7 0 202 10
13 | 3 55 45 13 0 197 10
14 | 4 55 20 19 139 169 10
15 | 5 15 30 26 0 199 10
16 | 6 25 30 3 89 119 10
17 | 7 20 50 5 0 198 10
18 | 8 10 43 9 85 115 10
19 | 9 55 60 16 87 117 10
20 | 10 30 60 16 114 144 10
21 | 11 20 65 12 57 87 10
22 | 12 50 35 19 0 205 10
23 | 13 30 25 23 149 179 10
24 | 14 15 10 20 32 62 10
25 | 15 30 5 8 51 81 10
26 | 16 10 20 19 65 95 10
27 | 17 5 30 2 147 177 10
28 | 18 20 40 12 77 107 10
29 | 19 15 60 17 66 96 10
30 | 20 45 65 9 116 146 10
31 | 21 45 20 11 0 201 10
32 | 22 45 10 18 87 117 10
33 | 23 55 5 29 58 88 10
34 | 24 65 35 3 143 173 10
35 | 25 65 20 6 156 186 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R107.txt:
--------------------------------------------------------------------------------
1 | R107
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 230 0
11 | 1 41 49 10 0 204 10
12 | 2 35 17 7 0 202 10
13 | 3 55 45 13 0 197 10
14 | 4 55 20 19 139 169 10
15 | 5 15 30 26 0 199 10
16 | 6 25 30 3 89 119 10
17 | 7 20 50 5 0 198 10
18 | 8 10 43 9 85 115 10
19 | 9 55 60 16 87 117 10
20 | 10 30 60 16 114 144 10
21 | 11 20 65 12 57 87 10
22 | 12 50 35 19 0 205 10
23 | 13 30 25 23 149 179 10
24 | 14 15 10 20 0 187 10
25 | 15 30 5 8 51 81 10
26 | 16 10 20 19 0 190 10
27 | 17 5 30 2 147 177 10
28 | 18 20 40 12 0 204 10
29 | 19 15 60 17 0 187 10
30 | 20 45 65 9 0 188 10
31 | 21 45 20 11 0 201 10
32 | 22 45 10 18 87 117 10
33 | 23 55 5 29 58 88 10
34 | 24 65 35 3 0 190 10
35 | 25 65 20 6 156 186 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R108.txt:
--------------------------------------------------------------------------------
1 | R108
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 230 0
11 | 1 41 49 10 0 204 10
12 | 2 35 17 7 0 202 10
13 | 3 55 45 13 0 197 10
14 | 4 55 20 19 139 169 10
15 | 5 15 30 26 0 199 10
16 | 6 25 30 3 0 208 10
17 | 7 20 50 5 0 198 10
18 | 8 10 43 9 85 115 10
19 | 9 55 60 16 87 117 10
20 | 10 30 60 16 0 194 10
21 | 11 20 65 12 57 87 10
22 | 12 50 35 19 0 205 10
23 | 13 30 25 23 149 179 10
24 | 14 15 10 20 0 187 10
25 | 15 30 5 8 51 81 10
26 | 16 10 20 19 0 190 10
27 | 17 5 30 2 0 189 10
28 | 18 20 40 12 0 204 10
29 | 19 15 60 17 0 187 10
30 | 20 45 65 9 0 188 10
31 | 21 45 20 11 0 201 10
32 | 22 45 10 18 0 193 10
33 | 23 55 5 29 58 88 10
34 | 24 65 35 3 0 190 10
35 | 25 65 20 6 156 186 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R110.txt:
--------------------------------------------------------------------------------
1 | R110
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 230 0
11 | 1 41 49 10 130 201 10
12 | 2 35 17 7 20 89 10
13 | 3 55 45 13 106 135 10
14 | 4 55 20 19 71 195 10
15 | 5 15 30 26 20 107 10
16 | 6 25 30 3 54 153 10
17 | 7 20 50 5 66 105 10
18 | 8 10 43 9 61 138 10
19 | 9 55 60 16 53 150 10
20 | 10 30 60 16 101 156 10
21 | 11 20 65 12 33 152 10
22 | 12 50 35 19 38 97 10
23 | 13 30 25 23 70 208 10
24 | 14 15 10 20 32 137 10
25 | 15 30 5 8 30 154 10
26 | 16 10 20 19 54 105 10
27 | 17 5 30 2 51 189 10
28 | 18 20 40 12 77 106 10
29 | 19 15 60 17 53 108 10
30 | 20 45 65 9 109 152 10
31 | 21 45 20 11 37 96 10
32 | 22 45 10 18 59 144 10
33 | 23 55 5 29 36 155 10
34 | 24 65 35 3 118 190 10
35 | 25 65 20 6 47 186 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R112.txt:
--------------------------------------------------------------------------------
1 | R112
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 230 0
11 | 1 41 49 10 73 204 10
12 | 2 35 17 7 18 147 10
13 | 3 55 45 13 76 165 10
14 | 4 55 20 19 73 195 10
15 | 5 15 30 26 20 167 10
16 | 6 25 30 3 49 158 10
17 | 7 20 50 5 36 135 10
18 | 8 10 43 9 50 149 10
19 | 9 55 60 16 47 156 10
20 | 10 30 60 16 85 172 10
21 | 11 20 65 12 33 152 10
22 | 12 50 35 19 15 133 10
23 | 13 30 25 23 79 208 10
24 | 14 15 10 20 32 187 10
25 | 15 30 5 8 30 152 10
26 | 16 10 20 19 29 139 10
27 | 17 5 30 2 60 189 10
28 | 18 20 40 12 47 136 10
29 | 19 15 60 17 32 146 10
30 | 20 45 65 9 79 182 10
31 | 21 45 20 11 18 136 10
32 | 22 45 10 18 50 153 10
33 | 23 55 5 29 36 155 10
34 | 24 65 35 3 58 190 10
35 | 25 65 20 6 56 186 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/C202.txt:
--------------------------------------------------------------------------------
1 | C202
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 700
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 3390 0
11 | 1 52 75 10 0 3272 90
12 | 2 45 70 30 0 3279 90
13 | 3 62 69 10 0 3270 90
14 | 4 60 66 10 1261 1421 90
15 | 5 42 65 10 0 3284 90
16 | 6 16 42 20 497 657 90
17 | 7 58 70 20 0 3273 90
18 | 8 34 60 20 2887 3047 90
19 | 9 28 70 10 2601 2761 90
20 | 10 35 66 10 2791 2951 90
21 | 11 35 69 10 2698 2858 90
22 | 12 25 85 20 0 3261 90
23 | 13 22 75 30 2405 2565 90
24 | 14 22 85 10 2026 2186 90
25 | 15 20 80 40 2216 2376 90
26 | 16 20 85 40 1934 2094 90
27 | 17 18 75 20 2311 2471 90
28 | 18 15 75 20 1742 1902 90
29 | 19 15 80 10 1837 1997 90
30 | 20 30 50 10 10 170 90
31 | 21 30 56 20 0 3288 90
32 | 22 28 52 20 22 182 90
33 | 23 14 66 10 1643 1803 90
34 | 24 25 50 10 116 276 90
35 | 25 22 66 40 2504 2664 90
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/C204.txt:
--------------------------------------------------------------------------------
1 | C204
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 700
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 3390 0
11 | 1 52 75 10 0 3272 90
12 | 2 45 70 30 0 3279 90
13 | 3 62 69 10 0 3270 90
14 | 4 60 66 10 1261 1421 90
15 | 5 42 65 10 0 3284 90
16 | 6 16 42 20 0 3274 90
17 | 7 58 70 20 0 3273 90
18 | 8 34 60 20 2887 3047 90
19 | 9 28 70 10 2601 2761 90
20 | 10 35 66 10 0 3283 90
21 | 11 35 69 10 2698 2858 90
22 | 12 25 85 20 0 3261 90
23 | 13 22 75 30 2405 2565 90
24 | 14 22 85 10 0 3260 90
25 | 15 20 80 40 2216 2376 90
26 | 16 20 85 40 0 3259 90
27 | 17 18 75 20 0 3266 90
28 | 18 15 75 20 0 3264 90
29 | 19 15 80 10 0 3260 90
30 | 20 30 50 10 0 3290 90
31 | 21 30 56 20 0 3288 90
32 | 22 28 52 20 0 3287 90
33 | 23 14 66 10 1643 1803 90
34 | 24 25 50 10 0 3285 90
35 | 25 22 66 40 2504 2664 90
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/C205.txt:
--------------------------------------------------------------------------------
1 | C205
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 700
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 3390 0
11 | 1 52 75 10 231 551 90
12 | 2 45 70 30 133 453 90
13 | 3 62 69 10 1087 1407 90
14 | 4 60 66 10 1181 1501 90
15 | 5 42 65 10 15 335 90
16 | 6 16 42 20 417 737 90
17 | 7 58 70 20 993 1313 90
18 | 8 34 60 20 2807 3127 90
19 | 9 28 70 10 2521 2841 90
20 | 10 35 66 10 2711 3031 90
21 | 11 35 69 10 2618 2938 90
22 | 12 25 85 20 2039 2359 90
23 | 13 22 75 30 2325 2645 90
24 | 14 22 85 10 1946 2266 90
25 | 15 20 80 40 2136 2456 90
26 | 16 20 85 40 1854 2174 90
27 | 17 18 75 20 2231 2551 90
28 | 18 15 75 20 1662 1982 90
29 | 19 15 80 10 1757 2077 90
30 | 20 30 50 10 10 330 90
31 | 21 30 56 20 2903 3223 90
32 | 22 28 52 20 12 332 90
33 | 23 14 66 10 1563 1883 90
34 | 24 25 50 10 36 356 90
35 | 25 22 66 40 2424 2744 90
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/C206.txt:
--------------------------------------------------------------------------------
1 | C206
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 700
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 3390 0
11 | 1 52 75 10 213 568 90
12 | 2 45 70 30 22 563 90
13 | 3 62 69 10 1030 1463 90
14 | 4 60 66 10 1154 1527 90
15 | 5 42 65 10 15 402 90
16 | 6 16 42 20 331 822 90
17 | 7 58 70 20 965 1340 90
18 | 8 34 60 20 2653 3280 90
19 | 9 28 70 10 2385 2976 90
20 | 10 35 66 10 2628 3113 90
21 | 11 35 69 10 2603 2952 90
22 | 12 25 85 20 1985 2412 90
23 | 13 22 75 30 2310 2659 90
24 | 14 22 85 10 1846 2365 90
25 | 15 20 80 40 2077 2514 90
26 | 16 20 85 40 1763 2264 90
27 | 17 18 75 20 2143 2638 90
28 | 18 15 75 20 1560 2083 90
29 | 19 15 80 10 1689 2144 90
30 | 20 30 50 10 10 645 90
31 | 21 30 56 20 2675 3288 90
32 | 22 28 52 20 12 505 90
33 | 23 14 66 10 1519 1926 90
34 | 24 25 50 10 23 368 90
35 | 25 22 66 40 2380 2787 90
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/C207.txt:
--------------------------------------------------------------------------------
1 | C207
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 700
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 3390 0
11 | 1 52 75 10 302 479 90
12 | 2 45 70 30 157 428 90
13 | 3 62 69 10 1138 1355 90
14 | 4 60 66 10 1247 1434 90
15 | 5 42 65 10 15 208 90
16 | 6 16 42 20 209 944 90
17 | 7 58 70 20 1059 1246 90
18 | 8 34 60 20 2035 3288 90
19 | 9 28 70 10 2090 3271 90
20 | 10 35 66 10 2311 3283 90
21 | 11 35 69 10 2428 3127 90
22 | 12 25 85 20 1772 2625 90
23 | 13 22 75 30 2135 2834 90
24 | 14 22 85 10 1586 2625 90
25 | 15 20 80 40 1858 2733 90
26 | 16 20 85 40 1512 2515 90
27 | 17 18 75 20 1895 2886 90
28 | 18 15 75 20 1299 2344 90
29 | 19 15 80 10 1461 2372 90
30 | 20 30 50 10 10 963 90
31 | 21 30 56 20 2062 3288 90
32 | 22 28 52 20 12 752 90
33 | 23 14 66 10 1316 2129 90
34 | 24 25 50 10 15 532 90
35 | 25 22 66 40 2177 2990 90
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/C208.txt:
--------------------------------------------------------------------------------
1 | C208
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 700
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 3390 0
11 | 1 52 75 10 71 711 90
12 | 2 45 70 30 20 660 90
13 | 3 62 69 10 927 1567 90
14 | 4 60 66 10 1021 1661 90
15 | 5 42 65 10 15 655 90
16 | 6 16 42 20 257 897 90
17 | 7 58 70 20 833 1473 90
18 | 8 34 60 20 2647 3287 90
19 | 9 28 70 10 2361 3001 90
20 | 10 35 66 10 2551 3191 90
21 | 11 35 69 10 2458 3098 90
22 | 12 25 85 20 1879 2519 90
23 | 13 22 75 30 2165 2805 90
24 | 14 22 85 10 1786 2426 90
25 | 15 20 80 40 1976 2616 90
26 | 16 20 85 40 1694 2334 90
27 | 17 18 75 20 2071 2711 90
28 | 18 15 75 20 1502 2142 90
29 | 19 15 80 10 1597 2237 90
30 | 20 30 50 10 10 650 90
31 | 21 30 56 20 2648 3288 90
32 | 22 28 52 20 12 652 90
33 | 23 14 66 10 1403 2043 90
34 | 24 25 50 10 15 655 90
35 | 25 22 66 40 2264 2904 90
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R104.txt:
--------------------------------------------------------------------------------
1 | R104
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 230 0
11 | 1 41 49 10 0 204 10
12 | 2 35 17 7 0 202 10
13 | 3 55 45 13 0 197 10
14 | 4 55 20 19 149 159 10
15 | 5 15 30 26 0 199 10
16 | 6 25 30 3 0 208 10
17 | 7 20 50 5 0 198 10
18 | 8 10 43 9 95 105 10
19 | 9 55 60 16 97 107 10
20 | 10 30 60 16 0 194 10
21 | 11 20 65 12 67 77 10
22 | 12 50 35 19 0 205 10
23 | 13 30 25 23 159 169 10
24 | 14 15 10 20 0 187 10
25 | 15 30 5 8 61 71 10
26 | 16 10 20 19 0 190 10
27 | 17 5 30 2 0 189 10
28 | 18 20 40 12 0 204 10
29 | 19 15 60 17 0 187 10
30 | 20 45 65 9 0 188 10
31 | 21 45 20 11 0 201 10
32 | 22 45 10 18 0 193 10
33 | 23 55 5 29 68 78 10
34 | 24 65 35 3 0 190 10
35 | 25 65 20 6 172 182 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R109.txt:
--------------------------------------------------------------------------------
1 | R109
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 230 0
11 | 1 41 49 10 133 198 10
12 | 2 35 17 7 22 87 10
13 | 3 55 45 13 98 143 10
14 | 4 55 20 19 123 184 10
15 | 5 15 30 26 20 93 10
16 | 6 25 30 3 76 131 10
17 | 7 20 50 5 61 110 10
18 | 8 10 43 9 75 124 10
19 | 9 55 60 16 74 129 10
20 | 10 30 60 16 107 150 10
21 | 11 20 65 12 42 101 10
22 | 12 50 35 19 38 97 10
23 | 13 30 25 23 131 196 10
24 | 14 15 10 20 32 114 10
25 | 15 30 5 8 35 96 10
26 | 16 10 20 19 52 107 10
27 | 17 5 30 2 124 189 10
28 | 18 20 40 12 69 114 10
29 | 19 15 60 17 52 109 10
30 | 20 45 65 9 105 156 10
31 | 21 45 20 11 37 96 10
32 | 22 45 10 18 76 127 10
33 | 23 55 5 29 43 102 10
34 | 24 65 35 3 124 190 10
35 | 25 65 20 6 121 186 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R111.txt:
--------------------------------------------------------------------------------
1 | R111
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 230 0
11 | 1 41 49 10 15 204 10
12 | 2 35 17 7 18 202 10
13 | 3 55 45 13 54 187 10
14 | 4 55 20 19 138 169 10
15 | 5 15 30 26 20 199 10
16 | 6 25 30 3 76 131 10
17 | 7 20 50 5 21 170 10
18 | 8 10 43 9 87 112 10
19 | 9 55 60 16 88 115 10
20 | 10 30 60 16 107 150 10
21 | 11 20 65 12 57 86 10
22 | 12 50 35 19 15 192 10
23 | 13 30 25 23 147 180 10
24 | 14 15 10 20 32 187 10
25 | 15 30 5 8 50 81 10
26 | 16 10 20 19 29 139 10
27 | 17 5 30 2 124 189 10
28 | 18 20 40 12 47 136 10
29 | 19 15 60 17 32 146 10
30 | 20 45 65 9 79 182 10
31 | 21 45 20 11 18 195 10
32 | 22 45 10 18 76 127 10
33 | 23 55 5 29 58 87 10
34 | 24 65 35 3 58 190 10
35 | 25 65 20 6 153 186 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R202.txt:
--------------------------------------------------------------------------------
1 | R202
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 1000
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 1000 0
11 | 1 41 49 10 0 974 10
12 | 2 35 17 7 0 972 10
13 | 3 55 45 13 0 967 10
14 | 4 55 20 19 678 801 10
15 | 5 15 30 26 0 969 10
16 | 6 25 30 3 415 514 10
17 | 7 20 50 5 0 968 10
18 | 8 10 43 9 404 481 10
19 | 9 55 60 16 400 497 10
20 | 10 30 60 16 577 632 10
21 | 11 20 65 12 206 325 10
22 | 12 50 35 19 0 975 10
23 | 13 30 25 23 690 827 10
24 | 14 15 10 20 32 243 10
25 | 15 30 5 8 175 300 10
26 | 16 10 20 19 272 373 10
27 | 17 5 30 2 733 870 10
28 | 18 20 40 12 377 434 10
29 | 19 15 60 17 269 378 10
30 | 20 45 65 9 581 666 10
31 | 21 45 20 11 0 971 10
32 | 22 45 10 18 409 494 10
33 | 23 55 5 29 206 325 10
34 | 24 65 35 3 704 847 10
35 | 25 65 20 6 817 956 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R203.txt:
--------------------------------------------------------------------------------
1 | R203
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 1000
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 1000 0
11 | 1 41 49 10 0 974 10
12 | 2 35 17 7 0 972 10
13 | 3 55 45 13 0 967 10
14 | 4 55 20 19 678 801 10
15 | 5 15 30 26 0 969 10
16 | 6 25 30 3 415 514 10
17 | 7 20 50 5 0 968 10
18 | 8 10 43 9 404 481 10
19 | 9 55 60 16 400 497 10
20 | 10 30 60 16 577 632 10
21 | 11 20 65 12 206 325 10
22 | 12 50 35 19 0 975 10
23 | 13 30 25 23 690 827 10
24 | 14 15 10 20 0 957 10
25 | 15 30 5 8 175 300 10
26 | 16 10 20 19 0 960 10
27 | 17 5 30 2 733 870 10
28 | 18 20 40 12 0 974 10
29 | 19 15 60 17 0 957 10
30 | 20 45 65 9 0 958 10
31 | 21 45 20 11 0 971 10
32 | 22 45 10 18 409 494 10
33 | 23 55 5 29 206 325 10
34 | 24 65 35 3 0 960 10
35 | 25 65 20 6 817 956 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R204.txt:
--------------------------------------------------------------------------------
1 | R204
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 1000
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 1000 0
11 | 1 41 49 10 0 974 10
12 | 2 35 17 7 0 972 10
13 | 3 55 45 13 0 967 10
14 | 4 55 20 19 678 801 10
15 | 5 15 30 26 0 969 10
16 | 6 25 30 3 0 978 10
17 | 7 20 50 5 0 968 10
18 | 8 10 43 9 404 481 10
19 | 9 55 60 16 400 497 10
20 | 10 30 60 16 0 964 10
21 | 11 20 65 12 206 325 10
22 | 12 50 35 19 0 975 10
23 | 13 30 25 23 690 827 10
24 | 14 15 10 20 0 957 10
25 | 15 30 5 8 175 300 10
26 | 16 10 20 19 0 960 10
27 | 17 5 30 2 0 959 10
28 | 18 20 40 12 0 974 10
29 | 19 15 60 17 0 957 10
30 | 20 45 65 9 0 958 10
31 | 21 45 20 11 0 971 10
32 | 22 45 10 18 0 963 10
33 | 23 55 5 29 206 325 10
34 | 24 65 35 3 0 960 10
35 | 25 65 20 6 817 956 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R205.txt:
--------------------------------------------------------------------------------
1 | R205
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 1000
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 1000 0
11 | 1 41 49 10 658 898 10
12 | 2 35 17 7 93 333 10
13 | 3 55 45 13 436 676 10
14 | 4 55 20 19 620 860 10
15 | 5 15 30 26 20 260 10
16 | 6 25 30 3 345 585 10
17 | 7 20 50 5 251 491 10
18 | 8 10 43 9 323 563 10
19 | 9 55 60 16 329 569 10
20 | 10 30 60 16 485 725 10
21 | 11 20 65 12 146 386 10
22 | 12 50 35 19 167 407 10
23 | 13 30 25 23 639 879 10
24 | 14 15 10 20 32 272 10
25 | 15 30 5 8 118 358 10
26 | 16 10 20 19 203 443 10
27 | 17 5 30 2 682 922 10
28 | 18 20 40 12 286 526 10
29 | 19 15 60 17 204 444 10
30 | 20 45 65 9 504 744 10
31 | 21 45 20 11 153 393 10
32 | 22 45 10 18 332 572 10
33 | 23 55 5 29 146 386 10
34 | 24 65 35 3 656 896 10
35 | 25 65 20 6 716 956 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R207.txt:
--------------------------------------------------------------------------------
1 | R207
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 1000
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 1000 0
11 | 1 41 49 10 0 974 10
12 | 2 35 17 7 0 972 10
13 | 3 55 45 13 0 967 10
14 | 4 55 20 19 620 860 10
15 | 5 15 30 26 0 969 10
16 | 6 25 30 3 345 585 10
17 | 7 20 50 5 0 968 10
18 | 8 10 43 9 323 563 10
19 | 9 55 60 16 329 569 10
20 | 10 30 60 16 485 725 10
21 | 11 20 65 12 146 386 10
22 | 12 50 35 19 0 975 10
23 | 13 30 25 23 639 879 10
24 | 14 15 10 20 0 957 10
25 | 15 30 5 8 118 358 10
26 | 16 10 20 19 0 960 10
27 | 17 5 30 2 682 922 10
28 | 18 20 40 12 0 974 10
29 | 19 15 60 17 0 957 10
30 | 20 45 65 9 0 958 10
31 | 21 45 20 11 0 971 10
32 | 22 45 10 18 332 572 10
33 | 23 55 5 29 146 386 10
34 | 24 65 35 3 0 960 10
35 | 25 65 20 6 716 956 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R208.txt:
--------------------------------------------------------------------------------
1 | R208
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 1000
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 1000 0
11 | 1 41 49 10 0 974 10
12 | 2 35 17 7 0 972 10
13 | 3 55 45 13 0 967 10
14 | 4 55 20 19 620 860 10
15 | 5 15 30 26 0 969 10
16 | 6 25 30 3 0 978 10
17 | 7 20 50 5 0 968 10
18 | 8 10 43 9 323 563 10
19 | 9 55 60 16 329 569 10
20 | 10 30 60 16 0 964 10
21 | 11 20 65 12 146 386 10
22 | 12 50 35 19 0 975 10
23 | 13 30 25 23 639 879 10
24 | 14 15 10 20 0 957 10
25 | 15 30 5 8 118 358 10
26 | 16 10 20 19 0 960 10
27 | 17 5 30 2 0 959 10
28 | 18 20 40 12 0 974 10
29 | 19 15 60 17 0 957 10
30 | 20 45 65 9 0 958 10
31 | 21 45 20 11 0 971 10
32 | 22 45 10 18 0 963 10
33 | 23 55 5 29 146 386 10
34 | 24 65 35 3 0 960 10
35 | 25 65 20 6 716 956 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R209.txt:
--------------------------------------------------------------------------------
1 | R209
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 1000
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 1000 0
11 | 1 41 49 10 636 919 10
12 | 2 35 17 7 74 351 10
13 | 3 55 45 13 498 613 10
14 | 4 55 20 19 470 965 10
15 | 5 15 30 26 20 370 10
16 | 6 25 30 3 266 663 10
17 | 7 20 50 5 292 449 10
18 | 8 10 43 9 288 597 10
19 | 9 55 60 16 254 643 10
20 | 10 30 60 16 496 713 10
21 | 11 20 65 12 33 510 10
22 | 12 50 35 19 170 403 10
23 | 13 30 25 23 426 978 10
24 | 14 15 10 20 32 454 10
25 | 15 30 5 8 30 529 10
26 | 16 10 20 19 222 423 10
27 | 17 5 30 2 409 959 10
28 | 18 20 40 12 349 462 10
29 | 19 15 60 17 215 432 10
30 | 20 45 65 9 538 709 10
31 | 21 45 20 11 156 389 10
32 | 22 45 10 18 280 623 10
33 | 23 55 5 29 36 513 10
34 | 24 65 35 3 633 918 10
35 | 25 65 20 6 400 956 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R210.txt:
--------------------------------------------------------------------------------
1 | R210
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 1000
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 1000 0
11 | 1 41 49 10 190 974 10
12 | 2 35 17 7 18 792 10
13 | 3 55 45 13 289 822 10
14 | 4 55 20 19 679 800 10
15 | 5 15 30 26 20 906 10
16 | 6 25 30 3 355 574 10
17 | 7 20 50 5 72 669 10
18 | 8 10 43 9 393 492 10
19 | 9 55 60 16 394 503 10
20 | 10 30 60 16 517 692 10
21 | 11 20 65 12 206 325 10
22 | 12 50 35 19 15 725 10
23 | 13 30 25 23 694 823 10
24 | 14 15 10 20 32 694 10
25 | 15 30 5 8 176 299 10
26 | 16 10 20 19 102 543 10
27 | 17 5 30 2 673 930 10
28 | 18 20 40 12 229 582 10
29 | 19 15 60 17 95 552 10
30 | 20 45 65 9 418 829 10
31 | 21 45 20 11 18 727 10
32 | 22 45 10 18 349 554 10
33 | 23 55 5 29 206 325 10
34 | 24 65 35 3 435 960 10
35 | 25 65 20 6 826 956 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R211.txt:
--------------------------------------------------------------------------------
1 | R211
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 1000
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 1000 0
11 | 1 41 49 10 451 974 10
12 | 2 35 17 7 18 534 10
13 | 3 55 45 13 378 733 10
14 | 4 55 20 19 477 965 10
15 | 5 15 30 26 20 610 10
16 | 6 25 30 3 245 684 10
17 | 7 20 50 5 172 569 10
18 | 8 10 43 9 245 640 10
19 | 9 55 60 16 231 666 10
20 | 10 30 60 16 430 779 10
21 | 11 20 65 12 33 511 10
22 | 12 50 35 19 50 523 10
23 | 13 30 25 23 462 978 10
24 | 14 15 10 20 32 694 10
25 | 15 30 5 8 30 519 10
26 | 16 10 20 19 102 543 10
27 | 17 5 30 2 444 959 10
28 | 18 20 40 12 229 582 10
29 | 19 15 60 17 95 552 10
30 | 20 45 65 9 418 829 10
31 | 21 45 20 11 36 509 10
32 | 22 45 10 18 246 657 10
33 | 23 55 5 29 36 514 10
34 | 24 65 35 3 435 960 10
35 | 25 65 20 6 438 956 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/RC101.txt:
--------------------------------------------------------------------------------
1 | RC101
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 240 0
11 | 1 25 85 20 145 175 10
12 | 2 22 75 30 50 80 10
13 | 3 22 85 10 109 139 10
14 | 4 20 80 40 141 171 10
15 | 5 20 85 20 41 71 10
16 | 6 18 75 20 95 125 10
17 | 7 15 75 20 79 109 10
18 | 8 15 80 10 91 121 10
19 | 9 10 35 20 91 121 10
20 | 10 10 40 30 119 149 10
21 | 11 8 40 40 59 89 10
22 | 12 8 45 20 64 94 10
23 | 13 5 35 10 142 172 10
24 | 14 5 45 10 35 65 10
25 | 15 2 40 20 58 88 10
26 | 16 0 40 20 72 102 10
27 | 17 0 45 20 149 179 10
28 | 18 44 5 20 87 117 10
29 | 19 42 10 40 72 102 10
30 | 20 42 15 10 122 152 10
31 | 21 40 5 10 67 97 10
32 | 22 40 15 40 92 122 10
33 | 23 38 5 30 65 95 10
34 | 24 38 15 10 148 178 10
35 | 25 35 5 20 154 184 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/RC102.txt:
--------------------------------------------------------------------------------
1 | RC102
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 240 0
11 | 1 25 85 20 0 191 10
12 | 2 22 75 30 0 199 10
13 | 3 22 85 10 0 190 10
14 | 4 20 80 40 141 171 10
15 | 5 20 85 20 0 189 10
16 | 6 18 75 20 95 125 10
17 | 7 15 75 20 0 194 10
18 | 8 15 80 10 91 121 10
19 | 9 10 35 20 91 121 10
20 | 10 10 40 30 119 149 10
21 | 11 8 40 40 59 89 10
22 | 12 8 45 20 0 197 10
23 | 13 5 35 10 142 172 10
24 | 14 5 45 10 35 65 10
25 | 15 2 40 20 58 88 10
26 | 16 0 40 20 72 102 10
27 | 17 0 45 20 149 179 10
28 | 18 44 5 20 87 117 10
29 | 19 42 10 40 72 102 10
30 | 20 42 15 10 122 152 10
31 | 21 40 5 10 0 185 10
32 | 22 40 15 40 92 122 10
33 | 23 38 5 30 65 95 10
34 | 24 38 15 10 148 178 10
35 | 25 35 5 20 154 184 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/RC103.txt:
--------------------------------------------------------------------------------
1 | RC103
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 240 0
11 | 1 25 85 20 0 191 10
12 | 2 22 75 30 0 199 10
13 | 3 22 85 10 0 190 10
14 | 4 20 80 40 141 171 10
15 | 5 20 85 20 0 189 10
16 | 6 18 75 20 95 125 10
17 | 7 15 75 20 0 194 10
18 | 8 15 80 10 91 121 10
19 | 9 10 35 20 91 121 10
20 | 10 10 40 30 119 149 10
21 | 11 8 40 40 59 89 10
22 | 12 8 45 20 0 197 10
23 | 13 5 35 10 142 172 10
24 | 14 5 45 10 0 194 10
25 | 15 2 40 20 58 88 10
26 | 16 0 40 20 0 188 10
27 | 17 0 45 20 149 179 10
28 | 18 44 5 20 0 184 10
29 | 19 42 10 40 0 189 10
30 | 20 42 15 10 0 194 10
31 | 21 40 5 10 0 185 10
32 | 22 40 15 40 92 122 10
33 | 23 38 5 30 65 95 10
34 | 24 38 15 10 0 194 10
35 | 25 35 5 20 154 184 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/RC104.txt:
--------------------------------------------------------------------------------
1 | RC104
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 240 0
11 | 1 25 85 20 0 191 10
12 | 2 22 75 30 0 199 10
13 | 3 22 85 10 0 190 10
14 | 4 20 80 40 141 171 10
15 | 5 20 85 20 0 189 10
16 | 6 18 75 20 0 196 10
17 | 7 15 75 20 0 194 10
18 | 8 15 80 10 91 121 10
19 | 9 10 35 20 91 121 10
20 | 10 10 40 30 0 198 10
21 | 11 8 40 40 59 89 10
22 | 12 8 45 20 0 197 10
23 | 13 5 35 10 142 172 10
24 | 14 5 45 10 0 194 10
25 | 15 2 40 20 58 88 10
26 | 16 0 40 20 0 188 10
27 | 17 0 45 20 0 189 10
28 | 18 44 5 20 0 184 10
29 | 19 42 10 40 0 189 10
30 | 20 42 15 10 0 194 10
31 | 21 40 5 10 0 185 10
32 | 22 40 15 40 0 195 10
33 | 23 38 5 30 65 95 10
34 | 24 38 15 10 0 194 10
35 | 25 35 5 20 154 184 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/RC105.txt:
--------------------------------------------------------------------------------
1 | RC105
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 240 0
11 | 1 25 85 20 71 191 10
12 | 2 22 75 30 30 150 10
13 | 3 22 85 10 64 184 10
14 | 4 20 80 40 151 161 10
15 | 5 20 85 20 40 160 10
16 | 6 18 75 20 96 123 10
17 | 7 15 75 20 35 155 10
18 | 8 15 80 10 101 111 10
19 | 9 10 35 20 101 111 10
20 | 10 10 40 30 123 144 10
21 | 11 8 40 40 69 79 10
22 | 12 8 45 20 32 152 10
23 | 13 5 35 10 152 162 10
24 | 14 5 45 10 35 117 10
25 | 15 2 40 20 68 78 10
26 | 16 0 40 20 59 114 10
27 | 17 0 45 20 147 180 10
28 | 18 44 5 20 79 124 10
29 | 19 42 10 40 58 115 10
30 | 20 42 15 10 111 162 10
31 | 21 40 5 10 45 165 10
32 | 22 40 15 40 94 119 10
33 | 23 38 5 30 75 85 10
34 | 24 38 15 10 128 194 10
35 | 25 35 5 20 171 181 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/RC106.txt:
--------------------------------------------------------------------------------
1 | RC106
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 240 0
11 | 1 25 85 20 130 190 10
12 | 2 22 75 30 35 95 10
13 | 3 22 85 10 94 154 10
14 | 4 20 80 40 126 186 10
15 | 5 20 85 20 40 100 10
16 | 6 18 75 20 80 140 10
17 | 7 15 75 20 64 124 10
18 | 8 15 80 10 76 136 10
19 | 9 10 35 20 76 136 10
20 | 10 10 40 30 104 164 10
21 | 11 8 40 40 44 104 10
22 | 12 8 45 20 49 109 10
23 | 13 5 35 10 127 187 10
24 | 14 5 45 10 35 95 10
25 | 15 2 40 20 43 103 10
26 | 16 0 40 20 57 117 10
27 | 17 0 45 20 129 189 10
28 | 18 44 5 20 72 132 10
29 | 19 42 10 40 57 117 10
30 | 20 42 15 10 107 167 10
31 | 21 40 5 10 52 112 10
32 | 22 40 15 40 77 137 10
33 | 23 38 5 30 50 110 10
34 | 24 38 15 10 133 193 10
35 | 25 35 5 20 124 184 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/RC107.txt:
--------------------------------------------------------------------------------
1 | RC107
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 240 0
11 | 1 25 85 20 125 191 10
12 | 2 22 75 30 32 97 10
13 | 3 22 85 10 101 146 10
14 | 4 20 80 40 71 193 10
15 | 5 20 85 20 40 113 10
16 | 6 18 75 20 55 164 10
17 | 7 15 75 20 69 118 10
18 | 8 15 80 10 56 155 10
19 | 9 10 35 20 51 160 10
20 | 10 10 40 30 90 177 10
21 | 11 8 40 40 33 152 10
22 | 12 8 45 20 49 108 10
23 | 13 5 35 10 62 191 10
24 | 14 5 45 10 35 117 10
25 | 15 2 40 20 39 161 10
26 | 16 0 40 20 59 114 10
27 | 17 0 45 20 60 189 10
28 | 18 44 5 20 79 124 10
29 | 19 42 10 40 58 115 10
30 | 20 42 15 10 111 162 10
31 | 21 40 5 10 52 111 10
32 | 22 40 15 40 55 158 10
33 | 23 38 5 30 45 164 10
34 | 24 38 15 10 128 194 10
35 | 25 35 5 20 54 184 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/RC108.txt:
--------------------------------------------------------------------------------
1 | RC108
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 240 0
11 | 1 25 85 20 49 191 10
12 | 2 22 75 30 30 168 10
13 | 3 22 85 10 95 152 10
14 | 4 20 80 40 69 193 10
15 | 5 20 85 20 40 189 10
16 | 6 18 75 20 60 159 10
17 | 7 15 75 20 54 133 10
18 | 8 15 80 10 67 144 10
19 | 9 10 35 20 57 154 10
20 | 10 10 40 30 106 161 10
21 | 11 8 40 40 33 152 10
22 | 12 8 45 20 32 148 10
23 | 13 5 35 10 53 191 10
24 | 14 5 45 10 35 194 10
25 | 15 2 40 20 39 163 10
26 | 16 0 40 20 41 141 10
27 | 17 0 45 20 51 189 10
28 | 18 44 5 20 73 130 10
29 | 19 42 10 40 40 148 10
30 | 20 42 15 10 94 179 10
31 | 21 40 5 10 45 161 10
32 | 22 40 15 40 64 149 10
33 | 23 38 5 30 45 164 10
34 | 24 38 15 10 51 194 10
35 | 25 35 5 20 45 183 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/RC201.txt:
--------------------------------------------------------------------------------
1 | RC201
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 1000
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 960 0
11 | 1 25 85 20 673 793 10
12 | 2 22 75 30 152 272 10
13 | 3 22 85 10 471 591 10
14 | 4 20 80 40 644 764 10
15 | 5 20 85 20 73 193 10
16 | 6 18 75 20 388 508 10
17 | 7 15 75 20 300 420 10
18 | 8 15 80 10 367 487 10
19 | 9 10 35 20 371 491 10
20 | 10 10 40 30 519 639 10
21 | 11 8 40 40 195 315 10
22 | 12 8 45 20 223 343 10
23 | 13 5 35 10 653 773 10
24 | 14 5 45 10 35 155 10
25 | 15 2 40 20 174 294 10
26 | 16 0 40 20 255 375 10
27 | 17 0 45 20 703 823 10
28 | 18 44 5 20 335 455 10
29 | 19 42 10 40 254 374 10
30 | 20 42 15 10 537 657 10
31 | 21 40 5 10 215 335 10
32 | 22 40 15 40 375 495 10
33 | 23 38 5 30 201 321 10
34 | 24 38 15 10 681 801 10
35 | 25 35 5 20 784 904 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/RC202.txt:
--------------------------------------------------------------------------------
1 | RC202
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 1000
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 960 0
11 | 1 25 85 20 0 911 10
12 | 2 22 75 30 0 919 10
13 | 3 22 85 10 0 910 10
14 | 4 20 80 40 644 764 10
15 | 5 20 85 20 0 909 10
16 | 6 18 75 20 388 508 10
17 | 7 15 75 20 0 914 10
18 | 8 15 80 10 367 487 10
19 | 9 10 35 20 371 491 10
20 | 10 10 40 30 519 639 10
21 | 11 8 40 40 195 315 10
22 | 12 8 45 20 0 917 10
23 | 13 5 35 10 653 773 10
24 | 14 5 45 10 35 155 10
25 | 15 2 40 20 174 294 10
26 | 16 0 40 20 255 375 10
27 | 17 0 45 20 703 823 10
28 | 18 44 5 20 335 455 10
29 | 19 42 10 40 254 374 10
30 | 20 42 15 10 537 657 10
31 | 21 40 5 10 0 905 10
32 | 22 40 15 40 375 495 10
33 | 23 38 5 30 201 321 10
34 | 24 38 15 10 681 801 10
35 | 25 35 5 20 784 904 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/RC203.txt:
--------------------------------------------------------------------------------
1 | RC203
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 1000
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 960 0
11 | 1 25 85 20 0 911 10
12 | 2 22 75 30 0 919 10
13 | 3 22 85 10 0 910 10
14 | 4 20 80 40 644 764 10
15 | 5 20 85 20 0 909 10
16 | 6 18 75 20 388 508 10
17 | 7 15 75 20 0 914 10
18 | 8 15 80 10 367 487 10
19 | 9 10 35 20 371 491 10
20 | 10 10 40 30 519 639 10
21 | 11 8 40 40 195 315 10
22 | 12 8 45 20 0 917 10
23 | 13 5 35 10 653 773 10
24 | 14 5 45 10 0 914 10
25 | 15 2 40 20 174 294 10
26 | 16 0 40 20 0 908 10
27 | 17 0 45 20 703 823 10
28 | 18 44 5 20 0 904 10
29 | 19 42 10 40 0 909 10
30 | 20 42 15 10 0 914 10
31 | 21 40 5 10 0 905 10
32 | 22 40 15 40 375 495 10
33 | 23 38 5 30 201 321 10
34 | 24 38 15 10 0 914 10
35 | 25 35 5 20 784 904 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/RC204.txt:
--------------------------------------------------------------------------------
1 | RC204
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 1000
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 960 0
11 | 1 25 85 20 0 911 10
12 | 2 22 75 30 0 919 10
13 | 3 22 85 10 0 910 10
14 | 4 20 80 40 644 764 10
15 | 5 20 85 20 0 909 10
16 | 6 18 75 20 0 916 10
17 | 7 15 75 20 0 914 10
18 | 8 15 80 10 367 487 10
19 | 9 10 35 20 371 491 10
20 | 10 10 40 30 0 918 10
21 | 11 8 40 40 195 315 10
22 | 12 8 45 20 0 917 10
23 | 13 5 35 10 653 773 10
24 | 14 5 45 10 0 914 10
25 | 15 2 40 20 174 294 10
26 | 16 0 40 20 0 908 10
27 | 17 0 45 20 0 909 10
28 | 18 44 5 20 0 904 10
29 | 19 42 10 40 0 909 10
30 | 20 42 15 10 0 914 10
31 | 21 40 5 10 0 905 10
32 | 22 40 15 40 0 915 10
33 | 23 38 5 30 201 321 10
34 | 24 38 15 10 0 914 10
35 | 25 35 5 20 784 904 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/RC205.txt:
--------------------------------------------------------------------------------
1 | RC205
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 1000
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 960 0
11 | 1 25 85 20 431 911 10
12 | 2 22 75 30 30 510 10
13 | 3 22 85 10 291 771 10
14 | 4 20 80 40 674 734 10
15 | 5 20 85 20 40 520 10
16 | 6 18 75 20 393 502 10
17 | 7 15 75 20 120 600 10
18 | 8 15 80 10 397 457 10
19 | 9 10 35 20 401 461 10
20 | 10 10 40 30 535 622 10
21 | 11 8 40 40 225 285 10
22 | 12 8 45 20 43 523 10
23 | 13 5 35 10 683 743 10
24 | 14 5 45 10 35 366 10
25 | 15 2 40 20 204 264 10
26 | 16 0 40 20 204 425 10
27 | 17 0 45 20 698 827 10
28 | 18 44 5 20 306 483 10
29 | 19 42 10 40 199 428 10
30 | 20 42 15 10 494 699 10
31 | 21 40 5 10 45 525 10
32 | 22 40 15 40 383 486 10
33 | 23 38 5 30 231 291 10
34 | 24 38 15 10 609 872 10
35 | 25 35 5 20 821 881 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/RC206.txt:
--------------------------------------------------------------------------------
1 | RC206
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 1000
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 960 0
11 | 1 25 85 20 613 853 10
12 | 2 22 75 30 92 332 10
13 | 3 22 85 10 411 651 10
14 | 4 20 80 40 584 824 10
15 | 5 20 85 20 40 280 10
16 | 6 18 75 20 328 568 10
17 | 7 15 75 20 240 480 10
18 | 8 15 80 10 307 547 10
19 | 9 10 35 20 311 551 10
20 | 10 10 40 30 459 699 10
21 | 11 8 40 40 135 375 10
22 | 12 8 45 20 163 403 10
23 | 13 5 35 10 593 833 10
24 | 14 5 45 10 35 275 10
25 | 15 2 40 20 114 354 10
26 | 16 0 40 20 195 435 10
27 | 17 0 45 20 643 883 10
28 | 18 44 5 20 275 515 10
29 | 19 42 10 40 194 434 10
30 | 20 42 15 10 477 717 10
31 | 21 40 5 10 155 395 10
32 | 22 40 15 40 315 555 10
33 | 23 38 5 30 141 381 10
34 | 24 38 15 10 621 861 10
35 | 25 35 5 20 664 904 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/RC207.txt:
--------------------------------------------------------------------------------
1 | RC207
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 1000
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 960 0
11 | 1 25 85 20 591 874 10
12 | 2 22 75 30 73 350 10
13 | 3 22 85 10 473 588 10
14 | 4 20 80 40 418 913 10
15 | 5 20 85 20 40 390 10
16 | 6 18 75 20 249 646 10
17 | 7 15 75 20 281 438 10
18 | 8 15 80 10 272 581 10
19 | 9 10 35 20 236 625 10
20 | 10 10 40 30 470 687 10
21 | 11 8 40 40 33 510 10
22 | 12 8 45 20 166 399 10
23 | 13 5 35 10 359 911 10
24 | 14 5 45 10 35 457 10
25 | 15 2 40 20 39 538 10
26 | 16 0 40 20 214 415 10
27 | 17 0 45 20 359 909 10
28 | 18 44 5 20 338 451 10
29 | 19 42 10 40 205 422 10
30 | 20 42 15 10 511 682 10
31 | 21 40 5 10 158 391 10
32 | 22 40 15 40 263 606 10
33 | 23 38 5 30 45 522 10
34 | 24 38 15 10 598 883 10
35 | 25 35 5 20 348 904 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/RC208.txt:
--------------------------------------------------------------------------------
1 | RC208
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 1000
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 960 0
11 | 1 25 85 20 388 911 10
12 | 2 22 75 30 30 546 10
13 | 3 22 85 10 353 708 10
14 | 4 20 80 40 425 913 10
15 | 5 20 85 20 40 630 10
16 | 6 18 75 20 228 667 10
17 | 7 15 75 20 161 558 10
18 | 8 15 80 10 229 624 10
19 | 9 10 35 20 213 648 10
20 | 10 10 40 30 404 753 10
21 | 11 8 40 40 33 511 10
22 | 12 8 45 20 46 519 10
23 | 13 5 35 10 395 911 10
24 | 14 5 45 10 35 697 10
25 | 15 2 40 20 39 528 10
26 | 16 0 40 20 94 535 10
27 | 17 0 45 20 394 909 10
28 | 18 44 5 20 218 571 10
29 | 19 42 10 40 85 542 10
30 | 20 42 15 10 391 802 10
31 | 21 40 5 10 45 517 10
32 | 22 40 15 40 229 640 10
33 | 23 38 5 30 45 523 10
34 | 24 38 15 10 389 914 10
35 | 25 35 5 20 386 904 10
36 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R201.txt:
--------------------------------------------------------------------------------
1 | &R201
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 1000
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 1000 0
11 | 1 41 49 10 707 848 10
12 | 2 35 17 7 143 282 10
13 | 3 55 45 13 527 584 10
14 | 4 55 20 19 678 801 10
15 | 5 15 30 26 34 209 10
16 | 6 25 30 3 415 514 10
17 | 7 20 50 5 331 410 10
18 | 8 10 43 9 404 481 10
19 | 9 55 60 16 400 497 10
20 | 10 30 60 16 577 632 10
21 | 11 20 65 12 206 325 10
22 | 12 50 35 19 228 345 10
23 | 13 30 25 23 690 827 10
24 | 14 15 10 20 32 243 10
25 | 15 30 5 8 175 300 10
26 | 16 10 20 19 272 373 10
27 | 17 5 30 2 733 870 10
28 | 18 20 40 12 377 434 10
29 | 19 15 60 17 269 378 10
30 | 20 45 65 9 581 666 10
31 | 21 45 20 11 214 331 10
32 | 22 45 10 18 409 494 10
33 | 23 55 5 29 206 325 10
34 | 24 65 35 3 704 847 10
35 | 25 65 20 6 817 956 10
36 | 0.877
--------------------------------------------------------------------------------
/instances/solomon/solomon_25/R206.txt:
--------------------------------------------------------------------------------
1 | R206
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 1000
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 1000 0
11 | 1 41 49 10 0 974 10
12 | 2 35 17 7 0 972 10
13 | 3 55 45 13 0 967 10
14 | 4 55 20 19 620 860 10
15 | 5 15 30 26 0 969 10
16 | 6 25 30 3 345 585 10
17 | 7 20 50 5 0 968 10
18 | 8 10 43 9 323 563 10
19 | 9 55 60 16 329 569 10
20 | 10 30 60 16 485 725 10
21 | 11 20 65 12 146 386 10
22 | 12 50 35 19 0 975 10
23 | 13 30 25 23 639 879 10
24 | 14 15 10 20 32 272 10
25 | 15 30 5 8 118 358 10
26 | 16 10 20 19 203 443 10
27 | 17 5 30 2 682 922 10
28 | 18 20 40 12 286 526 10
29 | 19 15 60 17 204 444 10
30 | 20 45 65 9 504 744 10
31 | 21 45 20 11 0 971 10
32 | 22 45 10 18 332 572 10
33 | 23 55 5 29 146 386 10
34 | 24 65 35 3 656 896 10
35 | 25 65 20 6 716 956 10
36 |
37 |
--------------------------------------------------------------------------------
/src/algrithm/Solution.java:
--------------------------------------------------------------------------------
1 | package algrithm;
2 |
3 | import instance.Route;
4 |
5 | import java.util.ArrayList;
6 | import java.util.List;
7 |
8 | public class Solution {
9 | public double testTime;
10 | private List routes;
11 | /**
12 | * Tổng chi phí của giải pháp. Nó được tính bằng tổng chi phí của tất cả các tuyến đường.
13 | */
14 | private double totalCost;
15 |
16 | /**
17 | *Số lượng các phương tiện
18 | */
19 | private int vehicleNr;
20 |
21 | public Solution() {
22 | this.routes = new ArrayList<>();
23 | this.totalCost = 0;
24 | this.vehicleNr = 0;
25 | }
26 |
27 | public List getRoutes() {
28 | return routes;
29 | }
30 |
31 | public void setRoutes(List routes) {
32 | this.routes = routes;
33 | }
34 |
35 | public void addRoute(Route route) {
36 | this.routes.add(route);
37 | }
38 |
39 | public double getTotalCost() {
40 | return totalCost;
41 | }
42 |
43 | public void setTotalCost(double totalCost) {
44 | this.totalCost = totalCost;
45 | }
46 |
47 |
48 | public int getVehicleNr() {
49 | return vehicleNr;
50 | }
51 |
52 | public void setVehicleNr(int vehicleNr) {
53 | this.vehicleNr = vehicleNr;
54 | }
55 |
56 |
57 | /**
58 | * Tạo và trả về một bản sao chính xác của giải pháp hiện tại
59 | */
60 | public Solution clone() {
61 | Solution clone = new Solution();
62 |
63 | clone.totalCost = this.totalCost;
64 | clone.vehicleNr = this.vehicleNr;
65 |
66 | for (Route route: this.routes) {
67 | clone.routes.add(route.cloneRoute());
68 | }
69 |
70 | return clone;
71 | }
72 |
73 | @Override
74 | public String toString() {
75 | String result = "Solution{" +
76 | "totalCost=" + Math.round(totalCost * 100) / 100.0 +
77 | ", routes=[";
78 |
79 | for (Route vehicle: this.routes) {
80 | if (vehicle.getRoute().size() > 2)
81 | result += "\n\t" + vehicle;
82 | }
83 |
84 | return result + "]}";
85 | }
86 | }
--------------------------------------------------------------------------------
/src/algrithm/Cost.java:
--------------------------------------------------------------------------------
1 | package algrithm;
2 |
3 | public class Cost {
4 | public double total;
5 | public double cost;
6 | public double time;
7 | public double load;
8 |
9 | public double loadViolation;// Vi phạm tải trọng
10 | public double timeViolation; //Vi pham về thời gian
11 | // Khai bao cac chi phi kem theo (thoi gian, so luong, chi phi, yêu cầu của khách hàng)
12 | public Cost(){
13 | total = 0;
14 | cost = 0;
15 | load = 0;
16 | time = 0;
17 | loadViolation = 0;
18 | timeViolation = 0;
19 | }
20 |
21 | public Cost(Cost cost) {
22 | this.total = cost.total;
23 | this.cost = cost.cost;
24 | this.load = cost.load;
25 | this.time = cost.time;
26 |
27 | this.loadViolation = cost.loadViolation;
28 | this.timeViolation = cost.timeViolation;
29 | }
30 |
31 |
32 | @Override
33 | public String toString() {
34 | String result = "[ cost =" + cost +
35 | ", load =" + load +
36 | ", time =" + time +
37 | ", time windows violation =" + timeViolation +
38 | ", load violation =" + loadViolation;
39 |
40 | return result + " ]";
41 | }
42 |
43 | public void calculateTotalCost(double alpha, double beta) {
44 | total = cost + alpha * loadViolation + beta * timeViolation;
45 | }
46 |
47 | public void calculateTotalCost() {
48 | total = cost + loadViolation + timeViolation;
49 | }
50 |
51 | public void setLoadViol(double capacityviol) {
52 | this.loadViolation = capacityviol;
53 | }
54 |
55 | public void setCost(double cost) {
56 | this.cost = cost;
57 | }
58 |
59 | public double getTotal() {
60 | return total;
61 | }
62 |
63 | public double getLoadViolation() {
64 | return loadViolation;
65 | }
66 |
67 | public double getTimeViolation() {
68 | return timeViolation;
69 | }
70 |
71 | public double getLoad() {
72 | return load;
73 | }
74 |
75 | public void setLoad(double load) {
76 | this.load = load;
77 | }
78 |
79 | public double getCost() {
80 | return cost;
81 | }
82 |
83 | public void setTotal(double total) {
84 | this.total = total;
85 | }
86 |
87 | public void setTimeViolation(double timeViolation) {
88 | this.timeViolation = timeViolation;
89 | }
90 | }
91 |
--------------------------------------------------------------------------------
/src/instance/Node.java:
--------------------------------------------------------------------------------
1 | package instance;
2 |
3 | public class Node {
4 |
5 | private double timeWindows[]; // khung thoi gian khi di qua moi nut
6 | private double serviceTime; // thoi gian thuc hien moi yeu cau
7 | private double x; // Tọa độ x
8 | private double y; // Tọa độ y
9 | private int id; // Id cua nut
10 | private double demand; // yêu cầu của khách hàng
11 |
12 |
13 | // Khai bao gia tri nut trong khong gia hai chieu, khung thoi gian rang buoc o moi nut
14 | public Node(Node n) {
15 | this.x = n.x;
16 | this.y = n.y;
17 | this.id = n.id;
18 | this.demand = n.demand;
19 | this.serviceTime = n.serviceTime;
20 | this.timeWindows = new double[] { n.timeWindows[0], n.timeWindows[1] };
21 | }
22 |
23 | public Node() {
24 |
25 | }
26 |
27 | public double getServiceTime() {
28 | return this.serviceTime;
29 | }
30 |
31 | public void setServiceTime(double serviceTime) {
32 | this.serviceTime = serviceTime;
33 | }
34 |
35 | public double[] getTimeWindow() {
36 | return this.timeWindows;
37 | }
38 |
39 | public void setTimeWindow(double start, double end) {
40 | this.timeWindows = new double[] { start, end };
41 | }
42 |
43 | public double getX() {
44 | return x;
45 | }
46 |
47 | public void setX(double x) {
48 | this.x = x;
49 | }
50 |
51 | public double getY() {
52 | return y;
53 | }
54 |
55 | public void setY(double y) {
56 | this.y = y;
57 | }
58 |
59 | public int getId() {
60 | return id;
61 | }
62 |
63 | public void setId(int id) {
64 | this.id = id;
65 | }
66 |
67 | public double getDemand() {
68 | return demand;
69 | }
70 |
71 | public void setDemand(double demand) {
72 | this.demand = demand;
73 | }
74 |
75 | @Override
76 | public String toString() {
77 | return "Node{" +
78 | "x=" + x +
79 | ", y=" + y +
80 | ", id=" + id +
81 | ", demand=" + demand +
82 | '}';
83 | }
84 |
85 | @Override
86 | public boolean equals(Object o) {
87 | if (this == o) return true;
88 | if (o == null || getClass() != o.getClass()) return false;
89 |
90 | Node node = (Node) o;
91 |
92 | return id == node.id;
93 |
94 | }
95 | }
96 |
--------------------------------------------------------------------------------
/src/alns/destroy/WorstCostDestroy.java:
--------------------------------------------------------------------------------
1 | package alns.destroy;
2 |
3 | import algrithm.MyALNSSolution;
4 | import alns.operation.ALNSAbstractOperation;
5 | import instance.Instance;
6 | import instance.Node;
7 | import instance.Route;
8 |
9 | import java.util.ArrayList;
10 | import java.util.Collections;
11 |
12 | public class WorstCostDestroy extends ALNSAbstractOperation implements IALNSDestroy {
13 | @Override
14 | public MyALNSSolution destroy(MyALNSSolution s, int removeNr) throws Exception {
15 |
16 | if(s.removalCustomers.size() != 0) {
17 | System.err.println("removalCustomers is not empty.");
18 | return s;
19 | }
20 |
21 | // Tính toán giá cả để đưa ra đánh giá
22 | ArrayList customerFitness = new ArrayList();
23 | for(Route route : s.routes) {
24 | for (Node customer : route.getRoute()) {
25 | double fitness = Fitness.calculateFitness(s.instance, customer, route);
26 | customerFitness.add(new Fitness(customer.getId(), fitness));
27 | }
28 | }
29 | Collections.sort(customerFitness);
30 |
31 | ArrayList removal = new ArrayList();
32 | for(int i = 0; i < removeNr; ++i) removal.add(customerFitness.get(i).customerNo);
33 |
34 | for(int j = 0; j < s.routes.size(); j++) {
35 | for (int i = 0; i < s.routes.get(j).getRoute().size();++i) {
36 | Node customer = s.routes.get(j).getRoute().get(i);
37 | if(removal.contains(customer.getId())) {
38 | s.removeCustomer(j, i);
39 | }
40 | }
41 | }
42 |
43 | return s;
44 | }
45 | }
46 |
47 | class Fitness implements Comparable{
48 | public int customerNo;
49 | public double fitness;
50 |
51 | public Fitness() {}
52 |
53 | public Fitness(int cNo, double f) {
54 | customerNo = cNo;
55 | fitness = f;
56 | }
57 |
58 | public static double calculateFitness(Instance instance, Node customer, Route route) {
59 | double[][] distance = instance.getDistanceMatrix();
60 |
61 | double fitness =
62 | (route.getCost().getTimeViolation() + route.getCost().getLoadViolation() + customer.getDemand()) *
63 | ( distance[customer.getId()][route.getRoute().get(0).getId()] +
64 | distance[route.getRoute().get(0).getId()][customer.getId()] );
65 |
66 | return fitness;
67 | }
68 |
69 | @Override
70 | public int compareTo(Fitness o) {
71 | Fitness s = (Fitness) o;
72 | if (s.fitness > this.fitness ) {
73 | return 1;
74 | } else if (this.fitness == s.fitness) {
75 | return 0;
76 | } else {
77 | return -1;
78 | }
79 | }
80 |
81 | }
82 |
--------------------------------------------------------------------------------
/src/alns/repair/RandomRepair.java:
--------------------------------------------------------------------------------
1 | package alns.repair;
2 |
3 | import algrithm.Cost;
4 | import algrithm.MyALNSSolution;
5 | import instance.Node;
6 | import instance.Route;
7 |
8 | import java.util.*;
9 |
10 | public class RandomRepair extends ALNSAbstractRepair implements IALNSRepair {
11 |
12 | @Override
13 | public MyALNSSolution repair(MyALNSSolution s) {
14 | if(s.removalCustomers.size() == 0) {
15 | System.err.println("removalCustomers is empty!");
16 | return s;
17 | }
18 |
19 | Random r = s.instance.getRandom();
20 | int insertCusNr = s.removalCustomers.size();
21 |
22 | for (int i = 0; i < insertCusNr; i++) {
23 |
24 | Node insertNode = s.removalCustomers.remove(0);
25 |
26 | //Ngẫu nhiên con đường cần tìm
27 | int randomRouteNr = r.nextInt(s.routes.size() - 1) + 1;
28 |
29 | // Thiết lập sơ đồ chèn tối ưu
30 | int bestRoutePosition = -1;
31 | int bestCusomerPosition = -1;
32 | Cost bestCost = new Cost();
33 | bestCost.total = Double.MAX_VALUE;
34 |
35 | ArrayList routeList= new ArrayList();
36 | for(int j = 0; j < s.routes.size(); j++)
37 | routeList.add(j);
38 |
39 | Collections.shuffle(routeList);
40 |
41 | for (int j = 0; j < randomRouteNr; j++) {
42 |
43 | // Chọn ngẫu nhiên một tuyến đường
44 | int insertRoutePosition = routeList.remove(0);
45 | Route insertRoute = s.routes.get(insertRoutePosition);
46 |
47 | while(insertRoute.getRoute().size() < 1) {
48 | insertRoutePosition = routeList.remove(0);
49 | insertRoute = s.routes.get(insertRoutePosition);
50 | }
51 |
52 | // Lựa chọn ngẫu nhiên vị trí cần tìm
53 | int insertTimes = r.nextInt(insertRoute.getRoute().size() - 1) + 1;
54 |
55 | ArrayList customerList= new ArrayList();
56 | for(int k = 1; k < insertRoute.getRoute().size(); k++)
57 | customerList.add(k);
58 |
59 | Collections.shuffle(customerList);
60 |
61 | // Chọn một vị trí ngẫu nhiên
62 | for (int k = 0; k < insertTimes; k++) {
63 |
64 | int insertCusPosition = customerList.remove(0);
65 | Cost newCost = new Cost(s.cost);
66 | s.evaluateInsertCustomer(insertRoutePosition, insertCusPosition, insertNode, newCost);
67 |
68 | // Cập nhật vị trí chèn tối ưu
69 | if (newCost.total < bestCost.total) {
70 | bestRoutePosition = insertRoutePosition;
71 | bestCusomerPosition = insertCusPosition;
72 | bestCost = newCost;
73 | }
74 | }
75 | // thực hiện thao tác chèn
76 | s.insertCustomer(bestRoutePosition, bestCusomerPosition, insertNode);
77 | }
78 | }
79 |
80 | return s;
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/src/algrithm/CheckSolution.java:
--------------------------------------------------------------------------------
1 | package algrithm;
2 |
3 | import instance.Instance;
4 | import instance.Route;
5 |
6 | public class CheckSolution {
7 |
8 | private double[][] distance;
9 |
10 | public CheckSolution(Instance instance) {
11 | this.distance = instance.getDistanceMatrix();
12 | }
13 |
14 | public String Check(Solution solution) {
15 | String result = "";
16 | double totalCost = 0;
17 |
18 | int id = 0;
19 |
20 | for (int i = 0; i < solution.getRoutes().size(); i++) {
21 | Route vehicle = solution.getRoutes().get(i);
22 | if (vehicle.getRoute().size() >= 3) {
23 | id++;
24 |
25 | double costInVehicle = 0;
26 | double loadInVehicle = 0;
27 | double time = 0;
28 |
29 | boolean checkCost = true;
30 | boolean checkLoad = true;
31 | boolean checkTime = true;
32 | boolean checkTimeWindows = true;
33 |
34 | for (int j = 1; j < vehicle.getRoute().size(); j++) {
35 | time += distance[vehicle.getRoute().get(j - 1).getId()][vehicle.getRoute().get(j).getId()];
36 | costInVehicle += distance[vehicle.getRoute().get(j - 1).getId()][vehicle.getRoute().get(j).getId()];
37 | loadInVehicle += vehicle.getRoute().get(j).getDemand();
38 | if (time < vehicle.getRoute().get(j).getTimeWindow()[0])
39 | time = vehicle.getRoute().get(j).getTimeWindow()[0];
40 | else if (time > vehicle.getRoute().get(j).getTimeWindow()[1])
41 | checkTimeWindows = false;
42 |
43 | time += vehicle.getRoute().get(j).getServiceTime();
44 | }
45 | totalCost += costInVehicle;
46 |
47 | if (Math.abs(vehicle.getCost().cost - costInVehicle) > 0.001) checkCost = false;
48 | if (Math.abs(vehicle.getCost().load - loadInVehicle) > 0.001) checkLoad = false;
49 | if (Math.abs(vehicle.getCost().time - time) > 0.001) checkTime = false;
50 |
51 |
52 | result += "\n check route " + id + ": "
53 | + "\n check cost = " + costInVehicle + " " + checkCost
54 | + "\n check demand = " + loadInVehicle + " " + checkLoad
55 | + "\n check time = " + time + " " + checkTime
56 | + "\n check time windows = " + checkTimeWindows +"\n";
57 |
58 | }
59 | }
60 |
61 | boolean checkTotalCost = true;
62 | if (Math.abs(totalCost - solution.getTotalCost()) > 0.001) checkTotalCost = false;
63 |
64 | result += "\ncheck total cost = " + Math.round(totalCost * 100) / 100.0 + " " + checkTotalCost;
65 |
66 | return result;
67 | }
68 |
69 | }
--------------------------------------------------------------------------------
/src/alns/repair/RegretRepair.java:
--------------------------------------------------------------------------------
1 | package alns.repair;
2 |
3 | import algrithm.Cost;
4 | import algrithm.MyALNSSolution;
5 | import instance.Node;
6 |
7 | import java.util.ArrayList;
8 | import java.util.Collections;
9 |
10 | public class RegretRepair extends ALNSAbstractRepair implements IALNSRepair {
11 |
12 | @Override
13 | public MyALNSSolution repair(MyALNSSolution s) {
14 | if(s.removalCustomers.size() == 0) {
15 | System.err.println("removalCustomers is empty!");
16 | return s;
17 | }
18 |
19 | ArrayList bestPoses = new ArrayList();
20 |
21 | int removeNr = s.removalCustomers.size();
22 |
23 | for(int k = 0; k < removeNr; k++) {
24 |
25 | Node insertNode = s.removalCustomers.remove(0);
26 |
27 | double first,second;
28 | int bestCusP = -1;
29 | int bestRouteP = -1;
30 | first = second = Double.POSITIVE_INFINITY;
31 |
32 | for(int j = 0; j < s.routes.size(); j++) {
33 |
34 | if(s.routes.get(j).getRoute().size() < 1) {
35 | continue;
36 | }
37 |
38 | // Tìm vị trí chèn tối ưu
39 | for (int i = 1; i < s.routes.get(j).getRoute().size() - 1; ++i) {
40 |
41 | // ���۲������
42 | Cost newCost = new Cost(s.cost);
43 | s.evaluateInsertCustomer(j, i, insertNode, newCost);
44 |
45 | if(newCost.total > Double.MAX_VALUE) {
46 | newCost.total = Double.MAX_VALUE;
47 | }
48 |
49 | // nếu tìm thấy vị trí chèn tốt hơn, hãy đặt vị trí cần chèn trong lần di chuyển
50 | // và cập nhật chi phí tối thiểu được tìm thấy
51 | if (newCost.total < first) {
52 | bestCusP = i;
53 | bestRouteP = j;
54 | second = first;
55 | first = newCost.total;
56 | }else if(newCost.total < second && newCost.total != first) {
57 | second = newCost.total;
58 | }
59 | }
60 | }
61 | bestPoses.add(new BestPos(insertNode, bestCusP, bestRouteP, second - first));
62 | }
63 | Collections.sort(bestPoses);
64 |
65 | for(BestPos bp : bestPoses) {
66 | s.insertCustomer(bp.bestCustomerPosition, bp.bestRroutePosition, bp.insertNode);
67 | }
68 |
69 | return s;
70 | }
71 | }
72 |
73 | class BestPos implements Comparable{
74 |
75 | public int bestRroutePosition;
76 | public int bestCustomerPosition;
77 | public Node insertNode;
78 | public double deltaCost;
79 |
80 | public BestPos() {}
81 |
82 | public BestPos(Node insertNode, int customer, int route, double f) {
83 | this.insertNode = insertNode;
84 | this.bestRroutePosition = customer;
85 | this.bestCustomerPosition = route;
86 | this.deltaCost = f;
87 | }
88 |
89 | @Override
90 | public int compareTo(BestPos o) {
91 | BestPos s = (BestPos) o;
92 | if (s.deltaCost > this.deltaCost ) {
93 | return 1;
94 | } else if (this.deltaCost == s.deltaCost) {
95 | return 0;
96 | } else {
97 | return -1;
98 | }
99 | }
100 | }
101 |
--------------------------------------------------------------------------------
/src/alns/destroy/ShawDestroy.java:
--------------------------------------------------------------------------------
1 | package alns.destroy;
2 |
3 | import algrithm.MyALNSSolution;
4 | import alns.operation.ALNSAbstractOperation;
5 | import instance.Node;
6 | import instance.Route;
7 |
8 | import java.util.ArrayList;
9 | import java.util.Collections;
10 |
11 | public class ShawDestroy extends ALNSAbstractOperation implements IALNSDestroy {
12 | @Override
13 | public MyALNSSolution destroy(MyALNSSolution s, int removeNr) throws Exception {
14 |
15 | if(s.removalCustomers.size() != 0) {
16 | System.err.println("removalCustomers is not empty.");
17 | return s;
18 | }
19 |
20 | Node lastRemove;
21 | Route lastRoute;
22 | int lastRemovePos;
23 | int lastRoutePos;
24 |
25 | ArrayList routeList= new ArrayList();
26 | for(int j = 0; j < s.routes.size(); j++)
27 | routeList.add(j);
28 |
29 | Collections.shuffle(routeList);
30 |
31 | // Chọn đường dẫn nơi điểm đến bị loại bỏ đang tồn tại trong tuyến đường
32 | int removenRoutePosition = routeList.remove(0);
33 | Route removenRoute = s.routes.get(removenRoutePosition);
34 |
35 | while(removenRoute.getRoute().size() <= 2) {
36 | removenRoutePosition = routeList.remove(0);
37 | removenRoute = s.routes.get(removenRoutePosition);
38 | }
39 |
40 | ArrayList cusList= new ArrayList();
41 | for(int j = 1; j < removenRoute.getRoute().size() - 1; j++)
42 | cusList.add(j);
43 |
44 | Collections.shuffle(cusList);
45 |
46 | int removenCusPosition = cusList.remove(0);
47 | Node removenCus = removenRoute.getRoute().get(removenCusPosition);
48 |
49 | while(removenRoute.getRoute().size() <= 2) {
50 | removenCusPosition = cusList.remove(0);
51 | removenCus = removenRoute.getRoute().get(removenCusPosition);
52 | }
53 |
54 | s.removeCustomer(removenRoutePosition, removenCusPosition);
55 |
56 | lastRemove = removenCus;
57 | lastRoute = removenRoute;
58 | lastRemovePos = -1;
59 | lastRoutePos = -1;
60 |
61 | double[][] distance = s.instance.getDistanceMatrix();
62 |
63 | while(s.removalCustomers.size() < removeNr ) {
64 |
65 | double minRelate = Double.MAX_VALUE;
66 |
67 | for(int j = 0; j < s.routes.size(); j++) {
68 | for (int i = 1; i < s.routes.get(j).getRoute().size() - 1;++i) {
69 |
70 | Node relatedNode = s.routes.get(j).getRoute().get(i);
71 | int l = (lastRoute.getId() == s.routes.get(j).getId())? -1 : 1;
72 |
73 | double fitness = l * 2 +
74 | 3 * distance[lastRemove.getId()][relatedNode.getId()] +
75 | 2 * Math.abs(lastRemove.getTimeWindow()[0] - relatedNode.getTimeWindow()[0]) +
76 | 2 * Math.abs(lastRemove.getDemand() - relatedNode.getDemand());
77 |
78 | if(minRelate > fitness) {
79 | minRelate = fitness;
80 | lastRemove = relatedNode;
81 | lastRoute = s.routes.get(j);
82 | lastRemovePos = i;
83 | lastRoutePos = j;
84 | }
85 | }
86 | }
87 | s.removeCustomer(lastRoutePos, lastRemovePos);
88 | }
89 |
90 | return s;
91 | }
92 | }
93 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_50/R101.txt:
--------------------------------------------------------------------------------
1 | R101
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 35 35 0 0 230 0
11 | 1 41 49 10 161 171 10
12 | 2 35 17 7 50 60 10
13 | 3 55 45 13 116 126 10
14 | 4 55 20 19 149 159 10
15 | 5 15 30 26 34 44 10
16 | 6 25 30 3 99 109 10
17 | 7 20 50 5 81 91 10
18 | 8 10 43 9 95 105 10
19 | 9 55 60 16 97 107 10
20 | 10 30 60 16 124 134 10
21 | 11 20 65 12 67 77 10
22 | 12 50 35 19 63 73 10
23 | 13 30 25 23 159 169 10
24 | 14 15 10 20 32 42 10
25 | 15 30 5 8 61 71 10
26 | 16 10 20 19 75 85 10
27 | 17 5 30 2 157 167 10
28 | 18 20 40 12 87 97 10
29 | 19 15 60 17 76 86 10
30 | 20 45 65 9 126 136 10
31 | 21 45 20 11 62 72 10
32 | 22 45 10 18 97 107 10
33 | 23 55 5 29 68 78 10
34 | 24 65 35 3 153 163 10
35 | 25 65 20 6 172 182 10
36 | 26 45 30 17 132 142 10
37 | 27 35 40 16 37 47 10
38 | 28 41 37 16 39 49 10
39 | 29 64 42 9 63 73 10
40 | 30 40 60 21 71 81 10
41 | 31 31 52 27 50 60 10
42 | 32 35 69 23 141 151 10
43 | 33 53 52 11 37 47 10
44 | 34 65 55 14 117 127 10
45 | 35 63 65 8 143 153 10
46 | 36 2 60 5 41 51 10
47 | 37 20 20 8 134 144 10
48 | 38 5 5 16 83 93 10
49 | 39 60 12 31 44 54 10
50 | 40 40 25 9 85 95 10
51 | 41 42 7 5 97 107 10
52 | 42 24 12 5 31 41 10
53 | 43 23 3 7 132 142 10
54 | 44 11 14 18 69 79 10
55 | 45 6 38 16 32 42 10
56 | 46 2 48 1 117 127 10
57 | 47 8 56 27 51 61 10
58 | 48 13 52 36 165 175 10
59 | 49 6 68 30 108 118 10
60 | 50 47 47 13 124 134 10
61 |
62 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_50/C101.txt:
--------------------------------------------------------------------------------
1 | C101
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 1236 0
11 | 1 45 68 10 912 967 90
12 | 2 45 70 30 825 870 90
13 | 3 42 66 10 65 146 90
14 | 4 42 68 10 727 782 90
15 | 5 42 65 10 15 67 90
16 | 6 40 69 20 621 702 90
17 | 7 40 66 20 170 225 90
18 | 8 38 68 20 255 324 90
19 | 9 38 70 10 534 605 90
20 | 10 35 66 10 357 410 90
21 | 11 35 69 10 448 505 90
22 | 12 25 85 20 652 721 90
23 | 13 22 75 30 30 92 90
24 | 14 22 85 10 567 620 90
25 | 15 20 80 40 384 429 90
26 | 16 20 85 40 475 528 90
27 | 17 18 75 20 99 148 90
28 | 18 15 75 20 179 254 90
29 | 19 15 80 10 278 345 90
30 | 20 30 50 10 10 73 90
31 | 21 30 52 20 914 965 90
32 | 22 28 52 20 812 883 90
33 | 23 28 55 10 732 777 90
34 | 24 25 50 10 65 144 90
35 | 25 25 52 40 169 224 90
36 | 26 25 55 10 622 701 90
37 | 27 23 52 10 261 316 90
38 | 28 23 55 20 546 593 90
39 | 29 20 50 10 358 405 90
40 | 30 20 55 10 449 504 90
41 | 31 10 35 20 200 237 90
42 | 32 10 40 30 31 100 90
43 | 33 8 40 40 87 158 90
44 | 34 8 45 20 751 816 90
45 | 35 5 35 10 283 344 90
46 | 36 5 45 10 665 716 90
47 | 37 2 40 20 383 434 90
48 | 38 0 40 30 479 522 90
49 | 39 0 45 20 567 624 90
50 | 40 35 30 10 264 321 90
51 | 41 35 32 10 166 235 90
52 | 42 33 32 20 68 149 90
53 | 43 33 35 10 16 80 90
54 | 44 32 30 10 359 412 90
55 | 45 30 30 10 541 600 90
56 | 46 30 32 30 448 509 90
57 | 47 30 35 10 1054 1127 90
58 | 48 28 30 10 632 693 90
59 | 49 28 35 10 1001 1066 90
60 | 50 26 32 10 815 880 90
61 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_50/C102.txt:
--------------------------------------------------------------------------------
1 | C102
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 1236 0
11 | 1 45 68 10 0 1127 90
12 | 2 45 70 30 0 1125 90
13 | 3 42 66 10 0 1129 90
14 | 4 42 68 10 727 782 90
15 | 5 42 65 10 0 1130 90
16 | 6 40 69 20 621 702 90
17 | 7 40 66 20 0 1130 90
18 | 8 38 68 20 255 324 90
19 | 9 38 70 10 534 605 90
20 | 10 35 66 10 357 410 90
21 | 11 35 69 10 448 505 90
22 | 12 25 85 20 0 1107 90
23 | 13 22 75 30 30 92 90
24 | 14 22 85 10 567 620 90
25 | 15 20 80 40 384 429 90
26 | 16 20 85 40 475 528 90
27 | 17 18 75 20 99 148 90
28 | 18 15 75 20 179 254 90
29 | 19 15 80 10 278 345 90
30 | 20 30 50 10 10 73 90
31 | 21 30 52 20 0 1135 90
32 | 22 28 52 20 812 883 90
33 | 23 28 55 10 732 777 90
34 | 24 25 50 10 65 144 90
35 | 25 25 52 40 169 224 90
36 | 26 25 55 10 0 1130 90
37 | 27 23 52 10 261 316 90
38 | 28 23 55 20 546 593 90
39 | 29 20 50 10 358 405 90
40 | 30 20 55 10 449 504 90
41 | 31 10 35 20 0 1112 90
42 | 32 10 40 30 31 100 90
43 | 33 8 40 40 87 158 90
44 | 34 8 45 20 0 1113 90
45 | 35 5 35 10 283 344 90
46 | 36 5 45 10 665 716 90
47 | 37 2 40 20 0 1106 90
48 | 38 0 40 30 479 522 90
49 | 39 0 45 20 567 624 90
50 | 40 35 30 10 264 321 90
51 | 41 35 32 10 166 235 90
52 | 42 33 32 20 68 149 90
53 | 43 33 35 10 16 80 90
54 | 44 32 30 10 359 412 90
55 | 45 30 30 10 541 600 90
56 | 46 30 32 30 448 509 90
57 | 47 30 35 10 1054 1127 90
58 | 48 28 30 10 0 1122 90
59 | 49 28 35 10 1001 1066 90
60 | 50 26 32 10 0 1123 90
61 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_50/C103.txt:
--------------------------------------------------------------------------------
1 | C103
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 1236 0
11 | 1 45 68 10 0 1127 90
12 | 2 45 70 30 0 1125 90
13 | 3 42 66 10 0 1129 90
14 | 4 42 68 10 727 782 90
15 | 5 42 65 10 0 1130 90
16 | 6 40 69 20 621 702 90
17 | 7 40 66 20 0 1130 90
18 | 8 38 68 20 255 324 90
19 | 9 38 70 10 534 605 90
20 | 10 35 66 10 357 410 90
21 | 11 35 69 10 448 505 90
22 | 12 25 85 20 0 1107 90
23 | 13 22 75 30 30 92 90
24 | 14 22 85 10 0 1106 90
25 | 15 20 80 40 384 429 90
26 | 16 20 85 40 0 1105 90
27 | 17 18 75 20 99 148 90
28 | 18 15 75 20 0 1110 90
29 | 19 15 80 10 0 1106 90
30 | 20 30 50 10 0 1136 90
31 | 21 30 52 20 0 1135 90
32 | 22 28 52 20 812 883 90
33 | 23 28 55 10 732 777 90
34 | 24 25 50 10 0 1131 90
35 | 25 25 52 40 169 224 90
36 | 26 25 55 10 0 1130 90
37 | 27 23 52 10 261 316 90
38 | 28 23 55 20 0 1128 90
39 | 29 20 50 10 0 1126 90
40 | 30 20 55 10 449 504 90
41 | 31 10 35 20 0 1112 90
42 | 32 10 40 30 0 1114 90
43 | 33 8 40 40 87 158 90
44 | 34 8 45 20 0 1113 90
45 | 35 5 35 10 283 344 90
46 | 36 5 45 10 665 716 90
47 | 37 2 40 20 0 1106 90
48 | 38 0 40 30 479 522 90
49 | 39 0 45 20 567 624 90
50 | 40 35 30 10 264 321 90
51 | 41 35 32 10 166 235 90
52 | 42 33 32 20 68 149 90
53 | 43 33 35 10 0 1129 90
54 | 44 32 30 10 359 412 90
55 | 45 30 30 10 541 600 90
56 | 46 30 32 30 0 1125 90
57 | 47 30 35 10 0 1127 90
58 | 48 28 30 10 0 1122 90
59 | 49 28 35 10 1001 1066 90
60 | 50 26 32 10 0 1123 90
61 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_50/C104.txt:
--------------------------------------------------------------------------------
1 | C104
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 1236 0
11 | 1 45 68 10 0 1127 90
12 | 2 45 70 30 0 1125 90
13 | 3 42 66 10 0 1129 90
14 | 4 42 68 10 727 782 90
15 | 5 42 65 10 0 1130 90
16 | 6 40 69 20 0 1127 90
17 | 7 40 66 20 0 1130 90
18 | 8 38 68 20 255 324 90
19 | 9 38 70 10 534 605 90
20 | 10 35 66 10 0 1129 90
21 | 11 35 69 10 448 505 90
22 | 12 25 85 20 0 1107 90
23 | 13 22 75 30 30 92 90
24 | 14 22 85 10 0 1106 90
25 | 15 20 80 40 384 429 90
26 | 16 20 85 40 0 1105 90
27 | 17 18 75 20 0 1112 90
28 | 18 15 75 20 0 1110 90
29 | 19 15 80 10 0 1106 90
30 | 20 30 50 10 0 1136 90
31 | 21 30 52 20 0 1135 90
32 | 22 28 52 20 0 1133 90
33 | 23 28 55 10 732 777 90
34 | 24 25 50 10 0 1131 90
35 | 25 25 52 40 169 224 90
36 | 26 25 55 10 0 1130 90
37 | 27 23 52 10 0 1128 90
38 | 28 23 55 20 0 1128 90
39 | 29 20 50 10 0 1126 90
40 | 30 20 55 10 0 1125 90
41 | 31 10 35 20 0 1112 90
42 | 32 10 40 30 0 1114 90
43 | 33 8 40 40 0 1112 90
44 | 34 8 45 20 0 1113 90
45 | 35 5 35 10 0 1107 90
46 | 36 5 45 10 0 1110 90
47 | 37 2 40 20 0 1106 90
48 | 38 0 40 30 479 522 90
49 | 39 0 45 20 0 1105 90
50 | 40 35 30 10 0 1125 90
51 | 41 35 32 10 0 1127 90
52 | 42 33 32 20 0 1126 90
53 | 43 33 35 10 0 1129 90
54 | 44 32 30 10 359 412 90
55 | 45 30 30 10 0 1123 90
56 | 46 30 32 30 0 1125 90
57 | 47 30 35 10 0 1127 90
58 | 48 28 30 10 0 1122 90
59 | 49 28 35 10 0 1126 90
60 | 50 26 32 10 0 1123 90
61 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_50/C105.txt:
--------------------------------------------------------------------------------
1 | C105
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 1236 0
11 | 1 45 68 10 885 994 90
12 | 2 45 70 30 802 893 90
13 | 3 42 66 10 25 186 90
14 | 4 42 68 10 699 810 90
15 | 5 42 65 10 15 120 90
16 | 6 40 69 20 580 743 90
17 | 7 40 66 20 142 253 90
18 | 8 38 68 20 220 359 90
19 | 9 38 70 10 499 640 90
20 | 10 35 66 10 331 436 90
21 | 11 35 69 10 420 533 90
22 | 12 25 85 20 617 756 90
23 | 13 22 75 30 30 155 90
24 | 14 22 85 10 541 646 90
25 | 15 20 80 40 362 451 90
26 | 16 20 85 40 448 555 90
27 | 17 18 75 20 75 172 90
28 | 18 15 75 20 142 291 90
29 | 19 15 80 10 244 379 90
30 | 20 30 50 10 10 137 90
31 | 21 30 52 20 888 991 90
32 | 22 28 52 20 776 919 90
33 | 23 28 55 10 709 800 90
34 | 24 25 50 10 25 184 90
35 | 25 25 52 40 142 251 90
36 | 26 25 55 10 582 741 90
37 | 27 23 52 10 234 343 90
38 | 28 23 55 20 523 616 90
39 | 29 20 50 10 335 428 90
40 | 30 20 55 10 422 531 90
41 | 31 10 35 20 181 256 90
42 | 32 10 40 30 31 170 90
43 | 33 8 40 40 52 193 90
44 | 34 8 45 20 719 848 90
45 | 35 5 35 10 252 375 90
46 | 36 5 45 10 639 742 90
47 | 37 2 40 20 357 460 90
48 | 38 0 40 30 457 544 90
49 | 39 0 45 20 538 653 90
50 | 40 35 30 10 236 349 90
51 | 41 35 32 10 132 269 90
52 | 42 33 32 20 27 190 90
53 | 43 33 35 10 16 144 90
54 | 44 32 30 10 332 439 90
55 | 45 30 30 10 512 629 90
56 | 46 30 32 30 417 540 90
57 | 47 30 35 10 982 1127 90
58 | 48 28 30 10 601 724 90
59 | 49 28 35 10 969 1098 90
60 | 50 26 32 10 783 912 90
61 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_50/C106.txt:
--------------------------------------------------------------------------------
1 | C106
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 1236 0
11 | 1 45 68 10 890 989 90
12 | 2 45 70 30 816 879 90
13 | 3 42 66 10 55 156 90
14 | 4 42 68 10 703 806 90
15 | 5 42 65 10 15 60 90
16 | 6 40 69 20 559 764 90
17 | 7 40 66 20 172 223 90
18 | 8 38 68 20 250 329 90
19 | 9 38 70 10 489 650 90
20 | 10 35 66 10 361 406 90
21 | 11 35 69 10 450 503 90
22 | 12 25 85 20 647 726 90
23 | 13 22 75 30 30 95 90
24 | 14 22 85 10 571 616 90
25 | 15 20 80 40 392 421 90
26 | 16 20 85 40 478 525 90
27 | 17 18 75 20 105 142 90
28 | 18 15 75 20 172 261 90
29 | 19 15 80 10 274 349 90
30 | 20 30 50 10 10 77 90
31 | 21 30 52 20 918 961 90
32 | 22 28 52 20 806 889 90
33 | 23 28 55 10 739 770 90
34 | 24 25 50 10 55 154 90
35 | 25 25 52 40 172 221 90
36 | 26 25 55 10 612 711 90
37 | 27 23 52 10 264 313 90
38 | 28 23 55 20 553 586 90
39 | 29 20 50 10 365 398 90
40 | 30 20 55 10 452 501 90
41 | 31 10 35 20 204 233 90
42 | 32 10 40 30 31 189 90
43 | 33 8 40 40 42 203 90
44 | 34 8 45 20 715 852 90
45 | 35 5 35 10 251 376 90
46 | 36 5 45 10 648 733 90
47 | 37 2 40 20 365 452 90
48 | 38 0 40 30 474 527 90
49 | 39 0 45 20 541 650 90
50 | 40 35 30 10 240 345 90
51 | 41 35 32 10 123 278 90
52 | 42 33 32 20 19 225 90
53 | 43 33 35 10 16 153 90
54 | 44 32 30 10 338 433 90
55 | 45 30 30 10 513 628 90
56 | 46 30 32 30 415 542 90
57 | 47 30 35 10 872 1127 90
58 | 48 28 30 10 599 726 90
59 | 49 28 35 10 917 1126 90
60 | 50 26 32 10 779 916 90
61 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_50/C107.txt:
--------------------------------------------------------------------------------
1 | C107
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 1236 0
11 | 1 45 68 10 850 1030 90
12 | 2 45 70 30 758 938 90
13 | 3 42 66 10 16 196 90
14 | 4 42 68 10 665 845 90
15 | 5 42 65 10 15 195 90
16 | 6 40 69 20 572 752 90
17 | 7 40 66 20 108 288 90
18 | 8 38 68 20 200 380 90
19 | 9 38 70 10 480 660 90
20 | 10 35 66 10 294 474 90
21 | 11 35 69 10 387 567 90
22 | 12 25 85 20 597 777 90
23 | 13 22 75 30 30 210 90
24 | 14 22 85 10 504 684 90
25 | 15 20 80 40 317 497 90
26 | 16 20 85 40 412 592 90
27 | 17 18 75 20 34 214 90
28 | 18 15 75 20 127 307 90
29 | 19 15 80 10 222 402 90
30 | 20 30 50 10 10 190 90
31 | 21 30 52 20 850 1030 90
32 | 22 28 52 20 758 938 90
33 | 23 28 55 10 665 845 90
34 | 24 25 50 10 15 195 90
35 | 25 25 52 40 107 287 90
36 | 26 25 55 10 572 752 90
37 | 27 23 52 10 199 379 90
38 | 28 23 55 20 480 660 90
39 | 29 20 50 10 292 472 90
40 | 30 20 55 10 387 567 90
41 | 31 10 35 20 129 309 90
42 | 32 10 40 30 31 211 90
43 | 33 8 40 40 33 213 90
44 | 34 8 45 20 694 874 90
45 | 35 5 35 10 224 404 90
46 | 36 5 45 10 601 781 90
47 | 37 2 40 20 319 499 90
48 | 38 0 40 30 411 591 90
49 | 39 0 45 20 506 686 90
50 | 40 35 30 10 203 383 90
51 | 41 35 32 10 111 291 90
52 | 42 33 32 20 19 199 90
53 | 43 33 35 10 16 196 90
54 | 44 32 30 10 296 476 90
55 | 45 30 30 10 481 661 90
56 | 46 30 32 30 389 569 90
57 | 47 30 35 10 947 1127 90
58 | 48 28 30 10 573 753 90
59 | 49 28 35 10 944 1124 90
60 | 50 26 32 10 758 938 90
61 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_50/C108.txt:
--------------------------------------------------------------------------------
1 | C108
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 1236 0
11 | 1 45 68 10 830 1049 90
12 | 2 45 70 30 756 939 90
13 | 3 42 66 10 16 336 90
14 | 4 42 68 10 643 866 90
15 | 5 42 65 10 15 226 90
16 | 6 40 69 20 499 824 90
17 | 7 40 66 20 87 308 90
18 | 8 38 68 20 150 429 90
19 | 9 38 70 10 429 710 90
20 | 10 35 66 10 279 488 90
21 | 11 35 69 10 363 590 90
22 | 12 25 85 20 547 826 90
23 | 13 22 75 30 30 280 90
24 | 14 22 85 10 489 698 90
25 | 15 20 80 40 318 495 90
26 | 16 20 85 40 394 609 90
27 | 17 18 75 20 33 226 90
28 | 18 15 75 20 68 365 90
29 | 19 15 80 10 176 447 90
30 | 20 30 50 10 10 265 90
31 | 21 30 52 20 836 1043 90
32 | 22 28 52 20 704 991 90
33 | 23 28 55 10 664 845 90
34 | 24 25 50 10 15 333 90
35 | 25 25 52 40 88 305 90
36 | 26 25 55 10 502 821 90
37 | 27 23 52 10 179 398 90
38 | 28 23 55 20 476 663 90
39 | 29 20 50 10 288 475 90
40 | 30 20 55 10 368 585 90
41 | 31 10 35 20 144 293 90
42 | 32 10 40 30 31 309 90
43 | 33 8 40 40 33 313 90
44 | 34 8 45 20 655 912 90
45 | 35 5 35 10 191 436 90
46 | 36 5 45 10 588 793 90
47 | 37 2 40 20 305 512 90
48 | 38 0 40 30 414 587 90
49 | 39 0 45 20 481 710 90
50 | 40 35 30 10 180 405 90
51 | 41 35 32 10 63 338 90
52 | 42 33 32 20 19 345 90
53 | 43 33 35 10 16 273 90
54 | 44 32 30 10 278 493 90
55 | 45 30 30 10 453 688 90
56 | 46 30 32 30 355 602 90
57 | 47 30 35 10 837 1127 90
58 | 48 28 30 10 539 786 90
59 | 49 28 35 10 867 1126 90
60 | 50 26 32 10 719 976 90
61 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_50/C109.txt:
--------------------------------------------------------------------------------
1 | C109
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 200
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 1236 0
11 | 1 45 68 10 760 1120 90
12 | 2 45 70 30 668 1028 90
13 | 3 42 66 10 16 376 90
14 | 4 42 68 10 575 935 90
15 | 5 42 65 10 15 375 90
16 | 6 40 69 20 482 842 90
17 | 7 40 66 20 18 378 90
18 | 8 38 68 20 110 470 90
19 | 9 38 70 10 390 750 90
20 | 10 35 66 10 204 564 90
21 | 11 35 69 10 297 657 90
22 | 12 25 85 20 507 867 90
23 | 13 22 75 30 30 390 90
24 | 14 22 85 10 414 774 90
25 | 15 20 80 40 227 587 90
26 | 16 20 85 40 322 682 90
27 | 17 18 75 20 33 393 90
28 | 18 15 75 20 37 397 90
29 | 19 15 80 10 132 492 90
30 | 20 30 50 10 10 370 90
31 | 21 30 52 20 760 1120 90
32 | 22 28 52 20 668 1028 90
33 | 23 28 55 10 575 935 90
34 | 24 25 50 10 15 375 90
35 | 25 25 52 40 17 377 90
36 | 26 25 55 10 482 842 90
37 | 27 23 52 10 109 469 90
38 | 28 23 55 20 390 750 90
39 | 29 20 50 10 202 562 90
40 | 30 20 55 10 297 657 90
41 | 31 10 35 20 39 399 90
42 | 32 10 40 30 31 391 90
43 | 33 8 40 40 33 393 90
44 | 34 8 45 20 604 964 90
45 | 35 5 35 10 134 494 90
46 | 36 5 45 10 511 871 90
47 | 37 2 40 20 229 589 90
48 | 38 0 40 30 321 681 90
49 | 39 0 45 20 416 776 90
50 | 40 35 30 10 113 473 90
51 | 41 35 32 10 21 381 90
52 | 42 33 32 20 19 379 90
53 | 43 33 35 10 16 376 90
54 | 44 32 30 10 206 566 90
55 | 45 30 30 10 391 751 90
56 | 46 30 32 30 299 659 90
57 | 47 30 35 10 767 1127 90
58 | 48 28 30 10 483 843 90
59 | 49 28 35 10 766 1126 90
60 | 50 26 32 10 668 1028 90
61 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_50/C201.txt:
--------------------------------------------------------------------------------
1 | C201
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 700
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 3390 0
11 | 1 52 75 10 311 471 90
12 | 2 45 70 30 213 373 90
13 | 3 62 69 10 1167 1327 90
14 | 4 60 66 10 1261 1421 90
15 | 5 42 65 10 25 185 90
16 | 6 16 42 20 497 657 90
17 | 7 58 70 20 1073 1233 90
18 | 8 34 60 20 2887 3047 90
19 | 9 28 70 10 2601 2761 90
20 | 10 35 66 10 2791 2951 90
21 | 11 35 69 10 2698 2858 90
22 | 12 25 85 20 2119 2279 90
23 | 13 22 75 30 2405 2565 90
24 | 14 22 85 10 2026 2186 90
25 | 15 20 80 40 2216 2376 90
26 | 16 20 85 40 1934 2094 90
27 | 17 18 75 20 2311 2471 90
28 | 18 15 75 20 1742 1902 90
29 | 19 15 80 10 1837 1997 90
30 | 20 30 50 10 10 170 90
31 | 21 30 56 20 2983 3143 90
32 | 22 28 52 20 22 182 90
33 | 23 14 66 10 1643 1803 90
34 | 24 25 50 10 116 276 90
35 | 25 22 66 40 2504 2664 90
36 | 26 8 62 10 1545 1705 90
37 | 27 23 52 10 209 369 90
38 | 28 4 55 20 1447 1607 90
39 | 29 20 50 10 398 558 90
40 | 30 20 55 10 303 463 90
41 | 31 10 35 20 781 941 90
42 | 32 10 40 30 593 753 90
43 | 33 8 40 40 685 845 90
44 | 34 8 45 20 1346 1506 90
45 | 35 5 35 10 876 1036 90
46 | 36 5 45 10 1253 1413 90
47 | 37 2 40 20 971 1131 90
48 | 38 0 40 30 1063 1223 90
49 | 39 0 45 20 1158 1318 90
50 | 40 36 18 10 1819 1979 90
51 | 41 35 32 10 2758 2918 90
52 | 42 33 32 20 2666 2826 90
53 | 43 33 35 10 2573 2733 90
54 | 44 32 20 10 1913 2073 90
55 | 45 30 30 10 2105 2265 90
56 | 46 34 25 30 2009 2169 90
57 | 47 30 35 10 2480 2640 90
58 | 48 36 40 10 2856 3016 90
59 | 49 48 20 10 967 1127 90
60 | 50 26 32 10 2292 2452 90
61 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_50/C203.txt:
--------------------------------------------------------------------------------
1 | C203
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 700
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 3390 0
11 | 1 52 75 10 0 3272 90
12 | 2 45 70 30 0 3279 90
13 | 3 62 69 10 0 3270 90
14 | 4 60 66 10 1261 1421 90
15 | 5 42 65 10 0 3284 90
16 | 6 16 42 20 497 657 90
17 | 7 58 70 20 0 3273 90
18 | 8 34 60 20 2887 3047 90
19 | 9 28 70 10 2601 2761 90
20 | 10 35 66 10 2791 2951 90
21 | 11 35 69 10 2698 2858 90
22 | 12 25 85 20 0 3261 90
23 | 13 22 75 30 2405 2565 90
24 | 14 22 85 10 0 3260 90
25 | 15 20 80 40 2216 2376 90
26 | 16 20 85 40 0 3259 90
27 | 17 18 75 20 2311 2471 90
28 | 18 15 75 20 0 3264 90
29 | 19 15 80 10 0 3260 90
30 | 20 30 50 10 0 3290 90
31 | 21 30 56 20 0 3288 90
32 | 22 28 52 20 22 182 90
33 | 23 14 66 10 1643 1803 90
34 | 24 25 50 10 0 3285 90
35 | 25 22 66 40 2504 2664 90
36 | 26 8 62 10 0 3265 90
37 | 27 23 52 10 209 369 90
38 | 28 4 55 20 0 3263 90
39 | 29 20 50 10 0 3280 90
40 | 30 20 55 10 303 463 90
41 | 31 10 35 20 0 3266 90
42 | 32 10 40 30 0 3268 90
43 | 33 8 40 40 685 845 90
44 | 34 8 45 20 0 3267 90
45 | 35 5 35 10 876 1036 90
46 | 36 5 45 10 1253 1413 90
47 | 37 2 40 20 0 3260 90
48 | 38 0 40 30 1063 1223 90
49 | 39 0 45 20 1158 1318 90
50 | 40 36 18 10 1819 1979 90
51 | 41 35 32 10 2758 2918 90
52 | 42 33 32 20 2666 2826 90
53 | 43 33 35 10 0 3283 90
54 | 44 32 20 10 1913 2073 90
55 | 45 30 30 10 2105 2265 90
56 | 46 34 25 30 0 3274 90
57 | 47 30 35 10 0 3281 90
58 | 48 36 40 10 0 3289 90
59 | 49 48 20 10 967 1127 90
60 | 50 26 32 10 0 3277 90
61 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_50/C204.txt:
--------------------------------------------------------------------------------
1 | C204
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 700
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 3390 0
11 | 1 52 75 10 0 3272 90
12 | 2 45 70 30 0 3279 90
13 | 3 62 69 10 0 3270 90
14 | 4 60 66 10 1261 1421 90
15 | 5 42 65 10 0 3284 90
16 | 6 16 42 20 0 3274 90
17 | 7 58 70 20 0 3273 90
18 | 8 34 60 20 2887 3047 90
19 | 9 28 70 10 2601 2761 90
20 | 10 35 66 10 0 3283 90
21 | 11 35 69 10 2698 2858 90
22 | 12 25 85 20 0 3261 90
23 | 13 22 75 30 2405 2565 90
24 | 14 22 85 10 0 3260 90
25 | 15 20 80 40 2216 2376 90
26 | 16 20 85 40 0 3259 90
27 | 17 18 75 20 0 3266 90
28 | 18 15 75 20 0 3264 90
29 | 19 15 80 10 0 3260 90
30 | 20 30 50 10 0 3290 90
31 | 21 30 56 20 0 3288 90
32 | 22 28 52 20 0 3287 90
33 | 23 14 66 10 1643 1803 90
34 | 24 25 50 10 0 3285 90
35 | 25 22 66 40 2504 2664 90
36 | 26 8 62 10 0 3265 90
37 | 27 23 52 10 0 3282 90
38 | 28 4 55 20 0 3263 90
39 | 29 20 50 10 0 3280 90
40 | 30 20 55 10 0 3279 90
41 | 31 10 35 20 0 3266 90
42 | 32 10 40 30 0 3268 90
43 | 33 8 40 40 0 3266 90
44 | 34 8 45 20 0 3267 90
45 | 35 5 35 10 0 3261 90
46 | 36 5 45 10 0 3264 90
47 | 37 2 40 20 0 3260 90
48 | 38 0 40 30 1063 1223 90
49 | 39 0 45 20 0 3259 90
50 | 40 36 18 10 0 3267 90
51 | 41 35 32 10 0 3281 90
52 | 42 33 32 20 0 3280 90
53 | 43 33 35 10 0 3283 90
54 | 44 32 20 10 1913 2073 90
55 | 45 30 30 10 0 3277 90
56 | 46 34 25 30 0 3274 90
57 | 47 30 35 10 0 3281 90
58 | 48 36 40 10 0 3289 90
59 | 49 48 20 10 0 3268 90
60 | 50 26 32 10 0 3277 90
61 |
--------------------------------------------------------------------------------
/instances/solomon/solomon_50/C207.txt:
--------------------------------------------------------------------------------
1 | C207
2 |
3 | VEHICLE
4 | NUMBER CAPACITY
5 | 25 700
6 |
7 | CUSTOMER
8 | CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
9 |
10 | 0 40 50 0 0 3390 0
11 | 1 52 75 10 302 479 90
12 | 2 45 70 30 157 428 90
13 | 3 62 69 10 1138 1355 90
14 | 4 60 66 10 1247 1434 90
15 | 5 42 65 10 15 208 90
16 | 6 16 42 20 209 944 90
17 | 7 58 70 20 1059 1246 90
18 | 8 34 60 20 2035 3288 90
19 | 9 28 70 10 2090 3271 90
20 | 10 35 66 10 2311 3283 90
21 | 11 35 69 10 2428 3127 90
22 | 12 25 85 20 1772 2625 90
23 | 13 22 75 30 2135 2834 90
24 | 14 22 85 10 1586 2625 90
25 | 15 20 80 40 1858 2733 90
26 | 16 20 85 40 1512 2515 90
27 | 17 18 75 20 1895 2886 90
28 | 18 15 75 20 1299 2344 90
29 | 19 15 80 10 1461 2372 90
30 | 20 30 50 10 10 963 90
31 | 21 30 56 20 2062 3288 90
32 | 22 28 52 20 12 752 90
33 | 23 14 66 10 1316 2129 90
34 | 24 25 50 10 15 532 90
35 | 25 22 66 40 2177 2990 90
36 | 26 8 62 10 1036 2213 90
37 | 27 23 52 10 17 602 90
38 | 28 4 55 20 1010 2043 90
39 | 29 20 50 10 20 948 90
40 | 30 20 55 10 63 702 90
41 | 31 10 35 20 309 1412 90
42 | 32 10 40 30 336 1009 90
43 | 33 8 40 40 234 1295 90
44 | 34 8 45 20 954 1897 90
45 | 35 5 35 10 377 1534 90
46 | 36 5 45 10 819 1846 90
47 | 37 2 40 20 494 1607 90
48 | 38 0 40 30 637 1648 90
49 | 39 0 45 20 834 1641 90
50 | 40 36 18 10 1468 2329 90
51 | 41 35 32 10 2480 3195 90
52 | 42 33 32 20 2421 3070 90
53 | 43 33 35 10 2368 2937 90
54 | 44 32 20 10 1621 2364 90
55 | 45 30 30 10 1805 2564 90
56 | 46 34 25 30 1782 2395 90
57 | 47 30 35 10 2242 2877 90
58 | 48 36 40 10 2605 3266 90
59 | 49 48 20 10 812 1281 90
60 | 50 26 32 10 1842 2901 90
61 |
--------------------------------------------------------------------------------