(57)【特許請求の範囲】
【請求項１】
部品を収納した部品カセットの並びから、最大ｎ（≧２）個の部品を吸着することが可能な装着ヘッドで部品群を吸着し、ＸＹロボットにより前記装着ヘッドを移動させ基板に実装していく部品実装機であって、
前記装着ヘッドにより部品群を吸着し移動した後前記部品群を基板に装着するという１回分の一連動作によって実装される部品群をタスクとした場合に、
前記装着ヘッドは、一のタスクに属する全ての部品を基板に装着し終えると、未実装のタスクのうち、部品を吸着するために移動する距離が最小となるタスクを次に実装する
ことを特徴とする部品実装機。
【請求項２】
同一種類の部品の集まりを１つの部品テープとする部品テープを収納した部品カセットの並びと、その並びから、部品を吸着し、基板に実装していく装着ヘッドとを備える部品実装機を対象とし、コンピュータの実行により部品の実装順序を最適化する方法であって、
前記装着ヘッドにより、部品の吸着・移動・装着という一連の動作の繰り返しにおける１回分の一連動作によって実装される部品をタスクとする複数のタスクの並びからなるタスクグループにおいて、あるタスクに属する全ての部品を基板に装着し終えた直後の装着ヘッドの位置をそのタスクの最終実装点とし、あるタスクに属する部品を吸着するときの装着ヘッドの位置をそのタスクの吸着位置とした場合に、
そのタスクグループに属する任意の１つの第１タスクを選択し、その第１タスクの最終実装点を特定し、その第１タスクを除く全てのタスクのうち、タスクの吸着位置が前記第１タスクの最終実装点から最も近い位置にある第２タスクを特定し、以下同様にして、第２タスクの最終実装点を特定し、第３タスクを特定することを、前記第１タスクが再び特定されるまで、繰り返し、前記第１タスクが再び特定された場合に、それらタスクの集まりを最短巡回部分経路として特定する最短巡回部分経路特定ステップと、
そのタスクグループに属する全てのタスクが特定されるまで、前記最短巡回部分経路特定ステップを繰り返す繰り返しステップと、
前記繰り返しステップでの繰り返しによって特定された最短巡回部分経路を並べる配列ステップとを含む
ことを特徴とする部品実装順序最適化方法。
【請求項３】
前記部品実装順序最適化方法はさらに、ある最短巡回部分経路に属する全ての部品の実装を終えてから次の最短巡回部分経路を開始するのに装着ヘッドが移動すべき距離が最短となるように、各最短巡回部分経路における最初のタスク及びそれら最短巡回部分経路の順序を決定し、決定されたタスクの並びとなるように、前記タスクの順序を入れ替えるステップを含む
ことを特徴とする請求項２記載の部品実装順序最適化方法。
【請求項４】
同一種類の部品の集まりを１つの部品テープとする部品テープを収納した部品カセットの並びと、その並びから、部品を吸着し、基板に実装していく装着ヘッドとを備える部品実装機を対象とし、コンピュータの実行により部品の実装順序を最適化する方法であって、
前記装着ヘッドにより、部品の吸着・移動・装着という一連の動作の繰り返しにおける１回分の一連動作によって実装される部品をタスクとする複数のタスクの並びからなるタスクグループを生成するタスクグループ生成ステップと、
生成されたタスクグループそれぞれについて、タスクグループを構成する全ての部品の実装に要する時間が最小となるように、タスクグループ内でタスクの順序を入れ替え、得られたタスク順序に対応する部品の実装順序を最適化されたものとするタスク入替ステップとを含み、
あるタスクに属する全ての部品を基板に装着し終えた直後の装着ヘッドの位置をそのタスクの最終実装点とし、あるタスクに属する部品を吸着するときの装着ヘッドの位置をそのタスクの吸着位置とした場合に、
前記タスク入替ステップでは、
そのタスクグループに属する任意の１つの第１タスクを選択し、その第１タスクの最終実装点を特定し、その第１タスクを除く全てのタスクのうち、タスクの吸着位置が前記第１タスクの最終実装点から最も近い位置にある第２タスクを特定し、以下同様にして、第２タスクの最終実装点を特定し、第３タスクを特定することを、前記第１タスクが再び特定されるまで、繰り返し、前記第１タスクが再び特定された場合に、それらタスクの集まりを最短巡回部分経路として特定する最短巡回部分経路特定ステップと、
そのタスクグループに属する全てのタスクが特定されるまで、前記最短巡回部分経路特定ステップを繰り返す繰り返しステップと、
前記繰り返しステップでの繰り返しによって特定された最短巡回部分経路を並べる配列ステップとを含む
ことを特徴とする部品実装順序最適化方法。
【請求項５】
同一種類の部品の集まりを１つの部品テープとする部品テープを収納した部品カセットの並びと、その並びから、部品を吸着し、基板に実装していく装着ヘッドとを備える部品実装機を対象とし、コンピュータの実行により部品の実装順序を最適化する実装順序最適化装置であって、
前記装着ヘッドにより、部品の吸着・移動・装着という一連の動作の繰り返しにおける１回分の一連動作によって実装される部品をタスクとする複数のタスクの並びからなるタスクグループにおいて、あるタスクに属する全ての部品を基板に装着し終えた直後の装着ヘッドの位置をそのタスクの最終実装点とし、あるタスクに属する部品を吸着するときの装着ヘッドの位置をそのタスクの吸着位置とした場合に、
そのタスクグループに属する任意の１つの第１タスクを選択し、その第１タスクの最終実装点を特定し、その第１タスクを除く全てのタスクのうち、タスクの吸着位置が前記第１タスクの最終実装点から最も近い位置にある第２タスクを特定し、以下同様にして、第２タスクの最終実装点を特定し、第３タスクを特定することを、前記第１タスクが再び特定されるまで、繰り返し、前記第１タスクが再び特定された場合に、それらタスクの集まりを最短巡回部分経路として特定する最短巡回部分経路特定手段と、
そのタスクグループに属する全てのタスクが特定されるまで、前記最短巡回部分経路特定手段による処理を繰り返す繰り返し手段と、
前記繰り返し手段での繰り返しによって特定された最短巡回部分経路を並べる配列手段とを備える
ことを特徴とする部品実装順序最適化装置。
【請求項６】
同一種類の部品の集まりを１つの部品テープとする部品テープを収納した部品カセットの並びと、その並びから、部品を吸着し、基板に実装していく装着ヘッドとを備える部品実装機を対象とし、コンピュータの実行により部品の実装順序を最適化するためのプログラムであって、
請求項２〜４のいずれか１項に記載の部品実装順序最適化方法に含まれるステップをコンピュータに実行させる
ことを特徴とするプログラム。
【請求項７】
請求項６記載のプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【請求項８】
同一種類の部品の集まりを１つの部品テープとする部品テープを収納した部品カセットの並びと、その並びから、部品を吸着し、基板に実装していく装着ヘッドとを備える部品実装機であって、
請求項２〜４のいずれか１項に記載の部品実装順序最適化方法によって最適化された部品実装順序で部品を実装していく
ことを特徴とする部品実装機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、部品実装機によって電子部品をプリント配線基板等の基板に実装するときの最適な順序を決定する方法等に関し、特に、複数の部品を吸着して基板に装着する作業ヘッドを備える部品実装機を対象とする部品実装順序の最適化に関する。
【背景技術】
【０００２】
電子部品をプリント配線基板等の基板に実装する部品実装機では、より短いタクト（実装時間）を実現するために、対象部品の実装順序について、最適化が行われる。具体的には、実装順序の最適化の一つとして、例えば、部品実装機が装備する部品カセット群における各部品カセットの配列順序を最適化しておく必要がある。
そのための従来の技術として、例えば、特許文献１に開示された部品装着順序最適化方法がある。この方法では、（１）部品カセット群を、その部品に適用される装着スピ−ドによってグル−プ分けし、同一グループ内の部品カセットを、２個ずつ組み合わせたときの装着点数の和が均等化されるように、同一基板に対する装着点数の多いものと少ないものを適宜組み合わせてペア群を構成し、（２）このカセットグル−プを装着スピード順に配置し、かつ、同一グル−プ内においては前記ペア毎に並べることによって、カセットの配列順序を決定し、（３）その後に、部品の装着順序のみをパラメータとして最適化処理を行う。
【０００３】
これによって、カセット配列順序と部品の装着順序という２つのパラメータによる複雑な最適化が回避され、単一のパラメータによる短時間での最適化が実現される、というものである。
【特許文献１】特開平０５−１０４３６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、このような従来の最適化方法は、作業ヘッドが部品カセットから１個の部品だけを吸着して基板に装着することを前提にしているために、複数（例えば、１０個）の部品を吸着して基板に装着していく高機能な作業ヘッド（マルチ装着ヘッド）を備える部品実装機に適用することができないという問題がある。
特に、最近の携帯電話機やノートパソコン等の電子機器の急激な需要の増大に伴い、複数の部品を吸着して基板に装着していく生産性の高いマルチ装着ヘッドを備える部品実装機が開発されており、そのような高機能な部品実装機に対応した新たな部品実装順序の最適化方法が望まれている。
そこで、本発明は、生産性の高い部品実装機に対応した部品実装順序の最適化、つまり、より高い生産性を可能にする部品実装順序の最適化方法、その装置及びその方法によって最適化された順序で部品を実装する部品実装機等を提供することを目的とする。
【０００５】
具体的には、例えば、複数の部品を吸着して基板に装着するマルチ装着ヘッドを備える部品実装機に対応した部品実装順序の最適化方法等を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、部品を収納した部品カセットの並びから、最大ｎ（≧２）個の部品を吸着することが可能な装着ヘッドで部品群を吸着し、ＸＹロボットにより前記装着ヘッドを移動させ基板に実装していく部品実装機であって、前記装着ヘッドにより部品群を吸着し移動した後前記部品群を基板に装着するという１回分の一連動作によって実装される部品群をタスクとした場合に、前記装着ヘッドは、一のタスクに属する全ての部品を基板に装着し終えると、未実装のタスクのうち、部品を吸着するために移動する距離が最小となるタスクを次に実装することを特徴とする。
つまり、本発明に係る部品実装順序最適化方法は、同一種類の部品の集まりを１つの部品テープとする部品テープを収納した部品カセットの並びと、その並びから、部品を吸着し、基板に実装していく装着ヘッドとを備える部品実装機を対象とし、コンピュータの実行により部品の実装順序を最適化する方法であって、前記装着ヘッドにより、部品の吸着・移動・装着という一連の動作の繰り返しにおける１回分の一連動作によって実装される部品をタスクとする複数のタスクの並びからなるタスクグループにおいて、あるタスクに属する全ての部品を基板に装着し終えた直後の装着ヘッドの位置をそのタスクの最終実装点とし、あるタスクに属する部品を吸着するときの装着ヘッドの位置をそのタスクの吸着位置とした場合に、そのタスクグループに属する任意の１つの第１タスクを選択し、その第１タスクの最終実装点を特定し、その第１タスクを除く全てのタスクのうち、タスクの吸着位置が前記第１タスクの最終実装点から最も近い位置にある第２タスクを特定し、以下同様にして、第２タスクの最終実装点を特定し、第３タスクを特定することを、前記第１タスクが再び特定されるまで、繰り返し、前記第１タスクが再び特定された場合に、それらタスクの集まりを最短巡回部分経路として特定する最短巡回部分経路特定ステップと、そのタスクグループに属する全てのタスクが特定されるまで、前記最短巡回部分経路特定ステップを繰り返す繰り返しステップと、前記繰り返しステップでの繰り返しによって特定された最短巡回部分経路を並べる配列ステップとを含むことを特徴とする。
【０００７】
ここで、前記部品実装順序最適化方法はさらに、ある最短巡回部分経路に属する全ての部品の実装を終えてから次の最短巡回部分経路を開始するのに装着ヘッドが移動すべき距離が最短となるように、各最短巡回部分経路における最初のタスク及びそれら最短巡回部分経路の順序を決定し、決定されたタスクの並びとなるように、前記タスクの順序を入れ替えるステップを含んでもよい。
また、上記目的を達成するために、本発明に係る部品実装順序最適化方法は、同一種類の部品の集まりを１つの部品テープとする部品テープを収納した部品カセットの並びと、その並びから、部品を吸着し、基板に実装していく装着ヘッドとを備える部品実装機を対象とし、コンピュータの実行により部品の実装順序を最適化する方法であって、前記装着ヘッドにより、部品の吸着・移動・装着という一連の動作の繰り返しにおける１回分の一連動作によって実装される部品をタスクとする複数のタスクの並びからなるタスクグループを生成するタスクグループ生成ステップと、生成されたタスクグループそれぞれについて、タスクグループを構成する全ての部品の実装に要する時間が最小となるように、タスクグループ内でタスクの順序を入れ替え、得られたタスク順序に対応する部品の実装順序を最適化されたものとするタスク入替ステップとを含み、あるタスクに属する全ての部品を基板に装着し終えた直後の装着ヘッドの位置をそのタスクの最終実装点とし、あるタスクに属する部品を吸着するときの装着ヘッドの位置をそのタスクの吸着位置とした場合に、前記タスク入替ステップでは、そのタスクグループに属する任意の１つの第１タスクを選択し、その第１タスクの最終実装点を特定し、その第１タスクを除く全てのタスクのうち、タスクの吸着位置が前記第１タスクの最終実装点から最も近い位置にある第２タスクを特定し、以下同様にして、第２タスクの最終実装点を特定し、第３タスクを特定することを、前記第１タスクが再び特定されるまで、繰り返し、前記第１タスクが再び特定された場合に、それらタスクの集まりを最短巡回部分経路として特定する最短巡回部分経路特定ステップと、そのタスクグループに属する全てのタスクが特定されるまで、前記最短巡回部分経路特定ステップを繰り返す繰り返しステップと、前記繰り返しステップでの繰り返しによって特定された最短巡回部分経路を並べる配列ステップとを含むことを特徴とする。
【０００８】
さらに、本発明は、上記最適化方法のステップを機能手段として備える最適化装置として実現したり、上記最適化方法のステップによって最適化された実装順序で部品を実装する部品実装機として実現したり、上記最適化方法のステップをコンピュータに実行させるプログラム及びそのようなプログラムを格納したコンピュータ読み取り可能な記録媒体として実現することもできる。
【発明の効果】
【０００９】
本発明により、装着ヘッドが１つのタスクにおける部品の装着を終えて次のタスクの実装のために戻るときの移動距離が短縮されるので、タスクグループ全体における総実装時間が短縮される。
つまり、部品を収納した部品カセットの並びから、最大ｎ（≧２）個の部品を吸着することが可能な装着ヘッドで部品群を吸着し、ＸＹロボットにより前記装着ヘッドを移動させ基板に実装していく部品実装機において、装着ヘッドは、一のタスクに属する全ての部品を基板に装着し終えると、部品を吸着するために移動する距離が最小となるタスクを次に実装するので、マルチ装着ヘッドを備える部品実装機のように生産性の高い部品実装機に対応した部品実装順序の最適化が実現される。
【発明を実施するための最良の形態】
【００１０】
本発明の実施の形態について、以下の目次に従って、図面を用いて詳細に説明する。なお、ここで用いられる主な技術用語の意味は、本文中及び「５  用語の説明」に記載されている。
【００１１】
１  部品実装システム
１．１  部品実装機の構成
１．２  部品実装機における制約
１．２．１  マルチ装着ヘッド
１．２．２  部品認識カメラ
１．２．３  部品供給部
１．２．４  部品カセット
１．２．５  その他の制約
１．３  最適化装置
１．３．１  最適化装置のハードウェア構成
１．３．２  最適化装置のソフトウェア構成
２  最適化装置の動作（概要編）
２．１  部品グループの作成
２．２  ラインバランス処理
２．３  小部品に対する最適化
２．４  タスクグループ生成法
２．５  刈り上げ法
２．６  ランダム選択法（「貪欲法」）
２．７  交差解消法
２．８  戻り最適化法
２．９  汎用部品に対する最適化
３  最適化装置の動作（詳細編）
３．１  「刈り上げ法」
３．１．１  「タスクグループ生成法」の概要
３．１．２  「タスクグループ生成法」の課題
３．１．３  「刈り上げ法」
３．１．４  「刈り上げ法」による小部品の最適化
３．１．５  関連する個別処理
３．２  「交差解消法」
３．２．１  「貪欲法」の概要
３．２．２  「貪欲法」の課題
３．２．３  「交差解消法」
３．２．４  関連する個別処理
３．３  「戻り最適化法」
３．３．１  部品実装動作の検討
３．３．２  「戻り」行程の最適化の必要性
３．３．３  「戻り最適化法」
３．３．４  関連する個別処理
３．４  配列固定処理
３．４．１  概要
３．４．２  関連する個別処理
３．５  ＬＬサイズ基板への対応
３．５．１  概要
３．５．２  Z軸上の部品テープの入れ替え
３．５．３  吸着方法の変更
３．５．４  関連する個別処理
３．６  ＸＬサイズ基板への対応
３．６．１  概要
３．６．２  関連する個別処理
３．７  負荷バランス処理
３．７．１  概要
３．７．２  バランス調整方法のレベル
３．７．３  関連する個別処理
３．８  ラインバランス処理
３．８．１  概要
３．８．２  バランス調整方法のレベル
３．８．３  関連する個別処理
３．９．  最適化装置による個別処理の詳細
３．９．１  「刈り上げ法」
３．９．２  平行四辺形によるカセット分割
３．９．３  長方形によるカセット分割
３．９．４  与えられたカセット本数でのコア処理方法
３．９．５  小部品のタスク生成処理
３．９．６  「交差解消法」
３．９．７  「戻り最適化法」
３．９．８  全体の流れ（ヒストグラムからスタート）
３．９．９  カセットブロック内の固定部品と「山」の配置関係
３．９．１０  配列固定：固定先の使用可否判断
３．９．１１  ダブルカセットの配列固定について
３．９．１２  LL制約：吸着方法の変更（１）
３．９．１３  LL制約：吸着方法の変更（２）
３．９．１４  LL制約：Z軸上の部品テープの入れ替え（１）
３．９．１５  LL制約：Z軸上の部品テープの入れ替え（２）
３．９．１６  XLサイズ基板への対応（XL制約）
３．９．１７  負荷レベルバランス調整処理（「山」単位）
３．９．１８  負荷レベルバランス調整処理（部品テープ単位）
３．９．１９  前サブ設備から後サブ設備へ山を移動する処理
３．９．２０  前サブ設備から後サブ設備へ部品テープを移動する処理
３．９．２１  前サブ設備から後サブ設備へ実装点を移動する処理
３．９．２２  ラインバランス処理でのスワップ処理
３．９．２３  ダブルカセットの「刈り上げ法」
３．９．２４  ノズル交換のアルゴリズム
３．１０  画面表示例
３．１０．１  メイン画面
３．１０．２  開く画面
３．１０．３  最適化詳細情報画面
３．１０．４  カセット個数設定画面
３．１０．５  部品分割数設定画面
３．１０．６  ノズル本数設定画面
３．１０．７  ノズルステーション選択画面
３．１０．８  オプション設定画面
３．１０．９  Ｚ軸情報画面
３．１０．１０  ノズルステーション情報画面
４  最適化装置の動作（応用編）
４．１  小部品の最適化
４．１．１  部品分割しないＺ配列の最適化
４．１．２  左右ブロックへの振り分け処理における最適化
４．１．３  ダブルカセットの使用本数の見積もり
４．１．４  ダブルカセットのペア固定
４．１．５  ＮＧヘッドを考慮した最適化アルゴリズム
４．２  複数ＮＣデータの同時最適化
４．３  汎用部品の最適化（ルールベースの導入）
４．３．１  横取り法
４．３．２  タスク分割
４．３．３  タスク融合
４．３．４  タスク入替
４．４  ノズル制約を考慮した最適化
４．４．１  ノズルステーション上のノズル配置を固定した場合への対応
４．４．２  使用ノズルが１０本未満の場合の小部品の最適化
５  用語の説明
以上の目次に示された各項目の説明は以下の通りである。
【００１２】
１  部品実装システム
図１は、本発明に係る部品実装システム１０全体の構成を示す外観図である。この部品実装システム１０は、上流から下流に向けて回路基板２０を送りながら電子部品を実装していく生産ラインを構成する複数の部品実装機１００、２００と、生産の開始等にあたり、各種データベースに基づいて必要な電子部品の実装順序を最適化し、得られたＮＣデータを部品実装機１００、２００にダウンロードして設定・制御する最適化装置３００とからなる。
【００１３】
部品実装機１００は、同時かつ独立して、又は、お互いが協調して（又は、交互動作にて）部品実装を行う２つのサブ設備（前サブ設備１１０及び後サブ設備１２０）を備える。各サブ設備１１０（１２０）は、直交ロボット型装着ステージであり、部品テープを収納する最大４８個の部品カセット１１４の配列からなる２つの部品供給部１１５ａ及びｂと、それら部品カセット１１４から最大１０個の部品を吸着し基板２０に装着することができる１０個の吸着ノズル（以下、単に「ノズル」ともいう。）を有するマルチ装着ヘッド１１２（１０ノズルヘッド）と、そのマルチ装着ヘッド１１２を移動させるＸＹロボット１１３と、マルチ装着ヘッド１１２に吸着された部品の吸着状態を２次元又は３次元的に検査するための部品認識カメラ１１６と、トレイ部品を供給するトレイ供給部１１７等を備える。
【００１４】
なお、「部品テープ」とは、現実は、同一部品種の複数の部品がテープ（キャリアテープ）上に並べられたものであり、リール（供給リール）等に巻かれた状態で供給される。主に、チップ部品と呼ばれる比較的小さいサイズの部品を部品実装機に供給するのに使用される。ただし、最適化処理においては、「部品テープ」とは、同一の部品種に属する部品の集合（それら複数個の部品が仮想的なテープ上に並べられたもの）を特定するデータであり、「部品分割」と呼ばれる処理によって、１つの部品種に属する部品群（1本の部品テープ）が複数本の部品テープに分割される場合がある。
また、部品テープによって供給される部品をテーピング部品と呼ぶ。
この部品実装機１００は、具体的には、高速装着機と呼ばれる部品実装機と多機能装着機と呼ばれる部品実装機それぞれの機能を併せもつ実装機である。高速装着機とは、主として□１０ｍｍ以下の電子部品を１点あたり０．１秒程度のスピードで装着する高い生産性を特徴とする設備であり、多機能装着機とは、□１０ｍｍ以上の大型電子部品やスイッチ・コネクタ等の異形部品、ＱＦＰ・ＢＧＡ等のＩＣ部品を装着する設備である。
【００１５】
つまり、この部品実装機１００は、ほぼ全ての種類の電子部品（装着対象となる部品として、０．６ｍｍ×０．３ｍｍのチップ抵抗から２００ｍｍのコネクタまで）を装着できるように設計されており、この部品実装機１００を必要台数だけ並べることで、生産ラインを構成することができる。
【００１６】
１．１  部品実装機の構成
図２は、本発明に係る部品実装順序最適化の対象となる部品実装機１００の主要な構成を示す平面図である。
シャトルコンベヤ１１８は、トレイ供給部１１７から取り出された部品を載せて、マルチ装着ヘッド１１２による吸着可能な所定位置まで運搬するための移動テーブル（回収コンベア）である。ノズルステーション１１９は、各種形状の部品種に対応するための交換用ノズルが置かれるテーブルである。
【００１７】
各サブ設備１１０（又は１２０）を構成する２つの部品供給部１１５ａ及びｂは、それぞれ、部品認識カメラ１１６を挟んで左右に配置されている。したがって、部品供給部１１５ａ又は１１５ｂにおいて部品を吸着したマルチ装着ヘッド１１２は、部品認識カメラ１１６を通過した後に、基板２０の実装点に移動し、吸着した全ての部品を順次装着していく動作を繰り返す。
ここで、マルチ装着ヘッド１１２による部品の吸着・移動・装着という一連の動作の繰り返しにおける１回分の動作（吸着・移動・装着）、又は、そのような１回分の動作によって実装される部品群）を「タスク」と呼ぶ。例えば、１０ノズルヘッド１１２によれば、１個のタスクによって実装される部品の最大数は１０となる。なお、ここでいう「吸着」には、ヘッドが部品を吸着し始めてから移動するまでの全ての吸着動作が含まれ、例えば、１回の吸着動作（マルチ装着ヘッド１１２の上下動作）で１０個の部品を吸着する場合だけでなく、複数回の吸着動作によって１０個の部品を吸着する場合も含まれる。
【００１８】
図３は、マルチ装着ヘッド１１２と部品カセット１１４の位置関係を示す模式図である。このマルチ装着ヘッド１１２は、「ギャングピックアップ方式」と呼ばれる作業ヘッドであり、最大１０個の吸着ノズル１１２ａ〜１１２ｂを装着することが可能であり、このときには、最大１０個の部品カセット１１４それぞれから部品を同時に（１回の上下動作で）吸着することができる。
なお、「シングルカセット」と呼ばれる部品カセット１１４には１つの部品テープだけが装填され、「ダブルカセット」と呼ばれる部品カセット１１４には２つの部品テープ（ただし、送りピッチ（２ｍｍ又は４ｍｍ）が同一の部品テープに限られる）が装填される。また、部品供給部１１５ａ及びｂにおける部品カセット１１４（又は、部品テープ）の位置を「Ｚ軸上の値」又は「Ｚ軸上の位置」と呼び、部品供給部１１５ａの最左端を「１」とする連続番号等が用いられる。したがって、テーピング部品についての実装順序を決定することは、部品種（又は、部品テープ、又は、その部品テープを収納した部品カセット１１４）の並び（Ｚ軸上の位置）を決定することに等しい。
【００１９】
図４（ａ）は、サブ設備１１０及び１２０それぞれの部品供給部１１５ａ、ｂ及び２１５ａ、ｂの具体的な構成例を示し、図４（ｂ）は、その構成における各種部品カセット１１４の搭載本数及びＺ軸上の位置を示す表である。
図４（ａ）に示されるように、各部品供給部１１５ａ、１１５ｂ、２１５ａ、２１５ｂは、それぞれ、最大４８個の部品テープを搭載することができる（それぞれの位置は、Ｚ１〜Ｚ４８、Ｚ４９〜Ｚ９６、Ｚ９７〜Ｚ１４４、Ｚ１４５〜Ｚ１９２）。具体的には、図４（ｂ）に示されるように、テープ幅が８ｍｍの部品テープを２つ収納したダブルカセットを用いることで、各部品供給部（Ａブロック〜Ｄブロック）に最大４８種類の部品を搭載することができる。テープ幅の大きい部品（部品カセット）ほど、１つのブロックに搭載できるカセット本数は減少する。
【００２０】
なお、各サブ設備に向かって左側の部品供給部１１５ａ、２１５ａ（Ａブロック、Ｃブロック）を「左ブロック」、各サブ設備に向かって右側の部品供給部１１５ｂ、２１５ｂ（Ｂブロック、Ｄブロック）を「右ブロック」とも呼ぶ。
図５（ａ）及び（ｂ）は、１０ノズルヘッドが吸着可能な部品供給部の位置（Ｚ軸）の例を示す図及び表である。なお、図中のＨ１〜１０は、１０ノズルヘッドに搭載されたノズル（の位置）を指す。
ここでは、１０ノズルヘッドの各ノズルの間隔は、１つのダブルカセットの幅（２１．５ｍｍ）に相当するので、１回の上下動により吸着される部品のＺ番号は、１つおき（奇数のみ又は偶数のみ）となる。また、１０ノズルヘッドのＺ軸方向における移動制約により、図５（ｂ）に示されるように、各部品供給部の一端を構成する部品（Ｚ軸）に対しては、吸着することができないノズル（図中の「−」）が存在する。
【００２１】
次に、図６〜図８を用いて、部品カセット１１４の詳細な構造を説明する。
図６（ａ）、（ｂ）、（ｃ）、（ｄ）に示すような各種チップ形電子部品４２３ａ〜４２３ｄを図７に示すキャリアテープ４２４に一定間隔で複数個連続的に形成された収納凹部４２４ａに収納し、この上面にカバーテープ４２５を貼付けて包装し、供給用リール４２６に所定の数量分を巻回したテーピング形態（部品テープ）でユーザに供給されている。
このようなテーピング電子部品４２３ｄは図８に示すような部品カセット１１４に装着されて使用されるものであり、図８において供給用リール４２６は本体フレーム４２７に結合されたリール側板４２８に回転自在に取り付けられている。この供給用リール４２６より引き出されたキャリアテープ４２４は送りローラ４２９に案内され、この電子部品供給装置が搭載された電子部品自動装着装置（図示せず）の動作に連動し、同装置に設けられたフィードレバー（同じく図示せず）により電子部品供給装置の送りレバー４３０が図中の矢印Ｙ１方向に移動し、送りレバー４３０に取り付けられているリンク４３１を介してラチェット４３２を定角度回転させる。そしてラチェット４３２に連動した前記送りローラ４２９を定ピッチ（たとえば、２ｍｍ又は４ｍｍの送りピッチ）だけ動かす。
【００２２】
また、キャリアテープ４２４は送りローラ４２９の手前（供給用リール４２６側）のカバーテープ剥離部４３３でカバーテープ４２５を引き剥がし、引き剥がしたカバーテープ４２５はカバーテープ巻取りリール４３４に巻取られ、カバーテープ４２５を引き剥がされたキャリアテープ４２４は電子部品取り出し部４３５に搬送され、前記送りローラ４２９がキャリアテープ４２４を搬送するのと同時に前記ラチェット４３２に連動して開口する電子部品取り出し部４３５より真空吸着ヘッド（図示せず）により収納凹部４２４ａに収納されたチップ形電子部品４２３ｄを吸着して取り出す。その後、送りレバー４３０は上記フィードレバーによる押し力を解除されて引張りバネ４３６の付勢力でもって同Ｙ２方向に、すなわち元の位置にもどる。
上記一連の動作が繰り返されると使用済のキャリアテープ４２４は電子部品供給装置の外部へ排出され、上記電子部品自動供給装置の動作と連動しているカッター（図示せず）で細かく切断して廃棄されるように構成されている。
【００２３】
なお、部品カセット１１４は、２つのキャリアテープ４２４を収納するダブルカセットのタイプである場合には、収納している２つのキャリアテープ４２４を同一の送りピッチでのみ供給していくことができるものとする。
この部品実装機１００の動作上の特徴をまとめると、以下の通りである。
（１）ノズル交換
次の装着動作に必要なノズルがマルチ装着ヘッド１１２にないとき、マルチ装着ヘッド１１２は、ノズルステーション１１９へ移動し、ノズル交換を実施する。ノズルの種類としては、吸着できる部品のサイズに応じて、例えば、タイプＳ、Ｍ、Ｌ等がある。
（２）部品吸着
マルチ装着ヘッド１１２が部品供給部１１５ａ及びｂに移動し、電子部品を吸着する。一度に１０個の部品を同時に吸着できないときは、吸着位置を移動させながら複数回、吸着上下動作を行うことで、最大１０個の部品を吸着することができる。
（３）認識スキャン
マルチ装着ヘッド１１２が部品認識カメラ１１６上を一定速度で移動し、マルチ装着ヘッド１１２に吸着された全ての電子部品の画像を取り込み、部品の吸着位置を正確に検出する。
（４）部品装着
基板２０に、順次電子部品を装着する。
【００２４】
上記（１）から（４）の動作を繰り返し行うことで、全ての電子部品を基板２０に搭載する。上記（２）から（４）の動作は、この部品実装機１００による部品の実装における基本動作であり、「タスク」に相当する。つまり、１つのタスクで、最大１０個の電子部品を基板に装着することができる。
【００２５】
１．２  部品実装機における制約
部品の実装順序を最適化する目的は、部品実装機１００による単位時間当たりの基板の生産枚数を最大化することである。したがって、好ましい最適化方法（最適化アルゴリズム）とは、この部品実装機１００が有する上述の機能上及び動作上の特徴から分かるように、基板上に効率よく装着できる１０個の電子部品を選び、それらを同時に部品供給部から吸着し、最短経路で順次装着するようなアルゴリズムである。このような最適化アルゴリズムで決定された部品実装順序は、理想的には、１本のノズルだけによる部品実装の場合と比較し、約１０倍の生産性を向上することができる。
【００２６】
ところが、いかなる部品実装機であっても、機構上、コスト上、運用上などの面から、部品の実装順序の決定に対する制約要因を持っている。したがって、現実的には、部品の実装順序の最適化とは、様々な制約を遵守したうえで、単位時間当たりの基板の生産枚数を可能な限り最大化することである。
以下、この部品実装機１００における主な制約を列挙する。なお、制約の詳細については、個々の最適化アルゴリズムを説明している箇所においても説明している。
【００２７】
１．２．１  マルチ装着ヘッド
マルチ装着ヘッド１１２は、独立して吸着・装着動作をする１０個の装着ヘッドが一列に並べられたものであり、最大１０本の吸着ノズルが着脱可能であり、それら一連の吸着ノズルによって、１回の吸着上下動作で最大１０個の部品を同時に吸着することができる。
【００２８】
なお、マルチ装着ヘッドを構成している個々の作業ヘッド（１個の部品を吸着する作業ヘッド）」を指す場合には、単に「装着ヘッド（又は、「ヘッド」）」と呼ぶ。
マルチ装着ヘッド１１２を構成する１０本の装着ヘッドが直線状に並ぶという構造上、部品吸着時と部品装着時のマルチ装着ヘッド１１２の可動範囲に関して制約がある。具体的には、図５（ｂ）に示されるように、部品供給部の両端（左ブロック１１５ａの左端付近及び右ブロック１１５ｂの右端付近））で電子部品を吸着するときには、アクセスできる装着ヘッドが制限される。
また、電子部品を基板に装着する時にも、マルチ装着ヘッド１１２の可動範囲は制限を受ける。後述する「ＬＬサイズ基板」や「ＸＬサイズ基板」と呼ばれる通常よりも縦又は横方向に大きいサイズの基板に対して、部品を実装する場合に生じる制約である。
【００２９】
１．２．２  部品認識カメラ
この部品実装機１００には、部品認識カメラ１１６として、２次元画像を撮像する２Ｄカメラと、高さ情報も検出できる３Ｄカメラが搭載されている。２Ｄカメラには、撮像できる視野の大きさによって、２ＤＳカメラと２ＤＬカメラがある。２ＤＳカメラは視野は小さいが高速撮像が可能で、２ＤＳカメラは最大６０×２２０ｍｍまでの大きな視野を特徴としている。３Ｄカメラは、ＩＣ部品の全てのリードが曲がっていないかどうかを３次元的に検査するために用いられる。
【００３０】
電子部品を撮像する際の認識スキャン速度は、カメラによって異なる。２ＤＳカメラを使用する部品と３Ｄカメラを使用する部品が同じタスクに存在する場合には、認識スキャンはそれぞれの速度で２度実施する必要がある。
【００３１】
１．２．３  部品供給部
電子部品のパッケージの状態には、電子部品をテープ状に収納するテーピングと呼ばれる方式と、部品の大きさに合わせて間仕切りをつけたプレートに収納するトレイと呼ばれる方式がある。
テーピングによる部品の供給は、部品供給部１１５ａ及びｂにより行われ、トレイによる供給は、トレイ供給部１１７により行われる。
電子部品のテーピングは規格化されており、部品の大きさに応じて、８ｍｍ幅から７２ｍｍまでのテーピング規格が存在する。このようなテープ状の部品（部品テープ）をテープ幅に応じた部品カセット（テープ・フィーダ・ユニット）にセットすることで、電子部品を安定した状態で連続的に取り出すことが可能となる。
【００３２】
部品カセットをセットする部品供給部は、１２ｍｍ幅までの部品テープを２１．５ｍｍピッチで隙間なく搭載できるように設計されている。テープ幅が１６ｍｍ以上になると、テープ幅に応じて必要分だけ隙間をあけてセットすることになる。複数の電子部品を同時に（１回の上下動作で）吸着するためには、装着ヘッドと部品カセットそれぞれの並びにおけるピッチが一致すればよい。テープ幅が１２ｍｍまでの部品に対しては、１０点同時吸着が可能である。
なお、部品供給部を構成する２つの部品供給部（左ブロック１１５ａ、右ブロック１１５ｂ）それぞれには、１２ｍｍ幅までの部品テープを最大４８個搭載することができる。
【００３３】
１．２．４  部品カセット
部品カセットには、１つの部品テープだけを収納するシングルカセットと、最大２つの部品テープを収納することができるダブルカセットとがある。ダブルカセットに収納する２つの部品テープは、送りピッチ（２ｍｍ又は４ｍｍ）が同一の部品テープに限られる。
【００３４】
１．２．５  その他の制約
部品実装機１００における制約には、以上のような部品実装機１００の構造から生じる制約だけでなく、部品実装機１００が使用される生産現場における事情から生じる以下のような運用面での制約もある。
（１）配列固定
例えば、人手による部品テープの交換作業を削減するために、特定の部品テープ（又は、それを収納した部品カセット）については、セットする部品供給部での位置（Ｚ軸上の位置）が固定される場合がある。
（２）リソース上の制約
同一部品種について準備できる部品テープの本数、部品テープを収納する部品カセットの数、ダブルカセットの数、吸着ノズルの数（タイプごとの数）等が、一定数に制限される場合がある。
１．３  最適化装置
最適化装置３００は、生産の対象（基板及びその上に実装すべき部品）と生産の道具（限られたリソースを備えた部品実装機、サブ設備）が与えられた場合に、可能な限り短い時間で基板を製造する（単位時間あたりに製造できる基板の枚数を多くする）ための部品実装順序を決定する装置である。
【００３５】
具体的には、基板あたりの実装時間を最小化するためには、どの部品実装機（サブ設備）のどの位置（Ｚ軸）にいかなる部品テープを収めた部品カセットを配置しておき、各部品実装機（サブ設備）のマルチ装着ヘッドがいかなる順序で部品カセットから可能な限り多くの部品を同時に吸着し、吸着した複数の部品を基板上のどの位置（実装点）にどのような順序で装着すればよいかをコンピュータ上で決定する（最適解を探索する）装置である。
このときに、対象の部品実装機（サブ設備）が有する上述の制約を厳守することが要求される。
【００３６】
１．３．１  最適化装置のハードウェア構成
最適化装置３００は、本発明に係る最適化プログラムをパーソナルコンピュータ等の汎用のコンピュータシステムが実行することによって実現され、現実の部品実装機１００と接続されていない状態で、スタンドアロンのシミュレータ（部品実装順序の最適化ツール）としても機能する。
【００３７】
図９は、図１に示された最適化装置３００のハードウェア構成を示すブロック図である。この最適化装置３００は、生産ラインを構成する各設備の仕様等に基づく各種制約の下で、対象となる基板の部品実装におけるラインタクト（ラインを構成するサブ設備ごとのタクトのうち、最大のタクト）を最小化するように、部品実装用ＣＡＤ装置等から与えられた全ての部品を対象として、各サブ設備で実装すべき部品及び各サブ設備における部品の実装順序を決定し、最適なＮＣデータを生成するコンピュータ装置であり、演算制御部３０１、表示部３０２、入力部３０３、メモリ部３０４、最適化プログラム格納部３０５、通信Ｉ／Ｆ（インターフェース）部３０６及びデータベース部３０７等から構成される。
なお、「タクト」とは、対象の部品を実装するのに要する総時間である。
【００３８】
演算制御部３０１は、ＣＰＵや数値プロセッサ等であり、ユーザからの指示等に従って、最適化プログラム格納部３０５からメモリ部３０４に必要なプログラムをロードして実行し、その実行結果に従って、各構成要素３０２〜３０７を制御する。
表示部３０２はＣＲＴやＬＣＤ等であり、入力部３０３はキーボードやマウス等であり、これらは、演算制御部３０１による制御の下で、本最適化装置３００と操作者とが対話する等のために用いられる。具体的なユーザインターフェースは、後述の画面表示例で説明している通りである。
通信Ｉ／Ｆ部３０６は、ＬＡＮアダプタ等であり、本最適化装置３００と部品実装機１００、２００との通信等に用いられる。
メモリ部３０４は、演算制御部３０１による作業領域を提供するＲＡＭ等である。最適化プログラム格納部３０５は、本最適化装置３００の機能を実現する各種最適化プログラムを記憶しているハードディスク等である。
【００３９】
データベース部３０７は、この最適化装置３００による最適化処理に用いられる入力データ（実装点データ３０７ａ、部品ライブラリ３０７ｂ及び実装装置情報３０７ｃ）や最適化によって生成された実装点データ等を記憶するハードディスク等である。
図１０〜図１２は、それぞれ、実装点データ３０７ａ、部品ライブラリ３０７ｂ及び実装装置情報３０７ｃの例を示す。
実装点データ３０７ａは、実装の対象となる全ての部品の実装点を示す情報の集まりである。図１０に示されるように、１つの実装点ｐiは、部品種ｃi、Ｘ座標ｘi、Ｙ座標ｙi、制御データφiからなる。ここで、「部品種」は、図１１に示される部品ライブラリ３０７ｂにおける部品名に相当し、「Ｘ座標」及び「Ｙ座標」は、実装点の座標（基板上の特定位置を示す座標）であり、「制御データ」は、その部品の実装に関する制約情報（使用可能な吸着ノズルのタイプ、マルチ装着ヘッド１１２の最高移動速度等）である。なお、最終的に求めるべきＮＣデータとは、ラインタクトが最小となるような実装点の並びである。
【００４０】
部品ライブラリ３０７ｂは、部品実装機１００、２００が扱うことができる全ての部品種それぞれについての固有の情報を集めたライブラリであり、図１１に示されるように、部品種ごとの部品サイズ、タクト（一定条件下における部品種に固有のタクト）、その他の制約情報（使用可能な吸着ノズルのタイプ、部品認識カメラ１１６による認識方式、マルチ装着ヘッド１１２の最高速度比等）からなる。なお、本図には、参考として、各部品種の部品の外観も併せて示されている。
実装装置情報３０７ｃは、生産ラインを構成する全てのサブ設備ごとの装置構成や上述の制約等を示す情報であり、図１２に示されるように、マルチ装着ヘッドのタイプ等に関するヘッド情報、マルチ装着ヘッドに装着され得る吸着ノズルのタイプ等に関するノズル情報、部品カセット１１４の最大数等に関するカセット情報、トレイ供給部１１７が収納しているトレイの段数等に関するトレイ情報等からなる。
【００４１】
これらの情報は、以下のように呼ばれるデータである。つまり、設備オプションデータ（サブ設備毎）、リソースデータ（設備毎で利用可能なカセット本数とノズル本数）、ノズルステーション配置データ（ノズルステーション付きのサブ設備毎）、初期ノズルパターンデータ（サブ設備毎）、Ｚ軸配置データ（サブ設備毎）等である。また、リソースに関して、ＳＸ，ＳＡ，Ｓ等の各タイプのノズル本数は１０本以上とする。
【００４２】
１．３．２  最適化装置のソフトウェア構成
最適化プログラム格納部３０５に格納された最適化プログラムの特徴の１つは、電子部品を「小部品」と「汎用部品」に大別し、それぞれに異なった最適化アルゴリズムを適用した点である。
基板に搭載する電子部品の数は、例えば、多い場合で１０００点程度になるが、その９０パーセントは部品サイズが□３．３ｍｍ以下のチップ部品である（以下、このような小さいサイズの部品を「小部品」と呼ぶ。）。小部品は抵抗やコンデンサ等の部品で、部品サイズもいくつかのパターンに限定できる。テーピングは、すべて８ｍｍ幅で、１０点同時吸着可能な部品である。小部品の満たすべき条件は、例えば、以下の通りである。
・部品サイズが□３．３ｍｍ以下である。
・部品高さが４．０ｍｍ以下である。
・部品認識カメラが２ＤＳである。
・部品テープ幅が８ｍｍである。
【００４３】
一方、残りの１０％の部品は、コネクタやＩＣ等の異形部品である（以下、小部品の条件を満たさない大きいサイズの部品を「汎用部品」と呼ぶ。）。部品によっては、トレイで供給されたり、特殊なノズルが必要であったりするために、最適化時に考慮すべきパラメータが多い。
そこで、小部品に対しては、１０点同時吸着タスクが最大限に生成でき、高速に最適化処理が実行できるアルゴリズムを目標としている。一方、汎用部品に対しては、タスク単位での装着時間を評価関数として、状態（とり得る実装順序の１つ）を変化させながら最適な実装順序を導き出す、柔軟性に富んだアルゴリズムで最適化レベルを高めることを目標としている。
図１３は、図９に示された最適化プログラム格納部３０５に格納されている最適化プログラムの機能ブロック図である。最適化プログラムは、大きく分けて、部品グループ生成部３１４、ラインバランス最適化部３１５及び状態最適化部３１６から構成される。なお、図示されていないが、最適化プログラムには、ユーザと対話するためのＧＵＩ（グラフィカル・ユーザ・インターフェース）の機能も含まれている。
【００４４】
部品グループ生成部３１４は、データベース部３０７に格納された実装点データ３０７ａによって特定される全ての実装部品を、部品厚みの点から、例えば、９つの部品グループに分類する。具体的には、実装点データ３０７ａが示す全ての部品種を参照することで、同一部品種ごとの部品数を示す部品表を作成し、部品ライブラリ３０７ｂにおける部品サイズを参照することで、全ての部品種それぞれを複数の部品グループのいずれかに対応づける。そして、その分類結果（各部品グループに属する部品種及び部品数等）をラインバランス最適化部３１５に通知する。
ラインバランス最適化部３１５は、部品グループ生成部３１４から通知された部品グループの情報に基づいて、部品厚みの薄い部品グループから順に実装することを遵守しつつ、ラインタクトが最小となるように、ラインバランスを最適化（サブ設備ごとのタクトを平準化）する。そのために、状態最適化部３１６と連携しながら動作する３つの機能モジュール（第１ＬＢＭ部３１５ａ、第２ＬＢＭ部３１５ｂ及び第３ＬＢＭ部３１５ｃ）を有する。
【００４５】
なお、部品厚みの薄い部品グループを優先して実装することとしているのは、基板に部品を装着する際のマルチ装着ヘッド１１２の移動を円滑にさせ、実装の品質を高めるためである。
第１ＬＢＭ部３１５ａは、部品グループ生成部３１４から通知された複数の部品グループをタスクグループの単位で各サブ設備でのタクトがほぼ等しくなるようにラフに振り分ける。つまり、粗い調整によるラインバランスの最適化を行う。ここで、「タスクグループ」とは、タスクの集まりをいい、最適化のために部品の実装順序を入れ替えることが可能な部品群の範囲と一致する。
第２ＬＢＭ部３１５ｂは、第１ＬＢＭ部３１５ａによってラフに振り分けられた各サブ設備ごとのタスクグループをサブ設備間で移動させることによりラインタクトを最小化する。つまり、細かい調整によるラインバランスの最適化を行う。
【００４６】
第３ＬＢＭ部３１５ｃは、第２ＬＢＭ部３１５ｂにより最適化された状態（タスクグループの振り分け）に対して、部品種（部品テープ）を単位として、第２ＬＢＭ部３１５ｂと同様の手順でラインバランスの最適化を行う。
状態最適化部３１６は、部品グループ生成部３１４で生成された複数の部品グループそれぞれについて、各部品グループを構成するタスクグループを決定したり、決定したタスクグループごとの最適状態（各部品テープのＺ軸上の値、各部品テープにおける部品（実装点）の実装順序）を決定するものであり、小部品（例えば、９個の部品グループのうちの５つに属する部品）を対象として最適化を行う小部品最適化部３１６ａと、汎用部品（例えば、９個の部品グループのうちの残る４つに属する部品）を対象として最適化を行う汎用部品最適化部３１６ｂと、それら小部品最適化部３１６ａおよび汎用部品最適化部３１６ｂにおける最適化に共通する計算処理を実行する最適化エンジン部３１６ｃとから構成される。なお、「状態」とは、対象となっている部品又は部品種（部品テープ）がとり得る個々の実装順序をいう。
【００４７】
なお、小部品最適化部３１６ａは、簡易で高速処理に向いたアルゴリズムを用いてタスクグループを決定したり状態の最適化を行い、一方、汎用部品最適化部３１６ｂは、緻密でインテリジェントなアルゴリズムを用いて状態の最適化を行う。これは、一般に、携帯電話機等の基板に実装される小部品の総数は、上述したように、汎用部品に比べて極めて多い（例えば、９：１の比率）ことが分かっているので、それぞれに対応したアルゴリズムを用いて最適化を行うことで、トータルとして、より短時間で、より最適な解を求めるためである。
最適化エンジン部３１６ｃは、小部品最適化部３１６ａ及び汎用部品最適化部３１６ｂから与えられたパラメータに基づいて、ヒューリスティックであるが確定的なアルゴリズム（山登り法）に基づく最適化計算と、確率的ではあるがグローバルに最適解を探索するアルゴリズム（マルチカノニカル法）に基づく最適化計算を実行する。
【００４８】
図１４は、図９に示された最適化プログラム格納部３０５に格納されている最適化プログラムが演算制御部３０１によって実行されたときの概略フロー図である。つまり、本図は、図１３に示された各機能ブロックによる代表的な処理の流れであり、最適化装置３００による主な処理に対応するフローチャートに相当する。
ここでは、基本的に、上方のステップ（矩形の枠内の処理）から下方に向けて順に実行される。ネスティング表示された箇所は、親のステップが、ネストして配置された子供のステップ（又は、その繰り返し）によって実現されることを示している。
本図に示されるように、最適化処理全体Ｓ３１０は、以下の６つの大きなステップＳ３１１〜Ｓ３１６からなる。
（１）実装点データの読込み（Ｓ３１１）
最初に、データベース部３０７から全ての実装点データ３０７ａをメモリ部３０４等へ読み込む。必要に応じて、関連するデータ（部品ライブラリ３０７ｂ、実装装置情報３０７ｃ）も読み込んでおく。
（２）部品リストの作成（Ｓ３１２）
各実装点データ３０７ａには、装着する部品の情報（部品ライブラリ３０７ｂ）がリンクされているので、全ての実装点データ３０７ａを読み込めば、どのような部品を何点装着するかを記した部品リストを作成することができる。
（３）部品グループの生成（Ｓ３１３）
次に、部品リストから部品グループを生成する。「部品グループ」とは、部品リストを部品の大きさによってグループ化したもので、大きくは小部品と汎用部品の分類である。小部品は、例えば、大きさによって、さらに以下のような３つの部品グループに細分化される。
Ｇ１：０．６ｍｍ×０．３ｍｍサイズの部品
Ｇ２：１．０ｍｍ×０．５ｍｍサイズの部品
Ｇ３：１．６ｍｍ×０．８ｍｍサイズ以上の部品
（４）前後サブ設備への初期振り分け（Ｓ３１４）
電子部品ごとに標準装着時間を決定しておき、各設備に振り分けられた部品に対する標準装着時間の累算値がほぼ同じになるように、前後サブ設備１１０、１２０に部品種（部品テープ）を振り分ける。なお、前後サブ設備１１０、１２０に部品を振り分けた後、部品グループ等を単位として、さらに、左右ブロックのいずれかに部品テープを振り分ける。
【００４９】
（５）ラインバランス処理（Ｓ３１５）
小部品の最適化処理と汎用部品の最適化処理を、順次実行する（Ｓ３２０、Ｓ３２１）。そして、配列固定を考慮したうえで、部品テープを部品供給部１１５ａ及びｂに配置する（Ｓ３２２）。続いて、装着時間を前後サブ設備１１０、１２０ごとに計算し、その結果、前後のバランスが悪ければ、前後サブ設備１１０、１２０間で部品を移動させ（Ｓ３２３）、再び、小部品と汎用部品の最適化処理を実施する。また、実装点（基板上の部品の装着位置）を考慮した最適化、つまり、後述する交差解消法による最適化（Ｓ３２４）や、戻り最適化法による最適化（Ｓ３２５）を施す。
【００５０】
なお、図１４のフローチャートには、小部品に対する最適化については（Ｓ３２０）、複数の手法の中から選択された代表的なもの（「刈り上げ法」）が採用された場合の処理手順が示されている。
（６）最適化結果の出力（Ｓ３１６）
上記全ての処理を終えると以下のデータを出力する。
・電子部品の実装順序とタスク構成
・部品供給部１１５ａ及びｂのレイアウト（部品テープの並び）
・フィーダ、ノズル等のリソース利用状況
・前後サブ設備１１０、１２０ごとの実装予測時間
これらのステップと図１３に示された各機能ブロックとの対応は、次の通りである。つまり、ステップＳ３１１〜Ｓ３１３、主に部品グループ生成部３１４による処理であり、ステップＳ３１４は、主にラインバランス最適化部３１５の第１ＬＢＭ部３１５ａ及び第２ＬＢＭ部３１５ｂによる処理であり、ステップＳ３１５は、主にラインバランス最適化部３１５の第３ＬＢＭ部３１５ｃ及び状態最適化部３１６による処理であり、ステップＳ３１６は、主にラインバランス最適化部３１５及び図示されていないユーザ・インターフェース部による処理である。
【００５１】
これらステップの詳細は、後述の「最適化装置の動作（概要編）」、「最適化装置の動作（詳細編）」及び「最適化装置の動作（応用編）」で説明している通りである。
なお、図中の「ＨＣ法」は、山登り法を意味し、ヒューリスティックであるが確定的に最適解を求めるアルゴリズムであり、「ＭＣ法」は、マルチカノニカル法を意味し、確率的ではあるがグローバルに最適解を探索するアルゴリズムである。
より詳しくは、部品実装順序の最適化とは、有限個数のとり得る実装順序の中から、一定条件（上述の制約等）を満たし、かつ、実装時間が最短となる実装順序を探し出す処理であり、数学的には、最適化問題において一定条件下で解（最適解）を求める処理に相当する。
「山登り法（ＨＣ法）」は、局所的探索法と呼ばれる解法の１つであり、まずとにかく条件を満たす解を１つ選び、以降、その解に、一定順序に従った変形（ここでは、実装順序の変更）を加え、条件を満たしながら結果（ここでは、実装時間）が改善されるならばそれに移ることを繰り返し、変形を加えても結果が改善されなくなったら終わりにする手法である。
【００５２】
また、「マルチカノニカル法（ＭＣ法）」は、大局的探索法と呼ばれる解法の１つであり、まず条件を満たす解を１つ選び、そして、その解に、偏りのない様々な変形を加え、条件を満たしながら結果が改善される（エントロピーが低くなる）確率を変形の種類ごとに評価し、それらの変形の中から最も高い確率で結果を改善するものを採用するという処理を繰り返し、変形を加えても結果が改善されなくなったら終わりにする手法である。
なお、これら「山登り法」及び「マルチカノニカル法」は、いずれも、直前の解に対して貪欲的に変形を加えることを試み、結果が改善され、かつ、一定条件を満たすならばその解を採用するという点で共通し、「貪欲法」と呼ばれるアプローチの１つに属する。
また、最適化装置３００は、専用のプログラムに基づくコンピュータ上での情報処理によって部品の実装順序を最適化する装置であるので、この明細書においては、最適化装置が物（部品、タスク、タスクグループ、部品カセット、部品テープ等）を「移動する」とは、「メモリやハードディスク等の記憶装置に保持されているデータ（部品の実装順序を特定するデータ等）を書き換える」ことを意味する。
【００５３】
２  最適化装置の動作（概要編）
次に、以上のように構成された部品実装システム１０における最適化装置３００の基本的な動作を説明する。
【００５４】
２．１  部品グループの作成
部品グループ生成部３１４は、データベース部３０７に格納された実装点データ３０７ａによって特定される全ての実装部品を、部品厚みの点から、図１５（ａ）に示されるような９つの部品グループＧ[1]〜Ｇ[9]に分類する。この処理は、図１４のステップＳ３１３に相当する。
【００５５】
具体的には、実装点データ３０７ａが示す全ての部品種を参照することで、図１５（ｂ）に示されるような、同一部品種ごとの部品数を示す部品表を作成し、部品ライブラリ３０７ｂにおける部品サイズを参照することで、全ての部品種それぞれを９つの部品グループＧ[1]〜Ｇ[9]のいずれかに対応づける。そして、その分類結果（各部品グループに属する部品種及び部品数等）をラインバランス最適化部３１５に通知する。
【００５６】
２．２  ラインバランス処理
図１６は、ラインバランス最適化部３１５の第１ＬＢＭ部３１５ａによるタスクグループのサブ設備への振り分け処理の様子を示す図である。この処理は、図１４のステップＳ３１４ａに相当する。
第１ＬＢＭ部３１５ａは、部品厚みの薄い部品グループが先となるように全てのタスクグループを一列に並べ、その並びに対して、先頭から順に、サブ設備ごとのタクトが以下の式で示される値θに近くなるように、各タスクグループを上流のサブ設備から順に振り分けていく。
θ＝（全部品グループを対象とした総タクト）／サブ設備の総数Ｎ
なお、「全部品グループを対象とした総タクト」は、実装点データ３０７ａ及び部品ライブラリ３０７ｂを参照することにより特定され、「サブ設備の総数Ｎ」は、実装装置情報３０７ｃを参照することにより特定される。
図１７は、第２ＬＢＭ部３１５ｂによるラインバランスの最適化（タスクグループの移動）の様子を示す図であり、グラフ４０５ａは、最適化前におけるタクト分布（各サブ設備へのタスクグループの振り分け状態）を示し、グラフ４０５ｂは、最適化によるタスクグループの移動の様子を示し、グラフ４０５ｃは、最適化後におけるタクト分布を示す。この処理は、図１４のステップＳ３１４ｂに相当する。
ここで、本図に示されるタクト分布において、縦軸は、タクトの大きさを示し、横軸は、生産ラインを構成する全てのサブ設備（ここでは６台）の並び（上流から下流に向けた並び）を示し、タスクグループは、そのタクトを高さとするブロック「ＴＧｎ−ｍ」として示されている。ｎは、そのタスクグループが属する部品グループの番号１〜９を示し、ｍは、同一の部品グループに属するタスクグループを区別する番号である。
【００５７】
なお、各サブ設備は、振り分けられた複数のタスクグループに対して、部品厚みの薄い部品グループに属するものを先に実装する。ただし、同一の部品グループに属する複数のタスクグループに対しては、その順序の制約を受けないものとする。例えば、サブ設備［３］は、ＴＧ３−３→ＴＧ３−１→ＴＧ３−２の順で実装してもよい。
図１８は、図１７に示された第２ＬＢＭ部３１５ｂによるラインバランスの最適化手順を示すフローチャートである。
第２ＬＢＭ部３１５ｂは、まず、第１ＬＢＭ部３１５ａが生成した図１７のグラフ４０５ａに示される初期状態（タスクグループの振り分け）に対して、サブ設備ごとのタクトが最大であるサブ設備［Ｓmax］と最小であるサブ設備［Ｓmin］を特定する（Ｓ５００）。例えば、Ｓmax＝５、Ｓmin＝２と特定する。
【００５８】
そして、サブ設備［Ｓmax］のタクトをラインタクトＬＴとして記憶する（Ｓ５０１）。例えば、ＬＴ＝サブ設備［５］として記憶する。
次に、サブ設備［Ｓmin］からサブ設備［Ｓmax−１］までのサブ設備［ｉ］について順に、隣接する２つのサブ設備間で、移動可能なタスクグループを移動させていく（Ｓ５０２〜Ｓ５０７）。
つまり、サブ設備［ｉ＋１］からサブ設備［ｉ］に、一つタスクグループを仮移動し（Ｓ５０３）、それでもなお、サブ設備［ｉ］のタクトがラインタクトＬＴよりも小さいか否かを確認する（Ｓ５０４）。
その結果、小さいことを確認できた場合にだけ、そのタスクグループを実際に移動させる（Ｓ５０５）。つまり、サブ設備［ｉ］及びサブ設備［ｉ＋１］のタクトを更新する。例えば、タスクグループＴＧ３−１をサブ設備［３］からサブ設備［２］に移動させる。なお、移動させる候補となるタスクグループは、部品厚みの薄い部品グループに属するものを優先して選択するものとする。
【００５９】
このようなタスクグループの移動を、サブ設備［Ｓmin］からサブ設備［Ｓmax−１］について順に繰り返し終えると（Ｓ５０２〜Ｓ５０６）、最後に、サブ設備［Ｓmax］のタクトが減少したか否か、つまり、サブ設備［Ｓmax］からサブ設備［Ｓmax−１］に１つ以上のタスクグループが移動されたか否かを判断する（Ｓ５０７）。
その結果、減少している場合には、まだ最適化の余地が残されていると判断し、再び、同様の最適化（Ｓ５００〜Ｓ５０７）を繰り返し、そうでない場合には、これ以上の最適化は困難であると判断し、終了する（Ｓ５０７）。
なお、移動可能なタスクグループが複数個存在する場合には、移動対象の選択について自由度があるので、計算時間の許される範囲で、移動させるタスクグループの組合せを各種試みることとする。
【００６０】
このようにして、最小タクトのサブ設備と最大タクトのサブ設備間において、タスクグループの移動を順次試みることで、最大タクト（ラインタクト）の減少化、つまり、ラインバランスの最適化が実現される。
以上の最適化が完了すると、次に、第３ＬＢＭ部３１５ｃは、第２ＬＢＭ部３１５ｂにより最適化された状態（タスクグループの振り分け）に対して、部品種（部品テープ）を単位として、第２ＬＢＭ部３１５ｂと同様の手順でラインバランスの最適化を行う。
つまり、第２ＬＢＭ部３１５ｂは、タスクグループを単位として、隣接するサブ設備間を移動させたが（Ｓ５０３、Ｓ５０５）、第３ＬＢＭ部３１５ｃは、タスクグループに代えて、各タスクグループを構成する部品種（部品テープ）を単位として、サブ設備間を移動させる。したがって、２つのサブ設備間でのタクトの増減の刻みは、第２ＬＢＭ部３１５ｂによる場合よりも小さくなり、よりきめ細かい最適化が行われる。これによって、ラインタクトＬＴがさらに減少され得る。
【００６１】
２．３  小部品に対する最適化
図１９は、状態最適化部３１６の小部品最適化部３１６ａによる小部品の実装順序最適化の概略手順を示すフローチャートであり、２つの大きなステップからなる。
【００６２】
小部品最適化部３１６ａは、まず、全ての実装部品を対象として、吸着パターンを生成する（Ｓ５２０）。これは、部品種（部品テープ）を単位とした配列、即ち、部品カセット１１４の並び（Ｚ軸）を決定することに相当する。
ここで、「吸着パターン」とは、図２０に示されるような２次元のダイヤグラムであり、縦軸をマルチ装着ヘッド１１２による部品の吸着順とし、横軸を部品カセット１１４（部品テープ）の配列（Ｚ軸）とした場合における、マルチ装着ヘッド１１２が同時に吸着する１組以上の部品群を示す。吸着の対象となる個々の部品（実装点）は単位矩形（正方形又は長方形）で示される。
なお、この図２０には、説明の便宜のため、４ノズルヘッドを対象とした吸着パターンが示されており、最大４個の単位矩形が横に繋がったものが実装（吸着・移動・装着）の１回分（つまり、タスク）に相当し、丸で囲まれた一繋がりのタスクの集合がタスクグループに相当する。したがって、本図には、合計３つの独立したタスクグループが示されている。
【００６３】
このような吸着パターンの生成は、マルチ装着ヘッドができるだけ多くの部品を同時吸着することができるように、部品テープの相対的な配列を決定する作業にに相当し、言い換えると、全ての部品テープを、互いに独立した複数の配列グループ（タスクグループ）に分割することに相当する。
次に、小部品最適化部３１６ａは、図１９に示されるように、上記ステップＳ５２０で決定されたタスクグループ（配列が固定された部品テープ群）ごとに、その総タクトが小さくなるように、各部品テープを構成する部品の装着順序を決定する（Ｓ５２１）。これは、同一の部品カセット１１４から取り出した（吸着した）部品であっても、どの実装点に装着するかによって、同一タスクにおける直前の実装点からの距離が異なるので、装着時におけるマルチ装着ヘッド１１２の移動距離（実装時間）を短縮化することに相当する。
【００６４】
２．４  タスクグループ生成法
図１９における吸着パターンの生成（Ｓ５２０）のための第１の具体的なアルゴリズムが「タスクグループ生成法」である。
【００６５】
この方法は、一定範囲内（吸着ノズル数の２倍以下）の個数の部品種（部品テープ）の並びからなるタスクグループの生成を繰り返していく手法であり、基本的には、以下の２つの大きなステップ（第１及び第２ステップ）からなる。なお、図２１は、これら第１及び第２ステップを説明するための図であり、部品ヒストグラム４０６ａは、対象となる部品を部品数の多い部品テープの順に並べた（ソートした）部品ヒストグラムであり、ダイヤグラム４０６ｂは、これら第１及び第２ステップによって生成される吸着パターンである。
【００６６】
［第１ステップ］
このステップでは、１つのタスクグループを生成する前半処理、つまり、部品数の多い部品テープの順に右方向（Ｚ軸方向）に部品ヒストグラムを並べる。具体的には、
(i)まだ配置されていない部品テープの中で部品数が最大の部品テープ（１部品テープ）をＺ軸上に置く。
(ii)その右隣に２番目の部品数の部品テープ（２部品テープ）を置く。
(iii)２部品テープの右隣に３番目の部品数の部品テープ（３部品テープ）を置く。
(iv)以下、これをマルチ装着ヘッド１１２の吸着ノズル数Ｌ（ここでは「４」）まで繰り返す。
この結果、部品ヒストグラム４０６ａから４つの部品テープ４００が取り出され、ダイヤグラム４０６ｂに示される箇所４００に配置される。
【００６７】
［第２ステップ］
このステップでは、前半処理で生成されたダイヤグラムに対して、同時吸着数がＬに満たないタスクの同時吸着数がＬとなるように、左方向に部品ヒストグラムを配置していく。具体的には、
(i)１部品テープの部品数からＬ部品テープの部品数を引く。
(ii)得られた部品数差以下であって、その部品数差に最も近い部品数を持つ部品テープ（Ｌ＋１部品テープ）を１部品テープの左隣に置く。
(iii)２部品テープから（Ｌ−１）部品テープの部品数を引く。
(iv)その部品数差以下であって、その部品数に最も近い部品数を持つ部品テープを（Ｌ＋１）部品テープの左隣に置く。
(v)以下、これを（Ｌ−１）回繰り返す。
この結果、部品ヒストグラム４０６ａにおける２つの部品テープ４０１ａ及び４０１ｂが取り出され、ダイヤグラム４０６ｂに示される箇所４０１に配置される。これによって、部品テープ４００及び部品テープ４０１からなる１つの吸着パターンが完成する。これによって、これら６種の部品テープからなるタスクグループについて、相対的なＺ軸が決定されたことになる。
【００６８】
以上の第１及び第２ステップによるタスクグループの生成を、対象の部品テープが無くなるまで繰り返す。
ここで、もし、上記第２ステップの条件を満たす未配置の部品テープが無くなってしまった場合には、上記第１及び第２ステップに代えて、以下の３つのステップ（第３〜第５ステップ）を実行する。図２２は、これら第３〜第５ステップを説明するための図であり、部品ヒストグラム４１５ａは、全体の部品ヒストグラムのうち未配置の部分（実線で囲まれた部分）を示し、ダイヤグラム４１５ｂは、これら第３〜第５ステップによって生成される吸着パターンを示す。
【００６９】
［第３ステップ］
このステップでは、未配置の部品ヒストグラムを整形して部分ヒストグラムを生成する。具体的には、
(i)まだ配置されていない部品テープの部品数の最小値を求める。
【００７０】
(ii)まだ配置されていない部品テープそれぞれの部品数から（最小値−１）を引く。
このような減算処理の結果、未配置の部品ヒストグラムにおける部品数は、太い実線で囲まれた部品ヒストグラム４１５ａとなり、以下、この部品ヒストグラム４１５ａにおける部品数を用いて、以下の第４及び第５ステップを進める。
【００７１】
［第４ステップ］
このステップは、上述の第１ステップに相当する。具体的には、
(i)まだ配置されていない部品テープの中で部品数最大の部品テープ（１部品テープ）をＺ軸上に置く。
(ii)その右隣に２番目の部品数の部品テープ（２部品テープ）を置く。
(iii)２部品テープの右隣に３番目の部品数の部品テープ（３部品テープ）を置く。
(iv)以下、これをマルチ装着ヘッド１１２の吸着ノズル数Ｌ（ここでは「３」）まで繰り返す。
この結果、部品ヒストグラム４１５ａから３つの部品テープ４１０が取り出され、ダイヤグラム４１５ｂに示される箇所４１０に配置される。
【００７２】
［第５ステップ］
このステップは、上述の第２ステップに相当する。具体的には、
(i)１部品テープの部品数から、（Ｌ部品テープの部品数−１）の値を引く。
(ii)その部品数差以下であって、その部品数差に最も近い部品数を持つ部品テープ（Ｌ＋１部品テープ）を１部品テープの左隣に置く。
(iii)（Ｌ＋１）部品テープからＬ部品テープの部品数を引く。
(iv)その部品数差以下であって、その部品数差に最も近い部品テープを（Ｌ＋１）部品テープの左隣に置く。
(v)以下、これをＬ回繰り返す。
この結果、部品ヒストグラム４１５ａにおける３つの部品テープ４１１が取り出され、ダイヤグラム４１５ｂに示される箇所４１１に配置される。これによって、部品テープ４１０及び部品テープ４１１からなる１つの吸着パターンが完成する。これによって、上記第１及び第２ステップで取り残された部品テープ、つまり、部品数の差が小さい部品テープについても、同時吸着が可能なタスクの集まりからなるタスクグループが生成され、それらの部品テープについて相対的なＺ軸が決定されたことになる。
【００７３】
２．５  刈り上げ法
図１９における吸着パターンの生成（Ｓ５２０）のための第２の具体的なアルゴリズムが「刈り上げ法」である。この処理は、図１４のステップＳ３２０ａ〜ｄに相当する。
この方法は、部品数の多い部品テープの順に並べた部品ヒストグラムをそのままＺ軸に配置することを基本とし、最大個数（Ｌ個）の部品を同時吸着することができない箇所についてだけ、上述の吸着パターン生成法を適用する手法であり、以下の２つの大きなステップ（第１及び第２ステップ）からなる。
【００７４】
［第１ステップ］
このステップでは、部品ヒストグラムから、Ｌ個の部品並びからなるタスクを取り出することを繰り返す（刈り上げていく）。
図２３及び図２４は、刈り上げ法における第１ステップを説明するための図であり、図２３は、実装の対象となる全ての部品を部品数の多い部品テープの順に並べた部品ヒストグラム４５０であり、図２４は、図２３の部品ヒストグラム４５０から、Ｌ個（ここでは、１０個）の部品並び（最大個数の部品を同時吸着した場合のタスク）の単位で部品を取っていく（刈り上げていく）様子を示す図である。これらの図２３及び図２４は、それぞれ、図１４のステップＳ３２０ａ、ｂに相当する。
【００７５】
刈り上げにおいては、部品数の少ない部品テープが先に無くなるように、つまり、部品ヒストグラムにおける右端の部品テープから部品が無くなっていくように、Ｌ個の部品並び（〇、△及び×のいずれかを含む１０個の矩形並び）を取り除いていく。これを、Ｌ個の部品並びの単位で取る除くことができなくなるまで繰り返す。
【００７６】
［第２ステップ］
このステップでは、上述の刈り上げ後における残り部品からなる部品ヒストグラムに対して、上述のタスクグループ生成法に準じたダイヤグラムを生成する。
図２５及び図２６は、刈り上げ法における第２ステップを説明するための図であり、図２５は、第１ステップでの刈り上げ後に残された部品を対象として、部品数の多い順に再構築された部品ヒストグラム４５１であり、図２６は、再構築された部品ヒストグラム４５１に対して、上述のタスクグループ生成法に準じたダイヤグラムの生成を行っている様子を示す図である。これらの図２５及び図２６は、図１４のステップＳ３２０ｄに相当する。
【００７７】
なお、再構築された部品ヒストグラム４５１の幅（部品テープの数）は、上記第１ステップの処理内容より、必ず、（Ｌ−１）以下となる。
この第２ステップでは、具体的には、以下の処理を行う。
(i)刈り上げ後に残った部品について、図２５に示された部品ヒストグラム４５１を生成するとともに、合計部品数（ここでは、１００個）を算出する。
(ii)算出した合計部品数をＬ（ここでは、１０）で割り、得られた値（ここでは、１０）をタスク数とする吸着パターンの作成を目指す。
(iii)そのために、図２６に示されるように、得られたタスク数（１０）よりも大きな部品数を持つ部品テープについて、その超過分４５１ａの部品（又は、超過部分の部品を分割したもの）だけ切り取り、部品ヒストグラム４５１の左側に補完して置いていく。
【００７８】
図２７は、以上の第１及び第２ステップによる刈り上げ法によってＺ軸が決定された部品テープについての吸着パターン４５２である。この図に示されるように、全ての部品は、最大個数（１０個）の部品が同時吸着されるタスクだけから構成され、最大の同時吸着率で効率よく実装され得る。
図２８は、図２７に示された吸着パターン４５２に対応する（Ｚ軸を変化させない再構築した）部品ヒストグラム４５３である。
このヒストグラム４５３から分かるように、刈り上げ法によれば、部品数の多い部品テープが左位置に配列されるという傾向が維持される。このことは、刈り上げ法が、マルチ装着ヘッド１１２の移動軌跡（右ブロック１１５ｂに対しては、部品を吸着した後に、必ず、右ブロック１１５ｂの左端に置かれた２次元カメラの前を通過すること）を考慮した（総移動距離を小さくする、即ち、総タクトを小さくする）部品配置の決定方法であることを意味する。
【００７９】
なお、左ブロック１１５ａに対しては、上述の処理において、Ｚ軸方向に対称な処理を施せばよい。つまり、部品数の小さい順に部品テープを並べた後に、同様の手順でタスクを刈り上げていくことで、ダイヤグラムを生成すればよい。
【００８０】
２．６  ランダム選択法（「貪欲法」）
図１９における装着順序の最適化（Ｓ５２１）のための第１の具体的なアルゴリズムがランダム選択法である。この処理は、図１４のステップＳ３２０ｅに相当する。
この方法は、１つのタスクグループにおいて、ランダムに選択した２つの実装点を入れ替えた場合の総タクトが小さくなるならば、それら２つの実装点を入れ替える、という処理を繰り返す貪欲的な手法である。
図２９は、ランダム選択法による部品の装着順序の最適化の手順を示すフローチャートであり、図３０は、ランダム選択法によって２つの実装点が入れ替えられる様子を示すである。
【００８１】
まず、小部品最適化部３１６ａは、初期状態での総タクトを算出する（Ｓ５３０）。なお、ここでの状態は、１つのタスクグループを構成する全ての部品（実装点）について実装順序が一定のパターンに定められた状態である。したがって、一つの状態に対する総タクトは、データベース部３０７に記憶された情報３０７ａ〜ｃから一義的に決定される。
次に、それら全ての実装点の中からランダムに２つを選択し（Ｓ５３１）、選択した２つの実装点の順序を入れ替えた場合の総タクト（仮タクト）を算出する（Ｓ５３２）。図３０には、実装点Ｂ２とＢ４とが入れ替えられた場合の状態例が示されている。
そして、いま算出された仮タクトが、直前の状態におけるタクトよりも小さいか否か判断する（Ｓ５３３）。
その結果、小さい場合には、それら２つの実装点の入れ替えを実施する（Ｓ５３４）。つまり、現在の状態と総タクトについて、それら実装点を入れ替えた場合のものに更新して記憶する。そして、その時点での終了条件（その状態でのタクトが操作者によって予め指定された目標タクトよりも小さいか、又は、一定の処理時間に達した等）を満たすか否か判断し（Ｓ５３５）、満たす場合に処理を終了する。
【００８２】
一方、２つの実装点の入れ替えによってもタクトが小さくならない場合（Ｓ５３３でＮｏ）、及び、終了条件を満たさない場合（Ｓ５３５でＮｏ）には、終了条件が満たされるまで、再び、同様の処理を繰り返す（Ｓ５３１〜Ｓ５３３〜Ｓ５３５）。このようにして、ランダム選択法により、費やした実行時間に応じて、タスクグループごとのタクトが小さくなり、部品実装順序が最適化され。
【００８３】
２．７  交差解消法
図１９における装着順序の最適化（Ｓ５２１）のための第２の具体的なアルゴリズムが交差解消法である。この処理は、図１４のステップＳ３２４に相当する。
この方法は、入れ替える２つの実装点をランダムに選択するのではなく、一定の基準、即ち、タスクごとの実装点を直線で接続して得られる折れ線（パス）どうしの交差があればそれを解消するという基準を満たす実装点を選択して入れ替える手法である。
【００８４】
図３１は、５個の実装点からなる３つのタスク４５５ａ〜ｃについて、交差解消法により部品の装着順序を最適化する様子を示す図であり、ダイヤグラム４５７は、折れ線の交差が解消される前の装着順序（タスクごとの折れ線の分布）を示し、ダイヤグラム４５８は、折れ線の交差が解消された後の装着順序を示す。なお、同一部品種（部品テープ）の実装点は、同一模様の丸印で示されている。
まず、小部品最適化部３１６ａは、データベース部３０７の実装点データ３０７ａ等を参照することによって、初期状態における全ての交差を特定する。ただし、ここでの交差は、同一タスクに属する連続して装着する２つの実装点を結ぶ線分と、他のタスクに属する同様の線分との交差であって、それら線分の両端の実装点に用いられる部品の部品種（部品テープ）がそれら線分同士で同一であるものに限られる。
【００８５】
次に、特定した全ての交差について、順次、交差を解消するように線分の接続を変更する。なお、解消の前後において、各線分の両端に位置する部品の部品種は変更されないので、この線分の接続変更は一義的に定まり、かつ、その接続変更によって各タスクを構成する部品種の並びが変化することはない。
このような交差解消法によって、タスク間におけるマルチ装着ヘッド１１２の無駄な移動が解消される。つまり、一つの部品を装着した後に移動すべき実装点は、マルチ装着ヘッド１１２の移動に伴う無駄なタクトの増加が抑えられた部品の実装順序が決定される。
【００８６】
２．８  戻り最適化法
図１９における装着順序の最適化（Ｓ５２１）のための第３の具体的なアルゴリズムが戻り最適化法である。この処理は、図１４のステップＳ３２５に相当する。
この方法は、１つのタスクグループにおいて、１つのタスクの部品装着を完了した後に、次のタスクの部品を吸着するために移動するマルチ装着ヘッド１１２の戻り軌跡に着目し、そのタスクグループを構成するタスクの並び（タスク単位での順序）を最適化する手法である。
図３２は、戻り最適化法によりタスクの順序を最適化する手順を説明するための図である。ここには、Ｚ軸における部品供給部１１５ａ及びｂそれぞれに１０個のタスクが配置されている場合における基板と部品供給部間を行き来するマルチ装着ヘッド１１２の移動軌跡（実装経路）が矢印線で示されている。
ここで、丸印は、マルチ装着ヘッド１１２の代表的な位置を示す。つまり、基板上の丸印は、１つのタスクにおいて最後の部品を装着し終えた直後のマルチ装着ヘッド１１２の位置（最終実装点）を示し、Ｚ軸における丸印は、２０個のタスクそれぞれにおいて最初に部品を吸着するときのマルチ装着ヘッド１１２の位置（以下、「吸着位置」という。）を示す。なお、丸印に付された数値は、各吸着位置（タスク）を区別する番号である。
【００８７】
［第１ステップ］
このステップでは、以下のルールに従って、実装経路を描く。
(i)各タスクの最終実装点から最短距離にある吸着位置に戻る、つまり、戻り軌跡を最小にする。
(ii)１番吸着位置を始点にして実装経路を順次描いていく。なお、１つの吸着位置は１つのタスクに相当するので、その吸着位置に対応する最終実装点は一義的に特定される。図３２では、１→５→１４→２→８→３→１７→１２→１６→１の順で吸着位置と最終実装点とを接続する実装経路が描かれる。
(iii)最初の吸着位置（１番吸着位置）に戻ったら、それを最短巡回部分経路１とする。
(iv)次に、これまで見つかった最短巡回部分経路に含まれない吸着位置を探す。図３２では、４番吸着位置が見つけられる。
(v)上記(ii)に戻り、未だ使用されていない吸着位置が無くなるまで、繰り返す。図３２では、５つの最短巡回部分経路が描かれている。
このような第１ステップにより、特定の吸着位置から開始した場合における、マルチ装着ヘッド１１２の戻り軌跡が最短となるような吸着位置の順序、即ち、タスクの順序が決定されたことになる。
【００８８】
［第２ステップ］
次に、第１ステップで描かれた全ての最短巡回部分経路それぞれにおいて、どの吸着位置から開始すればよいかを特定する。具体的には、１つの最短巡回部分経路に属する全ての部品の実装を終えてから次の最短巡回部分経路を開始するのに移動させるマルチ装着ヘッド１１２の戻り軌跡が最短となるように、各最短巡回部分経路における最初の吸着位置及びそれら最短巡回部分経路の順序を決定する。
【００８９】
これによって、１つのタスクグループを構成する全てのタスクを対象として、タスク間におけるマルチ装着ヘッド１１２の戻り軌跡が短くなるように、タスクの実行順序が決定されたことになる。
なお、図３２は、２０個の吸着位置が異なる位置となるタスクグループにおける実装経路であったが、図３３に示されるように、同一位置の複数の吸着位置が含まれるタスクグループについても同様の最適化をすることができる。このときには、同一位置の吸着位置に対応する最終実装点の選択において自由度があるので、複数の選択パターンに対応するタスクグループの総タクトを算出し、それらの中からタクトが最小となる最終実装点を選択し、最短巡回部分経路を作成すればよい。
以上のように、ランダム選択法及び交差解消法によって、タスクの形を変えずに、(i)タスク内の実装順序の最適化、及び、(ii)全タスクを考慮した実装順序の最適化が行われ、一方、戻り最適化法によって、全てのタスクがフィックスされた後に（つまり、各タスクのメンバが決まった状態で）、タスクの順序についての最適化が行われる。
【００９０】
２．９  汎用部品に対する最適化
汎用部品は、部品の大きさ、ノズル、部品認識カメラ、供給形態（テープ、トレイ）がバラエティに富んでおり、タスクを生成するときに、いろいろな部品の組み合わせが可能である。ここでは、タスクの状態を効率的に変化させながら、最適な状態を探索するという手法を採用している。この処理は、図１４のステップＳ３２１に相当する。
【００９１】
最適化を行うための評価指標は装着時間であり、このため、部品実装機１００の動作時間を正確にシミュレートする装着時間シミュレートを搭載している。汎用部品に最適化アルゴリズムは以下の通りである。
（１）ループ回数の設定
現実問題として、全ての組み合わせを評価することはできないので、予め終了条件を設定しておく。所定のループ回数処理を続けても装着時間が減少しない場合、最適化処理を終了することにしている。
（２）初期状態の生成
まず、全ての汎用部品を対象として初期状態を生成する。初期状態は、汎用部品の全ての実装点をタスク単位でまとめたものであり、部品実装機１００の制約条件の全てを満たしていれば、どのような状態でもかまわない。
（３）状態の変化
タスクの状態を変化させながら最適なタスクの状態を探索する。状態を変化させるための手続としては、
・別々のタスクに存在する２つの実装点を入れ替える、
・同一タスク内の２つの実装点の実装順序を入れ替える、
・２つの部品テープを入れ替える、
等がある。ここでは、タスクの状態を柔軟に変化させるために、空の実装点との入替えも可能にしている。たとえば、あるタスクの実装点を余裕があるタスクへ移動する処理は、前者の実装点と後者の実装点との入替えになる。この処理を繰り返すと、タスク数を減らすことができる。
【００９２】
変化後の状態を採用するかどうかは、装着時間が減少するかどうかで判断するが、常に装着時間減少する状態を採用していると、ローカル・ミニマムに捕まってしまう。そこで、ある確率で装着時間が増加する状態を採用するようにしている。
以下、汎用部品に対する最適化の具体的な内容を説明する。
図３４（ａ）は、汎用部品最適化部３１６ｂによる汎用部品の実装順序を最適化する際の手順を示すフローチャートであり、図３４（ｂ）は、その最適化による最適解の探索アプローチを説明するための図（とり得る全ての状態それぞれのタクトを示す図）である。
図３４（ａ）に示されるように、汎用部品最適化部３１６ｂは、部品グループＧ[6]〜Ｇ[9]に属する全ての部品（汎用部品）を対象として、初期状態Ｘを生成した後に（Ｓ５５０）、初期状態Ｘに対して、山登り法による最適化を最適化エンジン部３１６ｃに実行させることによって、最適状態Ｘoptを求めた後に（Ｓ５５１）、初期状態Ｘに対して、マルチカノニカル法による最適化を最適化エンジン部３１６ｃに実行させることによって、上記ステップＳ５５１で求められた最適状態Ｘoptを更新し（Ｓ５５２）、最後に、更新された最適状態Ｘoptに対して、再び、山登り法による最適化を最適化エンジン部３１６ｃに実行させることによって、上記ステップＳ５５２で得られた最適状態Ｘoptを更新する（Ｓ５５３）。
【００９３】
このように、局所的な最適解を確実に求める山登り法による最適化（Ｓ５５１、Ｓ５５３）の途中過程に、グローバルな始点で最適解を探索するマルチカノニカル法による最適化（Ｓ５５２）が挿入されているので、局所的には最適状態であるがグローバル的には最適状態でない状態（図３４（ｂ）に示される状態1)等）の探索で終わってしまうことが回避され、グローバルな最適状態（図３４（ｂ）に示される状態5)）が求められる。
図３５は、図３４（ａ）に示された山登り法による最適化（Ｓ５５１、Ｓ５５３）の詳細な手順を示すフローチャートである。つまり、初期状態Ｘや終了条件等についての通知を受けた最適化エンジン部３１６ｃは、その初期状態Ｘを生成した後に（Ｓ５６０）、外部ループ終了条件が満たされるまで（Ｓ５６１）、内部ループを繰り返す（Ｓ５６２〜Ｓ５６８）。ここで、外部ループ終了条件とは、それ以上の最適解が存在しないことを確認するための条件であり、例えば、状態変化を起こす全ての種類のパラメータを変化させた（探索した）こと等であり、内部ループ終了条件とは、１つの種類のパラメータについて、一定範囲の変化をさせた（探索した）こと等である。
【００９４】
内部ループにおいて、最適化エンジン部３１６ｃは、まず、後述する９種類の状態変更から汎用部品最適化部３１６ｂが選択した１つを用いて、状態候補Ｘtmpを生成し（Ｓ５６３、Ｓ５６４）、その候補状態Ｘtmpが、後述するフィージビリティ（実現可能性）を有し（Ｓ５６５）、かつ、その候補状態Xtmpのタクトが直前の状態のタクトよりも小さい場合に（Ｓ５６６、Ｓ５６７）、それら状態とタクトを更新する（Ｓ５６８）。
これによって、局所的に最適な状態が確定的に得られる。
図３６は、図３４（ａ）に示されたマルチカノニカル法による最適化（Ｓ５５２）の詳細な手順を示すフローチャートである。本図において、ビン番号は、例えば、図３４（ｂ）に示された横軸（とり得る状態の全て）をＮ個に均等分割して得られる各区間（ビン）を示す番号であり、ヒストグラムＨ[i]は、ビン番号ｉのビンに属する候補状態Ｘtmpが選択され（Ｓ５７６、Ｓ５７７）、その候補状態Ｘtmpが実現可能性を有し（Ｓ５７８）、かつ、エントロピーを減少させる状態であると判断された（Ｓ５７９〜Ｓ５８１）総回数を記憶する変数である。
本図に示されたフローチャートと図３５に示された山登り法によるものとを比較して分かるように、状態Ｘをベースに状態候補Ｘtmpを生成し、それを受理するかどうかを決定するという一連の処理を繰り返す点で、これらの処理は共通する。異なる点は、受理決定の方法であり、図３５に示された山登り法では、状態候補Ｘtmpのタクトの方が状態Ｘよりも小さい場合に（確定的に）受理しているのに対し、図３６に示されたマルチカノニカル法では、タクトにおけるエントロピーを参照して状態候補Ｘtmpを確率的に受理していることである（Ｓ５８０〜Ｓ５８２）。
【００９５】
ここで、図３５及び図３６に示されたフローチャートにおける９種類の状態変更と実現可能性の詳細を説明するために、まず、汎用部品最適化部３１６ｂが用いている中間表現について説明する。汎用部品最適化部３１６ｂは、最適化を容易にするために、Ｚ軸配列の中間表現として以下の３種類を導入し、それらの表現を用いて状態を記憶したり、最適化エンジン部３１６ｃに指示したりする。
(i)Ｇorder[i](i=1,...,L)
入力されたＬ個の部品グループ（タスクグループＴＧ[i](i=1,...,L)をＺ軸に配置する際の優先順序を指定する変数であり、優先順序番号１〜Ｌを値にとる。ｉ！＝ｊの場合、Ｇorder[i]！＝Ｇorder［ｊ］となる。
(ii)block[i](i=1,...,L)
タスクグループＴＧ[i](i=1,...,L)を左・右のＺブロック（部品供給部１１５ａ及びｂ）のどちらに配置するかを指定する変数であり、"左"又は"右"のシンボル値をとる。
(iii)Ｃorder[i][j](i=1,...,L, j=1,...,M[i])
タスクグループＴＧ[i](i=1,...,L)に属する部品テープｊ(=1,...,M[i])のＺ軸における配置順序を指定する数であり、順序番号１〜Ｍ[i]を値にとる。ｊ！＝ｋの場合、Ｃorder[i][j]！＝Ｃorder[i][k]である。なお、Ｃorder[i][j]＜Ｃorder[i][k]の場合、「部品テープｊのＺ番号＜部品テープｋのＺ番号」なる関係を持っている。
図３７は、汎用部品最適化部３１６ｂが用いる中間表現の例を示す。テーブル４６０は、汎用部品最適化部３１６ｂが用いている中間表現の具体例を示し、テーブル４６１〜４６４は、テーブル４６０に示された中間表現の意味（Ｚ軸配列への変換）を示す。テーブル４６０に示された中間表現が示すＺ軸配列は、具体的には、以下の変換を経ることによって特定される。
【００９６】
まず、Ｇorder[i]＝１、つまり、Ｚ軸配列決定において最優先するタスクグループＴＧ[2]を配置する（テーブル４６１）。このＴＧ[2]は、block[2]＝"右"であるため、右ブロックの部品認識カメラ１１６寄り左詰で配置される。その際、ＴＧ[2]に属している計Ｍ[i=2]＝６つの部品テープｊ(i=1,...,6)を収納している部品カセット１１４は、Ｃorder[i=2][j]の若いものが左になるように、右ブロックの部品認識カメラ寄り左詰で配置される。
次に、Ｇorder[i]＝２であるＴＧ[4]を配置する（テーブル４６２）。block[4]＝"左"であるため、左ブロックの部品認識カメラ寄り右詰で配置される。その際、計Ｍ[i=4]＝３つの部品テープｊ(i=1,...,3)を収納している部品カセット１１４は、Ｃorder[i=2][j]の若いものが左になるように、部品認識カメラ寄り右詰で配置される。
【００９７】
同様に、Ｇorder[i]＝３であるＴＧ[3]、Ｇorder[i]＝４であるＴＧ[1]の順で配置すればよい（テーブル４６３、４６４）。
次に、汎用部品最適化部３１６ｂによる選択（図３５におけるステップＳ５６４、図３６におけるステップＳ５７７）の対象となる９種類の状態変更を示す。以下の通りである。
（１）同一汎用部品グループの２実装点をランダムに選択し、それらのタスク番号とヘッド番号（マルチ装着ヘッド１１２における吸着ノズル１１２ａ〜１１２ｂの位置）をスワップする。
（２）同一タスク内の２実装点をランダムに選択し、それらの実装順序をスワップする。
（３）２タスクグループ（２汎用部品グループ）をランダムに選択し、それらのＧorderをスワップする。
（４）１タスクグループ（１汎用部品グループ）をランダムに選択し、そのblockの値（"左"又は"右"）を変更する。
（５）同一タスクグループの２部品テープをランダムに選択し、それらのＣorderをスワップする。
（６）同一タスクグループにおいて、連続したＣorder部分区間をランダムに選択し、シフトする。
（７）同一タスクグループにおいて、連続したＣorder部分区間をランダムに選択し、対応する部品テープが実装点の平均Ｘ座標値に従ってＺ軸に配置されるようにＣorderを変更する。
（８）１タスクをランダムに選択し、当該タスクの実装点のＺ番号に基づいてヘッド番号を変更する。
（９）シャトル運用可能なトレイ部品の運用モード（ダイレクトモード、シャトルモード）をランダムに変更する。
【００９８】
ここで、「トレイ部品の運用モード」とは、トレイ供給部１１７が内蔵するエレベータ（複数の段を持つ）を用いてトレイ部品を供給する（マルチ装着ヘッド１１２が吸着できる位置まで移動させて置く）ときの方式であり、「ダイレクトモード」は、部品が載せられた１つのトレイごと直接差し出す方式であり、「シャトルモード」は、シャトルコンベヤ１１８を用いた往復移動によって複数のトレイから取り出して集めた複数の部品を１列に並べて差し出す方式である。これらの運用モードについての各種情報は、実装装置情報３０７ｃに含まれており、必要な部品を所定位置に移動させるのに要する時間等に影響を与える。
また、汎用部品最適化部３１６ｂによる実現可能性のチェック（図３５におけるステップＳ５６５、図３６におけるステップＳ５７８）については、以下の５つのチェック項目が同時に満たされている場合にのみ、状態Ｘtmpが可能解とみなされる。
（１）各タスクにおいて、ダイレクトモードの実装点のＺ番号が同じ段であること。つまり、ダイレクトモードでは、一つの段に置かれたトレイ部品だけが同時に供給され得ることを考慮する。
（２）各タスクにおいて、吸着時の部品点間に干渉がないこと。つまり、隣接して吸着される２つの部品の形状によっては、部品どうしが接触してしまうので、それを回避することを考慮する。
（３）各タスクにおいて、実装点が吸着可能であること（実装点のヘッド番号とＺ番号との組が適切であること）。つまり、マルチ装着ヘッド１１２に装着された吸着ノズルのいずれもが、９６個の部品カセット１１４のいずれの位置にも移動できる（部品を吸着できる）とは限らないことを考慮する。
（４）各タスクにおいて、実装点が装着可能であること（実装点のヘッド番号と座標値との組が適切であること）。マルチ装着ヘッド１１２を構成する全ての吸着ノズルが基板上のあらゆる箇所に移動できるとは限らないことを考慮する。
（５）全タスクグループの全タスクの吸着ノズルパターンが実現可能なようにノズルステーション１１９における吸着ノズルの配列を決定できること。つまり、ノズルステーション１１９に配置しておくことができる交換用の吸着ノズルの配置位置や数等に制限があることを考慮する。
（６）マルチ装着ヘッド１１２とＺ軸上の部品とが同一ピッチで並んでいること。つまり、マルチ装着ヘッド１１２が同時吸着できるような部品（又は、部品カセット）がＺ軸に配置されていることを確認する。
【００９９】
以上のように、汎用部品最適化部３１６ｂは、ローカルな（局所的な）最適化だけでなく、確率的な探索を混ぜた最適化を行っているので（図３４（ａ）におけるステップＳ５５０〜Ｓ５５３）、ローカルミニマムが最適解として算出されてしまう不具合が回避される。
【０１００】
３  最適化装置の動作（詳細編）
次に、以上のような最適化装置３００の動作について、さらに詳細な説明をする。つまり、これまで説明してきた個々の最適化アルゴリズムの詳細な内容や、様々な制約下における最適化装置３００の動作について説明する。
【０１０１】
３．１  「刈り上げ法」
「刈り上げ法」は、上述の「タスクグループ生成法」の欠点を補うアルゴリズムである（図１４のステップＳ３２０ａ〜ｄ）。以下、「刈り上げ法」の詳細について、「タスクグループ生成法」における課題を明らかにしながら、説明する。
【０１０２】
３．１．１  「タスクグループ生成法」の概要
「タスクグループ生成法」における小部品用最適化アルゴリズムの基本的な考え方は、図３８に示される通りであり、ヘッドの上のノズル数をnとして、対象の全ての実装部品に対して、「部品数が同じ部品テープをn本集め、それらn本の部品テープから1点ずつ同時に吸着し、n点同時吸着タスクを作る」というものである。本実施の形態における対象の部品実装機では、nは１０（又は、４）である。
【０１０３】
図３８は、タスクグループ生成法を説明するための部品ヒストグラムであり、横軸はＺ軸（部品カセット、部品種）を示し、縦軸は、その部品種に属する部品の総数を示す。
ところが、上述のアルゴリズムでは、実際には部品数が同じ部品テープばかりではないので、部品分割によって、部品数が同じ部品テープを作り出すようにしている。
そのようにしても、集められたn本の部品テープの部品数が不揃いになる場合には（図３８における部品Ａ〜Ｊ）、そのばらつきを埋め合わせる部品テープを作り、そのn本の部品テープに追加する。追加する部品テープは、最大で(n-1)本である（図３８における左部分５０６）。
このようにしてできたn〜n+(n-1)本の部品テープの集合を「タスクグループ」としている（それらの部品テープから部品を吸着してタスクを生成するので、生成されるタスクの集合に着目した命名になっている）。
【０１０４】
通常、複数個のタスクグループが生成される。タスクグループ数は部品種の総数に依存する。タスクグループが1つだけの場合もある。
Z軸上へのカセットの配置は、タスクグループの単位で行う。
【０１０５】
３．１．２  「タスクグループ生成法」の課題
「タスクグループ生成法」のアルゴリズムでは、次のような課題がある。
(1)タスクグループ単位でZ軸に配置するので、Z軸の空きが最小でも10以上でないと、タスクグループを配置することができない。そのため、Z軸に未使用の部分が生じることがある。
(2)タスクグループの配置の自由度が低く、前サブ設備１１０と後サブ設備１２０との間での部品種（部品テープ、カセット）を移動しにくいため、前サブ設備１１０と後サブ設備１２０の実装時間のバランスを調整しにくくなっていた。
(3)タスクグループ毎に部品分割を行い、部品分割により生じた部品テープを収めるカセットを使用するので、全タスクグループを考えると、部品分割のために使用するカセットが多く必要となる傾向がある。
【０１０６】
このような課題は、タスクグループを構成する部品テープの本数（10ノズルヘッドであれば、10〜19本）と、Z軸上に配置できる部品テープの本数（シングルカセットで最大48本、ダブルカセットで最大96本）が同程度のオーダーになっていることに起因する。
そのため、タスクグループをZ軸に配置する際の自由度が低くなっている。たとえば、Z軸上に配置できる部品テープの最大本数が、タスクグループを構成する部品テープ本数の10倍程度であれば、自由度の低さは低減されると考えられる。
【０１０７】
３．１．３  「刈り上げ法」
「刈り上げ法」は、「部品ヒストグラム作成処理」（図１４のステップＳ３２０ａ）、「刈り上げ処理」（図１４のステップＳ３２０ｃ）、「コア処理」（図１４のステップＳ３２０ｄ）の３つの処理から構成されている。これらの処理は、「タスクグループ生成法」における課題を踏まえて、考案したものである。以下の説明では、ヘッドの上のノズル数をnとする。
(1)部品ヒストグラム作成処理（図１４のステップＳ３２０ａ）
部品ヒストグラム作成処理は、部品テープを部品数の大きい順に並べたヒスグラム（部品ヒストグラム）を作成する処理であり、部品ヒストグラムは「刈り上げ処理」の前提となる。
「タスクグループ生成法」では、部品テープは、タスクグループという複数のグループに分かれるの対して、「刈り上げ法」では、部品テープは、部品ヒストグラムという１つのグループになっている点が異なる。
部品ヒストグラムを部品テープ単位で分割し、分割されたものを前サブ設備１１０と後サブ設備１２０に配置することができるので、「タスクグループ生成法」と比較して、小さな単位での部品移動が可能となっている。
【０１０８】
(2)刈り上げ処理（図１４のステップＳ３２０ｃ）
刈り上げ処理は、部品ヒストグラムから吸着パターンを生成する処理であり、部品ヒストグラムの部品数の残数の少ない側からn本の部品テープについて、各1個ずつ実装点を吸着し、n点同時吸着の吸着パターンを生成することを基本とする。
刈り上げ処理の結果、吸着されない実装点が残っている部品テープが存在する。この部品テープを「コア部品テープ」と呼ぶ。また、コア部品テープが収められている部品カセットを「コアカセット」と呼ぶ。
コア部品テープの本数は、初期の部品ヒストグラムを構成する部品テープ数が何本であっても、必ず(n-1)本以下になる。
刈り上げ処理の利点は、「部品ヒストグラムを構成する全部品テープに対して、部品分割を行い、n点同時吸着タスクを生成するという問題」を、「コア部品テープだけに対して、部品分割を行い、n点同時吸着タスクを生成するという問題」に縮小できることである。
部品ヒストグラムのコア部品テープ以外の部分については、既にn点同時吸着が実現されているので、コア部品テープについてのみ、n点同時吸着の吸着パターンが実現できるように、部品分割を行えばよく、この処理を「コア処理」と呼ぶ。
【０１０９】
(3)コア処理（図１４のステップＳ３２０ｄ）
「コア処理」は、「タスクグループ生成法」において「n点同時吸着を実現するために、実装点の不足分を補完する部品テープを作る」というアイデアを発展させたものである。
コア部品テープは1〜(n-1)本であるから、実装点の不足分を補完する部品テープ（補完部品テープ）の本数は、(n-1)〜1本となる。
「タスクグループ生成法」では、タスクグループ毎に補完部品テープが必要である。一方、「刈り上げ法」では、部品テープのグループは１つしかなく、さらに、それに対して最大(n-1)本の補完部品テープしか必要としないので、「タスクグループ生成法」よりも使用するカセット本数が少なくてすむ。
「タスクグループ生成法」では、各部品テープを最大分割数で部品分割した際に、最も部品数が多くなる部品テープを求め、その部品数と同数のn点同時吸着の吸着パターンを生成する。
それに対して、「コア処理」では、コア部品テープの部品数の合計を求め、それをnで割り算した値から、n点同時吸着の吸着パターンの個数を見積もる。
【０１１０】
３．１．４  「刈り上げ法」による小部品の最適化
次に、以上のような利点をもつ「刈り上げ法」を用いた典型的な小部品の最適化処理を説明する。
図３９は、「刈り上げ法」による小部品の最適化処理（図１４のステップＳ３２０に相当）のフロー図である。小部品を最適化するための指標の一つは、部品吸着時におけるマルチ装着ヘッド１１２の吸着上下動作の回数（以下、「吸着上下回数」と呼ぶ。）を最小化することと、部品装着時のヘッド移動距離を最小にすることである。すなわち、１０点同時吸着を最大にする部品吸着パターンの決定（Ｓ３３１）と、マルチ装着ヘッド１１２の移動距離を最小にする実装点データの割当て（Ｓ３３５）である。
【０１１１】
（１）部品吸着パターンの決定（図３９のＳ３３１）
部品吸着パターンを決定することは、部品テープの並びとマルチ装着ヘッド１１２による吸着順序とを決定すること、即ち、対象となる部品テープをどのような順序で部品供給部１１５ａ及びｂに並べてセットしておけばよいか、さらに、セットされた部品テープ群に対してどのような順序でマルチ装着ヘッド１１２が吸着すればよいかを決定することである。
（i）部品ヒストグラムの作成（図３９のＳ３３２）
各電子部品を部品数でソーティングし、部品ヒストグラムを作成する。横軸は部品テープの並び（「Ｚ配列」）であり、このヒストグラムは部品が部品供給部１１５ａ及びｂにセットされたイメージを表している。小部品は、全て８ｍｍテーピングなので、１０点同時吸着が可能である。したがって、部品ヒストグラムのＺ軸方向のつながりを見れば、同時吸着が可能かどうかを簡単に判断することができる。図４０（ａ）は、部品テープが２１、最小部品数が１、最大部品数が１５の部品ヒストグラム５００を示している。
（ii）刈り上げ処理（図３９のＳ３３３）
図４０（ａ）に示された部品ヒストグラム５００において、部品数の少ない右端からＺ軸方向に１０個連続で部品が並んでいる部品を探し出す。この処理は、部品ヒストグラム５００を、部品１０個単位で、下から順に刈り上げていく処理に相当するので、ここでは「刈り上げ処理」と呼んでいる。その結果、図４０（ｂ）に示されるように、４つの１０点同時吸着タスク５００ａ〜ｄが生成される。
（iii）コア処理（図３９のＳ３３４）
図４０（ｂ）に示された部品ヒストグラム５００から、刈り上げられた１０点同時吸着タスク５００ａ〜ｄを取り除くと、図４１に示されるように、裾の狭い部品ヒストグラム５０１が残る。この残された部品ヒストグラム５０１を「コア」と呼ぶ。コア５０１のＺ軸方向の広がりは１０未満であるので、そのままでは、コア５０１から１０点同時吸着タスクを生成することができない。そこで、コア５０１を切り崩して１０点同時吸着タスクを生成する「コア処理」を行う。
【０１１２】
まず、コア５０１を構成する部品の個数をカウントし、目標を設定する。図４１に示された部品ヒストグラム５０１には、合計３６の装着点があるので、３つの１０点同時吸着タスクと１つの６点同時吸着タスクを作ることにする。
図４１に示されたコア５０１に対して、部品１０個単位で刈り上げようとすると、コア５０１の一番下の段で３種類の部品が不足し、下から２番目の段では、５種類の部品が、下から３段目の段では６種類の部品が、それぞれ不足する。刈り上げた部品数が３６になるまでコア５０１を刈り上げると、図４１に示されるパターン５０１ｂが完成する。このパターン５０１ｂに部品を割り当てれば、目標のタスクが生成できることになる。このパターン５０１ｂに含まれる部品の個数は、部品ヒストグラムの５段目から上に存在するパターン５０１ａの部品の数に等しい。したがって、パターン５０１ａの部品を部品テープ類ごとに切り出して、パターン５０１ｂに縦方向に埋めてやればよい。
【０１１３】
図４１に示されるように、部品１は、パターン５０１ａに１１点の部品を残しているので、４＋４＋２＋１の小さな縦棒に分割して、パターン５０１ｂに順に埋め込む。部品２、部品３は、分割せずにそのままパターン５０１ｂに埋め込めばコア処理は完成する。
このような刈り上げ処理とコア処理の結果を併せると、部品ヒストグラムは図４２の部品ヒストグラム５０４のようになる。この部品ヒストグラム５０４は、刈り上げ処理で生成されたタスク群５０３とコア処理で生成されたタスク群５０２とを併せたものである。この部品ヒストグラム５０４は、理想的な部品吸着パターンであり、７回の１０点同時吸着と１回の６点同時吸着で、全ての部品が効率よく吸着され得る。
【０１１４】
（２）実装点データの割当て（図３９のＳ３３５）
実装点データの割当ては、部品数の少ない部品を含むタスクから始める。図４２に示された部品ヒストグラム５０４では、部品数が１の部品２１を含むタスクから実装点を割り当てる。タスク１では、部品１５から部品２１までの７つの部品の部品数が１であるので、実装点データは存在しているデータをそのまま割り当てればよい。部品１４は部品数が２であるので、２つのうちのどちらの実装点データを選ぶかという問題が発生する。この場合は、既に決定している部品１５の実装点装着後、マルチ装着ヘッド１１２の移動が最も小さくなる実装点データを選ぶ。
【０１１５】
ただし、部品１５を装着ヘッドＨ４で、部品１４を装着ヘッドＨ３で装着するので、装着ヘッドＨ４とＨ３のオフセットを考慮して実装点を選択しなければならない。部品１３の実装点選択に関しても、同じ考え方で行う。例えば、部品１４ａと部品１４ｂのうち、部品１４ａが実装点データに選ばれたなら、部品１４ａからの距離を計算して、部品１３の実装点を選択する。以降同様にして、部品１２の実装点が選択され、タスク１の全ての実装点が決定する。
【０１１６】
３．１．５  関連する個別処理
「刈り上げ法」は、小部品に分類される部品グループの部品種から、タスク（正確には吸着パターン）を生成するための処理である。
詳細については、下記の個別処理で説明している通りである。
・「刈り上げ法」
・「小部品のタスク生成処理」
【０１１７】
３．２  「交差解消法」
「交差解消法」は、「貪欲法」の欠点を補うアルゴリズムである。この処理は、図１４のステップＳ３２４に相当する。
以下、「交差解消法」の詳細について、「貪欲法」における課題を明らかにしながら、説明する。
【０１１８】
３．２．１  「貪欲法」の概要
タスクに実装点を割り当てる際、各ノズルが実装する実装点の間の距離が最小となるように部品種の中から実装点を選んでいる。距離を計算する際には、ノズル間のピッチを考慮している。
この実装点選択方法は、「貪欲(greedy)法」に分類される方法である。この処理は、図１４のステップＳ３２０ｅに相当する。
「貪欲法」では、あるタスクについては実装点間の距離が最小になったとしても、他のタスクの実装点間の距離を考慮して実装点を選択しているわけではないので、全タスクについて考えると、必ずしも最適にはなっていない。
【０１１９】
３．２．２  「貪欲法」の課題
「貪欲法」により吸着パターンに実装点を割り当てる場合、特に、図４３の上側の実装経路図（タスクごとに、対応する基板位置に配置された実装点を装着順に線分で接続した図）に示されるような実装経路の場合が問題となる。
この図４３では、実装点数が５のタスクが３個ある場合を示している。図４３において、丸印は実装点を示し、矢印は実装経路（順序）を示す。実装点の添え字は部品種を示す。例えば、A1、A2、A3は、部品種Aに属する3つの実装点である。また、同じ色の矢印で結ばれている実装点が１つのタスクを構成する。
まず、図４３の上側の「交差解消前」の状態では、部品種A1が存在する実装点から最も近い実装点として、部品種B1が存在する実装点が選択され、部品種B1に最も近い実装点として、部品種C1ではなく、部品種C2が存在する実装点が選択されている。これは、「貪欲法」では、最も距離の近い実装点を次に実装するべき実装点として選択するためである。
さらに、「貪欲法」を繰り返し適用して実装点を選択していくと、結果として、図４３の上側の「交差解消前」の状態のように、部品種B3が存在する実装点と、部品種C1が存在する実装点を結ぶ経路が他の実装点間を結ぶ経路と交差してしまう。
【０１２０】
３．２．３  「交差解消法」
もしも、人間が実装順路を決めるのであれば、おそらく、図４３の下側の「交差解消後」のように、実装経路が交差しないタスクをつくるはずである。
そこで、「貪欲法」による実装点の選択の後で、経路が交差している個所を見つけ、それを解消する処理を行えばよい。この処理が「交差解消法」である。
その結果、図４３の下側の「交差解消後」のようになり、交差を解消する前と比較して、経路の距離の合計が小さくなることが期待できる。
具体的に、この図４３の例では、部品種B1〜B3の中から、2つを選んで入れ替えることにより、実装経路を組み換え、それを繰り返すことで、実装経路が短くなるタスクを作り出すことができる。
なお、実際には、ノズル間の間隔を考慮する必要があるが、ここでは考え方を示すことが目的なので、省略した。「交差解消法」の詳細は、後述の個別処理で説明している通りである。
【０１２１】
３．２．４  関連する個別処理
「交差解消法」は、「貪欲法」による実装点の選択の後で、実装経路が交差している個所を見つけ、それを解消する処理である。その結果、実装経路の交差を解消する前と比較して、実装経路の距離の合計が小さくなることが期待できる。
【０１２２】
詳細については、下記の個別処理で説明している通りである。
・「交差解消法」
【０１２３】
３．３  「戻り最適化法」
以下、「戻り最適化法」の詳細について、その着想プロセスを明らかにしながら、説明する。なお、この処理は、図１４のステップＳ３２５に相当する。
【０１２４】
３．３．１  部品実装動作の検討
部品を実装する動作は、図４４に示されるように、マクロな視点からは、次の３つの行程に分解される。
(1)部品吸着  →  部品認識カメラ
(2)認識      →  部品装着
(3)部品装着  →  次の部品吸着  ・・・「戻り」
【０１２５】
３．３．２  「戻り」行程の最適化の必要性
まず上記工程(1)については、部品数の多い部品テープが部品認識カメラに近いZ軸上に配置されるようにすることにより、最適化される。
次に上記(2)については、ほぼ一定の距離と考え、最適化の対象としていない。なぜなら、部品認識カメラと基板の位置は固定であり、装着時のヘッドの基板上での移動量は、Z軸の長さと比較して、かなり小さく、すべての実装点が基板の中心に存在すると考えられるからである。
しかし、上記(3)については、「戻り」の行程は、上記(2)の距離と同程度であり、最適化が可能である。つまり、この工程に対して最適化を行うことで、実装時間の短縮が期待できる。
【０１２６】
３．３．３  「戻り最適化法」
上記(3)の「戻り」の行程についての最適化アルゴリズムを考案した。
この最適化アルゴリズムの基本的な考え方は、「あるタスクの最終実装点の座標から、最短距離で戻ることのできるZ軸上の位置にある、未実装のタスクを探し、それを次に実装するタスクとする」ということである。たとえば、図において、最終実装点からの距離を調べると、タスクAよりもタスクBが短いので、次に実装するべきタスクはタスクBとなる。
【０１２７】
３．３．４  関連する個別処理
部品を実装する動作は、マクロな視点からは、次の３つの行程に分解される。(1)部品吸着  →  部品認識カメラ
(2)認識      →  部品装着
(3)部品装着  →  次の部品吸着  ・・・「戻り」
「戻り最適化法」は、(3)についてのヘッドの移動距離を最適化するものであり、実装時間の短縮が期待できる。
詳細については、下記の個別処理で説明している通りである。
・「戻り最適化法」
【０１２８】
３．４  配列固定処理
３．４．１  概要
ユーザにより、複数の部品種について、それを配置するZ番号が指定されている場合がある。これはZ軸上での部品種の配列を指定するものであり、「配列固定」と呼ばれている。
一方、最適化アルゴリズムでは、Z軸上の部品テープの配列も最適化対象となるので、ユーザによる配列固定を考慮した最適化アルゴリズムを実現する必要がある。
しかし、ユーザによる配列固定のバリエーションは非常に多くなると考えられる。
【０１２９】
もしも、アルゴリズム設計段階で幾つかの配列固定のバリエーションを想定し、それらに対応した最適化アルゴリズムを考案できたとしても、想定外の配列固定のバリエーションに対応できるとは限らない。なぜなら想定した配列固定のバリエーションに特化したアルゴリズムになってしまう傾向があり、想定外の配列固定には効果がない危険性があるからである。
更に、そのアルゴリズムを想定外の配列固定のバリエーションに対応させるように改造することができても、それは例外処理的なアルゴリズムの追加となるため、プログラムの可読性が低下し、メンテナンス上で問題となりうる。
そこで、最も確実で安全な方法として、図４５に示されるように、次のような方法を採用した。図４５は、配列固定の制約下における最適化の概要を示す部品ヒストグラムである。
(1)仮のZ軸（仮Z軸）を用意し、配列固定を考慮せずに仮Z軸上で部品種の配列を最適化する。つまり、理想的な部品テープの配列を作成する（同時吸着を優先した部品ヒストグラムを作成する）。
(2)仮Z軸から実際のZ軸（実Z軸）へ部品テープを移動する。このとき、配列固定を考慮し、配列固定の対象となっている部品テープを先に配置する。
(3)次に、配列固定の対象でない部品テープを仮Z軸から実Z軸へ移動する。このとき、配列固定された部品テープの隙間に配列固定の対象でない部品テープを配置していく。
【０１３０】
最後に、実Z軸上の部品テープから、刈り上げ処理により、吸着パターンを生成する。
この方法によれば、ユーザによって、どのような配列固定がなされても、１つのアルゴリズムで対応できる。
また、今回考案した配列固定のアルゴリズムでは、配列固定がない条件下でアルゴリズムが生成した理想的な部品テープの配列を崩す形で、ユーザが指定した配列固定に対応している。
そのため、理想的な部品テープ配列を使用する場合と、配列固定がある部品テープ配列を使用する場合との実装時間の比較を行うことができる。
これは、配列固定が持つ、機種切り替えの容易さという運用上の利点と、配列固定がない場合の実装時間の短さを比較し、それらのトレードオフについて再検討するための情報をユーザに提供するものである。
【０１３１】
３．４．２  関連する個別処理
「配列固定」では、ユーザにより、複数の部品テープについて、それを配置するZ番号が指定されている。そのために、最適化アルゴリズムでは、Z軸上の部品テープの配列も最適化対象となるので、ユーザによる配列固定を考慮した最適化アルゴリズムを実現する必要がある。
【０１３２】
今回考案した配列固定のアルゴリズムでは、配列固定がない条件下でアルゴリズムが生成した理想的な部品テープの配列を崩す形で、ユーザが指定した配列固定に対応している。
詳細については、下記の個別処理で説明している通りである。
・「全体の流れ（ヒストグラムからスタート）」
・「カセットブロック内の固定部品と「山」の配置関係」
・「配列固定：固定先の使用可否判断」
・「ダブルカセットの配列固定について」
・「ダブルカセットの配列固定（補足）」
【０１３３】
３．５  ＬＬサイズ基板への対応
３．５．１  概要
LLサイズ基板は、実装領域の制約がない通常の基板よりも搬送方向にサイズが大きい基板である。そのために、図４６に示されるように、LLサイズ基板には、特定のヘッド（ノズル）でしか部品を装着できない実装領域（LL制約領域）が存在する。
【０１３４】
また、それらのヘッドは、ある範囲のZ番号に配置された部品テープ（カセット）からは、部品を吸着できない。
そこで、図４７に示されるように、下記の２つの方法により、LL制約を回避する。
(1)Z軸上の部品テープの入れ替え
(2)吸着方法の変更
上記(1)の処理は、LL制約領域の実装点を実装できるヘッドで吸着できるZ軸の範囲に、LL制約領域の実装点を含む部品テープを配置する処理である。Z軸上の全てのZ番号に部品テープが配置されている場合、部品テープの入れ替えを行う。
上記(2)の処理では、まず、LL制約領域に存在する実装点を含んだ部品ヒストグラムを仮想的に次の２つの部品ヒストグラムに分割する。
・LL制約領域に存在する実装点から構成される部品ヒストグラム
・LL制約領域に存在しない実装点から構成される部品ヒストグラム
そして、吸着時には、それぞれの部品ヒストグラムを実装可能なヘッドで刈り上げて、その刈り上げた結果を合成して、1つのタスクとする。
【０１３５】
３．５．２  Z軸上の部品テープの入れ替え
(1)ヘッド1〜6は、LL制約領域には、部品を装着できない。
(2)ヘッド7〜10は、LL制約領域にも、部品を装着できる。
(3)機構上の制約により、各ヘッド毎に吸着できるZの範囲が制限されている。
(4)Z=1〜11にLL制約領域の実装点を持つ部品テープが存在すれば、その部品テープを、Z=12〜に存在し、かつ、LL制約領域の実装点を持たない部品テープと入れ替える。
【０１３６】
３．５．３  吸着方法の変更
(1)各Zにある実装点を「LL制約領域にある実装点」と「LL制約領域にない実装点」に分ける。処理の上で扱いを分けるだけであり、部品分割はしない。
(2)ヘッド1〜6とヘッド7〜10に分割し、仮想的に6ヘッドと4ヘッドの２つを考える。
(3)LL制約領域にない実装点については、6ヘッドで刈り上げを行い、6点タスクを作る。
(4)LL制約領域にある実装点については、4ヘッドで刈り上げを行い、4点タスクを作る。
(5)6点タスクと4点タスクを組み合わせて、10点タスクとする。
【０１３７】
３．５．４  関連する個別処理
LLサイズ基板に対応するためには、吸着方法の変更とZ軸上の部品テープの入れ替えが必要であり、それらについて、２案ずつのアルゴリズムを作成した。
詳細については、下記の個別処理で説明している通りである。
・「LL制約：吸着方法の変更（１）」
LLサイズ基板に対応するため、実装点をLL制約領域に存在するものと存在しないものにわけ、LL制約領域に存在する実装点をヘッド7〜１０で吸着し、LL制約領域に存在しない実装点をヘッド1〜６で吸着する。
「山」のすそ野側にある部品テープから順次、部品を吸着するが、左ブロックであれば、ヘッド1〜６で吸着したZ範囲よりも、Z番号が大きいZから、つまりカメラに近づく方向に進みながら、ヘッド１〜4で吸着するようにしたものである。右ブロックでも同様である。
【０１３８】
・「LL制約：吸着方法の変更（２）」
LL制約領域に存在しない実装点を、「山」のすそ野側にある部品テープから順次、ヘッド1〜6で吸着した後、同様にLL制約領域に存在する実装点を、実装点を、「山」のすそ野側にある部品テープから順次、ヘッド1〜6で吸着する。
つまり、上記「LL制約：吸着方法の変更（１）」とは異なり、必ずしも、カメラ方向に近づく方向に進みながら吸着を行うわけではない。
・「LL制約：Z軸上の部品テープの入れ替え（１）」
Z番号が1〜11の部品テープについて、X座標が400mmよりも大きい実装点を含む部品テープを探し、それをX座標が400mmよりも大きい実装点を含まない部品テープを入れ替える。
・「LL制約：Z軸上の部品テープの入れ替え（２）」
上記「LL制約：Z軸上の部品テープの入れ替え（１）」よりも、実装点のX座標の扱いを細かくしたものである。
【０１３９】
３．６  ＸＬサイズ基板への対応
３．６．１  概要
XLサイズ基板は、実装領域の制約がない通常の基板よりも搬送方向と直交する方向にサイズが大きい基板である。そのために、図４６に示されるように、XLサイズ基板には、特定の設備（前サブ設備１１０又は後サブ設備１２０）でしか部品を装着できない実装領域が存在する。図４６は、特殊なサイズ（XL,LL）の基板における基板上の制約領域（ヘッドが移動できないために実装できない領域）を示す図である。
【０１４０】
XLサイズ基板は、次の３つの実装領域から構成されている。
・前サブ設備１１０でしか部品を装着できない領域
・後サブ設備１２０でしか部品を装着できない領域
・前サブ設備１１０と後サブ設備１２０の両方で部品を装着できる領域
更にLLサイズ基板と同様に特定のヘッド（ノズル）でしか部品を装着できない領域が存在する。
図４６に示された制約を踏まえて、XLサイズ基板への対応を次に示す。
(1)実装点座標による前サブ設備１１０／後サブ設備１２０への割り当て
(2)実装点座標による部品分割
(3)前サブ設備１１０と後サブ設備１２０の両方で実装できる領域を利用した初期振り分け
(4)LL制約の回避
詳細は、後述の個別処理で説明している通りである。
【０１４１】
３．６．２  関連する個別処理
XLサイズ基板への対応を、実装点毎に実装可能なサブ設備が前サブ設備１１０と後サブ設備１２０のどちらであるかを判断し、前サブ設備１１０と後サブ設備１２０に実装点を振りわけることで、実現した。
【０１４２】
なお、XLサイズ基板が持っている制約は、LLサイズ基板が持っている制約を含んでいるので、XLサイズ基板に対応する処理には、LLサイズ基板に対応する処理が含まれる。
詳細については、下記の個別処理で説明している通りである。
・「XL制約」
【０１４３】
３．７  負荷バランス処理
３．７．１  概要
負荷バランス処理は、初期振り分け処理において、負荷レベルを指標として、前サブ設備１１０と後サブ設備１２０のバランスを調整する処理である。この処理は、図１４のステップＳ３１４ｂに相当する。
３．７．２  バランス調整方法のレベル
バランスを調整する方法として、前サブ設備１１０と後サブ設備１２０との間での部品の移動を行う。部品の移動については、次の２つのレベルがある。
(1)「山」単位
(2)部品テープ単位
上記の「山」とは、最適化の結果、作成される部品テープのグループ、つまり、一定順序で並べられた部品テープ群又はその部品テープ群に対応する部品ヒストグラムを意味する。上述のタスクグループの概念に近い。
【０１４４】
負荷バランス処理とラインバランス処理では、実行する部品移動のレベルが異なる。
負荷バランス処理：「山」、部品テープ
ラインバランス処理：「山」、部品テープ、実装点
現在、負荷バランス処理で使用している負荷レベル計算は、汎用部品から構成されるタスクに対する負荷レベルの値の精度が悪い。そのため、負荷バランス処理では、部品移動の単位を細かくしても効果が薄いと判断して、実装点単位の部品移動は行っていない。
詳細は、後述の個別処理で説明している通りである。
【０１４５】
３．７．３  関連する個別処理
「負荷バランス処理」は、前サブ設備１１０と後サブ設備１２０の負荷レベルのバランスを調整する処理である。部品テープを前サブ設備１１０と後サブ設備１２０に振り分ける際に必要となる。
【０１４６】
まず、前サブ設備１１０から順に部品テープを詰めて配置し、前サブ設備１１０に配置できなかった部品テープを後サブ設備１２０に配置する。
これを初期状態として、前サブ設備１１０と後サブ設備１２０の負荷バランスを計算し、その負荷バランスの差がOKになるまで、前サブ設備１１０に配置された部品テープを順番に後サブ設備１２０に移動する。
なお、各サブ設備の負荷バランスの計算方法は、「最適化装置の動作（概要編）」での説明の通りである。
詳細については、下記の個別処理で説明している通りである。
・「負荷レベルバランス調整（「山」単位）」
・「負荷レベルバランス調整（部品テープ単位）」
【０１４７】
３．８  ラインバランス処理
３．８．１  概要
ラインバランス処理は、タスクが生成された後、実装時間を指標として、前サブ設備１１０と後サブ設備１２０のバランスを調整する処理である。この処理は、図１４のステップＳ３２３に相当する。ラインバランス処理と負荷バランス処理と違いは、バランスの指標が異なるだけであり、互いに類似した処理である。
３．８．２  バランス調整方法のレベル
バランスを調整する方法として、前サブ設備１１０と後サブ設備１２０との間での部品の移動を行う。部品の移動については、次の３つのレベルがある。
(1)「山」単位
(2)部品テープ単位
(3)実装点単位
ラインバランス処理では、実装点単位の部品移動を行う点が、負荷バランス処理と異なる。
【０１４８】
３．８．３  関連する個別処理
「ラインバランス処理」は、前サブ設備１１０と後サブ設備１２０の実装時間のバランスを調整する処理である。前サブ設備１１０と後サブ設備１２０のタスクを生成した後、各サブ設備の実装時間をタクトシミュレータで計算し、実装時間の長いサブ設備から、実装時間の短いサブ設備へ、部品を移動することにより、前サブ設備１１０と後サブ設備１２０の実装時間のバランスを調整する。バランスの指標などに違いがあるが、前述の負荷バランス処理と類似の処理である。
【０１４９】
詳細については、下記の個別処理で説明している通りである。
・「前サブ設備１１０から後サブ設備１２０へ山を移動する処理」
・「前サブ設備１１０から後サブ設備１２０へ部品テープを移動する処理」
・「前サブ設備１１０から後サブ設備１２０へ実装点を移動する処理」
・「ラインバランス処理でのスワップ処理」
【０１５０】
３．９．  最適化装置による個別処理の詳細
３．９．１  「刈り上げ法」
以下の手順により、タスクを生成する。
(1)部品ヒストグラム５１０を作成する（図４８）。
(2)部品ヒストグラム５１０に対して、刈り上げ、コア部分を残す（図４９）。
本図において、四角形で囲まれた枠は、１０点同時吸着の吸着パターンである。
(3)刈り上げた部分５１１ａ（図５０（ａ））と、コア部分５１１ｂ（図５０（ｂ））とを分離する。
(4)コア部分５１１ｂにテンプレート５１２を割り当てる（図５１）。
本図において、四角枠で囲まれた黒色の四角形（実装点）は、テンプレートでカバーできなかった実装点を示し、これらをテンプレートの左側５１３（「＊」で示される箇所）を補完するために使用する。
(5)テンプレートの左側を補完する実装点５１４を決める（図５２）。
(6)テンプレートの左側５１３を補完する（図５３）。
本図において、白抜きの四角形は、補完に用いられた実装点を示し、四角枠で囲まれた黒色の四角形は、補完に用いられなかった実装点を示し、四角枠で囲まれた「＊」は、補完できなかった実装点を示す。
(7)コア部分とテンプレートにより補完された部分について、「山」５１５を作り直す（図５４）。
(8)上記(2)において刈り上げにより作られたタスク５１１ａも「山」５１６の形に作り直す（図５５）。
(9)刈り上げによる「山」５１６とコア部分の「山」５１５とを合成し、「山」５１７を得る（図５６）。
(10)「山」５１７全体を刈り上げ、吸着パターン５１８を得る（図５７）。
【０１５１】
本図において、第２４のタスク（タスク２４）は、吸着時のヘッドの上下回数（吸着上下回数）が３回となることが示されている。
(11)制約が全くない場合は、そのままＺ軸に配置する（図５８）。
なお、制約を考慮した場合については、以下（(12)以降）の通りである。
(12)「刈り上げ法」によりタスク（四角枠で囲まれた部品群）を生成する（図５９）。
ここでは、コア部分の処理を行う。ただし、この段階では、最大分割数、カセットリソース、使用可能なＺ番号の個数は考慮しない。
この例では、カセット番号１〜６が分割されるので、
カセット番号＝１：部品Ａ
カセット番号＝２：部品Ｂ
カセット番号＝３：部品Ｃ
カセット番号＝４：部品Ｄ
カセット番号＝５：部品Ｅ
カセット番号＝６：部品Ｆ
とし、分割の様子を、例えば、部品Ａは５分割されるので、それぞれ
Ａ１，Ａ２，Ａ３，Ａ４，Ａ５
と表現する。部品Ｂ，Ｃ，Ｄ，Ｅ，Ｆについても同様である。また、その他の部品については黒色の四角形で表現している。
(13)最大分割数を考慮し、カセット分割数を適正化する（図６０）。
ここでは、部品Ａの最大カセット分割数が４であるとして、部品Ａについて、カセット分割数を適正化している。
部品Ａは、５分割されているので、Ａ２〜Ａ５のうちの１つをＡ１〜Ａ５に統合する。このとき、Ａ２〜Ａ５の中で部品数が最小のものを選択すれば、この統合の影響を受けるタスクの個数が最小になる。
この場合、Ａ５の部品数が最小（３個）であるので、Ａ５を選び、それらＡ５をＡ１〜Ａ４に分散させる。その結果、Ａ５があった位置が空くので、Ａ５の左側にあるＦ２，Ｅ２，Ｄ２を右に１つ分移動する。
(14)このような適正化後におけるカセット配列は、図６１に示される吸着パターン５１８ｂ通りである。
ここで、タスク２１〜２２は、吸着上下回数が２回となっている。
(15)続いて、ダイヤグラム５１８ｃのように、カセット使用数を適正化する（図６２）。
ここでは、カセット使用数がカセットリソースよりも１本だけ多いとする。
部品Ａ２〜４，Ｂ２，Ｃ２，Ｄ２，Ｅ２，Ｆ２の中で部品数が最小のものを選び、それを統合する。具体的には、部品数が最小（１個）のＦ２を選び、これをＦ１に統合する。
(16)このような適正化後におけるカセット配列は、図６３に示される吸着パターン５１８ｄの通りである。
カセット数が１本減っていることが分かる。
(17)続いて、ダイヤグラム５１８ｅのように、Ｚ軸占有数を適正化、つまり、使用可能なＺ軸の範囲を考慮する（図６４）。
ここでは、Ｚ軸使用数がＺ軸の空よりも１本だけ多いとする。
部品Ａ２〜４，Ｂ２，Ｃ２，Ｄ２，Ｅ２の中で部品数が最小のものを選び、それを統合する。具体的には、部品数が最小（２個）のＥ２を選び、これをＥ１に統合する。
(18)このような適正化後におけるカセット配列は、図６５に示される吸着パターン５１８ｆの通りである。
ここで、タスク２４は、吸着上下回数が４回のまま変っていないが、タスク２３は、吸着上下回数が３回となる。
(19)Ｚ軸に配置する。
ここでは、ダイヤグラム５１８ｇに示されるように、Ｂ１は、本来Ｚ番号＝１５に固定する部品であると仮定する（図６６）。
(20)最初に固定カセット５１９をＺ軸に配置する（図６７）。
(21)非固定カセットをＺ軸に配置する。その結果は、吸着パターン５２０となる（図６８）。
このとき、非固定カセットは、上記(19)で決まったカセット配列の順序で、固定カセットを避けるようにしてＺ軸に配置する。
(22)「山」５２１の形に戻す（図６９）。
(23)再度、「刈り上げ法」によりタスクを生成し、吸着パターン５２２を得る（図７０）。
ただし、コア部分の処理は行わない。ここで、タスク２４は、吸着上下回数が３回に、タスク２２〜２３は、吸着上下回数が２回に、タスク１７〜１９は、吸着上下回数が２回となる。
【０１５２】
３．９．２  平行四辺形によるカセット分割
コア部品に対する平行四辺形のテンプレートを用いたカセット分割の方法は、以下の通りである。
(1)ここでは、対象のコア部品５２５の合計部品数が３０とする（図７１の上段）。つまり、１０点吸着のタスクを３個つくることにする。
(2)まず、カセット数が９なので、それに対応する平行四辺形（テンプレート）５２３を作る（図７１の中段の右）。なお、平行四辺形５２６の各段の右端は、１０点カット×９本の場合に、この平行四辺形５２６へ部品を割り当てた場合の部品の種類を示す文字（Ａ〜Ｉ）となっている。
(3)対象部品５２５の１段目（最下段）５２５ａに着目し、その右端が「Ｉ」なので、これを、右端が同一文字（「Ｉ」）である平行四辺形５２６の段（ここでは、平行四辺形５２６の最下段）に配置する（図７１の下段）。
(4)同様に、対象部品５２５の２段目５２５ｂに着目し、その右端が「Ｆ」なので、これを、右端が同一文字（「Ｆ」）である平行四辺形５２６の段（ここでは、平行四辺形５２６の４段目）に配置する（図７２の上段）。
(5)同様に、対象部品５２５の３段目５２５ｃに着目し、その右端が「Ｃ」なので、これを、右端が同一文字（「Ｃ」）である平行四辺形５２６の段（ここでは、平行四辺形５２６の７段目）に配置する（図７２の中段）。
(6)これ以上、右端の文字が一致する段が存在しないので、残った部品５２５ｃを配置済みの各段（１，４，７段目）の空き位置（「Ｘ」）に配置する（図７２の下段）。
(7)そのとき、残り部品数の多い部品５２５ｅ、５２５ｆから割り当てていく（図７３の上段、中段）。
(8)もし、残り部品数が同数の場合は、部品の文字の順序で部品５２５ｇを割り当てる（図７３の下段）。
(9)以上の規則に従って、残る全ての部品５２５ｈ〜ｋをテンプレート５２６に置く（図７４、図７５の上段）。
(10)全ての部品をテンプレート５２６に置き終えた結果、テンプレート５２６の１，４，７段目は部品で埋まるので（図７５の中段）、最後に、それら１，４，７段目の隙間を詰めることで、カセット分割が完了する（図７５の下段）。
【０１５３】
３．９．３  長方形によるカセット分割
コア部品に対する長方形のテンプレートを用いたカセット分割の方法は、以下の通りである。
(1)３０個の対象のコア部品５２７の下部に、長方形のテンプレート（ここでは、幅１０×高さ３のテンプレート）５２８を当てる（図７６の上段）。
(2)補完すべき領域（白抜き四角形）５２８ａを、補完できた領域の左側に配置する（図７６の中段）。
(3)残り部品数の多い部品５２７ａ、５２７ｂから、テンプレートの補完領域５２８ａに置いていく（図７６の下段、図７７の上段）。
(4)もし、残り部品数が同数の場合は、部品の文字の順序で部品５２７ｃを割り当てる（図７７の中段）。
(5)以上の規則に従って、残る全ての部品５２７ｄ〜ｇをテンプレート５２８ａに置く（図７７の下段、図７８、図７９）。配置を完了した時点で、カセット分割が終了する。
【０１５４】
３．９．４  与えられたカセット本数でのコア処理方法
基本のコア処理を行って、理想の「山」の形を作ってから、補完カセットを圧縮し、与えられたカセットリソース内に納める。
コア処理を行う際、与えられたカセット本数分だけ補完カセットができるように、補完カセットへ部品数を割り当てる処理を行って、最後にコア部分に残っている、本来、部品分割に使う部品種（部品テープ）の部品数を同一部品種に均等に配分する方法も可能と考えられる。
ダブルカセットについては、奇数Ｚ番号上にコアが残るので、シングルカセットのコア処理と同様にして、補完カセットをつくることができる。この場合、補完カセットは、ダブルカセットの奇数側（奇数Ｚ番号の分）のみを使用する。また、カセットを圧縮する処理も、シングルカセットと同様に行えばよい。
具体的には、
(1)コア部分に対してコア処理を行い、理想の「山」を作る。
この時、補完カセットが作られる。
(2)補完カセットの本数Ｎを求める。
(3)補完カセット数Ｎと与えられたカセット本数Ｍを比較する。
(4)Ｎ≦Ｍであれば、終了する。
戻り値はＮとする。
コア処理では、与えられたカセット本数を全部使わなくてもよい場合があるので、Ｎを戻り値とした。
補完カセットは最大で９本なので、１０本以上のカセットを与えても意味がない。
戻り値Ｎでカセットリソースの管理を行う。
(5)Ｎ＞Ｍであれば、カセットを１本分だけ圧縮する。
(5.1)「山」の中から部品数が最も小さいカセットＣを探す。
(5.2)カセットＣと同じ部品テープを持つカセットＤを「山」の中から探す。
カセットＤは複数存在する場合がある。
カセットＣは、カセットＤに含めない。
(5.3)カセットＣの部品数をカセットＤへ均等に配分する。
均等に配分できない場合には、「山」のコア側に行くほどカセットの部品数が多くなるようにする。
たとえば、カセットＣの部品数が５で、カセットＤが３本あれば、２、２、１というように分割し、「山」のコア側のカセットから順に、２、２、１と分配する。
(6)補完カセット数Ｎから１を引く。
(7)（3）へ戻る。
【０１５５】
３．９．５  小部品のタスク生成処理
ノズル番号とZ番号の対応を決定し、各タスクの吸着パターンを生成する処理を行う。
ノズルと実装点の対応は、「貪欲法」により決定される。
「山」の「すそ野」側からスキャンして吸着パターンを生成する。そのため、「すそ野」がZ番号の小さい側に存在する左ブロックと、「すそ野」がZ番号の大きい側に存在する右ブロックとでは、ヘッドとZ軸のスキャン方向が反対になるが、基本的には同じ処理となる。
ダブルカセットの場合、偶数Z番号側にある部品テープの全ての部品数を吸着パターンに割り当ててから、奇数Z番号側にある部品テープの部品数を吸着パターンに割り当てる。偶数Z番号側に存在する部品テープから作られる最後のタスクの吸着点数が１０未満の場合、１０に満たない分を奇数Z番号に存在する部品テープから吸着する。
・プログラミングにおけるポイント
以下に説明する処理では、実Z軸上に配置された部品テープが吸着すべき部品テープか否かを判定するため、その部品テープが処理対象となる「山」に属するものかどうかを判定している。そこで、部品テープの属性として、「山」番号などの「山」を識別するための情報を用意し、事前に設定しておくと便利である。１つの部品グループから２以上の「山」が作り出されることがあるので、部品グループ番号は「山」の識別に使わないほうがよい。
左ブロックの場合（シングルカセットの「山」）
(8)タスク番号tに１を設定する。
(9)この「山」を構成する部品テープに属する実装点の個数の合計を求め、実装点数合計とする。
(9.1)実装点数合計がゼロの場合、以下の処理を行う。
(9.1.1)（15）へ進む。
全く実装点が無い「山」は存在しないので、エラーとする。
(10)タスク番号tのタスクが持つノズルのうち、Z番号が対応付けられていないノズルの中から、ノズル番号が最小のものを見つけ、そのノズル番号をNvacとする。
ノズル番号は１〜１０とする。
Z番号が対応付けられているノズルが全く無い場合、Nvacは１となる。
(10.1)すべてのノズルにZ番号が対応付けられている場合、以下の処理を行う。
(10.1.1)（13）へ進む。
次のタスクの吸着パターンの生成へ進むことになる。
このタスクの吸着点数は１０点になる。
(11)「山」を構成する部品テープが存在するZ番号について、ノズル番号Nvacのノズルで吸着できるZ番号の中から最小のZ番号を求め、Zvacとする。
Z番号は、前サブ設備１１０であれば、「１〜  ４８の範囲にある奇数」である。
Z番号は、後サブ設備１２０であれば、「９７〜１４４の範囲にある奇数」である。
(11.1)そのようなZ番号が見つからない場合、以下の処理を行う
(11.1.1)（13）へ進む。
次のタスクの吸着パターンの生成へ進むことになり、このタスクは吸着点数が１０未満となる。
たとえば、Z=1だけに部品テープが存在する場合、ノズル１でしか吸着できず、ノズル２〜１０が吸着できる部品テープが存在しないため、Zvacが決まらない。
(12)実装点数合計が正であり、かつ、  Nvacが１０以下である場合、以下の処理を行う。
(12.1)ノズル番号がNvacであるノズルにZ番号が対応付けられておらず、かつ、Zvacに存在する部品テープがこの「山」に属する場合、以下の処理を行う。
(12.1.1)ノズル番号がNvacであるノズルにZvacを対応付ける。
(12.1.2)Zvacに存在する部品テープの実装点の個数から１を減算する。
(12.1.3)実装点数合計から１を減算する。
たとえば、１回目の吸着で「歯抜け」状に吸着した場合、２回目の吸着では、すぐ隣のノズルが空いているとは限らないので、この条件判定（前半部分）を入れた。
また、「山」の途中に、この「山」に無関係な部品テープ（固定カセットの部品テープなど）が存在する可能性があるので、この条件判定（後半部分）を入れた。
(12.2)Nvacに１を加算する。
(12.3)Zvacに２を加算する。
(12.4)（12）に戻る。
(13)タスク番号に１を加算する。
(14)（10）へ戻る。
(15)吸着パターン生成処理を終了する。
右ブロック  の場合（シングルカセットの「山」）
(16)タスク番号tに１を設定する。
(17)この「山」を構成する部品テープに属する実装点の個数の合計を求め、実装点数合計とする。
(17.1)実装点数合計がゼロの場合、以下の処理を行う。
(17.1.1)（23）へ進む。
全く実装点が無い「山」は存在しないので、エラーとする。
(18)タスク番号tのタスクが持つノズルのうち、Z番号が対応付けられていないノズルの中から、  ノズル番号が最大のもの  を見つけ、そのノズル番号をNvacとする。
ノズル番号は１〜１０とする。
Z番号が対応付けられているノズルが全く無い場合、  Nvacは１０  となる。
(18.1)すべてのノズルにZ番号が対応付けられている場合、以下の処理を行う。
(18.1.1)（21）へ進む。
次のタスクの吸着パターンの生成へ進むことになる。
このタスクの吸着点数は１０点になる。
(19)「山」を構成する部品テープが存在するZ番号について、ノズル番号Nvacのノズルで吸着できるZ番号の中から最大のZ番号を求め、Zvacとする。
Z番号は、前サブ設備１１０であれば、「４９〜  ９６の範囲にある奇数」である。
Z番号は、後サブ設備１２０であれば、「１４５〜１９２の範囲にある奇数」である。
(19.1)そのようなZ番号が見つからない場合、以下の処理を行う
(19.1.1)（21）へ進む。
次のタスクの吸着パターンの生成へ進むことになり、このタスクは吸着点数が１０未満となる。
たとえば、Z=1だけに部品テープが存在する場合、ノズル１でしか吸着できず、ノズル２〜１０が吸着できる部品テープが存在しないため、Zvacが決まらない。
【０１５６】
(20)実装点数合計が正であり、かつ、Nvacが1以上である場合、以下の処理を行う。
(20.1)ノズル番号がNvacであるノズルにZ番号が対応付けられておらず、かつ、Zvacに存在する部品テープがこの「山」に属する場合、以下の処理を行う。
(20.1.1)ノズル番号がNvacであるノズルにZvacを対応付ける。
(20.1.2)Zvacに存在する部品テープの実装点の個数から１を減算する。
(20.1.3)実装点数合計から１を減算する。
たとえば、１回目の吸着で「歯抜け」状に吸着した場合、２回目の吸着では、すぐ隣のノズルが空いているとは限らないので、この条件判定（前半部分）を入れた。
また、「山」の途中に、この「山」に無関係な部品テープ（固定カセットの部品テープなど）が存在する可能性があるので、この条件判定（後半部分）を入れた。
(20.2)Nvacから１を減算する。
(20.3)Zvacから２を減算する。
(20.4)（20）に戻る。
(21)タスク番号に１を加算する。
(22)（18）へ戻る。
(23)吸着パターン生成処理を終了する。
左ブロック（ダブルカセットの「山」）
(24)ダブルカセットの偶数Z番号側について、前述の左ブロックの場合（シングルカセットの「山」）」と同様にして、吸着を行う。
ただし、奇数Z番号からではなく、偶数Z番号からの吸着動作になる点のみが異なる。
(25)ダブルカセットの偶数Z番号側から吸着したタスクの中の最後のタスクが１０点未満のタスクであれば、そのタスクをダブルカセットの奇数Z番号側を吸着する際のタスクの初期値とする。
その最後のタスクは、ノズル１から順に吸着していて、ノズル番号の大きい側が空きになっている。これをそのまま奇数Z番号側を吸着する際のタスクの初期値としてしまうと、たとえば、Z=１付近からの吸着ができない。そこで、ノズル番号の小さいノズルが空きになるように、既に吸着している実装点をノズル番号の大きいノズルのほうへ移動しておく。
(26)ダブルカセットの奇数Z番号側について、前述の「右ブロックの場合（シングルカセットの「山」）」と同様にして、吸着を行う。
ただし、奇数Z番号からではなく、偶数Z番号からの吸着動作になる点のみが異なる。
ダブルカセットの偶数側のZ番号を吸着した結果、その最後のタスクの吸着点数が１０点未満の場合、ダブルカセットの奇数Z番号側の吸着の最初のタスクが初期値を持っている点が異なる。
右ブロック（ダブルカセットの「山」）
(27)ダブルカセットの偶数Z番号側について、前述の「右ブロックの場合（シングルカセットの「山」）」と同様にして、吸着を行う。
ただし、奇数Z番号からではなく、偶数Z番号からの吸着動作になる点のみが異なる。
(28)ダブルカセットの偶数Z番号側から吸着したタスクの中の最後のタスクが１０点未満のタスクであれば、そのタスクをダブルカセットの奇数Z番号側を吸着する際のタスクの初期値とする。
その最後のタスクは、ノズル１０から順に吸着していて、ノズル番号の小さい側が空きになっている。これをそのまま奇数Z番号側を吸着する際のタスクの初期値としてしまうと、たとえば、Z=９６付近からの吸着ができない。そこで、ノズル番号の大きいノズルが空きになるように、既に吸着している実装点をノズル番号の小さいノズルのほうへ移動しておく。
(29)ダブルカセットの奇数Z番号側について、前述の「右ブロックの場合（シングルカセットの「山」）」と同様にして、吸着を行う。
ただし、奇数Z番号からではなく、偶数Z番号からの吸着動作になる点のみが異なる。
ダブルカセットの偶数側のZ番号を吸着した結果、その最後のタスクの吸着点数が１０点未満の場合、ダブルカセットの奇数Z番号側の吸着の最初のタスクが初期値を持っている点が異なる。
【０１５７】
３．９．６  「交差解消法」
「交差解消法」は、全ての吸着パターンが決まり、各吸着パターンに「貪欲法」（＋HC法）などで実装点の割振りが行われ仮のタスクが決まった後に、実装点の割振りの最適化を行うアルゴリズムの一つである。
【０１５８】
図８０（ａ）は、交差解消法を適用する前の実装経路図（貪欲法により決定した実装経路図）５３０ａを示し、図８０（ｂ）は、交差解消法を適用した後の実装経路図５３０ｂを示す。本図に示されるように、このアルゴリズムは、ヘッドの移動軌跡が無駄にクロスする箇所を減少させるものである。
なお、処理対象となるタスクの実装点が、LL基板、XL基板におけるヘッド制限に引っかかる場合は、「組替えの対象となる部分タスクの全ての実装点が、ヘッド番号がhead1=head2を満たしている」場合のみ、交差解消アルゴリズムの対象としてよい。その他の場合に、「交差解消法」を強行すると、極めて高い確率でヘッドが実装点に届かない場合が発生する。
図８１（ａ）は、交差解消法のアルゴリズムを説明する実装経路図であり、図８１（ｂ）は、４つの実装点による１つの交差（線Ａと線Ｂによる交差）の例を示す図である。具体的なアルゴリズムは、以下の通りである。
(0)それぞれのタスクの実装点を打つ際のヘッドの移動量を計算し、全タスクに対する総和を求める
(1)実装点の組替えを行うZ座標、切断点（cutpoint）に１を代入する
(2)組替えを行うタスク１に１を代入する（task1=1）
(3)組替えを行うタスク２に（task１＋１）を代入する（task2＝task１＋１）。(4)cutpointに対応するヘッド番号（head1,head2）をそれぞれのタスクについて求める
(5)２つのヘッド番号がともに適正か?
(5.1)適正でない場合（指定したZ座標に対応する実装点がない）、(13)へ
(5.2)適正である場合、(6)へ
(6)それぞれのタスクの実装点を打つ際のヘッドの移動量を計算し、その和（olength）を求める
(7)cutpointより左側の部分タスクの組替えを行う
(8)それぞれのタスクの実装点を打つ際のヘッドの移動量を計算し、その和（nlengthL）を求める
(9)cutpointより右側の部分タスクの組替えを行う
(10)それぞれのタスクの実装点を打つ際のヘッドの移動量を計算し、その和（nlengthR）を求める
(11)３つの移動量、olength,nlengthL、nlengthRを比較し、最小のものを求める(12)最小の移動量を与えるタスクを新しいタスクとしてを採用する
(13)タスク２をインクリメントする（task２＝task2+1）
(14)タスク２（task2）とタスク数を比較する
(14.1)タスク２がタスク数を超えていない場合、(4)へ戻る
(14.2)その他の場合、(15)へ
(15)タスク１をインクリメントする（task1＝task1+1）
(16)タスク１（task1）とタスク数を比較する
(16.1)タスク１がタスク数を超えていない場合、(3)へ戻る
(16.2)その他の場合、(17)へ
(17)切断点をインクリメントする（coutpoint=cutpoint+1）
(18)切断点と最大Z座標を比較する
(18.1)切断点が最大Z座標を超えていない場合、(2)へ
(18.2)その他の場合、(19)へ
(19)それぞれのタスクの実装点を打つ際のヘッドの移動量を計算し、全タスクに対するヘッド移動量の総和を求める
(20)ヘッド移動量の総和が減少しているか否かを調べる
(20.1)減少している場合、(0)へ
(20.2)その他の場合、終了
図８２は、このようなアルゴリズムによる交差解消法の適用例を示す実装経路図であり、図８２（ａ）は、適用前の実装経路図（貪欲法による実装経路図）５３１ａを示し、図８２（ｂ）は、適用後の実装経路図５３１ｂを示す。実装経路がクロスしている箇所の数が減少し、総実装経路が短縮化されているのがわかる。
【０１５９】
３．９．７  「戻り最適化法」
「戻り最適化法」は、全てのタスクへの実装点の割振りが決まった後に、タスクの実装順序の最適化を行うアルゴリズムである。
【０１６０】
その詳細は、以下の通りである。
(1)各タスクの最終実装点のX座標を求める
(2)最終実装点のX座標の大きい順に従って並べたタスク番号リスト（up[]）を作る
(3)各タスクの部品テープの最大Z座標を求める（吸着時にヘッド１０番が取るZ座標の最大値）
(4)最大Ｚ座標の大きい順に並べたタスク番号リスト（point[].task）を作る
(5)実装順序1番に、最終実装点のX座標が最大のタスクを割り当てる
(6)その次に実装するタスクとして、残っているタスクの内最も大きな最大Z座標を持つタスクを割り当てる
(7)実装順序が決まっていないタスクが残っているか?
(7.1)残っている場合、(8)へ
(7.2)その他の場合、(10)へ
(8)残っているタスクのうち最終実装点のX座標が最大のものを、その次に実装するタスクとして割り当てる
(9)実装順序が決まっていないタスクが残っているか?
(9.1)残っている場合、(６)へ
(9.2)その他の場合、(９)へ
(10)それぞれのタスクの実装点を打つ際のヘッドの移動量を計算し、全タスクに対するヘッド移動量の総和を求める
(11)実装順序の入替えを行うタスク１に１を代入する（task1=1）
(12)実装順序の入替えを行うタスク２に（task１＋１）を代入する（task2＝task１＋１）
(13)それぞれのタスクの実装点を打つ際のヘッドの移動量を計算し、全タスクに対する総和（olength）を求める
(14)タスク１の次に実装するタスクをタスク２の次に実装し、タスク２の次に実装するタスクをタスク１の次に実装する新しいタスクの実装順序を求める
(15)それぞれのタスクの実装点を打つ際のヘッドの移動量を計算し、全タスクに対する総和（nlength）を求める
(16)２つの移動量、olength,nlengthを比較し、最小のものを求める
(17)最小の移動量を与える実装順序を新しい実装順序としてを採用する
(18)タスク２をインクリメントする（task２＝task2+1）
(19)タスク２（task2）とタスク数を比較する
(19.1)タスク２がタスク数を超えていない場合、(11)へ戻る
(19.2)その他の場合、(19)へ
(20)タスク１をインクリメントする（task1＝task1+1）
(21)タスク１（task1）とタスク数を比較する
(21.1)タスク１がタスク数を超えていない場合、(10)へ戻る
(21.2)その他の場合、(21)へ
(22)それぞれのタスクの実装点を打つ際のヘッドの移動量を計算し、全タスクに対するヘッド移動量の総和を求める
(23)ヘッド移動量の総和が減少しているか否かを調べる
(23.1)減少している場合、(0)へ
(23.2)その他の場合、終了
以上のように、このアルゴリズムは、大きく、以下の２つのパートからなる。（パート１）
(i)図８３に示されるように、各タスクの最終実装点から最短距離にある吸着位置（タスク）を見つける（図中の実線矢印）。図８３は、図４４における「戻り」動作を示す図であり、基板上の最終実装点（四角形内の丸印）と次に吸着すべき部品カセットのZ軸上の位置（横一列に並んだ丸印１〜１９）を示す。
(ii)１番吸着位置を始点にして実装経路を順次書いていく（図中の点線矢印）。
(iii)経路が１番吸着位置に戻ったら、それを最短巡回部分経路１とする。
(iv)これまで見つかった最短巡回部分経路に含まれない吸着位置を探す（図８３に示された例では、「４」となる）。
(v)上記(ii)に戻る。
その結果、図８３に示された例では、最短巡回経路は５つとなる。
【０１６１】
（パート２）
どの吸着位置から実装を始めれば、複数の最短巡回経路を実装順序が最適化できるかを求める。これは、右から順に実装するので問題ない。戻ることがなければよいからである。
図８４（ａ）は、同一の部品カセットに複数の実装点がある場合における「戻り」動作を示す図であり、図８４（ｂ）は、この「戻り最適化法」を適用した場合のヘッドの戻り軌跡を示すシミュレーション結果であり、適用前の移動軌跡５３２ａにおける無駄なクロス（左図）が適用後の移動軌跡５３２ｂのように減少しているのがわかる。
【０１６２】
３．９．８  全体の流れ（ヒストグラムからスタート）
(1)実装点データから、部品グループを作成する。
(2)小部品の各部品グループについて、「山」を作る。
(2.1)使用するカセットによって、部品テープを次の３つに分類する。
1.シングルカセットを使う部品テープ
2.ダブルカセットを使う部品テープ（送りピッチ２ｍｍ）
3.ダブルカセットを使う部品テープ（送りピッチ４ｍｍ）
(2.2)シングルカセットを使う部品テープについて、仮Ｚ軸上に「山」を作る。
(2.2.1)仮Ｚ軸上に部品ヒストグラムを作成する。
部品数の多い順に部品テープを並べる。
最も部品数の多い部品テープをＺ＝１に配置する。
(2.2.2)部品ヒストグラムを構成する部品テープの個数をＮとする。
(2.2.3)仮Ｚ軸から実Ｚ軸へ変換する。
仮Ｚ軸上のＺ＝１からＮまでの部品テープを、その順番で、実Ｚ軸上のＺ＝１〜２Ｎの範囲の奇数Ｚ番号に配置する。
(2.3)送りピッチが２ｍｍのダブルカセットを使う部品テープについて、仮Ｚ軸上に「山」を作る。
(2.3.1)仮Ｚ軸上に部品ヒストグラムを作成する。
部品数の多い順に部品テープを並べる。
最も部品数の多い部品テープをＺ＝１に配置する。
(2.3.2)部品ヒストグラムを構成する部品テープの個数をＮとする。
(2.3.3)Ｎを２で割った値（小数点以下切り上げ）をＭとする。
(2.3.4)ダブルカセットをＭ本用意する。
(2.3.5)第２仮Ｚ軸を用意する。
(2.3.6)Ｍ本のダブルカセットを第２仮Ｚ軸上のＺ＝１からＮまで、間を詰めて配置する。
(2.3.7)仮Ｚ軸のＺ＝１からＭまでの部品テープを第２仮Ｚ軸のＺ＝１、３、５、…、Ｎ−１の奇数Ｚ番号に配置する。
ダブルカセットの奇数側に配置することになる。
(2.3.8)仮Ｚ軸のＺ＝（Ｍ＋１）からＮまでの部品テープを、第２仮Ｚ軸のＺ＝２、４、６、…、Ｎの偶数Ｚ番号に配置する。
ダブルカセットの偶数側に配置することになる。
Ｎが奇数の場合は、第２仮Ｚ軸上のＺ＝（Ｎ−１，Ｎ）に配置されるダブルカセットは、偶数側が空きになるが、そのままとする。
(2.3.9)第２仮Ｚ軸を改めて仮Ｚ軸とする。
(2.4)送りピッチが４ｍｍのダブルカセットを使う部品テープについて、仮Ｚ軸上に「山」を作成する。
送りピッチの違いを除いて、前述の「送りピッチが２ｍｍのダブルカセットを使う部品テープについて、仮Ｚ軸上に「山」を作る」処理と同じである。
(2.5)送りピッチが２ｍｍと４ｍｍのダブルカセットの部品ヒストグラムを融合する。
(2.5.1)送りピッチが２ｍｍのダブルカセットの「山」と、送りピッチが４ｍｍのダブルカセットの「山」を同じ仮Ｚ軸上に配置する。
送りピッチが２ｍｍのダブルカセットの「山」をＺ＝１から配置し、それに続けて、送りピッチが４ｍｍのダブルカセットの「山」を配置する。
次の処理でカセットの並べ替えをするので、配置順序は逆でもかまわない。
(2.5.2)仮Ｚ軸上のダブルカセットを、その奇数Ｚ番号側の部品テープの部品数の大きい順に並べ替える。
部品数が最も大きい部品テープを持つダブルカセットをＺ＝１に配置する。
ダブルカセットのペアは崩さない。
送りピッチが２ｍｍと４ｍｍのダブルカセットが混在した「山」ができる。
奇数Ｚ番号の部品テープの部品数を見ると、単調減少するヒストグラムになる。
偶数Ｚ番号の部品テープの部品数を見ると、単調減少するヒストグラムになっていない場合がある。
【０１６３】
(3)実Ｚ軸上にすべての「山」を［強制的に］配置する。
「山」を前サブ設備１１０から詰めて配置していき、すべての「山」が実Ｚ軸上に載り切るかどうかを調べる。
部品グループの順に「山」単位で配置する。
前後サブ設備１２０にまたがる「山」は分割し、前後サブ設備１２０へ振り分ける。
小部品は、１つの部品グループが「シングルカセットを使用する山」と「ダブルカセットを使用する山」に分かれる。どちらか一方の「山」しかない部品グループもある。
小部品で１つの部品グループが「シングルカセットを使用する山」と「ダブルカセットを使用する山」に分かれた場合、それぞれを独立した「山」として扱う。
汎用部品は、部品グループ単位で「山」になっているとする。
汎用部品は、ユーザの指定通りに分割されているものとする。
・配置ルール
小部品については、シングルカセットとダブルカセットがあるので、次のような順序で配置する。隣接条件を考慮して、シングルカセットとダブルカセットが隣接しにくくなるような、配置順序とした。
1)  前サブ設備１１０にダブルカセットを配置する。
(i)ＡブロックのＺ番号＝（４７，４８）から、Ｚ番号の小さいほうへ順に空きを探して配置する。
(ii)Ａブロックに空きがなくなったら、ＢブロックのＺ番号＝（９５，９６）へ移動し、Ｚ番号の小さいほうへ順に空きを探して配置する。
2)  前サブ設備１１０にシングルカセットを配置する。
(i)ＢブロックのＺ番号＝４９から、Ｚ番号の大きいほうへ順に空きを探して配置する。
(ii)Ｂブロックに空きがなくなったら，ＡブロックのＺ番号＝１へ移動し，Ｚ番号の大きい方へ順に空きを探して配置する。
3)  後サブ設備１２０にダブルカセットを配置する。
(i)ＣブロックのＺ番号＝（１４３，１４４）から、Ｚ番号の小さいほうへ順に空きを探して配置する。
(ii)Ｃブロックに空きがなくなったら、ＤブロックのＺ番号＝（１９１，１９２）へ移動し、Ｚ番号の小さいほうへ順に空きを探して配置する。
4)  後サブ設備１２０にシングルカセットを配置する。
(i)ＤブロックのＺ番号＝１４５から、Ｚ番号の大きいほうへ順に空きを探して配置する。
(ii)Ｄブロックに空きがなくなったら、ＣブロックのＺ番号＝９７へ移動し，Ｚ番号の大きいほうへ順に空きを探して配置する。
配列固定の対象である部品テープが存在する場合、それらの部品テープを固定先のZ番号へ配置した後、配列固定の対象でない部品テープを配置する。
ダブルカセットの配列固定については、「ダブルカセットの配列固定について」で詳述する。
(3.1)部品グループ番号をnで表し、n  =  0とする。
(3.2)nが部品グループ番号の最大値よりも大きい場合、（3.7）へ進む。
(3.3)部品グループnに属するシングルカセットの「山」が存在する場合、以下の処理を行う。
(3.3.1)前サブ設備１１０に配置する。
(3.3.2)その結果、前サブ設備１１０に載りきらないのであれば、「山」を部品テープ単位で分割し、前サブ設備１１０に載りきらない部品テープを後サブ設備１２０に配置する。
(3.3.3)その結果、後サブ設備１２０に載りきらないのであれば、エラーとする。
小部品の「山」を配置する場合は上記の配置ルールに従う。
(3.4)部品グループnに属するダブルカセットの「山」が存在する場合、以下の処理を行う。
(3.4.1)前サブ設備１１０に配置する。
(3.4.2)その結果、前サブ設備１１０に載りきらないのであれば、「山」を部品テープ単位で分割し、前サブ設備１１０に載りきらない部品テープを後サブ設備１２０に配置する。
(3.4.3)その結果、後サブ設備１２０に載りきらないのであれば、エラーとする。
小部品の「山」を配置する場合は上記の配置ルールに従う。
(3.5)nに１を加算する。
(3.6)（3.2）へ戻る。
(3.7)前サブ設備１１０と後サブ設備１２０の「山」の状態を記憶する。
最も詰め込んだ状態で、すべての「山」を配置できたことになる。
【０１６４】
(4)前サブ設備１１０から順に「山」を詰めて配置する。
負荷レベルを尺度とした前サブ設備１１０と後サブ設備１２０のバランス調整を行う際の「山」の配置の初期状態を作る。
前サブ設備１１０→後サブ設備１２０の順に、前サブ設備１１０から詰めて、部品グループの小さい「山」から順に配置し、「山」の配置の初期状態とする。
配列固定の対象である部品テープが存在する場合、配列固定の対象である部品テープを固定先のZ番号へ配置した後、配列固定の対象でない部品テープを配置する。
配列固定の対象である部品テープと、それが属している「山」が同じブロックに配置された場合、配列固定の対象である部品テープを「山」に含めて、１つの「山」とし、その「山」に「刈り上げ法」を適用する。
配列固定の対象である部品テープと、それが属している「山」が異なるブロックに配置された場合、別々の「山」とし、それぞれの「山」に「刈り上げ法」を適用する。
(4.1)部品グループ番号をnで表し、n  =  0とする。
(4.2)nが部品グループ番号の最大値よりも大きい場合、（4.8）へ進む。
(4.3)部品グループnに属するシングルカセットの「山」が存在する場合、以下の処理を行う。
(4.3.1)前サブ設備１１０に配置する。
(4.3.2)その結果、前サブ設備１１０に載りきらないのであれば、「山」を部品テープ単位で分割し、前サブ設備１１０に載りきらない部品テープを後サブ設備１２０に配置する。
(4.3.3)その結果、後サブ設備１２０に載りきらないのであれば、エラーとする。
左右ブロックのうち、Zの空きが多いほうに「山」を配置する。
左右ブロックのZの空きが同じ場合には、右ブロックに配置する。
左ブロックのZに空きがあるが、「山」が収まりきらない場合には、「山」を部品テープ単位に２分割して、左右のブロックへ配置する。
(4.4)部品グループnに属するダブルカセットの「山」が存在する場合、以下の処理を行う。
(4.4.1)前サブ設備１１０に配置する。
(4.4.2)その結果、前サブ設備１１０に載りきらないのであれば、「山」を部品テープ単位で分割し、前サブ設備１１０に載りきらない部品テープを後サブ設備１２０に配置する。
(4.4.3)その結果、後サブ設備１２０に載りきらないのであれば、エラーとする。
左右ブロックのうち、Zの空きが多いほうに「山」を配置する。
左右ブロックのZの空きが同じ場合には、右ブロックに配置する。
左ブロックのZに空きがあるが、「山」が収まりきらない場合には、「山」を部品テープ単位に２分割して、左右のブロックへ配置する。
(4.5)前サブ設備１１０と後サブ設備１２０の「山」を負荷レベルを使って再配置する。
各ブロック毎に、負荷レベルの大きい「山」がカメラ（センサ）に近くなるように、負荷レベル順で「山」を並べ替える。
(4.6)nに１を加算する。
(4.7)（4.2）へ戻る。
(4.8)前サブ設備１１０と後サブ設備１２０の「山」の状態を記憶する。
(5)「負荷レベル」を使って前後バランスをとる。
(5.1)「負荷レベルバランス調整処理（「山」単位移動）」を行う。
詳細は、後述の「負荷レベルバランス調整処理（「山」単位）」で説明している通りである。
「負荷レベルバランス調整処理（「山」単位）」の中で、最終的には、実装点単位の負荷レベルバランス調整を行う。
(6)小部品に対して「刈り上げ法」を適用する。
現在の商品版における、カセット分割処理の流れと合わせた。
(6.1)各「山」について刈り上げ処理を行い、コア部分を残す。
(6.1.1)シングルカセットの「山」の場合
奇数Ｚ番号（Ｚ＝大→小）の順に刈り上げを行う。
１０点同時吸着ができなくなったら、刈り上げ処理を終了する。
(6.1.2)ダブルカセットの「山」の場合
偶数Ｚ番号（Ｚ＝大→小）→奇数Ｚ番号（Ｚ＝大→小）の順に刈り上げを行う。
偶数側Ｚ番号に１点でも部品数が残っていれば、それを起点して刈り上げ処理を行う。
たとえば、偶数Ｚ番号側で１点しか吸着できなければ、奇数Ｚ番号側で残りの９点を吸着する。
奇数Ｚ番号側で、１０点同時吸着ができなくなったら、刈り上げ処理を終了する。
奇数Ｚ番号側にコア部分が残る。
(6.2)「山」にフラグを設ける。
フラグの初期値をTRUEとする。
(6.3)前サブ設備１１０と後サブ設備１２０の「山」の状態を記憶しておく。
(6.4)カセットリソースの状態を記憶しておく。
(6.5)フラグがTRUEである「山」の中から、コア部分の高さが最も高い「山」Ｍを探す。
(6.5.1)「山」Ｍが見つからなければ、（7）へ進む。
つまり、すべての「山」に対するコア処理が終了したことになる。
(6.6)「山」Ｍが使用するカセット種Ｋと同種のカセット１本がリソースに残っているかを調べる。
(6.7)残っていれば、以下の処理を行う。
(6.7.1)「山」Ｍが使用するカセット数にカセット種Ｋを１本だけ追加して、コア処理を行う。
別紙「与えられたカセット本数でのコア処理方法」を参照。
(6.7.2)コアの高さが変化しなければ、（6.6）へ戻る。
(6.7.3)コアの高さが低くなれば、（6.9）へ進む。
(6.8)残っていなければ、以下の処理を行う。
(6.8.1)前サブ設備１１０と後サブ設備１２０の「山」の状態を１つの前の状態に戻す。
(6.8.2)カセットリソースの状態を１つ前の状態に戻す。
(6.8.3)「山」MのフラグをFLASEにする。
(6.8.4)（6.3）へ戻る。
コア部分の高さが次に高い「山」を探すため、
(6.9)すべての「山」を実Ｚ軸上に配置する。
(6.10)配置できれば、（6.1）へ戻る。
(6.11)配置できなければ、以下の処理を行う。
(6.11.1)前サブ設備１１０と後サブ設備１２０の「山」の状態を１つの前の状態に戻す。
(6.11.2)カセットリソースの状態を１つ前の状態に戻す。
(6.11.3)「山」MのフラグをFLASEにする。
(6.11.4)（6.3）へ戻る。
(7)小部品のタスクを生成する。
(7.1)「小部品のタスク生成処理」を行う。
詳細は、後述の「小部品のタスク生成処理」で説明している通りである。
(8)汎用部品に対して最適化を行う。
(9)実装時間を使って前後バランスを取る。
(9.1)「前サブ設備１１０から後サブ設備１２０への山を移動する処理」を行う。
詳細は、後述の「前サブ設備１１０から後サブ設備１２０への山を移動する処理」で説明している通りである。
【０１６５】
３．９．９  カセットブロック内の固定部品と「山」の配置関係
仮Z軸上の「山」は、配列固定の対象となっている部品テープと、配列固定の対象となっていない部品テープから構成されている。
配列固定の対象となっている部品テープを「固定部品テープ」と呼ぶ。
配列固定の対象なっていない部品テープを「非固定部品テープ」と呼ぶ。
カセットブロックを単に「ブロック」と呼ぶことがある。
左カセットブロックを「左ブロック」と呼び、右カセットブロックを「右ブロック」と呼ぶ。
固定部品テープを固定するZ番号を「固定先」と呼ぶ。
ある部品テープ（ある部品種の部品群）から部品分割により複数の部品テープが作られ、それら部品テープが「カセット」に収められて、そのカセットがZ軸に配置される…というように考える。
ある部品テープ（ある部品種の部品群）に対して部品分割を行わない場合は、分割数を１と考え、その部品テープ（その部品種の部品群）から部品テープが１本作られた…というように考える。
【０１６６】
(10)右ブロックに存在する固定先の個数を数え、NRとする。
この「山」に属する固定部品テープに関係する固定先のみを数える。
この「山」に属する固定部品テープが複数存在する場合がある。
１つの部品テープの固定先が複数存在する場合がある。
(11)左ブロックに存在する固定先の個数を数え、NLとする。
右ブロックの場合と同様にして、数える。
(12)NR＞NLの場合、以下の処理を行う。
右ブロックの固定先が多い場合である。
(12.1)その「山」を右ブロックに配置する。
「山」をブロックに配置する処理については、下記を参照。
詳細は、後述の「配列固定：固定先の使用可否判断」で説明している通りである。
(12.2)右ブロックに配置できない場合は、左ブロックに配置する。
右ブロックには、既に他の「山」が配置されており、この「山」を配置できるだけのZの空きが存在しないような場合である。
この結果、右ブロックに固定部品テープが存在し、左ブロックに「山」が存在することなるが、左右ブロックをまたいだ吸着動作は行わない。右ブロックに存在する固定部品テープと、左ブロックに存在する「山」は、別々の「山」として扱う。
(12.2.1)左ブロックに配置できない場合は、「山」を部品テープ単位で２つに分割して、左右ブロックに配置する。
「山」を２分割するので、固定部品テープと同じブロックに存在する「山」と、固定部品テープと異なるブロックに存在する「山」ができる。
固定部品テープと同じブロックに存在する「山」は、「刈り上げ法」において、仮Z軸上で１つの「山」（ヒストグラム）として扱う。
【０１６７】
(13)NR＝NLの場合、以下の処理を行う。
左右ブロックの固定先が同数である場合である。
(13.1)左右ブロックのZの空きが大きいほうに、その「山」を配置する。
(13.2)左右ブロックのZの空きが同数である場合、その「山」を右ブロックに配置する。
(13.3)右ブロックに配置できない場合は、左ブロックに配置する。
右ブロックには、既に他の「山」が配置されており、この「山」を配置できるだけのZの空きが存在しないような場合である。
この結果、右ブロックに固定部品テープが存在し、左ブロックに「山」が存在することなるが、左右ブロックをまたいだ吸着動作は行わない。右ブロックに存在する固定部品テープと、左ブロックに存在する「山」は、別々の「山」として扱う。
(13.3.1)左ブロックに配置できない場合は、「山」を部品テープ単位で２つに分割して、左右ブロックに配置する。
「山」を２分割するので、固定部品テープと同じブロックに存在する「山」と、固定部品テープと異なるブロックに存在する「山」ができる。
固定部品テープと同じブロックに存在する「山」は、「刈り上げ法」において、仮Z軸上で１つの「山」（ヒストグラム）として扱う。
(14)NR＜NLの場合、以下の処理を行う。
左ブロックの固定先が多い場合である。
(14.1)その「山」を左ブロックへ配置する。
(14.2)左ブロックに配置できない場合は、右ブロックに配置する。
左ブロックには、既に他の「山」が配置されており、この「山」を配置できるだけのZの空きが存在しないような場合である。
この結果、左ブロックに固定部品テープが存在し、右ブロックに「山」が存在することなるが、左右ブロックをまたいだ吸着動作は行わない。左ブロックに存在する固定部品テープと、右ブロックに存在する「山」は、別々の「山」として扱う。
(14.2.1)左ブロックに配置できない場合は、「山」を部品テープ単位で２つに分割して、左右ブロックに配置する。
「山」を２分割するので、固定部品テープと同じブロックに存在する「山」と、固定部品テープと異なるブロックに存在する「山」ができる。
固定部品テープと同じブロックに存在する「山」は、「刈り上げ法」において、仮Z軸上で１つの「山」（ヒストグラム）として扱う。
【０１６８】
３．９．１０  配列固定：固定先の使用可否判断
固定部品テープの元になる部品テープの最大分割可能数をNDとする。
その部品テープから「刈り上げ法」（コア処理）により作り出された部品テープの本数をNTとする。必ずNT≦NDである。
その部品テープに関係するブロック内の固定先の個数をNZとする。
具体的には、
(1)「山」を構成する部品テープについて、「山」の一端から順に、以下の処理を行う。
(1.1)部品テープを１つ選択する。
(1.2)その部品テープについてNT≦（ND−NZ）である場合、以下の処理を行う。
(1.2.1)その部品テープに関係する固定先を全く使用しないで、「山」を構成する部品テープ（NT本）をZ軸上に配置する。
「山」の形に沿って、部品テープを配置する。
結果的に、部品テープが固定先に配置されることがあるが、それでもかまわない。
(1.2.2)固定先には、その部品種の部品テープを配置する。
最適化対象となっている基板については、この固定先から部品を吸着することはないが、他の基板で吸着すると考えて、ユーザの指定通りに配置しておく。
(1.3)その部品テープについてNT＞（ND−NZ）である場合、以下の処理を行う。
(1.3.1)その部品テープから作られ、「山」を構成する部品テープのうち、部品数の少ないほうから｛NT−（ND−NZ）｝本の部品テープを固定先に配置する。
固定先として、実Z軸上で「山」に近い固定先を選ぶ。
(1.3.2)残りの部品テープを、その部品テープに関係する固定先を全く使用しないで、Z軸上に配置する。
結果的に、部品テープが固定先に配置されることがあるが、それもでかまわない。
(1.4)（1.1）へ戻る。
【０１６９】
３．９．１１  ダブルカセットの配列固定について
ダブルカセットを対象とした配列固定の制約に対する最適化は以下の通りである。
(1)送りピッチが２ｍｍのダブルカセットを使う部品テープについて、仮Ｚ軸上に「山」を作る（図８５）。つまり、部品数の多い順に並べた部品ヒストグラム５３５を中間点（折り返し位置）で切断して折り返し、それら前半部及び後半部の各部品が交互に入れ違いとなるように合成し、部品ヒストグラム５３６を得る（折り返すことでペアを作成する）。
(2)同様にして、送りピッチが４ｍｍのダブルカセットを使う部品テープについて、仮Ｚ軸上に「山」を作る（図８６）。つまり、部品数の多い順に並べた部品ヒストグラム５３７を中間点（折り返し位置）で切断して折り返し、それら前半部及び後半部の各部品が交互に入れ違いとなるように合成し、部品ヒストグラム５３８を得る（折り返すことでペアを作成する）。
(3)送りピッチが２ｍｍと４ｍｍのダブルカセットの部品ヒストグラム５３６、５３８を融合し、部品ヒストグラム５３９を得る（図８７）。つまり、ダブルカットのペアを維持したまま、奇数Ｚ番号側の部品テープの部品数が多い順に並べ替える。
(4)奇数Ｚ番号とヒストグラム５３９ａ（図８８（ａ））と偶数Ｚ番号のヒストグラム５３９ｂ（図８８（ｂ））に分離する。
(5)配列固定の制約がない場合には、それらヒストグラム５３９ａ、５３９ｂを、そのまま実Ｚ軸に配置すればよい（図８９（ａ）、（ｂ））。
(6)配列固定の制約がある場合には（図９０（ａ）に示される奇数Ｚ番号の部品Ａ〜Ｃ及び図９０（ｂ）に示される偶数Ｚ番号の部品Ｄ、Ｅが配列固定の対象部品とする）、以下の通りとなる。
(7)配列固定の対象となっている部品を、奇数Ｚ番号及び偶数Ｚ番号それぞれについて、それを収めたダブルカセット単位で抜き取り、右端に置く（図９１（ａ）、（ｂ））。
(8)奇数側だけについて、非固定の部品テープ５４０を実Ｚ軸上に戻す（図９２（ａ））。偶数側はそのまま（図９２（ｂ））。
(9)「山」の隙間を詰め、奇数側及び偶数側それぞれの部品ヒストグラム５４１ａ、５４１ｂを得る（図９３（ａ）、（ｂ））。
このとき、奇数側の「山」については、ダブルカセットの単位で隙間を詰めることができるが（図９３（ａ））、偶数側の「山」については、奇数側の「山」５４１ａに合わせて詰めることとするため、隙間は残ることがある（図９３（ｂ））。
(10)偶数側の部品テープを送りピッチ毎に並べ直し、部品ヒストグラム５４１ｃを得る（図９４（ｂ））。奇数側はそのまま（図９４（ａ））。
具体的には、偶数側において、送りピッチが２ｍｍの部品テープについて、実Ｚ軸上に存在する部品テープと、配列固定対象の部品テープと一緒に抜かれた配列固定対象でない部品テープとを合わせて、部品数の大きい順に並べ直し、送りピッチが２ｍｍのダブルカセットの偶数側に収める。
偶数側の送りピッチが４ｍｍの部品テープについても、送りピッチが２ｍｍの部品テープと同様に処理を行う。
その結果、ダブルカセット（４３，４４）、（４５，４６）、（４７，４８）が不要となる。
【０１７０】
３．９．１２  LL制約：吸着方法の変更（１）
(2)Z（Z番号）と同数のフラグを設け、Zとフラグを１対１に対応させる。
(3)左ブロック内の実装点について下記の処理を行う。
(3.1)Zに配置された部品テープについて、以下の処理を行う。
・Zに部品テープが配置されていない場合、フラグをFALSEとする。
・LL制約領域に含まれる実装点を持たない場合、フラグをFALSEとする。
・LL制約領域に含まれる実装点を持つ場合、フラグをTRUEにする。
(3.2)LL制約領域に含まれない実装点の個数を数え、Nfとする（  fはfreeの意味）。
(3.3)LL制約領域に含まれる実装点の個数を数え、Nrとする（  rはrestrictedの意味）。
(3.4)NfとNrのどちらかがゼロでない場合、以下の処理を繰り返す。
(3.4.1)NfとNrの両方がゼロでない場合
(i) LL制約領域に含まれない実装点を対象として、6点吸着の刈り上げを行い、Z番号の順にヘッド1〜6に割り当てる。
吸着した実装点の数をPfとする。
ヘッド1〜6に満載できるように、複数回、吸着を行う。
吸着した実装点が存在したZ番号のうち、最大のZ番号をZmaxとする。
(ii) PfをNfから引く。
(iii)Zmaxよりも大きいZに存在し、かつ、LL制約領域に含まれる実装点を対象として、4点吸着の刈り上げを行い、Z番号の順にヘッド7〜10に割り当てる。
吸着した実装点の数をPrとする。
ヘッド7〜10に満載できるように、複数回、吸着を行う。
(iv)PrをNrから引く。
(3.4.2)Nfがゼロでなく、Nｒがゼロである場合
(i)すべての実装点を対象として、10点吸着の刈り上げを行い、Z番号の順にヘッド1〜10に割り当てる。
吸着した実装点の数をPfとする。
ヘッド1〜10に満載できるように、複数回、吸着を行う。
(ii)吸着した実装点数PfをNｆから引く。
(3.4.3)Nfがゼロであり、Nｒがゼロでない場合
(ii)すべての実装点を対象として、4点吸着の刈り上げを行い、Z番号の順にヘッド7〜10に割り当てる。
吸着した実装点の数をPrとする。
ヘッド7〜10に満載できるように、複数回、吸着を行う。
ヘッド1〜6には、吸着しない。
(ii)吸着した実装点数PrをNrから引く。
(3.4.4)NfとNｒがゼロである場合
左ブロックに対する処理を終了する。
【０１７１】
(4)右ブロック内の実装点について下記の処理を行う。
(4.1)Zに配置された部品テープについて、以下の処理を行う。
・Zに部品テープが配置されていない場合、フラグをFALSEとする。
・LL制約領域に含まれる実装点を持たない場合、フラグをFALSEとする。
・LL制約領域に含まれる実装点を持つ場合、フラグをTRUEにする。
(4.2)LL制約領域に含まれない実装点の個数を数え、Nfとする（  fはfreeの意味）
(4.3)LL制約領域に含まれる実装点の個数を数え、Nrとする（  rはrestrictedの意味）。
(4.4)NfとNrのどちらかがゼロでない場合、以下の処理を繰り返す。
(4.4.1)NfとNrの両方がゼロでない場合
(i)LL制約領域に含まれる実装点を対象として、4点吸着の刈り上げを行い、Z番号の順にヘッド7〜10に割り当てる。
吸着した実装点の数をPrとする。
ヘッド7〜10に満載できるように、複数回、吸着を行う。
吸着した実装点が存在したZ番号のうち、最大のZ番号をZminとする。
(ii)PrをNｒから引く。
(iii)Zminよりも小さいZに存在し、かつ、LL制約領域に含まれない実装点を対象として、6点吸着の刈り上げを行い、Z番号の順にヘッド1〜6に割り当てる。
吸着した実装点の数をPfとする。
ヘッド1〜6に満載できるように、複数回、吸着を行う。
(iv)PfをNｆから引く。
(4.4.2)Nfがゼロでなく、Nｒがゼロである場合
(i)すべての実装点を対象として、10点吸着の刈り上げを行い、Z番号の順にヘッド1〜10に割り当てる。
吸着した実装点の数をPfとする。
ヘッド1〜10に満載できるように、複数回、吸着を行う。
(ii)吸着した実装点数PfをNfから引く。
(4.4.3)Nfがゼロであり、Nrがゼロでない場合
(i)すべての実装点を対象として、4点吸着の刈り上げを行い、Z番号の順にヘッド7〜10に割り当てる。
吸着した実装点の数をPrとする。
ヘッド7〜10に満載できるように、複数回、吸着を行う。
ヘッド1〜6には、吸着しない。
(ii)吸着した実装点数PrをNrから引く。
(4.4.4)NfとNｒがゼロである場合
右ブロックに対する処理を終了する。
(5)終了
【０１７２】
３．９．１３  LL制約：吸着方法の変更（２）
(1)Z（Z番号）と同数のフラグを設け、Zとフラグを１対１に対応させる。
(2)左ブロック内の実装点について下記の処理を行う。
(2.1)Zに配置された部品テープについて、以下の処理を行う。
・Zに部品テープが配置されていない場合、フラグをFALSEとする。
・LL制約領域に含まれる実装点を持たない場合、フラグをFALSEとする。
・LL制約領域に含まれる実装点を持つ場合、フラグをTRUEにする。
(2.2)LL制約領域に含まれない実装点の個数を数え、Nfとする（  fはfreeの意味）。
(2.3)LL制約領域に含まれる実装点の個数を数え、Nrとする（  rはrestrictedの意味）。
(2.4)NfとNrのどちらかがゼロでない場合、以下の処理を繰り返す。
(2.4.1)NfとNrの両方がゼロでない場合
(i)LL制約領域に含まれない実装点を対象として、6点吸着の刈り上げを行い、Z番号の順にヘッド1〜6に割り当てる。
吸着した実装点の数をPfとする。
ヘッド1〜6に満載できるように、複数回、吸着を行う。
吸着した実装点が存在したZ番号のうち、最小のZ番号をZfとする。
(ii)PfをNfから引く。
(iii)LL制約領域に含まれる実装点を対象として、4点吸着の刈り上げを行い、Z番号の順にヘッド7〜10に割り当てる。
吸着した実装点の数をPrとする。
ヘッド7〜10に満載できるように、複数回、吸着を行う。
吸着した実装点が存在したZ番号のうち、最小のZ番号をZrとする。
(iv)PrをNrから引く。
(v)Zf  ≦  Zrであれば、ヘッド1〜6、ヘッド7〜10の順にNCデータを並べる。
ヘッド1〜6、ヘッド7〜10の順に吸着する。
吸着順序は実装順序と一致し、実装順序は、NCデータの順序である。
(vi)Zf  ＞  Zrであれば、ヘッド7〜10、ヘッド1〜6の順にNCデータを並べる。
ヘッド7〜10、ヘッド1〜6の順に吸着する。
吸着順序は実装順序と一致し、実装順序は、NCデータの順序である。
(2.4.2)Nfがゼロでなく、Nｒがゼロである場合
(i)すべての実装点を対象として、10点吸着の刈り上げを行い、Z番号の順にヘッド1〜10に割り当てる。
吸着した実装点の数をPfとする。
ヘッド1〜10に満載できるように、複数回、吸着を行う。
(ii)吸着した実装点数PfをNｆから引く。
(2.4.3)Nfがゼロであり、Nｒがゼロでない場合
(i)すべての実装点を対象として、4点吸着の刈り上げを行い、Z番号の順にヘッド7〜10に割り当てる。
吸着した実装点の数をPrとする。
ヘッド7〜10に満載できるように、複数回、吸着を行う。
4点吸着タスクが多数できてしまう場合がある。
(ii)吸着した実装点数PrをNrから引く。
(2.4.4)NfとNｒがゼロである場合
左ブロックに対する処理を終了する。
(3)右ブロック内の実装点について下記の処理を行う。
(3.1)Zに配置された部品テープについて、以下の処理を行う。
・Zに部品テープが配置されていない場合、フラグをFALSEとする。
・LL制約領域に含まれる実装点を持たない場合、フラグをFALSEとする。
・LL制約領域に含まれる実装点を持つ場合、フラグをTRUEにする。
(3.2)LL制約領域に含まれない実装点の個数を数え、Nfとする（  fはfreeの意味）
(3.3)LL制約領域に含まれる実装点の個数を数え、Nrとする（  rはrestrictedの意味）。
(3.4)NfとNrのどちらかがゼロでない場合、以下の処理を繰り返す。
(3.4.1)NfとNrの両方がゼロでない場合
(i)LL制約領域に含まれる実装点を対象として、4点吸着の刈り上げを行い、Z番号の順にヘッド7〜10に割り当てる。
吸着した実装点の数をPrとする。
ヘッド7〜10に満載できるように、複数回、吸着を行う。
吸着した実装点が存在したZ番号のうち、最小のZ番号をZrとする。
(ii)PrをNｒから引く。
(iii)LL制約領域に含まれない実装点を対象として、6点吸着の刈り上げを行い、Z番号の順にヘッド1〜6に割り当てる。
吸着した実装点の数をPfとする。
ヘッド1〜6に満載できるように、複数回、吸着を行う。
吸着した実装点が存在したZ番号のうち、最小のZ番号をZfとする。
(iv)PfをNｆから引く。
(v)Zf  ≦  Zrであれば、ヘッド7〜10、ヘッド1〜6の順にNCデータを並べる。
ヘッド7〜10、ヘッド1〜6の順に吸着する。
吸着順序は実装順序と一致し、実装順序は、NCデータの順序である。
(vi)Zf  ＞  Zrであれば、ヘッド1〜6、ヘッド7〜10の順にNCデータを並べる。
ヘッド1〜6、ヘッド7〜10の順に吸着する。
吸着順序は実装順序と一致し、実装順序は、NCデータの順序である。
(3.4.2)Nfがゼロでなく、Nｒがゼロである場合
(i)すべての実装点を対象として、10点吸着の刈り上げを行い、Z番号の順にヘッド1〜10に割り当てる。
吸着した実装点の数をPfとする。
ヘッド1〜10に満載できるように、複数回、吸着を行う。
(ii)吸着した実装点数PfをNfから引く。
(3.4.3)Nfがゼロであり、Nrがゼロでない場合
(i)すべての実装点を対象として、4点吸着の刈り上げを行い、Z番号の順にヘッド7〜10に割り当てる。
吸着した実装点の数をPrとする。
ヘッド7〜10に満載できるように、複数回、吸着を行う。
4点吸着タスクが多数できてしまう場合がある。
(ii)吸着した実装点数PrをNrから引く。
(3.4.4)NfとNｒがゼロである場合
右ブロックに対する処理を終了する。
(4)終了
【０１７３】
３．９．１４  LL制約：Z軸上の部品テープの入れ替え（１）
(1)この段階までに、「刈り上げ法」により、すべての山が確定しているものとする。
(2)Aブロックについて、位置Z  =  1〜11について、以下の処理を行う。
(2.1)位置Zに存在する部品テープを部品テープKとし、部品テープKに属する実装点のX座標の最大値Xmaxを求める。
位置Zに部品テープが存在しなければ、Xmax  =  0とする。
(2.2)Xmax  ≦  400.0[mm]である場合
（部品テープKがLL制約領域に存在する実装点を持たない場合）
(2.2.1)何もしない。
ノズル１で実装できる実装点のX座標の最大値が400.0[mm]である。
(2.3)Xmax  ＞  400.0[mm]である場合
（部品テープKがLL制約領域に存在する実装点を持つ場合）
(2.3.1)部品テープKを含む山Mを構成し、かつ、Z  =  12以降に存在する部品テープの中から、LL制約領域に実装点を持たず、かつ、部品テープKと部品数が近い部品テープを見つけ、それと部品テープKを入れ替える。
ダブルカセットを使用する部品テープの場合は、送りピッチが一致することも必要である。
(2.3.2)見つからない場合、Aブロックに存在し、かつ、山Mではない山を構成し、かつ、Z  =  12以降に存在する部品テープの中から、LL制約領域に実装点を持たず、かつ、部品数が最小の部品テープを見つけ、それと入れ替える。
異なる部品グループの部品テープとの入れ替えとなる場合がある。
ダブルカセットを使用する部品テープの場合は、送りピッチが一致することも必要である。
(2.3.3)見つからない場合、Bブロックに存在する山を構成する部品テープの中から、LL制約領域に実装点を持たず、かつ、部品数が最小の部品テープを見つけ、それと入れ替える。
異なる部品グループの部品テープとの入れ替えとなる場合がある。
１つのタスクについて、AブロックとBブロックの両方から吸着する場合がある。
ダブルカセットを使用する部品テープの場合は、送りピッチが一致することも必要である。
(2.3.4)見つからない場合、実装不可能とする。
(3)終了する。
３．９．１５  LL制約：Z軸上の部品テープの入れ替え（２）
(1)この段階までに、「刈り上げ法」により、すべての山が確定しているものとする。
(2)タスクを生成する。
(3)各タスクのヘッド番号と位置Zの対応を調べて、位置Zのそれぞれについて、そこから実装点を吸着するヘッド番号の最小値を求める。
(4)Aブロックについて、位置Z  =  1〜11について、以下の処理を行う。
(4.1)位置Zに存在する部品テープを部品テープKとし、部品テープKに属する実装点のX座標の最大値Xmaxを求める。
位置Zに部品テープが存在しなければ、Xmax  =  0とする。
(4.2)位置Zから実装点を吸着する、最小のヘッド番号で装着できるX座標の最大値をXhとする。
(4.3)Xmax  ≦  Xhである場合
（部品テープKがLL制約領域に存在する実装点を持たない場合）
(4.3.1)何もしない。
(4.4)Xmax  ＞  Xhである場合
（部品テープKがLL制約領域に存在する実装点を持つ場合）
(4.4.1)部品テープKを含む山Mを構成し、かつ、Z  =  12以降に存在する部品テープの中から、LL制約領域に実装点を持たず、かつ、部品テープKと部品数が近い部品テープを見つけ、それと部品テープKを入れ替える。
ダブルカセットを使用する部品テープの場合は、送りピッチが一致することも必要である。
(4.4.2)見つからない場合、Aブロックに存在し、かつ、山Mではない山を構成し、かつ、Z  =  12以降に存在する部品テープの中から、LL制約領域に実装点を持たず、かつ、部品数が最小の部品テープを見つけ、それと入れ替える。
異なる部品グループの部品テープとの入れ替えとなる場合がある。
ダブルカセットを使用する部品テープの場合は、送りピッチが一致することも必要である。
(4.4.3)見つからない場合、Bブロックに存在する山を構成する部品テープの中から、LL制約領域に実装点を持たず、かつ、部品数が最小の部品テープを見つけ、それと入れ替える。
異なる部品グループの部品テープとのｍ入れ替えとなる場合がある。
１つのタスクについて、AブロックとBブロックの両方から吸着する場合がある。
ダブルカセットを使用する部品テープの場合は、送りピッチが一致することも必要である。
(4.4.4)見つからない場合、実装不可能とする。
(5)終了する。
【０１７４】
３．９．１６  XLサイズ基板への対応（XL制約）
下記の方法により、XL制約を回避する。
(1)実装点座標による前サブ設備１１０／後サブ設備１２０への割り当て
(2)実装点座標による部品分割
(3)前サブ設備１１０と後サブ設備１２０の両方で実装できる領域を利用した初期振り分け
(4)LL制約の回避
具体的には、以下の通りである。
(1)実装点座標による前サブ設備１１０／後サブ設備１２０への割り当て
いま、実装点座標による前サブ設備１１０／後サブ設備１２０への割り当ては、図４６に示されるテーブルとする。
(2)実装点座標による部品分割
(2.1)部品テープが持つ実装点座標によって、次の３通りがある。
(i)部品テープを前サブ設備１１０へ割り当てる。
(ii)部品テープを後サブ設備１２０へ割り当てる。
(iii)部品テープを前サブ設備１１０と後サブ設備１２０の分割して割り当てる。
(2.2)上記(3)の場合、部品分割が必要となる。部品数を前サブ設備１１０／後サブ設備１２０へ配分するのではなく、実装点そのものを前サブ設備１１０／後サブ設備１２０へ配分する。
(3)前サブ設備１１０と後サブ設備１２０の両方で実装できる領域を利用した初期振り分け
(3.1)図４６に示された領域1)2)に対応する部品テープを前サブ設備１１０に振り分ける。
(3.1.1)領域1)2)に対応する部品テープ毎に負荷レベルを計算し、その合計を前サブ設備１１０の負荷レベルとする。
(3.2)領域6)7)に対応する部品テープを後サブ設備１２０に振り分ける。
(3.2.1)領域6)7)に対応する部品テープ毎に負荷レベルを計算し、その合計を前サブ設備１１０の負荷レベルとする。
(3.3)領域4)5)6)に対応する部品テープを、部品グループの順に、部品数の多い順に、置けるだけ、前サブ設備１１０のZに配置する。
(3.3.1)置いた部品テープの負荷レベルを計算し、前サブ設備１１０の負荷レベルに加算する。
(3.4)領域4)5)6)に対応する部品テープの中で、前サブ設備１１０に配置できなかった部品テープは、後サブ設備１２０のZに配置する。
(3.4.1)置いた部品テープの負荷レベルを計算し、後サブ設備１２０の負荷レベルに加算する。
もしも、後サブ設備１２０に置ききれなかったら、エラーとする。
(3.5)（前サブ設備１１０の負荷レベル）＜（後サブ設備１２０の負荷レベル）である場合
(3.5.1)これ以上、バランスは良くならないので、終了する。
(3.6)（前サブ設備１１０の負荷レベル）＞（後サブ設備１２０の負荷レベル）である場合、以下の処理を繰り返す。
(3.6.1)前サブ設備１１０にある領域4)5)6)に対応する部品テープの中で、最大の部品グループ番号であり、かつ、部品数が最小の部品テープを後サブ設備１２０へ送る。
【０１７５】
もしも、後サブ設備１２０に送れなくなったら（＝後サブ設備１２０のZの空きがなくなったら）、これ以上、バランスは良くならないので、終了とする。
(3.6.2)前サブ設備１１０の負荷レベルと後サブ設備１２０の負荷レベルを再計算する。
(4)LL制約の回避
(4.1)前サブ設備１１０における領域2)5)は、LL制約領域なので、LL制約に対応した処理を行う。
(4.2)後サブ設備１２０における領域3)6)は、LL制約領域なので、LL制約に対応した処理を行う。
【０１７６】
３．９．１７  負荷レベルバランス調整処理（「山」単位）
特徴は以下の通りである。
(i)前サブ設備１１０の負荷レベルが後サブ設備１２０の負荷レベルよりも高い状態を初期状態として、前サブ設備１１０から後サブ設備１２０へ「山」種単位で移動することにより、負荷レベルバランスを調整する。
(ii)バランス点上に存在する「山」について、部品テープ単位で負荷レベルバランス調整を行う。詳細は、後述の「負荷レベルバランス調整処理（部品テープ単位)(A)」で説明している通りである。
具体的な手順は以下の通りである。
(1)すべての山にフラグを設ける。
フラグの初期値はTRUEとする。
(2)前サブ設備１１０に配置された、すべての山のフラグがFALSEである場合、以下の処理を行う。
(2.1)（15）へ進む。
前サブ設備１１０に配置されていたすべての山が後サブ設備１２０に移動された場合になる（これはありえないはず）。
(3)現在の前サブ設備１１０と後サブ設備１２０の山の配置状態を記憶する。
(4)移動対象となる山Mを選ぶ処理を以下のように行う。
(4.1)前サブ設備１１０に配置された山を構成する部品テープについて、その部品グループ番号の最大値を求め、PGmaxとする。
(4.2)部品グループ番号がPGmaxである部品テープを収めたシングルカセットまたはダブルカセットから構成された山について、すべての山のフラグがFALSEである場合、以下の処理を行う。
(4.2.1)前サブ設備１１０から後サブ設備１２０への山を移動する処理を終了する。
移動対象となる山が残っていないので、前サブ設備１１０から後サブ設備１２０への山を移動する処理を終了する。
ラインバランスが取れているとは限らない。
(4.3)「部品番号がPGmaxである部品テープを収めたシングルカセットから構成される山」と、「部品番号がPGmaxである部品テープを収めたダブルカセットから構成される山」の両方が存在する場合
(4.3.1)シングルカセットから構成される山を山Mとする。
(4.4)「部品番号がPGmaxである部品テープを収めたシングルカセットから構成される山」と「部品番号がPGmaxである部品テープを収めたダブルカセットから構成される山」のどちらか一方だけが存在する場合
(4.4.1)その山を山Mとする。
(5)前サブ設備１１０に配置されている山の中から山Mを取り除き、残りの山を再配置する。(6)後サブ設備１２０に配置されている山に山Mを加えて、それらの山を再配置する。
(7)前サブ設備１１０あるいは後サブ設備１２０において、ノズル関係の制約を満足できない場合、以下の処理を行う。
(7.1)前サブ設備１１０と後サブ設備１２０の山の配置状態を記憶しておいた状態へ戻す。
(7.2)山MのフラグをFALSEに設定する。
この山Mは、これ以降、移動の対象にならない。
(7.3)（14）へ進む。
(8)前サブ設備１１０あるいは後サブ設備１２０において、山をZ軸に置ききれない場合、以下の処理を行う。
(8.1)前サブ設備１１０と後サブ設備１２０の山の配置状態を記憶しておいた状態へ戻す。
(8.2)（15）へ進む。
移動できる山は、山Mしかないので、山Mを部品テープ単位に分割し、前サブ設備１１０と後サブ設備１２０へ振り分けることで、ラインバランスを改善することを試みる。
この山Mはラインバランス点上にあるとは限らないので、ラインバランスを改善できても、ラインバランスを完全にすることはできない可能性がある。
(9)前サブ設備１１０の負荷レベルを計算する。
(9.1)小部品について負荷レベルを計算する。
(9.2)汎用部品について負荷レベルを計算する。
(9.3)小部品の負荷レベルと汎用部品の負荷レベルを加算し、前サブ設備１１０の負荷レベルとる。
(10)後サブ設備１２０の負荷レベルを計算する。
(10.1)小部品について負荷レベルを計算する。
(10.2)汎用部品について負荷レベルを計算する。
(10.3)小部品の負荷レベルと汎用部品の負荷レベルを加算し、後サブ設備１２０の負荷レベルとする。
(11)前サブ設備１１０の実装時間と後サブ設備１２０の負荷レベルが一致した場合、以下の処理を行う。
(11.1)（15）へ進む。
前サブ設備１１０と後サブ設備１２０の負荷レベルのバランスが完全に取れたことになる
(12)前サブ設備１１０の負荷レベルが後サブ設備１２０の負荷レベルよりも小さい場合、以下の処理を行う。
(12.1)前サブ設備１１０と後サブ設備１２０の山の配置状態を記憶しておいた状態へ戻す。
(12.2)山Mに対して「負荷レベルバランス調整処理（部品テープ単位）」を行う。
バランス点上に存在する「山」について、部品テープ単位で負荷レベルバランス調整を行う。詳細は、後述の「負荷レベルバランス調整処理（部品テープ単位)(A)」で説明している通りである。
(12.3)（15）へ進む。
山Mがラインバランス点上にあることになる。
山Mが前サブ設備１１０に配置された状態に戻す。
これ以降、山Mを部品テープ単位に分割し、前サブ設備１１０と後サブ設備１２０へ振り分けることで、ラインバランスを改善することを試みる。
(13)前サブ設備１１０の負荷レベルが後サブ設備１２０の負荷レベルよりも長い場合、以下の処理を行う。
(13.1)山MのフラグをFALSEに設定する。
山Mは移動済みとする。
(13.2)（14）へ進む。
更に山単位での移動を行う。
(14)上記（2）へ戻る。
(15)「負荷レベルバランス調整処理（「山」単位）」を終了する。
【０１７７】
３．９．１８  負荷レベルバランス調整処理（部品テープ単位）
特徴は以下の通りである。
(i)前サブ設備１１０の負荷レベルが後サブ設備１２０の負荷レベルよりも高い状態を初期状態として、前サブ設備１１０から後サブ設備１２０へ部品テープ単位で移動することにより、負荷レベルバランスを調整する。
(ii)負荷レベルの精度が良くないので、実装点単位の負荷レベルバランス調整は行わない。
具体的な手順は以下の通りである。
(1)山Mを構成する部品テープにフラグを設ける。
フラグの初期値はTRUEとする。
(2)山Mの部品（種）リストを作成する。
(3)部品リストにある、すべての部品テープのフラグがFALSEである場合、以下の処理を行う。
(3.1)（13）へ進む。
「負荷レベルバランス調整処理（部品テープ単位）」を終了する。
(4)前サブ設備１１０と後サブ設備１２０の山の配置状態を記憶する。
(5)部品リストにある、フラグがTRUEである部品テープの中から、部品数が最小の部品テープKを選ぶ。
(6)部品テープKを後サブ設備１２０に割り当てる。
(7)部品リストに残っている、フラグがTRUEであり、かつ、前サブ設備１１０にも後サブ設備１２０にも割り当てられていない部品テープを前サブ設備１１０に割り当てる。
山M以外の山は、前サブ設備１１０あるいは後サブ設備１２０に割り当てられている。
(8)前サブ設備１１０について、負荷レベルを計算する。
(8.1)小部品の負荷レベルを計算する。
(8.2)汎用部品の負荷レベルを計算する。
(8.3)小部品の負荷レベルと汎用部品の負荷レベルを加算し、前サブ設備１１０の負荷レベルとする。
(9)後サブ設備１２０について、負荷レベルを計算する。
(9.1)小部品の負荷レベルを計算する。
(9.2)汎用部品の負荷レベルを計算する。
(9.3)小部品の負荷レベルと汎用部品の負荷レベルを加算し、後サブ設備１２０の負荷レベルとする。
(10)前サブ設備１１０の負荷レベルと後サブ設備１２０の負荷レベルが同じ場合、以下の処理を行う。
(10.1)（13）へ進む。
前サブ設備１１０と後サブ設備１２０の負荷レベルのバランスが完全に取れたことになる。
(11)前サブ設備１１０の負荷レベルが後サブ設備１２０の負荷レベルよりも低い場合、以下の処理を行う。
(11.1)部品テープKのフラグをFALSEに設定する。
部品テープKは移動済みとする。
(11.2)（13）へ進む。
部品テープKを前サブ設備１１０から後サブ設備１２０へ移動したことにより、前サブ設備１１０よりも後サブ設備１２０の負荷レベルが高くなったので、部品テープ単位の移動による、負荷レベルバランス調整を終了する。
(12)前サブ設備１１０の負荷レベルが後サブ設備１２０の負荷レベルよりも高い場合、以下の処理を行う。
(12.1)部品テープKのフラグをFALSEに設定する。
部品テープKは移動済みとする。
(12.2)（3）に戻る。
更に部品テープ単位での移動を行う。
(13)「負荷レベルバランス調整処理（部品テープ単位）」を終了する。
【０１７８】
３．９．１９  前サブ設備から後サブ設備へ山を移動する処理
(1)すべての山にフラグを設ける。
フラグの初期値はTRUEとする。
(2)前サブ設備１１０に配置された、すべての山のフラグがFALSEである場合、以下の処理を行う。
(2.1)（16）へ進む。
前サブ設備１１０に配置されていたすべての山が後サブ設備１２０に移動された場合になる（これはありえないはず）。
(3)現在の前サブ設備１１０と後サブ設備１２０の山の配置状態を記憶する。
(4)移動対象となる山Mを選ぶ処理を以下のように行う。
(4.1)前サブ設備１１０に配置された山を構成する部品テープについて、その部品グループ番号の最大値を求め、PGmaxとする。
(4.2)部品グループ番号がPGmaxである部品テープを収めたシングルカセットまたはダブルカセットから構成された山について、すべての山のフラグがFALSEである場合、以下の処理を行う。
(4.2.1)前サブ設備１１０から後サブ設備１２０への山を移動する処理を終了する。
移動対象となる山が残っていないので、前サブ設備１１０から後サブ設備１２０への山を移動する処理を終了する。
ラインバランスが取れているとは限らない。
(4.3)「部品番号がPGmaxである部品テープを収めたシングルカセットから構成される山」と、「部品番号がPGmaxである部品テープを収めたダブルカセットから構成される山」の両方が存在する場合
(4.3.1)シングルカセットから構成される山を山Mとする。
(4.4)「部品番号がPGmaxである部品テープを収めたシングルカセットから構成される山」と「部品番号がPGmaxである部品テープを収めたダブルカセットから構成される山」のどちらか一方だけが存在する場合
(4.4.1)その山を山Mとする。
(5)前サブ設備１１０に配置されている山の中から山Mを取り除き、残りの山を再配置する。(6)後サブ設備１２０に配置されている山に山Mを加えて、それらの山を再配置する。
(7)前サブ設備１１０あるいは後サブ設備１２０において、ノズル関係の制約を満足できない場合、以下の処理を行う。
(7.1)前サブ設備１１０と後サブ設備１２０の山の配置状態を記憶しておいた状態へ戻す。
(7.2)山MのフラグをFALSEに設定する。
この山Mは、これ以降、移動の対象にならない。
(7.3)（15）へ進む。
(8)前サブ設備１１０あるいは後サブ設備１２０において、山をZ軸に置ききれない場合、以下の処理を行う。
(8.1)前サブ設備１１０と後サブ設備１２０の山の配置状態を記憶しておいた状態へ戻す。
(8.2)（16）へ進む。
移動できる山は、山Mしかないので、山Mを部品テープ単位に分割し、前サブ設備１１０と後サブ設備１２０へ振り分けることで、ラインバランスを改善することを試みる。
この山Mはラインバランス点上にあるとは限らないので、ラインバランスを改善できても、ラインバランスを完全にすることはできない可能性がある。
【０１７９】
(9)前サブ設備１１０について、タスクを生成する。
(9.1)小部品についてタスクを生成する。
(9.2)汎用部品についてタスクを生成する。
(10)後サブ設備１２０について、タスクを生成する。
(10.1)小部品についてタスクを生成する。
(10.2)汎用部品についてタスクを生成する。
(11)前サブ設備１１０と後サブ設備１２０について、実装時間を計算する。
前サブ設備１１０と後サブ設備１２０の両方で山が配置できている場合である。
(12)前サブ設備１１０の実装時間と後サブ設備１２０の実装時間が一致した場合、以下の処理を行う。
(12.1)（16）へ進む。
前サブ設備１１０と後サブ設備１２０のバランスが完全に取れたことになる
(13)前サブ設備１１０の実装時間が後サブ設備１２０の実装時間よりも短い場合、以下の処理を行う。
(13.1)前サブ設備１１０と後サブ設備１２０の山の配置状態を記憶しておいた状態へ戻す。
(13.2)山Mに対して「前サブ設備１１０から後サブ設備１２０へ部品テープを移動する処理」を行う。
(13.3)（16）へ進む。
山Mがラインバランス点上にあることになる。
山Mは、前サブ設備１１０に配置された状態に戻す。
これ以降、山Mを部品テープ単位に分割し、前サブ設備１１０と後サブ設備１２０へ振り分けることで、ラインバランスを改善することを試みる。
(14)前サブ設備１１０の実装時間が後サブ設備１２０の実装時間よりも長い場合、以下の処理を行う。
(14.1)山MのフラグをFALSEに設定する。
(14.2)（15）へ進む。
前サブ設備１１０から後サブ設備１２０へ更に山を移動する必要がある場合である。
(15)上記（2）へ戻る。
(16)「前サブ設備１１０から後サブ設備１２０への山を移動する処理」を終了する。
【０１８０】
３．９．２０  前サブ設備から後サブ設備へ部品テープを移動する処理
特徴は以下の通りである。
(i)前サブ設備１１０の実装時間が後サブ設備１２０の実装時間よりも長い状態を初期状態として、前サブ設備１１０から後サブ設備１２０へ部品テープ単位で移動することにより、実装時間のバランスを調整する。
(ii)移動する部品テープの個数は少ないとはいえない。後サブ設備１２０に移動する部品テープが多い。
部品テープを前サブ設備１１０と後サブ設備１２０に配置することがある。部品分割を行う。
(iii)バランスは良い。
具体的な手順は以下の通りである。
(1)山Mを構成する部品テープにフラグを設ける。
フラグの初期値はTRUEとする。
(2)山Mの部品（種）リストを作成する。
(3)部品リストにある、すべての部品テープのフラグがFALSEである場合、以下の処理を行う。
(3.1)（14）へ進む。
「前サブ設備１１０から後サブ設備１２０へ部品テープを移動する処理」を終了する。
(4)前サブ設備１１０と後サブ設備１２０の山の配置状態を記憶する。
(5)部品リストにある、フラグがTRUEである部品テープの中から、部品数が最小の部品テープKを選ぶ。
(6)部品テープKを後サブ設備１２０に割り当てる。
(7)部品リストに残っている、フラグがTRUEであり、かつ、前サブ設備１１０にも後サブ設備１２０にも割り当てられていない部品テープを前サブ設備１１０に割り当てる。
山M以外の山は、前サブ設備１１０あるいは後サブ設備１２０に割り当てられている。
(8)前サブ設備１１０について、タスクを生成する。
(8.1)小部品のタスクを生成する。
コア処理により部品分割が行われる。
(8.2)汎用部品のタスクを生成する。
ユーザの指定通りに部品分割を行う。
(9)後サブ設備１２０について、タスクを生成する。
(9.1)小部品のタスクを生成する。
コア処理により部品分割が行われる。
(9.2)汎用部品のタスクを生成する。
ユーザの指定通りに部品分割を行う。
(10)前サブ設備１１０の実装時間と後サブ設備１２０の実装時間を計算する。
(11)前サブ設備１１０の実装時間と後サブ設備１２０の実装時間が同じ場合、以下の処理を行う。
(11.1)（14）へ進む。
前サブ設備１１０と後サブ設備１２０のバランスが完全に取れたことになる。
(12)前サブ設備１１０の実装時間が後サブ設備１２０の実装時間よりも短い場合、以下の処理を行う。
(12.1)部品テープKのフラグをFALSEに設定する。
部品テープKは、移動済みとする。
(12.2)部品テープKに対して「前サブ設備１１０から後サブ設備１２０へ実装点を移動する処理」を行う。
部品テープKを前サブ設備１１０から後サブ設備１２０へ移動したことにより、前サブ設備１１０よりも後サブ設備１２０の実装時間が長くなったので、部品テープKを分割し、前サブ設備１１０と後サブ設備１２０に振り分けて、ラインバランスを改善する。
(12.3)（14）へ進む。
(13)前サブ設備１１０の実装時間が後サブ設備１２０の実装時間よりも長い場合、以下の処理を行う。
(13.1)部品テープKのフラグをFALSEに設定する。
部品テープKは、移動済みとする。
(13.2)（3）に戻る。
更に部品テープ単位での移動を行う。
(14)「前サブ設備１１０から後サブ設備１２０へ部品テープを移動する処理」を終了する。
【０１８１】
３．９．２１  前サブ設備から後サブ設備へ実装点を移動する処理
部品テープKを実装点単位で分割し、前サブ設備１１０と後サブ設備１２０に振り分ける処理を以下のように行う。
(1)実装点をy座標の小さい順に並べる。
(1.1)y座標が同じ場合はx座標の小さい順に並べる。
これを実装点リストを呼ぶ。
部品テープKを実装点単位で分割し、前サブ設備１１０と後サブ設備１２０に振り分けた場合、前サブ設備１１０または後サブ設備１２０に、部品テープKが１つだけ配置される可能性がある。そのような場合、実装点の近い実装点が集まっていたほうが有利と考えられるので、ここでは実装点をその座標で並べ替えた。
もしも「貪欲法」において、前サブ設備１１０と後サブ設備１２０に在る同じ部品テープについて、共通に適用されるのであれば、この並べ替えは不要である。前サブ設備１１０と後サブ設備１２０とで独立に「貪欲法」を適用するのであれば、この並べ替えが有効である。
(2)前サブ設備１１０に割り当てる実装点の個数を示す値nに１を設定する。
(3)nが部品テープKの実装点数よりも大きい場合、以下の処理を行う。
(3.1)（12）へ進む。
「前サブ設備１１０から後サブ設備１２０へ実装点を移動する処理」を終了する。
(4)実装点リストの先頭からn番目までの実装点を前サブ設備１１０へ割り当てる。
(5)実装点リストの(n+1)番目から最後までの実装点を後サブ設備１２０へ割り当てる。
(6)前サブ設備１１０について、タスクを生成する。
(6.1)小部品のタスクを生成する。
コア処理により部品分割が行われる。
(6.2)汎用部品のタスクを生成する。
ユーザの指定通りに部品分割を行う。
(7)後サブ設備１２０について、タスクを生成する。
(7.1)小部品のタスクを生成する。
コア処理により部品分割が行われる。
(7.2)汎用部品のタスクを生成する。
ユーザの指定通りに部品分割を行う。
(8)前サブ設備１１０の実装時間と後サブ設備１２０の実装時間を計算する。
(9)前サブ設備１１０の実装時間と後サブ設備１２０の実装時間が同じ場合、以下の処理を行う。
(9.1)（12）へ進む。
「前サブ設備１１０から後サブ設備１２０へ実装点を移動する処理」を終了する。
前サブ設備１１０と後サブ設備１２０のバランスが完全に取れたことになる。
(10)前サブ設備１１０の実装時間が後サブ設備１２０の実装時間よりも短い場合、以下の処理を行う。
(10.1)（12）へ進む。
「前サブ設備１１０から後サブ設備１２０へ実装点を移動する処理」を終了する。
前サブ設備１１０と後サブ設備１２０のバランスは、かなり良くなっているが、完全ではない。
(11)前サブ設備１１０の実装時間が後サブ設備１２０の実装時間よりも長い場合、以下の処理を行う。
(11.1)nに１を加算する。
(11.2)（3）に戻る。
前サブ設備１１０から後サブ設備１２０へ更に実装点を移動する。
(12)「前サブ設備１１０から後サブ設備１２０へ実装点を移動する処理」を終了する。
【０１８２】
３．９．２２  ラインバランス処理でのスワップ処理
次に、移動先のZ軸に空きがない場合におけるラインバランス処理（スワップ処理）について、Z軸に空きがある場合と比較しながら説明する。
図９５（ａ），（ｂ）は、Z軸に空きがある場合における前サブ設備１１０と後サブ設備１２０の実装時間の例、及び、そのときのラインバランス処理を示す説明図であり、図９５（ｃ），（ｄ）は、Z軸に空きがない場合における前サブ設備１１０と後サブ設備１２０の実装時間の例、及び、そのときのラインバランス処理（スワップ処理）を示す説明図である。
Z軸に空きがある場合は、図９５（ａ），（ｂ）に示されるように、上述（３．９．１９〜３．９．２１）の移動処理の通りであり、この例では、両実装時間の差を解消するために、７．５秒分の部品５４５を前サブ設備１１０から後サブ設備１２０に移動することによってバランスをとる。
一方、Z軸に空きがない場合は、図９５（ｃ），（ｄ）に示されるように、前サブ設備１１０に振り分けられている部品数の多い部品５４７と、後サブ設備１２０に振り分けられている部品数の少ない部品５４６とを、部品カセット（部品テープ）の単位で、スワップする。これによって、それら部品数の差に相当する実装時間が前サブ設備１１０から後サブ設備１２０に移動することとなり、実装時間が平準化される。
【０１８３】
３．９．２３  ダブルカセットの「刈り上げ法」
ダブルカセットを対象とした「刈り上げ法」は以下の通りである。
(1)送りピッチが２ｍｍのダブルカセットを使う部品テープについて、仮Ｚ軸上に「山」を作る（図９６）。つまり、部品数の多い順に並べた部品ヒストグラム５５０を中間点（折り返し位置）で切断して折り返し、それら前半部及び後半部の各部品が交互に入れ違いとなるように合成する（折り返すことでペアを作成する）ことで、部品ヒストグラム５５１を得る。
(2)同様にして、送りピッチが４ｍｍのダブルカセットを使う部品テープについて、仮Ｚ軸上に「山」を作る（図９７））。つまり、部品数の多い順に並べた部品ヒストグラム５５２を中間点（折り返し位置）で切断して折り返し、それら前半部及び後半部の各部品が交互に入れ違いとなるように合成する（折り返すことでペアを作成する）ことで、部品ヒストグラム５５３を得る。
(3)送りピッチが２ｍｍと４ｍｍのダブルカセットの部品ヒストグラム５５１、５５３を融合し、部品ヒストグラム５５４を得る（図９８）。つまり、ダブルカットのペアを維持したまま、奇数Ｚ番号側の部品テープの部品数が多い順に並べ替える。
(4)奇数Ｚ番号のヒストグラム５５４ａ（図９９（ａ））と、偶数Ｚ番号のヒストグラム５５４ｂ（図９９（ｂ））に分離する。
(5)各ヒストグラム５５４ａ、５５４ｂにおいて、部品数の小さい部品テープから刈り上げていくことで、１０点同時吸着の吸着パターンを作っていく（図１００（ａ）、（ｂ））。その結果、それぞれのヒストグラムにおいて、コア部分５５５ａ、５５５ｂが残る。
(6)奇数側のコア部分５５５ａ及び偶数側のコア部分５５５ｂそれぞれについて、補完パターン５５６ａ、５５６ｂを作る（図１０１（ａ）、（ｂ））。つまり、コア部分の実装点数は、奇数側が９２点、偶数側が１２点であり、合計で１０４点となっているので、１０点タスクを１０個作る（４点タスクが１つ残す）。
ここでは、偶数側のコア５５５ｂの部品数は最大で３なので、偶数側に１０点タスクを３個作り、残りのタスクは奇数側に作る。
(7)奇数側及び偶数側の補完部品テープ５５７ａ、５５７ｂを並べる（図１０２（ａ）、（ｂ））。本図において、補完部品テープは、奇数側では、「＊」で示され、偶数側では、「＃」で示されている。
なお、本図のように、奇数側と偶数側の補完部品テープの本数が一致しない場合がある。
(8)奇数側の補完部品テープ５５７ａに偶数側の補完部品テープ５５７ｂを重ねることで、１つの補完部品テープ５５５８にする（図１０３（ａ）、（ｂ））。
(9)合成された補完部品テープ５５８に実装点を割り当てる（図１０４（ａ）、（ｂ））。
このとき、奇数側と偶数側で合成した補完部品テープは、１つの部品テープだけで構成されている。したがって、合成を解除（分割）して、奇数側と偶数側の補完テープを作ると、それらは送りピッチが必ず一致するので、ペアとしてダブルカセットに収めることができる。
(10)合成された補完部品テープを奇数側５５８ａと偶数側５５８ｂに分割する（図１０５（ａ）、（ｂ））。
(11)奇数側及び偶数側のヒストグラムに対して、それぞれ、吸着パターン５５９ａ、５５９ｂを作る（図１０６（ａ）、（ｂ））。
このようなカセット配列とすることで、２つの部品テープがダブルカセットに収納される際には同一の送りピッチの部品テープだけが収納されなければならないという制約が満たされ、かつ、少ない吸着パターン（同時吸着できる頻度が高い）で実装される。
【０１８４】
３．９．２４  ノズル交換のアルゴリズム
図１１に示されるように、部品の種類によって、吸着可能なノズルのタイプが限定される。従って、マルチ装着ヘッド１１２は、部品を吸着するに際し、予め、吸着しようとする部品テープに対応したタイプのノズルを装着しておく（ノズルステーションにおいてノズル交換しておく）必要がある。
よって、最適化においては、ノズル交換の頻度を抑制するように、部品テープの配列を決定しておく処理が必要となる。そのためのアルゴリズム（「ノズル交換のアルゴリズム」）は以下の通りである。
図１０７は、ノズル交換のアルゴリズムを説明するための図であり、図１０７（ａ）は、対象の部品の種類（使用可能なノズルの番号）と部品数を示す表であり、図１０７（ｂ）は、処理過程を示す部品ヒストグラムである。ここで、図１０７（ｂ）の部品に付された数値はノズル番号を示し、矢印は部品分割による吸着パターンの作成処理を示し、円で囲まれた数値は吸着パターンを指す。ここでは、「刈り上げ法」の応用で対応している。具体的には、
1)まず、大型部品であるために「隣接の条件」で１０個単位にできないものは対象から除外する。ここで、「隣接の条件」とは、部品がヘッドによって吸着・移動・装着される際に確保すべき空間的なクリアランスであり、実装時における部品どうしの接触等を避けるために確保すべき空間的なマージンである。
2)ノズル単位で部品数順に並べる。
ここでは、部品の種類（使用可能なノズルの番号）と部品数は図１０７（ａ）に示される通りであるので、図１０７（ｂ）における左の５列分の部品並びとなる。
3)トータル部品数からタスク数の枠を作成する。
この例では、合計部品数が６７個であるので、７０個の枠を作成する。
4)１０ノズルを満たすように、部品数の多い部品から山を崩す。
具体的なルールは以下の通りである。
・部品数の多いものから（ここでは、部品番号５から）枠に入るように上部からつめる。
・この時、最大分割制約と同様に、手持ちノズル本数とする。つまり、この制約の中で分割を実施する。
5)最終的に、枠を決めた中に収めるようにする。
これにより、タスク数は最小のタスクの中に収まることとなる。
6)上記の手順は、あくまでノズル構成を考慮した最適化であるので、次に、ノズルの配置及びタスクの順番について、大型部品を含めて構成を見直す。
具体的には、大型部品については、上記で決定されたタスク構成の中で、間に入れるなどの処理をする。
7)この例では、タスクの順番を見直すことにより、ノズルチェンジは１回のみ（6)→7)の間でのみ）ノズル交換が発生する。
【０１８５】
３．１０  画面表示例
次に、本最適化装置３００が有するユーザインターフェースの機能を説明する。つまり、最適化プログラム格納部３０５に格納された最適化プログラムに基づいて、最適化装置３００がユーザと対話するために、演算制御部３０１が表示部３０２に表示する画面表示例や入力部３０３を介してユーザから取得するパラメータを中心に説明する。
【０１８６】
３．１０．１  メイン画面
この画面では、図１０８に示されるように、最適化装置３００は、最適化の状態及び品種プログラムの情報を表示する。各表示項目（以下、［］で囲まれた項目）及びその表示項目を選択したときに表示されるポップアップメニューから選択することができる項目（以下、＊が添付された項目）の意味（最適化装置３００の処理）は、以下の通りである。
1)  メニュー
［ファイル］
＊開く
ユーザから品種プログラム（最適化の対象となる実装点データ３０７ａなど）や各種ライブラリ（部品ライブラリ３０７ｂなど）の選択を取得し、選択された品種プログラムを読込む。読込み結果（品種プログラム名、実装点数、部品種類、設備情報、最適化情報）をメイン画面に表示する。
＊上書き保存
上書き確認メッセージで「はい」が押下された場合、最適化された品種プログラムを上書き保存する。
＊名前を付けて保存
名前を付けて保存画面を表示し、最適化された品種プログラムを入力された保存ファイル名で保存する。
＊閉じる
選択中の品種プログラムを閉じる。
＊最適化の終了
アプリケーションを終了する。
［最適化］
＊最適化
読込んだ品種プログラム情報を最適化し、その最適化結果のシミュレーションを実行して、結果をメイン画面に表示する。最適化を行う前に、各種リソース及び最適化条件の設定を可能とするためである。
＊停止
最適化を停止する。
＊最適化詳細情報
最適化詳細情報画面を表示する。
［設定］
最適化リソースの設定と最適化条件の設定を行う。
・リソース
＊カセット個数設定
カセット個数設定画面を表示する。これに対し、ユーザは、本設備で使用可能なカセット個数を入力することができる。
＊部品分割数設定
部品分割数設定画面を表示する。これに対し、ユーザは、同時吸着するための部品分割数を指定することができる。
＊ノズル本数設定
ノズル本数設定画面を表示する。これに対し、ユーザは、本設備で使用可能なノズル本数を入力することができる。
＊ノズルステーション選択
ノズルステーション選択画面を表示する。これに対し、ユーザは、本設備で使用可能なノズルステーションのプレートＩＤを入力することができる。
・最適化条件
＊オプション設定
オプション設定画面を表示する。これに対し、ユーザは、本設備のオプション仕様及び最適化条件を設定することができる。
＊Ｚ軸情報
Ｚ軸情報画面を表示する。各Ｚ軸に配置された部品の特性を表示する。
＊ノズルステーション情報
ノズルステーション情報画面を表示する。本設備のノズルステーション情報を表示する。
［印刷］
最適化情報、リソース情報等を最適化装置３００が備えるプリンター等に印刷する。
＊最適化詳細情報
最適化詳細情報の印刷を実行する。
＊Ｚ軸情報
Ｚ軸情報の印刷を実行する。
＊ノズルステーション情報
ノズルステーション情報の印刷を実行する。
＊カセット個数情報
カセット個数情報の印刷を実行する。
＊部品分割数情報
部品分割数情報の印刷を実行する。
＊ノズル本数情報
ノズル本数情報の印刷を実行する。
＊ノズルステーション選択情報
ノズルステーション選択情報の印刷を実行する。
［ヘルプ］
画面のバージョン、ヘルプの管理を行う。
＊ヘルプ
ヘルプを起動する。
＊バージョン情報
バージョン情報を表示する。
2)  最適化情報
最適化前／後の情報をサブ設備（図中の「１ｓｔ  ステージ」、「２ｎｄ  ステージ」）毎に表示する。
＊実装時間（秒）
最適化前／後のシミュレーションした結果を表示する。
＊最適化率（％）
最適化前／後の実装時間を比率（％）で表示する。
＜計算式＞  （最適化後実装時間／最適化前実装時間）＊１００
＊ＣＰＨ（点）
１時間あたりの実装点数を表示する。
【０１８７】
＜計算式＞  （実装点数／実装時間）＊３６００（秒）
＊タスク数
タスク数を表示する。
3)  設備情報
設備の情報をサブ設備（図中の「１ｓｔ  ステージ」、「２ｎｄ  ステージ」）毎に表示する。
＊ヘッドタイプ
前／後サブ設備のヘッドタイプを表示する。（１０ヘッド）
＊カメラ
前／後サブ設備のカメラ状態を表示する。（２Ｄセンサ、２Ｄ＋３Ｄセンサ）
＊トレイ
前／後サブ設備のトレイ状態を表示する。（手置きトレイ、エレベータトレイ）
＊実装点数
品種プログラム内の前／後サブ設備の実装点数を表示する。
＊部品種類
品種プログラム内の前／後サブ設備の部品種類数を表示する。
4)  品種プログラム情報
現在選択中品種プログラムの情報を表示する。
＊品種プログラム名
現在選択中の品種プログラム名を表示する。
＊実装点数
品種プログラム内の実装点数を表示する。
＊部品種類
品種プログラム内の部品種類数を表示する。
5)  最適化ボタン
読込んだ品種プログラム情報を最適化し、その最適化結果のシミュレーションを実行して、結果をメイン画面に表示する。ただし、最適化を行う前に、各種リソース及び最適化条件の設定をする必要がある。
6)  最適化詳細情報ボタン
最適化詳細情報画面を表示する。
7)  終了ボタン
アプリケーションを終了する。
【０１８８】
３．１０．２  開く画面
この画面では、図１０９に示されるように、最適化装置３００は、品種プログラムと各種ライブラリを指定して品種プログラムを開くことができる。
1)  品種プログラム一覧
品種プログラム（ファイル名、作成日時、更新日時、容量）の一覧を表示する。
2)  品種プログラム検索
品種プログラム（先頭のＰを除く）の入力後、検索ボタンを押下することにより品種プログラムの検索を行うことができる。なお、入力された文字に対して前方一致検索を行うので、プログラム名を全て入力する必要はない。
3)  ライブラリ選択
登録されている各種ライブラリを表示する。
＊部品ライブラリ
登録されている部品ライブラリ名を表示する。なお、頭文字は"Ｌ"から始まる。この部品ライブラリは、図９に示された部品ライブラリ３０７ｂに相当する。
＊供給ライブラリ
登録されている供給ライブラリ名を表示する。なお、頭文字は"Ｙ"から始まる。この供給ライブラリは、図９に示された実装装置情報３０７ｃを構成する情報の１つであり、部品供給部１１５ａ及びｂ、部品カセット、トレイ供給部１１７及びトレイ等の仕様に関する情報を保持している。
＊マークライブラリ
登録されているマークライブラリ名を表示する。なお、頭文字は"Ｂ"から始まる。このマークライブラリは、図９に示された実装装置情報３０７ｃを構成する情報の１つであり、基板に対するマルチ装着ヘッド１１２の位置決め等のために使用される基板上に印刷された認識マークの形状等に関する情報を保持している。
＊ノズルライブラリ
登録されているノズルライブラリ名を表示する。なお、頭文字は"Ｖ"から始まる。このノズルライブラリは、図９に示された実装装置情報３０７ｃを構成する情報の１つであり、各種吸着ノズルの形状等に関する情報を保持している。
4)  開くボタン
指定した品種プログラムを、選択したライブラリで開く。なお、品種プログラム一覧上でダブルクリックされた場合には、開くボタンと同様の処理を実行する。
5)  キャンセルボタン
メイン画面に戻る。
【０１８９】
３．１０．３  最適化詳細情報画面
この画面では、図１１０に示されるように、最適化装置３００は、サブ設備（図中の「１ｓｔ  ステージ」、「２ｎｄ  ステージ」）毎に、最適化詳細情報を表示する。
1)  品種プログラム情報
現在選択中品種プログラムの情報を表示する。
＊品種プログラム名
現在選択中の品種プログラム名を表示する。
＊実装点数
品種プログラム内の実装点数を表示する。
＊部品種類
品種プログラム内の部品種類数を表示する。
2)  最適化詳細情報
最適化前／後の情報をサブ設備（図中の「１ｓｔ  ステージ」、「２ｎｄ  ステージ」）毎に表示する。
＊実装時間（秒）
最適化前／後のシミュレーションした結果を表示する。
＊最適化率（％）
最適化前／後の実装時間を比率（％）で表示する。
＜計算式＞  （最適化後実装時間／最適化前実装時間）＊１００
＊ＣＰＨ（点）
１時間あたりの実装点数を表示する。
＜計算式＞  （実装点数／実装時間）＊３６００（秒）
＊タスク数
タスク数を表示する。
＊ノズル交換回数
ノズル交換を行う回数を表示する。
【０１９０】
＊ノズル交換時間
ノズル交換にかかるトータルの時間を表示する。
＊吸着回数
吸着を行う回数を表示する。
＊吸着時間
吸着にかかるトータルの時間を表示する。
＊スキャン回数
スキャンを行う回数を表示する。
＊スキャン時間
スキャンにかかるトータルの時間を表示する。
3)  吸着数情報
最適化前／後の１〜１０点吸着している回数を、サブ設備（図中の「１ｓｔ  ステージ」、「２ｎｄ  ステージ」）毎に表示する。
【０１９１】
4)  設備情報
設備の情報をサブ設備（図中の「１ｓｔ  ステージ」、「２ｎｄ  ステージ」）毎に表示する。
＊ヘッドタイプ
前／後サブ設備のヘッドタイプを表示する。（１０ヘッド）
＊カメラ
前／後サブ設備のカメラ状態を表示する。（２Ｄセンサ、２Ｄ＋３Ｄセンサ）
＊トレイ
前／後サブ設備のトレイ状態を表示する。（手置きトレイ、エレベータトレイ）
＊実装点数
品種プログラム内の前／後サブ設備の実装点数を表示する。
＊部品種類
品種プログラム内の前／後サブ設備の部品種類数を表示する。
5)  印刷ボタン
最適化詳細情報の印刷を実行する。
6)  キャンセルボタン
最適化詳細情報画面を終了し、メイン画面に戻る。
【０１９２】
３．１０．４  カセット個数設定画面
この画面では、図１１１に示されるように、最適化装置３００は、ユーザの指示に従って、カセット個数情報の表示／最大個数の設定を行う。
1)  カセット個数情報
カセット個数情報を表示する。カセットの隣接条件確認のため、ユーザは、部品ライブラリの供給コードを設定する。
＊供給コード
カセットの供給コードを表示する。
例）
１    文字目  ：種類（Ｅ：エンボス  Ｐ：紙）
２、３文字目  ：カセット幅（０８：８ｍｍ幅）
４，５文字目  ：送りピッチ（０４：４ｍｍピッチ）
６    文字目  ：駆動方式（Ｃ：シリンダ）
７    文字目  ：カセットタイプ（Ｗ：Ｗカセット）
＊現在個数
現在使用しているカセット個数を表示する。
＊最大個数
本設備で使用可能なカセットの最大個数を表示する。
2)  印刷ボタン
カセット個数情報の印刷を実行する。
3)  ＯＫボタン
現在表示されている最大個数を保存して、カセット個数設定画面を終了する。4)  キャンセルボタン
カセット個数設定画面を終了し、メイン画面に戻る。ただし、最大個数の保存は行わない。
5)  最大個数入力エリア
ユーザは、最大個数のエリアをダブルクリックすることにより最大個数の入力を行うことができる。
【０１９３】
３．１０．５  部品分割数設定画面
この画面では、図１１２に示されるように、最適化装置３００は、ユーザの指示に従って、部品分割情報の表示／最大分割数の設定を行う。
1)  部品分割数情報
部品分割数情報を表示する。
＊部品名称
品種プログラム内で使用される部品名称を表示する。ユーザは、部品分割を効率的に行うために、品種プログラムの部品名称を入力することができる。
＊実装点数
部品毎の実装点数を表示する。
＊現在分割数
部品毎の現在の分割数を表示する。
＊最大分割数
部品毎の最大分割数を表示する。なお、起動時のデフォルトでは、現在分割数を表示する。
2)  印刷ボタン
部品分割数情報の印刷を実行する。
3)  ＯＫボタン
現在表示されている最大分割数を保存して、部品分割数設定画面を終了する。4)  キャンセルボタン
部品分割数設定画面を終了し、メイン画面に戻る。ただし、最大分割数の保存は行わない。
5)  最大分割数入力エリア
ユーザは、最大分割数のエリアをダブルクリックすることにより最大分割数の入力を行うことができる。なお、最大分割数は、アプリケーションが起動している間のみ有効となる。次回の起動時には、現在分割数が最大分割数のデフォルト表示になる。
ソート表示
＊部品名称又は、実装点数のタイトルがクリックされると、ソート表示する。
【０１９４】
３．１０．６  ノズル本数設定画面
この画面では、図１１３に示されるように、最適化装置３００は、ユーザの指示に従って、ノズル本数情報の表示／最大本数の設定を行う。
1)  ノズル本数情報
ノズル本数情報を表示する。
＊ノズル形状コード
ノズルライブラリ内の全ノズル形状コードを表示する。
＊ノズルタイプ
ノズルライブラリ番号（１〜９９）を表示する。
＊現在本数
現在使用されている本数を表示する。
＊最大本数
使用できる最大本数を表示する。
2)  印刷ボタン
ノズル本数情報の印刷を実行する。
3)  ＯＫボタン
現在表示されている最大本数を保存して、ノズル本数設定画面を終了する。
4)  キャンセルボタン
ノズル本数設定画面を終了し、メイン画面に戻る。ただし、最大本数の保存は行わない。
5)  最大本数入力エリア
ユーザは、最大本数のエリアをダブルクリックすることにより最大本数の入力を行うことができる。
【０１９５】
３．１０．７  ノズルステーション選択画面
この画面では、図１１４に示されるように、最適化装置３００は、ユーザの指示に従って、ノズルステーション選択情報の表示／ノズルステーション選択を行う。
1)  ノズルプレートＩＤ
サブ設備（図中の「１ｓｔ  ステージ」、「２ｎｄ  ステージ」）毎のノズルプレートＩＤの有効／無効を設定することができる。グレー表示以外のＩＤは、複数選択可能である。
カーソルを移動すると、カーソル上のＩＤのノズルステーション図の表示に切り替えることができる。なお、チェックボックスが選択されていない場合でも、表示は切り替わる。
2)  ノズルステーション図
カーソル上のノズルステーション図を表示する。
3)  印刷ボタン
ノズルステーション選択情報の印刷を実行する。
4)  ＯＫボタン
選択されているノズルプレートＩＤを保存して、ノズルステーション選択画面を終了する。
5)  キャンセルボタン
ノズルステーション選択画面を終了し、メイン画面に戻る。ただし、ノズルプレートＩＤの保存は行わない。
【０１９６】
３．１０．８  オプション設定画面
この画面では、図１１５に示されるように、最適化装置３００は、ユーザの指示に従って、設備オプション／最適化レベルの設定を行う。
1)  設備設定
設備オプションを設定することができる。
・ＸＬ制約
ＸＬ制約を設定することができる。（有効or無効）
・Ｚ軸速度ＴＡ
Ｚ軸ＴＡの速度を設定することができる。（通常or低速）
・Ｚ軸速度ＴＢ
Ｚ軸ＴＢの速度を設定することができる。（通常or低速）
・後部カセット部品１８０°回転
後部カセット部品１８０°回転を設定することができる。（無効or有効）
・後部トレイ部品１８０°回転
後部トレイ部品１８０°回転を設定することができる。（無効or有効）
・後部手置きトレイ部品１８０°回転
後部手置きトレイ部品１８０°回転を設定することができる。（無効or有効）
・先行シャトル制御
先行シャトル制御を設定することができる。（無効or有効）
・先行吸着制御
先行吸着制御を設定することができる。（無効or有効）
・基板ストッパー位置（前）
前サブ設備１１０の基板ストッパー位置を設定することができる。（左下or左上or右下or右上）
・基板ストッパー位置（後）
後サブ設備１２０の基板ストッパー位置を設定することができる。（左下or左上or右下or右上）
・手置きトレイ（前）
前サブ設備１１０の手置きトレイを設定することができる。（無効or有効）
・手置きトレイ（後）
後サブ設備１２０の手置きトレイを設定することができる。（無効or有効）
【０１９７】
2)  前後振り分け禁止
この項目をチェックすることにより、前後振り分けを禁止することができる。
【０１９８】
・Front
前サブ設備１１０のみ最適化を行なう。
・Rear
後サブ設備１２０のみ最適化を行なう。
・Both
前後サブ設備１２０で最適化を行なう。なお、前後振り分けを禁止すると、Ｚ軸情報画面でＦ／Ｒ固定の設定が行えるようになる。
3)  最適化レベル設定
最適化の実行レベルを１〜５（簡易〜詳細）の範囲で設定することができる（デフォルトレベルは４）。
4)  回収コンベア設定
１ｓｔ、２ｎｄステージの回収コンベアの設定を行うことができる。
設定しない                     ：無
回収コンベア（小）を使用する  ：小
回収コンベア（大）を使用する  ：大
5)  ＯＫボタン
現在設定されているオプション（設備オプション、最適化レベル、前後振り分け禁止、回収コンベア）を保存し、オプション設定画面を終了する。
6)  キャンセルボタン
オプション設定画面を終了し、メイン画面に戻る。ただし、設備オプション、最適化レベル、前後振り分け禁止、回収コンベアついては保存しない。
7)  アルゴリズム設定
最適化のアルゴリズムを設定することができる。（１or２）
・アルゴリズム１
小部品のアルゴリズムで最適化する。
・アルゴリズム２
小部品を汎用部品のアルゴリズムで最適化する。
8)  設備情報
設備情報を表示する。
・設備方向
設備方向を表示する。（正流れor逆流れ）
・搬送基準
搬送基準を表示する。（手前or奥）
・搬送速度
搬送速度を表示する。
【０１９９】
３．１０．９  Ｚ軸情報画面
この画面では、図１１６に示されるように、最適化装置３００は、ユーザの指示に従って、Ｚ軸に設定されている部品の情報を表示する。
1)  Ｚ軸情報
Ｚ軸情報を表示する。
＊部品名称
ＺＮｏ上に設定されている部品名称を表示する。
＊部品点数
ＺＮｏ上に設定されている部品点数（実装点）を表示する。
＊形状コード
ＺＮｏ上に設定されている部品形状コードを表示する。
＊ノズル
ＺＮｏ上に設定されている部品の使用ノズル番号（ノズル本数設定画面のノズルタイプと同一）を表示する。
＊カメラ
ＺＮｏ上に設定されている部品の部品認識カメラ（２ＤＳ、２ＤＬ、３ＤＳ、３ＤＬ）を表示する。
＊スピード
ＺＮｏ上に設定されている部品のヘッド速度ＸＹ（１〜８）を表示する。
＊供給コード
ＺＮｏ上に設定されている部品の供給コードを表示する。
＊Ｗ指定
部品名称毎にＳ（シングル）かＷ（ダブル）の指定をする必要がある。
＊シャトル不可
ＺＮｏ上に設定されている部品がトレイ部品でシャトル供給が可能である場合に、不可（行わない）を設定できる。なお、トレイ部品であってもシャトル供給できない部品には、チェックボックスは表示されない。
＊Ｆ／Ｒ固定
ＺＮｏ上に設定されている部品が最適化によって、サブ設備間を移動しないように設定を行う。なお、オプション設定画面の前後振り分け禁止がチェックされている場合のみ、使用可能になる。ＺＮｏ以降にデータが表示されない場合は、そのＺ軸に部品が設定されていないことを表する。
2)  最適化前／後切替
Ｚ軸情報を最適化前／後で切り替える。ただし、最適化を実施しない場合、最適化後の表示はできない。
3)  印刷ボタン
Ｚ軸情報の印刷を実行する。
4)  ＯＫボタン
Ｚ軸情報（Ｗ指定、シャトル不可）を保存し、Ｚ軸情報画面を終了する。ただし、最適化後のＺ軸情報は編集できない。ＯＫボタンがグレー表示になっている。
5)  キャンセルボタン
Ｚ軸情報画面を終了し、メイン画面に戻る。ただし、Ｚ軸情報は保存されない。
【０２００】
３．１０．１０  ノズルステーション情報画面
この画面では、図１１７に示されるように、最適化装置３００は、ユーザの指示に従って、本設備のノズルステーション情報を表示する。
1)  ノズルプレートＩＤ
サブ設備（図中の「１ｓｔ  ステージ」、「２ｎｄ  ステージ」）毎のノズルプレートＩＤを表示する。
2)  ノズルステーション情報
ノズルステーション情報を表示する。
＊Ｎｏ
ステーションＮｏを表示する。
＊ノズル形状コード
ノズルステーション上のノズル形状コードを表示する。
3)  最適化前／後切替
ノズルステーション情報を最適化前／後で切り替える。ただし、最適化を実施しない場合、最適化後の表示はできない。
4)  印刷ボタン
ノズルステーション情報の印刷を実行する。
5)  キャンセルボタン
ノズルステーション情報画面を終了し、メイン画面に戻る。
【０２０１】
４  最適化装置の動作（応用編）
次に、以上のような最適化装置３００の応用的な動作について説明する。つまり、これまで説明してきた最適化アルゴリズムに対して、改良が施され、機能が拡張されている部分について説明する。
【０２０２】
４．１  小部品の最適化
４．１．１  部品分割しないＺ配列の最適化
図４２に示された吸着パターン５０４は、生産性を最大にする最適化吸着パターンであるが、部品テープをいくつにでも分割できることが条件となる。例えば、部品１のテープ（黒い四角マークの部品テープ）は５本も準備しなければならない。このことは、出庫部品が増える結果となり、ユーザによっては、許容されない場合がある。つまり、１種類の部品につき１つの部品テープだけしか使用（準備）できないという状況においては、適用することができない。
【０２０３】
そこで、部品分割ができない場合に適用できる吸着パターンの決定アルゴリズムが必要とされる。以下、そのアルゴリズムを説明する。
図１１８は、部品分割することなく効率的な吸着パターン（Ｚ配列）を決定するアルゴリズムの処理手順を示すフローチャートである。
まず、対象となる全ての部品テープを部品数の多い順にソートし、多いものから順に番号（ｉ＝１〜Ｎ）を付与する（Ｓ６００）。そして、その並びから、部品数の多い順に、部品テープを取り出し、以下のように並び替える（Ｓ６０１〜Ｓ６０７）。
まず、番号１の部品テープを取り出してＺ軸上に置く（Ｓ６０１）。次に、番号２以降（ｉ＝２〜Ｎ）の部品テープについては、Ｚ軸上の右端又は左端のいずれかに配置するという処理を繰り返す（Ｓ６０２〜Ｓ６０７）。つまり、番号２〜１５の部品テープについては（Ｓ６０５でＹｅｓ）、右端、右端、左端、という順序でＺ軸上に並べていき（Ｓ６０４〜Ｓ６０６）、番号１６以降の部品テープについては（Ｓ６０３でＮｏ）、右端に配置することを繰り返す（Ｓ６０６）。
【０２０４】
このような並び替えによって得られたＺ配列が目的とする吸着パターン、即ち、吸着上下回数の少ない吸着パターンである。
図１１９は、図１１８に示されたフローチャートの処理手順を説明するための部品テープの並びを示す。つまり、上図は、対象となる全ての部品テープを部品数の多い順に仮Ｚ軸上にソートした後の部品テープの並び６００を示し、下図は、その部品テープの並び６００から部品数の多い順に部品テープを取り出し、Ｚ軸上に並び替えた後の部品テープの並び６０１を示す。番号２〜１５の部品テープについては、右端、左端、右端、右端、左端、・・・、と並べていき、番号１６以降の部品テープについては、右端に配置することを繰り返す。
【０２０５】
図１２０〜図１２３は、この最適化アルゴリズムによる最適化のレベルを説明するための図である。つまり、図１２０は、単に部品数の多い順に（右から左方向に）部品テープが並べられた部品ヒストグラム６０５、図１２１は、その部品ヒストグラム６０５を刈り上げた場合の吸着上下回数パターン６０６を示す。一方、図１２２は、図１１８に示された手順で並び替えられた部品ヒストグラム６０７を示し、図１２３は、その部品ヒストグラム６０７を刈り上げた場合の吸着上下回数パターン６０８を示す。
【０２０６】
なお、図１２１及び図１２３において、横軸は、部品テープの並び（仮Ｚ軸、Ｚ軸）、左縦軸は、吸着上下回数、右縦軸は、タスク数を示し、四角枠で囲まれた部品群は、１つのタスク（同時に吸着される部品群）を示している。
これら図１２１及び図１２３に示された吸着上下回数パターンを比較して分かるように、本最適化アルゴリズムによる並び替えによって、タスク数については、変化していないが（１３個）、吸着上下回数については、３１回から２５回に減少している。これは、図１１８に示された手順による部品テープの並び替えにより、図１２０に示された部品ヒストグラム６０５の一部（部品テープ番号３、６、９、１２、１５の部品テープ）が、図１２２に示される部品ヒストグラム６０７ａに移動されたからである。
つまり、図１２２に示された部品ヒストグラム６０７は、２つの傾斜（一方が他方よりも急勾配）を持つ三角形の形状を有している。この形状は、コア処理による最適化が施された後の理想的な形状（例えば、図４２に示された部品ヒストグラム５０４における空間を下方に詰めて整理したヒストグラム）に近い。したがって、図１２０に示された部品ヒストグラム６０５に比べ、最適化レベルの高い部品テープの並びと言える。
【０２０７】
４．１．２  左右ブロックへの振り分け処理における最適化
初期振り分け処理では、前サブ設備１１０と後サブ設備１２０に部品テープを振り分けた後、各サブ設備内で、各部品テープが属する部品グループに基づいて、部品供給部の左ブロック１１５ａ及び右ブロック１１５ｂのいずれかに部品テープを振り分ける。
【０２０８】
このとき、これまでの手法では、左右ブロック１１５ａ及びｂへの振り分け状態によっては、一方のブロックに隙間なく部品カセットを配置してしまうために、他のブロックに空きが残されているにも拘わらず、部品テープの分割が行われない、つまり、部品ヒストグラムに対するコア処理が全く実行されないという不具合を生じ得る。そのために、吸着上下回数が増加し、タクトタイムが長くなってしまう。
例えば、左ブロック１１５ａには空きが充分にあるにもかかわらず、右ブロック１１５ｂに隙間なく部品カセットを配置してしまい、その結果、右ブロック１１５ｂでは全く部品テープの分割が行われないという状況が発生する。特に、左右ブロック１１５ａ及びｂにまたがるような、部品テープ数の多いヒストグラムの場合に生じ得る。
そこで、このような場合には、空きのないブロックに振り分けられている山の中から最も優先度の低い山を見つけ、その山の部品カセットを空きのある他方のブロックに移動させることで、新たなに空きを確保し、これによって、不可能だった山に対するコア処理を可能にしている。
【０２０９】
図１２４は、左右ブロック１１５ａ及びｂへの山の振り分け処理の手順を示すフローチャートである。いま、ある山について、その山が置かれているブロックにおいて、充分な部品カセットの空きがないために、コア処理ができない状態（以下、この状態を「ブロックあふれ」と呼ぶ。）が生じているとする。
このときに、まず、左右ブロック１１５ａ及びｂに振り分けられた全ての山の中から、優先度の低い山として、左右ブロック１１５ａ及びｂに分割して（またがって）振り分けられている山、又は、コア部分の高さ（部品数）が最低の山を特定する（Ｓ６２０）。
そして、いま特定した山を構成する部品テープのうち、「ブロックあふれ」が生じているブロックに置かれた部品テープを、部品数の少ないものから順に他方のブロックに移動させた場合に、そのブロックに振り分けられていた山に対するコア処理が可能になるか否か検討する（Ｓ６２１）。
【０２１０】
その結果、可能になると判断された場合にだけ、必要分だけ部品テープを移動した後に（Ｓ６２２）、コア処理が可能な全ての山に対して、刈り上げ処理とコア処理を実行する（Ｓ６２３）。
最後に、部品テープを移動した山について、未だ移動していない部品テープが残され、かつ、それら部品テープを他方のブロックに移動できるか否か検討する（Ｓ６２４）。その結果、移動可能と判断された場合には、それら残りの部品テープも他方のブロックに移動させる（Ｓ６２５）。
図１２５は、図１２４に示されたフローチャートによる処理の様子、つまり、山をブロック間で移動するときの様子を示している。ここでは、左右に分割して振り分けられた山６２０、６２１、６２２ａ及び６２２ｂを移動対象とした場合の様子が示されている。
【０２１１】
なお、山６２０、６２１、６２２ａ及び６２２ｂは、部品ヒストグラムの外形として表現されている。また、左ブロック１１５ａと右ブロック１１５ｂで挟まれた中央部側に山６２０、６２１、６２２ａ及び６２２ｂが高くなっているのは、その中央部付近には部品認識カメラ１１６が置かれ、部品を吸着したマルチ装着ヘッド１１２はその部品認識カメラ１１６の上を通過する必要があるので、マルチ装着ヘッド１１２のトータル移動距離を少なくするために、部品数の多い部品テープが中央部寄りに配置されるためである。
図１２５（ａ）は、あるサブ設備に振り分けられた３つの山６２０、６２１、６２２ａ及び６２２ｂの左右ブロック１１５ａ及びｂへの初期割当て状態を示している。右ブロック１１５ｂは、「ブロックあふれ」となっているブロックであり、ここには、山６２０と、左右ブロック１１５ａ及びｂに分割して割り当てられた山の一部６２２ｂが配置されている。一方、左ブロック１１５ａは、「ブロックあふれ」にはなっていないブロックであり、ここには、山６２１と、分割して割り当てられた山の残る一部６２２ａが配置されている。
【０２１２】
図１２５（ｂ）は、山６２０のコア処理を可能とするだけの空きを確保するために、山６２２ｂの一部６２２ｃを右ブロック１１５ｂから左ブロック１１５ａに移動させたときの様子を示している。
図１２５（ｃ）は、山６２０と山６２１それぞれに対して刈り上げ処理とコア処理とを実行したときの様子を示している。山６２０と山６２１の形状が、急な傾斜と緩やかな傾斜とを持つ三角形に変化している。
図１２５（ｄ）は、分割移動した山について残る部分６２２ｄも右ブロック１１５ｂから左ブロック１１５ａに移動させたときの様子を示している。
図１２６は、図１２４に示されたフローチャートによる他のケースにおける処理の様子、つまり、コア部分が最低の山を移動対象とした場合の様子を示している。移動対象の山（の状態）が異なる点を除いて、図１２５で示された山の移動と同じ様子を示している。つまり、対象となる３つの山６２５、６２６、６２７（図１２６（ａ））のうち、コア部分が最低の山６２７の一部６２７ａを右ブロック１１５ｂから左ブロック１１５ａに移動させた後に（図１２６（ｂ））、山６２５と山６２６について刈り上げ処理とコア処理を行い（図１２６（ｃ））、最後に、分割移動した山の残る部分６２７ｂも右ブロック１１５ｂから左ブロック１１５ａに移動させて山６２７ａと合体させている（図１２６（ｄ））。
【０２１３】
以上のように、Ｚ番号の空きがないブロックから、空きがあるブロックへ部品カセット（部品テープ）を移動させることで、Ｚ番号の空きを作り、その空きを使ってコア処理を行うことで、それまで、断念していた部品分割が可能となる。つまり、ブロックを超えた部品テープの移動を検討することで、断念していたコア処理が可能となり、理想的な吸着パターンが生成され、吸着上下回数が減少され得る。
【０２１４】
４．１．３  ダブルカセットの使用本数の見積もり
実装の対象となる１つの部品グループ（部品テープ群「山」）が与えられ、これに対するコア処置が終了すると、各部品テープをＺ軸（部品カセットの並び）に割り当てることになる。このことは、２つの部品テープを同時に収納できる部品カセット（ダブルカセット）を使用する場合についても同様であるが、ダブルカセットを使用する場合には、全ての部品テープをペアにして１つのダブルカセットに収納することができるとは限らず、また、ペアにすべき部品テープが固定されている場合等があり、割当てに際して、何本のダブルカセットが必要とされるのかが問題となる。
【０２１５】
そこで、ダブルカセットを対象として、与えられた「山」を構成する全ての部品テープをＺ軸に割り当てる場合に、必要とされるダブルカセットの本数をＮＣデータ等に基づいて事前に算出する（見積もる）方法を考案した。
図１２７は、ダブルカセットの使用本数を見積もるアルゴリズムの処理手順を示すフローチャートである。
まず、対象となっている部品テープの総本数Ｎを特定する（Ｓ６４０）。
次に、固定の対象となっている全ての部品テープを図１２８に示される４種類のグループＡ〜Ｄに分類したときの各グループに属する部品テープ数Ｎa、Ｎb、Ｎc、Ｎdを特定する（Ｓ６４１〜Ｓ６４４）。つまり、
(i)グループＡに属する部品テープ数Ｎa：
同じ部品グループの部品テープとペアになるものの本数Ｎa（必ず、偶数となる）、
(ii)グループＢに属する部品テープ数Ｎb：
異なる部品グループの部品テープとペアになり、かつ、この山の部品テープの部品グループ番号（各部品グループを識別するために付与された一連の番号）が、その異なる部品グループの部品グループ番号よりも小さいものの本数Ｎb、
(iii)グループＣに属する部品テープ数Ｎc：
異なる部品グループの部品テープとペアになり、かつ、この山の部品テープの部品グループ番号が、その異なる部品グループの部品グループ番号よりも大きいものの本数Ｎc、
(iv)グループＤに属する部品テープ数Ｎd：
ペアになる部品テープがないものの本数Ｎd、
を計数する。
【０２１６】
最後に、以下の算出式に従って、求めるべき必要なダブルカセットの本数Ｎwを算出する（Ｓ６４５）。
Ｎw＝Ｎa／２+Ｎb+Ｎd+ceil（（Ｎ-Ｎa-Ｎb-Ｎc-２Ｎd）／２）
ただし、ceil（ｘ）は、実数ｘ以上の最小の整数値を意味する。
この算出式の根拠は以下の通りである。
算出式の右辺は、固定対象の部品テープの収納に必要なダブルカセットの本数（第１〜第３項）と、非固定対象の部品テープの収納に必要なダブルカセッの本数（第４項）との合計からなっている。
右辺第１項Ｎa／２は、グループＡの部品テープを収納するのに必要なダブルカセットの本数である。
【０２１７】
右辺第２項Ｎbは、グループＢの部品テープと、これら部品テープとペアになる異なる（グループ番号の大きい）部品グループの部品テープとを収納するのに必要なダブルカセットの本数である。このように、異なる部品グループの２つの部品テープを１つのダブルカセットに収納する場合には、グループ番号の小さい部品グループに対してダブルカセットが必要になると計算しているので、上記グループＣの部品テープの収納に必要なダブルカセットの本数Ｎcは計上されないことになる（算出式の右辺に加算されない）。
右辺第３項Ｎdは、グループＤの部品テープ（及び、これら部品テープとペアになる非固定対象の部品テープ）を収納するのに必要なダブルカセットの本数である。
右辺第４項ceil（（Ｎ-Ｎa-Ｎb-Ｎc-２Ｎd）／２）は、非固定対象の部品テープの一部（Ｎd本）がグループＤの部品テープとペアにして収納される場合における、非固定対象の部品テープを収納するのに必要なダブルカセットの本数である。なお、非固定対象の部品テープの一部（Ｎd本）がグループＤの部品テープとペアにして収納されない場合には、その本数は、ceil（（Ｎ-Ｎa-Ｎb-Ｎc-Ｎd）／２）となる。
【０２１８】
以上より、必要なダブルカセットの本数は、上記算出式の右辺第１〜第４項の合計となる。
図１２９は、必要なダブルカセットの本数の計算例を示す。図１２９（ａ）は、対象となる部品テープの並びａ〜ｚを示し、図１２９（ｂ）は、それら部品テープの内訳を示し、図１２９（ｃ）は、各部品テープがダブルカセットに収納される様子を示し、図１２９（ｄ）は、必要なダブルカセット本数の計算式を示す。
この図１２９から分かるように、上記算出式によって、あらゆる部品テープの並びに対しても、必要なダブルカセットの本数が算出され得る。
なお、上記式は、整理することにより、以下のように簡単化することもできる。
Ｎw ＝Ｎa／２+Ｎb+Ｎd+ceil（（Ｎ-Ｎa-Ｎb-Ｎc-２Ｎd）／２）
＝ceil（Ｎa／２+Ｎb+Ｎd+（Ｎ-Ｎa-Ｎb-Ｎc-２Ｎd）／２）
＝ceil（（Ｎ+Ｎb-Ｎc）／２）
【０２１９】
４．１．４  ダブルカセットのペア固定
ダブルカセットは、テープ幅８ｍｍの部品テープを２つ収納することができるが、同じ送りピッチ（例えば、２ｍｍ又は４ｍｍ）で２つの部品テープを同時に送り出すために、異なる送りピッチ用の部品テープを混在させて収納することができない。そのために、ダブルカセットを対象として、小部品を最適化する場合には、送りピッチ毎に作成した部品ヒストグラムをその部品テープ総数の半分で折り返すことでペアを作った後に、対応する送りピッチのダブルカセットに収めることとしている。
【０２２０】
ところが、生産現場の事情等により、自由な組み合わせで２つの部品テープをダブルカセットに収めることができない状況、即ち、ペアとなる部品テープが固定される場合がある。したがって、ペア固定の対象となる部品テープを含み、かつ、送りピッチが異なる部品テープを含む部品テープ群が与えられたときに、どのような並びでダブルカセットに収めるべきかが問題となる。
そこで、ダブルカセットを対象とし、ペアリングの制約を考慮した最適化、即ち、刈り上げ処理に適した部品テープのＺ配列を決定するアルゴリズムを考案した。
図１３０は、ダブルカセットのペア固定を考慮したＺ配列の最適化アルゴリズムの処理手順を示すフローチャートである。ここでは、送りピッチが２ｍｍと４ｍｍのダブルカセットを使用する部品テープが含まれるとする。
【０２２１】
まず、ペア固定となる部品テープを分離する（Ｓ６６０）。具体的には、同一の送りピッチの部品テープ群ごとに、ペア固定の対象でない部品テープと、ペア固定の対象である部品テープに分ける。
そして、送りピッチが２ｍｍのダブルカセットを使う部品テープについて、仮Ｚ軸上に「山」を作る（Ｓ６６１）。具体的には、ペア固定の対象でない部品テープについては、これまでのアルゴリズム（上述の折り返しによる方法）と同様にしてペアを作り、ペア固定の対象となる部品テープについては、そのままペアにする。
同様に、送りピッチが４ｍｍのダブルカセットを使う部品テープについて、仮Ｚ軸上に「山」を作る（Ｓ６６２）。具体的には、ペア固定の対象でない部品テープについては、これまでのアルゴリズムと同様にしてペアを作り、ペア固定の対象となる部品テープについては、そのままペアにする。
【０２２２】
最後に、送りピッチが２ｍｍと４ｍｍのダブルカセットの部品ヒストグラムを融合する（Ｓ６６３）。このとき、ペア固定のダブルカセットも含める。具体的には、上記ステップＳ６６１及びＳ６６２で作られたダブルカセットをひとまとめにして、ダブルカセットの奇数側の部品数が大きい順にダブルカセットを並べ替える。
図１３１〜図１３４は、図１３０の各ステップＳ６６０〜Ｓ６６３における処理の具体例を示す。
図１３１は、図１３０のステップＳ６６０での処理を示している。ここで、図１３１（ａ）は、送りピッチが２ｍｍの部品テープ群を、ペア固定の対象でない部品テープの部品ヒストグラム６６０と、ペア固定の対象である部品テープ６６１ａ、６６１ｂとに分けた様子を示している。同様に、図１３１（ｂ）は、送りピッチが４ｍｍの部品テープ群を、ペア固定の対象でない部品テープの部品ヒストグラム６６５と、ペア固定の対象である部品テープ６６６ａ、６６６ｂとに分けた様子を示している。
【０２２３】
図１３２は、図１３０のステップＳ６６１での処理を示している。ここで、図１３２（ａ）の部品ヒストグラム６６０には折り返し位置（点線）６６１ｃが示されている。図１３２（ｂ）は、その折り返し位置で部品ヒストグラム６６０が折り返された後の部品ヒストグラム６６２を示している。なお、ここでの「折り返し」とは、折り返し位置で分離された前半部と後半部とを、それぞれの並び順序を維持したまま、各部品テープが交互に並ぶように、合成することである。
図１３３は、図１３０のステップＳ６６２での処理を示している。図１３３（ａ）の部品ヒストグラム６６５には折り返し位置（点線）６６５ｃが示されている。図１３３（ｂ）は、その折り返し位置で部品ヒストグラム６６５が折り返された後の部品ヒストグラム６６７を示している。
【０２２４】
図１３４は、図１３０のステップＳ６６３での処理を示している。ここで、図１３４（ａ）は、図１３０のステップＳ６６２及びＳ６６３で得られた各部品テープを一列（仮Ｚ軸上）に並べた状態を示し、ペア固定の対象ではない送りピッチが２ｍｍの部品ヒストグラム６６２と、ペア固定の対象である送りピッチが２ｍｍの部品ヒストグラム６６１ａ及び６６１ｂと、ペア固定の対象ではない送りピッチが４ｍｍの部品ヒストグラム６６７と、ペア固定の対象である送りピッチが４ｍｍの部品ヒストグラム６６６ａ及び６６６ｂとが仮Ｚ軸上に並べられた状態を示している。図１３４（ｂ）は、図１３４（ａ）に示された並びにおけるダブルカセットのペアを維持したまま、奇数Ｚ番号側の部品テープの部品数が多い順（図中の点線）に並び替えた状態を示している。このＺ配列が最終的に求める部品テープの並びである。
【０２２５】
図１３４（ｂ）に示されたＺ配列から分かるように、この部品テープの並びは、ダブルカセットのペア固定が維持され、かつ、刈り上げ処理に適した配列となっている。つまり、マルチ装着ヘッド１１２が１回の吸着上下動作で吸着される奇数のＺ番号だけ（あるいは、偶数のＺ番号だけ）に位置する部品テープだけに着目すると、それら部品テープは、部品数の多い順に並べられている。
４．１．５  ＮＧヘッドを考慮した最適化アルゴリズム
部品実装機１００の運用中に、ＮＧヘッドが生じた場合には、そのＮＧヘッドの影響を最小限に止めたうえで、部品の実装を継続することが必要とされる。ここで、「ＮＧヘッド」とは、もはや部品を吸着することができない状態となった装着ヘッドのことである。
【０２２６】
そこで、以下の前提条件の下で、つまり、
(i)運用中にＮＧヘッドが発生しても、Ｚ軸上の部品カセット（部品テープ）の配列は変化させない、
(ii)ＮＧヘッドを使わずに吸着するので、吸着パターンが変化する、
(iii)ＮＧヘッドとなったヘッド番号の装着ヘッドでしか吸着できない実装点は、実装しない、
という条件の下で、ＮＧヘッドを除く他の正常な装着ヘッドだけによる吸着パターンの生成方法を考案した。なお、「ヘッド番号」とは、マルチ装着ヘッド１１２を構成する個々の装着ヘッドを識別する番号（左から１〜１０）である。
【０２２７】
具体的には、ＮＧヘッドがないものとして作成された部品テープの配列（「山」）に対して、ＮＧヘッドの位置に対応する部品テープから部品を吸着しないことにして、その「山」に対して刈り上げ処理を行い、吸着パターンを生成することにより、ＮＧヘッドに対応することとした。
この時、１タスク当たりの吸着上下回数が２回以上になったとしても、１タスク当たりの部品数を最大化させることを優先した。つまり、マルチ装着ヘッド１１２に部品が満載された状態（全ての正常な装着ヘッドに部品が吸着された状態）になるまで、吸着上下動作をして部品を吸着した後に、基板に部品を装着することとした。
図１３５は、ＮＧヘッドを考慮した最適化アルゴリズムの処理手順を示すフローチャートである。
【０２２８】
まず、与えられた部品ヒストグラムに対して、ＮＧヘッドを除く正常な装着ヘッドだけを用いて、１回の吸着上下動作により、可能な限り多くの部品を吸着する（Ｓ６８０）。その結果、マルチ装着ヘッド１１２が満載状態ではなく、かつ、吸着対象の部品が残されている場合には（Ｓ６８１でＮｏ）、満載状態になるか、又は、吸着対象の部品が無くなるまで、マルチ装着ヘッド１１２を移動させて再度の吸着上下動作をすることにより（Ｓ６８０）、空いた装着ヘッドに部品を吸着させることを繰り返す（Ｓ６８０、Ｓ６８１）。
もし、マルチ装着ヘッド１１２が満載状態になるか、又は、全ての部品を吸着し終えた場合には（Ｓ６８１でＹｅｓ）、１つのタスクでの吸着を終え、基板２０に移動して部品を装着することにする（Ｓ６８２）。
【０２２９】
以上の処理（Ｓ６８０〜Ｓ６８２）を、対象の部品が無くなるまで繰り返す（Ｓ６８３）。これによって、ＮＧヘッドが発生した状況においても、マルチ装着ヘッド１１２の満載状態を優先した部品の吸着パターンが完成される。つまり、少ないタスク数で部品の実装を終えることができる。
図１３６〜図１３８は、ＮＧヘッドが無い場合とＮＧヘッドがある場合それぞれの吸着パターンを比較して説明するための図である。図１３６は、対象となる部品ヒストグラム６８０を示す。
【０２３０】
図１３７は、ＮＧヘッドが無い場合の図１３６に示された部品ヒストグラム６８０に対する吸着パターン（刈り上げ処理とコア処理による）６８１を示す。一方、図１３８は、ヘッド番号２の装着ヘッドＨ２がＮＧヘッドである場合の図１３６に示された部品ヒストグラム６８０に対する吸着パターン６８５を示す。
なお、図１３７及び図１３８に示された吸着パターン６８１、６８５は、図１３６に示された部品ヒストグラム６８０に対してコア処理に伴う部品テープＡ、Ｂ、Ｃの分割が行われたときのパターンである。また、左縦軸は、吸着上下回数（積算値）を示し、右縦軸は、タスク数を示している。四角枠で囲まれた部品群は、１つのタスクを示している。ただし、図１３８において、第２及び第９タスクは、それぞれ、２つの四角枠６８７ａ及び６８７ｂと６８８ａ及び６８８ｂとに分離して示されている。
【０２３１】
図１３８において、例えば、第２タスクは、１回目の吸着上下動作６８７ａによって、装着ヘッドＨ１とＨ１０に合計２個の部品が吸着され、２回目の吸着上下動作６８７ｂによって、装着ヘッドＨ３〜Ｈ９に合計７個の部品が吸着され、その結果、装着ヘッドＨ２を除く９個の装着ヘッドに合計９個の部品が吸着され満載状態となっている。
【０２３２】
図１３７と図１３８とを比較して分かるように、ＮＧヘッドを考慮した場合には、そうでない正常な場合に比べ、吸着上下回数については、１６から２４へと大きく増加しているが、タスク数については、１３から１４へとわずかな増加で済んでいる。これによって、ＮＧヘッドを考慮した最適化が実現されたことになる。
なお、基板サイズがＬＬサイズ以上の基板の場合、ヘッド７〜１０でしか実装できない領域があるため、このような基板を対象としたＮＧヘッドの最適化が問題となる。これまでのアルゴリズムでは、ヘッド１〜１０をヘッド１〜６とヘッド７〜１０の２つのヘッド群に分け、ヘッド群毎に別個に吸着パターンを生成している。この場合においても、ヘッド群毎にＮＧヘッドを使わずに吸着することで、同様に対応することができる。ただし、特定の装着ヘッドしか吸着できないＺ番号があるので、部品カセットの入れ替えが必要となる。
【０２３３】
４．２  複数ＮＣデータの同時最適化
部品実装機１００を使用するユーザによっては、部品実装機１００にセットした部品カセット群の位置や並びを変更することなく、そのままの状態で、複数の基板を短い時間で生産したいと希望する場合がある。そのために、複数の基板の実装に共通して使用でき、かつ、それら複数の基板の全てを実装し終えるのに要するトータル時間が少なくなるような最適な部品カセットの並び等を決定する必要がある。つまり、複数のＮＣデータを対象とした部品実装順序の最適化アルゴリズムが求められる。以下、その最適化アルゴリズムを説明する。
【０２３４】
その最適化アルゴリズムの基本原理は、次の通りである。つまり、刈り上げ処理が期待通りに動作する条件は、部品カセットの並びが各部品テープの部品数の順番に並んでいることである。そこで、基板ごとに、部品数順と部品カセット配列との相関係数を計算し、これを最大化する部品カセット配列を求め、それ以降については、これまで説明したアルゴリズムによる最適化を行うこととする。
図１３９は、複数のＮＣデータを同時に最適化するときの全体の処理手順を示すフローチャートである。まず、与えられた複数のＮＣデータについて（Ｓ７００）、一定の類似性を有するＮＣデータが存在するか否か検討し（Ｓ７０１）、類似性がある場合には、それらＮＣデータの実装点を合わせたものを新たなＮＣデータとする（Ｓ７０２）という処理を、全てのＮＣデータについて繰り返す（Ｓ７００〜Ｓ７０３）。
【０２３５】
ここで、類似性の判定は、部品種ごとの部品数を成分とするベクトル（部品種を成分要素とし、各部品種の部品数を各成分要素の大きさとするベクトル）で各ＮＣデータを表現し、２つのベクトル間の方向余弦（ｃｏｓθ）が予め定めたしきい値よりも大きい場合に類似性があるとする。つまり、
ｃｏｓθ＞しきい値  なら、２つのＮＣデータは類似性があるとする。
なお、方向余弦は、２つのＮＣデータに含まれる部品種がどの程度共通しているかを示す指標になると考えられる。
そして、このような合成処理が施された後の１以上のＮＣデータについて、基板の生産枚数が多い順に、ＮＣデータごとにＺ配列を最適化していくことを繰り返す（Ｓ７０４）。このとき、最適化するＮＣデータに、既にＺ配列が決定された部品テープが含まれている場合には、その部品テープを除いた上で、刈り上げ処理等の通常の手法で部品テープのＺ配列を決定する。
【０２３６】
このように、ＮＣデータに含まれる部品種の多くが共通する場合には、それら複数のＮＣデータを１つのＮＣデータとして最適化し、そうでない場合には、個別にＮＣデータを最適化する。
【０２３７】
次に、複数のＮＣデータを１つのＮＣデータとして最適化する具体的なアルゴリズム、即ち、複数ＮＣデータの同時最適化アルゴリズムを説明する。
なお、ここでの最適化の対象は、Ｚ配列としている。これは、最適化の主な対象としては、(i)Ｚ配列、(ii)タスク内の実装経路、(iii)タスクの順序、の３つであるが、複数のＮＣデータを同時に最適化する場合には、部品のＺ配列を共通にする必要があるので、Ｚ配列を最適化することが最も重要となるからである。他の２つ(ii)、(iii)は、決められたＺ配列に対する刈り上げ処理で生成されるタスクに対する最適化で処理可能である。
【０２３８】
ところで、個々のＮＣデータの最適化を行う刈り上げ処理で期待されるＺ配列は、コア処理をさておけば、「部品数の多い順に部品テープが並ぶＺ配列」である。したがって、ここでの最適化アルゴリズムは、個々のＮＣデータに対してこのような条件がもっともよく満たされる共通のＺ配列を決定するアルゴリズムである。
図１４０は、複数ＮＣデータのＺ配列を同時に最適化する処理手順を示すフローチャートである。まず、「順位法」、「総員数法」及び「生産数法」と呼ぶ３つの手法のいずれかを用いて、初期Ｚ配列を決定する（Ｓ７１０）。
【０２３９】
ここで、「順位法」とは、各部品テープの部品数における順位の平均値が大きい順に部品テープを配列する方法であり、「総員数法」とは、各部品テープの部品数の総和が大きい順に部品テープを配列する方法であり、「生産数法」とは、最も部品数の多いＮＣデータを優先して部品テープを配列し、他のＮＣデータについては「総員数法」により部品テープを配列する方法である。なお、これら３つの方法のいずれを採用するかは、シミュレーションによって判明している予め定められた基準、例えば、ＮＣデータの数が５未満であれば「生産数法」を採用する等の基準によって決定する。
【０２４０】
そして、初期Ｚ配列を決定した後に、確率的探索による最適化を行う（Ｓ７１１）。つまり、Ｚ配列をランダムに変更し、もし、平均同時吸着数（タスク当たりの同時吸着される部品数の平均値）が増加するならば採用し、そうでないならば採用しない（変更を元に戻す）という処理を繰り返す。例えば、(i)Ｚ配列における１つの部品テープを引き抜き、（ii)引き抜きによって生成された空きを左詰によって埋めた後に、(iii)引き抜いた部品テープを別に位置に挿入する、という状態遷移を試み、最適化レベルが向上するならば採用する。このような状態遷移と評価とを繰り返すことによって、最適化レベルが徐々に向上され得る。
図１４１は、初期Ｚ配列の決定に用いる３種類の方法を説明する具体例を示す図である。ここでは、説明の便宜上、５種類の部品テープＡ〜Ｅ（又はその一部）を使用する３つのＮＣデータ１〜３を対象として初期Ｚ配列を決定する場合の例が示されている。
【０２４１】
図１４１（ａ）は、それら３つのＮＣデータ１〜３について、ＮＣデータで使用されている部品テープごとの部品数（数値）と、部品数の多い順に部品テープを並べた場合の順位（括弧内の数値）と、そのＮＣデータを用いて生産される基板の生産枚数と、各部品テープごとの平均順位と総部品数とを示している。
図１４１（ｂ）は、図１４１（ａ）に示された３つのＮＣデータ１〜３に対して、「順位法」、「総員数法」及び「生産枚数法」それぞれにより決定される初期Ｚ配列の結果を示している。
「順位法」によれば、(i)ＮＣデータごとに、各部品テープの順位を決定し、(ii)各部品テープの順位の平均値を求め、(iii)求めた平均値の大きい順に部品テープを並べたものを初期Ｚ配列とする。したがって、図１４１（ａ）に示されたの「平均順位」の値に基づき、図１４１（ｂ）に示されるように、順位「ＣＡＢＥＤ」が決定される。
【０２４２】
また、「総員数法」によれば、(i)部品テープごとに、部品数の総和を求め、(ii)求めた総和の大きい順に部品テープを並べたものを初期Ｚ配列とする。したがって、図１４１（ａ）に示された「総部品数」の値に基づき、図１４１（ｂ）に示されるように、順位「ＡＣＢＤＥ」が決定される。
また、「生産数法」によれば、(i)生産枚数の最も多いＮＣデータを特定し、(ii)特定したＮＣデータで使われている部品テープを最適化することによってＺ軸上に部品テープを配置して固定し、(ii)他の部品テープについては、「総部品数」により、空いたＺ軸上に配置して得られる部品テープの並びを初期Ｚ配列とする。しがって、ここでは、図１４１（ａ）に示された「生産枚数」の値に基づいて、まず、ＮＣデータ２の順に従って順位「ＡＢＣ」が決定され、続いて、総部品数の順に従って順位「ＤＥ」が決定される。
【０２４３】
以上の複数ＮＣデータに対する同時最適化アルゴリズムについて、シミュレーションにより評価した結果について説明する。
なお、シミュレーションにおいては、部品分布として、小さい部品は部品数が多く、部品サイズが大きくなるとともに部品数は漸減するという、ＮＣデータの一般の性質を考慮した以下のような分布を採用した。
部品partの使われる平均部品数n(part)を、
n(part)  ＝  C/part
とし（partは一連の部品テープ番号、Ｃは定数）、
各ＮＣデータAにおいては、これにノイズを加えたもの
n(part,A)  =  （C/partの幅の乱数）  ±  （（C/3）/partの幅の乱数）
とした。
また、ＮＣデータ数は、１から２０までの乱数で与えた。
シミュレーションの方法としては、
(i)乱数で最適化するＮＣデータ数を決める。
(ii)各ＮＣデータの部品数を決める
(iii)上述の３つの方法で初期Z配列を求める
(iv)上述の状態遷移則で、吸着回数を最小となる最適なＺ配列を確率的に探索する、という手順である。
このような条件でのシミュレーションの結果、判明したことは、以下の通りである。
(i)初期Ｚ配列に関する３つの手法のいずれであっっても、ＮＣデータ数が増加するにつれて、同時吸着できる部品の数が次第に減ってゆく。
(ii）ＮＣデータ数が少ない場合には、「生産数法」による初期Ｚ配列のほうが同時吸着数が多く、ＮＣデータ数が増えるにしたがって、「総員数法」によるほうが同時吸着数が多くなっていく。
(iii)上述の状態遷移を１０００回実施し、最適化を図った結果、１０％強の吸着数の改善（吸着回数の１０％減少）が見られた。
【０２４４】
以上のシミュレーション結果から、ＮＣデータの数が５未満であれば、「生産数法」がもっとも良く、ＮＣデータが５以上になると、「総員数法」がもっとも良くなると考えられる。
【０２４５】
４．３  汎用部品の最適化（ルールベースの導入）
これまで、汎用部品に対する最適化アルゴリズムは、上記２．９「汎用部品に対する最適化」で述べたように、確率的探索をベースとしたアルゴリズムである。つまり、汎用部品は、吸着可能なノズルの種類が特定される等の様々な制約を受けることから、Ｚ軸上の部品テープの配置、タスクの編成等をパラメータ化したものを「状態」と考え、その状態の良し悪しを実装時間で評価し、状態を確率的に変化させて、実装時間がより短くなる状態を探索した。
【０２４６】
しかしながら、このような確率的探索による最適化は、最適化処理に与える初期状態が悪いと、最適化に必要な時間が極めて長くなる傾向にある。事実、これまでのアルゴリズムでは、初期状態として生成されるタスクは、吸着動作の点からは好ましい初期状態とは言えない。例えば、Ｚ軸方向に部品テープが連続して置かれ、１０点の部品を１回で吸着できるにも拘わらず、１０回の吸着上下動作を行って、同一のＺ番号に配置された部品テープから１０点の部品を吸着するような実装順序を初期状態としていた。
そこで、汎用部品の最適化処理を高速化させるために、ノズルの制約を考慮し、一定のルールに基づいて、最適な初期状態を生成したり、ノズルの交換動作を最適化させるアルゴリズムを考案した。以下、そのアルゴリズムについて、４種類の手法（「横取り法」、「タスク分割」、「タスク融合」、「タスク入替」）を説明する。
【０２４７】
４．３．１  横取り法
「横取り法」は、確率的探索による最適化手法に与える初期タスク（初期状態に対応するタスク列）を生成するアルゴリズムである。名前の通り、Ｚ軸方向に吸着可能な部品を探す方法であり、小部品の最適化アルゴリズムとして開発した上述の刈り上げ処理と似ている。
【０２４８】
図１４２は、「横取り法」による初期タスクの生成アルゴリズムの処理手順を示すフローチャートである。大きく分けて、部品テープをＺ軸に配置する前半の処理（Ｓ７２０〜Ｓ７２２）と、タスクの生成を繰り返す後半の処理（Ｓ７２３〜Ｓ７２６）とからなる。
具体的には、前半の処理においては、まず、対象の汎用部品に対して、部品グループごとに、部品数の多い順に部品テープを並べた部品ヒストグラムを作成する（Ｓ７２０）。
【０２４９】
次に、作成した各部品ヒストグラムをノズルタイプごとの部品ヒストグラムに分割する（Ｓ７２１）。つまり、部品グループごとに作成された部品ヒストグラムから、同一タイプのノズルで吸着される全ての部品テープを取り出し、部品数の多い順に並べるという処理を、その部品ヒストグラムに含まれる全てのノズルタイプについて繰り返す。
そして、得られたノズルタイプごとの部品ヒストグラムを、左右ブロック１１５ａ及びｂの内側から部品テープを１つずつ詰めるだけ詰めてＺ軸に配置していく（Ｓ７２２）。
【０２５０】
後半の処理においては、前半の処理で得られた部品ヒストグラムに対して、部品グループごとに（Ｓ７２３〜Ｓ７２６）、Ｚ軸方向にスキャンしながら部品を取り出して（横取りして）タスクを生成するという処理（Ｓ７２４）を、各部品ヒストグラムの底辺から上方に向けて、部品がなくなるまで繰り返す（Ｓ７２５）。得られたタスク列が、目的とする初期タスクとなる。
【０２５１】
なお、スキャンする部品ヒストグラムの順番として、ノズルリソース数が小さいものを優先する。また、異なるタイプのノズルが混在してでも、各タスクを構成する部品の個数を最大化させることを優先する。例えば、マルチ装着ヘッド１１２に、タイプＭのノズルが２個と、タイプＳのノズルが８個装着されている場合には、ノズルタイプＭの部品ヒストグラムから２個の部品を取り出した後に、ノズルタイプＳの部品ヒストグラムから８個の部品を取り出して１個のタスクを完成させる。
【０２５２】
図１４３は、図１４２に示されたフローチャートにおける前半処理（Ｓ７２０〜Ｓ７２２）の具体例を示す図である。
図１４３（ａ）は、図１４２のステップＳ７２０において生成される部品グループ単位での部品ヒストグラムを示している。ここでは、２つの部品ヒストグラム７２０、７２１が示されている。
図１４３（ｂ）は、図１４２のステップＳ７２１において生成されるノズルタイプ毎の部品ヒストグラムを示している。ここでは、部品ヒストグラム７２０が部品ヒストグラム７２０ａと７２０ｂに分割され、部品ヒストグラム７２１が部品ヒストグラム７２１ａと７２１ｂに分割されている。
図１４３（ｃ）は、図１４２のステップＳ７２２においてＺ軸上に配置された部品ヒストグラムを示している。ここでは、右ブロック１１５ｂに部品ヒストグラム７２０ａと７２１ａが配置され、左ブロック１１５ａに部品ヒストグラム７２０ｂと７２１ｂが配置されている。
【０２５３】
図１４４は、図１４２に示されたフローチャートにおける後半処理（Ｓ７２３〜Ｓ７２６）の具体例を示す図である。
図１４４（ａ）は、図１４２のステップＳ７２４におけるスキャンの方向とスキャンの順番（数値１〜１３）を示している。ここでは、対象となる２つの部品ヒストグラム、即ち、ノズルタイプＳの部品ヒストグラム７２５とノズルタイプＭの部品ヒストグラム７２６とが示されている。なお、いずれのタイプのノズルについても、ノズルリソース数の制約がないものとしている。
図１４４（ｂ）は、図１４２のステップＳ７２４におけるタスク生成の様子を示している。ここでは、部品ヒストグラム７２５の最下段に位置する８個の部品と最下段から２番目の段に位置する２個の部品によって１つのタスクが生成される様子が示されている。
【０２５４】
図１４４（ｃ）は、図１４２の後半処理（Ｓ７２３〜Ｓ７２６）において繰り返し生成されるタスク（吸着パターン１〜５）を示している。つまり、各部品ヒストグラム７２５、７５６の部品中に記された数値は、タスクの番号（順番）である。ここで、タスク番号３のタスク３は、部品ヒストグラム７２５に属する部品と部品ヒストグラム７２６に属する部品とが混在する、つまり、異なるタイプのノズルが使用されるタスクとなっている。
【０２５５】
図１４４（ｄ）は、図１４２の後半処理（Ｓ７２３〜Ｓ７２６）において生成されるタスク列７２７、即ち、最終的に生成される初期タスク７２７を示している。なお、部品ヒストグラム７２５に属する部品は細い線で囲まれ、部品ヒストグラム７２６に属する部品は太い線で囲まれている。また、タスク列における先頭（実装順序の早いもの）は、最下段に置かれたタスク１である。
【０２５６】
図１４４（ｅ）は、図１４４（ｄ）に示された初期タスク７２７のノズルパターンである。ここで、「ノズルパターン」とは、対象となるタスク列について、使用するノズルのタイプを装着ヘッドの位置（マルチ装着ヘッド１１２上の装着位置）に対応づけて示したパターンである。ここでは、３番目のタスクにおいて、タイプＳとタイプＭが混在している様子が示されている。
図１４５は、このような「横取り法」による効果を示す図である。ここでは、説明の便宜上、１つの部品ヒストグラム７３０を対象とし、これまでのアルゴリズムによって生成される初期タスク７３１と、この「横取り法」によって生成される初期タスク７３２について、吸着上下回数が比較されている。
なお、太線で囲まれた部品は、同一タスクに属することを意味し、部品中の数値は、その部品を吸着する装着ヘッド番号を示す。
【０２５７】
従来手法によれば、図１４５の上段に示されるように、部品ヒストグラム７３０は、４つのタスク７３１、７３２ａ及びｂ、７３３ａ及びｂ、７３４から構成されるので、合計４０回の吸着上下回数を必要とする。一方、「横取り法」によれば、図１４５の下段に示されるように、部品ヒストグラム７３０は、４つのタスク７３５〜７３８から構成されるので、合計１４０回の吸着上下回数を必要とするだけである。
【０２５８】
４．３．２  タスク分割
ノズル交換を最適化することによって、汎用部品の実装時間は大きく短縮化され得る。ところが、ＮＣデータを使って、ノズル交換を直接に制御できるわけではなく、ＮＣデータに記述された部品種に応じて、部品実装機１００本体が自動的にノズル交換を行う。そのため、ノズル交換中の交換動作を最適化するためには、タスクに含める部品種を変化させて、間接的に最適化することになり、タスクの最適化とノズル交換動作の最適化を同時に行う必要があり、これは、現実的ではない。
【０２５９】
そこで、ノズル交換そのものが少なくなるようなタスク編成を作り出して、実装時間全体の短縮を目指すこととした。
そのタスク編成の１つの方法が「タスク分割」である。具体的には、初期タスクの中の各タスクが使用するノズルパターンを調べ、その前後のタスクでノズル交換が行われるタスクに着目し、ノズル交換をする前のノズルパターンで吸着できる部品種から構成されるタスクと、ノズル交換をした後のノズルパターンで吸着できる部品種から構成されるタスクに分割し、無駄なノズル交換が行われないようなタスクに再構成する。
図１４６は、「タスク分割」によるノズル交換動作の最適化アルゴリズムの処理手順を示すフローチャートである。まず、最適化の対象となるタスク列（あるいは、初期タスク）について、ノズルパターンを調べることによって、２種類以上のノズルを用いるタスクが存在するか否か判断する（Ｓ７４０）。
【０２６０】
その結果、そのようなタスクが存在しない場合には（Ｓ７４０でＮｏ）、「タスク分割」は不要と判断し、終了する。
一方、そのようなタスクが存在する場合には（Ｓ７４０でＹｅｓ）、それらタスクを、ノズルの種類が１つとなるように、分離する（Ｓ７４１）。そして、分離によって得られたタスクの一方（直前のタスクと異なるノズルを用いるタスク）を、ノズルが同じ一連のタスク（以下、同一タイプのノズルを用いる一連のタスクを「タスクセット」と呼ぶ。）の最後に移動させる（Ｓ７４２）。
これによって、異なるタイプのノズルが混在したタスクは消滅し、全てのタスクは、同一タイプのノズルを用いる部品だけで編成されることとなる。
図１４７は、図１４６に示されたフローチャートにおける処理の具体例を示す図である。ここでは、「横取り法」によって生成された初期タスクに対して「タスク分割」を行っていく場合の例が示されている。
【０２６１】
図１４７（ａ）は、「タスク分割」の対象となるタスク列７４０を示し、ここでは、図１４４（ｄ）に示されたタスク列７２７に等しい。ここで、タスク列７４０を構成するタスク３には、２種類のノズルが混在している。そのために、このタスク３の前後においてノズル交換が必要とされる状態となっている。つまり、タスク２を終えてタスク３を実行するときと、タスク３を終えてタスク４を実行するときにおいて、タイプＳからＭへのノズル交換が必要とされる。
図１４７（ｂ）は、図１４６のステップＳ７４１におけるタスクの分離の様子を示している。ここでは、タスク３が、ノズルタイプＳだけを含むタスク7４１とノズルタイプＭだけを含むタスク7４２とに分割されている。
図１４７（ｃ）は、図１４６のステップＳ７４２におけるタスクの移動の様子を示している。ここでは、分離生成されたタスク7４２が、タスクセット７４３の最後尾に移動されている。
【０２６２】
図１４７（ｄ）は、図１４７（ｃ）のタスク列に対応するノズルパターンである。異なるタイプのノズルを含むタスクは消滅し、元の初期タスクは、タイプＳのノズルだけを含む３つのタスクと、タイプＭのノズルだけを含む３つのタスクとから編成されることとなった。
このような「タスク分割」後のノズルパターンから分かるように、このタスク列は、タスク３を終えてタスク４を実行する際にノズル交換（タイプＳからＭ）を必要としているだけであり、２回必要とされたノズル交換が１回に減少されている。
【０２６３】
４．３．３  タスク融合
上述の「タスク分割」によれば、ノズル交換回数は減少するものの、タスクの数が増えている。そのために、トータルとして、最適化のレベルが充分とは言えない場合も起こり得る。
【０２６４】
そこで、増えたタスクを他のタスクと融合することによって全体のタスク数の増加を抑える「タスク融合」を行うこととしている。
図１４８は、「タスク融合」による最適化アルゴリズムの処理手順を示すフローチャートである。まず、最適化の対象となるタスク列について、タスクセットごとに、融合可能なタスクの組が存在するか否か、即ち、装着ヘッドの位置が重複しないタスクの組が存在するか否か判断する（Ｓ７５０）。具体的には、装着ヘッド毎に（マルチ装着ヘッド１１２上の同一位置について）、ノズル装着のＡＮＤ（ノズル装着が必要な場合に「１」、不要な場合に「０」とした論理積）をとった時に全ノズルの値が０となるようなタスクの組を探す。
その結果、そのようなタスクの組が存在しない場合には（Ｓ７５０でＮｏ）、「タスク融合」は不可能と判断し、終了する。
【０２６５】
一方、そのようなタスクの組が存在する場合には（Ｓ７５０でＹｅｓ）、それらタスクを融合する（Ｓ７５１）。具体的には、それらタスクを、ノズルの位置を維持したまま連結することで、１つのタスクに合成する。
図１４９は、図１４８に示されたフローチャートにおける処理の具体例を示す図である。ここでは、図１４７に示された「タスク分割」により生成されたタスク列に対して「タスク融合」を行っていく場合の例が示されている。
図１４９（ａ）は、「タスク融合」の対象となるタスク列を示し、ここでは、図１４７（ｃ）に示されたものに等しい。ここで、タスク５とタスク7４２は、同一のタスクセットに属し、かつ、マルチ装着ヘッド１１２上の異なる位置で吸着される部品だけを含んでいるので、これらタスク５及び７４２は、融合可能と判断される。
【０２６６】
図１４９（ｂ）は、図１４８のステップＳ７５１におけるタスクの融合の様子を示している。ここでは、タスク５とタスク7４２とが部品の位置を維持したまま融合されている様子が示されている。
図１４９（ｃ）は、図１４９（ｂ）のタスク列に対応するノズルパターンである。図１４７（ｄ）に示されたノズルパターンと比較して分かるように、図１４９（ｃ）に示されたノズルパターンでは、タイプＭのノズルを含むタスクが１つ減少している。これによって、ノズル交換回数を増やすことなく、全体のタスク数が減少され、最適化レベルがさらに向上され得る。具体的には、ノズルの交換回数が２回から１回に減少している。
【０２６７】
４．３．４  タスク入替
上述の「タスク分割」と「タスク融合」によって、ノズル交換動作は最適化されたが、その最適化は、対象となった１つのタスク列（多くの場合、１つの部品グループ）内での最適化に止まる。つまり、その前後に位置するタスク列との関係では、無駄なノズル交換が生じている可能性がある。
【０２６８】
図１５０は、その具体例を示す。ここでは、「タスク分割」や「タスク融合」等によって部品グループの単位でノズル交換動作が最適化された２つの部品グループ１及び２のノズルパターン７６０及び７６１が示されている。部品グループ１のノズルパターン７６０は、タイプＳのタスクセット７６０ａとタイプＭのタスクセット７６０ｂがこの順に並んで構成され、続く、部品グループ２のノズルパターン７６１は、タイプＭのタスクセット７６１ａとタイプＳのタスクセット７６１ｂがこの順に並んで構成されているとする。
本図に示されたノズルパターンから分かるように、部品グループ間において無駄なノズル交換が生じている。例えば、タイプＳのノズルに着目すると、タスクセット７６０ａを実行するためにマルチ装着ヘッド１１２に装着され、続くタスクセット７６０ｂを実行するためにマルチ装着ヘッド１１２から取り外されるが、最後にタスクセット７６１ａを実行するために再びマルチ装着ヘッド１１２に装着されなければならないという無駄が生じている。つまり、ノズルタイプが、Ｓ→Ｍ→Ｓ→Ｍと変化しているので、合計３回のノズル交換が必要とされている。
【０２６９】
そこで、部品グループ間における無駄なノズル交換を解消するために、各部品グループに属するタスクセットを部品グループ内で入れ替える「タスク入替」を行うこととしている。
図１５１は、「タスク入替」による最適化アルゴリズムの処理手順を示すフローチャートである。ここでは、いわゆる総当り法により、最適なタスクセットの並びを決定している。
具体的には、まず、最適化の対象となる複数の部品グループ全体について、とり得る全てのタスクセットの順列を特定する（Ｓ７６０）。このとき、部品グループ単位での並びを変えないように、各タスクセットは、部品グループ内でのみ移動可能とする。
そして、各順列について（Ｓ７６１〜Ｓ７６３）、そのノズルパターンにおけるノズル交換回数を算出し（Ｓ７６２）、最も小さいノズル交換回数となるノズルパターン（タスクセットの順列）を求める最適解とする（Ｓ７６４）。
【０２７０】
図１５２は、「タスク入替」による最適化によって得られたノズルパターンの例を示す。このノズルパターンは、図１５０に示されたノズルパターンに対する「タスク入替」によって得られたものであり、部品グループ１を構成する２つのタスクセット７６０ａ及び７６０ｂの順序が入れ替えられている。
本図に示されるノズルパターンによれば、ノズルタイプが、Ｍ→Ｓ→Ｍと変化するだけなので、合計２回のノズル交換で済む。つまり、「タスク入替」によって、３回のノズル交換が２回に削減されている。
【０２７１】
４．４  ノズル制約を考慮した最適化
ここでは、ノズルステーション１１９に置かれるノズルの位置が固定されている場合への対応方法と、ノズルの本数が１０本に満たない場合における小部品の最適化について説明する。
【０２７２】
４．４．１  ノズルステーション上のノズル配置を固定した場合への対応
複数のＮＣデータを同時に最適化する場合等においては、ＮＣデータごとにノズルステーション１１９上のノズル配置を異なるものにしておくことが許されない等の原因により、「ノズルステーション１１９上のノズル配置」が固定され、最適化における制約条件の１つとなってくる場合がある。
【０２７３】
ノズルステーション１１９上のノズル配置を固定した場合には、部品実装機１００の機構上の制約（ノズルステーション１１９上及び部品供給部１１５ａ及びｂ上でのマルチ装着ヘッド１１２の可動範囲）から、指定されたノズルで指定された部品を吸着することができないということが生じ得る。
そこで、ノズルステーション１１９上のノズル配置が与えられた場合に、可能解チェック（可能な部品実装順序が存在し得るか否かの判定）を行うこととしている。つまり、ノズルステーション１１９上のノズル配置と部品テープのＺ配列とが与えられた場合に、対象とする全ての部品が対応するノズルで吸着され得るか否かを判断する。
図１５３は、その前提としての制約を説明するための図であり、ノズルステーション１１９上でのマルチ装着ヘッド１１２の可動範囲に基づくノズル交換の制約を示す図である。こここには、マルチ装着ヘッド１１２が最右端に位置するときのマルチ装着ヘッド１１２とノズルステーション１１９との相対的な位置関係（マルチ装着ヘッド１１２及びノズルステーション１１９の正面図）、ノズルステーション１１９の平面図、及び、ノズル配置と交換可能（装着可能）な装着ヘッドとの関係（○印が交換可能を意味する）を示すテーブル７７０が示されている。
【０２７４】
なお、左方向については、マルチ装着ヘッド１１２は、ノズルステーション１１９の位置を超えて移動することができ、ノズル交換上の制約はない。
本図から分かるように、ノズルステーション１１９上の最左端から数えて第１〜第４列に置かれたノズルｎ１〜ｎ４を装着できる装着ヘッドは、装着ヘッドＨ１〜Ｈ１０であり、制約は存在しない。しかし、他のノズルｎ５〜ｎ１０については、制約が存在する。つまり、第５列に置かれたノズルｎ５を装着できる装着ヘッドは装着ヘッドＨ２〜Ｈ１０に限られ、第６列に置かれたノズルｎ６を装着できる装着ヘッドは装着ヘッドＨ３〜Ｈ１０に限られ、・・・、第１０列に置かれたノズルｎ１０を装着できる装着ヘッドは装着ヘッドＨ７〜Ｈ１０に限られる。
図１５４は、もう１つの制約を説明するための図であり、部品供給部１１５ａ及びｂ上でのマルチ装着ヘッド１１２の可動範囲に基づく部品吸着の制約を示す図である（図５に対応するが、図５の内容と細部において異なる例である）。
【０２７５】
図１５４（ａ）は、マルチ装着ヘッド１１２が最左端に位置するときのマルチ装着ヘッド１１２と部品供給部１１５ａとの相対的な位置関係を示している。ここで、部品供給部１１５ａに記された一連の数値は、Ｚ番号である。図１５４（ｂ）は、マルチ装着ヘッド１１２が最右端に位置するときのマルチ装着ヘッド１１２と部品供給部１１５ｂとの相対的な位置関係を示している。図１５４（ｃ）は、Ｚ番号ごとにアクセス可能な装着ヘッド（○印）と不可能な装着ヘッド（×印）とを示す表である。
本図から分かるように、Ｚ番号１〜１７、８６〜９６の部品テープについては、全ての装着ヘッドがアクセスできるわけではない。つまり、Ｚ番号１の部品テープにアクセスできる装着ヘッドは、装着ヘッドＨ１だけであり、Ｚ番号２の部品テープにアクセスできる装着ヘッドは、装着ヘッドＨ１、Ｈ２であり、・・・、Ｚ番号１７の部品テープにアクセスできる装着ヘッドは、装着ヘッドＨ１〜Ｈ９であり、Ｚ番号８６の部品テープにアクセスできる装着ヘッドは、装着ヘッドＨ２〜Ｈ１０であり、・・・、Ｚ番号９６の部品テープにアクセスできる装着ヘッドは、装着ヘッドＨ７〜Ｈ１０である。
【０２７６】
なお、Ｚ軸の左右両端近辺で、このようなアクセスの制約が生じるのは、部品実装機１００の設計上の都合である。つまり、このような制約が生じないことよりも、部品供給部１１５ａ及びｂにセットできる部品テープの数を多くすることを優先したためである。
以上の図１５３と図１５４とから分かるように、ノズルステーション１１９上のノズル配置が与えられた場合の可能解チェックは、Ｚ軸の左端付近に配置された部品に対して装着ノズルがアクセスできるか否かを検討すればよいことになる。Ｚ軸の左端付近にアクセス可能な装着ヘッドは、ヘッド番号の低い装着ヘッドに限られ（図１５４（ｃ））、しかも、ヘッド番号の低い装着ヘッドは、ノズルステーション１１９上の全てのノズルを吸着できるとは限らない（図１５３（ｃ））からである。
一方、Ｚ軸の右端付近については、そのような検討は要らない。少なくとも、装着ヘッドＨ１０は、ノズルステーション１１９上の全てのノズルを吸着することができ（図１５３（ｃ））、最大のＺ番号９６の位置にアクセスすることができるので（図１５４（ｃ））、ノズルステーション１１９上のノズル配置による制約は生じないからである。
【０２７７】
図１５５は、ノズルステーション上のノズル配置が与えられた場合の可能解チェックをするときの処理手順を示すフローチャートである。
まず、与えられた部品テープのＺ配列から、ノズルタイプNtype毎の最小のＺ番号PZmin(Ntype,Z配列)を特定する（Ｓ７８０）。例えば、タイプＳのノズルを用いる部品テープのうち、最左端に置かれる部品テープのＺ番号を特定する。
【０２７８】
次に、与えられたノズルステーション１１９上のノズル配置NPから、ノズルタイプNtypeごとに、以下の処理を繰り返す（Ｓ７８１〜Ｓ７８５）。
まず、そのノズルタイプNtypeのノズルを吸着することが可能な最小のヘッド番号Hmin（Ntype,NP）を特定する（Ｓ７８２）。例えば、タイプＳのノズルは、ノズルステーション１１９上の最左列から数えて第６列に置かれている場合には、図１５３（ｃ）に示された表を参照することで、このタイプＳのノズルを吸着可能な装着ヘッドの最小番号は「３」と特定できる。
【０２７９】
続いて、いま特定したヘッド番号Hmin(Ntype,NP)から、ノズルタイプNtypeのノズルが到達できる最小のＺ座標NZmin（Ntype,NP）を特定する（Ｓ７８３）。例えば、ヘッド番号Hmin(Ntype,NP)が「３」である場合には、図１５４（ｃ）に示された表を参照することで、このノズルが到達できる最小のＺ座標NZmin（Ntype,NP）は「４」と特定することができる。
次に、いま特定したＺ座標NZmin（Ntype,NP）が、そのノズルタイプNtypeについて上記ステップＳ７８０で特定したＺ番号PZmin(Ntype,Z配列)以下であるか否かを判定する（Ｓ７８４）。つまり、当該Ntypeについて、
NZmin（Ntype,P）≦  PZmin（Ntype,Z配列）
が成立するか否か判定する。
【０２８０】
これは、このノズルタイプNtypeのノズルについて、ノズルステーション１１９上のノズル配置によって定まるアクセス可能な最小のＺ座標NZmin（Ntype,NP）が、与えられたＺ配列から定まる最小のＺ番号PZmin(Ntype,Z配列)以下であること、即ち、マルチ装着ヘッド１１２の左方向への移動に関して、そのノズルが、吸着すべき全ての部品を吸着することができるか否かを判定する。
その結果、全てのノズルタイプNtypeについて、ステップＳ７８４での判定が成立した場合には、与えられたノズル配置とＺ配列に対して可能解が存在すると判断し（Ｓ７８６）、そうでない場合には、可能解が存在しないと判断する（Ｓ７８７）。
このような可能解チェックを初期タスクの構成時や状態更新時等に行うことで、ノズルステーション上のノズル配置を固定した影響を取り込んだ最適化が可能となる。
【０２８１】
４．４．２  使用ノズルが１０本未満の場合の小部品の最適化
マルチ装着ヘッド１１２は最大１０個の部品を同時に吸着できるが、そのような効率的な部品吸着が可能となるのは、マルチ装着ヘッド１１２に１０本のノズルが装着されていることが前提となる。ところが、生産現場においては、ある部品実装機１００で使用できるノズルの本数が１０本に満たないという状況が発生する。このような状況であっても、マルチ装着ヘッド１１２は、ノズルステーション１１９上でノズル交換を行うことで、装着するノズルの位置をずらす等の変更をすることができるので、理論的には、必要なタイプのノズルが少なくとも１本用意されていれば、Ｚ軸上のいずれの位置に置かれた部品であっても吸着し、全ての部品に対する実装を完了することができる。
【０２８２】
しかしながら、ノズル交換は時間を要する動作であるので、特に実装点数の多い小部品については、ノズル交換を最小に抑える実装順序が求められる。
そこで、使用ノズルが１０本未満の場合における小部品の最適化として、刈り上げ処理等のこれまでの小部品用アルゴリズムをベースとし、ノズル交換が最小となるように、以下のような最適化を行うこととしている。
いま、使用ノズル本数がｎ（＜１０）本とすると、ノズルパターンについては、次の２つのノズルパターンを用意し、これら２つのノズルパターンだけ（場合によっては、いずれかのノズルパターンのみ）を用いて全ての小部品を実装することとする。
(i)ノズルパターン１
ヘッド番号１〜ｎにノズルを装着したパターン
(ii)ノズルパターン２
ヘッド番号（１０−ｎ＋１）〜１０にノズルを装着したパターン
図１５６は、使用ノズル本数が６本の場合に用意する２つのノズルパターンの例を示す。ノズルパターン１は、ヘッド番号１〜６の６個の装着ヘッドにだけノズルが装着された状態であり、ノズルパターン２は、ヘッド番号５〜１０の６個の装着ヘッドにだけノズルが装着された状態である。
【０２８３】
図１５７は、ノズル交換のタイミングを説明するフローチャートである。ここでは、与えられた部品テープのＺ配列における位置（左右ブロック、Ｚ番号）に応じて、２種類のノズルパターン１及び２のいずれを用いるか、及び、どのようなタイミングでノズルパターンを交換するかが示されている。
左ブロックに配置された部品テープについては（Ｓ８００で左）、Ｚ番号１〜１７の位置に１つでも部品テープが配置されている場合には（Ｓ８０１でＹｅｓ）、ノズルパターン１を用いてＺ番号１から４８の方向に部品を吸着していき（Ｓ８０２）、Ｚ番号１〜１７の位置に吸着すべき部品が無くなった時点で（Ｓ８０１でＮｏ）、マルチ装着ヘッド１１２のノズルパターンを１から２に変え、残る部品をＺ番号１８から４８の方向に吸着していく（Ｓ８０３）。
【０２８４】
一方、左ブロックのＺ番号１〜１７の位置に１つも部品テープが配置されていない場合には（Ｓ８０１でＮｏ）、最初からノズルパターン２を用いてＺ番号１８から４８の方向に部品を吸着していく（Ｓ８０３）。
また、右ブロックに配置された部品テープについては（Ｓ８００で右）、全ての部品に対して、最初からノズルパターン２で吸着していく（Ｓ８０４）。
【０２８５】
このようなノズル交換のタイミングとしているのは、次の理由による。つまり、図１５４（ｃ）に示されたＺ番号ごとのアクセス可能な装着ヘッドのヘッド番号から分かるように、ヘッド番号１０の装着ヘッドＨ１０は、Ｚ番号が１８〜９６の位置にアクセスできる。したがって、使用ノズルの本数ｎが１以上である限り、ノズルパターン２によってＺ番号１８〜９６の部品テープは必ず吸着され得る。一方、Ｚ番号１〜１７の部品テープについては、少なくともヘッド番号１の装着ヘッドＨ１がそれら部品テープにアクセスできるので、使用ノズルの本数ｎが１以上である限り、ノズルパターン１によってＺ番号１〜１７の部品テープは必ず吸着され得る。そして、多くのＺ番号にアクセスできるノズルパターン２を優先して使用する。これによって、わずか２種類のノズルパターンだけを用い、かつ、少ないノズル交換回数で、いかなる種類のＺ配列についても適用することができる。
なお、吸着パターンの生成については、与えられた部品ヒストグラムに対して、これまでの１０点単位に代えてｎ点単位で刈り上げ処理等を行うことで、吸着パターンを生成すればよい。
【０２８６】
以上、本発明に係る部品実装順序の最適化について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されない。
例えば、最適化装置３００は、具体的な構成を備える部品実装機１００、２００それぞれにダウンロードするための最適なＮＣデータを生成するために用いられたが、このような用途だけでなく、生産性に関する要求仕様を満たすために必要とされる生産ラインの構成を決定するために用いることができるのは言うまでもない。生産対象となる基板の実装点データとモデリングした仮想的な電子部品実装システムの実装装置情報等とを最適化装置３００に与え、得られた最適状態（ラインタクト）が要求仕様を満たすか否か判断すればよい。
【０２８７】
具体的には、この最適化装置３００を、(i)実装装置の設計として、例えば、マルチ装着ヘッド１１２のノズル数を４ノズルヘッド→１０ノズルヘッド→８ノズルヘッドを変えてみたり、ノズルピッチを２１．５ｍｍ→２２ｍと変えてみたり、部品カセットのピッチ（Z軸ピッチ）を変えてみたり、部品認識カメラの位置を変えてみたりすることで、最も効率のよい（生産性の高い）ヘッド等を決定するのに用いたり、(ii)複数の生産ラインのうち、どの生産ライン（又は、実装装置）で対象の基板を生産すべきかの決定に用いたり、(iii)実装装置の販売や営業用のツールとして、いかなるオプション（部品カセットやノズルの本数や種類）を装備すれば、いかなる生産性（時間あたり何枚の基板を生産することができるか）が確保されるかの計算に用いたりすることができる。
また、最適化装置３００は、部品実装機１００、２００とは別個独立した装置であったが、これら部品実装機１００、２００に内蔵されていてもよい。
【０２８８】
また、状態最適化部３１６は、部品グループＧ[1]〜Ｇ[5]に属する小部品と部品グループＧ[6]〜Ｇ[9]に属する汎用部品それぞれに対して、異なる探索アプローチによる最適化を行ったが、本発明は、このような分類やアプローチに限られない。
また、上記交差解消法では、２つのタスクそれぞれの部品の実装点を接続する折れ線（パス）どうしの交差を解消するように実装順序を入れ替えてみてタクトが小さくなるか否かで実装順序の最適化を行ったが、交差していないパスどうしを入れ替えてみてもよい。交差していないタスクのパスを入れ替えることでタクトが短縮化されることもあり得るからである。
なお、産業上の利用可能性として、本発明に係る部品実装順序最適化方法は、電子部品をプリント基板に実装する部品実装機による部品の実装順序を最適化する最適化装置に利用することができる。生産ラインに設置されて使用される部品実装機のコントローラとしてだけでなく、生産ラインを構築する前の段階で、導入予定の部品実装機の構成・仕様と部品実装時間との関係を見積もる等のために使用するシミュレーション・評価ツールとして利用することもできる。
【０２８９】
５  用語の説明
本実施の形態で用いられている主な用語の意味を以下に列挙する。
部品実装システム：
最適化装置と部品実装機とを含むシステムのこと。
最適化装置：
部品の実装順序を最適化する装置のこと。具体的には、短いタクト（実装時間）で基板を生産するために、部品実装機における最適な部品カセットの配列（どの部品テープを収めた部品カセットを部品実装機のどの位置（Ｚ軸）に配置するか）、マルチ装着ヘッドによる部品の吸着及び装着の順序（どの部品カセットから部品を吸着し、基板上のどの実装点に装着するか）等を決定する。
部品実装機：
最適化後のＮＣデータに従って、マルチ装着ヘッドを用いて部品カセットから部品を吸着し、基板に装着していく生産ロボットのこと。複数のサブ設備を備えるタイプもある。
サブ設備：
１つのマルチ装着ヘッドと複数の部品カセットを備え、他のサブ設備とは独立して（並行して）、基板への部品実装を実行する装置（実装ユニット）。
シングルカセット：
部品カセットの一種で、１つの部品テープだけが装填される。
ダブルカセット：
部品カセットの一種で、最大２個の部品テープが装填され得る。ただし、同一送りピッチの部品テープに限定される。
Ｚ軸：
部品実装機（サブ設備を備える場合には、サブ設備）ごとに装着される部品カセットの配列位置を特定する座標軸（又は、その座標値）のこと。
部品種：
抵抗、コンデンサ等の電子部品の種類のこと。各部品種には、部品の情報（電気的特性、形状、部品数、最大分割数、カセット種別等）が対応づけられている。
部品テープ：
同一部品種の複数の部品をテープ上に並べたもの。最適化処理においては、同一の部品種に属する部品の集合（それら複数個の部品が仮想的なテープ上に並べられたもの）を特定するデータをいう。「部品分割」と呼ばれる処理によって、１つの部品種に属する部品群（又は、1本の部品テープ）が複数本の部品テープに分割される場合がある。分割後のテープ本数が分割数と呼ばれる。
実装点：
部品を装着すべき基板上の座標点のこと。同一部品種の部品が異なる実装点に装着される場合もある。同一の部品種に係る部品テープに並べられた部品（実装点）の個数の合計は、その部品種の部品数（実装すべき部品の総数）と一致する。
部品ヒストグラム：
部品テープ（部品種）を横軸、部品数を縦軸とする座標に描かれた柱状グラフのこと。最適化によって、最終的に、部品カセットの配列にマッピングされる。
コア：
部品数の多い順に部品テープを並べた部品ヒストグラムに対して、「刈り上げ法」により、ｎ点同時吸着の吸着パターンで刈り上げていった結果、残った部品を「コア部品」といい、それらコア部品を収めた部品テープ、部品カセットそれぞれを「コア部品テープ」、「コアカセット」と呼ぶ。
刈り上げ：
部品数の多い順に部品テープを並べた部品ヒストグラムに対して、部品数の小さい部品から、ｎ点同時吸着の吸着パターンを取り除いていく処理のこと。
タスク：
マルチ装着ヘッドによる部品の吸着・移動・基板上への装着という一連の実装動作の繰り返しにおける１回分の実装動作（吸着・移動・装着）のこと。
吸着パターン：
１以上のタスクについて、マルチ装着ヘッドが（同時）吸着する部品をタスク単位で示した図、又は、それらの部品群のこと。
タスクグループ：
部品の同時吸着という観点から関連したタスクの集まりのこと。部品数が同じ部品テープをn本集め、それらn本の部品テープから1点ずつｎ個の部品を同時に吸着できるように、n点同時吸着できるタスクを集めることを目指してタスクグループを作ることによって部品カセットの並びを決定する最適化手法を「タスクグループ生成法」と呼ぶ。
山：
最適化によって並びが決定された部品テープの集まり、又は、それら部品テープの並びに対応する部品ヒストグラムのこと。「刈り上げ法」による最適化が施された後の部品ヒストグラムは、緩やかな斜面と急な斜面を有する「山」の形状を有する。生成された「山」に対して更に最適化が施される場合もある。
ラインバランス：
部品実装機（サブ設備を備える場合には、サブ設備）ごとのタクトの分布における平準化の程度のこと。タクト分布を平準化するように部品実装順序を決定する処理を「ラインバランス処理」と呼ぶ。
【産業上の利用可能性】
【０２９０】
本発明は、電子部品をプリント配線基板等の基板に実装する部品実装機を対象として最適な部品の実装順序を決定する部品実装順序最適化装置として、また、部品実装順序を決定するコントローラを備える部品実装機あるいは部品実装システムとして、さらに、部品実装機と接続されていない状態で部品の実装順序を決定し評価するスタンドアローンのシミュレータ（部品実装順序の最適化ツール）等として、利用することができる。
【図面の簡単な説明】
【０２９１】
【図１】本発明に係る部品実装システム全体の構成を示す外観図である。
【図２】同部品実装システムにおける部品実装機の主要な構成を示す平面図である。
【図３】同部品実装機の作業ヘッドと部品カセットの位置関係を示す模式図である。
【図４】（ａ）は、同部品実装機が備える２つの実装ユニットそれぞれが有する合計４つの部品供給部の構成例を示し、（ｂ）は、その構成における各種部品カセットの搭載本数及びＺ軸上の位置を示す表である。
【図５】１０ノズルヘッドが吸着可能な部品供給部の位置（Ｚ軸）の例を示す図及び表である。
【図６】実装の対象となる各種チップ形電子部品の例を示す図である。
【図７】部品を収めたキャリアテープ及びその供給用リールの例を示す図である。
【図８】テーピング電子部品が装着された部品カセットの例を示す図である。
【図９】最適化装置のハードウェア構成を示すブロック図である。
【図１０】図９に示された実装点データの内容例を示す図である。
【図１１】図９に示された部品ライブラリの内容例を示す図である。
【図１２】図９に示された実装装置情報の内容例を示す図である。
【図１３】最適化装置の構成を示す機能ブロック図である。
【図１４】図９に示された最適化プログラムの機能構成を示すモジュール構成図である。
【図１５】（ａ）は、部品グループ生成部が生成する部品グループを説明するための図であり、（ｂ）は、部品グループ生成部による部品グループの生成過程で作成される部品表の例を示す図である。
【図１６】ラインバランス最適化部の第１ＬＢＭ部によるタスクグループのサブ設備への振り分け処理の様子を示す図である。
【図１７】ラインバランス最適化部の第２ＬＢＭ部によるラインバランスの最適化前におけるタクト分布、最適化によるタスクグループの移動の様子、最適化後におけるタクト分布を示す。
【図１８】ラインバランス最適化部の第２ＬＢＭ部によるラインバランスの最適化手順を示すフローチャートである。
【図１９】状態最適化部の小部品最適化部による小部品の実装順序最適化の概略手順を示すフローチャートである。
【図２０】吸着パターンを説明するための図である。
【図２１】タスクグループ生成法による吸着パターンの生成の対象となる部品の部品ヒストグラム、その部品ヒストグラムから生成される吸着パターンを示す。
【図２２】部品ヒストグラムにおける未配置部分、その部品ヒストグラムの未配置部分から生成される吸着パターンを示す。
【図２３】刈り上げ法による吸着パターンの生成の対象となる部品の部品ヒストグラムである。
【図２４】図２３に示された部品ヒストグラムから、１０個の部品並びの単位で部品を取っていく（刈り上げていく）様子を示す図である。
【図２５】図２４に示された刈り上げ後に残された部品を対象とする部品ヒストグラムである。
【図２６】図２５に示された部品ヒストグラムに対して、タスクグループ生成法に準じたダイヤグラムの生成を行っている様子を示す図である。
【図２７】刈り上げ法によってＺ軸が決定された部品種についての吸着パターンである。
【図２８】図２７に示された吸着パターンに対応する（Ｚ軸を変化させない再構築した）部品ヒストグラムである。
【図２９】ランダム選択法による部品の装着順序の最適化の手順を示すフローチャートである。
【図３０】ランダム選択法によって２つの実装点が入れ替えられる様子を示すである。
【図３１】交差解消法により部品の装着順序を最適化する様子を示す図である。
【図３２】戻り軌跡法によりタスクの順序を最適化する際に生成される作業ヘッドの移動軌跡（実装経路）を示す図である。
【図３３】同一位置の複数の吸着パターンが含まれる場合における戻り軌跡法で生成される作業ヘッドの移動軌跡を示す図である。
【図３４】（ａ）は、汎用部品最適化部による汎用部品の実装順序を最適化する際の手順を示すフローチャートであり、（ｂ）は、その最適化による最適解の探索アプローチを説明するための状態vsタクトの関係を示す図である。
【図３５】図３４（ａ）に示された山登り法による最適化（ステップＳ５５１、Ｓ５５３）の詳細な手順を示すフローチャートである。
【図３６】図３４（ａ）に示されたマルチカノニカル法による最適化（ステップＳ５５２）の詳細な手順を示すフローチャートである。
【図３７】（ａ）は、汎用部品最適化部が用いている中間表現の具体例を示し、（ｂ）〜（ｅ）は、に示された中間表現の意味（Ｚ軸配列への変換）を示す図である。
【図３８】「タスクグループ法」による最適化の概念を説明するための部品ヒストグラムである。
【図３９】小部品に対する最適化処理のフロー図である。
【図４０】刈り上げ処理の様子を示す部品ヒストグラムである。
【図４１】コア処理の様子を示す部品ヒストグラムである。
【図４２】刈り上げ処理とコア処理が施された後の部品ヒストグラムである。
【図４３】「交差解消法」による最適化の概念を説明するための実装経路図である。
【図４４】「戻り最適化」の概念を説明するための作業ヘッドの動きを示す図である。
【図４５】配列固定の制約下における最適化の概要を示す部品ヒストグラムである。
【図４６】LLサイズ基板及びXLサイズ基板において作業ヘッドが部品を装着する際に移動できる範囲の限界に基づく制約領域を示す図である。
【図４７】LLサイズ基板を対象とした最適化の概念を説明するための部品ヒストグラムである。
【図４８】「刈り上げ法」による最適化のステップ(1)を説明するための部品ヒストグラムである。
【図４９】同ステップ(2)を説明するための部品ヒストグラムである。
【図５０】同ステップ(3)を説明するための部品ヒストグラムである。
【図５１】同ステップ(4)を説明するための部品ヒストグラムである。
【図５２】同ステップ(5)を説明するための部品ヒストグラムである。
【図５３】同ステップ(6)を説明するための部品ヒストグラムである。
【図５４】同ステップ(7)を説明するための部品ヒストグラムである。
【図５５】同ステップ(8)を説明するための部品ヒストグラムである。
【図５６】同ステップ(9)を説明するための部品ヒストグラムである。
【図５７】同ステップ(10)を説明するための部品ヒストグラムである。
【図５８】同ステップ(11)を説明するための部品ヒストグラムである。
【図５９】同ステップ(12)を説明するための部品ヒストグラムである。
【図６０】同ステップ(13)を説明するための部品ヒストグラムである。
【図６１】同ステップ(14)を説明するための部品ヒストグラムである。
【図６２】同ステップ(15)を説明するための部品ヒストグラムである。
【図６３】同ステップ(16)を説明するための部品ヒストグラムである。
【図６４】同ステップ(17)を説明するための部品ヒストグラムである。
【図６５】同ステップ(18)を説明するための部品ヒストグラムである。
【図６６】同ステップ(19)を説明するための部品ヒストグラムである。
【図６７】同ステップ(20)を説明するための部品ヒストグラムである。
【図６８】同ステップ(21)を説明するための部品ヒストグラムである。
【図６９】同ステップ(22)を説明するための部品ヒストグラムである。
【図７０】同ステップ(23)を説明するための部品ヒストグラムである。
【図７１】平行四辺形のテンプレートを用いたカセット分割による最適化のステップ(1)〜(3)を説明するための部品ヒストグラムである。
【図７２】同ステップ(4)〜(6)を説明するための部品ヒストグラムである。
【図７３】同ステップ(7)〜(8)を説明するための部品ヒストグラムである。
【図７４】同ステップ(9)の一部を説明するための部品ヒストグラムである。
【図７５】同ステップ(9)の残るステップ(10)を説明するための部品ヒストグラムである。
【図７６】長方形のテンプレートを用いたカセット分割による最適化のステップ(1)〜(3)を説明するための部品ヒストグラムである。
【図７７】同ステップ(3)〜(5)を説明するための部品ヒストグラムである。
【図７８】同ステップ(5)の一部を説明するための部品ヒストグラムである。
【図７９】同ステップ(5)の残る一部を説明するための部品ヒストグラムである。
【図８０】「交差解消法」による最適化の概念を示す実装経路図である。
【図８１】「交差解消法」のアルゴリズムを説明するための実装経路図である。
【図８２】「交差解消法」による最適化の適用例を示す実装経路図である。
【図８３】「戻り最適化法」による最適化の概念を示す作業ヘッドの移動軌跡図である。
【図８４】（ａ）は、同一の部品カセットに複数の実装点がある場合における「戻り」動作を示す図であり、（ｂ）は、「戻り最適化法」を適用した場合のヘッドの戻り軌跡を示すシミュレーション結果図である。
【図８５】ダブルカセットを対象とした配列固定の制約下における最適化のステップ(1)を説明するための部品ヒストグラムである。
【図８６】同ステップ(2)を説明するための部品ヒストグラムである。
【図８７】同ステップ(3)を説明するための部品ヒストグラムである。
【図８８】同ステップ(4)を説明するための部品ヒストグラムである。
【図８９】同ステップ(5)を説明するための部品ヒストグラムである。
【図９０】同ステップ(6)を説明するための部品ヒストグラムである。
【図９１】同ステップ(7)を説明するための部品ヒストグラムである。
【図９２】同ステップ(8)を説明するための部品ヒストグラムである。
【図９３】同ステップ(9)を説明するための部品ヒストグラムである。
【図９４】同ステップ(10)を説明するための部品ヒストグラムである。
【図９５】（ａ）及び（ｂ）は、Z軸に空きがある場合における前サブ設備と後サブ設備の実装時間の例、及び、そのときのラインバランス処理を示す説明図であり、（ｃ）及び（ｄ）は、Z軸に空きがない場合における前サブ設備と後サブ設備の実装時間の例、及び、そのときのラインバランス処理（スワップ処理）を示す説明図である。
【図９６】ダブルカセットを対象とした「刈り上げ法」による最適化のステップ(1)を説明するための部品ヒストグラムである。
【図９７】同ステップ(2)を説明するための部品ヒストグラムである。
【図９８】同ステップ(3)を説明するための部品ヒストグラムである。
【図９９】同ステップ(4)を説明するための部品ヒストグラムである。
【図１００】同ステップ(5)を説明するための部品ヒストグラムである。
【図１０１】同ステップ(6)を説明するための部品ヒストグラムである。
【図１０２】同ステップ(7)を説明するための部品ヒストグラムである。
【図１０３】同ステップ(8)を説明するための部品ヒストグラムである。
【図１０４】同ステップ(9)を説明するための部品ヒストグラムである。
【図１０５】同ステップ(10)を説明するための部品ヒストグラムである。
【図１０６】同ステップ(11)を説明するための部品ヒストグラムである。
【図１０７】ノズル交換のアルゴリズムを説明するための図であり、（ａ）は、対象の部品の種類（使用可能なノズルの番号）と員数を示す表であり、（ｂ）は、処理過程を示す部品ヒストグラムである。
【図１０８】「メイン画面」の表示例を示す図である。
【図１０９】「」の表示例を示す図である。
【図１１０】「開く画面」の表示例を示す図である。
【図１１１】「カセット個数設定画面」の表示例を示す図である。
【図１１２】「部品分割設定画面」の表示例を示す図である。
【図１１３】「ノズル本数設定画面」の表示例を示す図である。
【図１１４】「ノズルステーション選択画面」の表示例を示す図である。
【図１１５】「オプション設定画面」の表示例を示す図である。
【図１１６】「Ｚ軸情報画面」の表示例を示す図である。
【図１１７】「ノズルステーション情報画面」の表示例を示す図である。
【図１１８】部品分割することなく効率的な吸着パターン（Ｚ配列）を決定するアルゴリズムの処理手順を示すフローチャートである。
【図１１９】図１１８に示されたフローチャートの処理手順を説明するための部品テープの並びを示す。
【図１２０】図１１８に示された最適化アルゴリズムによる最適化のレベルを説明するための図であり、単に員数の多い順に（右から左方向に）部品テープが並べられた部品ヒストグラムを示す。
【図１２１】図１２０に示された部品ヒストグラムを刈り上げた場合の吸着上下回数パターンを示す。
【図１２２】図１１８に示された手順で並び替えられた部品ヒストグラムを示す。
【図１２３】図１２２に示された部品ヒストグラムを刈り上げた場合の吸着上下回数パターンを示す。
【図１２４】左右ブロックへの山の振り分け処理の手順を示すフローチャートである。
【図１２５】図１２４に示されたフローチャートによる処理の様子を示す。
【図１２６】図１２４に示されたフローチャートによる他のケースにおける処理の様子を示す。
【図１２７】ダブルカセットの使用本数を見積もるアルゴリズムの処理手順を示すフローチャートである。
【図１２８】ある部品グループに属する部品テープの内訳を示す。
【図１２９】必要なダブルカセットの本数の計算例を示す。
【図１３０】ダブルカセットのペア固定を考慮したＺ配列の最適化アルゴリズムの処理手順を示すフローチャートである。
【図１３１】図１３０におけるステップＳ６６０での処理の様子を示している。
【図１３２】図１３０におけるステップＳ６６１での処理の様子を示している。
【図１３３】図１３０におけるステップＳ６６２での処理の様子を示している。
【図１３４】図１３０におけるステップＳ６６４での処理の様子を示している。
【図１３５】ＮＧヘッドを考慮した最適化アルゴリズムの処理手順を示すフローチャートである。
【図１３６】ＮＧヘッドが無い場合とＮＧヘッドがある場合それぞれの吸着パターンを比較して説明するための図であり、対象となる部品ヒストグラムを示す。
【図１３７】ＮＧヘッドが無い場合の図１３６に示された部品ヒストグラムに対する吸着パターン（刈り上げ処理とコア処理による）を示す。
【図１３８】ヘッド番号２の装着ヘッドがＮＧヘッドである場合の図１３６に示された部品ヒストグラムに対する吸着パターンを示す。
【図１３９】複数のＮＣデータを同時に最適化するときの全体の処理手順を示すフローチャートである。
【図１４０】複数ＮＣデータのＺ配列を同時に最適化する処理手順を示すフローチャートである。
【図１４１】初期Ｚ配列の決定に用いる３種類の方法を説明する具体例を示す図である。
【図１４２】「横取り法」による初期タスクの生成アルゴリズムの処理手順を示すフローチャートである。
【図１４３】図１４２に示されたフローチャートにおける前半処理（Ｓ７２０〜Ｓ７２２）の具体例を示す図である。
【図１４４】図１４２に示されたフローチャートにおける後半処理（Ｓ７２３〜Ｓ７２６）の具体例を示す図である。
【図１４５】「横取り法」による最適化の効果を示す図である。
【図１４６】「タスク分割」によるノズル交換動作の最適化アルゴリズムの処理手順を示すフローチャートである。
【図１４７】図１４６に示されたフローチャートにおける処理の具体例を示す図である。
【図１４８】「タスク融合」による最適化アルゴリズムの処理手順を示すフローチャートである。
【図１４９】図１４８に示されたフローチャートにおける処理の具体例を示す図である。
【図１５０】「タスク入替」による最適化を行う前のノズルパターンの例を示す。
【図１５１】「タスク入替」による最適化アルゴリズムの処理手順を示すフローチャートである。
【図１５２】「タスク入替」による最適化によって得られたノズルパターンの例を示す。
【図１５３】ノズルステーション上でのマルチ装着ヘッドの可動範囲に基づくノズル交換の制約を示す図である。
【図１５４】フィーダ供給部上でのマルチ装着ヘッドの可動範囲に基づく部品吸着の制約を示す図である。
【図１５５】ノズルステーション上のノズル配置が与えられた場合の可能解チェックをするときの処理手順を示すフローチャートである。
【図１５６】使用ノズル本数が６本の場合に用意する２つのノズルパターンの例を示す。
【図１５７】図１５６に示されたノズルパターンを用いて部品を吸着する場合のノズル交換のタイミングを説明するフローチャートである。
【符号の説明】
【０２９２】
１０    部品実装システム
２０    回路基板
１００    部品実装機
１１０    実装ユニット
１１２    作業ヘッド
１１２ａ〜１１２ｂ  吸着ノズル
１１３    ＸＹロボット
１１４    部品カセット
１１５ａ、ｂ、２２５ａ、ｂ  部品供給部
１１６    認識カメラ
１１７    トレイ供給部
１１８    シャトルコンベア
１１９    ノズルステーション
１２０    実装ユニット
３００    最適化装置
３０１    演算制御部
３０２    表示部
３０３    入力部
３０４    メモリ部
３０５    最適化プログラム格納部
３０６    通信Ｉ／Ｆ部
３０７    データベース部
３０７ａ  実装点データ
３０７ｂ  部品ライブラリ
３０７ｃ  実装装置情報
３１４    部品グループ生成部
３１５    ラインバランス最適化部
３１５ａ  第１ＬＢＭ部
３１５ｂ  第２ＬＢＭ部
３１５ｃ  第３ＬＢＭ部
３１６    状態最適化部
３１６ａ  小部品最適化部
３１６ｂ  汎用部品最適化部
３１６ｃ  最適化エンジン部
３１６ｃ  最適化エンジン部
【図１】
0003582655.tif 000002
【図２】
0003582655.tif 000003
【図３】
0003582655.tif 000004
【図４】
0003582655.tif 000005
【図５】
0003582655.tif 000006
【図６】
0003582655.tif 000007
【図７】
0003582655.tif 000008
【図８】
0003582655.tif 000009
【図９】
0003582655.tif 000010
【図１０】
0003582655.tif 000011
【図１１】
0003582655.tif 000012
【図１２】
0003582655.tif 000013
【図１３】
0003582655.tif 000014
【図１４】
0003582655.tif 000015
【図１５】
0003582655.tif 000016
【図１６】
0003582655.tif 000017
【図１７】
0003582655.tif 000018
【図１８】
0003582655.tif 000019
【図１９】
0003582655.tif 000020
【図２０】
0003582655.tif 000021
【図２１】
0003582655.tif 000022
【図２２】
0003582655.tif 000023
【図２３】
0003582655.tif 000024
【図２４】
0003582655.tif 000025
【図２５】
0003582655.tif 000026
【図２６】
0003582655.tif 000027
【図２７】
0003582655.tif 000028
【図２８】
0003582655.tif 000029
【図２９】
0003582655.tif 000030
【図３０】
0003582655.tif 000031
【図３１】
0003582655.tif 000032
【図３２】
0003582655.tif 000033
【図３３】
0003582655.tif 000034
【図３４】
0003582655.tif 000035
【図３５】
0003582655.tif 000036
【図３６】
0003582655.tif 000037
【図３７】
0003582655.tif 000038
【図３８】
0003582655.tif 000039
【図３９】
0003582655.tif 000040
【図４０】
0003582655.tif 000041
【図４１】
0003582655.tif 000042
【図４２】
0003582655.tif 000043
【図４３】
0003582655.tif 000044
【図４４】
0003582655.tif 000045
【図４５】
0003582655.tif 000046
【図４６】
0003582655.tif 000047
【図４７】
0003582655.tif 000048
【図４８】
0003582655.tif 000049
【図４９】
0003582655.tif 000050
【図５０】
0003582655.tif 000051
【図５１】
0003582655.tif 000052
【図５２】
0003582655.tif 000053
【図５３】
0003582655.tif 000054
【図５４】
0003582655.tif 000055
【図５５】
0003582655.tif 000056
【図５６】
0003582655.tif 000057
【図５７】
0003582655.tif 000058
【図５８】
0003582655.tif 000059
【図５９】
0003582655.tif 000060
【図６０】
0003582655.tif 000061
【図６１】
0003582655.tif 000062
【図６２】
0003582655.tif 000063
【図６３】
0003582655.tif 000064
【図６４】
0003582655.tif 000065
【図６５】
0003582655.tif 000066
【図６６】
0003582655.tif 000067
【図６７】
0003582655.tif 000068
【図６８】
0003582655.tif 000069
【図６９】
0003582655.tif 000070
【図７０】
0003582655.tif 000071
【図７１】
0003582655.tif 000072
【図７２】
0003582655.tif 000073
【図７３】
0003582655.tif 000074
【図７４】
0003582655.tif 000075
【図７５】
0003582655.tif 000076
【図７６】
0003582655.tif 000077
【図７７】
0003582655.tif 000078
【図７８】
0003582655.tif 000079
【図７９】
0003582655.tif 000080
【図８０】
0003582655.tif 000081
【図８１】
0003582655.tif 000082
【図８２】
0003582655.tif 000083
【図８３】
0003582655.tif 000084
【図８４】
0003582655.tif 000085
【図８５】
0003582655.tif 000086
【図８６】
0003582655.tif 000087
【図８７】
0003582655.tif 000088
【図８８】
0003582655.tif 000089
【図８９】
0003582655.tif 000090
【図９０】
0003582655.tif 000091
【図９１】
0003582655.tif 000092
【図９２】
0003582655.tif 000093
【図９３】
0003582655.tif 000094
【図９４】
0003582655.tif 000095
【図９５】
0003582655.tif 000096
【図９６】
0003582655.tif 000097
【図９７】
0003582655.tif 000098
【図９８】
0003582655.tif 000099
【図９９】
0003582655.tif 000100
【図１００】
0003582655.tif 000101
【図１０１】
0003582655.tif 000102
【図１０２】
0003582655.tif 000103
【図１０３】
0003582655.tif 000104
【図１０４】
0003582655.tif 000105
【図１０５】
0003582655.tif 000106
【図１０６】
0003582655.tif 000107
【図１０７】
0003582655.tif 000108
【図１０８】
0003582655.tif 000109
【図１０９】
0003582655.tif 000110
【図１１０】
0003582655.tif 000111
【図１１１】
0003582655.tif 000112
【図１１２】
0003582655.tif 000113
【図１１３】
0003582655.tif 000114
【図１１４】
0003582655.tif 000115
【図１１５】
0003582655.tif 000116
【図１１６】
0003582655.tif 000117
【図１１７】
0003582655.tif 000118
【図１１８】
0003582655.tif 000119
【図１１９】
0003582655.tif 000120
【図１２０】
0003582655.tif 000121
【図１２１】
0003582655.tif 000122
【図１２２】
0003582655.tif 000123
【図１２３】
0003582655.tif 000124
【図１２４】
0003582655.tif 000125
【図１２５】
0003582655.tif 000126
【図１２６】
0003582655.tif 000127
【図１２７】
0003582655.tif 000128
【図１２８】
0003582655.tif 000129
【図１２９】
0003582655.tif 000130
【図１３０】
0003582655.tif 000131
【図１３１】
0003582655.tif 000132
【図１３２】
0003582655.tif 000133
【図１３３】
0003582655.tif 000134
【図１３４】
0003582655.tif 000135
【図１３５】
0003582655.tif 000136
【図１３６】
0003582655.tif 000137
【図１３７】
0003582655.tif 000138
【図１３８】
0003582655.tif 000139
【図１３９】
0003582655.tif 000140
【図１４０】
0003582655.tif 000141
【図１４１】
0003582655.tif 000142
【図１４２】
0003582655.tif 000143
【図１４３】
0003582655.tif 000144
【図１４４】
0003582655.tif 000145
【図１４５】
0003582655.tif 000146
【図１４６】
0003582655.tif 000147
【図１４７】
0003582655.tif 000148
【図１４８】
0003582655.tif 000149
【図１４９】
0003582655.tif 000150
【図１５０】
0003582655.tif 000151
【図１５１】
0003582655.tif 000152
【図１５２】
0003582655.tif 000153
【図１５３】
0003582655.tif 000154
【図１５４】
0003582655.tif 000155
【図１５５】
0003582655.tif 000156
【図１５６】
0003582655.tif 000157
【図１５７】
0003582655.tif 000158