David Silver Reinforcement Learning -- Markov process

news2024/11/18 4:44:01

1 Introduction

这个章节介绍关键的理论概念。
马尔科夫过程的作用:
1)马尔科夫过程描述强化学习环境的方法,环境是完全能观测的;
2)几乎所有的RL问题可以转换成MDP的形式;

2 Markov Processes

2.1 Markov 属性

属性1:未来和过去无关,只受当前的状态影响
在这里插入图片描述

2.2 转移概率矩阵

从当前状态S转移到S’状态的概率,每行的概率之和为1.
在这里插入图片描述

2.3 markov chains

马尔科夫过程是无记忆的随机过程,一串状态以及markov的属性。一个马尔科夫过程,只要有有限个状态,以及他们之间相互转换的概率,就可以构建。
在这里插入图片描述
课程上给出了一个例子:
在这里插入图片描述
对应的转移概率矩阵
在这里插入图片描述
从class1 到 sleep有很多的链条
在这里插入图片描述

3 markov decision process

3.1 定义

马尔科夫奖励过程就是markov链和每个状态的reward

在马尔可夫决策过程(Markov Decision Process, MDP)中,奖励函数(reward function)是一个用于表示智能体在执行某个动作后所获得的即时奖励的函数。奖励函数通常用于指导智能体的行为,使其学会在面对不同的状态时做出对其最有利的决策。

在这里插入图片描述
在这里插入图片描述

3.2 return

从时刻t开始的总折扣奖励是Gt。这里的折扣奖励是指将未来的奖励按照一定的比例进行打折,以体现当前奖励的价值。通过调整 γ \gamma γ调整未来reward的权重。
在这里插入图片描述
通过这个公式,可以算出来,从当前C1到最后SLEEP这个链的reward,比如可以用来选择走那条路径更优。
在这里插入图片描述

为什么要对后续的reward的添加权重
1.添加权重计算上比较简单;
2.避免循环马尔科夫链出现无穷大的情况
3.倾向于对眼前的利益
4.有时候也可能出现权重不衰减的情况;

3.3 value function

本质上还是用来评价当前这个状态好不好的,如何去评价,从当前状态到最终状态,可以积多少分
在这里插入图片描述
最简单的情况, γ = 0 \gamma=0 γ=0,完全不考虑未来
在这里插入图片描述
求一下S1 = C1, γ = 0.5 \gamma=0.5 γ=0.5的value值
问题:从S1=C1到最终的Sleep有很多条路径,那就有很多个结果,因为有状态概率矩阵,所以可以得到一个期望值?
在这里插入图片描述
value function 必然选择最好的一条路径作为评价当前state的数值,这是一个典型的动态规划问题。
动态规划问题的思路就是将问题拆成更小的问题,当前 S t S_t St的value function不知道,但是只要知道 S t + 1 S_{t+1} St+1的状态,很容易得到当前时刻的value function。
在这里插入图片描述
用图表示就是这个样子的
在这里插入图片描述
在这里插入图片描述
用动态规划的方法进行求解,且 γ = 1 \gamma=1 γ=1,得到一下的markov 状态的value function.
在这里插入图片描述
用矩阵的形式进行求解,
v = R + γ ∗ P ∗ v v = ( I − γ ∗ P ) − 1 R \begin{aligned} v &= R + \gamma * P* v \\ v &= (I - \gamma *P)^{-1}R \end{aligned} vv=R+γPv=(IγP)1R
验算一下上面的结果,因为$ (I - \gamma *P)$不可逆,比较悲剧,和上面这个结果差距很大,所以只能用其他方法来进行计算
,用value iteration的方法进行求解,因为我们这个问题维度比较小,只要最终状态收敛了就行。

function state_value = valueIterator(transition_matrix, reward_vector, discount_factor, tolerance)
    n = size(transition_matrix, 1);
    state_value = zeros(n, 1);
    delta = inf;

    while delta > tolerance
        new_state_value = reward_vector + discount_factor * transition_matrix * state_value;
        delta = max(abs(new_state_value - state_value));
        state_value = new_state_value;
    end
end

求解结果: -12.5432, 1.4568, 4.3210, 10.0000, 0.8025, -22.5432, 0

