Resource allocation method, system and storage medium

By using the ADMM method and the MapReduce framework, the objective function in the parallel processing of large-scale resource allocation problems is transformed, solving the problem that nonlinear objective functions cannot be decomposed and achieving a near-optimal resource allocation scheme.

CN116671086BActive Publication Date: 2025-11-11ALIPAY (HANGZHOU) INFORMATION TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202180083212.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-05-08
Publication Date
2025-11-11
Estimated Expiration
2041-05-08

AI Technical Summary

Technical Problem

Existing resource management platforms struggle to find optimal solutions for large-scale resource allocation problems, especially when debit blocks are unevenly distributed. Existing methods lead to non-optimal solutions, and the nonlinear objective function cannot be effectively decomposed.

Method used

The Alternating Direction Method (ADMM) based on multipliers is adopted. Inequalities are transformed into equalities and incorporated into the objective function. Parallel processing frameworks such as MapReduce are used to solve the sub-objective function in parallel, eliminating cross-borrowing terms and ensuring the convergence of decision variables.

Benefits of technology

It achieves near-optimal solutions to large-scale resource allocation problems under both online and nonlinear objective functions, improving the efficiency and optimization effect of resource allocation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116671086B_ABST
    Figure CN116671086B_ABST
Patent Text Reader

Abstract

This invention provides a resource allocation method, system, and storage medium for determining optimal resource allocation in a large-scale system. An example method includes: acquiring multiple resource requests for resources hosted on multiple host computer devices; constructing an objective and one or more constraints for allocating the multiple resource requests to the multiple host computer devices. The one or more constraints include one or more inequalities of multiple decision variables. The example method further includes: converting the one or more inequalities into one or more equations of the multiple decision variables; merging the one or more equations into the objective to obtain a new objective; dividing the new objective into multiple sub-objectives; and generating multiple parallel processing tasks corresponding to the multiple sub-objectives to obtain values ​​for the multiple decision variables.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure generally relates to systems and methods for large-scale resource allocation using various constraints, as well as storage media. Background Technology

[0002] Resource management platforms allow resource owners to provide resources in response to requests and subject to various constraints. Resources to be provided can be associated with negative metrics (e.g., risk, cost) and positive metrics (e.g., interest, usage fees, recurring payments, other types of revenue). This means that when a resource owner (by providing resources) fulfills a resource request, it gains certain benefits (e.g., interest, payments) but also incurs certain risks / costs. Determining the optimal resource allocation requires maximizing overall positive metrics while keeping negative metrics within limits. This is challenging because the number of decision variables is enormous. For example, a reasonably sized resource management platform might simultaneously support thousands of resource hosts (owners) and serve tens of millions of borrowers. Determining the platform's optimal resource allocation plan requires determining the values ​​of billions of decision variables (number of borrowers multiplied by the number of resource requests). Worse still, finding the optimal allocation solution is an NP-hard problem. Therefore, using standard optimization techniques to determine which resource request should be assigned to which host or served by which host is impractical.

[0003] Existing resource management platforms rely on a simple divide-and-conquer approach to determine solutions to large-scale resource application problems. They divide a given number of debits into blocks, thus making the objective function separable. However, these methods are based on the assumption that the debit blocks are homogeneous and that constraints are uniformly distributed among them. In practice, however, the homogeneity of debit blocks is often not true. Therefore, forcibly separating the objective function can lead to a far less optimal solution.

[0004] This disclosure describes a solution based on the Alternating Direction Method of Multipliers (ADMM) for finding near-optimal solutions to large-scale resource allocation problems that utilize constraints, in order to address the aforementioned challenges. Summary of the Invention

[0005] Various embodiments in this specification may include systems, methods, and non-transient computer-readable media for determining optimal resource allocation with various constraints in large-scale systems.

[0006] According to one aspect, a method is provided for determining an optimal solution for large-scale resource allocation using various constraints. The method may include: acquiring, via a computer device, multiple resource requests for resources hosted by multiple host computer devices; constructing, via the computer device, an objective and one or more constraints for allocating the multiple resource requests to the multiple host computer devices, wherein the objective includes multiple decision variables, each decision variable indicating whether to allocate a resource request to a host computer device for service, and the one or more constraints include one or more inequalities of the multiple decision variables; converting, via the computer device, one or more inequalities in the one or more constraints into one or more equality equations of the multiple decision variables; incorporating the one or more equality equations into the objective to obtain a new objective; dividing the new objective into multiple sub-objectives via the computer device; generating, via the computer device, multiple parallel processing tasks corresponding to the multiple sub-objectives to obtain values ​​of the multiple decision variables; and sending instructions to the multiple host computer devices via the computer device based on the values ​​of the multiple decision variables to execute the multiple resource requests.

[0007] In some embodiments, each of the plurality of parallel processing tasks includes an iteration of the alternating direction method (ADMM) based on multipliers to solve the corresponding sub-objective.

[0008] In some embodiments, generating multiple parallel processing tasks corresponding to the multiple sub-objectives to obtain the values ​​of the multiple decision variables includes: generating an aggregation task through the computer device to aggregate the results of the multiple parallel processing tasks, thereby obtaining the values ​​of the multiple decision variables.

[0009] In some embodiments, before sending instructions to the plurality of host computer devices, the method further includes: determining, via the computer devices, whether the values ​​of the plurality of decision variables converge; and, in response to the convergence of the values ​​of the plurality of decision variables, executing the sending of the instructions.

[0010] In some embodiments, the one or more constraints are transformed by converting the one or more inequalities into one or more equations of the plurality of decision variables, including: for each of the one or more inequalities, adding an auxiliary variable to the left-hand side of the inequality to form an equation, wherein the left-hand side of each inequality includes the product of a matrix and the plurality of decision variables.

[0011] In some embodiments, each of the plurality of sub-objectives includes: one or more Lagrange multipliers, auxiliary variables, and a subset of the plurality of decision variables. Furthermore, each of the plurality of parallel processing tasks implements an iterative process, including: updating the value of the subset of the plurality of decision variables based on the one or more Lagrange multipliers and the auxiliary variables; updating the auxiliary variables based on the updated value of the subset of the plurality of decision variables and the one or more Lagrange multipliers; and updating the one or more Lagrange multipliers based on the updated value of the subset of the plurality of decision variables and the updated auxiliary variables.

