(57)【要約】      （修正有）【課題】作業手順について対象プロセスを限定せず資源条件を考慮した設計、評価システムの提供。【解決手段】作業条件を受付ける作業条件受付部１００３と、資源条件を受付ける資源条件受付部１００４と、作業条件を数式化した数理モデルを生成し各作業における作業開始時刻および作業終了時刻に関わる制約式を生成するモデル作成部１００５と、各作業の作業開始時刻変数と作業終了時刻変数のドメインを算出し、作業終了時刻変数の値が未決である作業数が該当資源の並行実行可能な作業数を超える場合、ドメイン最小値が最も小さい作業終了時刻変数を選択し、この作業終了時刻変数と作業開始時刻変数に対応する作業時刻の制約式を生成する条件作成部１００６と、制約式を解いて作業開始時刻変数および作業終了時刻変数を決定する作業時刻算出部１００７と、作業時刻情報と該当作業を出力する作業実行過程図作成部１００８とからシステム１０００を構成する。【選択図】図１
2011076544.tif 000002
【特許請求の範囲】
【請求項１】
作業手順の策定支援を行うコンピュータシステムであり、
対象となる作業手順、手順中で最初に実行する作業の作業開始時刻、各作業の所要時間、各作業の準備時間、および各作業を実行するために必要な資源数、の各情報を含んだ作業条件を、入力部を介して利用者から受付けて記憶部に格納する作業条件受付部と、
各資源が実行できる作業種類、各資源が並行実行可能な作業数、所定作業に割り当てる複数資源の組み合わせ条件、および同一資源が手順中で実行する作業の組み合わせ条件、の各情報を含んだ資源条件を、入力部を介して利用者から受付けて記憶部に格納する資源条件受付部と、
前記記憶部の作業条件を数式化した数理モデルを生成し、ここで生成した数理モデルに前記記憶部の作業条件のデータを適用して、各作業における作業開始時刻および作業終了時刻に関わる制約式を生成し記憶部に格納するモデル作成部と、
前記記憶部の作業条件が示す各作業に割り当てられた資源のうち同一資源を特定して、この同一資源が共通に割り当てられた作業群を特定し、制約論理プログラミングにより前記制約式を解いて各作業の作業開始時刻変数と作業終了時刻変数のドメインを算出して記憶部に格納し、前記作業群のうち前記作業終了時刻変数の値が未決である作業数が前記同一資源の並行実行可能な作業数を超える場合、前記ドメインの最小値が最も小さい作業終了時刻変数を選択し、ここで選択した作業終了時刻変数と前記作業群における作業の作業開始時刻変数とに対応する作業時刻の制約式を生成し、記憶部に格納する条件作成部と、
制約論理プログラミングにより前記記憶部の各制約式を解いて前記作業開始時刻変数および作業終了時刻変数を決定し、これらを作業時刻情報として記憶部に格納する作業時刻算出部と、
前記作業時刻情報と該当作業を実行する資源の情報とを表示部に出力する作業実行過程図作成部と、
を備えることを特徴とする作業手順策定支援システム。
【請求項２】
前記条件作成部は、
前記記憶部の作業条件が示す所定作業について、前記記憶部の資源条件に基づいて前記所定作業を実行可能な資源を特定する第１処理と、
前記所定作業について特定した資源が、前記記憶部における前記所定作業に関する既割当て資源との関係で前記複数資源の組み合わせ条件を満たすか判定する第２処理と、
前記判定処理で前記複数資源の組み合わせ条件を満たした資源が実行対象とする前記所定作業および前記記憶部における前記既割当て資源について、前記作業の組み合わせ条件を満たすか判定する第３処理と、
前記作業の組み合わせ条件を満たした資源が実行対象とする各作業について、前記記憶部において前記作業終了時刻変数の値が未決である作業数をカウントし、前記記憶部の資源条件のうち前記並行実行可能な作業数を前記カウント値が越えない場合、前記資源の情報を前記記憶部の作業条件における前記所定作業に対し割当てて記憶する第４処理と、
前記記憶部の作業条件における、前記所定作業を実行するために必要な資源数と、前記所定作業に関して割当て済みの資源数とを比較し、割当て済み資源数が必要な資源数に達していない場合、前記第１処理から第４処理までを繰り返し実行するものである、
ことを特徴とする請求項１に記載の作業手順策定支援システム。
【請求項３】
前記条件作成部は、
前記第４処理において、前記記憶部の資源条件のうち前記並行実行可能な作業数を前記カウント値が越えた場合、前記資源の情報を待機資源の情報として記憶部に記憶し、前記記憶部において前記待機資源が既割当て資源となっている作業を特定し、ここで特定した作業のうち、終了時刻変数の値が未決かつ終了時刻変数のドメイン最小値が最も小さい作業を特定する処理を各待機資源について実行し、待機資源間で前記作業終了時刻変数のドメイン最小値が最も小さい待機資源を選択し、該当資源の情報を前記記憶部の作業条件における前記所定作業に対し割当てて記憶する、
ことを特徴とする請求項２に記載の作業手順策定支援システム。
【請求項４】
前記作業実行過程図作成部は、
作業手順を構成する前記作業および各作業を実行する資源の情報を実行順にＡ軸に列挙し、前記各作業の作業時刻情報が示す作業開始時刻および作業終了時刻を、前記Ａ軸上の該当作業の実行資源に対応させてＢ軸に設定し、前記作業開始時刻と作業終了時刻の間を線分で描画し、所定作業の作業終了時刻と次に実行される作業の作業開始時刻との間を線分で描画することでダイヤ図を生成し、このダイヤ図を表示部に出力する、
ことを特徴とする請求項１〜３のいずれかに記載の作業手順策定支援システム。
【請求項５】
作業手順の策定支援を行うコンピュータシステムが、
対象となる作業手順、手順中で最初に実行する作業の作業開始時刻、各作業の所要時間、各作業の準備時間、および各作業を実行するために必要な資源数、の各情報を含んだ作業条件を、入力部を介して利用者から受付けて記憶部に格納する処理と、
各資源が実行できる作業種類、各資源が並行実行可能な作業数、所定作業に割り当てる複数資源の組み合わせ条件、および同一資源が手順中で実行する作業の組み合わせ条件、の各情報を含んだ資源条件を、入力部を介して利用者から受付けて記憶部に格納する処理と、
前記記憶部の作業条件を数式化した数理モデルを生成し、ここで生成した数理モデルに前記記憶部の作業条件のデータを適用して、各作業における作業開始時刻および作業終了時刻に関わる制約式を生成し記憶部に格納する処理と、
前記記憶部の作業条件が示す各作業に割り当てられた資源のうち同一資源を特定して、この同一資源が共通に割り当てられた作業群を特定し、制約論理プログラミングにより前記制約式を解いて各作業の作業開始時刻変数と作業終了時刻変数のドメインを算出して記憶部に格納し、前記作業群のうち前記作業終了時刻変数の値が未決である作業数が前記同一資源の並行実行可能な作業数を超える場合、前記ドメインの最小値が最も小さい作業終了時刻変数を選択し、ここで選択した作業終了時刻変数と前記作業群における作業の作業開始時刻変数とに対応する作業時刻の制約式を生成し、記憶部に格納する処理と、
制約論理プログラミングにより前記記憶部の各制約式を解いて前記作業開始時刻変数および作業終了時刻変数を決定し、これらを作業時刻情報として記憶部に格納する処理と、
前記作業時刻情報と該当作業を実行する資源の情報とを表示部に出力する処理と、
を実行することを特徴とする作業手順策定支援方法。
【請求項６】
作業手順の策定支援を行うコンピュータシステムに、
対象となる作業手順、手順中で最初に実行する作業の作業開始時刻、各作業の所要時間、各作業の準備時間、および各作業を実行するために必要な資源数、の各情報を含んだ作業条件を、入力部を介して利用者から受付けて記憶部に格納する処理と、
各資源が実行できる作業種類、各資源が並行実行可能な作業数、所定作業に割り当てる複数資源の組み合わせ条件、および同一資源が手順中で実行する作業の組み合わせ条件、の各情報を含んだ資源条件を、入力部を介して利用者から受付けて記憶部に格納する処理と、
前記記憶部の作業条件を数式化した数理モデルを生成し、ここで生成した数理モデルに前記記憶部の作業条件のデータを適用して、各作業における作業開始時刻および作業終了時刻に関わる制約式を生成し記憶部に格納する処理と、
前記記憶部の作業条件が示す各作業に割り当てられた資源のうち同一資源を特定して、この同一資源が共通に割り当てられた作業群を特定し、制約論理プログラミングにより前記制約式を解いて各作業の作業開始時刻変数と作業終了時刻変数のドメインを算出して記憶部に格納し、前記作業群のうち前記作業終了時刻変数の値が未決である作業数が前記同一資源の並行実行可能な作業数を超える場合、前記ドメインの最小値が最も小さい作業終了時刻変数を選択し、ここで選択した作業終了時刻変数と前記作業群における作業の作業開始時刻変数とに対応する作業時刻の制約式を生成し、記憶部に格納する処理と、
制約論理プログラミングにより前記記憶部の各制約式を解いて前記作業開始時刻変数および作業終了時刻変数を決定し、これらを作業時刻情報として記憶部に格納する処理と、
前記作業時刻情報と該当作業を実行する資源の情報とを表示部に出力する処理と、
を実行させることを特徴とする作業手順策定支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、作業手順策定支援システム、作業手順策定支援方法、および作業手順策定支援プログラムに関するものであり、例えば、資源条件が重要となる分野における作業手順について、資源条件を考慮した設計および評価を可能とする技術に関する。
【背景技術】
【０００２】
企業活動においては、顧客からの新たな要望や社会的責任の変化などへ対応するため、新業務の設計や既存業務の改善などへの取組みが重要になっている。業務を進める上での作業手順の設計に関しては、ＢＰＭ（Business Process Management）の取組みとして、作業手順を表現する表記方法の標準化や設計した手順の情報システムへの適用方法の開発などが進められている。しかし、これらの取組みでは、ステークホルダー間の関係や企業内の関係部署間の連携が焦点となっているため、担当部署や担当企業などの情報のやりとり等は記述できるが、作業実行に必要な資源の組合せや同一資源に実施可能な作業の組合せなど、作業実行時に必要な詳細条件は考慮の対象としていない。
【０００３】
このため、こうした条件下で策定した作業手順にていざ作業を実行してみると、実行資源の不足や作業時間の過少見積りなどにより、納期遅れや想定以上のコストがかかるなど、作業手順設計時の想定と実行結果とに乖離を生む要因となる。このような乖離は、特に、製造や物流などの実行資源や納期の制約が厳しい分野では重要な課題となる。
【０００４】
そこで、作業手順を設計する際に実行資源の条件も考慮して、作業実行時間やコストなどをシミュレーションできる技術が存在する。例えば、予め作成されているモデル要素の組合せによって製造プロセスの記述を受付け、受付けたプロセスを実行する機能を有する業務／生産プロセス構築・実行支援装置（特許文献１参照）などが提案されている。またそのほかにも、ビジネスプロセスのモデルだけでなく、中間製品の調達・生産・配送・販売間の制約条件、資源、およびコストデータも受付け、それらの制約を考慮してビジネスプロセスを最適化する機能を有する企業連携型最適化支援システム（特許文献２参照）などが提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１２８６５８号公報
【特許文献２】特開２００４−１２７２５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述した従来技術においては、モデル要素として、作業の排他に対するルールや競合に対するルール、および利用部品を用いるが、これらは全て予め定義されているものであり、特定の製造プロセスに特化したモデル作成にしか対応出来ないといった課題が残されている。また、プロセス間の制約だけでなく、製品の需要量に対する資材量の制約やタンク容量などの資源の制約を考慮する技術も存在しているが、作業を共同で行う資源の組合せや、一つの資源で実行できる作業の組合せのように、資源に関する条件（以降、資源条件と称す）の内で扱いを定義していない条件があり、種々の状況に柔軟に対応できるとは言えない。
【０００７】
そこで本発明は上記課題を鑑みてなされたものであり、作業手順について対象プロセスを限定せず資源条件を考慮した設計および評価を可能とする技術の提供を主たる目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決する本発明の作業手順策定支援システムは、作業手順の策定支援を行うコンピュータシステムであり、以下の各部を備えている。すなわち作業手順策定支援システムは、対象となる作業手順、手順中で最初に実行する作業の作業開始時刻、各作業の所要時間、各作業の準備時間、および各作業を実行するために必要な資源数、の各情報を含んだ作業条件を、入力部を介して利用者から受付けて記憶部に格納する作業条件受付部を備える。
【０００９】
また、作業手順策定支援システムは、各資源が実行できる作業種類、各資源が並行実行可能な作業数、所定作業に割り当てる複数資源の組み合わせ条件、および同一資源が手順中で実行する作業の組み合わせ条件、の各情報を含んだ資源条件を、入力部を介して利用者から受付けて記憶部に格納する資源条件受付部を備える。
【００１０】
また、作業手順策定支援システムは、記憶部の作業条件を数式化した数理モデルを生成し、ここで生成した数理モデルに記憶部の作業条件のデータを適用して、各作業における作業開始時刻および作業終了時刻に関わる制約式を生成し記憶部に格納するモデル作成部を備える。
【００１１】
また、作業手順策定支援システムは、記憶部の作業条件が示す各作業に割り当てられた資源のうち同一資源を特定して、この同一資源が共通に割り当てられた作業群を特定し、制約論理プログラミングにより制約式を解いて各作業の作業開始時刻変数と作業終了時刻変数のドメインを算出して記憶部に格納し、作業群のうち作業終了時刻変数の値が未決である作業数が同一資源の並行実行可能な作業数を超える場合、ドメインの最小値が最も小さい作業終了時刻変数を選択し、ここで選択した作業終了時刻変数と作業群における作業の作業開始時刻変数とに対応する作業時刻の制約式を生成し、記憶部に格納する条件作成部を備える。
【００１２】
また、作業手順策定支援システムは、制約論理プログラミングにより記憶部の各制約式を解いて作業開始時刻変数および作業終了時刻変数を決定し、これらを作業時刻情報として記憶部に格納する作業時刻算出部を備える。
【００１３】
また、作業手順策定支援システムは、作業時刻情報と該当作業を実行する資源の情報とを表示部に出力する作業実行過程図作成部を備える。
【００１４】
なお、作業手順策定支援システムにおいて、条件作成部は、記憶部の作業条件が示す所定作業について、記憶部の資源条件に基づいて所定作業を実行可能な資源を特定する第１処理と、所定作業について特定した資源が、記憶部における所定作業に関する既割当て資源との関係で複数資源の組み合わせ条件を満たすか判定する第２処理と、判定処理で複数資源の組み合わせ条件を満たした資源が実行対象とする所定作業および記憶部における既割当て資源について、作業の組み合わせ条件を満たすか判定する第３処理と、作業の組み合わせ条件を満たした資源が実行対象とする各作業について、記憶部において作業終了時刻変数の値が未決である作業数をカウントし、記憶部の資源条件のうち並行実行可能な作業数をカウント値が越えない場合、資源の情報を記憶部の作業条件における所定作業に対し割当てて記憶する第４処理と、記憶部の作業条件における、所定作業を実行するために必要な資源数と、所定作業に関して割当て済みの資源数とを比較し、割当て済み資源数が必要な資源数に達していない場合、第１処理から第４処理までを繰り返し実行するとすれば好適である。
【００１５】
また、作業手順策定支援システムにおいて、条件作成部は、第４処理において、記憶部の資源条件のうち並行実行可能な作業数をカウント値が越えた場合、資源の情報を待機資源の情報として記憶部に記憶し、記憶部において待機資源が既割当て資源となっている作業を特定し、ここで特定した作業のうち、終了時刻変数の値が未決かつ終了時刻変数のドメイン最小値が最も小さい作業を特定する処理を各待機資源について実行し、待機資源間で作業終了時刻変数のドメイン最小値が最も小さい待機資源を選択し、該当資源の情報を記憶部の作業条件における所定作業に対し割当てて記憶する、とすれば好適である。
【００１６】
また、作業手順策定支援システムにおいて、作業実行過程図作成部は、作業手順を構成する作業および各作業を実行する資源の情報を実行順にＡ軸に列挙し、各作業の作業時刻情報が示す作業開始時刻および作業終了時刻を、Ａ軸上の該当作業の実行資源に対応させてＢ軸に設定し、作業開始時刻と作業終了時刻の間を線分で描画し、所定作業の作業終了時刻と次に実行される作業の作業開始時刻との間を線分で描画することでダイヤ図を生成し、このダイヤ図を表示部に出力する、とすれば好適である。
【００１７】
また本発明の作業手順策定支援方法は、作業手順の策定支援を行うコンピュータシステムが、以下の処理を実行するものである。すなわちコンピュータシステムが、対象となる作業手順、手順中で最初に実行する作業の作業開始時刻、各作業の所要時間、各作業の準備時間、および各作業を実行するために必要な資源数、の各情報を含んだ作業条件を、入力部を介して利用者から受付けて記憶部に格納する処理と、各資源が実行できる作業種類、各資源が並行実行可能な作業数、所定作業に割り当てる複数資源の組み合わせ条件、および同一資源が手順中で実行する作業の組み合わせ条件、の各情報を含んだ資源条件を、入力部を介して利用者から受付けて記憶部に格納する処理と、記憶部の作業条件を数式化した数理モデルを生成し、ここで生成した数理モデルに記憶部の作業条件のデータを適用して、各作業における作業開始時刻および作業終了時刻に関わる制約式を生成し記憶部に格納する処理と、記憶部の作業条件が示す各作業に割り当てられた資源のうち同一資源を特定して、この同一資源が共通に割り当てられた作業群を特定し、制約論理プログラミングにより制約式を解いて各作業の作業開始時刻変数と作業終了時刻変数のドメインを算出して記憶部に格納し、作業群のうち作業終了時刻変数の値が未決である作業数が同一資源の並行実行可能な作業数を超える場合、ドメインの最小値が最も小さい作業終了時刻変数を選択し、ここで選択した作業終了時刻変数と作業群における作業の作業開始時刻変数とに対応する作業時刻の制約式を生成し、記憶部に格納する処理と、制約論理プログラミングにより記憶部の各制約式を解いて作業開始時刻変数および作業終了時刻変数を決定し、これらを作業時刻情報として記憶部に格納する処理と、作業時刻情報と該当作業を実行する資源の情報とを表示部に出力する処理と、を実行する。
【００１８】
また、本発明の作業手順策定支援プログラムは、作業手順の策定支援を行うコンピュータシステムに以下の処理を実行させるものである。すなわち、作業手順策定支援プログラムは、コンピュータに、対象となる作業手順、手順中で最初に実行する作業の作業開始時刻、各作業の所要時間、各作業の準備時間、および各作業を実行するために必要な資源数、の各情報を含んだ作業条件を、入力部を介して利用者から受付けて記憶部に格納する処理と、各資源が実行できる作業種類、各資源が並行実行可能な作業数、所定作業に割り当てる複数資源の組み合わせ条件、および同一資源が手順中で実行する作業の組み合わせ条件、の各情報を含んだ資源条件を、入力部を介して利用者から受付けて記憶部に格納する処理と、記憶部の作業条件を数式化した数理モデルを生成し、ここで生成した数理モデルに記憶部の作業条件のデータを適用して、各作業における作業開始時刻および作業終了時刻に関わる制約式を生成し記憶部に格納する処理と、記憶部の作業条件が示す各作業に割り当てられた資源のうち同一資源を特定して、この同一資源が共通に割り当てられた作業群を特定し、制約論理プログラミングにより制約式を解いて各作業の作業開始時刻変数と作業終了時刻変数のドメインを算出して記憶部に格納し、作業群のうち作業終了時刻変数の値が未決である作業数が同一資源の並行実行可能な作業数を超える場合、ドメインの最小値が最も小さい作業終了時刻変数を選択し、ここで選択した作業終了時刻変数と作業群における作業の作業開始時刻変数とに対応する作業時刻の制約式を生成し、記憶部に格納する処理と、制約論理プログラミングにより記憶部の各制約式を解いて作業開始時刻変数および作業終了時刻変数を決定し、これらを作業時刻情報として記憶部に格納する処理と、作業時刻情報と該当作業を実行する資源の情報とを表示部に出力する処理と、を実行させる。
【００１９】
なお、上記で記す「ドメイン」は、独立変数がとりうる値の全体（変域）＝該当変数の定義域である。また、「制約論理プログラミング」は、制約充足問題に対する解探索手法の一種であり、(1)決定変数の取り得る値(ドメイン)の変化を、関連する制約を介して他の変数に伝えることにより探索領域を絞り込む「制約伝播」手法に基づく効率的な解探索メカニズムを持ち、(2)論理制約、記号制約や非線形制約等、幅広い制約条件を含むモデルの解探索に対応可能、であることを特徴としている。制約論理プログラミングは線形計画法(LP)等と同様に汎用ライブラリが広く流通しており、本発明における数理モデルはそれらのライブラリが扱うことができる一般的な形式である。従って、本発明の作業手順策定支援システムが、制約論理の実行メカニズムを独自に実装してもよいし、汎用ライブラリ（記憶部ないしネットワーク上の他装置等に備える）をコールすることにより演算を実行することとしても良い。
【発明の効果】
【００２０】
本発明によれば、作業手順について対象プロセスを限定せず資源条件を考慮した設計および評価が可能となる。
【図面の簡単な説明】
【００２１】
【図１】本実施形態の作業手順策定支援システムの概略構成図である。
【図２】本実施形態の作業情報のデータ構成例を示す図である。
【図３】本実施形態の資源情報のデータ構成例を示す図である。
【図４】本実施形態の資源組合せ条件のデータ構成例を示す図である。
【図５】本実施形態の作業組合せ条件のデータ構成例を示す図である。
【図６】本実施形態の制約式情報のデータ構成例を示す図である。
【図７】本実施形態の作業手順策定支援方法の基本的な処理手順を示すフローチャートである。
【図８】本実施形態の資源条件に基づく制約作成処理に対応したフロー例を示す図である。
【図９】本実施形態の資源割当処理に対応したフロー例を示す図である。
【図１０】本実施形態の作業実行過程の出力画面例を示す説明図である。
【発明を実施するための形態】
【００２２】
−−−システム構成−−−
以下に実施形態について図面を用いて詳細に説明する。図１は、本実施形態の作業手順策定支援システム１０００の概略構成図である。図１に示す作業手順策定支援システム１０００（以下、システム１０００）は、作業手順について対象プロセスを限定せず資源条件を考慮した設計および評価を可能とするコンピュータシステムである。この作業手順策定支援システム１０００は、ハードディスクドライブなどの記憶部１１００に格納されたプログラム１００２を、メモリ１００１などの揮発性メモリに読み出すなどしてＣＰＵなど中央演算処理装置１２０２により実行することになる。また、システム１０００は、各種キーボードやボタン類などの入力部１２０１、ディスプレイなどの表示部１２００を備える。またシステム１０００は、他装置との間のデータ授受を担うＮＩＣ（Network Interface Card）など通信部１２０３を有している。なお、上記各部らは図示するようにデータバス１２０４で接続されている。また、記憶部１１００には、作業情報３（図２参照）、資源情報４（図３参照）、資源組合せ条件５（図４参照）、作業組合せ条件６（図５参照）、および制約式情報７（図６参照）が格納される。
【００２３】
続いて、システム１０００が、例えばプログラム１００２に基づきメモリ１００１（ないし記憶部１１００）にて構成・保持する機能部につき説明を行う。システム１０００は、対象となる作業手順、手順中で最初に実行する作業の作業開始時刻、各作業の所要時間、各作業の準備時間、および各作業を実行するために必要な資源数、の各情報を含んだ作業条件（＝作業情報３）を、入力部１２０１を介して利用者から受付けて記憶部１１００に格納する作業条件受付部１００３を備えている。この作業条件受付部１００３は、例えば、予め記憶部１１００等で保持された作業条件記述用のパーツを表示部１２００を介して利用者に提示し、入力部１２０１を介して利用者から作業条件の情報を受付けることになる。
【００２４】
また、システム１０００は、各資源が実行できる作業種類、各資源が並行実行可能な作業数、所定作業に割り当てる複数資源の組み合わせ条件、および同一資源が手順中で実行する作業の組み合わせ条件、の各情報を含んだ資源条件（＝資源情報４）を、入力部１２０１を介して利用者から受付けて記憶部１１００に格納する資源条件受付部１００４を備えている。この資源条件受付部１００４は、例えば、記憶部１１００に予め格納された資源条件の入力画面データを読み出して表示部１２００を介して入力画面を利用者に提示し、入力部１２０１を介して利用者から資源条件の設定を受付けることになる。
【００２５】
また、システム１０００は、記憶部１１００の作業条件（＝作業情報３）を数式化した数理モデルを生成し、ここで生成した数理モデルに記憶部１００の作業条件のデータを適用して、各作業における作業開始時刻および作業終了時刻に関わる制約式を生成し、制約式情報７として記憶部１１００に格納するモデル作成部１００５を備えている。
【００２６】
また、システム１０００は、記憶部１００の作業条件（＝作業情報３）が示す各作業に割り当てられた資源のうち同一資源を特定して、この同一資源が共通に割り当てられた作業群を特定し、制約論理プログラミングにより制約式を解いて各作業の作業開始時刻変数と作業終了時刻変数のドメインを算出して記憶部１１００（ないしメモリ１００１）に格納し、作業群のうち作業終了時刻変数の値が未決である作業数が同一資源の並行実行可能な作業数を超える場合、ドメインの最小値が最も小さい作業終了時刻変数を選択し、ここで選択した作業終了時刻変数と作業群における作業の作業開始時刻変数とに対応する作業時刻の制約式を生成し、制約式情報７として記憶部１１００に格納する条件作成部１００６を備えている。
【００２７】
また、システム１０００は、制約論理プログラミングにより記憶部１１００の各制約式を解いて作業開始時刻変数および作業終了時刻変数を決定し、これらを作業時刻情報として記憶部１１００の該当作業情報３に設定する作業時刻算出部１００７を備えている。
【００２８】
また、システム１０００は、作業時刻情報と該当作業を実行する資源の情報とを表示部１２００に出力する作業実行過程図作成部１００８を備えている。
【００２９】
なお、条件作成部１００６は、記憶部１１００の作業条件（＝作業情報３）が示す所定作業について、記憶部１００の資源条件（＝資源情報４）に基づいて所定作業を実行可能な資源を特定する第１処理と、所定作業について特定した資源が、記憶部１１００における所定作業に関する既割当て資源との関係で複数資源の組み合わせ条件を満たすか判定する第２処理と、判定処理で複数資源の組み合わせ条件を満たした資源が実行対象とする所定作業および記憶部１１００における既割当て資源について、作業の組み合わせ条件を満たすか判定する第３処理と、作業の組み合わせ条件を満たした資源が実行対象とする各作業について、記憶部１１００において作業終了時刻変数の値が未決である作業数をカウントし、記憶部１１００の資源条件（＝資源情報４）のうち並行実行可能な作業数をカウント値が越えない場合、資源の情報を記憶部１１００の作業条件（＝作業情報３）における所定作業に対し割当てて記憶する第４処理と、記憶部１１００の作業条件（＝作業情報３）における、所定作業を実行するために必要な資源数と、所定作業に関して割当て済みの資源数とを比較し、割当て済み資源数が必要な資源数に達していない場合、第１処理から第４処理までを繰り返し実行する、とすれば好適である。
【００３０】
更に、条件作成部１００６は、第４処理において、記憶部１１００の資源条件（＝資源情報４）のうち並行実行可能な作業数をカウント値が越えた場合、資源の情報を待機資源の情報としてメモリ１００１ないし記憶部１１００に記憶し、記憶部１１００の作業情報３において待機資源が既割当て資源となっている作業を特定し、ここで特定した作業のうち、終了時刻変数の値が未決かつ終了時刻変数のドメイン最小値が最も小さい作業を特定する処理を各待機資源について実行し、待機資源間で作業終了時刻変数のドメイン最小値が最も小さい待機資源を選択し、該当資源の情報を記憶部１１００の作業条件（＝作業情報３）における所定作業に対し割当てて記憶するとすれば好適である。
【００３１】
また、作業実行過程図作成部１００８は、作業手順を構成する作業および各作業を実行する資源の情報を実行順にＡ軸に列挙し、各作業の作業時刻情報が示す作業開始時刻および作業終了時刻を、Ａ軸上の該当作業の実行資源に対応させてＢ軸に設定し、作業開始時刻と作業終了時刻の間を線分で描画し、所定作業の作業終了時刻と次に実行される作業の作業開始時刻との間を線分で描画することでダイヤ図を生成し、このダイヤ図を表示部１２００に出力する、とすれば好適である。Ａ軸、Ｂ軸は、例えば、グラフにおける縦軸、横軸を想定する（勿論、縦横逆でもよい）。
【００３２】
これまで示したシステム１０００における各部１００３〜１００８はハードウェアとして実現してもよいし、システム１０００におけるメモリ１００１やＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などの適宜な記憶部１１００に格納したプログラムとして実現するとしてもよい。この場合、システム１０００のＣＰＵ１２０２など中央演算処理装置がプログラム実行に合わせてメモリ１００１ないし記憶部１１００より該当プログラムを読み出して、これを実行することとなる。
【００３３】
−−−データ構造例−−−
次に、本実施形態のシステム１０００が利用するデータ例について説明する。図２は、作業情報３のデータ構成例を示す図である。作業情報３は、利用者が作成した作業手順に含まれる個々の作業を、作業対象ごとに展開した情報である。図２の例では、「入荷→ピッキング→検査」などといった一連の作業手順が作成されている。例えば、製品Ａと製品Ｂに対してこうした作業手順を施す場合、製品Ａに施す入荷、製品Ａに施すピッキング、製品Ａに施す検査、製品Ｂに施す入荷、製品Ｂに施すピッキング、製品Ｂに施す検査、のそれぞれの作業が一つのジョブとして登録される。
【００３４】
こうした作業情報３は、手順ＩＤ３１、ジョブＩＤ３２、ジョブ順序３３、作業名３４、必要な資源数３５、開始時刻３６、終了時刻３７、割当て資源３８、各作業の所要時間３９、各作業の準備時間４０から構成される。また、この作業情報３が示す手順中で最初に実行する作業＝ジョブの作業開始時刻のデータが、作業情報３に紐付けて記憶部１１００に格納されている。
【００３５】
手順ＩＤ３１は、同じ作業対象に施すジョブを識別するためのＩＤである。例えば、上記例において、製品Ａに対するジョブは全て同じ手順ＩＤを振り、製品Ｂに対するジョブは製品Ａに対するジョブとは異なる手順ＩＤを振る。また、ジョブＩＤ３２は、ジョブを一意に識別するためのＩＤである。また、ジョブ順序３３は、ジョブＩＤ３２で識別されるジョブが、同じ作業対象に施すジョブのうちで何番目に実行されるかを示すデータである。
【００３６】
また、作業名３４は、ジョブＩＤ３２で識別されるジョブの作業内容を識別するための作業名である。また、必要な資源数３５は、ジョブＩＤ３２で識別されるジョブを実行するために必要となる資源の数である。また、開始時刻３６および終了時刻３７は、それぞれ、ジョブＩＤ３２で識別されるジョブの実行を開始する時刻および終了する時刻である。これらの時刻値は作業時刻算出部１００７で算出する。また、割当て資源ＩＤ３８は、ジョブＩＤ３２で識別されるジョブを実行する資源を識別するためのＩＤである。この割当て資源ＩＤで識別される資源は、資源情報４の資源ＩＤ４１で識別される資源と同一のものとする。また、各作業の所要時間３９は、ジョブＩＤ３２で識別されるジョブの実行完了に要する時間を示す情報であり、各作業の準備時間４０は、ジョブＩＤ３２で識別されるジョブの実行準備に要する時間を示す情報である。
【００３７】
図３は、資源情報４のデータ構成例を示す図である。資源情報４は、利用者から受付けた資源条件のうち、個々の資源の作業能力を表わす条件を格納する。この資源情報４は、資源ＩＤ４１、実行可能作業４２、実行可能作業数４３、資源名４４から構成される。資源ＩＤ４１は、資源を一意に識別するためのＩＤである。また、実行可能作業４２は、資源ＩＤ４１で識別される資源が実行可能な作業の作業名である。ここでの作業名で識別されるジョブは、作業情報３の作業名３４で識別されるジョブと同一のものとする。また、実行可能作業数４３は、資源ＩＤ４１で識別される資源が、並行して実行可能なジョブの数である。また、資源名４４は、資源ＩＤ４１で識別される資源の名前を示すデータである。
【００３８】
図４は、資源組合せ条件のデータ構成例を示す図である。この資源組合せ条件５は、所定作業に割り当てる複数資源の組み合わせ条件であり、作業を実行する際に必要な資源の組合せや同じ作業は行わない資源の組合せなど、資源の組合せを制限する条件を格納したデータである。この資源組合せ条件５は、対象作業５１、組合せ資源５２、組合せ関係５３の各データから構成される。
【００３９】
対象作業５１は、資源の組合せ条件を課す作業を識別するための作業名である。この作業名をキーとして作業情報３の作業名３４を検索することで、資源の組合せ条件の適用対象となるジョブを取得することができる。また、組合せ資源５２は、資源の組合せ条件を課す資源を識別するための資源ＩＤである。この資源ＩＤで識別される資源は、資源情報４の資源ＩＤ４１で識別される資源と同一のものとする。
【００４０】
また、組合せ関係５３は、組合せ資源５２に格納された資源同士の関係を示すデータである。ここでの資源同士の関係は、例えば、指定された資源同士を同じ作業に割当てないことを意味する「排他」、または指定された資源同士を同じ作業に割当てることを意味する「同一」のいずれかとなる。例えば、図中の第一レコード５４は、「検品」作業には、資源ＩＤ「０」で識別される資源と資源ＩＤ「１」で識別される資源のいずれか一つを割当てる、またはどちらも割当てないという条件＝「排他」を表す。また、図中の第二レコード５５は、「検査」作業には、資源ＩＤ「１」で識別される資源と資源ＩＤ「２」で識別される資源の両方を割当てる、またはどちらも割当てないという条件＝「同一」を表す。
【００４１】
また、図５は、作業組合せ条件６のデータ構成例を示す図である。作業組合せ条件６は、同一資源が手順中で実行する作業の組み合わせ条件であり、同一の資源で行う作業や別々の資源で行う作業などの、作業の組合せを制限する条件となる。この作業組合せ条件６は、対象作業６１、組合せ関係６２から構成される。対象作業６１は、作業の組合せ条件を課す作業を識別するための作業名である。この作業名をキーとして作業情報３の作業名３４を検索することで、作業の組合せ条件の適用対象となるジョブを取得することができる。また、組合せ関係６２は、対象作業６１に格納された作業同士の関係を示すデータである。ここでの作業同士の関係は、指定された作業同士を同じ資源に割当てないことを意味する「排他」、または指定された作業同士を同じ資源に割当てることを意味する「同一」のいずれかとなる。例えば、図中の第一レコード６３は、「入荷」作業と「検品」作業は同一の資源を割当てないという条件＝「排他」を表す。また、第二レコード６４は、「ピッキング」作業と「梱包」作業は同一の資源を割当てるという条件＝「同一」を表す。
【００４２】
続いて図６は、制約式情報７のデータ構成例を示す図である。制約式情報７は、各作業の開始時刻または終了時刻に対する制約式である。この制約式情報７は、変数ＩＤ７１、制約式７２から構成される。変数ＩＤ７１は、制約式の対象となる変数を格納する。また制約式７２は、変数ＩＤ７１に格納された変数に対する制約式を格納する。例えば、図中の第一レコード７３は、変数「Wst (手順0, 0)」に対する制約として、「Wst (手順0, 0) >= 600」という制約と、「 Wst (手順0, 0) >= Wst(手順1, 0)」という制約が課せられていることを表す。この制約で用いられる記号の説明は後述する。
【００４３】
−−−処理手順例１−−−
以下、本実施形態における作業手順策定支援方法の実際手順について図に基づき説明する。以下で説明する作業手順策定支援方法に対応する各種動作は、システム１０００の中央演算処理装置１２０２が実行するメモリ１００１のプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。図７は、作業手順策定支援システムの基本的な動作手順を示すフローチャートである。
【００４４】
ここでまず、ステップＳ２０１において作業条件受付部１００３は、予め用意された作業条件を記述するためのパーツを利用者に提示し、提示したパーツを介して利用者から対象となる作業手順、手順中で最初に実行する作業の作業開始時刻、各作業の所要時間、各作業の準備時間、および各作業を実行するために必要な資源数、の各情報を含んだ作業条件（＝作業情報３）の入力を受付け、記憶部１１００に格納する。ここでのパーツとは、作業フローを記述するためのパーツであり、作業の前後関係、分割作業によるフローの分岐、結合作業によるフローの合流などを記述可能とし、かつ作業フローに含まれる個々の作業の所要時間や準備時間、実行に必要な人数をパラメータとして設定可能なものとする。例えば、ビジネスプロセスの表記手法であるＢＰＭＮ（Business Process Modeling Notation）やフローチャートなどのパーツを利用する。
【００４５】
ステップＳ２０２において、資源条件受付部１００４は、記憶部１１００に格納された資源条件の分類別入力画面を表示部１２００にて利用者に提示し、利用者から資源条件（＝資源情報４）を受付けて記憶部１１００に格納する。ここでの資源条件の分類とは以下の４つの分類である。
【００４６】
１．資源が実行できる作業の種類。
２．資源が並行して実行できる作業の数。
３．作業を実行する際の資源の組合せ（作業の実行に必要な資源の組合せ、同一の作業は行わない資源の組合せ  など）。
４．資源に割り振る作業の組合せ（同一の資源で実行する作業、別々の資源で実行する作業  など）。
【００４７】
こうした資源条件は、条件に含まれる作業と資源の指定、および条件の各項目のパラメータの設定を、資源条件受付部１００４が入力部１２０１にて利用者から受付けることで定義する。上記４つの条件それぞれを定義するために必要な項目は、上記条件１．と２．については資源情報４（図３参照）、上記条件３．については資源組合せ条件５（図４参照）、上記条件４．については作業組合せ条件６（図５参照）それぞれに示した項目である。資源条件受付部１００４が表示部１２００にて利用者に提示する入力画面は、これらの項目を設定可能な画面とする。
【００４８】
ステップＳ２０３において、モデル作成部１００５は、まずステップＳ２０１で受付けた作業条件に基づき、作業開始時刻と終了時刻を決定変数とする数理モデルを作成する。ここで作成する数理モデルを以降に示す。また、条件を表記するための記号を以下のように定義する。
【００４９】
−集合−
・P：作業手順の集合
・J(e)：作業手順eに含まれる作業の集合
−定数−
・process(Ei、j)：作業手順Eiに含まれる作業のうちj番目に行う作業
・Wt (Ei、j)：作業手順Eiに含まれる作業のうちj番目に行う作業の実行に必要な作業時間
・Pret (Ei、j)：作業手順Eiに含まれる作業のうちj番目に行う作業の実行準備に必要な時間
−決定変数−
・Wst (Ei、j)：  作業手順Eiに含まれる作業のうちj番目に行う作業の作業開始時刻
・Wed (Ei、j) ：作業手順Eiに含まれる作業のうちj番目に行う作業の作業終了時刻
上記の記号を用いた作業条件の数理モデルの例として、作業所要時間、作業準備時間、作業の前後関係の条件を以降に示す。
【００５０】
（１）作業準備時間
ある作業を終了した後、次の作業を開始するまでに、作業の準備時間以上の間隔をとる。
【数１】
2011076544.tif 000003
【００５１】
（２）作業所要時間
ある作業の開始時刻から終了時刻までの間隔を、作業所要時間以上確保する。
【数２】
2011076544.tif 000004
【００５２】
（３）前後関係
作業開始時刻を、前の作業の終了時刻より遅くする。
【数３】
2011076544.tif 000005
【００５３】
モデル作成部１００５は、こうして作成した制約式を記憶部１１００において制約式情報７として格納する。
【００５４】
続いて、ステップＳ２０４において、条件作成部１００６は、ステップＳ２０３で作成されたジョブの制約式に含まれる決定変数を一つ選択する。また、ステップＳ２０５において、条件作成部１００６は、ステップＳ２０４で選択する変数がない場合（Ｓ２０５：Ｎｏ）はステップＳ２０９に処理を遷移させ、他方、ステップＳ２０４で選択する変数がある場合（Ｓ２０５：Ｙｅｓ）はＳ２０６に処理を遷移させる。
【００５５】
ステップＳ２０６において、条件作成部１００６は、ステップＳ２０４で選択した変数が作業開始時刻の変数である場合（Ｓ２０６：Ｙｅｓ）は、処理をステップＳ２０７に遷移させ、他方、作業終了時刻の変数である場合（Ｓ２０６：Ｎｏ）は処理をステップＳ２０８に遷移させる。
【００５６】
次に、ステップＳ２０７において、条件作成部１００６は、ステップＳ２０４で選択した変数に対する制約式を、ステップＳ２０２で受付けた資源条件を基に作成する。この資源条件に基づく制約式の作成処理は後述する（図８）。
【００５７】
またステップＳ２０８において、作業時刻算出部１００７は、ステップＳ２０３で作成した制約式と、ステップＳ２０７で作成した制約を満たすように、ステップＳ２０４で選択した変数の値を決定する。具体的には、作業時刻算出部１００７は、制約論理プログラミングにより記憶部１１００の各制約式を解いて作業開始時刻変数および作業終了時刻変数を決定し、これらを作業時刻情報として記憶部１１００の該当作業情報３に設定する。
【００５８】
また、ステップＳ２０９において、作業実行過程図作成部１００８は、ステップＳ２０４〜Ｓ２０８の処理により算出された作業開始時刻と作業終了時刻などの情報に基づいて、作業実行過程を表わすダイヤ図を作成して表示部１２００にて利用者に提示する。具体的には、例えば、作業実行過程図作成部１００８は、作業手順を構成する作業および各作業を実行する資源の情報を実行順にＡ軸＝例えば横軸に列挙し、各作業の作業時刻情報が示す作業開始時刻および作業終了時刻を、横軸上の該当作業の実行資源に対応させてＢ軸＝例えば縦軸に設定し、作業開始時刻と作業終了時刻の間を線分で描画し、所定作業の作業終了時刻と次に実行される作業の作業開始時刻との間を線分で描画することでダイヤ図を生成し、このダイヤ図を表示部１２００に出力する。
【００５９】
図１０は、作業実行過程を表わすダイヤ図の一例である。表示部１２００にて表示される画面（またはウィンドウ）８０１は、例えば、横軸８０２、縦軸８０３、処理対象の作業実行過程描画エリア８０６から構成されている。横軸８０２は、時間軸を表し、一方、縦軸８０３は、作業名とその作業を実行可能な資源名を表す。この資源名については、その表示可否に関し、システム１０００の作業実行過程図作成部１００８が利用者からの指定を入力部１２０１で受けて表示しないとしてもよい。
【００６０】
作業実行過程図作成部１００８は、ステップＳ２０４〜Ｓ２０８の一連の処理により算出された作業開始時刻と作業終了時刻および資源割当て結果を基に、個々の作業にかかる時間と待ち時間を、作業対象ごとに描画エリア８０６に描画する。例えば、線８０７は、ある一つの作業対象に施す一連の作業手順の実行過程を表したものである。途中、線８０７が横に伸びる箇所は作業を実行中であることを表し、斜め下方に伸びる箇所は次の作業待ちであることを表している。例えば、区間８０８は、線８０７で表される処理対象の「検品」作業を「作業者Ｂ」で実行中であることを表し、区間８０９は、線８０７で表される処理対象は次の作業である「出荷」作業の実行待ちであることを表す。なお、上記例とは逆に、横に伸びる線は実行待ちを表すものとし、斜めに伸びる線は作業実行中を表すものとしてもよい。
【００６１】
また、ステップＳ２１０において、作業実行過程図作成部１００８は、終了の指示を入力部１２０１にて利用者から受付けた場合（Ｓ２１０：Ｙｅｓ）、処理を終了し、それ以外の場合（Ｓ２１０：Ｎｏ）、ステップＳ２０１に処理を戻す。
【００６２】
なお、図７に示す処理フローのうち、作業開始時刻と作業終了時刻を決定変数とする数理モデルおよび制約を作成し、必要な制約を追加しながら一つ一つの決定変数の値を順次決定していくという処理の枠組みは、特開２００８−１８９２７２号公報が示す技術に準ずるものとしてよい。
【００６３】
−−−処理手順例２−−−
図８は、条件作成部１００６が、資源条件受付部１００４で受付けた資源条件を基に時刻に対する制約式を作成する手順の詳細フローを示している。ここで作成する制約式は、作業開始時刻の変数の値を算出する途中で、変数の値の決定状況に合わせて作成される制約式である。以降、条件作成部１００６が作業時刻の制約式を作成する手順を図８を参照しながら説明する。
【００６４】
まずステップＳ８０１において、条件作成部１００６は、ステップＳ２０４で選択された変数と関連しているジョブに資源を割当てる。この資源割当て処理については後述する（図９）。
【００６５】
続いて条件作成部１００６は、以降、ステップＳ８０２〜Ｓ８０８の一連の制約作成処理により、資源条件の分類２．「資源が並行して実行できる作業の数」および資源条件の分類３．「作業を実行する際の資源の組合せ」を作業時刻の制約式に変換することになる。この場合、ステップＳ８０２において、条件作成部１００６は、ステップＳ８０１で割当てられた資源のうち、ステップＳ８０３以降の処理を施していないもの（所定フラグ等で判別）を一つ選択する。
【００６６】
ステップＳ８０３において、条件作成部１００６は、ステップＳ８０２で選択した資源と同じ資源（＝同一資源）を割当てられているジョブを取得する。具体的には、条件作成部１００６は、ステップＳ８０２で選択した資源の資源ＩＤをキーとして記憶部１１００の作業情報３の割当て資源ＩＤ３８を検索し、ジョブＩＤ取得する。
【００６７】
また、ステップＳ８０４において、条件作成部１００６は、ステップＳ８０３で取得したジョブに、終了時刻変数の値が未決定（つまり作業情報３の終了時刻３７の欄が空欄）のジョブがあるかどうかを判定する。ここで未決定のジョブがある場合（Ｓ８０４：Ｙｅｓ）、条件作成部１００６はステップＳ８０５に処理を進める。他方、未決定のジョブがない場合（Ｓ８０４：Ｎｏ）、条件作成部１００６は処理をステップＳ８０７に進める。なお、作業終了時刻変数の値が未決定のジョブがあるということは、資源がそのジョブを実行中であることを意味する。なお、条件作成部１００６は、制約論理プログラミングにより記憶部１１００に格納された制約式を解いて各作業の作業開始時刻変数と作業終了時刻変数のドメインを算出して記憶部１１００（ないしメモリ１００１）に格納しているものとする。
【００６８】
続いてステップＳ８０５において、条件作成部１００６は、ステップＳ８０３で終了時刻変数の値が未決定であると判定されたジョブの数（値１）と、割当てられた資源が並行して実行可能な作業の数（値２）とを比較する。割当てられた資源が並行して実行可能な作業の数は、ステップＳ８０２で選択した資源のＩＤをキーとして資源情報４の資源ＩＤ４１を検索し得る、実行可能作業数４３となる。値１が値２よりも大きい、つまり、資源が並行して実行可能な作業数を超えて割当てが行われた場合は（Ｓ８０５：Ｙｅｓ）、条件作成部１００６は、作業時刻の制約式の作成（Ｓ８０６）に進む。他方、値１が値２以下である場合（Ｓ８０５：Ｎｏ）、条件作成部１００６は、割当て資源情報の格納処理（Ｓ８０７）に進む。
【００６９】
また、ステップＳ８０６において、条件作成部１００６は、ステップＳ８０３で取得したジョブのうち作業が最も早く終わるジョブを選択し、選択したジョブの終了時刻の変数（＝作業終了時刻変数）と、ステップＳ２０４で選択した変数（＝作業開始時刻時刻変数）との間に以下の制約式を作成し、記憶部１１００に格納する。ここで、作業が最も早く終わるジョブは、終了時刻の変数のドメイン最小値が最も小さいジョブを選択することで得る。
【数４】
2011076544.tif 000006
【００７０】
process(Ei、l)がステップＳ２０４で選択したジョブであり、process(Ek、j)がステップＳ８０６で選択したジョブであるものとする。上記制約式は、時刻を計算中のジョブは、同じ資源が割当てられていてかつ現在実行中のジョブのうちの一つが終わった後に作業を開始する、という意味を表わす制約式である。
【００７１】
次に、ステップＳ８０７において、条件作成部１００６は、ステップＳ８０１で割当てられた資源のＩＤを作業情報３の割当て資源ＩＤ３８に格納する。また、ステップＳ８０８において、条件作成部１００６は、ステップＳ８０１で割当てられた資源に対してステップＳ８０３〜Ｓ８０７の処理を実行したかどうかを判定し、実行していない場合（Ｓ８０８：Ｎｏ）はステップＳ８０２を実行し、実行している場合（Ｓ８０８：Ｙｅｓ）は一連の処理を終了する。
【００７２】
−−−処理手順例３−−−
図９は、条件作成部１００６が、資源条件受付部１００４で受付けた資源条件を基に、ステップＳ２０４で選択した変数に関連するジョブ（以降、ジョブＡとする）に資源を割当てる手順の詳細フローである。ここでの割当ては、資源条件の分類１．「資源が実行できる作業の種類」、資源条件の分類２．「資源が並行して実行できる作業の数」、資源条件の分類３．「作業を実行する際の資源の組合せ」、資源条件の分類４．「資源に割り振る作業の組合せ」を考慮して行う。以降、条件作成部１００６が資源をジョブに割当てる手順を図９を参照しながら説明する。
【００７３】
ここでまず、ステップＳ９０１において、条件作成部１００６は、ジョブＡを実行できる資源を一つ選択する。具体的には、条件作成部１００６は、ジョブＡの作業名３４をキーとして、記憶部１１００における資源情報４の実行可能作業を検索し、資源ＩＤ４１を取得する。この処理により条件作成部１００６は、条件分類１．「資源が実行できる作業の種類」を満たした資源を取得する（第１処理）。また、条件作成部１００６は、ここで取得した資源のうちＳ９０２以降の処理を施していないものを一つ選択する。
【００７４】
次にステップＳ９０２において、条件作成部１００６は、ステップＳ９０１で選択した資源と、それまでにジョブＡに割当てられている資源が条件分類３．「資源の組合せ条件」を満たすかどうかを判定する（第２処理）。具体的には条件作成部１００６は、ジョブＡの作業名（第一キー）と、ステップＳ９０１で選択した資源ＩＤと、既に割り当ててある資源ＩＤ（過去に実施したＳ９０６で保持した資源ＩＤ：第二キー）とをキーとして、記憶部１１００の資源組合せ条件５を検索し、組合せ関係５３を取得する。なお、該当する組合せ関係がない場合は、資源の組合せ条件は満たしているものとする。該当する組合せ関係がある場合、条件作成部１００６は、組合せ関係＝「排他」である時、資源組合せ条件を満たしていないとして判定し（Ｓ９０２：Ｎｏ）、他方、組合せ関係＝「同一」である時、資源組合せ条件を満たしていると判定する（Ｓ９０２：Ｙｅｓ）。資源組合わせ条件を満たす場合（Ｓ９０２：Ｙｅｓ）、条件作成部１００６は、他条件の判定（Ｓ９０３）に進み、資源組合わせ条件を満たさない場合（Ｓ９０２：Ｎｏ）、他資源を対象とした処理（Ｓ９０９）に進む。
【００７５】
続いてステップＳ９０３において、条件作成部１００６は、ステップＳ９０１で選択した資源に関し、既に割振られている作業が条件分類４．「作業の組合せ条件」を満たすかどうかを判定する（第３処理）。具体的には、条件作成部１００６は、ステップＳ９０１で選択した資源ＩＤをキーとして、記憶部１１００の作業情報３の割当て資源ＩＤ３８を検索し、作業名３４を取得する（第一キーの集合）。また、条件作成部１００６は、ここで取得した作業名のうちの一つとジョブＡの作業名とをキーとして記憶部１１００の作業組合せ条件６を検索し、組合せ関係６２を取得する。なお、作業組合せ条件６を検索できなかった＝該当する組合せ関係がない場合は、作業組合せ条件は満たしているものとする。
【００７６】
条件作成部１００６は、該当する作業組合せ関係があった場合、その組合せ関係が「排他」である場合は作業組合せ条件を満たしていないと判定し、他方、組合せ関係が「同一」である場合は作業組合せ条件を満たしていると判定する。条件作成部１００６は、この判定処理を、上記で取得した第一キーの集合に含まれる全ての作業名について実行し、全ての作業名について条件が満たされていれば最終的に条件を満たすと判定し（Ｓ９０３：Ｙｅｓ）、いずれか一つでも条件を満たしていなければ最終的に条件を満たしていないと判定する（Ｓ９０３：Ｎｏ）。
【００７７】
条件作成部１００６は、作業組合わせ条件を満たすと判定した場合（Ｓ９０３：Ｙｅｓ）、他条件の判定に進み（Ｓ９０４）、他方、作業組合わせ条件を満たさない場合（Ｓ９０３：Ｎｏ）、他資源を対象とした処理に進む（Ｓ９０９）。
【００７８】
一方、ステップＳ９０４とステップＳ９０５において、条件作成部１００６は、ステップＳ９０１で選択した資源が条件分類２．「資源が並行して実行できる作業の数」を満たすかどうかを判定する。各ステップでの処理を以降に示す。ステップＳ９０４において条件作成部１００６は、ステップＳ９０１で選択した資源に割当てられたジョブのうち、終了時刻の変数（＝作業終了時刻変数）が未決定のジョブの数を算出する。具体的には条件作成部１００６は、ステップＳ９０１で選択した資源の資源ＩＤをキーとして、記憶部１１００における作業情報３の割当て資源ＩＤ３８を検索し、該当するジョブを取得する。また、条件作成部１００６は、ここで取得したジョブのうち、終了時刻の変数が未決定のジョブの数を算出する。
【００７９】
他方、ステップＳ９０５において条件作成部１００６は、ステップＳ９０４で算出したジョブ数（値１）と、ステップＳ９０１で選択した資源が並行して実行できる作業の数（値２）とを比較する。値２は、条件作成部１００６が、ステップＳ９０１で選択した資源ＩＤをキーとして、記憶部１１００における資源情報４を検索して実行可能作業数４３を取得することで得られる。値１が値２よりも大きい場合、条件作成部１００６は、実行可能作業数を超えていると判定し（Ｓ９０５：Ｎｏ）、他方、値１が値２以下である場合は、実行可能作業数を超えないと判定する（Ｓ９０５：Ｙｅｓ）。条件を満たす場合（Ｓ９０５：Ｙｅｓ）、条件作成部１００６は、割当て資源保持の処理に進み（Ｓ９０６）、一方、条件を満たさない場合（Ｓ９０５：Ｎｏ）、組合せ条件を満たす資源保持の処理に進む（Ｓ９０８）。
【００８０】
続いてステップＳ９０６において、条件作成部１００６は、ステップＳ９０１で選択した資源の資源ＩＤを該当ジョブの割当て資源として、記憶部１１００の作業情報３における割当て資源ＩＤ３８欄ないしメモリ１００１に保持する。ステップＳ９０４からＳ９０６の処理は第４処理に該当する。
【００８１】
また、ステップＳ９０７において条件作成部１００６は、記憶部１１００の作業情報３における割当て資源ＩＤ３８欄にないしメモリ１００１に保持された資源の数が、ジョブＡの実行に必要な資源数を満たしているか判定する。具体的には、条件作成部１００６は、記憶部１１００の作業情報３における割当て資源ＩＤ３８欄にないしメモリ１００１に保持された資源数（値１）と、ジョブＡのジョブＩＤをキーとして記憶部１１００における作業情報３の必要な資源数３５を検索して得られる値（値２）とを比較する。値１が値２以上の場合、条件作成部１００６は、必要な資源数を満たすと判定し（Ｓ９０７：Ｙｅｓ）、他方、値１が値２より小さい場合は、必要な資源数を満たしていないと判定する（Ｓ９０７：Ｎｏ）。
【００８２】
ここで、必要な資源数を満たしていない場合（Ｓ９０７：Ｎｏ）、条件作成部１００６は、他資源を対象とした処理に進み（Ｓ９０９）、他方、必要な資源数を満たしている場合（Ｓ９０７：Ｙｅｓ）、一連の処理を終了する。
【００８３】
また、ステップＳ９０８において条件作成部１００６は、ステップＳ９０１で選択した資源の資源ＩＤを、組合せ条件を満たす資源としてメモリ１００１に保持する。また、ステップＳ９０９において条件作成部１００６は、ジョブＡを実行可能な資源全てに対して一連の処理（Ｓ９０１〜Ｓ９０８）を施したかを判定し、処理を施していない資源がある場合（Ｓ９０９：Ｎｏ）、他資源を対象とした処理に進み（Ｓ９０１）、全ての資源に処理を施している場合（Ｓ９０９：Ｙｅｓ）、資源割当て処理に進む（Ｓ９１０）。
【００８４】
一方、ステップＳ９１０において条件作成部１００６は、ステップＳ９０８でメモリ１００１に保持した資源の中から、実行中の作業が最も早く終了する資源を必要な数だけ選択する。この処理は、実行可能作業数を現時点では超えてしまっている場合でも、実行中作業が終了するのを待てば実行可能作業数の条件を満たせるため、条件作成部１００６が、現時点で条件に関して違反があっても本処理で資源を割当てておき、送信Ｓ８０２以降でジョブの作業開始時刻を調整することで条件満たすよう試みるための処理である。ここでは、メモリ１００１に格納されている資源数、つまりジョブＡに割当て済みの資源数と、ジョブＡに必要な資源数との差の分だけ資源を選択する。
【００８５】
実行中の作業が最も早く終わる資源の取得方法を以降に示す。条件作成部１００６は、資源ＩＤをキーとして記憶部１１００における作業情報３の割当て資源ＩＤ３８を検索し、該当するジョブを取得する。また、条件作成部１００６は、ここで取得したジョブのうち、終了時刻の変数の値が未決定、かつ終了時刻の変数のドメイン最小値が最も小さいジョブを選択する。この処理により、資源に割振られたジョブのうち、実行中でありなおかつ最も早く終わるジョブを特定できる。条件作成部１００６は、この処理をステップＳ９０８でメモリ１００１に保持した全ての資源について実行し、それぞれの資源ＩＤで取得したジョブの終了時刻の変数のドメイン最小値を比較し、最も小さいジョブを特定する。条件作成部１００６は、ここで特定したジョブに関連づいている資源ＩＤを実行中の作業が最も早く終わる資源として選択する。また条件作成部１００６は、ここで選択した資源を、割当て資源として記憶部１１００の作業条件（＝作業情報３）におけるジョブＡの欄割当て資源ＩＤ３８欄に設定し、一連の処理を終了する。
【００８６】
以上説明したように本実施形態によれば、作業手順について対象プロセスを限定せず資源条件を考慮した設計および評価が可能となる。
【００８７】
以上、実施の形態について、その実施の形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【符号の説明】
【００８８】
１０００  作業手順策定支援システム
１００１  メモリ
１００２  プログラム
１００３  作業条件受付部
１００４  資源条件受付部
１００５  モデル作成部
１００６  条件作成部
１００７  作業時刻算出部
１００８  作業実行過程図作成部
１１００  記憶部
１２００  表示部（ディスプレイ等）
１２０１  入力部（キーボード、マウス等）
１２０２  制御部（ＣＰＵ）
１２０３  通信部
１２０４  データパス
【図１】
2011076544.tif 000007
【図２】
2011076544.tif 000008
【図３】
2011076544.tif 000009
【図４】
2011076544.tif 000010
【図５】
2011076544.tif 000011
【図６】
2011076544.tif 000012
【図７】
2011076544.tif 000013
【図８】
2011076544.tif 000014
【図９】
2011076544.tif 000015
【図１０】
2011076544.tif 000016