Claims
- 1. A method for use in determining a configuration of a production line comprising one or more component placement machines used to place components for assembly, the method comprising the steps of:
determining a set of precedence constraints including at least a first class of constraints that apply to only one component placement machine type and a second class of constraints that apply to more than one component placement machine type; processing each of the constraints in the first class of constraints that are associated with a given machine type in a corresponding machine module of a modular optimizer which includes a plurality of machine modules each corresponding to one of the machine types; and processing the second class of constraints in a part splitter module of the modular optimizer, the part splitter module providing inputs to one or more of the machine modules; wherein outputs of the machine modules provide information used to determine the configuration.
- 2. The method of claim 1 wherein at least a subset of the set of precedence constraints comprises precedence constraints of the form A B MT, which specifies that part A must be placed on a designated board before part B if either part is to be placed by a machine type MT.
- 3. The method of claim 1 wherein separation of the set of precedence constraints into the first and second classes of precedence constraints is implemented at least in part in the part splitter module of the modular optimizer.
- 4. The method of claim 1 wherein if two parts associated with a given precedence constraint are assigned to two different machine types, the part splitter module determines if the assignment is feasible.
- 5. The method of claim 1 wherein the plurality of machine modules comprises at least an FCM module and an ACM module.
- 6. The method of claim 3 wherein for a given precedence constraint of the form A B MT, which specifies that part A must be placed on a designated board before part B if either part is to be placed by a machine type MT, the part splitter module: (i) assigns neither part A nor part B to a machine of type MT, in which case the constraint can be ignored; (ii) assigns both part A and part B to machines of type MT, such that the constraint is in the first class of constraints and is handled by the machine module corresponding to machine type MT; or (iii) assigns one of part A and part B to one machine type and the other to another machine type, such that the constraint is in the second class of constraints and is handled by the part splitter module.
- 7. The method of claim 1 wherein the determining step utilizes a data structure which includes static constraint counts and dynamic constraint counts, the static constraint counts being determined upon reading of a precedence constraint file, the dynamic constraint counts being determined on a cumulative basis in accordance with decisions of the splitter module regarding assignment of particular parts to particular machine types.
- 8. The method of claim 1 wherein a given one of the machine modules of the modular optimizer is configured such that if selection of one of a plurality of buckets for use with a part subject to a precedence constraint will violate any constraints associated with previously-assigned parts, a low level of desirability is assigned to the bucket.
- 9. The method of claim 1 wherein a given one of the machine modules is configured such that a bucket desirability is computed for a part subject to a precedence constraint as a function of a ratio of a total cumulative number of “pre” precedence constraints to a total cumulative number of precedence constraints.
- 10. The method of claim 1 wherein a given one of the machine modules is configured such that parts are always first sorted based on a total cumulative number of the precedence constraints.
- 11. An apparatus for determining a configuration of a production line comprising one or more component placement machines used to place components for assembly, the apparatus comprising:
a memory for storing information characterizing at least a portion of the production line; and a processor coupled to the memory and operative to implement at least a portion of a modular optimizer having a part splitter module and a plurality of different machine modules each associated with a different component placement machine type, the modular optimizer: determining a set of precedence constraints including at least a first class of constraints that apply to only one of the component placement machine types and a second class of constraints that apply to more than one of the component placement machine types; processing each of the constraints in the first class of constraints that are associated with a given machine type in a corresponding one of the machine modules; and processing the second class of constraints in the part splitter module, the part splitter module providing inputs to one or more of the machine modules; wherein outputs of the machine modules provide information used to determine the configuration.
- 12. The apparatus of claim 11 wherein separation of the set of precedence constraints into the first and second classes of precedence constraints is implemented at least in part in the part splitter module of the modular optimizer.
- 13. The apparatus of claim 12 wherein for a given precedence constraint of the form A B MT, which specifies that part A must be placed on a designated board before part B if either part is to be placed by a machine type MT, the part splitter module: (i) assigns neither part A nor part B to a machine of type MT, in which case the constraint can be ignored; (ii) assigns both part A and part B to machines of type MT, such that the constraint is in the first class of constraints and is handled by the machine module corresponding to machine type MT; or (iii) assigns one of part A and part B to one machine type and the other to another machine type, such that the constraint is in the second class of constraints and is handled by the part splitter module.
- 14. A modular optimizer for determining a configuration of a production line comprising one or more component placement machines used to place components for assembly, the modular optimizer comprising:
a part splitter module; and a plurality of different machine modules each associated with a different component placement machine type; wherein the modular optimizer is operative: to determine a set of precedence constraints including at least a first class of constraints that apply to only one of the component placement machine types and a second class of constraints that apply to more than one of the component placement machine types; to process each of the constraints in the first class of constraints that are associated with a given machine type in a corresponding one of the machine modules; and to process the second class of constraints in the part splitter module, the part splitter module providing inputs to one or more of the machine modules; wherein outputs of the machine modules provide information used to determine the configuration.
- 15. The modular optimizer of claim 14 wherein separation of the set of precedence constraints into the first and second classes of precedence constraints is implemented at least in part in the part splitter module of the modular optimizer.
- 16. The modular optimizer of claim 15 wherein for a given precedence constraint of the form A B MT, which specifies that part A must be placed on a designated board before part B if either part is to be placed by a machine type MT, the part splitter module: (i) assigns neither part A nor part B to a machine of type MT, in which case the constraint can be ignored; (ii) assigns both part A and part B to machines of type MT, such that the constraint is in the first class of constraints and is handled by the machine module corresponding to machine type MT; or (iii) assigns one of part A and part B to one machine type and the other to another machine type, such that the constraint is in the second class of constraints and is handled by the part splitter module.
- 17. An article of manufacture comprising a machine-readable medium for storing one or more software programs for use in determining a configuration of a production line comprising one or more component placement machines used to place components for assembly, the one or more programs when executed implementing the steps of:
determining a set of precedence constraints including at least a first class of constraints that apply to only one component placement machine type and a second class of constraints that apply to more than one component placement machine type; processing each of the constraints in the first class of constraints that are associated with a given machine type in a corresponding machine module of a modular optimizer which includes a plurality of machine modules each corresponding to one of the machine types; and processing the second class of constraints in a part splitter module of the modular optimizer, the part splitter module providing inputs to one or more of the machine modules; wherein outputs of the machine modules provide information used to determine the configuration.
- 18. The article of manufacture of claim 17 wherein separation of the set of precedence constraints into the first and second classes of precedence constraints is implemented at least in part in the part splitter module of the modular optimizer.
- 19. The article of manufacture of claim 18 wherein for a given precedence constraint of the form A B MT, which specifies that part A must be placed on a designated board before part B if either part is to be placed by a machine type MT, the part splitter module: (i) assigns neither part A nor part B to a machine of type MT, in which case the constraint can be ignored; (ii) assigns both part A and part B to machines of type MT, such that the constraint is in the first class of constraints and is handled by the machine module corresponding to machine type MT; or (iii) assigns one of part A and part B to one machine type and the other to another machine type, such that the constraint is in the second class of constraints and is handled by the part splitter module.
RELATED APPLICATION
[0001] The present invention is related to the invention described in U.S. patent application Ser. No. 09/286,026 filed Apr. 5, 1999 in the name of inventors Larry J. Eshelman and J. David Schaffer and entitled “Method for Optimizing a Line of Pick and Place Machines,” which is commonly assigned herewith and incorporated by reference herein.