├── .gitignore ├── LICENSE ├── README.md ├── docs ├── javadoc │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── csp │ │ ├── ColumnGeneration.html │ │ ├── Csp.html │ │ ├── CspMasterProblem.html │ │ ├── CspPriceProblem.html │ │ ├── CspSolution.html │ │ ├── class-use │ │ │ ├── ColumnGeneration.html │ │ │ ├── Csp.html │ │ │ ├── CspMasterProblem.html │ │ │ ├── CspPriceProblem.html │ │ │ └── CspSolution.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ ├── package-tree.html │ │ └── package-use.html │ ├── deprecated-list.html │ ├── fctp │ │ ├── AbstractFctpSubProblem.html │ │ ├── Fctp.html │ │ ├── FctpMasterProblem.html │ │ ├── FctpSolution.html │ │ ├── ManualBenders.BendersCallback.html │ │ ├── ManualBenders.html │ │ ├── Parameters.html │ │ ├── class-use │ │ │ ├── AbstractFctpSubProblem.html │ │ │ ├── Fctp.html │ │ │ ├── FctpMasterProblem.html │ │ │ ├── FctpSolution.html │ │ │ ├── ManualBenders.BendersCallback.html │ │ │ ├── ManualBenders.html │ │ │ └── Parameters.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ ├── package-tree.html │ │ ├── package-use.html │ │ └── subproblem │ │ │ ├── FctpSubProblemDual.html │ │ │ ├── FctpSubProblemPrimal.html │ │ │ ├── class-use │ │ │ ├── FctpSubProblemDual.html │ │ │ └── FctpSubProblemPrimal.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ ├── help-doc.html │ ├── index-files │ │ ├── index-1.html │ │ ├── index-10.html │ │ ├── index-11.html │ │ ├── index-12.html │ │ ├── index-13.html │ │ ├── index-14.html │ │ ├── index-15.html │ │ ├── index-16.html │ │ ├── index-17.html │ │ ├── index-18.html │ │ ├── index-19.html │ │ ├── index-2.html │ │ ├── index-20.html │ │ ├── index-21.html │ │ ├── index-22.html │ │ ├── index-3.html │ │ ├── index-4.html │ │ ├── index-5.html │ │ ├── index-6.html │ │ ├── index-7.html │ │ ├── index-8.html │ │ └── index-9.html │ ├── index.html │ ├── overview-frame.html │ ├── overview-summary.html │ ├── overview-tree.html │ ├── package-list │ ├── script.js │ ├── stylesheet.css │ ├── testdemo │ │ ├── CspDemo.html │ │ ├── FctpDemo.html │ │ ├── SolomonInsertionDemo.html │ │ ├── SpptwccDemo.html │ │ ├── UflpDemo.Strategy.html │ │ ├── UflpDemo.html │ │ ├── VrptwExactAlgDemo.html │ │ ├── class-use │ │ │ ├── CspDemo.html │ │ │ ├── FctpDemo.html │ │ │ ├── SolomonInsertionDemo.html │ │ │ ├── SpptwccDemo.html │ │ │ ├── UflpDemo.Strategy.html │ │ │ ├── UflpDemo.html │ │ │ └── VrptwExactAlgDemo.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ ├── package-tree.html │ │ └── package-use.html │ ├── uflp │ │ ├── AnnotationBenders.html │ │ ├── Uflp.html │ │ ├── UflpSolution.html │ │ ├── class-use │ │ │ ├── AnnotationBenders.html │ │ │ ├── Uflp.html │ │ │ └── UflpSolution.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ ├── package-tree.html │ │ └── package-use.html │ └── vrptw │ │ ├── algorithm │ │ ├── VrptwExactAlgorithm.html │ │ ├── branchandbound │ │ │ ├── BranchAndBound.BranchCallback.html │ │ │ ├── BranchAndBound.html │ │ │ ├── class-use │ │ │ │ ├── BranchAndBound.BranchCallback.html │ │ │ │ └── BranchAndBound.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ │ ├── branchandprice │ │ │ ├── BapMasterProblem.html │ │ │ ├── BapNode.BranchArc.html │ │ │ ├── BapNode.html │ │ │ ├── BranchAndPrice.html │ │ │ ├── class-use │ │ │ │ ├── BapMasterProblem.html │ │ │ │ ├── BapNode.BranchArc.html │ │ │ │ ├── BapNode.html │ │ │ │ └── BranchAndPrice.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ │ ├── class-use │ │ │ └── VrptwExactAlgorithm.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ ├── package-tree.html │ │ ├── package-use.html │ │ ├── solomoninsertion │ │ │ ├── Route.Activity.html │ │ │ ├── Route.html │ │ │ ├── SolomonInsertion.BestInsert.html │ │ │ ├── SolomonInsertion.html │ │ │ ├── class-use │ │ │ │ ├── Route.Activity.html │ │ │ │ ├── Route.html │ │ │ │ ├── SolomonInsertion.BestInsert.html │ │ │ │ └── SolomonInsertion.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ │ └── subproblem │ │ │ ├── AbstractPriceProblem.html │ │ │ ├── class-use │ │ │ └── AbstractPriceProblem.html │ │ │ ├── labelalgorithm │ │ │ ├── AbstractLabel.html │ │ │ ├── EspptwccViaLabelCorrecting.EsppcctwLabel.html │ │ │ ├── EspptwccViaLabelCorrecting.html │ │ │ ├── LabelAlgorithm.html │ │ │ ├── SpptwccViaLabelSetting.LabelComparator.html │ │ │ ├── SpptwccViaLabelSetting.SppcctwLabel.html │ │ │ ├── SpptwccViaLabelSetting.html │ │ │ ├── class-use │ │ │ │ ├── AbstractLabel.html │ │ │ │ ├── EspptwccViaLabelCorrecting.EsppcctwLabel.html │ │ │ │ ├── EspptwccViaLabelCorrecting.html │ │ │ │ ├── LabelAlgorithm.html │ │ │ │ ├── SpptwccViaLabelSetting.LabelComparator.html │ │ │ │ ├── SpptwccViaLabelSetting.SppcctwLabel.html │ │ │ │ └── SpptwccViaLabelSetting.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ ├── package-use.html │ │ │ └── pulsealgorithm │ │ │ ├── EspptwccViaPulse.PulseTask.html │ │ │ ├── EspptwccViaPulse.PulseVertex.html │ │ │ ├── EspptwccViaPulse.html │ │ │ ├── class-use │ │ │ ├── EspptwccViaPulse.PulseTask.html │ │ │ ├── EspptwccViaPulse.PulseVertex.html │ │ │ └── EspptwccViaPulse.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ ├── package-tree.html │ │ ├── package-use.html │ │ ├── parameter │ │ ├── Parameters.html │ │ ├── class-use │ │ │ └── Parameters.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ ├── package-tree.html │ │ └── package-use.html │ │ ├── problem │ │ ├── Arc.html │ │ ├── TimeWindow.html │ │ ├── Vehicle.html │ │ ├── Vertex.html │ │ ├── Vrptw.html │ │ ├── class-use │ │ │ ├── Arc.html │ │ │ ├── TimeWindow.html │ │ │ ├── Vehicle.html │ │ │ ├── Vertex.html │ │ │ └── Vrptw.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ ├── package-tree.html │ │ └── package-use.html │ │ └── solution │ │ ├── Path.html │ │ ├── VrptwSolution.html │ │ ├── class-use │ │ ├── Path.html │ │ └── VrptwSolution.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ ├── package-tree.html │ │ └── package-use.html ├── model │ ├── CSP.md │ ├── FCTP.md │ └── UFLP.md └── reference │ ├── A tutorial on column generation and branch-and-price for vehicle routing problems.pdf │ ├── SPPRC │ ├── A comparison between label-setting and label-correcting.pdf │ ├── Label_Algorithm-Shortest_Path_Problems_with_Resource_Constraints.pdf │ ├── Lable_Correcting_Algorithm-An Exact Algorithm for the Elementary Shortest Path Problem with Resource Constraints- Application to Some Vehicle Routing Problems.pdf │ ├── Lable_Setting_Algorithm-Accelerated label setting algorithms for the elementary resource constrained shortest path problem.pdf │ └── Pluse_Algorithm-An Exact Algorithm for the Elementary Shortest Path Problem with Resource Constraints.pdf │ ├── SolomonoI1 │ └── Vehicle Routing Problem with Time Windows, Part I- Route Construction and Local Search Algorithms.pdf │ └── Vehicle Routing Problem with Time Windows.pdf ├── instances ├── cutstock.txt ├── solomon_100 │ ├── c101.txt │ ├── c102.txt │ ├── c103.txt │ ├── c104.txt │ ├── c105.txt │ ├── c106.txt │ ├── c107.txt │ ├── c108.txt │ ├── c109.txt │ ├── c201.txt │ ├── c202.txt │ ├── c203.txt │ ├── c204.txt │ ├── c205.txt │ ├── c206.txt │ ├── c207.txt │ ├── c208.txt │ ├── r101.txt │ ├── r102.txt │ ├── r103.txt │ ├── r104.txt │ ├── r105.txt │ ├── r106.txt │ ├── r107.txt │ ├── r108.txt │ ├── r109.txt │ ├── r110.txt │ ├── r111.txt │ ├── r112.txt │ ├── r201.txt │ ├── r202.txt │ ├── r203.txt │ ├── r204.txt │ ├── r205.txt │ ├── r206.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 ├── solomon_25 │ ├── C101.txt │ ├── C102.txt │ ├── C103.txt │ ├── C104.txt │ ├── C105.txt │ ├── C106.txt │ ├── C107.txt │ ├── C108.txt │ ├── C109.txt │ ├── C201.txt │ ├── C202.txt │ ├── C203.txt │ ├── C204.txt │ ├── C205.txt │ ├── C206.txt │ ├── C207.txt │ ├── C208.txt │ ├── R101.txt │ ├── R102.txt │ ├── R103.txt │ ├── R104.txt │ ├── R105.txt │ ├── R106.txt │ ├── R107.txt │ ├── R108.txt │ ├── R109.txt │ ├── R110.txt │ ├── R111.txt │ ├── R112.txt │ ├── R201.txt │ ├── R202.txt │ ├── R203.txt │ ├── R204.txt │ ├── R205.txt │ ├── R206.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 ├── solomon_50 │ ├── C101.txt │ ├── C102.txt │ ├── C103.txt │ ├── C104.txt │ ├── C105.txt │ ├── C106.txt │ ├── C107.txt │ ├── C108.txt │ ├── C109.txt │ ├── C201.txt │ ├── C202.txt │ ├── C203.txt │ ├── C204.txt │ ├── C205.txt │ ├── C206.txt │ ├── C207.txt │ ├── C208.txt │ ├── R101.txt │ ├── R102.txt │ ├── R103.txt │ ├── R104.txt │ ├── R105.txt │ ├── R106.txt │ ├── R107.txt │ ├── R108.txt │ ├── R109.txt │ ├── R110.txt │ ├── R111.txt │ ├── R112.txt │ ├── R201.txt │ ├── R202.txt │ ├── R203.txt │ ├── R204.txt │ ├── R205.txt │ ├── R206.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 └── uflp │ ├── CLSC │ ├── 1033GapCS.txt │ ├── 1033GapCS.txt.opt │ ├── 1133GapCS.txt │ ├── 1133GapCS.txt.opt │ ├── 1233GapCS.txt │ ├── 1233GapCS.txt.opt │ ├── 1333GapCS.txt │ ├── 1333GapCS.txt.opt │ ├── 1433GapCS.txt │ ├── 1433GapCS.txt.opt │ ├── 1533GapCS.txt │ ├── 1533GapCS.txt.opt │ ├── 1633GapCS.txt │ ├── 1633GapCS.txt.opt │ ├── 1733GapCS.txt │ ├── 1733GapCS.txt.opt │ ├── 1833GapCS.txt │ ├── 1833GapCS.txt.opt │ ├── 1933GapCS.txt │ ├── 1933GapCS.txt.opt │ ├── 2033GapCS.txt │ ├── 2033GapCS.txt.opt │ ├── 2133GapCS.txt │ ├── 2133GapCS.txt.opt │ ├── 2233GapCS.txt │ ├── 2233GapCS.txt.opt │ ├── 2333GapCS.txt │ ├── 2333GapCS.txt.opt │ ├── 2433GapCS.txt │ ├── 2433GapCS.txt.opt │ ├── 2533GapCS.txt │ ├── 2533GapCS.txt.opt │ ├── 2633GapCS.txt │ ├── 2633GapCS.txt.opt │ ├── 2733GapCS.txt │ ├── 2733GapCS.txt.opt │ ├── 2833GapCS.txt │ ├── 2833GapCS.txt.opt │ ├── 2933GapCS.txt │ ├── 2933GapCS.txt.opt │ ├── 3033GapCS.txt │ ├── 3033GapCS.txt.opt │ ├── 3133GapCS.txt │ ├── 3133GapCS.txt.opt │ ├── 3233GapCS.txt │ ├── 3233GapCS.txt.opt │ ├── 333GapCS.txt │ ├── 333GapCS.txt.opt │ ├── 433GapCS.txt │ ├── 433GapCS.txt.opt │ ├── 533GapCS.txt │ ├── 533GapCS.txt.opt │ ├── 633GapCS.txt │ ├── 633GapCS.txt.opt │ ├── 733GapCS.txt │ ├── 733GapCS.txt.opt │ ├── 833GapCS.txt │ ├── 833GapCS.txt.opt │ ├── 933GapCS.txt │ ├── 933GapCS.txt.opt │ └── files.lst │ └── Euclid │ ├── 1011EuclS.txt │ ├── 1011EuclS.txt.opt │ ├── 1111EuclS.txt │ ├── 1111EuclS.txt.opt │ ├── 111EuclS.txt │ ├── 111EuclS.txt.opt │ ├── 1211EuclS.txt │ ├── 1211EuclS.txt.opt │ ├── 1311EuclS.txt │ ├── 1311EuclS.txt.opt │ ├── 1411EuclS.txt │ ├── 1411EuclS.txt.opt │ ├── 1511EuclS.txt │ ├── 1511EuclS.txt.opt │ ├── 1611EuclS.txt │ ├── 1611EuclS.txt.opt │ ├── 1711EuclS.txt │ ├── 1711EuclS.txt.opt │ ├── 1811EuclS.txt │ ├── 1811EuclS.txt.opt │ ├── 1911EuclS.txt │ ├── 1911EuclS.txt.opt │ ├── 2011EuclS.txt │ ├── 2011EuclS.txt.opt │ ├── 2111EuclS.txt │ ├── 2111EuclS.txt.opt │ ├── 211EuclS.txt │ ├── 211EuclS.txt.opt │ ├── 2211EuclS.txt │ ├── 2211EuclS.txt.opt │ ├── 2311EuclS.txt │ ├── 2311EuclS.txt.opt │ ├── 2411EuclS.txt │ ├── 2411EuclS.txt.opt │ ├── 2511EuclS.txt │ ├── 2511EuclS.txt.opt │ ├── 2611EuclS.txt │ ├── 2611EuclS.txt.opt │ ├── 2711EuclS.txt │ ├── 2711EuclS.txt.opt │ ├── 2811EuclS.txt │ ├── 2811EuclS.txt.opt │ ├── 2911EuclS.txt │ ├── 2911EuclS.txt.opt │ ├── 3011EuclS.txt │ ├── 3011EuclS.txt.opt │ ├── 311EuclS.txt │ ├── 311EuclS.txt.opt │ ├── 411EuclS.txt │ ├── 411EuclS.txt.opt │ ├── 511EuclS.txt │ ├── 511EuclS.txt.opt │ ├── 611EuclS.txt │ ├── 611EuclS.txt.opt │ ├── 711EuclS.txt │ ├── 711EuclS.txt.opt │ ├── 811EuclS.txt │ ├── 811EuclS.txt.opt │ ├── 911EuclS.txt │ ├── 911EuclS.txt.opt │ └── files.lst └── src ├── csp ├── ColumnGeneration.java ├── Csp.java ├── CspMasterProblem.java ├── CspPriceProblem.java └── CspSolution.java ├── fctp ├── AbstractFctpSubProblem.java ├── Fctp.java ├── FctpMasterProblem.java ├── FctpSolution.java ├── ManualBenders.java ├── Parameters.java └── subproblem │ ├── FctpSubProblemDual.java │ └── FctpSubProblemPrimal.java ├── testdemo ├── CspDemo.java ├── FctpDemo.java ├── SolomonInsertionDemo.java ├── SpptwccDemo.java ├── UflpDemo.java └── VrptwExactAlgDemo.java ├── uflp ├── AnnotationBenders.java ├── Uflp.java └── UflpSolution.java └── vrptw ├── algorithm ├── VrptwExactAlgorithm.java ├── branchandbound │ └── BranchAndBound.java ├── branchandprice │ ├── BapMasterProblem.java │ ├── BapNode.java │ └── BranchAndPrice.java ├── solomoninsertion │ ├── Route.java │ └── SolomonInsertion.java └── subproblem │ ├── AbstractPriceProblem.java │ ├── labelalgorithm │ ├── AbstractLabel.java │ ├── EspptwccViaLabelCorrecting.java │ ├── LabelAlgorithm.java │ └── SpptwccViaLabelSetting.java │ └── pulsealgorithm │ └── EspptwccViaPulse.java ├── parameter └── Parameters.java ├── problem ├── Arc.java ├── TimeWindow.java ├── Vehicle.java ├── Vertex.java └── Vrptw.java └── solution ├── Path.java └── VrptwSolution.java /.gitignore: -------------------------------------------------------------------------------- 1 | .metadata 2 | bin/ 3 | tmp/ 4 | *.tmp 5 | *.bak 6 | *.swp 7 | *~.nib 8 | local.properties 9 | .settings/ 10 | .loadpath 11 | .recommenders 12 | 13 | # MacOS 14 | .DS_Store 15 | 16 | # Javadoc 17 | package-info.java 18 | 19 | # Eclipse Core 20 | .project 21 | 22 | # JDT-specific (Eclipse Java Development Tools) 23 | .classpath 24 | 25 | # External tool builders 26 | .externalToolBuilders/ 27 | 28 | # Locally stored "Eclipse launch configurations" 29 | *.launch 30 | # PyDev specific (Python IDE for Eclipse) 31 | *.pydevproject 32 | 33 | # CDT-specific (C/C++ Development Tooling) 34 | .cproject 35 | 36 | # CDT- autotools 37 | .autotools 38 | 39 | # Java annotation processor (APT) 40 | .factorypath 41 | 42 | # PDT-specific (PHP Development Tools) 43 | .buildpath 44 | 45 | # sbteclipse plugin 46 | .target 47 | 48 | # Tern plugin 49 | .tern-project 50 | 51 | # TeXlipse plugin 52 | .texlipse 53 | 54 | # STS (Spring Tool Suite) 55 | .springBeans 56 | 57 | # Code Recommenders 58 | .recommenders/ 59 | 60 | # Annotation Processing 61 | .apt_generated/ 62 | 63 | # Scala IDE specific (Scala & Java development for Eclipse) 64 | .cache-main 65 | .scala_dependencies 66 | .worksheet -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Exact Algorithm 2 | Exact algorithm implementation based on Cplex Java API. 3 | 4 | ## Problem and Algorithm 5 | ### Column generation 6 | 1. [Cut Stock Problem](./src/csp) 7 | - [Model](./docs/model/CSP.md) 8 | 9 | 10 | ### Benders Decomposition 11 | 1. [Uncapacitated Facility Location Problem(UFLP)](./src/uflp) 12 | - [Model](./docs/model/UFLP.md) 13 | - 基于 Cplex Benders Annotation 的 UFLP 的 Benders decomposition algorithm 实现 14 | 15 | 2. [Fixed Charge Transportation Problem(FCTP)](./src/fctp) 16 | - [Model](./docs/model/FCTP.md) 17 | - 基于 Cplex 通用回调(Generic Callback)实现 18 | - 支持原形式和对偶形式两种场景 19 | 20 | 21 | ### Branch and Bound 22 | 1. [VRPTW](./src/vrptw/algorithm/branchandbound) 23 | - 基于 Cplex 的 BranchCallback 实现 24 | - 旨在展示自定义 BranchCallback 的使用,对于代码未进行过多优化. 25 | 26 | 27 | ### Branch and Price 28 | 1. [VRPTW](./src/vrptw/algorithm/branchandprice) 29 | - 子问题 ESPPTWCC 使用 [Pulse Algorithm](./src/vrptw/algorithm/subproblem/pulsealgorithm) 求解 30 | - 旨在展示 Branch and Price Algorithm 的代码框架 31 | - 目前 C101-C109, R101 已经通过测试 32 | 33 | 34 | ## Test Demo 35 | The test demo code is in [src/testdemo](./src/testdemo) 36 | 37 | 38 | ## License 39 | The content of this project is licensed under the [Apache License 2.0](LICENSE). 40 | -------------------------------------------------------------------------------- /docs/javadoc/csp/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | csp 7 | 8 | 9 | 10 | 11 | 12 |

