Method and device for solving shortest completion period of multi-mode resource-constrained project, medium and product
By generating coding individuals, correcting the pattern list and updating populations using genetic algorithms, the problem of low accuracy in solving the shortest completion period in multi-modal resource-constrained projects is solved, and a fast and accurate solution effect is achieved.
Patent Information
- Application Number
- CN202411546452.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-01
- Publication Date
- 2025-02-11
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
The prior art is difficult to accurately solve the shortest completion period of multi-mode resource-constrained projects while meeting resource constraints, resulting in low resolution accuracy.
The encoding individual is generated through the encoding weight list and the pattern list, and the pattern list is corrected by the local search method to meet the conditions that resource supply is greater than the demand, and the population is updated using the genetic algorithm until the optimal solution is achieved.
It realizes the shortest completion period of multi-mode resource-constrained projects quickly and accurately while meeting resource constraints, and improves the solution accuracy.
Smart Images

Figure BDA0005114441360000081 
Figure BDA0005114441360000101 
Figure BDA0005114441360000111
Abstract
Description
Technical Field
[0001] The present application relates to the field of artificial intelligence technology, and in particular to a method, device, medium and product for solving the shortest completion period of a multi-mode resource-constrained project. Background Art
[0002] Project scheduling is an important part of industrial manufacturing and construction project management. For example, various batch production and processing enterprises, shipbuilding, aircraft manufacturing, energy, military industry, and various construction projects are all facing the problem of project scheduling. Critical Path Method (CPM) and Program Evaluation and Review Technique (PERT) are the two basic methods for preparing scheduling plans, but they do not consider resource constraints. During the implementation of the project, the total amount of renewable resources, including labor and equipment, is often limited, which often causes the actual progress to deviate from the expected goal and even leads to project delays. Therefore, under the condition of resource constraints, the schedule plan based on CPM and PERT is usually not feasible, and it is also necessary to optimize and adjust according to the limited resources to ensure the shortest construction period. This type of problem is called Resource Constrained Project Scheduling Problem (RCPSP).
[0003] For industrial manufacturing and construction projects, due to different resource inputs, an activity can have multiple execution modes. Each mode corresponds to a resource requirement and the corresponding start time and completion time of the activity when executing the resource requirement. Sometimes, it is also necessary to consider non-renewable resource constraints, such as funding and material constraints. In this case, how to determine the execution mode of each activity and the minimum total duration of the project based on the limited resources is called the Multi-mode Resource Constrained Project Scheduling Problem (MRCPSP), which is an extension of RCPSP. Existing methods make it difficult to obtain feasible coding individuals that meet non-renewable resource constraints, resulting in the inability to solve. So how to effectively solve and quickly obtain the shortest completion period for completing the project while satisfying resource constraints (renewable resource constraints and non-renewable resource constraints) is the focus of research. Summary of the invention
[0004] The purpose of this application is to provide a method, device, medium and product for solving the shortest completion period of a multi-mode resource-constrained project, so as to solve the problem of low accuracy in solving the shortest completion period of a multi-mode resource-constrained project.
[0005] To achieve the above objectives, this application provides the following solutions:
[0006] In a first aspect, the present application provides a method for solving the shortest completion period of a multi-mode resource-constrained project, comprising:
[0007] The coding weight list and the mode list generate each coding individual, and the weight list in each coding individual is sorted to determine the scheduling order of each activity; each mode in the mode list includes multiple resource requirements and the start time and completion time of the activity corresponding to the resource requirements; the resource requirements include the number of required update resources and the number of required non-update resources; the modes in the mode list correspond to the weights in the weight list one by one; the weights in the weight list represent the priority of the scheduling order of different activities;
[0008] Modifying the mode list in each coding individual according to the local search method until the mode list meets the preset condition, thereby obtaining an execution mode list; the preset condition is that the total supply of the number of resources corresponding to each mode is greater than the total demand;
[0009] Taking each coded individual as an initial population, decoding the initial population, determining the start time and the completion time of each activity in each coded individual, and determining the total duration corresponding to each coded individual according to the start time and the completion time of each activity;
[0010] Sort all the coded individuals in the order of the total duration from small to large to obtain the sorting result;
[0011] A preset number of coding individuals at the top of the sorting results are copied to the next generation population as elite coding individuals;
[0012] Based on the elite coding individuals and the genetic algorithm, new coding individuals are obtained, and the elite coding individuals and the new coding individuals are used as the initial population. Return to the step of "using each coding individual as the initial population, decoding the initial population, determining the start time and completion time of each activity in each coding individual, and determining the total duration corresponding to each coding individual according to the start time and completion time of each activity", and update the next generation population until the preset number of iterations is reached to obtain the optimal next generation population;
[0013] A target coding individual with the shortest total duration value in the next generation population is obtained, and the total duration of the target coding individual is used as the shortest completion duration of the multi-mode resource-constrained project.
[0014] In a second aspect, the present application provides a computer device, including: a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the method for solving the shortest completion period of a multi-mode resource-constrained project.
[0015] In a third aspect, the present application provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the method for solving the shortest completion period of a multi-mode resource-constrained project.
[0016] In a fourth aspect, the present application provides a computer program product, including a computer program, which, when executed by a processor, implements a method for solving the shortest completion period of the multi-mode resource-constrained project.
[0017] According to the specific embodiments provided in this application, this application discloses the following technical effects:
[0018] The coding weight list and the mode list generate each coding individual, and the weight list in each coding individual is sorted to determine the scheduling order of each activity. Then, the mode list in each coding individual is corrected by the local search method until the mode list meets the preset conditions and the correction is stopped to obtain the execution mode list, so that all executable modes that meet the non-renewable resource constraints are quickly obtained, that is, the execution mode under the condition that the total non-renewable resource demand under the corresponding coding is less than or equal to the total supply of the entire project. Further, several coding individuals are generated to form an initial population. After decoding the initial population, the total duration corresponding to each coding individual can be accurately determined, which can significantly improve the solution accuracy. Finally, a new coding individual is obtained according to the genetic algorithm, and then the next generation population is updated until the preset number of iterations is reached to obtain the optimal next generation population. In other words, the global and local search capabilities of the genetic algorithm increase the diversity of the population, which helps to avoid falling into the local optimal solution. By continuously obtaining the coding individual with the smallest total duration value in the next generation population, the shortest completion duration of the multi-mode resource-constrained project is quickly and accurately obtained. BRIEF DESCRIPTION OF THE DRAWINGS
[0019] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in 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.
[0020] Figure 1 A flowchart of a method for solving the shortest completion period of a multi-mode resource-constrained project provided in an embodiment of the present application;
[0021] Figure 2 A weight list and mode list coding schematic diagram of a method for solving the shortest completion period of a multi-mode resource-constrained project provided in an embodiment of the present application;
[0022] Figure 3A single-code network diagram of a project for a method for solving the shortest completion period of a multi-mode resource-constrained project provided in an embodiment of the present application;
[0023] Figure 4 A schematic diagram of a project scheduling plan for a method for solving the shortest completion period of a multi-mode resource-constrained project provided in an embodiment of the present application; wherein: Figure 4 (a) is the forward allocation plan diagram of resource 1; Figure 4 (b) is the forward allocation plan diagram of resource 2; Figure 4 (c) in the figure is the reverse allocation plan diagram of resource 1; Figure 4 (d) in the figure is the reverse allocation plan diagram of resource 2; Figure 4 (e) in the figure is the updated forward allocation plan diagram of resource 1; Figure 4 (f) in the figure is the updated forward allocation plan diagram of resource 2;
[0024] Figure 5 A weight adjustment diagram of a method for solving the shortest completion period of a multi-mode resource-constrained project provided in an embodiment of the present application;
[0025] Figure 6 A population evolution strategy diagram of a method for solving the shortest completion period of a multi-mode resource-constrained project provided in an embodiment of the present application;
[0026] Figure 7 A cross-operation diagram of a weight list of a method for solving the shortest completion period of a multi-mode resource-constrained project provided in an embodiment of the present application;
[0027] Figure 8 A cross-operation diagram of a mode list of a method for solving the shortest completion period of a multi-mode resource-constrained project provided in an embodiment of the present application;
[0028] Fig. 9 An operation diagram of weight variation of a method for solving the shortest completion period of a multi-mode resource-constrained project provided in an embodiment of the present application;
[0029] Fig.10 An operation diagram of a mode variation of a method for solving the shortest completion period of a multi-mode resource-constrained project provided in an embodiment of the present application. DETAILED DESCRIPTION
[0030] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
[0031] In order to make the above-mentioned objects, features and advantages of the present application more obvious and easy to understand, the present application is further described in detail below in conjunction with the accompanying drawings and specific implementation methods.
[0032] like Figure 1 As shown, the present application provides a method for solving the shortest completion period of a multi-mode resource-constrained project, including:
[0033] Step 1: Generate each coded individual by encoding weight list and mode list, and sort the weight list in each coded individual to determine the scheduling order of each activity; each mode in the mode list includes multiple resource requirements and the start time and completion time of the activity corresponding to the resource requirement; the resource requirement includes the number of required update resources and the number of required non-update resources; the modes in the mode list correspond to the weights in the weight list one by one; the weights in the weight list represent the priority of the scheduling order of different activities.
[0034] Among them, according to the minimum weight priority principle, the smallest weight in the weight list is prioritized to determine the scheduling order of each activity. Based on the weight list, the coded individuals obtained for each scheduling order are determined.
[0035] The resources include renewable resources and non-renewable resources. The renewable resources include multiple types of renewable resources and the non-renewable resources include multiple types of non-renewable resources.
[0036] Among them, the daily consumption of renewable resources shall not exceed the daily supply, and the total demand for non-renewable resources shall not exceed the total supply.
[0037] Among them, projects can be various industrial manufacturing projects or construction engineering projects, etc.
[0038] Reference Figure 2 , I = (RL, ML) represents the coded individual. Among them, RL = (01, randomkey2, ..., randomkeyj, ..., 1J), RL represents the weight list for determining the activity priority arrangement, randomkeyj∈ represents the weight value of activity j, which is a floating point number between 0 and 1, excluding 0 and 1. For example, the random weight generated by activity 5 is 0.37. The first and last activities are virtual activities, which only represent the beginning and end of the entire project and do not take up time or consume resources. The weights of the first and last activities are fixed to 0 and 1 respectively, which only means that when arranging the activity scheduling order by comparing the random weights, the first activity is always selected as 1 and the last activity is selected as J.
[0039] Secondly, ML=(m1, m2, ..., mj, ..., mJ), where mj represents the mode selected by activity j, and each mode of activity j corresponds to different resource consumption and the start time and end time of the activity.
[0040] In some embodiments, the first activity and the last activity of the project are both set as virtual activities, and the virtual activities do not occupy resources and time; the project includes the first activity, the last activity, the starting activity, the ending activity and the remaining activities.
[0041] In some embodiments, a corresponding weight is randomly generated for each activity of the project, and each weight is used as a weight list.
[0042] If a resource requirement is selected in a mode, the start time and completion time of the activity can be determined when the activity corresponding to the mode executes the resource requirement, and the duration of the activity is the completion time of the activity minus the start time of the activity.
[0043] In practical applications, for engineering practice, increasing resource input will inevitably reduce the duration of the activity. For example, assuming that the first mode of activity 2 requires 8 resources and lasts for 6 days, if the number of resources invested is only 4, then the duration of the activity is likely to be 12 days.
[0044] The pattern list is randomly generated: for example, if activity 2 has 3 patterns, then when generating the coding scheme, a random number between 1 and 3 is randomly generated as the initial pattern. Figure 2 Mode 2 is selected. The first and last activities are virtual activities, which do not occupy time and resources. There is only one mode, and the corresponding resource consumption and activity duration are both 0.
[0045] Step 2: Modify the pattern list in each coding individual according to the local search method until the pattern list meets the preset conditions to obtain the execution pattern list; the preset conditions are that the total supply of the number of resources corresponding to each pattern is greater than the total demand.
[0046] Among them, a completely random method is used to generate the weight list, that is, a floating point decimal between 0 and 1 is randomly generated for each activity.
[0047] In practical applications, the specific process of generating a pattern list is as follows: for any activity j (j = 2, 3..., J-1), randomly specify m∈M(j) (M(j) is the set of all patterns of activity j) as the initial pattern. If the pattern set M(5) of activity 5 = {1, 2, 3}, then randomly select 1, or 2, or 3 as the pattern of the initial population. It should be noted that the randomly generated pattern list may violate the non-renewable resource constraint, that is, the total number of non-renewable resources required by all activities exceeds the supply of the entire project. As shown in Table 1, if the total demand of the pattern list for a certain non-renewable resource is 35, and the total supply of non-renewable resources of the entire project is 33, it is obvious that the total demand is greater than the total supply, which does not meet the production requirements. The pattern needs to be further modified to ensure that the total supply of non-renewable resources of the project is greater than the total demand.
[0048] Table 1 Schematic diagram of the number of non-updatable resources in the initial mode of a certain coding individual
[0049]
[0050] In some embodiments, the pattern list in each coding individual is corrected according to a local search method until the pattern list meets a preset condition to obtain an execution pattern list, which specifically includes: for any coding individual, each pattern in the execution pattern list of the coding individual includes multiple target patterns; randomly select a target pattern from the target patterns of an activity as the original pattern, and determine the number of non-renewable resources corresponding to the original pattern; randomly select another target pattern from the target patterns as the new pattern, and determine the number of non-renewable resources corresponding to the new pattern; based on the same type of non-renewable resources, subtract the number of non-renewable resources corresponding to the original pattern from the number of non-renewable resources corresponding to the new pattern to obtain a first difference, and sum up each first difference to obtain a first value; compare whether the first value is less than a first preset threshold to obtain a first result; determine the execution pattern list according to the first result.
[0051] Among them, a local search method of pattern allocation is adopted.
[0052] Wherein, based on the same type of non-renewable resources, the number of non-renewable resources corresponding to the original mode is subtracted from the number of non-renewable resources corresponding to the new mode to obtain a first difference value. The first differences of the number of non-renewable resources of each type are summed to obtain the total non-renewable resource demand of the project.
[0053] In some embodiments, the execution mode list is determined according to the first result, specifically including: if the first result is yes, the new mode is replaced with the original mode, a new target mode is selected, and the number of resources corresponding to the new target mode is used as the number of resources corresponding to the new mode, and the step of "subtracting the number of resources corresponding to the original mode from the number of resources corresponding to the new mode to obtain a first difference, and summing up each first difference to obtain a first value" is returned to the step until the first value is less than a first preset threshold, then the correction is stopped, and the current new mode is determined as the execution mode; if the first result is no, a new target mode is selected, and the number of resources corresponding to the new target mode is used as the number of resources corresponding to the new mode, and the step of "subtracting the number of resources corresponding to the original mode from the number of resources corresponding to the new mode to obtain a first difference, and summing up each first difference to obtain a first value" is returned to the step of "subtracting the number of resources corresponding to the original mode from the number of resources corresponding to the new mode to obtain a first difference, and summing up each first difference to obtain a first value" is returned to the step of "subtracting the number of resources corresponding to the original mode from the number of resources corresponding to the new mode to obtain a first difference, and summing up each first difference to obtain a first value" is returned to the step of "stopping the correction when the first value is less than the first preset threshold, and the current new mode is determined as the execution mode.
[0054] Among them, if all the above modes of a certain activity do not meet the preset conditions, other activities can be randomly selected to repeat the above process until the first value is less than the first preset threshold, and the correction is stopped, and the current new mode is determined as the execution mode.
[0055] Specifically, for the pattern list where the number of non-renewable resource requirements exceeds the total supply, the infeasible pattern list is corrected through the local search method and quickly converted into a feasible pattern list. First, define the following variables:
[0056] m and m′ both represent two different modes of activity j. Assume that the new mode is m and the original mode is m′, satisfying m∈M j \{m′}; represents the number of k-th non-renewable resources required for activity j to select the m-th mode (v represents non-renewable resources); represents the number of k-th non-renewable resources required for the m′-th mode selected by activity j; DevERR(k) represents the difference between the number of k-th non-renewable resources required for the m-th mode and the number of k-th non-renewable resources required for the m′-th mode, and DevERR(k) is shown in formula (1).
[0057]
[0058] Wherein, DevERR represents the sum of the difference between the m-th mode's demand for all non-renewable resources and the m′-th mode's demand for all non-renewable resources, that is, the first difference, which satisfies formula (2):
[0059]
[0060] Wherein, ERR represents the cumulative value of all non-renewable resources k exceeding the total supply ERR(k), as shown in formula (3) and formula (4).
[0061]
[0062] Assume that the total demand for the kth non-renewable resource is The total supply Then ERR(k)=2; if the total demand for the kth non-renewable resource is The total supply Then ERR(k) = 0. Obviously, when ERR = 0, it means that the non-renewable resource constraint is satisfied, and ERR>0 means that the demand for one or more non-renewable resources exceeds the supply, and the non-renewable resource constraint is not satisfied.
[0063] Specifically, randomly select activity j. If the sum of the differences in the requirements for the number of all non-renewable resources between the new mode m and the original mode m′ is less than the first preset threshold, the new mode m replaces the original mode m′. The threshold can be selected as 0, 1 or 2, which are small enough. The specific value should be selected according to the actual project. The threshold should not be too large, otherwise it is easy to fall into an infinite loop. Generally, it is set to 1, which will have a better effect. Of course, the specific project situation needs to be tried and selected. Sometimes, the value of 0 may also obtain the optimal solution to the problem.
[0064] The purpose of the local search method using mode allocation is to give the new mode more opportunities to be selected, and the selection condition is strictly limited to the first value DevERR of the total amount of all non-renewable demands in the new and old modes cannot exceed the threshold. On the one hand, threshold>0 gives more opportunities to accept new modes, which can promote the continuous search and continuous combination of modes. If threshold<0 is set, the new mode may be difficult to meet this condition, causing the algorithm to always choose the original mode and fall into a stagnant state; on the other hand, threshold=1 or 2, that is, a sufficiently small value, there is a high probability that a certain non-renewable resource k will decrease, that is, DevERR(k)<0, and another non-renewable resource k′ will increase, that is, DevERR(k′)>0. If before the mode is changed, it is because the non-renewable resource k exceeds the amount, resulting in ERR>0, then after the correction, it is likely that the resource demand will be lower than the supply quantity, thereby obtaining a feasible solution. The pseudo code illustrates the above process in code language, as shown in Table 2.
[0065] Table 2 Pseudo code table of local search method
[0066]
[0067] Step 3: Take each coded individual as the initial population, decode the initial population, determine the start time and completion time of each activity in each coded individual, and determine the total duration corresponding to each coded individual according to the start time and completion time of each activity.
[0068] In some embodiments, the initial population is decoded to determine the start time and completion time of each activity in each coded individual, and the total duration corresponding to each coded individual is determined according to the start time and completion time of each activity, specifically including: forward decoding and reverse decoding of the single-code network diagram corresponding to each coded individual; the forward decoding represents decoding the nodes and arrow directions in the single-code network diagram from front to back; the reverse decoding represents decoding the nodes and arrow directions in the single-code network diagram from back to front; the nodes are the activities, and the arrows represent the logical dependencies between the activities; the activity before the arrow is the preceding activity, the activity after the arrow is the succeeding activity, and the succeeding activity starts after the preceding activity ends; based on the starting activity, the earliest start time and the earliest completion time of each activity are calculated according to the forward decoding; wherein the earliest start time of the starting activity is set to 0; The earliest start time of any remaining activity is equal to the maximum value of the earliest finish times of all the immediately preceding activities corresponding to the remaining activity; the earliest finish time is equal to the earliest start time of the activity plus the duration of the activity; the remaining activities are the activities between the starting activity and the ending activity; based on the ending activity, the latest finish time and the latest start time of each activity are calculated according to reverse decoding; wherein the latest finish time of the ending activity is equal to the total duration of the project; the latest finish time of any remaining activity is equal to the minimum value of the latest start times of all the immediately succeeding activities corresponding to the remaining activity; the latest start time of the activity is equal to the latest finish time of the activity minus the duration of the activity; when the earliest start time of an activity is equal to the latest start time, determine the target start time and target finish time of each activity; determine the target finish time of the ending activity as the total duration corresponding to a coded individual.
[0069] Specifically, continuously performing forward and reverse decoding on a certain coded individual is more helpful in generating a scheduling plan with a shorter construction period for the coded individual. The specific decoding process is as follows:
[0070] First, forward decoding.
[0071] Forward decoding is to decode from front to back according to the project's single-code network planning diagram (activity on node network, AON). The process has J stages, and an activity is selected in each stage. First, the first virtual activity 1 is selected, and then other activities that meet the constraints of the immediate relationship in AON are selected in turn, and finally the last virtual activity J is selected.
[0072] In AON, nodes represent activities, and arrows represent the close relationship between activities. The activity at the end of the arrow can only start after the activity at the beginning of the arrow ends. Figure 3 shown.
[0073] In the expansion process, two non-intersecting dynamically updated work (i.e., activity) sets are set: 1) the scheduled work set (Scheduled set), denoted as Sg, which contains all the work that has been scheduled with a start time, a completion time, and allocated resources; 2) the candidate work set (Decision set), denoted as Dg, which contains all the predecessor activities in the single-code network plan of the project, the set of activities that have been selected but not selected themselves, i.e. Pj represents the set of immediate predecessor activities of activity j.
[0074] Reference Figure 3 , the immediate predecessor activities of activity 9 include activities 4, 5 and 7 (where the arrows are connected), P9 = {4, 5, 7}, and the immediate successor work 12 of 9 (where the tail of the arrow is connected), S9 = {12}. In each stage, according to the work selected from Dg, the present application is designed to arrange activities according to the principle of priority with the smallest weight value. Of course, the selection rule can also be set to maximum priority. The principle is the same and the result is the same. Schedule the start time for the activity as early as possible and allocate various types of renewable resources. At any time, the demand quantity of all activities for a certain renewable resource is less than the unit time supply of the renewable resource. Starting from activity 1, gradually expand the local schedule until activity J to complete the arrangement of all work. The pseudo code for forward decoding is shown in Table 3.
[0075] Among them, g represents the stage variable, g=1:J; F1 represents the completion time of activity 1; S1 represents the set of scheduled work in stage 1; Rk(t) represents the number of available renewable resources k at time t; Pj represents the set of predecessor activities of j; EFj represents the earliest start time of j; LFj represents the latest start time of j; Fh represents the completion time of h; FJ represents the completion time of J, which is the total duration of the project; rjk represents the quantity of renewable resources k required by activity j; t represents the actual start time of activity j, within the range determined by the earliest start time and the latest start time.
[0076] Table 3 Pseudo code table for forward decoding
[0077]
[0078] For example, refer to Figure 2 and Figure 3 , determine the forward decoding order as follows:
[0079] For RL = {0.00, 0.07, 0.31, 0.35, 0.37, 0.58, 0.69, 0.67, 0.78, 0.96, 0.88, 1.00}, first select the starting activity 1, Sg = {1}, after 1 is scheduled, 1's subsequent tasks 2, 3, 4 are activated, at this time Dg = {2, 3, 4}.
[0080] The weights of activities 2, 3, and 4 are 0.07, 0.31, and 0.35 respectively. The smallest weight of 0.07 is selected, corresponding to activity 2, Sg = {1, 2}. After activity 2 is scheduled, activity 11 immediately following activity 2 is not activated because 11 has two immediately preceding activities 4 and 5 that are not scheduled, Dg = {3, 4}.
[0081] Comparing the weights of activities 3 and 4, the weight of activity 3, 0.31, is the smallest. Activity 3 is scheduled, Sg = {1, 2, 3}. After activity 3 is scheduled, activities 5, 7, and 8 after activity 3 are activated, Dg = {4, 5, 7, 8}.
[0082] Compared with the weights of 4, 5, 7, and 8, which are 0.35, 0.37, 0.69, and 0.67, the weight of activity 4 is 0.35, which is the smallest. Therefore, activity 4 is selected, Sg = {1, 2, 3, 4}. After activity 4 is scheduled, activity 6 is activated, and activity 9 cannot be activated because activities 5 and 7 have not been scheduled yet, Dg = {5, 6, 7, 8}.
[0083] Compared with the weights of 5, 6, 7, and 8, which are 0.37, 0.58, 0.69, and 0.67, the weight of activity 5 is 0.37, which is the smallest. Therefore, activity 5 is selected, Sg = {1, 2, 3, 4, 5}. After activity 5 is scheduled, activity 11 is activated, Dg = {6, 7, 8, 11}.
[0084] Compared with the weights of 6, 7, 8, and 11, which are 0.58, 0.69, 0.67, and 0.88, the weight of activity 6 is 0.58, which is the smallest. Therefore, activity 6 is selected, Sg = {1, 2, 3, 4, 5, 6}. After activity 6 is scheduled, activity 10 cannot be activated because the immediate predecessor activity 8 of activity 10 has not been scheduled yet, Dg = {7, 8, 11}.
[0085] Comparing the weights of 7, 8, and 11, the weight of activity 8 is 0.67, the smallest. Therefore, activity 8 is selected, Sg = {1, 2, 3, 4, 5, 6, 8}. After activity 8 is scheduled, activity 10 is activated because the immediate predecessor activities 6 and 8 of 10 have been scheduled, Dg = {7, 10, 11}.
[0086] Comparing the weights of 7, 10, and 11, the weight of activity 7 is 0.69, the smallest. Therefore, activity 7 is selected, Sg = {1, 2, 3, 4, 5, 6, 8, 7}. After activity 7 is scheduled, activity 9 is activated because its immediate predecessors 4 and 5 have been scheduled, Dg = {9, 10, 11}.
[0087] Comparing the weights of 9, 10, and 11, the weight of activity 9 is 0.78, which is the smallest. Therefore, activity 9 is selected, Sg = {1, 2, 3, 4, 5, 6, 8, 7, 9}, and Dg = {10, 11}.
[0088] Comparing the weights of activities 10 and 11, the weight of activity 11 is 0.88, which is the smallest. Therefore, activity 11 is selected, Sg = {1, 2, 3, 4, 5, 6, 8, 7, 9, 11}. After activity 11 is scheduled, Dg = {10}.
[0089] At this time, only activity 10 can be arranged, Sg = {1, 2, 3, 4, 5, 6, 8, 7, 9, 11, 10}.
[0090] Finally, the ending activity 12 is selected, and Sg={1, 2, 3, 4, 5, 6, 8, 7, 9, 11, 10, 12} is updated.
[0091] Assume that Figure 2 As shown in the code, the execution mode list of each activity is {1, 3, 3, 2, 2, 2, 2, 3, 2, 1, 3, 1}. Once the execution mode list is determined, the duration and resource requirements of each activity are also determined.
[0092] After obtaining the above decoding sequence Sg = {1, 2, 3, 7, 4, 6, 8, 5, 11, 9, 10, 12}, consider the updateable resource constraints, further forward decode each activity, arrange the start time and completion time. The specific process is as follows: first arrange activity 1, the starting activity 1 is a virtual activity, which does not occupy time and resources.
[0093] Schedule activity 2. The mode of activity 2 is 3, the corresponding duration is 10 days, the demand for renewable resource 1 is 0, the demand for renewable resource 2 is 6, the start time is determined to be 0, and the completion time is 10.
[0094] Schedule activity 3. The mode of activity 3 is 3, the corresponding duration is 3 days, the demand for renewable resource 1 is 1, the demand for renewable resource 2 is 0, the start time is determined to be 0, and the completion time is 3.
[0095] Schedule activity 4. The mode of activity 4 is 2, the corresponding duration is 3 days, the demand for renewable resource 1 is 8, the demand for renewable resource 2 is 0, the start time is determined to be 0, and the completion time is 3.
[0096] Schedule activity 5. The mode of activity 5 is 2, and the corresponding duration is 5 days. The demand for renewable resource 1 is 5, and the demand for renewable resource 2 is 0. Activity 5 must start after activity 3 is completed, so the earliest start time is 3. If it starts at time 3, the demand for renewable resource 1 of activity 5 is 5, so the start time is determined to be 3 and the completion time is 8.
[0097] Schedule activity 6. The mode of activity 6 is 2, and the corresponding duration is 8 days. The demand for renewable resource 1 is 2, and the demand for renewable resource 2 is 0. Activity 6 must start after activity 4 is completed, so the earliest start time is 3. The demand for renewable resource 1 of activity 6 is 2. In the time period of 3-11 days, the total amount of remaining renewable resources is 4, which meets the conditions. Therefore, the start time is determined to be 3 and the completion time is 11.
[0098] Schedule activity 8. The mode of activity 8 is 3, and the corresponding duration is 9 days. The demand for renewable resource 1 is 0, and the demand for renewable resource 2 is 2. Activity 8 must start after activity 3 is completed, so the earliest start time is 3. If it starts at time 3, 8's demand for renewable resource 2 is 2, and in the time period 3-12 days, the total amount of renewable resources remaining is 3. Therefore, the start time can only be determined to be 3 and the completion time is 12. Schedule activity 7. The mode of activity 7 is 2, and the corresponding duration is 3 days. The demand for renewable resource 1 is 8, and the demand for renewable resource 2 is 0. Activity 7 can only start in the time period 11-14 days after activity 3 is completed, and the total amount of renewable resources remaining is 3. Therefore, the start time is determined to be 11 and the completion time is 14.
[0099] Schedule activity 9. The mode of activity 9 is 2, and the corresponding duration is 2 days. The demand for renewable resource 1 is 5, and the demand for renewable resource 2 is 0. Activity 9 must start after activities 4, 5, and 7 are completed, so the earliest start time is 14. If it starts at time 14, the demand for renewable resource 1 by activity 9 is 5, and in the time period 11-14 days, the total amount of renewable resources remaining is 9, which meets the requirements. Therefore, the start time is determined to be 14 and the completion time is 16.
[0100] Schedule activity 11. The mode of activity 11 is 3, and the corresponding duration is 10 days. The demand for renewable resource 1 is 0, and the demand for renewable resource 2 is 7. Activity 11 must start after activities 2, 4, and 5 are completed, so the earliest start time is 10. If it starts at time 10, in the time period 10-20 days, the total amount of renewable resources remaining is 9, which meets the requirements. Therefore, the start time is determined to be 10 and the completion time is 20.
[0101] Schedule activity 10. The mode of activity 10 is 1, and the corresponding duration is 3 days. The demand for renewable resource 1 is 0, and the demand for renewable resource 2 is 5. Activity 10 must start after activities 6 and 8 are completed, so the earliest start time is 12. If it starts at time 12, activity 10's demand for renewable resource 2 is 5, and in the time period 12-15 days, the total amount of remaining renewable resources is 2, which does not meet the requirements. Therefore, we can only determine that the start time is 20 and the completion time is 23. The remaining resource quantity in this time period meets the requirements.
[0102] Determine the start time of activity 12 is 23.
[0103] The total duration is equal to the start time of the last virtual activity 12, which is 23 days. Figure 4 (a) Figure 4 (b)
[0104] Second, reverse decoding.
[0105] Reverse decoding is to decode the activities in the project from back to front. The selection process has J stages. First, the last activity J (virtual activity) is selected, and finally the first activity 1 (activity) is selected. The order is the same as the forward decoding, but the main difference is that the order is reversed. That is, for the activity sequence, the completion and start time of the activities are arranged in order from back to front. For the activity to be scheduled, all its subsequent work must be arranged.
[0106] For example, for the forward decoding diagram {1, 2, 3, 4, 5, 6, 8, 7, 9, 11, 10, 12}, the order is {12, 10, 11, 9, 7, 8, 6, 2, 5, 3, 4,}, and they are arranged one by one from the 23rd day onwards. Figure 4 (c) Figure 4 As shown in (d) in .
[0107] Among them, multi-mode reverse decoding is based on reverse decoding, by trying to change the execution mode of each activity, so that the activity start time of the new mode selected during reverse decoding is greater than the activity start time when the original mode is selected.
[0108] Multi-mode forward decoding is based on forward decoding. By trying to change the execution mode of each activity, the duration of the activity during forward decoding is less than the duration of the original mode plus t (t = 0 or 1), so that more new modes have the opportunity to be selected. By alternately using the above methods, the project duration is continuously improved.
[0109] For example, taking a project as an example, R is a renewable resource (such as labor, equipment, etc.), NR is a non-renewable resource (such as funds, raw materials, etc.), and each activity has three modes. The single-code network diagram is as follows: Figure 3 As shown, the construction period dj, renewable resources (superscript ρ), non-renewable resources (superscript v), and demand parameters are shown in Table 4, where the total supply of resources (R1, R2, NR1, NR2) = (9, 9, 34, 26).
[0110] Table 4 Supply quantity of resources
[0111]
[0112]
[0113] Among them, RL = {0.00, 0.07, 0.31, 0.35, 0.37, 0.58, 0.69, 0.67, 0.78, 0.96, 0.88, 1.00}, ML = {1, 3, 3, 2, 2, 2, 2, 3, 2, 1, 3, 1} is the initial code. According to the minimum priority principle, the scheduling order AL = {1, 2, 3, 4, 5, 6, 8, 7, 9, 11, 10, 12} is obtained. After forward decoding, the project schedule is obtained as follows: Figure 4 As shown in (a), the total construction period is 23 days, and the non-renewable resource consumption NR1 = 30, NR2 = 23;
[0114] Will Figure 4 (a) in the figure is arranged in ascending order of completion time to obtain a new scheduling sequence list: AL = {1, 4, 3, 5, 2, 6, 8, 7, 9, 11, 10, 12}. After reverse decoding, the execution mode of activities 8 and 11 is changed, and the start time of activities 8 and 11 is increased, and the new mode list ML = {1, 3, 3, 2, 2, 2, 2, 1, 2, 1, 1, 1} is obtained. The new schedule is as follows: Figure 4 As shown in (b), at this time, the non-renewable resource consumption NR1 = 32, NR2 = 26, and the total construction period is reduced to 22 days. Among them, for example, Figure 4 The 4-2 in (a) indicates the resource quantity allocation in the second mode corresponding to the fourth activity; Figure 4 The 3-3 in (a) indicates the resource quantity allocation in the third mode corresponding to the third activity, and 6-2 or 5-2 etc. are not repeated here.
[0115] Will Figure 4 (b) in the figure is arranged in ascending order according to the start time, and a new scheduling sequence list AL = {1, 4, 3, 6, 5, 2, 8, 7, 11, 10, 9, 12} is obtained. After forward decoding, the schedule is obtained as follows: Figure 4As shown in (c), after changing the execution mode of activities 3 and 8, NRi = 30, NR2 = 26, but the total duration is still reduced from 23 to 17. Sorting by start time, we get AL = {1, 3, 4, 5, 6, 8, 2, 7, 11, 9, 10, 12}, corresponding to Figure 4 The scheduling order list of (c) in . By repeatedly executing the above procedures, the total construction period of the project is continuously optimized.
[0116] Among them, after forward decoding and reverse decoding, the weight coding is adjusted synchronously. Figure 5 The adjustment process of RK coding is shown in the figure. The corresponding relationship is marked with the same color. Figure 5 The original pattern list encoding shown in row 1 is sorted from small to large in weights, see row 3.
[0117] After forward decoding, the progress plan is obtained as follows Figure 4 (a) and Figure 4 In (b), the scheduling sequence list obtained by sorting the completion time of each activity is shown in the fourth row; the progress plan obtained after multi-mode reverse decoding is as follows Figure 4 (c) and Figure 4 In (d), the scheduling sequence list obtained by sorting the start time of each activity is shown in the fifth row; the progress plan obtained after multi-mode forward decoding is as follows Figure 4 (e) and Figure 4 In (f), the scheduling order list obtained by sorting the completion time of each activity is shown in row 6. The scheduling order list in row 6 is matched with the weight value in row 3, and the new weight code is shown in row 7. The corresponding relationship is marked with the same color. For example, if activity 3 corresponds to 0.07, then in the new code in row 7, the weight of the third position is 0.07.
[0118] Step 4: Sort all coded individuals in order of total construction period from small to large to obtain the sorting result.
[0119] Step 5: Copy a preset number of coded individuals at the top of the sorting results as elite coded individuals to the next generation population.
[0120] Step 6: Based on the elite coding individuals and the genetic algorithm, new coding individuals are obtained, and the elite coding individuals and the new coding individuals are used as the initial population. Return to step 3, update the next generation population, until the preset number of iterations is reached, and the optimal next generation population is obtained.
[0121] Specifically, according to the total duration of the encoded individuals obtained after decoding, the encoded individuals in the population are sorted from small to large, and the TOP individuals (elite individuals) with the smallest duration in the copied population are directly entered into the next generation population. The crossover operation is continuously performed using the TOP individuals to achieve the continuous evolution of the population towards the optimal solution.
[0122] In some embodiments, obtaining new coding individuals based on the elite coding individuals and the genetic algorithm specifically includes: randomly selecting two coding individuals from the elite coding as parent individuals, and performing a crossover operation on the parent individuals based on the crossover operation of the genetic algorithm to obtain a crossover coding individual; performing a mutation operation on the crossover coding individuals based on the mutation operation of the genetic algorithm to obtain a mutated coding individual; and adjusting the weight list in the mutated coding individual to obtain a new coding individual.
[0123] Reference Figure 6 , the contemporary population is the initial population, and two individuals I are selected from the TOP (elite individuals) part F ,I M Perform crossover operation. Individuals in non-TOP part are replaced with new individuals generated after crossover in turn, and one individual is generated at a time. It is divided into two parts: scheduling sequence list and pattern list crossover. After crossover, the coded individual ID after crossover is generated.
[0124] For weight crossover, such as Figure 7 , for activity j in activities 1-J, the weight list generates 0-1 random numbers in turn. If for activity j, the random number is greater than the crossover probability p c For example, if the crossover probability is set to 0.7, the gene is inherited from I F ; If the random number corresponding to activity j is less than the crossover probability, the gene is inherited from I M .
[0125] For mode crossing, such as Figure 8 , for activities 1-J, generate 0-1 random numbers in sequence. If for activity j, the random number is greater than the crossover probability p c , then the gene is inherited from I F , which is less than the crossover probability, then the gene is inherited from I M To speed up the calculation, if replacing the new gene produces an infeasible individual, the mode change will be rejected.
[0126] Further, a mutation operation is performed, specifically including: weight mutation (such as Fig. 9 ) and pattern variation (e.g. Fig.10 ). The Before mutation in the figure is the original mode, and the After mutation is the new mode. Among them, the weight mutation is based on the mutation probability P m Determine whether the activity has mutated, such as setting the mutation probability P m is 0.1, when the random value generated by the algorithm is less than the mutation probability P mWhen , mutation occurs. If activity j in RL mutates, a random number between 0 and 1 is randomly generated to replace the original gene. Among them, the first and last activities do not mutate. The pattern mutation is based on the mutation probability P m Determine whether the mode selected in activity 1-J has mutated. If m(j) mutates, randomly select a new mode m′(j) from {1, ..., M(j)} to replace the original mode m(j). If an infeasible individual is generated after replacing m′(j), reject this mutation. The first and last activities do not mutate.
[0127] Step 7: Obtain the target coding individual with the shortest total duration value in the next generation population, and use the total duration of the target coding individual as the shortest completion duration of the multi-mode resource-constrained project.
[0128] It is worth noting that MRCPSP is more representative than RCPSP because it involves multiple execution modes, renewable resource constraints and non-renewable resource constraints (funds, materials, etc.) at the same time. MRCPSP belongs to NP-Hard problem, which is more difficult to solve. It is difficult for the traditional branch and bound method to find the exact solution to the problem; the heuristic algorithm has a fast solution speed, but it is difficult to obtain the optimal solution to the problem, and the solution deviation is very large and of little significance; meta-heuristic algorithm is a hot spot in the research of optimization problems in recent years, but it is superior to the problem that needs to consider the characteristics of non-renewable resource constraints. It is difficult for existing methods to obtain individuals that meet the feasibility of non-renewable resource constraints, resulting in the inability to solve, or the solution speed is very slow. Therefore, this application effectively solves the above problems.
[0129] In an exemplary embodiment, a computer device is further provided, including a memory and a processor, wherein a computer program is stored in the memory, and the processor implements the steps in the above-mentioned method embodiments when executing the computer program.
[0130] In an exemplary embodiment, a computer-readable storage medium is provided, storing a computer program, and when the computer program is executed by a processor, the steps in the above method embodiments are implemented.
[0131] In an exemplary embodiment, a computer program product is provided, including a computer program, and when the computer program is executed by a processor, the steps in the above method embodiments are implemented.
[0132] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with relevant regulations.
[0133] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiments can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to the memory, database or other medium used in the embodiments provided in the present application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRdM), magnetic random access memory (MRdM), ferroelectric random access memory (FRdM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RdM) or external cache memory, etc. By way of illustration and not limitation, RdM may be in various forms, such as static random access memory (SRdM) or dynamic random access memory (DRdM).
[0134] The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. The non-relational database may include a distributed database based on blockchain, etc., but is not limited thereto. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, etc., but is not limited thereto.
[0135] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0136] This article uses specific examples to illustrate the principles and implementation methods of this application. The description of the above embodiments is only used to help understand the method and core ideas of this application. At the same time, for those skilled in the art, according to the ideas of this application, there will be changes in the specific implementation methods and application scope. In summary, the content of this specification should not be understood as limiting this application.
Claims
1. A method for solving the shortest completion period of a multi-mode resource-constrained project, characterized in that: The method comprises: The coding weight list and the mode list generate each coding individual, and the weight list in each coding individual is sorted to determine the scheduling order of each activity; each mode in the mode list includes multiple resource requirements and the start time and completion time of the activity corresponding to the resource requirements; the resource requirements include the number of required update resources and the number of required non-update resources; the modes in the mode list correspond to the weights in the weight list one by one; the weights in the weight list represent the priority of the scheduling order of different activities; Modifying the mode list in each coding individual according to the local search method until the mode list meets the preset condition, thereby obtaining an execution mode list; the preset condition is that the total supply of the number of resources corresponding to each mode is greater than the total demand; Taking each coded individual as an initial population, decoding the initial population, determining the start time and the completion time of each activity in each coded individual, and determining the total duration corresponding to each coded individual according to the start time and the completion time of each activity; Sort all the coded individuals in the order of the total duration from small to large to obtain the sorting result; A preset number of coding individuals at the top of the sorting results are copied to the next generation population as elite coding individuals; Based on the elite coding individuals and the genetic algorithm, new coding individuals are obtained, and the elite coding individuals and the new coding individuals are used as the initial population. Return to the step of "using each coding individual as the initial population, decoding the initial population, determining the start time and completion time of each activity in each coding individual, and determining the total duration corresponding to each coding individual according to the start time and completion time of each activity", and update the next generation population until the preset number of iterations is reached to obtain the optimal next generation population; A target coding individual with the shortest total duration value in the next generation population is obtained, and the total duration of the target coding individual is used as the shortest completion duration of the multi-mode resource-constrained project.
2. The method for solving the shortest completion period of a multi-mode resource-constrained project according to claim 1 is characterized in that: According to the local search method, the pattern list in each coding individual is modified until the pattern list meets the preset conditions, and the execution pattern list is obtained, which specifically includes: For any coding individual, each mode in the execution mode list of the coding individual includes multiple target modes; randomly selecting a target mode in the target modes of an activity as an original mode, and determining the number of non-renewable resources corresponding to the original mode; Randomly select another target mode among the target modes as a new mode, and determine the number of non-renewable resources corresponding to the new mode; According to the same type of non-renewable resources, the number of the non-renewable resources corresponding to the original mode is subtracted from the number of the non-renewable resources corresponding to the new mode to obtain a first difference value, and each first difference value is summed to obtain a first value; Compare whether the first value is less than a first preset threshold value to obtain a first result; An execution mode list is determined according to the first result.
3. The method for solving the shortest completion period of a multi-mode resource-constrained project according to claim 2 is characterized in that: Determining an execution mode list according to the first result specifically includes: If the first result is yes, the new mode is replaced with the original mode, a new target mode is selected, and the number of resources corresponding to the new target mode is used as the number of resources corresponding to the new mode, and the process returns to the step of "subtracting the number of resources corresponding to the original mode from the number of resources corresponding to the new mode to obtain a first difference value, and summing each first difference value to obtain a first value", until the first value is less than a first preset threshold, the correction is stopped, and the current new mode is determined as the execution mode; If the first result is no, a new target mode is selected, and the number of resources corresponding to the new target mode is used as the number of resources corresponding to the new mode, and the process returns to step "subtracting the number of resources corresponding to the original mode from the number of resources corresponding to the new mode to obtain a first difference, and summing each first difference to obtain a first value", until the first value is less than a first preset threshold, the correction is stopped, and the current new mode is determined as the execution mode; Each execution mode is obtained to obtain the execution mode list.
4. The method for solving the shortest completion period of a multi-mode resource-constrained project according to claim 1 is characterized in that: Decoding the initial population, determining the start time and completion time of each activity in each coded individual, and determining the total duration corresponding to each coded individual according to the start time and completion time of each activity, specifically including: The single-code network diagram corresponding to each coded individual is forward decoded and reverse decoded; the forward decoding represents decoding the nodes and arrow directions in the single-code network diagram from front to back; the reverse decoding represents decoding the nodes and arrow directions in the single-code network diagram from back to front; the nodes are the activities, and the arrows represent the logical dependency relationship between the activities; the activity before the arrow is the immediately preceding activity, the activity after the arrow is the immediately succeeding activity, and the immediately succeeding activity begins after the immediately preceding activity ends; Based on the starting activity, the earliest start time and earliest finish time of each activity are calculated according to forward decoding; wherein the earliest start time of the starting activity is set to 0; the earliest start time of any remaining activity is equal to the maximum of the earliest finish times of all the immediate predecessor activities corresponding to the remaining activity; the earliest finish time is equal to the earliest start time of the activity plus the duration of the activity; the remaining activities are the activities between the starting activity and the ending activity; Based on the terminal activity, the latest completion time and the latest start time of each activity are calculated according to the reverse decoding; wherein the latest completion time of the terminal activity is equal to the total duration of the project; the latest completion time of any remaining activity is equal to the minimum of the latest start times of all subsequent activities corresponding to the remaining activity; the latest start time of the activity is equal to the latest completion time of the activity minus the duration of the activity; When the earliest start time of an activity is equal to the latest start time, determine the target start time and target finish time for each activity; The target completion time of the terminal activity is determined as the total duration corresponding to a coded individual.
5. The method for solving the shortest completion period of a multi-mode resource-constrained project according to claim 1 is characterized in that: Based on the elite coding individuals and the genetic algorithm, a new coding individual is obtained, which specifically includes: Randomly selecting two coding individuals from the elite coding as parent individuals, and performing a crossover operation on the parent individuals based on the crossover operation of the genetic algorithm to obtain a crossover coding individual; Based on the mutation operation of the genetic algorithm, a mutation operation is performed on the crossover coding individual to obtain a mutated coding individual; Adjust the weight list in the mutated coding individual to obtain a new coding individual.
6. The method for solving the minimum completion period of a multi-mode resource-constrained project according to claim 1 is characterized in that: The first activity and the last activity of the project are both set as virtual activities, which do not occupy resources and time; the project includes the first activity, the last activity, the starting activity, the ending activity and the remaining activities; the starting activity is the next activity after executing the first activity; the ending activity is the previous activity before executing the last activity.
7. The method for solving the shortest completion period of a multi-mode resource-constrained project according to claim 1 is characterized in that: A corresponding weight is randomly generated for each activity of the project, and each weight is used as a weight list.
8. A computer device comprising: A memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the method for solving the shortest completion period of a multi-mode resource-constrained project according to any one of claims 1 to 7.
9. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the method for solving the shortest completion period of a multi-mode resource-constrained project according to any one of claims 1 to 7 is implemented.
10. A computer program product, comprising a computer program, characterized in that When the computer program is executed by a processor, the method for solving the shortest completion period of a multi-mode resource-constrained project according to any one of claims 1 to 7 is implemented.
Citation Information
Patent Citations
Multimode resource limited project scheduling method using hierarchical adaptive intelligent algorithm
CN111126800A
Cement production line construction operation scheduling method based on genetic algorithm
CN116957219A
Guiding genetic programming method for resource-constrained project scheduling
CN117350469A
Multi-resource progress-resource optimization method and system based on genetic algorithm
CN117910632A