Migrate from GitHub to SourceForge with this tool. Check out all of SourceForge's recent improvements.


Alex Popov

GraphBuilder 2.5 Screenshot

The program performs visualization of 4 most popular graph algorithms: Dijkstra, Floyd, Prim and Kruskel algorithms. It supports definition of color and width of edges, color and size of vertices, step delay time. It also has a convenient function of upload of
the graphs to a remote server for further storage and download on user's computer. Some graphs are included into the installation. Graphs can be created and edited by the user - in the built-in visual editor or in any plaintext editor.


Visualization is done by highlighting edges and vertices with different colors. The delay between color change is defined by the value set in the Settings module. In the top-right corner of the window there is a box where the number of the current iteration is displayed.
The process can be paused at any moment or stopped completely by the two buttons below the Iteration box. The paused process can be continued at any time by pressing again the same button.

You can also capture snapshots of the graph any time you like with the respective button. To adjust the capture area, click "Set area" buton. To hide the green border, click this button again.

You can also define the background colour for your screenshots in Settings module, which can differ from the background color of the program window.

Startup keys:

[path to exe] -n
creates a new graph

[path to exe] [path to graph]
opens the given graph (both absolute and relative paths are supported)

[path to exe] [path to graph] [alg]
opens the given graph and starts algorithm [alg]

[path to exe] [path to graph] [alg] -silent
opens the given graph and starts algorithm [alg] in silent mode

[path to exe] [path to graph] [alg] [path to log]
opens the given graph, starts algorithm [alg] and saves resulting log

[path to exe] [path to graph] [alg] -silent [path to log]
[path to exe] [path to graph] [alg] [path to log] -silent
opens the given graph, starts algorithm [alg] in silent mode and saves resulting log

[path to exe] [path to graph] [alg] -silent [path to log] -q
[path to exe] [path to graph] [alg] [path to log] -q
[path to exe] [path to graph] [alg] -q
opens the given graph, starts algorithm [alg] and exits the application when finished

Settings module:

You should not be afraid to make a mistake while entering the numerical values in the text fields. The program will correct the wrong values automatically, by rounding fractions to whole numbers and replacing the non-numerical values with the defaults.
The settings are stored on local hard drive and are not reset after program shutdown.
There is also a possibility to reset the values to defaults with the respective button.

Working with server:

You can think of an arbitrary name for your graph and try to upload it to the server. Therefore, as there is only one server, the name can be already in use. In this case the program will suggest you an alternative name. It is not mandatory to accept the suggested name, but it can make finding another name a bit easier.

Download is divided into two steps. First a window openes and the list of available remote graphs is displayed. Then you select the appropriate graph and download it directly into the program, where it can be saved. There is no protection of your graphs, that means that anyone can download them.

File format description:

You can create your own graphs in the text editor. That's why the data is stored in plaintext.
Let's look at the example:

 0   5  10  25  -1
 5   0   3  13  -1
10   3   0   7  10
25  13   7   0   8
-1  -1  10   8   0

1 A 90  100  -8  14
2 B 150  55   0 -14
3 C 157 140  -5  14
4 D 202  78   0 -14
5 E 248 140  18   7

not oriented

 0   0  -3  -3  -6   6   -7   -4   0   0
-3  -3   0   0  -6   12   0   -3   0   0
-6   6  -6  12   0   0   -1  -10   0   6
-7  -4   0  -3  -1  -10   0    0   2  -3
 0   0   0   0   0    6   2   -3   0   0

First comes the dimension of the adjacency matrix n. It is followed by the adjacency matrix itself (next n lines).

Then comes an empty string.
Next n lines contain vertex data:

[name] [x] [y] [x_sp] [y_sp]

where [name] is the name of the vertex, [x] and [y] - its coordinates, [x_sp] and [y_sp] - horizontal and vertical offsets of the label relatively to the center of the vertex.
Positive values correspond to east and south directions respectively, negative - to west and north. The entries are separated with spaces.

Then comes another empty line, and after it one of the to predefined strings:

[oriented | not oriented]

The first string correspond to oriented graph, the second - to not oriented one. All presented algorithms are meant to work with not oriented graphs.

Then comes one more empty line, under which is located the edge weights offsets matrix. It is similar to adjacency matrix, but instead of edge weights it is build of the pairs of whole numbers, separated with spaces. The first number of each pair defines the horizontal weight label offset, while the second one determines vertical offset. Numbers in pair may be separated with several spaces for convenience, the same is true or separating different pairs from each other.

Working with export templates:

You can save log files, obtained by running algorithms, in simple HTML format (using standard template), in HTML with CSS support (alternative template), or using your personal export template. Template is a special file, contents of which are copied to the destination file with replacing all the entrances of special sequence with the obtained data. The user can define if the program should replace either all the entrances or just the first one, "trigger limit", i.e. only the given number of entrances in succession will be replaced, and the special sequence itself. This allows to create your own CSS styles, design and decorate the output to your taste or just multiply obtained data.

The insertion is possible into any plain text format (HTML, XML, TXT, RTF, PHP, ASPX, INI, INF). Unfortunately, more compound formats such as DOC or PDF are not supported.