[0012] In some embodiments, incorporating the one or more equations into the objective to obtain a new objective includes: for each of the one or more equations, adding a factor that includes the squared difference between the left-hand and right-hand sides of the equation to the objective, wherein the left-hand side of each equation includes the product of a matrix and the plurality of decision variables, and the right-hand side of each equation includes a constant.

[0013] In some embodiments, generating multiple parallel processing tasks corresponding to the multiple sub-objectives includes: generating multiple mapping tasks under the MapReduce programming framework to solve the multiple sub-objectives in parallel.

[0014] In some embodiments, each of the plurality of mapping tasks includes a quadratic planning process.

[0015] In some embodiments, generating multiple parallel processing tasks corresponding to the multiple sub-objectives includes: generating multiple threads on one or more graphics processing units (GPUs) to solve the multiple sub-objectives in parallel.

[0016] In some embodiments, the one or more constraints include one or more risk constraints configured by a plurality of host computer devices.

[0017] In some embodiments, each of the plurality of sub-objectives includes a subset of the plurality of decision variables, and each of the plurality of mapping tasks determines a subset of the corresponding sub-objective.

[0018] According to other embodiments, a system for determining an optimal solution for large-scale resource allocation using various constraints is configured with instructions executable by one or more processors to cause the system to perform any of the methods of the foregoing embodiments.

[0019] According to other embodiments, a non-transient computer-readable storage medium is configured with instructions executable by one or more processors to cause the one or more processors to perform any of the methods of the foregoing embodiments.

[0020] The embodiments disclosed in this specification have one or more technical effects. Large-scale resource allocation using constraints can be formulated as an optimization problem with linear or nonlinear objective functions. Existing divide-and-conquer solutions can be used to solve optimization problems with linear objective functions, but cannot solve those with nonlinear objective functions. This is because nonlinearity makes it impossible to break down the optimization problem into smaller problems (e.g., nonlinear objective functions include cross-borrowing decision variables (the decision variable of one borrower is multiplied by the decision variable of another borrower), and therefore cannot be decomposed into smaller objective functions). In some embodiments, the method is applicable to large-scale resource allocation problems that can be formulated as either linear or nonlinear objective functions. For example, the objective function can be transformed by using a carefully designed matrix to eliminate all cross-borrowing decision variables, thereby making the remaining decision variables in the objective function separable. In some embodiments, after transforming the objective function, the objective function is divided into multiple mapping tasks using a parallel processing framework such as MapReduce, which solve the optimization problem in parallel, and then aggregated by task reduction to obtain the final values ​​of the decision variables. These decision variables can then be used to determine which borrower is allocated to which resource host for servicing (e.g., providing the requested resource). In some embodiments, the transformation of the objective function generates a new objective function that conforms to a format solvable by the Alternating Direction Method (ADMM) algorithm. Subsequently, the new objective function can be decomposed into multiple sub-objective functions, each processed by a different mapping task described above. ADMM is then implemented in the mapping tasks, iteratively solving each of the multiple mapping tasks through multiple loops. The iterative process ends when the decision variable values ​​for each mapping task converge. ADMM guarantees the convergence of the decision variables. In other words, by applying ADMM, near-optimal solutions for large-scale resource allocation using constraints can always be generated.

[0021] These and other features of the systems, methods, and non-transient computer-readable media disclosed herein, together with the methods of operation and functions of the related structural elements, as well as the economics of component assembly and manufacture, will become more apparent upon reading the following description and appended claims with reference to the accompanying drawings, all of which form part of this specification, wherein similar reference numerals identify corresponding components in different drawings. However, it should be understood that these drawings are for illustrative and descriptive purposes only and are not intended to define the scope of the invention. Attached Figure Description

[0022] Figure 1 Example systems for large-scale resource allocation using constraints are shown according to various embodiments.

[0023] Figure 2An example system diagram is shown for large-scale resource allocation based on ADMM utilization constraints according to various embodiments.

[0024] Figure 3 Examples of parallel processing workflows based on ADMM for large-scale resource allocation using constraints are shown according to various embodiments.

[0025] Figure 4 Example methods for large-scale resource allocation based on ADMM-based utilization constraints are shown according to various embodiments.

[0026] Figure 5 A structural diagram of an example computer system apparatus for large-scale resource allocation based on ADMM constraints according to various embodiments is shown.

[0027] Figure 6 An example computing device is shown that can be used to implement any of the embodiments described herein. Detailed Implementation

[0028] The techniques disclosed in this paper include determining optimal or near-optimal resource allocation plans for large-scale platforms. For example, e-commerce platforms, cloud service providers, or ride-sharing or carpooling platforms may need to handle resource allocation daily. The definition of "resources" may vary depending on the application. For instance, servers, computer clusters, or cloud services can provide computing or storage resources for client devices. In this case, resource allocation might involve allocating a certain number of processors, a certain amount of storage space, or a certain number of virtual machines to different client devices. Another example is that ride-hailing platforms may need to balance supply and demand in real time across different regions. In this case, resource allocation might involve making decisions on order dispatch and / or vehicle relocation. Furthermore, a platform providing loan services might host thousands of banks or financial institutions to serve millions of borrowers. In this case, resource allocation might involve assigning different borrowers to different banks or financial institutions for service.

[0029] In these resource allocation scenarios, resources are typically associated with both positive factors (also known as revenue levels) and negative factors (also known as risk levels or cost levels) of the respective resource providers. For example, if the resource is cloud storage space for digital data, providing such storage space (e.g., through a cloud storage system) may be associated with the resource provider's revenue level (e.g., the cost of paying the cloud storage provider to store such data) and risk level (e.g., the risks borne by the cloud storage provider and the associated costs of implementing security measures to prevent data breaches). Another example is that if the resource is a loan, providing the loan may be associated with the provider's revenue level (e.g., interest rate level) and risk level (default risk). Furthermore, different resource providers may have different resource constraints. For example, a cloud service provider may have a limited number of processors or storage devices (spindle drives or solid-state drives) and therefore can only provide specific types of computing or storage resources. Another example is that different loan providers may have different risk constraints. The techniques disclosed in this specification can provide a way to determine an optimal or near-optimal resource allocation plan to allocate resource requests among resource providers, thereby (1) maximizing the overall objective and (2) satisfying the various constraints of each resource provider. The definition of the overall objective may vary depending on the application, such as overall performance improvement, the total amount of resources allocated by the resource provider to the resource borrower, and positive feedback from the resource borrower.

