多人数合意形成を考慮した
対話型進化計算による献立作成○武石光平 染谷博司（東海大学）折登由希子（広島大学）加島智子（近畿大学）
Menu planning using Interactive Evolutionary Computation
with consideration of multi-person consensus building* K. Takeishi, H. Someya (Tokai University), Y. Orito (Hiroshima University), T. Kashima (Kinki University)
There are many people who are troubled by the creation of a menu planning. One ofthe main reasons for this is consensus building. In recent years, there has been research on generating good menus. However, these techniques do not Correspondence the situation of multiple people.
In this paper, we propose multiple people use interactive evolutionary computation together. Using
this technique, we create a menu plan with consensus building. As a result, we were able to create amenu planning with high level of satisfaction among the subjects.
Abstract－Key Words: 遺伝的アルゴリズム, 合意形成, 献立

1

はじめに何らかの意思決定が求められ, その意思決定に複数の人が関わるとき, その集団を構成する一人一人が満足するように, 集団全体の意思や方向性を決める過程を合意形成と呼ぶ. 特に, 近年の組織化および複雑化した社会においては, 意思決定に関わる要因が拡大しているため, 合意形成が必要とされる場面は多い.
他方, 一般に, 人間の価値基準はそれぞれ異なり,意見を一致させる試みは容易ではない. 集団に属する人達には, 各々の事情や利害があり, ある個人にとっては好ましい選択肢が, 別の個人にとっては, 好ましくない選択肢となる場合がある. そのため, 合意形成の調整役となる者の心理的負担や時間的負担は多大である.
本研究では, 献立作成問題に対し, 合意形成を行う
手 法 であ る並 列分 散 対話 型遺 伝的 アル ゴリ ズ ム(Parallel Distriuted Interactive Genetic Algorithm：PDIGA)1)を適用した接近法を提案する. 献立作成問
題における合意形成とは, 家族などの複数人に対して同じ料理を作る際に, 全員分の嗜好の考慮を指す. なお, 既存の献立支援を行うサービスや先行研究には利用者の嗜好を取り入れるため対話型遺伝的アルゴリズム(Interactive Genetic Algorithm：IGA)を適用した事例がある 2). IGA は, 1 人の人間の感性に基づいた設計に対して有効である. 合意形成について考慮された事例は報告されていない.
以下本稿では, 料理の調理法や栄養情報のデータを利用可能と仮定し, “料理データベース”と呼ぶ. そして, データベースに登録されているレシピを“料理”と定義する. さらに, レシピ内の見出しになっている材料を“食材”と定義する.

2

Fig. 1: PDIGA のアルゴリズム 1)

並列分散対話型遺伝的アルゴリズム

PDIGA のアルゴリズムと概念図をそれぞれ Fig. 1と Fig. 2 に示す.

Fig. 2: PDIGA 概念図 1)

PDIGAとは, Fig. 2のように全体の個体群をいくつかの島と呼ばれる単位に分割し, 各島ごとに IGA を行う手法である.各世代ごとに操作者が選択した優良解を他操作者の島に移動させる, これを移住と呼ぶ. このことにより, 互いの設計解を IGA 処理に組み込む.
移住してきた優良解を親個体として採用することによって, 次世代では他操作者の感性を反映した新たな解が生成される.
通常, 合意形成は, 行為を行うという意思のもとで用いられる. そのため, 互いに妥協を受け入れようとする意識が働く. しかし, PDIGA は他操作者からの移住個体がどの個体かを操作者が判別できないため, 互いに妥協の受け入れを意識することなく, 合意形成が可能である.

3献立表現

