Unified Solver Execution Service for Multi-Algorithm Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current optimization solvers pose significant challenges for developers and data scientists, including time-consuming solver selection, infrastructure management, and vendor lock-in, which hinder the evaluation of different solver options and increase project timelines or lead to abandonment of optimization projects.
Innovation Solution
A solver execution service that allows users to easily define and solve large-scale mathematical optimization problems using multiple optimization solvers without infrastructure management, providing a unified interface, scalable computing resources, and enabling experimentation with various solvers to find the best solution based on user requirements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If developers implement a solver execution environment for a particular solver, then the solver can be executed efficiently, but the infrastructure requirements and complexity increase
Solution Approach 1:
The patent introduces a solver execution service as an intermediary layer between the optimization application and the compute resources. This service manages solver executions, handles resource allocation, and provides a unified interface for running multiple solver types. By using this intermediary, developers can execute solvers efficiently without directly managing the complex infrastructure, as the service abstracts away the underlying compute resource management and solver-specific execution details.
2Reliability
If developers spend time choosing and benchmarking the right solver for a use-case, then the optimization performance improves, but the project timeline increases
Solution Approach 1:
The solver execution service provides a universal interface that supports multiple types of optimization solvers (e.g., linear programming, mixed-integer programming, quadratic programming) through a single unified system. This multi-functionality allows developers to experiment with different solver types without implementing separate execution environments for each, thereby maintaining the ability to find the optimal solver for their use-case while significantly reducing the time required for setup and benchmarking.
3Productivity
If a specific optimization solver is used, then the solver can be optimized for that use-case, but vendor lock-in occurs making it difficult to switch solvers
Solution Approach 1:
The patent segments the solver execution system into distinct modular components: the solver execution service, multiple independent solver engines, and compute resources. Each solver type is implemented as a separate module that can be independently selected and executed. This segmentation allows the system to be optimized for specific solver types when needed while maintaining the flexibility to switch between different solver modules without redesigning the entire system, thereby eliminating vendor lock-in.
4Reliability
If developers implement separate execution environments for different solver types, then each solver can run with its optimal configuration, but the integration effort and complexity increase
Solution Approach 1:
The patent merges the execution environments for multiple solver types into a single unified solver execution service. This service provides a common interface and shared infrastructure that supports multiple solver types (linear programming, mixed-integer programming, quadratic programming, etc.) simultaneously. By combining what would otherwise be separate execution environments into one integrated service, the system maintains the ability to configure each solver type optimally while dramatically reducing the overall integration effort and complexity for developers.
Data Source
AI summary
A multitenant solver execution service provides managed infrastructure for defining and solving large-scale optimization problems. In embodiments, the service executes solver jobs on managed compute resources such as virtual machines or containers. The compute resources can be automatically scaled up or down based on client demand and are assigned to solver jobs in a serverless manner. Solver jobs can be initiated based on configured triggers. In embodiments, the service allows users to select from different types of solvers, mix different solvers in a solver job, and translate a model from one solver to another solver. In embodiments, the service provides developer interfaces to, for example, run solver experiments, recommend solver types or solver settings, and suggest model templates. The solver execution service relieves developers from having to manage infrastructure for running optimization solvers and allows developers to easily work with different types of solvers via a unified interface.


