My master's thesis project was an empirical study of algorithmic cooperation. I implemented a new kind of cooperative algorithm based on A*, jovially dubbed A!, and tested it on some 15-puzzle instances.
Thesis: Cooperative Heuristic Search with Software Agents (88 pages)
Presentation: Cooperative Heuristic Search with Software Agents (30 slides)
Antti Halme. A! – A Cooperative Heuristic Search Algorithm, Vol. 264 of Frontiers in Artificial Intelligence and Applications. IOS Press, 2014.
Presentation: A! – A Cooperative Heuristic Search Algorithm (15 slides, plenty of extra material)
Code and material: https://github.com/ajhalme/coop-agents (provided as is)
Parallel algorithms extend the notion of sequential algorithms by permitting the simultaneous execution of independent computational steps. When the independence constraint is lifted and executions can freely interact and intertwine, parallel algorithms become concurrent and may behave in a nondeterministic way. Parallelism has over the years slowly risen to be a standard feature of high-performance computing, but concurrency, being even harder to reason about, is still considered somewhat notorious and undesirable. As such, the implicit randomness available in concurrency is rarely made use of in algorithms.
This thesis explores concurrency as a means to facilitate algorithmic cooperation in a heuristic search setting. We use agents, cooperating software entities, to build a single-source shortest path (SSSP) search algorithm based on parallelized A*, dubbed A!. We show how asynchronous information sharing gives rise to implicit randomness, which cooperating agents use in A! to maintain a collective secondary ranking heuristic and focus search space exploration.
We experimentally show that A! consistently outperforms both vanilla A* and a noncooperative, explicitly randomized A* variant in the standard 15-puzzle sliding tile problem context. The results indicate that A! performance increases with the addition of more agents, but that the returns are diminishing. A! is observed to be sensitive to heuristic improvement, but also constrained by search overhead from limited path diversity. A hybrid approach combining both implicit and explicit randomness is also evaluated and found to not be an improvement over A! alone.
The studied A! implementation based on vanilla A* is not as such competitive against state-of-the-art parallel A* algorithms, but rather a first step in applying concurrency to speed up heuristic SSSP search. The empirical results imply that concurrency and nondeterministic cooperation can successfully be harnessed in algorithm design, inviting further inquiry into algorithms of this kind.