A method, device, equipment and storage medium for determining object combination

By traversing the evaluation values ​​of the processing objects, using the update mechanism of the two sets, we find the combination of objects that meet the target values, which solves the problem of high computational complexity of subset summation problems in the existing technology, and improves the efficiency of combination determination.

CN119759965APending Publication Date: 2025-04-04WEBANK (CHINA)
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411831190.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-12
Publication Date
2025-04-04

AI Technical Summary

Technical Problem

When the prior art deals with the problem of summing subsets of massive data, the calculation complexity of the brute-force enumeration algorithm is high, resulting in large time and space overhead.

Method used

By obtaining the evaluation values ​​and target values ​​of multiple objects, first determine the sub-target values, create two sets, traverse the evaluation values, calculate the combination results, and filter the candidate values ​​based on the first set, and update the second set until the object combination that matches the target value is found.

Benefits of technology

Improves the determination efficiency of object combinations, avoids invalid calculations, and can find combinations that meet the target values ​​without processing all evaluation values, significantly reducing time and space complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119759965A_ABST
    Figure CN119759965A_ABST
Patent Text Reader

Abstract

The present application provides a method, apparatus, device and storage medium for determining an object combination, the method comprising: obtaining evaluation values ​​and target values ​​respectively corresponding to a plurality of objects; determining at least one sub-target value within a range from a preset value to a target value, determining a first set according to the at least one sub-target value and the target value, and creating an empty set as a second set; for any evaluation value respectively corresponding to the plurality of objects, according to a calculation relationship between the evaluation value and the target value, calculating at least one combination result of the evaluation value and any element in the second set, determining the combination result that meets the first set as a candidate value, deleting the candidate value in the first set and adding the candidate value in the second set; wherein each element in the second set has an index pointing to at least one object constituting the element; determining a target object combination that meets the target value according to the index corresponding to each element in the second set.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and in particular to a method, apparatus, device and storage medium for determining an object combination. Background Art

[0002] The subset sum problem is a classic problem in the field of combinatorial mathematics and algorithm design. It requires finding a subset in a given set of values, and the sum of the elements in the subset is equal to the preset target value. For example, assuming the target value is C, the given set of values ​​includes n positive integers, and the sum of these n positive integers is greater than C. The so-called subset sum problem refers to determining a subset among these n positive integers, and the sum of the positive integers in the subset is equal to C.

[0003] The subset sum problem is widely used in real life. For example, in the field of finance and accounting, suppose a company provides employees with a monthly transportation subsidy of 500 yuan. Employees need to select a part of the collected invoices so that the total amount of these invoices is equal to 500 yuan or as close to 500 yuan as possible but not more than 500 yuan; in inventory management, suppose there are multiple commodities in a warehouse and the purchase budget is limited, then it is necessary to select some commodities in the warehouse so that the total value of these commodities is equal to the purchase budget or as close to the purchase budget as possible but not more than the purchase budget. These commodities can also be regarded as the object combination that meets the purchase budget. It can be seen that the object combination problem can also be regarded as the subset sum problem, and the solution of the subset sum problem is also applicable to the solution of the object combination problem.

[0004] The traditional solution to the subset sum problem is the brute force enumeration algorithm, which is to exhaustively enumerate all the possible subsets corresponding to each element in a given numerical set, and then calculate whether the sum of the elements in each subset of all subsets is equal to the preset target value. However, when the elements in the given numerical set are very large, that is, when dealing with massive data, the computational complexity of the brute force enumeration algorithm is high, and the use of the brute force enumeration algorithm to deal with the subset sum problem has a high time and space overhead. Summary of the invention

[0005] The present application provides a method, apparatus, device and storage medium for determining an object combination, so as to improve the efficiency of determining the object combination.

[0006] In a first aspect, the present application provides a method for determining an object combination, the method comprising:

[0007] Get the evaluation values ​​and target values ​​corresponding to multiple objects respectively;

[0008] Determine at least one sub-target value within the interval from a preset value to the target value, determine a first set according to the at least one sub-target value and the target value, and create an empty set as a second set;

[0009] Traversing and processing the evaluation values ​​respectively corresponding to the multiple objects: for any evaluation value among the evaluation values ​​respectively corresponding to the multiple objects, according to the calculation relationship between the evaluation value and the target value, calculating at least one combination result of the evaluation value and any element in the second set, determining the combination result that meets the first set as a candidate value, deleting the candidate value in the first set and adding the candidate value in the second set; wherein each element in the second set has an index pointing to at least one object constituting the element;

[0010] A target object combination that meets the target value is determined according to the index corresponding to each element in the second set.

[0011] After obtaining the evaluation values ​​and target values ​​corresponding to multiple objects respectively, the present application does not determine all possible object combinations through a brute force enumeration algorithm, and then judge in turn whether the evaluation value in each possible object combination meets the target value requirement, but first creates a first set and a second set, wherein the first set includes multiple sub-target values ​​in the range from a preset value to a target value, and the second set is initially an empty set, and then traverses and processes the evaluation value corresponding to each object, calculates the evaluation value and any element in the second set according to the calculation relationship between the evaluation value and the target value to obtain multiple combination results, and combines the first set to calculate the multiple combinations. The combined results are screened to obtain candidate values, and then the candidate values ​​are deleted from the first set and added to the second set. One point that needs to be explained is that each element in the second set has an index pointing to at least one object that constitutes the element. That is to say, when traversing and processing the evaluation values ​​of each object, when an element that meets the target value appears in the second set, for example, equal to the target value or the difference with the target value is within a preset range, the object pointed to by the index of the element can be used to know which objects constitute the element, and use it as the target object combination. That is to say, the present application determines the target object combination that meets the target value based on the index corresponding to each element in the second set. Using the method for determining object combinations proposed in the present application, it may not be necessary to complete the processing of the evaluation values ​​of multiple objects, and an element that meets the target value will appear in the second set. At this time, the traversal can be stopped, and the target object combination is determined according to the index of the element that meets the target value, thereby improving the efficiency of determining the target object combination.

[0012] In a possible design, determining a target object combination that meets the target value according to an index corresponding to each element value in the second set includes:

[0013] Determine the object pointed to by the index corresponding to the first element in the second set as the target object combination, and the value of the first element is equal to the target value; or determine the objects pointed to by the indexes corresponding to multiple element values ​​in the second set as the target object combination, wherein the sum of the values ​​of the multiple elements obtained according to the calculation relationship is equal to the target value.

