Robust cvrp


Algorithms of the paper "BCP for the robust capacitated vehicle routing problem with knapsack uncertainty"

Please log in to perform a job with this app.


  1. Upload a CVRP instance file following the classical format. A complete benchmark set can be found here.

  2. Set the 7 parameters where the first one should match the name of the file uploaded

  3. Click on "Run this job"

  4. The job may take time. You may follow its progress at any time in your account.

  5. The log file "BaPCod.log" is updated during the run.


  1. CVRP instance filename

  2. 0 for cardinality constrained uncertainty, and 1 for partition/deviation constrained uncertainty

  3. fraction of the original demand that deviates (if item 2 is 1, positive and negative deviations are considered, as proposed by Gounaris et al. (2013), otherwise deviations are only positive)

  4. fraction of the sum of demand deviations used to limit each partition deviation, where negative deviations count negatively (used if item 2 is 1, set to 0.5 in the paper)

  5. value multiplied by the average route length to obtain the maximum number of deviations allowed (used if item 2 is 0)

  6. if its value is x and item 2 is 0, the capacity used is x * mim + (1 - x) * max, where min and max are the minimum and maximum capacities calculated as described in the paper. if item 2 is 1, this value is multiplied by the original capacity to get the true capacity used (set to 1.2 if item 2 is 1 in the paper).

  7. should be true if item 2 is 0 and false otherwise.


A-n37-k6.vrp 0 0.3 0 0.75 0.3 true

A-n37-k6.vrp 1 0.1 0.5 0 1.2 false


"BaPCod.log" is the log file including solutions found and statistics.

  • The paper uses statistics from the log lines started with "RVRPHeurStat", "RVRPInstStat", and "BaPStat".

  • The log lines starting with "RVRPHeurStat" and "RVRPInstStat" have the same numbers reported just before in the same file with the corresponding description.

  • The log line starting with "BaPStat" has the fields: instance, #nodes, 1st col. gen. LB, 1st col. gen. time (centiseconds), BCP LB, #cut rounds, root time 1 (centiseconds), #subproblems after root, root time 2 (centiseconds), root LB, final UB, total time in centiseconds and formatted. When the problem is solved at the root node, root time 2 is reported in the paper because it includes the time for CPLEX to solve the residual problem. Otherwise, root time 1 is used because it does not include the time to solve the two children of the root node, which is considered by BaPCode as part of the strong branching.

"" can be converted to the branch-and-bound tree using "dot -Tpdf > BaPTree.pdf".

"solution.tex" is a LaTeX file that is compiled to a nice tikz picture of the solution.

Other files are not relevant.


Intel(R) Xeon(R) CPU E3-1220 v3 at 3.10GHz

In input :



In output :

27/09/2018 : Version 1.0, initial version

How to use our REST API :

Think to check your private token in your account first. You can find more detail in our documentation tab.

This app id is : 198

This curl command will create a job, and return your job url, and also the average execution time

files and/or dataset are optionnal, think to remove them if not wanted
curl -H 'Authorization: Token token=<your_private_token>' -X POST
-F job[webapp_id]=198
-F job[param]=""
-F job[queue]=standard
-F files[0]=@test.txt
-F files[1]=@test2.csv
-F job[file_url]=<my_file_url>
-F job[dataset]=<my_dataset_name>

Then, check your job to get the url files with :

curl -H 'Authorization: Token token=<your_private_token>' -X GET<job_id>