料理を科学する
Mathematica研究会 2012.1.14
松田裕幸 [email protected]
“料理科学モデル”の時代はまだまだ先!
“Modern Cusine: : The Art and Science of Cooking (説明)
Nathan Myhrvold(著者の一人)
たとえばバーベキューグリルで肉を焼く。肉の位置、炭の温度、鍋の形状、様々な要因により肉に伝わる温度(熱伝 導)は変化する。数千行のMathematicaコードを使い、完璧なステーキの焼き方を研究。
また実験結果の可視化にもMathematicaは役だった。
コロイド colloid、Molecular Gastronomyの基礎
コロイドの種類
colloid aerosols エアゾール。流体粒子、微細固形粒子が気体状になったもの。例) ヒッコリーの煙
colloid emulsion 乳化。互いに混じり合わない2種の液体で、一方が他の液体中に微粒子状で分散しているもの。 例)牛乳―水中に油滴が分散、バター―油中に水滴が分散、ビネガードレッシング―オイルとビネガー。
colloid foams 気泡が液体もしくは固体に閉じ込めら泡を形成。例)カプチーノにおける蒸気ミルク―水泡。パン― 細胞構造、固泡。
hydrosols (colloidal suspensions) 液体中に微小な固体がコロイド状に分散している状態。例)エッセンシャルオイル 中のハーブ抽出物(香の元)、アイスクリーム。
調理におけるコロイドの重要性
viscosity 粘性 ソース texture 肌目
taste 味わい mouth-feel 食感
コロイドの働きをCA(Cellular Automata)でモデリングしてみたい。。。
調理の世界は、マクロな解析(たとえば偏微分方程式)ですべてを包含できる段階にない。その意味でミクロな離 散的モデルCAは有効。
ただし、課題山積。コロイドにおける泡の形成、あるいは乳化という現象1つ取っても複数のモデルの組み合わ せ。CAでは複数のモデルの合成は難しく、モデルAによる処理!モデルBによる処理、と現状ではせざるを得な い。
一案は調理CAモデル(笑)
上記とも関連するが、CAでは異なる働きをする複数の種類の粒子のモデル化が難しい。 必要かどうかは不明だが、何らかの「場」(力学場)を想定しないと調理CAモデルは不可能? CAモデルは一般的には可逆過程は扱えない。扱えるようにしたモデルもあるが。
いずれにせよ、熱伝導モデルではなくコロイドモデルに興味あり。一番の理由は味だけでなく、風味、食感、肌目 に一番影響を与えるのはコロイド科学なので。
現時点では、コロイドに関するドンピシャのCAモデルは知らない。(存在しない?)。以下に参考になりそう な、CAを使ったモデルを紹介。内容、コード等は『複雑系のシミュレーション―物理学と生物学の探究』、『自 然現象の計算モデル化―セルラーオートマタ・シミュレーション』を参考。
拡散 沸騰
2物質の界面拡散現象 吸着と脱着
2成分混合系の相分離 固化
融合
拡散 diffusion
Rudy Ruckerʼs CA
モデル In[5]:=
Out[5]=
In[6]:=
初期configuration In[7]:=
In[10]:=
セル値(r) 0∼255 濃度 ルール
周囲の総和平均
In[11]:=
実行 In[14]:=
Out[14]=
In[15]:=
Out[15]=
Out[16]=
沸騰 boiling
モデル
液体ー気体相転移のモデル化
In[79]:=
Out[79]=
In[80]:=
初期configuration In[81]:=
In[84]:=
サイトの値 0∼r-1 ルール
周囲の総和平均に対しrに関する剰余を計算
In[85]:=
実行 In[18]:=
Out[18]=
In[88]:=
Out[88]=
In[89]:=
Out[89]=
In[90]:=
Out[90]=
2つの物質の境界面には、粘着力、機械的強さ、熱膨張、電気伝導などの多種多様な性質が生まれる。
2つの物質の各原子の相互拡散を想定する。このとき、互いに接触するA原子からなるクラスタとB原子からなるク ラスタが生じる。この2つのクラスタの接触面(フロント)の変化を知る。
ここでは、粒子Bからなる2次元格子面に対し粒子Aからなる拡散源から一定の濃度の線状拡散を考える。
基本構成はランダムウォークのルールと同じ。
複数の粒子が衝突する状況を想定。粒子は東西南北のどれかに移動し、次の移動方向をランダムに決定。もしその場 所が他の粒子に占有されていた場合は移動しない。(ただし当然ながら確率を使い、どちらが「どく」というモデル も可能)。
最下面からの情報に粒子Aをpushするためのルールが追加されている。
In[5]:=
In[6]:=
Out[6]=
In[7]:=
Out[7]=
吸着と脱着現象は非平衡相転移の一種。たとえば不均質な触媒作用における表面汚染はこの1つ。 1種類の原子のみからなる世界を前提に、2つのモデルを想定。
(1)各原子は空の表面サイトに吸着し、そして他の原子によって完全に取り込まれない限りその表面から脱着する。
(Aモデル)。吸着確率が小さいと被覆範囲は制限されるが、確率が高いと表面が覆われ「汚染転移」と呼ばれる現 象が起きる。
(2)吸着原子が表面に束縛される強さがその近隣サイトに吸着された強さに比例する。(CMPモデル)。最隣接サイト の総数が増加するにしたがい脱着する確率が減少する。
表面拡散(surface diffusion)の機構を吸着と脱着のモデルに組み込む。
AモデルCA
単一種から構成
ある確率で空のサイトに吸着
少なくとも1つの隣接サイトが空の場合、ある確率で脱着する 吸着確率低い:当然のごとく表面の被覆領域小さい
吸着確率高い:表面は完全に粒子によって覆われる(汚染転移 poisoning transmission) 系 (2n+1)!(2n+1) 正方格子
周期境界条件
サイトの値 0:空、 1:専有
最初は中心1点のみ空で残りはすべて専有されている状態。
In[5]:=
In[6]:=
Out[6]=
In[7]:=
Out[7]=
最隣接サイトの総数が増加するにつれ脱着する確率が減少する。
In[8]:=
In[9]:=
Out[9]=
In[10]:=
Out[10]=
表面に粒子が吸着後、固定されていることは通常ない。むしろブラウン運動していると考える方が素直。 各時間ステップごとに吸着と脱着ルールを1回格子に適用し、次に粒子の拡散ルールをr回格子に適用する。 2種類のモデルの結合。ただし、「合併」ではなく、「順次適用」。
In[19]:=
In[24]:=
Out[24]=
In[25]:=
Out[25]=
In[30]:=
Out[30]=
In[31]:=
Out[31]=
In[32]:=
Out[32]=
In[33]:=
Out[33]=
スピノダール分解:2元合金系。臨界温度以下に急冷すると、熱力学的に不安定な均質相から2種の安定相のドメイン が成長し、非平衡の相分離が起きる。
歴史的には連続系を時空間モデルで離散化して非線形偏微分方程式で解くGinzburg-Landau方程式やCahn-Hilliard方程 式を利用。
これに対し初めから時空間の離散化格子を利用するモデルCell Dynamic Scheme CDSを利用。CDSには以下の特徴を持 つ。
局所的相分離化傾向 (2成分間の局所的濃度差を増加させる) 各分離相の安定性
物質量の保存
スピノダール分解:全オーダーパラメータ(2成分間の濃度差、-1から1に正規化)保存の束縛条件のもと、オーダー パラメータの時間発展を計算する
相秩序化CA
オーダーパラメータ非保存の場合
In[34]:=
オーダーパラメータ保存の場合
サイトと近傍サイトでパラメータ値を交換する際、そのサイトを含む近傍サイト全体で正味のオーダパラメータ値の 変化がないことを保証する。
In[35]:=
In[36]:=
Out[37]=
In[38]:=
Out[39]=
In[40]:=
Out[41]=
In[42]:=
Out[43]=
In[44]:=
Out[45]=
In[46]:=
Out[47]=
In[48]:=
Out[49]=
固化 Solidification
過冷却液体内で結晶が形成される過程: 固化(凝固)。
結晶成長の過程で、それ自身、個体―液体界面での潜熱の拡散や表面張力など成長を抑制する効果も示す。
n!n 正方格子
セルの値 {x,y} x: 1:結晶、 0:アモルファス, y:温度
{0,0} 温度が0の液体状態
{1,undercool} undercoolに等しい温度に冷却sれた結晶状態
初期サイト:{0,0}と{1,undercool}をランダムに配列 サイト境界は 吸収端
ここで
In[26]:=
吸収境界を作る
In[27]:=
Out[27]//MatrixForm=
[1] アモルファスの結晶化の条件:周囲に少なくとも1個の結晶サイトがあり、局所的境界条件の歪と温度に関する幾 つかの条件が満たされる時
結晶化の潜熱latent heatは結晶化サイトで生み出され、それ自体の温度を上昇させる それ以外の条件ではアモルファスも結晶も変化しない(溶解のモデルは含まないとする)
(a)latheat : 結晶化の潜熱
(b)delta Random[Real,{-1,1}]:持続する実験ノイズ (c)delta: ノイズの振幅。0"delta<1
(d)lambda : 毛管長capilalary length (e)局所滴境界条件の歪の近似値
(n,e,s,w近傍のそれぞれの相値の和+ne,se,sw,nw近傍のそれぞれの相値の和-6) [2]熱の拡散。隣接サイトに拡散する。
Dは拡散定数 mはある数値
プログラム
In[28]:=
各時間ステップごとに熱拡散過程はm回実行される
これに対し、相変換過程は1回だけ実行される(これは熱拡散過程との相対速度を考慮)
In[29]:=
Out[29]=
In[178]:=
Out[178]=
In[179]:=
Out[179]=
複数の物体が成長あるいは共に結合して単体になること。融合現象は、エアゾル系(たとえば雲、霧、大気汚染な ど)、凝集物質系(たとえば表面への蒸気の凝縮(condensation)、気相成長膜での小滴成長(droplet growth)、ステッ プ成長重合polymerization)、さらには生物社会性誘引力(biosocial attraction)などに見られる。
はじめに拡散している状態から開始。ついで小さな粒子の注入、大きな粒子の除去などを確認。
融合CA
周期境界条件
n!n{x,y} x:サイトの値 0∼4 y:1 小滴のサイズ
ルール小滴は各時間ステップで向いている方向に移動
2滴以上が同じサイトに移動した場合、1的に融合。ただしサイズを各滴のサイズの合計にする。
In[30]:=
Out[30]=
In[31]:=
In[32]:=
Out[32]=
小滴サイズの分布 In[33]:=
In[34]:=
Out[34]=
In[35]:=
Out[35]=
定常状態融合の実現
小滴を注入したり取り除けるようにする
注入 injection
各時間ステップの最後に、サイズ1の小滴を格子状にランダムに配置。
を
で置き換える。
In[36]:=
降水 precipitation
小滴がある一定サイズ以上になったらサイトから取り除く
In[38]:=
興奮性媒体
Greenberg-Hastings CA一見異なるように見える現象において、同心円や渦巻く波という共通パターンが現れることがある。一般的にこれは 興奮性媒体による自己組織化の例の一つとして知られている。特にこの場合は、隣接する要素と相互作用し、興奮ー 不応ー受容(excited-refactory-reception)を繰り返す。
CAタイプ In[94]:=
Out[94]=
In[381]:=
In[382]:=
In[405]:=
サイトの値の意味
1:興奮、r:休止、中間:回復状態
ルール In[388]:=
実行 In[407]:=
Out[407]=
In[408]:=
Out[408]=
In[409]:=
Out[409]=
In[410]:=
Out[410]=
In[411]:=
Out[411]=
興奮性媒体
Cyclic Space CAGreenberg-HastingsCAでは、サイトの回復は最近接サイトの状態とは独立に決まる。ここでは、最近接サイトが少し だけ緩和している場合の時だけ、回復過程でサイトを発展できるようにモデルを改変する。相転移で起こる変化に相 当。
CAタイプ
Out[244]=
In[245]:=
初期configuration In[424]:=
In[427]:=
サイトの値の意味
ルール
(1)状態n-1にあるサイトは、その最近接サイトすべてが状態0を持つ時、自身0になる。
(2)中間状態にあるサイトは、周囲が+1だけ大きい時、自身の状態も1レベルUPする。
(3)それ以外は、変化しない。
In[429]:=
実行 In[434]:=
Out[434]=
In[437]:=
Out[437]=
In[441]:=
Out[441]=
In[442]:=
Out[442]=
In[443]:=
Out[443]=
興奮性媒体
The Hodgepodge Machine2つ以上の化合物が触媒によって引き起こされる自動的な化学的反応(合成、解離、再結合)モデル。例。パラジウ ム結晶(触媒)による一酸化炭素と酸素の反応。二酸化炭素生成。 例。Belousov-Zhabotinsky反応。マロン酸が鉄も しくはセリウムを触媒として臭素酸カリウムより酸化する現象。
CAタイプ In[244]:=
Out[244]=
In[473]:=
初期configuration In[478]:=
In[450]:=
サイトの値の意味
値:0..r, 0:健康、1:病気、他の値を持つセル(1からr-1):感染。値が大きいほど感染度が高い。
ルール
ルール:
(1)病気のセルは健康に戻る。
(2)健康なセルは感染する。その値は、
(3)感染してるセルはさらに感染する。その値は次の式で決定。
gは感染率。
In[460]:=
実行 In[484]:=
Out[484]=
In[488]:=
Out[488]=
In[489]:=
Out[489]=
In[490]:=
Out[490]=
In[491]:=
Out[491]=
初期化関数
In[1]:=
In[2]:=
Out[2]=
In[3]:=
Out[3]=
In[4]:=
Created with Wolfram Mathematica 8.0