(57)【要約】      （修正有）【課題】生産計画を作成するに際し、工程毎にできるだけ正確な作業単位時間を設定できることが望ましい。本願は正確な単位作業時間を自動で得ることを目的とする。【解決手段】設定された時間間隔の各時点における工程を推定する推定手段と、推定の精度に基づき、工程ごとの単位作業時間の推定値を補正する補正手段と、を有する。推定手段では、過去に取得された工程に関する作業実績データと、実際に行われた工程とを関連付けた推定モデルを利用する。また、補正手段では再現率と適合率の指標を用いて推定モデルの推定精度を向上させる。【選択図】図３
2019105887.tif 000002
【特許請求の範囲】
【請求項１】
設定された時間間隔の各時点における工程を推定する推定手段と、
前記推定の精度に基づき、工程ごとの単位作業時間の推定値を補正する補正手段と、
を有する情報処理装置。
【請求項２】
前記推定の結果に基づき、工程ごとの単位作業時間の推定値を作成する作成手段を更に有し、
前記補正手段は、前記推定の精度に基づき、前記単位作業時間の推定値を補正する請求項１記載の情報処理装置。
【請求項３】
前記補正された前記単位作業時間の推定値で計画情報の単位作業時間を更新する第１の更新手段を更に有する請求項１又は２記載の情報処理装置。
【請求項４】
前記推定手段は、推定モデルで前記設定された時間間隔の各時点における工程を推定する請求項１乃至３何れか１項記載の情報処理装置。
【請求項５】
前記推定手段は、生産現場で収集された特徴量データを前記推定モデルに入力することで前記設定された時間間隔の各時点における工程を推定する請求項４記載の情報処理装置。
【請求項６】
前記推定の精度とは、前記推定モデルの再現率と適合率とである請求項４又は５記載の情報処理装置。
【請求項７】
前記推定の結果に基づき、工程ごとの単位作業時間の度数分布から分散を決定する決定手段と、
前記決定された分散で前記計画情報の分散を更新する第２の更新手段と、
を更に有する請求項３記載の情報処理装置。
【請求項８】
計画画面を介して入力された計画安全度に関する情報に基づき、前記計画情報の前記単位作業時間を調整する調整手段を更に有する請求項７記載の情報処理装置。
【請求項９】
前記計画画面を表示する表示手段を更に有する請求項８記載の情報処理装置。
【請求項１０】
情報処理装置が実行する情報処理方法であって、
設定された時間間隔の各時点における工程を推定する推定工程と、
前記推定の精度に基づき、工程ごとの単位作業時間の推定値を補正する補正工程と、
を有する情報処理方法。
【請求項１１】
コンピュータを、請求項１乃至９何れか１項記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
生産現場では、生産計画を作成する。生産計画とは、注文に紐付く商品を、いつどのリソース（製造装置・作業員）を使って生産するかを表す計画である。生産計画を作成するには、計画情報が必要である。計画情報とは、注文の情報、商品の製造情報等を含む情報を指す。ここで、印刷物を印刷する印刷現場においては、注文の部数、１部当たりのページ数、１ページ当たりの所要時間（単位作業時間）を乗算することで工程（印刷、加工、検品等のある作業のまとまり）の作業時間を算出する。そして、その工程の作業開始時刻を決定することで、生産計画を作成する。正確な生産計画を作成するためには正確な単位作業時間が得られていることが必要である。正確な単位作業時間とは、過去実際にかかった作業時間から算出された時間を指す。
正確な単位作業時間を得るための技術としては、特許文献１に開示の技術がある。特許文献１に開示の技術は、所要時間を決定する際に、過去実績情報から算出された作業の所要時間を、ユーザから指定された情報に基づいて補正する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−５１９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示の技術では、正確な単位作業時間を得るために必要な情報をユーザが手入力しなければならなかった。
【課題を解決するための手段】
【０００５】
本発明の情報処理装置は、設定された時間間隔の各時点における工程を推定する推定手段と、前記推定の精度に基づき、工程ごとの単位作業時間の推定値を補正する補正手段と、を有する。
【発明の効果】
【０００６】
本発明によれば、正確な単位作業時間を自動で得ることができる。
【図面の簡単な説明】
【０００７】
【図１】計画情報及び機械学習に関するデータの例を示す図である。
【図２】情報処理装置のハードウェア構成の一例を示す図である。
【図３】実施形態１の情報補正アプリの一例を示す図である。
【図４】情報補正アプリの情報処理の一例を示すフローチャートである。
【図５】補正部の情報処理の一例を示すフローチャートである。
【図６】実施形態２の情報補正アプリの一例を示す図である。
【図７】計画情報の一例を示す図である。
【図８】情報補正アプリの情報処理の一例を示すフローチャートである。
【図９】代表値決定部の情報処理の一例を示すフローチャートである。
【図１０】計画を作成する情報処理の一例を示すフローチャートである。
【図１１】計画画面の一例を示す図である。
【図１２】調整部における情報処理の一例を示すフローチャートである。
【図１３】平準化に適用したときの一例を示すガントチャートである。
【図１４】最適化に適用した場合の情報処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
【０００９】
＜実施形態１＞
人の手を介すことなく、自動で正確な単位作業時間を決定し、補正する処理について説明する。単位作業時間の補正方法について以下に説明する。
（計画情報）
まず、自動で正確な単位作業時間を決定、補正するために必要な情報を格納する計画情報のデータ構造の例について、図１（ａ）から（ｆ）までを用いて説明する。
図１（ａ）は、商品テーブル１０１のデータ構造の例である。
フィールドは、商品ＩＤ、商品名、工程ＩＤで構成される。
商品ＩＤは、各商品を識別するためのＩＤである。商品ＩＤは本フィールド内でユニークになるように登録される。言い換えると、同一のＩＤが本フィールドに出現することがないように登録される。
工程ＩＤのユニーク性を保証する方法としては、例えば、データベース管理システムを使って本フィールドにユニーク制約を設定し、重複した内容を登録した際に再入力を促すようにすればよい。以下、各テーブルの第一フィールドは主キーであり、ユニーク性が保証されるものとする。
商品名は、商品の名称である。
工程ＩＤは、商品を作るための最初の工程の工程ＩＤである。工程ＩＤは、後述する工程テーブル１０２の工程ＩＤフィールドを参照する。
【００１０】
図１（ｂ）は、工程テーブル１０２のデータ構造の例である。
フィールドは、工程ＩＤ、工程名、リソースＩＤ、次工程ＩＤ、単位作業時間、推定精度ＩＤで構成される。
工程ＩＤは、工程を識別するためのＩＤである。
工程名は、工程の名称である。
リソースＩＤは、該当する工程で使用するリソースのリソースＩＤである。リソースＩＤは、後述するリソーステーブル１０３のリソースＩＤフィールドを参照する。
次工程ＩＤは、該当する工程の次の工程の工程ＩＤである。次工程ＩＤは、工程テーブル１０２の工程ＩＤフィールドを参照する。
単位作業時間は、該当する工程の単位作業時間である。
推定精度ＩＤは、後述する推定精度テーブル１０５の推定精度ＩＤである。該当する工程の推定精度を表す。推定精度ＩＤは、後述する推定精度テーブル１０５の推定精度ＩＤフィールドを参照する。
【００１１】
図１（ｃ）は、リソーステーブル１０３のデータ構造の例である。
フィールドは、リソースＩＤ、リソース名で構成される。
リソースＩＤは、各リソースを識別するためのＩＤである。
リソース名は、リソースの名称である。
【００１２】
図１（ｄ）は、単位作業時間推定値テーブル１０４のデータ構造の例である。本テーブルの工程ＩＤフィールドに対応する工程の単位作業時間の推定値を表す。
フィールドは、単位作業時間ＩＤ、工程ＩＤ、単位作業時間推定値で構成される。単位作業時間推定値の詳細は後述する。
単位作業時間ＩＤは、各単位作業時間を識別するためのＩＤである。
工程ＩＤは、単位作業時間が紐付く工程の工程ＩＤである。工程ＩＤは、工程テーブル１０２の工程ＩＤフィールドを参照する。
単位作業時間推定値は、工程ＩＤに対応する工程の単位作業時間の推定値である。
【００１３】
図１（ｅ）は、推定精度テーブル１０５のデータ構造の例である。
フィールドは、推定精度ＩＤ、再現率、適合率で構成される。推定精度、再現率、適合率の詳細については、推定精度の節で後述する。
推定精度ＩＤは、各推定精度を識別するためのＩＤである。
再現率は、工程テーブルの推定精度ＩＤで紐付く工程に関する再現率である。
適合率は、工程テーブルの推定精度ＩＤで紐付く工程に関する適合率である。
【００１４】
図１（ｆ）は、注文テーブル１０６のデータ構造の例である。
フィールドは、注文アイテムＩＤ、商品ＩＤ、注文数量、ページ数、製造期限、受注日時で構成される。
注文アイテムＩＤは、各注文アイテムを識別するためのＩＤである。
商品ＩＤは、その注文アイテムで注文された商品の商品ＩＤである。商品は、図１（ａ）を用いて先述した商品テーブルの商品ＩＤフィールドを参照することにより特定することができる。
注文数量は、注文された商品の数量である。単位は部数である。
ページ数は、商品を構成するページ数である。
製造期限は、注文された商品の製造を完了させなければならない期限である。
受注日時は、注文を受注した日時である。
即ち、単位作業時間推定値は、商品別工程別に管理される。
【００１５】
（機械学習）
本実施形態では、各時点における注文ごとの工程を機械学習により作成した推定モデルを用いて推定する。ここで機械学習とは、過去に取得されたデータを経験的に学習し、新たに取得したデータについて学習結果をもとに解釈する手法である。また、推定モデルとは、過去に取得されたデータと各時点における注文ごとの工程との関係を経験的に学習することにより生成される判断基準の情報である。
まず、推定モデルを作成するための手順について説明する。
推定モデルを作成するためには、データに含まれる特徴を数値化したデータ（特徴量データ）と正解データとを機械学習の学習データとして入力する。本実施形態では、所定の時間間隔における作業員の位置、向き、姿勢、各作業場所で作業中の商品の注文ＩＤ、製造装置の動作ログ等を特徴量データとして機械学習の学習データとして入力する。各作業場所で作業中の商品の注文ＩＤは、例えば次のように取得する。作業工程が印刷工程の場合、印刷機の出力トレイの上部にカメラを設置し、出力トレイに出力された印刷物を撮影する。撮影した画像とプリンタサーバ上の印刷データの画像とを比較し、一致する印刷データを特定する。特定した印刷データに紐付く商品を注文のリストから特定することにより、注文ＩＤを特定する。また、作業工程が加工工程の場合、断裁機であれば断裁された印刷物が出力される出力トレイ、製本機であれば製本された印刷物が出力される出力トレイに出力された印刷物をカメラで撮影する。以降は、印刷工程での処理と同様、撮影した画像とプリンタサーバ上の印刷データの画像とを比較し、一致する印刷データを特定する。特定した印刷データに紐付く商品を注文のリストから特定することにより、注文ＩＤを特定する。こうすることにより、各作業場所で作業中の商品の注文ＩＤを取得する。
また、別の方法としては、次のように取得する。作業内容が書かれた作業指示書に注文ＩＤをエンコードしたバーコードを印刷しておく。各工程の作業場所に作業指示書を置いておく、作業指示書置き場を設置する。その作業場所で作業する場合には、作業員は作業指示書置き場に作業指示書を置くように運用ルールを定める。そして、各作業指示書置き場に作業指示書のバーコードが読み取れる位置にカメラを設置する。カメラはバーコードを読み取れる状態にしておく。運用時には、作業員がその工程の作業を行う際に、作業指示書を作業指示書置き場に置く。カメラは作業指示書のバーコードを読み取り、現在行われている作業の工程の情報とバーコードをデコードした注文ＩＤとを紐付ける。このような仕組みを設けることで、各作業場所で作業中の商品の注文ＩＤを取得するようにしてもよい。
【００１６】
別の方法としては、ＲＦＩＤ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）リーダ（後述のＲＦタグを読み取る装置）とＲＦタグ（ＩＤ情報を埋め込んだ情報媒体）とを用いて各作業場所で作業中の注文ＩＤを取得するようにしてもよい。より具体的には、各工程の作業場所にＲＦＩＤリーダを設置する。また、ＲＦＩＤタグに注文ＩＤを書き込み、作業指示書に貼付する。各作業場所に作業指示書置き場を設け、作業指示書置き場には、ＲＦＩＤリーダを併設する。運用ルールとして、作業員は、各工程での作業開始時に作業時指示書を作業指示書置き場に置くこととする。また、作業終了時に作業指示書を作業指示書置き場から取り出し、次工程の作業場所、又は、作業指示書の回収場所に持って行くものとする。このような仕組みを設けることで、各作業場所で作業中の注文ＩＤを特定することができる。このようにして各作業場所で作業中の商品の注文ＩＤを取得するようにしてもよい。
併せて、各時間間隔における注文別の正解の工程を正解データとして機械学習の学習データとして入力する。図１（ｇ）に学習データの例を示す。図１（ｇ）は、学習データテーブル１１１は学習データの例を示す学習データテーブルである。学習データテーブルは以下のフィールドで構成される。実績ＩＤ、時刻、開始位置のｘ座標、ｙ座標、終了位置のｘ座標、ｙ座標、開始時の向き、終了時の向き、時間間隔における向きの総変化量、注文ＩＤ、正解等である。実績フィールドは、各実績を識別するためのＩＤである。時刻フィールドは、各実績が取得された時刻である。図１（ｇ）の例では、１秒間隔で実績を取得している。開始位置のｘ座標フィールドとｙ座標フィールドとは、各時刻の開始時点における作業員の印刷現場での位置を表す。例えば、レコードＴＲ０００００１であれば、時刻２０１７／６／１  ０９：００：００における作業員の位置を表す。ここで、座標値は、印刷現場のある位置を原点として、そこからの横方向の距離をｘ座標、縦方向の距離をｙ座標とする。座標値は、原点からの距離をスケーリングした値を用いてもよく、作業員の位置を把握できるのであれば、どのような表現であってもよい。終了位置のｘ座標フィールドとｙ座標フィールドとは、各時刻の終了時点における作業員の印刷現場での位置を表す。例えば、レコードＴＲ０００００１であれば、時刻２０１７／６／１  ０９：００：０１における作業員の位置を表す。開始時の向きフィールドと終了時の向きフィールドとは、作業員が向いている方向に関する情報である。開始時の向きフィールドは、各時刻の開始時点において作業員が向いている方向を表す。終了時の向きフィールドは、各時刻の終了時点において作業員が向いている方向を表す。時間間隔における向きの総変化量フィールドは、各時間間隔中、つまり、１秒間に作業員の向きが変化した総変化量を表す。注文ＩＤフィールドは、各時点において作業員から最も近い作業場所の作業指示書置き場で認識された作業指示書に紐付く注文ＩＤを表す。正解フィールドは、各時点において作業員が作業している工程の工程ＩＤ、つまり、機械学習に学習させたい正解の情報である。これらの学習データは一例であって、推定モデルの推定精度を上げる可能性のある特徴量データを用いればよい。
これらの情報を機械学習の学習データとして入力することにより、所定の時間間隔における工程を注文別に推定する推定モデルを得ることができる。
【００１７】
次に、作成した推定モデルを用いて推定結果を得る方法について説明する。推定モデルを用いて推定結果を得るには、推定モデルに特徴量データを入力する。特徴量データとしては、学習データテーブル１１１の正解フィールドを除くデータである。特徴量データを入力することにより、所定の時間間隔における工程を注文別に推定することができる。図１（ｈ）に推定結果データのテーブルの例を示す。図１（ｈ）において、推定結果データテーブル１１２は、推定結果データを示す推定結果データテーブルである。フィールドは、実績ＩＤ、推定結果からなる。実績ＩＤフィールドは、学習データテーブル１１１の実績ＩＤフィールドに対応する。推定結果フィールドは、推定モデルが推定した、各時点における工程の工程ＩＤを表す。図１（ｈ）の例では、実績ＩＤＴＲ０００００１、ＴＲ０００００２は推定結果がＯＰ００１で、学習データテーブルの正解と一致している。したがって、推定モデルは正しく推定できている。一方、実績ＩＤＴＲ０００００３、ＴＲ０００００４は推定結果がＯＰ１０１で、学習データテーブルの正解と一致していない。したがって、推定モデルは正しく推定できていない。
【００１８】
（推定精度）
推定モデルに対して、正解が付いた特徴量データ（テストデータ）を入力することで、推定モデルが推定した推定結果と入力した正解から、その推定モデルの推定精度を得ることができる。正解の中からどれだけ正解と推定したかを評価する指標として再現率、推定した中に正解がどれだけ含まれているかを評価する指標として適合率がある。例えば、所定の時間間隔において、検品工程が６つだったときに、推定モデルが検品工程は５つと推定したとする。そして、このうち４つが正解だったとする。このとき、再現率は、「正解の中で推定結果も正解だった個数４」÷「正解の個数６」で約６７％。適合率は、「正解と推定した中での正解の個数４」÷「正解と推定した個数５」で８０％となる。本実施形態では、この推定精度を使って、単位作業時間を補正し、正確な単位作業時間を算出する。算出方法については、後述の本実施形態の処理のイメージで説明する。
【００１９】
（本実施形態の処理のイメージ）
本実施形態の処理は、２つのフェーズからなる。第一フェーズは日々の作業実績を蓄積するフェーズである。第二フェーズは蓄積した作業実績から所定の期間ごとに単位作業時間を補正、更新するフェーズである。
第一フェーズでは、生産現場における生産活動から得られる作業実績を所定の期間、例えば、１日等、蓄積する。蓄積した作業実績を推定モデルに入力し、１秒刻み等、所定の時間間隔ごとに工程を注文別に推定する。図１（ｇ）と図１（ｈ）とを例にすると、蓄積した作業実績、即ち、学習データテーブル１１１の正解フィールドを除く情報を推定モデルに入力する。そして、推定結果データテーブル１１２に示すような実績ＩＤと推定結果との対の情報を得る。
次に、注文別、工程別に工程の個数をカウントし、所定の時間間隔を乗算することで、注文別、工程別に作業時間を算出する。図１（ｈ）の推定結果データテーブル１１２の例で言えば、ＯＰ００１、ＯＰ００２、ＯＰ１０１、ＯＰ１０２等の工程の種類ごとにその個数をカウントする。仮にＯＰ００１が７００個あったとすると、７００に所定の時間間隔、１秒を乗算することで、工程ＯＰ００１の作業時間が７００秒と算出できる。算出した作業時間を注文数量で除算することで単位作業時間を算出する。例えば、工程ＯＰ００１が、チラシ商品７００部を印刷する印刷工程だった場合、作業時間７００秒÷１枚÷７００部を演算することで、１枚印刷するときの作業時間、即ち、単位作業時間を１秒と算出することができる。最後に、算出した単位作業時間を注文別、工程別にデータベースに保存する。これらの処理を十分データが蓄積されるまで繰り返す。
次に、第二フェーズでは、蓄積された注文別、工程別の単位作業時間の度数分布から統計処理により単位作業時間の代表値を算出する。統計処理は、最頻値、平均値、中央値等の統計値を算出する所望の統計処理を用いればよい。算出した単位作業時間に商品別工程別の推定精度を適用することで、正しい単位作業時間に補正することができる。より具体的には、算出した単位作業時間に適合率を乗算し、再現率を除算することで正しい単位作業時間を算出することができる。
これは、再現率と適合率との定義から、
・再現率が低いほど正解を取りこぼしている
・適合率が低いほど正解を余計に多く見積もっている
ので、推定値を補正するように再現率と適合率とを適用することで正しい値を算出することができる。
更に詳しく言えば、算出した単位作業時間が推定値であり、適合率の分母が推定した正解数、即ち、推定値であることから、推定した単位作業時間に適合率を乗算することで、推定値と分母の推定した正解数とが打ち消しあい、正解と推定した中での正解数が残る。これに再現率を除算することで、正解と推定した中での正解数と、正解の中で推定結果も正解の個数とが打ち消しあい、最終的に再現率の分母の正解の個数が残ることになる。結果として、上記演算により、正しい単位作業時間を逆算することができる。
【００２０】
（情報処理装置のハードウェア構成）
図２は、情報処理装置のハードウェア構成の一例を示す図である。
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１は、記憶装置２０６上に格納されたプログラムを読み込み、解釈、実行し、バス２０９を介してバスに接続されたＲＡＭ２０３やディスプレイ２０４等を制御する装置である。
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２は、バスに接続されたハードウェアとの入出力制御を行う読み出し専用メモリである。
ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３は、ＣＰＵ２０１が演算する際の情報を一時的に記憶するランダムアクセスメモリである。
ディスプレイ２０４は、ＣＰＵ２０１による計算結果を表示するディスプレイである。
キーボード２０５は、ユーザからの入力を受け付ける。但し、情報処理装置がスマートデバイスの場合は、タッチパネルを備えているため、キーボード２０５は付随していなくてもよい。
記憶装置２０６は、計算に利用するプログラムやデータを格納する記憶装置である。
ネットワークＩ／Ｆ２０７は、ローカルネットワークやイントラネット、インターネット等のネットワークに接続するネットワークＩ／Ｆ（Ｉ／Ｆ：インターフェイス）である。
ポインティングデバイス２０８は、ユーザが画面上で指定した座標を受け付けるマウスやトラックボール等のポインティングデバイスである。
バス２０９は、ＣＰＵ２０１からポインティングデバイス２０８までのハードウェアが接続された信号線であるところのバスである。
ＣＰＵ２０１が記憶装置２０６に記憶されたプログラムに基づき処理を実行することによって後述する図３、図６に示す情報補正アプリケーション（以下、情報補正アプリ）３０１の機能が実現される。また、ＣＰＵ２０１が記憶装置２０６に記憶されたプログラムに基づき処理を実行することによって後述する図４、図５、図８〜図１０、図１２、図１４のフローチャートの処理が実現される。
【００２１】
（情報補正アプリ）
図３は、情報補正アプリ３０１の一例を示す図である。
作業実績保持部３０２は、生産現場における生産活動の結果、収集された作業実績を保持する。推定モデルを保持する。尚、推定モデルは、情報処理装置の内部の記憶装置に保持されてもよいし、情報処理装置の外部の記憶装置に保持されているものを情報補正アプリが取得してもよい。
工程推定部３０３は、推定モデルを用いて所定の時間間隔における工程を注文別に推定する。
単位作業時間作成部３０４は、推定した工程から商品別工程別の単位作業時間を作成する。
計画情報保持部３０５は、計画情報を保持する。
記録量判定部３０６は、計画情報保持部３０５に保持された単位作業時間の記録量を判定する。
代表値決定部３０７は、計画情報保持部３０５に保持された単位作業時間から代表値を決定する。
補正部３０８は、単位作業時間の代表値と推定モデルの推定精度とから本来の単位作業時間（補正値）を算出する。
更新部３０９は、計画情報保持部３０５に保持された商品別工程別の単位作業時間を補正値で更新する。
【００２２】
（情報補正アプリ３０１における処理の流れ）
図４は、情報補正アプリ３０１の情報処理の一例を示すフローチャートである。
Ｓ４０１において、工程推定部３０３は、推定モデルに作業実績を入力し、所定の時間間隔における工程を注文別に推定する。より具体的には、以下の通りである。工程推定部３０３は、計画情報保持部３０５から推定モデルを取得し、作業実績保持部３０２から作業実績を取得する。工程推定部３０３は、作業実績を推定モデルに入力し、所定の時間間隔における注文別の工程を取得する。
Ｓ４０２において、単位作業時間作成部３０４は、注文別に工程の単位作業時間の推定値を算出する。より具体的には、以下の通りである。まず、単位作業時間作成部３０４は、注文別に推定した工程の個数をカウントする。単位作業時間作成部３０４は、その個数に所定の時間間隔を乗算し、注文別に工程の作業時間を算出する。単位作業時間作成部３０４は、算出した作業時間を単位作業時間に変換する。例えば、単位作業時間作成部３０４は、印刷工程であれば、部数とページ数とで除し、単位作業時間の推定値を算出する。単位作業時間作成部３０４は、断裁工程においても、部数とページ数とで除し、単位作業時間の推定値を算出する。
Ｓ４０３において、記録量判定部３０６は、全ての工程について、単位作業時間の推定値が十分に貯まったかを判定する。判定の結果、十分貯まっていれば、記録量判定部３０６は、その工程をメモリに記憶し、Ｓ４０４へ進む。一方、十分貯まった工程がなければ、記録量判定部３０６は、Ｓ４０１に戻る。記録量判定部３０６は、十分貯まったかの判定を、予め決めた個数の閾値と記録量の個数とを比較し、記録量が閾値以上であれば十分貯まったと判定する。
Ｓ４０４において、代表値決定部３０７は、メモリに記憶した各工程について、複数の単位作業時間の推定値から代表値を決定し、メモリに格納する。代表値決定部３０７は、代表値を、推定値の平均値とする。
Ｓ４０５において、補正部３０８は、推定モデルの推定精度を用いて、前述の代表値から補正値を算出する。本ステップの処理の詳細は図５を用いて後述する。
Ｓ４０６において、更新部３０９は、算出した補正値を計画情報保持部３０５に商品別工程別に保存する。
【００２３】
（補正部３０８における処理の流れ）
図５は、補正部３０８の情報処理の一例を示すフローチャートである。
Ｓ５０１において、補正部３０８は、補正対象の工程の単位作業時間の代表値をメモリから取得する。ここで、補正対象の工程とは、前述の記録量が十分貯まったと判定された工程を指す。
Ｓ５０２において、補正部３０８は、該当する工程の推定モデルの再現率を計画情報保持部３０５から取得する。
Ｓ５０３において、補正部３０８は、該当する工程の推定モデルの適合率を計画情報保持部３０５から取得する。
Ｓ５０４において、補正部３０８は、取得した再現率と適合率とから該当する工程の単位作業時間の代表値を補正し、補正値を算出する。より具体的には、補正部３０８は、代表値×適合率÷再現率で補正する。適合率及び再現率は、０から１までの実数である。
【００２４】
以上、説明した技術によれば、推定モデルの商品別工程別の適合率と再現率とから、推定モデルの推定結果から算出した単位作業時間を補正し、正確な単位作業時間を算出することができる。
【００２５】
＜実施形態２＞
実施形態１では、計画作成時の単位作業時間として、度数分布における代表値を補正した一意の値（補正値）を用いた。本実施形態では、計画作成時の単位作業時間として、度数分布のばらつき具合に応じて前述の補正値を調整した値を用いる。即ち、実施形態１で利用した単位作業時間が、どれ程の確率でどの程度超過しうるかを考慮して計画を作成することで、計画通りに作業が完了する確率をコントロールすることができる。実施形態２では、その例を示す。
【００２６】
（情報補正アプリ）
図６は、情報補正アプリ６０１の一例を示す図である。情報補正アプリ６０１のうち、実施形態１の情報補正アプリ３０１と同じ処理内容の処理部については、同一の符号を付し、説明を省略する。
計画情報保持部６０５は、計画情報保持部３０５で保持した情報に加えて、単位作業時間の推定値に関する度数分布の分散を商品別工程別に保持する。図７は、計画情報の一例を示す図である。工程テーブル７０１は、計画情報保持部６０５が保持する工程テーブルの例である。工程テーブルは、工程ＩＤ、工程名、リソースＩＤ、次工程ＩＤ、単位作業時間、分散、推定精度ＩＤを持つ。工程ＩＤは、工程を識別するＩＤである。工程名は工程の名称である。リソースＩＤは、該当する工程で使用するリソースのリソースＩＤである。次工程ＩＤは、該当する工程の次の工程を識別するための工程ＩＤである。単位作業時間は、該当する工程における単位作業時間である。分散は、該当する工程の単位作業時間の推定値に関する度数分布の分散である。推定精度ＩＤは、推定モデルが該当する工程を推定する推定精度の推定精度ＩＤである。リソーステーブル７０２は、計画情報保持部６０５が保持するリソーステーブルの例である。リソーステーブルは、リソースＩＤ、リソース名を持つ。リソースＩＤは、各リソースを識別するためのＩＤである。リソース名は、各リソースの名称である。
【００２７】
代表値決定部６０７は、代表値決定部３０７の処理に加えて、計画情報保持部６０５に保持された商品別工程別の単位作業時間の度数分布から分散を算出する。
更新部６０９は、計画情報保持部６０５に保持された単位作業時間と分散とを、補正された単位作業時間と分散とで更新する。
受付部６１０は、計画安全度に関するユーザからの指示を受け付ける。計画安全度とは、計画された時間内に各工程を完了することができる可能性の高さを示す指標である。
調整情報取得部６１１は、単位作業時間を調整するための調整情報をユーザインターフェース（以下、ＵＩ）から取得する。
調整部６１２は、調整情報に基づき単位作業時間を調整する。
計画部６１３は、調整した単位作業時間を用いて生産計画を作成する。計画部６１３は、情報補正アプリ６０１に含まれていてもよいし、図６に示されるように含まれていなくてもよい。計画部６１３が情報補正アプリ６０１に含まれていない場合、ＣＰＵ２０１がＲＯＭ２０２又は記憶装置２０６に記憶されたプログラムに基づき処理を実行することによって計画部６１３の機能が実現される。
【００２８】
（情報補正アプリ６０１における処理の流れ）
図８は、情報補正アプリ６０１における情報処理の一例を示すフローチャートである。
Ｓ７０１において、代表値決定部６０７は、メモリに記憶された全ての工程について、工程に紐付く単位作業時間の度数分布から分散を算出する。本ステップの処理の詳細は図９（ａ）を用いて後述する。
Ｓ７０２において、更新部６０９は、メモリに記憶された全ての工程について、計画情報保持部６０５で保持されている分散フィールドの値を前記分散の値で更新する。本ステップの処理の詳細は図９（ｂ）を用いて後述する。
【００２９】
（代表値決定部６０７における処理の流れ）
図９（ａ）は、代表値決定部６０７における情報処理の一例を示すフローチャートである。
Ｓ９０１において、代表値決定部６０７は、メモリに記憶された全ての工程について、計画情報保持部６０５から商品別工程別の単位作業時間の推定値の分布を取得する。商品別工程別の単位作業時間をｔｉとする。ここで、ｉは単位作業時間の分布の集合の要素番号である。
Ｓ９０２において、代表値決定部６０７は、分布から平均値を算出し、メモリに記憶する。代表値決定部６０７は、平均値μを、
【数１】
2019105887.tif 000003
によって算出する。Ｎは分布の全要素数である。
Ｓ９０３において、代表値決定部６０７は、分布から分散を算出し、メモリに記憶する。代表値決定部６０７は、分散を、
【数２】
2019105887.tif 000004
によって算出する。
【００３０】
（更新部６０９における処理の流れ）
図９（ｂ）は、更新部６０９における情報処理の一例を示すフローチャートである。
Ｓ９１１において、更新部６０９は、計画情報保持部６０５から単位作業時間及び分散を更新する対象の工程の工程ＩＤを取得する。
Ｓ９１２において、更新部６０９は、取得した工程ＩＤに紐付く単位作業時間をメモリに記憶された平均値で更新する。
Ｓ９１３において、更新部６０９は、取得した工程ＩＤに紐付く分散をメモリに記憶された分散で更新する。
【００３１】
（情報補正アプリ６０１における処理の流れ）
図８のＳ７０２までの処理で、計画情報の更新を完了した。次に、更新した計画情報を用いて、計画を作成する処理の流れについて、図１０を参照して以下に説明する。図１０は、計画を作成する情報処理の一例を示すフローチャートである。
Ｓ１００１において、受付部６１０は、ユーザからの計画安全度の指示及び計画作成の指示を受け付けるための計画画面をディスプレイ２０４に表示する。図１１は、計画画面１１０１の一例を示す図である。
スライダーバー１１０２は、計画安全度の度合いをユーザに指定させるためのスライダーバーである。
インジケータ１１０３は、計画安全度の度合いをユーザに指定させるためのインジケータである。インジケータ１１０３は、スライダーバーの範囲内を移動させることができ、左に位置するほど計画安全度が低く設定され、右に位置するほど高く設定される。
計画作成ボタン１１０４は、ユーザからの計画作成の指示を受け付けるボタンである。
Ｓ１００２において、受付部６１０は、計画ボタンが選択されるまで待機する。
Ｓ１００３において、調整情報取得部６１１は、スライダーバーのインジケータの位置に対応する相対位置を、単位作業時間を調整するための係数として取得する。
Ｓ１００４において、調整部６１２は、相対位置と商品別工程別との分散を取得し、それらを用いて単位作業時間を調整する。本ステップの処理の詳細は図１２を用いて後述する。
Ｓ１００５において、計画部６１３は、計画を作成する。
【００３２】
（調整部６１２における処理の流れ）
図１２は、調整部６１２における情報処理の一例を示すフローチャートである。
Ｓ１２０１において、調整部６１２は、インジケータの位置に対応する相対位置ｋを取得する。相対位置は、０から１までの実数である。インジケータが最も左に位置するときにｋ＝０、最も右に位置するときにｋ＝１、中間に位置するときにｋ＝０．５である。
Ｓ１２０２において、調整部６１２は、計画情報保持部６０５から注文情報に対応する商品を取得する。
Ｓ１２０３において、調整部６１２は、計画情報保持部６０５から商品に紐付く工程を取得する。
Ｓ１２０４において、調整部６１２は、工程の単位作業時間μを取得する。
Ｓ１２０５において、調整部６１２は、工程の分散σを取得する。
Ｓ１２０６において、調整部６１２は、相対位置ｋ、単位作業時間μ、分散σを用いて工程の単位作業時間を調整する。調整部６１２は、単位作業時間をｔ＝μ＋ｋ√σによって算出し、この値で計画情報保持部６０５の単位作業時間を更新する。
【００３３】
実施形態２の技術の他の適用例を以下に記す。
生産現場によっては、稼働日ごとの負荷を平準化する処理が行われる。平準化の例を、図１３を用いて説明する。図１３（ａ）は、一つのリソースに対して工程を割り付けたガントチャートである。図１３（ａ）において、開始日時１３０１、１３０２、１３０３は、それぞれ１週目、２週目、３週目の開始日時を表す。また、工程１３０４、１３０５、１３０６等の長方形は各工程を表す。図１３（ａ）では１週目と２週目とに割り付けられた工程の合計時間はほぼ同じになり、負荷が平準化していることが分かる。しかしながら、各工程は遅延の可能性があり、この計画に則って作業を開始した結果、図１３（ｂ）に示すように、遅延してしまうこともある（２週目の工程は割愛する）。作業実績１３１４、１３１５、１３１６は、それぞれ工程１３０４、１３０５、１３０６に対応する作業実績である。遅延して再計画することになると、翌週以降の計画も変更になる。そうすると、計画の変更に伴って、調整が発生する。調整には手間と時間とがかかるので、翌週以降の計画を変更することはできるだけ避けることが好ましい。このような場合に、工程の作業時間に余裕を持たせて計画することが考えられる。
しかし、どの程度の余裕を持たせればよいのかを判断することが難しい。
そこで、情報補正アプリ６０１は、分散を使うことで、分散が大きい工程に関しては余裕を長く、分散が小さい工程に関しては余裕を短く設定することができる。分散を考慮して平準化を行ったときの計画を図１３（ｃ）に示す。工程１３２６は図１３（ａ）の工程１３０６に対応する工程で、遅延の可能性を考慮して、２週目に割り付けられた工程である。
【００３４】
また、別の適用例を、図１４を用いて、以下に説明する。
図１４は、最適化に適用した場合の情報処理の一例を示すフローチャートである。
Ｓ１４０１において、調整部６１２は、計画部による計画結果を取得する。
Ｓ１４０２において、調整情報取得部６１１は、スライダーバー上のインジケータの位置に対応する値を取得する。
Ｓ１４０３において、調整部６１２は、単位作業時間と分散とインジケータの位置とから補正した単位作業時間を算出する。
Ｓ１４０４において、調整部６１２は、補正した単位作業時間を用いて計画結果を修正する。修正時には、調整部６１２は、工程の前後関係は維持して修正するものとする。例えば、調整部６１２は、印刷工程が終わってからでないと断裁工程を開始できない、表紙印刷と本文印刷が終わってからでないと製本工程を開始できないといった工程の前後関係は維持して修正する。
Ｓ１４０５において、調整部６１２は、修正した計画が一日で収まる度合いを算出する。算出した度合いは、組み合わせ最適化技術を用いたスケジューリングにおいて目的関数の一評価項目として用いられる。目的関数とは、ある制約条件において、最大化、又は、最小化される関数のことである。スケジューリングにおいては、商品の完成日が注文の納期を超えないこと、リードタイムが短いこと等が評価項目として挙げられる。調整部６１２は、それらと同時に上記度合いを評価する。
【００３５】
計画安全度の導入は以下のようなケースにおいても効果がある。
・下流工程への影響を小さくしたい
上流工程と下流工程とを担当する部門がそれぞれあるときに、上流工程の作業が遅延すると、下流工程への影響が発生する。上流工程の計画の計画安全度を高く設定して作成しておくことで、上流工程が遅延したとしても下流工程への影響を小さく抑えることができる。例えば、印刷会社で印刷工程の作業を自社で行い、型抜き等の後工程を加工会社に委託している場合、加工会社では、委託を受けられるだけの作業員、作業場所、製造装置の準備等を行う。しかし、印刷会社での作業が遅延し、加工会社への印刷物の提供が遅れると、加工会社での準備は印刷物の到着までの間、無駄になってしまう。印刷会社で計画を作成する際に、計画安全度を高く設定しておくことで、加工会社での無駄を低減することができる。
・機械での作業完了直後に作業を開始したい
３Ｄプリンタを使った生産現場では、３Ｄプリンタで３Ｄモデルを造形した後、そのまま造形物を長時間にわたって３Ｄプリンタ内に放置しておくと、造形精度が下がってしまうことがある。したがって、造形の完了のタイミングは、作業員が勤務している時間帯が好ましい。そこで、３Ｄプリンタを使った生産現場では、作業員の勤務時間内に取り出し等の後処理を実施できる時間を確実に確保できるように、計画安全度を高く設定して計画する。こうすることで、造形精度の低下を防止することができる。
・作業を定時内に完了させたい
定時内に業務を完了させることが強く求められる生産現場では、当日計画していた作業が定時内に完了しないことは好ましくない。そのような現場で作業時間に余裕を持たせずに計画を作成した場合、ひとたび作業が遅延すると、定時内に作業を完了させることが難しくなる。このような現場においても、計画安全度を高く設定して計画を作成することで、定時内に作業が完了する可能性の高い計画を作成することができる。
【００３６】
以上、説明した技術によれば、推定モデルの再現率と適合率とを用いて、単位作業時間を補正することで、正確な単位作業時間を自動で得ることができる。
【００３７】
＜実施形態３＞
上述した実施形態において、推定モデルの推定精度は、計画情報保持部から取得するようにした。しかし、推定精度の取得方法はこれに限定するものではない。情報補正アプリは、ユーザからの再現率又は適合率、又は両方の指定を受け付けるＵＩ（入力受付部）をディスプレイ２０４に表示し、再現率又は適合率、又は両方を取得するようにするようにしてもよい。
また上述した実施形態において、単位作業時間を補正する際の代表値（換言すると、補正前の単位作業時間）は、計算で求めるようにした。しかし、これに限定するものではなく、情報補正アプリは、ユーザからの推定値の指定を受け付けるＵＩ（入力受付部）をディスプレイ２０４に表示し、推定値も取得するようにしてもよい。
上述した実施形態において、計画画面の計画安全度はスライダーバーで指定する例を示したが、指定の方法はこれに限定するものではない。情報補正アプリは、プルダウンリストで候補の値からユーザに選択させるようにしてもよいし、直接数値を入力させるようにしてもよい。また、計画安全度の値をファイルに記述しておき、情報補正アプリは、それを読み込むようにしてもよい。更に言えば、情報補正アプリは、計画安全度の値を取得することができればどのような形態であってもよい。
上述した実施形態において、調整部６１２は、単位作業時間ｔをｔ＝μ＋ｋ√σによって算出したが、算出方法はこれに限定するものではなく、例えば、２√σや３√σを用いて、ｔ＝μ＋２ｋ√σ、ｔ＝μ＋３ｋ√σ等、√σに係数を掛けるのでもよい。こうすることにより、より安全度の高い計画を作成することができる。
上述した実施形態において、調整部６１２は、Ｓ１４０４の計画結果の修正の範囲は特に断らなかったが、例えば、クリティカルパスになる工程に限定して修正するのでもよい。又は、調整部６１２は、分散の大きい工程に限定して修正するのでもよい。もちろん、調整部６１２は、両者を組み合わせるのでもよい。
また上述した実施形態において、単位作業時間の調整には単位作業時間の推定値の分布の分散を用いた。しかし、分散に限定するものではなく、情報補正アプリは、単位作業時間の分布の最大値と平均値との幅、平均値と最小値との幅、又は、最大値と中央値との幅等、分布のばらつきを表す指標値であれば、どのような値を用いてもよい。
【００３８】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００３９】
以上、本発明の実施形態の一例について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
例えば、情報処理装置のハードウェア構成として、ＣＰＵは複数存在してもよく、複数のＣＰＵがＲＯＭ又は記憶装置等に記憶されているプログラムに基づき処理を実行するようにしてもよい。また、情報処理装置のハードウェア構成として、ＣＰＵの替わりに、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いてもよい。
また、上述した実施形態を任意に組み合わせて実施してもよい。
【００４０】
以上、上述した各実施形態によれば、正確な単位作業時間を自動で得ることができる。
【符号の説明】
【００４１】
２０１  ＣＰＵ
２０２  ＲＯＭ
２０６  記憶装置
【図１】
2019105887.tif 000005
【図２】
2019105887.tif 000006
【図３】
2019105887.tif 000007
【図４】
2019105887.tif 000008
【図５】
2019105887.tif 000009
【図６】
2019105887.tif 000010
【図７】
2019105887.tif 000011
【図８】
2019105887.tif 000012
【図９】
2019105887.tif 000013
【図１０】
2019105887.tif 000014
【図１１】
2019105887.tif 000015
【図１２】
2019105887.tif 000016
【図１３】
2019105887.tif 000017
【図１４】
2019105887.tif 000018