Finite State Machine Dynamic Reconfiguration via Associative Arrays

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing finite state machine implementations are statically defined, limiting their ability to adapt to changing conditions and requiring recompilation and reinstallation to modify states and event handlers, which hinders rapid development and evolution of complex software systems.

Innovation Solution

A computer-implemented method using an associative array to dynamically reconfigure the operation of a finite state machine by storing and updating associations between states, events, and functions, allowing for on-the-fly changes without recompilation, utilizing techniques such as hash tables and XML files for easy modification and remote updating.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a static jump table is used to define finite state machine transitions, then the system has stable and reliable operation, but the system cannot be dynamically reconfigured without recompilation and reinstallation

Engineering Contradiction:
Improvedynamic reconfiguration capabilityVSAvoidsystem architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent transforms the static jump table into a dynamic structure by using associative arrays that can be modified at runtime. The finite state machine transitions from a fixed compilation-time definition to a configurable runtime structure, allowing states and event handlers to be added, removed, or modified without recompilation. This dynamic approach resolves the contradiction by enabling adaptability while managing complexity through structured data organization.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of state definition from static (compiled) to dynamic (runtime-configurable). By using associative arrays to store state-event-function mappings, the system allows parameter changes to the finite state machine behavior without changing the core system architecture. This enables the transition table to be reconfigured by modifying array contents rather than recompiling code.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If the finite state machine is statically compiled into binary source code, then the execution is efficient and reliable, but modifications require recompilation and reinstallation which hinders rapid development

Engineering Contradiction:
Improvedevelopment speedVSAvoidtime for recompilation and reinstallation
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent enables dynamic modification of the finite state machine by replacing static compiled tables with runtime-configurable associative arrays. Developers can add, remove, or modify states and event handlers by simply updating the array contents in memory, eliminating the need for recompilation and reinstallation. This dramatically increases development speed while maintaining execution efficiency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent prepares the finite state machine with a flexible data structure (associative array) that anticipates future configuration needs. The system is pre-designed to accommodate runtime changes without requiring structural modifications to the core execution logic, allowing rapid prototyping and iteration during development.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If a static jump table is used, then the system structure is simple and easy to implement, but the system lacks flexibility to handle evolving requirements and complex scenarios

Engineering Contradiction:
Improveflexibility to handle evolving requirementsVSAvoidease of modification
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent enables flexible adaptation to evolving requirements by allowing the finite state machine parameters (states, events, transitions) to be changed at runtime through associative array modifications. This maintains ease of operation by using simple array manipulation syntax while providing the flexibility needed for complex, evolving systems.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent uses associative arrays as a copyable, serializable representation of the finite state machine configuration. The state machine can be copied, cloned, or serialized to storage, allowing configurations to be exchanged, backed up, or restored without modifying the core execution logic. This copying capability enhances both flexibility and ease of operation.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9082073B2Method and apparatus for operating a finite state machine
Publication Date: 2015.07.14 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9082073B2 patent drawing
  • US9082073B2 patent drawing
  • US9082073B2 patent drawing

AI summary

A finite state machine is provided. The finite state machine causes a function to be carried out in dependence on at least an event input to the finite state machine and the current state of the finite state machine. Associations between the functions that are to be carried out and combinations of the states and the events are identified using an associative array. The associations identified using the associative array are amended while the finite state machine is operating to dynamically reconfigure the operation of the finite state machine.