├── .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 |
13 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/docs/javadoc/fctp/package-frame.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | fctp
7 |
8 |
9 |
10 |
11 |
12 |
13 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/docs/javadoc/fctp/subproblem/package-frame.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | fctp.subproblem
7 |
8 |
9 |
10 |
11 |
12 |
13 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/docs/javadoc/overview-frame.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 概览列表
7 |
8 |
9 |
10 |
11 |
12 |
13 |
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 |
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 |
13 |
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 |
13 |
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 |
13 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/docs/javadoc/vrptw/algorithm/package-frame.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | vrptw.algorithm
7 |
8 |
9 |
10 |
11 |
12 |
13 |
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 |
13 |
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 |
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 |
13 |
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 |
13 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/docs/javadoc/vrptw/package-frame.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | vrptw
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/docs/javadoc/vrptw/parameter/package-frame.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | vrptw.parameter
7 |
8 |
9 |
10 |
11 |
12 |
13 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/docs/javadoc/vrptw/problem/package-frame.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | vrptw.problem
7 |
8 |
9 |
10 |
11 |
12 |
13 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/docs/javadoc/vrptw/solution/package-frame.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | vrptw.solution
7 |
8 |
9 |
10 |
11 |
12 |
13 |
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 | }
--------------------------------------------------------------------------------