演化博弈方法用于多智能体系统最优资源分配

2023-05-16

演化博弈方法用于多智能体系统最优资源分配

Evolutionary game theoretic approach for optimal resource allocation in multi-agent systems
论文复现见 [论文复现]演化博弈方法用于多智能体系统最优资源分配 -CSDN博客

摘要 一群行为体在分布式环境中需要一组资源来完成任务,它们必须合作决定每个个体接受的资源数量来最大化系统性能。我们从演化博弈论的角度解决了这个问题,并提出了一种基于局部复制动态方程的完全分布式算法。通过使用最优性条件,我们证明了我们的算法在连通通信拓扑下的收敛性和最优性。一个示例说明了该方法在动态环境中的有效性。

1.引言

  在执行具有挑战性的任务时,需要一个多智能体系统(MAS)共同提供一组任务完成项目[1,2]。然而,该系统通常由异构个体组成,这些个体由于物理限制而受到资源限制,在有限的传感范围、武器能力或计算能力下工作。因此,利用个体差异并优化系统性能的有效分配机制是此类系统的共同前提之一。
  传统上,已经提出了许多集中式方法,其中中央实体收集系统信息并决定最终解决方案。典型的例子包括基于进化计算的方法[3]、基于拍卖的方法[4]、网络流优化[5]和线性规划[6]。尽管这些方法在许多情况下都是有效的,但也存在明显的缺点。首先,它们的计算成本很高,尤其是当问题规模增加时。更重要的是,在分布式场景中,中心机构的要求很难得到满足,因为行为体只能与邻居通信[7]。或者,近年来分布式方法越来越受欢迎,因为理想的解决方案可能仅来自局部交互[8]。在本文中,我们从演化博弈论的角度解决了资源分配问题[9-12],并提出了一种基于局部复制动态方程(LRD)的分布式算法。我们的算法不依赖于全局信息,但保证了渐近收敛到最优解,从而使团队性能最大化。
  与经典博弈论不同,演化博弈论侧重于群体中集体行为的演化,其中每个个体都有有限的理性,并反复参与战略互动,以实现精细均衡。虽然这一理论起源于生物学领域,但也已扩展到协同控制场景中的工程问题。将异构无线接入环境中独立用户之间的竞争表述为动态演化博弈,分别通过种群进化和强化学习获得合作均衡[13]。其他问题,包括联合频谱传感和接入[14]、分布式自适应滤波[15]、聚类[16]和建筑物温度控制[17]也已得到解决。
  1978年首次引入[18]的原始复制动态方程(RD)模拟了自然选择如何影响动物(玩家)在每个栖息地(游戏策略)下的频率。在资源分配问题中,栖息地与单个行为体相对应,而栖息地的频率与所需资源的份额相关。因此,分配给每个行为体的资源的百分比增长率与其收益超过平均值的比例成正比。值得注意的是,尽管已经使用RD策略研究了资源分配,但本文假设了一个完全分布式的接触网络(NOC),并给出了收敛到最优解的证明。具体而言,本文提出的算法允许在全连接的接触网络下多行为体的最一般拓扑结构。
  论文的其余部分组织如下。第二节描述了基本问题。在第三节中,我们提出了基于LRD和收敛性分析的协作算法。第四节给出了一个模拟示例,以说明理论结果的有效性,第五节给出了一些结论性意见。

2.问题描述

A.分布式资源分配

  考虑一组需要分配 M = { 1 , 2 , ⋯   , m } M=\{1,2,\cdots,m\} M={1,2,,m} 种类型资源的异类(不是同一类的)行为体,用 N = { 1 , 2 , ⋯   , n } N=\{1,2,\cdots,n\} N={1,2,,n} 表示,每种资源的总量用 y ⃗ = [ y 1 , y 2 , ⋯   , y n ] T \vec{y}=[y_1,y_2,\cdots,y_n]^\text{T} y =[y1,y2,,yn]T 表示,其中 y j y_j yj 表示资源类型 j ∈ M j\in M jM 的总量。假设对应于资源类型 j j j 的数量 x i j x_{ij} xij 是一个连续变量,该变量用于表示行为体 i ∈ N i\in N iN 获得的资源。定义
