QSMMA framework for development of intelligent systems with spur-driven behavior
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, except for one source file in C++.
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 a 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.
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.
2012-07-29 QSMM version 1.14 released
The most important improvement made is handling a case when a state transition matrix and an action emission matrix of a node are sparse ones. It is the most typical case for those matrices, which probability profiles are specified by an assembler program loaded into the node. Special support for sparse matrices allows fast execution of an assembler program that contains thousands of states. Before this improvement, execution of such an assembler program, which contained merely a hundred of states, was extremely slow, and this made impossible creating complex assembler programs to address problems that occur in practice. I hope that now the framework would help to solve those problems.
The programmer's manual is available in the HTML format and in the PDF for viewing online. A PDF version of the manual is also 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.
A document that had inspired development of version 1.13 of the package is available in Russian only (PDF).
For introductory information on the project, read a conversation between Oleg Volkov, a developer of QSMM, and Rich Bowen, a Community Growth Hacker at SourceForge.net, published in the site blog on May 24, 2012.
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.
Current version of the QSMM package is 1.14. A package distribution that contains source code can be downloaded from project files page provided by SourceForge.net.
Information on giving feedback on the project, which includes reporting bugs in the package and the package documentation, is provided on the separate page.