【智能优化算法】从蚁群到动物园

news2024/11/18 11:36:04

目录

  • 引言
  • 蚁群优化算法(ACO)
    • ACO 机理
    • ACO 模型描述
    • ACO 移动策略
  • 粒子群优化算法(PSO)
    • PSO 机理
    • PSO 模型描述
  • 萤火虫群优化算法(GSO)
    • GSO 机理
    • GSO 模型描述
  • 群智能优化算法

引言

21世纪,人类社会已经全面迅速迈入以人工智能为引擎的智能时代。在科学研究、工程设计、经济管理、国防建设、社会生活等领域都面临着大量需要优化求解的复杂问题。

对于这些日益复杂化的优化问题建立精确的数学模型往往比较困难,因而使得基于精确模型的传统优化算法陷入了极大的困境。然而,人们从自然界的多种生物、昆虫、动物、植物等的生存、繁衍过程以及自然现象、水循环、生态平衡等过程中,发现了其中蕴含着大量的信息处理的优化机制和机理。于是人们从模拟这些优化机制、优化机理出发,提出了数以百计的不依赖被优化问题数学模型的优化算法,它们被称为元启发式算法、仿生计算、自然计算、智能计算等。这些优化算法中有些算法在一定程度上模拟了人的智能;有些算法模拟自然界中某些动物、植物生存行为的适应性、灵性、“智慧性”,因此可以统称为智能优化算法

遗传算法为开端的智能优化算法为解决缺乏精确数学模型的复杂优化问题开辟了新途径,尤其是以模拟蚁群觅食行为的蚁群优化算法模拟鸟类飞行觅食行为的粒子群优化算法为代表的群智能优化算法的提出,极大地推动了智能优化算法开发的速度、深度和广度。随着人工智能技术的快速进步,必将催生智能优化技术和智能优化算法的进一步发展,为解决复杂系统的优化问题提供更广阔的途径及强有力的工具。

本文以群智能优化算法为主题,例举数个极具代表性的相关算法。其中包括了模拟自然界微生物、群居昆虫、动物群体觅食、繁殖行为,以及动物群体的捕猎策略等对问题求解的优化算法。
同时也会简单说明一下目前群智能优化算法的研究状况,看看群智能优化算法是怎么从动物身上获取经验的,又是怎么从一个蚁群逐渐发展壮大成一个动物园。

在这里插入图片描述


蚁群优化算法(ACO)

蚁群优化(Ant Colony Optimization,ACO)算法是 1991 年由意大利 M.Dorigo 博士等提出的一种群智能优化算法,它模拟蚁群能从蚁巢到食物源找到一条最短路径的觅食行为,并成功用于求解组合优化的 TSP 问题。后来,一些研究者把它改进应用于连续优化问题。

2008年,Dorigo等又提出了一种求解连续空间优化问题的扩展蚁群优化(Extension of Ant Colony Optimization,ACOr)算法,通过引入解存储器作为信息素模型,使用了连续概率分布取代 ACO 算法中离散概率分布,将基本蚁群算法的离散概率选择方式连续化,从而将其拓展到求解连续空间优化问题。

ACO 机理

蚂蚁的觅食行为实质上是一种通过简单个体的自组织行为所体现出来的一种群体行为,具有以下两个重要特征。

  • 蚂蚁觅食的群体行为具有正反馈过程,反馈的信息是全局信息。通过反馈机制进行调整,可对系统的较优解起到自增强的作用。从而使问题的解向着全局最优的方向演变,最终获得全局最优解。
  • 具有分布并行计算能力,可使算法全面地在多点同时进行解的搜索,有效地降低陷入局部最优解的可能性。

ACO 模型描述

ACO符号定义如下:

NoteMeaningpostscript
m蚂蚁数目
b i ( t ) b_i(t) bi(t) t t t 时刻位于城市 i i i 的蚂蚁个数 m = ∑ i = 1 n b i ( t ) m= \sum_{i=1}^{n}b_i(t) m=i=1nbi(t)
d i j d_{ij} dij城市 i i i j j j 的距离
η i j \eta_{ij} ηij路径 ( i , j ) (i,j) (ij)的能见度,反映由城市 i i i 转移到 j j j 的启发程度 η i , j = 1 d i , j \eta_{i,j}=\frac{1}{d_{i,j}} ηi,j=di,j1
τ i j \tau_{ij} τij路径 ( i , j ) (i,j) (i,j)间的信息素强度
△ i j \triangle ij ij蚂蚁 k k k ( i , j ) (i,j) (i,j)路径上单位长度留下的信息素量
p i j k p^k_{ij} pijk蚂蚁 k k k i → j i\rightarrow j ij 转移的概率, j j j 是尚未访问的城市