[0030] For ease of description, a loan service platform is used as an example to describe the embodiments disclosed herein, where the resource to be allocated can refer to loans, and the supplier can refer to a provider. Each loan provided by the supplier may be associated with risk level and return level, etc. It will be apparent to those skilled in the art that the same concept can be applied to another suitable scenario requiring resource allocation.

[0031] Two commonly used metrics for measuring the risk-reward balance among suppliers are the Mean Absolute Percentage Error (MAPE) and the Probabilistic Stability Index (PSI). Assuming the risk distribution at the platform level (e.g., the global level) is determined by a function q(x), and the risk distribution of an individual supplier j is determined by a function p(x), where x is one of the predefined risk levels, and q and p are distribution functions that may be explicitly defined or implicit, the MAPE can be determined by the following equation:

[0032]

[0033] Where E() represents the expected value (or average value).

[0034] In this specification, it is assumed that one loan corresponds to one borrower, and that there is a one-to-one mapping between loans and borrowers. This assumption can be reasonably extended to the point that a borrower can take out multiple loans, and each loan can be associated with multiple borrowers. However, these extensions can be easily transformed so that the previous assumptions still apply. For example, when a borrower is associated with multiple loans, the borrower behind each loan can be considered an individual (although these individuals refer to the same person). Therefore, in this specification, migrating a "loan" can mean migrating the "borrower" of that loan.

[0035] Figure 1 An example system 100 for large-scale resource allocation using constraints is illustrated according to various embodiments. The components of system 100 are intended to be illustrative. Depending on the implementation, system 100 may include additional components, fewer components, or alternative components. It should be understood that, although Figure 1 Only one computing device is shown in the diagram, but system 100 may include any number of computing devices. Computing system 102 may be implemented in one or more networks (e.g., an enterprise network), one or more terminals, one or more servers (e.g., server 105), or one or more clouds. Server 105 may include hardware or software that manages access to centralized resources or services within the network. A cloud may include clusters of servers and other devices distributed across a network.

[0036] In some embodiments, example system 100 may include computing system 102, computing device 104, and server 105, and computing system 102 may communicate with borrower 120 and loan provider 110 through the respective computing device. Computing system 102 can be understood as a platform including an online service interface and an offline (e.g., backend) computing system. Computing device 104 may be associated with computing system 102 by providing computing capabilities. Server 105 may be associated with computing system 102 by providing storage and / or computing capabilities. In some embodiments, computing device 104 may be implemented on or as various devices such as mobile phones, tablets, servers, desktop computers, laptops, etc. Computing system 102 may communicate with computing device 104 and other computing devices. Communication between devices may be via the Internet, via a local area network (e.g., LAN), or via direct communication (e.g., Bluetooth). TM It can be carried out using radio frequency, infrared, etc.

[0037] In some embodiments, computing system 102 may include an acquisition component 112, a construction component 114, a conversion component 116, and a parallel processing component 118. Computing system 102 may include one or more processors (e.g., digital processors, analog processors, digital circuits designed for processing information, central processing units, graphics processing units, microcontrollers or microprocessors, analog circuits designed for processing information, state machines, and / or other mechanisms for electronically processing information) and one or more memories (e.g., permanent memory, temporary memory, non-transient computer-readable storage media). The one or more memories may be configured with instructions executable by the one or more processors. The processors may be configured to perform various operations by compiling machine-readable instructions stored in the memories. Computing system 102 may install appropriate software (e.g., platform programs, etc.) and / or hardware (e.g., wired, wireless connections, etc.) to access other components in system 100.

[0038] In some embodiments, the acquisition component 112 in the computing system 102 may be configured to acquire multiple resource requests from a debit side 120 of a requesting provider 110 (e.g., multiple host computer devices). The computing system 102 needs to determine a resource allocation plan to distribute the multiple resource requests to the provider 110. Each provider 110 may then provide resources in response to the allocated resource request.

[0039] In some embodiments, the construction component 114 in the computing system 102 may be configured to construct an objective and one or more constraints for allocating multiple resource requests to multiple host computer devices. The objective may include multiple 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 multiple decision variables. In the context of loan services, different objective functions exist depending on the implementation. Different objectives can be defined according to the platform's interests. For example, based on the above description of MAPE, provider 110 (e.g., bank j) may have one of the following objective functions to minimize:

[0040] Bank J's risk MAPE

[0041] in, Because ∑ i a i x ij ≈D j

[0042] Bank J's risk at level m, MAPE

[0043] Among them, D jm =Pm (D j +B j ), because ∑ i a i x ij ≈D j

[0044] Changes in the balance of bank j ∑ i a i x ij

[0045] The symbols are shown below:

[0046] a i Loan balance of debit i

[0047] x ij If debit i is allocated to bank j in [0, 1]

[0048] x i vector x i′j , where i′=i

[0049] x j vector x ij′ , where j′=j

[0050] r i Default risk of debit i

[0051] σ im The default risk level of debit i in the {0, 1} region is m.

[0052] B j Current balance of bank j

[0053] BR j Bank J's current risk-weighted debit balance

[0054] B jm Bank J currently has a balance at risk level m.

[0055] D j Changes in the target balance of bank J

[0056] Average default risk for all users

[0057] P m The proportion of all user balances at risk level m

[0058] The above objective function can be expressed as the following constrained objective function:

[0059]

[0060] The objective and constraints corresponding to "the risk MAPE of bank j at level m" can be formally expressed as equation (1):

[0061]

[0062]

[0063]

[0064]

[0065] Where m represents the index of the target metric, such as MAPE and / or PSI, and u includes Both W and V represent parameter matrices, and v j This indicates the maximum number of debits 120 that supplier j can serve simultaneously. The last constraint indicates that a debit 120 can only be assigned to one supplier 110.

[0066] In some cases, to represent the above mathematical objective in a computer system, the absolute value in the objective function may be transformed into the following constrained quadratic objective function:

[0067]

[0068] Where u includes and Let represent the parameter matrix. The quadratic objective function of "the risk MAPE of bank j at level m" can be expressed as the following constrained objective function, as shown in equation (2):

[0069]

[0070]

[0071]

[0072]

[0073] m is the index of the target measurement indicator.

[0074] n is the index of the inequality constraint.

[0075] k is the index of the equality constraint (2)

