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.


2014-07-29 QSMM version 1.16 released

The first stable release of the package.

More information

2013-05-27 QSMM version 1.15 released

This version of QSMM is more than all previous versions geared to help scientists to perform productive research. The following new features could help to develop efficient algorithms for solving problems that require intelligent behavior.

More information

Previous News


The programmer's manual is available online in the following formats:

A PDF version of the manual is included in the package distribution. Versions of the manual in other formats can be built from Texinfo sources included in the package distribution.

For an overview and more information on the project, read a conversation between Oleg Volkov, a 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.


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.

Download Link

Current version of the QSMM package is 1.16. A package distribution that contains source code can be downloaded from the project files page provided by SourceForge.net.


Access to the repository of source code of next package version being developed:

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

Occasionally rebuilt programmer's manual for next package version:


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.