イジングマシンを用いたレシピ推薦
秋島 遥

1(指導教員：工藤和恵)

はじめに



家事の時間は，1 日の中で大きな割合を占める．中でも料理は，家にある食材や特売情報，栄養素，調理時間などさまざまな要素を考慮しつつ献立を考える必要があり，負荷のかかる仕事である．また，食品ロスも深刻な問題である．農林水産省の令和 2 年度推計値 [1]によると，年間 522 万トンもの食品ロスがあり，その内で家庭系食品ロスは 247 万トンと全体の 47%を占める．家庭内での食材の廃棄を減らすことが重要となる．
そこで，毎日の献立考案にかかる家事負担を減らすこと，家庭での食品ロスを減らすことを目標に，イジングマシンを用いたレシピ推薦を行う．イジングマシンとは，組み合わせ最適化問題を高速に解くことに特化したコンピュータのことである．膨大な数のレシピから，最適な組み合わせを探し出して献立を作成することは組み合わせ最適化問題として考えることができる．

2

Hconstitute = α1 i∈ 主食∑α2  ∑+xi  xi − 12i∈ 主菜∑+ α3 
+α4 2i∈ 主菜

xi −i∈ 副菜∑+ α5(N∑2∑2xi  )2(lyl  + α3l=0i∈ 汁物

∑



1−2
∑
l=0xi − 1i∈ 汁物

xi − C

(2)

i=1

問題設定

それぞれのレシピは主食，主菜，副菜，汁物のうちどれか 1 つに分類されている．第 1 項は主食に属するレシピが 1 個だけ選ばれたときのみ 0 になる one-hot 制
約，第 2 項は主菜，第 4 項は汁物に属するレシピがそれぞれ 0–1 個選ばれるようにする制約である．第 3 項の yl は二値の補助変数で，副菜の数が l 個であるとき1，そうでないとき 0 とする．よって副菜に属するレシピが 0–2 個選ばれるようにする制約である．第 5 項
は，ユーザが献立の個数を 1 ≤ C ≤ 5 で指定することができ，その個数で献立を構成するようにする制約である．
2 つ目の項 Hnutrition は栄養素に関する項である．
((N))2A∑
1 1 ∑Hnutrition =βkvi,k xi − Vk(3)ϵ Vkk=1i=1

A は考慮する栄養素の数 (エネルギー、塩分、たんぱく質、野菜摂取量の 4 つ) を表す．vi,k はレシピ i の栄
養素 k の量，Vk は栄養素 k の理想値である．献立全∑N
体での栄養素 k の量 i=1 vi,k xi と，栄養素 k の理想値 Vk との差を理想値 Vk で割り，理想値との誤差を表す．ここで，ϵ = 0.2 で割ると，理想値との誤差がちょうど 20%のとき，外側の括弧の中身が 1 となる．それぞれの栄養素 k について，βk を除いた式の値が 1 以下のとき充足と判定することで，理想値との誤差が 20%までを制約の範囲とした．
3 つ目の項 Htime は調理時間に関する項である．
(∑)
N
i=1 ti xi
Htime = γ(4)T

定式化

イジングマシンを利用するには，問題を二値変数の2 次多項式で表現する必要がある．本研究では，二値変数が {0, 1} をとる QUBO 形式で，エネルギーを表す式であるハミルトニアンを表現する．変数は xi で表し，レシピ i が選択されたときに 1，選択されなかったとき 0 とする. 1 食分の献立を作成するハミルトニ
アン H は，次式のように構成した．

H = Hconstitute + Hnutrition + Htime + Hfoodxi − 1

本研究では，味の素株式会社のレシピ大百科 [2] から取得した 4679 個のレシピデータを用いる．このレシピデータから，レシピのタイトル，材料，カテゴリ(主食，主菜，副菜，汁物)，ジャンル (和風、洋風，中華風，韓国風)，栄養情報 (エネルギー，塩分，たんぱく質，野菜摂取量)，調理時間の情報を抽出した．材料に関しては，食材名を日本食品標準成分表 [3] にある食品名にし，分量の単位を g に統一した．最適化を行う際，入力データとして，ユーザから食材情報 (これから買う食材，家庭で余っている食材，使い切りたい食材，好き嫌いなど)，献立の条件 (各栄養素，調理時間の理想値と重み) を受け取る．以上のデータを用いて，(1) 献立の構成は主食 1 個，主菜 0–1 個，副菜 0–2個，汁物 0–1 個，(2) 献立に含まれるレシピの栄養素の合計値を理想値に近づける，(3) 献立に含まれるレシピの合計調理時間を理想値以下にする，(4) 使いたい食材をできるだけ使うレシピを選ぶ，という 4 つの制約を満たす解をイジングマシンで求める．

3

2∑(1)

この式 (1) を最小化する変数の組み合わせが，最適な献立となる．レシピの総数は N ，食材の総数は M で表す．
1 つ目の項 Hconstitute は献立の構成に関する項である．

ti はレシピ i の調理時間，T は調理時間の理想値を表∑Nす．献立に含まれるレシピの合計調理時間 i=1 ti xi
を理想値 T で割ることで，合計調理時間が短いほどペナルティが小さく，ちょうど T のときに括弧の中身が1 となる．γ を除いた式の値が 1 以下のとき充足と判定することで調理時間 T 以下を制約の範囲とした．
1)2yl4 つ目の項 Hfood は食材の使用に関する項である．
ユーザから使用したい食材情報の入力がなかった場合と，入力した食材のみで作ることができるレシピが 100個以上あった場合はそのレシピのみで献立作成を行うこととし，この項は使用しない．100 個未満だった場合，入力の食材を主食材とするレシピの集合である Inputを作成する．集合 Input に含まれるレシピを一つ以上献立に含めるよう制約 Hinclude を追加する．
2()255∑∑∑lzl −xi  +ζ 1 −zl
Hinclude = ζ i∈Input