1)动态规划,对于我们这个问题,可以尝试用动态规划
2)monte-carlo evaluation
3) temporal difference learning

4 Markov decision processes

马尔科夫奖励过程上再加上决策;
在这里插入图片描述
从S到S’,是因为有action的推动。
问题:既然有action主动的去推动,还需要状态转移概率矩阵吗?
一种理解方式:处于当前状态S,有 P s s ′ a P^a_{ss'} Pssa的概率去执行动作a;

4.1 policies

在马尔可夫决策过程(MDP)的环境中,策略是一个从状态到动作的映射,表示代理(Agent)在每个状态下选择采取哪个动作的规则。通常用π表示策略,即π(a|s)表示在状态s下采取动作a的概率
在这里插入图片描述
再来理解一下状态转移矩阵和policy矩阵的区别

状态转移矩阵(Transition Matrix):它表示在给定状态下执行某个动作后到达下一个状态的概率。状态转移矩阵的元素P(s’|s, a)表示在状态s下执行动作a,然后到达状态s’的概率。状态转移矩阵是MDP中一个固定的特性,与策略无关。它描述了在执行一个动作后,环境如何变化。

策略(Policy)矩阵:它表示在给定状态下选择执行某个动作的概率。策略矩阵的元素π(a|s)表示在状态s下选择执行动作a的概率。策略矩阵是MDP中的一个可调整的特性,可以根据需要选择不同的策略。它描述了在给定状态下,智能体如何选择执行动作。

考虑policy之后,从状态s到状态s’,要先经过一个状态概率输出动作a,然后再由 P s s ′ a P_{ss'}^a Pssa的状态转移矩阵过去。

在这里插入图片描述
书中给的这两个关系,不太能理解

4.2 Value functions

4.2.1 state-value function

状态之间的转移如今不是单纯的确定概率了,而且可以通过策略进行调整了,在新策略之下,衡量当前S的状态评分。

状态价值函数 V(s):在状态 s 下遵循策略π的预期回报。即在状态 s 下,智能体采取策略π所能获得的长期回报的期望值。

在这里插入图片描述
使用公式进行计算,
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) [ R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V π ( s ′ ) ] V_{\pi}(s) = \sum_{a \in \mathcal{A}} \pi(a|s) \left[R(s, a) + \gamma \sum_{s' \in \mathcal{S}} P(s'|s, a) V_{\pi}(s')\right] Vπ(s)=aAπ(as)[R(s,a)+γsSP(ss,a)Vπ(s)]
从用下图去表示,
在这里插入图片描述
转换成矩阵形式, v π ( s ) v_{\pi}(s) vπ(s)是一个

找一个简单的问题:

假设一个机器人处于一个4x4的网格世界,每个网格代表一个状态,共有16个状态(S1至S16)。机器人可以采取四个动作:上(U)、下(D)、左(L)和右(R)。假设机器人在状态S1(左上角),试图向右移动。然而,由于地面湿滑,机器人执行动作的不确定性使得实际移动方向可能发生偏移。
在这个例子中,当机器人试图从状态S1向右移动时,实际状态转移概率分布可能如下:
转移到状态S2(向右)的概率:0.8
转移到状态S5(向下)的概率:0.2

我们用一个4x4x4的张量来表示状态转移矩阵,第一维表示动作(上、下、左、右),第二维表示起始状态,第三维表示目标状态。这里我们仅提供一个概要的状态转移矩阵,仅包含部分非零元素

% 参数设置
num_states = 16;
num_actions = 4;
gamma = 0.9;  % 折扣因子
theta = 1e-6; % 阈值,用于判断价值函数收敛
max_iter = 1000; % 最大迭代次数

% 状态转移矩阵 (4x16x16,对应于动作的顺序是:上、下、左、右)
P = zeros(num_actions, num_states, num_states);

% 定义状态转移矩阵的函数
% 省略了具体的状态转移矩阵实现,您可以根据之前的讨论来定义状态转移矩阵

% 奖励函数(16x4,行表示状态,列表示动作)
% 您可以根据实际问题自定义奖励函数
R = ...;

% 策略(16x4,行表示状态,列表示动作),均匀随机策略
policy = ones(num_states, num_actions) / num_actions;

% 初始化状态价值函数(1x16)
V = zeros(1, num_states);

% 迭代计算状态价值函数
for iter = 1:max_iter
    V_old = V;
    for s = 1:num_states
        V_temp = 0;
        for a = 1:num_actions
            V_temp = V_temp + policy(s, a) * (R(s, a) + gamma * sum(P(a, s, :) .* V_old));
        end
        V(s) = V_temp;
    end
    
    % 判断价值函数是否收敛
    if max(abs(V - V_old)) < theta
        break;
    end
end

% 输出状态价值函数
disp(V);

4.2.2 action value function

用于评估在给定策略下,一个状态下采取某个动作的长期价值。它表示从当前状态开始,首先执行某一特定动作,然后遵循给定策略,预期累计奖励的期望值。用Q(s, a)表示动作价值函数,其中s为状态,a为动作,Q(s, a)为在状态s下执行动作a的动作价值。

动作价值函数的意义在于,它可以帮助智能体在给定状态下选择最优的动作。通过比较不同动作的动作价值函数,智能体可以选择具有最高长期价值的动作,从而实现策略的优化。
为了选择最优的动作,智能体可以比较这些动作的动作价值函数Q(s, a),并选择具有最高价值的动作。例如,如果在当前位置,向右移动的动作价值函数Q(s, 右)最高,智能体将选择向右移动,以期望获得最大的累计奖励。
总之,状态价值函数V(s)用于评估在给定策略下,一个状态的长期价值;动作价值函数Q(s, a)用于评估在给定策略下,一个状态下采取某个动作的长期价值。动作价值函数对智能体具有重要意义,因为它可以帮助智能体在给定状态下选择最优的动作,从而实现策略的优化。

用action value function的定义就能看出,跟后续的状态的state value是相关的,接下来推导他们的关系。
在这里插入图片描述
从公式来看,执行一连串的
Q π ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V π ( s ′ ) Q^{\pi}(s, a) = R(s, a) + \gamma \sum_{s' \in S} P(s'|s, a) V^{\pi}(s') Qπ(s,a)=R(s,a)+γsSP(ss,a)Vπ(s)

这个公式很容易理解,
在这里插入图片描述

4.2.3 用bellman function 总结上面的关系

V π ( s ) = ∑ a ∈ A π ( a ∣ s ) [ R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V π ( s ′ ) ] R π ( s ) = ∑ a ∈ A π ( a ∣ s ) R ( s , a ) P π ( s ′ ∣ s ) = ∑ a ∈ A ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V π ( s ) = R π ( s ) + γ P π ( s ′ ∣ s ) V π ( s ) \begin{aligned} V_{\pi}(s) &= \sum_{a \in \mathcal{A}} \pi(a|s) \left[R(s, a) + \gamma \sum_{s' \in \mathcal{S}} P(s'|s, a) V_{\pi}(s')\right] \\ R^{\pi} (s)& = \sum_{a \in \mathcal{A}} \pi(a|s) R(s, a) \\ P^{\pi}(s'|s) & = \sum_{a \in \mathcal{A}} \sum_{s' \in \mathcal{S}} P(s'|s, a) \\ V_{\pi}(s) & = R^{\pi}(s)+\gamma P^{\pi}(s'|s) V_{\pi}(s) \end{aligned} Vπ(s)Rπ(s)Pπ(ss)Vπ(s)=aAπ(as)[R(s,a)+γsSP(ss,a)Vπ(s)]=aAπ(as)R(s,a)=aAsSP(ss,a)=Rπ(s)+γPπ(ss)Vπ(s)

看一下带policy的reward的应该如何定义,R(s,a)表示处于状态s情况下,采用动作a的奖励,
R π R^{\pi} Rπ表示在给定策略π下,智能体在状态s采取不同动作a的期望奖励。

4.3 optimal value functions

4.3.1 optimal state value function

找一个最好的policy去最大化状态value function
在这里插入图片描述
找一个最好的policy去最大化action value function
在这里插入图片描述
定义什么是最优的policy

所有的state, 取得了最大的value function
在这里插入图片描述
所有的action,取得了最大的action value 数值
在这里插入图片描述

4.3.2 如何寻找optimal policy

简单理解就是要最大化action value的期望。

要确定全局的最优策略,我们需要关注的是状态-动作价值函数(state-action value function),也被称为Q-function。Q-function 衡量了在特定策略下,从某一状态(state)采取某一动作(action)开始所能获得的期望累积奖励。我们可以使用贝尔曼最优方程(Bellman optimality equation)来寻找最优策略。

再来回顾一下action value function的定义,
Q π ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V π ( s ′ ) V π ( s ) = ∑ a ∈ A π ( a ∣ s ) [ R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V π ( s ′ ) ] Q ∗ ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V ∗ ( s ′ ) V ∗ ( s ) = max ⁡ a ( R ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) V ∗ ( s ′ ) ) \begin{aligned} Q^{\pi}(s, a) &= R(s, a) + \gamma \sum_{s' \in S} P(s'|s, a) V^{\pi}(s') \\ V_{\pi}(s) &= \sum_{a \in \mathcal{A}} \pi(a|s) \left[R(s, a) + \gamma \sum_{s' \in \mathcal{S}} P(s'|s, a) V_{\pi}(s')\right]\\ Q^{*}(s, a) &= R(s, a) + \gamma \sum_{s' \in S} P(s'|s, a) V^{*}(s') \\ V^*(s) & = \max_a \left( R(s, a) + \gamma \sum_{s'} P(s'|s, a) V^*(s') \right) \\ \end{aligned} Qπ(s,a)Vπ(s)Q(s,a)V(s)=R(s,a)+γsSP(ss,a)Vπ(s)=aAπ(as)[R(s,a)+γsSP(ss,a)Vπ(s)]=R(s,a)+γsSP(ss,a)V(s)=amax(R(s,a)+γsP(ss,a)V(s))

重要的公式1,optimal value function 和optimal action value function的关系
V ∗ ( s ) = max ⁡ a Q ∗ ( s , a ) V^*(s) = \max_a Q^*(s, a) V(s)=amaxQ(s,a)

它表示在状态 s s s下,最优状态价值函数 V ∗ ( s ) V^*(s) V(s)等于所有可能动作的最优状态-动作价值函数 Q ∗ ( s , a ) Q^*(s, a) Q(s,a)的最大值。换句话说,如果我们遵循最优策略,在状态 s s s下,我们会选择那个能让我们获得最大期望累积奖励的动作。
从理解的角度, state的value和最优的action的结果相同,
在这里插入图片描述
在这里插入图片描述
重要的公式2,optimal value function 和optimal action value function的关系

Q ∗ ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V ∗ ( s ′ ) V ∗ ( s ) = max ⁡ a ( R ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) V ∗ ( s ′ ) ) \begin{aligned} Q^{*}(s, a) &= R(s, a) + \gamma \sum_{s' \in S} P(s'|s, a) V^{*}(s') \\ V^*(s) & = \max_a \left( R(s, a) + \gamma \sum_{s'} P(s'|s, a) V^*(s') \right) \\ \end{aligned} Q(s,a)V(s)=R(s,a)+γsSP(ss,a)V(s)=amax(R(s,a)+γsP(ss,a)V(s))
在这里插入图片描述
Q ∗ ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V ∗ ( s ′ ) Q ∗ ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) max ⁡ a ′ q ∗ ( s ′ , a ′ ) \begin{aligned} Q^{*}(s, a) &= R(s, a) + \gamma \sum_{s' \in S} P(s'|s, a) V^{*}(s') \\ Q^{*}(s, a) &= R(s, a) + \gamma \sum_{s' \in S} P(s'|s, a) \max_{a'} q^*(s',a') \end{aligned} Q(s,a)Q(s,a)=R(s,a)+γsSP(ss,a)V(s)=R(s,a)+γsSP(ss,a)amaxq(s,a)