[0014] When there is a single element in the second set whose value is equal to the target value, the object pointed to by the index corresponding to the element can be directly used as the target object combination; when there are multiple elements in the second set whose values ​​are equal to the target value, the objects pointed to by the indexes of the multiple elements can be combined as the target object combination. Based on the elements in the second set, it is possible to intuitively and quickly determine whether there is an element that meets the target value, and then the target combination object can be determined based on the object pointed to by the index that meets the target value, thereby improving the efficiency of determining the target combination object.

[0015] In a possible design, determining at least one sub-target value within a range from a preset value to the target value includes:

[0016] Determine unit values ​​of evaluation values ​​respectively corresponding to the plurality of objects;

[0017] According to the unit value, at least one sub-target value that increases in sequence within the interval from the preset value to the target value is determined.

[0018] In a possible design, the traversing and processing the evaluation values ​​respectively corresponding to the multiple objects includes:

[0019] Sorting the evaluation values ​​corresponding to the multiple objects in ascending order;

[0020] Binning the evaluation values ​​after ascending sorting to obtain first binned data and second binned data, and traversing and processing the evaluation values ​​in the first binned data and the evaluation values ​​in the second binned data in parallel;

[0021] If the currently processed binned data meets the preset conditions, the currently processed binned data will be binned again.

[0022] In order to improve the processing efficiency of evaluation values ​​of multiple objects, the evaluation values ​​can be binned and then the binned data can be traversed and processed in parallel, without waiting for the evaluation values ​​in the first binned data to be processed before processing the second binned data, thereby shortening the processing time of the evaluation values.

[0023] In a possible design, the method further includes: recording candidate values ​​for the first binned data and the second binned data respectively;

[0024] The preset condition means that the computational efficiency of the currently traversed binned data is less than a preset computational efficiency threshold, wherein the computational efficiency is determined based on the number of candidate values ​​corresponding to the currently traversed binned data and the original number of elements in the first set.

[0025] In a possible design, the parallel traversal processing of the evaluation values ​​in the first binned data and the evaluation values ​​in the second binned data includes:

[0026] If the number of traversed and processed evaluation values ​​in the currently traversed bin data is less than or equal to the number of untraversed and processed evaluation values, the dynamic programming DP algorithm is used to process the currently traversed bin data;

[0027] If the number of traversed and processed evaluation values ​​in the currently traversed bin data is greater than the number of untraversed and processed evaluation values, the subtraction dynamic programming SDP algorithm is used to process the currently traversed bin data.

[0028] When the number of evaluated values ​​that have been traversed and processed in the binned data is less than or equal to the number of evaluated values ​​that have not been traversed and processed, the DP algorithm is more efficient. Otherwise, the SDP algorithm is more efficient. In other words, which algorithm to use to process the evaluated values ​​in the binned data is determined after fully considering the characteristics of the DP algorithm and the SDP algorithm themselves, thereby improving the processing efficiency of the evaluated values ​​in the binned data.

[0029] In a possible design, calculating at least one combination result of the evaluation value and any element value in the second set according to the calculation relationship between the evaluation value and the target value includes:

[0030] Taking the evaluation value as the first combination result;

[0031] Perform an addition or subtraction operation on the evaluation value and the value of any element in the second set to obtain a calculation result, and use the calculation result as the second combination result.

[0032] In a possible design, determining the combination result that meets the first set as a candidate value includes:

[0033] Discarding a combination result greater than the target value among the at least one combination result;

[0034] Among the at least one combination result, the combination result that is not greater than the target value and equal to any sub-target value is retained as the at least one candidate value.

[0035] Here, the combination results greater than the target value are discarded to ensure that no elements greater than the target value appear in the second set, which can avoid interference in the subsequent determination of the target object combination that meets the target value based on the elements in the second set.

[0036] In a possible design, deleting the candidate value in the first set and adding the candidate value in the second set includes:

[0037] If the candidate value is equal to the value of any element in the first set, the element in the first set that is equal to the candidate value is deleted;

[0038] If there is no element in the second set that is equal to the candidate value, adding the candidate value to the second set;

[0039] If there is an element in the second set that is equal to the candidate value, the index corresponding to the element in the second set that is equal to the candidate value is increased.

[0040] When there are already elements with the same candidate value in the second set, there is no need to repeatedly add the candidate value to the second set, resulting in multiple identical elements in the second set. It is only necessary to increase the index corresponding to the element with the same candidate value.

[0041] In a second aspect, the present application further provides a device for determining an object combination, the device comprising: a processing unit and a transceiver unit;

[0042] The transceiver unit is used to obtain evaluation values ​​and target values ​​corresponding to multiple objects respectively;

[0043] The processing unit is used to determine at least one sub-target value within the interval from a preset value to the target value, determine a first set according to the at least one sub-target value and the target value, and create an empty set as a second set;

[0044] The processing unit is also used to traverse and process the evaluation values ​​corresponding to the multiple objects respectively: for any one of the evaluation values ​​corresponding to the multiple objects respectively, according to the calculation relationship between the evaluation value and the target value, calculate at least one combination result of the evaluation value and any one element in the second set, determine the combination result that meets the first set as a candidate value, delete the candidate value in the first set and add the candidate value to the second set; wherein each element in the second set has an index pointing to at least one object constituting the element; and determine the target object combination that meets the target value according to the index corresponding to each element in the second set.

[0045] In one possible design, the processing unit is used to determine a target object combination that meets the target value based on the indexes corresponding to the element values ​​in the second set, and is specifically used to: determine the object pointed to by the index corresponding to the first element in the second set as the target object combination, and the value of the first element is equal to the target value; or determine the objects pointed to by the indexes corresponding to multiple element values ​​in the second set as the target object combination, wherein the sum of the values ​​of the multiple elements obtained according to the calculation relationship is equal to the target value.

[0046] In one possible design, the processing unit, when used to determine at least one sub-target value within the interval range from a preset value to the target value, is specifically used to: determine the unit values ​​of the evaluation values ​​corresponding to the multiple objects respectively; and determine, according to the unit value, at least one sub-target value that increases sequentially within the interval range from the preset value to the target value.

[0047] In one possible design, the processing unit, when used to traverse and process the evaluation values ​​corresponding to the multiple objects, is specifically used to: sort the evaluation values ​​corresponding to the multiple objects in ascending order; bin each evaluation value after the ascending order to obtain first bin data and second bin data, and traverse and process the evaluation values ​​in the first bin data and the evaluation values ​​in the second bin data in parallel; if the bin data currently traversed and processed meets the preset conditions, bin the bin data currently traversed and processed again.

[0048] In a possible design, the processing unit is also used to record candidate values ​​for the first binned data and the second binned data respectively; the preset condition refers to: the computational efficiency of the binned data currently traversed and processed is less than a preset computational efficiency threshold, wherein the computational efficiency is determined based on the number of candidate values ​​corresponding to the binned data currently traversed and processed and the original number of elements in the first set.

