1.Defining points(locations).

Point description

In this window, you can add, delete, or change information on points(locations). After any change of points you must save the changes to the database (the button "Save"). Point number must be unique. If you do not want to save changes - simply exit the program and enter again. (Note: If you delete a point - all the associated distances are removed. ) Then you can set the distance from one point to all the other points - the button "Dist.from;" for a specific point. (Or "Dist.to;" - for settind distances to this point from others points.) If you click it, you will see a next window:

(If you are satisfied with the information on the points and distances between them,you click "Next". The window in which you can choose the points you want to visit and the number of vehicles appears. See 3.Choosing points for visiting and number of vehicles.)

2.Defining distances between points.


Automatically appear every possible point, to which you can set a distance. Editable is only one field - "Distance." If there is no a direct connection to this point the field should be empty.Distance must be greater than or equal to 0. When you click on Ok - the changes are saved, Cancel or close the window - the changes are lost.

Attention: To work properly all distances must be in kilometers.

Whan you are in first window , you can also import points and distances from a text file.Menu => Additional commands => Import text data. Program reads utf-8 encoded text file.File format :

[Point name 1] tab [Point name 2] tab [distance from Point 1 to Point 2] tab [distance from Point 2 to Point 1].

If , at example Point 1 have no connection to Point 2 , distance from Point 1 to Point 2 - must be empty. To work properly , if there is no direct connections between two any points,indirect connection through other points must exists.

You can also import text file with task previously saved or prepared with external program. Menu => Additional commands => Read task from file. (Task file format description)

3.Choosing points for visiting and number of vehicles.

Choose points

In the left list you can choose necessary points. When you click on the button "->" ,they moved to the right list of points to visit. Attention - the first point in the right list is considered the beginning of the route. It is from the vehicles go on a journey and it is expected to return. If you want to remove a point from the already chosen - select it in the right list and click "<-". In the "Number vehicles" - sets the number of vehicles to be used for visiting the points.

So, if you want to go back to the first screen - click "Back". To continue working click "Next". And get to the next window.

4.Defining parameters of points and vehicles.

Define parameters

In upper part of the screen you see list of choosen on previous step points.For each point you must define: cargo (in tons ) to deliver to this point,delay (in minutes ) in this point for load/unload operation and the start and the end of time window for visiting customer at this location.If you time is unimportand - set large time windows.

In the lower part of the screen - table , where you must define parameter of vehicle.(All vehicles are considered identical).You must define vehicle own weight (in tons),vehicle average speed (km/h) and maximum cargo weigth (in tons).

You can also define limit for a vehicle round trip in minutes - Trip.max.limit.Program tries to find routes to vehicles that are not longer that this time.So if this parameter is unimportant for you, set it to large enough value.

If menu item "Use all vehicles" is checked used a given number of vehicles,else a lesser number of vehicles, if possible.

At this moment , you may save this task into text file. Menu => Additional commands => Save task to file.Than you can later load the task.

After you define all parameters , you press button "Next" and program starts optimization - next screen:

5.Perform optimization.


First of all program finds a shortest paths between choosen locations , and then it starts optimization process.

Program displays progress when it finds better solution.It sequentially restarts algorithm, to be sure that we do not accidentally find a local minimum and to improve solution.The best found solution is stored and when you stop the program it will be considered as result. Work may be stopped at any moment by pressing button "Stop".More time it works - more better solution can be found by program as we use genetic algorithm. Speed greatly depends on your computer. For 50 locations you must give a program to work about 10 minutes,for 10 points - about 2 minutes on average computer.

After you press "Stop" - final screen in shown and results(example) are copied into clipboard.So you can paste it in any text editor to print or edit.

Last screen