在这里插入图片描述
求解的办法
1)value iteration
2) Policy iteration
3) Q-learning
4) Sarsa

5 Extensions to MDPs

5.1 infinite and continuous mdps

  • Countably infinite state and/or action spaces
    • Straightforward
  • Continuous state and/or action spaces
    • closed form for linear quadratic model
  • continuous time
    • 需要微分动态方程
    • HJB 方程
    • limiting case of Bellman equation as time-step

5.2 Partially observable MDPs

在这里插入图片描述

5.2.1 belief states

在这里插入图片描述
在这里插入图片描述

5.3 Undiscounted, average reward MDP

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/463361.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python】实战:生成无关联单选问卷 csv《日常生活活动评估表》

目录 一、适用场景 二、业务需求 三、Python 文件 &#xff08;1&#xff09;创建文件 &#xff08;2&#xff09;代码示例 四、csv 文件 一、适用场景 实战场景&#xff1a; 问卷全部为单选题问卷问题全部为必填问题之间无关联关系每个问题的答案分数不同根据问卷全部…

【具体到每一步】uniapp打包app生成apk包

先配置 云打包 关于证书 备注 弹出来这么个东西是加入你这个应用要发布到商店&#xff0c;需要签署的一些东西&#xff0c;先不用管了 然后等等 这个时间有点长 [HBuilder] 02:28:29.892 打包成功后会自动返回下载链接。 [HBuilder] 02:28:29.892 打包过程查询请点菜单发行-查…