[0049] In one possible design, the processing unit is used to traverse and process the evaluation values ​​in the first bin data and the evaluation values ​​in the second bin data in parallel, and is specifically used to: if the number of evaluation values ​​that have been traversed and processed in the currently traversed bin data is less than or equal to the number of evaluation values ​​that have not been traversed and processed, use the DP algorithm to process the currently traversed bin data; if the number of evaluation values ​​that have been traversed and processed in the currently traversed bin data is greater than the number of evaluation values ​​that have not been traversed and processed, use the SDP algorithm to process the currently traversed bin data.

[0050] In one possible design, the processing unit is used to calculate at least one combination result of the evaluation value and the value of any element in the second set according to the calculation relationship between the evaluation value and the target value, and is specifically used to: take the evaluation value as the first combination result; perform addition or subtraction operations on the evaluation value and the value of any element in the second set to obtain a calculation result, and take the calculation result as the second combination result.

[0051] In one possible design, the processing unit is used to: when determining a combination result that meets the first set as a candidate value, discard the combination result among the at least one combination result that is greater than the target value; and retain the combination result among the at least one combination result that is not greater than the target value and equal to any sub-target value as the at least one candidate value.

[0052] In one possible design, the processing unit is used to delete the candidate value in the first set and add the candidate value in the second set, specifically to: if the candidate value is equal to the value of any element in the first set, delete the element in the first set that is equal to the candidate value; if there is no element in the second set that is equal to the candidate value, add the candidate value to the second set; if there is an element in the second set that is equal to the candidate value, increase the index corresponding to the element in the second set that is equal to the candidate value.

[0053] In a third aspect, the present application further provides a device for determining a combination of objects, the device comprising: a processor, and a memory communicatively connected to the processor;

[0054] The memory stores computer-executable instructions;

[0055] The processor executes the computer-executable instructions stored in the memory to implement the method described in the first aspect above.

[0056] In a fourth aspect, the present application further provides a computer-readable storage medium, wherein the computer-readable storage medium includes a program, and when the program is executed on a device, the device executes the method as described in any one of the above-mentioned first aspects.

[0057] In a fifth aspect, the present application further provides a computer program product, wherein the computer program product comprises a computer program, and when the computer program is executed by a processor, the method described in the first aspect is implemented. BRIEF DESCRIPTION OF THE DRAWINGS

[0058] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0059] Figure 1 A schematic diagram of a method for determining an object combination provided in an embodiment of the present application;

[0060] Figure 2 A schematic diagram of a DP algorithm application scenario provided in an embodiment of the present application;

[0061] Figure 3 Schematic diagram of the structure of the device for determining the object combination provided in the embodiment of the present application Figure 1 ;

[0062] Figure 4 Schematic diagram of the structure of the device for determining the object combination provided in the embodiment of the present application Figure 2 . DETAILED DESCRIPTION

[0063] In order to make the purpose, technical solutions and advantages of the present application clearer, the present application will be further described in detail below in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of the present application.

[0064] The application scenarios described in the embodiments of the present application are intended to more clearly illustrate the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided by the embodiments of the present application. It is known to those skilled in the art that with the emergence of new application scenarios, the technical solutions provided by the embodiments of the present application are also applicable to similar technical problems. In the description of the present application, unless otherwise specified, the meaning of "multiple" is two or more.

[0065] In addition to using brute force enumeration algorithms to determine object combinations, backtracking algorithms can also be used. Backtracking algorithms are a search and attempt process similar to enumeration, which mainly seeks solutions to problems during the search and attempt process. When a certain step is explored and it is found that the original choice is not optimal or cannot achieve the goal, it will go back one step and reselect and try another path. This technique of going back and forth if it does not work is called "backtracking". However, similar to the brute force enumeration algorithm, when the amount of data to be processed is large, the complexity of the backtracking algorithm is also high, and the efficiency of determining object combinations is low.

[0066] In order to improve the efficiency of determining object combinations, this application proposes the following Figure 1 The method for determining the combination of objects shown in the figure can be executed by a server, a chip in the server, or a functional module in the server, and this application does not limit this. The following takes the execution subject as an example to explain the method for determining the combination of objects proposed in this application, and the method specifically includes:

[0067] Step 101: Obtain evaluation values ​​and target values ​​corresponding to a plurality of objects.

[0068] Exemplarily, an object can be understood as a specific thing that exists in real life, such as a book, a basketball, a development project, an activity, etc. The evaluation value corresponding to the object can also be called the attribute value of the object. The attribute value refers to the specific data or parameters of the attribute. For example, taking a book as an example, the attributes of a book include weight, size, price, etc. Then for the weight attribute, the attribute value corresponding to the attribute can be 500g, 680g, etc.; for the price attribute, the attribute value corresponding to the attribute can be 25 yuan, 40 yuan, etc.; taking an activity as an example, the attributes of an activity include activity scale, activity cost, etc. The attribute values ​​corresponding to the activity scale attribute include 10 people, 15 people, etc., and the attribute values ​​corresponding to the activity cost attribute include 500 yuan, 800 yuan, etc.

[0069] Exemplarily, the target value can be understood as an expected value, budget, etc. For example, when purchasing books, the total price of the purchased books is expected to not exceed 200 yuan, and 200 yuan here is the target value; when event planners organize events, the event budget is 1,000 yuan, and 1,000 yuan here can also be understood as the target value.

[0070] The following is an explanation of the method proposed in this application by taking activities as objects, activity costs as the evaluation values ​​corresponding to the objects, and activity budgets as target values. It is assumed that a total of 9 activity costs corresponding to activities are obtained, which are 100 yuan, 800 yuan, 200 yuan, 300 yuan, 500 yuan, 600 yuan, 400 yuan, 700 yuan, and 200 yuan, respectively, and the activity budget is 1000 yuan. In order to reduce the difficulty of subsequent calculation of each evaluation value and improve the processing speed of the evaluation value, the evaluation value can be preprocessed first, and the greatest common factor between each evaluation value and the target value is determined. Each evaluation value and target value are divided by the greatest common factor, and the division result is used as the preprocessed evaluation value and target value. For example, the greatest common factor of the above 9 activity costs and activity budgets is 100. After dividing each activity cost and activity budget by 100, the preprocessed activity costs obtained are: 1 yuan, 8 yuan, 2 yuan, 3 yuan, 5 yuan, 6 yuan, 4 yuan, 7 yuan, and 2 yuan, respectively, and the activity budget is 10 yuan.

[0071] Step 102: Determine at least one sub-target value within the interval from a preset value to a target value, determine a first set based on the at least one sub-target value and the target value, and create an empty set as a second set.

