This program demonstrates basic features of algorithms used in QSMM. The paper “An Approach to Optimal Action Generation for a System that Interacts with the Environment” describes them. Starting from QSMM version 1.16, the package distribution does not include that paper, because despite being informative, the paper contains serious mistakes, which are not fixed yet. You can access the paper in its current state from the project home page mentioned in Obtaining QSMM.
The program performs interaction between a system and an environment represented by a deterministic finite automaton. The system is either homogeneous or consists of two subsystems, where the first subsystem identifies a current environment state, and the second subsystem generates an adaptive action based on the current state. The program can read the description of a deterministic finite automaton representing the environment from a file specified by a program argument or generate the automaton randomly on the fly.
The files test.c, eemat.h, eemat.c, findcyc_ee.h, and findcyc_ee.c in the subdirectory samples in the root of the package distribution contain the source code of this example program.
|• The Format of an Automaton File|
|• Generating Random Automatons|
|• Performing the Interaction|
|• Running Multiple Test Passes for a Single Automaton|
|• Options Common for Both System Types|
|• The Case of a Homogeneous System|
|• The Case of a System Comprised of Two Subsystems|
|• How to Reproduce Plots Represented in the Paper|