09.02.2013 Views

SESSION GRAPH BASED AND TREE METHODS + RELATED ...

SESSION GRAPH BASED AND TREE METHODS + RELATED ...

SESSION GRAPH BASED AND TREE METHODS + RELATED ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

26 Int'l Conf. Foundations of Computer Science | FCS'12 |<br />

slave processor performs a fixed number of GRASP iterations.<br />

Once all processors have finished their computations, the best<br />

solution is collected by the master processor. The results of<br />

computational experiments illustrate the effectiveness of the<br />

proposed parallel GRASP procedure for the Steiner problem<br />

in graphs. Verhoeven and Severens proposed sequential and<br />

parallel local search methods for the Steiner tree problem<br />

based on a novel neighborhood. They claimed their approach<br />

is “better" than those known in the literature. Computational<br />

results indicated that good speedups could be obtained without<br />

loss in solution quality [18].<br />

4 Minimum Spanning Tree Heuristic<br />

Algorithm<br />

In the minimum spanning tree heuristic (MSTH)<br />

suggested by Takahashi and Matsuyama [19], the solution<br />

푇 ���� is obtained by deleting from the minimum spanning<br />

tree for 퐺 non-terminals of degree 1 (one at a time). The<br />

worst-case time complexity of the minimum spanning tree<br />

heuristic is 푂 ( 푒 + 푣 푙표푔 푣). The worst-case error ratio<br />

|푇 ����| ⁄ |푇 �(푁)| is tightly bounded by 푣 − 푛 + 1. Hence,<br />

the minimum spanning tree heuristic can be considered as<br />

inferior to the shortest paths heuristic in the worst-case sense.<br />

It also performs poorly on average. The proposed heuristic<br />

algorithm in this paper consists of eight steps. In the first step,<br />

after assuming that 푇 ����� is equal with null, we<br />

obtained 푇 ���� by graph 퐺.<br />

5 Improve Minimum Spanning Tree<br />

Heuristic Algorithm<br />

5.1 Description of the IMSTH Algorithm<br />

The proposed heuristic algorithm in this paper consists<br />

of eight steps. In the first step, after assuming that 푇 ����� is<br />

equal with null, we obtained 푇 ���� by graph 퐺.<br />

In the second step of algorithm, we assume two divisions of<br />

edges and paths between two terminals in 푇 ����:<br />

� Existence direct edge in 푇 ����<br />

� Not existence direct edge in 푇 ���� and existence<br />

direct edge in graph.<br />

In the third step, for the first category, select the direct<br />

edges of two terminals which obtained by 푇 ���� and add into<br />

푇 �����. in the fourth step, for the second category, make<br />

compare between paths and direct edges of two terminals:<br />

� If direct edge be shortest, add into 푇 �����.<br />

� If path be shortest, add into 푇 �����.<br />

In the next step, we study 푇 �����, to determine all disjoin<br />

terminals. In the sixth step obtained the shortest paths between<br />

disjoin terminal and other terminals in the graph with Dijkstra<br />

algorithm. Select shortest path between reached paths and add<br />

into 푇 ����� .<br />

In the next step, we study 푇 �����, for connectivity. If we<br />

have forest, determine terminals with degree 1, then seek<br />

shortest path from this terminal to other terminals, and add it<br />

into 푇 ����� .<br />

At the end, study 푇 for cycle. If we have cycle, delete cycle.<br />

Fig. 1 shows our suggested algorithm.<br />

Suggested algorithm: (INPUT: 퐺 = (푉, 퐸) where 푤: 퐸 → 푅 + ,<br />

푁 ⊆ 푉set of Terminals, OUTPUT: 푇 ����� approximate optimal tree) {<br />

Step 0: 푇����� → ∅<br />

Step 1: Compute 푇 ���� of the graph 퐺.<br />

Step 2: Assume two divisions of edges and paths, between two<br />

terminals in 푇 ����:<br />

a) Existence direct edge in 푇 ����<br />

b) Not existence direct edge in 푇 ���� and existence direct edge in<br />

graph<br />

Step 3: For the first category, select the direct edges of two terminals<br />

which obtained by 푇 ���� and add into 푇 �����.<br />

Step 4: For the second category, make compare between paths and<br />

direct edges of two terminals:<br />

a) If direct edge be shortest, add into 푇 �����.<br />

b) If path be shortest, add into 푇 �����.<br />

Step 5: Study 푇 �����, to determine all disjoin terminals.<br />

Step 6: Determine the shortest paths between disjoin terminal and other<br />

terminals in the 푇 ����� with Dijkstra algorithm. Select shortest path<br />

between reached paths and add into 푇 ����� .<br />

Step7: Study 푇 �����, for connectivity. If we have forest, determine<br />

terminals with degree 1, seek shortest path from this terminal to other<br />

terminals, and add it into the 푇 ����� .<br />

Step 8: Study 푇 ����� for cycle. If we have cycle, delete cycle.}<br />

Fig. 1: Suggested algorithm for SPG in graph<br />

5.2 Illustrative Example<br />

In the example graph shown in Figure 2a, vertices 푣0<br />

, 푣3 ,푣4, 푣6 and 푣8 are terminal vertices. We construct 푇 ����<br />

by this graph (Fig. 2b). The cost of 푇 ���� is equal with 808.<br />

It can be observed that between two terminals 푣3, 푣6<br />

and 푣0, 푣8 exists a direct edge in 푇 ����, so the direct<br />

edges< 푣3, 푣6> and < 푣0, 푣8> is selected and add into 푇 퐼푀푆푇퐻<br />

. at the other hand, between two terminals 푣3 and 푣4 a direct<br />

edge in graph exists that is shortest than the paths between this<br />

two terminals, so in the fourth step the direct edge < 푣3, 푣4><br />

is selected and add into the 푇 ����� (Fig. 2c). In the next step,<br />

we study 푇 ����� for disjoin terminals but don’t find any<br />

disjoin terminal.<br />

Now Study 푇 �����, for connectivity. It is observed that we<br />

have forest. so determine terminals with degree 1, seek<br />

shortest path from this terminal to other terminals, and add it<br />

into the 푇 ����� (Fig. 2d). At the end, the cost of 푇 ����� is<br />

equal with 738(Fig. 2e). Fig. 2 illustrates steps of our<br />

algorithm.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!