(57)【要約】【課題】資源及び作業数の割当条件を考慮した作業計画を作成し、作成された作業計画に基づく作業結果を評価する。【解決手段】資源クラスと、作業クラスとを結合するリンククラスをネットワーク表現クラスに格納し、資源ノードと作業ノードとの間の結合を示すリンクを決定するために利用者が入力した第１条件に基づいて特定される複数のリンククラスに対して、リンククラスの数を制限するための第２条件の入力を受け付け、資源ノードが実行可能な作業の情報に基づいて、資源ノードと作業ノードとを結合するリンクを作成し、作成されたリンク及び作成されたリンクによって結合された資源ノード及び作業ノードを含むネットワーク表現インスタンスを作成し、作成された第２条件に基づいて、作成されたネットワーク表現インスタンスに含まれるリンクに対して、リンクの数を制限する第３条件を作成する。【選択図】図１
2010267002.tif 000002
【特許請求の範囲】
【請求項１】
作業実行条件の策定を支援する作業実行条件策定支援装置であって、
前記作業実行条件策定支援装置は、プロセッサと前記プロセッサに接続されるメモリと記憶装置とを備え、
前記プロセッサは、
人的リソースを含む作業実行リソースを表す資源ノードのうち特徴が同じノードが属する資源クラスと、前記作業実行リソースによって行われる作業を表す作業ノードのうち特徴が同じノードが属する作業クラスとを結合するリンククラスを生成し、
前記生成された複数のリンククラスをネットワーク表現クラスに格納し、
前記資源ノードと前記作業ノードとの間の結合を示すリンクを決定するために利用者が入力した第１条件に基づいて特定される複数の前記リンククラスに対して、前記リンククラスの数を制限するための第２条件の入力を受け付け、
前記資源ノードが実行可能な作業の情報に基づいて、前記資源ノードと前記作業ノードとを結合するリンクを作成し、
前記作成されたリンク及び前記作成されたリンクによって結合された前記資源ノード及び前記作業ノードを含むネットワーク表現インスタンスを作成し、
前記作成された第２条件に基づいて、前記作成されたネットワーク表現インスタンスに含まれる前記リンクに対して、前記リンクの数を制限する第３条件を作成することを特徴とする作業実行条件策定支援装置。
【請求項２】
前記プロセッサは、
前記作成された第３条件を満たす作業計画を作成し、
前記作成された作業計画に基づいて実行される作業過程の評価値を算出することを特徴とする請求項１に記載の作業実行条件策定支援装置。
【請求項３】
前記プロセッサは、
前記第１条件に基づいて特定される複数の前記リンククラスが、異なる資源クラスと一つの作業クラスとの多対一の関係である場合、前記各資源クラスと前記作業クラスとの間のリンククラスの各々に対して、前記リンククラス数を制限する第４条件を作成し、
前記作成された第２条件及び第４条件に基づいて、前記第３条件を作成することを特徴とする請求項１に記載の作業実行条件策定支援装置。
【請求項４】
前記プロセッサは、
前記第１条件に基づいて特定される複数の前記リンククラスの数と、前記第２条件によって制限される数とが等しくないことによって、前記特定される複数の前記リンククラスを一意に組み合わせることができない場合、前記特定される複数のリンククラスから前記第２条件によって制限される数のリンククラスを抽出し、
前記抽出されたリンククラスによって作成されるすべての組合せに含まれる各リンククラスに対して、前記第４条件を作成することを特徴とする請求項３に記載の作業実行条件策定支援装置。
【請求項５】
前記プロセッサは、前記第１条件に基づいて特定される複数の前記リンククラスが、異なる資源クラスと一つの作業クラスとの多対一の関係である場合、前記異なる資源クラスから選択される前記資源ノードの数を制限するための第５条件を作成することを特徴とする請求項１に記載の作業実行条件策定支援装置。
【請求項６】
作業実行条件の策定を支援する作業実行条件策定支援装置において実行される作業実行条件策定方法であって、
前記作業実行条件策定支援装置は、プロセッサと前記プロセッサに接続されるメモリと記憶装置とを備え、
前記作業実行条件策定方法は、
人的リソースを含む作業実行リソースを表す資源ノードのうち特徴が同じノードが属する資源クラスと、前記作業実行リソースによって行われる作業を表す作業ノードのうち特徴が同じノードが属する作業クラスとを結合するリンククラスを生成し、
前記生成された複数のリンククラスをネットワーク表現クラスに格納し、
前記資源ノードと前記作業ノードとの間の結合を示すリンクを決定するために利用者が入力した第１条件に基づいて特定される複数の前記リンククラスに対して、前記リンククラスの数を制限するための第２条件の入力を受け付け、
前記資源ノードが実行可能な作業の情報に基づいて、前記資源ノードと前記作業ノードとを結合するリンクを作成し、
前記作成されたリンク及び前記作成されたリンクによって結合された前記資源ノード及び前記作業ノードを含むネットワーク表現インスタンスを作成し、
前記作成された第２条件に基づいて、前記作成されたネットワーク表現インスタンスに含まれる前記リンクに対して、前記リンクの数を制限する第３条件を作成することを特徴とする作業実行条件策定方法。
【請求項７】
前記作成された第３条件を満たす作業計画を作成し、
前記作成された作業計画に基づいて実行される作業過程の評価値を算出することを特徴とする請求項６に記載の作業実行条件策定方法。
【請求項８】
前記第１条件に基づいて特定される複数の前記リンククラスが、異なる資源クラスと一つの作業クラスとの多対一の関係である場合、前記各資源クラスと前記作業クラスとの間のリンククラスの各々に対して、前記リンククラス数を制限する第４条件を作成し、
前記作成された第２条件及び第４条件に基づいて、前記第３条件を作成することを特徴とする請求項６に記載の作業実行条件策定方法。
【請求項９】
前記第１条件に基づいて特定される複数の前記リンククラスの数と、前記第２条件によって制限される数とが等しくないことによって、前記特定される複数の前記リンククラスを一意に組み合わせることができない場合、前記特定される複数のリンククラスから前記第２条件によって制限される数のリンククラスを抽出し、
前記抽出されたリンククラスによって作成されるすべての組合せに含まれる各リンククラスに対して、前記第４条件を作成することを特徴とする請求項８に記載の作業実行条件策定方法。
【請求項１０】
前記第１条件に基づいて特定される複数の前記リンククラスが、異なる資源クラスと一つの作業クラスとの多対一の関係である場合、前記異なる資源クラスから選択される前記資源ノードの数を制限するための第５条件を作成することを特徴とする請求項６に記載の作業実行条件策定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、作業実行条件を随時変更することができる作業実行条件策定支援装置及び作業実行条件策定支援方法に関する。
【背景技術】
【０００２】
顧客からの新たな要望、及び、社会的責任の変化に対応するため、企業は、新業務の設計、及び、既存業務の改善へ向けたＢＰＭ（Ｂｕｓｉｎｅｓｓ  Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｍｅｎｔ）に取り組んでいる。ＢＰＭでは、業務を進めるための作業手順を設計する方法が考えられている。これに伴い、作業手順を表現する表記方法の標準化、及び、設計した作業手順を情報システムへ適用する方法の開発等が進められている。
【０００３】
ここで、ＢＰＭは、作業手順の設計を目的としているため、各担当部署の間、又は、各担当企業の間における情報のやりとりを記述することはできるが、作業実行に必要な実行資源（人的リソース）の組合せ、連続して実行できる作業の組合せ等を考慮した作業実行条件を作成することはできない。このため、実行資源の不足、作業時間の過少見積り等によって、納期が遅れる、また、想定以上のコストが必要になることがある。
【０００４】
このように、実行資源を考慮した作業実行条件を作成することができないと、作業手順を設計した時の想定と作業結果とに乖離が生じる。この乖離を抑制することは、特に、実行資源及び納期の制約が厳しい製造、物流等の分野では重要な課題である。
【０００５】
そこで、作業手順を設計する場合に、実行資源の条件も考慮して、作業実行時間、コスト等をシミュレーションする機能を備えたシステムが提案されている（例えば、特許文献１、特許文献２）。特許文献１に記載されたシステムは、作業工程（作業手順）の設計に必要な部品を設定し、設定された部品の動作に基づいて、作業工程を設計する。また、特許文献２に記載されたシステムは、作業実行条件を数式によって表現し、作業実行条件に基づいて、作業手順を設計する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１２８６５８号公報
【特許文献２】特開２００４−１２７２５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述した特許文献１に記載された技術では、対象とする実行条件を限定して、作業工程（作業手順）の設計に必要な部品を設定するため、考慮できる実行条件が少ないという問題がある。また、特許文献２に記載された技術では、特定の数式によって実行条件を記述するため、記述できない実行条件があるという問題がある。
【０００８】
このため、特許文献１及び特許文献２によっては、考慮できる条件が限定されるので、例えば、実行資源の数と作業の種類又は数とを任意に組み合わせて作業計画を作成することはできない。また、実行資源の数と作業の数とを変更し、又は、実行資源と作業との組み合わせを変更することによって、様々な実行条件における作業計画を作成し、作成された作業計画に基づいて実行された作業結果を評価することができない。
【０００９】
本発明は、前述した問題に鑑みてなされたもので、作業の設計者が実行資源数及び作業数を変更した場合の作業実行状況への影響を確認しながら実行資源の割当条件を設定する
ことができるシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の代表的な一例を示せば以下のとおりである。すなわち、作業実行条件の策定を支援する作業実行条件策定支援装置であって、前記作業実行条件策定支援装置は、プロセッサと前記プロセッサに接続されるメモリと記憶装置とを備え、前記プロセッサは、人的リソースを表す資源ノードのうち特徴が同じノードが属する資源クラスと、前記人的リソースによって行われる作業を表す作業ノードのうち特徴が同じノードが属する作業クラスとを結合するリンククラスを生成し、前記生成された複数のリンククラスをネットワーク表現クラスに格納し、前記資源ノードと前記作業ノードとの間の結合を示すリンクを決定するために利用者が入力した第１条件に基づいて特定される複数の前記リンククラスに対して、前記リンククラスの数を制限するための第２条件の入力を受け付け、前記資源ノードが実行可能な作業の情報に基づいて、前記資源ノードと前記作業ノードとを結合するリンクを作成し、前記作成されたリンク及び前記作成されたリンクによって結合された前記資源ノード及び前記作業ノードを含むネットワーク表現インスタンスを作成し、前記作成された第２条件に基づいて、前記作成されたネットワーク表現インスタンスに含まれる前記リンクに対して、前記リンクの数を制限する第３条件を作成することを特徴とする。
【発明の効果】
【００１１】
本発明の一実施形態によれば、作業の設計者は、実行資源数及び作業数を変更した場合の作業実行状況への影響を確認しながら実行資源の割当条件を設定することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態の作業実行条件策定支援装置の構成を示すブロック図である。
【図２】本発明の実施形態の作業実行条件策定支援装置の基本的な処理を示すフローチャートである。
【図３】本発明の実施形態のリンククラス情報の構成の例を示す説明図である。
【図４】本発明の実施形態の作業者クラスの属性情報の構成の例を示す説明図である。
【図５】本発明の実施形態の作業クラスの属性情報の構成の例を示す説明図である。
【図６】本発明の実施形態のリンククラスの制限情報の構成の例を示す説明図である。
【図７】本発明の実施形態の補足条件情報の構成の例を示す説明図である。
【図８】本発明の実施形態のリンク情報の構成の例を示す説明図である。
【図９】本発明の実施形態の作業者情報の構成の例を示す説明図である。
【図１０】本発明の実施形態の作業情報の構成の例を示す説明図である。
【図１１】本発明の実施形態のリンクの制限情報の構成の例を示す説明図である。
【図１２】本発明の実施形態の履歴情報の構成の例を示す説明図である。
【図１３Ａ】本発明の実施形態の条件入力画面の例を示す説明図である。
【図１３Ｂ】本発明の実施形態の作業者の組合せの内訳入力画面の例を示す説明図である。
【図１４】本発明の実施形態の条件クラスの作成の処理の詳細を示すフローチャートである。
【図１５】本発明の実施形態の条件の展開の処理の詳細を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について図面を参照して説明する。
【００１４】
図１は、本発明の実施形態の作業実行条件策定支援装置１０００の構成を示すブロック図である。
【００１５】
作業実行条件策定支援装置１０００は、メモリ１００１、記憶部１１００、表示部１２００、入力部１２０１、中央演算処理装置（ＣＰＵ）１２０２及び通信部１２０３を備え、各部はデータバス１２０４を介して接続される。
【００１６】
表示部１２００は、例えば、ディスプレイ等の表示装置であり、作業実行条件策定支援装置１０００の処理の実行状況、作業結果等の情報を利用者へ表示する。入力部１２０１は、例えば、キーボード、マウス等の入力装置であり、利用者からの入力を受け付け、コンピュータに処理を指示する。ＣＰＵ１２０２は、メモリ１００１に格納される各種プログラム１００２を実行する。
【００１７】
通信部１２０３は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等を介して、他の装置との間で、各種データ及びコマンドを送受信する。記憶部１１００は、作業実行条件策定支援装置１０００が処理を実行するための各種データを格納する。メモリ１００１は、作業実行条件策定支援装置１０００が処理を実行する各種のプログラム１００２及び一時的なデータを格納する。
【００１８】
記憶部１１００は、リンククラス情報３（図３参照）、作業者クラスの属性情報４（図４参照）、作業クラスの属性情報５（図５参照）、リンククラスの制限情報６（図６参照）、補足条件情報１５（図７参照）リンク情報７（図８参照）、作業者情報８（図９参照）、作業情報９（図１０参照）、リンクの制限情報１０（図１１参照）、及び、履歴情報１１（図１２参照）を格納する。前述した各情報の詳細については図３から図１２を用いて後述する。
【００１９】
メモリ１００１は、プログラム１００２として、ネットワーク表現クラス作成部１００３、分類名受付部１００４、入力画面作成部１００５、条件クラス受付部１００６、条件クラス作成部１００７、パラメータ受付部１００８、条件展開部１００９及び作業結果算出部１０１０を格納する。
【００２０】
ネットワーク表現クラス作成部１００３は、記憶部１１００に格納された作業者クラスの属性情報４及び作業クラスの属性情報５に基づいて、リンククラス情報３を作成する。分類名受付部１００４は、利用者が入力部１２０１を介して選択した「作業実行条件の分類名」を受け付ける。なお、「作業者クラス」「作業クラス」については、図２のネットワーク表現クラスの説明において後述する。また、「作業実行条件の分類名」については、図６の条件の分類６０２の説明において後述する。
【００２１】
入力画面作成部１００５は、条件入力画面（図１３Ａ参照）及び作業者の組合せの内訳入力画面（図１３Ｂ参照）を作成する。条件クラス受付部１００６は、リンククラスの制限情報６を作成し、作成されたリンククラスの制限情報６を記憶部１１００に格納する。
【００２２】
条件クラス作成部１００７は、リンククラスの制限情報６のリンククラス数の制限からリンクの制限情報１０のリンク数の制限を作成するために必要な補足条件を作成し、作成された補足条件をリンククラスの制限情報６に格納する。
【００２３】
パラメータ受付部１００８は、利用者が入力したパラメータに基づいて、作業者情報８及び作業情報９を作成し、作成された各情報を記憶部１１００に格納する。条件展開部１００９は、リンク情報７及びリンクの制限情報１０を作成し、作成された各情報を記憶部１１００に格納する。なお、パラメータについては図２のステップＳ２０７において後述する。
【００２４】
作業結果算出部１０１０は、リンクの制限情報１０を満たす作業計画を作成する。作業計画はステップＳ２０９の詳細説明において後述する。また、作業結果算出部１０１０は、作業実行の履歴を表す履歴情報１１を作成し、作成された履歴情報１１を記憶部１１００に格納する。
【００２５】
図２は、本発明の実施形態の作業実行条件策定支援装置１０００の基本的な処理を示すフローチャートである。
【００２６】
まず、図２に示すフローチャートについて説明する。なお、各ステップの処理の詳細については、図３から図１２に示す各情報を説明した後に説明する
本実施形態の作業実行条件策定支援装置１０００は、まず、作業者クラスと作業クラスとの間のリンククラスの集合の条件を策定し、その後、作業者クラスの属する各作業者ノードと作業クラスに属する各作業ノードとの間のリンクの集合の条件を作成する。
【００２７】
はじめに、作業実行条件策定支援装置１０００は、作業者クラスと作業クラスとを作業の割当関係に基づいてリンククラスで結合し、作業者クラスと作業クラスとがリンククラスによって結合されたネットワーク表現クラスの情報を作成する。ここで、作業者クラスとは、同じ特徴（例えば、資格、勤務形態等）によってまとめられた作業者のグループであり、例えば、「正社員」「パートタイム従業員（資格Ａ）」等である。
【００２８】
また、作業クラスとは、同じ内容、種類等によってまとめられた作業グループであり、例えば、「品質チェック」「運搬」等である。ここで、リンククラスとは、ネットワーク表現クラスにおいて、作業者クラスと作業クラスとを結合するリンクである。
【００２９】
そして、作業実行条件策定支援装置１０００は、作成されたネットワーク表現クラスの条件（リンククラス数の制限等）を作成する。
【００３０】
まず、ステップＳ２０１において、ネットワーク表現クラス作成部１００３は、記憶部１１００に格納された作業者クラスの属性情報４及び作業クラスの属性情報５に基づいて、作業者クラスと作業者クラスが実行できる作業クラスとをリンクで結合したネットワーク表現クラスの情報（リンククラス情報３）を作成する。
【００３１】
次に、ステップＳ２０２において、分類名受付部１００４は、記憶部１１００に格納された「作業実行条件の分類名」（図示省略）を表示部１２００を介して利用者に表示し、利用者が入力部１２０１を介して選択した分類名を受け付ける。
【００３２】
次に、ステップＳ２０３において、入力画面作成部１００５は、Ｓ２０２において分類名受付部１００４が受け付けた分類名に基づいて、後述する図１３Ａの条件入力画面及び後述する図１３Ｂの作業者の組合せの内訳入力画面を作成する。
【００３３】
次に、ステップＳ２０４において、条件クラス受付部１００６は、Ｓ２０３において入力画面作成部１００５が作成した条件入力画面を表示部１２００を介して利用者に表示し、利用者が入力部１２０１を介して入力した初期条件を受け付け、受け付けた初期条件に基づいて、リンククラスの制限情報６を作成し、作成されたリンククラスの制限情報６を記憶部１１００に格納する。
【００３４】
次に、ステップＳ２０５において、条件クラス作成部１００７は、Ｓ２０４において条件クラス受付部１００６が受け付けた初期条件に基づいて、必要に応じて補足条件を作成し、作成された補足条件をリンククラスの制限情報６に格納する。
【００３５】
次に、ステップＳ２０６において、条件クラス作成部１００７は、利用者から入力を終了する指示を受けたか否かを判定する。ステップＳ２０６において、入力を終了する指示を受けていないと判定された場合、条件クラス作成部１００７は、入力を終了する指示を受けるまで、条件クラスの受付（ステップＳ２０４）及び条件クラスの作成（ステップＳ２０５）の処理を繰り返す。一方、ステップＳ２０６において、入力を終了する指示を受けたと判定された場合、条件クラス作成部１００７は、ステップＳ２０７へ進む。
【００３６】
ステップＳ２０１からＳ２０６の処理によって、リンククラスの制限情報６が作成される。
【００３７】
次に、本実施形態の作業実行条件策定支援装置１０００は、作業者クラスに属する各作業者ノードと作業クラスに属する各作業ノードとを作業の割当関係に基づいてリンクで結合し、作業者ノードと作業ノードとがリンクによって結合されたネットワーク表現インスタンスを作成する。そして、作業実行条件策定支援装置１０００は、作成されたネットワーク表現インスタンスのリンク数の制限等を作成する。
【００３８】
まず、ステップＳ２０７において、パラメータ受付部１００８は、記憶部１１００から作業者クラスの属性情報４及び作業クラスの属性情報５を取得し、すべての作業者クラス及び作業クラスを利用者に表示し、利用者が入力した作業者クラスのパラメータ、及び、作業クラスのパラメータを受け付ける。ここで、作業者クラスのパラメータとは、例えば、作業者クラスに属する作業者の人数、作業者勤務時間帯等である。また、作業クラスのパラメータとは、例えば、作業クラスに属する作業の個数、作業の開始時刻等である。
【００３９】
次に、パラメータ受付部１００８は、利用者が入力部１２０１を介して入力した作業者クラスのパラメータに基づいて、作業者情報８を作成し、作成された作業者情報８を記憶部１１００に格納する。また、利用者が入力部１２０１を介して入力した作業クラスのパラメータに基づいて、作業情報９を作成し、作成された作業情報９を記憶部１１００に格納する。
【００４０】
次に、ステップＳ２０８において、条件展開部１００９は、リンククラス情報３、作業者情報８及び作業情報９に基づいて、各作業者ノードと各作業ノードとの対応関係を表すネットワーク表現インスタンスの情報（リンク情報７）を作成する。
【００４１】
また、条件展開部１００９は、ステップＳ２０４、Ｓ２０５において、条件クラス受付部１００６及び条件クラス作成部１００７が作成したリンククラスの制限情報６に基づいて、ネットワーク表現インスタンスの条件（リンクの制限情報１０）を作成し、作成されたリンクの制限情報１０を記憶部１１００に格納する。ステップＳ２０７からＳ２０８の処理によって、リンクの制限情報１０が作成される。
【００４２】
次に、ステップＳ２０９において、作業結果算出部１０１０は、条件展開部１００９によって作成されたリンクの制限情報１０を満たす作業計画を作成し、作成された作業計画に基づいて作業が実行された場合の作業結果を作成し、作成された作業結果を表示部１２００を介して利用者に表示する。なお、リンクの制限情報とは、作業ノードと作業者ノードを結ぶリンクの本数の制約条件である。作業計画の作成では、リンクの本数の制約条件を満たす解の候補及び最適解を割り当て候補から決定し得る任意の解法、例えば、線形計画法や制約論理プログラム（Constraint logic Programming）などを採用することができる。
【００４３】
次に、ステップＳ２１０において、作業結果算出部１０１０は、作成された作業結果、作業者情報８及び作業情報９に基づいて、作業実行の履歴を表す履歴情報１１を作成し、作成された履歴情報１１を記憶部１１００に格納する。
【００４４】
以上の処理によって、作業実行条件策定支援装置１０００は、利用者によって入力された初期条件を受け付け、リンククラス数の制限情報６を作成し、次に、リンク数の制限情報１０を作成し、作成されたリンク数の制限情報１０に基づいて、作業計画を作成し、作業計画に基づいて作業が実行された場合の作業結果を算出する。利用者（作業計画の設計者）は、算出された作業結果を参照することによって、初期条件を変更し、作業実行に必要な作業者数及び作業数を適切に設定することができる。
【００４５】
以下に、本実施形態の作業実行条件策定支援装置１０００の記憶部１１００に格納される各情報の詳細について、図３から図１２を用いて説明する。
【００４６】
図３は、本発明の実施形態のリンククラス情報３の構成の例を示す説明図である。
【００４７】
リンククラス情報３は、作業者クラスと作業クラスとの対応関係を表したネットワーク表現クラスの情報であり、ネットワーク表現クラス作成部１００３によって作成される。
【００４８】
リンククラス情報３は、リンククラスＩＤ３１、作業者クラスＩＤ３２及び作業クラスＩＤ３３を含む。リンククラスＩＤ３１は、リンクを一意に識別するための識別子である。作業者クラスＩＤ３２及び作業クラスＩＤ３３は、リンククラスＩＤ３１によって識別されるリンククラスを形成する作業者クラスと作業クラスとの対応関係を示す。
【００４９】
作業者クラスＩＤ３２は、作業者クラスを一意に識別するための識別子であり、作業者クラスの属性情報４の作業者クラスＩＤ４１（図４参照）である。作業クラスＩＤ３３は、作業クラスを一意に識別するための識別子であり、作業クラスの属性情報５の作業クラスＩＤ５１（図５参照）である。
【００５０】
図４は、本発明の実施形態の作業者クラスの属性情報４の構成の例を示す説明図である
作業者クラスの属性情報４は、各作業者クラスの属性を示す情報であり、作業者クラスＩＤ４１、名称４２、資格４３及び実行可能作業種類４４を含む。
【００５１】
作業者クラスＩＤ４１は、作業者クラスを一意に識別するための識別子である。名称４２は、作業者クラスＩＤ４１によって識別される作業者クラスの名称である。資格４３は、作業者クラスＩＤ４１によって識別される作業者クラスの資格である。ここで、資格とは、特定の団体及び国によって与えられる資格だけでなく、スキル及び能力（例えば、職位、実務経験年数等）を含んでもよい。
【００５２】
実行可能作業種類４４は、作業者クラスＩＤ４１によって識別される作業者クラスが実行できる作業クラスを識別するための識別子であり、作業クラスの属性情報５の作業クラスＩＤ５１（図５参照）である。
【００５３】
図５は、本発明の実施形態の作業クラスの属性情報５の構成の例を示す説明図である。
【００５４】
作業クラスの属性情報５は、作業クラスの属性を示す情報であり、作業クラスＩＤ５１及び作業種類５２を含む。
【００５５】
作業クラスＩＤ５１は、作業クラスを一意に識別するための識別子である。作業種類５２は、作業クラスＩＤ５１によって識別される作業クラスの作業内容である。
【００５６】
図６は、本発明の実施形態のリンククラスの制限情報６の構成の例を示す説明図である。
【００５７】
リンククラスの制限情報６は、ネットワーク表現クラスの条件に関する情報であり、例えば、リンククラス数の制限、リンククラス流量の制限等が含まれる。ネットワーク表現クラスの条件は、利用者から入力された初期条件に基づき、条件クラス受付部１００６によって作成される。
【００５８】
リンククラスの制限情報６は、条件ＩＤ６０１、条件の分類６０２、対象リンククラスＩＤ６０３、リンククラス数の制限６０４、リンククラス流量の制限６０５、条件の種類６０６及び補足条件ＩＤ６０７を含む。条件ＩＤ６０１は、ネットワーク表現クラスの条件を一意に識別するための識別子である。条件の分類６０２は、図２のＳ２０２において利用者によって選択された「作業実行条件の分類名」である。なお、「作業実行条件の分類名」については、図６の条件の分類６０２の説明において後述する。
【００５９】
対象リンククラスＩＤ６０３は、リンククラス数の制限の対象となるリンククラスを一意に識別するための識別子であり、リンククラス情報３のリンククラスＩＤ３１（図３参照）である。
【００６０】
リンククラス数の制限６０４は、対象リンククラスＩＤ６０３によって識別されるリンククラスの集合のリンククラス数の制限である。なお、リンククラス数の制限は、各レコードにおける対象リンククラスＩＤ６０３に格納されたリンククラスＩＤによって識別されるリンククラスの集合を対象とする。例えば、第１レコード６０８では、リンククラス数の制限の対象は、リンククラスＩＤ「４」「１２」の合計２個のリンククラスの集合である。
【００６１】
リンククラス流量の制限６０５は、対象リンククラスＩＤ６０３によって識別されるリンククラスのリンククラス流量の制限である。ここで、リンククラス流量の制限とは、各リンククラスに対応する作業者クラスに属する作業者数の条件である。
【００６２】
なお、リンククラス流量の制限６０５には、条件の分類が「作業者の組合せ」の場合のみ、利用者によって必要に応じて指定されたリンククラス流量が格納される。条件の分類が「作業者の組合せ」以外の場合、リンククラス流量は指定されない。この場合、リンククラス流量の制限６０５には、リンククラス流量が指定されていないことを示す情報（例えば、「−」）が記録される。
【００６３】
リンククラス流量の制限６０５では、リンククラスＩＤとリンククラス流量とが、例えば、「（４，１以上）」のように表される。「（４，１以上）」内の「，」で区切られた左側の第１項は、流量の制限の対象となるリンククラスＩＤ「４」である。「，」で区切られた右側の第２項は、第１項で指定されたリンククラスの流量である。
【００６４】
これは、リンククラスＩＤ「４」に対応する作業者クラスＩＤ「１」から作業者を「１以上」指定するという条件である。なお、リンククラスＩＤによって識別されるリンククラスは、リンククラス情報３のリンククラスＩＤ３１（図３参照）によって識別されるリンククラスＩＤである。
【００６５】
条件の種類６０６は、リンククラス数の制限の強さを示す情報（例えば、「制約」又は「評価」）である。作成された条件を必ず満足するように作業計画を作成する場合、条件は、例えば「制約」と設定される。一方、作成された条件を必ずしも満足しなくてもよい場合、条件は、例えば「評価」と設定される。
【００６６】
なお、作業結果算出部１０１０は、図２のＳ２１０において、設定された「制約」及び「評価」の情報を用い、作業計画を作成する。
【００６７】
補足条件ＩＤ６０７は、補足条件を識別するための識別子であり、補足条件情報１５の補足条件ＩＤ１５１（図７参照）である。
【００６８】
ここで、条件の分類６０２に格納された値（「作業実行条件の分類名」）について説明する。作業実行条件は、リンク数の制限の対象とするリンク集合（作業者ノードと作業ノードとの割当関係）の作り方に基づいて分類される。本実施形態では、「作業実行条件の分類名」には、例えば、「作業者の組合せ」、「作業の組合せ」、「割当数（作業者／作業）」及び「連続作業数」がある。
【００６９】
第１に、「作業者の組合せ」（すなわち、必要な資格の組合せ）の条件は、複数の異なる作業者クラスと一つの作業クラスとの間のリンククラスの集合のリンククラス数の制限であり、換言すると、複数の異なる作業者クラスに属する作業者を一つの作業クラスに属する作業に割り当てる条件である。なお、「作業者の組合せ」の場合、各作業者クラスに属する作業者の数を指定してもよい。この場合、各作業クラスの作業者数を指定するため、リンククラス流量の制限を作成する。
【００７０】
例えば、第１レコード６０８のリンククラスＩＤ「４」「１２」によって特定される作業者クラスは、図３を参照すると、「１」と「４」とである。一方、リンククラスＩＤ「４」「１２」によって特定される作業クラスは「８」である。対象リンククラスＩＤ「４」「１２」のリンククラス数の制限は「２に等しい」である。つまり、リンククラスＩＤ「４」「１２」の各々は１本と設定される。
【００７１】
さらに、リンククラス流量の制限６０５によって、リンククラスＩＤ「４」については、流量が「１以上」であり、リンククラスＩＤ「１２」については、流量が「２以上」であると制限されている。また、作業者クラスの属性情報４によると、作業者クラスＩＤ「１」は「正社員」であり、作業者クラスＩＤ「４」は「パートタイム従業員（資格なし）」である。
【００７２】
また、作業クラスの属性情報５によると、作業クラスＩＤ「８」は「特注品出荷」である。したがって、第１レコード６０８は、「正社員とパートタイム従業員（資格なし）とを特注品出荷に割り当てる。」かつ「正社員は１名以上、パートタイム従業員（資格なし）は２名以上を指定する。」という条件を表す。
【００７３】
第２に、「作業の組合せ」の条件は、一つの作業者クラスと複数の異なる作業クラスとの間のリンククラスの集合のリンククラス数の制限であり、すなわち、一つの作業者クラスに属する作業者を異なる各作業クラスの作業に割り当てる条件である
例えば、第２レコード６０９のリンククラスＩＤ「２」「３」によって特定される作業者クラスは、図３を参照すると、「１」である。一方、リンククラスＩＤ「２」「３」によって特定される作業クラスは「６」と「７」とである。対象リンククラスＩＤ「２」「３」のリンククラス数の制限は「２に等しい」である。また、作業クラスの属性情報５によると、作業クラスＩＤ「６」は「フォークリフト運搬」であり、作業クラスＩＤ「７」は「運搬」である。したがって、第２レコード６０９は、「同じ正社員をフォークリフト運搬と運搬との両方に割り当てる。」という条件を表す。
【００７４】
また、第３レコード６１０のリンククラスＩＤ「１」「４」によって特定される作業者クラスは、図３を参照すると、「１」である。一方、リンククラスＩＤ「１」「４」によって特定される作業クラスは「５」と「８」とである。対象リンククラスＩＤ「１」「４」のリンククラス数の制限は「１以下」である。作業クラスの属性情報５によると、作業クラスＩＤ「５」は「品質チェック」であり、作業クラスＩＤ「８」は「特注品出荷」である。したがって、第３レコード６１０は、「同じ正社員を品質チェックと特注品出荷とのどちらか一方の作業に割り当てる。」という条件を表す。
【００７５】
第３に、「割当数（作業）」の条件は、複数の異なる作業者クラスと一つの作業クラスとの間のリンククラスの集合のリンククラス数の制限であり、すなわち、複数の異なる作業者クラスに属する各作業者を一つの作業に割り当てる条件である。ただし、「割当数（作業）」の条件は、「作業者の組合せ」の条件とは異なり、作業者の資格を考慮しなくてよい。
【００７６】
例えば、第４レコード６１１のリンククラスＩＤ「４」「７」「１０」「１２」によって特定される作業者クラスは、図３を参照すると、「１」「２」「３」「４」である。一方、リンククラスＩＤ「４」「７」「１０」「１２」によって特定される作業クラスは「８」である。対象リンククラスＩＤ「４」「７」「１０」「１２」のリンククラス数の制限は「２以上」である。したがって、第４レコード６１１は、「正社員、パートタイム従業員（資格Ａ）、パートタイム従業員（資格Ｂ）、パートタイム従業員（資格なし）から合わせて２人以上の作業者を指定し、指定された作業者を特注品出荷に割り当てる。」という条件を表す。
【００７７】
また、「割当数（作業者）」の条件は、一つの作業者クラスと複数の異なる作業クラスとの間のリンククラスの集合のリンククラス数の制限であり、すなわち、一つの作業者を複数の作業に割り当てる条件である。
【００７８】
第４に、「連続作業数」の条件は、一つの作業者クラスと一つの作業クラスとの間のリンククラスの集合のリンククラス数の制限であり、すなわち、一つの作業者を連続して実行できる作業に割り当てる条件である。
【００７９】
例えば、第５レコード６１２のリンククラスＩＤ「１２」によって特定される作業者クラスは、図３を参照すると、「４」であり、作業クラスは「８」である。対象リンククラスＩＤ「１２」のリンククラス数の制限は「１以下」である。したがって、第５レコード６１２は、「パートタイム従業員（資格なし）が実行する特注品出荷の連続作業数は１以下である。」という条件を表す。
【００８０】
図７は、本発明の実施形態の補足条件情報１５の構成の例を示す説明図である
補足条件情報１５は、図６に示したリンククラスの制限情報６に格納された補足条件の情報であり、ステップＳ２０５において条件クラス作成部１００７によって作成される。補足条件の情報とは、リンククラス数の制限を、リンク数の制限に変換しやすくするための情報である。補足条件情報１５は、補足条件ＩＤ１５１、対象リンククラスＩＤ１５２及び補足条件１５３を含む。
【００８１】
補足条件ＩＤ１５１は、補足条件を一意に識別するための識別子である。対象リンククラスＩＤ１５２は、補足条件ＩＤ１５１によって特定される補足条件の対象となる対象リンククラスを識別するための識別子であり、リンククラス情報３のリンククラスＩＤ３１（図３参照）である。補足条件１５３は、対象リンククラスＩＤ１５２によって識別されるリンククラスの補足条件である。
【００８２】
図８は、本発明の実施形態のリンク情報７の構成の例を示す説明図である。
【００８３】
リンク情報７は、各作業者と各作業との対応関係を表したネットワーク表現インスタンスの情報であり、図２のステップＳ２０８において条件展開部１００９によって作成される。
【００８４】
リンク情報７は、リンクＩＤ７１、作業者ノードＩＤ７２及び作業ノードＩＤ７３を含む。なお、リンク情報７は、状態確定７４を含んでもよい。リンクＩＤ７１は、作業者ノードと作業ノードとの間のリンクを一意に識別するための識別子である。作業者ノードＩＤ７２及び作業ノードＩＤ７３は、リンクＩＤ７１によって識別されるリンクを形成する作業者ノードと作業ノードとの対応関係を示す。作業者ノードＩＤ７２は、作業者ノードを一意に識別するための識別子であり、作業者情報８の作業者ノードＩＤ８１（図９参照）である。
【００８５】
作業ノードＩＤ７３は、作業ノードを一意に識別するための識別子であり、作業情報９の作業ノードＩＤ９１（図１０参照）である。状態確定７４は、作業結果算出部がリンクの制限情報１０を用いて作業計画を作成する場合（図２のＳ２０９）、既に条件として使われた対象リンクであるのか否かを示す情報である。
【００８６】
図９は、本発明の実施形態の作業者情報８の構成の例を示す説明図である
作業者情報８は、各作業者ノードの情報であり、図２のステップＳ２０７において、利用者から受け付けたパラメータに基づき、パラメータ受付部１００８によって作成される。作業者情報８は、作業者ノードＩＤ８１、作業者クラスＩＤ８２、名称８３及び作業資格８４を含む。また、必要に応じて、作業結果の評価値を算出するために必要な情報を含んでもよい。本実施形態では、作業者情報８は、労働開始時刻８５、労働終了時刻８６及び時間単位コスト８７を含む。
【００８７】
作業者ノードＩＤ８１は、作業者ノードを一意に識別するための識別子である。作業者クラスＩＤ８２は、作業者ノードＩＤ８１によって識別される作業者が属する作業者クラスを識別するための識別子であり、リンククラス情報３の作業者クラスＩＤ３２（図３参照）である。
【００８８】
名称８３は、作業者ノードＩＤ８１によって識別される作業者の名称である。作業資格８４は、作業者ノードＩＤ８１によって識別される作業者の作業資格である。労働開始時刻８５及び労働終了時刻８６は、作業者ノードＩＤ８１によって識別される作業者の労働の時間帯である。労働開始時刻８５は、労働の開始時刻である。労働終了時刻８６は、労働の終了時刻である。時間単位コスト８７は、作業者ノードＩＤ８１によって識別される作業者が作業を実行する場合の時間単位のコストである。
【００８９】
図１０は、本発明の実施形態の作業情報９の構成の例を示す説明図である
作業情報９は、各作業ノードの情報であり、図２のステップＳ２０７において、利用者から受け付けたパラメータに基づき、パラメータ受付部１００８によって作成される。作業情報９は、作業ノードＩＤ９１、作業クラスＩＤ９２、名称９３、作業開始時刻９４、作業終了予定時刻９５及び関連作業ＩＤ９６を含む。
【００９０】
作業ノードＩＤ９１は、作業ノードを一意に識別するための識別子である。作業クラスＩＤ９２は、作業ノードＩＤ９１によって識別される作業が属する作業クラスを識別するための識別子であり、リンククラス情報３の作業クラスＩＤ３３（図３参照）である。名称９３は、作業ノードＩＤ９１によって識別される作業の名称である。作業開始時刻９４は、作業ノードＩＤ９１によって識別される作業の開始時刻である。作業終了予定時刻９５は、作業ノードＩＤ９１によって識別される作業が他の作業によって中断されることなく連続して実行された場合の作業終了予定時刻である。
【００９１】
関連作業ＩＤ９６は、作業ノードＩＤ９１によって識別される作業と関連付けられている作業を識別するための識別子である。ここで、関連付けられている作業とは、例えば、同じ荷物（製品）に設定される作業である。具体的には、例えば、第２レコード９７の「特注品出荷１」は「運搬２」に関連付けられている。
【００９２】
図１１は、本発明の実施形態のリンクの制限情報１０の構成の例を示す説明図である。
【００９３】
リンクの制限情報１０は、リンク数の制限等を示す情報であり、図２のステップＳ２０８において条件展開部１００９によって作成される。リンクの制限情報１０は、条件ＩＤ１０１、対象リンクＩＤ１０２、リンク数の制限１０３、接続１０４及び条件の種類１０５を含む。
【００９４】
条件ＩＤ１０１は、リンクの制限情報１０に格納された条件を一意に識別するための識別子である。対象リンクＩＤ１０２は、リンク数の制限対象となるリンクを一意に識別するための識別子であり、リンク情報７のリンクＩＤ７１（図８参照）である。リンク数の制限１０３は、対象リンクＩＤ１０２によって一意に識別されるリンクの集合のリンク数の制限である。
【００９５】
ここで、リンク数の制限１０３は、各レコードにおける対象リンクＩＤ１０２に格納されたリンクＩＤによって識別されるリンクの集合を対象とする。接続１０４は、各条件を接続するための情報であり、接続される他の条件と、接続される条件を組み合せるための論理演算子とによって示される接続の情報である。例えば、第１レコード２０１の接続１０４には「（ＡＮＤ，２）」が格納されているので、条件「１」と条件「２」とは、「ＡＮＤ」によって接続された一つの条件である。
【００９６】
条件の種類１０５は、作成されたリンク数の制限の強さを示す情報（例えば、「制約」又は「評価」）である。作成されたリンク数の制限を必ず満足するように作業計画を作成する場合、条件は、例えば「制約」と設定される。一方、作成されたリンク数の制限を必ずしも満足しなくてもよい場合、条件は、例えば「評価」と設定される。
【００９７】
図１２は、本発明の実施形態の履歴情報１１の構成の例を示す説明図である。
【００９８】
履歴情報１１は、作業結果に関する情報であり、図２のステップＳ２１０において作業結果算出部１０１０によって作成される。履歴情報１１は、履歴ＩＤ１１１、作業者情報ＩＤ１１２、作業情報ＩＤ１１３、合計作業時間１１４、合計作業者数１１５及び合計作業数１１６を含む。また、必要に応じて、作業結果算出部１０１０において算出された作業結果の項目を含んでもよい。本実施形態では、履歴情報１１は、合計コスト１１７を含む。
【００９９】
履歴ＩＤ１１１は、履歴情報１１に格納された履歴情報を一意に識別するための識別子である。作業者情報ＩＤ１１２は、履歴ＩＤ１１１によって識別される履歴情報を作成するための基礎とした作業者情報を識別するための識別子である。例えば、作業実行条件策定支援装置１０００に設定されている作業者情報８がファイルに書き込まれた場合、作業者情報ＩＤは該ファイルに付与された識別子である。
【０１００】
作業情報ＩＤ１１３は、履歴ＩＤ１１１によって識別される履歴情報を作成するための基礎とした作業情報を識別するための識別子である。例えば、作業実行条件策定支援装置１０００に設定されている作業情報９がファイルに書き込まれた場合、作業情報ＩＤは該ファイルに付与された識別子である。
【０１０１】
合計作業時間１１４は、作業結果算出部１０１０において作成された作業計画に基づいて算出された各作業に要した作業時間の合計（「合計作業時間」）である。合計作業者数１１５は、パラメータ受付部１００８が受け付けた作業者数の合計（「合計作業者数」）である。合計作業数１１６は、パラメータ受付部１００８が受け付けた作業数の合計である。合計コスト１１７は、作業結果算出部１０１０によって算出された、作業の実行に要するコストの合計値である。
【０１０２】
＜作業実行条件策定支援装置１０００の処理の詳細＞
ここで、再び、図２に戻り、本実施形態の作業実行条件策定支援装置１０００が実行する各ステップの処理の詳細について説明する。
【０１０３】
まず、ステップＳ２０１において、ネットワーク表現クラス作成部１００３は、記憶部１１００に格納された作業者クラスの属性情報４及び作業クラスの属性情報５に基づいて、リンククラス情報３を作成する。具体的には、作業者クラスの属性情報４の実行可能作業種類４４に格納された作業クラスＩＤに基づいて、作業者クラスＩＤと作業者クラスが実行できる作業クラスＩＤとをリンククラスで結合することによって、リンククラス情報３を作成する。
【０１０４】
次に、ステップＳ２０２において、分類名受付部１００４は、「作業実行条件の分類名」を表示部１２００を介して利用者に表示する。そして、分類名受付部１００４は、入力部１２０１を介して、利用者によって選択された分類名を受け付ける。
【０１０５】
ここで、「作業実行条件の分類」とは、作業と作業者との割当関係に応じて作業実行条件を分類したものである。「作業実行条件の分類」には、ネットワークの構造によって分類された次の五つがある。
第１は、作業者ノードの特定の集合と各作業ノードとの関係、である。
第２は、作業ノードの特定の集合と各作業者ノードとの関係、である。
第３は、特定の一つの作業者ノードと全作業ノードとの関係、である。
第４は、特定の一つの作業ノードと全作業者ノードとの関係、である。
第５は、特定の一つの作業者ノードと特定の一つの作業ノードの関係、である。
【０１０６】
前述した五つの分類は、作業者ノードと作業ノードとの関係である。これらを、作業者クラスと作業クラスとの関係に書き換えると、次のとおりとなる。
第１は、作業を実行するための資格の組合せの条件である（例えば、一緒に作業を実行する作業者グループ、一緒に作業を実行しない作業者グループ等）。
第２は、特定の作業者が実行する作業の組合せの条件である（例えば、同じ作業者が実行する作業、同じ作業者が実行してはいけない作業等）。
第３は、特定の一人の作業者が実行できる作業数の条件である。
第４は、特定の一つの作業に必要な作業者数の条件である。
第５は、特定の一人の作業者が連続して実行する作業数の条件である。
【０１０７】
本実施形態では、前述した五つの分類に対応する分類名（「作業実行条件の分類名」）は、それぞれ、「作業者の組合せ」、「作業の組合せ」、「割当数（作業者）」、「割当数（作業）」及び「連続作業数」である。分類名受付部１００４は、これらの「作業実行条件の分類名」を利用者に表示し、利用者によって選択された「分類名」を受け付ける。
【０１０８】
なお、リンククラスの制限情報６のリンククラス数の制限６０４は、作業者クラスと作業クラスとの間のリンククラスの集合のリンククラス数の制限である。このため「作業者の組合せ」の条件は、作業者クラス（資格）の組合せの条件を表すものであり、個々の作業者の組合せを指定する条件ではない。同様に、「作業の組合せ」の条件は、作業クラス（作業種類）の組合せの条件を表すものであり、個々の作業の組合せを指定する条件ではない。個々の作業者の組合せの条件、及び、個々の作業の組合せの条件は、ステップＳ２０８においてリンクの制限情報１０が作成された後、作成されたリンクの制限情報１０を満たす解（作業計画）を算出する過程において求めることができる。
【０１０９】
次に、ステップＳ２０３において、入力画面作成部１００５は、ステップＳ２０２において受け付けた分類名に基づいて、条件入力画面を作成する。なお、入力画面作成部１００５は、まず、分類名受付部１００４が受け付けた「作業実行条件の分類名」に関わらず、以下に説明する図１３Ａに示す条件入力画面を表示し、受け付けた分類名が「作業者の組合せ」である場合、さらに、後述する図１３Ｂに示す内訳入力画面を表示する。
【０１１０】
図１３Ａは、本発明の実施形態の条件入力画面の例を示す説明図である。
【０１１１】
条件入力画面（又は、ウィンドウ）１２１１は、初期条件を受け付けるための画面である。条件入力画面１２１１は、作業者クラスの指定を受け付ける選択欄１２１２、作業クラスの指定を受け付ける選択欄１２１３、リンク数の制限を受け付ける入力欄１２１４、条件の種類の選択を受け付ける選択欄１２１５、及び、入力した条件を記憶部１１００に格納するための登録ボタン１２１６を含む。
【０１１２】
作業者クラスの選択欄１２１２には、作業者クラスの属性情報４に格納されている作業者クラスの名称４２のすべてが表示され、利用者によって選択された作業者クラスが入力される。作業クラスの選択欄１２１３には、作業クラスの属性情報５に格納されている作業種類５２のすべてが表示され、利用者によって選択された作業クラスが入力される。
【０１１３】
リンク数の制限の入力欄１２１４は、制限の境界値入力欄１２１７及び制限を構成する演算子選択欄１２１８を含む。境界値入力欄１２１７には、作業者クラスの選択欄１２１２において選択された作業者クラスと作業クラスの選択欄１２１３において選択された作業クラスとの間のリンク数の制限が入力される。演算子選択欄１２１８には、制限の演算子（「以上」「等しい」「以下」）が表示され、利用者によって選択された演算子が入力される。
【０１１４】
条件の種類の選択欄１２１５には、条件の強さを表す「制約」及び「評価」が表示され、利用者によって選択された「制約」又は「評価」が入力される。登録ボタン１２１６は、入力された初期条件を記憶部１１００へ格納する指示を受け付けるボタンである。
【０１１５】
図１３Ｂは、本発明の実施形態の作業者の組合せの内訳入力画面の例を示す説明図である。
【０１１６】
作業者の組合せの内訳入力画面は、作業者の組合せの内訳を入力するための画面である。作業者の組合せの内訳入力画面（又はウィンドウ）１２２１は、作業者の組合せの内訳の入力を受け付ける入力表１２２２及び登録ボタン１２２３を含む。
【０１１７】
作業者の組合せの内訳の入力表１２２２の作業者クラスの名称１２２４には、図１３Ａの作業者クラスの選択欄１２１２で指定された作業者クラスの名称が表示される。作業者数の条件１２２５には、作業に割り当てられる各作業者クラスに属する作業者の数が利用者から入力される。登録ボタン１２２３は、入力された作業者数の条件を記憶部１１００への格納する指示を受け付ける。
【０１１８】
ここで、図２のステップＳ２０４に戻る。
【０１１９】
ステップＳ２０４において、条件クラス受付部１００６は、利用者によって入力された初期条件を受け付ける。具体的には、条件クラス受付部１００６は、条件入力画面１２１１を介して利用者が入力した作業者クラス及び作業クラス、及び、作業者クラスと作業クラスとの間のリンク数の制限を受け付ける。また、リンク数の制限が必ず守らなければならない条件であるか、必ずしも守らなくてもよい条件であるかを示す条件の種類を受け付ける。また、条件クラス受付部１００６は、作業者の組合せの内訳入力画面１２２１を介して利用者が入力した作業者の組合せの内訳を受け付ける。
【０１２０】
次に、条件クラス受付部１００６は、初期条件を受け付けると、受け付けた初期条件に基づいて、リンククラスの制限情報６を作成し、作成されたリンククラスの制限情報６を記憶部１１００に格納する。
【０１２１】
ここで、図１３Ａ及び図１３Ｂを用いて、条件クラス受付部１００６が利用者から受け付けた初期条件を図６に示したリンククラスの制限情報６に格納する処理の詳細について説明する。なお、ここでは、利用者によって選択された「分類名」は「作業者の組合せ」である。また、利用者から受け付けた初期条件は、「特注品出荷は、正社員及びパートタイム従業員（資格なし）で実行する。」かつ「正社員は１名以上、パートタイム従業員（資格なし）は２名以上で行う。」である。これらの条件は、ステップＳ２０４の処理によって、図６に示したリンククラスの制限情報６の第１レコード６０８に格納される。
【０１２２】
例えば、条件クラス受付部１００６は、リンククラスの制限情報６の第１レコード６０８を次のように作成する。まず、条件クラス受付部１００６は、図１３Ａの登録ボタン１２１６が利用者によって操作されると、条件を一意に識別するための識別子を作成し、作成された条件ＩＤ（例えば、「１」）を図６の第１レコード６０８の条件ＩＤ６０１に格納する。次に、ステップＳ２０２において分類名受付部１００４が受け付けた「作業実行条件の分類名」（例えば、「作業者の組合せ」）を図６の第１レコード６０８の条件の分類６０２に格納する。
【０１２３】
次に、条件クラス受付部１００６は、作業者クラスの選択欄１２１２において選択された作業者クラスの名称（例えば、「正社員」「パートタイム従業員（資格なし）」）を検索キーとして、記憶部１１００に格納された作業者クラスの属性情報４のレコードを検索し、選択された作業者クラスに対応する作業者クラスＩＤ（例えば、「１」「４」）を取得する。次に、作業クラスの選択欄１２１３において選択された作業クラス（例えば、「特注品出荷」）を検索キーとして、記憶部１１００に格納された作業クラスの属性情報５のレコードを検索し、選択された作業クラスに対応する作業クラスＩＤ（例えば、「８」）を取得する。
【０１２４】
次に、条件クラス受付部１００６は、取得した作業者クラスＩＤと作業クラスＩＤとの組み（例えば、「１」と「８」）を検索キーとして、記憶部１１００に格納されたリンククラス情報３のレコードを検索し、これらの作業者クラスと作業クラスとを結合したリンククラスＩＤ（例えば、「４」）を取得する。条件クラス受付部１００６は、作業者クラスの選択欄１２１２において選択された作業者クラスと作業クラスの選択欄１２１３において選択された作業クラスとのすべての組みに対して、前述したリンククラスＩＤを取得する処理を実行し、取得したリンククラスＩＤ（例えば、「１２」）を６の第１レコード６０８の対象リンククラスＩＤ６０３に格納する。
【０１２５】
次に、条件クラス受付部１００６は、リンク数（割当数）の制限の入力欄１２１４の境界値入力欄１２１７及び制限の演算子選択欄１２１８に入力された値（例えば、「２」「等しい」）を図６の第１レコード６０８のリンククラス数の制限６０４に格納する。
【０１２６】
また、分類名受付部１００４が受け付けた分類名が「作業者の組合せ」であるので、条件クラス受付部１００６は、図１３Ｂの登録ボタン１２２３が利用者によって操作されると、「作業者の組合せ」の内訳を図６の第１レコード６０８のリンククラス流量の制限６０５に格納する。具体的には、条件クラス受付部１００６は、作業者の組合せの内訳入力画面の作業者クラスの名称１２２４に入力された作業者クラスの名称（例えば、「正社員」）を検索キーとして、作業者クラスの属性情報４のレコードを検索し、入力された作業者クラスに対応する作業者クラスＩＤ（例えば、「１」）を取得する。
【０１２７】
そして、取得した作業者クラスＩＤ（例えば、「１」）と、作業クラスの選択欄１２１３において選択された作業クラスＩＤ（例えば、「８」）との組みを検索キーとして、記憶部１１００に格納されたリンククラス情報３のレコードを検索し、これらの作業者クラスと作業クラスとを結合したリンククラスＩＤ（例えば、「４」）を取得する。
【０１２８】
次に、条件クラス受付部１００６は、取得したリンクＩＤと、作業者の組合せの内訳入力画面の作業者数の条件１２２５に入力された条件との組みを図６の第１レコード６０８のリンククラス流量の制限６０５に格納する。最後に、条件クラス受付部１００６は、図１３Ａの条件の種類の選択欄１２１５において選択された条件の種類（例えば、「制約」）を、図６の第１レコード６０８の条件の種類６０６に格納する。
【０１２９】
次に、ステップＳ２０５において、条件クラス作成部１００７は、ステップＳ２０２において分類名受付部１００４によって受け付けられた分類名が「作業者の組合せ」である場合、補足条件を作成し、作成された補足条件を図６の第１レコード６０８の補足条件ＩＤ６０７に格納する。条件クラス作成部１００７は、リンククラスの制限情報６を記憶部１１００に格納する。なお、ステップＳ２０５における補足条件の作成の処理の詳細については図１４を用いて後述する。
【０１３０】
次に、ステップＳ２０６において、条件クラス作成部１００７は、初期条件の入力を続ける指示、又は、初期条件の入力を終了する指示のいずれを受け付けたのか判定する。ステップＳ２０６において、初期条件の入力を続ける指示を受け付けたと判定された場合、条件クラス作成部１００７は、ステップＳ２０４に戻り、初期条件を受け付ける。一方、ステップＳ２０６において、初期条件の入力を終了する指示を受け付けたと判定された場合、ステップＳ２０７へ進む。
【０１３１】
ステップＳ２０２からＳ２０６によって、リンククラスの制限情報６が作成される。
【０１３２】
次に、ステップＳ２０７において、パラメータ受付部１００８は、リンククラス情報３に含まれる作業者クラス及び作業クラスのパラメータを受け付ける。ここで、パラメータとは、作業者クラス及び作業クラスの特徴であって、作業結果を算出するために必要な特徴である。具体的には、作業者クラスのパラメータには、作業者数がある。また、作業クラスのパラメータには、作業数、作業の開始時刻、終了予定時刻及び関連作業がある。また、パラメータには、このほかにも、コストを計算するための作業者の勤務時間帯、作業コスト等を含んでもよい。
【０１３３】
本実施形態では、パラメータ受付部１００８は、作業者クラスのパラメータとして、作業者数、労働開始時刻、労働終了時刻、及び時間単位コストを受け付ける。また、作業クラスのパラメータとして、作業数、開始時刻、終了予定時刻及び関連作業ＩＤを受け付ける。
【０１３４】
パラメータ受付部１００８は、各種パラメータを受け付けると、作業者情報８及び作業情報９を作成する。例えば、利用者から、作業者クラスのパラメータとして、作業者クラスＩＤ「１」に属する作業者の人数（例えば、「正社員１」「正社員２」の２人）と作業者の属性（名称、作業資格等）が入力されると、図８の第１レコード８８及び第２レコード８９が作成される。また、作業クラスのパラメータとして、作業クラスＩＤ「８」に属する作業の数（例えば、「特注品出荷１」「特注品出荷２」の２件）と作業の属性（開始時刻、終了予定時刻等）が入力されると、図９の第２レコード９７、第６レコード９８が作成される。
【０１３５】
次に、ステップＳ２０８において、条件展開部１００９は、ステップＳ２０１において作成されたネットワーク表現クラス、及び、ステップＳ２０７において作成された作業者情報８及び作業情報９に基づいて、リンク情報７を作成する。そして、条件展開部１００９は、ステップＳ２０４及びステップＳ２０５において作成されたリンククラスの制限情報６から、リンクの制限情報１０を作成する。なお、ステップＳ２０８における条件の展開の処理の詳細については図１５を用いて後述する。
【０１３６】
ステップＳ２０７からＳ２０８によって、リンク情報７及びリンクの制限情報１０が作成される。
【０１３７】
次に、ステップＳ２０９において、作業結果算出部１０１０は、ステップＳ２０８において作成されたリンクの制限情報１０を満たす解を算出し、算出された解に基づいて作業が実行された場合の作業結果を算出し、算出された作業結果を表示部１２００を介して利用者へ表示する。ここで、算出された解とは、設定された条件を考慮した作業計画であり、割り当て候補から解の候補及び最適解を決定し得る任意の解法、例えば、線形計画法や制約論理プログラム（Constraint logic Programming）などを用いて算出する。また、作業結果算出部１０１０は、ステップＳ２０７において受け付けたパラメータ及び作業計画に基づいて、作業者の作業時間合計及び作業コスト合計を算出する。
【０１３８】
例えば、本実施形態では、ステップＳ２０７において作業者クラスのパラメータとして作業者の時間単位コストを受け付けているので、作業結果算出部１０１０は、作成された作業計画から作業者の割当数及び作業所要時間の合計を算出し、作業所要時間に作業に割当てられた作業者の単位時間当たりのコストをかけることによって、作業コストを算出する。
【０１３９】
最後に、ステップＳ２１０において、作業結果算出部１０１０は、ステップＳ２０９において作成された作業結果に基づいて履歴情報１１を作成し、作成された履歴情報１１を記憶部１１００に格納する。そして、作業実行条件策定支援装置１０００は、一連の処理を終了する。ステップＳ２０９からＳ２１０によって、作業計画及び履歴情報１１が作成される。
【０１４０】
＜補足条件を作成する処理の詳細＞
次に、条件クラス作成部１００７が補足条件を作成する処理（図２のステップＳ２０５）の詳細について説明する。図２のステップＳ２０５において、条件クラス作成部１００７は、条件クラス受付部１００６において受け付けた条件に基づいて、補足条件を作成する。補足条件とは、「作業者の組合せ」の条件を作成する場合において、リンククラスの制限情報６を、リンクの制限情報１０に展開しやすくするための条件である。
【０１４１】
リンククラス情報３で表されるネットワーク表現クラス上の作業者クラスＩＤ「１」「２」「３」「４」のそれぞれと作業クラスＩＤ「８」とを結合したリンククラスの「４」「７」「１０」「１２」のリンククラス数の制限が「３以上」である場合、このリンククラス数の制限は、「正社員、パートタイム従業員（資格Ａ）、パートタイム従業員（資格Ｂ）、パートタイム従業員（資格なし）の作業者クラスのうち、３つ以上の作業者クラスから作業者を選択して、選択された作業者が特注品出荷を実行する。」である。
【０１４２】
ここで、利用者が、パラメータとして、それぞれの作業者クラスに複数の作業者が含まれると設定すると、各作業者の組合せの数が多くなる。よって、各作業者の組合せのすべてを列挙し、それらのいずれかを選択するという条件を作成すると、考慮すべき条件が多く、解の算出が難しくなる。このため、本実施形態では、各作業者クラスの組合せを作成し、各作業者クラスの組合せの補足条件を作成する。
【０１４３】
例えば、前述した例では、考えられる作業者クラスの組合せは、作業者クラスＩＤ「１」「２」「３」、「１」「２」「４」、「１」「３」「４」又は「２」「３」「４」の４通りである。このため、これら４通りの作業者クラスの組合せそれぞれに含まれる作業者クラスの集合のリンククラス数の制限を「１以上」と設定した次の四つの補足条件を作成する。
第１は、作業者クラスＩＤ「１」「２」「３」それぞれの作業者クラスと作業クラスＩＤ「８」とを結合したそれぞれのリンククラスのリンククラス数を「１以上」とする補足条件である。
第２は、作業者クラスＩＤ「１」「２」「４」それぞれの作業者クラスと作業クラスＩＤ「８」とを結合したそれぞれのリンククラスのリンククラス数を「１以上」とする補足条件である。
第３は、作業者クラスＩＤ「１」「３」「４」それぞれの作業者クラスと作業クラスＩＤ「８」とを結合したそれぞれのリンククラスのリンククラス数を「１以上」とする補足条件である。
第４は、作業者クラスＩＤ「２」「３」「４」それぞれの作業者クラスと作業クラスＩＤ「８」とを結合したそれぞれのリンククラスのリンククラス数を「１以上」とする補足条件である。
【０１４４】
そして、作成された第１から第４の各補足条件を演算子「ＯＲ」で結合する。結合された条件が最終的な補足条件である。
【０１４５】
図１４は、本発明の実施形態の条件クラスの作成（ステップＳ２０５）の処理の詳細を示すフローチャートである。
【０１４６】
まず、ステップＳ１３１において、条件クラス作成部１００７は、記憶部１１００に格納されたリンククラスの制限情報６から、一つの条件（例えば、第１レコード６０８）を選択する。
【０１４７】
次に、ステップＳ１３２において、条件クラス作成部１００７は、Ｓ１３１において選択された条件（レコード）の条件の分類６０２が「作業者の組合せ」であるか否かを判定する。ステップＳ１３２において、条件の分類６０２が「作業者の組合せ」であると判定された場合、対象リンククラスの補足条件を作成しなければならないので、条件クラス作成部１００７は、補足条件を作成するステップＳ１３３以降の処理に進む。一方、ステップＳ１３２において、条件の分類６０２が「作業者の組合せ」でないと判定された場合、条件クラス作成部１００７は、ステップＳ１３８に進む。
【０１４８】
ステップＳ１３３において、条件クラス作成部１００７は、Ｓ１３１において選択された条件の対象リンククラスＩＤ６０３及びリンククラス数の制限６０４を参照し、対象リンククラスＩＤ６０３に含まれる対象リンククラスの数が、リンククラス数の制限６０４の境界値と等しいか否かを判定する。
【０１４９】
Ｓ１３３において、対象リンククラスの数がリンククラス数の制限６０４の境界値と等しいと判定された場合、対象リンククラスを一意に組み合わせることができるので、条件クラス作成部１００７は、ステップＳ１３４に進む。一方、Ｓ１３３において、対象リンククラスの数がリンククラス数の制限６０４の境界値と等しくないと判定された場合、対象リンククラスの組み合わせが何通りかできるので、条件クラス作成部１００７は、ステップＳ１３５に進む。
【０１５０】
例えば、図６の第１レコード６０８は、対象リンククラスＩＤ６０３に含まれるリンククラスの数が２個、リンククラス数の制限６０４の境界値が「２」であるので、ステップＳ１３４が実行される。一方、図６の第６レコード６１３は、対象リンククラスＩＤ６０３に含まれるリンククラスの数が４個、リンククラス数の制限６０４の境界値が「３」であるので、ステップＳ１３５が実行される。
【０１５１】
次に、ステップＳ１３４において、条件クラス作成部１００７は、Ｓ１３１において選択された条件の対象リンククラスＩＤ６０３に含まれる各リンククラスの補足条件を作成する。なお、リンククラス数の制限６０４に格納されている演算子が「以上」又は「等しい」である場合、条件クラス作成部１００７は、補足条件を「１以上」と設定する。そして、各リンククラスの各補足条件を演算子「ＡＮＤ」で結合する。一方、リンククラス数の制限６０４に格納されている演算子が「以下」である場合、補足条件を「１以下」と設定する。
【０１５２】
例えば、図６の第１レコード６０８は、対象リンククラスＩＤ６０３に含まれるリンククラスは「４」「１２」であり、リンククラス数の制限６０４が「２に等しい」ので、リンククラスＩＤ「４」の補足条件を「１以上」と設定し、リンククラスＩＤ「１２」の補足条件を「１以上」と設定する。
【０１５３】
ステップＳ１３５において、条件クラス作成部１００７は、Ｓ１３１において選択された条件の対象リンククラスＩＤ６０３に含まれるリンククラスの組合せを作成する。なお、リンククラス数の制限６０４に格納された演算子が「以上」又は「等しい」である場合、条件クラス作成部１００７は、組合せに含まれるリンククラスの数が、リンククラス数の制限６０４に格納された境界値と同じとなる組合せをすべて作成する。
【０１５４】
例えば、図６の第６レコード６１３は、対象リンククラスＩＤ６０３に含まれるリンククラスは「４」「７」「１０」であり、リンククラス数の制限６０４が「２以上」であるので、リンククラスＩＤ「４」「７」「１０」から２本を選ぶ組合せが３通り作成される。つまり、リンククラスＩＤ「４」「７」を含む「組合せ１」、リンククラスＩＤ「４」「１０」を含む「組合せ２」、リンククラスＩＤ「７」「１０」を含む「組合せ３」である。
【０１５５】
一方、リンククラス数の制限６０４に格納された演算子が「以下」である場合は、条件クラス作成部１００７は、組合せに含まれるリンククラスの数が、対象リンククラスＩＤ６０３に格納されたリンククラス数からクラス数の制限６０４に格納された境界値を減じた数と同じとなる組合せをすべて作成する。
【０１５６】
例えば、リンククラスＩＤ「４」「７」「１０」のリンククラス数の制限が「２以下」となる場合、条件クラス作成部１００７は、リンククラスＩＤ「４」を含む「組合せ１」、リンククラスＩＤ「７」を含む「組合せ２」、リンククラスＩＤ「１０」を含む「組合せ３」の３通りの組合せを作成する。
【０１５７】
このような処理を行う目的は、作成する条件数を抑えるためである。例えば、上記例である「リンククラスＩＤ「４」「７」「１０」のリンククラス数を２以下とする」条件を個々のリンククラスに対する制限で表すためには、いずれか二つのリンククラスの数をそれぞれ１以下とするだけでなく、残った一つのリンククラスの数を０とする必要がある。
【０１５８】
これは単に、リンククラスＩＤ「４」「７」「１０」のいずれか一つのリンククラス数を０とする条件と等しい。このため、演算子が「以下」の条件の場合は、リンククラス数を０とするリンククラスのパターンを作成し、以降で示すように、それらのリンククラス数を０とする条件を作成する。
【０１５９】
次に、ステップＳ１３６において、条件クラス作成部１００７は、ステップＳ１３５において作成された一つの組合せに含まれる各リンククラスの補足条件を作成し、作成された各補足条件を演算子「ＡＮＤ」で結合する。また、作成された他の組合せについても同様に補足条件を作成する。そして、条件クラス作成部１００７は、異なる組合せから作成された補足条件を演算子「ＯＲ」で結合する。
【０１６０】
ここで、条件クラス作成部１００７は、リンククラス数の制限６０４に格納されている演算子が「以上」の場合、組合せに含まれる各リンククラスの補足条件を「１以上」と設定する。また、演算子が「等しい」の場合、組合せに含まれる各リンククラスの補足条件を「１に等しい」、かつ、組合せに含まれない各リンククラスの補足条件を「０に等しい」と設定する。また、演算子が「以下」の場合、補足条件を「０に等しい」と設定する。
【０１６１】
例えば、図６の第６レコード６１３では、リンククラス数の制限６０４の演算子は「以上」であるので、条件クラス作成部１００７は、ステップＳ１３５において作成された３通りの組合せに含まれる各リンククラスの補足条件を「１以上」と設定し、設定された各リンククラスの各補足条件を「ＡＮＤ」で結合する。
【０１６２】
つまり、リンククラスＩＤ「４」「７」を含む「組合せ１」においては、「リンククラスＩＤ「４」のリンククラス数は１以上」かつ「リンククラスＩＤ「７」のリンククラスの数は１以上」とする補足条件が作成される。同様に、リンククラスＩＤ「４」「１０」を含む「組合せ２」、リンククラスＩＤ「７」「１０」を含む「組合せ３」に含まれる各リンククラスの補足条件を設定し、設定された各リンククラスの各補足条件を「ＡＮＤ」で結合する。そして、「組合せ１」「組合せ２」「組合せ３」に設定された各補足条件の組みを「ＯＲ」で結合する。
【０１６３】
ステップＳ１３７において、条件クラス作成部１００７は、ステップＳ１３４又はステップＳ１３６において設定された補足条件を記憶部１１００の補足条件情報１５に格納する。
【０１６４】
具体的には、条件クラス作成部１００７は、補足条件を一意に識別するための識別子を作成し、作成された補足条件ＩＤを補足条件情報１５の補足条件ＩＤ１５１に格納する。次に、条件クラス作成部１００７は、補足条件の対象となるリンククラスすべてを対象リンククラスＩＤ１５２に格納する。次に、条件クラス作成部１００７は、ステップＳ１３４又はステップＳ１３６において設定された各補足条件を補足条件１５３に格納する。
【０１６５】
この場合、補足条件１５３の値は、対象リンククラスＩＤとリンククラス数の制限とが、例えば、「（４，１以上）」のように表される。「（４，１以上）」内の「，」で区切られた左側の第１項は、対象リンククラスＩＤである。「，」で区切られた右側の第２項は、対象リンククラスのリンククラス数の制限である。なお、一つのレコードに複数の補足条件が格納されている場合、各補足条件は「ＡＮＤ」で結合されていることを示す。
【０１６６】
例えば、図７の第１レコード１５４の補足条件１５３に示されるとおり、対象リンククラスＩＤ「４」「１２」の各補足条件は「ＡＮＤ」で結合される。そして、図７の第１レコード１５４の補足条件ＩＤ「１」は、図６の第１レコード６０８の補足条件ＩＤ６０７に格納される。
【０１６７】
また、図６の第６レコード６１３の対象リンククラスＩＤ「４」「７」を含む「組合せ１」、リンククラスＩＤ「４」「１０」を含む「組合せ２」、リンククラスＩＤ「７」「１０」を含む「組合せ３」の各補足条件は、それぞれ、図７の第２レコード１５５、第３レコード１５６、第４レコード１５７に格納される。「組み合せ１」に含まれる各リンククラス（「４」「７」）の補足条件は「ＡＮＤ」で結合される。「組み合せ２」「組み合せ３」についても同じである。
【０１６８】
そして、図７の第２レコード１５５、第３レコード１５６、第４レコード１５７に格納された各補足条件（補足条件「２」「３」「４」）は、図６の第６レコード６１３の補足条件ＩＤ６０７に格納される。なお、格納された補足条件「２」「３」「４」は、「ＯＲ」で結合される。
【０１６９】
ステップＳ１３８において、条件クラス作成部１００７は、リンククラスの制限情報６に含まれるすべての条件に対して処理を実行したか否かを判定する。
【０１７０】
ステップＳ１３８において、すべての条件に対して処理を実行していないと判定された場合、条件クラス作成部１００７は、Ｓ１３１を実行する。一方、ステップＳ１３８において、すべての条件に対して処理を実行したと判定された場合、条件クラス作成部１００７は、処理を終了する。
【０１７１】
＜条件の展開の処理の詳細＞
図１５は、本発明の実施形態の条件の展開（ステップＳ２０８）の処理の詳細を示すフローチャートである。
【０１７２】
ステップＳ２０８（図２）において、条件展開部１００９は、条件クラス受付部１００６及び条件クラス作成部１００７が作成したリンククラスの制限情報６及び補足条件情報１５と、パラメータ受付部１００８が作成した作業者情報８及び作業情報９に基づいて、リンクの制限情報１０を作成する。ステップＳ２０８の詳細な処理については次のとおりである。
【０１７３】
まず、ステップＳ１４１において、条件展開部１００９は、リンククラス情報３、作業者情報８及び作業情報９に基づいて、各作業者ノードと各作業者ノードが実行できる各作業ノードとがリンクで結合されたリンク情報７を作成する。
【０１７４】
例えば、条件展開部１００９は、作業者クラスＩＤ「１」と作業クラスＩＤ「８」とを検索キーとして、リンククラス情報３のレコードを検索する。検索キーに対応するリンククラスＩＤが取得された場合、作業者クラスＩＤ「１」に属する作業者は、作業クラスＩＤ「８」に属する作業を実行できるので、条件展開部１００９は、作業者クラスＩＤ「１」に属する各作業者と作業クラスＩＤ「８」に属する各作業との間にリンクを作成する。
【０１７５】
具体的には、図９から作業者クラスＩＤ「１」に属する作業者ノードＩＤ「１」「２」を選択し、図１０から作業クラスＩＤ「８」に属する作業ノードＩＤ「１１」「１５」を選択し、選択された各作業者ノードＩＤと各作業ノードＩＤとの間にリンクを作成し、作成されたリンクを図８のリンク情報７に格納する。ステップＳ１４１において作成されたリンク情報７は、記憶部１１００に格納される。
【０１７６】
ステップＳ１４２において、条件展開部１００９は、記憶部１１００に格納されたリンククラスの制限情報６から条件を一つ選択する。
【０１７７】
ステップＳ１４３において、条件展開部１００９は、ステップＳ１４２において選択されたリンククラス数の制限及び補足条件に基づいて、リンクの制限情報１０を作成し、作成されたリンクの制限情報１０を記憶部１１００に格納する。
【０１７８】
ステップＳ１４４において、条件展開部１００９は、リンククラスの制限情報６に格納されたすべての条件に対して処理を実行したか否かを判定する。ステップＳ１４４において、すべての条件に対して処理を実行したと判定された場合、条件展開部１００９は処理を終了する。一方、ステップＳ１４４において、すべての条件に対して処理を実行していないと判定された場合、条件展開部１００９は、ステップＳ１４２を実行する。
【０１７９】
ステップＳ１４３において、条件展開部１００９が実行するリンク数の制限を作成する各処理は、ステップＳ１４２において選択されたレコードの条件の分類６０２によって異なる。以下に、条件の分類６０２の値が「作業者の組合せ」、「作業の組合せ」、「割当数（作業者）」、「割当数（作業）」及び「連続作業数」である場合のステップＳ１４３の処理の詳細について説明する。
【０１８０】
＜１  作業者の組合せの場合＞
作業者の組合せの条件は、各作業者クラスに属する作業者と特定の一つの作業クラスに属する一つの作業との間のリンクの集合のリンク数の制限である。作業者の組合せの条件には、作業者クラスの種類（資格）の組合せの条件と、各作業者クラスから所定の作業者数を割り当てる条件との二つがある
条件展開部１００９は、補足条件に基づいて、「作業者クラスの種類の組合せ」の条件を作成し、必要に応じ、リンククラス流量の制限に基づいて、「作業者クラスの作業者数」の条件を作成する。「作業者クラスの作業者数」の条件を作成する場合、条件展開部１００９は、取得したリンクのリンク数の制限をリンククラス流量の制限と同じ値に設定する。
【０１８１】
＜１−１  作業者クラスの種類の組合せ＞
条件展開部１００９は、特定の一つの作業クラスから取得した作業ノードＩＤのうちの一つを選択し、選択された作業ノードＩＤと取得した作業者ノードＩＤとのすべての組みを作成し、作成された各組みを検索キーとして、リンク情報７からリンクＩＤを取得する。
【０１８２】
ステップＳ１４２においてリンククラスの制限情報６から選択された条件の分類が「作業者の組合せ」である場合、条件展開部１００９は、まず、補足条件ＩＤを検索キーとして、補足条件情報１５から対象リンククラスＩＤ１５２及び補足条件１５３を取得する。
【０１８３】
次に、条件展開部１００９は、補足条件１５３に格納された各補足条件に基づいて、リンク数の制限を作成する。具体的には、補足条件１５３に格納された補足条件を一つ選択し、選択された補足条件の第１項目に記載されたリンククラスＩＤを検索キーとして、リンククラス情報３のレコードを検索し、検索キーとしたリンククラスＩＤに対応する作業者クラスＩＤと作業クラスＩＤとの組みを取得する。次に、取得した作業者クラスＩＤ及び作業クラスＩＤのそれぞれを検索キーとして、作業者情報８及び作業情報９のレコードを検索し、検索キーとした作業者クラスＩＤ及び作業クラスＩＤに対応する作業者ノードＩＤ及び作業ノードＩＤを取得する。
【０１８４】
具体的には、例えば、ステップＳ１４２において図６の第１レコード６０８が選択された場合、条件展開部１００９は、第１レコード６０８に格納された補足条件「１」を検索キーとして、補足条件情報１５から、対象リンククラスＩＤ「４」「１２」、及び、補足条件「（４，１以上）」「（１２，１以上）」を取得する。
【０１８５】
次に、二つの補足条件「（４，１以上）」「（１２，１以上）」の第１項に示されたリンククラスＩＤ「４」「１２」を検索キーとして、リンククラス情報３から、作業者クラスＩＤ「１」「４」、作業クラスＩＤ「８」を取得する。
【０１８６】
次に、条件展開部１００９は、作業クラスＩＤ「８」を検索キーとして、作業情報９から、作業ノードＩＤ「１１」「１５」を取得し、取得した作業ノードＩＤのうち一つを選択し、選択された作業ノードＩＤと取得した作業者クラスＩＤ「１」に属する作業者ノードとの間のリンクの集合、及び、選択された作業ノードＩＤと取得した作業者クラスＩＤ「４」に属する作業者ノードとの間のリンクの集合のリンク数の制限を作成する。ここでは、作業ノードＩＤ「１１」が選択された場合について説明する。
【０１８７】
まず、条件展開部１００９は、作業者クラスＩＤ「１」を検索キーとして作業者情報８から、作業者ノードＩＤ「１」「２」を取得する。作業ノードＩＤ「１１」が選択されているので、次に、取得した作業者ノードＩＤ「１」と選択された作業ノードＩＤ「１１」とを検索キーとして、リンク情報７からリンクＩＤ「６」を取得する。また、取得した作業者ノードＩＤ「２」と選択された作業ノードＩＤ「１１」とを検索キーとして、リンク情報７からリンクＩＤ「１３」を取得する。次に、条件展開部１００９は、リンクＩＤ「６」「１３」のリンク数の制限を作成する。
【０１８８】
例えば、条件展開部１００９は、リンクの制限情報１０の第１レコード２０１を次のように作成する。まず、条件展開部１００９は、リンク数の制限を一意に識別する条件ＩＤを作成して、作成された条件ＩＤ（例えば、「１」）を条件ＩＤ１０１に格納する。次に、取得したリンクＩＤ「６」「１３」を対象リンクＩＤ１０２に格納する。また、リンククラスＩＤ「４」の補足条件が「（４，１以上）」であるので、取得したリンクＩＤ「６」「１３」のリンク数の制限を「１以上」と設定し、「１以上」をリンク数の制限１０３に格納する。また、図６の第１レコード６０８の条件の種類６０６と同じ値（「制約」）を条件の種類１０５に格納する。
【０１８９】
次に、条件展開部１００９は、作業者クラスＩＤ「４」を検索キーとして、作業者情報８から、作業者ノードＩＤ「７」「８」「９」を取得する。作業ノードＩＤ「１１」が選択されているので、次に、取得した作業者ノードＩＤ「７」と選択された作業ノードＩＤ「１１」とを検索キーとして、リンク情報７からリンクＩＤ「２３」を取得する。また、取得した作業者ノードＩＤ「８」と選択された作業ノードＩＤ「１１」とを検索キーとして、リンク情報７から、リンクＩＤ「２５」を取得する。また、取得した作業者ノードＩＤ「９」と選択された作業ノードＩＤ「１１」とを検索キーとして、リンク情報７からリンクＩＤ「２７」を取得する。次に、条件展開部１００９は、取得したリンクＩＤ「２３」「２５」「２７」のリンク数の制限を作成する。
【０１９０】
例えば、条件展開部１００９は、リンクの制限情報１０の第２レコード２０２を次のように作成する。まず、条件ＩＤ（例えば、「２」）を条件ＩＤ１０１に格納し、取得したリンクＩＤ「２３」「２５」「２７」を対象リンクＩＤ１０２に格納する。また、リンククラスＩＤ「１２」の補足条件が「（１２，１以上）」であるので、取得したリンクＩＤ「２３」「２５」「２７」のリンク数の制限を「１以上」と設定し、「１以上」をリンク数の制限１０３に格納する。
【０１９１】
なお、リンククラスＩＤ「４」「１２」のリンククラス数の制限が「２に等しい」であるので、リンククラスＩＤ「４」の条件「１」とリンククラスＩＤ「１２」の条件「２」は同時に満たされなければならない。したがって、条件展開部１００９は、これら二つの条件を「ＡＮＤ」で結合する。この場合、条件展開部１００９は、例えば、第１レコード２０１の接続１０４に（ＡＮＤ，２）を格納する。これによって、条件「１」と「２」とが「ＡＮＤ」で結合される。
【０１９２】
以上によって、一つの作業ノード（作業ノードＩＤ「１１」）の作業者の組合せの条件が作成される。前述した例では、図６の第１レコード６０８の補足条件「１」に基づいて、図１１に示した第１レコード２０１及び第２レコード２０２が作成される。
【０１９３】
同様にして、条件展開部１００９は、特定の一つの作業クラスに属する他の作業ノードを選択し、選択された他の作業ノードと作業者ノードとのリンクのリンク数の制限を作成する。具体的には、作業クラスＩＤ「８」に属する他の作業ノードＩＤ「１５」を選択し、選択された作業ノードＩＤ「１５」と作業者ノードＩＤ「１」「２」とのリンク、及び、選択された作業ノードＩＤ「１５」と「７」「８」「９」とのリンクのリンク数の制限を、前述した処理によって作成する。なお、作業ノードＩＤ「１５」が選択された場合、リンクＩＤ「７」「１４」のリンク数の制限が図１１の第３レコード２０３に示される。また、リンクＩＤ「２４」「２６」「２８」のリンク数の制限が図１１の第４レコード２０４に示される。
【０１９４】
また、次に、条件展開部１００９が、リンククラスの制限情報６の第６レコード６１３に格納された補足条件に基づいて、リンク数の制限を作成する処理について説明する。リンク数の制限を作成する処理は、前述した処理と同じである。ただし、第６レコード６１３では、リンククラスの組合せが複数あるので、リンククラスの組合せは一意に決まらない。このため、考えられるすべての組合せの補足条件ＩＤ（例えば、「２」「３」「４」）がある。各補足条件に基づいて作成されるリンク数の制限は「ＯＲ」で結合される。
【０１９５】
なお、第６レコード６１３の補足条件「２」「３」「４」から、補足条件の対象となる作業クラスＩＤ「８」が取得される。作業クラスＩＤ「８」に属する各作業ノードには作業ノードＩＤ「１１」「１５」があるが、このうち、作業ノードＩＤ「１１」が選択された場合について説明する。
【０１９６】
条件展開部１００９は、図７の第２レコード１５５（補足条件「２」）に格納されたリンククラスＩＤ「４」「７」を含む「組合せ１」の補足条件に基づいて、図１１の第１３レコード２１３から第１４レコード２１４を作成する。なお、第１３レコード２１３と第１４レコード２１４とは、「ＡＮＤ」によって結合される。
【０１９７】
また、条件展開部１００９は、図７の第３レコード１５６（補足条件「３」）に格納されたリンククラスＩＤ「４」「１０」を含む「組合せ２」の補足条件に基づいて、図１１の第１５レコード２１５から第１６レコード２１６を作成する。なお、第１５レコード２１５と第１６レコード２１６とは、「ＡＮＤ」によって結合される。
【０１９８】
また、条件展開部１００９は、図７の第４レコード１５７（補足条件「４」）に格納されたリンククラスＩＤ「７」「１０」を含む「組合せ３」の補足条件に基づいて、図１１の第１７レコード２１７から第１８レコード２１８を作成する。第１７レコード２１７と第１８レコード２１８とは、「ＡＮＤ」によって結合される。
【０１９９】
最後に、条件展開部１００９は、第１３レコード２１３と第１５レコード２１５と第１７レコード２１７とを「ＯＲ」で結合し、これらが結合されていることを示す情報を第１９レコード２１９に格納する。第１９レコード２１９に格納された条件が補足条件「２」「３」「４」に基づいて作成された最終的な条件である。
【０２００】
＜１−２  各作業者クラスの作業者数＞
作業者の組合せの条件のうちの各作業者クラスの作業者数の条件を作成する処理について説明する。各作業者クラスの作業者数の条件は、リンククラスの制限情報６のリンククラス流量の制限６０５に基づいて作成される。
【０２０１】
条件展開部１００９は、リンククラス流量の制限６０５に格納された条件に基づいて、リンク数の制限（一つの作業クラスから指定される作業者の数）を作成する。リンククラス流量の制限６０５に格納されたリンククラスＩＤを検索キーとして、リンククラス情報３から作業者クラスＩＤ及び作業クラスＩＤを取得する。
【０２０２】
次に、条件展開部１００９は、取得した作業者クラスＩＤ及び作業クラスＩＤを検索キーとして、作業者情報８及び作業情報９から作業者クラスに属する各作業者ノードＩＤと作業クラスに属する各作業ノードＩＤとを取得する。
【０２０３】
次に、条件展開部１００９は、取得した作業ノードＩＤから作業ノードＩＤを一つ選択し、選択された作業ノードＩＤと作業者ノードＩＤとのすべての組みを作成し、作成された各組みを検索キーとして、リンク情報７からリンクＩＤを取得する。
【０２０４】
次に、条件展開部１００９は、取得したリンクＩＤの集合のリンク数の制限を、リンククラス流量の制限６０５に格納されたリンククラス流量と同じ値に設定する。
【０２０５】
具体的には、例えば、ステップＳ１４２において図６の第１レコード６０８が選択された場合、第１レコード６０８には、リンククラス流量の制限が格納されているので、条件展開部１００９は、リンククラス流量の制限「（４，１以上）（１２，２以上）」に基づいて、リンク数の制限を作成する。
【０２０６】
まず、条件展開部１００９は、リンククラスＩＤ「４」を検索キーとして、リンククラス情報３から作業者クラスＩＤ「１」と作業クラスＩＤ「８」を取得する。次に、条件展開部１００９は、作業者クラスＩＤ「１」と作業クラスＩＤ「８」とをそれぞれ検索キーとして、作業者情報８及び作業情報９から、作業者ノードＩＤ「１」「２」、作業ノードＩＤ「１１」「１５」を取得する。
【０２０７】
次に、条件展開部１００９は、取得した作業ノードＩＤのうち、一つを選択する。ここでは、作業ノードＩＤ「１１」が選択された場合を説明する。条件展開部１００９は、取得した作業者ノードＩＤ「１」「２」と選択された作業ノードＩ「１１」とを検索キーとして、リンク情報７からリンクＩＤ「６」「１３」を取得する。条件展開部１００９は、取得したリンクＩＤ「６」「１３」のリンク数の制限を作成する。
【０２０８】
例えば、条件展開部１００９は、リンクの制限情報１０の第２０レコード２２０を次のように作成する。まず、条件展開部１００９は、条件（リンク数の制限）を一意に識別する条件ＩＤを作成して、作成された条件ＩＤ（例えば、「２０」）を条件ＩＤ１０１に格納する。次に、取得した対象リンクＩＤ「６」「１３」を対象リンクＩＤ１０２に格納する。
【０２０９】
また、リンククラスＩＤ「４」のリンククラス流量の制限が「（４，１以上）」であるので、取得したリンクＩＤ「６」「１３」の作業者数の条件を「１以上」と設定し、「１以上」をリンク数の制限１０３に格納する。また、図６の第１レコード６０８の条件の種類６０６と同じ値（「制約」）を条件の種類１０５に格納する。また、他の条件と接続されないことを示す情報（例えば、「−」）を接続１０４に格納する。リンククラス流量の制限は各作業者クラスの作業者の割当数（人数）を指定する条件であるため、各作業者クラスのそれぞれの条件は演算子で結合されない。
【０２１０】
さらに、第１レコード６０８に格納された２番目のリンククラス流量の制限「（１２，２以上）」に基づいて、リンク数の制限（作業者数）を作成する。リンククラスは「１２」であるので、条件展開部１００９は、前述した処理によって取得したリンクＩＤ「２３」「２５」「２７」の作業者数の条件を作成する。リンクＩＤ「２３」「２５」「２７」の作業者数の条件は、「２以上」である。例えば、条件展開部１００９は、リンクの制限情報１０の第２１レコード２２１を前述した処理によって作成する。
【０２１１】
ただし、前述したリンククラス流量の制限に基づいて作成された「各作業者クラスの作業者数の条件」と補足条件ＩＤ６０７に基づいて作成された「作業者クラスの種類の組合せの条件」とを関連付けるため、条件展開部１００９は、リンクの制限情報１０の第１レコード２０１の接続１０４に、「（ＡＮＤ，２０）」「（ＡＮＤ，２１）」を格納する。これによって、条件「１」「２」「２０」「２１」は「ＡＮＤ」によって結合される。
【０２１２】
以上の処理によって、各作業者クラスに属する作業者を特定の一つの作業ノードに割り当てる場合の割当数の条件を作成する。前述した処理を、他の作業ノードＩＤ（ここでは、作業ノードＩＤ「１５」）に対しても実行し、すべての各作業ノードの作業者の割当数の条件を作成する。
【０２１３】
＜２  作業の組合せの場合＞
作業の組合せの条件は、特定の一つの作業者クラスに属する一つの作業者と各作業クラスに属する各作業との間のリンクの集合のリンク数の制限である。ステップＳ１４２においてリンククラスの制限情報６から選択された条件の分類が「作業の組合せ」である場合、条件展開部１００９は、ステップＳ１４３において、特定の一つの作業者クラスから取得した作業者ノードＩＤのうちの一つ選択し、選択された作業者ノードＩＤと取得した作業ノードＩＤとを結合したリンクのリンク数の制限を作成する。
【０２１４】
なお、作業の組合せの条件には、同一の作業者が実行する作業の組合せ（「同一の作業者の作業」）の条件と、同一の作業者が実行してはいけない作業の組合せ（「同一の作業者の禁止作業」）の条件との二つがある。ステップＳ１４２において選択された条件のリンククラス数の制限６０４に格納された境界値が、対象リンククラスＩＤ６０３に格納されたリンク数に等しい場合は「同一の作業者の作業」である。一方、リンククラス数の制限６０４に格納された条件が、「１以下」の場合は「同一の作業者の禁止作業」である。
【０２１５】
＜２−１  同一の作業者の作業＞
まず、条件展開部１００９は、図１５のステップＳ１４２において選択された条件の対象リンククラスＩＤ６０３を検索キーとして、リンククラス情報３から、対象となる作業者クラスＩＤ及び作業クラスＩＤを取得する。
【０２１６】
次に、条件展開部１００９は、取得した作業者クラスＩＤ及び作業ＩＤをそれぞれ検索キーとして、作業者情報８及び作業情報９から、作業者ノードＩＤ及び作業ノードＩＤを取得する。
【０２１７】
次に、条件展開部１００９は、特定の一つの作業者クラスに属する作業者ノードのうち一つの作業者ノードを選択し、選択された一つの作業者ノードＩＤと取得した一つの作業クラスに属する各作業ノードＩＤとを検索キーとして、リンク情報７からリンクＩＤを取得する。次に、条件展開部１００９は、取得したリンクＩＤによって識別されるリンクの集合のリンク数の制限を「１以上」と設定する。
【０２１８】
条件展開部１００９は、同様の処理によって、選択された一つの作業者ノードと取得した他の作業クラスに属する作業ノードとの間のリンクの集合のリンク数の制限を作成する。同一の作業者の作業の場合、各作業者ノードと各作業クラスに属する作業との間のすべてのリンクの集合のリンク数を制限する必要がある。このため、条件展開部１００９は、前述した処理によって作成された各条件を演算子「ＡＮＤ」で結合する。結合された条件が最終的な条件である。
【０２１９】
具体的には、例えば、ステップＳ１４２において図６の第２レコード６０９が選択された場合、条件展開部１００９は、第２レコード６０９に格納された対象リンククラスＩＤ「２」「３」を検索キーとして、作業者クラスＩＤ「１」と、作業クラスＩＤ「６」「７」を取得する。なお、第２レコード６０９のリンククラス数の制限は「２に等しい」ので、「作業の組合せの条件」は「同一の作業者の作業の条件」である。
【０２２０】
次に、条件展開部１００９は、取得した作業者クラスＩＤ「１」を検索キーとして、作業者情報８から作業者ノードＩＤ「１」「２」を取得する。次に、条件展開部１００９は、取得した作業クラスＩＤ「６」を検索キーとして、作業情報９から、作業ノードＩＤ「１６」を取得する。
【０２２１】
次に、条件展開部１００９は、取得した作業者ノードＩＤ「１」「２」のうち一つの作業者ノードを選択する。ここでは、取得した作業者ノードのうち、作業者ノードＩＤ「１」が選択された場合について説明する。
【０２２２】
作業者ノードＩＤ「１」が選択されているので、条件展開部１００９は、選択された作業者ノードＩＤ「１」と取得した作業ノードＩＤ「１６」を検索キーとして、リンク情報７からリンクＩＤ「３」を取得し、取得したリンクＩＤ「３」のリンク数の制限を「１以上」と設定する。
【０２２３】
例えば、条件展開部１００９は、リンクの制限情報１０の第５レコード２０５を次のように作成する。まず、条件展開部１００９は、条件を一意に識別するための識別子を作成し、作成された識別子（例えば、条件ＩＤ「５」）を条件ＩＤ１０１に格納する。次に、取得したリンクＩＤ「３」を対象リンクＩＤ１０２に格納する。次に、条件展開部１００９は、「１以上」をリンク数の制限１０３に格納する。また、図６の第２レコード６０９の条件の種類６０６と同じ値「制約」を条件の種類１０５に格納する。
【０２２４】
さらに、条件展開部１００９は、取得したもう一方の作業クラスＩＤ「７」を検索キーとして、作業情報９から、作業ノードＩＤ「１２」「１３」を取得する。
【０２２５】
作業者ノードＩＤ「１」が選択されているので、条件展開部１００９は、選択された作業者ノードＩＤ「１」と取得した作業ノードＩＤ「１２」「１３」とを検索キーとして、リンク情報７からリンクＩＤ「４」「５」を取得し、取得したリンクＩＤ「４」「５」のリンク数の制限を「１以上」と設定する。
【０２２６】
条件展開部１００９は、前述した処理によって、リンクＩＤ「４」「５」のリンク数の制限を作成する。リンクＩＤ「４」「５」の同一の作業者の作業の条件は、リンクの制限情報１０の第６レコード２０６である。
【０２２７】
最後に、条件展開部１００９は、作成された第５レコード２０５の条件「５」と第６レコード２０６の条件「６」とを「ＡＮＤ」で結合する。この場合、条件展開部１００９は、作成された第５レコード２０５の接続１０４に「（ＡＮＤ，６）」を格納する。図１１の第５レコード２０５及び第６レコード２０６の条件は、作業者ノードＩＤ「１」が作業ノードＩＤ「１６」と、作業ノードＩＤ「１２」「１３」のうちの少なくとも一以上と、の作業を実行することを示す。
【０２２８】
前述した処理を、取得したすべての作業者ノードに対して実行することによって、特定の一つの作業者クラスの作業の組合せを条件が作成される。
【０２２９】
＜２−２  同一の作業者の禁止作業＞
条件展開部１００９は、特定の一つの作業者クラスに属する作業者ノードのうち一つの作業者ノードを選択し、選択された一つの作業者ノードＤと取得した一つの作業クラスに属する各作業ノードＩＤとを検索キーとして、リンク情報７からリンクＩＤを取得する。そして、取得したリンクＩＤによって識別されるリンクの集合のリンク数の制限を「０に等しい」と設定する。同一の作業者の禁止作業である場合、各作業クラスに属する作業ノードのいずれか一方と作業者ノードとの間をリンクによって結合すればよい。このため、前述した処理によって作成された各条件を演算子「ＯＲ」で結合する。
【０２３０】
具体的には、例えば、条件展開部１００９は、図６の第３レコード６１０に基づいて、図１１の第７レコード２０７及び第８レコード２０８を作成する。図６の第３レコード６１０のリンク数の制限は「１以下」であるので、第３レコード６１０の「作業の組合せ」は「同一の作業者の禁止作業」である。なお、図１１の第７レコード２０７及び第８レコード２０８は、リンクＩＤ「１」「２」のリンク数の制限が「０に等しい」、又は、リンクＩＤ「６」「７」のリンク数の制限が「０に等しい」ので、作業者「１」が作業「１０」「１４」と作業「１１」「１５」とのいずれか一方を実行する条件である。
【０２３１】
＜３  割当数（作業又は作業者）の場合＞
＜３−１  割当数（作業）＞
割当数の条件（作業）は、一つの作業ノードと各作業者ノードの集合との間のリンクの集合のリンク数の制限である。
【０２３２】
ステップＳ１４２においてリンククラスの制限情報６から選択された条件の分類が「割当数の条件（作業）」である場合、条件展開部１００９は、ステップＳ１４３において、一つの特定の作業ノードと作業者ノードとの間のすべてのリンクの集合のリンク数の制限を作成する。
【０２３３】
まず、条件展開部１００９は、ステップＳ１４２において選択された条件の対象リンククラスＩＤ６０３を検索キーとして、リンククラス情報３から、条件の対象となる作業者クラスＩＤ及び作業クラスＩＤを取得する。次に、条件展開部１００９は、取得した作業者クラスＩＤと作業ＩＤとをそれぞれ検索キーとして、作業者情報８及び作業情報９から作業者ノードＩＤ及び作業ノードＩＤを取得する。
【０２３４】
次に、条件展開部１００９は、取得した作業ノードＩＤのうち一つの作業ノードを選択し、選択された作業ノードと取得した作業者ノードとの間のすべてのリンクをリンク情報７から取得し、取得したすべてのリンクの集合のリンク数の制限を作成する。
【０２３５】
前述した処理によって、一つの作業の作業者の割当数の条件が作成される。割当数の条件（作業）の場合、条件展開部１００９は、取得したすべての作業ノードに対して前述した処理を実行することによって、各作業者を一つの作業に割り当てる場合の割当数の条件を作成する。
【０２３６】
具体的には、例えば、ステップＳ１４２において、図６の第４レコード６１１が選択された場合、条件展開部１００９は、第４レコード６１１の対象リンクＩＤ「４」「７」「１０」「１２」を検索キーとして、リンククラス情報３から、作業者クラスＩＤ「１」「２」「３」「４」、及び、作業クラスＩＤ「８」を取得する。
【０２３７】
次に、条件展開部１００９は、取得した作業者クラスＩＤ「１」「２」「３」「４」を検索キーとして、作業者情報８から、作業者ノードＩＤ「１」「２」「３」「４」「５」「６」「７」「８」「９」を取得する。また、作業クラスＩＤ「８」を検索キーとして作業情報９から作業ノードＩＤ「１１」「１５」を取得する。
【０２３８】
第４レコード６１１の条件の分類は「割当数（作業）」であるので、条件展開部１００９は、取得した作業ノードＩＤのうちの一つを選択する。ここでは、作業ノードＩＤ「１１」が選択された場合について説明する。
【０２３９】
作業ノードＩＤ「１１」が選択されているので、条件展開部１００９は、取得した作業者ノードＩＤ「１」「２」「３」「４」「５」「６」「７」「８」「９」と選択された作業ノードＩＤ「１１」とを検索キーとして、リンク情報７からリンクＩＤ「６」「１３」「１５」「１７」「１９」「２１」「２３」「２５」「２７」を取得する。
【０２４０】
図６の第４レコード６１１のリンク数の制限は「２以上」であるので、取得したすべてのリンクの集合のリンク数の制限を「２以上」と設定し、「２以上」と設定したリンク数の制限をリンクの制限情報１０に格納する。
【０２４１】
例えば、条件展開部１００９は、リンクの制限情報１０の第９レコード２０９を次のように作成する。まず、条件展開部１００９は、条件を一意に識別する条件ＩＤ（例えば、「９」）を作成し、作成された条件「９」を条件ＩＤ１０１に格納する。次に、取得したリンクＩＤ「６」「１３」「１５」「１７」「１９」「２１」「２３」「２５」「２７」を対象リンクＩＤ１０２に格納する。
【０２４２】
また、第４レコード６１１のリンク数の制限は「２以上」であるので、「２以上」をリンク数の制限１０３に格納する。また、図６の第４レコード６１１の条件の種類６０６と同じ値「制約」を条件の種類１０５に格納する。また、他の条件と接続されないことを示す情報（例えば、「−」）を接続１０４に格納する。割当数の条件（作業）は、一つの作業ノードに対して作業者の割り当てる条件であり、他の作業ノードとの関わりがないので、他の条件とは接続されない。なお、図１１の第９レコード２０９は、作業者「１」「２」「３」「４」「５」「６」「７」「８」「９」のうちの少なくとも２人以上によって、作業「１１」を実行するという条件である。
【０２４３】
＜３−２  割当数の条件（作業者）＞
一方、割当数の条件（作業者）は、一つの作業者ノードと各作業ノードの集合との間のリンクの集合のリンク数の制限である。このため、条件展開部１００９は、取得した作業者ノードＩＤのうち一つを選択し、選択された作業者ノードと取得した作業ノードとの間のすべてのリンクをリンク情報７から取得し、取得したすべてのリンクの集合のリンク数の制限を作成し、作成されたリンク数の制限をリンクの制限情報１０に格納する。
【０２４４】
前述した処理によって、一つの作業者を複数の作業に割り当てる場合の割当数の条件が作成される。条件展開部１００９は、取得したすべての作業者ノードに対して前述した処理を実行することによって、割当数の条件（作業者）を作成する。
【０２４５】
＜４  連続作業数の場合＞
連続作業数の条件は、一つの作業者ノードと一つの作業クラスに属する各作業ノードとの間の集合のリンク数の制限であり、一つの作業者が連続して実行できる作業数を表す条件である。ステップＳ１４２においてリンククラスの制限情報６から選択された条件の分類が「連続作業数」である場合、条件展開部１００９は、ステップＳ１４３において、一つの特定の作業者ノードと一つの作業クラスに属するすべての作業ノードとの間のリンクの集合のリンク数の制限を作成する。
【０２４６】
まず、条件展開部１００９は、ステップＳ１４２において選択された条件の対象リンククラスＩＤ６０３を検索キーとして、リンククラス情報３から、条件の対象となる作業者クラスＩＤ及び作業クラスＩＤを取得する。
【０２４７】
次に、条件展開部１００９は、取得した作業者クラスＩＤと作業ＩＤとを検索キーとして作業者情報８及び作業情報９から作業者ノードＩＤ及び作業ノードＩＤを取得する。
【０２４８】
次に、条件展開部１００９は、取得した作業者ノードＩＤのうちの一つを選択し、選択された作業者ノードと取得した一つの作業クラスに属する作業ノードとの間のすべてのリンクをリンク情報７から取得し、取得したリンクの集合のリンク数の制限を作成し、作成されたリンク数の制限をリンクの制限情報１０に格納する。
【０２４９】
前述した処理によって、一つの作業者の作業の連続条件が作成される。条件展開部１００９は、取得したすべての作業者ノードに対して前述した処理を実行することによって、一つの作業者クラスの作業の連続条件を作成する。
【０２５０】
具体的には、例えば、ステップＳ１４２において、図６の第５レコード６１２が選択された場合、条件展開部１００９は、第５レコード６１２の対象リンクＩＤ「１２」を検索キーとして、リンククラス情報３から、作業者クラスＩＤ「４」及び作業クラスＩＤ「８」を取得する。
【０２５１】
次に、条件展開部１００９は、取得した作業者クラスＩＤ「４」を検索キーとして、作業者情報８から、作業者ノードＩＤ「７」「８」「９」を取得する。また、作業クラスＩＤ「８」を検索キーとして、作業情報９から作業ノードＩＤ「１１」「１５」を取得する。
【０２５２】
次に、条件展開部１００９は、取得した作業ノードＩＤのうち一つの作業者ノードＩＤを選択する。ここでは、作業者ノードＩＤ「７」が選択された場合について説明する。
【０２５３】
作業者ノードＩＤ「７」が選択されているので、条件展開部１００９は、選択された作業者ノードＩＤ「７」と作業ノードＩＤ「１１」「１５」とを検索キーとして、リンク情報７からリンクＩＤ「２３」「２４」を取得する。
【０２５４】
図６の第５レコード６１２のリンク数の制限は「１以下」であるので、取得したすべてのリンクＩＤ「２３」「２４」のリンク数の制限を「１以下」と設定し、「１以下」と設定されたリンク数の制限をリンクの制限情報１０に格納する。
【０２５５】
例えば、条件展開部１００９は、リンクの制限情報１０の第１０レコード２１０を次のように作成する。まず、条件展開部１００９は、条件を一意に識別するための識別子（例えば、「１１」）を作成し、作成された条件「１１」を条件ＩＤ１０１に格納する。次に、取得したリンクＩＤ「２３」「２４」を対象リンクＩＤ１０２に格納する。次に、「１以下」をリンク数の制限１０３に格納する。また、図６の第５レコード６１２の条件の種類６０６と同じ値「制約」を条件の種類１０５に格納する。また、他の条件とは接続されないことを示す情報（例えば、「−」）を接続１０４に格納する。連続作業数の条件は、一つの作業者ノードへ連続する複数の作業を割り当てる条件であり、他の作業者ノードとの関わりがないので、他の条件とは接続されない。
【０２５６】
さらに、他の作業者ノードＩＤ「８」「９」が選択された場合も、条件展開部１００９は、前述した処理によって、作業者ノードＩＤ「８」「９」のそれぞれへ連続する複数の作業を割り当てる条件を作成する。作業者ノードＩＤ「８」の連続作業条件は、リンクの制限情報１０の第１１レコード２１１である。作業者ノードＩＤ「９」の連続作業条件は、リンクの制限情報１０の第１２レコード２１２である。なお、第１１レコード２１１は、各作業者「７」「８」「９」が作業「１１」「１５」のどちらか一方を１回のみ実行することを示す条件である。
【０２５７】
以上説明したように、本実施形態によれば、作業実行条件策定装置は、ネットワーク表現クラスのリンククラス数の制限を作成し、利用者（作業計画の設計者）によって入力されたパラメータに応じて、作成されたリンククラス数の制限から、各資源ノードと各作業ノードとの間のリンクの集合のリンク数の制限を作成することができる。これによって、実行に無理のない作業実行条件を取得することができる。また、作業計画の設計者は、作業者数及び作業数を変更した場合の作業計画への影響を確認しながら、作業者の割当条件を設定することができる。これによって、作業計画の設計者は、実行に無理のない作業実行条件を取得することができる。
【符号の説明】
【０２５８】
１０００  作業実行条件策定支援装置
１００１  メモリ
１００２  プログラム
１００３  ネットワーク表現クラス作成部
１００４  分類名受付部
１００５  入力画面作成部
１００６  条件クラス受付部
１００７  条件クラス作成部
１００８  パラメータ受付部
１００９  条件展開部
１０１０  作業結果算出部
１２００  表示部
１２０１  入力部
１２０２  ＣＰＵ
１２０３  通信部
１２０４  データバス
【図１】
2010267002.tif 000003
【図２】
2010267002.tif 000004
【図３】
2010267002.tif 000005
【図４】
2010267002.tif 000006
【図５】
2010267002.tif 000007
【図６】
2010267002.tif 000008
【図７】
2010267002.tif 000009
【図８】
2010267002.tif 000010
【図９】
2010267002.tif 000011
【図１０】
2010267002.tif 000012
【図１１】
2010267002.tif 000013
【図１２】
2010267002.tif 000014
【図１３Ａ】
2010267002.tif 000015
【図１３Ｂ】
2010267002.tif 000016
【図１４】
2010267002.tif 000017
【図１５】
2010267002.tif 000018