[0076] In some embodiments, the transformation component 116 may be configured to transform one or more inequalities (e.g., The process transforms the one or more constraints into one or more equations representing multiple decision variables, and then incorporates these equations into the objective function to obtain a new objective. Here, an "equality" refers to a relationship between two quantities, or more generally, between two mathematical expressions asserting that the two quantities have the same value or that the two expressions represent the same mathematical object, while an "inequality" refers to a unequal comparison between two numbers or other mathematical expressions. The purpose of the transformation is to make the objective function conform to a solvable format by the ADMM algorithm. Before the transformation, the absolute value operator and the square operator in the objective function may lead to cross-borrower terms, such as x... ij *x (i+1)j For example, suppose x j Given a two-dimensional vector [x1, x2], then [x1, x2]... 2 = [x1x1, x1x2, x2x1, x2x2], where the terms x1x2 and x2x1 are called cross-borrowing terms. In some embodiments, cross-borrowing terms in the objective function can be eliminated by converting inequality constraints into equality constraints and incorporating the equality constraints into the objective function.

[0077] In some embodiments, the parallel processing component 118 can be configured to divide the objective into multiple sub-objectives and generate multiple parallel processing tasks corresponding to the multiple sub-objectives to obtain values ​​for multiple decision variables. Since the transformation performed by the transformation component 116 eliminates cross-debit terms, the resulting objective function is separable and can be solved using various parallel processing frameworks. In some embodiments, the MapReduce framework can be used due to its simplicity and compatibility with the format of the objective function. For example, the transformed objective function can be divided into multiple sub-objective functions, each comprising a subset of decision variables. Each sub-objective function can be solved by creating a mapping task to determine the values ​​of the corresponding subset of decision variables. After all mapping tasks are completed, the values ​​generated by the mapping tasks can be aggregated by creating a reduction task.

[0078] In some embodiments, the value of the decision variable can indicate which request (or debit 120) should be assigned to which provider 110 for service or execution. Here, provider 110 can execute the request by providing the requested service. The computing system 102 can send direct instructions to provider 110 to provide the service based on the value of the decision variable.

[0079] Figure 2 This is an example system diagram for large-scale resource allocation based on ADMM constraints according to various embodiments. Figure 2The system 200 in the text is for illustrative purposes only and may include more, fewer, or alternative components depending on the implementation.

[0080] In some embodiments, system 200 is configured to leverage constraint 202 to solve a large-scale resource allocation problem. The formulation of the resource allocation problem may vary depending on the use case. Exemplary use cases include the allocation of computing and / or storage resources by a cloud service provider to a customer, the allocation of loan resources by a loan provider to a borrower through a loan service platform, supply and demand management in a ride-hailing platform, and warehouse management across different geographical regions in an e-commerce platform. Here, "large-scale" means that the problem involves a large number of decision variables (e.g., each decision variable represents a match between resource borrowers and resource providers), so that brute-force solutions (e.g., exhaustive search, even using the most advanced and powerful computers) cannot generate an optimal solution in a reasonable amount of time.

[0081] In some embodiments, large-scale resource allocation using constraint 202 can first be formulated as an optimization problem including an objective function and one or more constraints. In the context of loan servicing, an example objective function and constraints are described in Equation 1. The objective function may include an objective to maximize (e.g., total interest income) or minimize (e.g., total risk or MAPE), and the constraints may include various thresholds (e.g., the maximum number of borrowers that can be served, the maximum risk tolerance) and restrictions (e.g., a borrower can only be served by one provider).

[0082] In some embodiments, system 200 may include an objective function transformer 210 to transform an initially formed objective function according to constraints. The objective function transformer 210 may be implemented in various programming languages. The purpose of the transformation is to generate a new objective function and a new set of constraints that conform to a format solvable by the ADMM algorithm. In some embodiments, the transformation may include two steps: converting inequalities in the constraints into equality; and incorporating the equality into the objective function to obtain the new / transformed objective.

[0083] For example, the objective function and the corresponding constraints in equations (1) and (2) can be generalized to the following equation (3):

[0084] minf(x)

[0085] stAx=b

[0086] Cx≤d

[0087]

[0088] Where f(x) represents the objective function to be minimized (e.g., MAPE), A and C represent different parameter matrices, and x represents the decision variable matrix. iLet represent the i-th resource supplier, and b and d represent the quantized thresholds or limits. To apply ADMM to solve equation (3) above, in some embodiments, the first step of the transformation may include converting inequalities in the constraints into one or more equality equations. For example, a positive auxiliary variable may be added to the left-hand side (LHS) of the inequality. In some embodiments, the last constraint (e.g., 1) T x i =1) can be incorporated into the objective function, so that violating this constraint will indefinitely penalize the objective function. For example, the above equation (3) can be transformed into the following equation (4):

[0089] minf(x)+∑ i I i (1 T x i -1)+Π(ξ)

[0090] stAx=b

[0091] Cx+ξ=d (4)

[0092] Where ξ represents a positive auxiliary variable, Π represents a non-differentiable function, and I represents a parameter matrix. In this transformation, the inequality Cx≤d in equation (3) is transformed into the equation Cx+ξ=d in equation (4).

[0093] In some embodiments, in the second step of the objective function transformation, the equations derived from the inequalities in the constraints can be incorporated into the objective function to generate an augmented Lagrangian function, which may also be referred to as the new objective function or the output of the objective function transformer 210. In some embodiments, generating the augmented Lagrangian function may include adding positive definite matrices related to the decision variables to the objective function to eliminate cross-borrowing decision variables and one or more Lagrange multipliers. After eliminating cross-borrowing decision variables, the resulting augmented Lagrangian function may be separable and can be processed in parallel. Figure 3 Detailed examples are described in the text.

[0094] In some embodiments, the generated augmented Lagrangian function can be solved iteratively in parallel within an ADMM-based parallel processing system 220. System 220 can employ various parallel processing frameworks, such as Hadoop MapReduce, CUDA, Spark, MPI, etc. For example, the augmented Lagrangian function can be divided into multiple sub-objective functions. Each sub-objective function may include a subset of decision variables. Solving the augmented Lagrangian function may involve multiple iterations of parallel processing. Assuming that system 220 uses the MapReduce framework, multiple mapping tasks can be created during each iteration to solve the multiple sub-objective functions separately. That is, each mapping task will determine the values ​​of the corresponding subset of decision variables. Subsequently, reduction tasks can aggregate all the values ​​generated by the mapping tasks. Even if the decision variable values ​​obtained during an iteration are locally optimized (optimized for each sub-objective) rather than globally optimized, they can be used as the baseline for the next iteration. A detailed description of the mapping tasks follows.

