The present invention relates to an information processing apparatus, a search method, and a storage medium.
In a manufacturing site where a plurality of parts is assembled to produce a product, quality of each part is controlled in order to control product quality. Specifically, a tolerance is set for quality of each part, and product quality is kept within the tolerance by using only parts within the tolerance. Although product quality may be improved and made closer to design values by more strictly controlling part quality tolerances, it is difficult to completely eliminate part quality errors.
In recent years, a plurality of pieces of stock is held for each part having a variation in quality within a tolerance and a combination of parts is selected from the pieces of stock to improve product quality. For example, there is known a technology of searching for an explanatory variable that optimizes an objective variable by using a part number of each part used for each product as the explanatory variable and product quality as the objective variable, and using a restriction condition that a part having the same number is not used twice. Furthermore, there is known a technology of reducing the number of candidates by limiting a combination to include parts of a specific type in a specific quality area. Furthermore, there is known a technology of predicting product characteristics with respect to a combination of parts by machine learning.
According to an aspect of the embodiments, an information processing apparatus includes one or more memories; and one or more processors coupled to the one or more memories and the one or more processors configured to: generate an initial order for manufacturing a plurality of products by using a plurality of parts classified into a plurality of part types based on part quality for each of the plurality of part types, set a range in which a part whose order is undetermined within the initial order is at a head, generate a plurality of states in which the order of the plurality of parts within the range is different from each other, allocate, for each of the plurality of states, the plurality of parts included in the range to the plurality of products for each of the plurality of part types in order from the head of the range, acquire, for each of the plurality of states, the product quality of each of the plurality of products to which the plurality of parts is allocated, repeat order search that determines the order of at least a part of the parts in the range based on the product quality acquired for each of the plurality of states, while changing the position of the range in the initial order each time the order within the range is determined, and search for a first order of the plurality of parts in which product quality of each of the plurality of products becomes optimum by executing processing of determining the order of the parts in the initial order after changing the order in the range as a part of the initial order, while sequentially changing a position of the range in the initial order.
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.
Even when any one of the technologies described above is used, in a case where the number of part types is large or the number of pieces of stock of parts is large, the number of combinations becomes enormous, and it is difficult to search for an optimum solution in a short time. For example, when there are seven types of parts, each of which has ten pieces of stock, and ten products are manufactured, the number of combinations of the parts is 8×1046. As the number of part types or the number of pieces of stock increases, the number of combinations increases by power, so that the larger the scale, the longer a search time for an optimum solution.
In one aspect, an object is to provide an information processing apparatus, a search method, and a search program capable of shortening a search time for an optimum combination of parts that improves product quality.
According to one embodiment, it is possible to shorten a search time for an optimum combination of parts that improves product quality.
Hereinafter, embodiments of an information processing apparatus, a search method, and a search program disclosed in the present application will be described in detail with reference to the drawings. Note that this invention is not limited by the embodiments. Furthermore, the individual embodiments may be appropriately combined within a range without inconsistency.
[Overall Configuration]
As illustrated in
[Functional Configuration]
The communication unit 11 is a processing unit that controls communication with another device, and is implemented by, for example, a communication interface. For example, the communication unit 11 receives, from a terminal used by an administrator, a processing start instruction, an allocation rule to a product, stock information of each part, and the like. Furthermore, the communication unit 11 transmits, to the terminal used by the administrator, a result of optimization of part allocation, or the like.
The display unit 12 is a processing unit that displays each piece of information, and is implemented by, for example, a display or a touch panel. The display unit 12 displays a result of optimization of part allocation, or the like.
The storage unit 13 is a processing unit that stores various types of data, programs executed by the control unit 20, and the like, and is implemented by, for example, a memory or a hard disk. The storage unit 13 stores a product allocation rule 14, part information 15, quality information 16, and an optimization result 17.
The product allocation rule 14 is information in which each product and parts of each type used to generate each product are associated with each other, and is set by the administrator or the like.
The “product name” is information regarding a product to be generated, and the “part name” is information regarding parts used in the product. In an example of
The part information 15 indicates stock information of parts of a type of each part (part type) used in a product.
The “part name” is information regarding each part having a different type, the “part number” is information that identifies each part for each type, and the “the number of pieces of stock” is the number of pieces of stock of a part of each type. In an example of
The quality information 16 is information regarding quality of each part.
In an example of
The optimization result 17 is information indicating an allocation result of parts by which quality of each product is optimized. The optimization result 17 stored here is generated by a search unit 30 described later.
In an example of
The control unit 20 is a processing unit that is in charge of the entire information processing apparatus 10, and is implemented by, for example, a processor. The control unit 20 includes an initialization unit 21, an output unit 22, and the search unit 30. Note that the initialization unit 21, the output unit 22, and the search unit 30 may be implemented as an electronic circuit such as a processor, or may be implemented as a process executed by the processor.
The initialization unit 21 is a processing unit that executes various types of initialization before order search for optimizing a combination of parts is executed. For example, by instruction operation by the administrator, the initialization unit 21 generates the product allocation rule 14 and stores the product allocation rule 14 in the storage unit 13, acquires stock information of parts and stores the part information 15 in the storage unit 13, or generates the quality information 16 by referring to information regarding quality of each part and stores the quality information 16 in the storage unit 13. Note that these pieces of information may also be generated and stored by the administrator.
The output unit 22 is a processing unit that displays and outputs various types of information to the display unit 12. For example, the output unit 22 reads the optimization result 17 from the storage unit 13, displays and outputs the optimization result 17 to the display unit 12, or transmits the optimization result 17 to a terminal of the administrator.
The search unit 30 is a processing unit that includes an initial determination unit 31, a target setting unit 32, a partial cutout unit 33, a partial replacement unit 34, an order combination unit 35, a quality calculation unit 36, a quality evaluation unit 37, and a head determination unit 38, and generates the optimization result 17 that indicates an allocation result of parts by which quality of each product is optimized.
In other words, the search unit 30 sorts part numbers to be assembled to each product according to a predetermined rule from an order in which part numbers of an entire stock of all parts are arranged. Then, when the search unit 30 rearranges the order and selects a combination of parts, the search unit 30 searches for an optimum solution by limiting the search to only a predetermined range and determining the order one by one in order from the head to the final order.
Specifically, the search unit 30 generates an initial order in which parts of each part type used for generation of each product are arranged on the basis of quality. Then, the search unit 30 generates the optimization result 17 by setting, when searching for an order of each part by which quality of each product becomes optimum from the initial order, a predetermined range in which a part whose order is undetermined is at the head, generating each state in which the parts within the predetermined range are rearranged, calculating, for each state, quality of each product to which each part is allocated in an order from the head for each part type, and repeating order search to determine the order within the predetermined range on the basis of the quality of each product in each state while changing a position of the predetermined range each time the order within the predetermined range is determined.
The initial determination unit 31 is a processing unit that generates an initial order in which each part is arranged on the basis of quality of parts of each part type used for generation of each product. Specifically, the initial determination unit 31 generates an order in which parts (part numbers) are arranged in descending order of variations in part quality.
(Initial Order Method 1)
For example, the initial determination unit 31 sets a variation in part quality as an “absolute value of an error from a design value of part quality”, and determines an initial order in descending order of the values.
Similarly, when description is made by taking the part D having a design value “dDESIGN” as an example, in a case where the quality of the part number D3 is “d3”, the initial determination unit 31 calculates an error “d3′=|d3−dDESIGN|” for the part number D3 and calculates an error “d7′=|d7−dDESIGN|” for the part number D7. In this way, for each part of each type, the initial determination unit 31 calculates an error from a design value of the part, and standardizes quality of each part.
Thereafter, the initial determination unit 31 rearranges absolute values of the standardized quality of the parts in descending order to generate an initial order. That is, the initial determination unit 31 sorts the absolute values of the quality in descending order in the entire stock of parts. In an example of
(Initial Order Method 2)
Furthermore, the initial determination unit 31 may set a variation in part quality as an “absolute value of part quality standardized within a part type”, and determine an initial order in descending order of the values.
Similarly, when description is made by taking the part E as an example, the initial determination unit 31 calculates an average value “eAVE” of quality of the parts of the part E and a standard deviation “eSTDEV” of the quality of the parts. Then, in a case where the quality of the part number E4 of the part E is “e4”, the initial determination unit 31 calculates a standardization value “e4′=|(e4−eAVE)|/eSTDEV” for the part number E4, and calculates a standardization value “e7′=|(e7−eAVE)|/eSTDEV” for the part number E7.
Thereafter, the initial determination unit 31 rearranges the standardization values of the quality of the parts in descending order to generate an initial order. That is, the initial determination unit 31 sorts the standardization values of the quality in descending order in the entire stock of parts. In an example of
Returning to
Moreover, in a third loop after the order 2 is determined, the target setting unit 32 determines six part numbers from an order 3 as the next order of the order 2 to an order 8 as a rearrangement target, and determines other part numbers as a non-rearrangement target. In this way, each time an order is determined in order from the head, the target setting unit 32 repeats setting of a rearrangement target by shifting a predetermined range by one with an order next to the determined order at the head.
The partial cutout unit 33 is a processing unit that cuts out part numbers corresponding to each of a rearrangement target and a non-rearrangement target each time the rearrangement target and the non-rearrangement target set by the target setting unit 32 are determined. For example, the partial cutout unit 33 outputs each part number within a range determined as a rearrangement target to the partial replacement unit 34, and outputs each part number within a range determined as a non-rearrangement target to the order combination unit 35.
The partial replacement unit 34 is a processing unit that generates, each time a rearrangement target is notified from the partial cutout unit 33, each pattern in which part numbers as the rearrangement target are rearranged. Here, when quality of each product is calculated, part numbers are allocated to products in an order of appearance in a target order, and at this time, the allocation is performed in an order of appearance for each part type.
For example, the part number A1 of the order 1 is allocated to the product 1 because it appears earliest in the part type “part A”, and the part number A2 of the order 2 is allocated to the product 2 because it appears second in the part type “part A”. Furthermore, the part number B7 of the order 3 is allocated to the product 1 because it appears earliest in the part type “part B”, and the part number C3 of the order 4 is allocated to the product 1 because it appears earliest in the part type “part C”. Furthermore, the part number E1 of the order 5 is allocated to the product 1 because it appears earliest in the part type “part E”, and the part number F3 of the order 6 is allocated to the product 1 because it appears earliest in the part type “part F”. Furthermore, the part number B2 of the order 7 is allocated to the product 2 because it appears second in the part type “part B”, and the part number A6 of the order 8 is allocated to the product 3 because it appears third in the part type “part A”.
Therefore, the partial replacement unit 34 may shorten a search time by rearranging not all parts within a range as a rearrangement target, but rearranging “parts” having overlapping part types within the range as the rearrangement target.
As a result, the partial replacement unit 34 generates a pattern in which A1 and A4 are replaced. Specifically, the partial replacement unit 34 generates a pattern 1 in which the order 1 is set to A1 and the order 2 is set to A4 and an order of others is not changed, and a pattern 2 in which the order 1 is set to A4 and the order 2 is set to A1 and the order of others is not changed, and generates the pattern 1 and the pattern 2 in the order combination unit 35.
The order combination unit 35 is a processing unit that combines part numbers in each pattern notified from the partial replacement unit 34 and part numbers as a non-rearrangement target notified from the partial cutout unit 33 to generate each order pattern (each state). For example, when description is made by taking a first loop in which an initial order is to be processed as an example, the order combination unit 35 generates an order pattern 1 (state 1) in which the pattern 1 in which the order 1 is set to A1 and the order 2 is set to A4 and the order of others is not changed is set to “the order 1 to the order 6” and is combined with “the order 7 to an order 47” as a non-rearrangement target.
Furthermore, the order combination unit 35 generates an order pattern 2 (state 2) in which the pattern 2 in which the order 1 is set to A4 and the order 2 is set to A1 and the order of others is not changed is set to “the order 1 to the order 6” and is combined with “the order 7 to the order 47” as the non-rearrangement target. Then, the order combination unit 35 outputs the order pattern 1 and the order pattern 2 to the quality calculation unit 36.
The quality calculation unit 36 is a processing unit that calculates, for each order pattern notified from the order combination unit 35, quality of each product by using quality of each product when parts are allocated to each product. Specifically, for each order pattern, the quality calculation unit 36 allocates each part number of the part A to the product 1, the product 2, the product 3, the product 4, and the product 5 in the order of appearance, allocates each part number of the part B to the product 1, the product 2, the product 3, the product 4, and the product 5 in the order of appearance, and allocates each part number of the part C to the product 1, the product 2, the product 3, the product 4, and the product 5 in the order of appearance. Similarly, the quality calculation unit 36 allocates each part number of the part D to the product 1, the product 2, the product 3, the product 4, and the product 5 in the order of appearance, allocates each part number of the part E to the product 1, the product 2, the product 3, the product 4, and the product 5 in the order of appearance, and allocates each part number of the part F to the product 1, the product 2, the product 3, the product 4, and the product 5 in the order of appearance.
Then, for each order pattern, the quality calculation unit 36 calculates quality of each product of the product 1 to the product 6, calculates an evaluation value obtained by totaling the quality of each product, and outputs the evaluation value to the quality evaluation unit 37. For example, the quality calculation unit 36 calculates product quality Q “Q=qa+qb+ . . . ” from the sum of quality (qa, qb, . . . ) of each allocated part. Then, the quality calculation unit 36 calculates the product quality Q for each product, and calculates an evaluation value obtained by totaling each product quality Q. Note that various methods may be adopted for calculation of the product quality Q.
For example, in a case where the product quality Q is defined by a linear expression expressed by Expression (1), the quality calculation unit 36 may also calculate the product quality Q by substituting the quality (qa, qb, . . . ) of each allocated part into Expression (1). Furthermore, in a case where the product quality Q is defined by a quadratic expression expressed by Expression (2), the quality calculation unit 36 may also calculate the product quality Q by substituting the quality (qa, qb, . . . ) of each allocated part into Expression (1). Furthermore, the quality calculation unit 36 may also calculate the product quality Q by using simulators such as structural analysis, stress analysis, and electromagnetic field analysis, and by using the respective part types A and B and the part quality qa and qb as input parameters.
[Expression 1]
Q=α
A
·q
a+αB·qb+ . . . +β Expression (1)
[Expression 2]
Q=α
A·(qa+βA)2+αB·(qb+βB)2+ . . . +γ Expression (2)
Note that qa and qb correspond to a1 and b1 in
The quality evaluation unit 37 is a processing unit that evaluates each objective variable by using an order of part numbers in each order pattern calculated by the quality calculation unit 36 as an explanatory variable and product quality corresponding to each order pattern as the objective variable. Specifically, the quality evaluation unit 37 selects an order pattern having the largest evaluation value of each order pattern calculated by the quality calculation unit 36 as an optimum solution. For example, the quality evaluation unit 37 outputs an order in the order pattern 2 to the head determination unit 38 in a case where the order pattern 2 (see
The head determination unit 38 is a processing unit that determines a head order of an order pattern notified from the quality evaluation unit 37. For example, the head determination unit 38 determines “an order=A1” in a case where the order pattern 2 in which “the order 1=A4 and the order 2=A1” is set and others remain in an initial order is notified. Then, the head determination unit 38 notifies the target setting unit 32 that order search (loop processing) for searching for the next head by shifting determination of a rearrangement target is continued. In this way, order search in which rearrangement and determination of a head order are performed is continued until an order of all parts is determined or parts of each product are determined.
On the other hand, in a case where an order of all part numbers is determined, the head determination unit 38 ends the order search, allocates each part to each product according to the order and product quality at that time, and generates the optimization result 17. Note that the head determination unit 38 may end the order search in a case where the allocation to each product is completed before the order of all the part numbers is determined.
Here, an example of searching for an optimum solution for part allocation for each product will be described with reference to
As illustrated in
Next, in undetermined orders, the search unit 30 sets six orders from “the order 2” as a head to “the order 7” as a rearrangement target and sets “the order 8 to the order 47” as a non-rearrangement target, and generates each order pattern in which part numbers of “the order 2 to the order 7” as the rearrangement target are rearranged. Then, the search unit 30 specifies an order pattern having the highest evaluation value of each order pattern, and determines “the order 2=A1” which is a head order of the order pattern.
Next, in undetermined orders, the search unit 30 sets six orders from “the order 3” as a head to “the order 8” as a rearrangement target and sets “the order 9 to the order 47” as a non-rearrangement target, and generates each order pattern in which part numbers of “the order 3 to the order 8” as the rearrangement target are rearranged. Then, the search unit 30 specifies an order pattern having the highest evaluation value of each order pattern, and determines “the order 3=B2” which is a head order of the order pattern.
Next, in undetermined orders, the search unit 30 sets first six orders from “the order 4” as a head to “the order 9” as a rearrangement target and sets “the order 10 to the order 47” as a non-rearrangement target, generates each order pattern in which part numbers of “the order 4 to the order 9” as the rearrangement target are rearranged, and determines the head order. In this way, the search unit 30 sequentially determines a head order while limiting a rearrangement target.
In this way, a state where an order is finally determined is illustrated in
For example, the search unit 30 takes out each part number of the part A, acquires the order “A4, A1, A6, A9, A3, A5, A10, A8, A7, and A2” in the part A, and allocates A4 to the product 1, A1 to the product 2, A6 to the product 3, A9 to the product 4, and A3 to the product 5 in order from the head. At this time, “A10, A8, A7, and A2” are unused parts.
In this way, the search unit 30 executes part allocation to a product in an order of appearance of a determined order for each of the parts A, B, C, D, E, and F, and implements optimization of the part allocation.
[Flow of Processing]
Subsequently, the search unit 30 determines an initial order (S102), and sets a target order including a rearrangement target and a non-rearrangement target (S103). Then, the search unit 30 cuts out a partial range (rearrangement target) from a head of the target order (S104), generates each order pattern in which an order in the partial range is replaced (S105), and calculates an evaluation value of each order pattern (S106).
Thereafter, the search unit 30 selects an optimum solution of the evaluation value of each order pattern (S107), and determines a head of the order in the partial range (rearrangement target) (S108).
Then, in a case where there is an undetermined order (S109: Yes), the search unit 30 executes resetting of the target order (S110), and executes S104 and subsequent steps. On the other hand, in a case where there is no undetermined order (S109: No), the search unit 30 ends optimization of allocation of each part and generates an optimization result (S111).
As described above, since the information processing apparatus 10 limits search to a predetermined area until optimization is searched for from an initial order, and determines an order in order from a head, it is possible to search for optimization by reducing a scale of a problem. As a result, the information processing apparatus 10 may search for a good solution in a short time for a problem having an enormous solution space (total number of combinations) and allocate parts to each product. Furthermore, since the information processing apparatus 10 determines the initial order in descending order of part quality, the order may be determined from parts having a large influence on quality of a product, so that solution search capability may be enhanced rather than starting the search in random order.
Incidentally, while the embodiment of the present invention has been described above, the present invention may be implemented in various different modes in addition to the embodiment described above.
[Numerical Values and the Like]
The numerical value examples, the range as a rearrangement target, the number of parts, the number of products, the quality values, the evaluation values, the functions, and the like used in the embodiment described above are merely examples, and may be optionally changed.
[Rearrangement Target]
In the embodiment described above, the example has been described in which, as a result of rearrangement within a range as a rearrangement target, only a part at a head of the rearrangement target is determined, but the present invention is not limited to this. For example, an order may be determined for each range as a rearrangement target.
Thereafter, the search unit 30 sets the order 5 to the order 8 with the order 5 whose order is undetermined at a head as a rearrangement target and the order 9 to the order 47 as a non-rearrangement target. Then, the search unit 30 calculates an evaluation value of each order pattern in which the order 5 to the order 8 are rearranged, and determines the order 5 to the order 8 in the order in the order pattern having the highest evaluation value. In this way, since the search unit 30 may determine an order for each range as a rearrangement target, it is possible to shorten a time taken for search as compared with the first embodiment.
[Utilization of Annealing Computer]
For example, optimization may be speeded up by executing search processing by an Ising machine or an annealing computer.
That is, the information processing apparatus 10 has a function of executing setting of a rearrangement target, and the annealing computer 90 has a function of executing rearrangement of parts and examination of an evaluation value, so that processing is shared and optimization may be speeded up. Note that, in a case where an objective variable (evaluation function), which is a total value of quality of each product, may be expressed by a quadratic expression of an explanatory variable (input variable), optimization of a combination of parts may be particularly speeded up by utilizing the annealing computer. Note that the functional units arranged in the annealing computer 90 and the information processing apparatus 10 are examples, and may be optionally changed.
[System]
Pieces of information including a processing procedure, a control procedure, a specific name, various types of data, and parameters described above or illustrated in the drawings may be optionally changed unless otherwise specified. Note that the initial determination unit 31 is an example of a generation unit, and the search unit 30 is an example of a search unit.
Furthermore, each component of each device illustrated in the drawings is functionally conceptual, and does not necessarily have to be physically configured as illustrated in the drawings. In other words, specific forms of distribution and integration of individual devices are not limited to those illustrated in the drawings. That is, all or a part thereof may be configured by being functionally or physically distributed or integrated in optional units according to various types of loads, usage situations, or the like.
Moreover, all or an optional part of individual processing functions performed in each device may be implemented by a CPU and a program analyzed and executed by the CPU, or may be implemented as hardware by wired logic.
[Hardware]
Next, a hardware configuration example of the information processing apparatus 10 will be described.
The communication device 10a is a network interface card or the like, and communicates with another server. The HDD 10b stores programs and DBs for operating the functions illustrated in
The processor 10d reads a program that executes processing similar to the processing of each processing unit illustrated in
In this way, the information processing apparatus 10 operates as an information processing apparatus that executes a search method by reading and executing a program. Furthermore, the information processing apparatus may implement functions similar to the functions of the embodiments described above by reading the program described above from a recording medium by a medium reading device and executing the read program described above. Note that the program referred to in another embodiment is not limited to being executed by the information processing apparatus 10. For example, the present invention may be similarly applied to a case where another computer or server executes the program, or a case where such a computer and server cooperatively execute the program.
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.
This application is a continuation application of International Application PCT/JP2020/012144 filed on Mar. 18, 2020 and designated the U.S., the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2020/012144 | Mar 2020 | US |
Child | 17866609 | US |