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 representing workflows, then into vectors and matrices, allowing for comparison with optimized versions stored in a database to detect and correct inefficiencies by converting the code into a more efficient form.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

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

Engineering Contradiction:
Improvecode execution speedVSAvoidoptimization accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent replaces manual developer optimization (mechanical human process) with an automated system using graph-based vectorization and machine learning. The system converts code into graphs, extracts vectors, compares them with optimized versions in a database, and automatically generates optimization suggestions, eliminating the imprecision of manual optimization.

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

Solution Approach 2:

The optimization system enables code to be optimized through automated analysis rather than requiring developer intervention. The system self-evaluates code efficiency by comparing graph vectors against a database of optimized code patterns and automatically generates optimization recommendations.

Inventive Principle:
Principle #25Self-service

2Measurement precision

If automated code optimization is implemented using graph-based vectorization, then optimization precision is improved, but the device complexity increases

Engineering Contradiction:
Improveoptimization accuracyVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the code optimization process into distinct components: code-to-graph conversion, graph vectorization, database storage of optimized patterns, vector comparison, and optimization generation. This segmentation manages complexity by breaking down the sophisticated optimization system into manageable, modular stages.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces intermediate representations (graphs and vectors) as mediators between the original code and the optimization process. These intermediaries simplify the comparison and analysis operations, making the complex optimization task more manageable while maintaining high precision.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If code is converted into graphs and vectors for comparison, then code efficiency can be optimized, but the processing time and computational resources increase

Engineering Contradiction:
Improvecode execution speedVSAvoidoptimization processing time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by pre-converting code into graphs and vectors, and pre-storing optimized code patterns in a database. This preparation work is done beforehand, so that when optimization is needed, the system can quickly compare vectors against the preprocessed database without performing the entire conversion process in real-time.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11256488B1Graph-based vectorization for software code optimizations
Publication Date: 2022.02.22 BANK OF AMERICA CORP
  • US11256488B1 patent drawing
  • US11256488B1 patent drawing
  • US11256488B1 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.