[0095] Figure 3 Examples of parallel processing workflows based on ADMM for large-scale resource allocation using constraints are shown according to various embodiments. Figure 3 Workflow 300 in this document is for illustrative purposes only and may include more steps, fewer steps, or alternative steps depending on the implementation. The steps in workflow 300 may be executed in various orders or in parallel.

[0096] like Figure 2 As stated above, after the transformation, the objective function for large-scale resource allocation using constraints may be separable and solvable using parallel processing. For simplicity, Figure 3 This paper uses the MapReduce framework as an example to illustrate how to solve the objective function based on ADMM. Here, "solving" the objective function for large-scale resource allocation using constraints means iteratively seeking the convergence value of the decision variables in the objective function. In some embodiments, multiple iterations can be performed in parallel.

[0097] In some embodiments, each mapping task can implement an ADMM-based iteration. In each iteration, multiple mapping tasks and a reduction task can be created to solve the objective function in parallel, wherein each mapping task solves for a portion / subset of decision variables (e.g., the corresponding sub-objective), while the reduction task aggregates the output of the mapping tasks.

[0098] For example, the mapping task can begin at step 305, followed by: in step 310, updating the values ​​of a subset of multiple decision variables based on one or more Lagrange multipliers and auxiliary variables added during the transformation of the objective function (see reference). Figure 2(Description of the above); in step 320, auxiliary variables are updated based on the updated values ​​of a subset of multiple decision variables and one or more Lagrange multipliers; and in step 330, one or more Lagrange multipliers are updated based on the updated values ​​of a subset of multiple decision variables and the updated auxiliary variables. That is, the decision variables, auxiliary variables, and Lagrange multipliers in the sub-objective function are updated iteratively.

[0099] In some embodiments, in each iteration, the subset of decision variables can be updated in step 310 based on the following formula:

[0100]

[0101] st1 T x i =1 (5)

[0102] Where, x k x k+1 Let v and w represent the values ​​of the decision variable in the k-th and (k+1)-th iterations, respectively; v and w represent the Lagrange multipliers; ξ represents the auxiliary variable; ρ and τ represent the pre-configured hyperparameters; and P represents the positive semidefinite matrix. (See reference) Figure 2 Equations (3) and (4) are introduced. The inequality Cx≤d in equation (3) is transformed into the equality Cx+ξ=d in equation (4) (the first step of the transformation). Then, Cx+ξ=d is incorporated into the new objective in equation (5) (the second step of the transformation) as the difference of squares on both the left and right sides, for example,

[0103] In some embodiments, if f(x) in equation (5) is nonlinear, f() can be performed on x. k The first-order Taylor expansion is used to convert it into a linear function. In some embodiments, if f(x) in equation (5) is linear, it relates to x, x k The last term of P can be configured to effectively eliminate cross-debit terms in the other terms. As shown in the equation above, the value of the decision variable in the (k+1)th iteration is determined based on the Lagrange multipliers and auxiliary variables in the kth iteration.

[0104] In some embodiments, in each iteration, in step 320, the auxiliary variable may be updated based on the following formula:

[0105]

[0106] Where, x k+1 Let w represent the value of the decision variable at the (k+1)th iteration, and w kThis represents one of the Lagrange multipliers in the k-th iteration. As shown in the equation above, the value of the auxiliary variable in the (k+1)-th iteration is determined based on the values ​​of the Lagrange multipliers in the k-th iteration and the decision variable in the (k+1)-th iteration.

[0107] In some embodiments, in each iteration, in step 320, the Lagrange multipliers can be updated based on the following formula:

[0108] v k+1 =v k +Ax k+1 -b

[0109] w k+1 =w k +Cx k+1 +ξ k+1 -d

[0110] Where, x k+1 Let v represent the value of the decision variable in the (k+1)th iteration. k w k Let v represent the Lagrange multiplier in the k-th iteration. k+1 w k+1 Let represent the Lagrange multiplier in the (k+1)th iteration. As shown in the equation above, the value of the Lagrange multiplier in the (k+1)th iteration is determined based on the values ​​of the auxiliary variable and the decision variable in the (k+1)th iteration.

[0111] In some embodiments, in step 340, the values ​​of the decision variable, the Lagrange multipliers, and the auxiliary variable obtained in the (k+1)th iteration can be compared with the corresponding values ​​in the kth iteration to determine their convergence. If any of these values ​​(e.g., the decision variable, the Lagrange multipliers, and the auxiliary variable) has not converged, the mapping task loops back and continues iterating. If all values ​​have converged, the mapping task ends in step 345 (step 346 indicates the end of another mapping task). In this context, "convergence" is determined based on a difference threshold. If the difference between the values ​​from different iterations is less than the threshold, these values ​​are determined to have converged.

[0112] After all mapping tasks have been processed in parallel, such as in steps 345 and 346, a reduction task can be created in step 350 to obtain a candidate solution for large-scale resource allocation that leverages constraints. It is a "candidate" because the values ​​of the decision variables are locally optimized (from the perspective of sub-objectives) rather than globally optimized (from the perspective of the objective). To determine if the candidate is sufficiently optimal, the aggregated values ​​of the decision variables can be compared with these values ​​from the previous iteration in step 360. If these values ​​do not converge, a new round of MapReduce iterations is executed. If these values ​​converge, they are considered the optimal solution 362 for the large-scale resource allocation problem. In some embodiments, the optimal solution 362 may indicate a match between resource providers and resource borrowers or demanders to achieve optimal returns (e.g., minimum MAPE value).

[0113] Figure 4 An example method 400 for large-scale resource allocation based on ADMM-based constraints is illustrated according to various embodiments. Method 400 can be performed by a device, apparatus, or system. Figure 1 The method may be performed by one or more components, such as computing system 102 and computing device 104. Depending on the implementation, method 400 may include additional steps, fewer steps, or alternative steps, which may be performed in different orders or in parallel.

[0114] Box 410 includes obtaining multiple resource requests for resources hosted on multiple host computer devices via computer devices.

[0115] Box 420 includes an objective constructed by computer equipment for allocating multiple resource requests to multiple host computer devices, and one or more constraints, wherein the objective includes multiple decision variables, each decision variable indicating whether to allocate resource requests to host computer devices for servicing, and the one or more constraints include one or more inequalities of the multiple decision variables. In some embodiments, the one or more constraints include one or more risk constraints configured by the multiple host computer devices.

