Distributed Algorithms for Unidirectional Networks
SIAM Journal on Computing
ClassBench: a framework for automated class testing
Software—Practice & Experience
Computing with snakes in directed networks of automata
Journal of Algorithms
Exploring Unknown Environments
SIAM Journal on Computing
Graph Algorithms
Formal Derivation of Finite State Machines for Class Testing
ZUM '98 Proceedings of the 11th International Conference of Z Users on The Z Formal Specification Notation
UniTesK Test Suite Architecture
FME '02 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods - Getting IT Right
Irredundant Algorithms for Traversing Directed Graphs: The Deterministic Case
Programming and Computing Software
Irredundant Algorithms for Traversing Directed Graphs: The Nondeterministic Case
Programming and Computing Software
Journal of Graph Theory
Backtracking Problem in the Traversal of an Unknown Directed Graph by a Finite Robot
Programming and Computing Software
Complete open-state testing of limitedly nondeterministic systems
Programming and Computing Software
Hi-index | 0.00 |
A covering path in a directed graph is a path passing through all vertices and arcs of the graph, with each arc being traversed only in the direction of its orientation. A covering path exists for any initial vertex only if the graph is strongly connected, i.e., any of its vertices can be reached from any other vertex by some path. The strong connectivity is the only restriction on the considered class of graphs. As is known, on the class of such graphs, the covering path length is Θ(nm), where n is the number of vertices and m is the number of arcs. For any graph, there exists a covering path of length O(nm), and there exist graphs with covering paths of the minimum length Ω(nm). The traversal of an unknown graph implies that the topology of the graph is not a priori known, and we learn it only in the course of traversing the graph. At each vertex, one can see which arcs originate from the vertex, but one can learn to which vertex a given arc leads only after traversing this arc. This is similar to the problem of traversing a maze by a robot in the case where the plan of the maze is not available. If the robot is a “general-purpose computer” without any limitations on the number of its states, then traversal algorithms with the same estimate O(nm) are known. If the number of states is bounded, then this robot is a finite automaton. Such a robot is an analogue of the Turing machine, where the tape is replaced by a graph and the cells are assigned to the graph vertices and arcs. Currently, the lower estimate of the length of the traversal by a finite robot is not known. In 1971, the author of this paper suggested a robot with the traversal length O(nm + n2log n). The algorithm of the robot is based on the construction of the output directed spanning tree of the graph and on the breadth-first search (BFS) on this tree. In 1993, Afek and Gafni [1] suggested an algorithm with the same estimate of the covering path length, which was also based on constructing a spanning tree but used the depth-first search (DFS) method. In this paper, an algorithm is suggested that combines the breadth-first search with the backtracking (suggested by Afek and Gafni), which made it possible to reach the estimate O(nm + n2loglog n). The robot uses a constant number of memory bits for each vertex and arc of the graph.