<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Master-Thesis-Related on TouchingFish.top</title><link>https://touchingfish.top/categories/master-thesis-related/</link><description>Recent content in Master-Thesis-Related on TouchingFish.top</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Mon, 19 Jun 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://touchingfish.top/categories/master-thesis-related/index.xml" rel="self" type="application/rss+xml"/><item><title>博弈的节律</title><link>https://touchingfish.top/2023/game-environment-feedback/</link><pubDate>Mon, 19 Jun 2023 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2023/game-environment-feedback/</guid><description>&lt;p&gt;之前写过两个 ABM（Agent-Based Model）。网格上的 agents 随机配对，玩一局博弈，然后更新 action。唯一的变量是&amp;quot;看什么&amp;quot;——这一步的得分，还是历史上所有博弈的总分。微分方程我不会推（平均场近似抄的文献），但 ODE 的阶数我还是看得懂的：一个是一阶，一个是二阶。速度与加速度，无记忆与有惯性。微观设定只是一念之差。&lt;/p&gt;
&lt;p&gt;但那两个模型共享一个暗含的前提：支付矩阵是铁板一块。囚徒困境永远是囚徒困境。鹰鸽博弈永远是鹰鸽博弈。&lt;/p&gt;
&lt;p&gt;草不会疼。&lt;/p&gt;
&lt;p&gt;Weitz et al.（2016）让草活了过来——策略改变环境，环境重写收益结构，收益结构反过来重塑策略。闭环一旦形成，系统就开始呼吸。&lt;/p&gt;
&lt;p&gt;我想做的事更简单：不给环境开一个连续的反馈通道，只是给网格一个节律。&lt;/p&gt;
&lt;h2 id="给网格一个节律"&gt;给网格一个节律&lt;/h2&gt;
&lt;p&gt;在原来的 ABM 里加一个资源状态变量，初始值设为 $A$。每一步 agents 在网格上博弈，消耗 $1$ 单位资源。资源从 $A$ 一路降到 $0$，再隔固定步数，重置回 $A$。&lt;/p&gt;
&lt;p&gt;设 $b=1$，资源存量 $a \in \{0, 1, 2, 3, 4\}$。支付矩阵为：&lt;/p&gt;
$$
\begin{matrix}
 &amp; C &amp; D \\\\ \hline
