09.09.2014 Views

13th International Conference on Membrane Computing - MTA Sztaki

13th International Conference on Membrane Computing - MTA Sztaki

13th International Conference on Membrane Computing - MTA Sztaki

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.

<str<strong>on</strong>g>13th</str<strong>on</strong>g> <str<strong>on</strong>g>Internati<strong>on</strong>al</str<strong>on</strong>g> <str<strong>on</strong>g>C<strong>on</strong>ference</str<strong>on</strong>g> <strong>on</strong> <strong>Membrane</strong> <strong>Computing</strong>, CMC13,<br />

Budapest, Hungary, August 28 - 31, 2012. Proceedings, pages 171 - 197.<br />

Fast Distributed DFS Soluti<strong>on</strong>s for Edge-disjoint<br />

Paths in Digraphs<br />

Hossam ElGindy 1 , Radu Nicolescu 2 and Huiling Wu 3,∗<br />

1 School of Computer Science and Engineering, University of New South Wales,<br />

Sydney, Australia<br />

elgindyh@cse.unsw.edu.au<br />

2,3 Department of Computer Science, University of Auckland,<br />

Private Bag 92019, Auckland, New Zealand<br />

r.nicolescu@auckland.ac.nz, hwu065@aucklanduni.ac.nz<br />

Abstract. We present two new synchr<strong>on</strong>ous distributed message-based<br />

depth-first search (DFS) based algorithms, Algorithms C and D, to<br />

compute a maximum cardinality set of edge-disjoint paths, between a<br />

source node and a target node in a digraph. We compare these new algorithms<br />

with our previous implementati<strong>on</strong> of the classical algorithm,<br />

Algorithm A, and our previous improvement, Algorithm B [12]. Algorithm<br />

B improved the search speed by discarding “dead” (useless) cells<br />

found <strong>on</strong> failed search branches. Using a different idea, Algorithm C<br />

discards “dead” cells found <strong>on</strong> both successful and failed branches. To<br />

asses the merits of this idea, we also propose a restricted versi<strong>on</strong> of Algorithm<br />

C, called Algorithm C ∗ , which intenti<strong>on</strong>ally discards “dead” cells<br />

found <strong>on</strong> successful branches <strong>on</strong>ly. Interestingly, Algorithm C ∗ detects<br />

all dead cells detected by Algorithm B and a few more, but is not able to<br />

prune all of them in real time (it will prune all, if allowed to run l<strong>on</strong>ger).<br />

Thus, there are cases when <strong>on</strong>e of these two algorithms is more appropriate<br />

than the other. We further propose Algorithm D, which combines<br />

best features of Algorithms B and C. C<strong>on</strong>ceptually, all our algorithms<br />

run in O(nd) distributed synchr<strong>on</strong>ous steps, where n is the number of<br />

nodes and d is the outdegree of the source node. Empirical results show<br />

that, <strong>on</strong> a set of random digraphs, our algorithms are faster than the<br />

classical Algorithm A: B by 41.0%, C by 41.8%, C ∗ by 38.0% and D<br />

by 42.1%. All these improved algorithms have been inspired and guided<br />

by a P system modelling exercise, but are suitable for any distributed<br />

implementati<strong>on</strong>. To achieve the maximum theoretical performance, our<br />

P systems specificati<strong>on</strong> uses high-level generic rules applied in matrix<br />

grammar mode.<br />

Keywords: edge-disjoint paths, depth-first search, network flow, distributed<br />

systems, P systems, generic rules, matrix grammars<br />

1 Introducti<strong>on</strong><br />

The edge-disjoint paths problem finds a maximum cardinality set of edge-disjoint<br />

paths between a source node and a target node in a digraph [9]. Alternative<br />

171

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

Saved successfully!

Ooh no, something went wrong!