l=1

表 2. 献立の構成

Huseup = η(∑

l=1

Fj

j=1

N
i=1 xi uij

wj(6)Fj は食材 j を使い切りたいときは 1、そうでないときは 0 をとる値である．uij はレシピ i に必要な食材 j の量，wj は使いたい食材 j の量を表している．使い切りたい食材 j についてのみ wj と献立全体で使う食材 j の∑N量である i=1 xi uij を近づける．Hfood は，Hincludeと Huseup を合わせたものである．
ここで，α1−5 ，βk ，γ ，ζ ，η は，制約の強さを変化させる正のパラメタである．値はそれぞれ α1−5 = 1，0.1 ≤ βk ≤ 0.5，0.5 ≤ γ ≤ 1.0，ζ = 1，0.1 ≤ η ≤ 0.5で設定した．

45

実行は，レシピデータのカテゴリごとに行い，得られた解を合わせてユーザに提示する．レシピの個数は，それぞれ和風が 2233 個，洋風が 1379 個，中華風が 947個，韓国風が 120 個である．変数の数はここから食材情報をもとに整形した個数となる．ソルバーは Fixstars
Amplify AE [4] を用いた．食材情報として，使用食材に「＜畜肉類＞ ぶた ［中型種肉］ ばら 脂身つき 生」(以下ぶたばら)，使い切りたい食材に「（にんじん類） にんじん 根 皮つき 生」(以下にんじん) 100 g を設定した．献立の条件として栄養素の理想値を女性 (18–69 歳) 1 食分 [5] として表 1 のように設定し，調理時間の理想値は 60 分とした．

エネルギー
塩分
たんぱく質
野菜摂取量
調理時間

制約の充足判定の範囲

650 (kcal)
2 (g)
20 g
120 g
60 (分)±130 (kcal)±0.4 (g)±4 (g)±24 (g)60 (分) 以下

688.0 (kcal)
2.0 (g)20.9 (g)122.0 (g)17 (分)

Hconstitute

値

Hnutrition

値

第1項
第2項
第3項
第4項
第5項
Htime

0000
不使用値

エネルギー
塩分
たんぱく質
野菜摂取量

0.085444
0.000000
0.050625
0.006944

Hfood

値

式 (4)

0.283333

式 (5)
式 (6)

00.062500まとめ

謝辞 本研究は，2022 年度未踏ターゲット事業の支援を受けています．

参考文献[1] 農林水産省, 食品ロスとは, https://www.maff.
go.jp/j/shokusan/recycle/syoku_loss/161227_4.html (2023 年 1 月 31 日アクセス).
[2] 味 の 素 株 式 会 社, 「AJINOMOTO PARK」,
https://park.ajinomoto.co.jp/ (2022 年 8 月23 日アクセス).

表 1. 理想値 (18–69 歳の女性 1 食分)

理想値

「ご飯」
「豚ばら肉の塩焼き」「オクラのサッとあえ」「にんじんシリシリ」

本研究では，イジングマシンを使って、栄養素・調理時間・食材の使用を考慮した献立作成を行う方法を提案した．献立の条件である理想値，重みを変化させることで，柔軟に解を得ることが可能である．

結果項目

主食
主菜
副菜
副菜

エネルギー
塩分
たんぱく質野菜摂取量
調理時間いずれも制約を満たしており，栄養素，調理時間についての項 Hnutrition ，Htime はパラメタを除いた式の値が充足の範囲である 1 以下に収まっていることがわかる．さらに，食材に関する項 Hfood は，使用食材であるぶたばらを主菜の「豚ばら肉の塩焼き」で使用し，使い切りたいと指定したにんじんは，副菜の「にんじんシリシリ」で持っている 100 g 中 75 g (1 人分) を使用しており，使い切りを考慮していることが読み取れる．
他のユースケースとして，男性の 1 食分，高血圧の方を想定し塩分を少なめ，ダイエットをしたいユーザに向けてエネルギーの理想値を低くする，といった設定で実行を行い，それぞれ制約を満たす解が複数得られることを確認した．

)2
−1

レシピ名

表 4. 各項のパラメタを除いた式の値(5)zl は二値の補助変数で，集合 Input の中から選ばれたレシピの数が l 個であるとき 1，そうでないとき 0 とする．
その後，使い切りたい食材があれば，使い切りの制
約 Huseup を追加する．
M∑

表 3. 表 2 の献立情報

構成[3] 文 部 科 学 省, 日 本 食 品 標 準 成 分 表 2020 年
版（八訂）, https://www.mext.go.jp/a_menu/
syokuhinseibun/mext_01110.html (2022 年 8 月23 日アクセス).
[4] Fixstars, 量子アニーリングと共に進化するク
ラ ウ ド Fixstars Amplify，https://amplify.
fixstars.com/ (2023 年 1 月 31 日アクセス).

和風のレシピでの実行結果の一例を表 2 に示す．表 3は，表 2 の献立全体の栄養素，調理時間を表しており，いずれも表 1 に示す制約の充足判定の範囲に収まっていることがわかる．また，パラメタを除いた各式の値を表 4 に示す．献立の構成についての項 Hconstitute は[5] 厚生労働省，「日本人の食事摂取基準（2020 年版）」策定検討会報告書，https://www.mhlw.go.
jp/stf/newpage_08517.html (2023 年 1 月 31 日アクセス).
2