R i = { x ⃗ i = [ x i 1 , x i 2 , ⋯   , x i m ] T ∣ 0 ≤ x i j ≤ x i j max , j ∈ M } \mathcal{R}_i=\left\{\vec{x}_i=[x_{i1},x_{i2},\cdots,x_{im}]^\text{T} \left|0\le x_{ij}\le x_{ij}^{\text{max}},j\in M\right.\right\} Ri={x i=[xi1,xi2,,xim]T 0xijxijmax,jM}
作为可行资源组合的集合,并设
Δ f = { X = [ x ⃗ 1 , x ⃗ 2 , ⋯   , x ⃗ n ] ∣ x ⃗ i ∈ R i , ∑ i = 1 n x ⃗ i = y } \Delta_f=\left\{X=[\vec{x}_1,\vec{x}_2,\cdots,\vec{x}_n]\left|\vec{x}_i\in\mathcal{R}_i,\sum_{i=1}^n\vec{x}_i=y\right.\right\} Δf={X=[x 1,x 2,,x n] x iRi,i=1nx i=y}
为可行的分配曲线。在收到一系列资源集时,一个行为体获得通过收益函数 u i : R i → [ 0 , + ∞ ) u_i:\mathcal{R}_i\rightarrow[0,+\infty) ui:Ri[0,+) 定义的奖赏,而总和收益函数 U : Δ f → [ 0 , + ∞ ) U:\Delta_f\rightarrow[0,+\infty) U:Δf[0,+) 定义为所有收益函数的和 ∑ i = 1 N u i \displaystyle\sum_{i=1}^Nu_i i=1Nui。目标是寻找分配空间 X = [ x ⃗ 1 , x ⃗ 2 , ⋯   , x ⃗ n ] X=[\vec{x}_1,\vec{x}_2,\cdots,\vec{x}_n] X=[x 1,x 2,,x n] 使得在约束条件 X ∈ Δ f X\in\Delta_f XΔf下最大化 U ( X ) U(X) U(X)。数学上,对异类行为体的最优资源分配问题可描述为
max ⁡ x = [ x 1 , x 2 , … , x n ] U ( x ) = ∑ i = 1 n u i ( x i ) s.t. { 0 ≤ x i j ≤ x i j max ⁡ , i ∈ N , j ∈ M ( 1 ) ∑ i = 1 n x i j = y j , j ∈ M \begin{aligned} &\max _{x=\left[x_{1}, x_{2}, \ldots, x_{n}\right]} U(x)=\sum_{i=1}^{n} u_{i}\left(x_{i}\right) \\ &\text {s.t.}\begin{cases} 0 \leq x_{ij} \leq x_{ij}^{\max}, i \in N, j \in M \qquad(1)\\ \displaystyle\sum_{i=1}^n x_{ij}=y_j, j \in M \end{cases} \end{aligned} x=[x1,x2,,xn]maxU(x)=i=1nui(xi)s.t. 0xijxijmax,iN,jM(1)i=1nxij=yj,jM

B.接触网络

  为了让一组行为体合作,他们必须通过接触网络的通信了解相邻个体的状态。对于每个行为体 i i i,我们将邻域定义为通过通信链路连接到它的行为体集合,也就是 ∀ i ∈ N , Ω i = { k ∈ N ∣ ( i , k ) ∈ E } \forall i\in N,\Omega_i=\{k\in N|(i,k)\in E\} iN,Ωi={kN(i,k)E},其中 E E E是接触网络的边。本文中的接触网络假设为支持信息和事件相互交换的无向图。特别地,如果任意两个节点间存在通路则称其为连通图,如果任意两个节点间存在边则称其为强连通图(这里对强连通的定义好像不对)。

C.收益函数

  为了实现最经济的分配,根据资源生产的成本函数,假设每个行为体的收益函数 u i u_i ui满足以下三个条件:
假设1: 收益函数 u i u_i ui非负且在 R i \mathcal{R}_i Ri上连续可微;
假设2: 收益函数 u i u_i ui是在 R i \mathcal{R}_i Ri上分配资源的增函数,而且是 x i = [ x i 1 , x i 2 , ⋯   , x i m max ] x_i=[x_{i1},x_{i2},\cdots,x_{im}^\text{max}] xi=[xi1,xi2,,ximmax] 的最大值。这表明在生产能力范围内,接收更多的资源总能提高行为体的收益。
假设3: 收益函数 u i u_i ui满足边际价格随着每个行为体类别分配的资源总量的增加而降低的条件,即
p i j ( x i ) > p i j ( x i ′ ) , ∀ x i , x i ′ ∈ R : x i j < x i j ′ , x i , − j = x i , − j ′ p_{ij}(x_i)>p_{ij}(x_i'),\forall x_i,x_i'\in\mathcal{R}:x_{ij}<x_{ij}',x_{i,-j}=x_{i,-j}' pij(xi)>pij(xi),xi,xiR:xij<xij,xi,j=xi,j
其中 − j -j j 表示除了 j j j 以外的资源类型, p i j ( x i ) = ∂ u i / ∂ x i j p_{ij}(x_i)=\partial u_i/\partial x_{ij} pij(xi)=ui/xij 表示 x ⃗ i \vec{x}_i x i 的第 j j j 种资源类型的边际收益。
引理1: 在前面假设1-3下,收益函数 u i u_i ui 是一个定义在 R i \mathcal{R}_i Ri 上的连续凹函数。
证明:

D.最优化条件

  因为 u i u_i ui R i \mathcal{R}_i Ri上严格凹,总和收益函数也必须严格凹,且有在 Δ f \Delta_f Δf 上唯一的最大值 x ∗ x^* x 。由于 U U U 不能在最优分配曲线上增加,所以必须存在 i , k ∈ N , j ∈ M i,k\in N,j\in M i,kN,jM 使得 p i j ( x i ∗ ) > p k j ( x k ∗ ) p_{ij}(x_i^*)>p_{kj}(x_k^*) pij(xi)>pkj(xk) 使得 x k j ∗ = 0 x_{kj}^*=0 xkj=0
引理2: 在平衡点 x ∗ x^* x 处,对资源类型 j ∈ M j\in M jM,所有属于集合 A j + = { i ∣ x i j ∗ > 0 , i ∈ N } A_j^+=\{i|x_{ij}^*>0,i\in N\} Aj+={ixij>0,iN} 的个体一定有相同的边际收益 m + ≥ 0 m^+\geq 0 m+0 m 0 = max ⁡ i ∈ A j 0 p i j ( x i ∗ ) m^0=\displaystyle\max_{i\in A_j^0}p_{ij}(x_i^*) m0=iAj0maxpij(xi) A j 0 = { i ∣ x i j ∗ = 0 , i ∈ N } A_j^0=\{i|x_{ij}^*=0,i\in N\} Aj0={ixij=0,iN} 最多必须和 m + m^+ m+ 一样大。
证明: 对任何一个前文定义的分配问题,第 j j j 种资源类型的结果总处于两种情况中:(1) A j 0 = ∅ A_j^0=\varnothing Aj0= 和 (2) A j 0 ≠ ∅ A_j^0\neq\varnothing Aj0=

3.分布式分配算法

  尽管(1)中的问题有时可以从最优化条件中通过解析法求解,但是它们假设有一个中心化的接触网络。更重要的是,这一结果是负的并且对于一些参数设置不成立。对于分布式环境的最优资源分配,我们提出了一个基于复制动态方程的合作算法,该算法一开始将个体在不同习性下的比例的演化建模为一组微分方程
{ s ˙ i = α s i ( f i − f ˉ ) f ˉ = 1 P ∑ i = 1 N s i f i \begin{cases} \dot{s}_i = \alpha s_i(f_i-\bar{f}) \\ \bar{f} = \displaystyle\frac{1}{P}\sum_{i=1}^Ns_if_i \end{cases} s˙i=αsi(fifˉ)fˉ=P1i=1Nsifi
其中住在第 i i i 个栖息地的种群数量 s i s_i si 的增长率正比于该种群的适应度 f i f_i fi 和种群平均适应度 f ˉ \bar{f} fˉ 之差。从演化博弈论的视角来看,栖息地类似于纯策略, s i s_i si 是采用第 i i i 个策略的个体数量, P = ∑ i = 1 n P=\displaystyle\sum_{i=1}^n P=i=1n 是种群总数量, α > 0 \alpha>0 α>0 是调整增长率的参数。(我学的演化博弈论中, s s s 是单个种群占种群总数的比例, P = 1 P=1 P=1,见 演化博弈、复制动态方程与仿真 -CSDN博客)
  这里需要说明的是,不同于中心化控制器或者全局收益给定的完全NOC情况,单个行为体只能得到所处多智能体系统中的局部信息。因此,我们将局部复制动态方程用于设计一个分布式的分配场景,其中每个个体基于局部平均值更新其资源,也就是,分配的资源 x i j ( t ) x_{ij}(t) xij(t) 的增长率为
x ˙ i j ( t ) = x i j ( t ) ( f i j ( x ⃗ i ( t ) ) ∑ k ∈ Ω i x k j ( t ) y j − f ~ i j ( t ) ) ( 12 ) f ~ i j = 1 y j ∑ k ∈ Ω i x k j f k j ( x ⃗ k ) ( 13 ) \begin{aligned} &\dot{x}_{ij}(t) = x_{ij}(t)\left(f_{ij}(\vec{x}_i(t)) \frac{\displaystyle\sum_{k\in\Omega_i}x_{kj}(t)}{y_j} -\tilde{f}_{ij}(t)\right) &\qquad(12)\\ &\tilde{f}_{ij}= \frac{1}{y_j}\sum_{k\in\Omega_i}x_{kj}f_{kj}(\vec{x}_k) &\qquad(13) \end{aligned} x˙ij(t)=xij(t) fij(x i(t))yjkΩixkj(t)f~ij(t) f~ij=yj1kΩixkjfkj(x k)(12)(13)
其中 f i j ( x i ( t ) ) = p i j ( x i ) f_{ij}(x_i(t))=p_{ij}(x_i) fij(xi(t))=pij(xi) f ~ i j \tilde{f}_{ij} f~ij 为局部平均值。利用式(12)(13),本文的分配算法通过下面几条规则定义:

  1. 从任意可能的分配曲线 x ( 0 ) x(0) x(0) 出发,算法采用同步更新方案,每个行为体的资源总数和每种资源数都同步更新。
  2. 在每个步长 t t t 内,行为体 i i i 通过它的邻居 k ∈ Ω i k\in\Omega_i kΩi 收集包含 x k x_k xk f k j ( x k ) f_{kj}(x_k) fkj(xk) 的局部信息。通过这一步,每个行为体通过式(12)(13)更新它的资源量,即
    x i j ( t + 1 ) = x i j ( t ) + x ˙ i j ( t ) Δ t x_{ij}(t+1)=x_{ij}(t)+\dot{x}_{ij}(t)\Delta t xij(t+1)=xij(t)+x˙ij(t)Δt

引理3: 本文算法具有求和不变性,也就是说,如果 ∑ i = 1 n x ⃗ i ( 0 ) = y ⃗ \displaystyle\sum_{i=1}^n\vec{x}_i(0)=\vec{y} i=1nx i(0)=y ,那么 ∀ t > 0 , \forall t>0, t>0, ∑ i = 1 n x ⃗ i ( t ) = y ⃗ \displaystyle\sum_{i=1}^n\vec{x}_i(t)=\vec{y} i=1nx i(t)=y
证明: 对任意时间 t > 0 t>0 t>0,所有行为体的增长率 x ˙ i j ( t ) \dot{x}_{ij}(t) x˙ij(t) 满足
∑ i = 1 n x ˙ i j ( t ) = ∑ i = 1 n x i j ( t ) y j ( f i j ( x ⃗ i ( t ) ) ∑ k ∈ Ω i x k j ( t ) − y j f ~ i j ( t ) ) = 1 y j ∑ i = 1 n ( x i j f i j ( x ⃗ i ) ∑ k ∈ Ω i x k j − x i j ∑ k ∈ Ω i x k j f k j ( x ⃗ k ) ) \begin{aligned} \sum_{i=1}^n\dot{x}_{ij}(t) =& \sum_{i=1}^n\frac{x_{ij}(t)}{y_j} \left(f_{ij}(\vec{x}_i(t))\sum_{k\in\Omega_i}x_{kj}(t) -y_j\tilde{f}_{ij}(t)\right) \\ =& \frac{1}{y_j}\sum_{i=1}^n \left(x_{ij}f_{ij}(\vec{x}_i)\sum_{k\in\Omega_i}x_{kj} -x_{ij}\sum_{k\in\Omega_i}x_{kj}f_{kj}(\vec{x}_k)\right) \\ \end{aligned} i=1nx˙ij(t)==i=1nyjxij(t)(fij(x i(t))kΩixkj(t)yjf~ij(t))yj1i=1n(xijfij(x i)kΩixkjxijkΩixkjfkj(x k))
由于NOC是无向图,所以容易证明对于任意个体 i i i 和它的邻居 k k k
x i j f i j ( x ⃗ i ) x k j − x i j x k j f k j ( x ⃗ k ) + x k j f k j ( x ⃗ k ) x i j − x k j x i j f i j ( x ⃗ i ) = 0 ( 16 ) x_{ij}f_{ij}(\vec{x}_i)x_{kj} - x_{ij}x_{kj}f_{kj}(\vec{x}_k) +x_{kj}f_{kj}(\vec{x}_k)x_{ij} - x_{kj}x_{ij}f_{ij}(\vec{x}_i) =0 \qquad(16) xijfij(x i)xkjxijxkjfkj(x k)+xkjfkj(x k)xijxkjxijfij(x i)=0(16)
由此得出
∑ i = 1 n x ˙ i j ( t ) = 0 \sum_{i=1}^n\dot{x}_{ij}(t) =0 i=1nx˙ij(t)=0
给定初始条件 ∑ i = 1 n x ⃗ i ( t ) = y ⃗ \displaystyle\sum_{i=1}^n\vec{x}_i(t)=\vec{y} i=1nx i(t)=y ,即可得证。
显然,对任意 i i i j j j,该算法的平衡点 X e X^\text{e} Xe 满足下列条件:
(C1) X e = 0 X^\text{e}=0 Xe=0
(C2) X e > 0 X^\text{e}>0 Xe>0 f i j ( x ⃗ i e ) ∑ k ∈ Ω x k j e = ∑ k ∈ Ω x k j e f k j ( x ⃗ k e ) f_{ij}(\vec{x}_i^\text{e})\displaystyle\sum_{k\in\Omega}x_{kj}^\text{e}=\displaystyle\sum_{k\in\Omega}x_{kj}^\text{e}f_{kj}(\vec{x}_k^\text{e}) fij(x ie)kΩxkje=kΩxkjefkj(x ke)
定理1: 对一个平衡点 X e X^\text{e} Xe,如果所有位于 x i j e x_{ij}^\text{e} xije 的行为体都是非切割顶点,那么 X e X^\text{e} Xe 一定是式(1)的最优解。
证明: 首先,我们考虑一种情况,

4.仿真结果

  本节给出了一个示例以说明所提出的算法在全连接NOC下的有效性,其中 n = 6 n=6 n=6 y ⃗ = [ 545 , 467 ] T \vec{y}=[545,467]^\text{T} y =[545,467]T,且每个行为体与两个相邻的行为体交换信息。也就是说, Ω i = { i − 1 , i + 1 } , ∀ i ∈ ( 1 , n ) \Omega_i=\{i-1,i+1\},\forall i\in(1,n) Ωi={i1,i+1},i(1,n) Ω 1 = { 6 , 2 } \Omega_1=\{6,2\} Ω1={6,2} Ω 6 = { 5 , 1 } \Omega_6=\{5,1\} Ω6={5,1},根据上面的约束条件,每个行为体的收益函数选为
u i ( x i ) = ∑ j = 1 m x i j ( 2 x i j max − x i j ) c i j x i j max , x i ∈ R i u_i(x_i)=\sum_{j=1}^m\frac{x_{ij}(2x_{ij}^\text{max}-x_{ij})}{c_{ij}x_{ij}^\text{max}},x_i\in\mathcal{R}_i ui(xi)=j=1mcijxijmaxxij(2xijmaxxij),xiRi
其中,异质性与最大容量 x i j max x_{ij}^\text{max} xijmax 相关,损失系数 c i j c_{ij} cij 与第 j j j 类资源的每个单位相关(这句话没看懂),且
x max = ( x i j max ) 6 × 2 = [ 172 86 47 70 66 120 106 45 100 90 80 100 ] c = ( c i j ) 6 × 2 = [ 0.2 0.85 0.3 0.4 0.4 0.5 0.1 0.2 0.5 0.4 0.85 0.8 ] x^\text{max}=(x_{ij}^\text{max})_{6\times 2}=\left[\begin{matrix} 172 & 86 \\ 47 & 70 \\ 66 & 120 \\ 106 & 45 \\ 100 & 90 \\ 80 & 100 \\ \end{matrix}\right] \\ c=(c_{ij})_{6\times 2}=\left[\begin{matrix} 0.2 & 0.85 \\ 0.3 & 0.4 \\ 0.4 & 0.5 \\ 0.1 & 0.2 \\ 0.5 & 0.4 \\ 0.85 & 0.8 \\ \end{matrix}\right] \\ xmax=(xijmax)6×2= 17247661061008086701204590100 c=(cij)6×2= 0.20.30.40.10.50.850.850.40.50.20.40.8
仿真中时间步长 Δ t \Delta t Δt 设置为常值 0.01 0.01 0.01

  图1中绘制了分配的资源 x i j x_{ij} xij、边际收益 p i j p_{ij} pij 和总收益 U U U 关于演化代数的函数。仿真结果表明,在协作和分布式资源分配协议中,总收益随着时间的推移单调增加,分配曲线逐渐收敛到最优解,其中所有行为体对于相同的资源类型具有相等的边际收益。需要注意的是在第800代时,损失系数 c 1 , 1 c_{1,1} c1,1 c 6 , 2 c_{6,2} c6,2 分别改变成 0.9 0.9 0.9 0.2 0.2 0.2。局部放大的子图显示系统有能力对变化快速反应并到达当前条件下的新平衡点。实际上,该算法还适用于涉及与 y ⃗ \vec{y} y x max x^\text{max} xmax 相关的其他干扰的动态环境下和通信拓扑中,只要NOC在每个步长内全连接。

总结

  本文针对网络化异构行为体之间的资源分配问题,提出了一种基于局部复制动态方程的分布式协作算法。通过使用最优性条件,我们证明了算法收敛于平衡点。特别地,当所有节点都具有正资源向量或所有具有 x i ′ j e = 0 x_{i'j}^e=0 xije=0 的行为体都是非割顶点时,平衡点对于分配问题是最优的。仿真结果表明了该方法在静态和动态环境中的有效性和可行性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

演化博弈方法用于多智能体系统最优资源分配 的相关文章

随机推荐

  • 虚拟机运行出现蓝屏的现象如何解决

    前两天给大家分享了如何在电脑上安装虚拟机 xff0c 听到有部分小朋友私信跟我反馈说 xff0c 自己本身电脑可以安装vm虚拟机但是他安装过后一运行就立马进入蓝屏修复界面 所以今天想跟大家分享一下遇见这种情况如何解决 xff08 本文以华硕
  • 小白也能学懂——子网划分(2)

    我前天讲了一下子网划分 xff0c 昨天比较忙碌就忘记写剩下的内容了 xff0c 今天吃过饭 xff0c 想给他补上 xff0c 主要还是细分一下子网划分的作用 xff0c 以及如果进行计算 xff0c 本章还不是算难 xff0c 但是计算
  • 三分钟告诉你什么是三层交换机!

    昨天上周我们讲了单臂路由和跨交换机传输 xff0c 今天想说一下三层交换机 xff0c 对了还有个小实验 xff0c 收到反馈说我每次都是在图里标注代码不够清晰 xff0c 所以接下来会在实际中把代码贴出来供大家复制使用 目录 一 三层交换
  • 链路聚合(二层链路和三层链路)

    昨天主要介绍了三层交换机 xff0c 今天顺其自然就讲到了链路聚合 xff0c 因为是交换机中一个比较重要的技术 xff0c 下面我们开始 目录 一 单臂路由和三层交换的复习 二 端口绑定技术 三 链路聚合 端口聚合 端口绑定实现的条件 四
  • 静态路由(也许是目前最全的)

    今天在公司 xff0c 新来了个实习生 xff0c 突然问道静态路由的问题 xff0c 他跟我讲他不会设置 然后我就很尴尬 xff0c 因为这个毕竟是基础知识嘛 所以今天整理了一下静态路由的知识 xff0c 跟大家分享一下 目录 一 路由器
  • C# 读取Json文件--代码示例

    1 C 读取Json文件 JsonConvert SerializeObject str object to string JsonConvert DeserializeObject obj string to json 2 Json文件创
  • 网络地址转换协议——NAT(恐怕是最全的版本)

    前天我说第二天要跟大家讲一下NAT的 xff0c 结果放假有些懒 xff0c 所以就放在今天更新 xff0c 希望大家不要凶我 xff0c 哈哈哈 目录 一 什么是NAT 1 NAT简介 2 NAT作用 3 NAT内网地址的范围 4 主要应
  • linux日志文件详解

    目录 一 日志文件的分类二 日志文件位置三 常见日志文件1 分析日志文件2 内核及系统日志 四 日志消息等级五 日志文件分析1 用户日志2 程序日志 六 日志分析注意事项 一 日志文件的分类 日志文件是用于记录Linux系统中各种运行消息的
  • 虚拟化与docker基础

    文章目录 一 虚拟化1 虚拟化概述2 虚拟化的功能3 虚拟化的三种模式4 容器与虚拟化 二 Docker1 容器概述2 Docker概述3 Docker的设计宗旨4 容器与虚拟机的区别5 容器在内核中支持两种重要的技术6 Docker核心概
  • Docker容器网络模式与数据管理

    文章目录 一 Docker容器操作1 容器创建2 查看容器的运行状态3 启动容器4 创建并开启容器5 终止容器运行6 容器的进入7 复制文件到容器中 宿主机中8 容器的导出与导入9 删除容器 二 Docker网络1 Docker网络实现原理
  • docker镜像的创建与dockerfile

    文章目录 一 docker镜像的创建1 创建镜像的方法2 基于现有镜像创建3 基于本地模板创建4 基于dockerfile创建 二 Dockerfile1 概述2 Dockerfile结构3 Dockerfile镜像结构的分层4 Docke
  • matlab中值滤波实现

    中值滤波是一种典型的非线性滤波 xff0c 是基于排序统计理论的一种能够有效抑制噪声的非线性信号处理技术 xff0c 基本思想是用像素点邻域灰度值的中值来代替该像素点的灰度值 xff0c 让周围的像素值接近真实的值从而消除孤立的噪声点 该方
  • 程序员的情人节

    今天是一个好的节日 xff0c 七夕呀 xff01 程序是最好的女朋友 xff0c 它是不会骗你的 它偶尔会发些小的情绪 只是你没有懂它
  • stm32-Hardfault及内存溢出的查找方法

    STM32内存结构 1 要点 1 1 两种存储类型 RAM 和 Flash RAM可读可写 xff0c 在STM32的内存结构上 xff0c RAM地址段分布 0x2000 0000 0x2000 0000 43 RAM size Flas
  • raylib部分源代码功能解读

    官网 https www raylib com https github com raysan5 raylib 我根据自己的需求裁剪了多余功能后的代码 xff1a https gitee com xd15zhn raylib https g
  • 无量纲处理、量纲变换与实时仿真理论

    基本原理 万有引力公式 d 2 r
  • 局域网windows平台下时间同步

    最近单位出现很多应为系统时间不统一造成的问题 xff0c 如 客户机时间与服务器时间不同步 xff0c 而客户机使用软件是读取本机时间上传服务器 xff0c 这样就会造成排序错误 每次开机修改很繁琐 我就想到了在局域网内假设时间服务器的想法
  • 水下潜航器的建模与控制

    线性系统理论大作业 待完成 题目 水下潜器模型 xff0c 可能是潜艇或者鱼雷等对象 一个主推进螺旋桨 xff0c 前后两对水平陀翼 xff0c 后面一对垂直陀翼 潜器前进过程中 xff0c 通过调节助推进螺旋桨推力 xff0c 以及三对陀
  • 演化博弈、复制动态方程与仿真

    本文只整理和总结一下我的理解 xff0c 文末列出了可供参考的更详细完整的资料 建议先看参考资料 1 xff08 博弈论公开课 xff09 的博弈论课程 xff0c 可以直接从第11讲开始看 参考链接 2 是关于演化博弈非常经典的一本书 参
  • 演化博弈方法用于多智能体系统最优资源分配

    演化博弈方法用于多智能体系统最优资源分配 Evolutionary game theoretic approach for optimal resource allocation in multi agent systems 论文复现见 论