HTML5 <small> 标签\、HTML5 <style> 标签

HTML5 <small> 标签 \ 定义和用法 <small> 标签制作更小字号的文本。在HTML5中不再使用<small>标签&#xff0c;请参考“HTML <small> 标签”部分。 HTML 4.01 与 HTML 5 之间的差异 在 HTML 5 中不支持 <small> 标签。 HTML5 <style>…

边缘计算与AI布署应用电力物联网解决方案-RK3588开发平台

电力行业拥有规模庞大的各类设备&#xff0c;如电表、各类保护、采集、控制设备。面对分布式发电、储能、用户微网等一系列综合问题&#xff0c;边缘计算与AI布署可满足“端侧本地化”高效运用的需求&#xff0c;协助提升最后一公里运行效率。 瑞芯微RK3588J、内置独立NPU&…

那些关于DIP器件不得不说的坑

了解什么是DIP DIP就是插件&#xff0c;采用这种封装方式的芯片有两排引脚&#xff0c;可以直接焊在有DIP结构的芯片插座上或焊在有相同焊孔数的焊位中。其特点是可以很方便地实现PCB板的穿孔焊接&#xff0c;和主板有很好的兼容性&#xff0c;但是由于其封装面积和厚度都比较…

压力应变桥信号处理系列隔离放大器 差分输入转换直流变送模块

