Markov Decision Process,MDP

简介: 马尔可夫决策过程(Markov Decision Process,MDP)是一种用于描述决策者在马尔可夫环境中进行决策的数学模型。它由四个核心要素组成:状态(State)、动作(Action)、转移概率(Transition Probability)和奖励(Reward)。在 MDP 中,智能体(Agent)需要在给定的状态下选择一个动作,然后根据状态转移概率和奖励更新状态,最终目标是最大化累积奖励。

马尔可夫决策过程(Markov Decision Process,MDP)是一种用于描述决策者在马尔可夫环境中进行决策的数学模型。它由四个核心要素组成:状态(State)、动作(Action)、转移概率(Transition Probability)和奖励(Reward)。在 MDP 中,智能体(Agent)需要在给定的状态下选择一个动作,然后根据状态转移概率和奖励更新状态,最终目标是最大化累积奖励。
MDP 可以用以下四个基本方程表示:

  1. 状态转移方程(State Transition Equation):P(s'|s, a) = 转移概率,表示在给定状态下执行某个动作后,转移到新状态的概率。
  2. 奖励方程(Reward Equation):R(s, a) = 奖励,表示在给定状态下执行某个动作后,获得的奖励。
  3. 状态值方程(State Value Equation):V(s) = 期望奖励,表示在给定状态下,执行某个动作后,期望获得的累积奖励。
  4. 动作值方程(Action Value Equation):Q(s, a) = 期望奖励,表示在给定状态下,执行某个动作后,期望获得的累积奖励。
    MDP 的解决方法之一是值迭代(Value Iteration),通过不断更新状态值和动作值矩阵,最终找到最优策略。
    下面是一个简单的 MDP Demo:

import numpy as np

定义状态转移概率矩阵

transition_prob = np.array([[0.2, 0.5, 0.3],
[0.4, 0.1, 0.5],
[0.1, 0.8, 0.1]])

定义奖励矩阵

reward = np.array([[0, 1, 0],
[0, 0, 1],
[1, 0, 0]])

初始化状态值矩阵

V = np.zeros(3)

通过值迭代更新状态值矩阵

for _ in range(1000):
for i in range(3):
max_prob = 0
max_state = 0
for j in range(3):
prob = transition_prob[i][j] * V[j]
if prob > max_prob:
max_prob = prob
max_state = j
V[i] = max_prob

输出最终状态值矩阵

print("最终状态值矩阵:")
print(V)

定义动作值矩阵

Q = np.zeros((3, 3))

通过值迭代更新动作值矩阵

for _ in range(1000):
for i in range(3):
for j in range(3):
Q[i][j] = transition_prob[i][j] * V[j]

输出最终动作值矩阵

print("\n最终动作值矩阵:")
print(Q)
CopyCopy

应用场景包括:

  1. 游戏:MDP 可以用于训练游戏 AI,例如 AlphaGo、AlphaStar 等。
  2. 自动化控制:MDP 可以用于优化控制系统的决策,例如工业机器人、自动驾驶等。
  3. 资源调度:MDP 可以用于优化资源分配,例如电力系统、无线通信网络等。
  4. 推荐系统:MDP 可以用于优化推荐策略,例如电商网站、社交媒体等。
目录
相关文章
|
6月前
Gym 102394 I. Interesting Permutation(DP)
【7月更文挑战第3天】
47 7
|
机器学习/深度学习 开发框架 算法
动手学强化学习(二):马尔可夫决策过程 (Markov decision process,MDP)
 马尔可夫决策过程(Markov decision process,MDP)是强化学习的重要概念。要学好强化学习,我们首先要掌握马尔可夫决策过程的基础知识。前两章所说的强化学习中的环境一般就是一个马尔可夫决策过程。与多臂老虎机问题不同,马尔可夫决策过程包含状态信息以及状态之间的转移机制。如果要用强化学习去解决一个实际问题,第一步要做的事情就是把这个实际问题抽象为一个马尔可夫决策过程,也就是明确马尔可夫决策过程的各个组成要素。本章将从马尔可夫过程出发,一步一步地进行介绍,最后引出马尔可夫决策过程。
1826 0
AtCoder Beginner Contest 214 D.Sum of Maximum Weights (思维 并查集)
AtCoder Beginner Contest 214 D.Sum of Maximum Weights (思维 并查集)
125 0
成功解决coordinate_descent.py:491: ConvergenceWarning: Objective did not converge. You might want to inc
成功解决coordinate_descent.py:491: ConvergenceWarning: Objective did not converge. You might want to inc
|
机器学习/深度学习 算法 数据挖掘
机器学习算法 --- Pruning (decision trees) & Random Forest Algorithm
一、Table for Content   在之前的文章中我们介绍了Decision Trees Agorithms,然而这个学习算法有一个很大的弊端,就是很容易出现Overfitting,为了解决此问题人们找到了一种方法,就是对Decision Trees 进行 Pruning(剪枝)操作。
1910 0
Predicting Heart Diseases with Machine Learning
Heart disease is a major cause of death, affecting over one-third of the world's population. In China, hundreds of thousands of people die of heart disease every year.
3046 0