Graph-Based Vectorization for Software Code Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Optimizing software code to reduce resource consumption and execution time is not a precise science, often resulting in inefficient code that consumes more resources and takes longer to execute than necessary.

Innovation Solution

A software code optimizer that converts code into a graph, then into vectors and matrices, allowing for automatic detection and correction of inefficiencies by comparing with optimized matrices stored in a database, and applying changes to improve efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If manual code optimization is performed, then code efficiency can be improved, but the process is imprecise and often done incorrectly or suboptimally

Engineering Contradiction:
Improvecode execution efficiencyVSAvoidoptimization precision
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent replaces manual code optimization (mechanical human intervention) with an automated system that converts code to graphs, generates matrices, and performs database lookups. This substitution eliminates the imprecision of manual optimization by using algorithmic processes instead of human judgment.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The system enables code to optimize itself automatically through a deterministic process: converting code to graphical representation, generating matrices from graphs, querying databases for optimized versions, and applying corrections. The code optimization process serves itself without external human intervention, achieving precision through automation.

Inventive Principle:
Principle #25Self-service

2Loss of time

If code is executed without optimization, then execution time and resource consumption increase, but optimization processes are complex and error-prone

Engineering Contradiction:
Improveexecution timeVSAvoidoptimization system complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent segments the code optimization process into distinct, manageable components: code-to-graph conversion, graph-to-matrix generation, database querying, and code correction. This segmentation reduces the perceived complexity by breaking down the optimization system into modular, independent steps that can be executed sequentially.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces intermediate representations (graphs and matrices) as mediators between the original code and the optimization database. These intermediaries simplify the comparison and lookup processes by transforming code into a standardized format that can be efficiently matched against database entries, reducing the overall system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Use of energy by moving object

If manual optimization methods are used, then resource consumption increases, but automated methods require complex conversion processes

Engineering Contradiction:
Improvememory consumptionVSAvoidconversion process complexity
Core Design Contradiction:
Use of energy by moving objectVSDevice complexity

Solution Approach 1:

The patent performs preliminary actions by pre-converting code into graph and matrix representations before the actual optimization lookup. By preparing these intermediate forms in advance, the system enables efficient database queries and comparisons, reducing memory consumption during the actual optimization process while managing conversion complexity through structured preprocessing.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11301218B2Graph-based vectorization for software code optimization references
Publication Date: 2022.04.12 BANK OF AMERICA CORP
  • US11301218B2 patent drawing
  • US11301218B2 patent drawing
  • US11301218B2 patent drawing

AI summary

A software code optimizer automatically detects inefficiencies in software code and corrects them. Generally, the software code optimizer converts software code into a graph representing the workflows and relationships in the software code. The graph is then converted into vectors that represent each workflow in the software code. The vectors are assembled into a matrix that represents the software code. The matrix may be stored in a cluster in a database as an example of optimized software code or be compared with other matrices stored as clusters in the database to determine whether the software code is optimized. The software code optimizer can change the software code to be more efficient if a matrix for an optimized version of the software code is found in the database.