WO2022236501A1 - Method and system for optimizing large-scale resource allocation with constraints - Google Patents

Method and system for optimizing large-scale resource allocation with constraints Download PDF

Info

Publication number
WO2022236501A1
WO2022236501A1 PCT/CN2021/092484 CN2021092484W WO2022236501A1 WO 2022236501 A1 WO2022236501 A1 WO 2022236501A1 CN 2021092484 W CN2021092484 W CN 2021092484W WO 2022236501 A1 WO2022236501 A1 WO 2022236501A1
Authority
WO
WIPO (PCT)
Prior art keywords
decision variables
objective
values
sub
objectives
Prior art date
Application number
PCT/CN2021/092484
Other languages
French (fr)
Inventor
Feng QI
Zhigang Hua
Jun Zhou
Original Assignee
Alipay (Hangzhou) Information Technology Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alipay (Hangzhou) Information Technology Co., Ltd. filed Critical Alipay (Hangzhou) Information Technology Co., Ltd.
Priority to PCT/CN2021/092484 priority Critical patent/WO2022236501A1/en
Priority to CN202180083212.9A priority patent/CN116671086A/en
Publication of WO2022236501A1 publication Critical patent/WO2022236501A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing

Definitions

  • the disclosure relates generally to systems and methods for large-scale resource allocation with various constraints.
  • a resource management platform may allow resource owners to provide resources in response to requests and subject to various constraints.
  • the resource to be provided may be associated with a negative indicator (e.g., risk, cost) and a positive indicator (e.g., interest, royalty, recurring payments, other types of benefits) .
  • a negative indicator e.g., risk, cost
  • a positive indicator e.g., interest, royalty, recurring payments, other types of benefits
  • a resource owner serves a resource request (by providing the resource) , it receives certain benefits (e.g., interest, payment) but also bears certain risks/costs. Determining optimal resource allocation requires maximizing the overall positive indicator and keeping the negative indicators under certain limits. It is challenging because the decision variables are massive in volume. For example, a resource management platform of reasonable size may support thousands of resource hosts (owners) and serve tens of millions of borrowers at the same time.
  • Determining the optimal resource allocation plan for the platform requires determining values for billions of decision variables (the number of borrowers times the number of resource requests) . To make it worse, searching for the optimal allocation solution is an NP-hard problem. Therefore, it is impractical to use standard optimization technologies to determine which resource request should be allocated to or served by which host.
  • This disclosure describes a solution based on an Alternating Direction Method of Multipliers (ADMM) for seeking the near-optimal solution for large-scale resource allocation problems with constraints to address the challenges identified above.
  • ADMM Alternating Direction Method of Multipliers
  • Various embodiments of the present specification may include systems, methods, and non-transitory computer-readable media for determining optimal resource allocation with various constraints in large-scale systems.
  • a method for determining optimal large-scale resource allocation with various constraints may include: obtaining, by a computer device, a plurality of resource requests for resources hosted by a plurality of host computer devices; constructing, by the computer device, an objective and one or more constraints for allocating the plurality of the resource requests to the plurality of host computer devices, wherein the objective comprises a plurality of decision variables each indicating whether a resource request is allocated to a host computer device for service, and the one or more constraints comprise one or more inequalities of the plurality of decision variables; converting, by the computer device, the one or more inequalities in one or more constraints to one or more equalities of the plurality of decision variables; merging, by the computer device, the one or more equalities into the objective to obtain a new objective; dividing, by the computer device, the new objective into a plurality of sub-objectives; generating, by the computer device, a plurality of parallel processing tasks corresponding to the plurality of sub-objectives to obtain values
  • each of the plurality of parallel processing tasks comprises an Alternating Direction Method of Multipliers (ADMM) -based iteration to solve a corresponding sub-objective.
  • ADMM Alternating Direction Method of Multipliers
  • the generating a plurality of parallel processing tasks corresponding to the plurality of sub-objectives to obtain values of the plurality of decision variables comprises: generating, by the computer device, an aggregation task to aggregate results of the plurality of parallel processing tasks to obtain the values of the plurality of decision variables.
  • the method prior to sending the instructions to the plurality of host computer devices, the method further comprises determining, by the computer device, whether the values of the plurality of decision variables converge; and in response to the values of the plurality of decision variables being converged, performing the sending of the instructions.
  • the transforming the one or more constraints by converting the one or more inequalities to one or more equalities of the plurality of decision variables comprises: for each of the one or more inequalities, adding an assistance variable to a left-hand side of the each inequality to make an equality, wherein the left-hand side of the each inequality comprises a product of a matrix and the plurality of decision variables.
  • each of the plurality of sub-objectives comprises: one or more Lagrangian Multipliers, the assistance variable, and the subset of the plurality of decision variables
  • each of the plurality of parallel processing tasks implements an iterative process comprising: updating values of the subset of the plurality of decision variables based on the one or more Lagrangian Multipliers and the assistance variable; updating the assistance variable based on the updated values of the subset of the plurality of decision variables and the one or more Lagrangian Multipliers; and updating the one or more Lagrangian Multipliers based on the updated values of the subset of the plurality of decision variables and the updated assistance variable.
  • the merging the one or more equalities into the objective to obtain a new objective comprises: for each of the one or more equalities, adding to the objective a factor that comprises a squared difference between a left-hand side and a right-hand side of the each equality, wherein the left-hand side of the each equality comprises a product of a matrix and the plurality of decision variables, and the right-hand side of the each equality comprises a constant.
  • the generating a plurality of parallel processing tasks corresponding to the plurality of sub-objectives comprises: generating, under a MapReduce programming framework, a plurality of map tasks to parallelly solve the plurality of sub-objectives.
  • each of the plurality of map tasks comprises a quadratic programming process.
  • the generating a plurality of parallel processing tasks corresponding to the plurality of sub-objectives comprises: generating a plurality of threads on one or more graphic processing units (GPUs) to parallelly solve the plurality of sub-objectives.
  • GPUs graphic processing units
  • the one or more constraints comprise one or more risk constraints that are configured by the plurality of host computer devices.
  • each of the plurality of sub-objectives comprises a subset of the plurality of decision variables, and each of the plurality of map tasks determines the subset in the corresponding sub-objective.
  • a system for determining optimal large-scale resource allocation with various constraints is configured with instructions executable by the one or more processors to cause the system to perform the method of any of the preceding embodiments.
  • a non-transitory computer-readable storage medium is configured with instructions executable by one or more processors to cause the one or more processors to perform the method of any of the preceding embodiments.
  • Embodiments disclosed in the specification have one or more technical effects.
  • Large-scale resource allocation with constraints may be formulated as optimization problems with either linear or non-linear objective functions.
  • Existing divide and conquer solutions may be used to solve optimization problems with linear objective functions, but not those non-linear objective functions. It is because the non-linearity forbids dividing the optimization problem into smaller problems (e.g., a non-linear objective function includes cross-borrower decision variables (one borrower’s decision variable times another borrower’s decision variable) , and thus cannot be separated into smaller objective functions) .
  • the described method applies to large-scale resource allocation problems that can be formed by either linear and non-linear objective functions.
  • the objective functions may be transformed by canceling all the cross-borrower decision variables using carefully designed matrices, thereby leaving the remaining decision variables in the objective functions separable.
  • parallel processing frameworks like MapReduce is adopted to divide the objective function into a plurality of map tasks, which parallelly solve the optimization problems and then are aggregated by a reduce task to obtain the final values of the decision variables. These decision variables may then be used to determine which borrower is allocated to which resource host for service (e.g., providing the requested resources) .
  • the transformation of the objective function will generate a new objective function to conform to a format that is solvable by Alternating Direction Method of Multipliers (ADMM) algorithms.
  • ADMM Alternating Direction Method of Multipliers
  • the new objective function may be separated into a plurality of sub-objective functions that are respectively handled by a plurality of the above-mentioned map tasks.
  • ADMM is then implemented in map tasks to iteratively solve each of the plurality of map tasks through a plurality of cycles. The iterative process ends when the values of the decision variables of each map task converge. With ADMM, the convergency of the decision variables may be guaranteed. That is, by applying ADMM, a near-optimal solution to a large-scale resource allocation with constraints can always be generated.
  • FIG. 1 illustrates an example system for large-scale resource allocation with constraints in accordance with various embodiments.
  • FIG. 2 illustrates an example system diagram for ADMM-based large-scale resource allocation with constraints, in accordance with various embodiments.
  • FIG. 3 illustrates an example parallel processing workflow for ADMM-based large-scale resource allocation with constraints in accordance with various embodiments.
  • FIG. 4 illustrates an example method for ADMM-based large-scale resource allocation with constraints, in accordance with various embodiments.
  • FIG. 5 illustrates a block diagram of an example computer system apparatus for ADMM-based large-scale resource allocation with constraints, in accordance with various embodiments.
  • FIG. 6 illustrates an example computing device in which any of the embodiments described herein may be implemented.
  • the technologies disclosed herein include determining optimal or near-optimal resource allocation plans for large-scale platforms.
  • Platforms such as e-commerce platforms, could-service providers, or ride-sharing or ride-hailing platforms may deal with resource allocating on daily basis.
  • the definition of “resource” may vary depending on the actual applications.
  • a server, a cluster of computers, or a cloud service may offer computing or storage resources for client devices.
  • resource allocation may involve allocating a number of processors, a number of storage spaces, or a number of or a number of virtual machines to different client devices.
  • a ride-hailing platform may need to balance the supply-demand in real-time among different regions.
  • the resource allocation in this context may involve making order dispatching and/or vehicle repositioning decisions.
  • a platform offering loan services may host thousands of banks or financial institutions to serve millions of loan borrowers. In this case, resource allocation may involve assigning different loan borrowers to different banks or financial institutions for service.
  • the resources are usually associated with a positive factor (also called benefit level) and a negative factor (also called a risk level or a cost level) for the corresponding resource provider.
  • a positive factor also called benefit level
  • a negative factor also called a risk level or a cost level
  • the resource is cloud storage space for digital data
  • providing such storage space e.g., by a cloud storage system
  • a benefit level e.g., payment to the cloud storage provider for storing such data
  • a risk level e.g., the risk carried by the cloud storage provider, and the associated cost of implementing safeguard measures to prevent the data from leaking
  • the resource is a loan
  • providing the loan may be associated with a benefit level (e.g., an interest level) and a risk level (e.g., a default risk) for the provider.
  • a benefit level e.g., an interest level
  • a risk level e.g., a default risk
  • different resource providers may have various resource constraints.
  • a cloud service provider may have limited types of processors or storage appliances (spindle drives or solid-state drives) and thus can only provide certain types of computing or storage resources.
  • different loan providers may have different risk constraints.
  • the disclosed technologies in this specification may provide a way to determine optimal or near-optimal resource allocation plan to allocate the resource requests among the resource providers to (1) maximize an overall objective and (2) satisfy each resource provider’s various constraints.
  • the overall objective may be defined differently, such as an overall performance improvement, a total amount of resources allocated by the resource providers to the resource borrowers, positive feedbacks from the resource borrowers, etc.
  • a loan servicing platform is used as an example to describe the embodiments disclosed herein, where the resource to be allocated may refer to a loan, and the provider may refer to a provider.
  • Each loan served by the provider may be associated with, among other things, a risk level and an interest level. It may be obvious for a person in the art to apply the same ideas to another suitable scenario where resource allocation is needed.
  • MAPE Mean Absolute Percentage Error
  • PSI Probability Stability Index
  • E () denotes expected value (or mean) .
  • FIG. 1 illustrates an example system 100 for large-scale resource allocation with constraints in accordance with various embodiments.
  • the components of system 100 are intended to be illustrative. Depending on the implementation, system 100 may include additional, fewer, or alternative components. It is to be understood that although one computing device is shown in FIG. 1, any number of computing devices may be included in the system 100.
  • the computing system 102 may be implemented in one or more networks (e.g., enterprise networks) , one or more endpoints, one or more servers (e.g., server 105) , or one or more clouds.
  • Server 105 may include hardware or software which manages access to a centralized resource or service in a network.
  • a cloud may include a cluster of servers and other devices which are distributed across a network.
  • the example system 100 may include a computing system 102, a computing device 104, a server 105, and the computing system 102 may communicate with loan borrowers 120 and loan providers110 through corresponding computing devices.
  • the computing system 102 may be understood as a platform comprising both online servicing interfaces and an offline (e.g., backend) computing system.
  • the computing device 104 may be associated with the computing system 102 by providing computing capacity.
  • Server 105 may be associated with computing system 102 by providing storage and/or computing capacity.
  • the computing device 104 may be implemented on or as various devices such as a mobile phone, tablet, server, desktop computer, laptop computer, etc.
  • the computing system 102 may communicate with the computing device 104, and other computing devices. Communication between devices may occur over the internet, through a local network (e.g., LAN) , through direct communication (e.g., BLUETOOTH TM , radio frequency, infrared) , etc.
  • LAN local network
  • direct communication e.g.,
  • the computing system 102 may include an obtaining component 112, a constructing component 114, a transforming component 116, and a parallel processing component 118.
  • the computing system 102 may include one or more processors (e.g., a digital processor, an analog processor, a digital circuit designed to process information, a central processing unit, a graphics processing unit, a microcontroller or microprocessor, an analog circuit designed to process information, a state machine, and/or other mechanisms for electronically processing information) and one or more memories (e.g., permanent memory, temporary memory, non-transitory computer-readable storage medium) .
  • the one or more memories may be configured with instructions executable by the one or more processors.
  • the processor (s) may be configured to perform various operations by interpreting machine-readable instructions stored in the memory.
  • the computing system 102 may be installed with appropriate software (e.g., platform program, etc. ) and/or hardware (e.g., wires, wireless connections, etc. ) to access other components of the system 100.
  • the obtaining component 112 in the computing system 102 may be configured to obtain a plurality of resource requests from the borrowers 120 requesting resources hosted by the providers 110 (e.g., a plurality of host computer devices) .
  • the computing system 102 needs to determine a resource allocation plan to allocate the plurality of resource requests to the providers 110 for execution. Each provider 110 may then provide the resources in response to the allocated resource request (s) .
  • the constructing component 114 in the computing system 102 may be configured to construct an objective and one or more constraints for allocating the plurality of the resource requests to the plurality of host computer devices.
  • the objective may include a plurality of decision variables each indicating whether a resource request is allocated to a host computer device for service, and the one or more constraints may include one or more inequalities of the plurality of decision variables.
  • the one or more constraints may include one or more inequalities of the plurality of decision variables.
  • Various objectives may be defined based on the platform’s interest. For example, based on the above description about MAPE, a provider 110 (e.g., bank j) may have one of the following objective functions to be minimized:
  • m denotes the index for objective metrics such as MAPE and/or PSI
  • u includes and W both denote a parameter matrix
  • v j denotes a maximum number of borrowers 120 that the provider j can serve at the same time.
  • the last constraint indicates that one borrower 120 can only be allocated to one provider 110.
  • the absolute values in the above objective functions may be converted to quadratic objective functions with constraints as below:
  • the transforming component 116 may be configured to transform the one or more constraints by converting the one or more inequalities (e.g., ) to one or more equalities of the plurality of decision variables and merge the one or more equalities into the objective to obtain a new objective.
  • the “equality” refers to a relationship between two quantities or, more generally two mathematical expressions, asserting that the quantities have the same value, or that the expressions represent the same mathematical object
  • the “inequality” refers to a relation that makes a non-equal comparison between two numbers or other mathematical expressions.
  • the purpose of the transformation is to conform the objective function to the format that is solvable by ADMM algorithm.
  • the absolute operator and the square operator in the objective functions may lead to cross-borrower terms, such as x ij *x (i+1) j .
  • x j is a two-dimension vector [x 1 , x 2 ]
  • [x 1 , x 2 ] 2 [x 1 x 1 , x 1 x 2 , x 2 x 1 , x 2 x 2 ]
  • the terms x 1 x 2 and x 2 x 1 are referred to as cross-borrower terms.
  • the cross-borrower terms in the objective function may be canceled by converting the inequality constraints into equality constraints and merging the equality constraints into the objective function.
  • the parallel processing component 118 may be configured to divide the objective into a plurality of sub-objectives and generate a plurality of parallel processing tasks corresponding to the plurality of sub-objectives to obtain values of the plurality of decision variables. Since the transformation performed by the transforming component 116 cancels the cross-borrower terms, the resulting objective function is separable and may be solved by using various parallel processing frameworks.
  • the MapReduce framework may be adopted because of its simplicity and compatibility with the format of the objective function. For instance, the transformed objective function may be divided into a plurality of sub-objective functions, each including a subset of the decision variables. Each of the sub-objective functions may be solved by creating a map task to determine values for the corresponding subset of decision variables. After all map tasks are finished, the values generated by the map tasks may be aggregated by creating a reduce task.
  • the values of the decision variables may indicate which request (or borrower 120) should be allocated to which provider 110 for service or execution.
  • the provider 110 may execute the request by providing the requested services.
  • the computing system 102 may send direct instructions to the providers 110 to provide the services according to the values of the decision variables.
  • FIG. 2 illustrates an example system diagram for ADMM-based large-scale resource allocation with constraints, in accordance with various embodiments.
  • the system 200 in FIG. 2 is for illustrative purposes only, and may include more, fewer, or alternative components depending on the implementation.
  • the system 200 is configured to solve large-scale resource allocation problems with constraints 202.
  • the formulation of a resource allocation problem may vary depending on the use case.
  • Example use cases include computing and/or storage resource allocation by cloud service providers to customers, loan resource allocation by loan providers to loan borrowers through a loan servicing platform, supply-demand management in ride-hailing platforms, warehouse management among different geographic regions in e-commerce platforms, etc.
  • the “large-scale” here indicates that the problem includes a massive number of decision variables (i.e., each decision variable indicates a match between a resource borrower and a resource provider) so that brutal force solutions (e.g., exhaustive methods, even using the most advanced and powerful computers) cannot generate an optimal solution within a reasonable time.
  • the large-scare resource allocation with constraints 202 may first be formulated into an optimization problem comprising an objective function and one or more constraints.
  • objective functions and constraints are described in FIG. 1.
  • the objective functions may include an objective to be maximized (e.g., a total interest gain) or minimized (e.g., a total risk or MAPE)
  • the constraints may include various thresholds (e.g., a maximum number of borrowers can be served, a maximum risk tolerance) and restrictions (e.g., one borrower can only be served by one provider) .
  • the system 200 may include an objective function transformer 210 to transform the initially formulated objective function based on the constraints.
  • the objective function transformer 210 may be implemented by various programming languages. The purpose of the transformation is to generate a new objective function and a new set of constraints to conform to a format that is solvable by ADMM algorithms.
  • the transformation may include two steps: converting inequalities in the constraints into equalities, and merging the equalities into the objective function to obtain the new/transformed objective.
  • the first step of the transformation may include converting the inequalities in the constraints into one or more equalities.
  • positive assistance variables may be added to the left-hand side (LHS) of an inequality.
  • the above formula (3) may be transformed into the following formula (4) :
  • the equalities transformed from the inequalities in the constraints may be merged into the objective function to generate an Augmented Lagrangian function, which may also be called the new objective function or the output of the objective function transformer 210.
  • the generation of the Augmented Lagrangian function may include adding decision-variable related positive-definite matrix to the objective function to cancel cross-borrower decision variables therein and one or more Lagrangian Multipliers. After canceling the cross-borrower decision variables, the resultant Augmented Lagrangian function may be separable and processed in parallel. A detailed example is described in FIG. 3.
  • the generated Augmented Lagrangian function may be parallelly and iteratively solved in an ADMM-based parallel processing system 220.
  • the system 220 may adopt various parallel processing frameworks such as Hadoop MapReduce, CUDA, Spark, MPI, etc.
  • the Augmented Lagrangian function may be divided into a plurality of sub-objective functions. Each of the sub-objective functions may include a subset of the decision variables.
  • Solving the Augmented Lagrangian function may include a plurality of iterations of parallel processing. Assuming MapReduce framework is used in system 220, during each iteration, a plurality of map tasks may be created to respectively solve the plurality of sub-objective functions.
  • each map task will determine the values of the corresponding subset of decision variables.
  • a reduce task may aggregate all the values generated by the map tasks. Even though the decision variable values obtained during one iteration may be locally optimized (optimized for each sub-objective) but not globally optimized, they may be used as a baseline for the next iteration. The detailed description of the map tasks is described below.
  • FIG. 3 illustrates an example parallel processing workflow for ADMM-based large-scale resource allocation with constraints in accordance with various embodiments.
  • the workflow 300 in FIG. 3 is for illustrative purposes only, and may include more, fewer, alternative steps depending on the implementation.
  • the steps in the workflow 300 may be performed in various orders or in parallel.
  • the objective function of the large-scale resource allocation with constraints may be separable and solved using parallel processing.
  • the MapReduce framework is used as an example in FIG. 3 to illustrate how the objective function is solved based on ADMM.
  • “solving” the objective function of the large-scale resource allocation with constraints means iteratively finding converged values for the decision variables in the objective function.
  • a plurality of iterations of parallel processing may be performed.
  • each map task may implement an ADMM-based iteration.
  • a plurality of map tasks and a reduce task may be created to parallelly solve the objective function, with each map task solving a portion/subset of the decision variables (i.e., a corresponding sub-objective) and the reduce task aggregating the outputs of the map tasks.
  • the map task may be started at step 305 and followed by updating values of the subset of the plurality of decision variables based on the one or more Lagrangian Multipliers and the assistance variable added during the process of transforming the objective function (see description in FIG. 2) at step 310; updating the assistance variable based on the updated values of the subset of the plurality of decision variables and the one or more Lagrangian Multipliers at step 320; and updating the one or more Lagrangian Multipliers based on the updated values of the subset of the plurality of decision variables and the updated assistance variable at step 330. That is, the decision variables, the assistance variables, and the Lagrangian Multipliers in the sub-objective function are iteratively updated.
  • the subset of decision variables may be updated based on the following formula at step 310:
  • f (x) in formula (5) if f (x) in formula (5) is non-linear, a first order Taylor expansion of f () on x k may be performed to convert it to a linear function. In some embodiments, if f (x) in formula (5) is linear, the last term involving x, x k , and P may be configured to effectively cancel the cross-borrower terms in the other terms. As shown in the above formula, the values of the decision variables for the k+1 th iteration are determined based on the Lagrangian Multipliers and assistance variable from the k th iteration.
  • the assistance variables may be updated based on the following formula at step 320:
  • the value of the assistance variable for the k+1t hi teration is determined based on the Lagrangian Multipliers from the k th iteration and the values of the decision variables from the k+1 th iteration.
  • the Lagrangian Multipliers may be updated based on the following formula at step 320:
  • x k+1 denotes the values of the decision variables at (k+1) th iteration
  • v k , w k denote the Lagrangian Multipliers at k th iteration
  • v k+1 , w k+1 denote the Lagrangian Multipliers at (k+1) th iteration.
  • the values of the Lagrangian Multipliers for the (k+1) th iteration is determined based on the assistance value from the (k+1) th iteration and the values of the decision variables from the (k+1) th iteration.
  • the values of the decision variables, the Lagrangian Multipliers, and the assistance variables obtained for the (k+1) th iteration may be compared with the values from the k th iteration to determine their convergence at step 340. If any one of these values (e.g., the decision variables, the Lagrangian Multipliers, and the assistance variables) is not converged, the map task loops back and continues the iteration. If all values are converged, the map task ends at step 345 (step 346 indicates the end of another map task) .
  • the “convergence” in this context is determined based on a difference threshold. If the difference between the values from different iterations is below the threshold, the values are determined as being converged.
  • a reduce task may be created to obtain a solution candidate for the large-scale resource allocation with constraints at step 350. It is a “candidate” because the values of the decision variables are locally optimized (from the sub-objective’s perspective) but not necessarily globally optimized (from the objective’s perspective) .
  • the aggregated values of the decision variables may be compared with the values from the previous iteration at step 360. If the values do not converge, a new iteration of MapReduce may be performed. If the values converge, they will be deemed as the optimal solution 362 for the large-scale resource allocation problem.
  • the optimal solution 362 may indicate the matches between resource providers and resource borrowers or requestors to achieve an optimal reward (e.g., the minimum MAPE value) .
  • FIG. 4 illustrates an example method 400 for ADMM-based large-scale resource allocation with constraints, in accordance with various embodiments.
  • the method 400 may be performed by a device, apparatus, or system.
  • the method 400 may be performed by one or more components of the setup illustrated by FIG. 1, such as the computing system 102, and the computing device 104.
  • the method 400 may include additional, fewer, or alternative steps performed in various orders or in parallel.
  • Block 410 includes obtaining, by a computer device, a plurality of resource requests for resources hosted by a plurality of host computer devices
  • Block 420 includes constructing, by the computer device, an objective and one or more constraints for allocating the plurality of the resource requests to the plurality of host computer devices, wherein the objective comprises a plurality of decision variables each indicating whether a resource request is allocated to a host computer device for service, and the one or more constraints comprise one or more inequalities of the plurality of decision variables.
  • the one or more constraints comprise one or more risk constraints that are configured by the plurality of host computer devices.
  • Block 430 includes converting, by the computer device, the one or more inequalities in one or more constraints to one or more equalities of the plurality of decision variables.
  • the converting the one or more inequalities to one or more equalities of the plurality of decision variables comprises: for each of the one or more inequalities, adding an assistance variable to a left-hand side of the each inequality to make an equality, wherein the left-hand side of the each inequality comprises a product of a matrix and the plurality of decision variables.
  • each of the plurality of sub-objectives comprises: one or more Lagrangian Multipliers, the assistance variable, and the subset of the plurality of decision variables
  • each of the plurality of parallel processing tasks implements an iterative process comprising: updating values of the subset of the plurality of decision variables based on the one or more Lagrangian Multipliers and the assistance variable; updating the assistance variable based on the updated values of the subset of the plurality of decision variables and the one or more Lagrangian Multipliers; and updating the one or more Lagrangian Multipliers based on the updated values of the subset of the plurality of decision variables and the updated assistance variable.
  • Block 440 includes merging, by the computer device, the one or more equalities into the objective to obtain a new objective.
  • the merging the one or more equalities into the objective to obtain a new objective comprises: for each of the one or more equalities, adding to the objective a factor that comprises a squared difference between a left-hand side and a right-hand side of the each equality, wherein the left-hand side of the each equality comprises a product of a matrix and the plurality of decision variables, and the right-hand side of the each equality comprises a constant.
  • Block 450 includes dividing, by the computer device, the new objective into a plurality of sub-objectives.
  • each of the plurality of sub-objectives comprises a subset of the plurality of decision variables, and each of the plurality of map tasks determines the subset in the corresponding sub-objective.
  • Block 460 includes generating, by the computer device, a plurality of parallel processing tasks corresponding to the plurality of sub-objectives to obtain values of the plurality of decision variables.
  • each of the plurality of parallel processing tasks comprises an Alternating Direction Method of Multipliers (ADMM) -based iteration to solve a corresponding sub-objective.
  • the generating a plurality of parallel processing tasks corresponding to the plurality of sub-objectives to obtain values of the plurality of decision variables comprises: generating, by the computer device, an aggregation task to aggregate results of the plurality of parallel processing tasks to obtain the values of the plurality of decision variables.
  • the generating a plurality of parallel processing tasks corresponding to the plurality of sub-objectives comprises: generating, under a MapReduce programming framework, a plurality of map tasks to parallelly solve the plurality of sub-objectives.
  • each of the plurality of map tasks comprises a quadratic programming process.
  • the generating a plurality of parallel processing tasks corresponding to the plurality of sub-objectives comprises: generating a plurality of threads on one or more graphic processing units (GPUs) to parallelly solve the plurality of sub-objectives.
  • GPUs graphic processing units
  • Block 470 includes sending, by the computer device, instructions to the plurality of host computer devices to execute the plurality of resource requests according to the values of the plurality of decision variables.
  • the method 400 may further comprise: determining, by the computer device, whether the values of the plurality of decision variables converge; and in response to the values of the plurality of decision variables being converged, performing the sending of the instructions.
  • FIG. 5 illustrates a block diagram of an example computer system apparatus 500 for ADMM-based large-scale resource allocation with constraints, in accordance with various embodiments.
  • the components of the computer system 500 presented below are intended to be illustrative. Depending on the implementation, the computer system 500 may include additional, fewer, or alternative components.
  • the computer system 500 may be an example of an implementation of one or more components of the computing system 102.
  • the flows and methods illustrated in FIGs. 1-4 may be implemented by the computer system 500.
  • the computer system 500 may comprise one or more processors and one or more non-transitory computer-readable storage media (e.g., one or more memories) coupled to the one or more processors and configured with instructions executable by the one or more processors to cause the system or device (e.g., the processor) to perform the above-described method, e.g., the method 400.
  • the computer system 500 may comprise various units/modules corresponding to the instructions (e.g., software instructions) .
  • the computer system 500 may be referred to as an apparatus for determining optimal allocation of borrowing requests.
  • the apparatus may comprise an obtaining module 510, a constructing module 520, a converting module 530, a merging module 540, a dividing module 550, a parallel processing module 560, and a sending module 570.
  • the obtaining module 510 may be configured to obtain a plurality of resource requests for resources hosted by a plurality of host computer devices.
  • the constructing module 520 may be configured to construct an objective and one or more constraints for allocating the plurality of the resource requests to the plurality of host computer devices, wherein the objective comprises a plurality of decision variables each indicating whether a resource request is allocated to a host computer device for service, and the one or more constraints comprise one or more inequalities of the plurality of decision variables.
  • the converting module 530 may be configured to convert the one or more inequalities in one or more constraints to one or more equalities of the plurality of decision variables.
  • the merging module 540 may be configured to merge the one or more equalities into the objective to obtain a new objective.
  • the dividing module 550 may be configured to divide the new objective into a plurality of sub-objectives.
  • the parallel processing module 560 may be configured to generate a plurality of parallel processing tasks corresponding to the plurality of sub-objectives to obtain values of the plurality of decision variables.
  • the sending module 570 may be configured to send instructions to the plurality of host computer devices to execute the plurality of resource requests according to the values of the plurality of decision variables.
  • FIG. 6 illustrates an example computing device in which any of the embodiments described herein may be implemented.
  • the computing device 600 may be used to implement one or more components of the systems and the methods shown in FIGs. 1-5
  • the computing device 600 may comprise a bus 602 or other communication mechanism for communicating information and one or more hardware processors 604 coupled with bus 602 for processing information.
  • Hardware processor (s) 604 may be, for example, one or more general purpose microprocessors.
  • the computing device 600 may also include a main memory 606, such as a random-access memory (RAM) , cache and/or other dynamic storage devices, coupled to bus 602 for storing information and instructions to be executed by processor (s) 604.
  • Main memory 606 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor (s) 604.
  • Such instructions when stored in storage media accessible to processor (s) 604, may render computing device 600 into a special-purpose machine that is customized to perform the operations specified in the instructions.
  • Main memory 606 may include non-volatile media and/or volatile media. Non-volatile media may include, for example, optical or magnetic disks. Volatile media may include dynamic memory. Common forms of media may include, for example, a RAM, a DRAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge, or networked versions of the same.
  • the computing device 600 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computing device may cause or program computing device 600 to be a special-purpose machine.
  • the techniques herein are performed by computing device 600 in response to processor (s) 604 executing one or more sequences of one or more instructions contained in main memory 606. Such instructions may be read into main memory 606 from another storage medium, such as storage device 609. Execution of the sequences of instructions contained in main memory 606 may cause processor (s) 604 to perform the process steps described herein.
  • the processes/methods disclosed herein may be implemented by computer program instructions stored in main memory 606. When these instructions are executed by processor (s) 604, they may perform the steps as shown in corresponding figures and described above.
  • hard-wired circuitry may be used in place of or in combination with software instructions.
  • the computing device 600 also includes a communication interface 610 coupled to bus 602.
  • Communication interface 610 may provide a two-way data communication coupling to one or more network links that are connected to one or more networks.
  • communication interface 610 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN (or WAN component to communicate with a WAN) .
  • LAN local area network
  • Wireless links may also be implemented.
  • processors or processor-implemented engines may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm) . In other example embodiments, the processors or processor-implemented engines may be distributed across a number of geographic locations.
  • the software product may be stored in a storage medium, comprising a number of instructions to cause a computing device (which may be a personal computer, a server, a network device, and the like) to execute all or some steps of the methods of the embodiments of the present application.
  • the storage medium may comprise a flash drive, a portable hard drive, ROM, RAM, a magnetic disk, an optical disc, another medium operable to store program code, or any combination thereof.
  • Particular embodiments further provide a system comprising a processor and a non-transitory computer-readable storage medium storing instructions executable by the processor to cause the system to perform operations corresponding to steps in any method of the embodiments disclosed above.
  • Particular embodiments further provide a non-transitory computer-readable storage medium configured with instructions executable by one or more processors to cause the one or more processors to perform operations corresponding to steps in any method of the embodiments disclosed above.
  • Embodiments disclosed herein may be implemented through a cloud platform, a server or a server group (hereinafter collectively the “service system” ) that interacts with a client.
  • the client may be a terminal device, or a client registered by a user at a platform, wherein the terminal device may be a mobile terminal, a personal computer (PC) , and any device that may be installed with a platform application program.
  • PC personal computer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Supply And Distribution Of Alternating Current (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for determining optimal resource allocation in large-scale systems. An example method includes: obtaining a plurality of resource requests for resources hosted by a plurality of host computer devices; constructing an objective and one or more constraints for allocating the plurality of the resource requests to the plurality of host computer devices. The one or more constraints includes one or more inequalities of the plurality of decision variables. The example method further includes converting the one or more inequalities to one or more equalities of the plurality of decision variables; merging the one or more equalities into the objective to obtain a new objective; dividing the new objective into a plurality of sub-objectives; generating a plurality of parallel processing tasks corresponding to the plurality of sub-objectives to obtain values of the plurality of decision variables.

Description

METHOD AND SYSTEM FOR OPTIMIZING LARGE-SCALE RESOURCE ALLOCATION WITH CONSTRAINTS TECHNICAL FIELD
The disclosure relates generally to systems and methods for large-scale resource allocation with various constraints.
BACKGROUND
A resource management platform may allow resource owners to provide resources in response to requests and subject to various constraints. The resource to be provided may be associated with a negative indicator (e.g., risk, cost) and a positive indicator (e.g., interest, royalty, recurring payments, other types of benefits) . It means, when a resource owner serves a resource request (by providing the resource) , it receives certain benefits (e.g., interest, payment) but also bears certain risks/costs. Determining optimal resource allocation requires maximizing the overall positive indicator and keeping the negative indicators under certain limits. It is challenging because the decision variables are massive in volume. For example, a resource management platform of reasonable size may support thousands of resource hosts (owners) and serve tens of millions of borrowers at the same time. Determining the optimal resource allocation plan for the platform requires determining values for billions of decision variables (the number of borrowers times the number of resource requests) . To make it worse, searching for the optimal allocation solution is an NP-hard problem. Therefore, it is impractical to use standard optimization technologies to determine which resource request should be allocated to or served by which host.
Existing resource management platforms determine solutions for large-scale resource application problems based on simple divide and conquer methods, which divide the number of borrowers into blocks and thereby making the objective function separable. However, these methods are based on the assumption that the borrower blocks are homogeneous and the constraints can be evenly distributed among the blocks. However, in practical applications, the homogeneity of the borrower blocks usually does not hold. Thus, forcibly separating the objective function would render the final solutions far from being optimal.
This disclosure describes a solution based on an Alternating Direction Method of Multipliers (ADMM) for seeking the near-optimal solution for large-scale resource allocation problems with constraints to address the challenges identified above.
SUMMARY
Various embodiments of the present specification may include systems, methods, and non-transitory computer-readable media for determining optimal resource allocation with various constraints in large-scale systems.
According to one aspect, a method for determining optimal large-scale resource allocation with various constraints is provided. The method may include: obtaining, by a computer device, a plurality of resource requests for resources hosted by a plurality of host computer devices; constructing, by the computer device, an objective and one or more constraints for allocating the plurality of the resource requests to the plurality of host computer devices, wherein the objective comprises a plurality of decision variables each indicating whether a resource request is allocated to a host computer device for service, and  the one or more constraints comprise one or more inequalities of the plurality of decision variables; converting, by the computer device, the one or more inequalities in one or more constraints to one or more equalities of the plurality of decision variables; merging, by the computer device, the one or more equalities into the objective to obtain a new objective; dividing, by the computer device, the new objective into a plurality of sub-objectives; generating, by the computer device, a plurality of parallel processing tasks corresponding to the plurality of sub-objectives to obtain values of the plurality of decision variables; and sending, by the computer device, instructions to the plurality of host computer devices to execute the plurality of resource requests according to the values of the plurality of decision variables.
In some embodiments, each of the plurality of parallel processing tasks comprises an Alternating Direction Method of Multipliers (ADMM) -based iteration to solve a corresponding sub-objective.
In some embodiments, the generating a plurality of parallel processing tasks corresponding to the plurality of sub-objectives to obtain values of the plurality of decision variables comprises: generating, by the computer device, an aggregation task to aggregate results of the plurality of parallel processing tasks to obtain the values of the plurality of decision variables.
In some embodiments, prior to sending the instructions to the plurality of host computer devices, the method further comprises determining, by the computer device, whether the values of the plurality of decision variables converge; and in response to the values of the plurality of decision variables being converged, performing the sending of the instructions.
In some embodiments, the transforming the one or more constraints by converting the one or more inequalities to one or more equalities of the plurality of decision variables comprises: for each of the one or more inequalities, adding an assistance variable to a left-hand side of the each inequality to make an equality, wherein the left-hand side of the each inequality comprises a product of a matrix and the plurality of decision variables.
In some embodiments, each of the plurality of sub-objectives comprises: one or more Lagrangian Multipliers, the assistance variable, and the subset of the plurality of decision variables, and each of the plurality of parallel processing tasks implements an iterative process comprising: updating values of the subset of the plurality of decision variables based on the one or more Lagrangian Multipliers and the assistance variable; updating the assistance variable based on the updated values of the subset of the plurality of decision variables and the one or more Lagrangian Multipliers; and updating the one or more Lagrangian Multipliers based on the updated values of the subset of the plurality of decision variables and the updated assistance variable.
In some embodiments, the merging the one or more equalities into the objective to obtain a new objective comprises: for each of the one or more equalities, adding to the objective a factor that comprises a squared difference between a left-hand side and a right-hand side of the each equality, wherein the left-hand side of the each equality comprises a product of a matrix and the plurality of decision variables, and the right-hand side of the each equality comprises a constant.
In some embodiments, the generating a plurality of parallel processing tasks corresponding to the plurality of sub-objectives comprises: generating, under a MapReduce programming framework, a plurality of map tasks to parallelly solve the plurality of sub-objectives.
In some embodiments, each of the plurality of map tasks comprises a quadratic programming process.
In some embodiments, the generating a plurality of parallel processing tasks corresponding to the plurality of sub-objectives comprises: generating a plurality of threads on one or more graphic processing units (GPUs) to parallelly solve the plurality of sub-objectives.
In some embodiments, the one or more constraints comprise one or more risk constraints that are configured by the plurality of host computer devices.
In some embodiments, each of the plurality of sub-objectives comprises a subset of the plurality of decision variables, and each of the plurality of map tasks determines the subset in the corresponding sub-objective.
According to other embodiments, a system for determining optimal large-scale resource allocation with various constraints is configured with instructions executable by the one or more processors to cause the system to perform the method of any of the preceding embodiments.
According to yet other embodiments, a non-transitory computer-readable storage medium is configured with instructions executable by one or more processors to cause the one or more processors to perform the method of any of the preceding embodiments.
Embodiments disclosed in the specification have one or more technical effects. Large-scale resource allocation with constraints may be formulated as optimization problems with either linear or non-linear objective functions. Existing divide and conquer solutions may be used to solve optimization problems with linear objective functions, but not those non-linear objective functions. It is because the non-linearity forbids dividing the optimization problem into smaller problems (e.g., a non-linear objective function includes cross-borrower decision variables (one borrower’s decision variable times another borrower’s decision variable) , and thus cannot be separated into smaller objective functions) . In some embodiments, the described method applies to large-scale resource allocation problems that can be formed by either linear and non-linear objective functions. For example, the objective functions may be transformed by canceling all the cross-borrower decision variables using carefully designed matrices, thereby leaving the remaining decision variables in the objective functions separable. In some embodiments, after transforming an objective function, parallel processing frameworks like MapReduce is adopted to divide the objective function into a plurality of map tasks, which parallelly solve the optimization problems and then are aggregated by a reduce task to obtain the final values of the decision variables. These decision variables may then be used to determine which borrower is allocated to which resource host for service (e.g., providing the requested resources) . In some embodiments, the transformation of the objective function will generate a new objective function to conform to a format that is solvable by Alternating Direction Method of Multipliers (ADMM) algorithms. Subsequently, the new objective function may be separated into a plurality of sub-objective functions that are respectively handled by a plurality of the above-mentioned map tasks. ADMM is then implemented in map tasks to iteratively solve each of the plurality of map tasks through a plurality of cycles. The iterative process ends when the values of the decision variables of each map task converge. With ADMM, the convergency of the decision variables may be guaranteed. That is, by applying ADMM, a near-optimal solution to a large-scale resource allocation with constraints can always be generated.
These and other features of the systems, methods, and non-transitory computer-readable media disclosed herein, as well as the methods of operation and functions of the related elements of structure and the combination of parts and economies of manufacture,  will become more apparent upon consideration of the following description and the appended claims with reference to the accompanying drawings, all of which form a part of this specification, wherein like reference numerals designate corresponding parts in the various figures. It is to be expressly understood, however, that the drawings are for purposes of illustration and description only and are not intended as a definition of the limits of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates an example system for large-scale resource allocation with constraints in accordance with various embodiments.
FIG. 2 illustrates an example system diagram for ADMM-based large-scale resource allocation with constraints, in accordance with various embodiments.
FIG. 3 illustrates an example parallel processing workflow for ADMM-based large-scale resource allocation with constraints in accordance with various embodiments.
FIG. 4 illustrates an example method for ADMM-based large-scale resource allocation with constraints, in accordance with various embodiments.
FIG. 5 illustrates a block diagram of an example computer system apparatus for ADMM-based large-scale resource allocation with constraints, in accordance with various embodiments.
FIG. 6 illustrates an example computing device in which any of the embodiments described herein may be implemented.
DETAILED DESCRIPTION
The technologies disclosed herein include determining optimal or near-optimal resource allocation plans for large-scale platforms. Platforms such as e-commerce platforms, could-service providers, or ride-sharing or ride-hailing platforms may deal with resource allocating on daily basis. The definition of “resource” may vary depending on the actual applications. For example, a server, a cluster of computers, or a cloud service may offer computing or storage resources for client devices. In this context, resource allocation may involve allocating a number of processors, a number of storage spaces, or a number of or a number of virtual machines to different client devices. As another example, a ride-hailing platform may need to balance the supply-demand in real-time among different regions. The resource allocation in this context may involve making order dispatching and/or vehicle repositioning decisions. As yet another example, a platform offering loan services may host thousands of banks or financial institutions to serve millions of loan borrowers. In this case, resource allocation may involve assigning different loan borrowers to different banks or financial institutions for service.
In these resource allocation scenarios, the resources are usually associated with a positive factor (also called benefit level) and a negative factor (also called a risk level or a cost level) for the corresponding resource provider. For example, if the resource is cloud storage space for digital data, providing such storage space (e.g., by a cloud storage system) may be associated with a benefit level (e.g., payment to the cloud storage provider for storing such data) and a risk level (e.g., the risk carried by the cloud storage provider, and the associated cost of implementing safeguard measures to prevent the data from leaking) for the resource provider. As another example, if the resource is a loan, providing the loan may be associated with a benefit level (e.g., an interest level) and a risk level (e.g., a default risk) for the provider. Furthermore, different resource providers may have various resource constraints.  For example, a cloud service provider may have limited types of processors or storage appliances (spindle drives or solid-state drives) and thus can only provide certain types of computing or storage resources. As another example, different loan providers may have different risk constraints. The disclosed technologies in this specification may provide a way to determine optimal or near-optimal resource allocation plan to allocate the resource requests among the resource providers to (1) maximize an overall objective and (2) satisfy each resource provider’s various constraints. Depending on the application, the overall objective may be defined differently, such as an overall performance improvement, a total amount of resources allocated by the resource providers to the resource borrowers, positive feedbacks from the resource borrowers, etc.
For the convenience of description, a loan servicing platform is used as an example to describe the embodiments disclosed herein, where the resource to be allocated may refer to a loan, and the provider may refer to a provider. Each loan served by the provider may be associated with, among other things, a risk level and an interest level. It may be obvious for a person in the art to apply the same ideas to another suitable scenario where resource allocation is needed.
There are two commonly used metrics to measure the balance of risk and interest among providers, i.e., Mean Absolute Percentage Error (MAPE) and Probability Stability Index (PSI) . Assuming the risk distribution at the platform-level (e.g., a global level) is determined by function q (x) , and an individual provider j’s risk distribution is determined by function p (x) , where x is one of the predefined risk levels, q and p are distribution functions that may be explicitly defined or implied, the MAPE may be determined with the following formula:
Figure PCTCN2021092484-appb-000001
where E () denotes expected value (or mean) .
In this specification, it is assumed that one loan corresponds to one borrower, and there is a one-to-one mapping between the loan and the borrower. This assumption may be reasonably expanded as one borrower may borrower multiple loans, and each loan may be associated with multiple borrowers. However, these expanded cases may be easily transformed so that the previous assumption still applies. For example, when a borrower is associated with multiple loans, it is possible to treat the borrower behind each of the loans as an individual (even though the individuals refer to the same person) . As a result, in this specification, migrating a “loan” may mean migrating a “borrower” of the loan.
FIG. 1 illustrates an example system 100 for large-scale resource allocation with constraints in accordance with various embodiments. The components of system 100 are intended to be illustrative. Depending on the implementation, system 100 may include additional, fewer, or alternative components. It is to be understood that although one computing device is shown in FIG. 1, any number of computing devices may be included in the system 100. The computing system 102 may be implemented in one or more networks (e.g., enterprise networks) , one or more endpoints, one or more servers (e.g., server 105) , or one or more clouds. Server 105 may include hardware or software which manages access to a centralized resource or service in a network. A cloud may include a cluster of servers and other devices which are distributed across a network.
In some embodiments, the example system 100 may include a computing system 102, a computing device 104, a server 105, and the computing system 102 may communicate with loan borrowers 120 and loan providers110 through corresponding computing devices. The computing system 102 may be understood as a platform comprising both online servicing interfaces and an offline (e.g., backend) computing system. The computing device 104 may be associated with the computing system 102 by providing computing capacity. Server 105 may be associated with computing system 102 by providing storage and/or computing capacity. In some embodiments, the computing device 104 may be implemented on or as various devices such as a mobile phone, tablet, server, desktop computer, laptop computer, etc. The computing system 102 may communicate with the computing device 104, and other computing devices. Communication between devices may occur over the internet, through a local network (e.g., LAN) , through direct communication (e.g., BLUETOOTH TM, radio frequency, infrared) , etc.
In some embodiments, the computing system 102 may include an obtaining component 112, a constructing component 114, a transforming component 116, and a parallel processing component 118. The computing system 102 may include one or more processors (e.g., a digital processor, an analog processor, a digital circuit designed to process information, a central processing unit, a graphics processing unit, a microcontroller or microprocessor, an analog circuit designed to process information, a state machine, and/or other mechanisms for electronically processing information) and one or more memories (e.g., permanent memory, temporary memory, non-transitory computer-readable storage medium) . The one or more memories may be configured with instructions executable by the one or more processors. The processor (s) may be configured to perform various operations by interpreting machine-readable instructions stored in the memory. The computing system 102 may be installed with appropriate software (e.g., platform program, etc. ) and/or hardware (e.g., wires, wireless connections, etc. ) to access other components of the system 100.
In some embodiments, the obtaining component 112 in the computing system 102 may be configured to obtain a plurality of resource requests from the borrowers 120 requesting resources hosted by the providers 110 (e.g., a plurality of host computer devices) . The computing system 102 needs to determine a resource allocation plan to allocate the plurality of resource requests to the providers 110 for execution. Each provider 110 may then provide the resources in response to the allocated resource request (s) .
In some embodiments, the constructing component 114 in the computing system 102 may be configured to construct an objective and one or more constraints for allocating the plurality of the resource requests to the plurality of host computer devices. The objective may include a plurality of decision variables each indicating whether a resource request is allocated to a host computer device for service, and the one or more constraints may include one or more inequalities of the plurality of decision variables. In the context of loan services, there are various objective functions depending on the implementation. Various objectives may be defined based on the platform’s interest. For example, based on the above description about MAPE, a provider 110 (e.g., bank j) may have one of the following objective functions to be minimized:
Figure PCTCN2021092484-appb-000002
where the denotations are listed below:
Figure PCTCN2021092484-appb-000003
The above objective functions may be formulated as the following objective functions with constraints:
Figure PCTCN2021092484-appb-000004
The objective and constraint corresponding to “Risk MAPE of bank j on level m” may be formally denoted as formula (1) :
Figure PCTCN2021092484-appb-000005
where m denotes the index for objective metrics such as MAPE and/or PSI, u includes 
Figure PCTCN2021092484-appb-000006
and W both denote a parameter matrix, and v j denotes a maximum number of borrowers 120 that the provider j can serve at the same time. The last constraint indicates that one borrower 120 can only be allocated to one provider 110.
In some cases, for the purposes of representing the above mathematical objectives in computer systems, the absolute values in the above objective functions may be converted to quadratic objective functions with constraints as below:
Figure PCTCN2021092484-appb-000007
where u includes
Figure PCTCN2021092484-appb-000008
and
Figure PCTCN2021092484-appb-000009
refers to a parameter matrix. The above quadratic objective function for “Risk MAPE of bank j on level m” may be formulated as the following objective function with constraints, denoted as formula (2) :
Figure PCTCN2021092484-appb-000010
In some embodiments, the transforming component 116 may be configured to transform the one or more constraints by converting the one or more inequalities (e.g., 
Figure PCTCN2021092484-appb-000011
) to one or more equalities of the plurality of decision variables and merge the one or more equalities into the objective to obtain a new objective. Here, the “equality” refers to a relationship between two quantities or, more generally two mathematical expressions, asserting that the quantities have the same value, or that the expressions represent the same mathematical object, and the “inequality” refers to a relation that makes a non-equal comparison between two numbers or other mathematical expressions. The purpose of the transformation is to conform the objective function to the format that is solvable by ADMM algorithm. Before the transformation, the absolute operator and the square operator in the objective functions may lead to cross-borrower terms, such as x ij*x  (i+1) j. For instance, assuming x j is a two-dimension vector [x 1, x 2] , then [x 1, x 22= [x 1x 1, x 1x 2, x 2x 1, x 2x 2] , where the terms x 1x 2 and x 2x 1 are referred to as cross-borrower terms. In some embodiments, the cross-borrower terms in the objective function may be canceled by converting the inequality constraints into equality constraints and merging the equality constraints into the objective function.
In some embodiments, the parallel processing component 118 may be configured to divide the objective into a plurality of sub-objectives and generate a plurality of parallel processing tasks corresponding to the plurality of sub-objectives to obtain values of the plurality of decision variables. Since the transformation performed by the transforming component 116 cancels the cross-borrower terms, the resulting objective function is separable and may be solved by using various parallel processing frameworks. In some embodiments, the MapReduce framework may be adopted because of its simplicity and compatibility with the format of the objective function. For instance, the transformed objective function may be divided into a plurality of sub-objective functions, each including a subset of the decision variables. Each of the sub-objective functions may be solved by creating a map task to  determine values for the corresponding subset of decision variables. After all map tasks are finished, the values generated by the map tasks may be aggregated by creating a reduce task.
In some embodiments, the values of the decision variables may indicate which request (or borrower 120) should be allocated to which provider 110 for service or execution. Here, the provider 110 may execute the request by providing the requested services. The computing system 102 may send direct instructions to the providers 110 to provide the services according to the values of the decision variables.
FIG. 2 illustrates an example system diagram for ADMM-based large-scale resource allocation with constraints, in accordance with various embodiments. The system 200 in FIG. 2 is for illustrative purposes only, and may include more, fewer, or alternative components depending on the implementation.
In some embodiments, the system 200 is configured to solve large-scale resource allocation problems with constraints 202. The formulation of a resource allocation problem may vary depending on the use case. Example use cases include computing and/or storage resource allocation by cloud service providers to customers, loan resource allocation by loan providers to loan borrowers through a loan servicing platform, supply-demand management in ride-hailing platforms, warehouse management among different geographic regions in e-commerce platforms, etc. The “large-scale” here indicates that the problem includes a massive number of decision variables (i.e., each decision variable indicates a match between a resource borrower and a resource provider) so that brutal force solutions (e.g., exhaustive methods, even using the most advanced and powerful computers) cannot generate an optimal solution within a reasonable time.
In some embodiments, the large-scare resource allocation with constraints 202 may first be formulated into an optimization problem comprising an objective function and one or more constraints. In the context of loan services, example objective functions and constraints are described in FIG. 1. The objective functions may include an objective to be maximized (e.g., a total interest gain) or minimized (e.g., a total risk or MAPE) , and the constraints may include various thresholds (e.g., a maximum number of borrowers can be served, a maximum risk tolerance) and restrictions (e.g., one borrower can only be served by one provider) .
In some embodiments, the system 200 may include an objective function transformer 210 to transform the initially formulated objective function based on the constraints. The objective function transformer 210 may be implemented by various programming languages. The purpose of the transformation is to generate a new objective function and a new set of constraints to conform to a format that is solvable by ADMM algorithms. In some embodiments, the transformation may include two steps: converting inequalities in the constraints into equalities, and merging the equalities into the objective function to obtain the new/transformed objective.
For example, the objective functions and corresponding constraints in formulas (1) and (2) may be generalized as the following formula (3) :
Figure PCTCN2021092484-appb-000012
where f (x) denotes the objective function (e.g., MAPE) to be minimized, A and C denote different parameter matrices, x denotes the decision variable matrix, x i denotes the i th resource provider, and b and d denote quantified thresholds or restrictions. In order to apply ADMM to solve the above formula (3) , in some embodiments, the first step of the transformation may include converting the inequalities in the constraints into one or more equalities. For example, positive assistance variables may be added to the left-hand side (LHS) of an inequality. In some embodiments, the last constraint (e.g., 1 Tx i=1) may be merged into the objective so that a violation of such constraint will punish the objective by infinity. For example, the above formula (3) may be transformed into the following formula (4) :
Figure PCTCN2021092484-appb-000013
where ξ denotes the positive assistance variable, and ∏ denotes a non-differentiable function, I denotes a parameter matrix. In this transformation, the inequality Cx≤d in formula (3) is converted to the equality Cx+ξ=d in formula (4) .
In some embodiments, during the second step of the transformation of the objective function, the equalities transformed from the inequalities in the constraints may be merged into the objective function to generate an Augmented Lagrangian function, which may also be called the new objective function or the output of the objective function transformer 210. In some embodiments, the generation of the Augmented Lagrangian function may include adding decision-variable related positive-definite matrix to the objective function to cancel cross-borrower decision variables therein and one or more Lagrangian Multipliers. After canceling the cross-borrower decision variables, the resultant Augmented Lagrangian function may be separable and processed in parallel. A detailed example is described in FIG. 3.
In some embodiments, the generated Augmented Lagrangian function may be parallelly and iteratively solved in an ADMM-based parallel processing system 220. The system 220 may adopt various parallel processing frameworks such as Hadoop MapReduce, CUDA, Spark, MPI, etc. For example, the Augmented Lagrangian function may be divided into a plurality of sub-objective functions. Each of the sub-objective functions may include a subset of the decision variables. Solving the Augmented Lagrangian function may include a plurality of iterations of parallel processing. Assuming MapReduce framework is used in system 220, during each iteration, a plurality of map tasks may be created to respectively solve the plurality of sub-objective functions. That is, each map task will determine the values of the corresponding subset of decision variables. Subsequently, a reduce task may aggregate all the values generated by the map tasks. Even though the decision variable values obtained during one iteration may be locally optimized (optimized for each sub-objective) but not globally optimized, they may be used as a baseline for the next iteration. The detailed description of the map tasks is described below.
FIG. 3. illustrates an example parallel processing workflow for ADMM-based large-scale resource allocation with constraints in accordance with various embodiments. The workflow 300 in FIG. 3 is for illustrative purposes only, and may include more, fewer, alternative steps depending on the implementation. The steps in the workflow 300 may be performed in various orders or in parallel.
As described in FIG. 2, after the transformation, the objective function of the large-scale resource allocation with constraints may be separable and solved using parallel processing. For simplicity, the MapReduce framework is used as an example in FIG. 3 to illustrate how the objective function is solved based on ADMM. Here, “solving” the objective function of the large-scale resource allocation with constraints means iteratively finding converged values for the decision variables in the objective function. In some embodiments, a plurality of iterations of parallel processing may be performed.
In some embodiments, each map task may implement an ADMM-based iteration. During each iteration, a plurality of map tasks and a reduce task may be created to parallelly solve the objective function, with each map task solving a portion/subset of the decision variables (i.e., a corresponding sub-objective) and the reduce task aggregating the outputs of the map tasks.
For example, the map task may be started at step 305 and followed by updating values of the subset of the plurality of decision variables based on the one or more Lagrangian Multipliers and the assistance variable added during the process of transforming the objective function (see description in FIG. 2) at step 310; updating the assistance variable based on the updated values of the subset of the plurality of decision variables and the one or more Lagrangian Multipliers at step 320; and updating the one or more Lagrangian Multipliers based on the updated values of the subset of the plurality of decision variables and the updated assistance variable at step 330. That is, the decision variables, the assistance variables, and the Lagrangian Multipliers in the sub-objective function are iteratively updated.
In some embodiments, during each iteration, the subset of decision variables may be updated based on the following formula at step 310:
Figure PCTCN2021092484-appb-000014
where x k, x k+1 denote the values of the decision variables at k thand k+1 thiteration respectively, v, w denote the Lagrangian Multipliers, ξ denotes the assistance variable, ρ, τ denote preconfigured hyperparameters, P denotes a positive semidefinite matrix. Referring back to the formulas (3) and (4) in FIG. 2, the inequality Cx≤d in formula (3) is converted to the equality Cx+ξ=d in formula (3) (the first step of transformation) , and then the Cx+ξ=d is merged into the new objective (the second step of the transformation) in formula (5) as a squared difference between a left-hand side and a right-hand side, i.e., 
Figure PCTCN2021092484-appb-000015
In some embodiments, if f (x) in formula (5) is non-linear, a first order Taylor expansion of f () on x kmay be performed to convert it to a linear function. In some embodiments, if f (x) in formula (5) is linear, the last term involving x, x k, and P may be configured to effectively cancel the cross-borrower terms in the other terms. As shown in the above formula, the values of the decision variables for the k+1 th iteration are determined based on the Lagrangian Multipliers and assistance variable from the k th iteration.
In some embodiments, during each iteration, the assistance variables may be updated based on the following formula at step 320:
Figure PCTCN2021092484-appb-000016
where x k+1 denotes the values of the decision variables at k+1 thiteration, and w k denotes to one of the Lagrangian Multipliers at k th iteration. As shown in the above formula, the value of the assistance variable for the k+1t hiteration is determined based on the Lagrangian Multipliers from the k th iteration and the values of the decision variables from the k+1 thiteration.
In some embodiments, during each iteration, the Lagrangian Multipliers may be updated based on the following formula at step 320:
v k+1=v k+Ax k+1-b
w k+1=w k+Cx k+1k+1-d,
where x k+1 denotes the values of the decision variables at (k+1)  thiteration, v k, w k denote the Lagrangian Multipliers at k th iteration, and v k+1, w k+1 denote the Lagrangian Multipliers at (k+1)  th iteration. As shown in the above formula, the values of the Lagrangian Multipliers for the (k+1)  thiteration is determined based on the assistance value from the (k+1)  th iteration and the values of the decision variables from the (k+1)  thiteration.
In some embodiments, the values of the decision variables, the Lagrangian Multipliers, and the assistance variables obtained for the (k+1)  thiteration may be compared with the values from the k thiteration to determine their convergence at step 340. If any one of these values (e.g., the decision variables, the Lagrangian Multipliers, and the assistance variables) is not converged, the map task loops back and continues the iteration. If all values are converged, the map task ends at step 345 (step 346 indicates the end of another map task) . The “convergence” in this context is determined based on a difference threshold. If the difference between the values from different iterations is below the threshold, the values are determined as being converged.
After all map tasks are parallelly processed and end, such as at  steps  345 and 346, a reduce task may be created to obtain a solution candidate for the large-scale resource allocation with constraints at step 350. It is a “candidate” because the values of the decision variables are locally optimized (from the sub-objective’s perspective) but not necessarily globally optimized (from the objective’s perspective) . In order to determine whether the candidate is sufficiently optimal, the aggregated values of the decision variables may be compared with the values from the previous iteration at step 360. If the values do not converge, a new iteration of MapReduce may be performed. If the values converge, they will be deemed as the optimal solution 362 for the large-scale resource allocation problem. In some embodiments, the optimal solution 362 may indicate the matches between resource providers and resource borrowers or requestors to achieve an optimal reward (e.g., the minimum MAPE value) .
FIG. 4 illustrates an example method 400 for ADMM-based large-scale resource allocation with constraints, in accordance with various embodiments. The method 400 may be performed by a device, apparatus, or system. The method 400 may be performed by one or more components of the setup illustrated by FIG. 1, such as the computing system 102, and the computing device 104. Depending on the implementation, the method 400 may include additional, fewer, or alternative steps performed in various orders or in parallel.
Block 410 includes obtaining, by a computer device, a plurality of resource requests for resources hosted by a plurality of host computer devices
Block 420 includes constructing, by the computer device, an objective and one or more constraints for allocating the plurality of the resource requests to the plurality of host computer devices, wherein the objective comprises a plurality of decision variables each indicating whether a resource request is allocated to a host computer device for service, and the one or more constraints comprise one or more inequalities of the plurality of decision variables. In some embodiments, the one or more constraints comprise one or more risk constraints that are configured by the plurality of host computer devices.
Block 430 includes converting, by the computer device, the one or more inequalities in one or more constraints to one or more equalities of the plurality of decision variables. In some embodiments, the converting the one or more inequalities to one or more equalities of the plurality of decision variables comprises: for each of the one or more inequalities, adding an assistance variable to a left-hand side of the each inequality to make an equality, wherein the left-hand side of the each inequality comprises a product of a matrix and the plurality of decision variables. In some embodiments, each of the plurality of sub-objectives comprises: one or more Lagrangian Multipliers, the assistance variable, and the subset of the plurality of decision variables, and each of the plurality of parallel processing tasks implements an iterative process comprising: updating values of the subset of the plurality of decision variables based on the one or more Lagrangian Multipliers and the assistance variable; updating the assistance variable based on the updated values of the subset of the plurality of decision variables and the one or more Lagrangian Multipliers; and updating the one or more Lagrangian Multipliers based on the updated values of the subset of the plurality of decision variables and the updated assistance variable.
Block 440 includes merging, by the computer device, the one or more equalities into the objective to obtain a new objective. In some embodiments, the merging the one or more equalities into the objective to obtain a new objective comprises: for each of the one or more equalities, adding to the objective a factor that comprises a squared difference between a left-hand side and a right-hand side of the each equality, wherein the left-hand side of the each equality comprises a product of a matrix and the plurality of decision variables, and the right-hand side of the each equality comprises a constant.
Block 450 includes dividing, by the computer device, the new objective into a plurality of sub-objectives. In some embodiments, each of the plurality of sub-objectives comprises a subset of the plurality of decision variables, and each of the plurality of map tasks determines the subset in the corresponding sub-objective.
Block 460 includes generating, by the computer device, a plurality of parallel processing tasks corresponding to the plurality of sub-objectives to obtain values of the plurality of decision variables. In some embodiments, each of the plurality of parallel processing tasks comprises an Alternating Direction Method of Multipliers (ADMM) -based iteration to solve a corresponding sub-objective. In some embodiments, the generating a plurality of parallel processing tasks corresponding to the plurality of sub-objectives to obtain values of the plurality of decision variables comprises: generating, by the computer device, an aggregation task to aggregate results of the plurality of parallel processing tasks to obtain the values of the plurality of decision variables. In some embodiments, the generating a plurality of parallel processing tasks corresponding to the plurality of sub-objectives comprises: generating, under a MapReduce programming framework, a plurality of map tasks  to parallelly solve the plurality of sub-objectives. In some embodiments, each of the plurality of map tasks comprises a quadratic programming process. In some embodiments, the generating a plurality of parallel processing tasks corresponding to the plurality of sub-objectives comprises: generating a plurality of threads on one or more graphic processing units (GPUs) to parallelly solve the plurality of sub-objectives.
Block 470 includes sending, by the computer device, instructions to the plurality of host computer devices to execute the plurality of resource requests according to the values of the plurality of decision variables.
In some embodiments, prior to sending the instructions to the plurality of host computer devices, the method 400 may further comprise: determining, by the computer device, whether the values of the plurality of decision variables converge; and in response to the values of the plurality of decision variables being converged, performing the sending of the instructions.
FIG. 5 illustrates a block diagram of an example computer system apparatus 500 for ADMM-based large-scale resource allocation with constraints, in accordance with various embodiments. The components of the computer system 500 presented below are intended to be illustrative. Depending on the implementation, the computer system 500 may include additional, fewer, or alternative components.
The computer system 500 may be an example of an implementation of one or more components of the computing system 102. The flows and methods illustrated in FIGs. 1-4 may be implemented by the computer system 500. The computer system 500 may comprise one or more processors and one or more non-transitory computer-readable storage media (e.g., one or more memories) coupled to the one or more processors and configured with instructions executable by the one or more processors to cause the system or device (e.g., the processor) to perform the above-described method, e.g., the method 400. The computer system 500 may comprise various units/modules corresponding to the instructions (e.g., software instructions) .
In some embodiments, the computer system 500 may be referred to as an apparatus for determining optimal allocation of borrowing requests. The apparatus may comprise an obtaining module 510, a constructing module 520, a converting module 530, a merging module 540, a dividing module 550, a parallel processing module 560, and a sending module 570. In some embodiments, the obtaining module 510 may be configured to obtain a plurality of resource requests for resources hosted by a plurality of host computer devices. The constructing module 520 may be configured to construct an objective and one or more constraints for allocating the plurality of the resource requests to the plurality of host computer devices, wherein the objective comprises a plurality of decision variables each indicating whether a resource request is allocated to a host computer device for service, and the one or more constraints comprise one or more inequalities of the plurality of decision variables. The converting module 530 may be configured to convert the one or more inequalities in one or more constraints to one or more equalities of the plurality of decision variables. The merging module 540 may be configured to merge the one or more equalities into the objective to obtain a new objective. The dividing module 550 may be configured to divide the new objective into a plurality of sub-objectives. The parallel processing module 560 may be configured to generate a plurality of parallel processing tasks corresponding to the plurality of sub-objectives to obtain values of the plurality of decision variables. The sending module 570 may be configured to send instructions to the plurality of host computer  devices to execute the plurality of resource requests according to the values of the plurality of decision variables.
FIG. 6 illustrates an example computing device in which any of the embodiments described herein may be implemented. The computing device 600 may be used to implement one or more components of the systems and the methods shown in FIGs. 1-5 The computing device 600 may comprise a bus 602 or other communication mechanism for communicating information and one or more hardware processors 604 coupled with bus 602 for processing information. Hardware processor (s) 604 may be, for example, one or more general purpose microprocessors.
The computing device 600 may also include a main memory 606, such as a random-access memory (RAM) , cache and/or other dynamic storage devices, coupled to bus 602 for storing information and instructions to be executed by processor (s) 604. Main memory 606 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor (s) 604. Such instructions, when stored in storage media accessible to processor (s) 604, may render computing device 600 into a special-purpose machine that is customized to perform the operations specified in the instructions. Main memory 606 may include non-volatile media and/or volatile media. Non-volatile media may include, for example, optical or magnetic disks. Volatile media may include dynamic memory. Common forms of media may include, for example, a RAM, a DRAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge, or networked versions of the same.
The computing device 600 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computing device may cause or program computing device 600 to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computing device 600 in response to processor (s) 604 executing one or more sequences of one or more instructions contained in main memory 606. Such instructions may be read into main memory 606 from another storage medium, such as storage device 609. Execution of the sequences of instructions contained in main memory 606 may cause processor (s) 604 to perform the process steps described herein. For example, the processes/methods disclosed herein may be implemented by computer program instructions stored in main memory 606. When these instructions are executed by processor (s) 604, they may perform the steps as shown in corresponding figures and described above. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
The computing device 600 also includes a communication interface 610 coupled to bus 602. Communication interface 610 may provide a two-way data communication coupling to one or more network links that are connected to one or more networks. As another example, communication interface 610 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN (or WAN component to communicate with a WAN) . Wireless links may also be implemented.
The performance of certain of the operations may be distributed among the processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the processors or processor-implemented engines may be located in a single geographic location (e.g., within a home environment, an office  environment, or a server farm) . In other example embodiments, the processors or processor-implemented engines may be distributed across a number of geographic locations.
Each of the processes, methods, and algorithms described in the preceding sections may be embodied in, and fully or partially automated by, code modules executed by one or more computer systems or computer processors comprising computer hardware. The processes and algorithms may be implemented partially or wholly in application-specific circuitry.
When the functions disclosed herein are implemented in the form of software functional units and sold or used as independent products, they can be stored in a processor executable non-volatile computer readable storage medium. Particular technical solutions disclosed herein (in whole or in part) or aspects that contribute to current technologies may be embodied in the form of a software product. The software product may be stored in a storage medium, comprising a number of instructions to cause a computing device (which may be a personal computer, a server, a network device, and the like) to execute all or some steps of the methods of the embodiments of the present application. The storage medium may comprise a flash drive, a portable hard drive, ROM, RAM, a magnetic disk, an optical disc, another medium operable to store program code, or any combination thereof.
Particular embodiments further provide a system comprising a processor and a non-transitory computer-readable storage medium storing instructions executable by the processor to cause the system to perform operations corresponding to steps in any method of the embodiments disclosed above. Particular embodiments further provide a non-transitory computer-readable storage medium configured with instructions executable by one or more processors to cause the one or more processors to perform operations corresponding to steps in any method of the embodiments disclosed above.
Embodiments disclosed herein may be implemented through a cloud platform, a server or a server group (hereinafter collectively the “service system” ) that interacts with a client. The client may be a terminal device, or a client registered by a user at a platform, wherein the terminal device may be a mobile terminal, a personal computer (PC) , and any device that may be installed with a platform application program.
The various features and processes described above may be used independently of one another or may be combined in various ways. All possible combinations and sub-combinations are intended to fall within the scope of this disclosure. In addition, certain method or process blocks may be omitted in some implementations. The methods and processes described herein are also not limited to any particular sequence, and the blocks or states relating thereto can be performed in other sequences that are appropriate. For example, described blocks or states may be performed in an order other than that specifically disclosed, or multiple blocks or states may be combined in a single block or state. The example blocks or states may be performed in serial, in parallel, or in some other manner. Blocks or states may be added to or removed from the disclosed example embodiments. The exemplary systems and components described herein may be configured differently than described. For example, elements may be added to, removed from, or rearranged compared to the disclosed example embodiments.
Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as  separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.
As used herein, “or” is inclusive and not exclusive, unless expressly indicated otherwise or indicated otherwise by context. Therefore, herein, “A, B, or C” means “A, B, A and B, A and C, B and C, or A, B, and C, ” unless expressly indicated otherwise or indicated otherwise by context. The term “include” or “comprise” is used to indicate the existence of the subsequently declared features, but it does not exclude the addition of other features. Conditional language, such as, among others, “can, ” “could, ” “might, ” or “may, ” unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments include, while other embodiments do not include, certain features, elements and/or steps. Thus, such conditional language is not generally intended to imply that features, elements and/or steps are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without user input or prompting, whether these features, elements and/or steps are included or are to be performed in any particular embodiment.
Although an overview of the subject matter has been described with reference to specific example embodiments, various modifications and changes may be made to these embodiments without departing from the broader scope of embodiments of the present disclosure. Such embodiments of the subject matter may be referred to herein, individually or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single disclosure or concept if more than one is, in fact, disclosed.
The embodiments illustrated herein are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed. Other embodiments may be used and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. The Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.

Claims (20)

  1. A computer-implemented method, comprising:
    obtaining, by a computer device, a plurality of resource requests for resources hosted by a plurality of host computer devices;
    constructing, by the computer device, an objective and one or more constraints for allocating the plurality of the resource requests to the plurality of host computer devices, wherein the objective comprises a plurality of decision variables each indicating whether a resource request is allocated to a host computer device for service, and the one or more constraints comprise one or more inequalities of the plurality of decision variables;
    converting, by the computer device, the one or more inequalities in one or more constraints to one or more equalities of the plurality of decision variables;
    merging, by the computer device, the one or more equalities into the objective to obtain a new objective;
    dividing, by the computer device, the new objective into a plurality of sub-objectives;
    generating, by the computer device, a plurality of parallel processing tasks corresponding to the plurality of sub-objectives to obtain values of the plurality of decision variables; and
    sending, by the computer device, instructions to the plurality of host computer devices to execute the plurality of resource requests according to the values of the plurality of decision variables.
  2. The method of claim 1, wherein each of the plurality of parallel processing tasks comprises an iteration based on Alternating Direction Method of Multipliers (ADMM) to solve a corresponding sub-objective.
  3. The method of claim 1, wherein the generating the plurality of parallel processing tasks corresponding to the plurality of sub-objectives to obtain values of the plurality of decision variables comprises:
    generating, by the computer device, an aggregation task to aggregate results of the plurality of parallel processing tasks to obtain the values of the plurality of decision variables.
  4. The method of claim 1, wherein the sending the instructions to the plurality of host computer devices further comprises:
    determining, by the computer device, whether the values of the plurality of decision variables converge; and
    in response to the values of the plurality of decision variables being converged, performing the sending of the instructions.
  5. The method of claim 1, wherein the converting the one or more inequalities to one or more equalities of the plurality of decision variables comprises:
    for an inequality of the one or more inequalities, adding an assistance variable to a left-hand side of the inequality to make an equality, wherein the left-hand side of the inequality comprises a product of a matrix and the plurality of decision variables.
  6. The method of claim 5, wherein each of the plurality of sub-objectives comprises:
    one or more multipliers, the assistance variable, and the subset of the plurality of decision variables, and
    each of the plurality of parallel processing tasks implements an iterative process comprising:
    updating values of the subset of the plurality of decision variables based on the one or more multipliers and the assistance variable;
    updating the assistance variable based on the updated values of the subset of the plurality of decision variables and the one or more multipliers; and
    updating the one or more multipliers based on the updated values of the subset of the plurality of decision variables and the updated assistance variable.
  7. The method of claim 1, wherein the merging the one or more equalities into the objective to obtain a new objective comprises:
    for each of the one or more equalities, adding to the objective a factor that comprises a squared difference between a left-hand side and a right-hand side of the each equality, wherein the left-hand side of the each equality comprises a product of a matrix and the plurality of decision variables, and the right-hand side of the each equality comprises a constant.
  8. The method of claim 1, wherein the generating a plurality of parallel processing tasks corresponding to the plurality of sub-objectives comprises:
    generating, under a MapReduce programming framework, a plurality of map tasks to parallelly solve the plurality of sub-objectives.
  9. The method of claim 8, wherein each of the plurality of map tasks comprises a quadratic programming process.
  10. The method of claim 1, wherein the generating the plurality of parallel processing tasks corresponding to the plurality of sub-objectives comprises:
    generating a plurality of threads on one or more graphic processing units (GPUs) to parallelly solve the plurality of sub-objectives.
  11. The method of claim 1, wherein the one or more constraints comprise one or more risk constraints that are configured by the plurality of host computer devices.
  12. The method of claim 1, wherein each of the plurality of sub-objectives comprises a subset of the plurality of decision variables, and each of the plurality of map tasks determines the subset in the corresponding sub-objective.
  13. A system comprising one or more processors and one or more non-transitory computer-readable memories coupled to the one or more processors and configured with instructions executable by the one or more processors to cause the system to perform operations comprising:
    obtaining a plurality of resource requests for resources hosted by a plurality of host computer devices;
    constructing an objective and one or more constraints for allocating the plurality of the resource requests to the plurality of host computer devices, wherein the objective comprises a plurality of decision variables each indicating whether a resource request is allocated to a host computer device for service, and the one or more constraints comprise one or more inequalities of the plurality of decision variables;
    converting the one or more inequalities in one or more constraints to one or more equalities of the plurality of decision variables;
    merging the one or more equalities into the objective to obtain a new objective;
    dividing the new objective into a plurality of sub-objectives;
    generating a plurality of parallel processing tasks corresponding to the plurality of sub-objectives to obtain values of the plurality of decision variables; and
    sending instructions to the plurality of host computer devices to execute the plurality of resource requests according to the values of the plurality of decision variables.
  14. The system of claim 13, wherein the converting the one or more inequalities to one or more equalities of the plurality of decision variables comprises:
    for an inequality of the one or more inequalities, adding an assistance variable to a left-hand side of the inequality to make an equality, wherein the left-hand side of the inequality comprises a product of a matrix and the plurality of decision variables.
  15. The system of claim 14, wherein each of the plurality of sub-objectives comprises:
    one or more multipliers, the assistance variable, and the subset of the plurality of decision variables, and
    each of the plurality of parallel processing tasks implements an iterative process comprising:
    updating values of the subset of the plurality of decision variables based on the one or more multipliers and the assistance variable;
    updating the assistance variable based on the updated values of the subset of the plurality of decision variables and the one or more multipliers; and
    updating the one or more multipliers based on the updated values of the subset of the plurality of decision variables and the updated assistance variable.
  16. A non-transitory computer-readable storage medium configured with instructions executable by one or more processors to cause the one or more processors to perform operations comprising:
    obtaining a plurality of resource requests for resources hosted by a plurality of host computer devices;
    constructing an objective and one or more constraints for allocating the plurality of the resource requests to the plurality of host computer devices, wherein the objective comprises a plurality of decision variables each indicating whether a resource request is allocated to a host computer device for service, and the one or more constraints comprise one or more inequalities of the plurality of decision variables;
    converting the one or more inequalities in one or more constraints to one or more equalities of the plurality of decision variables;
    merging the one or more equalities into the objective to obtain a new objective;
    dividing the new objective into a plurality of sub-objectives;
    generating a plurality of parallel processing tasks corresponding to the plurality of sub-objectives to obtain values of the plurality of decision variables; and
    sending instructions to the plurality of host computer devices to execute the plurality of resource requests according to the values of the plurality of decision variables.
  17. The storage medium of claim 16, wherein the converting the one or more inequalities to one or more equalities of the plurality of decision variables comprises:
    for an inequality of the one or more inequalities, adding an assistance variable to a left-hand side of the inequality to make an equality, wherein the left-hand side of the inequality comprises a product of a matrix and the plurality of decision variables.
  18. The storage medium of claim 17, wherein each of the plurality of sub-objectives comprises:
    one or more multipliers, the assistance variable, and the subset of the plurality of decision variables, and
    each of the plurality of parallel processing tasks implements an iterative process comprising:
    updating values of the subset of the plurality of decision variables based on the one or more multipliers and the assistance variable;
    updating the assistance variable based on the updated values of the subset of the plurality of decision variables and the one or more multipliers; and
    updating the one or more multipliers based on the updated values of the subset of the plurality of decision variables and the updated assistance variable.
  19. The storage medium of claim 16, wherein the generating the plurality of parallel processing tasks corresponding to the plurality of sub-objectives to obtain values of the plurality of decision variables comprises:
    generating, by the computer device, an aggregation task to aggregate results of the plurality of parallel processing tasks to obtain the values of the plurality of decision variables.
  20. The storage medium of claim 16, wherein the merging the one or more equalities into the objective to obtain a new objective comprises:
    for each of the one or more equalities, adding to the objective a factor that comprises a squared difference between a left-hand side and a right-hand side of the each equality, wherein the left-hand side of the each equality comprises a product of a matrix and the plurality of decision variables, and the right-hand side of the each equality comprises a constant.
PCT/CN2021/092484 2021-05-08 2021-05-08 Method and system for optimizing large-scale resource allocation with constraints WO2022236501A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2021/092484 WO2022236501A1 (en) 2021-05-08 2021-05-08 Method and system for optimizing large-scale resource allocation with constraints
CN202180083212.9A CN116671086A (en) 2021-05-08 2021-05-08 Method and system for optimizing utilization constraints for large-scale resource allocation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/092484 WO2022236501A1 (en) 2021-05-08 2021-05-08 Method and system for optimizing large-scale resource allocation with constraints

Publications (1)

Publication Number Publication Date
WO2022236501A1 true WO2022236501A1 (en) 2022-11-17

Family

ID=84027842

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/092484 WO2022236501A1 (en) 2021-05-08 2021-05-08 Method and system for optimizing large-scale resource allocation with constraints

Country Status (2)

Country Link
CN (1) CN116671086A (en)
WO (1) WO2022236501A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150006433A1 (en) * 2013-03-15 2015-01-01 C4Cast.Com, Inc. Resource Allocation Based on Available Predictions
CN110213363A (en) * 2019-05-30 2019-09-06 华南理工大学 Cloud resource dynamic allocation system and method based on software defined network
CN111742335A (en) * 2020-04-13 2020-10-02 支付宝(杭州)信息技术有限公司 Method and system for optimizing the allocation of debit requests

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150006433A1 (en) * 2013-03-15 2015-01-01 C4Cast.Com, Inc. Resource Allocation Based on Available Predictions
CN110213363A (en) * 2019-05-30 2019-09-06 华南理工大学 Cloud resource dynamic allocation system and method based on software defined network
CN111742335A (en) * 2020-04-13 2020-10-02 支付宝(杭州)信息技术有限公司 Method and system for optimizing the allocation of debit requests

Also Published As

Publication number Publication date
CN116671086A (en) 2023-08-29

Similar Documents

Publication Publication Date Title
US8914469B2 (en) Negotiating agreements within a cloud computing environment
US9704277B2 (en) Vectorized graph processing
US11263052B2 (en) Determining optimal compute resources for distributed batch based optimization applications
CN104424013A (en) Method and device for deploying virtual machine in computing environment
JP2021524100A (en) Task scheduling methods, devices, programs and equipment based on graph data
US20190156243A1 (en) Efficient Large-Scale Kernel Learning Using a Distributed Processing Architecture
CN114902273A (en) System and method for optimizing resource allocation using GPU
WO2020143850A2 (en) Method and system for optimizing allocation of borrowing requests
US11586646B2 (en) Transforming data structures and data objects for migrating data between databases having different schemas
CN111427971B (en) Business modeling method, device, system and medium for computer system
US20220078010A1 (en) Decentralized asset identifiers for cross-blockchain networks
US9699114B1 (en) Providing use of local or private cloud infrastructure resources to public cloud providers
US20140244311A1 (en) Protecting against data loss in a networked computing environment
US20150310039A1 (en) System and method for geo-location data type searching in an on demand environment
US10163072B2 (en) Automated systems for reducing computational loads in the mass execution of analytical models using scale-out computing
US20210217083A1 (en) Method and system for optimizing resource redistribution
US11100426B1 (en) Distributed matrix decomposition using gossip
WO2022236501A1 (en) Method and system for optimizing large-scale resource allocation with constraints
US20230137673A1 (en) Systems and methods for dynamically scaling remote resources
US10963303B2 (en) Independent storage and processing of data with centralized event control
Chaisiri et al. Profit maximization model for cloud provider based on windows azure platform
US10985995B2 (en) Dynamic engine for matching computing devices based on user profiles and machine learning
Hegde et al. A Review on Cloud Computing and K-means++ Clustering Algorithm with Map Reduce
US20230153139A1 (en) Cloud-based parallel processing and cognitive learning computing platform
US11568171B2 (en) Shuffling-type gradient method for training machine learning models with big data

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21941082

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202180083212.9

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21941082

Country of ref document: EP

Kind code of ref document: A1