Raw File
INPUT_OUTPUT.md
# Description of the Input and Output formats for graphs and Steiner Trees

The input and output formats used in our program are the same used by the 
PACE Challenge 2018 (Track 3, Heuristic). The description below was extracted
from the link [https://pacechallenge.org/2018/steiner-tree/](https://pacechallenge.org/2018/steiner-tree/)


## Graph format (.gr)

We use the format ".gr" to specify graphs. 

The file starts with a line ‘SECTION Graph’. The next two lines are of the 
form ‘Nodes #nodes’ and ‘Edges #edges’, always in that order, where #nodes
is the number of vertices and #edges is the number of edges of the graph. The #edges
next lines are of the form ‘E u v w’ where u and v are integers between 1 and #nodes
representing an edge between u and v of weight the positive integer w.
The following line reads ‘END’ and finishes the list of edges.

There is then a section Terminals announced by two lines ‘SECTION Terminals’ and ‘Terminals #terminals’
where #terminals is the number of terminals. The next #terminals lines are of the form ‘T u’ where u is an
integer from 1 to #nodes, which means that u is a terminal. Again, the section ends with the line ‘END’.

The file ends with a subsequent line ‘EOF’. Here is an example of a small graph.

```
SECTION Graph
Nodes 5
Edges 6
E 1 2 1
E 1 4 3
E 3 2 3
E 2 4 4
E 3 5 10
E 4 5 1
END

SECTION Terminals
Terminals 2
T 2
T 4
END

EOF
```

# Steiner Trees (.ost)

We use the format ".ost" to specify Steiner trees. The file starts with the line ‘VALUE x’
where x is the weight of the found Steiner tree. The next lines are of the form ‘u v’ where
u and v are two vertices of the graph linked by an edge and lists all the edges of the
found Steiner tree. Here is a small example.

```
VALUE 20
1 3
3 5
7 3
10 7
7 22
```
back to top