(57)【要約】【課題】料理の常識に基づく順序条件を考慮したスケジューリングを行うことが可能な調理手順生成装置、調理手順生成方法、及び調理手順生成プログラムを提供すること。【解決手段】入力されたレシピに基づいて調理手順を生成する調理手順生成装置において、調理手順の１作業単位分の単位レシピであって、前記単位レシピを開始するのに必要な第１の中間成果物と、調理に必要な資源と、調理に必要な時間と、調理によって生成される第２の中間成果物とが記述された開始条件付部分レシピを少なくとも１つ含むレシピが記述されたレシピデータベース（１０５）と、前記レシピデータベースに記憶された単位レシピに、当該単位レシピが終了した時点で開始すべき単位レシピを指定する順序制約登録部（１０３）と、前記入力されたレシピと前記調理順序の制約に基づいて調理のスケジューリングを行うスケジュール生成部（１０２）とを備えた。【選択図】      図１
2007133582.tif 000002
【特許請求の範囲】
【請求項１】
入力されたレシピに基づいて調理手順を生成する調理手順生成装置において、
調理手順の１作業単位分の単位レシピであって、前記単位レシピを開始するのに必要な第１の中間成果物と、調理に必要な資源と、調理に必要な時間と、調理によって生成される第２の中間成果物とが記述された開始条件付部分レシピを少なくとも１つ含むレシピが記述されたレシピデータベースと、
前記レシピデータベースに記憶された単位レシピに、当該単位レシピが終了した時点で調理を開始すべき単位レシピを指定する調理順序制約登録部と、
前記入力されたレシピと前記調理順序の制約に基づいて調理のスケジューリングを行うスケジュール生成部とを具備することを特徴とする調理手順生成装置。
【請求項２】
請求項１に記載の調理手順生成装置において、前記順序制約登録部で登録された調理順序の制約に基づいて、前記入力されたレシピから下ごしらえ部分に相当する少なくとも１つの単位レシピを抽出する下ごしらえ認識部を更に具備することを特徴とする調理手順生成装置。
【請求項３】
請求項２に記載の調理手順生成装置において、前記下ごしらえ部分を、提示するスケジュール出力部を更に具備することを特徴とする調理手順生成装置。
【請求項４】
請求項２に記載の調理手順生成装置において、前記スケジュール生成部は、前記下ごしらえ部分について、その部分のみのスケジューリングを行うことを特徴とする調理手順生成装置。
【請求項５】
請求項２に記載の調理手順生成装置において、前記スケジュール生成部は、前記下ごしらえ部分に関し、前記下ごしらえによる前記第２の中間成果物が完成した時点からのスケジューリングを行うことを特徴とする調理手順生成装置。
【請求項６】
請求項１に記載の調理手順生成装置において、
前記調理順序制約登録部は、前記単位レシピが終わった直後に着手しなければいけない単位レシピを指定しないような単位レシピの記述を許し、
前記スケジュール生成部は、着手時点が指定されていない単位レシピの調理手順を前記第１の中間成果物が生成された後の任意のタイミングで当該単位レシピを実行するようにスケジューリングすることを特徴とする調理手順生成装置。
【請求項７】
調理手順の１作業単位分の単位レシピであって、前記単位レシピを開始するのに必要な第１の中間成果物と、調理に必要な資源と、調理に必要な時間と、調理によって生成される第２の中間成果物とが記述された単位レシピを少なくとも１つ含むレシピを入力し、
前記入力された単位レシピに、当該単位レシピが終了した時点で開始すべき単位レシピを指定し、
前記入力されたレシピと前記調理順序の制約に基づいて調理のスケジューリングを行うことを具備することを特徴とする調理手順生成方法。
【請求項８】
入力されたレシピに基づいて調理手順を生成する調理手順生成プログラムにおいて、
調理手順の１作業単位分の単位レシピであって、前記単位レシピを開始するのに必要な第１の中間成果物と、調理に必要な資源と、調理に必要な時間と、調理によって生成される第２の中間成果物とが記述された単位レシピを少なくとも１つ含むレシピを入力し、
前記入力された単位レシピに、当該単位レシピが終了した時点で開始すべき単位レシピを指定し、
前記入力されたレシピと前記調理順序の制約に基づいて調理のスケジューリングを行うことを具備することを特徴とする調理手順生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、調理手順のスケジューリング生成作業を支援する調理手順生成装置、調理手順生成方法、及び調理手順生成プログラムに関する。
【背景技術】
【０００２】
レシピは、料理の手順を示したものであるが、上から順に書いてあることを実行した場合でも料理が出来上がるような書き方になっていない場合が多い。また、そのような書き方になっている場合でも、複数の料理を同時に並行して調理する際には、どのような手順で調理を行えばよいのか経験の浅い調理者にはわからない。
【０００３】
この問題を解決するために、特許文献１では、基本的な調理手順スケジューリングに関して、料理ごとに調理作業を不可分な作業単位に分割した作業モジュールについて、作業主体が調理器であって作業種類が同じ作業モジュールを並行して調理可能に割付ける。このため、調理器で複数の作業モジュールを並行して実行することができる。しかし、すべての作業単位に対する順序を変更することができないので、スケジューリングの自由度は低い。また、特許文献１では、料理の中間成果物に関する概念がないので、その再利用をすることや、手順毎に使用する資源の変更を行うことができない。
【０００４】
また、特許文献２は、学校給食や社員食堂等のように決められた献立を大量調理するにあたり、大量調理を円滑に行うための調理作業工程表を効率良く作成するためのものであって、下処理工程及び調理工程で使用する使用機器の制約を考慮した各工程の配置換え（マッピング）を行っている。しかし、特許文献２では、特許文献１と同様に調理手順を変更することもなく、更に、料理の中間成果物に関する概念がないので、その再利用をすることや、手順毎に使用する資源の変更を行うことができない。また、並列して実行する複数の料理のスケジューリングの作成を行うこともできない。
【特許文献１】特開２００３−１４１２３４号公報
【特許文献２】特開２００５−２５０８５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のように従来技術では、料理を行う上でレシピに記入される調理手順は、作業の順序に従って行っていくことが前提となっているので、調理時間等の観点からすれば、好適なスケジュールを作成できるとは限らない。更に、レシピに記入された調理手順以外に、料理の常識から見ると順序関係がある場合がある（これは、一般のレシピ記述に書かれていない）。たとえば、ソースに絡めたスパゲティを作る際には、「絡める」作業はスパゲティが茹った直後に実施しなければいけないという料理の知識があるが、中間成果物の待ち合わせのみを考慮してスケジューリングを行うと、スパゲティを茹でた後にソースの作成に入るというスケジュールを生成するかも知れず、料理の常識的順序条件違反を犯す恐れがある。熟練者はこのような知識を常識として持っているが、経験の浅い調理者は持っていないため、失敗の理由になりがちである。
【０００６】
本発明は、料理の常識に基づく順序条件を考慮したスケジューリングを行うことが可能な調理手順生成装置、調理手順生成方法、及び調理手順生成プログラムを提供することを目的とする。それと同時に、調理手順のうち食事の直前に行わなければならない部分とそうでない部分（後者はいわゆる下ごしらえ）との区別を自動認識し、より柔軟な調理計画の立案を可能とする調理手順生成装置、調理手順生成方法、及び調理手順生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の局面に係る発明は、入力されたレシピに基づいて調理手順を生成する調理手順生成装置において、調理手順の１作業単位分の単位レシピであって、前記単位レシピを開始するのに必要な第１の中間成果物と、調理に必要な資源と、調理に必要な時間と、調理によって生成される第２の中間成果物とが記述された開始条件付部分レシピを少なくとも１つ含むレシピが記述されたレシピデータベースと、前記レシピデータベースに記憶された単位レシピに、当該単位レシピが終了した時点で開始すべき単位レシピを指定する順序制約登録部と、前記入力されたレシピと前記調理順序の制約に基づいて調理のスケジューリングを行うスケジュール生成部とを具備することを特徴とする。なお、本発明は、装置の発明に限らず、当該装置によって実現される方法の発明やプログラムの発明としても成立する。
【発明の効果】
【０００８】
本発明によれば、ジョブショップスケジューリングの考え方に基づくスケジューラが、料理の常識に基づく順序条件を考慮したスケジューリングを行える。また、下ごしらえ部分を自動認識することにより、より柔軟な調理計画を立案することができる。
【０００９】
中間成果物の待ち合わせのみならず、料理の常識的順序条件違反を起こさないスケジューリングができる。また、下ごしらえ部分を認識することにより、より柔軟な調理計画を立案することができる。
【発明を実施するための最良の形態】
【００１０】
図面を参照して本発明の実施の形態を説明する。本発明では、レシピの記述にあたり、１つの調理手順で生成された半完成品（本明細書及び以下の実施形態において、「中間成果物」と称する）の記述を導入し、レシピの料理手順と中間成果物の記述から複数の料理のスケジューリングの作成を支援するようにしている。なお、半完成品は、詳細は後述するように、例えば、砂抜きをしたアサリ、みじん切りしたパセリなどが相当する。なお、全ての調理の結果として生成された完成品（最終成果物）についても、説明の便宜上、本明細書では、中間成果物と称する。
【００１１】
図１は、本発明の一実施形態に係る調理手順生成装置の概略構成を示す図である。本実施形態に係る調理手順生成装置は、メニュー入力部１０１と、スケジュール生成部１０２と、順序制約登録部１０３と、スケジュール出力部１０４と、資源データベース（ＤＢ）１０５と、下ごしらえ認識部１０６と、中間成果物登録部１０７と、レシピデータベース（ＤＢ）１０８とを備えている。なお、図１では、調理手順生成装置を１つの装置として記載しているが、各構成要素がネットワークを介して接続されて、１つのシステムとして構成されていても良く、例えば、当該システムをサーバ・クライアントモデルで構築することも可能である。
【００１２】
上記の構成において、メニュー入力部１０１は、調理すべき料理を指定する。スケジュール生成部１０２は、メニューに対応する調理手順を生成する。順序制約登録部１０３は、詳細は後述する部分レシピの実行順序に対する制約を登録する。スケジュール出力部１０４は、スケジュール生成部１０２で生成された調理手順を出力する。資源ＤＢ１０５は、調理に必要となる資源（例えば調理者や調理道具）について記述されたデータを保持している。図２は、資源ＤＢ１０５に蓄積される資源の記述例を示す図である。図２に記述されている資源は、調理者（cook）１人、まな板（board）１個、包丁（knife）１本、シンク（sink）１つ、ボール（bowl）２個、フライパン（pan）２個、パスタ鍋（ppan）１個、コンロ２個、ざる（sieve）１個となっている。下ごしらえ認識部１０６は、レシピを分析して下ごしらえに相当する部分を認識する。中間成果物登録部１０７は、部分レシピで生成される中間成果物を登録する。
【００１３】
レシピＤＢ１０９は、所定の形式で記述されたレシピを蓄積する。図４は従来のレシピの記述例を示す図である。これに対して、本実施形態では、例えば、図３に示すようなレシピが記述される。なお、図３と図４に記述されたレシピは、ほぼ一致している。しかし、図３における具体的な記述例として、例えば、部分レシピ３０１の記述例は、  
lr(7, [xprawn,xclam],  
[['ワイン蒸し準備', [cook,pan,heat], [2]],  
['ワイン蒸し', [pan,heat], [5]]], [wine-steamed], []).  
となっている。なお、上記の「部分レシピ」において、例えば、wine-steamedという中間成果物を生成するための開始条件としてxprawn及びxclamが用意されている必要がある。このため、中間成果物（最終成果物も含む）を生成するための本発明の一実施形態における部分レシピを、特に「開始条件付部分レシピ」と呼ぶ。この場合において、レシピＤＢ１０９に記述されたwine-steamedの部分レシピでは、wine-steamedの生成に必要な中間成果物はxprawn, xclam、必要とする資源はcook, pan, heat、作業時間は２分であり、さらにpan, heatを５分間使用することが記述されている。なお、部分レシピとは、全体のレシピに対して、調理手順の１作業単位分のレシピ（例えば、野菜を切る、洗う、いためるなどの個々の作業であって、「単位レシピ」と称する場合もある）をいうものとする。上記の記述例において、各記載の詳細は以下の通りである。  
lrは、１つの単位レシピを示す識別子である。また、lrに続く7は単位レシピの識別番号であり、[xprawn, xclam]は当該単位レシピを開始するために必要な材料（本明細書では「中間成果物」と称する）を示し、[]の場合は、必要な中間成果物が不要であることを示し、この場合には、殻と背ワタをとったえび（xprawn）と砂抜きをしたあさり（xclam）が必要であることを示す。  
２行目と３行目の記述は、調理方法を示しており、それぞれ、'ワイン蒸し準備'と'ワイン蒸し'を行うことが記載されている。この調理方法は、調理に必要な資源と、調理に要する時間と、調理による成果物（中間成果物）が記述される。具体的には、  
'ワイン蒸し準備' では、cook, pan, heatの３つの資源を利用し、調理に２分間要することを示している。次に、'ワイン蒸し'には、pan, heatの２つの資源を利用し、調理に５分かかることを表す。そして、'ワイン蒸し'により、wine-steamedという中間成果物が生成されたことを示す。
【００１４】
次に、図３の部分レシピ３０２について説明する。基本的な記述は、部分レシピ３０１と同様である。部分レシピ３０２は識別番号１０のレシピを示しているが、４行目の１地番最後に、［１１］という記述を追加している。この［１１］の記述は、識別番号１０のレシピ、すなわち、スパゲッティの茹で上げが終了したらその直後に識別番号１１のレシピ、すなわち、スパゲッティのソースをなじませ、味を調えてパセリを散らすというレシピ、を実行するという手順を示している。これにより、スパゲッティを茹で上げたらすぐにソースをなじませるという常識的な手順を提示することができる。
【００１５】
図５は、上記のレシピＤＢ１０９に記述された部分レシピをツリー形式で示した図である。図５に示すように、中間成果物として、xprawn、xocto、xclam、xparsley、xchili、xgarlic、hotwater、wine-steamed、sauce、xspa、ebitakoasarispaがあるものとする（ebitakoasarispaは最終成果物である）。ここで、xprawn、xocto、xclam、xparsley、xchili、xgarlic、hotwaterは、他の中間成果物を利用することなく生成することが可能である。すなわち、利用する中間成果物データがヌルデータになる。ところが、中間成果物wine-steamedを得るためには、xprawn、xclamを利用し、更に、中間成果物sauceを得るためには、xocto、xchili、xgarlic、wine-steamedを利用する。従って、例えば、中間成果物sauceを得るためには、xocto、xchili、xgarlic、wine-steamedを用意しておく必要があるので、中間成果物xocto、xchili、xgarlic、wine-steamedの生成手順の後に、中間成果物sauceを生成する必要がある。このように、レシピＤＢ１０９では、ある中間成果物を生成するために必要な中間成果物を定義する（すなわち、条件を定める）必要があるので、該中間成果物を生成するためのレシピを上記のように、「開始条件付部分レシピ」と称している。
【００１６】
図６を参照して、上記のように構成された本発明の一実施形態に係る調理手順生成装置の動作の流れを説明する。図６は、本実施形態に係る調理手順生成装置の動作の流れを示すフローチャートである。  
メニュー入力部１０１を介して、調理すべき料理の入力を行う（ステップ６０１）。この場合において、レシピはユーザにより入力されても良いし、装置がネットワークに接続されているのであれば、ネットワークを介して所望のレシピを入力しても良い。レシピが入力されると、レシピ中に記述されている資源が資源ＤＢ１０５から選択される（ステップ６０２）。例えば、部分レシピ３０１の記述に対しては、調理者、シンク、フライパンの記述が資源ＤＢ１０５から選択される。
【００１７】
レシピに記述された資源が選択されたら、レシピＤＢ１０９を参照して、スケジュール生成部１０２によりスケジュールが生成される（ステップ６０３）。スケジュール生成部１０２は、このスケジュール生成処理において、ステップ６０２で選択した資源の重複が起こらないようレシピ手順に沿って中間成果物生成のためのスケジュール作成を行う。更に、スケジュール生成部１０２は、中間成果物の待ち合わせが発生しないよう、資源、手順のすべての組み合わせを行い最短のレシピスケジュールを生成する。組み合わせを行う回数、レシピスケジュール時間、レシピスケジュール生成時間などの制限を設けることもできる。スケジュールの生成が終わると、スケジュールの出力を行ってユーザに調理手順を提示する（ステップ６０５）。
【００１８】
図７を参照してステップ６０３のレシピスケジュール生成処理の手順を詳細に説明する。図７は、ステップ６０３のレシピスケジュール生成処理のフローチャートである。本処理では、入力されたメニューに対し、それに対応する部分レシピをレシピＤＢからとりだし、各部分レシピを実行するのに必要な中間成果物（以下、「開始条件成果物」と称する）と、手順を実行するために必要な資源の空きを確認しながら、具体的なスケジュールの生成を行う。
【００１９】
まず、選んだメニューに対応する部分レシピ群を作業領域にロードする（ステップ７０１）。このときに、ある時点までに完成している（中間）成果物の集合を保持する変数を空集合で初期化する（ステップ７０２）。そして、具体的な調理手順を示すスケジュールの標準的な表現方法であるガントチャートを空に初期化する（ステップ７０３）。ガントチャートとは、縦軸に資源、横軸に時間を取り、どの時間にどの資源がどの作業によって占有されているかを表した表である。その例を詳細は後述する図８に示す。これらのステップ７０１からステップ７０３が初期化のステップである。
【００２０】
初期化が終了したら、現在までに完成している中間成果物に基づき、着手可能な部分レシピを非決定的に一つ選択する（ステップ７０４）。ここで、着手可能な部分レシピとは、開始条件成果物が、ある時点までに完成している（中間）成果物の集合に含まれるものである。初期的には、完成している（中間）成果物の集合は空であるから、開始条件成果物が空である部分レシピが選ばれることになる。次に、ステップ７０４で選択された部分レシピに含まれる作業に関して、それらが必要とする資源と、所要時間に基づき、ガントチャート上でそれらを確保できる最も左に配置する（ステップ７０５）。このとき、この部分レシピをその部分レシピの開始条件成果物ができる以前に配置してはならない。そして、ステップ７０４で選択された部分レシピの出力成果物を完成している（中間）成果物の集合に加え（ステップ７０６）、ステップ７０４で選択された部分レシピを作業領域から除去する（ステップ７０７）。ここで、ステップ７０６とステップ７０７が、部分レシピのスケジューリングの完了に伴う処理である。
【００２１】
そして、作業領域に部分レシピが残っているかをチェックする（ステップ７０８）。もし部分レシピが残っていなければ、所望のメニューが完成しているはずであり、現時点でのガントチャートが実行可能なスケジュールとなっているはずである。もし残っている部分レシピがあれば、まだメニューは完成していないので、ステップ７０４に戻り、スケジューリングの終了していない部分レシピのスケジューリングを行う。ステップ７０８で実行可能スケジュールができたときには、このスケジュールを、これまでの「最良な」スケジュールと比較する（ステップ７０９）。スケジュールの良さは、目的に合わせてさまざまに定義可能であり、典型的には総調理時間の短さである。しかし、スケジュールの良さとして、他にも鍋を使う数の少なさやいくつかの指標の組み合わせなどであってもよい。もし、ステップ７０８で完成したスケジュールがこれまでの「最良な」スケジュールより良いならば、このスケジュールを新たな最良スケジュール（候補スケジュール）として記憶する（ステップ７１０）。初期的には、最初に作られた実行可能スケジュールが候補スケジュールとなる。
【００２２】
次に、さらに良いスケジュールの探索を進めるかどうかの判定を行い（ステップ７１１）、さらに良いスケジュールの探索を行うのであれば、ステップ７０１に戻り、そうでなければ、ステップ７１２に進み、その時点の候補スケジュールをユーザに提示する（ステップ７１２）。ここで、あるメニューに対する実行可能スケジュールは一般には複数存在し、本実施形態では、実行可能スケジュールはステップ７０４における選択の非決定性により探索される。この非決定性は、たとえばプログラミング言語Ｐｒｏｌｏｇなどで採用されているバックトラッキングと呼ばれる技術により決定的に模擬することができる。ステップ７１１における判定は、バックトラッキングによりすべての可能性を尽くしたことをもって終了としても良いし、このステップに到達した回数をカウントしてそれが所定の閾値を越えた場合に終了としても良い。
【００２３】
以上の具体的な流れを、図３のレシピを例にとって詳細に説明する。  
入力されたメニューに対応する部分レシピ群が図３である。初期化手続き５０１〜５０３を行った後、スケジュール生成部１０２が、ステップ７０４で開始条件成果物が空である部分レシピとしてたとえば識別番号３の部分レシピを選ぶ。ステップ７０５において、作業「あさり砂吐準備」を、ガントチャート上で資源［ｃｏｏｋ、ｂｏｗｌ］を２分間占有できるもっとも左位置、すなわち０分の所に配置する。次に、作業「あさり砂吐」をガントチャート上で資源［ｃｏｏｋ］を２３分占有できるもっとも左位置、すなわち２分の所に配置する。そして、出力成果物であるｘｃｌａｍを完成した中間成果物に加え、識別番号３の部分レシピの部分レシピを作業領域から除去する。作業領域にはまだ部分レシピがある（ステップ７０８）ので、ステップ７０４に戻り、たとえば識別番号１の部分レシピを選ぶ。ステップ７０５において、作業「えびは尾を残し、殻と背ワタを取る」を、ガントチャート上で資源［ｃｏｏｋ、ｋｎｉｆｅ、ｓｉｎｋ、ｂｏａｒｄ］を５分間占有できるもっとも左位置、すなわち２分の所に配置する。出力成果物であるｘｐｒａｗｎを完成した中間成果物に加え、識別番号１の部分レシピの部分レシピを作業領域から除去する。このときの、ガントチャートを図８に示す。図８は、図３の部分レシピ３０１までのスケジュール生成後の例を示すガントチャートであって、図８では開始条件成果物が空である線形部分レシピについてスケジュールを行った結果となっている。
【００２４】
そして、作業領域にはまだ部分レシピがある（ステップ７０８）ので、ステップ７０４に戻り、同様に識別番号２、４、５、６の部分レシピを選んで、上記と同様に、スケジュールを進めていく。これらの部分レシピで完成した中間成果物は、xprawn、xclam、xocto、xparsley、xchili、xgarlicとなっている。作業領域にはまだ部分レシピがある（ステップ７０８）ので、ステップ７０４に戻り、開始条件成果物が完成した中間成果物に含まれる部分レシピとしてたとえば部分レシピ３０１を選ぶ。ステップ７０５において、作業「ワイン蒸し準備」を、ガントチャート上で資源［ｃｏｏｋ、ｐａｎ、ｈｅａｔ］を２分間占有でき、［ｘｐｒａｗｎ、ｘｃｌａｍ］完成後のもっとも左位置、すなわち３０分の所に配置する。以降同様にスケジューリングを進めていく。このときのガントチャートが図９である。図９は、図３の部分レシピ３０１のスケジュール生成結果の例を示すガントチャートであって、スケジュールを生成した結果、部分レシピ３０１のワイン蒸し準備では調理者、鍋、コンロを利用して２分間で準備を行い、ワイン蒸しは鍋とコンロで５分間作業を行う作業が追加されている。そして、図１０は、メニュー完成時のガントチャートの例を示す図である。
【００２５】
図４に示すようなこれまでに利用されている記述方法によるレシピの例では、レシピ手順の生成を行う場合、１つの手順が完成すると次の手順に移行し作業を行い、さらに次の手順に移行し作業を行うという手順になる。経験が浅い調理者は、レシピに記述されている順番に作業を行うという認識があり、部分レシピ４０１の手順を行った後、部分レシピ４０２の手順を行う。しかし、部分レシピ４０２で行う手順を先に行うことによりアサリの砂抜きを行っている間に部分レシピ４０１を行うことで時間の短縮が図られることが図９でわかる。従って、上記の実施形態に示すようなレシピＤＢ１０９を用意することにより、資源の重複を解消し、中間成果物を生成しながらレシピのスケジューリングを行うため、ユーザにとって最適なスケジュールを提供することが出来る。
【００２６】
しかしながら、上記の実施形態で示した中間成果物の待ち合わせのみを考慮したスケジューリングでは、識別番号９、１０の部分レシピを選んだ後に、識別番号１〜８を選び、識別番号１１に進むというスケジューリングを行う可能性がある。すなわち、スパゲティが茹で上がってからソースの製作に着手し、最後に和えるというスケジューリングを提示する可能性がある。このスケジュールは、スケジューリングの点からは実行可能なスケジュールであるが、ソースに絡めたスパゲティを作る際には、「絡める」作業はスパゲティが茹った直後に実施しなければいけないという料理の知識を考慮すると、料理の常識的順序条件違反を犯していることになる。これを防ぐため、本実施形態では、図３の部分レシピ３０２に示すように、ある部分レシピの終了後にすぐに着手しなければいけない部分レシピを明示する。具体的には、部分レシピ３０２の最後に、部分レシピ３０２の実行後に識別番号１１の部分レシピを直ちに選択しなければいけないという条件を、順序制約登録部１０３により、例えば［１１］という記述で付加している。これにより、上記の料理の常識的順序条件違反を犯しているスケジュールの生成を防ぐことができる。
【００２７】
上記の制約を用いると、料理完成に向けて「中断することなく直列的に作業しなければいけない部分レシピの集合」を料理ごとに定めることができる。このことは、この集合に含まれない部分レシピは事前に実施しておくことができるということを意味する。このように事前に実施しておくことができる部分とは、下ごしらえにあたる部分になる。従って、これを明示して、別レシピとしてレシピＤＢ１０９に格納しておくことにより、パーティ料理の下ごしらえを前日から始めたり、１週間分のお弁当の下ごしらえを休日にするなど、より柔軟な調理計画を立案することができる。
【００２８】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施形態に係る調理手順生成装置の概略構成を示す図。
【図２】資源ＤＢ１０５に蓄積される資源の記述例を示す図。
【図３】本発明の実施形態に係るレシピの記述例を示す図。
【図４】従来のレシピの記述例を示す図。
【図５】レシピＤＢ１０９に記述された部分レシピをツリー形式で示した図。
【図６】本実施形態に係る調理手順生成装置の動作の流れを示すフローチャート。
【図７】ステップ６０３のレシピスケジュール生成処理のフローチャート。
【図８】図３の部分レシピ３０１までのスケジュール生成後の例を示すガントチャート。
【図９】図３の部分レシピ３０１のスケジュール生成結果の例を示すガントチャート。
【図１０】メニュー完成時のガントチャートの例を示す図。
【符号の説明】
【００３０】
１０１…メニュー入力部
１０２…スケジュール生成部
１０３…順序制約登録部
１０４…スケジュール出力部
１０５…資源データベース
１０６…下ごしらえ認識部
１０７…中間成果物登録部
１０８…レシピデータベース
【図１】
2007133582.tif 000003
【図２】
2007133582.tif 000004
【図３】
2007133582.tif 000005
【図４】
2007133582.tif 000006
【図５】
2007133582.tif 000007
【図６】
2007133582.tif 000008
【図７】
2007133582.tif 000009
【図８】
2007133582.tif 000010
【図９】
2007133582.tif 000011
【図１０】
2007133582.tif 000012