QSMM icon


A framework for development of intelligent systems with spur-driven behavior

What is QSMM?

QSMM is a recursive acronym for "QSMM State Machine Model". It is a framework for development of non-deterministic intelligent state models and systems with spur-driven behavior. The framework is written in C programming language.

In QSMM, spur-driven behavior is behavior which goal is maximization or minimization of one or more numeric quantities called spur. Spur is a measure of success in a process of solving an optimization task. If you develop a program using the QSMM framework, then spur increments should be calculated in your program and supplied to the framework, so the latter can solve an optimization task, which is producing optimal behavior.

The framework provides several levels of abstraction to solve an optimization task. At the lowest level, your program interacts with an optimal action generation engine, which is the basic optimization task solver. At the middle level, your program interacts with a unit of two optimal action generation engines, which can guess current state of the environment or an external entity and produce optimal actions based on that state. At the highest level, your program creates a multinode model with nodes that correspond to different abstract or concrete entities, which behavior is to be learnt or which choose optimal actions using the framework.

The special feature of the framework is an ability to load assembler programs with user-defined instruction sets into nodes of a multinode model. An assembler program can contain probabilistic jump instructions and specifies probability profiles for a state transition matrix and an action emission matrix of a node. During execution of the multinode model an assembler program loaded into a node will adapt its own behavior to solve a raised optimization task.


2013-05-27 QSMM version 1.15 released

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

More information.

2012-12-12 Change in the means of giving feedback

After upgrading the platform of hosting the QSMM project at SourceForge.net, the classic Bug Tracker, Feature Requests Tracker, and Support Requests Tracker became unavailable, and I have decided not to replace them with the new Tickets feature. Instead, feedback, which was supposed to be submitted to those trackers, should now be sent to the mailing list for QSMM users. Using a mailing list for all kinds of communication about subjects related to a project is an approach, successfully used by many open source projects, and I think the QSMM project will also benefit from following this classic approach. The change in the means of giving feedback will be reflected in documentation included in the next package release.


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.

Basic information on the algorithms involved is provided in accompanying paper "An Approach to Optimal Action Generation for a System that Interacts with the Environment" (PDF: in English, in Russian). This paper is also included in the package distribution.

For introductory 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.

For a view of QSMM as a prototype of algorithm synthesis system, look into materials relating to a report of Oleg Volkov at conference OSDN-UA-2013 (in Russian).


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.

The accompanying paper is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Download Link

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


Feedback on the project, which includes:

should be sent to the mailing list for QSMM users. Posting messages to the mailing list requires prior subscription to it.