├── 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 | ![image](https://user-images.githubusercontent.com/68578515/158428976-ba2f5e4e-7ad5-4fc5-912f-b39bd8c15661.png) 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 | --------------------------------------------------------------------------------