The basic problem one needs to solve when creating an intelligent machine that performs automated synthesis of algorithms, is discovering a way or manner in which a job is assigned to the machine. There are sophisticated approaches to solving this problem, e.g. by creating specifications that consist of rules and constraints. The QSMM framework uses the simplest approach, in which a developer must reduce the task to an optimization task, which goal is the maximization of increment or decrement velocities of a set of numeric quantities. Those numeric quantities could be logarithms of probabilities that should be maximized, energy values that should be minimized, or the sum of incentives, which are given to the machine when a partially designed algorithm successfully reaches some point in solving the task. The machine then has to synthesize by trial and error an algorithm, which when executed, solves the optimization task as best as possible. The classical approach to such synthesis is to use a genetic algorithm that evolves a target algorithm by multiple iterations to maximize the value of a fitness function. The QSMM framework uses a different and generally much more effective approach, where the synthesis of an algorithm is performed simultaneously with its execution.
Historically, in the QSMM framework, the value of a numeric quantity, which increment or decrement velocity is maximized, is called a spur. Every such numeric quantity specifies a spur type, to which the values of spur belong. To increase the efficiency of an algorithm synthesis, a programmer should provide a transparent way to evaluate spur values, which then allows an intelligent machine to better understand the correlation between changes made in the algorithm being synthesized and changes in spur. Developing a proper way of spur evaluation is one of the most complex tasks needed to be solved when creating an intelligent machine using the QSMM framework.