概率与决策理论

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.rhkb.cn/news/42750.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 学习路线推荐

文章目录 一、基础语法学习1.学习资源2.学习建议 二、数据处理与分析方向1. 数据处理库学习学习资源实践示例 2. 数据可视化实践示例 三、Web 开发方向1. Web 框架选择与学习学习资源实践示例 2. 前端知识补充学习资源 四、人工智能与机器学习方向1. 机器学习基础学习资源实践示…

如何让DeepSeek-R1在内网稳定运行并实现随时随地远程在线调用

前言&#xff1a;最近&#xff0c;国产AI圈里的新星——Deepseek&#xff0c;简直是火到不行。但是&#xff0c;你是不是已经对那些千篇一律的手机APP和网页版体验感到腻味了&#xff1f;别急&#xff0c;今天就带你解锁一个超炫的操作&#xff1a;在你的Windows电脑上本地部署…

SpringCloud+Mybatis-Plus+Docker+RabbitMQ+Redis+Elasticsearch黑马商城

一.MyBatis—Plus 一.快速入门 MybatisPlus介绍&#xff1a;MybatisPlus是一个基于Mybatis的增强工具库&#xff0c;旨在简化开发、提升效率&#xff0c;同时保留Mybatis的灵活性。它在Mybatis的基础上只做增强不做改变&#xff0c;引入它不会对现有工程产生影响 官网&#…

01 相机标定与相机模型介绍

学完本文,您将了解不同相机模型分类、内参意义,及对应的应用代码模型 标定的意义 建模三维世界点投影到二维图像平面的过程。标定输出的是相机模型。 相机模型 相机模型可以解理解为投影模型 +

如何在 Postman 中正确设置 Session 以维持用户状态?

在 Postman 里面设置有 session 的请求。如果你还不知道什么是 session&#xff0c;那么请看这里—— session 是一种记录客户端和服务器之间状态的机制&#xff0c;用于保持用户的登录状态或者其他数据&#xff0c;从而让用户在不同页面之间保持一致的体验。 Postman 设置带 …

免费使用!OpenAI 全量开放 GPT-4o 图像生成能力!

2025年3月26日&#xff0c;OpenAI正式推出GPT-4o原生图像生成功能&#xff0c;这一更新不仅标志着多模态AI技术的重大突破&#xff0c;更引发了全球AI厂商的激烈竞争。从免费用户到企业开发者&#xff0c;从创意设计到科学可视化&#xff0c;GPT-4o正在重塑图像生成的边界。本文…

【JavaScript】八、对象

文章目录 1、对象的声明2、对象的使用3、对象中的方法4、遍历对象5、内置对象Math 1、对象的声明 一种数据类型&#xff0c;使用typeof查看类型&#xff0c;结果是object可以详细的描述描述某个事物 声明语法&#xff1a; // 多用花括号形式声明 // 比如声明一个person对象 …

C++指针(五)完结篇

个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 前言 相关文章&#xff1a;C指针&#xff08;一&#xff09;、C指针&#xff08;二&#xff09;、C指针&#xff08;三&#xff09;、C指针&#xff08;四&#xff09;万字图文详解&#xff01; 本篇博客是介…

DataGear 企业版 1.4.0 发布,数据可视化分析平台

DataGear 企业版 1.4.0 已发布&#xff0c;欢迎体验&#xff01; http://datagear.tech/pro/ 企业版 1.4.0 看板可视编辑模式新增了插入看板表单/面板布局、编辑图表联动、复制/粘贴、撤销/恢复等功能&#xff0c;具体更新内容如下&#xff1a; 新增&#xff1a;看板可视编辑…

windows第十八章 菜单、工具栏、状态栏

文章目录 创建框架窗口菜单菜单的风格通过资源创建菜单菜单的各种使用通过代码创建菜单在鼠标位置右键弹出菜单 CMenu常用函数介绍工具栏方式一&#xff0c;从资源创建工具栏方式二&#xff0c;代码创建 状态栏状态栏基础创建状态栏 创建框架窗口 手动创建一个空项目&#xff…