[0116] Box 430 includes converting one or more inequalities in the one or more constraints into one or more equations of the plurality of decision variables using a computer device. In some embodiments, converting the one or more inequalities into one or more equations of the plurality of decision variables includes: for each of the one or more inequalities, adding an auxiliary variable to the left-hand side of the inequality to form an equation, wherein the left-hand side of each inequality includes a matrix and the product of the plurality of decision variables. In some embodiments, each of the plurality of sub-objectives includes: one or more Lagrange multipliers, auxiliary variables, and a subset of the plurality of decision variables. Furthermore, each of the plurality of parallel processing tasks implements an iterative process, including: updating the values ​​of the subset of the plurality of decision variables based on the one or more Lagrange multipliers and the auxiliary variable; updating the auxiliary variable based on the updated values ​​of the subset of the plurality of decision variables and the one or more Lagrange multipliers; and updating the one or more Lagrange multipliers based on the updated values ​​of the subset of the plurality of decision variables and the updated auxiliary variable.

[0117] Box 440 includes incorporating the one or more equations into a target using a computer device to obtain a new target. In some embodiments, incorporating the one or more equations into a target to obtain a new target includes: for each of the one or more equations, adding a factor that includes the squared difference between the left-hand and right-hand sides of the equation to the target, wherein the left-hand side of each equation includes a matrix and a product of multiple decision variables, and the right-hand side of each equation includes a constant.

[0118] Box 450 includes dividing a new objective into multiple sub-objectives using a computer device. In some embodiments, each of the multiple sub-objectives includes a subset of multiple decision variables, and each of the multiple mapping tasks determines a subset of the corresponding sub-objective.

[0119] Box 460 includes generating multiple parallel processing tasks corresponding to multiple sub-objectives via a computer device to obtain values ​​for multiple decision variables. In some embodiments, each of the multiple parallel processing tasks includes an iteration based on the Alternating Direction Method of Multipliers (ADMM) to solve the corresponding sub-objective. In some embodiments, generating multiple parallel processing tasks corresponding to multiple sub-objectives to obtain values ​​for multiple decision variables includes generating an aggregation task via a computer device to aggregate the results of the multiple parallel processing tasks to obtain values ​​for multiple decision variables. In some embodiments, generating multiple parallel processing tasks corresponding to multiple sub-objectives includes generating multiple mapping tasks to solve multiple sub-objectives in parallel within a MapReduce programming framework. In some embodiments, each of the multiple mapping tasks includes a quadratic programming process. In some embodiments, generating multiple parallel processing tasks corresponding to multiple sub-objectives includes generating multiple threads on one or more graphics processing units (GPUs) to solve multiple sub-objectives in parallel.

[0120] Box 470 includes sending instructions to multiple host computer devices via computer devices based on the values ​​of multiple decision variables to execute multiple resource requests.

[0121] In some embodiments, before sending instructions to multiple host computer devices, method 400 may further include: determining, via computer devices, whether the values ​​of multiple decision variables have converged; and, in response to the convergence of the values ​​of the multiple decision variables, executing the sending of instructions.

[0122] Figure 5 A block diagram of an example computer system apparatus 500 for large-scale resource allocation based on ADMM-based utilization constraints is shown according to various embodiments. The components of the computer system 500 shown below are intended for illustration. Depending on the implementation, the computer system 500 may include additional components, fewer components, or alternative components.

[0123] Computer system 500 may be an implementation example of one or more components of computing system 102. Figures 1 to 4 The processes and methods illustrated can be implemented by computer system 500. Computer system 500 may include one or more processors and one or more non-transitory computer-readable storage media (e.g., one or more memories), said one or more non-transitory computer-readable storage media being coupled to said one or more processors and configured with instructions executable by said one or more processors to cause a system or device (e.g., a processor) to perform the methods described above (e.g., method 400). Computer system 500 may include various units / modules corresponding to the instructions (e.g., software instructions).

[0124] In some embodiments, the computer system 500 may be referred to as an apparatus for determining the optimal allocation of borrowing requests. This apparatus may include an acquisition module 510, a construction module 520, a transformation module 530, a merging module 540, a partitioning module 550, a parallel processing module 560, and a sending module 570. In some embodiments, the acquisition module 510 may be configured to acquire multiple resource requests for resources hosted by multiple host computer devices. The construction module 520 may be configured to construct a target and one or more constraints for allocating the multiple resource requests to the multiple host computer devices, wherein the target includes multiple decision variables, each decision variable indicating whether to allocate a resource request to a host computer device for service, and the one or more constraints include one or more inequalities of the multiple decision variables. The transformation module 530 may be configured to convert one or more inequalities in the one or more constraints into one or more equality of the decision variables. The merging module 540 may be configured to merge the one or more equality into the target to obtain a new target. The partitioning module 550 may be configured to divide the new target into multiple sub-targets. The parallel processing module 560 may be configured to generate multiple parallel processing tasks corresponding to the multiple sub-targets to obtain values ​​of the multiple decision variables. The sending module 570 can be configured to send instructions to multiple host computer devices based on the values ​​of multiple decision variables to execute multiple resource requests.

[0125] Figure 6 An example computing device is shown that can be used to implement any of the embodiments described herein. Computing device 600 can be used to implement... Figures 1 to 5 One or more components of the system and method shown. The computing device 600 may include a bus 602 or other communication mechanism for transmitting information, and one or more hardware processors 604 coupled to the bus 602 for processing information. The hardware processor 604 may be, for example, one or more general-purpose microprocessors.

[0126] The computing device 600 may also include main memory 606, such as 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 604. Main memory 606 may also be used to store temporary variables or other intermediate information during the execution of instructions by processor 604. When these instructions are stored in storage media accessible to processor 604, the computing device 600 can be presented as a dedicated machine tailored 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 discs or magnetic disks. Volatile media may include dynamic memory. Common forms of media may include, for example, RAM, DRAM, PROM and EPROM, FLASH-EPROM, NVRAM, any other chip or cassette memory, or the same network version.

[0127] The computing device 600 may implement the techniques described herein using custom hardwired logic, one or more ASICs or FPGAs, firmware, and / or program logic. These, combined with the computing device, can make the computing device 600 a dedicated machine or program it as such. According to one embodiment, the techniques herein are executed by the computing device 600 in response to a processor 604, executing one or more sequences of one or more instructions stored in main memory 606. These instructions may be read into main memory 606 from another storage medium, such as storage device 609. Executing the sequence of instructions contained in main memory 606 causes the processor 604 to perform the processing 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 the processor 604, they may perform the steps as illustrated in the corresponding figures and described above. In alternative embodiments, hardwired circuitry may be used in place of or in combination with software instructions.