[0072] Exemplarily, the first set is used to record multiple sub-target values ​​for screening the combination results in step 103, the second set is used to record the sub-target values ​​that have appeared, and the second set is initially an empty set {}. It should be noted that the data structure used to record multiple sub-target values ​​and the sub-target values ​​that have appeared in this application is not limited. For example, the first linked list can also be determined based on at least one sub-target value and the target value, and an empty linked list can be created as the second linked list.

[0073] Exemplarily, the first set includes at least one sub-target value and a target value, and the process of determining at least one sub-target value is as follows: first, determine the unit values ​​of the evaluation values ​​corresponding to multiple objects respectively. The unit values ​​can be set according to actual business needs, and the present application does not limit this. For example, the unit values ​​of activity costs such as 1 yuan, 8 yuan, and 2 yuan can be set to 1 yuan, and the unit values ​​of activity costs such as 10 yuan, 80 yuan, and 20 yuan can be set to 10 yuan or 5 yuan; then, according to the unit value, determine at least one sub-target value that increases sequentially within the interval range from a preset value to the target value. The preset value is the starting value of at least one sub-target value, and it increases sequentially from the preset value according to the unit value to the target value.

[0074] For example, assuming that the unit value is 1 (the unit "yuan" is omitted below), the preset value is 1, and the target value is 10, then the interval range from the preset value to the target value is 1 to 10, the sub-target value determined after 1 increases by one unit value is 2, the sub-target value determined after 2 increases by one unit value is 3...the sub-target value determined after 9 increases by one unit value is 10, that is, the first set determined according to at least one sub-target value and the target value is {1,2,3,4,5,6,7,8,9,10}.

[0075] Step 103: Traverse and process the evaluation values ​​corresponding to the multiple objects respectively: for any evaluation value among the evaluation values ​​corresponding to the multiple objects respectively, calculate at least one combination result of the evaluation value and any element in the second set according to the calculation relationship between the evaluation value and the target value, determine the combination result that meets the first set as the candidate value, delete the candidate value in the first set and add the candidate value to the second set; wherein each element in the second set has an index pointing to at least one object constituting the element.

[0076] Exemplarily, the evaluation values ​​corresponding to the multiple objects are first sorted in ascending order to improve the processing efficiency of the evaluation values. For example, taking the 9 activity costs {1,8,2,3,5,6,4,7,2} obtained in step 101 as an example, after ascending sorting, they are {1,2,2,3,4,5,6,7,8}; then, the evaluation values ​​after the ascending sorting are binned to obtain the first binned data and the second binned data, and the evaluation values ​​in the first binned data and the evaluation values ​​in the second binned data are traversed and processed in parallel. Values, speed up the processing efficiency of evaluation values; usually, the binning is performed in an even manner. Assuming that there are n evaluation values ​​in total, if n is an even number, there are n / 2 evaluation values ​​in the first bin data and n / 2 evaluation values ​​in the second bin data; if n is an odd number, there are (n+1) / 2 evaluation values ​​in the first bin data and (n-1) / 2 evaluation values ​​in the second bin data, or (n-1) / 2 evaluation values ​​in the first bin data and (n+1) / 2 evaluation values ​​in the second bin data. For example, the first bin data can be {1,2,2,3,4}, and the second bin data can be {5,6,7,8}.

[0077] Exemplarily, if the currently processed binned data meets preset conditions, the currently processed binned data may be binned again. The re-binning is to bin the data that has not been traversed yet in the currently processed binned data. The re-binning method also adopts the above-mentioned equal distribution method.

[0078] The present application records candidate values ​​for the first binned data and the second binned data respectively. The data structure used to record the candidate values ​​can be an array, a set or a linked list, which is not limited in the present application. The number of corresponding candidate values ​​is the number of elements in the array, set or linked list; the preset condition corresponding to the re-binning is: the computational efficiency of the binned data currently traversed is less than the preset computational efficiency threshold, wherein the computational efficiency is determined based on the number of candidate values ​​corresponding to the binned data currently traversed and the original number of elements in the first set, and the preset computational efficiency threshold is generally a decimal less than 1, for example, 0.3, and the original number of elements in the first set refers to the number of elements in the first set determined in step 102. For example, the first set determined in step 102 is {1,2,3,4,5,6,7,8,9,10}, which includes 10 elements, that is, the original number of elements in the first set is 10. The computational efficiency e can be calculated by the following formula:

[0079] e=min(T / Z,1)

[0080] Among them, T is the original number of elements in the first set, and Z is the number of candidate values ​​corresponding to the binned data currently traversed and processed. For example, assuming T is 10 and Z is 3, then e=min(T / Z, 1)=min(10 / 3, 1)=1; when e is closer to 1, it means that the number of candidate values ​​corresponding to the binned data currently traversed and processed is closer to the original number of elements in the first set, indicating that the calculation efficiency of the binned data currently traversed and processed is higher, and no binning is required. Corresponding to the above preset conditions, the closer e is to 1, the greater the possibility that it is greater than the preset calculation efficiency threshold, and no binning is required; on the contrary, when e is much smaller than 1, it means that the number of candidate values ​​corresponding to the binned data currently traversed and processed is much smaller than the original number of elements in the first set, indicating that the calculation efficiency of the binned data currently traversed and processed is low, and binning should be performed again. Corresponding to the above preset conditions, the closer e is to 1, the greater the possibility that it is less than the preset calculation efficiency threshold, and binning should be performed again. For example, assuming that when the evaluation values ​​in the current binned data are traversed and processed, the calculation efficiency calculated by the above formula is 0.2, and the preset calculation efficiency threshold is 0.3. Assuming that the evaluation values ​​that have not been traversed and processed in the current binned data are {2,3,4,5,6,7,8}, since the calculation efficiency 0.2 is less than the preset calculation efficiency threshold 0.3, {2,3,4,5,6,7,8} needs to be binned again. The two binned data obtained after binning can be {2,3,4,5} and {6,7,8}.

[0081] One thing that needs to be explained is that if the current traversal is for the first evaluation value in the binned data, there is no need to calculate the efficiency, and by default no further binning is required.

[0082] Exemplarily, if the number of evaluation values ​​that have been traversed and processed in the currently traversed bin data (denoted as C1) is less than or equal to the number of evaluation values ​​that have not been traversed and processed (denoted as C2), the dynamic programming (DP) algorithm is used to process the currently traversed bin data; if the number of evaluation values ​​that have been traversed and processed in the currently traversed bin data is greater than the number of evaluation values ​​that have not been traversed and processed, the subtraction dynamic programming (SDP) algorithm is used to process the currently traversed bin data.

