QSMM icon


A framework for the development of intelligent systems

What is QSMM?

QSMM, a recursive acronym for "QSMM State Machine Model", is a framework for learning finite automatons that perform goal-directed interaction with entities which exhibit deterministic or stochastic behavior. The learning process can be carried out in real time together with the interaction process. A basic building block for supporting state models of finite automatons is adaptive probabilistic mapping, which for an argument from its domain returns more often results that maximize or minimize values of one or more objective functions. Finite automatons can be represented by assembler programs with user-defined instructions that perform effective work. To assist in the learning of a finite automaton, a template for its state model can be provided as an assembler program with probabilistic jump instructions.

For a greater understanding and a philosophical background of the framework, read the introductory sections from the programmer's manual:

The operating principle behind the framework resembles the Boltzmann machine. The framework is written in C programming language.


2021-01-27 QSMM version 1.18 released

In the topdown program, reworked the algorithm of finding terminal symbols to remove from terminal symbol classes in a template regular expression grammar at each determinization iteration. The process of learning 14 example grammars is now 2.5 times faster.

More information

2020-12-28 QSMM version 1.17 released

Reworked an example program that demonstrates learning a language.

More information

Previous News


The programmer's manual in available in several formats.

For an overview and more information on the project, read a conversation between Oleg Volkov, the developer of QSMM, and Rich Bowen, Community Growth Hacker at SourceForge.net, published in the site blog on May 24, 2012.

To view the QSMM as a prototype of an algorithm synthesis system, read the materials within a report by Oleg Volkov at conference OSDN-UA-2013 (in Russian) which also contain a video.

Basic information on the algorithms involved is provided in the paper "An Approach to Optimal Action Generation for a System that Interacts with the Environment" (PDF: in English, in Russian). However, the paper contains serious mistakes which are not fixed yet.

Source Code

Current version of the QSMM package is 1.18.

A package distribution that contains source code can be downloaded from the project files page provided by SourceForge.net.

Access to the package source code repository:

svn checkout http://svn.code.sf.net/p/​qsmm/​code/trunk qsmm-code


The package source code is distributed under the terms of the GNU General Public License, Version 3 or any later version published by the Free Software Foundation.

The programmer's manual is covered by the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation.


Feedback on the project, which includes:

can be sent through the mailing list for QSMM users. In order to post messages in the mailing list, you will first be required to subscribe.