Method for allocating resources and processes for design and production plan scheduling5826236Abstract A scheduling computer system optimizes the match between allocation of processes and resources. To do so, the system temporarily allocates the resources to a process selected based on the attributes of the resources and the processes, as well as the processing start and desired processing end times. In doing so, the system avoids selecting processes to which resources have been already allocated. The system also determines a resulting time value and a resulting fitness value based on the temporary allocation. Using the resulting time value and the resulting fitness value, the system determines the optimum resource for a particular process and allocates the resource to the process accordingly. The system also generates a scheduling chart illustrating the resource allocation. Claims What is claimed is: Description BACKGROUND OF THE INVENTION
TABLE 1
______________________________________
Parts
Concept Specification
Internal
diagram
ID Item name design preparation
design
preparation
______________________________________
11 Mechanical part
11-1 Loading 8 6 21 6
mechanism
11-2 Head 4 8 21 4
11-3 Winder 6 6 21 4
12 Circuit part
12-1 Mechanical part
8 10 25 6
driver
12-2 Image signal
6 10 10 4
processor
12-3 Power supply
6 6 10 4
13 Cabinet
13-1 Cabinet 4 4 6 4
______________________________________
In this embodiment, each process is identified by the ID and process sequence numbers separated by a hyphen, as shown in Table 1. Two models, model 1 and model 2, are identified by the number in the tens position of ID. For example, the concept design process of the loading mechanism of the mechanical part of model 1 is represented as "11-1-1", and the specification process of the winder of the mechanical part of model 2 is represented as "21-3-2". In this embodiment, this standard manpower table is used also for model 2, assuming that the contents of, and the manpower required for, each process for model 1 are the same as those for model 2. The standard manpower table, shown in Table 1, is stored in the process data 5a as data A. A chief designer is assigned to each major item (mechanical part, circuit part, and cabinet) of each model. There are six designers, "A" to "F", and major items are assigned to three of them, "A" to "C". The user uses the process defining means 1 to enter this chief designer data in the tabular form, as shown in Table 2.
TABLE 2
______________________________________
ID Item name Chief designer
______________________________________
1 Mechanical part
A
2 Circuit part
B
3 Cabinet C
______________________________________
This chief designer data is stored in the process data 5a as data B. Each process is done in the following order: 1. concept design, 2. specification preparation, 3. internal design, and 4. parts diagram preparation. This sequence relation is set up by referring to data A shown in Table 1. In addition, there are the following restrictions on the design sequence: a) The concept design of the mechanical part driver starts after the concept design of the mechanical part ends. b) The concept design of the power supply starts after the specifications for the mechanical part driver and the image signal processor are prepared. c) The concept design of the cabinet starts after the internal design of the mechanical part and the circuit part ends. The user uses the sequence relation defining means 2 to enter the relation described in a) to c) above. In this embodiment, the sequence relation of processes is defined in tabular form as shown in Table 3.
TABLE 3
______________________________________
Predecessor
Successor Predecessor
Successor
process process process process
______________________________________
11-1-1 12-1-1 21-1-1 22-1-1
11-2-1 12-1-1 22-1-1 22-1-1
11-3-1 12-1-1 21-1-1 22-1-1
12-1-2 12-3-1 21-1-1 22-1-1
12-2-2 12-3-1 22-2-2 22-3-1
11-1-3 13-1-1 21-1-3 23-1-1
11-2-3 13-1-1 21-2-3 23-1-1
11-3-3 13-1-1 21-3-3 23-1-1
12-1-3 13-1-1 22-1-3 23-1-1
12-2-3 13-1-1 22-2-3 23-1-1
12-2-3 13-1-1 22-2-3 23-1-1
______________________________________
The sequence relation table shown in Table 3 is stored in the process data 5a as data C. For each major item and for each process of a major item, the user uses the resource defining means 3 to enter data on the ability of each designer. This data indicates whether or not a designer can do each process of a major item and, if he can, how much ability he has. This data is entered in tabular form as shown in Table 4.
TABLE 4
______________________________________
Concept Specification Parts diagram
Designer name
design preparation
Internal design
preparation
______________________________________
Mechanical part/Cabinet (mechanical design)
A 1.0 1.0 1.0 1.0
B 1.0 1.0 1.0 1.0
C 1.0 1.0 1.0 1.0
D x 1.0 1.0 1.0
E x x x x
F x 0.8 0.8 0.8
Circuit part (electrical design)
A 1.0 1.0 1.0 1.0
B 1.0 1.0 1.0 1.0
C 1.0 1.0 1.0 1.0
D x x x x
E x 1.0 1.0 1.0
F x 0.8 0.8 0.8
______________________________________
Table 4 indicates that "D", "E", and "F" are outside designers and that they cannot do the concept design. The table indicates that the outside designer "D" cannot do the electrical design job and that the outside designer "E" can do only the electrical design job. It also indicates that "D" and "E" have the standard ability and that "F" has 0.8 times the standard ability. The value of 0.8 specified for "F" affects the work time; for example, it takes 10 days for "F" to do a job whose standard work time is 8 days. The ability defining table, shown in Table 4, is stored in the resource data 5b as data D. The user uses the resource defining means 3 to enter the holidays of each designer. In this embodiment, it is assumed that Saturday and Sunday are holidays and that, for simplicity, there is no special holidays. The schedule time starts on Mar. 28, 1994 and, according to the design of this system, time data is treated as integral values on a daily basis with midnight on March 28 as being 0. Therefore, a job which starts on April 1 and ends on April 2 actually ends by midnight on April 2. In this case, the work time is only 1 day (April 1). In addition, the user uses the start/end time setting means 4 to enter the earliest start date and the desired end date of each model, as shown in Table 5.
TABLE 5
______________________________________
Medel Earliest start date
Desired end date
______________________________________
1 1994/4/1 1994/7/1
2 1994/6/1 1994/10/1
______________________________________
The start/end date setup table, shown in Table 5, is stored in the process data 5a as data E. In addition to various types of data described above, the schedule data 5c also includes data F, shown in Table 6, for use in internal calculation for scheduling.
TABLE 6
______________________________________
ID name EST EET LST LET RS START END
______________________________________
11-1-1 3/28 3/28 3/28 3/28 NONE -- --
11-1-2 3/28 3/28 3/28 3/28 NONE -- --
11-1-3 3/28 3/28 3/28 3/28 NONE -- --
11-1-4 3/28 3/28 3/28 3/28 NONE -- --
11-2-1 3/28 3/28 3/28 3/28 NONE -- --
.
.
22-3-4 3/28 3/28 3/28 3/28 NONE -- --
23-1-1 3/28 3/28 3/28 3/28 NONE -- --
23-1-2 3/28 3/28 3/28 3/28 NONE -- --
23-1-3 3/28 3/28 3/28 3/28 NONE -- --
23-1-4 3/28 3/28 3/28 3/28 NONE -- --
Model 1 3/28 3/28 3/28 3/28 -- -- --
Model 2 3/28 3/28 3/28 3/28 -- -- --
______________________________________
At the start of scheduling, the standard manpower table, which is stored as data A, is expanded into data F. In table 6, the column "RS" contains resource data, and "NONE" in that column means that the resource is not yet allocated. The date 3/28, the start time of the above-described schedule time, is set as the initial value. The columns "EST", "EET", "LST", and "LET" contain the results of PERT calculation, meaning the earliest start time, earliest end time, latest start time, and latest end time, respectively. In the PERT calculation, this embodiment uses the standard manpower time as the work time. The column "START" contains the start time of actual allocation, and the column "END" contains the end time of actual allocation. (3) Estimating an allowable delay amount Scheduling starts after data is set up as described above. The following explains, with the use of a flowchart in FIG. 2, how scheduling system works. The explanation begins with the estimate of an allowable delay amount. In step S1, the weight modifying means 12 performs the PERT calculation based on the sequence relation defined by the sequence relation defining means 2. FIG. 3 shows, in a network form, the sequence relation of data C stored in Table 3. FIG. 4 shows the result of the PERT calculation, based on this sequence relation, with the start time of the concept design of each model as 0. The "earliest allocation time" in FIG. 4 indicates the earliest time at which processing may be started or ended for each process, while the "latest allocation time" indicates the latest time before which processing must be started or ended for all the processes of the model to have completed at the time of the deadline which is the "earliest allocation time" of the last process. Therefore, if we don't have to worry about the number of designers and chief designers, we will be able to complete this project within 69 days. In other words, it takes at least 69 days to complete this project. The result of the PERT calculation is stored as data F, as shown in Table 7.
TABLE 7
______________________________________
ID name EST EET LST LET RS START END
______________________________________
11-1-1 4/1 4/9 4/23 5/1 NONE -- --
11-1-2 4/9 4/15 5/17 5/23 NONE -- --
11-1-3 4/15 5/6 5/23 6/13 NONE -- --
11-1-4 5/6 5/12 6/25 7/1 NONE -- --
11-2-1 4/1 4/5 4/27 5/1 NONE -- --
.
.
22-3-4 7/19 7/23 9/27 10/1 NONE -- --
23-1-1 7/22 7/26 9/13 9/17 NONE -- --
23-1-2 7/26 7/30 9/17 9/21 NONE -- --
23-1-3 7/30 8/5 9/21 9/27 NONE -- --
23-1-4 8/5 8/9 9/27 10/1 NONE -- --
Model 1 4/1 6/9 4/23 7/1 -- -- --
Model 2 6/1 8/9 7/24 10/1 -- -- --
______________________________________
EST (earliest start time) column and the LST (latest start time) column for model 1 and model 2 in the above table contain the start time for the model itself, and the EET (earliest end time) column and the LET (latest end time) column contain the end time for the model itself. For an already-allocated process, the PERT calculation is performed with the allocated start time, earliest start time (EST), and latest start time (LST) set equal, and with the allocated end time, earliest end time (EET), and latest end time (LET) set equal. After the PERT calculation ends, the weight modifying means 12 estimates an allowable delay amount for each model. An allowable delay amount, which is a weight for a chief designer at allocation time, is a delay amount allowable for the chief designer in each allocation. This allowable delay amount is obtained from the result of the PERT calculation described above. That is, the number of spare days for each process allocation is calculated by dividing the number of spare days for a model (difference between the latest end time LET and the earliest end time EET) by the number of unallocated processes (number of all processes). The following is a formula for finding the allowable delay amount Dn for each process of model n: ##EQU1## where .alpha. is a coefficient for adjusting the latest end time of each model to the desired end time; this varies according to how the process network is formed. More specifically, if the process network is serial with an equal delay in all the jobs, the coefficient .alpha. becomes closer to 1. However, for a project where there are many parallel processes as in this embodiment, the delay amounts are not likely to be equal. This is because a delay in one process delays the subsequent processes but increases the number of spare days for the parallel processes and therefore those processes are more likely to be scheduled without delay. As a result, their scheduled end time is earlier than the desired end time. The value of .alpha. must be adjusted according to how the process network is formed for each model. For convenience, it is assumed that .alpha.=10 in this embodiment. The weight base value .alpha. is specified by the first weight setting means 11a. Thus, the allocable delay amounts D1 and D2 for models 1 and 2 are obtained by the following formula: ##EQU2## (4) Process selection Next, the system sequentially selects processes to be allocated to designers. That is, in step S2, the system determines whether there are processes to be allocated and, if there are such processes, passes control to step S3. In step S3, the process selecting means 10 performs the PERT calculation. For an already-allocated process, the process selecting means 10 performs only the PERT calculation for the earliest time, assuming that the allocated start time and the earliest start time (EST) are equal and that the allocated end time and the earliest end time (EET) are equal. The result of this calculation is written into the data F in the schedule data 5c. During the first scheduling, the result obtained in the above calculation is equal to the result obtained in step S1. In step 4, the process selecting means 10 selects one of high-priority processes. In this embodiment, a priority is defined as "earliest start time EST+(latest end time LET-earliest start time EST).times..theta.". In this embodiment, .theta. is fixed to 0.5. The value of .theta. may be some other value. The process selecting means 10 references data F in Table 7 to select the earliest start time EST and the latest end time LET; if there are a plurality of times that have the same value, it selects the one with the smallest sequence number. In this case, it selects the process "11-1-1". Instead of selecting a process according to the priority only, a process may also be selected by evaluating the correlation between the allocation status of each designer and each process. For example, by changing the value of .theta., the priority may be adjusted as described below. That is, the value of .theta., which is now variable, may be specified for each process so that the value of .theta. for a process whose chief designer has the longest vacant time at a particular moment becomes smaller. This causes a process with a smaller value of .theta. to be selected with priority. As a result, the chief designer is more likely to be allocated to this process compared with other processes with the same work time. In this case, the second weight setting means 11b is used to set a weight, which increases the priority of the above process. For example, let the vacant time of each resource (r) be T(r), the chief designer of each process i be Ri, and the second weight be m (0<m<1). .theta. i of each process is as follows: .theta.i=(0.5-m/2)+m* {T(Ri)-min(T(r))}/{max(T(r))-min(T(r))} In this case, the value of .theta. i is in the range "0.5"+m. As described above, a process evaluation value generated using the value of .theta. i (that is, a selection base value), expressed in time values, is always in the range from the earliest start time EST to the latest end time LET. A process selected here is always allocated between the earliest start time EST and the latest end time LET. So, if the selection base value is largely outside this range, some problems may arise. That is, there is a possibility that a process which should be processed later is selected before a process that can be processed earlier. In many cases, this will involve a waste in allocation; for example, an unwanted vacant time is created or a lower-priority process is largely delayed. To avoid these problems, a priority may be assigned to an evaluation value. (5) Temporary allocation Next, the system temporarily allocates a selected process to a designer. In step S5, the temporary allocating means 7 selects one of designers, "A" to "F", defined by the resource defining means 3. In this embodiment, they are selected in the order "F" to "A", although they may be selected in any order. In step S6, the temporary allocating means 7 checks if all the designers were allocated to the process, and if there is one or more unallocated designers, control is passed to step S7. In this example, the temporary allocating means 7 selects the designer "F" first. In step S7, the temporary allocating means 7 references data D stored in Table 4 (ability defining table) to check if the selected resource may be allocated to the process selected in step S4. Because the process "11-1-1" is the concept design of the mechanical part, the temporary allocating means 7 determines that the designer "F" cannot be allocated to the process, and returns control to step S5. In this case, a list of resources that can be allocated to each process, if prepared previously, combines step S5 through step S7 into one step. This list allows the temporary allocating means 7 to determine if a process may be allocated to a resource without having to repeat steps S5 and S6. Similarly, in step S5, the temporary allocating means 7 selects "E" and "D" sequentially, and determines that the process cannot be allocated to them. When the temporary allocating means 7 selects "C", it references data D (ability defining table) in Table 4 in step 6 to find that the process may be allocated to "C", and passes control to step S8. Then, in step S8, the temporary allocating means 7 references data A (standard manpower table) in Table 1 and finds that the standard manpower required for the process is 8 days. It also references data D (ability defining table) in Table 4 to find how long the designer will take to do this process (work time). Because the ability defining table indicates that the ability of the designer "C" to do the concept design of the mechanical part is 1.0, the work time is calculated as follows: Standard work time(8 days)/Ability definition(1.0)=8 days Note that a list of designers and their work time required for each design item may be prepared in advance. This list, if prepared, eliminates the need to do this calculation at this time. In step S9, the resource determining means 7 references data F in Table 7 to find a period of time during which the work time may be allocated for the resource. Here, it finds a period of time during which designer "C" can be allocated for 8 consecutive days without any other intervening work time. If no process is not yet allocated to "C", the resource determining means 8 finds a time starting on 4/1 and ending on 4/13 (midnight) with two weekends in between. It then perform s the PERT calculation to obtain an evaluation value that is used when the process "11-1-1" is allocated to designer "C". Before performing the PERT calculation, the temporary allocating means 7 temporarily copies data F in Table 7 to another area, sets the earliest start time EST and the latest start time LST of "11-1-1" to 4/1, and sets the earliest end time EET and the latest end time LET to 4/13 (hereafter called temporary allocation). And, during PERT calculation, the temporary allocating means 7 retries the calculation of the only earliest start time EST and the earliest end time EET. As a result, data is as changed shown in Table 8.
TABLE 8
______________________________________
ID name EST EET LST LET RS START END
______________________________________
11-1-1 4/1 4/13 4/23 5/1 NONE -- --
11-1-2 4/13 4/19 5/17 5/23 NONE -- --
11-1-3 4/19 5/10 5/23 6/13 NONE -- --
11-1-4 5/10 5/16 6/25 7/1 NONE -- --
11-2-1 4/1 4/5 4/27 5/1 NONE -- --
.
.
22-3-4 7/19 7/23 9/27 10/1 NONE -- --
23-1-1 7/22 7/26 9/13 9/17 NONE -- --
23-1-2 7/26 7/30 9/17 9/21 NONE -- --
23-1-3 7/30 8/5 9/21 9/27 NONE -- --
23-1-4 8/5 8/9 9/27 10/1 NONE -- --
Model 1 4/1 6/13 4/1 7/1 -- -- --
Model 2 6/1 8/9 7/24 10/1 -- -- --
______________________________________
(6) Finding the evaluation value of the combination Then, the system finds an evaluation value when the designer is allocated to the process. The evaluation value V is calculated by subtracting the fitness evaluation value for resource selection (Vr) from the time evaluation value for the allocation time (Vd). The smaller the value, the better the evaluation. The first evaluating means 9a calculates the time evaluation value for the allocation time (Vd) based on the above PERT calculation. The delay (S) in the work time of the model itself caused when the designer is allocated to the process (after temporary allocation) is calculated using the following formula: ##EQU3## Because the earliest end time EET of the model after temporary allocation is 6/13 and the earliest end time EET of the model before temporary allocation is 6/9, the delay in the work time of the model is calculated as follows: S=6/13-6/9=4 The time evaluation value Vd is calculated by the following formula: ##EQU4## where, T is the number of days from the schedule start time (3/28 in this example) to the end time of the temporary allocation of the process. Therefore, the time evaluation value Vd is calculated by the following formula: ##EQU5## Then, the first evaluating means 9b finds the fitness evaluation value for resource selection Vr. This fitness evaluation value Vr is set as follows: ##EQU6## Because the chief designer of the process "11-1-1" is "A", Vr=0. The resource determining means 8 finds the evaluation value V using the time evaluation value Vd, calculated by the first evaluating means 9, and the fitness evaluation value Vr calculated by the second evaluating means 9b. In the above example, the evaluation value V obtained by combining the process "11-1-1" and the designer "C" is calculated as follows: V=12-0=12 (7) Determining the best designer Next, the system determines the best designer. In step S10, the resource determining means 8 checks if the evaluation value V obtained as described above is best and, if it is best, stores it. In the above example, because the evaluation value V (12) is best for the process "11-1-1" the resource determining means 8 stores this evaluation value V and the designer "C" in the schedule data 5c. (8) Evaluation of other designers Then, the system finds the evaluation value V of other designers in the similar way. That is, control goes back to step S5, and the evaluation value for the next designer B is calculated similarly in steps S5 to S10. Because the end time (4/13) is the same as when the designer "C" was temporarily allocated to the process and because neither "C" nor "D" is the chief designer, the evaluation value V is 12. This is the same as that of "C" and, therefore, the best designer "B" is not updated. Then, the system finds an evaluation value for the next designer A in steps S5 to S10. First, "A" is temporarily allocated to the process "11-1-1". Because the evaluation value for the allocation time Vd is the same but "A" is the chief designer, the evaluation value for resource selection Vr is D1 (that is, 7.86). Therefore, the evaluation value V for designer "A" is calculated as follows: V=12-7.86=4.14 This means that the evaluation value V for "A" is better than that for "C". In step S10, this evaluation value V (4.14) and the best designer "A" are stored in the schedule data 5c. After all the designers are evaluated, control goes to step S11. (9) Allocating the process to the best designer Finally, the system allocates the best designer to the process. In step S11, the process allocating means 6 allocates to the process the designer stored in the schedule data 5c by the resource determining means 8. In the above example, the process "11-1-1" is allocated to the best designer "A". Data F in Table 9 looks like as shown below.
TABLE 9
______________________________________
ID name EST EET LST LET RS START END
______________________________________
11-1-1 4/1 4/13 4/23 5/1 A 4/1 4/13
11-1-2 4/13 4/19 5/17 5/23 NONE -- --
11-1-3 4/19 5/10 5/23 6/13 NONE -- --
11-1-4 5/10 5/16 6/25 7/1 NONE -- --
11-2-1 4/1 4/5 4/27 5/1 NONE -- --
.
.
22-3-4 7/19 7/23 9/27 10/1 NONE -- --
23-1-1 7/22 7/26 9/13 9/17 NONE -- --
23-1-2 7/26 7/30 9/17 9/21 NONE -- --
23-1-3 7/30 8/5 9/21 9/27 NONE -- --
23-1-4 8/5 8/9 9/27 10/1 NONE -- --
Model 1 4/1 6/13 4/23 7/1 -- -- --
Model 2 6/1 8/9 7/24 10/1 -- -- --
______________________________________
As shown above, "A" is set in the resource RS column for the process "11-1-1", and the earliest start time EST (4/1) and the earliest end time EET (4/13) are set in the start time START column and the end time END column, respectively. The system repeats the above steps to create a schedule. As a designer is allocated to more processes, the start/end times of those processes vary according to the designer. So, the system evaluates a combination of a process and a designer by estimating the time required for the designer to do the process and by checking if the designer is the chief designer of the process. It then compares the resulting evaluation values. And, if the delay is in an allowable range, the system allocates the chief designer to the process; otherwise, the system allocates to the process a non-chief designer who can perform the process within the allowable time limit. After the system allocates all the processes, it finds, in step S2, that there is no more processes to be allocated and passes control to step S11 to terminate scheduling. Table 10 shows data F generated as a result of scheduling.
TABLE 10
______________________________________
ID name EST EET LST LET RS START END
______________________________________
11-1-1 4/1 4/13 4/23 5/1 A 4/1 4/13
11-1-2 4/13 4/21 5/17 5/23 D 4/13 4/21
11-1-3 5/3 6/1 5/23 6/13 A 5/3 6/1
11-1-4 6/7 6/15 6/25 7/1 A 6/7 6/15
11-2-1 4/1 4/7 4/27 5/1 C 4/1 4/7
.
.
22-3-4 10/4 10/8 9/27 10/1 B 10/4 10/8
23-1-1 9/20 9/24 9/13 9/17 C 9/20 9/24
23-1-2 9/26 9/30 9/17 9/21 C 9/26 9/30
23-1-3 9/30 10/8 9/21 9/27 C 9/30 10/8
23-1-4 10/10 10/14 9/27 10/1 C 10/10 10/14
Model 1 4/1 7/8 4/23 7/1 -- -- --
Model 2 6/1 10/14 7/24 10/1 -- -- --
______________________________________
FIGS. 5 to 9 are Gantt charts showing the result of scheduling. FIG. 5 shows the schedule for each design item, with the name of a designer for each process. FIGS. 6 to 9 show the schedule for each designer. Boxes on Saturday and Sunday represent holidays. The holidays of each designer, which are entered with the use of the resource defining means 3, increase these holiday boxes and make the schedule more irregular. The system does not allocate processes on irregularly-set holidays, making it possible to create a schedule which is consistent with the priority and ability and which takes the holidays of each designer into consideration. As shown in FIG. 9, the desired end date (completion date) is exceeded by a few days in this schedule. This exceeded number of days varies according to the coefficient .alpha. used in calculating the above-described allowable delay amount D. That is, this coefficient .alpha. allows the end time to be adjusted in accordance with the completion date. The coefficient .alpha., primarily used for parallel processes, should be decreased to meet the completion date. Note that, to end the project not too behind the desired end date, it is necessary to set the desired end date so that the project ends a little ahead of the end date of the whole work time calculated by the first PERT calculation. When a plurality of projects share the same designer group, it is also necessary to set the end date so that the project ends a little more ahead of the end date. For a project whose schedule is too tight to do so, emphasis should be placed on ending the project as soon as possible rather than on allocating chief designers to processes. A schedule that is too slack causes chief designers to be allocated to all the processes and the project to end far ahead of the desired end date. For example, assume that the designers will work on the design of only model 1 in a single project. Table 11 shows the actual end dates and the number of processes to which chief designers are allocated for a plurality of desired end dates.
TABLE 11
______________________________________
Desired end Scheduled
Number of processes allocated
date date to chief designers
______________________________________
6/1 7/13 6
7/1 7/8 19
7/15 7/13 22
8/1 8/5 25
9/1 8/5 25
10/1 9/9 26
______________________________________
The table shows that a desired end date on or earlier than 6/1 decreases the number of processes to which chief designers are allocated and that the end date is largely behind the desired date. It also shows that a desired end date on or later than 8/1 increases the number of processes to which chief designers are allocated and that it will take less time to end the project. On the other hand, a desired date between 7/1 and 8/1 causes the project to end around a desired end date. Thus, an approximate desired end date, if specified, allows the user to schedule his project with the priority of designers in mind. As described above, this embodiment evaluates the fitness of processes and designers, takes the time factor into account, and allows the user to well balance them with the use of weights. This enables him to make an optimum schedule which ensures the best balance of the fitness and the time factor. This embodiment finds the earliest start time and the latest end time of each process based on the time relations of a plurality of processes, and selects a process with the minimum sum of those times, thus selecting processes in descending order of priority. In addition, because evaluation is based on the result of the PERT calculation, the processes once allocated need not be reallocated, ensuring a reduced scheduling time. In this embodiment, work is classified by work type (electrical design and mechanical design), each work type being classified by process (concept design, specification preparation, etc.). And, the ability of each resource (designer) is defined according to this classification. However, process data and resource data need not always be entered according to this classification. They may be entered according to the criteria described below. Data may be entered in any form as long as each of the following can be identified uniquely: 1) Available resource 2) Ability of each resource; that is, a period of time a designer can work. 3) Chief designer, best resource, or fitness for the resource For example, resources are classified into a plurality of ability groups such as experienced group, middle group, and beginner group. An ability value is set for each ability group, and only information about a group to which each resource belongs is set. This method decreases the number of values that must be entered, making the entry job easier. Similarly, when there are many processes, they may be classified into several types each of which may have a value. Suppose that resources belong to sections. In this case, if there are two resources who work on the same item and if the section to which the resource responsible for the preceding process belongs is different from that to which the resource responsible for the following process belongs, an intermediate result must be passed from the preceding resource to the following resource. This requires extra time. Therefore, it may be necessary, in advance, to specify a group of designers who will work on the same item or a plurality of related items. In this case, the following table, which contains items for each group, is used.
TABLE 12
______________________________________
Section Designer Major item
______________________________________
First development section
A, B, C 11, 13
Second development section
D, E 12
______________________________________
For chief designers, it is also possible to specify items for which each resource of a group is responsible or to specify a designer who is responsible for each item. B. Second Embodiment The following explains the scheduling system and scheduling method used in the second embodiment of this invention. The configuration of the scheduling system according to this embodiment is not described here, because it has the same configuration as the first embodiment. (1) How is scheduling done in the second embodiment? The following deals with production plan problems, with particular emphasis on multi-process job shop problems. In the following discussion, consider a mass production line where a job processes three types of products. The product has the shape of a plate, and the system schedules the painting process of this product. The process is divided into the following four: 1. obverse-side grinding, 2. obverse-side painting, 3. reverse-side grinding, and 4. reverse-side painting. The grinding process requires grinding machines and jigs, and the painting process requires painting machines and jigs. The required jigs vary from product to product, and switching from one jig to another requires the one-hour setup time. There are two grinding machines and two painting machines, each of which may be used for obverse-side process and the reverse-side process. The resource defining means 3 is used to enter the ability of each machine. Table 13 is the ability defining table created by the resource defining means 3.
TABLE 13
______________________________________
Machine Obverse-side
Obverse-side
Reverse-side
Reverse-side
name grinding painting grinding
painting
______________________________________
A 1 x 1 x
B 1 x 1 x
C x 1 x 1
D x 1 x 1
______________________________________
The ability defining table is stored in the schedule data 5 as data D. In this embodiment, the daily production amount of each product type is fixed. Each product type is grouped into lots and, to prevent the quality of a product type from differing from lot to lot, the earliest start time and the completion time of lots are equally distributed within a day. For simplicity, the lot size is such that each lot is processed in one hour. In other words, the work time for each lot is one hour because, in this embodiment, all the machines are assumed to be equal in ability. Table 14 lists the contents, earliest start time, and required-completion time of each lot.
TABLE 14
______________________________________
Product type
Lot number Earliest start time
Required time
______________________________________
Product type 1
1 0 10
Product type 1
2 4 14
Product type 1
3 8 18
Product type 1
4 12 22
Product type 1
5 16 26
Product type 2
1 0 10
Product type 2
2 2 12
Product type 2
3 4 14
Product type 2
4 6 16
Product type 2
5 8 18
Product type 2
6 10 20
Product type 2
7 12 22
Product type 2
8 14 24
Product type 3
1 0 10
Product type 3
2 2 12
Product type 3
3 4 14
Product type 3
4 6 16
Product type 3
5 8 18
Product type 3
6 10 20
Product type 3
7 12 22
Product type 3
8 14 24
______________________________________
The time is expressed as an integer with the schedule start time as 0. Because there are four processes for each of 21 lots shown in Table 14, a total of 84 processes are candidates for scheduling. In this embodiment, only the sequence of processes within each lot should be considered. The amount of data shown in Table 14, which is daily data, is processed in 24 hours. Because each of four machines (resources in this embodiment) may be used for surface-side process and reverse-side process, the total capacity is calculated as: 24.times.8=96(hours) This capacity is large enough to process the total amount work unless there are restrictions such as setup times and process sequences. In this embodiment, the project is scheduled using the same data structure as in the project scheduling in the first embodiment. However, in this embodiment, processes cannot be selected in the sequence determined by the PERT calculation because the setup time must be adjusted. Sequencing processes as determined by the PERT calculation causes all product types to be equally selected, increasing the setup time. This means that processes using the same jigs should be grouped to reduce the setup time. One way to group processes using the same jigs is to increase the lot size. Many studies have been made on the lot size because a larger lot size decreases the setup time. However, adjusting the lot size daily makes scheduling management more complicated. To make management easier, the scheduling unit should be smaller. In this embodiment, the system groups processes into larger lots, not by changing the lot size, but by reflecting the allocation status at the moment onto the comparison conditions used for selection. More specifically, when a selected process uses the same jigs as those for the last-allocated process, the system adds a special weight to the evaluation value of the process selection. The magnitude of this weight affects the lot size. And, the system adjusts the lot size according to the amount of demand on that day. Therefore, when the demand is large, the setup time is decreased to increase the production; when the demand is small, the setup time is increased to satisfy the desired end time as much as possible. (2) Estimating an allowable delay amount Referring to the flowchart in FIG. 2, the following explains how the scheduling system in the second embodiment works. First, the system performs the PERT calculation in step S1. Table 15 shows data F generated as a result of the PERT calculation.
TABLE 15
______________________________________
ID name EST EET LST LET RS START END
______________________________________
1-1-1 0 1 6 7 NONE -- --
1-1-2 1 2 7 8 NONE -- --
1-1-3 2 3 8 9 NONE -- --
1-1-4 3 4 9 10 NONE -- --
1-2-1 4 5 10 11 NONE -- --
.
.
3-7-4 15 16 21 22 NONE -- --
3-8-1 14 15 20 21 NONE -- --
3-8-2 16 17 21 22 NONE -- --
3-8-3 17 18 22 23 NONE -- --
3-8-4 18 19 23 24 NONE -- --
______________________________________
When the PERT calculation is terminated, the weight modifying means 12 estimates the allowable delay amount of the project. The allowable delay amount is a weight to be applied to a machine requiring setup during allocation; it is the amount of delay allowed for a machine requiring setup. The following formula gives the allowable delay amount as in the project scheduling of the first embodiment: ##EQU7## where .alpha. is the weight base value, which is set to 1 by the first weight setting means 11a. And, because the difference between the latest end time LET and the earliest end time EET of each lot is always 6 and because the number of processes is 4, the allowable delay amount (Dn) of each lot is calculated as follows: ##EQU8## The weight modifying means 12 also estimates the evaluation weight B for the jigs used when selecting a process to be allocated. This is the weight B for selecting, with priority, a process which does not require setup. This weight is applied to the evaluation value of the PERT calculation in order to select a process which does not require setup; the value of this weight determines the level of priority with which to select a process which uses the same jigs as those of the previous process and therefore does not require setup. The weight B is calculated by dividing 24 hours by the allowable setup count of a machine for the day. The allowable setup count is calculated by dividing the total vacant time by the product of the number of resources and one setup time. The following formula gives the weight B: ##EQU9## In this embodiment, the total resource capacity is 96 hours and the total manpower is 76 hours. Thus, the weight B is calculated as follows. ##EQU10## (3) Process selection Then, from a plurality of processes, the system selects a process to which a machine is allocated. Control is passed to step S2. If there are machines not yet allocated, control is passed to step S3. In step S3, the system performs the PERT calculation. In the first scheduling, the calculation result is the same as that obtained in step S1. Then, in step S4, the system selects one high-priority process. In this embodiment, the priority is defined by the following formula: min(x){EST(x)+LET(x)-J(x).times.2B} where, J(x) is 1 if one of machines was last allocated to the process which used the same jigs as ones to be used by the process; otherwise, it is 0. Note that B is multiplied by 2 because the comparison time is the sum of the earliest start time EST and the latest end time LET. The priority may be defined as follows as in the first embodiment: Earliest start time EST+(Latest end time LET-Earliest start time EST).times..theta. where, .theta. is a function of J(x). In the beginning, J(x) is 0 for all processes because no resource is allocated to a process. So, the system selects the process "1-1-1" from the earliest processes "1-1-1", "2-1-1", and "3-1-1". (4) Temporary allocation Then, the system temporarily allocates a machine to a selected process. In step S5, the temporary allocating means 7 selects one of machines "A" to "D". They may be selected in any sequence. In this embodiment, they are selected in the sequence "D" to "A". First, the system selects "D". In step S7, the system references data D (ability defining table) in Table 13 and checks if the machine may be allocated to the process selected in step S4. Because the process "1-1-1" is a surface-side grinding process, the system determines that the process cannot be allocated to machine "D" and passes control back to step S5. In step S5, the system selects "C" (unavailable for surface-side grinding) and then "B". In step S7, the temporary allocating means 7 references data "D" (ability defining table) in Table 13 and determines that "B" may be allocated to the process and passes control to step S7. In step S8, the temporary allocating means 7 references data D (ability defining table) in Table 13 to find the work time of the process for the machine. Because the standard work time of each process is 1 in this embodiment as described above and because the ability setting of machine "B" is 1, the work time is calculated as follows: Standard work time(1 day)/Ability setting(1)=1 day Then, in step S9, the temporary allocating means 7 finds the end time of the process "1-1-1" when machine "A" is allocated to it. Because no process is allocated in the beginning, the allocation starts at 0:00 and ends at 1:00. It then performs the PERT calculation to find the evaluation value of the allocation of machine "B" to the process "11-1-1". Before performing the PERT calculation, the temporary allocating means 7 temporarily copies data F in Table 15 to some other area, and temporarily sets the earliest start time EST and the latest start time LST of the process "1-1-1" to 0:00, and the earliest end time EET and the latest end time LET to 1:00. And, during the PERT calculation, it re-calculates only the earliest start time EST and the earliest end time EET. In this case, data is not updated because it is the same as the original data. (5) Finding the evaluation value of the combination Then, the system finds the evaluation value of the allocation of the machine to the process. In this embodiment, the evaluation value V is the sum of the time evaluation value for the allocation time (Vd) and the setup evaluation value of resource selection (Vr). The smaller the value, the better the evaluation. The first evaluating means 9a calculates the time evaluation value for the allocation time (Vd) based on the above PERT calculation. The delay amount of the whole job when the machine is allocated to the process is calculated as follows: ##EQU11## In this case, S=0. The time evaluation value for the allocation time (Vd) is calculated by the following formula: ##EQU12## where, T is the number of days when the process is terminated with the schedule start time being 0. Therefore, the time evaluation value Vd is calculated by the following formula: ##EQU13## Then, the second evaluating means 9b finds the setup evaluation value for resource selection (Vr). The setup evaluation value Vr is set as follows: ##EQU14## When no process is allocated, there is no need for setup. In this case, Vr=0. The resource determining means 8 finds the evaluation value V from the time evaluation value Vd, obtained by the first evaluating means 9a, and the setup evaluation value Vr obtained by the second evaluating means 9b. Here, the evaluation value for the combination of the process "1-1-1" and machine "B" is as follows: V=0.5+0=0.5 (6) Determining the best machine The system then determines the best machine. In step S10, the resource determining means 8 checks the evaluation value V if it is best and, if it is, stores the value. The smaller this evaluation value, the better the evaluation. Because the obtained evaluation value is best for the process "1-1-1", the resource determining means 8 stores the evaluation value (0.5) and machine "B". (7) Evaluation of other machines The system finds the evaluation value V for other machines in the similar manner. To do so, the system passes control back to step S5 and, through steps S5 to S10, finds an evaluation value for the next machine "A". More specifically, it temporarily allocates machine "A" to the process "11-1-1" to machine "A". Because the end time is 1:00 which is the same as when machine "B" was temporarily allocated to the process and because machine "A" does not require setup as with machine "B", the evaluation value is 0.5. The best machine is not updated because this value is the same as that of machine "B". After completing the evaluation of all the machines, the system passes control to step S10. (8) Allocating the process to the best machine Finally, the system allocates the machine whose evaluation value is best to the process. That is, in step S11, the process allocating means 6 allocates machine "B" which has the best evaluation value to the process "11-1-1". As a result, data F is changed as shown in Table 16.
TABLE 16
______________________________________
ID name EST EET LST LET RS START END
______________________________________
1-1-1 0 1 6 7 B 0 1
1-1-2 1 2 7 8 NONE -- --
1-1-3 2 3 8 9 NONE -- --
1-1-4 3 4 9 10 NONE -- --
1-2-1 4 5 10 11 NONE -- --
.
.
3-7-4 15 16 21 22 NONE -- --
3-8-1 14 15 20 21 NONE -- --
3-8-2 16 17 21 22 NONE -- --
3-8-3 17 18 22 23 NONE -- --
3-8-4 18 19 23 24 NONE -- --
______________________________________
In the table, the resource (RS) column for the process "1-1-1" contains "B", the start time (START) column contains the earliest start time EST (0:00), and the end time (END) column contains the earliest end time EET (1:00), respectively. The schedule is created by repeating the above processing. Table 17 shows the final result.
TABLE 17
______________________________________
ID name EST EET LST LET RS START END
______________________________________
1-1-1 0 1 6 7 B 0 1
1-1-2 1 2 7 8 D 1 2
1-1-3 2 3 8 9 B 2 3
1-1-4 3 4 9 10 D 3 4
1-2-1 4 5 10 11 B 4 5
.
.
3-7-4 15 16 21 22 C 21 22
3-8-1 14 15 20 21 B 18 19
3-8-2 16 17 21 22 C 19 20
3-8-3 17 18 22 23 B 21 22
3-8-4 18 19 23 24 C 22 23
______________________________________
FIGS. 10 and 11 show the Gantt charts for the scheduling results. As shown in those figures, processes not requiring jig replacement has priority over those requiring jig replacement. And, machines not requiring jig replacement are allocated, with priority, to those processes not requiring jig replacement. In this way, this system automatically creates a schedule which takes jig replacement into consideration. Allocation priority, which is adjusted based on the anticipation of machine usage, allows the schedule to be created according to the timing in which jigs are to be replaced. The following shows an example of scheduling to reduce the production amount as a whole. Table 18 lists the lot contents, start times, and completion times.
TABLE 18
______________________________________
Product type
Lot number Earliest start time
Required time
______________________________________
Product type 1
1 0 10
Product type 1
2 4 14
Product type 1
3 8 18
Product type 1
4 12 22
Product type 1
5 16 26
Product type 2
1 0 10
Product type 2
2 4 14
Product type 2
3 8 18
Product type 2
4 12 22
Product type 2
5 16 26
Product type 3
1 0 10
Product type 3
2 4 14
Product type 3
3 8 18
Product type 3
4 12 22
Product type 3
5 16 26
______________________________________
Because the number of spare days for the completion date of each process are the same as those for the example described above, the value of the allowable delay amount D remains the same. The total manpower is 60 (15 lots.times.4 processes). The weight B is calculated as follows: B=2.67.apprxeq.2.5 The value of 2.5 is used instead of 3 to make the result of subsequent operation (multiplied by 2) an integer value. FIGS. 12 and 13 are Gantt charts showing the results. These figures show that the system allows the user to schedule the job through setup adjustment so that the work ends within the day in most cases and that each lot ends not too much behind the desired end time. As described above, this embodiment considers the time factor while evaluating the setup time and uses a weight to balance the time factor, making it possible to create an optimal schedule ensuring a balance between machine usage efficiency and the time factor. In addition, when selecting a process, the embodiment finds the earliest start time and the latest end time of each process based on the time relation between processes and, after a weight is applied to the sum of the earliest start time and latest end time, selects a process with the minimum result first, making it possible to select processes while considering the priority as well as setup time amount. C. Other Embodiments This invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. It also includes other embodiments described below. Although the earliest start time EST and the latest end time LET of each process are used during process selection in the above embodiment, the earliest end time EET and the latest start time LST may also be used. For example, this invention may be applied not only to a scheduling problem where a designer or a machine is allocated to a process but also to a scheduling problem such as the allocation of a plurality of rooms or the allocation of cars. In addition, the fitness evaluation of a resource is not limited to the priority of a process; it may be some pre-set criteria. For example, the fitness evaluation may be done based on whether or not a resource satisfies pre-set ability criteria. EFFECT OF INVENTION As described above, a scheduling system according to this invention evaluates the fitness of a plurality of resources for each of a plurality of fixed-sequenced processes as well as the time factor of those processes, making the fitness and the time factor well balanced. In addition, when a plurality of resource types are allocated to each of a plurality of processes, a scheduling system according to this invention well balances the setup time and time factor of the above-mentioned processes. It also allows the user to apply a weight to the balance between the fitness and the time factor or to the balance between the setup time and the time factor. Thus, a scheduling system according to this invention enables the user to create a flexible schedule in a simple knowledge representation form; in particular, the system makes the scheduling of a multi-process, complex machine problem easier. For example, in project scheduling, it may be used to create individual schedules; in production scheduling, it may be used to create a multi-process, multi-function job shop schedule. While a preferred embodiment has been described, variations thereto will occur to those skilled in the art within the scope of the present inventive concepts which are delineated by the following claims.
|
Same subclass | ||||||||||