[0083] The DP algorithm has a wide range of application scenarios, such as Figure 2 As shown, it is mainly used in knapsack problems, longest common subsequence problems, medical examination appointment scheduling, medical gene testing and sequence alignment, etc. The SDP algorithm is a special DP algorithm. This application fully considers the characteristics of the DP algorithm and the SDP algorithm, and selects a more appropriate algorithm for processing according to the current traversal and processing of the binned data.

[0084] Exemplarily, when calculating at least one combined result of the evaluation value and any one element value in the second set according to the calculation relationship between the evaluation value and the target value, first, the evaluation value is used as the first combined result, and then the evaluation value is subjected to an addition or subtraction operation with the value of any one element in the second set to obtain a calculation result, which is used as the second combined result. Finally, the first combined result and the second combined result are merged as at least one combined result. After obtaining at least one combined result, the at least one combined result is screened. Specifically, the combined results greater than the target value in the at least one combined result are discarded, and the combined results that are not greater than the target value and equal to any sub-target value in the at least one combined result are retained as at least one candidate value.

[0085] Further exemplarily, after obtaining the candidate value, the first set and the second set are updated according to the candidate value, including deleting the candidate value from the first set and adding the candidate value to the second set: if the candidate value is equal to the value of any one element in the first set, the element equal to the candidate value in the first set is deleted; if there is no element equal to the candidate value in the second set, the candidate value is added to the second set; if there is an element equal to the candidate value in the second set, the index corresponding to the element equal to the candidate value in the second set is incremented.

[0086] The following takes the first binned data as {1, 2, 2, 3, 4} and the second binned data as {5, 6, 7, 8} as an example to explain the traversal processing process of the evaluation value. Denote 1 in the first binned data as v1, the first 2 in the first binned data as v2, the second 2 in the first binned data as v3... Denote 8 in the second binned data as v9. Assume that the preset calculation efficiency threshold is 0.5:

[0087] (1) When processing v1 = 1:

[0088] ① Determine whether to bin again: Since it is the first evaluation value in the first binned data, no binning is required again;

[0089] ② Algorithm selection: The number C1 of the evaluation values that have been traversed and processed in the current first binned data is 0, and the number C2 of the evaluation values that have not been traversed and processed is 5. Since C1 < C2, the DP algorithm is selected;

[0090] ③ The combined result that meets the first set is used as the candidate value: 1 (index is v1);

[0091] ④ Update the first set and the second set: Delete 1 from the first set, and the first set is updated from {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} to {2, 3, 4, 5, 6, 7, 8, 9, 10}; Add 1 to the second set, and the second set is updated from {} to {1}; Among them, the element 1 in the second set has an index v1 pointing to the object that makes up 1.

[0092] ⑤ Update the record of the candidate values of the first bin data: Update from {} to {1}.

[0093] (2) When processing v2 = 2:

[0094] ① Determine whether to bin again: According to step ⑤ in (1), the number of candidate values for the first bin data record is 1, and the original number of elements in the first set is 10. Therefore, e = min(T / Z, 1) = min(10 / 1, 1) > the predefined computational efficiency threshold (0.5), and there is no need to bin again.

[0095] ② Algorithm selection: The number C1 of evaluated values that have been traversed and processed in the current first bin data is 1, and the number C2 of evaluated values that have not been traversed and processed is 4. Since C1 < C2, the DP algorithm is selected.

[0096] ③ The combination results that meet the first set are used as candidate values: 2 (index is v2), 3 (obtained by adding v2 and 1 in the second set, index is v1 + v2).

[0097] ④ Update the first set and the second set: Delete 2 and 3 from the first set, and the first set is updated from {2, 3, 4, 5, 6, 7, 8, 9, 10} to {4, 5, 6, 7, 8, 9, 10}; Add 2 and 3 to the second set, and the second set is updated from {1} to {1, 2, 3}; Similarly, the element 2 in the second set has an index v2 pointing to the object that makes up 2, and the element 3 in the second set has an index v1 + v2 pointing to the object that makes up 3.

[0098] ⑤ Record of the candidate values of the first bin data: Update from {1} to {1, 2, 3}.

[0099] (3) When processing v3 = 2:

[0100] ① Determine whether to bin again: According to step ⑤ in (2), the number of candidate values for the first bin data record is 3. Therefore, e = min(T / Z, 1) = min(10 / 3, 1) > 0.5, and there is no need to bin again.

[0101] ② Algorithm selection: The number C1 of evaluated values that have been traversed and processed in the current first binning data is 2, and the number C2 of evaluated values that have not been traversed and processed is 3. Since C1 < C2, the DP algorithm is selected;

[0102] ③ The combined results that meet the first set are used as candidate values: 4 (index: v2 + v3), 5 (index: v1 + v2 + v3) (the combined result 2 determined by v3 itself is discarded because it is not equal to any sub-goal value in the first set, and the combined result 3 obtained by adding v1 and v3 is also discarded because it is not equal to any sub-goal value in the first set);

[0103] ④ Update the first set and the second set: Delete 4 and 5 from the first set. The first set is updated from {4, 5, 6, 7, 8, 9, 10} to {6, 7, 8, 9, 10}; Add 4 and 5 to the second set. The second set is updated from {1, 2, 3} to {1, 2, 3, 4, 5}. The index of element 4 in the second set is v2 + v3, and the index of element 5 in the second set is v1 + v2 + v3;

[0104] ⑤ Record of candidate values for the first binning data: Updated from {1, 2, 3} to {1, 2, 3, 4, 5};

[0105] (4) When processing v4 = 3:

[0106] ① Determine whether to perform binning again: According to step ⑤ in (3), the number of candidate values recorded for the first binning data is 5. Therefore, e = min(T / Z, 1) = min(10 / 5, 1) > 0.5, and no further binning is required;

[0107] ② Algorithm selection: The number C1 of evaluated values that have been traversed and processed in the current first binning data is 3, and the number C2 of evaluated values that have not been traversed and processed is 2. Since C1 > C2, the SDP algorithm is selected;

[0108] ③ The combined results that meet the first set are used as candidate values: 6 (index: v1 + v2 + v4, v1 + v3 + v4), 7 (index: v2 + v3 + v4), 8 (index: v1 + v2 + v3 + v4) (the combined results that are not equal to any sub-goal value in the first set have been discarded);

[0109] ④ Update the first set and the second set: delete 6, 7, and 8 from the first set, and the first set is updated from {6, 7, 8, 9, 10} to {9, 10}; add 6, 7, and 8 to the second set, and the second set is updated from {1, 2, 3, 4, 5} to {1, 2, 3, 4, 5, 6, 7, 8}; the index of element 6 in the second set is v1+v2+v4, v1+v3+v4, the index of element 7 in the second set is v2+v3+v4, and the index of element 8 in the second set is v1+v2+v3+v4;

