IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社フレアサービスの特許一覧 ▶ 株式会社調和技研の特許一覧

特許7470328献立作成プログラム、献立作成システム、献立作成装置及び献立作成方法
<>
  • 特許-献立作成プログラム、献立作成システム、献立作成装置及び献立作成方法 図1
  • 特許-献立作成プログラム、献立作成システム、献立作成装置及び献立作成方法 図2
  • 特許-献立作成プログラム、献立作成システム、献立作成装置及び献立作成方法 図3
  • 特許-献立作成プログラム、献立作成システム、献立作成装置及び献立作成方法 図4
  • 特許-献立作成プログラム、献立作成システム、献立作成装置及び献立作成方法 図5
  • 特許-献立作成プログラム、献立作成システム、献立作成装置及び献立作成方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-10
(45)【発行日】2024-04-18
(54)【発明の名称】献立作成プログラム、献立作成システム、献立作成装置及び献立作成方法
(51)【国際特許分類】
   G06Q 50/10 20120101AFI20240411BHJP
【FI】
G06Q50/10
【請求項の数】 13
(21)【出願番号】P 2021142484
(22)【出願日】2021-09-01
(65)【公開番号】P2023035550
(43)【公開日】2023-03-13
【審査請求日】2023-11-10
【早期審査対象出願】
(73)【特許権者】
【識別番号】521387062
【氏名又は名称】株式会社フレアサービス
(73)【特許権者】
【識別番号】510058391
【氏名又は名称】株式会社調和技研
(74)【代理人】
【識別番号】110001841
【氏名又は名称】弁理士法人ATEN
(72)【発明者】
【氏名】西村 達一郎
(72)【発明者】
【氏名】但野 友美
【審査官】深津 始
(56)【参考文献】
【文献】特開2019-082808(JP,A)
【文献】特開2013-050809(JP,A)
【文献】加島智子, 折登由希子, 山本久志,多期間献立計画問題に対する食育評価モデルの提案と分布推定アルゴリズムによる最適化,電気学会論文誌C,日本,一般社団法人電気学会,2013年08月01日,第133巻, 第8号,第1576-1585ページ,ISSN:0385-4221
【文献】加島智子, 折登由希子, 染谷博司,献立支援システムにおける時系列献立計画問題の最適化:順列表現型GAによる解の検証,電気学会研究会資料,日本,一般社団法人電気学会,2017年03月23日,第1-6ページ
【文献】高橋淳, 片桐英樹,組合せ最適化に基づいた現場の制約を考慮した学校給食の献立作成,第64回 日本経営システム学会全国研究発表大会講演論文集 統一論題 サイバーセキュリティと経営システム,2020年05月23日,第204-205ページ
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 -G06Q 99/00
(57)【特許請求の範囲】
【請求項1】
複数日分の食事からなる献立を作成する献立作成システムとして1つ又は複数のコンピュータを機能させるプログラムであって、
前記献立作成システムが、
料理の特性を示す複数の特性値を複数の料理のそれぞれと関連付けて示す料理特性データに基づいて、1食ごとに複数の料理からなるJ食分(J:2以上の自然数)の食事の内容を、前記複数の特性値の少なくとも一部に関する制約条件である第1の制約条件を1食ごとに満たすように決定するJ食決定手段と、
前記J食決定手段が決定したJ食分の食事の内容と前記料理特性データとに基づいて、1日分の食事を構成するM食(M:M<Jを満たす自然数)に含まれる1食ごとの食事を前記J食分の食事から選択して1日分の食事の内容を導出する1日食導出手段と、
前記1日食導出手段に1日分の食事の内容を導出させることをN回(N:2以上の自然数)繰り返すことでN日分の食事の内容を導出するN日食導出手段とを備えており、
前記1日食導出手段が、
前記1食ごとの食事を選択するに当たり、その食事とそれより過去の食事とを含む複数食分の食事の内容が、前記複数の特性値の少なくとも一部に関する第1の条件を満たす内容に近いほど大きく又は小さくなる第1の目的関数が最大又は最小となるように選択することを特徴とする献立作成プログラム。
【請求項2】
前記第1の条件が、前記第1の制約条件とは異なる前記制約条件である第2の制約条件を含む複数の個別条件からなり、
前記第1の目的関数が、前記複数の個別条件のそれぞれについて、食事の内容がその条件を満たす内容に近いほど大きく又は小さくなる関数であり、
前記1日食導出手段が、前記第2の制約条件については、前記複数の個別条件における他の条件のいずれよりも、条件を満たさない場合に前記第1の目的関数の値を大きく変動させるように前記第1の目的関数を算出することを特徴とする請求項1に記載の献立作成プログラム。
【請求項3】
前記献立作成システムが、前記N日食導出手段が導出した前記N日分の食事の内容を修正する第1のN日食修正手段を備えており、
前記第1のN日食修正手段が、
前記N日食導出手段が導出したN日分の食事の内容が、前記複数の特性値の少なくとも一部に関するN日分の食事における前記制約条件である第3の制約条件を満たさない場合に、前記N日分の食事から、前記第3の制約条件を成立しにくくする1食であるバッド1食を抽出すると共に、前記バッド1食を、前記J食分の食事のうち、前記第3の制約条件を前記バッド1食より成立しやすくする食事に変更することを特徴とする請求項1又は2に記載の献立作成プログラム。
【請求項4】
前記第1のN日食修正手段が、第2の目的関数に基づいて前記N日分の食事の内容を修正するものであり、
前記第2の目的関数が、N日分の食事の内容について、前記複数の特性値の少なくとも一部に関する第2の条件を満たす内容に近いほど大きく又は小さくなる関数であり、
前記第1のN日食修正手段が、
前記N日食導出手段が導出した前記N日分の食事について、前記バッド1食を、前記J食分の食事のうち、前記第3の制約条件を前記バッド1食より成立しやすくする第1~第Kの食事(K:2以上の自然数)に変更したそれぞれの場合における前記第2の目的関数を算出し、その算出結果を互いに比較した結果に基づいて前記N日分の食事を修正することを特徴とする請求項3に記載の献立作成プログラム。
【請求項5】
前記献立作成システムが、前記N日食導出手段が導出した前記N日分の食事の内容を修正する第2のN日食修正手段を備えており、
前記第2のN日食修正手段が、第2の目的関数に基づいて前記N日分の食事の内容を修正するものであり、
前記第2の目的関数が、N日分の食事の内容について、前記複数の特性値の少なくとも一部に関する第2の条件を満たす内容に近いほど大きく又は小さくなる関数であり、
前記第2のN日食修正手段が、
前記N日分の食事から、前記制約条件を満たさない食事が存在する日を取得すると共に、当該日の食事に関して前記制約条件が満たされるように、当該日の食事に含まれる少なくともいずれかの料理を前記複数の料理に含まれる他の料理と入れ替えたそれぞれの場合における前記第2の目的関数を算出し、その算出結果を互いに比較した結果に基づいて前記N日分の食事を修正することを特徴とする請求項1又は2に記載の献立作成プログラム。
【請求項6】
前記複数の特性値が、前記料理の特性として前記料理に使用する食材を示す値を含んでおり、
前記献立作成システムが、前記第1の制約条件を含む複数の前記制約条件を要素とする第1の制約条件群に基づいて前記N日食導出手段が導出した前記N日分の食事を展開元の献立として、前記第1の制約条件群とは一部の要素が異なる複数の前記制約条件からなる第2の制約条件群に基づいて、前記展開元の献立から別の献立へと展開する献立展開手段を備えており、
前記献立展開手段が、
前記第2の制約条件群に含まれる前記制約条件の少なくともいずれかを満たさない食事を前記展開元の献立から抽出する違反食事抽出手段と、
前記抽出手段が抽出した食事に含まれる料理に使用する食材と類似した食材を使用する複数の候補料理を前記複数の料理から抽出する候補料理抽出手段と、
前記展開元の献立に関して、前記第2の制約条件群に含まれる前記制約条件を満たす内容に近いほど大きく又は小さくなる第3の目的関数を算出する展開前算出手段と、
前記候補料理抽出手段が抽出した前記複数の候補料理のそれぞれについて、前記違反食事抽出手段が抽出した食事中の料理を前記候補料理と入れ替えた後の前記展開元の献立に関して、前記第2の制約条件群に含まれる前記制約条件を満たす内容に近いほど大きく又は小さくなる第4の目的関数を算出する展開後算出手段と、
前記複数の候補料理から、前記展開前算出手段が算出した前記第3の目的関数より前記展開後算出手段が算出した前記第4の目的関数が大きく又は小さくなる前記候補料理を1つ以上抽出する好適候補料理抽出手段とを有していることを特徴とする請求項1~5のいずれか1項に記載の献立作成プログラム。
【請求項7】
前記第1の条件が複数の個別条件からなり、
前記1日食導出手段が、前記複数の個別条件のそれぞれについて設定された重みが大きいほどその重みと対応する前記個別条件による前記第1の目的関数への影響が大きくなるように前記第1の目的関数を算出し、
前記献立作成システムが、
前記重みを更新するために、更新前の前記重みを第1の候補重みとした第1~第C(C:2以上の自然数)の候補重みを導出する重み候補導出手段と、
前記重み候補導出手段が導出した前記第1~第Cの候補重みのそれぞれに基づいて前記N日食導出手段にN日分の食事の内容を導出させることでC個の献立候補を作成して出力する候補献立出力手段と、
前記候補献立出力手段が出力した前記C個の献立候補からユーザ入力により選択された1つの前記献立候補に対応する前記候補重みに前記重みを更新する更新手段とを備えており、
前記重み候補導出手段が、前記第2~第Cの候補重みのそれぞれを、前記第1の候補重みとの間の大きさの違いが、更新を繰り返すごとに小さくなるように導出することを特徴とする請求項1~6のいずれか1項に記載の献立作成プログラム。
【請求項8】
前記献立作成システムが、
前記J食決定手段が決定した前記J食分の食事から修正対象となる1食以上の食事をユーザ入力に基づいて選択させる修正対象選択手段と、
前記修正対象選択手段が選択した前記食事を削除するか又は他の食事に変更する食事修正手段とを備えていることを特徴とする請求項1~7のいずれか1項に記載の献立作成プログラム。
【請求項9】
前記料理特性データにおける料理の特性が、各料理を製造する際に必要とする製造工数を含んでおり、
前記献立作成システムが、v曜日(v={月,火,水,木,金,土,日})のM食のそれぞれを製造する曜日を示すスケジュールデータと、前記1日食導出手段が導出した前記1日分の食事の内容と、前記料理特性データとに基づいて、第t日(t:1≦t≦Nを満たす自然数)の食事をk曜日(k={月,火,水,木,金,土,日})に製造する際に必要な製造工数ektを算出する工数算出手段を備えており、
前記第2の制約条件が、
第t日の食事をk曜日に製造するために充てることができる製造工数の上限値をbktとする際に、前記製造工数ektが前記上限値bkt以下であるか否かという条件を含んでいることを特徴とする請求項2に記載の献立作成プログラム。
【請求項10】
複数日分の食事からなる献立を作成する献立作成システムとして1つ又は複数のコンピュータを機能させるプログラムであって、
前記献立作成システムが、
料理の特性を示す複数の特性値を複数の料理のそれぞれと関連付けて示す料理特性データと、前記複数の特性値の少なくとも一部に関する第1の制約条件を1食ごとに満たすように決定された、1食ごとに複数の料理からなるJ食分(J:2以上の自然数)の食事の内容とに基づいて、1日分の食事を構成するM食(M:M<Jを満たす自然数)に含まれる1食ごとの食事を前記J食分の食事から選択して1日分の食事の内容を導出する1日食導出手段と、
前記1日食導出手段に1日分の食事の内容を導出させることをN回(N:2以上の自然数)繰り返すことでN日分の食事の内容を導出するN日食導出手段とを備えており、
前記1日食導出手段が、
前記1食ごとの食事を選択するに当たり、その食事とそれより過去の食事とを含む複数食分の食事の内容が、前記複数の特性値の少なくとも一部に関する第1の条件を満たす内容に近いほど大きく又は小さくなる目的関数が最大又は最小となるように選択することを特徴とする献立作成プログラム。
【請求項11】
複数日分の食事からなる献立を作成する1または複数の機器を備えている献立作成システムであって、
料理の特性を示す複数の特性値を複数の料理のそれぞれと関連付けて示す料理特性データに基づいて、1食ごとに複数の料理からなるJ食分(J:2以上の自然数)の食事の内容を、前記複数の特性値の少なくとも一部に関する制約条件である第1の制約条件を1食ごとに満たすように決定するJ食決定手段と、
前記J食決定手段が決定したJ食分の食事の内容と前記料理特性データとに基づいて、1日分の食事を構成するM食(M:M<Jを満たす自然数)に含まれる1食ごとの食事を前記J食分の食事から選択して1日分の食事の内容を導出する1日食導出手段と、
前記1日食導出手段に1日分の食事の内容を導出させることをN回(N:2以上の自然数)繰り返すことでN日分の食事の内容を導出するN日食導出手段とを備えており、
前記1日食導出手段が、
前記1食ごとの食事を選択するに当たり、その食事とそれより過去の食事とを含む複数食分の食事の内容が、前記複数の特性値の少なくとも一部に関する第1の条件を満たす内容に近いほど大きく又は小さくなる第1の目的関数が最大又は最小となるように選択することを特徴とする献立作成システム。
【請求項12】
複数日分の食事からなる献立を作成する献立作成装置であって、 料理の特性を示す複数の特性値を複数の料理のそれぞれと関連付けて示す料理特性データに基づいて、1食ごとに複数の料理からなるJ食分(J:2以上の自然数)の食事の内容を、前記複数の特性値の少なくとも一部に関する制約条件である第1の制約条件を1食ごとに満たすように決定するJ食決定手段と、
前記J食決定手段が決定したJ食分の食事の内容と前記料理特性データとに基づいて、1日分の食事を構成するM食(M:M<Jを満たす自然数)に含まれる1食ごとの食事を前記J食分の食事から選択して1日分の食事の内容を導出する1日食導出手段と、
前記1日食導出手段に1日分の食事の内容を導出させることをN回(N:2以上の自然数)繰り返すことでN日分の食事の内容を導出するN日食導出手段とを備えており、
前記1日食導出手段が、
前記1食ごとの食事を選択するに当たり、その食事とそれより過去の食事とを含む複数食分の食事の内容が、前記複数の特性値の少なくとも一部に関する第1の条件を満たす内容に近いほど大きく又は小さくなる第1の目的関数が最大又は最小となるように選択することを特徴とする献立作成装置。
【請求項13】
複数日分の食事からなる献立を作成する献立作成方法であって、
コンピュータが、料理の特性を示す複数の特性値を複数の料理のそれぞれと関連付けて示す料理特性データに基づいて、1食ごとに複数の料理からなるJ食分(J:2以上の自然数)の食事の内容を、前記複数の特性値の少なくとも一部に関する制約条件である第1の制約条件を1食ごとに満たすように決定するJ食決定手順と、
コンピュータが、前記J食決定手順において決定したJ食分の食事の内容と前記料理特性データとに基づいて、1日分の食事を構成するM食(M:M<Jを満たす自然数)に含まれる1食ごとの食事を前記J食分の食事から選択して1日分の食事の内容を導出する1日食導出手順と、
コンピュータが、前記1日食導出手順において1日分の食事の内容を導出することをN回(N:2以上の自然数)繰り返すことでN日分の食事の内容を導出するN日食導出手順とを実行し、
前記1日食導出手順では、
コンピュータが、前記1食ごとの食事を選択するに当たり、その食事とそれより過去の食事とを含む複数食分の食事の内容が、前記複数の特性値の少なくとも一部に関する第1の条件を満たす内容に近いほど大きく又は小さくなる第1の目的関数が最大又は最小となるように選択することを特徴とする献立作成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、献立作成プログラム、献立作成システム、献立作成装置及び献立作成方法
に関する。
【背景技術】
【0002】
従来、種々のサービスや施設において人々に食事を供するに当たり、あらかじめ作成された複数日分の献立に沿って料理が作られることがある。かかる献立作成の方法の一例として特許文献1に記載の方法がある。特許文献1では、主食、主菜、副菜その他の複数の献立構成要素からなる1食分の献立を作成するに当たって、献立構成要素ごとの栄養に関する基準に基づいて各献立構成要素のメニューを決定している。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2019-082808号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1では、1食分における献立構成要素が満たすべき基準に沿って献立が作成される。しかしながら、複数日分の献立を作成する際、時間的に連続する複数食分の食事に関して設定された条件に基づいて献立を作成することが要請される場合がある。例えば、1日のエネルギー摂取の許容量が決められており、1日分の食事を構成する朝食、昼食及び夕食の全体でエネルギー量が所定値以下となるように献立を作成することが求められる場合等である。かかる場合、複数食分の食事の内容について条件を考慮しながら条件分岐等により各食事の内容を決めていくのは困難である。
【0005】
本発明の目的は、時間的に連続する複数食分の食事に跨って設定された条件を含む複数の条件に基づいて献立を作成することが可能な献立作成プログラム、献立作成システム、献立作成装置及び献立作成方法を提供することにある。
【課題を解決するための手段】
【0006】
本発明の献立作成プログラムは、複数日分の食事からなる献立を作成する献立作成システムとして1つ又は複数のコンピュータを機能させる プログラムであって、前記献立作成システムが、料理の特性を示す複数の特性値を複数の料理のそれぞれと関連付けて示す料理特性データに基づいて、1食ごとに複数の料理からなるJ食分(J:2以上の自然数)の食事の内容を、前記複数の特性値の少なくとも一部に関する制約条件である第1の制約条件を1食ごとに満たすように決定するJ食決定手段と、前記J食決定手段が決定したJ食分の食事の内容と前記料理特性データとに基づいて、1日分の食事を構成するM食(M:M<Jを満たす自然数)に含まれる1食ごとの食事を前記J食分の食事から選択して1日分の食事の内容を導出する1日食導出手段と、前記1日食導出手段に1日分の食事の内容を導出させることをN回(N:2以上の自然数)繰り返すことでN日分の食事の内容を導出するN日食導出手段とを備えており、前記1日食導出手段が、前記1食ごとの食事を選択するに当たり、その食事とそれより過去の食事とを含む複数食分の食事の内容が、前記複数の特性値の少なくとも一部に関する第1の条件を満たす内容に近いほど大きく又は小さくなる第1の目的関数が最大又は最小となるように選択する。
【0007】
また、本発明の別の観点に係る献立作成プログラムは、複数日分の食事からなる献立を作成する献立作成装置としてコンピュータを機能させるプログラムであって、前記献立作成装置が、料理の特性を示す複数の特性値を複数の料理のそれぞれと関連付けて示す料理特性データと、前記複数の特性値の少なくとも一部に関する第1の制約条件を1食ごとに満たすように決定された、1食ごとに複数の料理からなるJ食分(J:2以上の自然数)の食事の内容とに基づいて、1日分の食事を構成するM食(M:M<Jを満たす自然数)に含まれる1食ごとの食事を前記J食分の食事から選択して1日分の食事の内容を導出する1日食導出手段と、前記1日食導出手段に1日分の食事の内容を導出させることをN回(N:2以上の自然数)繰り返すことでN日分の食事の内容を導出するN日食導出手段とを備えており、前記1日食導出手段が、前記1食ごとの食事を選択するに当たり、その食事とそれより過去の食事とを含む複数食分の食事の内容が、前記複数の特性値の少なくとも一部に関する第1の条件を満たす内容に近いほど大きく又は小さくなる目的関数が極大値又は極小値を取るように選択する。
【0008】
本発明の献立作成プログラムによると、1食ごとに第1の制約条件を満たすように決定されたJ食分の食事から、第1の目的関数に基づいて1日分の食事を構成するM食分の食事を導出する。そして、これをN回繰り返すことでN日分の食事の内容を導出する。第1の目的関数は、過去の食事を含む複数食分の食事の内容が第1の条件を満たす度合いを示す。したがって、複数食分の食事に跨って設定された条件を含む複数の条件を反映した献立を作成することが可能である。
【0009】
また、本発明においては、前記第1の条件が、前記第1の制約条件とは異なる前記制約条件である第2の制約条件を含む複数の個別条件からなり、前記第1の目的関数が、前記複数の個別条件のそれぞれについて、食事の内容がその条件を満たす内容に近いほど大きく又は小さくなる関数であり、前記1日食導出手段が、前記第2の制約条件については、前記複数の個別条件における他の条件のいずれよりも、条件を満たさない場合に前記第1の目的関数の値を大きく変動させるように前記第1の目的関数を算出することが好ましい。これによると、第2の制約条件については第1の目的関数における個別条件の1つとして扱われる。そして、第2の制約条件は、その他のいずれの個別条件よりも第1の目的関数を大きく変動させる。したがって、第2の制約条件については、その他の個別条件と比べて献立の内容を強く制約するように献立が作成される。よって、第2の制約条件を満たすような献立が作成されやすい。
【0010】
また、本発明においては、前記献立作成システムが、前記N日食導出手段が導出した前記N日分の食事の内容を修正する第1の N日食修正手段を備えており、前記第1のN日食修正手段が、前記N日食導出手段が導出したN日分の食事の内容が、前記複数の特性値の少なくとも一部に関するN日分の食事における前記制約条件である第3の制約条件を満たさない場合に、前記N日分の食事から、前記第3の制約条件を成立しにくくする1食であるバッド1食を抽出すると共に、前記バッド1食を、前記J食分の食事のうち、前記第3の制約条件を前記バッド1食より成立しやすくする食事に変更することが好ましい。これによると、第3の制約条件については、既に導出されたN日分の食事中、条件を成立しにくくする食事が成立しやすい食事に変更される。したがって、第3の制約条件を満たす献立が作成されやすい。なお、第3の制約条件は、第1又は第2の制約条件の少なくともいずれかと同じものであってもよいし、第1及び第2の制約条件のいずれとも異なるものであってもよい。
【0011】
また、本発明においては、前記第1のN日食修正手段が、第2の目的関数に基づいて前記N日分の食事の内容を修正するものであり、前記第2の目的関数が、N日分の食事の内容について、前記複数の特性値の少なくとも一部に関する第2の条件を満たす内容に近いほど大きく又は小さくなる関数であり、前記第1のN日食修正手段が、前記N日食導出手段が導出した前記N日分の食事について、前記バッド1食を、前記J食分の食事のうち、前記第3の制約条件を前記バッド1食より成立しやすくする第1~第Kの食事(K:2以上の自然数)に変更したそれぞれの場合における前記第2の目的関数を算出し、その算出結果を互いに比較した結果に基づいて前記N日分の食事を修正することが好ましい。これによると、第2の目的関数に基づいて食事を変更することにより献立が修正される。第2の目的関数は、第3の制約条件を成立しにくくする食事の変更候補となる食事が第2の条件を満たす度合いを表す。したがって、第2の条件を満たしやすくするように献立を修正することが可能となる。なお、第2の条件は、第1の条件と少なくとも一部において同じであってもよいし、第1の条件と全く異なってもよい。
【0012】
また、本発明においては、前記献立作成システムが、前記N日食導出手段が導出した前記N日分の食事の内容を修正する第2のN日食修正手段を備えており、前記第2のN日食修正手段が、第2の目的関数に基づいて前記N日分の食事の内容を修正するものであり、前記第2の目的関数が、N日分の食事の内容について、前記複数の特性値の少なくとも一部に関する第2の条件を満たす内容に近いほど大きく又は小さくなる関数であり、前記第2のN日食修正手段が、前記N日分の食事から、前記制約条件を満たさない食事が存在する日を取得すると共に、当該日の食事に関して前記制約条件が満たされるように、当該日の食事に含まれる少なくともいずれかの料理を前記複数の料理に含まれる他の料理と入れ替えたそれぞれの場合における前記第2の目的関数を算出し、その算出結果を互いに比較した結果に基づいて前記N日分の食事を修正することが好ましい。これによると、献立の修正の際、制約条件を満たさない食事について、制約条件を満たすように料理を変更する。変更後の料理は第2の目的関数に基づいて決定される。第2の目的関数は、変更候補となる食事が第2の条件を満たす度合いを表す。したがって、第2の条件を満たしやすくするように献立を修正することが可能となる。なお、第2の条件は、第1の条件と少なくとも一部において同じであってもよいし、第1の条件と全く異なってもよい。
【0013】
また、本発明においては、前記複数の特性値が、前記料理の特性として前記料理に使用する食材を示す値を含んでおり、前記献立作成装置が、前記第1の制約条件を含む複数の前記制約条件を要素とする第1の制約条件群に基づいて前記N日食導出手段が導出した前記N日分の食事を展開元の献立として、前記第1の制約条件群とは一部の要素が異なる複数の前記制約条件からなる第2の制約条件群に基づいて、前記展開元の献立から別の献立へと展開する献立展開手段を備えており、前記献立展開手段が、前記第2の制約条件群に含まれる前記制約条件の少なくともいずれかを満たさない食事を前記展開元の献立から抽出する違反食事抽出手段と、前記抽出手段が抽出した食事に含まれる料理に使用する食材と類似した食材を使用する複数の候補料理を前記複数の料理から抽出する候補料理抽出手段と、前記展開元の献立に関して、前記第2の制約条件群に含まれる前記制約条件を満たす内容に近いほど大きく又は小さくなる第3の目的関数を算出する展開前算出手段と、前記候補料理抽出手段が抽出した前記複数の候補料理のそれぞれについて、前記違反食事抽出手段が抽出した食事中の料理を前記候補料理と入れ替えた後の前記展開元の献立に関して、前記第2の制約条件群に含まれる前記制約条件を満たす内容に近いほど大きく又は小さくなる第4の目的関数を算出する展開後算出手段と、前記複数の候補料理から、前記展開前算出手段が算出した前記第3の目的関数より前記展開後算出手段が算出した前記第4の目的関数が大きく又は小さくなる前記候補料理を1つ以上抽出する好適候補料理抽出手段とを有していることが好ましい。これによると、第1の制約条件群に基づいて作成された献立から、第1の制約条件群とは一部の要素が異なる第2の制約条件群を満たすような別の献立への展開が可能となる。展開に当たっては、元の献立における第2の制約条件群に違反する食事が修正される。この修正の際、元の食事に含まれる料理が、元の料理と類似する別の料理に変更される。
【0014】
また、本発明においては、前記第1の条件が複数の個別条件からなり、前記1日食導出手段が、前記複数の個別条件のそれぞれについて設定された重みが大きいほどその重みと対応する前記個別条件による前記第1の目的関数への影響が大きくなるように前記第1の目的関数を算出し、前記献立作成システムが、前記重みを更新するために、更新前の前記重みを第1の候補重みとした第1~第C(C:2以上の自然数)の候補重みを導出する重み候補導出手段と、前記重み候補導出手段が導出した前記第1~第Cの候補重みのそれぞれに基づいて前記N日食導出手段にN日分の食事の内容を導出させることでC個の献立候補を作成して出力する候補献立出力手段と、前記候補献立出力手段が出力した前記C個の献立候補からユーザ入力により選択された1つの前記献立候補に対応する前記候補重みに前記重みを更新する更新手段とを備えており、前記重み候補導出手段が、前記第2~第Cの候補重みのそれぞれを、前記第1の候補重みとの間の大きさの違いが、更新を繰り返すごとに小さくなるように導出することが好ましい。これによると、第1の目的関数の算出に当たり、個別条件のそれぞれに設定された重みに基づいて各個別条件の算出値への影響度が調整される。この重みは複数の候補重みのそれぞれに基づいて作成された献立候補のいずれかを選択することで更新されていく。候補重みは、更新のたびに候補重み同士の差が小さくなるように導出される。したがって、更新を繰り返していくと重みが一定値に収束しやすいように重みの更新がなされる。
【0015】
また、本発明においては、前記献立作成システムが、前記J食決定手段が決定した前記J食分の食事から修正対象となる1食以上の食事をユーザ入力に基づいて選択させる修正対象選択手段と、前記修正対象選択手段が選択した前記食事を削除するか又は他の食事に変更する食事修正手段とを備えていることが好ましい。これによると、ユーザ入力により、ユーザが食事を手動修正することができる。
【0016】
また、本発明においては、前記料理特性データにおける料理の特性が、各料理を製造する際に必要とする製造工数を含んでおり、前記献立作成装置が、v曜日(v={月,火,水,木,金,土,日})のM食のそれぞれを製造する曜日を示すスケジュールデータと、前記1日食導出手段が導出した前記1日分の食事の内容と、前記料理特性データとに基づいて、第t日(t:1≦t≦Nを満たす自然数)の食事をk曜日(k={月,火,水,木,金,土,日})に製造する際に必要な製造工数ektを算出する工数算出手段を備えており、前記第2の制約条件が、第t日の食事をk曜日に製造するために充てることができる製造工数の上限値をbktとする際に、前記製造工数ektが前記上限値bkt以下であるか否かという条件を含んでいることが好ましい。これによると、各曜日の製造工数の上限を超えないような献立が作成されやすい。
【図面の簡単な説明】
【0017】
図1】本発明の一実施形態に係る献立作成システムの構成を示す機能ブロック図である。
図2図1の献立作成システムが献立を作成する際に判断する制約条件に関連する製造スケジュールを示す表である。
図3図1の献立作成システムが実行するメイン処理の流れを示すフロー図である。
図4図3のメイン処理において実行される処理であって、一旦作成された献立の内容を修正する第1の修正処理の流れを示すフロー図である。
図5図3のメイン処理において実行される処理であって、図4の第1の修正処理後に実行される第2の修正処理の流れを示すフロー図である。
図6】既に作成された献立から別の食種の献立を作成する処理の流れを示すフロー図である。
【発明を実施するための形態】
【0018】
以下、本発明の好適な一実施の形態である第1の実施形態に係る献立作成システム1について図1図6を参照しつつ説明する。
【0019】
[システムの概要]
献立作成システム1は、あらかじめ準備された複数の料理からなる料理リストに基づいて1か月分の献立を作成する装置である。献立の構成要素となる料理リストに含まれる各料理は、主菜になる料理、副菜になる料理、小付けになる料理、汁具になる料理及び漬物になる料理のいずれかに分類されている。1か月分の献立は、1か月に対応する日数分の献立からなる。1日分の献立は、朝食、昼食及び夕食の各1食を含んでいる。朝食の1食は、主菜の料理、副菜の料理、小付けの料理及び汁具の料理からなる。昼食又は夕食の1食は、主菜の料理、副菜の料理、小付けの料理、汁具の料理及び漬物の料理からなる。
【0020】
献立作成システム1は、通信ネットワークを通じて互いにデータを送受信する複数のコンピュータを備えている。これらのコンピュータ同士が必要な情報を互いに通信しつつ必要な情報処理を分担して実行する。各コンピュータは、CPU(Central Processing Unit)、ROM(Read-Only Memory)及びRAM(Random Access Memory)等のメモリデバイス、ハードディスクドライブ、並びに、入出力インタフェース等の各種インタフェースのハードウェアを含んでいる。各コンピュータのメモリデバイスにはプログラムデータ等のソフトウェアが格納されている。これらのソフトウェアはインターネットによるダウンロード又は各種の記録媒体により配布可能である。各コンピュータにおいては、ハードウェアがソフトウェアに従って本実施形態に係る各種の処理を実行する。各コンピュータには、マウス、タッチパッド又はタッチパネルディスプレイ等のポインティングデバイス、キーボード等の1つ以上の入力デバイスが接続又は搭載されている。また、各コンピュータには、情報を出力するディスプレイ、プリンター等の出力デバイスが接続又は搭載されている。
【0021】
献立作成システム1は、図1に示すように、記憶部100、献立作成部200及び食種展開部300(献立展開手段)を有している。これらの機能部は、システムを構成する複数のコンピュータに分散して構築されている。例えば、一のコンピュータには記憶部100が設けられ、他のコンピュータには献立作成部200及び食種展開部300が構築されている。この場合、献立作成部200及び食種展開部300は、記憶部100から通信ネットワークを通じて必要なデータを適宜取得する。
【0022】
記憶部100は、献立作成部200及び食種展開部300による後述の処理に必要な料理データ及び条件データを記憶している。料理データは、上記料理リストに含まれる各料理の特性を示す特性値のデータである。料理データは、各料理について次の項目の特性値を示すデータを含んでいる。
【0023】
<料理データが示す料理の特性>
料理コード、朝選択、昼選択、夕選択、料理名、料理区分(主菜、副菜、小付け、汁具及び漬物のいずれか)、原価、栄養価:エネルギー、栄養価:たんぱく質、栄養価:脂質、栄養価:食塩相当量、メイン食材(肉、魚、大豆及び卵のいずれか)、食材集合(料理を構成する複数の食材のそれぞれについて、食材コード、食材名称、食材フラグ及び食材クラスからなる)、味付け、調理方法、色どり(赤、緑及び黄のいずれか)、和洋中(和食、洋食及び中華のいずれか)、工程1の製造工数、工程2の製造工数、並びに、工程3の製造工数。
【0024】
料理の特性において、朝選択、昼選択、夕選択は、それぞれ、朝食として選択可能かどうか、昼食として選択可能かどうか、夕食として選択可能かどうかを示す。食材クラスは、食材が属するクラス(例えば、A、B及びCのいずれか又はこれら以外)を示す。
【0025】
条件データは、複数の食種(例えば、幼稚園用の食種、介護施設用の食種、病院食用の食種等)のそれぞれについて<1食分の制約条件>、<1日分の条件>及び<N日分の制約条件>における条件値を示すデータを含んでいる。互いに異なる食種同士では、<1食分の制約条件>、<1日分の条件>及び<N日分の制約条件>における条件値の少なくともいずれかが異なっている。以下においては、特に断りがない限り、いずれか1つの食種における条件データについて主に説明するものとする。
【0026】
例えば、条件データは、<1食分の制約条件>に含まれる後述の条件(A)に関し、朝食の1食の原価における上限値を示すデータを含んでいる。また、条件データは、<1日分の条件>に含まれる後述の条件(A)に関し、1日分の献立に含まれる料理のエネルギーの合計における上限値及び下限値を示すデータを含んでいる。また、条件データは、<1日分の条件>に含まれる後述の条件(E-2)に関し、C、C豆腐及びC肉魚をそれぞれ示すデータを含んでいる。また、条件データは、<N日分の制約条件>に含まれる後述の条件(A)に関し、N日分の献立に含まれる料理のエネルギーにおける1日当たりの平均値に係る上限値及び下限値を示すデータを含んでいる。その他、条件データは、<1日分の条件>に含まれる後述の条件(K)に関し、以下の製造スケジュールデータ及び曜日kに実行できる製造工数の上限を示すデータa(k={月,火,水,木,金,土,日})を含んでいる。
【0027】
<製造スケジュールデータ>
製造スケジュールデータは、食事の製造処理としていずれの曜日の食事をいずれの曜日に処理するかを複数の工程(プレパ、クッキング、パック等)のそれぞれについて示す製造スケジュールに対応するデータである。図2は、かかる製造スケジュールの一例を示す。図2に示すように、複数の工程のそれぞれに関し、月、火、水、木、金、土及び日の各曜日に、それより直近の将来のいずれか1つ又は2つの曜日における朝食、昼食及び夕食のいずれか1つ以上に係る製造処理が割り当てられている。例えば、火曜日に実行する工程1には、直近の土曜日の夕食についての処理と直近の日曜日の朝食、昼食及び夕食についての製造処理が割り当てられている。また、金曜日に実行する工程3には、直近の月曜日の朝食、昼食及び夕食についての製造処理が割り当てられている。
【0028】
[1食分の献立作成]
献立作成部200は、図1に示すように、1食分作成部210(本発明におけるJ食決定手段)、1日分作成部220(本発明における1日食導出手段)及び1か月分作成部230(本発明におけるN日食導出手段)を有している。1食分作成部210は、記憶部100の料理データ及び条件データに基づき、以下の<1食分の制約条件>(本発明における第1の制約条件)を満たすような朝食用の複数の食事、昼食用の複数の食事及び夕食用の複数の食事を、作成した食事数の合計が所定値Jになるように作成する。例えば、朝食、昼食及び夕食のそれぞれについて10000食(J=30000)が作成される。<1食分の制約条件>は、いずれも、料理データが示す料理の特性の少なくともいずれかに関する条件である。食事の作成は、ランダムに組み合わされた料理において、1食分の制約条件(A)~(J)を全て満たすかどうかを判定し、満たす場合にリストに追加していくのを繰り返す方法によって実行される。例えば、朝食の1食を作成する場合、料理データが示す料理のうち、朝食として選択可能な料理から、主菜、副菜、小付け及び汁具のそれぞれに対応するものを1つずつ抽出する。次に、このように抽出した料理の特性値が1食分の制約条件(A)~(J)を全て満たすかどうかを判定する。そして、これらの条件を全て満たす場合、その料理の組み合わせを作成リストに追加する。これを朝食、昼食及び夕食のそれぞれについて、料理の組み合わせを変えつつ所定回数繰り返すことで、J食分の食事の内容が作成される。1食分作成部210は、一旦作成されたJ食分の食事から、入力デバイスを用いたユーザ入力に基づいて選択された食事を、削除するか又は別の食事に変更するように構成されていてもよい。1食分作成部210による、J食分の食事に係るこのような修正機能は、本発明における修正対象選択手段及び食事修正手段の機能に対応する。最終的に作成されたJ食分の食事の内容は、J食データとして記憶部100に記憶される。
【0029】
<1食分の制約条件>
(A)原価 次の(A-1)~(A-3)の全てを満たすこと。以下において、1食の原価は、その1食を構成する料理の原価の合計である。また、上限値は朝食、昼食及び夕食のそれぞれについて設定可能である。
(A-1)1食が朝食の場合 1食の原価が所定の上限値以下であること。
(A-2)1食が昼食の場合 1食の原価が所定の上限値以下であること。
(A-3)1食が夕食の場合 1食の原価が所定の上限値以下であること。
(B)食材 1食に含まれる料理の全ての食材集合の交わりが空集合であること。つまり、1食中に食材の重複がないこと。
(C)味付け 1食に含まれる主菜と副菜の味付けが等しくないこと。
(D)調理方法 1食に含まれる主菜と副菜の調理方法が等しくないこと。
(E)色どり 1食に含まれる料理のいずれかが赤を含み、且つ、1食に含まれる料理のいずれか緑を含み、且つ、1食に含まれる料理のいずれかが黄を含んでいること。
(F)和洋中 次の(F-1)及び(F-2)の全てを満たすこと。
(F-1)1食が朝食の場合 朝食に含まれる料理が全て和食であること。
(F-2)1食が昼食又は夕食の場合 1食に含まれる料理が和食、洋食及び中華のいずれかで統一されていること。
(G)栄養価:エネルギー 1食に含まれる料理のエネルギーの合計が所定の下限値以上且つ上限値未満であること。
(H)栄養価:たんぱく質 1食に含まれる料理のたんぱく質の合計が所定の下限値以上且つ上限値未満であること。
(I)栄養価:脂質 1食に含まれる料理の脂質の合計が所定の下限値以上且つ上限値未満であること。
(J)栄養価:食塩相当量 1食に含まれる料理の食塩相当量の合計が所定の下限値以上且つ上限値未満であること。
【0030】
[1日分の献立作成]
1日分作成部220は、記憶部100の料理データ、J食データ及び条件データに基づき、ある日tについて、後述の<1日分の条件>(本発明における第1の条件)を用いて朝食、昼食及び夕食の順に1日分の献立候補を作成する。<1日分の条件>は、いずれも、料理データが示す料理の特性の少なくともいずれかに関する条件である。なお、後述の通り、1日分作成部220による1日分の献立候補の作成がtを1ずつ(1日ずつ)増加させつつ繰り返される。このため、tより過去の日付の献立候補は決定済みである。
【0031】
1日分作成部220は、献立候補の作成に当たり、以下の数式1に示す目的関数f(本発明における第1の目的関数)を用いる。
【0032】
(数式1)
【0033】
数式1におけるkは、<1日分の条件>の(A)~(K)の条件のうち、制約条件以外の条件であって目的関数の要素として用いられるものに関するインデックスである。wはkが示す条件の重要度に対応する重みであり、全てのkについて0≦w≦1を満たし且つΣ=1を満たす。pはkが示す条件を適用するか否かを示し、適用する場合はp=1となり、適用しない場合はp=0である。Zは、後述の<1日分の条件>において示される目的関数の各要素に対応する。Zは、料理の特性を示す特性値の関数であり、いずれも、献立の内容が条件を満たす内容に近いほど大きい値を有する。具体的には、Zは、条件を満たす内容に近いほど1に近づき、条件から外れていくほど0に近づく。したがって、数式1のfは、kが示す条件のうち、p=1であるものについて献立の内容が条件を満たす内容に近いほど大きくなり、条件から外れるほど小さくなる。ここで、各Zがfに及ぼす影響(寄与)はwが大きいほど大きくなる。kが示す条件には、ある日tとそれより過去の食事とを含む複数食分の食事の内容に課される条件が含まれる。例えば、条件(E)~(K)にはこのような複数食分又は複数日分の食事の内容に課される条件が含まれている。
【0034】
数式1におけるjは、<1日分の条件>の(A)~(K)の条件のうち、制約条件として設定された条件(本発明における第2の制約条件)のそれぞれを示すインデックスである。<1日分の条件>では制約条件も目的関数の要素として用いられる。sはjが示す条件を適用するか否かを示し、適用する場合はS=1であり、適用しない場合はS=0である。yは、jが示す条件を満たすか否かを示し、条件を満たす場合はy=1であり、条件を満たさない場合はy=0である。したがって、数式1のcの値は、条件を満たす場合に0となり、条件を満たさない場合に-1000となる。このため、jで示す条件を満たさないことによるfへの寄与(ペナルティ)は-1000となる。一方、いずれのkにおいてもZの最小値が0である。よって、<1日分の条件>における各制約条件は、制約条件以外のいずれの条件よりもfの値を顕著に大きく変動させることになる。なお、k及びjが示す条件のそれぞれが本発明における個別条件に対応する。
【0035】
1日分作成部220は、J食データに基づき、J食分の食事に含まれる各朝食について数式1に従ってc及びfを算出する。c及びfを算出するに当たっては、条件(A)~(K)のそれぞれに関し、y又はZを導出する。例えば、条件(A)に関しては、各朝食に含まれる料理について料理データが示す栄養価:エネルギーの特性値を合計し、その合計値が所定の下限値以上且つ上限値未満であるか判定すると共に、その判定結果としてyを導出する。また、条件(E-1)に関しては、最初に決定される朝食の献立については自動的に満たされるので、y=1とする。また、条件(F-2)に関しては、t及びtより過去の6日間からなる1週間分の献立候補について条件(F-2)を満たすかどうかを判定し、その判定結果としてyを導出する。また、条件(F-4)に関しては、t及びtより過去の日付からなる1か月分の献立候補について条件(F-4)に示す数式5に基づいてZを算出する。この際、tより過去におけるZの算出に必要な日付について、本システムや栄養士等により作成された献立を示すデータが存在していることが前提となる。その他の条件についても同様にy又はZを導出する。次に、1日分作成部220は、算出した全てのy及びZに基づいてJ食分の食事に含まれる各朝食についてのc及びfを算出する。そして、1日分作成部220は、fが最大となる1食をtの朝食の献立候補に決定する。
【0036】
次に、1日分作成部220は、J食データに基づき、J食分の食事に含まれる各昼食について上記同様、数式1に従ってc及びfを算出する。例えば、条件(A)に関しては、上記の通り決定した朝食の献立候補及びJ食分の食事の各昼食に含まれる料理について料理データが示す栄養価:エネルギーの特性値を合計し、その合計値が所定の下限値以上且つ上限値未満であるか判定すると共に、その判定結果としてyを導出する。その他の条件についても同様に、tより過去の献立候補、tの朝食の献立候補及びJ食分に含まれる各昼食の内容に基づき、y又はZを導出する。次に、1日分作成部220は、算出した全てのy及びZに基づいてJ食分の食事に含まれる各昼食についてのc及びfを算出する。そして、1日分作成部220は、fが最大となる1食をtの昼食の献立候補に決定する。
【0037】
次に、1日分作成部220は、J食データに基づき、J食分の食事に含まれる各夕食について上記同様、数式1に従ってc及びfを算出する。例えば、条件(A)に関しては、上記の通り決定した朝食及び昼食の献立候補並びにJ食分の食事の各夕食に含まれる料理について料理データが示す栄養価:エネルギーの特性値を合計し、その合計値が所定の下限値以上且つ上限値未満であるか判定すると共に、その判定結果としてyを導出する。その他の条件についても同様に、tより過去の献立候補、tの朝食及び昼食の献立候補並びにJ食分に含まれる各夕食の内容に基づき、y又はZを導出する。次に、1日分作成部220は、算出した全てのy及びZに基づいてJ食分の食事に含まれる各夕食についてのc及びfを算出する。そして、1日分作成部220は、fが最大となる1食をtの夕食の献立候補に決定する。
【0038】
<1日分の条件>
(A)栄養価:エネルギー 制約条件として、1日分の献立に含まれる料理のエネルギーの合計が所定の下限値以上且つ上限値未満であること。
(B)栄養価:たんぱく質 制約条件として、1日分の献立に含まれる料理のたんぱく質の合計が所定の下限値以上且つ上限値未満であること。
(C)栄養価:脂質 制約条件として、1日分の献立に含まれる料理の脂質の合計が所定の下限値以上且つ上限値未満であること。
(D)栄養価:食塩相当量 制約条件として、1日分の献立に含まれる料理の食塩相当量の合計が所定の下限値以上且つ上限値未満であること。
(E)メイン食材
(E-1)制約条件として、1日分の献立に含まれる料理の中で、主菜のメイン食材(肉、魚、卵及び大豆)が重複して含まれないようにすること。つまり、1日分の献立を構成する3食のうち、1食の主菜が肉、1食の主菜が魚、1食の主菜が卵か大豆となるようにする。
(E-2)35日間を通した朝食の主菜におけるメイン食材において、aを卵の合計数、a大豆を大豆の合計数、a肉魚を肉と魚の合計数とするとき、目的関数の要素として、以下の数式2に表すZメイン食材2を用いること。なお、C:C大豆:C肉魚はa:a豆腐:a肉魚の目標値を表し、C、C大豆及びC肉魚のそれぞれはC+C大豆+C肉魚=1を満たす正の実数からなる。
【0039】
(数式2)
【0040】
(E-2)35日間を通した昼食及び夕食の主菜におけるメイン食材において、aを肉の合計数、aを魚の合計数とし、目的関数の要素として、以下の数式3に表すZメイン食材3を用いること。なお、C:Cはa:aの目標値を表し、C及びCのそれぞれはC+C=1を満たす正の実数からなる。
【0041】
(数式3)
【0042】
(F)食材
(F-1)制約条件として、食材ごとに設定された下記(イ)~(ハ)を満たし、且つ、食材クラスが設定された食材は使用頻度がそれぞれ1食に1回以下であること。(イ)使用頻度が1日1回以下に限定されるか否か、(ロ)使用頻度が1日1回に限定される場合の出現間隔が所定の日数以上であること、(ハ)使用頻度が1日1回以下に限定されていない(1日2回以上でもよい)場合に、1週間での出現回数が所定の上限値以下となること。なお、(ロ)の出現間隔は食材クラスごとに設定され、食材クラスごとに判定される。
【0043】
(F-2)1か月の献立に含まれる昼食及び夕食に属する料理中、魚に分類される食材が所定の種類数以上となるように目的関数の要素を設定すること。具体的には、例えば、1ヶ月間の昼食と夕食における食材集合の和をIngredients、A={さば,赤魚,秋鮭(銀鮭),ほき,ぶり,かれい,さわら,ます,たら,そい,ほっけ,あじ,さんま,ししゃも}とすると、目的関数の要素として、以下の数式4に表すZ食材3を用いること。ここで、Ingredientsの台集合をCとする。n(X)は集合Xの要素の数を示す。
(数式4)
【0044】
(F-3)1か月間に含まれる昼食及び夕食に属する料理中、肉に分類される食材の使用割合が所定の範囲となるように目的関数の要素を設定すること。例えば、1ヶ月間の昼食と夕食における食材集合の和をIngredients、使用割合の目標値を豚肉:鶏肉:ジンギスカン:肉加工品=a1:a2:a3:a4(ただし、a1+a2+a3+a4=1)とすると、目的関数の要素として、以下の数式5に表すZ食材4を用いること。ただし、b=n(Ingredients:Ingredients={豚肉,鶏肉,ジンギスカン,肉加工品})とする。n(X)は集合Xの要素の数を示す。
【0045】
(数式5)
【0046】
(G)料理
(G-1)制約条件として、主菜、副菜、小付け及び漬物のそれぞれにおいて、同じ料理の使用間隔が所定の日数に1回であること。なお、この所定の日数は主菜、副菜、小付け及び漬物のそれぞれで設定可能とする。
(G-2)制約条件として、35日間の献立中、同じ曜日の献立に含まれる料理同士を比較した際に、料理同士が重複しないこと。
(G-3)ある日付iの朝食、昼食及び夕食に含まれる料理区分xの料理をdish料理 i,k,xとし、i-1に対応する日からi-Lに対応する日までの期間における献立で使用されている料理の集合をDxとするとき、目的関数の要素として、以下の数式6に表すZ料理2を用いること。ただし、k={朝,昼,夕}、x={主菜,副菜,小付け,お漬物,汁具}である。Lは、例えば90である。n(X)は集合Xの要素の数を示す。
【0047】
(数式6)
【0048】
(H)調理方法
(H-1)制約条件として、1日分の献立中、朝食、昼食及び夕食同士で主菜の調理方法が重複しないこと。
(H-2)制約条件として、1日分の献立における朝食、昼食及び夕食の3食中、調理方法が所定のものが所定の範囲であること。例えば、“揚げ”又は“揚げ煮”に該当するものが昼食及び夕食のいずれか1食のみであること。
【0049】
(I)和洋中 制約条件として、1日分の献立における朝食、昼食及び夕食の3食のうちのいずれかが洋食又は中華である日がn日に1回(n:2以上の自然数)存在すること。
【0050】
(J)原価
(J-1)制約条件として、1週間分の献立における原価の合計が所定値以下であること。所定値は、例えば、1日当たりの平均原価の目標値をaとするとき、7*aである。
(J-2)1か月分の日数をm、朝食1回当たりの平均原価の目標値をa、ある日nの朝食の1食分の原価をmenu 原価,nとすると、目的関数の要素として、以下の数式7に表すZ原価2を用いること。
【0051】
(数式7)
【0052】
(J-3)1か月分の日数をm、昼食1回当たりの平均原価の目標値をa、ある日nの昼食の1食分の原価をmenu 原価,nとすると、目的関数の要素として、以下の数式8に表すZ原価3を用いること。
【0053】
(数式8)
(J-4)1か月分の日数をm、夕食1回当たりの平均原価の目標値をa、ある日nの夕食の1食分の原価をmenu 原価,nとすると、目的関数の要素として、以下の数式9に表すZ原価4を用いること。
【0054】
(数式9)
【0055】
(J-5)1か月分の日数をm、1日当たりの平均原価の目標値をa、ある日nの3食分の原価をmenu原価,nとすると、目的関数の要素として、以下の数式10で示されるZ原価5を用いること。
(数式10)
【0056】
(K)製造工数 工程1、2及び3のそれぞれについて次の(K-1)の条件を満たすこと。
(K-1)制約条件として、製造スケジュールデータが示す製造スケジュール上、tの献立に含まれる料理を曜日kにおいて製造する場合に、曜日kにおけるtの献立に関する製造工数の和ektがbkt以下となること。ここで、bktは、曜日kにおいてtの献立に関する製造処理に充てることができる製造工数の上限値を示す。bktは以下の数式11を用いて表される。数式11において、aは曜日kに実行できる製造工数の上限を示し、製造工程ごとに設定されている。なお、tの前日(=t-1)までの献立候補は決定しており、t+1以降の献立候補は決定していないことが数式11の前提となる。
【0057】
(数式11)
・tの献立及びt-1の献立の両方の製造処理が曜日kに実施される場合
ただし、nは曜日kに実行されるt-1の食事の処理に関する製造工数の和である。
・t及びtの翌日(=t+1)の両方の製造処理が曜日kに実施される場合
ただし、nは、製造スケジュール上、曜日kに製造する食事のうち、tの献立に関する食事の数である。また、nは、製造スケジュール上、曜日kに製造する全食事の数である。
【0058】
上記数式11の第1式を適用したbktの算出例は次の通りである。tが土曜日である場合の工程1の製造処理に関し、図2に示す製造スケジュールによると、tの献立に関する工程1の製造処理は月曜日と火曜日に実行される。月曜日にはt-1(金曜日)の昼食及び夕食に関する製造処理も実行される。したがって、月曜日にtの献立の製造処理に充てることができる最大の製造工数bktは、月曜日の工程1における製造工数の上限aから、t-1の献立の製造処理に必要な製造工数n0を減じた値となる。t-1の献立候補は決定されているとすると、nは、その献立候補に含まれる料理に関して料理データが示す工程1の製造工数を積算した和となる。
【0059】
上記数式11の第2式を適用したbktの算出例は次の通りである。tが土曜日である場合の工程1の製造処理に関し、図2に示す製造スケジュールによると、火曜日にはt+1(日曜日)の朝食、昼食及び夕食に関する製造処理も実行される。したがって、火曜日にtの献立の製造処理に充てることができる最大の製造工数bktは、火曜日の工程1における製造工数の上限aに、tの夕食からなる1食(=n)とt+1の朝食、昼食及び夕食からなる3食との合計4食(=n)に対するtの1食の割合1/4(=n/n)を乗じた値となる。第1式と異なり、第2式でこのような食事数の割合を用いるのは、t+1の献立候補が決定しておらず、t+1の献立の製造処理に必要な製造工数が具体的に算出できないためである。
【0060】
[1か月分の献立作成]
1か月分作成部230は、tを1ずつ(1日ずつ)増加させつつ、1日分作成部220に1日分の献立候補の作成を1か月に相当するN日分繰り返させることで、1か月分の献立候補を作成する。作成された1か月分の献立候補の内容は、1か月献立データとして記憶部100に記憶される。
【0061】
次に、1か月分作成部230は、記憶部100に記憶された1か月献立データ及び条件データに基づき、1か月献立データが後述の<N日分の制約条件>(本発明における第3の制約条件)を満たすか否かを判定する。そして、1か月分作成部230は、その判定結果に基づいて、1か月分の献立候補の内容を、N日分の制約条件を満たす方向に修正する。以下、この修正処理を「第1の修正処理」という。第1の修正処理には数式12に示す目的関数g(本発明における第2の目的関数)が用いられる。第1の修正処理の詳細な工程については後述する。記憶部100の1か月献立データは、第1の修正処理後のデータに更新される。なお、1か月分作成部230が第1及び第2の修正処理を実行する機能が、本発明における第1及び第2のN日食修正手段の機能に対応する。
【0062】
(数式12)
【0063】
ここで、fは、ある日tに関する数式1に示される目的関数fに相当する。lは、<N日分の制約条件>の(A)~(D)のそれぞれを示すインデックスである。<N日分の制約条件>は目的関数の要素として用いられる。bはlが示す条件を適用するか否かを示し、適用する場合はb=1であり、適用しない場合はb=0である。aは、lが示す条件を満たすか否かを示し、条件を満たす場合はa=1であり、条件を満たさない場合はa=0である。したがって、数式12のdの値は、条件を満たす場合に0となり、条件を満たさない場合に-1000となる。このため、lで示す条件を満たさないことによるgへの寄与(ペナルティ)は-1000となる。よって、<N日分の制約条件>における各制約条件は、<1日分の条件>における制約条件以外のいずれの条件よりもgの値を顕著に大きく変動させることになる。なお、数式1におけるj及びk並びに数式12におけるlが示す条件全体が本発明における第2の条件に対応する。
【0064】
<N日分の制約条件>
(A)栄養価:エネルギー N日分の献立に含まれる料理のエネルギーにおける1日当たりの平均値が所定の下限値以上且つ上限値未満であること。
(B)栄養価:たんぱく質 N日分の献立に含まれる料理のたんぱく質における1日当たりの平均値が所定の下限値以上且つ上限値未満であること。
(C)栄養価:脂質 1日分の献立に含まれる料理の脂質における1日当たりの平均値が所定の下限値以上且つ上限値未満であること。
(D)栄養価:食塩相当量 1日分の献立に含まれる料理の食塩相当量における1日当たりの平均値が所定の下限値以上且つ上限値未満であること。
【0065】
次に、1か月分作成部230は、記憶部100に記憶された1か月献立データ及び条件データに基づき、第1の修正処理が施された1か月分の献立候補に関し、<1日分の条件>に含まれる全ての制約条件のそれぞれについて条件を満たすか否かを判定する。そして、1か月分作成部230は、その判定結果に基づいて、1か月分の献立候補の内容を、1日分の制約条件を満たす方向に修正する。以下、この修正処理を「第2の修正処理」という。第2の修正処理には数式12に示す目的関数gが用いられる。第2の修正処理の詳細な工程については後述する。記憶部100の1か月献立データは、第2の修正処理後のデータに更新される。
【0066】
[食種展開の概要]
食種展開部300は、一の食種に関して作成されたM日分(M:2以上の自然数)の献立候補(以下、展開前候補とする。)に基づき、別の食種におけるM日分の献立候補(以下、展開後候補とする。)を作成する食種展開処理を実行する。食種展開処理は、展開先の食種について記憶部100に記憶された条件データに基づき、展開前候補の内容が展開先の制約条件を満たしているか否かの判定と、展開先の条件に従って算出された目的関数とを用いて、展開先の条件を満たす方向に展開前候補の内容を修正することによってなされる。かかる食種展開処理は、例えば、1か月分作成部230が過去に作成した1か月分の献立候補を展開前候補とし、入力デバイスを用いたユーザ入力によってユーザが実行開始を指示した際に実行される。食種展開処理の詳細な工程については後述する。なお、展開元の制約条件からなる群が本発明における第1の制約条件群に対応し、展開先の制約条件からなる群が本発明における第2の制約条件群に対応する。
【0067】
[処理の流れ]
(1)メイン処理
以下、献立作成システム1が実行する処理の流れを図3図6に基づいて説明する。献立作成システム1は、1か月分の献立を作成する際、図3に示すメイン処理を実行する。メイン処理は各月分の献立を作成するために定期的に実行される。まず、1食分作成部210がJ食分の食事の内容を作成する(ステップS1)。次に、1か月分作成部230が1日分作成部220に1日分の献立候補の作成(ステップS2)を1か月分繰り返させる(ステップS3、No→ステップS2)。これにより、1か月分の献立候補が作成される(ステップS3、Yes)。次に、1か月分作成部230が、ステップS2及びS3において作成した1か月分の献立候補に対し、第1及び第2の修正処理を順に施す(ステップS4)。第1及び第2の修正処理は、それぞれ、図4及び図5に示す処理であり、詳細については後述する。ステップS2~S4により1か月分の献立候補が1つ作成される。次に、献立作成システム1は、重要度wの異なる献立候補を合計3つ作成したか否かを判定する(ステップS5)。作成していないと判定した場合(ステップS5、No)、献立作成システム1は、ステップS2~S4を繰り返し実行し、もって3つの献立候補を作成する。3つの献立候補の作成に当たって、2つ目の献立候補が作成される際には、1つ目の献立候補の作成において使用された重要度wとは異なるw’が使用される。また、3つ目の献立候補が作成される際には、w及びw’のいずれとも異なるw’ ’が使用される。w’及びw’’は、以下の数式13を使用して算出される。wは本発明における第1の候補重みに対応する。w’及びw’’は本発明における第2~第Cの候補重みに対応する。
【0068】
(数式13)
【0069】
ただし、C及びDは、それぞれ、0以上且つ1以下の一様乱数を表し、kごとに異なる値が設定される。αは0より大きく1より小さい値を取る。αは、w’及びw’’が算出された後、以下の数式14に示すα’に更新される。ここで、nは0より大きく1より小さい定数である。このα’は、数式13に基づく次回(例えば、次月分の献立作成の際)のw’及びw’’の算出時にαとして用いられる。したがって、毎月の献立作成が実行されていくと、αは数式14によって更新されていき、更新ごとに小さくなる。よって、w’及びw’’におけるwとの差がだんだん小さくなっていく。
【0070】
(数式14)
【0071】
次に、献立作成システム1は、ステップS2~S5において作成された3つの献立候補の内容をディスプレイ等の出力デバイスに表示させると共に、入力デバイスを使用したユーザ入力により、3つの献立候補のうちのいずれかを選択させる(ステップS6)。ここで選択された献立候補が実際に採用される献立となる。この献立の内容は、1か月献立データとして記憶部100に格納される。1か月献立データが示す献立の内容は、献立作成システム1の機能によって随時閲覧可能である他、プリンタ等の印刷装置を用いて印刷されたり、光学記録媒体等に記録されたりする。次に、献立作成システム1は、w、w’ 及びw’ ’のうち、ステップS6において選択された献立候補に対応するものを次月分の献立作成時に使用する重要度wに更新する(ステップS7)。そして、メイン処理が完了する。ステップS7により、ユーザが献立候補を評価し、選択した内容に応じて重要度wが更新されていく。したがって、重要度wがユーザの選択に応じて変化していくことになる。一方、上記の通り、毎月の献立作成を繰り返していくと、w’及びw’’におけるwとの差がだんだん小さくなっていく。したがって、wは毎月の献立作成を繰り返していくと、ユーザの選択に応じたある値に収束していくことになる。
【0072】
(2)N日分の制約条件に関する第1の修正処理
以下、メイン処理のステップS4において実行される第1の修正処理について図4に沿って説明する。まず、1か月分作成部230は、図3のステップS3までで作成された献立候補について、<N日分の制約条件>(A)~(D)が全て満たされているか否かを判定する(ステップS21)。満たされていると判定された場合(ステップS21、Yes)、第1の修正処理が完了する。満たされていないと判定した場合(ステップS21、No)、1か月分作成部230は、条件(A)~(D)のうち、達成状況が最も悪い栄養価に対応する条件がいずれであるかを取得する(ステップS22)。「達成状況が最も悪い」ことは、栄養価の1日当たりの平均値が下限値を下回っている(以下、「栄養価不足」とする。)場合には上記平均値と下限値の差に基づき、栄養価の1日当たりの平均値が上限値を上回っている(以下、「栄養価超過」とする。)場合には上記平均値と上限値との差に基づき、当該差の大きさを条件(A)~(D)同士で比較することで判定される。
【0073】
次に、1か月分作成部230は、ステップS22で取得した条件に対応する栄養価が最も悪い日を取得する(ステップS23)。「栄養価が最も悪い日」とは、栄養価不足の場合にはその栄養価が最も低い日に対応し、栄養価超過の場合にはその栄養価が最も高い日に対応する。次に、ステップS23で取得された日の献立に含まれる3食のうち、ステップS22で取得した条件に対応する栄養価が最も悪い食事(以下、「ワースト1食」という。本発明におけるバッド1食に対応する)を取得する(ステップS24)。ワースト1食は、ステップS23で取得された日の朝食、昼食及び夕食のうち、栄養価不足の場合にはその栄養価が最も低い食事に対応し、栄養価超過の場合にはその栄養価が最も高い食事に対応する。
【0074】
次に、1か月分作成部230は、ワースト1食よりも栄養価の良い食事候補のリストを取得する(ステップS25)。「栄養価の良い食事」とは、栄養価不足の場合には栄養価がワースト1食より高い食事を示し、栄養価超過の場合には栄養価がワースト1食より低い食事を示す。食事候補のリストは、図3のステップS1において取得されたJ食分の食事から栄養価の良い食事をすべて抽出することによって作成される。
【0075】
次に、1か月分作成部230は、ステップS25で取得されたリストに含まれる食事候補を1つずつワースト1食と入れ替えた場合における数式12に示す目的関数gを算出する(ステップS26及びS27)。そして、ステップS25で取得されたリストに含まれる食事候補のうち、ステップS26で算出されたgが最大となるものを、図3のステップS3までで作成された献立候補においてワースト1食と入れ替えた献立候補を、第1の修正処理による修正後の献立候補に決定する(ステップS28)。
【0076】
(3)1日分の制約条件に関する第2の修正処理
以下、メイン処理のステップS4において実行される第2の修正処理について図5に沿って説明する。第2の修正処理は、第1の修正処理後の献立候補について実行される。まず、1か月分作成部230は、図4に示す第1の修正処理にて修正された献立候補について、<1日分の条件>のうちの制約条件(以下、「1日分制約条件」という。)が全て満たされているか否かを判定する(ステップS31)。満たされていると判定された場合(ステップS31、Yes)、第2の修正処理が完了する。満たされていないと判定した場合(ステップS31、No)、1か月分作成部230は、1日分の献立が1日分制約条件を満たさない日のうち、最も古い日(以下、「最古違反日」という。)に関して、違反している1日分制約条件が条件(I)「和洋中」であるか否かを判定する(ステップS32)。条件(I)「和洋中」であると判定した場合(ステップS32、Yes)、1か月分作成部230は、上記条件(I)を満たすような食事候補のリストを取得する(ステップS33)。食事候補のリストは、最古違反日において違反している食事が和食である(つまり、その和食を洋食又は中華に代えることで条件(I)を満たす)場合には、図3のステップS1において取得されたJ食分の食事のいずれとも異なる洋食及び中華の新たな食事を所定数作成することによって取得される。この新たな食事は、記憶部100の料理データ及び条件データに基づき、上記<1食分の制約条件>をそれぞれ満たすように作成される。また、最古違反日において違反している食事が洋食又は中華である(つまり、その洋食又は中華を和食に代えることで条件(I)を満たす)場合には、図3のステップS1において取得されたJ食分の食事のいずれとも異なる和食の新たな食事を所定数作成することによって取得される。この新たな食事は、記憶部100の料理データ及び条件データに基づき、上記<1食分の制約条件>をそれぞれ満たすように作成される。。
【0077】
次に、1か月分作成部230は、ステップS33で取得されたリストに含まれる食事候補を1つずつ最古違反日の当該食事と入れ替えた場合における数式12に示す目的関数gを算出する(ステップS34及びS35)。そして、ステップS33で取得されたリストに含まれる食事候補のうち、ステップS34で算出されたgが最大となるものを、最古違反日の当該食事と入れ替える(ステップS36)。次に、後述のステップS41が実行される。
【0078】
一方、ステップS32において、違反している1日分制約条件が条件(I)「和洋中」でないと判定した場合(ステップ32、No)、1か月分作成部230は、1日分制約条件を満たすような料理候補のリストを取得する(ステップS37)。料理候補のリストは以下のように取得される。1か月分作成部230は、どの料理を入れ替え対象とするかを示す情報を制約条件ごとに保持している。例えば、違反している1日分制約条件が(H-1)である場合には入れ替え対象が「違反の出た食事の主菜」である。次に、その入れ替え対象の料理の属性(例えば、主菜)に該当する料理を、記憶部100の料理データが示す料理から抽出する。そして、抽出した料理を、最古違反日における入れ替え対象の料理と入れ替えた場合にその献立候補が1食分の制約条件を全て満たすかどうかを判定し、満たすと判定した料理を料理候補のリストの要素とする。
【0079】
次に、1か月分作成部230は、ステップS37で取得されたリストに含まれる料理候補を1つずつ最古違反日における入れ替え対象の料理と入れ替えた場合における数式12に示す目的関数gを算出する(ステップS38及びS39)。そして、ステップS37で取得されたリストに含まれる料理候補のうち、ステップS38で算出されたgが最大となるものを、最古違反日における入れ替え対象の料理と入れ替える(ステップS40)。
【0080】
次に、1か月分作成部230は、ステップS36又はステップS40にて最古違反日における食事又は料理の入れ替えが行われた後の献立候補において1日分制約条件の違反が残っているか否かを判定する(ステップS41)。残っていると判定した場合(ステップS41、Yes)に、1か月分作成部230は、その1日分制約条件の違反が生じている最も古い違反日を最古違反日としてステップS32からの処理を繰り返す。残っていないと判定された場合(ステップS41、No)に、第2の修正処理が完了する。
【0081】
(4)食種展開処理
以下、食種展開部300が実行する食種展開処理について図6に沿って説明する。まず、食種展開部300は、展開前候補中、展開先の1食分及び1日分の制約条件を満たさない食事(以下、「違反食事」という。)を抽出し、抽出した違反食事を要素とする違反食事リストを作成する(ステップS51)。食種展開部300がステップS51を実行する機能が本発明における違反食事抽出手段の機能に対応する。次に、食種展開部300は、ステップS51で作成した違反食事リストの違反食事に含まれる料理のうち1つを、入力デバイスを用いたユーザ入力に基づいて選択する(ステップS52)。このユーザ入力は、出力デバイスによって出力された違反食事に含まれる料理の内容を見たユーザが、出力された料理のうちいずれかを選択することによって実行される。次に、食種展開部300は、ステップS52で選択した料理(以下、「選択料理」という。)と類似する料理候補リストを取得する(ステップS53)。料理候補リストは、記憶部100の料理データが示す料理から、選択料理と同じ区分の料理であって、選択料理との間の類似度が閾値以上となるものを抽出することによって作成される。類似度には、選択料理を構成する食材の集合をPIngredientsとし、抽出候補となる料理を構成する食材の集合をIngredients’とした場合における以下の数式15に示すJが用いられる。食種展開部300がステップS53を実行する機能が本発明における候補料理抽出手段の機能に対応する。
【0082】
(数式15)
【0083】
次に、食種展開部300は、展開前候補について数式12に示す目的関数g(本発明における第3の目的関数)を算出する(ステップS54)。ここで目的関数gの算出に使用される制約条件は展開元のものである。以下、ステップS54で算出されたgをg0とする。食種展開部300がステップS54を実行する機能が本発明における展開前算出手段の機能に対応する。次に、食種展開部300は、ステップS53で取得されたリストに含まれる料理候補を1つずつ選択料理と入れ替えた場合における展開前候補に関し、数式12に示す目的関数g(本発明における第4の目的関数)を算出する(ステップS55及びS56)。ここで目的関数gの算出に使用される制約条件は展開先のものである。なお、食種展開部300がステップS55を実行する機能が本発明における展開後算出手段の機能に対応する。次に、食種展開部300は、ステップS53で取得されたリストに含まれる料理候補のうち、ステップS55で算出されたgがg0を超える料理から、gが1番目に大きいものから3番目に大きいものまでの3つを抽出する(ステップS57)。食種展開部300がステップS57を実行する機能が本発明における好適候補料理抽出手段の機能に対応する。次に、食種展開部300は、ステップS57で抽出した3つの料理の内容を出力デバイスに出力させる。ステップS52~S58が違反食事リストに含まれる違反食事のそれぞれについて実行されることにより、全ての違反食事に関する代替料理としてそれぞれ3つの料理が出力されることになる。
【0084】
[実施形態の主な効果]
以上説明した本実施形態によると、数式1に示す目的関数fに基づいて1日分の食事を構成する朝食、昼食及び夕食を導出する。そして、これをN回繰り返すことで、1か月分に対応するN日分の食事の内容からなる献立候補を導出する。目的関数fは、上記1日分の食事及びそれより過去の食事を含む複数食分の食事の内容が<1日分の条件>を満たす度合いを示す。したがって、複数食分の食事に跨って設定された条件を含む複数の条件に基づいて献立を作成することが可能である。また、上記の通り、<1日分の条件>における制約条件は、目的関数fに影響を及ぼすその他のいずれの条件よりもfの値を顕著に大きく変動させる。<1日分の条件>に含まれる制約条件については、その他の条件と比べて献立の内容を強く制約するように献立が作成される。したがって、制約条件を満たす献立が作成されやすい。
【0085】
[変形例]
以上は、本発明の好適な実施形態についての説明であるが、本発明は上述の実施形態に限られるものではなく、課題を解決するための手段に記載された範囲の限りにおいて様々な変更が可能なものである。
【0086】
例えば、上述の実施形態では、数式1及び12に示す目的関数f及びgが用いられている。f及びgのいずれも献立が条件を満たす内容に近いほど大きくなる。したがって、目的関数が大きくなるような献立ほど好適な献立であり、目的関数が最大値を取る献立が最適な献立である。かかる目的関数は、各条件における特性値の変数の取り得る範囲において条件を満たすほど大きくなるような関数であればよい。つまり、かかる範囲における関数の最大値が、変数が料理の特性上取り得る範囲を超えた範囲を含むあらゆる範囲における最大値であってもよいし、そうでなくてもよい。また、献立が条件を満たす内容に近いほど小さくなるような関数が目的関数として使用されてもよい。この場合、目的関数が小さくなるような献立ほど好適な献立であり、目的関数が最小値を取る献立が最適な献立である。また、かかる範囲における関数の最小値が、変数が料理の特性上取り得る範囲を超えた範囲を含むあらゆる範囲における最大値であってもよいし、そうでなくてもよい。
【0087】
また、上述の実施形態に係る1日分作成部220は、朝食、昼食及び夕食の順序で、数式1のfが最大となる1食をJ食分の食事から選択する。しかし、1日分作成部220がこれとは異なる順序で各食事をJ食分の食事から選択してもよい。例えば、昼食、夕食及び朝食の順序で各食事がJ食分の食事から選択されてもよい。この場合、tの日の昼食について食事が選択される場合には、<1日分の条件>のうち、過去複数日分の献立候補に係る条件において、t-1の日(tの前日)までの複数日分の献立候補が考慮される。また、tの日の夕食について食事が選択される場合には、<1日分の条件>のうち、過去複数日分の献立候補に係る条件において、tの日の昼食及びt-1の日までの複数日分の献立候補が考慮される。さらに、tの日の朝食について食事が選択される場合には、<1日分の条件>のうち、過去複数日分の献立候補に係る条件においては、tの日の昼食及び夕食並びにt-1の日までの複数日分の献立候補が考慮される。
【0088】
また、上述の実施形態に係る第1の修正処理において、1か月分作成部230が献立候補中のワースト1食をそれより栄養価の良い食事に変更する。ワースト1食は栄養価が最も悪い日における栄養価が最も悪い食事である。しかし、かかるワースト1食の代わりに、比較的悪い食事(本発明におけるバッド1食)がそれより栄養価の良い食事に変更されてもよい。「比較的悪い食事」かどうかは、例えば、栄養価に関する所定の閾値からなる範囲を逸脱するかどうかに基づいて判定される。
【0089】
また、上述の実施形態においては、図3に示すように、1食分作成部210によるJ食分の食事の作成と、そのJ食分の食事に基づく1日分作成部220及び1か月分作成部230による1か月分の献立候補の作成とを、献立作成システム1が一連の処理として実行する。しかし、1日分作成部220及び1か月分作成部230のみがシステムに設けられており、1食分作成部210が実行する処理と同様の処理に基づいてあらかじめ作成されたJ食分の食事について、食事の内容を示すデータファイル等を外部から取り込むこと等によって取得し、上記データファイル等に基づいて1か月分の献立候補を作成するようにシステムが構成されていてもよい。
【0090】
また、上述の実施形態においては、1日分の献立が朝食、昼食及び夕食の3食を含んでいる。しかし、1日分の献立が1食であっても2食であってもよいし、4食以上であってもよい。これらの場合には、上記<1食分の制約条件>、<1日分の条件>及び<N日分の制約条件>を1日分の献立の食事数に応じて修正した条件が用いられる。
【0091】
また、上述の実施形態に係る各種の条件は単なる一例であって、上記と異なる条件が用いられてもよい。例えば、<1日分の条件>の(I)が下記(I’)に置き換えられてもよい。
(I’)和洋中 制約条件として、和食、洋食及び中華のそれぞれについて出現日の間隔を設定された日数とすること。
この場合、第2の修正処理において、ステップS33の食事候補リストの作成方法も以下の方法に置き換えられる:最古違反日で違反している食事がi(iは和食、洋食及び中華のいずれか)であるとき、その違反内容が上記設定された日数に対応する間隔よりも出現日の間隔が大きいことである場合には、和洋中がiとなる食事を所定数作成する。また、最古違反日で違反している食事の違反内容が上記設定された日数に対応する間隔よりも出現日の間隔が小さいことである場合には、和洋中がi以外となる食事を所定数作成する。各食事は、記憶部100の料理データ及び条件データに基づき、上記<1食分の制約条件>をそれぞれ満たすように作成される。なお、第2の修正処理におけるその他のステップの内容は上記同様である。
【0092】
また、上述の実施形態に係る献立作成システム1は、通信ネットワークを通じて互いにデータを送受信する複数のコンピュータを用いて構築されることが想定されている。しかし、上述の実施形態に係る献立作成システム1を、1つのコンピュータを用いて構築してもよい。
【符号の説明】
【0093】
1 献立作成システム
100 記憶部
200 献立作成部
210 1食分作成部
220 1日分作成部
230 1か月分作成部
300 食種展開部
図1
図2
図3
図4
図5
図6