概述&#xff1a; DIN11 IPO 压力应变桥信号处理系列隔离放大器是一种将差分输入信号隔离放大、转换成按比例输出的直流信号导轨安装变送模块。产品广泛应用在电力、远程监控、仪器仪表、医疗设备、工业自控等行业。此系列模块内部嵌入了一个高效微功率的电源&#xff0c;向输…

2023年制造业产品经理NPDP认证报名入口及指南

产品经理国际资格认证NPDP是新产品开发方面的认证&#xff0c;集理论、方法与实践为一体的全方位的知识体系&#xff0c;为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会&#xff08;PDMA&#xff09;成立于1979年&#xff0c;是…

我用什么写Python?

入门教程、案例源码、学习资料、读者群 请访问&#xff1a; python666.cn 大家好&#xff0c;欢迎来到 Crossin的编程教室 &#xff01; 通常来说&#xff0c;每个程序员都有自己趁手的兵器&#xff1a;代码编辑器。你要是让他换个开发环境&#xff0c;恐怕开发效率至少下降三成…

聊聊 Zookeeper 的 4lw 与信息安全

聊聊 Zookeeper 的 4lw 与信息安全 1. 4lw 与信息泄露问题概述 最近有个客户在扫描安全漏洞时&#xff0c;反馈 ZOOKEEPER 存在信息泄露问题,即&#xff1a;ZooKeeper默认开启在2181端口&#xff0c;在未进行任何访问控制情况下&#xff0c;攻击者可通过执行envi命令获得系统…

剑指 Offer 42. 连续子数组的最大和:C语言解法

