This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2022-4781, filed on Jan. 17, 2022, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are related to a storage medium, a planning method, and an information processing apparatus.
A step planning for sequentially performing works on a plurality of types of objects is performed.
Japanese Laid-open Patent Publication No. 4-281556, Japanese Laid-open Patent Publication No. 6-110901, and Japanese Laid-open Patent Publication No. 2008-198129 are disclosed as related art.
According to an aspect of the embodiments, a non-transitory computer-readable storage medium storing a planning program that causes at least one computer to execute a process, the process includes generating a plurality of priority order patterns in which priority orders are assigned to a plurality of work groups, when processes selected from the plurality of work groups are sequentially performed on each of a plurality of objects; specifying an order of processes in the work group for each of the priority orders according to the priority orders of the plurality of priority order patterns; and specifying an order of the plurality of objects corresponding to the specified order of processes.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention.
For example, there is a case where a plurality of products are sequentially fed into one work line in accordance with a predetermined order, and each work selected from a plurality of work groups is performed on each product. In this case, in order to equalize a frequency of each work, it is considered to equalize a work pattern by using a target tracking method.
Meanwhile, in this case, local congestion may occur for each work. It is considered to use a method of specifying a process order in a work line (also referred to as a feeding order to the work line) by introducing a weighting coefficient for each work or the like. Meanwhile, the weighting coefficient and an output result may not coincide with an assumption of a user, and the number of man-hours of the user is likely to be increased.
In one aspect, it is an object to provide a planning program, a planning method, and an information processing apparatus capable of planning a feeding order to a work line while suppressing the number of man-hours of a user.
It is possible to provide a planning program, a planning method, and an information processing apparatus capable of planning a feeding order to a work line while suppressing the number of man-hours of a user.
Before a description of embodiments, an overview of multi-type mixed-flow production will be described.
Inventories of various components are stored in a wide space in a warehouse. Each component for producing a plurality of types of products is stored in such a warehouse. Each component case in which a plurality of identical components are accommodated is accommodated in a predetermined component shelf. The components desirable for work in a factory are picked up in the warehouse.
During the picking work of these components, a worker collects the components from the component case on each component shelf, or a traveling machine (automatic guided vehicle (AGV)) automatically collects the components, in some cases. For example, as illustrated in
For each product type, a set of desirable components is sequentially fed into a work line of a factory. Accordingly, work for producing each product is sequentially performed in the factory. For example, for each set of each product type picked by the traveling machine 201, a feeding device 202 sequentially feeds the set into the work line in accordance with a designated feeding order.
As illustrated in
In the example illustrated in
By contrast, in
It is desirable to reduce congestion of works to be performed, and equalize the frequency of the works. For example, it is considered to suppress the bias of the identical work pattern by using a target tracking method. The target tracking method is a method of selecting a work pattern having a high appearance probability for each index (feeding times), from each product.
As illustrated in
For each feeding time, the appearance probability of each work pattern is calculated. The feeding time=1 represents work of feeding a first product into a work line. The feeding times=n represents work of feeding an n-th product into the work line. The appearance probability is calculated as feeding times×basic value−(the number of times the work pattern is selected up to that time).
As illustrated in
When the feeding times=2, and the appearance probability of the work pattern A1B1 is 0. The appearance probability of the work pattern A1B2 is 0.5. The appearance probability of the work pattern A2B1 is 0.25. The appearance probability of the work pattern A2B2 is 0.25. Therefore, a product having the work pattern A1B2 is selected as a second feeding product. At this point, the number of times the products of the work pattern A1B1 and the work pattern A1B2 are selected is 1, and the number of times the products of the work pattern A2B1 and the work pattern A2B2 are selected is 0.
When determining a feeding order of each product to the work line by the procedure in the same manner, for example, as illustrated in
It is conceivable to introduce a weighting coefficient for each work, and determine the order of each work pattern based on the weighting coefficient. Meanwhile, in this method, since a user has to set the weighting coefficient, the user has to reset the weighting coefficient every time the work pattern or the number of target products is changed. In this case, the weighting coefficient and an output result may not coincide with an assumption of the user, trial and error is desirable until the target output result is obtained, and the number of man-hours of the user is likely to be increased.
In the following embodiment, a configuration will be described in which a plurality of priority order patterns are generated for each work group, an optimum solution of a feeding order for each priority order pattern is specified, and the plurality of optimum solutions are presented to a user, so that the feeding order to a work line may be planned while suppressing the number of man-hours of the user.
First, a principle will be described in which a plurality of priority order patterns are generated for each work group, an optimum solution of a feeding order for each priority order pattern is specified, and the plurality of optimum solutions are presented to a user.
As illustrated in
Although the priority order pattern may be generated so as to cover all the priority orders, the priority order pattern may be generated for only some of all the priority orders. For example, the priority order pattern may be randomly generated.
A solution #1 of the feeding order is obtained with the priority order pattern #1. A solution #2 of the feeding order is obtained with the priority order pattern #2. A solution #3 in the feeding order is obtained with the priority order pattern #3. In this manner, by acquiring a solution for each priority order pattern while automatically changing the priority order pattern, and presenting the solution to the user, time and effort of the user is saved. For example, among the solutions obtained for the respective priority order patterns, only a solution in which a key performance indicator (KPI) satisfies a predetermined condition may be presented as an optimum solution.
In the priority order pattern #1, the work group A has a first priority order. Each work in the work group A is equalized by using a target tracking method. As an example, it is assumed that, in a work line, the work Al is performed on six products, the work A2 is performed on four products, and the work A3 is performed on two products. A basic value of an appearance probability is calculated for each work. The basic value of the appearance probability is a ratio of the number of each work to the total number of products. Since the total number of products is 12, the basic value of the work A1 is 6/12=½. The basic value of the work A2 is 4/12=⅓. The basic value of the work A3 is 2/12=⅙. For each feeding time, the appearance probability of each work is calculated. The appearance probability is calculated as feeding times×basic value−(the number of times the work is selected up to that time). At each feeding time, work having a highest appearance probability is selected. The selection result is input to each slot.
In the priority order pattern #1, the work group B has a second priority order. Each work in the work group B is equalized by using a target tracking method. As an example, it is assumed that, in the work line, the work B1 is performed on six products, the work B2 is performed on four products, and the work B3 is performed on two products. A basic value of an appearance probability is calculated for each work. The basic value of the appearance probability is a ratio of the number of each work to the total number of products. Since the total number of products is 12, the basic value of the work B1 is 6/12=½. The basic value of the work B2 is 4/12=⅓. The basic value of the work B3 is 2/12=⅙. For each feeding time, the appearance probability of each work is calculated. The appearance probability is calculated as feeding times×basic value−(the number of times the work is selected up to that time). At each feeding time, work having a highest appearance probability is selected. A work pattern corresponding to the selection result is input to each slot.
Hereinafter, according to the priority order pattern #1, each work of the work group having the priority order of 3 or lower is equalized by the target tracking method. Therefore, in each slot, the work of each work group is specified. Next, the products on which the work pattern of each slot is to be performed are arranged in order. Accordingly, a solution for the priority order pattern #1 is obtained. Hereinafter, solutions for the priority order pattern #2 and the subsequent priority order patterns are obtained in the same manner. By presenting the solution for each priority order pattern to a user, the user may select a desired solution among the presented solutions.
The CPU 101 is a central processing unit. The CPU 101 includes one or more cores. The RAM 102 is a volatile memory that temporarily stores a program to be executed by the CPU 101, data to be processed by the CPU 101, and the like. The storage device 103 is a nonvolatile storage device. As the storage device 103, for example, a read-only memory (ROM), a solid-state drive (SSD) such as a flash memory, a hard disk driven by a hard disk drive, or the like may be used. The storage device 103 stores a planning program. The input device 104 is an input device such as a keyboard or a mouse. The display device 105 is a display device such as a liquid crystal display (LCD). By the CPU 101 executing the planning program, the product information storage unit 10, the work pattern creation unit 20, the work pattern storage unit 30, the priority order generation unit 40, the priority order storage unit 50, the order specifying unit 60, the determination unit 70, and the output unit 80 are realized. Hardware such as dedicated circuits may be used as the product information storage unit 10, the work pattern creation unit 20, the work pattern storage unit 30, the priority order generation unit 40, the priority order storage unit 50, the order specifying unit 60, the determination unit 70, and the output unit 80.
Next, the order specifying unit 60 refers to prod2cond_map to extract all the created work patterns (step S2). A group of the extracted work patterns is referred to as cond_group. cond_group is stored in the work pattern storage unit 30.
Next, the order specifying unit 60 refers to the content of cond_group stored in the work pattern storage unit 30, and specifies a number M of work groups (step S3). For example, in the example illustrated in
Next, the order specifying unit 60 creates an array result_set having elements corresponding to the total number of products, and sets the array result_set as an empty set (step S4). By sequentially inputting each product into each element of the array result_set, it is possible to create a feeding order of each product.
Next, the order specifying unit 60 sets a loop count loop_count to an initial value of 0 (step S5).
Next, the order specifying unit 60 determines whether or not the loop count loop_count is less than the maximum loop count N (step S6). By setting the maximum loop count N, an upper limit may be set for the number of loop processes.
In a case where “Yes” is determined in step S6, the priority order generation unit 40 generates a priority order pattern of the work group (step S7). For example, the priority order generation unit 40 randomly generates the priority order pattern of each work group. The generated priority order pattern is stored in the priority order storage unit 50.
Next, the order specifying unit 60 generates slots for the total number of products (step S8). In this state, work in each slot is not determined yet.
Next, the order specifying unit 60 substitutes 1 as an initial value of a variable i (step S9). The variable i is a variable representing a priority order of each work group in the priority order pattern.
Next, the order specifying unit 60 determines whether or not the variable i is smaller than M+1 (step S10). With this process, it is possible to determine whether or not specification of each work of each work group is completed in each priority order pattern.
In a case where “Yes” is determined in step S10, the order specifying unit 60 substitutes 0 for a variable j (step S11). The variable j is used to determine the number of slots with which work of a work group having an i-th priority order is specified. In a state in which the work of the work group having the i-th priority order is not specified yet in any slot, the variable j is 0.
Next, the order specifying unit 60 determines whether or not the variable j is smaller than the number of slots (step S12). With this process, it is possible to determine whether or not the work of the work group having the i-th priority order is specified for all the slots.
In a case where “Yes” is determined in step S12, the order specifying unit 60 focuses on each slot, and calculates an appearance probability of each work of the work group having the i-th priority order by using a target tracking method (step S13). For example, the appearance probability is calculated as feeding times×basic value−(the number of times the work is selected up to that time), for each work. For example, when the i-th priority order is assigned to the work group A, the appearance probabilities of the work A1, the work A2, and the work A3 are calculated.
Next, the order specifying unit 60 creates a combination of works from the first priority order to the (i−1)-th priority order registered in the slot j (step S14). The created combination is denoted by cond_groupj,i. For example, in a case where i is 3 and j=3, a combination (for example, A1, B2, and the like) of the works of the work groups having the first and second priority orders registered in the slot 3 is created.
Next, the order specifying unit 60 extracts an element having cond_groupj,i as a subset among elements of cond_group, and creates a set candidate of work groups having the i-th priority order, from the elements (step S15). For example, when cond_groupj,i created in step S14 is A1B2, work patterns A1B2C1, A1B2C2, and A1B2C3 are extracted from cond_group in
Next, the order specifying unit 60 registers an element having the highest appearance probability among the elements of the set candidate in the slot j (step S16).
Next, the order specifying unit 60 adds 1 to the variable j (step S17). After that, the execution is performed again from step S12.
In a case where “No” is determined in step S12, the order specifying unit 60 adds 1 to the variable i. After that, the execution is performed again from step S10.
In a case where “No” is determined in step S10, the order specifying unit 60 refers to prod2cond_map stored in the work pattern storage unit 30, allocates the corresponding product to each slot, and adds the product to the array result_set (step S18).
Next, the order specifying unit 60 adds 1 to the loop count loop_count (step S19). After that, the execution is performed again from step S6.
In a case where “No” is determined in step S6, the output unit 80 outputs all the solutions having the KPI equal to or higher than a threshold value, among the solutions stored in the array result_set (step S20). After that, the execution of the flowchart is ended. Whether or not the KPI of the solution is equal to or higher than the threshold value is determined by the determination unit 70.
For example, the following equation may be used as the KPI. The following equation outputs a variance of a selection interval of each work, in each work group. As the output of the following equation is closer to 0, the selection interval of each work in each work group is substantially fixed, and local congestion in the feeding order is suppressed. Therefore, when a reciprocal number of the following equation is used as the KPI, a solution having a KPI equal to or higher than the threshold value is an appropriate solution.
In the equation described above, specgroup means a work group, and spec means each work (for example, A1, B1, . . . ). #(spec) is the number of products having spec. Index(spec, i) is an index of an i-th product having spec in an input product string.
According to the present embodiment, it is possible to specify an order of works in a work group for each priority order in accordance with the priority order of a plurality of priority order patterns, and specify an order of products corresponding to a combination of the respective specified works. In this manner, trial and error in equalizing the frequency of each work is automatically performed. Therefore, the number of man-hours such as introduction of a weighting coefficient individually by a user for each work may be omitted, and a feeding order to a work line may be planned while suppressing the number of man-hours of the user.
By using the target tracking method when specifying the order of the works in the work group, it is possible to easily equalize the frequency of each work.
The solution may be presented to the user by repeating a series of processes of generating a plurality of priority order patterns and specifying a feeding order of products a plurality of times, and outputting the feeding order obtained in each of the series of processes. At this time, it is possible to present an optimum solution to the user by outputting the obtained order with which the variance of the intervals at which each work in the work group is performed is less than the threshold value.
Although the priority order pattern is randomly generated in the example described above, the embodiment is not limited thereto. For example, the priority order pattern may be generated in accordance with the priority order patterns generated up to that time and a quality of the obtained optimum solution.
Although the result output by the output unit 80 is output to the display device 105 in each example described above, the result may be output to the traveling machine 201 that automatically travels in a warehouse.
For each example described above, a product is an example of an object to be fed into a work line in accordance with a predetermined order. The priority order generation unit 40 is an example of a priority order generation unit that generates a plurality of priority order patterns in which priority orders are assigned to a plurality of work groups, under a condition in which processes respectively selected from the plurality of work groups are sequentially performed on each of a plurality of objects. The order specifying unit 60 is an example of an order specifying unit that specifies an order of processes in the work group for each priority order according to the priority orders of the plurality of priority order patterns, and specifies an order of the plurality of objects corresponding to a combination of the respective specified processes. The output unit 80 is an example of an output unit that outputs, when a series of processes of generates a plurality of the priority order patterns and specifying an order of the objects is repeated a plurality of times, the order of the objects obtained in each of the series of processes.
Although the embodiments of the present disclosure have been described above in detail, the present disclosure is not limited to such particular embodiments and may be variously modified and changed within the scope of the gist of the present disclosure described in claims.
All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2022-004781 | Jan 2022 | JP | national |