C &amp; a/2 &amp; 0 \\\\
D &amp; a &amp; (a-1)/2
\end{matrix}
$$&lt;p&gt;从头开始，$a=4 \implies \begin{pmatrix} 2 &amp; 0 \\ 4 &amp; 1.5 \end{pmatrix}$&lt;/p&gt;
&lt;p&gt;纯正的囚徒困境。$D$ 严格占优 $C$——不管对方选什么，背叛都比合作赚得多。Replicator dynamics 告诉你：关门，放背叛者，全图沦陷。&lt;/p&gt;</description></item><item><title>当公地开始呼吸</title><link>https://touchingfish.top/2023/oscillating-tragedy-of-the-commons/</link><pubDate>Thu, 15 Jun 2023 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2023/oscillating-tragedy-of-the-commons/</guid><description>&lt;p&gt;公地悲剧是一个老故事了。&lt;/p&gt;
&lt;p&gt;1968 年，Garrett Hardin 描述了这样一个场景：一片对所有人开放的草地，每个牧民都往上面多放一头牛。多放一头牛的收益全归自己，草地退化的代价由所有人分担。于是每个人都选择多放，草地最终被彻底毁掉。&lt;/p&gt;
&lt;p&gt;博弈论的翻译很简单：背叛（defect）是 dominant strategy。不管别人怎么做，背叛的 payoff 都比合作高。Replicator dynamics 告诉你，背叛者最终会吞掉整个群体。&lt;/p&gt;
&lt;p&gt;但这个模型有一个默认前提：草是死的东西。payoff 矩阵是固定的。&lt;/p&gt;
&lt;p&gt;你踩一脚，它不会疼。把它吃光了，它不会改变下一次博弈的规则。&lt;/p&gt;
&lt;p&gt;Weitz 等人在 2016 年 PNAS 上发表的这篇论文做了一件事：他们让草活过来了。&lt;/p&gt;
&lt;h2 id="让草活过来"&gt;让草活过来&lt;/h2&gt;
&lt;p&gt;论文提出了一种叫做 &amp;quot;coevolutionary game theory&amp;quot; 的框架——博弈和环境的共同演化。核心改动只有一条：payoff 矩阵不再是固定的常数，而是环境的函数。环境好（replete），背叛占优。环境差（depleted），合作占优。&lt;/p&gt;
&lt;p&gt;直觉上很好理解。资源充裕的时候，搭便车是最划算的——别人出力，你享受。资源枯竭的时候，谁都没法搭便车——不合作就一起死。用论文的话说：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;mutual cooperation is a Nash equilibrium when n = 0 and mutual defection is a Nash equilibrium when n = 1.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;$n$ 是环境状态，$n=0$ 代表 depleted，$n=1$ 代表 replete。payoff 矩阵 $A(n)$ 在这两个极值之间线性插值，合作和背叛的 Nash 均衡各自占据一端。&lt;/p&gt;
&lt;p&gt;但关键不在于&amp;quot;环境决定策略&amp;quot;。关键在于另一个方向：策略反过来也改变环境。&lt;/p&gt;
&lt;h2 id="闭环"&gt;闭环&lt;/h2&gt;
&lt;p&gt;合作者改善环境——比如细菌分泌公共酶分解养分，植被固定水土。背叛者恶化环境——只消耗不生产。于是出现了一个闭环：&lt;/p&gt;
&lt;p&gt;合作者多了 → 环境变好 → 背叛者占优 → 环境变差 → 合作者又占优 →&lt;/p&gt;</description></item><item><title>即时筛选与历史筛选</title><link>https://touchingfish.top/2023/two-modes-of-natural-selection/</link><pubDate>Thu, 09 Mar 2023 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2023/two-modes-of-natural-selection/</guid><description>&lt;p&gt;考虑一个简单的 Agent-Based Model（ABM）。在一个网格上，一群 agents 各自带着一个 action（策略）随机移动，每一步找一个邻居配对，玩一把博弈，获得一个 payoff（收益），然后更新自己的 action。更新规则很简单——看看邻居的得分，谁的得分高，下一步就变成谁的策略。&lt;/p&gt;
&lt;p&gt;关键变量只有一个：&lt;strong&gt;比较什么得分？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;模型一：比较&lt;strong&gt;这一步&lt;/strong&gt;的得分 $P_1$。谁这一轮赚得多，我就学谁。&lt;/p&gt;
&lt;p&gt;模型二：比较&lt;strong&gt;历史所有博弈&lt;/strong&gt;的累计得分 $P_2$。谁到目前为止总共赚得多，我就学谁。&lt;/p&gt;
&lt;p&gt;微观设定上，只是&amp;quot;看当前&amp;quot;和&amp;quot;看历史&amp;quot;的区别。但数学推导告诉我们，这两个模型对应着两种截然不同的动态系统——模型一是一阶常微分方程（Replicator Dynamics），收益差决定演化的&amp;quot;速度&amp;quot;；模型二是二阶积分微分方程（Inertial Dynamics），收益差决定演化的&amp;quot;加速度&amp;quot;。速度与加速度，一阶与二阶，无记忆与有惯性。数学上的区别是清楚的。&lt;/p&gt;
&lt;p&gt;但我想做另一件事：&lt;strong&gt;把这两个模型翻译成生物学的语言。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="翻译的第一步"&gt;翻译的第一步&lt;/h2&gt;
&lt;p&gt;这个 ABM 本身就是自然选择的模拟，翻译几乎是直译：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Action = 表现型（phenotype）&lt;/li&gt;
&lt;li&gt;每一步 = 一代&lt;/li&gt;
&lt;li&gt;模仿更好的策略 = 更好的基因在代际之间被传播&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;那么 $P_1$ 和 $P_2$ 呢？它们都像是 fitness（适应度）。模型一依据当前 fitness 筛选，模型二依据累计 fitness 筛选。直觉上，模型一的自然选择反应快，模型二因为有&amp;quot;惯性&amp;quot;，反应慢，自然选择被减弱了。&lt;/p&gt;
&lt;p&gt;这个推理大方向是对的。但有三处需要修正。&lt;/p&gt;
&lt;h2 id="和--都是-fitness但不是同一种"&gt;$P_1$ 和 $P_2$ 都是 fitness，但不是同一种&lt;/h2&gt;
&lt;p&gt;$P_1$ 更像 &lt;strong&gt;instantaneous fitness&lt;/strong&gt; 或 &lt;strong&gt;current realized fitness&lt;/strong&gt;——这一代在当前环境下的适应度表现。$P_2$ 更像 &lt;strong&gt;cumulative fitness&lt;/strong&gt; 或 &lt;strong&gt;lifetime reproductive success&lt;/strong&gt;——一个个体到目前为止的总表现。&lt;/p&gt;
&lt;p&gt;区别不只是&amp;quot;看一步&amp;quot;和&amp;quot;看多步&amp;quot;。$P_2$ 作为简单累加，会混入&amp;quot;活得更久、比较次数更多&amp;quot;这些因素。一个个体 $P_2$ 高，可能不是因为它的策略真的好，只是因为它参与博弈的次数多。也就是说，$P_2$ 比较的不纯粹是生物学意义上的适应度，还混入了&amp;quot;累计时间长度&amp;quot;。&lt;/p&gt;
&lt;p&gt;如果想要更干净的生物学解释，常见做法是把 $P_2$ 改成 &lt;strong&gt;average payoff per interaction&lt;/strong&gt;，或者按年龄、交互次数做归一化。这样比较的就是&amp;quot;平均每次博弈的表现&amp;quot;，而非&amp;quot;总表现&amp;quot;。&lt;/p&gt;</description></item><item><title>演化的速度与惯性</title><link>https://touchingfish.top/2023/evolutionary-game-dynamic/</link><pubDate>Sat, 04 Feb 2023 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2023/evolutionary-game-dynamic/</guid><description>&lt;p&gt;我不懂演化博弈的数学，Replicator Dynamics 对我来说只是个名词。但我会计算机模拟，Agent-Based Model（ABM）是我的语言。&lt;/p&gt;
&lt;p&gt;假如在一个 $n \times n$ 的网格上，按网格数量乘以 population density 生成一群 agents，每一步 agents 带着一个 action 在网格上移动，在 Von Neumann 邻域找另一个 agent 配对，玩一把经典博弈，然后更新 action，进入下一步。所有 agents 更新 action 的方式都一样。以上定义了模型的基本要素。&lt;/p&gt;
&lt;p&gt;现在考虑一个关键变量：agents 更新 action 的依据是什么？&lt;/p&gt;
&lt;p&gt;一、和邻居比较&lt;strong&gt;这一步&lt;/strong&gt;的得分 $P_1$，下一步变成得分 $P_1$ 高的 action。&lt;/p&gt;
&lt;p&gt;二、和邻居比较&lt;strong&gt;历史所有博弈&lt;/strong&gt;的得分 $P_2$，下一步变成得分 $P_2$ 高的 action。&lt;/p&gt;
&lt;p&gt;微观设定上，只是&amp;quot;看当前&amp;quot;和&amp;quot;看历史&amp;quot;的区别。但当我试图用数学去描述这两个模型时，发现它们对应着两种完全不同的物理动态：一阶系统与二阶系统，速度与加速度。&lt;/p&gt;
&lt;p&gt;下面一步步完成推导。&lt;/p&gt;
&lt;h2 id="从代码到方程平均场近似"&gt;从代码到方程：平均场近似&lt;/h2&gt;
&lt;p&gt;在计算机模拟中，有一个 $n \times n$ 的网格，Agent 在上面走动并寻找邻居。数学家做了一个&amp;quot;偷懒&amp;quot;但极其有效的假设——&lt;strong&gt;平均场近似（Mean-Field Approximation）&lt;/strong&gt;：假设网格无限大，且所有人像气体分子一样充分混合，随机相遇。&lt;/p&gt;
&lt;p&gt;这意味着什么？假设当前全图有 $x$ 比例的人使用策略 $A$，有 $1-x$ 比例的人使用策略 $B$。在一个极小的时间步 $\Delta t$ 内，随机抓取一个 Agent，他是策略 $B$ 的概率是 $1-x$；他恰好撞见一个策略 $A$ 邻居的概率就是 $x$。所以，&lt;strong&gt;&amp;quot;$B$ 遇到 $A$&amp;quot;这个事件发生的联合概率就是 $x(1-x)$&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>从酵母细胞说起</title><link>https://touchingfish.top/2022/yeast-prisoners-dilemma/</link><pubDate>Tue, 15 Nov 2022 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2022/yeast-prisoners-dilemma/</guid><description>&lt;p&gt;酵母会分泌 invertase 到细胞外消化蔗糖，消化的糖大家都可以用——这就有意思了。一个细胞可以选择&amp;quot;作弊&amp;quot;：偷用邻居分泌的酶，自己却不分泌。研究者把有功能 SUC2 基因的酵母叫&amp;quot;合作者&amp;quot;，把删除了 SUC2 基因的叫&amp;quot;作弊者&amp;quot;，然后把它们放在一起竞争。&lt;/p&gt;
&lt;p&gt;结果很反直觉：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在稀疏的群体里（低社交密度），作弊者的 fitness 只有 0.87——比合作者差&lt;/li&gt;
&lt;li&gt;在密集的群体里（高社交密度），作弊者的 fitness 高达 1.19——比合作者强&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;为什么？社交密度越高，合作者越容易遇到其他合作者。大家一起分泌酶，公共池塘变大，每个人的收益都高。但这时候作弊者混进来，单方面享受公共成果还不付成本，收益爆炸。&lt;/p&gt;
&lt;p&gt;当密度极高时，作弊者几乎总能找到合作目标，偷到的比自己分泌的还多。合作者反而被拖累。&lt;/p&gt;
&lt;p&gt;这完美符合我的直觉。但我想自己做一遍——不是验证论文结论，而是想亲手&amp;quot;看见&amp;quot;这个过程，把方程写进格子，看数字跑起来。&lt;/p&gt;
&lt;h2 id="模型设定"&gt;模型设定&lt;/h2&gt;
&lt;p&gt;$n \times n$ 的网格，population density 控制每格放置 agent 的概率。Agent 有两种策略：C（合作，分泌酶）和 D（作弊，不分泌）。&lt;/p&gt;
&lt;p&gt;两两相遇时玩标准囚徒困境，payoff 矩阵：&lt;/p&gt;
$$
\begin{pmatrix}
R=3 &amp; S=0 \\
T=5 &amp; P=1
\end{pmatrix}
$$&lt;p&gt;R 是合作-合作的奖励，T 是背叛的诱惑，S 是被背叛者的收益，P 是双双背叛的惩罚。按经典设定：$T &gt; R &gt; P &gt; S$，且 $2R &gt; T + S$（互惠合作优于反复背叛）。&lt;/p&gt;
&lt;p&gt;每一步：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Agent 在 Von Neumann 邻域（上下左右四格）找邻居&lt;/li&gt;
&lt;li&gt;两人玩一把博弈&lt;/li&gt;
&lt;li&gt;比较这一步的得分 $\pi$&lt;/li&gt;
&lt;li&gt;以正比于收益差的概率模仿邻居策略&lt;/li&gt;
&lt;li&gt;随机方向移动一个网格单位&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;只看&lt;strong&gt;当期得分&lt;/strong&gt;。不记历史，不做规划。&lt;/p&gt;
&lt;h2 id="理论预测"&gt;理论预测&lt;/h2&gt;
&lt;p&gt;复制子动态（Replicator Dynamics）给出了平均场下的方程：&lt;/p&gt;
$$\frac{dx}{dt} = x(1-x)[\pi_C - \pi_D]$$&lt;p&gt;$x$ 是合作者比例，$\pi_C$ 和 $\pi_D$ 是两种策略的期望单步收益。&lt;/p&gt;</description></item></channel></rss>