math - 函数式编程和马尔可夫链有某种关系吗?

标签 math functional-programming lambda-calculus markov-chains markov

David Silver 将马尔可夫链的属性描述为:

The future is independent of the past given the present

https://www.youtube.com/watch?v=lfHX2hHRMVQ (视频时长 4 分钟)

这引起了我的共鸣,因为我目前正在学习函数式编程(FP)。

在 FP 中,您也可以忽略过去,因为您的函数只需要当前状态即可执行某些操作并输出新状态。这对于面向对象不一定是正确的,因为您的输出可能取决于不同位置的多个状态。

FP 和马尔可夫链之间是否存在我不知道的更深层次的联系?

例如,用 FP 编写的函数是确定性马尔可夫链是否准确?

最佳答案

马尔可夫链和函数式编程之间确实存在联系。马尔可夫链是一种非确定性Finite-State Machine (FSM),而链接纯函数将产生确定性 FSM。这里需要注意的是,在现实世界(例如,Web 应用程序)中,您通常还需要非纯函数(例如,修改或查询外部数据库)。

我发现将程序状态建模为有限状态机 (FSM) 非常有用,既可以作为隐喻,也可以作为状态和转换建模的具体方法。例如,FSM 很好地表示 which actions are allowed at which state实现(Web)用户界面时。

关于math - 函数式编程和马尔可夫链有某种关系吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44377458/

相关文章:

f# - 这可以用点自由风格表达吗?

使用查找表以低内存计算(x 指数 0.19029)?

scala - 任何人都可以使用 1 行这个 Scala 代码吗(最好使用 FP?)

c# - 函数式 C# 和尾递归

r - R 保留列表循环中最后一个变量的奇怪行为?

f# - 纯函数式语言中的 η 展开

functional-programming - 类型检查与类型推断

java - 任何大小的数组java的标准差

java - 为什么这个java优雅的配对方法没有给出正确的结果?

从1到n计算5个区间点的算法