Distributed Knapsack Resource Allocation via SCD
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing resource allocation solutions for large-scale knapsack problems are inefficient, consuming excessive computational resources and time, and are unable to effectively solve problems with billions of decision variables and constraints.
Innovation Solution
The implementation of a synchronous coordinate descent (SCD) algorithm in a distributed computing paradigm, utilizing a MapReduce model and hierarchical greedy IP solver, to reduce computational complexity and improve convergence speed while maintaining optimality and constraint satisfaction.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If existing resource allocation solutions are used to solve large-scale knapsack problems, then the problems can be solved with traditional algorithms, but the computational resources and time consumed are excessive
Solution Approach 1:
The patent divides the large-scale knapsack problem into multiple sub-problems by partitioning the set of items into different groups. Each sub-problem is solved independently using dynamic programming, and the solutions are combined to obtain the final result. This segmentation reduces the computational complexity and resource requirements compared to solving the entire problem at once.
Solution Approach 2:
The patent introduces a new dimension by adding a group identifier to the state space of the dynamic programming algorithm. Instead of tracking only the capacity dimension, the algorithm now tracks both capacity and group membership, enabling parallel processing of different item groups while maintaining the optimal substructure property needed for dynamic programming.
2Loss of time
If existing resource allocation solutions are used for large-scale problems, then traditional algorithms can be applied, but the solving time becomes unacceptably long
Solution Approach 1:
By partitioning items into groups and solving independent sub-problems, the patent reduces the effective problem size for each dynamic programming computation. This segmentation allows the algorithm to scale to large numbers of items (billions) by processing them in manageable chunks, significantly reducing total solving time.
Solution Approach 2:
The patent performs preliminary classification of items into groups before solving the knapsack problem. This pre-processing step organizes the data structure to enable efficient parallel processing and reduces the computational burden during the actual optimization phase, allowing faster solution of large-scale instances.
3Measurement precision
If exact algorithms are used to solve knapsack problems with billions of decision variables, then optimal solutions can be obtained, but the computational feasibility is lost
Solution Approach 1:
The patent achieves computational feasibility for billion-scale problems by segmenting the item set into groups and solving independent sub-problems. Each sub-problem is solved exactly using dynamic programming, and the combination of sub-solutions yields the global optimum. This approach maintains solution optimality while making the computation tractable for massive problem sizes.
Solution Approach 2:
By extending the dynamic programming state to include group identifiers, the patent creates a multi-dimensional state space that enables parallel computation across different item groups. This dimensional extension allows the algorithm to process billions of items by distributing computations across multiple dimensions, maintaining exactness while achieving scalability.
Data Source
AI summary
Disclosed methods, systems, and apparatus, include computer programs encoded on computer storage media, for performing allocation of M resources among N users into K pools by solving a knapsack problem (KP) using a distributed computing system. The method includes: receiving data representing K global constraints and L local constraints of the KP; transforming the KP into a dual problem using K dual multipliers; decomposing the dual problem into N sub-problems; performing two or more iterations in solving the dual problem, wherein in one iteration, for each dual multiplier corresponding to a global constraint corresponding to a pool: determining an updated dual multiplier for the global constraint corresponding to the pool to be a non-negative threshold; and computing M decision variables of each of the N users corresponding to the updated dual multiplier in solving each of the N sub-problems corresponding to the each of the N users.