3.1 献立の構成
本研究では, 日本古くからの献立構成である一汁三菜を採用する. 一汁三菜は, 主食, 汁物, 主菜, 副菜2 種の 5 種類から構成される. 構成の詳細は, 主食がご飯などの炭水化物, 汁物が味噌汁などの水分, 主菜が肉や魚などのタンパク質, 副菜がキノコ, 芋類などの野菜である. これらにより, 人体に必要な栄養バランスを効率よく満たすことができる. さらに和食だけでなく, 洋食, 中華などにも適用できる.
カレーライスのように, 主食となる白米, 副菜となる野菜類を 1 品内に含む料理がある. その場合は, 1品で主食と副菜の 2 種類を満たすものと定義する.
3.2 遺伝子構成本研究では, 解候補となる献立を 5 つの料理にて構成する. 各料理は, 味, ジャンル, 使用する食材 2 種,の要素で構成される. したがって, 料理ひとつあたりの遺伝子長は 4 であり, 献立全体を表す染色体長は20 である. 各料理を表現する 4 つの遺伝子に対して,その前半の 2 つを Taste Block, 後半の 2 つを Foodst
uff Block と呼ぶ.
・Tasteブロック
Taste ブロックは, 料理の味を表現する遺伝子であり, Taste, Genreの要素で構成される.

Taste遺伝子は, 生理学の五基本味と言われる酸味,甘味, 塩味, 苦味, 辛味, 及びその他, のいずれかを表す. Genre遺伝子は, 料理の三大ジャンルである和風,洋風, 中華, 及びその他, のいずれかを表す.
・Foodstuffブロック
Foodstuff ブロックは, 料理で用いられる主要な2つの食材を表す遺伝子であり,Food1, 2で構成される.
各Food遺伝子は, 料理データベースに登録された食材のいずれかを表す. 白飯単体のように,単食材で構成される料理は, Food2遺伝子を0で表現する.
遺伝子の実装例をFig. 4に示す. Geneクラスは要素名と値を持ち, そこからTaste, Genre, Foodのインスタンスを生成する. 生成されたインスタンスは配列を用いて献立となる染色体を表現する. 遺伝子表現の例
をFig. 4に示す.

Fig. 4: 遺伝子表現例
3.3 料理データベース
料理データベースには,料理が含有するカロリー量,脂質量, タンパク質量, 糖質量などの栄養素データが記載されている. また, 主食, 汁物, 主菜, 副菜のいずれに用いられる料理であるかも記載されている.
・栄養素データ
解候補となる献立の栄養面を定量的に評価する. そのため, 献立を構成する各料理のカロリー量, 脂質量,タンパク質量, 糖質量のデータをそれぞれ足し合わせ,一食あたりの適正栄養素量と比較する. そして, その乖離度に基づき解候補となる献立が優良であるかの評価を行う.
・構成データ
個体生成時, 料理データに記載されている構成データを参考に個体を生成することで, 一汁三菜の構成を保つ. 1品で一汁三菜の2種類の構成要素を兼ねる料理は料理データ内に2種類分の構成が記載されている.

4提案手法

本研究では, 評価基準がユーザの感性に基づくことから, さらに, 多人数で評価を行い合意形成を図ることから, PDIGAを用いる.
4.1 システム機能

5.1 実験設定
主食, 汁物, 主菜, 副菜 2 種の 5 品目を献立の基本構成とし, ランダムに生成した初期個体を Fig. 5 のように被験者に提示する. 初期個体数は実験 1 では 9 個体, 実験 2 では 10 個体とし, 被験者は全ての献立に対し 10 段階評価を行う. 評価を行なった全個体中から被験者の評価が優れた個体を 5 個体選択し, エリート個体とする. そして, エリート個体から突然変異および交叉によって次世代に 5 個体生成する. 残りの個体は他被験者とエージェントの個体群からの移住個体である. 移住個体は各被験者が各世代において選んだエリート個体とする. 移住は 2 世代目から毎世代行われる. 表示画面上ではランダムに配置されるため, 被験者にはどれが移住個体かを判別はできない. 終了世代数を 10 とし, 献立を提案する.

様々な情報端末からネットワークに接続し, システムにアクセスする. 被験者にはシステムが生成した献立を画面に提示する. 被験者は各献立について好みに合うかで 10 段階評価を行う. 最終世代目で選択した
エリート個体を最終的な献立とし, 献立に必要な料理の作り方を被験者に提示される.
4.2 エージェントの導入
ユーザの嗜好を満足する選択肢の提案が要求される実問題の多くは, トレードオフの関係にある別の評価基準についても考慮する必要がある. 例えば, 献立においては栄養バランスがその一つである. しかし,PDIGA では, 各ユーザが栄養バランスを考慮せずに献立の評価をした場合, 栄養バランスに問題のある献立が作成される可能性がある. そこで本研究では,PDIGA 実行時にユーザに加えて栄養士エージェントの導入により栄養バランスを改善する.
＜栄養士エージェント＞
栄養士エージェントは, システムによって提示された献立を各栄養素データの合計値が適正量からどの程度乖離しているか評価する. 栄養士エージェントの導入により, システム利用者は栄養バランスに意識を働かせる必要がなくなるため, 献立作成の負担を軽減できる. 栄養士エージェントは, システム内において,あたかもユーザの一人かのように振る舞う.

