强化学习基础-马尔可夫决策过程与贝尔曼方程
马尔可夫决策过程
在老虎机问题中,无论智能代理采取什么行动,之后要解决的问题都是一样的。也就是寻找最好的老虎机。但现实生活中的问题是不同的。例如,在围棋游戏中,智能代理落子后,棋盘上的棋子排列会发生变化(对手落子会进一步改变棋盘上的棋子排列)。智能代理采取的不同行动导致棋局每时每刻都在变化。智能代理需要考虑到棋局的转变,下出最佳的一手。--环境变化,需要考虑不同的状态。
接下来探讨的是情况随智能代理的行动而变化的问题。一些这样的问题被定义为马尔可夫决策过程(MDP)。
首先介绍在MDP中出现的术语,并用数学式表示它们。
然后,在阐明MDP的目标的基础上通过实际介绍一个简单的MDP问题来了解实现这些目标的过程。
智能代理的目标是实现奖励总和最大化。
以上就是对MDP的简单介绍。接下来我们将用数学式来描述MDP。
环境和智能代理的数学表示
MDP通过数学式来表示智能代理、环境以及二者之间的互动。要做到这一点,需要用数学式来表达以下3个要素。
• 状态迁移:状态如何迁移。
• 奖励:如何给予奖励。
• 策略:智能代理如何决定行动。
状态迁移(输入:s_t,a_t;输出:s_t+1)
当智能代理选择向左移动的行动,结果表示它“总是”向左移动(左图)。
如果智能代理选择了向左移动的行动,那么它将以0.9的概率向左移动,以0.1的概率留在原地(右图)。这种随机行动可能是地板打滑或智能代理的内部机制(如电机),不能正常工作所导致的。
状态迁移不需要过去的信息——此前处于什么状态以及执行了哪些行动。这个特性被称为马尔可夫性(Markovproperty)。
MDP通过假设马尔可夫性的存在来模拟状态迁移和奖励。
奖励函数(输入:s_t,a_t,s_t+1,输出:r_t)
智能代理的策略(输入:s_t,输出:a_t)
策略的关键在于它使得智能代理仅根据当前状态来决定其行动。之所以说只基于当前状态就足够了,是因为环境的迁移是符合马尔可夫性的。即关于环境的所有必要信息都在当前状态中。因
此,智能代理只需基于当前状态即可决定其行动。
智能代理的策略可以根据其当前状态来决定。智能代理的行动可以是确定性的,也可以是随机性的。确定性的策略在某个状态下总是采取固定的行动,如图2-8中的左图所示。
MDP的目标
状态价值函数(收益的期望值)
下面引入一个新术语一收益(return)
智能代理的目标是使这种收益最大化。
这里有一点需要注意,那就是智能代理和环境的行动可能是“随机性”的。智能代理可能随机地决定行动,状态也可能随机迁移。在这种情况下,最终获得的收益将呈现随机的特点。
每次所处的状态和策略
最优策略和最优价值函数
MDP的具体问题
这段代码没有进行无穷无尽的计算,而是使用for语句进行了近似计算(100次)。结果大约是-8,与理论值几乎相同。
小结
智能代理有策略。
对于环境:有状态迁移概率(或状态迁移函数)和奖励函数。
环境和智能代理之间会互动:策略决定当前状态的行动(可以是确定也可以是随机的),智能体根据做出的行动进行状态迁移(可能由于内部故障等原因造成新状态的随机性,形成概率分布),最后根据新的状态智能体获得奖励。
MDP的目标是在这样一个框架内找到最优策略。最优策略是指在所有状态下其状态价值函数的值大于或等于任何其他策略。
对 “有两个方格的网格世界”的强化学习问题来说,我们列出了所有可能的策略,并手动计算了每个策略的状态价值函数。最后我们找到了其中最好的策略一最优策略。不过本章中使用的方法只对有两个方格的网格世界这种设定简单的强化学习问题有效。
贝尔曼方程
应用场景
上面的假设仅仅是确定性的策略,使得我们可以穷尽所有的策略,计算该策略下的奖励。但若采取随机性策略,是无法计算每个状态的状态价值函数的:
此时需要应用贝尔曼方程,对状态价值函数进一步推导,使其变得可以求解。
状态价值函数的贝尔曼方程推导
状态价值函数与收益有关:
在研究式3.1的结构时,首先将t+1代入式3.1中的t中:
(也就是说,当前状态的收益与下一状态相关。)
下面将式3.3代入状态价值函数的定义式中。状态价值函数是收益的期望值,其数学式的定义如下所示。
这是根据期望的计算公式推导的:
推导第二项:
要求的项:处于当前状态的下一状态期望收益期望值
推导后的项:处于下一状态的条件下的收益期望值
关键在于:
也就是说有如下关系:
随机性策略的状态价值函数计算
上面我们推导了状态价值函数的贝尔曼方程,继续回到刚才的问题,这次假设智能代理是随机移动的。也就是说,它有50%的机会向右移动,50%的机会向左移动
观察图3-9,回溯线形图有两个分支,其中一个分支是以0.5的概率选择行动Left,并且总是迁移到状态Z1。在这种情况下得到的奖励是-1。折现率y被设定为0.9。因此,式3.8中选择Left的项可以表示为下面的式子。
图3-9中的另一个分支是以0.5的概率选择行动Right,之后会迁移到状态L2,奖励为1。用数学式可以表示为如下形式。
汇总:
求状态L2下的贝尔曼方程。也像刚才一样:
贝尔曼方程能够将无限的计算转换为有限的联立方程。尽管这次的问题中存在随机性行动,我们还是使用贝尔曼方程求出了状态价值函数。
行动价值函数的贝尔曼方程推导
本节将介绍一个新的函数--行动价值函数(action-value function)与状态价值函数一样,行动价值函数也是出现在许多强化学习理论中的重要函数。我们之前已经用状态价值函数推导出了贝尔曼方程。本节会先给出行动价值函数的定义式,然后再推导行动价值函数的贝尔曼方程。
它也是用于表示收益的期望值,但是它将行动也纳入了条件中,与状态价值函数一样,也将策略作为参数。
在状态价值函数的回溯线形图中,行动a是根据策略选择的。而在Q函数的回溯线形图中,行动a可以自由选择(可以选择计算行动a1/a2/a3的行动价值函数:/
/
)。这是状态价值函数和Q函数之间的唯一区别(Q函数只需考虑状态迁移的随机性)
接下来推导行动价值函数(Q函数)的贝尔曼方程。首先将Q函数展开为如下形式。
因此此时我们有两个贝尔曼方程:
贝尔曼最优方程
贝尔曼方程是对所有策略(确定/随机)成立的方程。但我们最终想要求出的是最优策略。最优策略是使所有状态下的状态价值函数最大化的策略。最优策略当然也满足贝尔曼方程。
此外,利用策略是“最优”的特性,我们可以用一种更简单的形式来表示贝尔曼方程。本节将介绍对最优策略成立的方程,即贝尔曼最优方程(Bellman optimality equation)
状态价值函数的贝尔曼最优方程
行动价值函数的贝尔曼最优方程
在MDP中,至少存在一个确定性的最优策略。确定性策略是指在给定状态下总是选择特定行动的策略。可能存在一个以上的最优策略,但它们的价值函数的值相同。
应用贝尔曼最优方程(最优策略的状态价值函数计算)
如何求解:
但我们最终想知道的是最优策略。接下来思考一下最优策略
得到最优策略
小结
强化学习的最终目标是得到最优策略。我们在本章中还学习了贝尔曼最优方程。贝尔曼最优方程是对最优策略成立的特殊的贝尔曼方程。只要知道最优策略的价值函数,就很容易得到最优策略
下一节将介绍动态规划(借鉴贝尔曼方程德强化学习算法实现)。
相关文章:
强化学习基础-马尔可夫决策过程与贝尔曼方程
马尔可夫决策过程 在老虎机问题中,无论智能代理采取什么行动,之后要解决的问题都是一样的。也就是寻找最好的老虎机。但现实生活中的问题是不同的。例如,在围棋游戏中,智能代理落子后,棋盘上的棋子排列会发生变化&…...
爬虫的精准识别:基于 User-Agent 的正则实现
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...
Scala的初步使用
目录 1. Scala简介2. Scala编写的Hello World2.1 pom.xml中依赖和插件的配置2.2 安装Scala2.12.172.3 安装code-server插件2.4 helloworld.scala2.5 helloworld2.scala2.6 java调用scala object 3. Scala调用Java3.1 例子13.2 例子2 参考 1. Scala简介 Scala是一门多范式的编程…...
【Json RPC框架】框架介绍与环境搭建(Ubuntu 22.04)
🎁个人主页:我们的五年 🔍系列专栏:Json RPC框架 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 JSon RPC框架系列文章Json RPC框架_我们的五年的博…...
python读取word文档 | AI应用开发
python读取word文档 | AI应用开发 RAG中python读取word文档 RAG系统中构建知识库流程中重要的一个步骤是读取外挂的知识文档,为word是其中比较常见的文件。 另一个值得注意的是,RAG在读取文档后需要对文档进行分割,而良好的分割需要有一定结…...
20、组件懒加载
组件懒加载,也被称为异步组件加载,是一种在 Vue 项目中提升性能的重要技术手段。下面从概念、实现原理、使用场景、实现方式几个方面详细介绍: 概念 在传统的 Vue 项目里,当应用启动时,所有的组件代码都会被一次性加…...
打造智能钉钉机器人:借助智谱GLM-4-Flash实现高效智能回复(文末附源码)
文章目录 前言一、准备工作(一)钉钉机器人(二)智谱 GLM-4-Flash(三)内网穿透工具 cpolar(四)需要准备的工具和环境 二、钉钉机器人的创建与配置步骤1:创建钉钉机器人步骤…...
【故障处理系列--docker卷的挂载】
一位伙伴需求是把容器的目录映射到宿主机且容器目录的内容不被宿主机的空白目录覆盖。我的第一反应是-v 卷的映射,参数是对的,但是用法是错的 1、容器卷的挂载方式 容器把目录映射到宿主机创建volume卷,然后把容器的目录和volume卷绑定 区别…...
兴达易控modbusTCP转profinet接防撞雷达测试
modbusTCP转profinet接防撞雷达测试 随着工业自动化程度的不断提高,现场设备之间的通信需求日益增长。ModbusTCP作为一种广泛应用的工业通信协议,因其简单、可靠的特点,被广泛应用于各种自动化设备中。而Profinet作为工业以太网的一种&#…...
Acknowledgment.nack方法重试消费kafka消息异常
文章目录 问题示例异常 原因nack方法Acknowledgment接口实现类:ConsumerAcknowledgment实现类:ConsumerBatchAcknowledgment 解决方案1 批量消费指定index示例 2 单条消费示例 问题 使用BatchAcknowledgingMessageListener 批量消费Kafka消息࿰…...
通过动态获取后端数据判断输入的值打小
eval() 函数在 JavaScript 中是一个非常强大的函数 【1】计算简单公式 很多时候如果需要动态的提供计算的公式,需要写一大段的公式计算逻辑去兼容,可能耗费大量的开发成本。为了快速了解 eval 的用法,直接 ① 打开浏览器;② F1…...
乐维网管平台核心功能解析(一)——告警关联知识
在数字化转型浪潮中,企业IT系统规模呈指数级增长,传统的"人工经验"运维模式已难以应对海量告警处理需求。某银行数据中心曾统计,其日均告警量突破10万条,关键故障的平均定位时间长达3.5小时,直接导致年损失超…...
数据结构_单链表
今天我们要开启链表的学习 🖋️🖋️🖋️ 学了顺序表我们可以知道: 🎈链表其实就是争对顺序表的缺点来设计的,补足的就是顺序表的缺点 🎈链表在物理上是上一个节点存放的下一个节点的地址 链表 …...
b站视频下载工具软件怎么下载
自行配置FFMPEG环境 请优先选择批量下载,会自处理视频和音频文件。 如果要下载更高质量请登陆。 没有配置FFMPEG下载后会有报错提示,视频音频文件无法合并生成mp4文件 更新批量下载标题,只取视频原标题,B站反爬机制登陆后下载多了…...
如何实现pinia的持久化存储
在 Vue 3 项目中使用 Pinia 进行状态管理时,若要实现持久化存储,可借助 pinia-plugin-persistedstate 插件,该插件能让 Pinia 存储的状态在页面刷新或关闭后依然保留。下面为你详细介绍实现步骤: 1. 安装插件 首先,在…...
webpack介绍
entry与output 入口是 Webpack 开始构建依赖图的起点,Webpack 会从入口文件开始,递归地分析项目的依赖图。输出指定 Webpack 打包后的文件存放位置和文件名。 const path require("path");module.exports {entry: "./src/index.js&qu…...
使用Mermaid语法绘制的C语言程序从Linux移植到Windows的流程图
以下是使用Mermaid语法绘制的C语言程序从Linux移植到Windows的流程图: graph TDA[开始移植] --> B[代码兼容性检查]B --> C[检查系统调用差异\nfork/exec -> CreateProcess]B --> D[检查文件路径格式\n/ vs \\]B --> E[检查依赖库兼容性\nPOSIX vs …...
蓝桥杯嵌入式组第七届省赛题目解析+STM32G431RBT6实现源码
文章目录 1.题目解析1.1 分而治之,藕断丝连1.2 模块化思维导图1.3 模块解析1.3.1 KEY模块1.3.2 ADC模块1.3.3 IIC模块1.3.4 UART模块1.3.5 LCD模块1.3.6 LED模块1.3.7 TIM模块 2.源码3.第七届题目 前言:STM32G431RBT6实现嵌入式组第七届题目解析源码&…...
【spring bean的生命周期】
以下是使用 Mermaid 绘制的 Spring Bean 生命周期流程图: 流程说明 实例化:Spring 容器创建 Bean 的实例。属性赋值:Spring 为 Bean 的属性注入值(依赖注入)。BeanPostProcessor.postProcessBeforeInitialization&…...
数据类设计_图片类设计之3_半规则图类设计(前端架构基础)
前言 学的东西多了,要想办法用出来.C和C是偏向底层的语言,直接与数据打交道.尝试做一些和数据方面相关的内容 引入 接续上一篇讨论半规则图类型的设计 半规则图的定义 什么是半规则图?笔者看见了一些似乎规则又不是太规则的图形,例如带圆角的矩阵,在页面上找一个圆角框 为了…...
【leetcode hot 100 138】随机链表的复制
解决一:回溯 哈希表 本题要求我们对一个特殊的链表进行深拷贝。如果是普通链表,我们可以直接按照遍历的顺序创建链表节点。而本题中因为随机指针的存在,当我们拷贝节点时,「当前节点的随机指针指向的节点」可能还没创建…...
如何安全处置旧设备?
每年,数百万台旧设备因老化、故障或被新产品取代而被丢弃,这些设备上存储的数据可能带来安全风险。 如果设备没有被正确删除数据,这些数据往往仍可被恢复。因此,安全处置旧设备至关重要。 旧设备可能包含的敏感数据 旧设备中可能…...
Windows 万兴恢复专家 Wondershare Recoverit-v13.5.7.9-[电脑数据恢复工具]
Windows 万兴恢复专家Wondershare_Recoverit 链接:https://pan.xunlei.com/s/VOL3z608vzAj_IYTvH-F1q7kA1?pwdiu89# 1. 打开Setup.exe进行安装,安装完不要打开软件,记住安装目录 2. 将"Crack"文件夹内的所有文件复制到安装目录 …...
eLection: 1靶场渗透测试
eLection: 1 来自 <eLection: 1 ~ VulnHub> 1,将两台虚拟机网络连接都改为NAT模式 2,攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 那么攻击机IP为192.168.23.182,靶场IP192.168.23.196 3,对靶机进行端口服…...
类与对象(下)
1 . 再谈构造函数 1.1构造函数体赋值 在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。 class B { public:B(int a0){_a a;} private:int _a; };虽然上述构造函数调用之后,对象中已经有了一个初始值…...
数字人源头技术搭建模型--v10追踪推理逻辑
数字人源头技术搭建模型--v10追踪推理逻辑 #数字人# #数字人技术源头saas开发# 数字人源头技术搭建模型V10的追踪推理逻辑通常涉及以下几个关键方面: 数据收集与预处理 - 多模态数据采集:收集图像、音频等多模态数据。例如通过摄像头采集人物的面部…...
基于Asp.net的高校迎新管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...
商业智能BI的未来,如何看待AI+BI这种模式?
昨天在和一位朋友线上聊天的时候,提了一个问题,你是如何看待AI(人工智能)BI(商业智能)这种模式和方向的,我大概来说一下我个人的看法。 以我在商业智能BI项目中接触到的行业和企业,…...
C++ 编程指南27 - 始终将 mutex 与它所保护的数据一起定义,并尽可能使用 synchronized_value<T>
一:概述 在多线程编程中,互斥锁(std::mutex)的作用是保护共享数据的访问。但如果 mutex 和它保护的数据分开定义,可能会导致以下问题: 锁的使用不明显:程序员可能会忘记获取 mutex 就访问数据&…...
选择 DotNetBrowser 还是 EO.WebBrowser
您是否正在为 .NET 应用寻找 Web 视图控件?如果是的话,那您真是太幸运了!.NET 生态系统提供了丰富的选择。既有开源和专有的免费 Web 视图控件,也有许多企业广泛选择的商业 Web 视图控件。 在这篇博客文章中,我们将对…...
ngin配置内网服务-具体案例【天地图】
ngin配置内网服务-具体案例【天地图】 描述需求整体网络架构1. 政务内网服务器(10.10.10.70)2. 网闸(10.10.10.240:8088)3. 跳板机(10.10.20.70:9109)4. 天地图服务 具体步骤第一步:配置跳板机&…...
【网络】poll 与epoll(原理、工作模式LT、ET)
文章目录 1. poll2. epoll3. epoll原理4. epoll工作模式4.1 水平模式LT4.2 边缘模式ET 在前面用的select中,它的使用方式非常麻烦,而且能支持的文件描诉符太少了。 下面来介绍一下更加方便、高效的方式: 1. poll poll函数接口: include <…...
DeepIn Wps 字体缺失问题
系统缺失字体 Symbol 、Wingdings 、Wingdings2、Wingdings3、MT—extra 字体问题 问了下DeepSeek 在应用商店安装或者在windows 里面找 装了一个GB-18030 还是不行 在windows里面复制了缺失的字体 将字体复制到DeepIn 的字体目录(Ubuntu 应该也是这个目录&am…...
Spring有哪些缺点?
大家好,我是锋哥。今天分享关于【Spring有哪些缺点?】面试题。希望对大家有帮助; Spring有哪些缺点? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring是一个非常流行的Java框架,提供了丰富的功能和灵活的配置选项…...
使用Dockerfile打包java项目生成镜像部署到Linux_java项目打docker镜像的dockerfile
比起容器、镜像来说,Dockerfile 非常普通,它就是一个纯文本,里面记录了一系列的构建指令,比如选择基础镜像、拷贝文件、运行脚本等等,每个指令都会生成一个 Layer,而 Docker 顺序执行这个文件里的所有步骤&…...
蓝桥杯刷题周计划(第二周)
目录 前言题目一题目代码题解分析 题目二题目代码题解分析 题目三题目代码题解分析 题目四题目代码题解分析 题目五题目代码题解分析 题目六题目代码题解分析 题目七题目代码题解分析 题目八题目题解分析 题目九题目代码题解分析 题目十题目代码题解分析 题目十一题目代码题解分…...
03 | fastgo 项目规范及目录结构介绍
提示: 所有体系课见专栏:Go 项目开发极速入门实战课;欢迎加入我的训练营:云原生AI实战营,一个助力 Go 开发者在 AI 时代建立技术竞争力的实战营。 为了让你更好的学习本课程。本节课,我来简单介绍下 fastgo…...
K8S学习之基础二十三:k8s的持久化存储之nfs
K8S持久化存储之nfs 在 Kubernetes (k8s) 中使用 NFS(Network File System)作为存储解决方案是一种常见的方式,特别是在需要共享存储的场景中。以下是关于如何在 Kubernetes 中使用 NFS 存储的详细说明: 1. 准备 NFS 服务器 …...
CTF代码学习日记 Python
os模块 在Python中,os是一个内置的标准模块,主要用于与操作系统进行交互,提供了许多操作文件、目录、进程等的功能。 例如: os.mkdir()用于创建新目录os.rmdir()用于删除空目录os.listdir()可以列出指定目录下的所有文件和目录…...
存储优化(protobuf与mmkv)
存储优化(protobuf与mmkv) 在Android应用开发中,数据存储是一个基础且关键的环节。随着应用功能的日益复杂,数据量的增加,传统的存储方式如SharedPreferences、SQLite等在性能上的局限性逐渐显现。本文将深入探讨两种…...
MTK Android12 添加GMS后,报“设备未经过play保护认证“问题
文章目录 问题解决 问题 在MTK平台的Android12机柜上面,客户要求安装GMS。安装后,打开发现报"设备未经过play保护认证"问题,无法使用。解决 路径:/build/make/tools/buildinfo.sh diff --git a/build/make/tools/bui…...
自定义Linux网络协议的开发与测试
在当今快速发展的技术领域中,定制化网络协议可以为特定的应用场景提供灵活而强大的解决方案。本文将详细介绍如何在Linux系统上开发一个自定义网络协议,并编写相应的用户空间程序进行测试。所有步骤基于2025年3月11日的时间点完成。 开发自定义协议内核模块 定义协议和实现…...
Ubuntu 24.04 安装与配置 JetBrains Toolbox 指南
📌 1. JetBrains Toolbox 介绍 JetBrains Toolbox 是 JetBrains 开发的工具管理器,可用于安装、更新和管理 IntelliJ IDEA、PyCharm、WebStorm、CLion 等。本指南记录了 JetBrains Toolbox 在 Ubuntu 24.04 上的 安装、路径调整、权限管理 及 遇到的问题…...
说一下spring的事务隔离级别?
大家好,我是锋哥。今天分享关于【说一下spring的事务隔离级别?】面试题。希望对大家有帮助; 说一下spring的事务隔离级别? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring的事务隔离级别是指在数据库事务管理中…...
【社区投稿】深入再谈智能指针、AsRef引用与Borrow借用
深入再谈智能指针、AsRef引用与Borrow借用 这是一个具有深度的技术主题。每次重温其理论知识,都会有新的领悟。大约 2 年前,我曾就这一技术方向撰写过另一篇短文《从类型转换视角,浅谈Deref<Target T>, AsRef<T>, Borrow<T&g…...
C++ Primer Plus第十二章课后习题总结
1. 对于下面的类声明: class Cow {char name[20];char * hobby;double weight;public:Cow();Cow(const char * nm, const char * ho, double wt);Cow(const Cow c&);~Cow();Cow & operator(const Cow & c);void ShowCow() const; // display all cow d…...
Xavier 初始化:深度网络权重初始化的经典之作
Xavier 初始化:深度网络权重初始化的经典之作 发音:美 [zeɪvjər] n.泽维尔(男子名) 在深度学习的发展历程中,权重初始化对神经网络训练的成功至关重要。随机初始化的简单方法在浅层网络中尚可,但在深层…...
【量化策略】动量反转策略
【量化策略】动量反转策略 🚀量化软件开通 🚀量化实战教程 技术背景与应用场景 动量反转策略是一种基于市场行为分析的量化交易策略,它假设股票价格在经历一段时间的持续上涨或下跌后,会出现反转。这种策略适用于那些希望通过…...
菜鸟之路Day23一一JavaScript 入门
菜鸟之路Day23一一JavaScript 入门 作者:blue 时间:2025.3.10 文章目录 菜鸟之路Day23一一JavaScript 入门0.概述1.JS的引入方式2.JS的基础语法2.1输出语句2.2变量2.3数据类型2.4运算符2.5类型转换 3.函数4.JS对象4.1Array对象4.2String对象4.3Js自定义…...
FreeSWITCH 简单图形化界面40 - 使用mod_curl模块进行http请求
FreeSWITCH 简单图形化界面40 - 使用mod_curl模块进行http请求 0、界面预览00、简介1、编译安装1.1 编辑模块配置文件 2、使用2.1 拨号规则GET 请求POST 请求JSON 数据 2.2 Lua 脚本GET 请求POST 请求JSON 数据 3 、示例3.1 示例 1:提交 CDR 到第三方接口3.2 示例 2…...