当前位置: 首页 > news >正文

概率有限自动机定义与示例

这里介绍概率有限自动机 (Probabilistic Finite Automata, PFA) 的定义及其示例。


1. PFA 的定义

定义
概率有限自动机(PFA)是有限状态自动机(FA)的扩展,它在状态转移中引入概率,用于建模随机过程或不确定性系统。
形式上,一个 PFA 是一个五元组:

        PFA = (Q, \Sigma, \delta, q_0, F, P)
其中:

            Q:有限状态集合

            \Sigma:有限输入字母表

            \delta: Q \times \Sigma \times Q \rightarrow [0,1]:概率转移函数,满足  \forall q \in Q, \forall a \in \Sigma, \sum_{q' \in Q} \delta(q,a,q') = 1

           q_0 \in Q:初始状态

          F \subseteq Q:接受状态集合

          P: F \rightarrow [0,1]:终止概率函数(某些定义中可省略)

关键点

            每一步转移是概率性的,而非确定性;同时,接受一个字符串的概率 = 所有接受路径概率之和(归一性)。

2. PFA 的一些特点

        PFA 有语言识别能力,可以识别随机语言(Stochastic Languages),即对每个字符串 w 赋予一个概率 P(w);而且,PFA 与加权自动机(Weighted Automata) 密切相关,这里先不展开;当所有转移概率为 0或1 时,PFA 退化为 DFA;但 PFA 的表达能力 严格强于 DFA/NFA,可以建模概率分布;PFA 是 概率图灵机(Probabilistic Turing Machine) 的有限状态版本;可用于建模 马尔可夫链(Markov Chains);最后重复地强调一点,对任意状态和输入符号,所有出转移概率之和必须为 1(即概率分布),这是所谓的归一性。

3. 几个 PFA 的示例


(1) 简单示例:二进制输入的随机切换


问题:以 0.5 概率在状态 q_0  和 q_1 之间切换,输入字母表 \Sigma = \{a\} 。
PFA  Def

    状态:Q = \{q_0, q_1\}

    转移:

                \delta(q_0, a, q_0) = 0.5

                \delta(q_0, a, q_1) = 0.5

                \delta(q_1, a, q_0) = 0.5

                \delta(q_1, a, q_1) = 0.5

    初始状态:q_0

    接受状态:F = \{q_0\}, P(q_0) = 1 

    行为:无论输入多少 a,始终以 50% 概率停留在  q_0  或  q_1  。

    接受概率:若最终停在 q_0 ,则接受,否则拒绝。

(2) 复杂示例:带终止概率的PFA


问题:建模一个系统,输入 \{a, b\},遇到 a 时以 0.7 概率保持状态,0.3 概率切换;遇到 b 时以 0.9 概率终止。
PFA Def

    状态:Q = \{q_0, q_{\text{end}}\}

    转移:\delta(q_0, a, q_0) = 0.7

               \delta(q_0, a, q_{\text{end}}) = 0.3

               \delta(q_0, b, q_{\text{end}}) = 0.9

               \delta(q_0, b, q_0) = 0.1

    初始状态:q_0

    接受状态:F = \{q_{\text{end}}\}P(q_{\text{end}}) = 1

    行为:

                输入 aabaab

                路径 1: q_0 \xrightarrow{a} q_0 \xrightarrow{a} q_0 \xrightarrow{b} q_{\text{end}}

                        概率 = 0.7 \times 0.7 \times 0.9 = 0.441

                路径 2: → 提前终止

                        概率 = 0.7 \times 0.3 = 0.21

                总接受概率 = 0.441 + 0.21 = 0.651

(3) 更复杂示例:3状态PFA


思考实际问题:建模一个天气系统(晴、雨、阴),状态转移受输入\{u, d\}(升温/降温)影响。


PFA Def

    状态:Q = \{\text{Sunny}, \text{Rainy}, \text{Cloudy}\}

    转移:

        输入 u(升温):

            \delta(\text{Sunny}, u, \text{Sunny}) = 0.6

            \delta(\text{Sunny}, u, \text{Rainy}) = 0.4

            \delta(\text{Cloudy}, u, \text{Sunny}) = 0.5

            \delta(\text{Cloudy}, u, \text{Rainy}) = 0.5

            \delta(\text{Rainy}, u, \text{Rainy}) = 1.0

        输入 d(降温):

            \delta(\text{Sunny}, d, \text{Cloudy}) = 0.3

            \delta(\text{Sunny}, d, \text{Rainy}) = 0.7

            \delta(\text{Cloudy}, d, \text{Rainy}) = 1.0

            \delta(\text{Rainy}, d, \text{Rainy}) = 1.0

    初始状态:\text{Sunny}

    接受状态:F = \{\text{Sunny}\}, P(\text{Sunny}) = 1

    行为:

         输入序列 u, d, u 的可能路径:

             \text{Sunny} \xrightarrow{u} \text{Sunny} \xrightarrow{d} \text{Rainy} \xrightarrow{u} \text{Cloudy} → 不接受

             \text{Sunny} \xrightarrow{u} \text{Cloudy} \xrightarrow{d} \text{Rainy} \xrightarrow{u} \text{Cloudy} → 不接受

          接受概率 = 0(无路径以 \text{Sunny} 结束)。


4. 小结

        PFA 通过概率转移扩展了有限自动机的能力,适合建模随机过程。简单 PFA 可用于模拟硬币抛掷等基础随机事件,复杂 PFA 可描述天气系统、语言模型等。与DFA/NFA 的关键区别在于,DFA/NFA 回答“是否接受”,而 PFA 回答“以何概率接受”。

http://www.dtcms.com/a/303436.html

相关文章:

  • 智慧社区项目开发(二)——基于 JWT 的登录验证功能实现详解
  • 吃透 lambda 表达式(匿名函数)
  • mysql详细知识点
  • python中类变量 __slots__ 解析
  • Matplotlib(三)- 图表辅助元素
  • Vue3判断对象是否为空方法
  • 飞鹤困局:增长神话的裂痕
  • 嵌软面试——通信协议
  • 7.项目起步(1)
  • 1.vue体验
  • 快速构建基于React.js的用户注册与登录的Web应用程序
  • vue element 封装表单
  • 代码随想录算法训练营第三十三天
  • 7.28PBR技术
  • Linux系统编程——数据库
  • 介绍一下static关键字
  • Sum-rate计算
  • 【代码解读】通义万相最新视频生成模型 Wan 2.2 实现解析
  • 同态滤波算法详解:基于频域变换的光照不均匀校正
  • 栈算法之【用栈实现队列】
  • 凸优化:凸函数的一些常用性质
  • OpenLayers 综合案例-量测工具
  • 【Zustand】从复杂到简洁:Zustand 状态管理简化实战指南
  • 图解系统的学习笔记--硬件结构
  • 告别繁琐 Mapper!Stream-Query 正式入驻 GitCode 平台
  • GPFS文件系统更换磁盘
  • 企业级JWT验证最佳方案:StringUtils.hasText()
  • AD中放置过孔阵列
  • Python 异常 (Exception) 深度解析
  • 如何获取我当前的IP地址