Task allocation method based on dynamic rotation priority mechanism
By using a dynamic rotation priority mechanism and priority calculation, combined with the constraint of simultaneous eating, the problem of poor preference consistency in volunteer crowdsourcing was solved, achieving efficient and fair task allocation and improving volunteer satisfaction and preference consistency.
Patent Information
- Application Number
- CN202511219442.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-08-28
- Publication Date
- 2025-11-11
AI Technical Summary
Existing volunteer crowdsourcing task allocation algorithms ignore the consistency of volunteer preferences, resulting in poor preference consistency and low volunteer satisfaction.
A dynamic rotation priority mechanism is adopted. Through rotation sorting and priority calculation, combined with the constraint of simultaneous eating, tasks are assigned according to the volunteers' task preference order to ensure that the task assignment is consistent with the volunteers' preferences and fair.
It significantly improves the consistency and fairness of task allocation preferences, increases volunteer satisfaction, and is applicable to scenarios such as volunteer service, social governance, and campus self-governance.
Smart Images

Figure CN120931025A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to a task allocation method based on a dynamic rotation priority mechanism, belonging to the field of crowdsourcing task allocation technology. Background Technology
[0002] In recent years, with the rapid rise of mobile internet and crowdsourcing platforms, crowdsourcing has been widely applied in scenarios such as urban sensing, map annotation, and data collection. Crowdsourcing refers to outsourcing tasks traditionally completed within an organization to crowdsourced workers in an open manner to complete tasks such as information collection, task execution, or content generation. Compared with traditional paid crowdsourcing, volunteer crowdsourcing has shown greater potential in areas such as data collection, scientific research, and social welfare. As a major form of non-profit crowdsourcing, volunteer crowdsourcing is characterized by participants being primarily driven by non-monetary incentives, which typically include personal preferences and a sense of social responsibility.
[0003] Preference-based task allocation is the core mechanism of volunteer crowdsourcing systems. Its goal is to allocate tasks to suitable participants in a reasonable, efficient, and fair manner based on volunteers' preferences and other factors, thereby improving the overall system performance. However, current task allocation algorithms, such as those in patent CN 118229010 B and Liang et al. (…), lack sufficient depth and appropriateness. <informationsciences>While these methods can maximize utility and ensure reliability, they neglect the consistency between the allocation results and volunteer preferences, i.e., preference consistency. Therefore, these methods can lead to low volunteer satisfaction and affect the rationality of the allocation results, potentially assigning volunteers tasks they are not good at.
[0004] Therefore, there is an urgent need to design a preference-driven, fair and efficient crowdsourcing task allocation method to solve the problems of poor preference consistency and low volunteer satisfaction in existing technologies. Summary of the Invention
[0005] The purpose of this invention is to provide a task allocation method based on a dynamic rotation priority mechanism, which aims to solve the technical problems of poor preference consistency and low volunteer satisfaction in the existing technology.
[0006] To achieve the above objectives, this invention provides the following technical solution: a task allocation method based on a dynamic rotation priority mechanism. This method achieves efficient and fair one-to-one task assignment based on the task preference order of volunteers. In each round of allocation, the volunteer set is randomly rotated and sorted; according to each volunteer's complete task preference sequence, the highest priority task not yet assigned is selected; if multiple volunteers compete for the same task, priority weights are calculated based on their relative preference ranking for that task, and the task is assigned to the volunteer with the highest priority weight. To control the amount of tasks acquired by a single volunteer, a simultaneous feeding constraint is proposed to dynamically adjust their allocation share in the current round. When a volunteer's allocation share exceeds a preset threshold, their task selection operation will be suspended in this round. The specific steps of the method are as follows:
[0007] Step 1: Define the task allocation parameters, which include the task set, volunteer set, round counter, number of assigned tasks, task assignment status, volunteer task preference sorting, and maximum number of acceptable tasks;
[0008] Step 2: Filter the volunteer set according to the number of assigned tasks and the maximum number of acceptable tasks, and randomly sort the filtered volunteer set to obtain the task allocation order;
[0009] Step 3: Based on the task allocation order and the task set, obtain the most preferred task among the currently unassigned volunteers in the task preference ranking;
[0010] Step 4: Assign tasks for the current round based on whether other volunteers have selected their preferred task;
[0011] Step 5: After completing task assignment, update the task assignment status of the current round to "assigned" and increment the round counter by one. Repeat Step 2-Step 4 until all tasks are assigned or there are no volunteers to assign, at which point task assignment ends.
[0012] Optionally, Step 1 includes:
[0013] Step 1.1: Define the task set Gather with volunteers ;
[0014] Step 1.2: Set the round counter Initialize the number of tasks currently assigned to each volunteer. Initialize all task assignment statuses to unassigned. ;
[0015] Step 1.3: Define each volunteer Having a volunteer task preference ranking Each task can only be assigned to one volunteer, and each volunteer can receive a maximum of [number] tasks. One task.
[0016] Optionally, Step 2 includes:
[0017] Step 2.1: At the beginning of each round, the volunteer pool is screened to obtain... The volunteer pool was assembled, and the share counter was initialized. ;
[0018] Step 2.2: For The volunteer set is randomly sorted to obtain the task assignment order. .
[0019] Optionally, Step 4 includes:
[0020] Step 4.1: Construct a candidate set ,in, The most preferred task;
[0021] Step 4.2: Assign tasks to volunteers who meet the constraint of simultaneous eating:
[0022] If no other volunteers choose their preferred task The modulus of the candidate set Directly assigned to the current volunteer;
[0023] If multiple volunteers choose the same most preferred task Tasks are then assigned based on a priority allocation mechanism.
[0024] Optionally, the simultaneous eating constraint is specifically:
[0025] When volunteers participate in task selection, the share they receive is recorded as... And add it to its current round share counter. ;
[0026] If the total number of tasks that volunteers compete for in a round reaches the preset average number of tasks allocated to each volunteer in each round, then they will not participate in the selection of subsequent tasks in that round.
[0027] Optionally, the priority allocation mechanism is specifically as follows:
[0028] For each candidate volunteer in the candidate set Calculate its priority weight The expression is:
[0029]
[0030] in, For the most preferred task In candidate volunteers The position in the task preference ranking; the smaller the value, the higher the degree of preference.
[0031] The most preferred task Assigned to the highest priority weight Among the volunteers, if multiple candidate volunteers have the same maximum priority weight, the volunteer with the smallest number of currently assigned tasks will be selected for assignment. If the number of currently assigned tasks is also equal, random assignment will be performed.
[0032] The beneficial effects of this invention are:
[0033] 1. This invention combines round-robin sorting with priority calculation mechanism, and introduces simultaneous eating constraint to limit the possibility of volunteers receiving too many tasks in a single round, which significantly reduces the risk of task allocation being concentrated in a few individuals and improves the overall allocation fairness;
[0034] 2. This invention strictly follows the volunteers' preference order when assigning tasks, so the final assignment result is highly consistent with the volunteers' preferences, that is, it has a very high degree of consistency with volunteers' preferences.
[0035] 3. Unlike the currently popular space crowdsourcing, this invention allocates volunteers based on their own subjective preferences, rather than on proximity based on their geographical location. This results in higher user satisfaction and is conducive to motivating volunteers to participate in volunteer activities.
[0036] 4. Unlike most task scheduling methods that rely on explicit reward incentives, this invention does not require the introduction of a monetary cost function. Instead, it uses "preference order" as the only input, making it highly adaptable to real-world scenarios, especially suitable for transaction scenarios such as volunteer service, social governance, campus self-governance, and public welfare activities. Attached Figure Description
[0037] Figure 1 This is a flowchart of the steps of the present invention;
[0038] Figure 2 This is a graph showing the average ranking effect of the present invention on the Sushi dataset;
[0039] Figure 3 This is a graph showing the effect of the present invention on preference consistency on the Sushi dataset;
[0040] Figure 4 This is a graph showing the average ranking effect of the present invention on the mallows dataset;
[0041] Figure 5 This is a graph showing the effect of the present invention on preference consistency on the mallows dataset. Detailed Implementation
[0042] The present invention will be further described below with reference to the accompanying drawings and specific embodiments.
[0043] Example 1: As Figure 1 As shown, a task allocation method based on a dynamic round-robin priority mechanism includes the following steps:
[0044] Step 1: Define the task allocation parameters, which include the task set, volunteer set, round counter, number of assigned tasks, task assignment status, volunteer task preference sorting, and maximum number of acceptable tasks;
[0045] Step 1.1: Define the task set Gather with volunteers ;
[0046] Step 1.2: Set the round counter Initialize the number of tasks currently assigned to each volunteer. Initialize all task assignment statuses to unassigned. ;
[0047] Step 1.3: Define each volunteer Having a volunteer task preference ranking Each task can only be assigned to one volunteer, and each volunteer can receive a maximum of [number] tasks. One task.
[0048] Optionally, in some specific implementations, the task allocation parameters can be set as follows:
[0049] The number of tasks is fixed at 100, denoted as the task set. ;
[0050] The number of volunteers is set to multiple levels: 10, 20, 30, 40, 50, 60, 70, 80, 90;
[0051] Each volunteer provides a ranking of their volunteer task preferences across all tasks. This represents the order in which they subjectively choose tasks;
[0052] Each volunteer can accept a maximum of 5 tasks;
[0053] Each task can only be assigned to one volunteer;
[0054] All tasks are initially unassigned, and all volunteers are initially assigned 0 tasks.
[0055] Step 2: Filter the volunteer set according to the number of assigned tasks and the maximum number of acceptable tasks, and randomly sort the filtered volunteer set to obtain the task allocation order;
[0056] Step 2.1: At the beginning of each round, the volunteer pool is screened to obtain... The volunteer pool was assembled, and the share counter was initialized. ;
[0057] Step 2.2: For The volunteer set is randomly sorted to obtain the task assignment order. .
[0058] Step 3: Based on the task allocation order and the task set, obtain the most preferred task among the currently unassigned volunteers in the task preference ranking;
[0059] Step 4: Assign tasks for the current round based on whether other volunteers have selected the most preferred task; Step 4.1: Construct a candidate set. ,in, The most preferred task;
[0060] Step 4.2: Assign tasks to volunteers who meet the constraint of simultaneous eating:
[0061] If no other volunteers choose their preferred task The modulus of the candidate set Directly assigned to the current volunteer;
[0062] If multiple volunteers choose the same most preferred task Tasks are then assigned based on a priority allocation mechanism.
[0063] Optionally, the simultaneous eating constraint is specifically:
[0064] When volunteers participate in task selection, the share they receive is recorded as... And add it to its current round share counter. ;
[0065] If the total number of tasks that volunteers compete for in a round reaches the preset average number of tasks allocated to each volunteer in each round, then they will not participate in the selection of subsequent tasks in that round.
[0066] Optionally, the priority allocation mechanism is specifically as follows:
[0067] For each candidate volunteer in the candidate set Calculate its priority weight The expression is:
[0068]
[0069] in, For the most preferred task In candidate volunteers The position in the task preference ranking; the smaller the value, the higher the degree of preference.
[0070] The most preferred task Assigned to the highest priority weight Among the volunteers, if multiple candidate volunteers have the same maximum priority weight, the volunteer with the smallest number of currently assigned tasks will be selected for assignment. If the number of currently assigned tasks is also equal, random assignment will be performed.
[0071] Step 5: After completing task assignment, update the task assignment status of the current round to "assigned" and increment the round counter by one. Repeat Step 2-Step 4 until all tasks are assigned or there are no volunteers to assign, at which point task assignment ends.
[0072] Step 5.1: When choosing the most preferred task Successfully assigned Afterwards, update Corresponding to the number of volunteer tasks Add one;
[0073] Step 5.2: After all volunteers have taken turns selecting the best unassigned task, the rounds proceed. Add one, and then repeat Step 2-Step 4 until all tasks are assigned or there are no more volunteers to assign, at which point the task assignment ends.
[0074] Step 5.3: Finally, obtain the allocation matrix. .
[0075] Based on the above-mentioned task allocation method based on a dynamic round-robin priority mechanism, a specific example will be used to further illustrate this.
[0076] Given 10 tasks to be assigned to 4 volunteers, the volunteer set is as follows: The task set is Each volunteer's preferences are as follows:
[0077] ;
[0078] ;
[0079] ;
[0080] .
[0081] The number of tasks currently assigned to each volunteer Each volunteer can be assigned a maximum of 3 tasks, and all tasks are currently in an unassigned status. .
[0082] In the first round of task allocation, set a round counter. Share counter The random ordering of volunteers with full workload is .
[0083] Furthermore, according to In order, the first volunteer Select the task that is ranked highest in your current unassigned tasks. At this time, the volunteers The task that is currently ranked highest in preference among the unassigned tasks is also Therefore, the task The set of candidates .according to calculate The priority weights are respectively , If two volunteers have the same maximum priority weight, then the volunteer with the fewest assigned tasks is selected. Then, random assignment will be performed to distribute tasks to... And update status , , The four volunteers' preferences for task assignment are as follows:
[0084] ;
[0085] ;
[0086] ;
[0087] .
[0088] Furthermore, according to The second volunteer in the middle order Select the task that is ranked highest in your current unassigned tasks. At this time, the volunteers The task that is currently ranked highest in preference among the unassigned tasks is also Therefore, the task The set of candidates .according to calculate The priority weights are respectively , The task will then be assigned to the volunteer with the highest priority. And update status , , ,at this time Once the threshold is reached, the volunteers will no longer participate in the allocation process. The task allocation preferences of the four volunteers are as follows:
[0089] ;
[0090] ;
[0091] ;
[0092] .
[0093] Furthermore, according to The third volunteer in the middle order Select the task that is ranked highest in your current unassigned tasks. At this time, there were only volunteers. Selected task It is then directly allocated to volunteers. Update status , , ,at this time Once the threshold is reached, the volunteers will no longer participate in the allocation process. The task allocation preferences of the four volunteers are as follows:
[0094] ;
[0095] ;
[0096] ;
[0097] .
[0098] Furthermore, according to The fourth volunteer in the middle order Select the task that is ranked highest in your current unassigned tasks. Although the volunteers Also selected the task But volunteers This round will not participate in the allocation, so it will be directly allocated to volunteers. Update status , , ,at this time Once the threshold is reached, the volunteers will no longer participate in the allocation process. The task allocation preferences of the four volunteers are as follows:
[0099] ;
[0100] ;
[0101] ;
[0102] .
[0103] At this point, the first round of volunteers were randomly assigned. The selections have been completed in order.
[0104] Next, we will proceed with the second round of task allocation and set up a round counter. Share counter The random ordering of volunteers with full workload is .
[0105] Furthermore, according to In order, the first volunteer Select the task that is ranked highest in your current unassigned tasks. At this time, there were only volunteers. Selected task It is then directly allocated to volunteers. Update status , , ,at this time Once the threshold is reached, the volunteers will no longer participate in the allocation process. The task allocation preferences of the four volunteers are as follows:
[0106] ;
[0107] ;
[0108] ;
[0109] .
[0110] Furthermore, according to The second volunteer in the middle order Select the task that is ranked highest in your current unassigned tasks. At this time, there were only volunteers. Selected task It is then directly allocated to volunteers. Update status , , ,at this time Once the threshold is reached, the volunteers will no longer participate in the allocation process. The task allocation preferences of the four volunteers are as follows:
[0111] ;
[0112] ;
[0113] ;
[0114] .
[0115] Furthermore, according to The third volunteer in the middle order Select the task that is ranked highest in your current unassigned tasks. At this time, the volunteers The task that is currently ranked highest in preference among the unassigned tasks is also Therefore, the task The set of candidates .according to calculate The priority weights are respectively , If two volunteers have the same maximum priority weight, then the volunteer with the fewest assigned tasks is selected. Then, random assignment will be performed to distribute tasks to... And update status , , The four volunteers' preferences for task assignment are as follows:
[0116] ;
[0117] ;
[0118] ;
[0119] .
[0120] Furthermore, according to The fourth volunteer in the middle order Select the task that is ranked highest in your current unassigned tasks. Although the volunteers Also selected the task But volunteers This round will not participate in the allocation, so it will be directly allocated to volunteers. And update status , , ,at this time Once the threshold is reached, the volunteers will no longer participate in the allocation process. The task allocation preferences of the four volunteers are as follows:
[0121] ;
[0122] ;
[0123] ;
[0124] .
[0125] Next, we will proceed with the third round of task allocation, setting up a round counter (3) and a share counter (2). The random ordering of volunteers with full workload is .
[0126] Furthermore, according to In order, the first volunteer Select the task that is ranked highest in your current unassigned tasks. At this time, the volunteers The task that is currently ranked highest in preference among the unassigned tasks is also Therefore, the task The set of candidates .according to calculate The priority weights are respectively , The task will then be assigned to the volunteer with the highest priority. And update status At this time, the volunteers The allocation process will terminate once the maximum number of assignable tasks has been reached. , The four volunteers' preferences for task assignment are as follows: , , , .
[0127] Furthermore, according to The second volunteer in the middle order Select the task that is ranked highest in your current unassigned tasks. Although the volunteers Also selected the task However, volunteers This round will no longer participate in the allocation, therefore the task... The set of candidates .according to calculate The priority weights are respectively , , If two volunteers have the same maximum priority weight, the volunteer with the fewest assigned tasks will be selected. Then, random assignment will be performed to distribute tasks to... And update status At this time, the volunteers The allocation process will terminate once the maximum number of assignable tasks has been reached. , The four volunteers' preferences for task assignment are as follows: Allocation complete.
[0128] The final allocation matrix is as follows:
[0129] .
[0130] Furthermore, this embodiment further demonstrates the effectiveness of the present invention through experiments. The present invention randomly selects 10, 20, 30, 40, 50, 60, 70, 80, and 90 data points from 5000 complete preference data points to conduct task allocation experiments with different numbers of data points to eliminate randomness. Figure 2 and Figure 3 This diagram illustrates the results of this invention on the real-world Sushi dataset. The horizontal axis represents the number of volunteers involved in the allocation process, while the vertical axis represents two evaluation metrics: the average rank of the allocation task among volunteer preferences and the Kendall Tau score (degree of preference consistency). A lower average rank and a higher Kendall Tau score indicate a better allocation mechanism. It can be seen that the average rank and Kendall Tau score of this invention outperform the Greedy algorithm, the Kuhn-Munkres (KM) algorithm, and the multi-type random priority (MRP) algorithm.
[0131] In addition, this embodiment also conducted experiments on the mallows simulated dataset, where 5000 complete preference data were randomly generated and 10, 20, 30, 40, 50, 60, 70, 80, and 90 data were randomly selected to conduct task allocation experiments with different numbers of groups. Figure 4 and Figure 5 This diagram illustrates the results of this invention on the Mallows simulation dataset. The horizontal axis represents the number of volunteers participating in the task allocation, while the vertical axis represents two evaluation metrics: the average rank of the assigned task among volunteer preferences and the Kendall Tau score (degree of preference consistency). A lower average rank and a higher Kendall Tau score indicate a better allocation mechanism. It can be seen that the task allocation method proposed in this invention outperforms other algorithms in both average rank and Kendall Tau score.
[0132] In summary, this method is applicable to volunteer crowdsourcing scenarios, enabling efficient and fair one-to-one task assignment based on volunteers' task preference order, and can effectively improve the consistency, fairness, and robustness of task allocation preferences.
[0133] The specific embodiments of the present invention have been described in detail above with reference to the accompanying drawings. However, the present invention is not limited to the above embodiments. Within the scope of knowledge possessed by those skilled in the art, various changes can be made without departing from the spirit of the present invention.< / informationsciences>
Claims
1. A task allocation method based on a dynamic round-robin priority mechanism, characterized in that, The method includes the following steps: Step 1: Define the task allocation parameters, which include the task set, volunteer set, round counter, number of assigned tasks, task assignment status, volunteer task preference sorting, and maximum number of acceptable tasks; Step 2: Filter the volunteer set according to the number of assigned tasks and the maximum number of acceptable tasks, and randomly sort the filtered volunteer set to obtain the task allocation order; Step 3: Based on the task allocation order and the task set, obtain the most preferred task among the currently unassigned volunteers in the task preference ranking; Step 4: Assign tasks for the current round based on whether other volunteers have selected their preferred task; Step 5: After completing task assignment, update the task assignment status of the current round to "assigned" and increment the round counter by one. Repeat Step 2-Step 4 until all tasks are assigned or there are no volunteers to assign, at which point task assignment ends.
2. The task allocation method based on a dynamic round-robin priority mechanism according to claim 1, characterized in that, Step 1 includes: Step 1.1: Define the task set Gather with volunteers ; Step 1.2: Set the round counter Initialize the number of tasks currently assigned to each volunteer. Initialize all task assignment statuses to unassigned. ; Step 1.3: Define each volunteer Having a volunteer task preference ranking Each task can only be assigned to one volunteer, and each volunteer can receive a maximum of [number] tasks. One task.
3. The task allocation method based on a dynamic round-robin priority mechanism according to claim 2, characterized in that, Step 2 includes: Step 2.1: At the beginning of each round, the volunteer pool is screened to obtain... The volunteer pool was assembled, and the share counter was initialized. ; Step 2.2: For The volunteer set is randomly sorted to obtain the task assignment order. .
4. The task allocation method based on a dynamic round-robin priority mechanism according to claim 3, characterized in that, Step 4 includes: Step 4.1: Construct a candidate set ,in, The most preferred task; Step 4.2: Assign tasks to volunteers who meet the constraint of simultaneous eating: If no other volunteers choose their preferred task The modulus of the candidate set Directly assigned to the current volunteer; If multiple volunteers choose the same most preferred task Tasks are then assigned based on a priority allocation mechanism.
5. A task allocation method based on a dynamic round-robin priority mechanism according to claim 4, characterized in that, The specific constraints regarding simultaneous eating are as follows: When volunteers participate in task selection, the share they receive is recorded as... And add it to its current round share counter. ; If the total number of tasks that volunteers compete for in a round reaches the preset average number of tasks allocated to each volunteer in each round, then they will not participate in the selection of subsequent tasks in that round.
6. A task allocation method based on a dynamic round-robin priority mechanism according to claim 5, characterized in that, The priority allocation mechanism is as follows: For each candidate volunteer in the candidate set Calculate its priority weight The expression is: ; in, For the most preferred task In candidate volunteers The position in the task preference ranking; the smaller the value, the higher the degree of preference. The most preferred task Assigned to the highest priority weight Among the volunteers, if multiple candidate volunteers have the same maximum priority weight, the volunteer with the smallest number of currently assigned tasks will be selected for assignment. If the number of currently assigned tasks is also equal, random assignment will be performed.