Bulk Constraint Removal in Incremental Simplex Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The incremental simplex method for mathematical optimization is computationally expensive when removing constraints due to the need to undo pivoting operations, which is particularly challenging in scenarios with tens of thousands of constraints that are constantly changing, such as in graphical user interface layout optimization.
Innovation Solution
A method and apparatus that identifies and sorts constraints for bulk removal based on criteria like the number of equations containing each constraint or the time added, allowing for efficient re-sorting and parallel removal of disjoint sets, thereby minimizing the computational cost and improving the speed of finding optimal solutions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the incremental simplex method is used to remove constraints, then the solution can be updated efficiently from an existing solution, but the computational cost becomes expensive when removing constraints due to the need to undo pivoting operations
Solution Approach 1:
The patent applies preliminary action by pre-processing constraints to identify and organize them into groups that can be removed together. Before actual removal occurs, the system performs preliminary analysis to determine which constraints can be bulk-removed without requiring individual pivot undoing, thus preparing the data structure in advance to enable efficient batch removal operations.
Solution Approach 2:
The patent segments the constraint removal process into two parts: constraints that can be safely removed in bulk without pivot operations, and constraints that require individual pivot undoing. By segmenting the constraint set and applying different removal strategies to different segments, the system avoids the computational expense of undoing pivots for all constraints while maintaining solution correctness.
2Ease of operation
If constraints are removed one at a time using the incremental simplex method, then each removal can be handled individually, but the process becomes computationally expensive and slow when dealing with tens of thousands of constraints
Solution Approach 1:
The patent merges multiple individual constraint removal operations into a single bulk removal operation. By identifying constraints that share common characteristics (such as being part of the same logical group or having similar pivot patterns), the system combines their removal into one operation that avoids repeated pivot undoing, thus dramatically improving speed when dealing with large numbers of constraints.
Solution Approach 2:
The patent changes the parameter of constraint removal from sequential individual operations to parallel bulk operations. By modifying how the removal process is parameterized - allowing multiple constraints to be removed simultaneously with a single pivot undo operation - the system achieves significant speedup while maintaining the correctness of individual constraint handling.
3Measurement precision
If the simplex algorithm performs pivots on the tableau to solve linear programming problems, then optimal solutions can be found, but the pivoting operations create complexity when constraints need to be removed later
Solution Approach 1:
The patent introduces an intermediary data structure that tracks the relationship between constraints and pivot operations. This intermediary structure allows the system to maintain solution optimality through pivoting while simultaneously providing a mechanism to efficiently reverse or undo pivot operations when constraints are removed, thus reducing the complexity of constraint removal without sacrificing solution quality.
Data Source
AI summary
A method and apparatus of a device that removes constraints in solving a mathematical programming problem is described. The device identifies a plurality of constraints for bulk removal by postponing execution of constraint removal requests. The device further sorts the plurality of constraints based on a set of criteria to put the plurality of constraints in a sorted order. To sort the plurality of constraints based on the set of criteria, the device determines, for each identified constraint, the number of equations containing the constraint in the mathematical programming problem. The device further sorts the plurality of constraints based on the number of equations determined for each constraint. The device performs bulk constraint removal on the plurality of constraints based on the sorted order.