[0110] ⑤The records of candidate values ​​of the first bin data are updated from {1,2,3,4,5} to {1,2,3,4,5,6,7,8};

[0111] (5) When processing v5=4:

[0112] ① Determine whether to bin again: According to step ⑤ in (4), the number of candidate values ​​for the first bin data record is 8, so e = min(T / Z, 1) = min(10 / 8, 1) > 0.5, and no binning is required;

[0113] ② Algorithm selection: The number of evaluated values ​​that have been traversed and processed in the current first bin data is C1, which is 4, and the number of evaluated values ​​that have not been traversed and processed is C2, which is 1. Since C1>C2, the SDP algorithm is selected;

[0114] ③ The combination results that meet the first set are used as candidate values: 9 (index is v1+v2+v3+v5), 10 (index is v1+v2+v4+v5, v1+v3+v4+v5) (the combination results that are greater than the target value or are not equal to any sub-target value in the first set have been discarded);

[0115] ④ Update the first set and the second set: delete 9 and 10 from the first set, and update the first set from {9,10} to {}; add 9 and 10 to the second set, and update the second set from {1,2,3,4,5,6,7,8} to {1,2,3,4,5,6,7,8,9,10}; the index of element 9 in the second set is v1+v2+v3+v5, and the index of element 10 in the second set is v1+v2+v4+v5, v1+v3+v4+v5;

[0116] ⑤The records of candidate values ​​of the first bin data are updated from {1,2,3,4,5,6,7,8} to {1,2,3,4,5,6,7,8,9,10};

[0117] (6) When processing v6=5:

[0118] ① Determine whether to bin again: Since this is the first evaluation value in the second binned data, there is no need to bin again;

[0119] ② Algorithm selection: The number C1 of evaluated values that have been traversed and processed in the current second binned data is 0, and the number C2 of evaluated values that have not been traversed and processed is 4. Since C1 < C2, the DP algorithm is selected;

[0120] ③ The combination result that meets the first set is used as a candidate value: 5 (index is v6);

[0121] ④ Update the first set and the second set: Remove 5 from the first set. The first set is updated from {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} to {1, 2, 3, 4, 6, 7, 8, 9, 10}; Since the element 5 already exists in the second set, the index of the element 5 in the second set is increased from v1 + v2 + v3 to v1 + v2 + v3, v6;

[0122] ⑤ Record of candidate values for the second binned data: Updated from {} to {5};

[0123] (7) When processing v7 = 6:

[0124] ① Determine whether to bin again: According to step ⑤ in (6), the number of candidate values recorded for the second binned data is 1. Therefore, e = min(T / Z, 1) = min(10 / 1, 1) > 0.5, and there is no need to bin again;

[0125] ② Algorithm selection: The number C1 of evaluated values that have been traversed and processed in the current second binned data is 1, and the number C2 of evaluated values that have not been traversed and processed is 3. Since C1 < C2, the DP algorithm is selected;

[0126] ③ The combination result that meets the first set is used as a candidate value: 6 (index is v7) (only the element 5 in the second set has an index v6 pointing to the evaluated value in the second binned data, and the combination result obtained by v6 + v7 is discarded because it is greater than the target value);

[0127] ④ Update the first set and the second set: Remove 6 from the first set. The first set is updated from {1, 2, 3, 4, 6, 7, 8, 9, 10} to {1, 2, 3, 4, 7, 8, 9, 10}; Since the element 6 already exists in the second set, the index of the element 6 in the second set is increased from v1 + v2 + v4, v1 + v3 + v4 to v1 + v2 + v4, v1 + v3 + v4, v7;

[0128] ⑤ Record of candidate values for the second binned data: Updated from {5} to {5, 6};

[0129] (8) When processing v8=7:

[0130] ① Determine whether to bin again: According to step ⑤ in (7), the number of candidate values ​​for the second bin data record is 2, so e = min(T / Z, 1) = min(10 / 2, 1) > 0.5, and no binning is required;

[0131] ② Algorithm selection: The number of evaluated values ​​that have been traversed and processed in the current second bin data is C1, which is 2, and the number of evaluated values ​​that have not been traversed and processed is C2, which is 2. Since C1 = C2, the DP algorithm is selected;

[0132] ③ The combination results that meet the first set are used as candidate values: 7 (index is v8) (in the second set, there is element 5 with index v6 ​​pointing to the evaluation value in the second bin data and there is element 6 with index v7 pointing to the evaluation value in the second bin data, and the combination results obtained by v6+v8 and v7+v8 are discarded because they are greater than the target value);

[0133] ④ Update the first set and the second set: delete 7 from the first set, and update the first set from {1,2,3,4,7,8,9,10} to {1,2,3,4,8,9,10}; since element 7 already exists in the second set, increase the index of element 7 in the second set from v2+v3+v4 to v2+v3+v4, v8;

[0134] ⑤The record of the candidate value of the second bin data: updated from {5,6} to {5,6,7};

[0135] (9) When processing v9=8:

[0136] ① Determine whether to bin again: According to step ⑤ in (8), the number of candidate values ​​for the second bin data record is 3, so e = min(T / Z, 1) = min(10 / 3, 1) > 0.5, and no binning is required;

[0137] ② Algorithm selection: The number of evaluated values ​​that have been traversed and processed in the current second bin data is C1, which is 3, and the number of evaluated values ​​that have not been traversed and processed is C2, which is 1. Since C1>C2, the SDP algorithm is selected;

[0138] ③ The combination results that meet the first set are used as candidate values: 8 (index is v9) (in the second set, there is element 5 with index v6 ​​pointing to the evaluation value in the second bin data, there is element 6 with index v7 pointing to the evaluation value in the second bin data, and there is element 7 with index v8 pointing to the evaluation value in the second bin data, and the combination results obtained by v6+v9, v7+v9 and v8+v9 are discarded because they are greater than the target value);

[0139] ④ Update the first set and the second set: delete 8 from the first set, and update the first set from {1,2,3,4,8,9,10} to {1,2,3,4,9,10}; since the element 8 already exists in the second set, increase the index of the element 8 in the second set from v1+v2+v3+v4 to v1+v2+v3+v4, v9;

[0140] ⑤The record of the candidate value of the second bin data: updated from {5,6,7} to {5,6,7,8};

[0141] At this point, the evaluation values ​​in the first binned data and the second binned data have been processed. It should be noted that in the above step (5), when the element 10 equal to the target value appears in the second set for the first time, the traversal process can be stopped at this time, and the target object combination can be determined based on the object pointed to by the index of element 10; or the traversal process can be continued until the evaluation values ​​in the first binned data and the second binned data have been processed, and then all target object combinations can be determined based on the objects pointed to by the indexes of the elements in the second set that meet the target value.