csp

13 |
14 |

15 | 22 |
23 | 24 | 25 | -------------------------------------------------------------------------------- /docs/javadoc/fctp/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | fctp 7 | 8 | 9 | 10 | 11 | 12 |

fctp

13 |
14 |

15 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/javadoc/fctp/subproblem/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | fctp.subproblem 7 | 8 | 9 | 10 | 11 | 12 |

fctp.subproblem

13 |
14 |

15 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /docs/javadoc/overview-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 概览列表 7 | 8 | 9 | 10 | 11 | 12 |
所有类
13 |
14 |

程序包

15 | 33 |
34 |

 

35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/javadoc/package-list: -------------------------------------------------------------------------------- 1 | csp 2 | fctp 3 | fctp.subproblem 4 | testdemo 5 | uflp 6 | vrptw 7 | vrptw.algorithm 8 | vrptw.algorithm.branchandbound 9 | vrptw.algorithm.branchandprice 10 | vrptw.algorithm.solomoninsertion 11 | vrptw.algorithm.subproblem 12 | vrptw.algorithm.subproblem.labelalgorithm 13 | vrptw.algorithm.subproblem.pulsealgorithm 14 | vrptw.parameter 15 | vrptw.problem 16 | vrptw.solution 17 | -------------------------------------------------------------------------------- /docs/javadoc/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /docs/javadoc/testdemo/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | testdemo 7 | 8 | 9 | 10 | 11 | 12 |

testdemo

13 |
14 |

15 | 23 |

枚举

24 | 27 |
28 | 29 | 30 | -------------------------------------------------------------------------------- /docs/javadoc/uflp/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | uflp 7 | 8 | 9 | 10 | 11 | 12 |

uflp

13 |
14 |

15 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /docs/javadoc/vrptw/algorithm/branchandbound/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | vrptw.algorithm.branchandbound 7 | 8 | 9 | 10 | 11 | 12 |

vrptw.algorithm.branchandbound

13 |
14 |

15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/javadoc/vrptw/algorithm/branchandprice/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | vrptw.algorithm.branchandprice 7 | 8 | 9 | 10 | 11 | 12 |

vrptw.algorithm.branchandprice

13 |
14 |

15 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /docs/javadoc/vrptw/algorithm/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | vrptw.algorithm 7 | 8 | 9 | 10 | 11 | 12 |

vrptw.algorithm

13 |
14 |

接口

15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/javadoc/vrptw/algorithm/solomoninsertion/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | vrptw.algorithm.solomoninsertion 7 | 8 | 9 | 10 | 11 | 12 |

vrptw.algorithm.solomoninsertion

13 |
14 |

15 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /docs/javadoc/vrptw/algorithm/subproblem/labelalgorithm/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | vrptw.algorithm.subproblem.labelalgorithm 7 | 8 | 9 | 10 | 11 | 12 |

vrptw.algorithm.subproblem.labelalgorithm

13 |
14 |

接口

15 | 18 |

19 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/javadoc/vrptw/algorithm/subproblem/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | vrptw.algorithm.subproblem 7 | 8 | 9 | 10 | 11 | 12 |

vrptw.algorithm.subproblem

13 |
14 |

15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/javadoc/vrptw/algorithm/subproblem/pulsealgorithm/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | vrptw.algorithm.subproblem.pulsealgorithm 7 | 8 | 9 | 10 | 11 | 12 |

vrptw.algorithm.subproblem.pulsealgorithm

13 |
14 |

15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/javadoc/vrptw/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | vrptw 7 | 8 | 9 | 10 | 11 | 12 |

vrptw

13 | 14 | 15 | -------------------------------------------------------------------------------- /docs/javadoc/vrptw/parameter/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | vrptw.parameter 7 | 8 | 9 | 10 | 11 | 12 |

vrptw.parameter

13 |
14 |

15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/javadoc/vrptw/problem/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | vrptw.problem 7 | 8 | 9 | 10 | 11 | 12 |

vrptw.problem

13 |
14 |

15 | 22 |
23 | 24 | 25 | -------------------------------------------------------------------------------- /docs/javadoc/vrptw/solution/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | vrptw.solution 7 | 8 | 9 | 10 | 11 | 12 |

vrptw.solution

13 |
14 |

