Parallel calculations by automata on direct and back spanning trees of a graph

The paper presents a parallel computation algorithm of an arbitrary function value on a multiset of values distributed on directed graph vertices. The computation is performed by message passing executed by automata distributed on the graph vertices. The key idea of the algorithm is to use a structural information on the graph that can be extracted by its parallel exploration and encoded into structures of direct and back spanning trees of the graph, which require only finite number of bits in each graph vertex, and to represent the function calculated as a composition of so called aggregate function and another one. Aggregate functions are characterized by possibility to calculate their value on a union of multisets by aggregating their values on separate multisets, that makes them easy for parallel computation.


Introduction
A task of graph exploration with a goal to uncover a structure of unknown graph by moving along its arcs can be met in many domains.In this paper we regard as possible applications exploration of networks and exploration of Web-application structure.
In many cases such an exploration can be considered as being performed by agents working in graph vertices and sending each other messages along graph arcs.
Sometimes graph exploration is performed to make possible calculation of some function of values stored in graph vertices.
Since different vertices can store equal values, such a function is a function of a multiset of values.We consider situation where calculation is initiated by an external stimulus processes by the automaton located in some root vertex of the graph, and the value calculated is sent by this root automaton to the requester.
Graph processing algorithms and their efficiency highly depend on the known information on the graph, in the worst case in the initial state the graph can be completely unknown and an algorithm should gather information on its structure itself by walking through arcs.Here we suppose that vertex automata are in such states, that contains the following information on the graph structure.Graph has specified direct spanning tree, having the tree root coinciding with the root vertex of the graph and directed from the root, and back spanning tree directed to the root.Arcs not belonging to the direct spanning tree are called chords.Arcs of the direct spanning tree are called direct arcs, of the back oneback arcs.A back arc can be a direct one or a chord.Each vertex automaton stores arc kind (direct, chord, back + direct, back + chord) for each arc outgoing from its vertex.Also vertex automaton stores the number of back arcs incoming to its vertex.Such data can be gathered during previous exploration of the graph described in our paper "Building direct and back spanning trees by automata on a graph".Function calculation by vertex automata is performed with pulse algorithm.Its idea is first to send request message from the root vertex to all other vertices, then to send response message from each vertex to the root one.It allow to calculate in parallel any function of multiset of values stored in vertex automata (we also sometimes say that they are stored in graph vertices).The worst case working time of the algorithm is O(D), where D is the graph diameter, the maximum length of non-self intersecting path.The details of the algorithm and proofs of all statements can be found in [ [1]].