Interdependent State Tracking via Dependency Graphs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Managing interdependent state in software programs is challenging due to complex computations and dependencies, leading to inefficiencies and errors, especially when program requirements change.
Innovation Solution
A method and device that track and store interdependent state by initializing action and pending sets, determining dependencies, and performing actions only when necessary, with priority ordering based on evaluation costs to minimize recalculation and optimize resource usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If manual state computation and management is implemented in complex programs with interdependent functions, then the program can correctly compute state values, but the complexity of managing dependencies and the error-proneness increases significantly
Solution Approach 1:
The system automatically tracks dependencies between functions and state variables, and autonomously determines which functions need to be re-executed when state changes occur. This self-service mechanism eliminates the need for manual dependency tracking and reduces errors in state management.
Solution Approach 2:
The patent replaces manual mechanical tracking of dependencies with an automated computational system that uses data structures (such as dependency graphs) to automatically determine execution order and affected state variables, reducing human error and complexity.
2Reliability
If all dependent functions are re-executed whenever any state variable changes, then the state is kept up-to-date, but the computational overhead and resource consumption increase
Solution Approach 1:
The system segments the set of dependent functions into subsets based on their dependency relationships with the changed state variable. Only the necessary subset of functions is re-executed rather than all functions, reducing computational overhead while maintaining state accuracy.
Solution Approach 2:
The patent changes the parameter of function execution from a binary (execute or not execute) to a graded approach based on dependency depth and impact analysis. Functions are re-executed based on their specific dependency relationships with changed variables, optimizing resource usage.
3Reliability
If the program re-evaluates all watch objects whenever any data changes, then the state remains consistent, but the performance degrades due to redundant calculations
Solution Approach 1:
The system performs partial action by re-evaluating only the necessary watch objects that are directly or indirectly affected by the changed data, rather than re-evaluating all watch objects. This maintains state consistency while avoiding redundant calculations and improving performance.
Solution Approach 2:
The patent implements a feedback mechanism where the system tracks which watch objects depend on which data, and uses this feedback information to selectively re-evaluate only those watch objects that need updating, preventing redundant calculations while maintaining consistency.
4Extent of automation
If complex dependency tracking is implemented to manage interdependent state, then the state management becomes automated, but the initial setup and system complexity increase
Solution Approach 1:
The system performs preliminary action by automatically establishing dependency relationships between functions and state variables during program execution or initialization. This preliminary tracking enables automated state management without requiring complex manual configuration, reducing the perceived complexity for users.
Data Source
AI summary
A method of efficiently tracking state data on a computer by designating a class of items called watch objects which have relationships with other data that may change. A change in value in the data which a watch object relies upon causes the execution of a method which efficiently evaluates the watch object and other items which depend on the watch object.


