以下に、本発明に係る作業計画作成装置、作業計画作成方法および作業計画作成プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、この実施例における構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。
まず、本実施例に係る作業計画作成装置の構成について説明する。図1は、本実施例に係る作業計画作成装置の構成を示すブロック図である。図1に示す作業計画作成装置10は、大型製品に関する作業計画を作成する。大型製品は、例えば、船舶、航空機、大型の産業機械等である。大型製品に関する作業には、作業工程が完了した後に次の作業工程の着手を待つ状況が発生した場合に、製品をどこかによけておくことが難しいため、製品が作業場所を占有し続けるという特徴がある。
なお、本願において、「作業」とは、製品に関して何らかの設備が整っている場所で行われる行為、およびそれに関連する行為をいう。作業には、例えば、生産、検査、修理等が含まれる。本願において、「作業計画」とは、作業に含まれる作業工程を、どの作業場所で、いつからいつまでの期間で実施するのかを示す計画をいう。また、本願において、「製品」とは、作業の対象を意味し、必ずしも最終製品を意味しない。すなわち、本願で説明する「製品」には、他の製品に組み込まれる「部品」が含まれることがある。
図1に示すように、作業計画作成装置10は、表示部11と、入力部12と、通信部13と、媒体読取部14と、制御部15と、記憶部16とを備える。
表示部11は、液晶ディスプレイ(LED)や有機ELディスプレイ(OELD)等の表示装置を有し、制御部15から送信される制御信号に基づいて、文字や図形等の各種情報を表示する。入力部12は、キーボード等の入力装置を有し、利用者が入力装置に対して行う操作に対応する信号を制御部15へ出力する。通信部13は、所定の通信プロトコルに基づいて、他の装置との間での情報の送受信を制御する。媒体読取部14は、CD−ROM、DVD−ROM、メモリカード等の非一過的(non−transitory)な記憶媒体からプログラムやデータを読み取る。
制御部15は、演算手段であるCPU(Central Processing Unit)151と、記憶手段であるメモリ152とを備え、これらのハードウェア資源を用いてプログラムを実行することによって各種の機能を実現する。具体的には、制御部15は、記憶部16に記憶されているプログラムを読み出してメモリ152に展開し、メモリ152に展開されたプログラムに含まれる命令をCPU151に実行させる。そして、制御部15は、CPU151による命令の実行結果に応じて、メモリ152および記憶部16に対してデータの読み書きを行ったり、通信部13等の動作を制御したりする。
記憶部16は、磁気記憶装置や半導体記憶装置等の不揮発性を有する記憶装置からなり、各種のプログラムおよびデータを記憶する。記憶部16に記憶されるデータには、場所情報161と、注文情報162と、工程情報163と、固定工程情報164と、カレンダ情報165と、能力情報166と、作業計画情報167とが含まれる。記憶部16に記憶されるプログラムには、作業計画作成プログラム168が含まれる。
なお、図1において記憶部16が記憶していることとしたプログラムおよびデータの全体または一部は、媒体読取部14が読み取り可能な記憶媒体に記憶されていてもよい。また、図1において記憶部16が記憶していることとしたプログラムおよびデータの全体または一部は、通信部13による通信によって他の装置から取得されてもよい。
場所情報161は、作業工程が実施される作業場所に関する情報を保持する。図2は、場所情報161の例を示す図である。図3は、図2に示す場所情報161に対応する作業場所を含む工場の大まかな見取り図である。図3において、矢印ARは、作業場所へ製品が出入りする方向を示す。
図2に示すように、場所情報161は、場所、経由場所といった項目を有する。場所の項目には、作業場所を識別するための番号が格納される。経由場所の項目には、製品を他の場所から場所の項目の値に対応する作業場所へ移動する際、および製品を場所の項目の値に対応する作業場所から他の場所へ移動する際に経由する他の作業場所を識別するための番号が格納される。
図2に示す場所情報161では、場所の項目に「L1」、「L2」、「L3」、「L4」、「L5A」、「L5B」、「L6A」、「L6B」、「L6C」の値が設定されている。これは、図3に示すように、「L1」、「L2」、「L3」、「L4」、「L5A」、「L5B」、「L6A」、「L6B」、「L6C」のそれぞれで識別される作業場所が存在することを示している。
図2に示す場所情報161では、「L5B」に対応する経由場所の項目に「L5A」の値が設定されている。これは、図3に示すように、「L5A」で識別される作業場所の奥に「L5B」で識別される作業場所があるため、「L5B」で識別される作業場所へ製品が出入りする際に「L5A」で識別される作業場所を経由することを示している。
同様に、図2に示す場所情報161では、「L6B」に対応する経由場所の項目に「L6A」の値が設定されている。これは、図3に示すように、「L6A」で識別される作業場所の奥に「L6B」で識別される作業場所があるため、「L6B」で識別される作業場所へ製品が出入りする際に「L6A」で識別される作業場所を経由することを示している。
さらに、図2に示す場所情報161では、「L6C」に対応する経由場所の項目に「L6B」および「L6A」の値が設定されている。これは、図3に示すように、「L6B」で識別される作業場所のさらに奥に「L6C」で識別される作業場所があるため、「L6C」で識別される作業場所へ製品が出入りする際に「L6B」で識別される作業場所および「L6A」で識別される作業場所を経由することを示している。
注文情報162は、作業を行う契機となる注文に関する情報を保持する。図4は、注文情報162の例を示す図である。図4に示すように、注文情報162は、注文ID、機種ID、種別、割当順位、基準工程、最早着手日、最遅完了日といった項目を有する。注文IDの項目には、注文を識別するための識別番号が格納される。機種IDの項目には、注文に対応する製品の機種を識別するための識別番号が設定される。種別の項目には、注文に対応する作業の種別を識別するための値が格納される。割当順位の項目には、作業計画の作成時に、注文に対応する作業に含まれる作業工程を作業場所に割り当てる優先順位を示す値が格納される。
基準工程の項目には、注文に対応する作業に含まれる作業工程の内、作業の時間的な基準(マイルストーン)となる作業工程に関する情報が格納される。基準工程の項目には、工程名、開始/終了、日付といった項目を含む。工程名の項目は、時間的な基準となる作業工程の名称が格納される。開始/終了の項目には、作業工程の開始を時間的な基準とするのか、作業工程の終了を時間的な基準とするのかを示す値が格納される。日付の項目には、時間的な基準の日付が格納される。
最早着手日の項目には、作業全体の着手日として想定されている最も早い日付が格納される。最遅完了日の項目には、作業全体の完了日として想定されている最も遅い日付が格納される。
例えば、図4に示す注文情報162の例の1行目のデータは、「P01」で識別される注文は、「A」で識別される機種の製品の「生産」の作業に関するものであり、作業工程を作業場所に割り当てる優先順位が「1」番であることを示している。また、このデータは、「艤装」の作業工程の「開始」日である「2013/8/23」が、作業の時間的な基準であることを示している。さらに、このデータは、「2013/6/20」が作業の着手日として想定されている最も早い日付であり、「2013/12/1」が作業の完了日として想定されている最も遅い日付であることを示している。
工程情報163は、注文された作業に含まれる作業工程に関する情報を保持する。図5は、工程情報163の例を示す図である。図5に示すように、工程情報163は、注文ID、工程名、所要日数、予想工数、職種、優先順位といった項目を有する。工程情報163は、1つの注文IDの項目の値に対して、工程名〜優先順位の項目の値の組み合わせを複数保持できるように構成される。工程名〜優先順位の項目の値の組み合わせは、注文IDの項目の値によって識別される作業において、対応する作業工程が実施される順序が早い順に格納される。
注文IDの項目には、注文を識別するための識別番号が格納される。工程名の項目には、作業工程の名称が格納される。所要日数の項目には、作業工程の実施に必要な所要工数が格納される。予想工数の項目には、作業計画の評価のための工数が格納される。予想工数の項目を設けずに、所要日数の項目の値を作業計画の評価に用いてもよい。職種の項目には、作業工程を担当する作業者の職種を示す値が格納される。優先順位の項目には、作業工程を実施する作業場所の候補とその優先順位を示す情報が格納される。本実施例では、優先順位の項目は、各作業場所に対応する項目を有し、作業工程を実施可能な作業場所に対応する項目に優先順位を示す値が格納される。
例えば、図5に示す工程情報163の1〜5行目のデータは、「P01」で識別される注文に関する作業には、「組立」、「艤装」、「電装」、「試運転」、「調整」という作業工程が含まれることを示している。また、これらのデータは、作業工程の実施に必要な工数が、それぞれ、「30」日、「25」日、「10」日、「7」日、「14」日であり、作業計画の評価のための工数が、それぞれ、「4800」時間、「4000」時間、「1600」時間、「1120」時間、「2240」時間であることを示している。
さらに、これらのデータは、「組立」の作業工程は、職種が「本体」の作業者によって担当され、その作業場所の候補の識別番号が、優先順位の高い順に「L3」、「L4」、「L2」であることを示している。また、これらのデータは、「艤装」の作業工程は、職種が「艤装」の作業者によって担当され、その作業場所の候補の識別番号が、優先順位の高い順に「L5A」、「L6A」、「L6B」、「L6C」であることを示している。また、これらのデータは、「電装」の作業工程は、職種が「電装」の作業者によって担当され、その作業場所の候補の識別番号が、優先順位の高い順に「L1」、「L2」、「L3」であることを示している。また、これらのデータは、「試運転」の作業工程は、職種が「電装」の作業者によって担当され、その作業場所の候補の識別番号が、優先順位の高い順に「L2」、「L1」であることを示している。また、これらのデータは、「調整」の作業工程は、職種が「艤装」の作業者によって担当され、その作業場所の候補の識別番号が、優先順位の高い順に「L2」、「L3」、「L4」であることを示している。
固定工程情報164は、実施する期間が予め決まっている作業工程である固定工程に関する情報を保持する。作業工程を実施する期間は、予め顧客に作業の進捗状況をデモする場合等に予め決まっていることがある。また、作業計画の作成時に既に実施中の作業工程は、作成される作業計画中で日程をずらすことが好ましくないため、固定工程として、固定工程情報164に登録することができる。
図6は、固定工程情報164の例を示す図である。図6に示すように、固定工程情報164は、注文ID、工程名、開始日、終了日といった項目を有する。注文IDの項目には、注文を識別するための識別番号が格納される。工程名の項目には、実施する期間が予め決まっている作業工程の名称が格納される。開始日および終了日の項目には、予め決まっている実施期間の開始日および終了日がそれぞれ格納される。
カレンダ情報165は、作業場所の稼働日に関する情報を保持する。図7は、カレンダ情報165の例を示す図である。図7に示すように、カレンダ情報165では、年月日と対応付けて、稼働日であるか否かを示す値が作業場所毎に格納される。本実施例では、「1」が稼働日であることを示し、「0」が稼働日ではないことを示す。「L7」で識別される作業場所は、2014年2月19日から利用可能になる新しい作業場所である。このため、図7に示すカレンダ情報165において、「L7」で識別される作業場所に対応する項目には、2014年2月18日まで「0」が設定されている。
能力情報166は、対応可能な工数に関する情報を保持する。図8は、能力情報166の例を示す図である。図8に示すように、能力情報166では、年月と対応付けて、対応可能な工数が職種毎に格納される。本実施例において、能力情報166は、作成された作業計画を可視化する際に工数の指標値を表示するために用いられるが、作業計画を作成するための制約条件として用いてもよい。すなわち、各月において各職種の工数が能力情報166に設定された値を超えないように作業計画を作成してもよい。
作業計画情報167は、作成された作業計画に関する情報を保持する。図9は、作業計画情報167の例を示す図である。図9に示すように、作業計画情報167は、注文ID、工程名、場所、開始日、終了日といった項目を有する。作業計画情報167は、1つの注文IDの項目の値に対して、工程名〜終了日の項目の値の組み合わせを複数保持できるように構成される。工程名〜終了日の項目の値の組み合わせは、注文IDの項目の値によって識別される作業において、対応する作業工程が実施される順序が早い順に格納される。
注文IDの項目には、注文を識別するための識別番号が格納される。工程名の項目には、作業工程の名称が格納される。場所の項目には、作業工程が実施される作業場所を識別するための番号が格納される。開始日および終了日の項目には、作業工程の実施期間の開始日および終了日がそれぞれ格納される。
例えば、図9に示す作業計画情報167の1〜5行目のデータは、「P01」で識別される注文に関する作業には、「組立」、「艤装」、「電装」、「試運転」、「調整」という作業工程が含まれることを示している。また、これらのデータは、作業工程が、それぞれ、「L3」、「L5A」、「L1」、「L2」、「L2」で識別される作業場所で実施されることを示している。
さらに、これらのデータは、「組立」の作業工程は、「2013/7/10」から「2013/8/21」までの期間に実施されることを示している。また、これらのデータは、「艤装」の作業工程は、「2013/8/23」から「2013/9/27」までの期間に実施されることを示している。また、これらのデータは、「電装」の作業工程は、「2013/9/29」から「2013/10/13」までの期間に実施されることを示している。また、これらのデータは、「試運転」の作業工程は、「2013/10/15」から「2013/10/24」までの期間に実施されることを示している。また、これらのデータは、「調整」の作業工程は、「2013/10/26」から「2013/11/14」までの期間に実施されることを示している。
図9に示す例において、前の作業工程から次の作業工程へ移行する際に1日の空きがあるのは、本実施例では、製品を前の作業場所から次の作業場所へ移動させるために1日かかると想定されているためである。どの作業場所からどの作業場所への移動にどれだけの時間を要するかに関する情報をテーブルに保持し、このテーブルに基づいて、作業場所間の移動に要する時間を決定してもよい。
作業計画作成プログラム168は、好適な作業計画を作成するための機能を提供する。作業計画作成プログラム168は、作業計画作成部168aと、作業計画評価部168bと、初期計画作成部168cと、作業計画探索部168dと、可視化部168eとを含む。
作業計画作成部168aは、主として作業場所に関する制約に基づいて、作業計画を作成する。作業場所に関する制約には、以下の制約が含まれる。
(1)第1の製品が占有している作業場所では、第2の製品の作業を行うことはできない。
(2)出入りの際に第2の作業場所を経由することが必要な第1の作業場所で作業を行う製品は、第2の作業場所で作業が行われていないとき(第2の作業場所が空いているとき)でなければ、第1の作業場所へ出入りすることができない。
これらの制約は、次の作業工程の着手を待っている製品を、一時的な保管場所等に退避させておくことが困難な大型製品の特性によるものである。作業計画作成部168aは、さらに、固定工程に関する以下の制約に基づいて、作業計画を作成する。
(3)固定工程の予め決められた開始日および完了日をできるだけ守る。
作業計画作成部168aは、上記の制約を守りつつ、割当順位の高い製品から、どの作業場所でどの期間に作業工程を実施するかを決定する。それぞれの製品の作業工程を実施する作業場所と期間は、注文情報162に設定されている基準工程を基準として決定される。
図10は、1つの注文の作業工程を作業計画に割り当てる例を示す図である。「作業工程を作業計画に割り当てる」とは、作業工程を実施する作業場所と期間を決定することをいう。図10に示す例では、まず、基準工程であるN番目の作業工程が作業計画に割り当てられる。基準工程は、注文情報162での設定に従って、予め決められた開始日または完了日を基準として、作業計画に割り当てられる。作業工数の作業計画への割り当ては、開始日から完了日までに、所要工数分の稼働日を、同じ作業場所を占有したままで確保できるように行われる。
作業場所の候補が複数ある場合には、上記の制約を守りつつ、予め決められた開始日または完了日を遵守することができる候補のうち、最も優先順位が高い作業場所が選択される。例えば、開始日が基準と定められており、所要工数が6日の作業工程の場合、予め決められた開始日から稼働日が6日続いて空いている候補のうち、最も優先順位が高い作業場所が選択される。
該当する候補が1つもない場合には、上記の制約を守りつつ、予め決められた開始日または完了日に最も近い日を開始日または完了日として作業工程を割り当てることができる候補が選択される。予め決められた開始日または完了日から、割り当て可能な期間の開始日または完了日までの日数が同じ候補が複数ある場合には、その中で最も優先順位が高い作業場所が選択される。
続いて、基準工程よりも前の作業工程が作業計画に割り当てられる。図10に示す例では、基準工程の1つ前のN−1番目の作業工程が作業計画に割り当てられる。その後、N−1番目の作業工程の1つ前のN−2番目の作業工程が作業計画に割り当てられる。基準工程よりも前の作業工程は、作業場所間の移動に必要な日数を挟んで、完了日が直後の作業工程の開始日になるべく近くなるように割り当てられる。完了日と直後の作業工程の開始日との間隔が同じ候補が複数ある場合には、その中で最も優先順位が高い作業場所が選択される。
こうして基準工程とそれより前の作業工程の割り当てが完了した後に、基準工程よりも後の作業工程が作業計画に割り当てられる。図10に示す例では、基準工程の1つ後のN+1番目の作業工程が作業計画に割り当てられる。その後、N+1番目の作業工程の1つ後のN+2番目の作業工程が作業計画に割り当てられる。基準工程よりも後の作業工程は、作業場所間の移動に必要な日数を挟んで、開始日が直前の作業工程の完了日になるべく近くなるように割り当てられる。開始日と直前の作業工程の完了日との間隔が同じ候補が複数ある場合には、その中で最も優先順位が高い作業場所が選択される。
図10では、基準工程を作業計画に割り当てた後に、基準工程よりも前の作業工程の割り当てを実行し、その後に基準工程よりも後の作業工程の割り当てを実行する例を示した。しかしながら、基準工程を作業計画に割り当てた後に他の作業工程を作業計画に割り当てる順序はこれに限定されない。例えば、基準工程を作業計画に割り当てた後に、基準工程よりも後の作業工程の割り当てを実行し、その後に基準工程よりも前の作業工程の割り当てを実行してもよい。
作業計画作成部168aによる作業工程の作業計画の割り当てでは、上記の制約を守るために、製品が所要工数を確保するために必要な期間よりも長い期間にわたって作業場所を占有する、つまり、待ち時間が増えることがある。図11は、製品が作業場所を占有する期間が拡大される例を示す図である。なお、以下の説明では、説明を簡単にするために、特にことわりのない限り、稼働日であるか否かについての考慮は行わない(または、全ての日が稼働日であると想定する)ものとする。
図11で示す例では、「P04」で識別される注文のN番目の作業工程が既に作業計画に割り当てられている。この例では、さらに他の製品の作業計画も既に割り当てられている。「P04」で識別される注文のN−1番目の作業工程の作業場所の候補は、優先順位が高い順に、「L3」、「L4」、「L2」で識別される作業場所である。「P04」で識別される注文のN+1番目の作業工程の作業場所の候補は、優先順位が高い順に、「L4」、「L3」、「L2」で識別される作業場所である。
この例の場合、上記の制約および論理に従って、N−1番目の作業工程は、「L2」で識別される作業場所で「7/28」に完了するように作業計画に割り当てられる。この場合、N番目の作業工程の開始日である「8/1」との間には、移動日としての1日を除外して、2日の間隔がある。この2日間、「P04」で識別される注文の製品は、退避する場所がないため、N番目の作業工程の本来の開始日に先行して、N番目の作業工程が実施される作業場所へ移動していなければならない。こうして、「P04」で識別される注文の製品が、N番目の作業工程で作業場所を占有する期間は、本来の期間よりも2日長くなる。
また、この例の場合、上記の制約および論理に従って、N+1番目の作業工程は、「L3」で識別される作業場所で「8/6」に開始するように作業計画に割り当てられる。この場合、N番目の作業工程の完了日である「8/3」との間には、移動日としての1日を除外して、1日の間隔がある。この1日間、「P04」で識別される注文の製品は、退避する場所がないため、N番目の作業工程の本来の完了日の後も、N番目の作業工程が実施される作業場所に留まらなければならない。こうして、「P04」で識別される注文の製品が、N番目の作業工程で作業場所を占有する期間は、本来の期間よりもさらに1日長くなる。
製品が作業場所を占有する期間は、固定工程の制約のために拡大されることもある。図12は、固定工程の制約のために製品が作業場所を占有する期間が拡大される例を示す図である。
図12で示す例では、「P04」で識別される注文のN番目の作業工程は、「L1」で識別される作業場所で「8/1」に開始し、「8/3」に完了するように既に作業計画に割り当てられている。また、1つ前のN−1番目の作業工程および2つ後のN+2番目の作業工程は固定工程であり、開始日および完了日が予め決められている。
固定工程であるN−1番目の作業工程の完了日は、予め決められた「7/28」であるものとする。この場合、N−1番目の作業工程の完了日とN番目の作業工程の開始との間には、移動日としての1日を除外して、2日の間隔がある。この2日間、「P04」で識別される注文の製品は、退避する場所がないため、N番目の作業工程の本来の開始日に先行して、N番目の作業工程が実施される作業場所へ移動していなければならない。こうして、「P04」で識別される注文の製品が、N番目の作業工程で作業場所を占有する期間は、本来の期間よりも2日長くなる。
また、この例の場合、上記の制約および論理に従って、N+1番目の作業工程は、「L2」で識別される作業場所で「8/5」に開始するように作業計画に割り当てられる。この場合、N番目の作業工程の完了日である「8/3」との間には、移動日としての1日しか間隔がない。すなわち、N+1番目の作業工程は、最小の間隔で割り当てが行われている。
N+1番目の作業工程の完了日は、「8/9」であり、固定工程であるN+2番目の作業工程の開始日は「8/6」であり、完了日は「8/9」であるものとする。この場合、N+1番目の作業工程が完了した段階で既に固定工程の開始日が過ぎているため、固定工程の制約を守ってN+2番目の作業工程を作業計画に割り当てることはできない。そのため、N+2番目の作業工程は、他の制約および論理に基づいて作業計画に割り当てられる。図12に示す例では、N+2番目の作業工程は、開始日が「8/11」となるように作業計画に割り当てられる。この場合、固定工程の予め決められた開始日と実際に決められた開始日との差異d1は、5日である。
製品が作業場所を占有する期間は、経由する作業場所の制約のために拡大されることもある。図13および図14は、経由する作業場所の制約を受けずに作業工程が作業計画に割り当てられる例を示す図である。図15および図16は、経由する作業場所の制約のために製品が作業場所を占有する期間が拡大される例を示す図である。
図13および図14に示す例では、「P04」で識別される注文のN番目の作業工程は、「L2」で識別される作業場所で「8/1」に開始し、「8/3」に完了するように既に作業計画に割り当てられている。また、1つ前のN−1番目の作業工程の作業場所の候補は、「L1」で識別される作業場所だけであり、1つ後のN+1番目の作業工程の作業場所の候補は、「L3」で識別される作業場所だけである。この場合、作業場所間で製品を移動させる際に、他の作業場所を経由することはないので、経由する作業場所の制約を受けることなく、N−1番目の作業工程およびN+1番目の作業工程を作業計画に割り当てることができる。
図15および図16に示す例では、「P04」で識別される注文のN番目の作業工程は、「L2」で識別される作業場所で「8/1」に開始し、「8/3」に完了するように既に作業計画に割り当てられている。また、1つ前のN−1番目の作業工程の作業場所の候補は、「L5B」で識別される作業場所だけであり、1つ後のN+1番目の作業工程の作業場所の候補は、「L6C」で識別される作業場所だけである。
この場合、「L5B」で識別される作業場所から「L2」で識別される作業場所へ製品を移動させるには、「L5A」で識別される作業場所を経由する。このため、製品は、「L5A」で識別される作業場所が空いていなければ、「L5B」で識別される作業場所から「L2」で識別される作業場所へ移動できない。
この例では、図16に示すように、「L5A」で識別される作業場所は、「7/31」から「8/3」まで「P01」で識別される注文の作業工程に割り当てられている。このため、「P04」で識別される注文の製品は、「7/31」よりも前に移動を実行しなければ、「L5B」で識別される作業場所から「L2」で識別される作業場所へ移動できない。こうして、「P04」で識別される注文の製品が、N番目の作業工程で作業場所を占有する期間は、本来の期間よりも1日長くなる。
また、「L2」で識別される作業場所から「L6C」で識別される作業場所へ製品を移動させるには、「L6A」で識別される作業場所および「L6B」で識別される作業場所を経由する。このため、製品は、「L6A」で識別される作業場所および「L6B」で識別される作業場所の両方が空いていなければ、「L2」で識別される作業場所から「L6C」で識別される作業場所へ移動できない。
この例では、図16に示すように、「L6A」で識別される作業場所は、「8/1」から「8/4」まで「P02」で識別される注文の作業工程に割り当てられている。さらに、「L6B」で識別される作業場所は、「7/31」から「8/5」まで「P03」で識別される注文の作業工程に割り当てられている。このため、「P04」で識別される注文の製品は、「8/5」よりも後に移動を実行しなければ、「L2」で識別される作業場所から「L6C」で識別される作業場所へ移動できない。こうして、「P04」で識別される注文の製品が、N番目の作業工程で作業場所を占有する期間は、本来の期間よりも2日長くなる。
作業計画評価部168bは、作業計画を評価する。具体的には、作業計画評価部168bは、固定工程の遵守、期限の遵守、作業場所の有効活用、工数の平準度の観点から作業工程を判定する。作業計画の評価値Evは、以下の式を用いて算出される。
Ev=w1×Σ(p1)+w2×Σ(p2)+w3×Σ(p3)+w4×p4
ここで、p1は、固定工程の移動のペナルティ値である。固定工程の移動のペナルティ値は、図12に示した差異d1のような、作業計画において固定工程を移動させた日数(稼働日の数)(≧0)を注文毎に合計することによって算出される。w1は、固定工程の移動のペナルティ値を作業計画の評価にどれだけ反映させるかを調整するための重み係数であり、全ての注文に共通の値である。w1×Σ(p1)は、各注文の固定工程の移動のペナルティ値の合計、すなわち、作業計画に対応する固定工程の移動のペナルティ値である。
p2は、期限超過のペナルティ値である。期限超過のペナルティ値は、図17に示す最早着手日STよりも前に超過した日数(稼働日の数)d2(≧0)と、最遅完了日EDよりも後に超過した日数(稼働日の数)d3(≧0)とを合算することによって算出される。w2は、期限超過のペナルティ値を作業計画の評価にどれだけ反映させるかを調整するための重み係数であり、全ての注文に共通の値である。w2×Σ(p2)は、各注文の期限超過のペナルティ値の合計、すなわち、作業計画に対応する期限超過のペナルティ値である。
p3は、待ち時間のペナルティ値である。待ち時間のペナルティ値は、作業工程において製品が所要工数を超過して作業場所を占有した日数(稼働日の数)を注文毎に合計することによって算出される。w3は、待ち時間のペナルティ値を作業計画の評価にどれだけ反映させるかを調整するための重み係数であり、全ての注文に共通の値である。w3×Σ(p3)は、各注文の待ち時間のペナルティ値の合計、すなわち、作業計画に対応する待ち時間のペナルティ値である。
p4は、工数のバラツキのペナルティ値である。工数のバラツキのペナルティ値を算出するために、作業計画に含まれる作業工程に要する工数が月毎に合計される。作業計画に含まれる作業工程の工数は、図18に示すように、日毎に振り分けられた後に月毎に合計される。作業工程において製品が所要工数を超過して作業場所を占有した場合、作業工程の工数は、超過した期間を含む各日に均等に振り分けられる。工数のバラツキのペナルティ値を算出する際に用いられる作業工程の工数は、所要工数ではなく、作業計画の評価のための工数、すなわち、工程情報163の予想工数の項目の値である。図19に示すように、月毎に工数を合計して得られた総工数を対応する月の稼働日数で割ることによって、対応する月における1日当りの工数が算出される。こうして算出された各月の1日当りの工数の標準偏差が、工数のバラツキのペナルティ値である。w4は、工数のバラツキのペナルティ値を作業計画の評価にどれだけ反映させるかを調整するための重み係数である。
固定工程は遵守されることが好ましいので、固定工程の移動のペナルティ値は小さいことが好ましい。期限は遵守されることが好ましいので、期限超過のペナルティ値は小さいことが好ましい。作業場所は有効活用されることが好ましいので、待ち時間のペナルティ値は小さいことが好ましい。工数は平準化されていることが好ましいので、工数のバラツキのペナルティ値は小さいことが好ましい。したがって、作業計画評価部168bによる評価では、評価値Evが小さいほど、作業計画の評価が高い。
このように、本実施例においては、評価値は、ペナルティとして算出される。評価値の計算の仕方は、このような方式に限定されず、算出される評価値が大きいほど作業計画の評価が高いように評価値を算出してもよい。作業計画作成装置10は、w1、w2、w3、およびw4の重み係数が、ユーザによって任意の値に設定可能なように構成されてもよい。
初期計画作成部168cは、記憶部16に記憶されている注文情報162および工程情報163等に基づいて、作業計画作成部168aに作業計画を作成させ、作成された作業計画を、好適な作業計画を探索するための初期計画とする。
作業計画探索部168dは、初期計画を起点として好適な作業計画を探索する。具体的には、以下のように局所探索法によって好適な作業計画が探索される。まず、初期計画が現行の作業計画(以下、「現行計画」ということがある)とされる。そして、現行計画の評価値と、条件を一部変更することによって作成した近傍の作業計画の評価値とが比較され、近傍の作業計画の方が高評価の場合、近傍の作業計画が現行計画とされる。こうして、所定の終了条件が満たされるまで探索が繰り返し実行される。
可視化部168eは、作成された作業計画を可視化する。さらに、可視化部168eは、可視化された作業計画を、利用者が目で確認しながら編集(微調整)する機能も有する。
次に、図20から図23を参照しながら、作業計画作成装置10が実行する作業計画作成処理の処理手順について説明する。図20は、作業計画作成処理の処理手順を示すフローチャートである。図20に示す処理手順は、制御部15が作業計画作成プログラム168を実行することによって実現される。制御部15は、作業計画作成プログラム168を実行することにより、作業計画作成部168a、作業計画評価部168b、初期計画作成部168c、作業計画探索部168d、および可視化部168eとして機能する。
図20に示すように、制御部15は、まず、初期計画を作成する(ステップS101)。制御部15は、作成した初期計画を現行計画Pcとする(ステップS102)。現行計画Pcは、その時点で探索された最も好適な作業計画である。そして、制御部15は、現行計画Pcの評価値を算出する(ステップS103)。
続いて、制御部15は、現行計画Pcの一部を変更した作業計画Pwを作成する(ステップS104)。作業計画Pwは、現行計画Pcの近傍の作業計画に相当する。本実施例では、現行計画Pcを作成する際に用いた注文の割当順位を一部変更して作業計画を作成し直すことによって、作業計画Pwが作成される。
割当順位の変更は、図21に示すように、選択した注文の割当順位を上げるか下げることによって実現してもよいし、図22に示すように、選択した2つの注文の割当順位を入れ替えることによって実現してもよい。これらの2つの方式をランダムに適用して割当順位を変更してもよい。選択した注文の割当順位を上げるか下げる場合、上げ幅または下げ幅はランダムに決めてもよいし、1から始めて、注文が一通り選択させる度に1ずつ大きくしていってもよい。
割当順位を変更する注文は、例えば、作業計画を評価する際に算出した各注文の評価値(ペナルティ値)に基づいて行われる。評価が低い(ペナルティ値が大きい)注文の割当順位を優先的に変更することにより、より好適な作業計画がみつかる可能性を高くすることができる。例えば、図23に示すように、固定工程移動のペナルティ値(w1×p1)と、期限超過のペナルティ値(w2×p2)と、待ち時間のペナルティ値(w3×p3)とを合計し、合計値の集計値に対する割合を注文が選択される確率として用いることにより、評価が低い(ペナルティ値が大きい)注文の割当順位を優先的に変更することができる。
なお、割当順位の変更は、同じ種別の注文の間で行うことが好ましい。例えば、種別が「生産」の注文の割当順位を変更する場合、他の種別の注文の割当順位が変更されないようにすることが好ましい。「生産」は、「検査」よりも優先されるというように、注文には、種別に応じた大まかな優先度が予め決まっている場合がある。同じ種別の注文の間で割当順位の変更を行うことにより、このような種別に応じた優先度を守りつつ、好適な作業計画を探索することができる。
制御部15は、作成した作業計画Pwの評価値を算出する(ステップS105)。作業計画Pwの評価値が現行計画Pcの評価値よりも小さい場合、すなわち、作業計画Pwが現行計画Pcよりも高評価の場合(ステップS106,Yes)、制御部15は、作業計画Pwを現行計画Pcとする(ステップS107)。
作業計画Pwの評価値が現行計画Pcの評価値よりも小さくない場合、すなわち、作業計画Pwが現行計画Pcよりも高評価でない場合(ステップS106,No)、制御部15は、確率e−Δ/tで作業計画Pwを現行計画Pcとする(ステップS108)。
ここで、tは、焼きなまし法における温度に相当し、探索の回数(ステップS104からステップS109の繰り返しの回数)に応じて、最初は大きく、徐々に小さくなる値である。また、Δは、関数F()が作業計画の評価値を求める関数であるとして、
Δ=F(Pw)−F(Pc)
として算出することができる。
このように、評価が低い作業計画を確率e−Δ/tで現行計画Pcとして採用することにより、いわゆる局所最適解ではなく、より好適な作業計画が探索される可能性を高くすることができる。
その後、制御部15は、終了条件が充足されたかを判定する(ステップS109)。制御部15は、例えば、以下の場合に終了条件が充足されたと判定する。例えば、制御部15は、現行計画Pcの近傍の作業計画(注文の割当順位を変更して作成される作業計画)を全て評価したが、現行計画Pcよりも高評価の作業計画がなかった場合に、終了条件が充足されたと判定する。例えば、制御部15は、作業計画の評価回数が所定の回数より多くなった場合に、終了条件が充足されたと判定する。例えば、制御部15は、作業計画作成処理の処理時間が所定の時間より長くなった場合に、終了条件が充足されたと判定する。例えば、制御部15は、現行計画Pcの評価が十分に良好な場合、すなわち、現行計画Pcの評価値が所定の条件を満たす場合に、終了条件が充足されたと判定する。所定の条件とは、例えば、評価値が0であること、または評価値が十分小さい閾値未満であることである。
終了条件が充足された場合(ステップS109,Yes)、制御部15は、現行計画Pcを作業計画情報167として保存し(ステップS110)、作業計画作成処理を終了させる。終了条件が充足されない場合(ステップS109,No)、制御部15は、ステップS104以降を再実行する。
図20に示した例では、局所最適解に陥ることを避けるために、確率e−Δ/tで改悪解を採用する例について説明した。しかしながら、局所最適解に陥ることを避ける方式はこれに限定されない。
例えば、何らかの確率で、選択した注文の割当順位を変更する代わりに、図24に示すように、選択した注文のある作業工程(例えば、ランダムに選択した作業工程)の作業場所を他の作業場所へ変更し、選択した注文よりも割当順位が低い注文の作業工程の作業計画への割り当てを実行し直すことによっても、局所最適解に陥ることを避けることができる可能性が高くなる。他の作業場所は、例えば、作業工程の作業場所の候補の中からランダムに選択される。
あるいは、最適解と思われる作業計画が見つかった場合に割当順位を大きく変更して作業計画Pwを作成することによっても、局所最適解に陥ることを避けることができる可能性が高くなる。図25および図26を参照しながら、この方式についてより詳細に説明する。
図25に示すように、制御部15は、まず、初期計画を作成する(ステップS201)。制御部15は、作成した初期計画を現行計画Pcとする(ステップS202)。そして、制御部15は、現行計画Pcの評価値を算出する(ステップS203)。
続いて、制御部15は、現行計画Pcの一部を変更した作業計画Pwを作成する(ステップS204)。ステップS204での現行計画Pcの一部の変更の仕方は、既に説明したステップS104と同様である。
制御部15は、作成した作業計画Pwの評価値を算出する(ステップS205)。作業計画Pwの評価値が現行計画Pcの評価値よりも小さい場合、すなわち、作業計画Pwが現行計画Pcよりも高評価の場合(ステップS206,Yes)、制御部15は、作業計画Pwを現行計画Pcとする(ステップS207)。一方、作業計画Pwの評価値が現行計画Pcの評価値よりも小さくない場合、すなわち、作業計画Pwが現行計画Pcよりも高評価でない場合(ステップS206,No)、制御部15は、現行計画Pcを現状のまま維持する。
その後、制御部15は、終了条件が充足されたかを判定する(ステップS208)。制御部15は、例えば、以下の場合に終了条件が充足されたと判定する。例えば、制御部15は、作業計画の評価回数が所定の回数より多くなった場合に、終了条件が充足されたと判定する。例えば、制御部15は、作業計画作成処理の処理時間が所定の時間より長くなった場合に、終了条件が充足されたと判定する。例えば、制御部15は、現行計画Pcの評価が十分に良好な場合、すなわち、現行計画Pcの評価値が所定の条件を満たす場合に、終了条件が充足されたと判定する。所定の条件とは、例えば、評価値が0であること、または評価値が十分小さい閾値未満であることである。
終了条件が充足されない場合(ステップS208,No)、制御部15は、現行計画Pcの近傍の作業計画(注文の割当順位を変更して作成される作業計画)を全て探索したかを判定する(ステップS209)。現行計画Pcの近傍の作業計画を全て探索済みでない場合(ステップS209,No)、制御部15は、ステップS204以降を再実行する。
一方、現行計画Pcの近傍の作業計画を全て探索済みの場合(ステップS209,Yes)、制御部15は、複数の注文の割当順位をランダムに変更した作業計画Pwを作成する(ステップS210)。ステップS210では、例えば、図26に示すように、K(≧2)個の注文を選択し、選択した注文の割当順位がランダムに変更される。このように、K個の注文の割当順位を変更することにより、大きく異なる領域の作業計画を探索することができる。その後、制御部15は、ステップS205以降を再実行する。
ステップS208で終了条件が充足されたと判断された場合(ステップS208,Yes)、制御部15は、現行計画Pcを作業計画情報167として保存し(ステップS2111)、作業計画作成処理を終了させる。
局所最適解に陥ることを避ける方式は、適宜組み合わせて用いてもよい。
次に、図27および図28を参照しながら、可視化部168eによる作業計画情報167の可視化および編集について説明する。図27および図28は、可視化部168eによる可視化によって表示される画面の例を示す図である。図27および図28に示す画面20は、作業計画作成装置10が備える表示部11に表示されてもよいし、通信部13による通信を通じてHTML文書等の電子データとして他の装置へ送信され、他の装置で表示されてもよい。
図27に示すように、画面20は、表示領域R1と、表示領域R2と、表示領域R3とを含む。表示領域R1では、作業工程の期間を示すブロックが、注文毎に整列して表示される。表示領域R2では、作業工程の期間を示すブロックが、作業工程が実施される作業場所に対応する位置に表示される。表示領域R3では、作業計画に含まれる作業工程に要する工数を月毎に合計した値の大きさが表示される。作業計画に含まれる作業工程に要する工数を月毎に合計した値は、工数のバラツキのペナルティ値を算出する際に求められる値と同じ値でよい。月毎の工数は、注文単位での内訳を積み上げた形で表示される。表示領域R3では、能力情報166から取得した各職種の対応可能な工数の合計が、指標b1としてさらに表示される。可視化部168eは、表示領域R3において工数が職種別に表示されるように構成されてもよい。
このように、作業計画を3つの方式で1つの画面中に表示することにより、作業計画を様々な視点から確認することができる。
さらに、画面20は、利用者が作業工程の期間を示すブロックを操作することによって、作業工程の期間を変更することを可能にする。例えば、ブロックの両端のいずれかがドラッグされた場合、ドラッグに応じて、作業工程の期間が拡大または短縮される。また、ブロックの両端以外の部分がドラッグされた場合、ドラッグに応じて、作業工程の期間がシフトする。
例えば、図27に示すブロックBL1の右端が右方向にドラッグされた場合、ブロックBL1は、図28に示すように、右方向に拡大する。このような画面上でのブロックBL1の拡大と連動して、作業計画情報167におけるブロックBL1に対応する作業工程は、完了日を後ろにずらすことによって期間が拡大される。作業計画情報167の更新は、画面20に反映される。その結果、表示領域R1でも、表示領域R2と同様に、ブロックBL1が拡大される。さらに、期間の拡大にともなって、ブロックBL1に対応する作業工程に要する工数が分散化され、表示領域R3に表示される工数がより平準化される。
このように、作業計画作成装置10は、利用者が、画面20上で作業工程の期間を示すブロックを操作することにより、作業計画を様々な視点から確認しながら、作業計画情報167を編集することを可能にする。
上述してきたように、本実施例に係る作業計画作成装置10は、多様な観点から作業計画を評価して好適な作業計画を作成することができる。
なお、上記の実施例で示した本発明の態様は、本発明の要旨を逸脱しない範囲で任意に変更することができる。例えば、上記の実施例で示したプログラムは、複数のモジュールに分割されていてもよいし、他のプログラムと統合されていてもよい。また、上記の実施例では、好適な作業計画を探索するために局所探索法を用いることとしたが、他の解探索手法を用いて好適な作業計画を探索してもよい。
また、上記の実施例では、大型製品の作業計画を作成する場合について説明したが、大型製品以外の製品についても、同様にして作業計画を作成することができる。