Program-By-Example System Using Logical Pattern Extraction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Programming-By-Example (PBE) systems often generate a large number of programs that are consistent with user input examples but may not produce the intended result, requiring complex ranking algorithms that consume significant computing resources and slow down the process.

Innovation Solution

The use of logical patterns common to the input data to generate programs that produce the user-intended result, reducing the number of potential programs and improving efficiency by organizing and intersecting graphs of logical patterns to determine the most likely program to achieve the desired output.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If complex ranking algorithms are used to identify the correct program from many consistent programs, then the accuracy of result prediction is improved, but the computational resources consumed and the time required increase significantly

Engineering Contradiction:
Improveaccuracy of result predictionVSAvoidcomputational resources consumed
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system performs preliminary analysis of input data to identify logical patterns before generating programs. By pre-processing the input data and extracting its logical structure, the system reduces the search space of candidate programs, thereby decreasing the computational resources needed for ranking while maintaining prediction accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system extracts logical patterns from input data and uses these patterns to filter and rank candidate programs. By taking out and utilizing the logical structure inherent in the input data, the system avoids the need for complex ranking algorithms, reducing computational overhead while preserving accuracy.

Inventive Principle:
Principle #2Taking out (Extraction)

2Measurement precision

If complex ranking algorithms are used to identify the correct program from many consistent programs, then the accuracy of result prediction is improved, but the processing speed decreases

Engineering Contradiction:
Improveaccuracy of result predictionVSAvoidprogram generation speed
Core Design Contradiction:
Measurement precisionVSSpeed

Solution Approach 1:

The system performs preliminary analysis of input data to identify logical patterns before generating programs. By pre-processing the input data and extracting its logical structure, the system reduces the search space of candidate programs, thereby decreasing the time required for ranking while maintaining prediction accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system extracts logical patterns from input data and uses these patterns to filter and rank candidate programs. By taking out and utilizing the logical structure inherent in the input data, the system avoids the need for complex ranking algorithms, reducing processing time while preserving accuracy.

Inventive Principle:
Principle #2Taking out (Extraction)

3Adaptability or versatility

If the system generates all possible programs consistent with user input examples, then the completeness of solution coverage is improved, but the number of programs to evaluate increases exponentially

Engineering Contradiction:
Improvecompleteness of solution coverageVSAvoidnumber of programs generated
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The system extracts logical patterns from input data and uses these patterns to generate only the relevant subset of programs. By taking out the essential logical structure from the input data, the system generates fewer, more targeted programs that are consistent with user intent, reducing the quantity of programs to evaluate while maintaining solution completeness.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system performs preliminary analysis of input data to identify logical patterns before generating programs. By pre-processing the input data and extracting its logical structure, the system reduces the search space of candidate programs, generating fewer programs that are more likely to be correct.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3387525B1Learning from input patterns in programing-by-example
Publication Date: 2023.06.21 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3387525B1 patent drawingFigure 1
  • EP3387525B1 patent drawingFigure 2
  • EP3387525B1 patent drawingFigure 3

AI summary

Embodiments disclosed herein are related to systems and methods for using input logical patterns to generate one or more programs by an underlying Program-By-Example (PBE) system based on user input examples. A system includes a processor and a system memory. The system access a set of input data. The system receives one or more user input examples for the set of input data. The user input examples are indicative of an output that should be achieved to comply with a user determined result. The system analyzes the set of input data to identify one or more logical patterns that are common to the set of input data. The system generates one or more programs which will output the user determined result, based on a set of the one or more logical patterns that are consistent with the one or more user input examples.