(57)【要約】【課題】  業務上現実的な時間で計画の作成を可能にする技術を提供すること。【解決手段】  リソースに対して作業工程を割り当てる計画の作成精度の指定を受け付ける。該受け付けた作成精度に対応するアルゴリズム及び該作成精度に対応する計画の作成の終了条件に基づいて計画の作成を行う。【選択図】  図１
2018190417.tif 000002
【特許請求の範囲】
【請求項１】
リソースに対して作業工程を割り当てる計画の作成精度の指定を受け付ける受付手段と、
前記受付手段が受け付けた作成精度に対応するアルゴリズム及び該作成精度に対応する前記計画の作成の終了条件に基づいて前記計画の作成を行う作成手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記受付手段は、設定画面を介してユーザが設定した前記作成精度を受け付けることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
更に、
前記作成精度ごとに、前記計画を作成するためのアルゴリズムと、該計画の終了条件を直接的に若しくは間接的に特定するためのパラメータと、を管理する管理手段を備え、
前記作成手段は、前記受付手段が受け付けた作成精度に対応するアルゴリズム及び前記受付手段が受け付けた作成精度に対応するパラメータによって特定される終了条件に基づいて前記計画の作成を行うことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記作成手段は、前記受付手段が受け付けた作成精度に対応する複数の終了条件のうち何れかが満たされるまで前記計画の作成を行うことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項５】
前記作成手段は、前記受付手段が受け付けた作成精度と閾値との大小関係に応じたアルゴリズム及び終了条件に基づいて前記計画の作成を行うことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項６】
前記アルゴリズムは、ルールベースのディスパッチング、遺伝的アルゴリズム、シミュレーテッドアニーリング、タブーサーチ、貪欲法、混合整数線形計画法、を含むことを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記終了条件は、前記計画の作成の精度、該作成の反復回数、該作成の収束速度、を含むことを特徴とする請求項１乃至６の何れか１項に記載の情報処理装置。
【請求項８】
前記作成手段は、前記受付手段で前記作成精度の優先度をより高くすることを受け付けた場合、前記計画の評価指標の達成度がより高くなる計画を作成することを特徴とする請求項１乃至７何れか１項に記載の情報処理装置。
【請求項９】
前記作成手段は、前記作成精度より作成速度の優先度を高くすることを受け付けた場合、作業の納期を超えない計画を作成することを特徴とする請求項１乃至８何れか１項に記載の情報処理装置。
【請求項１０】
リソースに対して作業工程を割り当てる計画の処理時間の上限の指定を受け付ける受付手段と、
前記受付手段が受け付けた上限に対応するアルゴリズム及び該上限に対応する前記計画の作成の終了条件に基づいて前記計画の作成を行う作成手段と
を備えることを特徴とする情報処理装置。
【請求項１１】
情報処理装置が行う情報処理方法であって、
前記情報処理装置の受付手段が、リソースに対して作業工程を割り当てる計画の作成精度の指定を受け付ける受付工程と、
前記情報処理装置の作成手段が、前記受付工程で受け付けた作成精度に対応するアルゴリズム及び該作成精度に対応する前記計画の作成の終了条件に基づいて前記計画の作成を行う作成工程と
を備えることを特徴とする情報処理方法。
【請求項１２】
前記受付工程では、設定画面を介してユーザが設定した前記作成精度を受け付けることを特徴とする請求項１１に記載の情報処理方法。
【請求項１３】
更に、
前記情報処理装置の管理手段が、前記作成精度ごとに、前記計画を作成するためのアルゴリズムと、該計画の終了条件を直接的に若しくは間接的に特定するためのパラメータと、を管理する管理工程を備え、
前記作成工程では、前記受付工程で受け付けた作成精度に対応するアルゴリズム及び前記受付工程で受け付けた作成精度に対応するパラメータによって特定される終了条件に基づいて前記計画の作成を行うことを特徴とする請求項１１又は１２に記載の情報処理方法。
【請求項１４】
前記作成工程では、前記受付工程で受け付けた作成精度に対応する複数の終了条件のうち何れかが満たされるまで前記計画の作成を行うことを特徴とする請求項１１又は１２に記載の情報処理方法。
【請求項１５】
前記作成工程では、前記受付工程で受け付けた作成精度と閾値との大小関係に応じたアルゴリズム及び終了条件に基づいて前記計画の作成を行うことを特徴とする請求項１１又は１２に記載の情報処理方法。
【請求項１６】
前記アルゴリズムは、ルールベースのディスパッチング、遺伝的アルゴリズム、シミュレーテッドアニーリング、タブーサーチ、貪欲法、混合整数線形計画法、を含むことを特徴とする請求項１１乃至１５の何れか１項に記載の情報処理方法。
【請求項１７】
前記終了条件は、前記計画の作成の精度、該作成の反復回数、該作成の収束速度、を含むことを特徴とする請求項１１乃至１６の何れか１項に記載の情報処理方法。
【請求項１８】
前記作成工程では、前記受付工程で前記作成精度の優先度を高くすることを受け付けた場合、前記計画の評価指標の達成度が高くなる計画を作成することを特徴とする請求項１１乃至１７何れか１項に記載の情報処理方法。
【請求項１９】
情報処理装置が行う情報処理方法であって、
前記情報処理装置の受付手段が、リソースに対して作業工程を割り当てる計画の処理時間の上限の指定を受け付ける受付工程と、
前記情報処理装置の作成手段が、前記受付工程で受け付けた上限に対応するアルゴリズム及び該上限に対応する前記計画の作成の終了条件に基づいて前記計画の作成を行う作成工程と
を備えることを特徴とする情報処理方法。
【請求項２０】
コンピュータを、請求項１乃至１０の何れか１項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生産計画の作成技術に関するものである。
【背景技術】
【０００２】
印刷物を製造する印刷工場では、注文に紐付く商品をいつ生産するのかを生産計画者が決定し、生産計画を作成して印刷物を製造している。従来、生産計画の作成は、注文に紐付く商品の製造に要する作業時間を見積もり、その作業時間を製造装置や作業者の稼働時間に割り当てていた。この方法をディスパッチングと呼ぶ。ディスパッチングにより、その日にどの注文をどの装置で誰が作業するのかを決定していた。
【０００３】
しかしながら、ディスパッチングでは、複数の様々な要件を同時に考慮した計画を作成することが困難であった。例えば、納期の範囲内で製造リードタイムは長くなってもよいので、日ごとの作業負荷を平準化する、あるいは、日ごとの負荷平準化と製造リードタイムをバランスさせるといった例がある。
【０００４】
この課題に対して、数理最適化技術を使って様々な要件を考慮した計画を作成する試みがなされている。例えば、特許文献１では、複数の要件を考慮した数理モデルを作成し、数理最適化技術の組み合わせ最適化と探索手法によって最適解を求めることで生産計画を計算する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−０９０５３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示の技術では、最適解を求めることを前提としているため、注文数が大量、あるいは、計画対象期間が長期にわたる場合には、最適化で用いる変数の組み合わせが膨大になり、現実的な時間内で最適解を求めることが困難であった。
【０００７】
本発明は以上の問題に鑑みてなされたものであり、業務上現実的な時間で計画の作成を可能にする技術を提供する。
【課題を解決するための手段】
【０００８】
本発明の一様態は、リソースに対して作業工程を割り当てる計画の作成精度の指定を受け付ける受付手段と、前記受付手段が受け付けた作成精度に対応するアルゴリズム及び該作成精度に対応する前記計画の作成の終了条件に基づいて前記計画の作成を行う作成手段とを備えることを特徴とする。
【発明の効果】
【０００９】
本発明の構成によれば、業務上現実的な時間で計画を作成することができる。
【図面の簡単な説明】
【００１０】
【図１】計画システムの構成例を示すブロック図。
【図２】情報処理装置１０５のハードウェア構成例を示すブロック図。
【図３】計画システムの各装置における機能構成例を示すブロック図。
【図４】（ａ）は商品の発注から配送までの全体処理のフローチャート、（ｂ）はステップＳ１０３における処理の詳細フローチャート。
【図５】ＧＵＩ５０１の構成例を示す図。
【図６】（ａ）は製造情報の構成例を示す図、（ｂ）は製造プロセステーブルの構成例を示す図、（ｃ）は工程テーブルの構成例を示す図、（ｄ）はリソースの構成例を示す図、（ｅ）は注文情報の構成例を示す図。
【図７】ステップＳ２０４における処理の詳細を示すフローチャート。
【図８】（ａ）はＧＵＩ８０１の構成例を示す図、（ｂ）は条件テーブルの構成例を示す図。
【図９】ガントチャートの構成例を示す図。
【図１０】計画システムの各装置における機能構成例を示すブロック図。
【図１１】（ａ）はステップＳ１０３の詳細を示すフローチャート、（ｂ）はステップＳ４０１の詳細を示すフローチャート。
【図１２】条件テーブルの構成例を示す図。
【図１３】（ａ）はＧＵＩ１３０１の構成例を示す図、（ｂ）は条件テーブルの構成例を示す図。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１２】
［第１の実施形態］
本実施形態では、発注者からの商品（印刷物）の注文を受けた印刷会社が行う商品の生産計画の作成を例にとり、発注者側の端末及び印刷会社側の装置を含めた計画システムについて説明する。ここで、商品の生産計画とは、商品の製造を印刷会社が有するリソース（印刷会社の人員や印刷会社が使用可能な機器）を用いて行う場合に、どのリソースにどの作業工程を割り当てるのかを計画する処理である。
【００１３】
先ず、本実施形態に係る計画システムの構成例について、図１のブロック図を用いて説明する。図１に示す如く本実施形態に係る計画システムは、商品の発注者側の環境である発注者環境１０１（会社、家など）に設けられている端末装置である発注者端末１０２と、商品の受注側である印刷会社１０３における装置群（１０４〜１０９）と、を有する。そして発注者端末１０２と、印刷会社１０３における装置群（１０４〜１０９）と、はインターネット１１０を介して互いにデータ通信が可能なように構成されている。また、印刷会社１０３における装置群（１０４〜１０９）のそれぞれの間についても、ＬＡＮ等のネットワークを介して互いにデータ通信が可能なように構成されている。
【００１４】
発注者端末１０２は、商品の発注者が操作する端末装置であり、発注者はこの発注者端末１０２を操作することで商品の注文内容を作成する。そして発注者端末１０２は、該作成した注文内容をインターネット１１０を介して印刷会社１０３に対して送信することで、該印刷会社１０３に対して商品の発注を行う。
【００１５】
印刷会社１０３は、発注者端末１０２からの注文に応じた商品を作成し、該作成した商品の配送を行う。印刷会社１０３には、受注サーバ１０４、情報処理装置１０５、印刷装置１０６、加工装置１０７、検品装置１０８、配送装置１０９が設けられている。
【００１６】
受注サーバ１０４は、発注者端末１０２からインターネット１１０を介して送信された注文内容を受信することで、発注者からの商品の注文を受注する。
【００１７】
情報処理装置１０５は、発注者端末１０２からの受注に応じた商品の作成に係る生産計画を作成するための計画サーバとして機能するものである。
【００１８】
印刷装置１０６は、印刷会社１０３の装置が保持している様々な商品の印刷データ（商品を印刷するための印刷データ）のうち受注した商品の印刷データに基づいて紙などの印刷媒体に文字や画像を形成する印刷処理を行うことで商品としての印刷物を生成する。
【００１９】
加工装置１０７は、印刷装置１０６が生成した印刷物に対して製本加工処理を行う。検品装置１０８は、加工装置１０７によって製本加工処理がなされた印刷物に対し、注文通りの印刷物が製造されたのかを検査する検品処理を行う。配送装置１０９は、検品装置１０８による検品処理済みの印刷物を、注文内容に含まれている配送先に配送するための手続等の印刷物の配送に係る処理を行う。
【００２０】
なお、印刷会社１０３が有する上記の装置群は一例であり、例えば、図１に示した印刷会社１０３が有する幾つかの装置を１つの装置に纏めても良いし、図１に示した印刷会社１０３が有する装置に新たな装置を追加しても良い。
【００２１】
次に、図１に示した各装置における機能構成例について、図３のブロック図を用いて説明する。先ず、発注者端末１０２について説明する。発注部３０１は、発注者による発注者端末１０２の操作に応じて入力された商品の注文内容をインターネット１１０を介して受注サーバ１０４に対して送信する。次に、受注サーバ１０４について説明する。受注部３０２は、発注者端末１０２から送信された注文内容を受信し、該受信した注文内容から後述の注文情報を作成して保持部３０３に格納する。
【００２２】
次に、情報処理装置１０５について説明する。表示部３０４は、ＧＵＩ（グラフィカルユーザインターフェース）等の設定画面を含む様々な画面の表示に係る処理を行う。入力部３０５は、情報処理装置１０５のユーザからの様々な入力を受け付ける（受付）。設定入力部３０６は、情報処理装置１０５のユーザから「生産計画に要求される作成精度に関する設定（精度パラメータ）」を受け付ける。条件保持部３０７はメモリとして機能し、様々な精度パラメータについて、生産計画を作成する処理（最適化処理）を行うときの条件（最適化条件）が登録されているテーブル（条件テーブル）を保持（管理）している。条件決定部３０８は、条件テーブルから、設定入力部３０６が受け付けた精度パラメータに対応する最適化条件を決定する。保持部３０９はメモリとして機能し、最適化処理で用いられる各種のパラメータ（最適化パラメータ）を保持している。最適化パラメータには、最適化処理に適用されるアルゴリズムに固有の設定値や最適化の評価指標に対する重みなどが含まれている。バッファメモリ３１１は、情報処理装置１０５が様々な処理を行うために用いるメモリである。製造情報保持部３１２はメモリとして機能し、図６に示す情報群（６０１〜６０４）を製造情報として保持している。製造情報の詳細については後述する。作成部３１３は、注文情報、製造情報、最適化条件に基づき、商品の生産計画を作成する。
【００２３】
次に、印刷装置１０６について説明する。印刷部３２０は、印刷データに基づく印刷を印刷装置１０６に指示する。次に、加工装置１０７について説明する。加工部３２１は、印刷装置１０６により生成された印刷物の製本加工処理を加工装置１０７に指示する。次に、検品装置１０８について説明する。検品部３２２は、製本加工処理済みの印刷物の検品処理を検品装置１０８に指示する。次に、配送装置１０９について説明する。配送部３２３は、検品装置１０８による検品処理済みの印刷物の配送に係る様々な処理を配送装置１０９に指示する。
【００２４】
次に、情報処理装置１０５のハードウェア構成例について、図２のブロック図を用いて説明する。ＣＰＵ２０１は、ＲＯＭ２０２やＲＡＭ２０３に格納されているコンピュータプログラムやデータを用いて処理を実行する。これによりＣＰＵ２０１は、情報処理装置１０５全体の動作制御を行うと共に、情報処理装置１０５が行うものとして後述する各処理を実行若しくは制御する。ＲＯＭ２０２には、書換不要の様々なコンピュータプログラムやデータが格納されている。
【００２５】
ＲＡＭ２０３は、記憶装置２０６からロードされたコンピュータプログラムやデータ、ネットワークＩ／Ｆ２０７を介して外部から受信したデータ、を格納するためのエリアを有する。更にＲＡＭ２０３は、ＣＰＵ２０１が各種の処理を実行する際に用いるワークエリアを有する。このようにＲＡＭ２０３は、各種のエリアを適宜提供することができる。
【００２６】
ディスプレイ２０４は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ２０１による処理結果を画像や文字などでもって表示することができる。なお、ディスプレイ２０４の代わりに画像や文字を投影するプロジェクタを用いてもよい。また、ディスプレイ２０４はタッチパネル画面であっても良い。
【００２７】
キーボード２０５、ポインティングデバイス２０８は、情報処理装置１０５のユーザが操作することで各種の指示をＣＰＵ２０１に対して入力することができるユーザインターフェースである。ポインティングデバイス２０８には、マウスやトラックボール等が含まれる。なお、情報処理装置１０５が、例えばスマートフォンやタブレット端末装置である場合には、キーボード２０５は省いても良い。
【００２８】
記憶装置２０６は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。記憶装置２０６には、ＯＳ（オペレーティングシステム）や、情報処理装置１０５が行うものとして後述する各処理をＣＰＵ２０１に実行させるためのコンピュータプログラムやデータが保存されている。記憶装置２０６に保存されているコンピュータプログラムには、図３や図１０に示した情報処理装置１０５の各機能部（メモリとして機能する機能部は除く）の機能をＣＰＵ２０１に実現させるためのコンピュータプログラムが含まれている。また、記憶装置２０６に保存されているデータには、本実施形態を含む以降の各実施形態や変形例において既知の情報として説明するものが含まれている。記憶装置２０６に保存されているコンピュータプログラムやデータは、ＣＰＵ２０１による制御に従って適宜ＲＡＭ２０３にロードされ、ＣＰＵ２０１による処理対象となる。なお、図３や図１０においてメモリとして機能する機能部は、ＲＡＭ２０３や記憶装置２０６で構成する。
【００２９】
ネットワークＩ／Ｆ２０７は、情報処理装置１０５と印刷会社１０３内の各装置との間のデータ通信におけるインターフェースとして機能するものである。情報処理装置１０５は、ネットワークＩ／Ｆ２０７を介して印刷会社１０３内の各装置との間のデータ通信を行う。
【００３０】
ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、ディスプレイ２０４、キーボード２０５、記憶装置２０６、ネットワークＩ／Ｆ２０７、ポインティングデバイス２０８は何れも、バス２０９に接続されている。
【００３１】
なお、以下の説明では、図３に示した情報処理装置１０５の機能部を処理の主体として説明するが、実際には、該機能部に対応するコンピュータプログラムをＣＰＵ２０１が実行することで、該機能部の機能を実現させている。
【００３２】
次に、本実施形態に係る計画システムにおいて行われる、商品の発注から配送までの全体処理について、図４（ａ）のフローチャートに従って説明する。ステップＳ１０１では、発注者は発注者端末１０２を操作することで商品の注文内容を作成する。そして発注者端末１０２は、該作成した注文内容をインターネット１１０を介して印刷会社１０３に対して送信する。
【００３３】
例えば、発注者端末１０２は印刷会社１０３が提供する商品のサイトにアクセスして、印刷会社１０３が提供する様々な商品の一覧を、該発注者端末１０２の表示画面に表示する。ユーザは、発注者端末１０２が有する操作部を操作して、この一覧から１つ以上の商品を指定すると共に、指定した各商品について、注文する部数や納期、商品の配送先の住所などを指定する。そしてユーザが上記操作部を操作して発注指示を入力すると、発注者端末１０２（発注部３０１）は、ユーザによる注文内容をインターネット１１０を介して印刷会社１０３に対して送信する。
【００３４】
ステップＳ１０２では、受注サーバ１０４の受注部３０２は、ステップＳ１０１で発注部３０１によって送信された注文内容を受信し、該受信した注文内容から後述する注文情報を生成し、該生成した注文情報を受注サーバ１０４の保持部３０３に登録する。
【００３５】
ステップＳ１０３では、情報処理装置１０５は、発注者端末１０２から受注した注文に対応する商品を製造するための生産計画を作成する。ステップＳ１０３における処理の詳細については後述する。
【００３６】
ステップＳ１０４で印刷装置１０６は、印刷会社１０３の装置が保持している様々な商品の印刷データのうち、受注した商品の印刷データに基づいて紙などの印刷媒体に文字や画像を形成する印刷処理を行うことで商品としての印刷物を生成する。そして加工装置１０７は、印刷装置１０６による印刷により生成された印刷物に対して製本加工処理を行う。
【００３７】
ステップＳ１０５では、検品装置１０８は、ステップＳ１０４において加工装置１０７によって製本加工処理がなされた印刷物に対し、注文通りの印刷物が製造されたのかを検査する検品処理を行う。
【００３８】
ステップＳ１０６では、配送装置１０９は、ステップＳ１０５において検品装置１０８による検品処理済みの印刷物を上記の配送先に配送するための手続等の印刷物の配送に係る処理を行う。
【００３９】
次に、上記のステップＳ１０３における処理の詳細について、図４（ｂ）のフローチャートに従って説明する。ステップＳ２０１では、表示部３０４はディスプレイ２０４に、図５に例示するＧＵＩ（計画作成画面）５０１を表示する。
【００４０】
ボタン５０２は、注文情報の読み込みを指示するためのボタンである。ユーザがキーボード２０５やポインティングデバイス２０８を操作してボタン５０２を指示すると、表示部３０４は、受注サーバ１０４の保持部３０３に登録されている注文情報を読み出し、該注文情報を注文リスト５０７としてＧＵＩ５０１上に表示する。以下では、キーボード２０５及びポインティングデバイス２０８を纏めて指示部と称する。
【００４１】
注文リスト５０７には、注文アイテムＩＤ５０８、商品名５０９、ページ数５１０、部数５１１と、生産計画を作成することで確定する振り分け先デバイス５１２と、が含まれている。注文アイテムＩＤ５０８は、商品ごとに固有のＩＤである。商品名５０９は、商品の名称である。ページ数５１０は、商品のページ数である。部数５１１は、商品の部数である。振り分け先デバイス５１２は、商品を製造する装置を表す。なお、注文リスト５０７が含む項目はこれらに限らない。
【００４２】
ボタン５０３は、商品の生産計画に要求する作成精度を設定するための設定用ＧＵＩを起動するためのボタンである。ユーザが指示部を操作してボタン５０３を指示すると、表示部３０４はディスプレイ２０４に図８（ａ）に例示するＧＵＩ８０１を表示する。図８（ａ）に例示するＧＵＩ８０１については後述する。
【００４３】
ボタン５０４は、生産計画の作成開始を指示するためのボタンである。ユーザが指示部を操作してボタン５０４を指示すると、作成部３１３による生産計画の作成処理が開始される。
【００４４】
ボタン５０５は、生産計画の作成処理によって作成されたガントチャートの表示を指示するためのボタンである。ユーザが指示部を操作してボタン５０５を指示すると、表示部３０４はディスプレイ２０４に、図９に例示するガントチャートを表示する。図９に例示するガントチャートについては後述する。
【００４５】
ボタン５０６は、ＧＵＩ５０１を閉じるために指示するボタンである。ユーザが指示部を操作してボタン５０６を指示すると、表示部３０４はディスプレイ２０４の表示画面からＧＵＩ５０１を消去する（ＧＵＩ５０１を閉じる）。
【００４６】
ステップＳ２０２の処理は、ユーザが指示部を操作してボタン５０２を指示した場合に行われる処理である。ユーザが指示部を操作してボタン５０２を指示すると、入力部３０５は、保持部３０３に保持されている注文情報をバッファメモリ３１１に読み出すと共に、製造情報保持部３１２に格納されている製造情報をバッファメモリ３１１に読み出す。
【００４７】
ステップＳ２０３の処理は、ユーザが指示部を操作してＧＵＩ５０１におけるボタン５０３を指示したことに応じてディスプレイ２０４に表示される図８（ａ）のＧＵＩ８０１についての処理である。
【００４８】
ＧＵＩ８０１においてインジケータ８０３は、ユーザが指示部を操作して、該インジケータ８０３が移動可能な範囲８３１の左端８０２から右端８１０までの間の任意の位置に移動させることができる。ユーザは、作成速度よりも作成精度を重視（優先）して生産計画を行いたい場合（作成精度の重要度を上げたい場合）には、インジケータ８０３をより右端８１０に近づける。一方、ユーザは、作成精度よりも作成速度を重視して生産計画を行いたい場合（作成精度の重要度を下げたい場合）には、インジケータ８０３をより左端８０２に近づける。
【００４９】
ユーザが指示部を操作してボタン８０４を指示すると、設定入力部３０６は、インジケータ８０３の位置に応じた値Ｐを精度パラメータの値として設定し、該精度パラメータをバッファメモリ３１１に格納する。そして表示部３０４はＧＵＩ８０１をディスプレイ２０４の表示画面から消去する（ＧＵＩ８０１を閉じる）。
【００５０】
ユーザが指示部を操作してボタン８０４を指示した時点におけるインジケータ８０３の位置が範囲８３１の左端８０２である場合、設定入力部３０６は値Ｐに「０」を設定する。また、ユーザが指示部を操作してボタン８０４を指示した時点におけるインジケータ８０３の位置が範囲８３１の右端８１０である場合、設定入力部３０６は値Ｐに「１」を設定する。また、ユーザが指示部を操作してボタン８０４を指示した時点におけるインジケータ８０３の位置が、左端８０２の位置から右端８１０側に距離Ｌだけ離間した位置である場合、設定入力部３０６は値Ｐに「Ｌ／Ｄ」を設定する。ここで、Ｄは右端８１０と左端８０２との間の距離を示す。
【００５１】
このように、インジケータ８０３を左右に移動させることで、その位置に応じた値Ｐが得られる。そしてユーザがボタン８０４を指示することで、そのときのインジケータ８０３の位置に対応する値Ｐが精度パラメータの値として設定される。
【００５２】
一方、ユーザが指示部を操作してボタン８０５を指示すると、表示部３０４はＧＵＩ８０１を情報処理装置１０５の表示画面から消去する。このとき、精度パラメータの値に変更はない。
【００５３】
つまり、精度パラメータの値が大きいほど、より高い精度で生産計画の作成を指示することになり、精度パラメータの値が小さいほど、精度よりも作成速度を重視して生産計画の作成を指示することになる。
【００５４】
なお、図８（ａ）のＧＵＩ８０１では、インジケータ８０３を左右に移動させることでその位置に応じた精度パラメータを設定するようにしているが、精度パラメータの設定方法は特定の設定方法に限らない。例えば、ＧＵＩ８０１にテキストボックスを設け、該テキストボックスに入力した数値（０〜１の間の任意の数値）を精度パラメータの値としても良い。また、本実施形態では、精度パラメータの値は０〜１の間の実数とするとが、精度パラメータの値はこの範囲に限るものではない。なお、精度パラメータの初期値としては予めデフォルトの値（例えば０）が設定されているものとする。
【００５５】
以降のステップＳ２０４及びステップＳ２０５における処理は、ユーザが指示部を操作してＧＵＩ５０１のボタン５０４を指示したことに応じて行われる処理である。なお、ステップＳ２０４の処理については、ユーザが指示部を操作してＧＵＩ５０１のボタン５０４を指示せずとも実行し、ステップＳ２０５の処理を、ユーザが指示部を操作してＧＵＩ５０１のボタン５０４を指示したことに応じて行うようにしても良い。
【００５６】
ステップＳ２０４では、条件決定部３０８は、条件保持部３０７に格納されている条件テーブルをバッファメモリ３１１に読み出し、該条件テーブルから、精度パラメータの値に対応する最適化条件を決定する。ステップＳ２０４における処理の詳細について、図７のフローチャートに従って説明する。
【００５７】
ステップＳ３０１では、条件決定部３０８は、バッファメモリ３１１から精度パラメータ（図８（ａ）のＧＵＩ８０１にて設定した精度パラメータ）を読み出す。以下では、ステップＳ３０１でバッファメモリ３１１から読み出した精度パラメータの値をａと表す。
【００５８】
ステップＳ３０２では、条件決定部３０８は、条件保持部３０７に格納されている条件テーブルをバッファメモリ３１１に読み出す。条件テーブルの構成例を図８（ｂ）に示す。図８（ｂ）の条件テーブル８１１には、精度パラメータ８１２のそれぞれの値に対応する内部アルゴリズム８１３及び精度８１４が登録されている。
【００５９】
内部アルゴリズム８１３とは、生産計画を作成するためのアルゴリズムを示す文字列である。図８（ｂ）の例では、精度パラメータ８１２の値＝０．０の場合、対応する内部アルゴリズム８１３として、ルールベースディスパッチングのアルゴリズムを示す文字列「ＲｕｌｅＢａｓｅ」が登録されている。そのため、精度パラメータの値＝０．０であれば、生産計画は「ルールベースディスパッチングのアルゴリズム」に基づいて作成される。また、図８（ｂ）の例では、精度パラメータ８１２の値＝０．１の場合、対応する内部アルゴリズム８１３として遺伝的アルゴリズムを示す文字列「ＧＡ」が登録されている。そのため、精度パラメータの値＝０．１であれば、生産計画は「遺伝的アルゴリズム」に基づいて作成される。
【００６０】
精度８１４とは、生産計画を作成する際に要求される作成精度である。図８（ｂ）の例では、精度パラメータ８１２の値＝０．１の場合、対応する精度８１４として「１０．０」（％）が登録されており、精度パラメータ８１２の値＝１．０の場合、対応する精度８１４として「１．０」（％）が登録されている。
【００６１】
ステップＳ３０３では、条件決定部３０８は、以下で用いる変数ｉの値を０に初期化する。そしてステップＳ３０４では、条件決定部３０８は、ｉ＜ｎ（ｎは条件テーブルの行数）を満たすか否かを判断する。この判断の結果、ｉ＜ｎを満たさない場合（条件テーブルに登録されている全ての精度パラメータについてステップＳ３０５以降の処理を行った場合）には、処理はステップＳ２０５に進む。一方、ｉ＜ｎを満たす場合（条件テーブルに登録されている一部若しくは全部の精度パラメータについて未だステップＳ３０５以降の処理を行っていない）場合には、処理はステップＳ３０５に進む。
【００６２】
ステップＳ３０５では、条件決定部３０８は、条件テーブルのｉ行目における精度パラメータの値ａｉ（０行目の精度パラメータの値は０．０）＝ａであるか否かを判断する。この判断の結果、ａｉ＝ａであれば、処理はステップＳ３０６に進み、ａｉ≠ａであれば、処理はステップＳ３０８に進む。
【００６３】
ステップＳ３０６では、条件決定部３０８は、条件テーブルにおけるｉ行目に登録されている内部アルゴリズム８１３（精度パラメータの値＝ａに対応する内部アルゴリズム８１３）ａｌｇｏｉを変数ａｌｇｏに格納する。変数ａｌｇｏはバッファメモリ３１１に格納されている。
【００６４】
ステップＳ３０７では、条件決定部３０８は、条件テーブルにおけるｉ行目に登録されている精度８１４（精度パラメータの値＝ａに対応する精度８１４）ｐｉを変数ｐに格納する。変数ｐはバッファメモリ３１１に格納されている。
【００６５】
ステップＳ３０８では、条件決定部３０８は、ａｉ＜ａ＜ａ（ｉ＋１）（ａ（ｉ＋１）は、条件テーブルの（ｉ＋１）行目における精度パラメータの値）が満たされているか否かを判断する。この判断の結果、ａｉ＜ａ＜ａ（ｉ＋１）が満たされている場合には、処理はステップＳ３０９に進み、ａｉ＜ａ＜ａ（ｉ＋１）が満たされていない場合には、処理はステップＳ３１１に進む。ステップＳ３１１では、条件決定部３０８は、変数ｉの値を１つインクリメントし、処理はステップＳ３０４に戻る。
【００６６】
一方、ステップＳ３０９では、条件決定部３０８は、条件テーブルにおけるｉ行目に登録されている内部アルゴリズム８１３（精度パラメータの値＝ａに対応する内部アルゴリズム８１３）ａｌｇｏｉを変数ａｌｇｏに格納する。変数ａｌｇｏはバッファメモリ３１１に格納されている。ステップＳ３１０では、条件決定部３０８は、変数ｐの値を、以下の式に基づいて求める。変数ｐはバッファメモリ３１１に格納されている。
【００６７】
ｐ＝（ｎ×ｐｉ＋ｍ×ｐ（ｉ＋１））／（ｍ＋ｎ）
ｍ＝ａ−ａｉ
ｎ＝ａ（ｉ＋１）−ａ
ステップＳ２０５では、作成部３１３は先ず、ステップＳ２０４で取得した精度（変数ｐの値）を用いて、生産計画の作成処理の終了条件としての処理時間Ｔを求める。生産計画の作成処理（最適化処理）の精度は、該最適化処理の反復回数が多いほどより高くなる。つまり、最適化処理の処理時間が長ければ長いほど、最適化処理の精度は高くなる。そこで本実施形態では、最適化処理の精度を処理時間Ｔで近似し、最適化処理の終了条件として使用する。処理時間Ｔは、例えば、式「３６００×（１−ｐ／１００）（秒）」に従って求める。
【００６８】
なお、条件テーブルに、ｐｉの代わりに対応する処理時間Ｔ「３６００×（１−ｐｉ／１００）（秒）」を登録するようにしても良い。つまり、条件テーブルには、生産計画の作成処理の終了条件を直接的に若しくは間接的に特定するための情報が登録されていれば良い。
【００６９】
なお、精度の指定が不要なアルゴリズムの場合には、処理時間Ｔには充分に大きい値を設定する。図８（ｂ）の場合、内部アルゴリズム８１３「ＲｕｌｅＢａｓｅ」については、精度の指定は不要のため、対応する精度８１４として「−」が登録されている。然るに、内部アルゴリズム８１３として「ＲｕｌｅＢａｓｅ」が指定された場合には、処理時間Ｔには、充分に大きい値を設定する。
【００７０】
そして作成部３１３は、ステップＳ２０４で取得した内部アルゴリズム８１３で特定されるアルゴリズムに従って、ステップＳ２０２で取得した注文情報及び製造情報を用いて最適化処理を行う。ステップＳ２０４で取得した内部アルゴリズム８１３で特定されるアルゴリズムに従って最適化処理を行う際には、該アルゴリズムに対応する最適化パラメータを保持部３０９から取得して使用する。最適化処理では、注文情報に対応する商品を製造するべくリソースの稼働時間に工程を割り当てる処理を行う。注文情報及び製造情報を用いて生産計画を作成する処理については周知であるため、これに係る説明は省略する。そして、作成部３１３は、最適化処理の開始から処理時間Ｔが経過すると、この時点における生産計画を出力する。出力先は特定の出力先に限らない。例えば、各注文アイテムＩＤ５０８に対応する振り分け先デバイス５１２として、上記の生産計画によって該注文アイテムＩＤ５０８に対応する商品の製造に割り当てられた装置の情報（装置の名称など）を表示する。
【００７１】
作成部３１３によって作成される生産計画について説明する。作成精度の優先度を高く設定すると、生産計画を作成するアルゴリズムの評価指標の達成度が高くなる。したがって、例えば、評価指標にリードタイムが含まれるときには、リードタイムが短い生産計画が出力される。作成精度の優先度を少し低く設定すると、リードタイムが少し長い生産計画が出力される。作成精度の優先度を最も低く設定すると、リードタイムがより長い生産計画が出力される。
【００７２】
しかし、優先度を最も低く設定し、作成速度の優先度を高くすることで、短い時間で生産計画を出力することができても、注文の納期を超えないようにすることが望まれる。そこで、作成精度が低く設定されたときでも、納期を超えないようにするために、リードタイムを評価する項の係数を大きくすることで、少ない反復回数でもリードタイムを評価する項の収束を早められる。こうすることにより、注文の納期割れを防止することができる。
【００７３】
また、日ごとの平準化についても、例えば、向こう１週間は作業員が５人なので、各日５人分の負荷しか許容できないときに、日ごとの平準化を評価する項の係数を大きくすることで、一日の負荷の許容値を超えないようにすることができる。
【００７４】
ここで、製造情報の構成例及び注文情報の構成例について、図６Ａ〜６Ｅを用いて説明する。図６Ａ〜Ｄに示したテーブル群が製造情報である。先ず、製造情報に含まれる商品テーブルの構成例について、図６Ａを用いて説明する。図６Ａに示す如く、商品テーブル６０１は、商品ＩＤごとに商品名、製造プロセスＩＤ、価格、が登録されているテーブルである。
【００７５】
商品ＩＤは各商品に固有の識別情報である。商品名は、各商品の名称である。製造プロセスＩＤは、各商品の製造プロセスに固有の識別情報である。価格は、各商品の１部あたりの価格であり、本実施形態では単位は「円」とする。しかし、価格の単位は本システムを使用する国や使用者などの状況に応じて適切な通貨単位を選択すればよい。図６（ａ）の場合、商品ＩＤ＝Ｓ００１に対応する商品の商品名は「チラシ」であり、該商品の製造プロセスに固有の識別情報（製造プロセスＩＤ）は「Ｐ００１」であり、該商品の１部あたりの価格は「１」である。
【００７６】
次に、製造情報に含まれている製造プロセステーブルの構成例について、図６（ｂ）を用いて説明する。図６（ｂ）に示す如く、製造プロセステーブル６０２は、商品テーブル６０１に登録されているそれぞれの製造プロセスＩＤに対応する製造プロセス名及び工程ＩＤが登録されているテーブルである。製造プロセス名は、製造プロセスの名称である。工程ＩＤは、製造プロセスの最終工程に固有の識別情報である。図６（ｂ）の場合、製造プロセスＩＤ＝Ｐ００１に対応する製造プロセスの名称（製造プロセス名）は「片面印刷」であり、該製造プロセスの最終工程に固有の識別情報（工程ＩＤ）は「Ｏ００１」である。
【００７７】
次に、製造情報に含まれている工程テーブルの構成例について、図６（ｃ）を用いて説明する。図６（ｃ）に示す如く、工程テーブル６０３は、製造プロセステーブルに登録されているそれぞれの工程ＩＤに対応する工程名、リソースＩＤ、前工程ＩＤ、単位作業時間が登録されているテーブルである。工程名は工程の名称である。リソースＩＤは、工程で使用するリソースに固有の識別情報である。前工程ＩＤは、前の工程に固有の識別情報である。単位作業時間は、工程における１回あたりの作業時間である。単位作業時間の単位は「秒」とするが、これに限らない。図６（ｃ）の場合、工程ＩＤ＝Ｏ００１に対応する工程の名称（工程名）は「印刷」であり、該工程で使用するリソースに固有の識別情報（リソースＩＤ）は「Ｐ００１」である。また、工程ＩＤ＝Ｏ００１に対応する工程の前の工程は存在しないため（つまり工程ＩＤ＝Ｏ００１に対応する工程が製造工程における最初の工程であるため）、前工程ＩＤとしては何も登録されていない。また、工程ＩＤ＝Ｏ００１に対応する工程における１回あたりの作業時間（単位作業時間）は「１０」である。
【００７８】
次に、製造情報に含まれているリソーステーブルの構成例について、図６（ｄ）を用いて説明する。図６（ｄ）に示す如く、リソーステーブル６０４は、工程テーブルに登録されているそれぞれのリソースＩＤに対応するリソース名が登録されているテーブルである。リソース名は、リソースの名称である。図６（ｄ）の場合、リソースＩＤ＝Ｒ００１に対応するリソースの名称（リソース名）は「印刷機１号機」である。
【００７９】
次に、注文情報について、図６（ｅ）を用いて説明する。図６（ｅ）に示す如く、注文情報６０５は、発注者端末１０２から受信した注文内容がテーブル形式で登録された情報であり、受注した商品の注文アイテムＩＤごとに、商品ＩＤ、注文数量、受注日時、製造期限、優先度、ページ数が登録されたテーブルである。
【００８０】
注文アイテムＩＤは、商品ごとに固有のＩＤであり、上記の注文リスト５０７に注文アイテムＩＤ５０８として表示されるものである。発注者端末１０２から印刷会社１０３に対して送信される注文内容には、注文する商品の注文アイテムＩＤが含まれているので、印刷会社１０３側では、注文内容に含まれている注文アイテムＩＤから、受注した商品を特定することができる。
【００８１】
商品ＩＤは各商品に固有の識別情報である。注文数量は、注文した商品の部数である。受注日時は、商品を受注した日時（例えば、受注サーバ１０４が対応する商品の注文内容を受信した日時）である。製造期限は、受注した商品の製造を完了させなければいけない期限日時である。優先度は、商品を製造する優先度であって、ここでは一例として１から１００の範囲で表し、１００を優先度高、１を優先度低とする。ページ数は、受注した商品を構成するページ数である。
【００８２】
図６（ｅ）の場合、注文アイテムＩＤ＝Ｏ００１に対応する商品の商品ＩＤはＳ００１であるから、図６（ａ）の商品テーブル６０１から、この商品の商品名は「チラシ」であり、該商品の１部あたりの価格は「１」であることが分かる。また、該商品の製造プロセスＩＤは「Ｐ００１」であるから、製造プロセステーブル６０２より、該商品の製造プロセス名は「片面印刷」であることが分かる。また、該製造プロセスの工程ＩＤは「Ｏ００１」であるから、工程テーブル６０３より、該製造プロセスの最終工程の工程名は「印刷」であり、該最終工程の前の工程は存在せず、該最終工程の単位作業時間は「１０」であることが分かる。また、該最終工程のリソースＩＤは「Ｐ００１」であるから、リソーステーブル６０４より、該最終工程で使用するリソースのリソース名は「印刷機１号機」であることが分かる。
【００８３】
このようにして、上記の商品テーブル６０１、製造プロセステーブル６０２、工程テーブル６０３、リソーステーブル６０４から、注文情報に含まれているそれぞれの注文アイテムＩＤから対応する情報を取得することができる。然るに作成部３１３は、注文情報に含まれているそれぞれの注文アイテムＩＤについて上記の商品テーブル６０１、製造プロセステーブル６０２、工程テーブル６０３、リソーステーブル６０４から取得した情報を最適化処理に用いる。
【００８４】
次に、上記のガントチャートの構成例について、図９を用いて説明する。図９には、ガントチャート（資源ガントチャート）における印刷機１号機に対応するレーン９００を示している。
【００８５】
９０１は、一日の境界を示す線である。この例では、１２月１２日０：００を示す。９０２は、印刷機１号機のその日の稼働開始時刻を示す線である。この例では、１２月１２日８：００を示す。この時刻以降に工程が割り付けられる。９０３は、印刷機１号機に割り付けられた工程を表す。９０４は、印刷機１号機のその日の稼働終了時刻を示す線である。この例では、１２月１２日１７：００を示す。
【００８６】
このように、本実施形態によれば、計画作成者が設定した精度設定に従い、最適化処理で用いる内部アルゴリズムと精度を決定し、それらを使って計画を作成することで、計画作成者が希望する精度および計算時間で生産計画を作成することができる。
【００８７】
［第２の実施形態］
第１の実施形態では、最適化条件を条件テーブルから取得した。本実施形態では、条件テーブルの代わりに、精度パラメータの値に応じて最適化条件を決定するアルゴリズムを使用することで、ユーザが指定した精度パラメータの値に応じた最適化条件を決定する。本実施形態を含めて、以下の各実施形態及び変形例では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとする。
【００８８】
図１に示した各装置における機能構成例について、図１０のブロック図を用いて説明する。図１０に示す如く、情報処理装置１０５以外の装置については第１の実施形態と同様である。本実施形態に係る情報処理装置１０５は、条件保持部３０７及び条件決定部３０８は有さずに、条件決定部１００１を有する。条件決定部１００１は、精度パラメータの値に応じて最適化条件を決定するアルゴリズムを使用することで、ユーザが指定した精度パラメータの値に応じた最適化条件を決定する。
【００８９】
本実施形態では、上記のステップＳ１０３においては、図１１（ａ）のフローチャートに従った処理を行う。ステップＳ４０１では、条件決定部１００１は、精度パラメータの値に応じて最適化条件を決定するアルゴリズムを使用することで、ユーザが指定した精度パラメータの値に応じた最適化条件を決定する。ステップＳ４０１における処理の詳細について、図１１（ｂ）のフローチャートに従って説明する。
【００９０】
ステップＳ５０１では、条件決定部１００１は、上記のステップＳ３０１と同様にして、バッファメモリ３１１から精度パラメータ（図８（ａ）のＧＵＩ８０１にて設定した精度パラメータ）を読み出す。以下では、ステップＳ５０１でバッファメモリ３１１から読み出した精度パラメータの値をａと表す。
【００９１】
ステップＳ５０２では、条件決定部１００１は、精度パラメータの値ａ＝０であるか否かを判断する。この判断の結果、ａ＝０であれば、処理はステップＳ５０３に進み、ａ≠０であれば、処理はステップＳ５０４に進む。ステップＳ５０３では、条件決定部１００１は、変数ａｌｇｏに文字列「ＲｕｌｅＢａｓｅ」を格納する。
【００９２】
一方、ステップＳ５０４では、条件決定部１００１は、ａ＞０であるか否かを判断する。この判断の結果、ａ＞０であれば、処理はステップＳ５０５に進み、ａ＜０であれば、最適化条件は未決定として処理はステップＳ２０５に進む。最適化条件が未決定の場合、最適化処理は行われない。
【００９３】
ステップＳ５０５では、条件決定部１００１は、変数ａｌｇｏに文字列「ＧＡ」を格納する。ステップＳ５０６では、条件決定部１００１は、変数ｐの値を、以下の式に基づいて求める。
【００９４】
ｐ＝ｎ×１０．０＋ｍ×１．０
ｍ＝ａ
ｎ＝１．０−ａ
このように、本実施形態によれば、ユーザによって指定された精度パラメータに従い、最適化処理で使用する内部アルゴリズムおよび内部アルゴリズムで使用するパラメータを決定し、生産計画を作成することができる。このような構成にしたことで、条件テーブルを参照することなく短い処理時間で内部アルゴリズムおよび内部アルゴリズムで使用するパラメータを決定することができる。
【００９５】
なお、本実施形態では、精度パラメータの値ａが０であるか否か、０よりも大きいか否か、という０を閾値として、精度パラメータの値ａと閾値との大小関係に応じて内部アルゴリズム及び精度を決定していたが、閾値は０に限らない。また、閾値として複数の閾値を設けることで、精度パラメータの値ａが取り得る範囲を複数のサブ範囲に分割し、精度パラメータの値ａがサブ範囲Ａに含まれている場合には、サブ範囲Ａに対応する内部アルゴリズム及び精度を採用するようにしても良い。
【００９６】
［第３の実施形態］
第１の実施形態に係る条件テーブルは、精度パラメータの値ごとに、対応する内部アルゴリズム及び精度を管理するものであった。しかし、条件テーブルの構成はこのような構成に限らず、精度パラメータの値ごとに、更なる情報を管理するようにしても良い。本実施形態では、条件テーブルが精度パラメータの値ごとに、内部アルゴリズム、精度、１つ以上の終了条件を管理するケースについて説明する。終了条件として、精度に応じた終了条件だけではなく、他の終了条件を追加することで、実用上支障のない精度の生産計画を作成できる場合がある。本実施形態では、そのような例として終了条件に、反復回数と収束速度を追加した例を示す。なお、反復回数とは、最適化処理の１反復を何回反復するかを表す値である。また、収束速度とは、内部アルゴリズムの目的関数値が収束する速度を表す。本実施形態では、ｎ回目の反復と（ｎ＋１）回目の反復の目的関数値の差分値を収束速度とする。この差分値が小さいということは、最適化が進み、これ以上計算に時間をかけたとしても目的関数値の改善が少ないと捉え、差分値が予め設定された値以下となったら最適化処理を終了する。
【００９７】
本実施形態に係る条件テーブルの構成例について、図１２を用いて説明する。図１２に例示する条件テーブル１２０１には、精度パラメータ１２０２ごとに、内部アルゴリズム１２０３及び精度１２０４に加え、反復回数１２０５及び収束速度１２０６が登録されている。内部アルゴリズム１２０３は内部アルゴリズム８１３と同様、生産計画を作成するためのアルゴリズムを示す文字列である。「ＳＡ」は、シミュレーテッドアニーリングを示す文字列である。また、精度１２０４は精度８１４と同様、生産計画を作成する際に要求される作成精度である。例えば、ユーザが指定した精度パラメータの値＝０．１であるとする。このとき、対応する精度１２０４は「２０．０」であるから処理時間Ｔは上記の式より、３６００×（１−２０．０／１００）＝２８８０（秒）となる。然るに、ユーザが指定した精度パラメータの値＝０．１であれば、生産計画は「シミュレーテッドアニーリング」に基づいて作成される。このとき最適化処理は、「該最適化処理が開始されてから２８８０秒が経過する」、「最適化処理の反復回数が１０００回に達する」、「最適化処理の収束速度が４００以下となる」の何れか（１つでも良いし複数でも良い）の条件が満たされるまで実行される。
【００９８】
このように、本実施形態によれば、ユーザによって指定された精度に対応する内部アルゴリズムで最適化処理を行う際に、複数の終了条件を用いて終了判定を行うことで、実用的な処理時間と精度で生産計画を作成することができる。
【００９９】
［第４の実施形態］
上記の実施形態では、ユーザに精度パラメータの値を指定させて、該指定させた精度パラメータの値に基づいて最適化処理を行った。これに対し、本実施形態では、ユーザに精度パラメータの値の代わりに、生産計画の作成処理を開始してから終了するまでの時間の上限（生産計画を得るまでの待ち時間）となる上限処理時間を指定させ、該上限処理時間までに処理を終えるようにする方法も考えられる。これは、例えば、急ぎの注文を受注するときに、その注文を加えたときに、納期割れを起こさないかをすぐに確認したい場合に活用できる。あるいは、翌日の稼働日の生産計画作成を前日の定時前にセットするので、生産計画作成に１２時間程度かけられるというような印刷会社においては、生産計画作成の上限処理時間を１２時間に設定し、より最適な生産計画を出力することができる。上記のような利用シーンに対応するため、本実施形態ではユーザに上限処理時間を指定させ、指定された上限処理時間を用いて最適化処理を行う例を示す。
【０１００】
本実施形態では、ステップＳ２０３では、図８（ａ）のＧＵＩ８０１の代わりに、図１３（ａ）のＧＵＩ１３０１をディスプレイ２０４に表示させる。ＧＵＩ１３０１においてインジケータ１３０３は、ユーザが指示部を操作して、該インジケータ１３０３が移動可能な範囲１３３１の左端１３０２から右端１３１０までの間の任意の位置に移動させることができる。ユーザは、上限処理時間をより長くしたい場合、つまり処理時間よりも作成精度を重視したい場合には（上限は１５時間）、インジケータ１３０３をより右端１３１０に近づける。一方、ユーザは、上限処理時間をより短くしたい場合、つまり作成精度よりも処理時間を重視したい場合には（下限は１０秒）、インジケータ１３０３をより左端１３０２に近づける。
【０１０１】
ユーザが指示部を操作してボタン１３０４を指示すると、設定入力部３０６は、インジケータ１３０３の位置に応じた値Ｐを上限処理時間として設定し、該上限処理時間をバッファメモリ３１１に格納する。そして表示部３０４はＧＵＩ１３０１をディスプレイ２０４の表示画面から消去する（ＧＵＩ１３０１を閉じる）。
【０１０２】
ユーザが指示部を操作してボタン１３０４を指示した時点におけるインジケータ１３０３の位置が範囲１３３１の左端１３０２である場合、設定入力部３０６は値Ｐに「１０」を設定する。また、ユーザが指示部を操作してボタン１３０４を指示した時点におけるインジケータ１３０３の位置が範囲１３３１の右端１３１０である場合、設定入力部３０６は値Ｐに「５４０００」を設定する。また、ユーザが指示部を操作してボタン１３０４を指示した時点におけるインジケータ１３０３の位置が、左端１３０２の位置から右端１３１０側に距離Ｌだけ離間した位置である場合、設定入力部３０６は値Ｐに「Ｌ／Ｄ」を設定する。ここで、Ｄは右端１３１０と左端１３０２との間の距離を示す。
【０１０３】
このように、インジケータ１３０３を左右に移動させることで、その位置に応じた値Ｐが得られる。そしてユーザがボタン１３０４を指示することで、そのときのインジケータ８０３の位置に対応する値Ｐが上限処理時間として設定される。
【０１０４】
一方、ユーザが指示部を操作してボタン１３０５を指示すると、表示部３０４はＧＵＩ１３０１を情報処理装置１０５の表示画面から消去する。このとき、上限処理時間に変更はない。
【０１０５】
なお、図１３（ａ）のＧＵＩ１３０１では、インジケータ１３０３を左右に移動させることでその位置に応じた上限処理時間を設定するようにしているが、上限処理時間の設定方法は特定の設定方法に限らない。例えば、ＧＵＩ１３０１にテキストボックスを設け、該テキストボックスに入力した数値（１０〜５４０００の間の任意の数値）を上限処理時間としても良い。また、本実施形態では、上限処理時間は１０〜５４０００の間の整数とするとが、上限処理時間はこの範囲に限るものではない。なお、上限処理時間の初期値としては予めデフォルトの値（例えば０）が設定されているものとする。
【０１０６】
本実施形態に係る条件テーブルの構成例を図１３（ｂ）に示す。図１３（ｂ）の条件テーブル１３１１には、それぞれの上限処理時間に対応する内部アルゴリズム１３１３及び制限時間１３１４が登録されている。内部アルゴリズム１３１３は内部アルゴリズム８１３と同様、生産計画を作成するためのアルゴリズムを示す文字列である。制限時間１３１４は、内部アルゴリズム１３１３の上限実行時間であり、単位は秒である。図１３（ｂ）の例では、上限処理時間＝１１（秒）を設定した場合、「遺伝的アルゴリズム」に基づく生産計画の作成処理を、処理開始から「９秒」が経過するまで行う。
【０１０７】
このように、本実施形態によれば、ユーザからの上限処理時間の指定を受け付け、指定された上限処理時間内で生産計画を作成するようにしたことによって、ユーザが希望する処理時間内で処理時間に応じた精度の生産計画を作成することができる。これによって、ユーザは利用シーンに応じた待ち時間および精度で生産計画を得ることができる。
【０１０８】
＜変形例＞
上記の通り、精度パラメータや上限処理時間の指定方法は特定の指定方法に限らない。上記の他にも、例えば、プルダウンリストで候補の値からユーザに選択させるようにしても良いし、精度パラメータや上限処理時間の値をファイルに記述しておき、それを読み込むようにしても良い。
【０１０９】
また、条件テーブルに精度パラメータ若しくは上限処理時間ごとに登録する情報は上記の情報に限らない。例えば、内部アルゴリズムが遺伝的アルゴリズムであれば、遺伝子の交叉回数、確率的に遺伝子が変化した突然変異回数など、内部アルゴリズム固有の終了条件を登録するようにしても良い。
【０１１０】
また、上記の実施形態では、精度パラメータや上限処理時間に対応する内部アルゴリズムの数を１としたが、２以上であっても良い。精度パラメータや上限処理時間に対応する内部アルゴリズムの数が２以上であれば、該２以上の内部アルゴリズムを適宜切り替えて使用しても良いし、併用するようにしても良いし、順次使うようにしても良い。
【０１１１】
また、上記の実施形態では、条件テーブルは、いずれの内部アルゴリズムも同数のパラメータを持つものとしたが、各内部アルゴリズムが持つパラメータの数は、これに限定するものではなく、内部アルゴリズム毎にパラメータの数を変えるようにしても良い。
【０１１２】
また、上記の実施形態において、条件テーブルの精度は、計算時間で近似するとしたが、これに限定するものではない。精度を算出できる内部アルゴリズムを使用する場合には、精度を計算時間で近似せずに、そのまま精度として終了条件に使用しても構わない。
【０１１３】
また、上記の実施形態において、内部アルゴリズムは、ルールベースアルゴリズム、遺伝的アルゴリズム、シミュレーテッドアニーリングとしたが、内部アルゴリズムはこれに限定するものではない。タブーサーチ、貪欲法、混合整数線形計画法などスケジューリング問題に対して解を得ることができるアルゴリズムであれば、どのようなアルゴリズムを使用しても構わない。また、上記の実施形態において、最適化問題を最小化問題として説明したが、最大化問題として解くのでも構わない。また、上記の実施形態では、商品の一例として印刷物を挙げたが、他の商品を対象としても良い。
【０１１４】
また、上記の装置は、複数の機器（例えば、ホストコンピュータ、インタフェース機器、撮像装置、webアプリケーション等）から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。また、以上説明した実施形態や変形例は、その一部若しくは全部を適宜組み合わせて使用しても構わない。
【０１１５】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１１６】
３０６：設定入力部  ３０７：条件保持部  ３０８：条件決定部  ３１２：製造情報保持部  ３１３：作成部
【図１】
2018190417.tif 000003
【図２】
2018190417.tif 000004
【図３】
2018190417.tif 000005
【図４】
2018190417.tif 000006
【図５】
2018190417.tif 000007
【図６】
2018190417.tif 000008
【図７】
2018190417.tif 000009
【図８】
2018190417.tif 000010
【図９】
2018190417.tif 000011
【図１０】
2018190417.tif 000012
【図１１】
2018190417.tif 000013
【図１２】
2018190417.tif 000014
【図１３】
2018190417.tif 000015