5Fig. 5: 献立提案画面
5.2 実験結果
実験の前後にて, 満足度のアンケート調査を実施した. 被験者らは, 初期個体時および合意結果それぞれに対して, 満足度を段階で回答する. 回答結果をFig. 6, 7 に示す. また, 初期個体時および合意結果後の栄養バランスを比較した結果を Fig. 8, 9 に示す.
これらより, エージェントが加わることによる栄養バランス改善の度合いを確認する. また, 実験 1, 2 の合意結果を栄養バランスで比較したグラフを Fig. 10に示す. これより, エージェントの適正人数を確認する. なお, 棒グラフの値は適正量からの乖離率を表しており, 適正量と合致する場合には 0 と表現される.

実験

提案手法より生成した献立が適切に栄養バランスの考慮と合意形成が行われているかを実験により確認す
る. そのため,被験者 4 名である. 栄養士エージェント
は 1 名または 2 名とし, それぞれを実験 1 および実験2 とする. これらの比較により, 栄養士エージェントの適正数を調査する.
Fig. 6: アンケート結果（実験１）Fig. 7: アンケート結果（実験 2）

5.3 考察Fig. 6, 7 より, 合意形成によって被験者の満足度が改善されたことがわかる. また, Fig. 8, 9 より, 初期個体時に大きく適正量から超過していた栄養素があったが, 合意形成により概ね値が誤差の範囲に収まったことがわかる. これは, 栄養バランスの改善を意味する.
しかし, Fig. 10 より実験 1 と 2 のデータを比較すると,実験 1 は実験 2 より栄養バランスが乱れている. これは被験者 4 名に対し, エージェント 1 名だと 2 名の場合より, エージェントの栄養バランスを改善しようとする意見の重みが不十分であったためと推察する. 被験者の満足度が実験 1, 2 で大きく変わらない結果を踏まえると, 実験 2 のエージェントの割合の方がが適していると考えられる.

6Fig. 8: 栄養素別の乖離率（実験１）

おわりに

本研究では,合意形成を必要とする献立作成問題に対して, PDIGA による献立作成手法を提案した. 献立の作成は料理を考える事だけでなく，集団の好みに合う料理を選択する事も難しい要素の一つである 4)．
そういった点でも，集団一人一人の好みを反映した献立を並列的に提案することで,各々の好みに合う献立を考える手間が省け,毎日の献立を考える煩わしさの緩和という本研究の目的解決の糸口を提示できた. しかし,合意形成後の献立を見ると, 主食に丼物や麺類が頻出していた. 日本の一般家庭の献立は主食を白飯とし, そこに菜を足す構成を主流としている. 毎日,丼物を作る家庭は少ない. 被験者からも, 献立は毎日作るものだから家庭に合わせたバイアスをかけられると好ましいという意見が得られている. そのため, 今後は初期個体や交叉の手順に対し, 主食を白飯にするなどの誘導が必要と考える. また, システム利用者の嗜好は体調や気分によって毎日変化する. そのため,ユーザにシステム利用時の嗜好を予め入力してもらうことにより, 進化の効率向上が期待できる.

参考文献
Fig. 9: 栄養素別の乖離率（実験２）

1)

2)

3)

Fig. 10: 合意結果の乖離率比較

三木, 廣安, 富岡：”並列分散対話型遺伝的アルゴリズムを用いた合意形成システムの有効性”, 人工知能学会論文誌 20 巻 4 号 C(2005 年)
松本, 染谷：”対話型進化計算を用いた献立作成システムにおける嗜好抽出”, 平成 26 年電気学会電子・情報・システム部門大会講演論文集, p1765-1766(2014 年)
ストプレ！献立に対する主婦へのアンケート調査（2021/2/5 参照）
https://straightpress.jp/20141120/68927