Journal "Software Engineering"
a journal on theoretical and applied science and technology
ISSN 2220-3397

Issue N11 2016 year

DOI: 10.17587/prin.7.498-508
Graph Learning by Automaton
I. B. Bourdonov, igor@ispras.ru, A. S. Kossatchev, kos@ispras.ru, Institute for System Programming RAS, Moscow, 109004, Russian Federation
Corresponding author: Bourdonov Igor B., Leading Researcher, Institute for System Programming RAS, 109004, Moscow, Russian Federation, e-mail: igor@ispras.ru
Received on July 22, 2016
Accepted on August 22, 2016

Graph models of technical objects and processes are used widely in hardware and software dealing with those objects and processes. So, various graph analysis algorithms are important to development of such software. This article is the first one in a series of publications devoted to graph learning algorithms performed by automata. We consider a case of a graph explored by an automaton, which moves through graph edges (according to their orientation in case of directed graph or in any direction in undirected case), can store some data in graph vertices and read them when visiting a vertex later. The edges leading from a vertex are enumerated (such a graph is called an ordered one) and the automaton staying in a vertex specifies the edge number to move on this edge. We study and design algorithms executed by the automaton that performs graph learning or exploration — construction of a path containing all the graph edges, such a path is called a traversal. We provide exploration algorithm complexity estimations, which depend on the type of graph (directed or undirected, with the structure known or unknown at the start of exploration) or the type of automaton used (with various bounds on available resources and operations). Most attention is given to the case of unknown graph, the case of known structure of the graph is investigated to get the estimation of minimal traversal length. For unknown graph we consider irredundant and free automata. Irredundant automaton can execute an operation returning the number of all edges leading from the current vertex, so it can know all the valid edge numbers just after entering a vertex. Free automaton has no such operation; it can only try to use various numbers to move from the current vertex. If there exists an outgoing edge with such a number, the move is successful and the automaton enters the end vertex of this edge; if there are no such outgoing edges, the automaton remains in the current vertex. Automata types can differ by the size of their internal memory: a robot is a finite automaton with bounded memory; an automaton is a semi-robot if its memory size depends on the graph size, however the graph cant be located in automaton memory; an unbounded automaton can store the entire structure of the graph in its internal memory. We also consider different types of exploration: a primary exploration is performed on the graph without any information in its vertices, a secondary exploration is performed on a graph already explored and having some data stored in its vertices. In the next papers we plan to present results concerning algorithms of graph exploration performed by several automata working in parallel. A graph explored can be nondeterministic or even dynamic, changing its structure during the exploration.

Keywords: graph learning, graph exploration, graph traversal, undirected graph, directed graph, labyrinth, ordered graph, numerated graph, unknown graph, automaton, robot
pp. 498–508
For citation:
Bourdonov I. B., Kossatchev A. S. Graph Learning by Automaton, Programmnaya Ingeneria, 2016, vol. 7, no 11, pp. 498—508.