局域网共享失败?打印机/文件夹共享工具

很多时候&#xff0c;在办公或家庭环境中&#xff0c;我们需要进行打印机和文件夹的共享&#xff0c;以便更高效地协作和处理文件。然而&#xff0c;寻找对应版本的共享设置或是不想花费太多时间去进行复杂的电脑设置&#xff0c;总是让人感到头疼。今天&#xff0c;我要向大家…

C++中使用CopyFromRecordset将记录集拷贝到excel中时,如果记录集为0个,函数崩溃,是什么原因

文章目录 原因分析解决方案1. 检查记录集是否为空2. 安全调用COM方法3.进行异常捕获4. 替代方案&#xff1a;手动处理空数据 总结 在C中使用CopyFromRecordset将空记录集&#xff08;0条记录&#xff09;复制到Excel时崩溃的原因及解决方法如下&#xff1a; 原因分析 空记录集…

torchvision中数据集的使用

1、torchvision及其数据集的介绍 1.1 torchvision介绍 torchvision 是 PyTorch 的一个官方库&#xff0c;专门用于计算机视觉任务。它提供了以下核心功能&#xff1a; 预训练模型&#xff1a;如 ResNet、VGG、EfficientNet 等。数据集&#xff1a;内置常用视觉数据集&#xf…

d2025328

一、sql-判断三角形 610. 判断三角形 - 力扣&#xff08;LeetCode&#xff09; 用一下if加上判断条件 select x,y,z,if(xy > z and xz > y and yz > x and x-y < z and x-z < y and y-z < x,Yes,No) as triangle from Triangle 二、按照分类统计薪水 190…

C++20新特性:std::assume_aligned详解

文章目录 一、概述二、函数定义与语法三、使用方法与注意事项1. 使用方法2. 注意事项 四、性能优化原理五、实际应用场景六、编译器支持情况七、总结 一、概述 C20引入了std::assume_aligned&#xff0c;这是一个非常实用的特性&#xff0c;用于告知编译器某个指针所指向的对象…

洛谷P1706 全排列题解

P1706 全排列问题 题目描述 按照字典序输出自然数 1 1 1 到 n n n 所有不重复的排列&#xff0c;即 n n n 的全排列&#xff0c;要求所产生的任一数字序列中不允许出现重复的数字。 输入格式 一个整数 n n n。 输出格式 由 1 ∼ n 1 \sim n 1∼n 组成的所有不重复的…

yum install 报错(CentOS换源):

yum instally yum utils device mapper persistent-data lvm2 报错&#xff1a; 排查错误原因&#xff1a;centos7 系统停止维护了 解决方案&#xff1a;换源&#xff08;更换操作系统&#xff09; //1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-…

C语言学习笔记(抱佛脚版)

毕业一年&#xff0c;发现记性是真的差&#xff0c;每次想起之前的知识总是想不全&#xff0c;看别人写的资料也懵懵懂懂。于是我索性自己再学一遍&#xff0c;并且记录一下。希望对你们也有所帮助。 正片开始&#xff01; 前面的什么if for都不难理解&#xff0c;嵌套的话也…

攻破tensorflow,勇创最佳agent(2)---损失(loss) 准确率(accuracy)问题

实战播: 怎么判定一个模型好不好,你设置的值对不对? 需要再看几个值: 例如: model Sequential()for units in model_structure:model.add(Dense(units, activationrelu))model.add(Dropout(train_config.get(dropout_rate, 0.3)))model.add(Dense(1, activationsigmoid)) 他…

Docker-Volume数据卷详讲

Docker数据卷-Volume 一&#xff1a;Volume是什么&#xff0c;用来做什么的 当删除docker容器时&#xff0c;容器内部的文件就会跟随容器所销毁&#xff0c;在生产环境中我们需要将数据持久化保存&#xff0c;就催生了将容器内部的数据保存在宿主机的需求&#xff0c;volume …