LoginSignup
168
101

More than 3 years have passed since last update.

食費最適化 〜338 円(税込)で1日分の五大栄養素〜

Last updated at Posted at 2020-06-20

概要

pythonライブラリのPuLPを使い、栄養を過不足なく摂れるという条件の下で食費最適化計算をしてみました。結論として、338 円(税込)で1日分の五大栄養素を摂取できる事が分かりました。

PuLP

PuLPとは線型計画問題を解けるpythonライブラリです。以下の様にして線型計画問題を解く事ができます。

python
import pulp

# 問題を作成
problem = pulp.LpProblem("最小化問題", pulp.LpMinimize)

# 変数を作成
x = pulp.LpVariable(f'var0')
y = pulp.LpVariable(f'var1')

# 目的関数を設定
problem += x + y

# 制約条件を設定
problem += 2 * x + y >= 1.5
problem += x + 2 * y >= 1.5

# 解く
problem.solve()

# 結果を表示
print(
f'''
最小値:{pulp.value(problem.objective)}
x:    {pulp.value(x)}
y:    {pulp.value(y)}
'''
)
output
最小値:1.0
x:    0.5
y:    0.5

今回行った食費最適化計算では次の様な問題を解きました。

項目
問題の種類 最小化問題
変数 食品の数量(ご飯〇〇gなど)
目的関数 食品の価格の合計値
制約条件 ・栄養成分の合計値が食事摂取基準の推奨量を超える
・栄養成分の合計値が食事摂取基準の耐容上限量を超えない
など

※ 制約条件の基準値には、男性 53kg 18~29歳代 身体活動レベル2(通勤など軽い運動をする)における値を使用しました。

ちなみに、PuLPの詳細はこの記事に分かりやすく書かれています。

計算結果

次の組み合わせで1日分の五大栄養素を摂取できる事が分かりました。合計 338 円(税込)です。

食品名 数量 価格(税込)
ご飯 912g(炊いた状態) 150
きな粉 76g 57.2
カットわかめ 2g 8.56
だし入り味噌 30g 8.56
ほうれんそう 31g 19.8
0.3g 0.0291
スキムミルク 24g(粉の重量) 31.8
オリーブオイル 15g 14.7
えごま油 6.6g 26.2
ネイチャーメイド スーパーマルチビタミン&ミネラル 1粒 14.8
ネイチャーメイド ベータカロテン 1粒 5.41

食品ごとの役割は次の通りです。

食品 役割
ご飯 炭水化物とたんぱく質の主な供給源です。
きな粉 重量の9割以上が炭水化物・タンパク質・脂質で構成されています。特に食物繊維が大量に含まれています。その量なんと重量の17%。
ネイチャーメイド スーパーマルチビタミン&ミネラル 1粒で大半のビタミン・ミネラルを摂取できるサプリです。
えごま油 6割がオメガ3脂肪酸で構成されています。
その他 栄養成分の調整用です。

最後に

本記事で紹介した食費最適化の詳細を Githubで公開しています。READMEに詳細を記載しています。また、この食費最適化で使用したipynbファイルを併せて公開しています。変数となる食品や、栄養成分の制約条件を変更しやすい形にしてあります。

また、制約条件の基準値として使用した、厚労省が公表している食事摂取基準をCSVにしたものをGithubで公開しています。


※ この記事はステマではありません。

追記(余談)

  • この献立だと洗い物が楽です。えごま油とオリーブオイルはスプーンで飲めばOKで、他は油っこくないためです。
  • きな粉は水に溶けやすいです。なので、プロテインと同じ様に飲むと楽です。
  • きな粉1kgは3Lタッパーに収まります(1kgでは袋にチャックがついていない場合が多いです):
    IMG_4375.jpg

  • 画像にしてみました:
    スクリーンショット 2020-06-24 午後10.46.40.png

168
101
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
168
101