|topics:||Algorithms and Data Structures , Graphs|
The FMT-based open source tool GROOVE can transform graphs (using user-provided rules describing the transformations) by adding and removing nodes and edges. Since the graphs can stand for pretty much any kind of system, ranging from computer networks to games, this is a very powerful and versatile modelling formalism. Given a set of rules and a start graph, GROOVE can explore the possible rule applications in any of a number of ways, for instance depth-first, breadth-first and linear, with different types of stopping criteria.
When modelling a game (be it chess or mens-erger-je-niet) the main question is to find the best move. This involves a particular type of strategy called minimax. This assignment involves adding support for the minimax strategy to GROOVE, and showing its application on a number of well-chosen examples.