[0142] Step 104: Determine a target object combination that meets the target value according to the index corresponding to each element in the second set.

[0143] Exemplarily, the object pointed to by the index corresponding to the first element in the second set is determined as the target object combination, and the value of the first element is equal to the target value; for example, according to step 103, the objects pointed to by the index corresponding to the element in the second set equal to the target value 10 are v1+v2+v4+v5 and v1+v3+v4+v5, so any one of {v1, v2, v4, v5} and {v1, v3, v4, v5} can be used as the target object combination.

[0144] Alternatively, the objects pointed to by the indexes corresponding to the values ​​of multiple elements in the second set are determined as the target object combination, wherein the sum of the values ​​of the multiple elements obtained according to the calculation relationship is equal to the target value; for example, the sum of the values ​​of element 4 and element 6 in the second set is equal to the target value, wherein the object pointed to by the index corresponding to element 4 is v2+v3, and the objects pointed to by the index corresponding to element 6 are v1+v2+v4, v1+v3+v4, v7, then {v2, v3, v7} can be used as the target object combination. It should be noted that if the same object is allowed to appear multiple times in the target object combination in an actual application, then {v1, v2, v2, v3, v4} and {v1, v2, v3, v3, v4} can also be used as the target object combination. When the sum of the values ​​of three or more elements in the second set is equal to the target value, the process of determining the target object combination is similar to the process of determining the target object combination when the sum of the values ​​of two elements is equal to the target value, and will not be repeated here.

[0145] The method for determining object combinations proposed in the present application makes full use of parallel processing technology, divides the evaluation values ​​into boxes and processes them in parallel, thereby improving the processing efficiency of the evaluation values; and screens the combination results through the first set to avoid subsequent invalid calculations, and records the sub-target values ​​that have appeared through the second set. According to the elements in the second set, it is possible to quickly determine whether elements that meet the target values ​​have appeared. When there are elements that meet the target values, the target object combination can be directly determined according to the object pointed to by the index of the element, thereby improving the efficiency of determining the target object combination.

[0146] Figure 3 and Figure 4 The following is a schematic diagram of a possible apparatus for determining an object combination provided in an embodiment of the present application. These apparatuses for determining an object combination can be used to implement the functions of the server in the above method embodiment, and thus can also achieve the beneficial effects possessed by the above method embodiment.

[0147] like Figure 3 As shown, the device 300 for determining an object combination includes a processing unit 310 and a transceiver unit 320. The device 300 for determining an object combination is used to implement the above Figure 1 The functions of the server in the method embodiment are shown.

[0148] When the device 300 for determining the object combination is used to implement Figure 1 The functions of the server in the method embodiment shown are:

[0149] The transceiver unit 320 is used to obtain evaluation values ​​and target values ​​corresponding to multiple objects respectively;

[0150] The processing unit 310 is configured to determine at least one sub-target value within a range from a preset value to the target value, determine a first set according to the at least one sub-target value and the target value, and create an empty set as a second set;

[0151] The processing unit 310 is also used to traverse and process the evaluation values ​​corresponding to the multiple objects respectively: for any one of the evaluation values ​​corresponding to the multiple objects respectively, according to the calculation relationship between the evaluation value and the target value, calculate at least one combination result of the evaluation value and any one element in the second set, determine the combination result that meets the first set as a candidate value, delete the candidate value in the first set and add the candidate value to the second set; wherein each element in the second set has an index pointing to at least one object constituting the element; and determine the target object combination that meets the target value according to the index corresponding to each element in the second set.

[0152] In one possible design, the processing unit 310 is used to determine a target object combination that meets the target value based on the indexes corresponding to the element values ​​in the second set, and is specifically used to: determine the object pointed to by the index corresponding to the first element in the second set as the target object combination, and the value of the first element is equal to the target value; or determine the objects pointed to by the indexes corresponding to multiple element values ​​in the second set as the target object combination, wherein the sum of the values ​​of the multiple elements obtained according to the calculation relationship is equal to the target value.

[0153] In one possible design, the processing unit 310 is used to determine at least one sub-target value within the interval range from a preset value to the target value, and is specifically used to: determine the unit values ​​of the evaluation values ​​corresponding to the multiple objects respectively; and determine, according to the unit value, at least one sub-target value that increases sequentially within the interval range from the preset value to the target value.

[0154] In one possible design, the processing unit 310, when used to traverse and process the evaluation values ​​corresponding to the multiple objects, is specifically used to: sort the evaluation values ​​corresponding to the multiple objects in ascending order; bin each evaluation value after the ascending order to obtain first bin data and second bin data, and traverse and process the evaluation values ​​in the first bin data and the evaluation values ​​in the second bin data in parallel; if the bin data currently traversed and processed meets the preset conditions, bin the bin data currently traversed and processed again.

[0155] In a possible design, the processing unit 310 is further used to record candidate values ​​for the first binned data and the second binned data respectively; the preset condition refers to: the computational efficiency of the binned data currently traversed and processed is less than a preset computational efficiency threshold, wherein the computational efficiency is determined based on the number of candidate values ​​corresponding to the binned data currently traversed and processed and the original number of elements in the first set.

[0156] In one possible design, the processing unit 310 is used to traverse and process the evaluation values ​​in the first bin data and the evaluation values ​​in the second bin data in parallel, and is specifically used to: if the number of evaluation values ​​that have been traversed and processed in the currently traversed bin data is less than or equal to the number of evaluation values ​​that have not been traversed and processed, use the DP algorithm to process the currently traversed bin data; if the number of evaluation values ​​that have been traversed and processed in the currently traversed bin data is greater than the number of evaluation values ​​that have not been traversed and processed, use the SDP algorithm to process the currently traversed bin data.

[0157] In one possible design, the processing unit 310 is used to calculate at least one combination result of the evaluation value and the value of any element in the second set according to the calculation relationship between the evaluation value and the target value, and is specifically used to: use the evaluation value as the first combination result; add or subtract the evaluation value and the value of any element in the second set to obtain a calculation result, and use the calculation result as the second combination result.

[0158] In one possible design, the processing unit 310 is used to: when determining a combination result that meets the first set as a candidate value, discard the combination result that is greater than the target value among the at least one combination result; and retain the combination result that is not greater than the target value and equal to any sub-target value among the at least one combination result as the at least one candidate value.

[0159] In one possible design, the processing unit 310 is used to delete the candidate value in the first set and add the candidate value in the second set, specifically to: if the candidate value is equal to the value of any element in the first set, delete the element in the first set that is equal to the candidate value; if there is no element equal to the candidate value in the second set, add the candidate value to the second set; if there is an element equal to the candidate value in the second set, increase the index corresponding to the element equal to the candidate value in the second set.