蚂蚁的动作规定:

  • i → j i \rightarrow j ij完成一次循环后在路径 ( i , j ) (i,j) (i,j) 上释放信息素
  • 蚂蚁以一定概率选择下一个要访问的城市,该概率是城市 i i i j j j 之间路径存在信息素轨迹量的函数。
  • 不允许蚂蚁访问已访问过的城市(TSP 问题所要求)。

ACO 移动策略

受信息素启发选择路径采用随机比例规则,在 t t t 时刻,蚂蚁 k k k 在城市 i i i ,选择城市 j j j 的转移概率 p i j k ( t ) p^k_{ij}(t) pijk(t)为: p i j k ( t ) = { τ i j α ( t ) ⋅ η i j β ( t ) ∑ s ∈ a l l o w e d k τ i s α ( t ) ⋅ η i s β ( t ) j ∈ a l l o w e d k 0 o t h e r w i s e p^k_{ij}(t) = \begin{cases} \frac{\tau_{ij}^\alpha (t)\cdot \eta_{ij}^\beta (t)}{\sum_{s\in allowed_k} \tau_{is}^\alpha (t)\cdot \eta_{is}^\beta (t) } & j\in allowed_k \\ 0 & otherwise \\ \end{cases} pijk(t)= sallowedkτisα(t)ηisβ(t)τijα(t)ηijβ(t)0jallowedkotherwise该式子表明转移概率 p i j k ( t ) p^k_{ij}(t) pijk(t) τ i j α ( t ) ⋅ η i j β ( t ) \tau_{ij}^\alpha (t)\cdot \eta_{ij}^\beta (t) τijα(t)ηijβ(t) 成正比。 α , β \alpha ,\beta α,β 分别反映蚂蚁在运动中所积累的信息和启发信息在选择路径中的相对重要性。

经过 n 时刻,蚂蚁完成一次循环,各路径上信息素调整为: ♣ τ i j ( t + 1 ) = ρ ⋅ τ i j ( t ) + △ τ i j ( t , t + 1 ) △ τ i j ( t , t + 1 ) = ∑ k = 1 m △ τ i j k ( t , t + 1 ) \clubsuit \quad \tau_{ij}(t+1)=\rho \cdot \tau_{ij}(t)+\triangle \tau_{ij}(t,t+1) \\ \triangle \tau_{ij}(t,t+1)=\sum_{k=1}^{m} \triangle \tau_{ij}^k(t,t+1) τij(t+1)=ρτij(t)+τij(t,t+1)τij(t,t+1)=k=1mτijk(t,t+1) △ τ i j k ( t , t + 1 ) \triangle \tau_{ij}^k(t,t+1) τijk(t,t+1) 是第 k k k 只蚂蚁在 ( t , t + 1 ) (t,t+1) (t,t+1) 时刻留在路径 ( i , j ) (i,j) (i,j) 上的信息素量
△ τ i j ( t , t + 1 ) \triangle \tau_{ij}(t,t+1) τij(t,t+1) 为本次循环路径 ( i , j ) (i,j) (i,j) 的信息素量的增量
ρ \rho ρ 为路径上信息素的挥发系数 (通常取 ρ < 1 \rho<1 ρ<1 )。

根据 △ τ i j , △ τ i j k \triangle \tau_{ij},\triangle \tau_{ij}^k τij,τijk p i j k ( t ) p^k_{ij}(t) pijk(t) 的表达形式的不同,Dorigo 定义了以下3种不同的蚂蚁系统模型。

系统名称表达方式
蚁密系统
(Ant Density System)
△ τ i j k ( t , t + 1 ) = { Q 第 k 只蚂蚁在 ( t , t + 1 ) 间经过路径 ( i , j ) 0 o t h e r w i s e \triangle \tau_{ij}^k(t,t+1) = \begin{cases} Q & 第k只蚂蚁在(t,t+1)间经过路径(i,j) \\ 0 & otherwise \end{cases} τijk(tt+1)={Q0k只蚂蚁在(t,t+1)间经过路径(i,j)otherwise
蚁量系统
(Ant Quantity System)
△ τ i j k ( t , t + 1 ) = { Q d i j 第 k 只蚂蚁在 ( t , t + 1 ) 间经过路径 ( i , j ) 0 o t h e r w i s e \triangle \tau_{ij}^k(t,t+1) = \begin{cases} \frac{Q}{d_{ij}} & 第k只蚂蚁在(t,t+1)间经过路径(i,j) \\ 0 & otherwise \end{cases} τijk(tt+1)={dijQ0k只蚂蚁在(t,t+1)间经过路径(i,j)otherwise
蚁周系统
(Ant Cycle System)
△ τ i j k ( t , t + n ) = { Q L k 蚂蚁 k 经过 n 步路径 ( i , j ) 0 o t h e r w i s e \triangle \tau_{ij}^k(t,t+n) = \begin{cases} \frac{Q}{L_{k}} & 蚂蚁k经过 n 步路径(i,j) \\ 0 & otherwise \end{cases} τijk(tt+n)={LkQ0蚂蚁k经过n步路径(i,j)otherwise
  • Q Q Q 为一只蚂蚁经过路径 ( i , j ) (i,j) (i,j)单位长度上释放的信息素量
  • Q d i j \frac{Q}{d_{ij}} dijQ为一只蚂蚁在经过路径 ( i , j ) (i,j) (i,j)单位长度上释放的信息素量
  • Q L k \frac{Q}{L_{k}} LkQ为第 k k k 只蚂蚁在(t,t+n)经过 n 步的一次循环中走过路径 ( i , j ) (i,j) (i,j)长度 L k L_k Lk 所释放的信息素量。
  • 蚁密、蚁量系统模型中,利用的是局部信息
  • 蚁周系统利用的是整体信息,蚁周系统模型也被称为基本蚁群算法。其更新公式由 ♣ \clubsuit 变为 τ i j ( t , t + n ) = ρ ⋅ τ i j ( t ) + △ τ i j ( t , t + n ) △ τ i j ( t , t + n ) = ∑ k = 1 m △ τ i j k ( t , t + n ) \tau_{ij}(t,t+n)=\rho \cdot \tau_{ij}(t)+\triangle \tau_{ij}(t,t+n) \\ \triangle \tau_{ij}(t,t+n)=\sum_{k=1}^{m} \triangle \tau_{ij}^k(t,t+n) τij(t,t+n)=ρτij(t)+τij(t,t+n)τij(t,t+n)=k=1mτijk(t,t+n)

在这里插入图片描述


粒子群优化算法(PSO)

粒子群优化(Particle Swarm Optimization,PSO)算法是在1995 年由美国社会心理学家 Kennedy 和电气工程师 Eberhart 共同提出的,又称为粒群算法、微粒群算法。

最初PSO算法模拟鸟群捕食的群体智能行为,它是以研究连续变量最优化问题为背景提出的。虽然PSO算法是针对连续优化问题而提出的,但通过二进制编码可以得到离散变量的PSO形式。因此,它也可以用于离散系统的组合优化问题求解,如用于求解 TSP 问题等。PSO还可以用于求解多目标优化、带约束优化、多峰函数优化、聚类、调度与规划、控制器参数优化等问题。

PSO 机理

PSO 利用生物学家 Heppner 的生物群体模型,模拟鸟类觅食等群体智能行为的进化算法。鸟类在飞行过程中是相互影响的,当一只鸟飞离鸟群而飞向栖息地时,将影响其他鸟也飞向栖息地。鸟类寻找栖息地的过程与对一个特定问题寻找解的过程相似。鸟的个体要与周围同类比较,模仿优秀个体的行为,因此可利用其解决优化问题,而人类的决策过程使用了两种重要的知识:一类是自己的经验;二是他人的经验。这样有助于提高决策的科学性。

PSO 设每个优化问题的解是搜索空间中的一只鸟,把鸟视为空间中的一个没有重量和体积的理想化“质点”,称为“粒子”或“微粒”,每个粒子都有一个由被优化函数所决定的适应度值,还有一个速度决定它们的飞行方向和距离。然后粒子通过追随当前的最优粒子在解空间中搜索最优解。

PSO 模型描述

n n n 维搜索空间中,PSO的变量如下表所示

NoteMeaning
X i = ( x i 1 , x i 2 , . . . , x i n ) X_i=(x_{i1},x_{i2},...,x_{in}) Xi=(xi1,xi2,...,xin)粒子群的当前位置
V i = ( v i 1 , v i 2 , . . . , v i n ) V_i=(v_{i1},v_{i2},...,v_{in}) Vi=(vi1,vi2,...,vin)粒子群的当前飞行速度
P i = ( p i 1 , p i 2 , . . . , p i n ) P_i=(p_{i1},p_{i2},...,p_{in}) Pi=(pi1,pi2,...,pin)粒子群所经历的最好位置
C 1 , C 2 C_1,C_2 C1,C2加速度常数
r 1 j , r 2 j r_{1j},r_{2j} r1j,r2j两个相互独立的随机数
P g ( t ) P_g(t) Pg(t)全局最好粒子的位置

对于最小化问题,若 f ( X ) f(X) f(X) 为最小化的目标函数,则微粒 i i i 的当前最好位置由下式确定 P i ( t + 1 ) = { P i ( t ) f ( X i ( t + 1 ) ) ≥ f ( P i ( t ) ) X i ( t + 1 ) f ( X i ( t + 1 ) ) < f ( P i ( t ) ) P_i(t+1) = \begin{cases} P_i(t) & f(X_i(t+1)) \ge f(P_i(t)) \\ X_i(t+1) & f(X_i(t+1))< f(P_i(t)) \end{cases} Pi(t+1)={Pi(t)Xi(t+1)f(Xi(t+1))f(Pi(t))f(Xi(t+1))<f(Pi(t))设群体中的粒子数为 S S S ,群体中所有粒子所经历过的最好位置为 P g ( t ) P_g(t) Pg(t) ,称为全局最好位置: f ( P g ( t ) ) = min ⁡ { f ( P 1 ( t ) ) , f ( P 2 ( t ) ) , . . . , f ( P s ( t ) ) } f(P_g(t))=\min \{ f(P_1(t)),f(P_2(t)),...,f(P_s(t))\} f(Pg(t))=min{f(P1(t)),f(P2(t)),...,f(Ps(t))}基本粒子 i i i 的更新方程可以描述为: v i j ( t + 1 ) = v i j ( t ) + C 1 ⋅ r 1 j ( t ) ⋅ ( P i j ( t ) − x i j ( t ) ) + C 2 ⋅ r 2 j ⋅ ( P g j ( t ) − x i j ( t ) ) x i j ( t + 1 ) = x i j ( t ) + v i j ( t + 1 ) v_{ij}(t+1)=v_{ij}(t)+C_1\cdot r_{1j}(t) \cdot (P_{ij}(t)-x_{ij}(t))+C_2\cdot r_{2j}\cdot (P_{gj}(t)-x_{ij}(t))\\ x_{ij}(t+1)=x_{ij}(t)+v_{ij}(t+1) vij(t+1)=vij(t)+C1r1j(t)(Pij(t)xij(t))+C2r2j(Pgj(t)xij(t))xij(t+1)=xij(t)+vij(t+1)上述式子表示粒子 i i i 在搜索空间中以一定的速度飞行,这个速度要根据自身的飞行经历和同伴的飞行经历进行动态调整。

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


萤火虫群优化算法(GSO)

萤火虫群优化(Glowworm Swarm Optimization,GSO)算法是 2005 年由印度学者 Krishnanand 和 Ghose 在研究改进蚁群算法求解连续型最优化问题时提出的,并将其成功用于机器人群体协作。

该算法思想来源于萤火虫求偶行为中荧光素越高,吸引力越强的生物习性。他们对萤火虫群优化算法的动态决策做了改进,提出将萤火虫群优化算法用于多个移动信号源的追踪、多极值函数优化,并对该算法的收敛性理论做了研究。

GSO 机理

萤火虫通过闪光吸引异性求偶和猎取食物。萤火虫发的光越亮越绚丽,越能吸引同伴行为或食物。此外,闪烁也可以作为一个保护预警机制。有节奏的闪光,闪烁的速率与时间成为了吸引异性的信号。

  • 萤火虫的闪光仅在一定的距离范围内可见。一方面是由于光强度和距离的平方存在反比关系;另一方面是由于空气会吸收光。
  • 萤火虫个体的荧光素大小与自己所在位置的目标函数有关,荧光素越大、越亮的萤火虫表示它所在的位置越好,即有较好的目标值。
  • 萤火虫会在决策域内寻找邻居,并且荧光素越大的邻居拥有越高的吸引力,吸引萤火虫往这个方向移动,每一次移动的方向会随着选择的邻居不同而改变。
  • 决策域的大小会受到邻居数量的影响:邻居密度越小,萤火虫的决策半径会加大以便寻找更多的邻居;邻居密度越大,它的决策半径则会缩小。

GSO 模型描述

设有 D D D 维目标搜索空间,GSO变量如下

NoteMeaning
l i ( t ) l_i(t) li(t) t t t 代第 i i i 只萤火虫携带的荧光素值
x i ( t ) x_i(t) xi(t) t t t 代第 i i i 只萤火虫的位置
J ( x ) J(x) J(x)计算当前位置的荧光素值函数
N i ( t ) N_i(t) Ni(t) i i i 只萤火虫的邻域集合
n t n_t nt控制邻域范围内邻居萤火虫个数的参数
r d i ( 0 < r d i < r s ) r_d^i(0<r_d^i<r_s) rdi(0<rdi<rs) i i i 只萤火虫的决策域, r s r_s rs为最大感知半径
ρ \rho ρ控制荧光素值的参数
γ \gamma γ荧光素更新率
s s s移动步长

GSO 算法每一次迭代都由两个阶段组成:第一阶段是荧光素更新阶段;第二阶段是萤火虫的运动阶段。其具体算法包括萤火虫的初始分布、荧光素更新、路径选择、位置更新和决策域更新。

荧光素更新: l i ( t ) = ( 1 − ρ ) l i ( t − 1 ) + γ J ( x i ( t ) ) l_i(t)=(1-\rho)l_i(t-1)+\gamma J(x_i(t)) li(t)=(1ρ)li(t1)+γJ(xi(t))
每个个体在其动态决策域半径 r d i r_d^i rdi 之内,选择荧光素值比自己高的个体组成其邻域集 N i ( t ) = j : d i j ( t ) < d d i ( t ) ; l i ( t ) < l j ( t ) N_i(t)={j:d_{ij}(t)<d_d^i(t);\quad l_i(t)<l_j(t)} Ni(t)=j:dij(t)<ddi(t);li(t)<lj(t)即当萤火虫 j j j 的荧光素值大于萤火虫 i i i 的荧光素,且萤火虫 j j j 与萤火虫 i i i 之间的距离小于萤火虫 i i i 所在邻域的决策范围时,将萤火虫 j j j 划分到萤火虫 i i i 所在的邻域。移向邻域集 N i ( t ) N_i(t) Ni(t) 内个体 j j j 的路径选择概率为: p i j ( t ) = l j ( t ) − l i ( t ) ∑ k ∈ N i ( t ) ( l k ( t ) − l i ( t ) ) p_{ij}(t)=\frac{l_j(t)-l_i(t)}{\sum_{k\in N_i(t)}(l_k(t)-l_i(t))} pij(t)=kNi(t)(lk(t)li(t))lj(t)li(t)位置更新: x i ( t + 1 ) = x i ( t ) + s ( x j ( t ) − x i ( t ) ∣ ∣ x j ( t ) − x i ( t ) ∣ ∣ ) x_i(t+1)=x_i(t)+s(\frac{x_j(t)-x_i(t)}{||x_j(t)-x_i(t)||}) xi(t+1)=xi(t)+s(∣∣xj(t)xi(t)∣∣xj(t)xi(t)) ∣ ∣ ⋅ ∣ ∣ ||·|| ∣∣∣∣为标准欧氏距离运算符。
决策域更新: r d i ( t + 1 ) = min ⁡ { r s , max ⁡ { 0 , r d i ( t ) + β ( n t − ∣ N i ( t ) ∣ ) } } r_d^i(t+1)=\min \{ r_s,\max\{ 0,r_d^i(t)+\beta(n_t-|N_i(t)|)\}\} rdi(t+1)=min{rs,max{0,rdi(t)+β(ntNi(t))}}

萤火虫群优化算法的实现步骤如下:

  1. 初始化各个参数。控制萤火虫邻居数目的邻域阈值 n t n_t nt;萤火虫移动的步长 s s s;初始荧光素的值 l 0 l_0 l0; 控制邻居变化范围的参数 β \beta β;控制荧光素值的参数 ρ \rho ρ;光素更新率 γ \gamma γ ;初始化萤火虫的位置。
  2. 对每一个萤火虫 i i i 更新荧光素的值
  3. 进入移动阶段,选出符合条件的萤火虫
  4. 用轮盘赌法选择出目标函数值较大的萤火虫 j ( j ∈ N i ( t ) ) j(j\in N_i(t)) j(jNi(t))
  5. 更新萤火虫的位置
  6. 更新决策域
  7. 一次迭代完成,进入下一次迭代,判断是否满足终止条件,满足退出循环;否则转到步骤2。

在这里插入图片描述


群智能优化算法

模拟动物群体(或个体)的觅食、繁殖、猎等行为的群智能优化算法在智能优化算法中占有很大篇幅。这不仅因为自然界的动物种类繁多,而且还因为各类动物的习性、生存行为各异有的生存在地下巢穴中,有的在地上爬,有的在空中飞,有的在水中游;有小到人眼无法看见的病毒,也有重达几吨的庞然大物等。
人们通过观察不同的动物,设计了非常多的群智能优化算法,截至目前,大约有数百种从动物身上汲取经验思想的算法,更多有趣的算法思想也在不断涌现。本文篇幅有限,加之作者对文献的搜集精力有限,这里罗列了数篇相关的群智能算法链接,有兴趣的小伙伴可以下载看看。

动物文章
蚁狮The Ant Lion Optimizer
蜂群采蜜An idea based on honey bee swarm for numerical optimization
蜜蜂交配MBO: marriage in honey bees optimization-a
Haplometrosis polygynous swarming approach
果蝇A new fruit fly optimization algorithm:
taking the financial distress model as an example
蝴蝶觅食Butterfly optimization algorithm: a novel approach for global optimization
蝴蝶交配Butterfly Mating Optimization
蜻蜓Dragonfly algorithm: a new meta-heuristic optimization technique
for solving single-objective, discrete, and multi-objective problems
蜉蝣A mayfly optimization algorithm
蚱蜢Grasshopper Optimisation Algorithm: Theory and application
飞蛾扑火Moth-flame optimization algorithm:
A novel nature-inspired heuristic paradigm
蛾群Optimal power flow using moth swarm algorithm
群居蜘蛛A swarm optimization algorithm inspired in the behavior of the social-spider
蟑螂Cockroach Swarm Optimization Algorithm for TSP
天牛BAS: Beetle Antennae Search Algorithm for Optimization Problems
蚯蚓Earthworm optimisation algorithm: a bio-inspired metaheuristic algorithm
for global optimisation problems
布谷鸟Cuckoo Search via Lévy flights
候鸟Migrating Birds Optimization: A new metaheuristic approach
and its performance on quadratic assignment problem
雁群GSO: An Improved PSO Based on Geese Flight Theory
燕群Swallow swarm optimization algorithm: a new method to optimization
麻雀A novel swarm intelligence optimization approach: sparrow search algorithm
鸽群Pigeon-inspired optimization: a new swarm intelligence optimizer
for air robot path planning
鸟群A new bio-inspired optimisation algorithm: Bird Swarm Algorithm
乌鸦A novel metaheuristic method for solving constrained
engineering optimization problems: crow search algorithm
缎蓝园丁鸟Satin bowerbird optimizer: A new optimization algorithm to
optimize ANFIS for software development effort estimation
海鸥Seagull optimization algorithm: Theory and its applications for
large-scale industrial engineering problems
哈里斯鹰Harris hawks optimization: Algorithm and applications
秃鹰Novel meta-heuristic bald eagle search optimisation algorithm
蝙蝠Bat algorithm: literature review and applications
飞鼠A novel nature-inspired algorithm for optimization: Squirrel search algorithm
青蛙Shuffled frog-leaping algorithm:
a memetic meta-heuristic for discrete optimization
鱼群

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

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

相关文章

梯度引导的分子生成扩散模型- GaUDI 评测

GaUDI模型来自于以色列理工Tomer Weiss的2023年发表在预印本ChemRxiv上的工作 《Guided Diffusion for Inverse Molecular Design》。原文链接&#xff1a;Guided Diffusion for Inverse Molecular Design | Materials Chemistry | ChemRxiv | Cambridge Open Engage GaUDI模型…

问题 R: 胜利大逃亡(HUST)

#include <deque> #define inf 200000 #include<iostream> #include<queue> using namespace std;// 迷宫坐标 int map[59][59][59] { 0 };// 可访问标记 int visit[51][51][51] { 0 }; // 移动方式 int next1[7][4] { {1,0,0},{-1,0,0}, {0,1,0},{0,-1,…

超级实用的程序员接单平台,看完少走几年弯路,强推第一个!

”前途光明我看不见&#xff0c;道路曲折我走不完。“ 兜兜转转&#xff0c;心心念念&#xff0c;念念不忘&#xff0c;必有回响。终于找到了....... 网络上好多人都在推荐程序员线上接单&#xff0c;有人说赚得盆满钵满&#xff0c;有的人被坑得破口大骂&#xff0c;还有的人…

苍穹外卖—解决前端时间属性显示问题

项目场景&#xff1a; 点击员工管理 出现显示时间属性问题 输入员工姓名为zhangsan 现实的时间属性是数组类型 问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; 例如&#xff1a;数据传输过程中数据不时出现丢失的情况&#xff0c;偶尔会丢失一部分数据 APP …

# 聚类系列(一)——什么是聚类?

目前在做聚类方面的科研工作, 看了很多相关的论文, 也做了一些工作, 于是想出个聚类系列记录一下, 主要包括聚类的概念和相关定义、现有常用聚类算法、聚类相似性度量指标、聚类评价指标、 聚类的应用场景以及共享一些聚类的开源代码 下面正式进入该系列的第一个部分&#xff…

利用SVD对图像进行压缩

利用SVD对图像进行压缩 使用SVD能够对数据进行降维&#xff0c;对图像进行SVD&#xff0c;降维之后然后重构数据&#xff0c;还原后的图像就是压缩后的图像。 SVD SVD进行图像压缩所依据的数学原理就是矩阵的近似表示&#xff1a; A m n ≈ U m k ∑ k k V k n T A_{m\…

Web 自动化神器 TestCafe—页面基本操作篇

前 言 Testcafe是基于node.js的框架&#xff0c;以操作简洁著称&#xff0c;是web自动化的神器 今天主要给大家介绍一下testcafe这个框架和页面元素交互的方法。 一、互动要求 使用 TestCafe 与元素进行交互操作&#xff0c;元素需满足以下条件&#xff1a;☟ 元素在 body 页…

五年程序员兼职接单的肺腑之言

不知不觉我已经参加工作&#xff0c;当一个程序员五年了&#xff0c;从一个职场菜鸟逐渐变成老油条&#xff0c;个中辛酸只有自己知道。这五年做过各种兼职接单&#xff0c;踩过不少坑&#xff0c;今天就把我在程序员接单上的一些心得体会分享给大家&#xff0c;希望能对兼职接…

C语言进阶之冒泡排序

✨ 猪巴戒&#xff1a;个人主页✨ 所属专栏&#xff1a;《C语言进阶》 &#x1f388;跟着猪巴戒&#xff0c;一起学习C语言&#x1f388; 目录 前情回顾 1、回调函数 2、冒泡排序 3、库函数qsort cmp&#xff08;sqort中的比较函数&#xff0c;需要我们自定义&#xff09; …

C++刷题 -- 二分查找

C刷题 – 二分查找 文章目录 C刷题 -- 二分查找一、原理二、例题1.二分查找2.使用二分查找确定target左右边界3.x的平方根 一、原理 条件&#xff1a;数组为有序数组&#xff0c;数组中无重复元素&#xff0c;因为一旦有重复元素&#xff0c;使用二分查找法返回的元素下标可能…

网工内推 | 字节原厂,正式编,网络工程师,最高30K*15薪

01 字节跳动 招聘岗位&#xff1a;网络虚拟化高级研发工程师 职责描述&#xff1a; 1、负责字节跳动虚拟网络产品的研发&#xff0c;包括但不局限于网络VPC、NAT、LB负载均衡等&#xff1b; 2、负责字节跳动网络基础平台的研发&#xff0c;包括但不局限于网络控制面系统、容器…

LeetCode算法心得——爬楼梯(记忆化搜索)

大家好&#xff0c;我是晴天学长&#xff0c;第二个记忆化搜索练习&#xff0c;需要的小伙伴可以关注支持一下哦&#xff01;后续会继续更新的。&#x1f4aa;&#x1f4aa;&#x1f4aa; 1&#xff09;爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或…

解决Zotero不显示标签的问题

目录 问题描述 解决办法&#xff1a; 问题描述 Zotero是一款学习助手&#xff0c;可以帮助我们梳理文献&#xff0c;方便我们整理。 最近电脑从windows换到mac&#xff0c;重新安装了Zotero&#xff0c;发现之前的一直设置都没有了。比如设置好的标签信息不显示了。如下图: …

Deep Learning for Monocular Depth Estimation: A Review.基于深度学习的深度估计

传统的深度估计方法通常是使用双目相机&#xff0c;计算两个2D图像的视差&#xff0c;然后通过立体匹配和三角剖分得到深度图。然而&#xff0c;双目深度估计方法至少需要两个固定的摄像机&#xff0c;当场景的纹理较少或者没有纹理的时候&#xff0c;很难从图像中捕捉足够的特…

庖丁解牛:NIO核心概念与机制详解 07 _ 字符集

文章目录 Pre概述编码/解码处理文本的正确方式示例程序Code Pre 庖丁解牛&#xff1a;NIO核心概念与机制详解 01 庖丁解牛&#xff1a;NIO核心概念与机制详解 02 _ 缓冲区的细节实现 庖丁解牛&#xff1a;NIO核心概念与机制详解 03 _ 缓冲区分配、包装和分片 庖丁解牛&…

JS--localStorage设置过期时间的方案(有示例)

原文网址&#xff1a;JS--localStorage设置过期时间的方案(有示例)_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍如何使用localStorage设置数据的过期时间。 问题描述 localStorage是不支持设置过期时间的&#xff0c;cookie虽然支持设置过期时间但它存的数据量很小。所…

CMap数据库筛选化学药物

数据库clue.io 文献链接&#xff1a;连接图谱&#xff1a;使用基因表达特征连接小分子、基因和疾病 |科学 (science.org) 基本模式&#xff1a;利用CMap将差异基因列表与数据库参考数据集比对&#xff1b;根据差异表达基因在参考基因表达谱富集情况得到一个相关性分数&#…

Java实现windows系统截图

Java提供了一种方便的方式来截取Windows系统的截图。这个过程通常需要使用Java的Robot类来模拟用户的鼠标和键盘输入操作。下面将介绍如何使用Java实现Windows系统截图。 步骤1&#xff1a;导入Robot和AWT包 Java提供了一个Robot类&#xff0c;它可以模拟用户的键盘和鼠标操作…

欧科云链研究院:从香港SFC最新文件看链上交易合规必备之选

出品&#xff5c;欧科云链研究院 作者&#xff5c;Hedy Bi 近日&#xff0c;香港证监会在其官网发布“致持牌法团、获证监会发牌的虚拟资产服务提供者及有联系实体的通函 - 打击洗钱&#xff0f;恐怖分子资金筹集经更新的《打击洗钱&#xff0f;恐怖分子资金筹集的自我评估查…

2023年【T电梯修理】考试题及T电梯修理考试报名

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 T电梯修理考试题是安全生产模拟考试一点通总题库中生成的一套T电梯修理考试报名&#xff0c;安全生产模拟考试一点通上T电梯修理作业手机同步练习。2023年【T电梯修理】考试题及T电梯修理考试报名 1、【多选题】GB/T1…