[0128] The computing device 600 also includes a communication interface 610 connected to the bus 602. The communication interface 610 provides bidirectional data communication via one or more network links to one or more networks. As another example, the communication interface 610 may be a local area network (LAN) card, used to provide data communication connectivity to a compatible LAN (or WAN component communicating with a WAN). Wireless links can also be implemented.

[0129] The execution of certain operations may be distributed across different processors, not just residing on a single machine, but deployed across multiple machines. In some embodiments, the processor or processor-implemented engine may reside in a single geographic location (e.g., in a home environment, an office environment, or a server cluster). In other example embodiments, the processor or processor-implemented engine may be distributed across multiple geographic locations.

[0130] Each process, method, and algorithm described in the preceding sections can be implemented in a code module executed by one or more computer systems or computer processors containing computer hardware, and can be fully or partially automated. The processes and algorithms can be implemented partially or completely in dedicated circuitry.

[0131] When the functions disclosed herein are implemented as software functional units and sold or used as independent products, they may be stored in a processor-executable, non-volatile, computer-readable storage medium. Specific technical solutions (all or part) disclosed herein, or contributions to the prior art, may be embodied in the form of a software product. The software product may be stored in a storage medium and includes instructions to cause a computing device (which may be a personal computer, server, network device, etc.) to perform all or part of the steps of the methods described in the embodiments of this application. The storage medium may include a flash drive, portable hard disk, ROM, RAM, magnetic disk, optical disk, another medium capable of storing program code, or any combination thereof.

[0132] Specific embodiments also provide a system including 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 of the methods disclosed above. Specific embodiments also provide a non-transitory computer-readable storage medium configured with instructions executable by one or more processors to cause one or more processors to perform operations corresponding to steps in any of the methods disclosed above.

[0133] The embodiments disclosed herein can be implemented through a cloud platform, server, or group of servers (collectively, the “service system”) that interacts with a client. The client can be a terminal device or a client registered by a user on the platform, wherein the terminal device can be a mobile terminal, a personal computer (PC), or any device capable of installing platform applications.

[0134] The various features and methods described above can be used independently of each other or combined in various ways. All possible combinations and sub-combinations are within the scope of this disclosure. Furthermore, in some implementations, certain method or process blocks may be omitted. The methods and processes described herein are not limited to any particular sequence, and the blocks or states associated with them can be executed in other suitable orders. For example, the described blocks or states can be executed in an order different from that specifically disclosed, or multiple blocks or states can be combined in a single block or state. Example blocks or states can be executed serially, in parallel, or in some other manner. Blocks or states can be added to or removed from the disclosed example embodiments. The exemplary systems and components described herein may differ from the described configuration. For example, elements may be added, removed, or rearranged compared to the disclosed embodiments.

[0135] In this specification, multiple instances can implement components, operations, or structures described as single instances. Although individual operations of one or more methods are illustrated and described as separate operations, one or more individual operations can be executed simultaneously, and there is no requirement to execute operations in the illustrated order. Structures and functionalities presented as separate components in the example configurations can be implemented as composite structures or components. Similarly, structures and functionalities presented as single components can be implemented as independent components. These and other changes, modifications, additions, and improvements are within the scope of this document's subject matter.

[0136] Unless otherwise expressly stated or understood in the context, the word "or" as used herein is inclusive, not exclusive. Therefore, in this document, "A, B, or C" means "A, B, A and B, A and C, B and C, or A, B, and C" unless otherwise expressly stated or understood in the context. The terms "comprising" or "including" are used to indicate the presence of a subsequently stated feature, but do not exclude the addition of other features. Conditional language, such as "can," "could," "might," or "may," is generally intended to convey that certain embodiments include certain features, elements, and / or steps that are not included in other embodiments, unless otherwise expressly stated or understood in the context in which it is used. Therefore, such conditional language is generally not intended to imply that features, elements, and / or steps are required in any way by one or more embodiments, or that one or more embodiments must include logic for determining whether such features, elements, and / or steps are included in any particular embodiment or will be performed in any particular embodiment, with or without user input or prompting.

[0137] Although the subject matter has been outlined with reference to specific example embodiments, various modifications and alterations may be made to these embodiments without departing from the broader scope of this disclosure. These embodiments of the subject matter may be referred to herein individually or collectively as “inventions”, and are intended for convenience only and are voluntarily limited to any single disclosure or concept, if there are indeed multiple disclosures.

[0138] The embodiments described herein have been described in sufficient detail to enable those skilled in the art to practice what has been disclosed. Other embodiments and derivative embodiments may be used, allowing for structural and logical substitutions and changes without departing from the scope of the invention. Therefore, the detailed description should not be considered limiting, and the scope of the various embodiments is defined only by the appended claims and their equivalents within the full scope of the claims.

Claims

1. A computer-implemented method, comprising: Obtain multiple resource requests for resources hosted by multiple host computer devices through computer devices; The computer device constructs a target and one or more constraints to allocate the plurality of resource requests to the plurality of host computer devices, wherein the target includes a plurality of decision variables, each of the decision variables indicating whether to allocate the resource request to a host computer device for service, and the one or more constraints include one or more inequalities of the plurality of decision variables; The computer device is used to convert one or more inequalities in one or more constraints into one or more equations for the plurality of decision variables; The computer device is used to combine one or more equations into the target to obtain a new target, such that cross debit terms in the target are eliminated. The new target is divided into multiple sub-targets using the computer device; The computer device generates multiple parallel processing tasks corresponding to the multiple sub-objectives to obtain the values ​​of the multiple decision variables; and The computer device sends instructions to the multiple host computer devices based on the values ​​of the multiple decision variables to execute the multiple resource requests.

2. The method according to claim 1, wherein, Each of the multiple parallel processing tasks includes an iteration of the alternating direction method (ADMM) based on multipliers to solve the corresponding sub-objective.

3. The method according to claim 1, wherein, The generation of multiple parallel processing tasks corresponding to the multiple sub-objectives to obtain the values ​​of the multiple decision variables includes: The computer device generates an aggregation task to aggregate the results of the multiple parallel processing tasks, thereby obtaining the values ​​of the multiple decision variables.

4. The method according to claim 1, wherein, Sending the instructions to the plurality of host computer devices further includes: The computer device is used to determine whether the values ​​of the plurality of decision variables converge; and In response to the convergence of the values ​​of the plurality of decision variables, the instruction is sent.