剑指 Offer 42. 连续子数组的最大和 - 力扣&#xff08;Leetcode&#xff09; 输入一个整型数组&#xff0c;数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n)。 实例&#xff1a; 输入: nums [-2,1,-3,4,-1,2,1,-5,4] 输出: …

电子厂房照明的设计与应用

摘 要&#xff1a;本文基于节能视角对工业厂房的照明设计特点、高效照明装置节能产品选用及电气优化设计进行了分析探讨&#xff0c;具有较强的指导性和价值性&#xff0c;供借鉴参考。 关键词&#xff1a;节能&#xff1b;工业厂房&#xff1b;照明设计&#xff1b;特点&…

java反转字符串的方法

1、首先我们定义一个方法&#xff0c;用来反转字符串。用 public static void &#xff08;String&#xff09;方法初始化一个对象&#xff0c;然后使用 private static &#xff08;&#xff09;方法对该对象进行初始化&#xff0c;并检查是否有某个字符串和字符串本身相同&am…

MacBook杀毒软件CleanMyMac X4.13

CleanMyMac如何清理 Mac系统&#xff1f;Mac系统在使用过程中都会产生大量系统垃圾&#xff0c;如不需要的系统语言安装包&#xff0c;视频网站缓存文件&#xff0c;mac软件卸载残留的注册表等。 随着时间推移&#xff0c;mac系统垃圾就会越来越多&#xff0c;电脑就开始变慢变…

纳芯微携手企企通,打造全新数字化采购管理系统

近日&#xff0c;苏州纳芯微电子股份有限公司&#xff08;以下简称&#xff1a;纳芯微&#xff09;与企企通携手打造的数字化采购平台项目启动会顺利举行。双方相关部门领导、项目团队参加了启动会。双方一致认为本次数字化采购项目合作意义重大&#xff0c;希望共同携手&#…

ROS第四十三节——定位

https://download.csdn.net/download/qq_45685327/87725276 1.新建launch文件 关于launch文件的实现&#xff0c;在amcl功能包下的example目录已经给出了示例&#xff0c;可以作为参考&#xff0c;具体实现: roscd amcl ls examples gedit amcl_diff.launch 该目录下会列出两…

“井电双控”地下水远程计量设施-实现地下水资源合理利用

“井电双控”地下水远程计量设施&#xff08;MGTR-W4122C&#xff09;是针对取水计量控制系统开发智能终端产品。集预收费、流量监测、电量监测、余额提醒、欠费停机、无线传输、远程控制等多种功能于一体&#xff0c;并可根据项目需求选择实体IC卡和APP电子卡取水两种方式。其…

Anaconda,CUDA注意事项

2. 呜呜呜&#xff01;&#xff01;&#xff01;用别人的环境&#xff0c;如果他是非GPU版本的TF&#xff0c;你把非GPU版本的TF卸载后安装GPU版本的TF他也装不上。。。会默认给你装非GPU版本的TF&#xff01;&#xff01;&#xff01;大坑比&#xff01;&#xff01;&#xf…

手把手带你写一份优秀的开发求职简历(二)

前言 上一节我们针对简历文档名做了剖析&#xff0c;应该把哪些更醒目的简历属性放到文档名上。其实目的很简单&#xff0c;就是希望在HR手中众多的简历中&#xff0c;可以通过文档名字就抓住HR的需求点&#xff0c;让她把你的简历做为第一筛选梯队。匹配好了这一点呢&#xf…

第四章——数学知识3

高斯消元 高斯消元可以用来解方程&#xff0c;可以在n三次方的时间复杂度内&#xff0c;求多元线性方程组。 答案只有三种情况&#xff0c;无解&#xff0c;无穷多组解&#xff0c;唯一解 输入一个包含 n 个方程 n 个未知数的线性方程组。 方程组中的系数为实数。 求解这个方程…

从0~1落地接口自动化测试,让你不再手忙脚乱丨轻松入门

接口自动化测试入门教程地址&#xff1a;https://www.bilibili.com/video/BV1914y1F7Bv/? 目录&#xff1a;导读 前言 为什么要做接口测试 理解接口和接口测试 如何落地接口自动化测试 结语 前言 对于初学者而言&#xff0c;如何从零开始落地接口自动化测试是一个难点&am…