Code Resolution Engine Using Reinforcement Learning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing static code analysis tools are not optimized for specific projects, often generate false positives and negatives, and impose undue computational costs, leading to inefficient coding issue resolution.

Innovation Solution

A code resolution engine utilizing reinforcement learning and rule-based learning to automatically detect and solve coding issues by analyzing code changes, scoring problems and solutions for relevance, and applying solutions to the codebase, with cloud-based services and machine learning models to adapt to project-specific rules and conventions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If static code analysis tools are used to detect coding issues, then problem detection capability is provided, but false positives and computational costs increase

Engineering Contradiction:
Improveproblem detection accuracyVSAvoidfalse positives
Core Design Contradiction:
ReliabilityVSObject-generated harmful factors

Solution Approach 1:

The system implements feedback loops where developers can provide feedback on detected issues and their resolutions. This feedback is used to retrain and refine the machine learning models, improving detection accuracy over time while reducing false positives. The feedback mechanism allows the system to learn from actual project context and developer preferences.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system dynamically adjusts detection parameters and thresholds based on project-specific characteristics, codebase complexity, and historical data. By changing parameters adaptively rather than using fixed thresholds, the system optimizes the balance between detection sensitivity and false positive rates for each specific project context.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If static code analysis tools are applied to different local projects, then problem detection is performed, but device complexity and processing overhead increase

Engineering Contradiction:
Improveproject-specific adaptationVSAvoidprocessing complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system segments the code analysis process into distinct phases: initial comprehensive analysis, ongoing incremental analysis, and targeted deep-dive analysis. By dividing the workload and applying different analysis depths to different parts of the codebase, the system reduces processing complexity while maintaining adaptability to project-specific requirements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by pre-configuring detection rules and thresholds based on project templates, historical data, and common patterns before actual code analysis begins. This preliminary setup reduces the computational complexity during runtime analysis while maintaining high adaptability to project-specific conventions and standards.

Inventive Principle:
Principle #10Preliminary action

3Extent of automation

If linters are used to automatically solve detected problems, then automated solution application is provided, but bugs may be introduced and reliability decreases

Engineering Contradiction:
Improveautomated solution applicationVSAvoidsolution correctness
Core Design Contradiction:
Extent of automationVSReliability

Solution Approach 1:

The system uses feedback from developers on automatically applied solutions to learn and improve. When developers accept or reject automated solutions, this feedback is captured and used to refine the solution generation models, improving reliability over time while maintaining high automation levels.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system implements self-service mechanisms where the machine learning models continuously learn from applied solutions and their outcomes. The system automatically adjusts its solution generation strategies based on historical success rates, reducing manual intervention while maintaining or improving solution correctness through self-learning.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11263113B2Cloud application to automatically detect and solve issues in a set of code base changes using reinforcement learning and rule-based learning
Publication Date: 2022.03.01 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11263113B2 patent drawing
  • US11263113B2 patent drawing
  • US11263113B2 patent drawing

AI summary

A method, system, and computer program product provide automatic resolution of coding issues by applying code modifications to an application to generate a modified application, and then applying static analytic tools to the modified application to identify coding problems in the modified application related to at least one code modification, where the coding problems are evaluated using a first machine learning model to identify a subset of coding problems meeting a first project relevancy requirement.