5. The method according to claim 1, wherein, Transforming the one or more inequalities into one or more equations for the plurality of decision variables includes: For one or more of the inequalities, an auxiliary variable is added to the left-hand side of the inequality to make it an equality, wherein the left-hand side of the inequality includes the product of a matrix and the plurality of decision variables.

6. The method according to claim 5, wherein, Each of the plurality of sub-objectives includes: one or more multipliers, the auxiliary variables, and a subset of the plurality of decision variables, and Each of the multiple parallel processing tasks implements an iterative process, including: Update the values ​​of the subset of the plurality of decision variables based on the one or more multipliers and the auxiliary variables; The auxiliary variable is updated based on the updated values ​​of the subset of the plurality of decision variables and the one or more multipliers; and The one or more multipliers are updated based on the updated values ​​of the subset of the plurality of decision variables and the updated auxiliary variables.

7. The method according to claim 1, wherein, Incorporating one or more of the equations into the objective to obtain a new objective includes: For each of the one or more equations, a factor comprising the squared difference between the left-hand and right-hand sides of the equation is added to the objective, wherein the left-hand side of each equation comprises the product of a matrix and the plurality of decision variables, and the right-hand side of each equation comprises a constant.

8. The method according to claim 1, wherein, The generation of multiple parallel processing tasks corresponding to the multiple sub-targets includes: Within the MapReduce programming framework, multiple mapping tasks are generated to solve the multiple sub-goals in parallel.

9. The method according to claim 8, wherein, Each of the multiple mapping tasks includes a quadratic programming process.

10. The method according to claim 1, wherein, Generate multiple parallel processing tasks corresponding to the multiple sub-objectives, including: Multiple threads are created on one or more graphics processing units (GPUs) to solve the multiple sub-objectives in parallel.

11. The method according to claim 1, wherein, The one or more constraints include one or more risk constraints configured by the plurality of host computer devices.

12. The method according to claim 1, wherein, Each of the plurality of sub-objectives includes a subset of the plurality of decision variables, and Each of the plurality of mapping tasks determines the subset of the corresponding sub-target.

13. A resource allocation system comprising one or more processors and one or more non-transient computer-readable storage media coupled to the one or more processors and configured with instructions, the instructions being executable by the one or more processors to cause the system to perform operations, the operations including: Retrieve multiple resource requests for resources hosted on multiple host computer devices; Construct a goal and one or more constraints for allocating the plurality of resource requests to the plurality of host computer devices, wherein the goal includes a plurality of decision variables, each decision variable indicating whether to allocate a resource request to a host computer device for service, and the one or more constraints include one or more inequalities of the plurality of decision variables; Transform one or more inequalities in one or more constraints into one or more equality equations for the plurality of decision variables; The one or more equations are combined into the target to obtain a new target, such that the cross debit terms in the target are eliminated; The new objective is divided into multiple sub-objectives; Generate multiple parallel processing tasks corresponding to the multiple sub-objectives to obtain the values ​​of the multiple decision variables; and Instructions are sent to the multiple host computer devices based on the values ​​of the multiple decision variables to execute the multiple resource requests.

14. The system according to claim 13, wherein, Transforming one or more inequalities into one or more equations for the plurality of decision variables includes: For one or more of the inequalities, an auxiliary variable is added to the left-hand side of the inequality to make it an equality, wherein the left-hand side of the inequality includes the product of a matrix and the plurality of decision variables.

15. The system according to claim 14, wherein, Each of the plurality of sub-objectives includes: one or more multipliers, the auxiliary variables, and a subset of the plurality of decision variables, and Each of the multiple parallel processing tasks implements an iterative process, including: Update the values ​​of the subset of the plurality of decision variables based on the one or more multipliers and the auxiliary variables; The auxiliary variable is updated based on the updated values ​​of the subset of the plurality of decision variables and the one or more multipliers; and The one or more multipliers are updated based on the updated values ​​of the subsets of the plurality of decision variables and the updated auxiliary variables.

16. A non-transient computer-readable storage medium configured with instructions executable by one or more processors to cause the one or more processors to perform operations, said operations including: Retrieve multiple resource requests for resources hosted on multiple host computer devices; Construct a goal and one or more constraints for allocating the plurality of resource requests to the plurality of host computer devices, wherein the goal includes a plurality of decision variables, each decision variable indicating whether to allocate a resource request to a host computer device for service, and the one or more constraints include one or more inequalities of the plurality of decision variables; Transform one or more inequalities in one or more constraints into one or more equality equations for the plurality of decision variables; The one or more equations are combined into the target to obtain a new target, such that the cross debit terms in the target are eliminated; The new objective is divided into multiple sub-objectives; Generate multiple parallel processing tasks corresponding to the multiple sub-objectives to obtain the values ​​of the multiple decision variables; and Instructions are sent to the multiple host computer devices based on the values ​​of the multiple decision variables to execute the multiple resource requests.

17. The storage medium according to claim 16, wherein, Transforming the one or more inequalities into one or more equations for the plurality of decision variables includes: For one or more of the inequalities, an auxiliary variable is added to the left-hand side of the inequality to make it an equality, wherein the left-hand side of the inequality includes the product of a matrix and the plurality of decision variables.

18. The storage medium according to claim 17, wherein, Each of the plurality of sub-objectives includes: one or more multipliers, the auxiliary variables, and a subset of the plurality of decision variables, and Each of the multiple parallel processing tasks implements an iterative process, including: Update the values ​​of the subset of the plurality of decision variables based on the one or more multipliers and the auxiliary variables; The auxiliary variable is updated based on the updated values ​​of the subset of the plurality of decision variables and the one or more multipliers; and The one or more multipliers are updated based on the updated values ​​of the subsets of the plurality of decision variables and the updated auxiliary variables.

19. The storage medium according to claim 16, wherein, Generate multiple parallel processing tasks corresponding to the multiple sub-objectives to obtain the values ​​of the multiple decision variables, including: An aggregation task is generated using computer equipment to aggregate the results of the multiple parallel processing tasks in order to obtain the values ​​of the multiple decision variables.

20. The storage medium according to claim 16, wherein, Incorporating one or more of the equations into the objective to obtain a new objective includes: For each of the one or more equations, a factor comprising the squared difference between the left-hand and right-hand sides of the equation is added to the objective, wherein the left-hand side of each equation comprises the product of a matrix and the plurality of decision variables, and the right-hand side of each equation comprises a constant.

Citation Information

Patent Citations

  • Method and system for optimizing allocation of borrowing requests

    CN111742335A