[0160] For more detailed description of the processing unit 310 and the transceiver unit 320, please refer to Figure 1 The relevant description in the method embodiment shown is directly obtained and will not be repeated here.

[0161] like Figure 4 As shown, the device 400 for determining the object combination includes a processor 410 and an interface circuit 420. The processor 410 and the interface circuit 420 are coupled to each other. It is understood that the interface circuit 420 can be a transceiver or an input-output interface. Optionally, the device 400 for determining the object combination can also include a memory 430 for storing instructions executed by the processor 410 or storing input data required by the processor 410 to execute instructions or storing data generated after the processor 410 executes instructions.

[0162] When the device 400 for determining the object combination is used to implement Figure 1 When the method is shown, the processor 410 is used to implement the function of the processing unit 310, and the interface circuit 420 is used to implement the function of the transceiver unit 320.

[0163] The division of units in the embodiments of the present application is schematic and is only a logical function division. There may be other division methods in actual implementation. In addition, each functional unit in each embodiment of the present application may be integrated into a processor, or may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.

[0164] Although the preferred embodiments of the present application have been described, those skilled in the art may make other changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications falling within the scope of the present application.

[0165] Obviously, those skilled in the art can make various changes and modifications to the present application without departing from the scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.

Claims

1. A method for determining a combination of objects, characterized in that: The method includes: Get the evaluation values ​​and target values ​​corresponding to multiple objects respectively; Determine at least one sub-target value within the interval from a preset value to the target value, determine a first set according to the at least one sub-target value and the target value, and create an empty set as a second set; Traversing and processing the evaluation values ​​respectively corresponding to the multiple objects: for any evaluation value among the evaluation values ​​respectively corresponding to the multiple objects, according to the calculation relationship between the evaluation value and the target value, calculating at least one combination result of the evaluation value and any element in the second set, determining the combination result that meets the first set as a candidate value, deleting the candidate value in the first set and adding the candidate value to the second set; wherein each element in the second set has an index pointing to at least one object constituting the element; A target object combination that meets the target value is determined according to the index corresponding to each element in the second set.

2. The method according to claim 1, characterized in that The determining, according to the index corresponding to each element value in the second set, a target object combination that meets the target value includes: Determine the object pointed to by the index corresponding to the first element in the second set as the target object combination, and the value of the first element is equal to the target value; or determine the objects pointed to by the indexes corresponding to multiple element values ​​in the second set as the target object combination, wherein the sum of the values ​​of the multiple elements obtained according to the calculation relationship is equal to the target value.

3. The method according to claim 1, characterized in that Determining at least one sub-target value within the interval between the preset value and the target value includes: Determine unit values ​​of evaluation values ​​respectively corresponding to the plurality of objects; According to the unit value, at least one sub-target value that increases in sequence within the interval from the preset value to the target value is determined.

4. The method according to claim 1, characterized in that The traversing and processing the evaluation values ​​respectively corresponding to the plurality of objects comprises: Sorting the evaluation values ​​corresponding to the multiple objects in ascending order; Binning the evaluation values ​​after ascending sorting to obtain first binned data and second binned data, and traversing and processing the evaluation values ​​in the first binned data and the evaluation values ​​in the second binned data in parallel; If the currently processed binned data meets the preset conditions, the currently processed binned data will be binned again.

5. The method according to any one of claims 1 to 4, characterized in that The method further includes: recording respective candidate values ​​for the first binned data and the second binned data; The preset condition means that the computational efficiency of the currently traversed binned data is less than a preset computational efficiency threshold, wherein the computational efficiency is determined based on the number of candidate values ​​corresponding to the currently traversed binned data and the original number of elements in the first set.

6. The method according to claim 4, characterized in that The parallel traversal processing of the evaluation values ​​in the first binned data and the evaluation values ​​in the second binned data includes: If the number of traversed and processed evaluation values ​​in the currently traversed bin data is less than or equal to the number of untraversed and processed evaluation values, the dynamic programming DP algorithm is used to process the currently traversed bin data; If the number of traversed and processed evaluation values ​​in the currently traversed bin data is greater than the number of untraversed and processed evaluation values, the subtraction dynamic programming SDP algorithm is used to process the currently traversed bin data.

7. The method according to any one of claims 1 to 6, characterized in that The calculating, according to the calculation relationship between the evaluation value and the target value, at least one combination result of the evaluation value and any element value in the second set comprises: Taking the evaluation value as the first combination result; Perform an addition or subtraction operation on the evaluation value and the value of any element in the second set to obtain a calculation result, and use the calculation result as the second combination result.

8. The method according to any one of claims 1 to 6, characterized in that The determining the combination result that meets the first set as a candidate value includes: Discarding a combination result greater than the target value among the at least one combination result; Among the at least one combination result, the combination result that is not greater than the target value and equal to any sub-target value is retained as the at least one candidate value.

9. The method according to any one of claims 1 to 6, characterized in that The deleting the candidate value in the first set and adding the candidate value in the second set includes: If the candidate value is equal to the value of any element in the first set, the element in the first set that is equal to the candidate value is deleted; If there is no element in the second set that is equal to the candidate value, adding the candidate value to the second set; If there is an element in the second set that is equal to the candidate value, the index corresponding to the element in the second set that is equal to the candidate value is increased.

10. A device for determining a combination of objects, characterized in that: The device comprises a processing unit and a transceiver unit; The transceiver unit is used to obtain evaluation values ​​and target values ​​corresponding to multiple objects respectively; The processing unit is used to determine at least one sub-target value within the interval from a preset value to the target value, determine a first set according to the at least one sub-target value and the target value, and create an empty set as a second set; The processing unit is also used to traverse and process the evaluation values ​​corresponding to the multiple objects respectively: for any one of the evaluation values ​​corresponding to the multiple objects respectively, according to the calculation relationship between the evaluation value and the target value, calculate at least one combination result of the evaluation value and any one element in the second set, determine the combination result that meets the first set as a candidate value, delete the candidate value in the first set and add the candidate value to the second set; wherein each element in the second set has an index pointing to at least one object constituting the element; and determine the target object combination that meets the target value according to the index corresponding to each element in the second set.

11. A device for determining a combination of objects, characterized in that include: A processor, and a memory communicatively connected to the processor; The memory stores computer-executable instructions; The processor executes the computer-executable instructions stored in the memory to implement the method according to any one of claims 1 to 9.

12. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer-executable instructions, which are used to implement the method according to any one of claims 1 to 9 when executed by a processor.

13. A computer program product, characterized in that The invention comprises a computer program, which implements the method according to any one of claims 1 to 9 when being executed by a processor.