SlideShare a Scribd company logo
1 of 17
#
栄養の取り方はデータが教えてくれる
〜最適化問題を解く〜
夏の自由研究発表会2016
2016.9.4
Matz
2016年9月4日 夏の自由研究発表会2016 Matz 2
#
Agenda
●
栄養について
●
最適化について
– 手法:線形計画法
– Solver:GLPK (GNU Linear Programming Kit)
– 実行ソフト:Gusek
– データ形式:MathProg
– 計算結果
●
参考サイト
2016年9月4日 夏の自由研究発表会2016 Matz 3
#
そもそもの疑問
●
何を食べていれば栄養は満たされるのか?
●
自分の食生活は大丈夫なのか?
栄養について
2016年9月4日 夏の自由研究発表会2016 Matz 4
#
栄養の摂取基準はあるのか?
●
厚生労働省が「日本人の食事摂取基準」を策定
栄養について
「日本人の食事摂取基準(2015 年版)の概要」(厚生労働省)より抜粋)
基準は分かるが、食品はわ
からない
2016年9月4日 夏の自由研究発表会2016 Matz 5
#
栄養をバランスよく取るには?
●
農林水産省が「食事バランスガイド」を策定
栄養について
「食事バランスガイド」(http://www.maff.go.jp/j/balance_guide/)
ざっくりしすぎていて栄養バランスがいいのかきになる。
2016年9月4日 夏の自由研究発表会2016 Matz 6
#
どの食品にどんな栄養素が含まれるのか?
●
文部科学省が「日本食品標準成分表」を作成
●
さらに、データベース化して提供
栄養について
「食品成分データベース」(http://fooddb.mext.go.jp)
食品は検索できるが、栄養バラ
ンスを満たすかどうかについて
の情報は得られない
2016年9月4日 夏の自由研究発表会2016 Matz 7
#
国ってやつは・・・
栄養について
文部科学省
農林水産省
厚生労働省
2016年9月4日 夏の自由研究発表会2016 Matz 8
#
栄養バランスのとれた食事を考えてみよう
とすると・・・難しかった
●
栄養素iについて、食品jに含まれる量をnij、摂取目
標値をai
食品jの摂取量をxjとすると、栄養素iの摂取量は
 Σj nij * xj >=ai
これがすべてのiについて成り立つ必要がある。
●
さらに、最安で組み合わせたいので、食品jの価格
をpjとして、上記を満たす組み合わせのうち、
 Σj pj * xj を最小化するものを探す
最適化について
2016年9月4日 夏の自由研究発表会2016 Matz 9
#
連立不等式の最適化=線形計画法
●
連立不等式の解放は最適組み合わせを探す、
繰り返し計算となる
●
変数が多くなるほど、計算時間がかかる
●
整数に限定するとさらに時間がかかる
→手計算では無理なのでソフトを使う
最適化について
2016年9月4日 夏の自由研究発表会2016 Matz 10
#
線形計画問題のソルバー選定
最適化について
1 thr CBC CPLEX GUROBI SCIPC SCIPS XPRESS MATLAB MIPCL
-------------------------------------------------------------------------
unscal 1639 86 74 418 517 93 3416 870
scaled 22 1.16 1 5.65 6.99 1.25 46.2 11.8
solved 53 86 86 75 70 86 26 65
-------------------------------------------------------------------------
●
ソルバーで代表的なものはエクセルのもの
→変数の少ないシンプルなものに対応
●
線形計画問題専用のソルバーも多数存在
http://plato.asu.edu/ftp/milpc.html
Mixed Integer Linear Programming Benchmark (MIPLIB2010)
↓有料 ↓有料 ↓有料 ↓有料 ↓有料 ↓有料 ↓有料 ↓有料
●
比較に登らないほど性能は劣るようだが、無料の
Solverとして広く知られているGLPKを選定
2016年9月4日 夏の自由研究発表会2016 Matz 11
#
ソルバー(GLPK)を使うための環境
●
ソフト:GUSEK (for Windows) ←無料
 もともとGLPKが使えるということで選定
 (GLPKR用やPythonもあります)
●
Macで使うために
 Wineをインストール ←無料
→Windowsのexeファイルが使える
最適化について
2016年9月4日 夏の自由研究発表会2016 Matz 12
#
問題を作る〜MathProg
●
GLPKで問題を解くためには
問題を定義するファイルを準備する必要がある
●
読み込めるファイル形式はMPS_fixed, MPS_free,
CPLEX_LP, MathProg
●
参考PDFを見つけたので今回はMathProgという言
語を利用
→ 数式をプログラムで定義
→ csv ファイルを読み込み
最適化について
2016年9月4日 夏の自由研究発表会2016 Matz 13
#
問題を作る〜MathProg
●
厚生労働省の「日本人の食事摂取基準」
●
文部科学省の「日本食品標準成分表」
●
スーパーの商品価格
をテーブル化
最適化について
NUTRIENT INTAKE_MAX INTAKE_MIN
Energy 2530 2070
Proteins 127 60
Fats 84 46
Saturated_fatty_acid 0.07 0
n-6_fatty_acid 20 10
n-3_fatty_acid 4.2 2.1
データテーブ
ルの例
2016年9月4日 夏の自由研究発表会2016 Matz 14
#
問題を作る〜MathProg
食品には下記を選定(2013年の主食)
●
納豆
●
豆腐
●
米
●
低脂肪牛乳
●
野菜ジュース
●
卵
最適化について
●
レトルトカレー
●
そば
●
コーヒー
●
プロテインパウダー
●
フルグラ
●
レモン
2016年9月4日 夏の自由研究発表会2016 Matz 15
#
結果
Preprocessing...
PROBLEM HAS NO PRIMAL FEASIBLE
SOLUTION
Time used: 0.0 secs
Memory used: 0.4 Mb (449365 bytes)
Writing MIP solution to
'NutrientOptmizedMeal.out'...
>Exit code: 0 Time: 0.362
●
解けませんでした→もっと品目を増やさねば。。。
最適化について
2016年9月4日 夏の自由研究発表会2016 Matz 16
#
(参考)世の中の商品例
「ソイレント(英: soylent)は、Rosa
Labs, LLC. が販売している栄養機能食品の
飲み物。生存に必要な栄養素がすべて含ま
れ、従来の食事が不要となるという[1][2]。
味はほんのり甘く、この粉末を水などに溶
かして飲む[1][2]。」
(Wikipediaより抜粋)
https://ja.wikipedia.org/wiki/ソイレント
ソイレント(Soylent)
2016年9月4日 夏の自由研究発表会2016 Matz 17
#
参考サイト
https://www.ibm.com/developerworks/jp/linux/library/l-glpk1/
http://www.campus.ouj.ac.jp/~maps13/software/GLPK.html
’問題解決の数理( 13)
GNU Linear Programming KitGNU Linear Programming Kit 第第 11 回回:: 線形最適化の紹介線形最適化の紹介
https://www3.nd.edu/~jeff/mathprog/glpk-4.47/doc/gmpl.pdf
Modeling Language GNU
MathProghttp://cs.pwr.edu.pl/zielinski/lectures/om_en/glpk/gmpl.html
MathProg Manual
GLPKの簡易マニュアル
http://pse.web.nitech.ac.jp/doc/easymanual.pdf

More Related Content

Viewers also liked

副作用の機序別分類
副作用の機序別分類副作用の機序別分類
副作用の機序別分類AKira Kotsuka
 
014虹が丘病院 経腸栄養管理
014虹が丘病院  経腸栄養管理014虹が丘病院  経腸栄養管理
014虹が丘病院 経腸栄養管理chiikigenki
 
150719バイタルサイン講習会〜体験版〜
150719バイタルサイン講習会〜体験版〜150719バイタルサイン講習会〜体験版〜
150719バイタルサイン講習会〜体験版〜U Kishi
 
012佐世保記念 経管栄養法
012佐世保記念 経管栄養法012佐世保記念 経管栄養法
012佐世保記念 経管栄養法chiikigenki
 
入院患者の下痢へアプローチ
入院患者の下痢へアプローチ入院患者の下痢へアプローチ
入院患者の下痢へアプローチSentaro Iwabuchi
 
Case Presentation in Nutrition and Diet Theraphy
Case Presentation in Nutrition and Diet TheraphyCase Presentation in Nutrition and Diet Theraphy
Case Presentation in Nutrition and Diet TheraphyDivina De Buton
 
Vital signの生理学的解釈
Vital signの生理学的解釈Vital signの生理学的解釈
Vital signの生理学的解釈Norifumi Matsuda
 
Nutrition: "You Are What You Eat"
Nutrition: "You Are What You Eat"Nutrition: "You Are What You Eat"
Nutrition: "You Are What You Eat"eyeris007
 
高齢者の下痢:感染性腸炎 IDATENサマーセミナー2014
高齢者の下痢:感染性腸炎 IDATENサマーセミナー2014高齢者の下痢:感染性腸炎 IDATENサマーセミナー2014
高齢者の下痢:感染性腸炎 IDATENサマーセミナー2014Sentaro Iwabuchi
 
薬剤師会発表 薬剤師のNST(消化器症状)
薬剤師会発表 薬剤師のNST(消化器症状)薬剤師会発表 薬剤師のNST(消化器症状)
薬剤師会発表 薬剤師のNST(消化器症状)AKira Kotsuka
 
栄養リハのすすめ スライド
栄養リハのすすめ スライド栄養リハのすすめ スライド
栄養リハのすすめ スライドKeita Nakamura
 
Chapter 21 Nutrition and Cardiovascular Diseases
Chapter 21 Nutrition and Cardiovascular Diseases Chapter 21 Nutrition and Cardiovascular Diseases
Chapter 21 Nutrition and Cardiovascular Diseases KellyGCDET
 
4-1・5心房細動 動悸 高血圧 左室肥大
4-1・5心房細動 動悸 高血圧 左室肥大4-1・5心房細動 動悸 高血圧 左室肥大
4-1・5心房細動 動悸 高血圧 左室肥大Kenji Kawanai
 
栄養学の基礎を学ぼうv2
栄養学の基礎を学ぼうv2栄養学の基礎を学ぼうv2
栄養学の基礎を学ぼうv2Takayuki Miwa
 
看護部&理学療法部勉強会
看護部&理学療法部勉強会看護部&理学療法部勉強会
看護部&理学療法部勉強会shiso ono
 
私の考える輸液療法
私の考える輸液療法私の考える輸液療法
私の考える輸液療法guest6c0cc90
 
看護師さんのための血液ガス入門
看護師さんのための血液ガス入門看護師さんのための血液ガス入門
看護師さんのための血液ガス入門ochan78
 
輸液、基礎の基礎
輸液、基礎の基礎輸液、基礎の基礎
輸液、基礎の基礎daichi019
 
0528 kanntigai ui_ux
0528 kanntigai ui_ux0528 kanntigai ui_ux
0528 kanntigai ui_uxSaori Matsui
 

Viewers also liked (20)

副作用の機序別分類
副作用の機序別分類副作用の機序別分類
副作用の機序別分類
 
014虹が丘病院 経腸栄養管理
014虹が丘病院  経腸栄養管理014虹が丘病院  経腸栄養管理
014虹が丘病院 経腸栄養管理
 
サプリメントを使った栄養療法 
サプリメントを使った栄養療法 サプリメントを使った栄養療法 
サプリメントを使った栄養療法 
 
150719バイタルサイン講習会〜体験版〜
150719バイタルサイン講習会〜体験版〜150719バイタルサイン講習会〜体験版〜
150719バイタルサイン講習会〜体験版〜
 
012佐世保記念 経管栄養法
012佐世保記念 経管栄養法012佐世保記念 経管栄養法
012佐世保記念 経管栄養法
 
入院患者の下痢へアプローチ
入院患者の下痢へアプローチ入院患者の下痢へアプローチ
入院患者の下痢へアプローチ
 
Case Presentation in Nutrition and Diet Theraphy
Case Presentation in Nutrition and Diet TheraphyCase Presentation in Nutrition and Diet Theraphy
Case Presentation in Nutrition and Diet Theraphy
 
Vital signの生理学的解釈
Vital signの生理学的解釈Vital signの生理学的解釈
Vital signの生理学的解釈
 
Nutrition: "You Are What You Eat"
Nutrition: "You Are What You Eat"Nutrition: "You Are What You Eat"
Nutrition: "You Are What You Eat"
 
高齢者の下痢:感染性腸炎 IDATENサマーセミナー2014
高齢者の下痢:感染性腸炎 IDATENサマーセミナー2014高齢者の下痢:感染性腸炎 IDATENサマーセミナー2014
高齢者の下痢:感染性腸炎 IDATENサマーセミナー2014
 
薬剤師会発表 薬剤師のNST(消化器症状)
薬剤師会発表 薬剤師のNST(消化器症状)薬剤師会発表 薬剤師のNST(消化器症状)
薬剤師会発表 薬剤師のNST(消化器症状)
 
栄養リハのすすめ スライド
栄養リハのすすめ スライド栄養リハのすすめ スライド
栄養リハのすすめ スライド
 
Chapter 21 Nutrition and Cardiovascular Diseases
Chapter 21 Nutrition and Cardiovascular Diseases Chapter 21 Nutrition and Cardiovascular Diseases
Chapter 21 Nutrition and Cardiovascular Diseases
 
4-1・5心房細動 動悸 高血圧 左室肥大
4-1・5心房細動 動悸 高血圧 左室肥大4-1・5心房細動 動悸 高血圧 左室肥大
4-1・5心房細動 動悸 高血圧 左室肥大
 
栄養学の基礎を学ぼうv2
栄養学の基礎を学ぼうv2栄養学の基礎を学ぼうv2
栄養学の基礎を学ぼうv2
 
看護部&理学療法部勉強会
看護部&理学療法部勉強会看護部&理学療法部勉強会
看護部&理学療法部勉強会
 
私の考える輸液療法
私の考える輸液療法私の考える輸液療法
私の考える輸液療法
 
看護師さんのための血液ガス入門
看護師さんのための血液ガス入門看護師さんのための血液ガス入門
看護師さんのための血液ガス入門
 
輸液、基礎の基礎
輸液、基礎の基礎輸液、基礎の基礎
輸液、基礎の基礎
 
0528 kanntigai ui_ux
0528 kanntigai ui_ux0528 kanntigai ui_ux
0528 kanntigai ui_ux
 

栄養の取り方はデータが教えてくれる

  • 2. 2016年9月4日 夏の自由研究発表会2016 Matz 2 # Agenda ● 栄養について ● 最適化について – 手法:線形計画法 – Solver:GLPK (GNU Linear Programming Kit) – 実行ソフト:Gusek – データ形式:MathProg – 計算結果 ● 参考サイト
  • 3. 2016年9月4日 夏の自由研究発表会2016 Matz 3 # そもそもの疑問 ● 何を食べていれば栄養は満たされるのか? ● 自分の食生活は大丈夫なのか? 栄養について
  • 4. 2016年9月4日 夏の自由研究発表会2016 Matz 4 # 栄養の摂取基準はあるのか? ● 厚生労働省が「日本人の食事摂取基準」を策定 栄養について 「日本人の食事摂取基準(2015 年版)の概要」(厚生労働省)より抜粋) 基準は分かるが、食品はわ からない
  • 5. 2016年9月4日 夏の自由研究発表会2016 Matz 5 # 栄養をバランスよく取るには? ● 農林水産省が「食事バランスガイド」を策定 栄養について 「食事バランスガイド」(http://www.maff.go.jp/j/balance_guide/) ざっくりしすぎていて栄養バランスがいいのかきになる。
  • 6. 2016年9月4日 夏の自由研究発表会2016 Matz 6 # どの食品にどんな栄養素が含まれるのか? ● 文部科学省が「日本食品標準成分表」を作成 ● さらに、データベース化して提供 栄養について 「食品成分データベース」(http://fooddb.mext.go.jp) 食品は検索できるが、栄養バラ ンスを満たすかどうかについて の情報は得られない
  • 7. 2016年9月4日 夏の自由研究発表会2016 Matz 7 # 国ってやつは・・・ 栄養について 文部科学省 農林水産省 厚生労働省
  • 8. 2016年9月4日 夏の自由研究発表会2016 Matz 8 # 栄養バランスのとれた食事を考えてみよう とすると・・・難しかった ● 栄養素iについて、食品jに含まれる量をnij、摂取目 標値をai 食品jの摂取量をxjとすると、栄養素iの摂取量は  Σj nij * xj >=ai これがすべてのiについて成り立つ必要がある。 ● さらに、最安で組み合わせたいので、食品jの価格 をpjとして、上記を満たす組み合わせのうち、  Σj pj * xj を最小化するものを探す 最適化について
  • 9. 2016年9月4日 夏の自由研究発表会2016 Matz 9 # 連立不等式の最適化=線形計画法 ● 連立不等式の解放は最適組み合わせを探す、 繰り返し計算となる ● 変数が多くなるほど、計算時間がかかる ● 整数に限定するとさらに時間がかかる →手計算では無理なのでソフトを使う 最適化について
  • 10. 2016年9月4日 夏の自由研究発表会2016 Matz 10 # 線形計画問題のソルバー選定 最適化について 1 thr CBC CPLEX GUROBI SCIPC SCIPS XPRESS MATLAB MIPCL ------------------------------------------------------------------------- unscal 1639 86 74 418 517 93 3416 870 scaled 22 1.16 1 5.65 6.99 1.25 46.2 11.8 solved 53 86 86 75 70 86 26 65 ------------------------------------------------------------------------- ● ソルバーで代表的なものはエクセルのもの →変数の少ないシンプルなものに対応 ● 線形計画問題専用のソルバーも多数存在 http://plato.asu.edu/ftp/milpc.html Mixed Integer Linear Programming Benchmark (MIPLIB2010) ↓有料 ↓有料 ↓有料 ↓有料 ↓有料 ↓有料 ↓有料 ↓有料 ● 比較に登らないほど性能は劣るようだが、無料の Solverとして広く知られているGLPKを選定
  • 11. 2016年9月4日 夏の自由研究発表会2016 Matz 11 # ソルバー(GLPK)を使うための環境 ● ソフト:GUSEK (for Windows) ←無料  もともとGLPKが使えるということで選定  (GLPKR用やPythonもあります) ● Macで使うために  Wineをインストール ←無料 →Windowsのexeファイルが使える 最適化について
  • 12. 2016年9月4日 夏の自由研究発表会2016 Matz 12 # 問題を作る〜MathProg ● GLPKで問題を解くためには 問題を定義するファイルを準備する必要がある ● 読み込めるファイル形式はMPS_fixed, MPS_free, CPLEX_LP, MathProg ● 参考PDFを見つけたので今回はMathProgという言 語を利用 → 数式をプログラムで定義 → csv ファイルを読み込み 最適化について
  • 13. 2016年9月4日 夏の自由研究発表会2016 Matz 13 # 問題を作る〜MathProg ● 厚生労働省の「日本人の食事摂取基準」 ● 文部科学省の「日本食品標準成分表」 ● スーパーの商品価格 をテーブル化 最適化について NUTRIENT INTAKE_MAX INTAKE_MIN Energy 2530 2070 Proteins 127 60 Fats 84 46 Saturated_fatty_acid 0.07 0 n-6_fatty_acid 20 10 n-3_fatty_acid 4.2 2.1 データテーブ ルの例
  • 14. 2016年9月4日 夏の自由研究発表会2016 Matz 14 # 問題を作る〜MathProg 食品には下記を選定(2013年の主食) ● 納豆 ● 豆腐 ● 米 ● 低脂肪牛乳 ● 野菜ジュース ● 卵 最適化について ● レトルトカレー ● そば ● コーヒー ● プロテインパウダー ● フルグラ ● レモン
  • 15. 2016年9月4日 夏の自由研究発表会2016 Matz 15 # 結果 Preprocessing... PROBLEM HAS NO PRIMAL FEASIBLE SOLUTION Time used: 0.0 secs Memory used: 0.4 Mb (449365 bytes) Writing MIP solution to 'NutrientOptmizedMeal.out'... >Exit code: 0 Time: 0.362 ● 解けませんでした→もっと品目を増やさねば。。。 最適化について
  • 16. 2016年9月4日 夏の自由研究発表会2016 Matz 16 # (参考)世の中の商品例 「ソイレント(英: soylent)は、Rosa Labs, LLC. が販売している栄養機能食品の 飲み物。生存に必要な栄養素がすべて含ま れ、従来の食事が不要となるという[1][2]。 味はほんのり甘く、この粉末を水などに溶 かして飲む[1][2]。」 (Wikipediaより抜粋) https://ja.wikipedia.org/wiki/ソイレント ソイレント(Soylent)
  • 17. 2016年9月4日 夏の自由研究発表会2016 Matz 17 # 参考サイト https://www.ibm.com/developerworks/jp/linux/library/l-glpk1/ http://www.campus.ouj.ac.jp/~maps13/software/GLPK.html ’問題解決の数理( 13) GNU Linear Programming KitGNU Linear Programming Kit 第第 11 回回:: 線形最適化の紹介線形最適化の紹介 https://www3.nd.edu/~jeff/mathprog/glpk-4.47/doc/gmpl.pdf Modeling Language GNU MathProghttp://cs.pwr.edu.pl/zielinski/lectures/om_en/glpk/gmpl.html MathProg Manual GLPKの簡易マニュアル http://pse.web.nitech.ac.jp/doc/easymanual.pdf