概率与决策理论

devtools/2025/4/1 1:46:40/

1.Q-learning

Q-Learning 是一种无模型(model-free)强化学习算法,用于学习在马尔可夫决策过程(MDP)中的最优策略。它通过迭代更新 ​Q 值(动作价值函数)​ 来估计在某个状态下采取某个动作的长期回报,最终找到最优策略 π∗。


1. Q-Learning 核心概念

​**(1) Q 函数(动作价值函数)​**

Q 函数 Q(s,a) 表示在状态 s 下采取动作 a 后,​未来能获得的期望累积奖励​(考虑折扣因子 γ)。
贝尔曼方程(Bellman Equation)​ 描述了 Q 函数的更新规则:

其中:

  • r(s,a):立即奖励
  • s′=δ(s,a):执行动作 a 后的新状态
  • γ:折扣因子(0 ≤ γ < 1),控制未来奖励的重要性
  • max⁡bQ(s′,b):从新状态 s' 开始走的最大潜力

🌟 定义:

Q(s, a) 表示:
在状态 s 下执行动作 a,之后一直使用最优策略 π*,最终总共能拿到多少奖励(期望值)?

它评估的是:
“我现在做这个动作,值不值?”

Q 值是怎么来的?

通过反复“试错 + 更新”训练出来的。

比如:

  1. 初始 Q 全为 0

  2. 一次执行:从 S1 做 a1,拿到奖励 +1,仍在 S1

  3. 更新:

Q(S1,a1)←1+0.7⋅max⁡(Q(S1,a1)

    4.重复训练,Q 值越来越准确

**(2) 最优策略 π∗**

最优策略选择在每个状态下使 Q 值最大的动作:

π∗(s)=arg max​Q(s,a) 

🌟 定义:

最优策略 π* 是指:在每一个状态下,采取能够获得最大长期收益的那个动作。

换句话说,就是告诉你:
在这个状态下做什么,是最聪明的选择?


✅ π* 是一个函数:

意思是:
输入一个状态 s,输出一个动作 a。


✅ 怎么求 π*?

很简单!

在每个状态 s,我们已经通过 Q-learning 算出了所有动作的 Q 值(即每个动作未来的期望收益),我们只要挑 Q 值最大的动作就行了:

 

🧠 举个例子:

假设你有这样的 Q 表(已经训练好了):

状态a1a2
S11.0-2.0
S27.78.9

对 S1:
两个动作的 Q 值分别是 1 和 -2,哪个大?
→ 1 大,对应 a1 → 所以:π*(S1) = a1

对 S2:
Q 值分别是 7.7 和 8.9,哪个大?
→ 8.9 最大,对应 a2 → 所以:π*(S2) = a2


✅ π* 最终结果:

π∗(S1)=a1,π∗(S2)=a2

意思是:

  • 在 S1 状态下最优是执行 a1

  • 在 S2 状态下最优是执行 a2

**(3) 最优价值函数 V∗**

最优价值函数表示在最优策略下的状态价值:

🌟 定义:

最优价值函数 V∗(s)V^*(s)V∗(s) 表示:从状态 s 出发,如果之后始终按最优策略 π* 走,最多能拿到多少期望总奖励(也叫回报)?

简单来说,它衡量的是:
站在当前状态,未来的“潜力价值”有多大。

🧠 举个例子(接上面的 Q 表):

状态a1a2
S11.0-2.0
S27.78.9

则:

  • V∗(S1)=max⁡(1.0,−2.0)=1.0

  • V∗(S2)=max⁡(7.7,8.9)=8.9

通俗版 Q-Learning 讲解

1. 什么是 Q-Learning?

Q-Learning 就像教一个机器人玩游戏:

  • 状态(State)​:机器人当前的位置(比如在迷宫的第几个格子)。
  • 动作(Action)​:机器人能做的选择(比如上下左右移动)。
  • 奖励(Reward)​:机器人做某个动作后得到的分数(比如吃到金币+1,碰到陷阱-2)。
  • Q 值(Q-Value)​:机器人“记住”在某个位置做某个动作能得多少分。

目标:让机器人学会在每个位置选最赚钱的动作,最终拿到最高总分!

例题 

解析:

原版解析:

🧠 题目回顾:

我们有两个状态 S={S1,S2},两个动作 A={a1,a2},奖励如下:

状态动作下一个状态奖励
S1a1S1+1
S1a2S2-2
S2a1S1+7
S2a2S2+3

设定:

  • 折扣因子 γ=0.7

  • 学习率 α = 1(即完全相信当前反馈)

  • 初始所有 Q 值为 0

  • 使用 Q-learning 更新公式(简化版):

 

📌 Step-by-step 更新过程(假设从状态 S1 开始):


🔁 Step 1

  • 当前状态:S1

  • 所有 Q 值为 0

  • 随机选择动作(例如):选择 a1

查找信息:
  • δ(S1,a1)=S1

  • r(S1,a1)=+1

更新公式:
Q(S1,a1)←1+0.7⋅max⁡bQ(S1,b)

由于 Q(S1,b)=0,所以:

Q(S1,a1)←1+0.7⋅0=1

✅ 更新完之后:

Qa1a2
S110
S200

🔁 Step 2

  • 还在 S1,再次随机选择动作,例如这次:选择 a2

查找信息:
  • δ(S1,a2)=S2

  • r(S1,a2)=−2

更新公式:
Q(S1,a2)←−2+0.7⋅max⁡bQ(S2,b)
  • Q(S2, a1) = 0 → max = 0

所以:

Q(S1,a2)←−2+0.7⋅0=−2

✅ 更新后:

Qa1a2
S11-2
S200

🔁 Step 3

  • 我们刚从 S1 执行 a2 到达了 S2

  • 现在在 S2,选择一个动作(假设选 a1)

查找信息:
  • δ(S2,a1)=S1

  • r(S2,a1)=+7

更新公式:
Q(S2,a1)←7+0.7⋅max⁡bQ(S1,b)
  • Q(S1, a1) = 1,Q(S1, a2) = -2 → max = 1

所以:

Q(S2,a1)←7+0.7⋅1=7.7

✅ 更新后:

Qa1a2
S11-2
S27.70

🔁 Step 4

  • 现在还在 S2,继续选择动作(假设选择 a2)

查找信息:
  • δ(S2,a2)=S2

  • r(S2,a2)=+3r

更新公式:
Q(S2,a2)←3+0.7⋅max⁡bQ(S2,b)
  • Q(S2, a1) = 7.7,Q(S2, a2) = 0 → max = 7.7

Q(S2,a2)←3+0.7⋅7.7=3+5.39=8.39

✅ 更新后:

Qa1a2
S11-2
S27.78.39

🔁 Step 5

  • 从 S2 执行 a2,仍然在 S2

  • 继续执行 a2,再更新一次:

Q(S2,a2)←3+0.7⋅max⁡bQ(S2,b)Q(S2, a2) 

这次:

  • max(Q(S2)) = max(7.7, 8.39) = 8.39

所以:

Q(S2,a2)←3+0.7⋅8.39=3+5.873=8.873

✅ 更新后:

Qa1a2
S11-2
S27.78.873

Q值收敛后的理论最优值(解析解)

我们也可以从理论上计算出 Q 值、V 值 和 策略 π*:

  1. 用等式联立解:

V(S1)=max⁡(1+0.7V(S1),−2+0.7V(S2))        V(S2)=max⁡(7+0.7V(S1),3+0.7V(S2))

尝试假设:

  • π*(S₁) = a₂ → 即选 -2 + 0.7 V(S₂)

  • π*(S₂) = a₁ → 即选 7 + 0.7 V(S₁)

代入联立可得:

  • V(S₁) = –2 + 0.7 × V(S₂)

  • V(S₂) = 7 + 0.7 × V(S₁)

解得:

V(S2)=10.98,V(S1)=5.69

最终 Q 表为:

Q(s, a)a₁a₂
S₁4.985.69
S₂10.9810.09

最优策略 π*

π*(S₁) = a₂,因为 Q(S₁, a₂) = 5.69 > Q(S₁, a₁) = 4.98
π*(S₂) = a₁,因为 Q(S₂, a₁) = 10.98 > Q(S₂, a₂) = 10.09

所以最优策略是:

  • π(S₁) = a₂*

  • π(S₂) = a₁*

🧠 为什么要“假设”π*

在求最优值函数 V* 和最优策略 π* 时,我们不能一下子就知道哪个动作最好。我们必须先做一个合理的假设,再检验这个假设是否成立。

在这个题中:

  • 我们有两个状态:S₁ 和 S₂

  • 每个状态下有两个动作:a₁ 和 a₂

  • 我们不能直接知道在每个状态下哪个动作最优(因为涉及到未来的回报)

因此,我们采取如下方法:

✅ 第一步:假设一个策略 π*

比如假设:

  • π*(S₁) = a₂

  • π*(S₂) = a₁

也就是说:我们假设在 S₁ 应该选 a₂,在 S₂ 应该选 a₁。这个假设只是一个开始


✅ 第二步:基于这个策略,写出 V 值的方程

我们使用贝尔曼最优性方程:

所以根据上面这个假设(π(S₁) = a₂, π(S₂) = a₁)可以写出:

  • V(S₁) = r(S₁, a₂) + γ × V(S₂) = –2 + 0.7 × V(S₂)

  • V(S₂) = r(S₂, a₁) + γ × V(S₁) = +7 + 0.7 × V(S₁)

联立求解即可得出:

V(S1)=5.69,V(S2)=10.98

✅ 第三步:验证这个假设是否成立

我们来看看,如果我们真的在 S₁ 选 a₂,S₂ 选 a₁,是否真的比另外的动作更好?

对比:
  • Q(S₁, a₁) = 1 + 0.7 × V(S₁) = 1 + 0.7 × 5.69 = 4.98

  • Q(S₁, a₂) = –2 + 0.7 × V(S₂) = –2 + 0.7 × 10.98 = 5.69

  • Q(S₂, a₁) = 7 + 0.7 × V(S₁) = 10.98 ✅

  • Q(S₂, a₂) = 3 + 0.7 × V(S₂) = 10.09

可以看到,在 V(S₁)=5.69, V(S₂)=10.98 情况下:

  • 在 S₁:a₂ 的 Q 值更高(5.69 > 4.98)✅

  • 在 S₂:a₁ 的 Q 值更高(10.98 > 10.09)✅

✅ 所以:这个假设是正确的

如果发现假设不成立,就要换一个策略再试,直到找到“自洽”的最优策略。


✅ 总结一句话:

我们不是随便假设 π*(S₁)=a₂,而是通过试探性的策略来建立联立方程解 V,然后再回头验证这个策略是否最优。

这个过程也叫做:

策略评估 + 策略改进(Policy Iteration)

无强制探索

👣 初始状态

所有 Q 值为 0:

Qa₁a₂
S₁00
S₂00

▶️ Step 1: 初始状态为 S₁

  • 由于 Q(S₁, a₁) = Q(S₁, a₂) = 0,动作相同,随机选择一个动作

  • 假设此时选择了 a₁

S₁ + a₁ → S₁, reward = +1

更新:

Q(S1,a1)=1+0.7×max⁡(Q(S1,a1),Q(S1,a2))=1+0.7×max⁡(0,0)=1
Qa₁a₂
S₁10
S₂00

▶️ Step 2: 回到 S₁(因为 a₁ 不会离开 S₁)

这时:

  • Q(S₁, a₁) = 1

  • Q(S₁, a₂) = 0

→ 贪婪策略会选择 a₁,因为 Q 更高

S₁ + a₁ → S₁, reward = +1

更新:

Q(S1,a1)=1+0.7×max⁡(Q(S1,a1),Q(S1,a2))=1+0.7×1=1.7
Qa₁a₂
S₁1.70
S₂00

▶️ 后续继续在 S₁ 中反复执行 a₁

每次回报都是 1,Q(S₁, a₁) 逐渐变大,但 Q(S₁, a₂) 永远不会更新,因为我们再也不会尝试 a₂

2.Conditional Probability(条件概率) 

1. 定义(Definition)​

条件概率是指在已知某一事件 B 发生的前提下,另一事件 A 发生的概率,记作 P(A∣B)。

数学表达式:

  • P(A∩B):A 和 B ​同时发生的概率(联合概率)。
  • P(B):事件 B 发生的边缘概率

2. 关键概念(Key Concepts)​

(1) 样本空间缩减(Reduction of Sample Space)​

  • 条件概率的本质是将样本空间限制在 B 已发生的范围内,再计算 A 的概率。
  • 即:从 Ω(全集)缩小到 B,再考察 A 的占比。

(2) 独立性(Independence)​

  • 若 P(A∣B)=P(A),则称 A 与 B ​独立​(事件 B 不影响 A 的概率)。
  • 独立时:P(A∩B)=P(A)⋅P(B)。

(3) 贝叶斯定理(Bayes' Theorem)​

  • 条件概率的逆向计算:
  • 用于从结果反推原因​(如医学诊断、垃圾邮件过滤)。

3. 经典案例(Example)​

问题:某疾病发病率为 1%(P(D)=0.01),检测的准确率为:

  • 真阳性率(患病且检测阳性)P(T+∣D)=99%;
  • 假阳性率(未患病但检测阳性)P(T+∣¬D)=5%。

:检测阳性时实际患病的概率 P(D∣T+)。

  1. 计算联合概率:
    • P(T+∩D)=P(T+∣D)⋅P(D)=0.99×0.01=0.0099;
    • P(T+∩¬D)=P(T+∣¬D)⋅P(¬D)=0.05×0.99=0.0495。
  2. 边缘概率 P(T+):P(T+)=P(T+∩D)+P(T+∩¬D)=0.0099+0.0495=0.0594
  3. 应用贝叶斯定理:P(D∣T+)=0.05940.0099​≈16.7%

结论:即使检测阳性,实际患病概率仅 16.7%(因发病率低且假阳性率高)。


4. 与其他概念的关系
  • 联合概率(Joint Probability)​:P(A∩B)(无条件的“同时发生”)。
  • 边缘概率(Marginal Probability)​:P(A)(忽略其他变量的概率)。
  • 链式法则(Chain Rule)​:P(A∩B)=P(A∣B)⋅P(B)

5. 应用领域(Applications)​
  1. 统计学:回归分析、假设检验。
  2. 机器学习:朴素贝叶斯分类器、隐马尔可夫模型。
  3. 医学:疾病诊断、生存率分析。
  4. 金融:风险评估、信用评分。

6. 数学性质(Properties)​
  • 非负性:P(A∣B)≥0。
  • 归一性:P(Ω∣B)=1。
  • 可列可加性:若 A1​,A2​,… 互斥,则:

总结:条件概率是概率论中量化事件间依赖关系的核心工具,贯穿统计学、人工智能与决策科学。

通俗版条件概率解释

1. 什么是条件概率?

条件概率就是“在某个条件下,某件事发生的概率”。

举个栗子🌰

  • 你班上 ​40%​ 是男生,​60%​ 是女生。
  • 男生里 ​10%​ 戴眼镜,女生里 ​20%​ 戴眼镜。

问题:随机抽一个戴眼镜的人,TA 是男生的概率是多少?

这就是条件概率!​

  • 条件:已经知道这个人戴眼镜。
  • 求:TA 是男生的概率。

2. 怎么算?

步骤 1:先算“戴眼镜的总人数”。

  • 男生戴眼镜人数 = 40% × 10% = ​4%​
  • 女生戴眼镜人数 = 60% × 20% = ​12%​
  • 总戴眼镜人数 = 4% + 12% = 16%​

步骤 2:在戴眼镜的人里,男生占多少?

答案:戴眼镜的人里,​25%​ 是男生。

例题

 解析

这个问题考察的是 条件概率(Conditional Probability),我们要找出的是:

在所有色盲的人中,有多少比例是男性?


🧠 Step 1:定义已知信息

我们可以引入一些变量来帮助我们清晰思考:

  • 设总人口为 100 人(方便计算百分比)

  • 设男性在总体中所占比例为 P(Male)P(\text{Male})P(Male)

    若未给出男女比例,默认一半一半,即:

    P(Male)=0.5,P(Female)=0.5
  • 色盲总人数占总人口的 4%,即:

    P(Color Blind)=0.04
  • 男性中有 7% 是色盲,即:

    P(Color Blind∣Male)=0.07

🧮 Step 2:求出男性色盲人数

使用乘法规则(Multiplication Rule)

P(Male∩Color Blind)=P(Male)×P(Color Blind∣Male)=0.5×0.07=0.035

这表示:3.5% 的总人口是色盲男性


🧮 Step 3:使用贝叶斯公式求条件概率

我们要找的是:

P(Male∣Color Blind)

意思是:“在色盲人群中,有多大比例是男性”。

套用 贝叶斯公式


✅ 最终答案

87.5%​

也就是说,在所有色盲人群中,87.5% 是男性

3.Enumerating Probabilities(枚举概率) 

1. 专业术语定义

枚举概率​(Enumerative Probability)是指通过穷举所有可能的基本事件,计算目标事件发生的概率。其核心思想是:

  • 样本空间(Sample Space)​:明确所有可能的互斥且完备的基本事件集合 Ω。
  • 目标事件(Event)​:定义感兴趣的事件 A⊆Ω。
  • 概率计算:P(A)=样本空间的基本事件总数事件 A 包含的基本事件数​要求所有基本事件等可能​(即均匀分布)。

2. 通俗易懂解释

枚举概率就是“数数法”​

  1. 列出所有可能的结果​(比如掷骰子有 6 种结果)。
  2. 数出你关心的情况有多少种​(比如掷出偶数:2、4、6 → 3 种)。
  3. 概率 = 关心的情况数 ÷ 总情况数​(3/6 = 50%)。

举个栗子🌰

  • 问题:从扑克牌中随机抽一张,是红桃的概率是多少?
  • 枚举法
    • 总牌数:52 张(样本空间)。
    • 红桃数量:13 张(目标事件)。
    • 概率 = 13/52 = 25%。

3. 关键特点
  • 适用条件
    • 样本空间有限且可明确列举(如骰子、扑克牌)。
    • 每个基本事件概率均等​(如公平骰子)。
  • 局限性
    • 样本空间过大时(如密码组合)枚举不现实,需借助组合数学。

4. 与联合概率的区别
  • 枚举概率:直接计数计算单一事件的概率(如 P(红桃))。
  • 联合概率:计数计算多个事件同时发生的概率(如 P(红桃∩A))。

5. 实际应用
  1. 游戏设计:计算装备掉落率(如 10 种道具中稀有道具占 1 种 → 10%)。
  2. 质量控制:抽检 100 件产品中有 5 件次品 → 次品率 5%。
  3. 密码学:枚举所有可能的密钥组合计算破解概率。

6. 数学严谨性
  • 拉普拉斯概率:古典概型中,枚举概率是拉普拉斯“等可能”定义的体现。
  • 概率公理化:柯尔莫哥洛夫公理体系下,枚举概率是离散均匀分布的特例。

7. 一句话总结

枚举概率 = ​数出有利情况 ÷ 所有可能情况,适用于结果明确且等可能的场景,是概率论最直观的基础方法!

类比:就像数一袋子里红球和蓝球的比例,简单直接!


8.例子 

标答

 解析:

🧠 问题背景简介

我们研究的是一个和牙齿健康相关的问题,有三个可能的因素:

  1. Cavity(蛀牙):有没有蛀牙?

  2. Toothache(牙疼):病人有没有感到牙疼?

  3. Catch(医生检查是否能探测出问题):医生用器械检查能不能“catch”到蛀牙。

每个变量都是布尔值(True 或 False),总共有 23=82^3 = 823=8 种可能的组合情况。

给出的表格是一个完全联合概率分布(Full Joint Probability Distribution),列出了每种组合的概率。


📊 原始表格展开如下:

蛀牙(Cavity)牙疼(Toothache)检测到问题(Catch)概率(P)
0.108
0.012
0.072
0.008
0.016
0.064
0.144
0.576

❓ Q1. P(牙疼 且 没检测到问题) = ?

我们想知道:病人牙疼,但医生检查却没发现问题,这种情况有多大概率?

查找符合「toothache = True 且 catch = False」的行:

  • 第2行:Cavity=T, Toothache=T, Catch=F → 概率 0.012

  • 第6行:Cavity=F, Toothache=T, Catch=F → 概率 0.064

相加得到:

P(toothache∧¬catch)=0.012+0.064=0.076

🧠 解释:在所有可能的情况下,7.6% 的病人牙疼,但医生却没有查出来。


❓ Q2. P(检测到问题) = ?

我们只看「catch = True」的所有情况:

  • 0.108 (C=T, T=T, C=T)

  • 0.072 (C=T, T=F, C=T)

  • 0.016 (C=F, T=T, C=T)

  • 0.144 (C=F, T=F, C=T)

P(catch)=0.108+0.072+0.016+0.144=0.34

🧠 解释:在所有情况下,医生有 34% 的概率能检查出问题。


❓ Q3. P(有蛀牙 | 检测到问题) = ?

这就是条件概率

上一步我们知道 P(catch)=0.34

现在看 cavity = T 且 catch = T 的行:

  • 0.108

  • 0.072
    加起来是:

P(cavity∧catch)=0.108+0.072=0.18

所以:

P(cavity∣catch)=0.18/0.34=0.529

🧠 解释:如果医生检查发现了问题,那么有 52.9% 的概率是真的有蛀牙。


❓ Q4. P(蛀牙 | 牙疼 或 检查出问题) = ?

我们要算的是:

P(cavity∣toothache∨catch)

第一步:列出满足「toothache = True 或 catch = True」的所有行:

  • 0.108

  • 0.012

  • 0.072

  • 0.016

  • 0.064

  • 0.144

总和是:

P(toothache∨catch)=0.416

第二步:在这些行中,挑出 cavity = True 的行:

  • 0.108

  • 0.012

  • 0.072

加起来:

P(cavity∧(toothache∨catch))=0.192

第三步:代入公式:

P(cavity∣toothache∨catch)=0.192/0.416=0.4615

🧠 解释:如果病人牙疼或者医生检查出了问题,那他有 46.15% 的概率是真的有蛀牙。


❓ Q5. 条件独立性验证

我们要验证:

P(catch∣toothache,cavity)=P(catch∣cavity)

如果两边相等,说明在知道 cavity 的前提下,toothache 不再影响 catch 的概率(就是条件独立性)。


计算左边:P(catch | toothache=T, cavity=T)

匹配的行:

  • 0.108 (catch=T)

  • 0.012 (catch=F)
    总和 = 0.12,catch = T 的概率是:

0.108/0.12=0.9

计算右边:P(catch | cavity=T)

所有 cavity=T 的行:

  • 0.108

  • 0.012

  • 0.072

  • 0.008

总和 = 0.2,catch=T 的是 0.108 + 0.072 = 0.18:

0.18/0.2=0.9

4.Wumpus World with Three Pits

 

标答 


🧠 问题复述:

我们有一个 4x4 的 Wumpus World,其中有 3 个坑(Pits),现在我们要根据已知的信息(微风 B 和 OK)计算两个黄色格子:

  • P(1,3 是坑 | 已知)

  • P(2,2 是坑 | 已知)

也就是说,我们想知道这些黄色格子中,有多大概率是坑


✅ 解题思路核心:枚举兼容布局

这个问题其实是一个组合 + 条件概率问题,它的关键点在于:

在“所有可能的 3 坑布局”中,有多少种是兼容“已知信息”的?
然后在这些布局中,有多少个包含 (1,3) 是坑?有多少个包含 (2,2) 是坑?


🍥 Step 1:定义术语

  • Fringe:黄色格子,即“可疑”区域,既不在 OK 中、也不是未知中完全没有影响。

  • Other:剩下的未知格子,没直接接触微风。

  • Known:就是图中 B 和 OK 的已知信息(感知信息)。


📚 Step 2:使用公式的逻辑

这个公式来自课程讲义的贝叶斯公式变种:

但因为所有的坑分布被均等对待,所以我们可以直接按“配置兼容数量”来算概率。


🎯 Step 3:兼容配置数量解释(核心!)

你图中列出的几种配置都是符合以下条件的:

  • 在黄色格子中(fringe)放置了 1 个或 2 个坑

  • 剩下的坑放在其他格子(其他)中

  • 最终总坑数是 3,并且微风信息是正确的

这些配置一共是 5 种:

配置编号在 fringe 中的坑数量other 中坑数量other 可放位置数兼容总数
11 个(在 1,3)2 个10 个位置中选 245 种
21 个(在 2,2)2 个10 个中选 245 种
32 个(1,3 和 2,2)1 个10 个位置10 种
41 个(在 2,3)2 个10 中选 245 种
51 个(在 3,2)2 个10 中选 245 种

⚠️ 实际题目中只使用了 5 个互斥配置:分别是只有一个坑在 fringe 的 3 个情况 + 两个坑在 fringe 的 2 个组合。

兼容布局总数:1 + 10 + 10 + 10 + 45 = 76 种兼容布局


📐 Step 4:概率计算

1. P(Pit at 1,3 | known)

  • 有 1 个布局只有 1,3 是坑(配置 1)

  • 有 10 个布局包含 1,3 + 另一个坑在 fringe(配置 3)

原来还包含了第三个 fringe 配置中 1,3 是坑的情况(比如同时 1,3 和 2,3 是坑那类),即 fringe 内两个坑组合可能仍包含 1,3,所以都要算进去!


2. P(Pit at 2,2 | known)

  • 包含 2,2 是坑的布局:

    • 只有 2,2:1 种

    • 2,2 和 其他一个:10 种(例如 2,2 和 1,3)

    • 两个坑(包含 2,2):10 种

所以:

说明 2,2 很可能是个坑!


✅ 总结(通俗版)

你可以把这类问题理解为“从所有可能的放坑方式里数数,看符合线索的有哪些”。

然后问:在这些符合条件的布局里,某个格子是坑的比例有多大?
这个比例就是该格子是坑的概率。

 

✅ 一、什么是 B 和 OK

在 Wumpus World 中,每个方格都有可能:

  • 有坑(Pit)

  • 有 Wumpus

  • 有金子

  • 什么都没有

智能体(Agent)不能直接看到这些东西,它只能感受到邻近格子的一些“感知”(percepts):

  • B = Breeze(微风):表示当前格子周围有坑

  • OK = Safe(安全):表示当前格子没有危险,也没有邻近坑

在你提供的图中:

  • 每个标有 “B” 的格子,说明它 四周至少有一个坑

  • 每个标有 “OK” 的格子,说明它 自己周围肯定没有坑

这些信息就是我们要用来推理其他格子是否是坑的依据


✅ 二、公式解释(来自讲义)

我们要计算的是:

也就是:在已知的感知(B/OK)情况下,某个格子 (i,j) 是坑的概率。

这时候,使用了一个变种的 贝叶斯定理


📌 核心公式

这个公式可以这样理解:

公式部分中文解释
Pit1,3表示“格子 (1,3) 是坑”
known表示我们当前知道的信息(比如图上的 B 和 OK)
fringe表示周围“可疑”的黄色格子集合(图中黄色部分)
P(knownfringe)
P(fringe)黄色格子中布置坑的先验概率(每种布置方式等概率)

简化理解:

“在所有可能的坑布局中,有多少是同时:
(1)符合 known 信息,
(2)而且其中 (1,3) 是坑?”

拿这个数量 / 全部符合 known 的坑布局数,就是我们要的概率。


✅ 三、什么叫“兼容配置数量”

这才是这个题目的 核心技巧 和计算重点!


我们知道:
一共有 16 个格子,其中有 3 个坑,所以:

(13 是未知格子的数量:16 - 3(因为我们知道 3 个格子 OK))

但我们不想遍历 286 个,我们想只找出那些:

“符合 known 信息(B 和 OK)”的布局

这些就叫做:兼容配置


🧠 什么是“兼容”?

一个坑布局是兼容的,指的是:

  • 每个有 B 的格子周围至少有一个坑

  • 每个 OK 的格子周围一个坑都不能有

举个例子:

假设黄色 fringe 区有 (1,3), (2,2), (2,3), (3,2)

我们可以:

  1. 只在 (1,3) 放一个坑,其他两个坑放在其他未知格子中

  2. 在 (1,3) 和 (2,2) 同时放坑,剩下一个坑放其他地方

  3. 只在 (2,2) 放一个坑,其他两个在其他地方

  4. 只在 (2,3) 放一个坑……

这些组合只要满足 B 和 OK 要求,我们就认为它是一个兼容布局。


📊 表格(兼容配置数量)

配置编号在 fringe(黄色) 中的坑情况满足 B/OK 吗?剩下坑的摆法数总方案数
A只有 (1,3) 是坑✅ 是剩下两个坑在 10 个格子里选 2 → C(10,2) = 4545
B(1,3) 和 (2,2) 是坑✅ 是剩下一个坑放 10 个格子 → 10 种10
C只有 (2,2) 是坑✅ 是剩下两个坑在 10 个格子里选 2 → 4545
D(2,2) 和 (3,2) 是坑✅ 是剩下一个坑放 10 个格子 → 10 种10
E(2,3) 是坑✅ 是剩下两个坑在 10 个格子里选 2 → 4545

把这些符合的全部相加 = 45 + 10 + 45 + 10 + 45 = 共 155 个兼容布局

为什么只有76种,是因为这155种有重复布局


✅ 四、如何计算概率?

现在我们知道:

  • 有多少个兼容布局(比如 76 个)

  • 其中多少个布局包含 (1,3) 是坑(比如 21 个)


http://www.ppmy.cn/devtools/172170.html

相关文章

DeepSeek API集成开发指南——Flask示例实践

DeepSeek API集成开发指南——Flask示例实践 序言&#xff1a;智能化开发新范式 DeepSeek API提供了覆盖自然语言处理、代码生成等多领域的先进AI能力。本文将以一个功能完备的Flask示例系统为载体&#xff0c;详解API的集成方法与最佳实践。通过本案例&#xff0c;开发者可快…

软件性能测试中的“假阳性”陷阱

软件性能测试中的“假阳性”陷阱主要表现为错误警报频繁、资源浪费严重、测试可信度降低。其中&#xff0c;错误警报频繁是最常见且最严重的问题之一&#xff0c;“假阳性”现象会导致开发团队在解决不存在的问题上花费大量时间。据行业调查显示&#xff0c;超过30%的性能优化成…

深入解析铸铁测量平台的多面魅力——北重安装

铸铁测量平台是一种用于测量和分析铸铁制品的平台&#xff0c;具有多方面的魅力和优势。以下是对其多面魅力的深入解析&#xff1a; 精准度高&#xff1a;铸铁测量平台采用先进的测量技术和精密的仪器设备&#xff0c;能够实现对铸铁制品尺寸、几何形状等各方面的高精度测量&am…

vue复习1~45

1.关于vue 要理解记忆规则&#xff0c;可以到官网上去找 vue的两种使用方式 vue核心包开发 场景&#xff1a;局部模块改造vue核心包 & vue插件 工程化开发 场景&#xff1a;整站开发 2.创建vue实例 构建用户页面->创建vue实例初始化渲染 学习阶段用开发版本 3.插值…

AI 对话艺术:Prompt 设计技巧与案例解析

文章目录 第 1 章&#xff1a;Prompt 基础1.1 什么是 Prompt&#xff1f;1.1.1 Prompt 的定义1.1.2 Prompt 编程与传统编程的区别 1.2 Prompt 的作用与应用场景1.2.1 自然语言处理&#xff08;NLP&#xff09;1.2.2 AI 对话系统&#xff08;ChatGPT、Claude&#xff09;1.2.3 代…

Linux常见使用场景

一、文件查看与内容操作 ​1. cat ​作用&#xff1a;查看文件内容&#xff08;一次性输出全部内容&#xff09;。​常用选项&#xff1a; -n&#xff1a;显示行号。-b&#xff1a;仅对非空行显示行号。 ​示例&#xff1a; cat file.txt # 查看文件内容 cat -n fil…

Spring项目中使用EasyExcel实现Excel 多 Sheet 导入导出功能(完整版)

Excel 多 Sheet 导入导出功能完整实现指南 一、环境依赖 1. Maven 依赖 <!-- EasyExcel --> <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.3.2</version> </dependency>…

Emacs 折腾日记(二十)——修改emacs的一些默认行为

上一篇我们完成了emacs输入法的配置以及将emacs配置成了使用vim的操作方式。但是emacs目前有些默认行为我不太喜欢&#xff0c;这节我们一起来修改它 备份设置 我们打开emacs的配置文件所在路径&#xff0c;发现有大量的~结尾的文件&#xff0c;这是emacs的备份文件。这里&am…