Short guide to VrpPd program.

1.Screen : "Points"
Column   Description
Nr. - Point ID - unique id of point - mandatory
Name - Name of point - must be unique - mandatory
Dist.from - Button to call distance/time editor from this point to all others
Dist.to - Button to call distance/time editor from to all others points to this point
Info - Optional field for comments.
LatLng - Lattitude/Longtitude of point in format XX.XXXXXX,YY.YYYYYY.This field only for working with mapping functions or your convenience.Field is optional.
Address - Address of point.This field only for working with mapping functions or your convenience.Field is optional.
2.Form "Dist.from" (Dist to is very similar)
Column   Description
Nr. - Id of point.Column read only.
Name - Name of point.Column read only.
Distance - Distance from given point to this point.I recommend use kilometers,but you can use other units, if this is convinient.
Time - Time to travel from given point to this point.I recommend use minutes,but you can use other units, if this is convinient.
3.Screen "Vehicles"
Column   Description
Nr. - Unique numeric Id of vehicle.Mandatory.
Name - Name of vehicle.Mandatory.
Start At - Depot of this vehicle.
Max cargo - Max cargo weight for this vehicle.I recommend you use tons,but you can use any other usits if you want. If you don't use this - set to some large value.
Max volume - Max volume of cargo for this vehicle.
Max run - Max distance that allowed for this vehicle.If you need not this restriction set this field to large value.
Max orders - Max orders count that allowed for this vehicle.If you need not this restriction set this field to large value.
Tour - Checked if vehicle needs return to depot.If unchecked - open route.
L.constr. - Loading constraints for vehicle.(None , Lifo , Fifo)
TW.start - "Time window" start for vehicle (Start of working day).If you need not time windows - set this to 0.
TW.end - "Time window" end for vehicle (End of working day).If you need not time windows - set this to large value.
Skills - Semicolon separated list of special "Skills" of vehicle - if you need not - leave empty.
4.Screen : "Orders"
Column   Description
Nr. - unique ID of order - mandatory
Name - Name of order - mandatory
From - Point from which you need to transfer cargo.Can be depot of some vehicle.
To - Point to which you need to transfer cargo.
Weight - Weight of cargo. If you don't use this - set to some small value.
Volume - Volume of cargo.If you need not volumes in your task set this field to 0.
T.Load - Time to load cargo.Can be zero.
TW.L.Start - "Time window" start for cargo loading.
TW.L.End - "Time window" end for cargo loading.If you do not use time windows - set this to large value.
T.Unload - Time to unload cargo.Can be zero.
TW.U.Start - "Time window" start for cargo unloading.
TW.U.End - "Time window" end for cargo unloading.If you do not use time windows - set this to large value.
Skills - Semicolon separated special "Skills" required from vehicle to execute this order.If you need not - leave empty
5.Solving

You must give some time to perform optimization.Better wait for several cycles of simulated annealing.You can press "Stop" at any time if you want.At the end of optimization your screen will look something like this:

You can double click at any solution row at any time, even during optimization, to view results.Registered version creates text file (and xml and json files - for easy import in other programs), and show it in your default program, in unregistered version you can only view results.

Some parameters in VrpPd.exe.config
Parameter   Description
opt_s - Number of parallel threads of simulated anneling.
opt_z - Number of iterations for one cycle of simulated anneling.
opt_w - Leave this zero.
min_returns - If your vehicles can visit client several times - set this to 0.This may give you solution with less vehicles and distance.If you need minimize number of visits to customer - set this to 1.
min_inuse - If you set this to 1 - minimization of used vehicles will have precedence over distance/time.If you set this to 0 - precedence will have distance/time over number of used vehicles.
min_distance - If you set this to 1, program will minimize total distance for all vehicles.If you set this to 0 - total time.
regret - Program supports several modifications of regret insertion heuristics during ruin/recreate operation.If my experiments - 5 gives the best results, you may also try 4.
max_fullpos - If you solving VRPPD tasks - set this to 1.Program will seek insertion position of order more carefully and gives you better result.Of course program works slower.For CVRP/CVRPTW types of tasks this has no sense, set this to 0.If you are solving relatively simple CVRP(TW) tasks - such as benchmark instances - you can set this to -1.
google_lang - Language parameter for Google Maps.This parameter used only by built in Google Maps functions in registered version.
Program data.

Program stores all data in a database file VrpPd.mdb - in Microsoft Access format. It is created in the same file directory where the program is - if VrpPd.mdb does not exists. Database has very simple structure so, if you prefer, you can load all data with Ms Access or some other program.

If you need to use other database, you can use vertically any, which has suitable OLE DB provider.All you need - add connection string to VrpPd.config :

<connectionStrings> <add name="VrpPd=" connectionString=="YOUR CONNECTION STRING HERE=" /> </connectionStrings>

And create tables in your database with structure like in VrpPd.mdb.This differ from database to dababase.

Import from text files.

Program can import data from text, tab delimited files. You can use excel (or some external program) to create such files. Simply fill excel sheet with your data and save it as "Unicode text" or "Text (tab delimited)". Then you can import data into the program.

This is Excel workbook with all possible import formats and comments.


Program homepage : VrpPd.

© 2014-2017 If you need more information on VrpPd,or interested in solving such tasks - contact me by email shobb@narod.ru