15 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /docs/model/CSP.md: -------------------------------------------------------------------------------- 1 | # Cutting Stock Problem(CSP) 2 | 3 | ## 1 Problem 4 | * A set $K$ of rolls of length $L$ is available 5 | * Given $d \in \mathbb{Z}_+^n$ and $s \in \mathbb{R}_+^n$, the problem is to obtain $d_i$ pieces of length $s_i$ for $i \in I$, by cutting up the smallest possible number of rolls 6 | 7 | 8 | ## 2 IP Formulation 9 | * $y_k \in \{0,1\}, k \in K, y_k = 1$ if roll $k$ is used, 0 otherwise 10 | * $x_{ik} \geq 0 \, integer, k \in K, i \in I,$ is the number of times item $i$ being cut in roll $k$ 11 | 12 | $$ 13 | \begin{align} 14 | z(CSP) = \min &\sum_{k \in K} y_k \\ 15 | &\sum_{k \in K} x_{ik} \geq d_i \quad (\forall i \in I) \\ 16 | &\sum_{i \in I} s_i x_{ik} \leq L y_k \quad (\forall k \in K) \\ 17 | &x \in \mathbb{Z}_+^n, \quad y \in \{ 0,1 \}^{|K|} 18 | \end{align} 19 | $$ 20 | 21 | 22 | ## 3 Reformulation 23 | ### 3.1 Master Problem 24 | * $v_p, p \in P$ is the number of rolls cut using pattern $p$ 25 | * $x_i^p \geq 0 \, integer, i \in I, p \in P$ is the number of items $i$ in pattern $p$ 26 | 27 | $$ 28 | \begin{align} 29 | \min \quad &\sum_{p \in P} v_p \\ 30 | &\sum_{p \in P} x_i^p v^p \geq d_i \quad (\forall i \in I) \\ 31 | &v_p \geq 0, \, integer \quad (\forall p \in P) 32 | \end{align} 33 | $$ 34 | 35 | ### 3.2 Pricing Problem 36 | * $\pi_i$ is the dual price of constraints $i$ (item $i$ pieces demand) 37 | * $x_i^p \geq 0 \, integer, i \in I, p \in P$ is the number of items $i$ in pattern $p$ 38 | 39 | $$ 40 | \begin{align} 41 | \min \limits_{p \in P} \quad &1 - \sum_{i \in I} \pi_i x_i^p \\ 42 | &\sum_{i \in I} s_i x_i^p \leq L \\ 43 | &x_i^p \geq 0 \, integer \quad (\forall i \in I, p \in P) 44 | \end{align} 45 | $$ 46 | -------------------------------------------------------------------------------- /docs/model/FCTP.md: -------------------------------------------------------------------------------- 1 | # Fixed Charge Transportation Problem(FCTP) 2 | 3 | ## 1 Problem 4 | * Given a set $J$ of warehouses and a set of $K$ customers 5 | * $f_j, j \in J$ is the fixed cost of opening warehouse $j$ 6 | * $s_j, j \in J$ is the capacity of warehouse $j$ 7 | * $d_k, k \in K$ is the demand of customer $k$ 8 | * $c_{jk}, j \in J, k \in K$ is the unit cost of shipping commodity from warehouse $j$ to customer $k$ 9 | * Choose which warehouses to open and the flow from open warehoues to customers to satisfy some fixed demand at minimum cost 10 | 11 | ## 2 IP Formulation 12 | * $y_j \in \{0,1\}, j \in J, y_j = 1$ if warehouse $j$ is open, 0 otherwise 13 | * $x_{jk} \geq 0, j \in J, k \in K$ is the flow from warehouse $j$ to customer $k$ 14 | 15 | $$ 16 | \begin{align} 17 | \min \quad &\sum_{j \in J} \sum_{k \in K} c_{jk} x_{jk} + \sum_{j \in J} f_j y_j \\ 18 | &\sum_{j \in J} x_{jk} \geq d_k &(\forall k \in K) \\ 19 | &\sum_{k \in K} x_{jk} \leq s_j y_j &(\forall j \in J) \\ 20 | &x_{jk} \geq 0 &(\forall j \in J, k \in K) \\ 21 | &y_j \in \{0,1\} &(\forall j \in J) 22 | \end{align} 23 | $$ 24 | 25 | 26 | ## 3 Reformulation 27 | ### 3.1 Primal SubProblem - $LP(y)$ 28 | * Fix $y$, we can get $LP(y)$: 29 | 30 | $$ 31 | \begin{align} 32 | \quad z_{LP(y)} = min \quad &\sum_{j \in J}\sum_{k \in K}c_{jk} x_{jk} \tag{3.1.1} \\ 33 | &\sum_{j \in J}x_{jk} \geq d_k &(\forall k \in K) \tag{3.1.2} \label{3.1.2} \\ 34 | &\sum_{k \in K} x_{jk} \leq s_j y_j &(\forall j \in J) \tag{3.1.3} \label{3.1.3} \\ 35 | &x_{jk} \geq 0 &(\forall j \in J, k \in K) 36 | \end{align} 37 | $$ 38 | 39 | ### 3.2 Dual SubProblem 40 | * $u_k \geq 0, k \in K$ is the dual variables corresponding to $\ref{3.1.2}$ 41 | * $-v_j \leq 0, j \in J$ is the dual variables corresponding to $\ref{3.1.3}$ 42 | 43 | $$ 44 | \begin{align} 45 | \quad z_{LP(y)} = \max \quad &\sum_{k \in K} d_k u_k - \sum_{j \in J} s_j v_j y_j \\ 46 | &u_k - v_j \leq c_{jk} \quad (\forall j \in J, k \in K) \tag{3.2.1} \label{3.2.1} \\ 47 | &u,v \geq 0 48 | \end{align} 49 | $$ 50 | 51 | 52 | ### 3.3 Master Problem 53 | * $p \in P$ is the extreme point corresponding to $\ref{3.2.1}$ 54 | * $r \in R$ is the extreme direction corresponding to $u_k - v_j \leq 0$ 55 | 56 | $$ 57 | \begin{align} 58 | \min \quad &\sum_{j \in J} f_j y_j + \sigma \\ 59 | &\sum_{k \in K} d_k u_k^p - \sum_{j \in J} s_j v_j^p y_j \leq \sigma &(\forall p \in P) \\ 60 | &\sum_{k \in K} d_k u_k^r - \sum_{j \in J} s_j v_j^r y_j \leq 0 &(\forall r \in R) 61 | \end{align} 62 | $$ 63 | 64 | -------------------------------------------------------------------------------- /docs/model/UFLP.md: -------------------------------------------------------------------------------- 1 | # Uncapacitated Facility Location Problem(UFLP) 2 | 3 | ## 1 Problem 4 | * Given a set $J$ of warehouses and a set $K$ of customers 5 | * $f_j, j \in J$ is the fixed cost of opening warehouse $j$ 6 | * $c_{jk}, j \in J, k \in K$ is the cost of shipping commodity from warehouse $j$ to customer $k$ 7 | * Choose which warehouses to open and which open warehoues to use to supply the customers to at minimum cost 8 | 9 | ## 2 IP Formulation 10 | * $y_j \in \{0,1\}, j \in J, y_j = 1$ if warehouse $j$ is open, 0 otherwise 11 | * $x_{jk} \in \{0,1\}, j \in J, k \in K, x_{jk} = 1$ if use warehouse $j$ to supply customer $k$, 0 otherwise($x$ can be relaexed to $0 \leq x \leq 1$ in UFLP) 12 | 13 | $$ 14 | \begin{align} 15 | \min \quad &\sum_{j \in J} \sum_{k \in K} c_{jk} x_{jk} + \sum_{j \in J} f_j y_j \\ 16 | &\sum_{j \in J} x_{jk} = 1 &(\forall k \in K) \\ 17 | &x_{jk} \leq y_j &(\forall j \in J, k \in K) \\ 18 | &0 \leq x_{jk} \leq 1 &(\forall j \in J, k \in K) \\ 19 | &y_j \in \{0,1\} &(\forall j \in J) 20 | \end{align} 21 | $$ 22 | 23 | 24 | ## 3 Reformulation 25 | ### 3.1 SubProblem - $LP(y)$ 26 | * Fix $y$, we can get $LP(y)$: 27 | 28 | $$ 29 | \begin{align} 30 | \quad z_{LP(y)} = \min \quad &\sum_{j \in J} \sum_{k \in K}c_{jk} x_{jk} \\ 31 | &\sum_{j \in J}x_{jk} = 1 &(\forall k \in K) \\ 32 | &x_{jk} \leq y_j &(\forall j \in J, k \in K) \\ 33 | &0 \leq x_{jk} \leq 1 &(\forall j \in J, k \in K) 34 | \end{align} 35 | $$ 36 | 37 | 38 | ### 3.2 SubProblems - $z_{LP(y)}^k$ 39 | * $LP(y)$ can be decomposed into $|K|$ subproblems, one each for $k \in K$ 40 | * $z_{LP(y)} = \sum_{k \in K}z_{LP(y)}^k$ 41 | 42 | $$ 43 | \begin{align} 44 | z_{LP(y)}^k = \min \quad &\sum_{j \in J}c_{jk} x_{jk} \\ 45 | &\sum_{j \in J}x_{jk} = 1 \\ 46 | &x_{jk} \leq y_j &(\forall j \in J) \\ 47 | &0 \leq x_{jk} \leq 1 &(\forall j \in J) 48 | \end{align} 49 | $$ 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /docs/reference/A tutorial on column generation and branch-and-price for vehicle routing problems.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiongwq16/exact-algorithm/f28de4c56544f1e12099b807f2757c79f6408a01/docs/reference/A tutorial on column generation and branch-and-price for vehicle routing problems.pdf -------------------------------------------------------------------------------- /docs/reference/SPPRC/A comparison between label-setting and label-correcting.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiongwq16/exact-algorithm/f28de4c56544f1e12099b807f2757c79f6408a01/docs/reference/SPPRC/A comparison between label-setting and label-correcting.pdf -------------------------------------------------------------------------------- /docs/reference/SPPRC/Label_Algorithm-Shortest_Path_Problems_with_Resource_Constraints.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiongwq16/exact-algorithm/f28de4c56544f1e12099b807f2757c79f6408a01/docs/reference/SPPRC/Label_Algorithm-Shortest_Path_Problems_with_Resource_Constraints.pdf -------------------------------------------------------------------------------- /docs/reference/SPPRC/Lable_Correcting_Algorithm-An Exact Algorithm for the Elementary Shortest Path Problem with Resource Constraints- Application to Some Vehicle Routing Problems.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiongwq16/exact-algorithm/f28de4c56544f1e12099b807f2757c79f6408a01/docs/reference/SPPRC/Lable_Correcting_Algorithm-An Exact Algorithm for the Elementary Shortest Path Problem with Resource Constraints- Application to Some Vehicle Routing Problems.pdf -------------------------------------------------------------------------------- /docs/reference/SPPRC/Lable_Setting_Algorithm-Accelerated label setting algorithms for the elementary resource constrained shortest path problem.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiongwq16/exact-algorithm/f28de4c56544f1e12099b807f2757c79f6408a01/docs/reference/SPPRC/Lable_Setting_Algorithm-Accelerated label setting algorithms for the elementary resource constrained shortest path problem.pdf -------------------------------------------------------------------------------- /docs/reference/SPPRC/Pluse_Algorithm-An Exact Algorithm for the Elementary Shortest Path Problem with Resource Constraints.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiongwq16/exact-algorithm/f28de4c56544f1e12099b807f2757c79f6408a01/docs/reference/SPPRC/Pluse_Algorithm-An Exact Algorithm for the Elementary Shortest Path Problem with Resource Constraints.pdf -------------------------------------------------------------------------------- /docs/reference/SolomonoI1/Vehicle Routing Problem with Time Windows, Part I- Route Construction and Local Search Algorithms.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiongwq16/exact-algorithm/f28de4c56544f1e12099b807f2757c79f6408a01/docs/reference/SolomonoI1/Vehicle Routing Problem with Time Windows, Part I- Route Construction and Local Search Algorithms.pdf -------------------------------------------------------------------------------- /docs/reference/Vehicle Routing Problem with Time Windows.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiongwq16/exact-algorithm/f28de4c56544f1e12099b807f2757c79f6408a01/docs/reference/Vehicle Routing Problem with Time Windows.pdf -------------------------------------------------------------------------------- /instances/cutstock.txt: -------------------------------------------------------------------------------- 1 | 115 2 | 25 40 50 55 70 3 | 50 36 24 8 30 4 | 5 | -------------------------------------------------------------------------------- /instances/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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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 | -------------------------------------------------------------------------------- /instances/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_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_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_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_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_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_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_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_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_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_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_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 | -------------------------------------------------------------------------------- /instances/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_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_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_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_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 | -------------------------------------------------------------------------------- /instances/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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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/uflp/CLSC/1033GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 51 11 31 99 16 51 27 11 0 48 48 13 99 16 0 0 48 43 27 0 99 13 62 62 13 48 6 99 0 51 31 7 43 73 48 99 6 0 51 13 62 0 13 0 13 99 0 62 43 11 6 7 16 0 62 62 31 43 51 6 7 27 13 73 13 31 62 99 48 73 27 7 6 31 43 43 31 27 62 62 11 11 16 48 7 48 27 11 6 43 43 27 16 16 6 43 16 6 16 43 42138 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/1133GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 33 22 13 82 82 33 37 33 2 37 90 88 2 36 36 36 12 22 82 12 22 12 37 58 90 33 88 37 71 2 2 82 17 88 2 17 22 2 2 13 90 37 27 2 27 12 37 36 71 88 36 33 27 33 37 33 37 36 2 27 27 33 33 88 36 37 33 71 88 27 12 58 88 22 17 22 90 13 22 58 58 17 90 88 17 17 13 17 71 90 27 22 27 88 71 71 17 13 90 13 42147 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/1233GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 81 13 89 24 72 71 13 51 24 47 89 71 93 0 47 93 24 93 87 24 13 47 89 89 71 44 51 8 51 93 93 93 93 89 51 71 87 93 87 2 44 81 81 2 24 8 44 51 44 87 71 24 8 44 71 72 47 44 87 87 2 13 2 44 81 72 89 0 89 72 47 24 89 87 71 81 71 51 81 2 44 24 72 24 81 8 2 8 2 2 0 8 51 8 0 0 0 0 0 0 42142 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/1333GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 96 85 96 3 48 96 25 0 3 25 1 90 69 1 1 65 96 3 65 25 22 96 96 41 41 1 54 85 96 1 3 25 70 41 96 0 1 70 22 65 0 48 90 22 85 54 41 65 3 0 22 70 54 70 70 69 3 48 70 90 90 0 90 70 22 22 48 54 48 90 90 65 54 1 65 0 3 69 85 48 0 70 41 85 54 54 69 1 69 85 70 69 69 69 0 25 25 25 25 25 42140 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/1433GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 21 54 71 21 24 21 48 73 64 64 79 79 38 54 16 38 52 82 64 82 68 68 82 64 73 54 52 73 79 24 79 73 21 71 48 48 71 78 52 73 73 78 79 64 24 52 73 16 24 38 79 48 68 64 38 73 16 68 68 16 21 64 78 54 73 82 16 38 71 21 54 38 21 79 82 48 68 64 52 73 54 52 54 68 64 52 54 24 38 54 79 71 38 79 68 78 71 78 78 79 42152 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/1533GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 90 64 64 18 34 51 66 4 37 51 72 65 21 66 72 90 66 32 34 66 34 18 18 21 37 4 4 32 90 37 64 37 21 50 21 32 34 72 1 66 18 90 72 65 90 1 37 21 1 66 37 18 65 66 64 51 1 65 66 51 72 4 65 34 1 18 32 90 18 90 66 4 32 1 64 51 50 65 32 51 64 4 51 90 64 90 34 21 72 21 34 65 32 32 50 72 72 34 1 50 42133 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/1633GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 50 81 95 96 81 81 36 51 70 70 36 50 87 36 36 23 89 89 41 50 96 34 95 99 87 81 81 96 51 96 36 41 41 36 87 96 96 51 95 34 87 41 89 22 41 70 70 34 36 23 95 87 51 51 96 50 70 95 34 36 99 36 99 23 87 89 34 22 99 51 41 23 70 51 89 89 51 41 50 87 34 99 50 95 50 89 23 95 95 34 99 99 34 22 22 22 22 22 22 22 42141 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/1733GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 51 43 52 51 7 43 70 56 43 51 88 31 52 7 7 88 43 56 54 43 81 98 88 51 51 94 98 78 94 94 94 31 54 88 81 7 70 78 31 94 88 98 54 78 43 94 64 81 51 98 70 64 81 31 51 7 56 94 70 64 70 70 31 7 7 31 98 7 70 54 56 7 52 81 64 70 52 43 70 81 81 64 43 31 56 56 31 78 81 56 31 64 81 56 64 52 78 31 78 78 42134 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/1833GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 75 50 89 33 17 53 30 4 11 40 75 53 73 11 56 7 30 17 89 30 30 7 53 17 40 56 56 30 33 73 4 50 53 56 89 17 33 30 75 75 73 56 4 33 30 53 50 73 73 4 17 50 7 50 40 40 33 82 89 82 73 73 82 53 73 11 11 4 53 11 17 4 89 53 82 89 7 7 7 4 17 89 11 56 89 7 89 40 40 82 7 75 40 82 17 75 75 4 40 4 42139 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/1933GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 90 91 76 15 12 91 15 90 64 27 57 68 90 91 90 76 75 21 57 63 27 63 90 91 90 27 64 12 68 57 91 57 21 86 64 86 75 63 63 91 5 12 75 90 5 64 68 63 75 76 76 15 64 5 68 68 12 15 15 12 64 75 76 5 12 21 75 21 64 76 86 75 27 91 68 27 21 76 57 63 21 64 64 5 21 21 86 15 27 5 27 57 5 86 15 64 12 86 12 86 42137 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/2033GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 27 56 74 97 27 93 67 93 74 23 74 27 97 56 4 93 72 4 93 4 74 83 97 97 23 97 32 97 67 97 23 72 26 60 93 56 67 67 4 26 93 27 72 32 56 23 72 74 10 56 72 4 26 26 32 60 4 83 72 74 23 32 83 74 26 60 10 72 83 10 72 83 72 10 74 26 23 83 93 26 27 32 10 83 32 26 93 56 60 32 32 60 32 32 56 83 83 60 60 60 42140 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/2133GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 9 97 56 25 96 51 56 14 94 25 11 27 90 27 94 94 97 14 94 27 96 9 97 90 94 97 11 2 27 80 97 27 9 27 51 94 96 99 9 80 14 56 99 2 9 56 2 51 51 51 80 56 90 56 9 80 14 11 14 11 51 94 80 2 80 9 56 96 97 25 99 25 14 11 99 94 80 90 97 99 96 56 51 99 9 9 99 14 56 96 2 51 2 90 11 90 14 90 90 11 42138 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/2233GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 13 24 74 5 16 32 13 7 5 66 31 66 66 74 84 54 84 13 16 30 30 24 88 16 7 16 88 84 62 31 62 13 74 88 30 54 30 32 7 74 30 7 16 5 84 54 62 84 5 74 24 74 31 84 84 16 66 66 74 74 31 74 24 7 13 62 7 84 54 54 7 31 7 88 88 62 24 88 24 84 84 54 54 32 31 32 54 62 16 32 32 88 88 5 62 32 32 5 5 32 42121 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/2333GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 79 68 94 12 24 60 87 6 21 87 12 91 24 94 7 87 79 20 24 24 87 79 20 20 94 20 41 87 94 21 94 21 20 24 26 7 68 24 12 6 41 6 7 6 24 21 6 68 60 7 21 20 21 20 94 60 68 26 6 21 21 87 60 87 7 94 87 7 79 41 7 6 6 7 60 41 24 26 41 60 60 94 26 41 68 41 91 26 79 12 68 68 79 12 91 91 91 91 91 79 42133 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/2433GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 2 76 28 74 61 76 87 87 11 73 73 66 11 28 74 66 73 28 28 76 28 20 77 89 28 37 87 87 28 74 77 28 66 61 11 74 11 66 74 37 87 61 73 2 61 28 11 20 11 73 20 89 84 84 20 2 87 37 84 66 73 2 74 84 76 20 2 89 2 73 2 76 76 61 66 77 74 89 77 74 20 37 37 2 37 61 73 73 2 73 66 89 76 61 89 89 66 77 77 77 42139 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/2533GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 84 26 67 61 55 10 68 10 31 68 67 61 70 65 81 61 84 65 4 67 26 4 67 26 10 7 81 70 81 7 67 81 10 67 26 67 31 55 81 4 26 68 10 70 70 84 67 67 26 81 31 4 68 4 68 4 7 55 65 7 4 7 10 4 7 4 81 70 61 65 65 84 26 55 65 31 4 84 70 55 65 10 44 31 55 84 70 61 31 44 70 61 84 68 44 44 68 44 44 44 42131 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/2633GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 65 9 65 50 27 94 23 27 23 23 27 27 98 65 68 54 8 27 26 68 65 98 26 38 68 38 98 54 70 54 68 54 65 70 94 98 26 54 9 65 98 27 98 9 9 68 54 23 27 38 38 50 54 65 54 66 23 70 26 26 65 23 70 38 68 68 66 23 70 98 23 98 94 38 23 26 8 26 26 94 50 38 66 94 66 9 8 9 38 50 9 8 50 50 94 9 8 8 8 8 42132 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/2733GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 30 18 18 18 30 56 49 70 37 31 30 70 49 31 90 38 49 34 70 90 1 3 90 56 31 70 34 70 90 3 39 1 37 37 49 90 3 30 30 37 31 38 37 34 1 1 70 3 91 56 38 38 37 70 37 38 18 91 18 38 90 34 90 70 37 70 30 49 39 31 49 34 39 3 56 3 30 91 38 56 39 56 38 39 1 39 91 18 30 31 49 1 49 91 1 1 1 56 31 91 42139 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/2833GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 61 30 98 98 80 30 17 53 17 55 61 56 41 58 55 49 53 56 30 57 49 53 58 56 30 98 49 55 30 57 98 58 41 61 98 98 41 57 80 20 58 98 80 57 61 30 30 49 98 30 53 41 80 49 20 20 17 57 61 49 17 20 17 20 58 53 57 57 20 41 55 56 41 53 72 80 55 56 58 53 72 41 17 20 72 80 17 80 56 72 80 17 56 72 55 17 55 55 55 55 42137 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/2933GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 55 22 55 12 56 4 52 55 52 4 58 55 56 30 30 60 69 30 23 55 55 30 30 52 12 5 30 84 69 58 5 52 58 69 4 12 44 56 22 69 58 30 5 52 5 5 23 4 23 60 52 84 69 22 52 12 30 5 22 22 56 5 69 84 30 12 44 58 52 56 5 56 23 44 44 23 44 12 84 52 44 23 22 4 58 60 23 4 12 84 58 12 84 4 4 84 22 84 56 22 42124 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/3033GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 89 17 57 57 74 74 89 95 91 78 19 63 63 19 95 57 63 57 95 67 64 64 89 95 67 91 78 95 91 17 74 64 19 19 17 17 95 63 40 74 57 63 63 57 34 17 78 16 64 89 95 64 40 16 64 16 57 74 40 19 64 34 40 91 16 19 57 34 19 57 40 89 57 17 74 89 19 74 16 16 78 74 16 17 74 34 67 16 34 91 16 19 91 67 67 67 91 34 78 78 42137 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/3133GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 72 90 74 72 44 69 38 74 38 83 69 44 8 84 84 44 69 76 65 96 8 69 96 76 90 69 69 90 38 44 84 72 84 65 72 8 21 84 65 83 83 96 65 65 83 72 96 83 83 72 84 89 65 44 72 65 65 44 96 74 96 83 8 90 89 72 96 96 38 76 96 89 21 44 74 76 83 84 83 89 89 74 89 90 89 74 76 89 74 38 21 38 76 21 21 90 21 89 76 76 42141 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/3233GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 24 71 32 24 24 2 32 59 79 85 2 2 32 24 5 71 32 24 94 59 85 71 94 79 71 32 24 59 24 24 83 2 24 2 71 21 21 5 92 5 61 85 85 71 32 85 79 59 67 32 79 67 92 79 83 5 79 5 32 59 59 2 61 61 85 5 32 59 5 94 83 92 59 21 21 83 83 21 67 83 5 61 61 92 5 79 94 67 83 79 92 94 92 67 61 83 67 61 67 61 42129 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/333GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 27 27 56 27 23 23 33 65 56 56 33 23 33 25 49 49 33 79 27 74 79 33 65 27 28 91 27 33 27 52 17 33 23 6 6 65 74 52 91 49 79 23 49 6 17 91 17 17 65 74 91 23 49 79 79 17 25 17 79 33 49 74 6 56 6 49 79 49 25 56 6 74 17 28 56 65 28 65 25 91 56 74 28 74 91 28 91 91 28 56 25 52 25 52 17 33 52 25 28 28 42147 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/433GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 75 49 41 28 28 89 49 89 67 33 50 49 39 87 58 58 87 41 39 89 87 75 28 39 75 50 58 58 58 46 89 50 39 67 58 33 75 75 28 87 89 50 46 46 41 57 33 33 33 89 28 57 46 57 28 89 75 57 73 49 57 33 49 58 49 49 49 75 89 33 75 75 28 73 57 49 73 41 67 89 41 46 57 50 57 28 57 67 75 67 67 50 73 87 73 50 87 87 73 87 42145 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/533GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 70 91 34 39 91 53 67 90 83 67 67 71 59 39 59 8 32 39 91 53 8 29 91 32 67 71 39 39 32 32 90 59 8 83 59 90 59 67 59 8 53 67 71 8 90 34 29 83 32 39 53 32 59 70 83 91 34 90 53 34 29 83 39 53 91 32 59 34 91 71 70 90 91 71 67 70 29 8 29 32 83 91 90 90 32 34 90 53 53 29 29 83 29 34 83 70 70 70 70 70 39177 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/633GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 87 14 64 37 72 70 64 5 14 5 53 64 87 70 32 70 72 53 37 37 64 37 41 87 72 72 53 5 87 20 64 5 72 64 72 69 5 87 64 70 14 31 14 14 87 69 14 87 64 5 32 70 20 32 87 72 72 72 41 20 20 20 31 20 20 14 70 41 28 69 14 14 28 5 69 41 28 53 69 53 70 28 53 32 20 70 53 53 20 5 69 31 32 37 41 31 37 5 69 37 42144 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/733GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 41 53 55 48 93 53 95 95 90 48 54 75 75 95 90 53 90 93 95 90 35 2 93 41 75 2 32 93 55 93 75 53 32 32 35 53 54 64 48 53 41 48 35 93 2 41 75 64 95 41 37 37 32 90 64 95 90 93 2 54 48 41 54 54 32 35 37 41 48 90 37 2 53 35 32 64 64 41 64 64 55 55 32 64 35 95 90 55 95 90 55 55 54 37 35 54 2 37 2 2 42137 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/833GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 16 44 16 59 38 50 95 16 73 38 95 44 82 84 50 45 10 50 82 38 44 82 82 85 24 24 38 38 24 24 85 50 45 50 16 73 95 85 59 24 84 73 85 54 45 95 82 95 59 95 50 82 95 54 85 50 59 95 16 59 45 24 84 44 73 95 38 44 54 45 10 44 54 16 44 82 84 45 82 54 59 38 16 73 45 85 73 73 10 85 54 54 24 10 10 10 24 84 84 84 42144 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/933GapCS.txt.opt: -------------------------------------------------------------------------------- 1 | 92 97 97 11 46 19 32 66 56 56 4 46 24 21 11 96 11 56 92 32 11 4 66 11 83 4 46 21 4 66 66 24 21 11 66 56 92 21 97 97 79 21 24 4 83 24 4 24 79 83 66 24 92 97 83 92 46 92 24 4 11 32 79 97 92 4 96 56 21 92 83 56 46 56 92 56 66 79 96 79 96 83 79 19 83 32 83 32 46 32 79 96 19 19 32 96 19 96 32 96 42130 2 | -------------------------------------------------------------------------------- /instances/uflp/CLSC/files.lst: -------------------------------------------------------------------------------- 1 | 1033GapCS.txt 2 | 1133GapCS.txt 3 | 1233GapCS.txt 4 | 1333GapCS.txt 5 | 1433GapCS.txt 6 | 1533GapCS.txt 7 | 1633GapCS.txt 8 | 1733GapCS.txt 9 | 1833GapCS.txt 10 | 1933GapCS.txt 11 | 2033GapCS.txt 12 | 2133GapCS.txt 13 | 2233GapCS.txt 14 | 2333GapCS.txt 15 | 2433GapCS.txt 16 | 2533GapCS.txt 17 | 2633GapCS.txt 18 | 2733GapCS.txt 19 | 2833GapCS.txt 20 | 2933GapCS.txt 21 | 3033GapCS.txt 22 | 3133GapCS.txt 23 | 3233GapCS.txt 24 | 333GapCS.txt 25 | 433GapCS.txt 26 | 533GapCS.txt 27 | 633GapCS.txt 28 | 733GapCS.txt 29 | 833GapCS.txt 30 | 933GapCS.txt -------------------------------------------------------------------------------- /instances/uflp/Euclid/1011EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 17 45 22 44 43 17 19 63 23 29 19 19 59 59 63 17 19 17 69 19 43 69 22 23 59 19 57 29 59 29 59 44 57 75 17 63 23 23 75 63 17 63 44 43 44 45 22 57 69 43 44 59 59 17 69 22 59 57 19 59 29 63 57 63 45 59 44 43 57 69 43 75 29 45 43 75 23 69 75 23 45 44 69 45 57 63 45 59 69 75 57 22 45 22 57 17 17 22 17 59 95868 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/1111EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 31 34 64 21 38 5 20 73 45 64 38 85 38 31 23 64 96 64 60 21 20 21 45 23 60 23 96 73 60 5 38 31 31 23 34 52 5 20 38 23 96 52 38 85 20 45 38 34 5 38 60 85 52 85 38 31 5 52 21 52 60 45 34 85 64 21 20 20 38 96 31 5 20 73 85 64 5 85 60 31 64 20 45 5 21 85 60 5 23 60 38 23 73 45 21 60 96 85 20 64 97181 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/111EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 97 1 3 3 1 5 5 97 73 9 1 25 3 1 18 1 5 97 18 9 73 3 9 26 26 25 26 9 25 52 30 26 52 1 61 5 1 52 9 73 18 1 25 5 26 30 3 5 73 97 97 52 52 26 1 5 73 5 1 30 61 61 1 52 26 9 3 5 73 73 3 30 26 73 5 52 5 25 97 18 9 9 30 1 30 18 25 30 52 18 9 61 26 9 61 30 26 97 30 52 96116 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/1211EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 11 34 43 86 71 59 59 47 34 86 92 11 55 13 14 87 58 92 34 71 71 47 92 87 13 43 87 11 71 86 14 13 58 71 34 43 34 87 86 92 61 61 47 43 11 71 43 47 86 14 87 34 61 13 43 55 87 47 58 59 14 61 11 34 47 86 58 34 55 34 92 71 47 92 71 59 34 58 71 11 86 55 59 71 55 58 86 87 13 87 58 43 92 61 58 55 47 14 43 13 98528 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/1311EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 96 49 49 49 4 54 49 54 63 57 96 49 44 63 96 78 96 23 96 74 60 54 23 23 44 63 67 44 99 83 23 74 60 57 99 67 60 67 44 63 83 44 63 49 44 67 78 99 44 49 74 54 23 96 54 44 60 57 57 54 60 63 54 63 54 63 78 67 78 74 57 57 49 4 74 23 60 23 78 23 49 60 83 83 67 74 99 57 54 63 54 23 78 60 74 78 96 60 44 99 99880 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/1411EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 94 95 83 12 83 41 6 83 94 41 10 94 12 68 10 41 16 17 17 83 83 41 16 6 97 17 68 28 28 97 41 6 94 10 6 95 68 95 28 28 94 41 41 16 10 12 6 17 41 50 50 50 95 17 68 16 50 97 50 17 95 41 6 12 6 6 6 94 68 41 95 28 12 68 83 16 95 97 12 41 97 28 10 83 6 94 83 28 6 10 83 6 17 94 94 95 83 97 95 95 96460 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/1511EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 61 16 93 3 4 5 14 4 11 14 28 11 27 25 14 14 16 16 25 61 14 14 5 93 24 25 16 27 28 4 5 27 25 4 14 27 97 93 16 5 28 25 97 97 11 5 14 5 4 93 4 28 28 11 97 28 97 11 27 24 4 61 28 14 97 14 93 11 25 28 4 4 16 4 61 24 5 24 5 3 93 27 14 61 4 97 27 24 3 97 5 93 14 93 61 14 16 97 11 3 99239 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/1611EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 11 1 66 3 4 96 11 41 95 41 66 11 4 96 4 4 16 95 72 4 4 72 16 72 77 91 1 3 16 4 96 96 96 71 41 77 77 95 4 3 41 41 4 1 41 41 72 91 4 4 3 4 16 3 72 77 3 11 77 11 71 41 71 3 95 95 66 71 71 11 3 71 72 89 1 72 3 77 72 91 1 66 71 1 1 96 91 96 16 89 89 91 77 3 72 95 96 41 91 89 98486 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/1711EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 67 96 90 13 90 44 73 96 67 26 10 11 10 13 30 67 26 30 18 43 26 10 30 90 28 11 26 18 28 13 30 13 47 44 73 96 28 47 44 47 90 86 18 43 44 26 96 47 43 73 44 28 44 43 86 86 26 10 30 67 26 28 47 30 26 11 11 67 47 26 86 96 47 73 10 28 67 90 73 28 47 18 43 10 11 44 86 13 11 67 90 13 43 28 10 10 96 90 43 26 97578 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/1811EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 96 1 55 96 95 28 6 6 96 1 70 28 53 21 40 28 95 83 95 95 1 21 45 70 40 6 55 6 28 45 1 21 70 45 81 81 81 90 96 83 40 1 90 96 96 45 70 55 21 70 40 70 1 53 83 55 40 70 95 21 96 81 55 96 1 55 90 83 53 70 70 95 21 28 83 55 70 83 70 95 6 81 1 83 53 55 83 70 83 83 90 28 28 6 81 95 96 53 45 53 100189 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/1911EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 69 78 7 5 87 5 14 7 99 56 78 50 87 50 14 15 35 87 56 87 7 33 78 87 15 15 15 35 5 56 78 97 69 33 97 35 50 78 7 50 35 97 35 97 97 50 97 5 14 33 50 5 99 69 69 15 56 15 50 14 97 69 33 15 35 56 15 50 7 69 35 14 97 56 35 5 5 50 78 87 7 33 5 56 15 97 15 87 87 87 78 56 56 56 7 35 15 97 7 99 98617 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/2011EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 25 6 64 64 62 65 6 42 45 14 78 74 47 47 14 6 94 65 14 64 45 64 14 38 64 25 64 94 94 78 74 74 47 40 42 74 38 78 38 25 40 14 42 74 14 45 78 47 38 74 42 74 45 45 6 65 42 14 62 38 62 47 62 14 64 65 45 94 64 65 64 45 74 94 74 6 64 62 78 78 40 94 6 74 40 40 47 64 65 45 64 25 45 64 94 62 42 62 94 40 96938 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/2111EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 22 92 36 92 4 40 88 87 36 9 53 22 92 48 14 53 4 36 4 87 40 22 22 40 9 36 4 14 30 9 30 9 53 4 36 22 36 53 4 30 40 88 92 36 30 40 88 48 48 30 88 88 30 53 53 88 48 14 40 9 9 4 88 53 22 22 9 88 30 92 22 30 14 9 36 4 53 22 53 9 14 9 40 36 40 53 4 87 88 53 4 9 92 36 22 92 48 22 22 4 94611 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/211EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 9 64 48 7 4 5 96 7 4 9 4 60 79 94 9 5 96 21 64 60 5 21 96 94 79 5 4 79 93 21 94 7 5 7 48 64 93 60 96 5 46 4 48 48 9 4 46 48 48 9 46 21 46 64 93 48 60 4 64 5 60 64 5 46 64 94 93 4 9 94 46 96 9 46 48 4 9 79 7 79 9 60 60 21 5 96 94 21 79 7 46 79 96 93 94 79 96 4 5 64 98091 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/2211EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 0 55 50 61 12 54 81 54 67 55 10 12 12 34 22 54 86 67 0 10 0 12 22 61 86 55 81 94 0 61 34 81 0 61 34 91 55 50 54 50 94 10 22 50 10 12 61 22 81 12 50 12 86 86 54 55 71 71 81 61 91 61 61 34 34 55 81 67 61 94 0 71 91 91 86 71 91 0 71 81 71 81 12 86 81 22 86 55 86 10 34 91 34 71 94 22 61 10 94 67 98238 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/2311EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 74 1 74 49 68 46 41 21 81 88 41 74 35 41 74 79 63 46 46 42 68 21 46 35 42 63 35 35 49 88 81 42 81 74 79 35 81 1 88 88 42 41 42 63 42 21 46 46 79 49 21 1 88 68 79 68 49 74 79 41 41 74 1 63 41 81 46 46 68 35 63 79 1 88 74 74 42 49 46 79 41 81 41 21 88 35 81 74 88 88 46 88 68 42 88 42 21 63 41 88 97419 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/2411EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 6 13 23 57 90 80 6 77 35 16 98 13 39 13 13 15 16 39 80 62 13 6 23 23 80 77 98 80 6 23 23 62 13 37 62 35 57 37 37 39 39 98 77 39 62 37 98 15 77 35 6 35 23 57 16 62 90 57 77 98 15 80 62 37 90 62 16 35 98 80 77 23 35 57 39 23 6 77 39 35 80 37 77 39 23 77 15 23 37 90 90 57 35 77 23 77 16 23 98 57 96715 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/2511EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 2 83 2 37 80 5 6 2 8 6 10 57 12 2 12 6 79 26 83 80 83 21 37 66 26 26 26 37 2 5 83 6 2 10 12 8 80 37 2 10 2 26 80 83 67 12 8 21 57 79 10 6 10 2 79 67 80 57 66 21 8 21 10 37 6 57 66 67 6 83 97 2 12 5 83 57 6 21 67 79 80 2 12 83 67 66 5 66 12 5 12 5 6 97 79 80 67 97 21 80 99195 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/2611EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 48 99 44 99 15 44 82 99 82 19 48 99 48 15 14 15 99 31 84 19 60 31 99 14 82 99 14 31 31 80 84 31 44 19 60 15 48 60 14 91 60 80 48 91 44 44 91 80 48 80 82 14 48 80 84 15 84 99 48 84 60 15 15 80 99 44 31 80 84 91 31 15 82 91 82 15 14 84 82 80 80 15 82 91 84 19 84 80 99 60 84 91 91 80 48 48 84 60 19 99 96088 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/2711EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 82 47 24 97 78 27 47 82 78 47 24 62 21 82 24 69 40 78 69 21 40 21 21 82 24 47 95 27 69 97 30 31 47 30 62 27 40 47 62 31 40 69 95 97 82 27 30 47 24 40 27 82 47 27 82 31 62 62 82 31 69 82 62 24 82 30 31 78 40 69 69 69 62 40 95 31 31 47 78 97 27 31 82 95 31 62 82 47 82 62 78 40 62 47 82 95 27 97 62 30 93845 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/2811EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 73 7 70 64 40 7 49 7 56 49 64 7 34 13 64 64 64 56 70 49 34 64 13 70 73 13 34 43 56 82 82 56 56 7 34 34 64 43 95 7 40 13 7 43 93 70 93 64 95 49 49 70 43 7 34 83 56 82 73 34 7 70 95 95 64 93 93 13 43 82 70 49 56 73 83 56 82 73 40 7 49 40 82 83 34 49 64 34 95 43 40 93 40 93 7 95 13 93 70 82 100651 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/2911EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 0 1 99 28 27 16 27 11 28 11 0 11 99 52 1 1 16 84 52 16 66 28 85 1 0 85 26 27 28 66 96 99 52 85 66 16 96 99 27 85 82 84 27 27 85 28 82 16 84 16 11 82 52 0 28 27 1 52 1 52 28 99 82 96 28 26 66 85 27 26 52 27 99 85 27 99 1 0 28 99 52 85 82 27 84 85 1 26 82 0 85 16 11 84 96 85 96 11 27 99 98699 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/3011EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 5 5 39 71 4 5 71 93 8 30 30 93 79 30 71 71 8 39 18 79 87 39 70 34 71 5 71 93 34 70 30 39 18 5 34 30 34 54 93 39 71 39 18 93 18 39 79 18 8 5 18 71 39 8 54 34 70 87 30 39 93 34 34 70 87 70 71 39 70 4 70 71 39 30 93 39 93 71 79 79 34 30 93 93 79 34 39 87 87 18 30 4 54 93 70 79 8 8 4 8 98846 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/311EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 21 16 43 3 59 3 73 32 64 17 59 75 73 70 48 41 16 17 64 73 41 21 70 59 83 17 3 3 59 70 43 31 32 64 64 73 64 83 59 59 48 41 75 43 75 64 75 43 48 21 70 51 17 64 32 32 17 59 31 59 48 21 32 48 64 31 48 51 31 75 70 48 51 73 70 75 64 83 32 41 32 3 17 83 75 17 51 31 59 43 43 21 41 73 64 16 3 43 59 16 96212 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/411EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 81 8 40 40 28 63 89 23 8 51 89 89 8 63 8 89 61 51 23 53 77 55 61 23 51 55 53 81 28 55 61 81 89 81 52 52 61 61 38 55 40 28 63 28 40 63 46 28 53 81 28 51 52 53 8 55 52 77 77 28 77 61 81 63 53 89 81 52 23 40 28 89 53 55 63 38 55 77 53 52 23 81 28 63 81 53 81 46 38 89 28 28 46 23 28 81 61 38 81 89 102157 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/511EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 26 1 57 37 4 5 6 99 5 6 29 57 4 6 34 57 39 80 29 57 4 39 99 4 6 34 26 41 41 29 34 99 88 88 34 6 80 37 57 39 4 41 39 39 5 41 39 5 26 4 88 99 41 39 34 37 4 57 34 4 5 5 34 34 39 26 41 88 34 88 37 99 37 88 80 57 5 4 26 6 80 41 29 57 1 26 5 41 88 57 1 6 34 29 4 5 80 41 6 99 98527 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/611EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 24 1 67 60 60 87 42 8 8 92 63 60 42 58 77 81 42 24 89 67 63 63 92 87 24 81 92 81 42 63 67 63 81 89 89 87 89 42 77 24 79 89 42 58 92 89 24 63 24 77 81 60 89 77 60 42 81 87 58 79 60 77 42 63 63 8 92 67 1 79 58 77 79 63 58 67 89 77 1 79 79 81 1 42 42 42 77 87 1 89 87 42 92 67 60 79 8 79 67 79 98374 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/711EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 3 1 45 3 94 36 6 15 15 36 45 6 1 15 94 15 6 94 18 36 94 6 36 23 1 36 3 6 49 45 94 18 49 33 23 94 36 18 41 1 15 41 94 15 49 45 94 49 3 49 36 33 6 41 3 3 41 1 6 36 18 1 94 3 41 18 45 15 23 23 41 3 41 15 1 94 36 45 33 23 3 6 23 15 45 15 94 41 33 49 94 36 41 1 94 1 6 15 18 18 99331 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/811EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 52 1 53 53 52 84 53 53 99 84 43 83 12 43 16 39 16 52 16 19 43 83 19 53 39 33 26 68 49 83 43 19 1 33 83 26 49 53 84 39 71 71 33 43 16 43 99 43 83 49 84 33 52 53 53 43 26 99 26 99 43 19 84 16 49 26 53 39 68 68 53 71 26 83 84 68 49 26 53 19 43 68 52 83 84 49 53 1 52 19 19 53 12 43 1 43 1 26 19 99 100277 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/911EuclS.txt.opt: -------------------------------------------------------------------------------- 1 | 80 8 88 82 52 80 54 64 8 10 10 10 62 86 14 54 62 75 10 64 88 86 54 62 14 82 86 52 82 88 62 52 75 80 80 54 86 8 62 62 86 54 80 14 88 80 64 86 75 82 62 75 52 52 54 62 52 14 86 82 82 8 62 82 64 10 80 8 75 88 82 10 82 82 54 75 80 10 14 14 80 88 82 82 52 54 86 54 88 82 86 75 14 86 64 82 86 10 10 88 100335 2 | -------------------------------------------------------------------------------- /instances/uflp/Euclid/files.lst: -------------------------------------------------------------------------------- 1 | 1011EuclS.txt 2 | 1111EuclS.txt 3 | 111EuclS.txt 4 | 1211EuclS.txt 5 | 1311EuclS.txt 6 | 1411EuclS.txt 7 | 1511EuclS.txt 8 | 1611EuclS.txt 9 | 1711EuclS.txt 10 | 1811EuclS.txt 11 | 1911EuclS.txt 12 | 2011EuclS.txt 13 | 2111EuclS.txt 14 | 211EuclS.txt 15 | 2211EuclS.txt 16 | 2311EuclS.txt 17 | 2411EuclS.txt 18 | 2511EuclS.txt 19 | 2611EuclS.txt 20 | 2711EuclS.txt 21 | 2811EuclS.txt 22 | 2911EuclS.txt 23 | 3011EuclS.txt 24 | 311EuclS.txt 25 | 411EuclS.txt 26 | 511EuclS.txt 27 | 611EuclS.txt 28 | 711EuclS.txt 29 | 811EuclS.txt 30 | 911EuclS.txt 31 | -------------------------------------------------------------------------------- /src/csp/ColumnGeneration.java: -------------------------------------------------------------------------------- 1 | package csp; 2 | 3 | import ilog.concert.IloException; 4 | 5 | import java.io.IOException; 6 | 7 | /** 8 | * Use column generation to solve Cut Stock Problem. 9 | * 10 | * @author Xiong Wangqi 11 | * @version V1.0 12 | * @since JDK1.8 13 | */ 14 | public class ColumnGeneration { 15 | /** How small a value can be and still be treated as nonzero. */ 16 | private static final double EPS = 1e-6; 17 | 18 | private CspMasterProblem masterProblem; 19 | private CspPriceProblem priceProblem; 20 | 21 | public ColumnGeneration(String filename) throws IOException, IloException { 22 | Csp cspIns = new Csp(filename); 23 | 24 | masterProblem = new CspMasterProblem(cspIns); 25 | priceProblem = new CspPriceProblem(cspIns); 26 | } 27 | 28 | /** 29 | * 使用列生成求解,并返回解. 30 | * 31 | * @throws IloException 32 | */ 33 | public void solve() throws IloException { 34 | // 列生成核心步骤 35 | while (true) { 36 | double[] dualPrice = masterProblem.solveLp(); 37 | 38 | double[] pattern = priceProblem.solve(dualPrice); 39 | 40 | // 如果的目标值大于等于0,则已找到MLP问题的解;否则生成新列 41 | if (priceProblem.getReducedCost() > -EPS) { 42 | break; 43 | } 44 | 45 | // 添加“新列”到 MasterProblem 46 | masterProblem.addColumn(1.0, pattern); 47 | } 48 | 49 | CspSolution cspSol = masterProblem.solveIp(); 50 | cspSol.output(); 51 | 52 | // Releases all Cplex objects attached to the Cut Stock Problem 53 | masterProblem.end(); 54 | priceProblem.end(); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src/csp/Csp.java: -------------------------------------------------------------------------------- 1 | package csp; 2 | 3 | import java.io.BufferedReader; 4 | import java.io.FileReader; 5 | import java.io.IOException; 6 | import java.util.ArrayList; 7 | 8 | /** 9 | * 木材切割算例. 10 | * 11 | * @author Xiong Wangqi 12 | * @version V1.0 13 | * @since JDK1.8 14 | */ 15 | class Csp { 16 | /** 原木料长度. */ 17 | private double rollLength; 18 | /** 各类木材的要求长度. */ 19 | private double[] size; 20 | /** 各类木材的要求数量. */ 21 | private double[] amount; 22 | 23 | /** 24 | * 读取算例数据创建 CutStock Problem 实例. 25 | * 26 | * @param filename 文件路径名 27 | * @throws IOException 28 | */ 29 | Csp(String filename) throws IOException { 30 | BufferedReader bfr = new BufferedReader(new FileReader(filename)); 31 | ArrayList data = new ArrayList(); 32 | 33 | String line; 34 | while ((line = bfr.readLine()) != null) { 35 | data.add(line.trim()); 36 | } 37 | 38 | rollLength = Double.parseDouble(data.get(0)); 39 | 40 | String[] sizeStr = data.get(1).split("\\s+"); 41 | String[] amountStr = data.get(2).split("\\s+"); 42 | 43 | int kinds = sizeStr.length; 44 | size = new double[kinds]; 45 | amount = new double[kinds]; 46 | 47 | for (int i = 0; i < sizeStr.length; i++) { 48 | size[i] = Double.parseDouble(sizeStr[i]); 49 | amount[i] = Double.parseDouble(amountStr[i]); 50 | } 51 | bfr.close(); 52 | } 53 | 54 | double getRollLength() { 55 | return rollLength; 56 | } 57 | 58 | double[] getSize() { 59 | return size; 60 | } 61 | 62 | double[] getAmount() { 63 | return amount; 64 | } 65 | 66 | } 67 | -------------------------------------------------------------------------------- /src/csp/CspPriceProblem.java: -------------------------------------------------------------------------------- 1 | package csp; 2 | 3 | import ilog.concert.IloException; 4 | import ilog.concert.IloNumVar; 5 | import ilog.concert.IloNumVarType; 6 | import ilog.concert.IloObjective; 7 | import ilog.cplex.IloCplex; 8 | 9 | /** 10 | * CutStock Problem 的 Price Problem. 11 | * 12 | * @author Xiong Wangqi 13 | * @version V1.0 14 | * @since JDK1.8 15 | */ 16 | class CspPriceProblem { 17 | /** 需要的木材种类. */ 18 | private int kinds; 19 | 20 | private IloCplex pricingSolver; 21 | /** 切割方案对应的每种木材的份数. */ 22 | private IloNumVar[] pattern; 23 | private double reducedCost; 24 | 25 | /** 26 | * Price Problem 模型初始化. 27 | * 28 | * @param cspIns CSP instance 29 | * @throws IloException 30 | */ 31 | CspPriceProblem(Csp cspIns) throws IloException { 32 | kinds = cspIns.getAmount().length; 33 | pricingSolver = new IloCplex(); 34 | pattern = new IloNumVar[kinds]; 35 | 36 | pricingSolver.addMinimize(); 37 | // 添加变量,即切割方案对应的每种长度的木材的份数 38 | pattern = pricingSolver.numVarArray(kinds, 0, Double.MAX_VALUE, IloNumVarType.Int); 39 | // 添加约束 40 | pricingSolver.addRange(-Double.MAX_VALUE, 41 | pricingSolver.scalProd(pattern, cspIns.getSize()), 42 | cspIns.getRollLength()); 43 | 44 | reducedCost = -1; 45 | } 46 | 47 | /** 48 | * 求解 Price Problem,得到新的切割方案(对应的每种木材的份数). 49 | * 50 | * @param dualPrice 对偶变量的值 51 | * @return 新的切割方案 - 决策变量的值 52 | * @throws IloException 53 | */ 54 | double[] solve(double[] dualPrice) throws IloException { 55 | // 更新目标值 56 | IloObjective obj = pricingSolver.getObjective(); 57 | obj.setExpr(pricingSolver.diff(1.0, pricingSolver.scalProd(pattern, dualPrice))); 58 | 59 | pricingSolver.solve(); 60 | 61 | this.reducedCost = pricingSolver.getObjValue(); 62 | 63 | return pricingSolver.getValues(pattern); 64 | } 65 | 66 | /** 67 | * Releases all Cplex objects attached to the Price Problem. 68 | */ 69 | void end() { 70 | pricingSolver.end(); 71 | } 72 | 73 | double getReducedCost() { 74 | return reducedCost; 75 | } 76 | 77 | } 78 | -------------------------------------------------------------------------------- /src/csp/CspSolution.java: -------------------------------------------------------------------------------- 1 | package csp; 2 | 3 | import ilog.cplex.IloCplex.CplexStatus; 4 | 5 | import java.util.Arrays; 6 | 7 | /** 8 | * 木材切割问题的解. 9 | * 10 | * @author Xiong Wangqi 11 | * @version V1.0 12 | * @since JDK1.8 13 | */ 14 | class CspSolution { 15 | private CplexStatus status; 16 | 17 | private int rollUsed; 18 | /** 各切割方案的使用次数. */ 19 | private int[] cutTimes; 20 | /** 列生成过程中生成的切割方案. */ 21 | private double[][] patterns; 22 | 23 | /** 24 | * 生成木材切割方案. 25 | * 26 | * @param cutTimes 各切割方案的使用次数 27 | * @param patterns 生成的所有切割方案 28 | * @param rollsUsed 使用的木材数量 29 | */ 30 | void generateCutPlan(double[] cutTimes, double[][] patterns, double rollsUsed) { 31 | this.cutTimes = new int[cutTimes.length]; 32 | for (int i = 0; i < cutTimes.length; i++) { 33 | this.cutTimes[i] = (int) cutTimes[i]; 34 | } 35 | this.patterns = patterns; 36 | this.rollUsed = (int) rollsUsed; 37 | } 38 | 39 | /** 40 | * 输出解决方案,包括解的状态,使用的木材数量及切割方案. 41 | */ 42 | void output() { 43 | System.out.println("\n" + status + " solution is found"); 44 | System.out.printf("%d rolls are cut and the cut plan is:\n", rollUsed); 45 | for (int i = 0; i < cutTimes.length; i++) { 46 | if (cutTimes[i] > 0) { 47 | System.out.printf("Pattern %s is used for %d times\n", 48 | Arrays.toString(patterns[i]), cutTimes[i]); 49 | } 50 | } 51 | } 52 | 53 | void setStatus(CplexStatus status) { 54 | this.status = status; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src/fctp/AbstractFctpSubProblem.java: -------------------------------------------------------------------------------- 1 | package fctp; 2 | 3 | import ilog.concert.IloException; 4 | import ilog.concert.IloNumVar; 5 | import ilog.concert.IloRange; 6 | import ilog.cplex.IloCplex; 7 | import ilog.cplex.IloCplex.UnknownObjectException; 8 | 9 | /** 10 | * 子问题抽象类. 11 | * 12 | * @author Xiong Wangqi 13 | * @version V1.0 14 | * @since JDK1.8 15 | */ 16 | public abstract class AbstractFctpSubProblem { 17 | protected int warehouseNum; 18 | protected int customerNum; 19 | 20 | protected IloCplex subSolver; 21 | 22 | protected AbstractFctpSubProblem(Fctp fctpIns) throws IloException { 23 | warehouseNum = fctpIns.getWarehouseNum(); 24 | customerNum = fctpIns.getCustomerNum(); 25 | 26 | subSolver = new IloCplex(); 27 | } 28 | 29 | /** 30 | * 获取指定仓库和客户之间的流量. 31 | * 32 | * @param warehouseIndex 仓库索引 33 | * @param customerIndex 客户索引 34 | * @return 指定的仓库和客户之间的流量 35 | * @throws UnknownObjectException 索引错误异常 36 | * @throws IloException 37 | */ 38 | protected abstract double getFlowBetween(int warehouseIndex, int customerIndex) 39 | throws UnknownObjectException, IloException; 40 | 41 | /* 42 | * 由于 subSolver 被封装在 subProblem 对象中, 因此外部变量想要对 subSolver 43 | * 对应的对偶形式的子问题模型进行更新需要借助“类方法”实现。 根据 Benders 分解中 MasterProblem 与 SubProblem 44 | * 的关系,需要实现以下几个方法: 45 | * 1. 基于主问题的解中的开设仓库信息,更新目标函数,并求解 46 | * 2. 生成“可行割” 47 | * 3. 生成“最优割” 48 | * 4. 获取子问题目标函数值 49 | * 5. 释放 Cplex 相关对象 50 | * 方法实现见下方代码。 51 | */ 52 | 53 | /** 54 | * 求解子问题,并返回解的状态(用于判定可行割/最优割). 55 | * 56 | * @param openValues 仓库开设变量的取值 57 | * @param capacity 仓库容量 58 | * @return 解的状态 59 | * @throws IloException 60 | */ 61 | protected abstract IloCplex.Status solve(double[] openValues, double[] capacity) throws IloException; 62 | 63 | /** 64 | * 生成“可行割”. 65 | * 66 | * @return 可行割 67 | * @throws IloException 68 | */ 69 | protected abstract IloRange createFeasibilityCut() throws IloException; 70 | 71 | /** 72 | * 生成“最优割”. 73 | * 74 | * @param estFlowCost 主问题中的流量成本 75 | * @return 最优割 76 | * @throws IloException 77 | */ 78 | protected abstract IloRange createOptimalityCut(IloNumVar estFlowCost) throws IloException; 79 | 80 | double getObjValue() throws IloException { 81 | return subSolver.getObjValue(); 82 | } 83 | 84 | /** 85 | * Releases all Cplex objects attached to the SubProblem. 86 | */ 87 | void end() { 88 | subSolver.end(); 89 | } 90 | 91 | } 92 | -------------------------------------------------------------------------------- /src/fctp/Fctp.java: -------------------------------------------------------------------------------- 1 | package fctp; 2 | 3 | import java.util.Random; 4 | 5 | /** 6 | * Fixed Charge Transportation Problem(FCTP) 的实例类.
7 | * 8 | * @author Xiong Wangqi 9 | * @version V1.0 10 | * @since JDK1.8 11 | */ 12 | public class Fctp { 13 | private int warehouseNum; 14 | private int customerNum; 15 | 16 | private double[] demand; 17 | private double[] capacity; 18 | private double[] fixedCost; 19 | private double[][] flowCost; 20 | 21 | Fctp(int warehouseNum, int customerNum, double meanCapMulti, double meanFixedCost, long seed) { 22 | this.warehouseNum = warehouseNum; 23 | this.customerNum = customerNum; 24 | 25 | // 设置用于生成算例的随机种子 26 | Random rng = new Random(seed); 27 | 28 | // 客户需求量随机设置 29 | demand = new double[customerNum]; 30 | double totalDemand = 0; 31 | for (int k = 0; k < customerNum; k++) { 32 | demand[k] = rng.nextDouble(); 33 | totalDemand += demand[k]; 34 | } 35 | 36 | // Set the mean capacity of any one warehouse 37 | double meanCapacity = meanCapMulti * totalDemand / warehouseNum; 38 | // 仓库容量、固定成本、流量成本随机设置 39 | capacity = new double[warehouseNum]; 40 | fixedCost = new double[warehouseNum]; 41 | for (int j = 0; j < warehouseNum; j++) { 42 | capacity[j] = 2 * meanCapacity * rng.nextDouble(); 43 | fixedCost[j] = 2 * meanFixedCost * rng.nextDouble(); 44 | } 45 | 46 | flowCost = new double[warehouseNum][customerNum]; 47 | for (int j = 0; j < warehouseNum; j++) { 48 | for (int k = 0; k < customerNum; k++) { 49 | flowCost[j][k] = rng.nextDouble(); 50 | } 51 | } 52 | 53 | } 54 | 55 | public int getWarehouseNum() { 56 | return warehouseNum; 57 | } 58 | 59 | public int getCustomerNum() { 60 | return customerNum; 61 | } 62 | 63 | public double[] getDemand() { 64 | return demand; 65 | } 66 | 67 | public double[] getCapacity() { 68 | return capacity; 69 | } 70 | 71 | double[] getFixedCost() { 72 | return fixedCost; 73 | } 74 | 75 | public double[][] getFlowCost() { 76 | return flowCost; 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /src/fctp/FctpSolution.java: -------------------------------------------------------------------------------- 1 | package fctp; 2 | 3 | import ilog.cplex.IloCplex.CplexStatus; 4 | 5 | import java.util.ArrayList; 6 | 7 | /** 8 | * FCTP的解. 9 | * 10 | * @author Xiong Wangqi 11 | * @version V1.0 12 | * @since JDK1.8 13 | */ 14 | class FctpSolution { 15 | private double totalCost; 16 | private double[][] flows; 17 | private ArrayList openWarehouses; 18 | 19 | private CplexStatus status; 20 | private double solveTime; 21 | 22 | FctpSolution(int warehouseNum, int customerNum) { 23 | flows = new double[warehouseNum][customerNum]; 24 | } 25 | 26 | /** 27 | * 输出 FCTP 的解,包括解的类型,总成本,使用的仓库,供应的客户(及供应量). 28 | */ 29 | void output() { 30 | StringBuilder sb = new StringBuilder(); 31 | sb.append(String.format("It takes %.3f seconds to find the %s solution.\n", 32 | solveTime, status)); 33 | 34 | int openWarehouseNum = openWarehouses.size(); 35 | sb.append(String.format("%d warehouse is open and total cost is %.3f.", 36 | openWarehouseNum, totalCost)); 37 | 38 | int customerNum = flows[0].length; 39 | for (int j = 0; j < openWarehouseNum; j++) { 40 | int warehouseIndex = openWarehouses.get(j); 41 | sb.append("\nWarehouse" + warehouseIndex + " is open, it serves customters: "); 42 | for (int k = 0; k < customerNum; k++) { 43 | if (flows[warehouseIndex][k] > Parameters.EPS) { 44 | sb.append(String.format("%d(%.2f) \t", k, flows[warehouseIndex][k])); 45 | } 46 | 47 | } 48 | 49 | } 50 | System.out.println(sb.toString()); 51 | } 52 | 53 | void setFlowBetween(int warehouseIndex, int customerIndex, double flow) { 54 | this.flows[warehouseIndex][customerIndex] = flow; 55 | } 56 | 57 | void setOpenWarehouses(ArrayList openWarehouses) { 58 | this.openWarehouses = new ArrayList<>(openWarehouses); 59 | } 60 | 61 | void setTotalCost(double totalCost) { 62 | this.totalCost = totalCost; 63 | } 64 | 65 | void setStatus(CplexStatus status) { 66 | this.status = status; 67 | } 68 | 69 | void setSolveTime(long solveTime) { 70 | this.solveTime = solveTime * Parameters.MS_TO_SEC; 71 | } 72 | 73 | /** 74 | * 最终的解由两部分构成:
75 | * 1 open 开设的仓库(主问题)
76 | * 2 flows仓库与客户的流量关系(子问题)
77 | * 需要主问题的解的状态来判定是否需要子问题的 flows 结果,故增加该方法。
78 | * 当然也有其他的解决方案,这里不做讨论.
79 | * 80 | * @return 解的状态(主问题) 81 | */ 82 | CplexStatus getStatus() { 83 | return status; 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /src/fctp/Parameters.java: -------------------------------------------------------------------------------- 1 | package fctp; 2 | 3 | 4 | /** 5 | * 常数设置. 6 | * 7 | * @author Xiong Wangqi 8 | * @version V1.0 9 | * @since JDK1.8 10 | */ 11 | public class Parameters { 12 | public static final double LOADER_FACTOR = 0.75; 13 | 14 | /** The cutoff for rounding values of binary variables up. */ 15 | public static final double ROUNDUP = 0.5; 16 | 17 | /** EPS limits how small a flow can be and still be treated as nonzero. */ 18 | static final double EPS = 1e-6; 19 | 20 | /** The milliseconds to seconds conversion factor. */ 21 | static final double MS_TO_SEC = 0.001; 22 | } 23 | -------------------------------------------------------------------------------- /src/testdemo/CspDemo.java: -------------------------------------------------------------------------------- 1 | package testdemo; 2 | 3 | import csp.ColumnGeneration; 4 | 5 | import ilog.concert.IloException; 6 | 7 | import java.io.IOException; 8 | 9 | /** 10 | * 调用模拟. 11 | * 12 | * @author Xiong Wangqi 13 | * @version V1.0 14 | * @since JDK1.8 15 | */ 16 | public class CspDemo { 17 | public static void main(String[] args) throws IOException, IloException { 18 | String filename = "./instances/cutstock.txt"; 19 | try { 20 | // 调用列生成求解算例并输出切割方案 21 | ColumnGeneration cg = new ColumnGeneration(filename); 22 | cg.solve(); 23 | 24 | } catch (IOException e) { 25 | System.err.println("IOException '" + e + "' caught"); 26 | } catch (IloException e) { 27 | System.err.println("Concert exception '" + e + "' caught"); 28 | } 29 | 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/testdemo/FctpDemo.java: -------------------------------------------------------------------------------- 1 | package testdemo; 2 | 3 | import fctp.ManualBenders; 4 | import ilog.concert.IloException; 5 | 6 | /** 7 | * FTCP 的手动 Benders 分解调用模拟. 8 | * 9 | * @author Xiong Wangqi 10 | * @version V1.0 11 | * @since JDK1.8 12 | */ 13 | public class FctpDemo { 14 | public static void main(String[] args) throws IloException { 15 | int warehouseNum = 50; 16 | int customerNum = 4000; 17 | // mean capacity multiplier 18 | double meanCapMulti = 2.5; 19 | // mean fixed cost of warehouse 20 | double meanFixedCost = 500; 21 | // 用于生成算例的随机种子 22 | int randomSeed = 72612; 23 | 24 | // 是否采用子问题的对偶形式 25 | boolean isSubProblemDual = true; 26 | try { 27 | ManualBenders mb = new ManualBenders(isSubProblemDual, warehouseNum, customerNum, 28 | meanCapMulti, meanFixedCost, randomSeed); 29 | mb.solve(); 30 | 31 | } catch (IloException e) { 32 | System.err.println("Concert exception '" + e + "' caught"); 33 | } 34 | 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/testdemo/SolomonInsertionDemo.java: -------------------------------------------------------------------------------- 1 | package testdemo; 2 | 3 | import java.io.IOException; 4 | 5 | import vrptw.algorithm.solomoninsertion.SolomonInsertion; 6 | import vrptw.problem.Vrptw; 7 | 8 | /** 9 | * Solomon Insertion Algorithm Test. 10 | * 11 | * @author Xiong Wangqi 12 | * @version V1.0 13 | * @since JDK1.8 14 | */ 15 | public class SolomonInsertionDemo { 16 | public static void main(String[] args) { 17 | String filename = "./instances/solomon_100/c101.txt"; 18 | 19 | try { 20 | Vrptw vrptwIns = new Vrptw(filename); 21 | SolomonInsertion i1 = new SolomonInsertion(vrptwIns, vrptwIns.getTimeMatrix()); 22 | 23 | i1.constructRoutes(); 24 | 25 | i1.output(); 26 | 27 | } catch (IOException e) { 28 | // TODO Auto-generated catch block 29 | e.printStackTrace(); 30 | } 31 | 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/testdemo/UflpDemo.java: -------------------------------------------------------------------------------- 1 | package testdemo; 2 | 3 | import ilog.concert.IloException; 4 | import ilog.cplex.IloCplex; 5 | 6 | import java.io.IOException; 7 | 8 | import uflp.AnnotationBenders; 9 | 10 | /** 11 | * Use Benders Decomposition to solve UFLP. 12 | * 13 | * @author Xiong Wangqi 14 | * @version V1.0 15 | * @since JDK1.8 16 | */ 17 | public class UflpDemo { 18 | private enum Strategy { 19 | /** 执行传统分支和界限;忽略任何 Benders 注释,也不使用 Benders 算法. */ 20 | Off, 21 | 22 | /** 23 | * CPLEX自动分解模型,忽略可能提供的任何注释:
24 | * 将所有整数变量放入到主问题,将所有连续变量放入到子问题,进一步分解此子问题(如果可能). 25 | */ 26 | Full, 27 | 28 | /** CPLEX 根据注释确定主问题, 并尝试将剩余的变量分解成不相关的子问题并交给不同的Worker. */ 29 | Workers, 30 | 31 | /** CPLEX根据注释分解模型. */ 32 | User 33 | } 34 | 35 | public static void main(String[] args) throws IOException, IloException { 36 | // 算例路径 37 | String filename = "./instances/uflp/Euclid/111EuclS.txt"; 38 | // 随机种子 39 | int randomSeed = 1024; 40 | 41 | // 要使用的Benders分解策略 42 | Strategy bendersStrategy = Strategy.User; 43 | 44 | AnnotationBenders bdAlgorithm = new AnnotationBenders(filename, randomSeed); 45 | 46 | try { 47 | switch (bendersStrategy) { 48 | case Off: 49 | bdAlgorithm.setBendersStrategy(IloCplex.BendersStrategy.Off); 50 | break; 51 | case Full: 52 | bdAlgorithm.setBendersStrategy(IloCplex.BendersStrategy.Full); 53 | break; 54 | case Workers: 55 | bdAlgorithm.setBendersStrategy(IloCplex.BendersStrategy.Workers); 56 | break; 57 | case User: 58 | // AnnotationBenders 代码中默认 User 分解 59 | // 这里不进行任何操作 60 | break; 61 | default: 62 | throw new IllegalArgumentException("Invalid model type specified."); 63 | } 64 | 65 | } catch (IloException ex) { 66 | System.out.println("Failed to build the model:\n" + ex.getMessage()); 67 | } 68 | 69 | try { 70 | bdAlgorithm.solve(); 71 | } catch (IloException ex) { 72 | System.out.println("Solution failed:\n" + ex.getMessage()); 73 | } 74 | 75 | } 76 | 77 | } 78 | -------------------------------------------------------------------------------- /src/testdemo/VrptwExactAlgDemo.java: -------------------------------------------------------------------------------- 1 | package testdemo; 2 | 3 | import ilog.concert.IloException; 4 | 5 | import java.io.IOException; 6 | 7 | import vrptw.algorithm.VrptwExactAlgorithm; 8 | import vrptw.algorithm.branchandbound.BranchAndBound; 9 | import vrptw.algorithm.branchandprice.BranchAndPrice; 10 | import vrptw.problem.Vrptw; 11 | 12 | /** 13 | * VRPTW Exact Algorithm Test. 14 | * 15 | * @author Xiong Wangqi 16 | * @version V1.0 17 | * @since JDK1.8 18 | */ 19 | public class VrptwExactAlgDemo { 20 | public static void main(String[] args) throws IloException { 21 | String filename = "./instances/solomon_100/c101.txt"; 22 | String exactAlgType = "BranchAndBound"; 23 | 24 | try { 25 | Vrptw vrptwIns = new Vrptw(filename); 26 | 27 | VrptwExactAlgorithm vrptwExactAlg; 28 | switch (exactAlgType) { 29 | case "BranchAndBound": 30 | // TODO 可考虑在 BranchAndBound 的构造函数中,根据 Best known solution 中的车辆数修改车辆数约束,加快求解 31 | vrptwExactAlg = new BranchAndBound(vrptwIns); 32 | break; 33 | case "BranchAndPrice": 34 | vrptwExactAlg = new BranchAndPrice(vrptwIns); 35 | break; 36 | default: 37 | throw new IllegalArgumentException( 38 | String.format("%s algorithm is not supported yet.", exactAlgType)); 39 | } 40 | 41 | vrptwExactAlg.solve(); 42 | 43 | } catch (IOException e) { 44 | e.printStackTrace(); 45 | } 46 | 47 | } 48 | 49 | } 50 | -------------------------------------------------------------------------------- /src/uflp/Uflp.java: -------------------------------------------------------------------------------- 1 | package uflp; 2 | 3 | import java.io.BufferedReader; 4 | import java.io.FileReader; 5 | import java.io.IOException; 6 | 7 | import ilog.concert.IloException; 8 | 9 | /** 10 | * UFLP算例对应的Java对象. 11 | * 12 | * @author Xiong Wangqi 13 | * @version V1.0 14 | * @since JDK1.8 15 | */ 16 | class Uflp { 17 | private int warehouseNum; 18 | private int customerNum; 19 | /** 仓库 j 的固定成本. */ 20 | private double[] fixedCost; 21 | /** 连接成本,supplyCost[j]k] 由仓库 j 服务客户 k 的供应成本. */ 22 | private double[][] supplyCost; 23 | 24 | /** 25 | * 读取算例数据新建 UFLP 实例,算例采用Kochetov and Ivanenko 生成的 UFLP's Euclidean benchmark. 26 | * 27 | * @param filename 文件路径名 28 | * @throws IOException 29 | */ 30 | Uflp(String filename) throws IOException { 31 | BufferedReader bfr = new BufferedReader(new FileReader(filename)); 32 | 33 | // 第一行为文件名,第二行为仓库数量、客户数量 34 | bfr.readLine(); 35 | String line = bfr.readLine(); 36 | String[] num = line.split("\\s+"); 37 | warehouseNum = Integer.parseInt(num[0]); 38 | customerNum = Integer.parseInt(num[1]); 39 | 40 | fixedCost = new double[warehouseNum]; 41 | supplyCost = new double[warehouseNum][customerNum]; 42 | 43 | // 成本数据,依次为仓库编号(从 1 开始),仓库固定成本,客户的供应成本 44 | while ((line = bfr.readLine()) != null) { 45 | String[] costData = line.split("\\s+"); 46 | int warehouseIndex = Integer.parseInt(costData[0]) - 1; 47 | fixedCost[warehouseIndex] = Double.parseDouble(costData[1]); 48 | 49 | for (int k = 2; k < costData.length; k++) { 50 | supplyCost[warehouseIndex][k - 2] = Double.parseDouble(costData[k]); 51 | } 52 | } 53 | bfr.close(); 54 | } 55 | 56 | int getFalicityNum() { 57 | return warehouseNum; 58 | } 59 | 60 | int getCustomerNum() { 61 | return customerNum; 62 | } 63 | 64 | double[] getFixedCost() { 65 | return fixedCost; 66 | } 67 | 68 | double[][] getSupplyCost() { 69 | return supplyCost; 70 | } 71 | 72 | } 73 | -------------------------------------------------------------------------------- /src/uflp/UflpSolution.java: -------------------------------------------------------------------------------- 1 | package uflp; 2 | 3 | import ilog.cplex.IloCplex.CplexStatus; 4 | 5 | import java.util.ArrayList; 6 | 7 | /** 8 | * UFLP的解. 9 | * 10 | * @author Xiong Wangqi 11 | * @version V1.0 12 | * @since JDK1.8 13 | */ 14 | class UflpSolution { 15 | /** The milliseconds to seconds conversion factor. */ 16 | private static final double MS_TO_SEC = 0.001; 17 | 18 | private CplexStatus status; 19 | private double solveTime; 20 | 21 | /** supply[j][k] = 1 if warehouse j supplies customer k, 0 if not. */ 22 | private double[][] supply; 23 | /** 开设的仓库的编号数组. */ 24 | private ArrayList openWarehouses; 25 | private double totalCost; 26 | 27 | UflpSolution(int warehouseNum, int customerNum) { 28 | supply = new double[warehouseNum][customerNum]; 29 | } 30 | 31 | /** 32 | * 输出 UFLP 的解,包括解的类型,总成本,开设的仓库,客户的供应方案. 33 | */ 34 | void output() { 35 | StringBuilder sb = new StringBuilder(); 36 | 37 | sb.append(String.format("It takes %.2f seconds to find the %s solution with cost %.2f", 38 | solveTime, status, totalCost)); 39 | 40 | int openWarehouseNum = openWarehouses.size(); 41 | int customerNum = supply[0].length; 42 | for (int j = 0; j < openWarehouseNum; j++) { 43 | int warehouseIndex = openWarehouses.get(j); 44 | sb.append("\nWarehouse" + warehouseIndex + " is open, it serves customters: "); 45 | for (int k = 0; k < customerNum; k++) { 46 | if (supply[warehouseIndex][k] == 1) { 47 | sb.append(k + "\t"); 48 | } 49 | 50 | } 51 | 52 | } 53 | System.out.println(sb.toString()); 54 | } 55 | 56 | void setSupply(int warehouseIndex, int customerindex) { 57 | supply[warehouseIndex][customerindex] = 1; 58 | } 59 | 60 | void setTotalCost(double totalCost) { 61 | this.totalCost = totalCost; 62 | } 63 | 64 | void setOpenWarehouses(ArrayList openWarehouses) { 65 | this.openWarehouses = openWarehouses; 66 | } 67 | 68 | void setStatus(CplexStatus status) { 69 | this.status = status; 70 | } 71 | 72 | void setSolveTime(long solveTime) { 73 | this.solveTime = solveTime * MS_TO_SEC; 74 | } 75 | 76 | } 77 | -------------------------------------------------------------------------------- /src/vrptw/algorithm/VrptwExactAlgorithm.java: -------------------------------------------------------------------------------- 1 | package vrptw.algorithm; 2 | 3 | import ilog.concert.IloException; 4 | 5 | import java.io.IOException; 6 | 7 | /** 8 | * VRPTW 精确算法统一接口. 9 | * 10 | * @author Xiong Wangqi 11 | * @version V1.0 12 | * @since JDK1.8 13 | */ 14 | public interface VrptwExactAlgorithm { 15 | /** 16 | * 调用精确算法求解 VRPTW. 17 | * @throws IloException 18 | * @throws IOException 19 | */ 20 | void solve() throws IloException, IOException; 21 | } 22 | -------------------------------------------------------------------------------- /src/vrptw/algorithm/subproblem/labelalgorithm/LabelAlgorithm.java: -------------------------------------------------------------------------------- 1 | package vrptw.algorithm.subproblem.labelalgorithm; 2 | 3 | import java.util.ArrayList; 4 | 5 | /** 6 | * Dynamic programming labeling approach. 7 | * 8 | * @author Xiong Wangqi 9 | * @version V1.0 10 | * @since JDK1.8 11 | */ 12 | interface LabelAlgorithm { 13 | /** 14 | * 对选中的 Label 进行扩展(需要满足时间窗、容量约束). 15 | * 16 | * @param currLabel 待扩展的标签 17 | * @param nextVertexId 待添加到标签中的节点 18 | */ 19 | void labelExtension(AbstractLabel currLabel, int nextVertexId); 20 | 21 | /** 22 | * 根据优超准则添加判断是否添加“优超”的新标签,删除已存在但被“优超”的标签. 23 | * 24 | * @param labelToCompare 待比较的新标签 25 | */ 26 | void useDominanceRules(AbstractLabel labelToCompare); 27 | 28 | /** 29 | * 筛选出最短路径对应的标签. 30 | * 31 | * @param allFinalLabels 到达最终点的标签 32 | * @return 最短路径对应的标签 33 | */ 34 | default ArrayList filtering(ArrayList allFinalLabels) { 35 | if (allFinalLabels.isEmpty()) { 36 | throw new NullPointerException("未找到最短路径"); 37 | } 38 | 39 | // 这里不做处理,直接返回所有到达终点的路径,也可以控制返回的路径数量 40 | return allFinalLabels; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/vrptw/parameter/Parameters.java: -------------------------------------------------------------------------------- 1 | package vrptw.parameter; 2 | 3 | /** 4 | * Parameters setting class. 5 | * 6 | * @author Xiong Wangqi 7 | * @version V1.0 8 | * @since JDK1.8 9 | */ 10 | public class Parameters { 11 | public static final int RANDOM_SEED = 2048; 12 | 13 | public static final int INITIAL_CAPACITY = 16; 14 | public static final double LOADER_FACTOR = 0.75; 15 | 16 | /** Travel time big enough. */ 17 | public static final double BIG_TRAVEL_TIME = Double.MAX_VALUE; 18 | /** EPS limits how small a number can be and still be treated as nonzero. */ 19 | public static final double EPS = 1e-6; 20 | 21 | /** Solomon I1 插入算法的参数. */ 22 | public static final int ALPHA1 = 1; 23 | public static final int ALPHA2 = 1 - ALPHA1; 24 | public static final int MIU = 1; 25 | public static final int LAMBDA = 1; 26 | 27 | /** Use ESPPTWCC as price problem of VRPTW and solve it by label algorithm. */ 28 | public static final String ESPPTWCC_LABEL_CORRECTING = "ESPPTWCCViaLabelCorrecting"; 29 | /** Use SPPTWCC as price problem of VRPTW and solve it by label algorithm. */ 30 | public static final String SPPTWCC_LABEL_SETTING = "SPPTWCCViaLabelSetting"; 31 | /** Use SPPTWCC as price problem of VRPTW and solve it by label algorithm. */ 32 | public static final String ESPPTWCC_PULSE = "ESPPTWCCViaPulse"; 33 | 34 | /** Threads number of Pulse Algorithm. */ 35 | public static final int THREAD_NUM = 10; 36 | /** Time step of Pulse Algorithm. */ 37 | public static final double TIME_STEP = 4; 38 | /** Lower time limit to stop the bounding procedure, use 50 for 100-series and 100 for 200-series. */ 39 | public static final double TIME_LIMIT_LB = 100; 40 | 41 | /** Initial upper bound in the branch and bound algorithm. */ 42 | public static final double BB_INITIAL_UPPERBOUND = Double.MAX_VALUE; 43 | 44 | /** big M for linearization. */ 45 | public static final double BIG_M = 1e5; 46 | } 47 | -------------------------------------------------------------------------------- /src/vrptw/problem/Arc.java: -------------------------------------------------------------------------------- 1 | package vrptw.problem; 2 | 3 | /** 4 | * Arc class. 5 | * 6 | * @author Xiong Wangqi 7 | * @version V1.0 8 | * @since JDK1.8 9 | */ 10 | public class Arc { 11 | /** start vertex of the fractional arc. */ 12 | private int fromVertexId; 13 | /** end vertex of the fractional arc. */ 14 | private int toVertexId; 15 | 16 | public Arc(int fromVertexId, int toVertexId) { 17 | this.fromVertexId = fromVertexId; 18 | this.toVertexId = toVertexId; 19 | } 20 | 21 | public int getFromVertexId() { 22 | return fromVertexId; 23 | } 24 | 25 | public int getToVertexId() { 26 | return toVertexId; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/vrptw/problem/TimeWindow.java: -------------------------------------------------------------------------------- 1 | package vrptw.problem; 2 | 3 | /** 4 | * Time window. 5 | * 6 | * @author Xiong Wangqi 7 | * @version V1.0 8 | * @since JDK1.8 9 | */ 10 | public class TimeWindow { 11 | private double earliestTime; 12 | private double latestTime; 13 | 14 | TimeWindow(double earliestTime, double latestTime) { 15 | this.earliestTime = earliestTime; 16 | this.latestTime = latestTime; 17 | } 18 | 19 | public double getEarliestTime() { 20 | return earliestTime; 21 | } 22 | 23 | public double getLatestTime() { 24 | return latestTime; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/vrptw/problem/Vehicle.java: -------------------------------------------------------------------------------- 1 | package vrptw.problem; 2 | 3 | /** 4 | * 车辆类. 5 | * 6 | * @author Xiong Wangqi 7 | * @version V1.0 8 | * @since JDK1.8 9 | */ 10 | public class Vehicle { 11 | private double speed; 12 | private double capacity; 13 | 14 | Vehicle(double speed, double capacity) { 15 | this.speed = speed; 16 | this.capacity = capacity; 17 | } 18 | 19 | public double getSpeed() { 20 | return speed; 21 | } 22 | 23 | public double getCapacity() { 24 | return capacity; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/vrptw/problem/Vertex.java: -------------------------------------------------------------------------------- 1 | package vrptw.problem; 2 | 3 | /** 4 | * 节点类,作为 Customer 和 Depot 类的父类. 5 | * 6 | * @author Xiong Wangqi 7 | * @version V1.0 8 | * @since JDK1.8 9 | */ 10 | public class Vertex { 11 | /** 节点 id,方便设计算法. */ 12 | private int id; 13 | 14 | /** 算例数据中的节点编号. */ 15 | private String number; 16 | private double demand; 17 | private double serviceTime; 18 | 19 | private double x; 20 | private double y; 21 | 22 | private TimeWindow timeWindow; 23 | 24 | Vertex(int id, String number, double x, double y, double demand, 25 | double serviceTime, double earliestTime, double latestTime) { 26 | this.id = id; 27 | this.number = number; 28 | this.x = x; 29 | this.y = y; 30 | this.demand = demand; 31 | this.serviceTime = serviceTime; 32 | timeWindow = new TimeWindow(earliestTime, latestTime); 33 | } 34 | 35 | Vertex(Vertex v, TimeWindow tw) { 36 | this.id = v.id; 37 | this.number = v.number; 38 | this.x = v.x; 39 | this.y = v.y; 40 | this.demand = v.demand; 41 | this.serviceTime = v.serviceTime; 42 | 43 | this.timeWindow = tw; 44 | } 45 | 46 | double getDistanceTo(Vertex v) { 47 | // 保留两位小数 48 | int distToRound = (int)(100 * Math.sqrt((this.x - v.x) * (this.x - v.x) + (this.y - v.y) * (this.y - v.y))); 49 | return distToRound / 100.0; 50 | } 51 | 52 | public int getId() { 53 | return id; 54 | } 55 | 56 | public String getNumber() { 57 | return number; 58 | } 59 | 60 | public double getDemand() { 61 | return demand; 62 | } 63 | 64 | public double getServiceTime() { 65 | return serviceTime; 66 | } 67 | 68 | public double getEarliestTime() { 69 | return timeWindow.getEarliestTime(); 70 | } 71 | 72 | public double getLatestTime() { 73 | return timeWindow.getLatestTime(); 74 | } 75 | } --------------------------------------------------------------------------------