粒子群算法(PSO) 介绍

article/2025/10/1 12:15:47

算法理解

粒子群算法,又叫鸟群算法,可见是受鸟群捕食行为的启发。它属于遗传算法、群智算法。粒子群算法关注于粒子的两个属性:位置和速度。每个粒子在空间中单独搜寻,它们记得自己找到的过最优解,也知道整个粒子群当前找到的最优解。下一步要去哪,取决于粒子当前的方向、自己找到过的最优解的方向、整个粒子群当前最优解的方向。

Note: 一开始我看到“群智算法”这个概念,以为它是应用于一群机器人的算法。假如只有一个机器人,就没法使用这个算法吗?其实不是。就像小说《龙族》里,凯撒可以通过言灵驱使镰鼬这种生物(类似于蝙蝠),大量的镰鼬在空间里扩散,像一个个小雷达向凯撒回传信息,使他在黑暗的环境中躲开敌人的飞镖、在复杂的地下通道里掌握全局地图。对,机器人并不是一只只镰鼬,而是凯撒。

算法逻辑


Step 1. 初始化规模为N的粒子群,每个粒子的速度和位置随机。

Step 2. 评价每个粒子的适应值。

Step 3. 若某个粒子当前的适应值present比之前记录的该粒子最优解pbest更好,则更新pbest。

Step 4. 若某个粒子当前的适应值present比之前记录的全局最优解gbest更好,则更新gbest。

Step 5. 若gbest符合要求,则结束。若gbest不符合要求,粒子根据如下的公式来更新自己的速度和新的位置

v(k+1)=\omega v(k) + c_1r_1(pbest(k)-present(k)) + c_2r_2(gbest(k)-present(k))

present(k+1) = present(k) + v(k+1)

其中,v(k)是k时刻的速度,present(k)是k时刻的位置,r_1r_2是服从伯努利分布的0或1随机数,\omega是惯性权重因子,c_1c_2称为加速因子或学习因子。

Step 6. 跳转到Step 2。


Note: r_1r_2增加了算法的随机性,避免陷入局部最优解。较大的\omega有利于全局搜索,较小的\omega有利于局部搜索,所以通常将\omega设置为递减函数。c_1c_2意味着该粒子更相信自己找的最优解还是全局当前的最优解。\omega、 c_1c_2的设置相关文章:

https://blog.csdn.net/qq_41053605/article/details/89156125
https://blog.csdn.net/weixin_42212924/article/details/116995287


http://chatgpt.dhexx.cn/article/9QqBMAj2.shtml

相关文章

【优秀作业】粒子群算法

粒子群优化算法 一、概述 粒子群优化算法(Particle Swarm Optimization,PSO)的思想来源于对鸟捕食行为的模仿,最初,Reynolds.Heppner 等科学家研究的是鸟类飞行的美学和那些能使鸟群同时突然改变方向,分散…

Dex加固与反编译

编译与反编译 编译 将java代码转换为Dalvik字节码 将res资源文件、AndroidManifest.xml等配置文件编译为二进制文件 反编译 将DEX文件转换为jar包或者Smali文件 将二进制资源文件还原为资源源码文件 编译与反编译是相对的过程,转换过程分别由编译器和反编译器实…

编译与反编译

编译:高级语言转换成计算机认识的低级语言 编译的主要的目的是将便于人编写、阅读、维护的高级语言所写作的源代码程序,翻译为计算机能解读、运行的低级语言的程序,也就是可执行文件。 反编译:Java的反编译,一般是将…

反编译网站

最近帮一个公司反编译了一个他们在用的网站,是一个印照片,然后群(384389229)里面的伙伴们(专指:魂牵悲梦),叫我写个反编译的教程出来,由于前面时间很忙,一拖再拖到了现在终于有空就写…

编译/反编译

1.Android APK 1.软件 1.apktool 1.作用:反编译apk或重新打包apk 2.dex2jar 1.作用:将Android的可执行文件.dex转换为.jar 3.jd-gui 1.作用:方便阅读jar文件的代码工具 2.步骤 1.通过apktool将apk软件反编译2.使用dex2jar将classes.dex文件转…

反编译(Decompilers)

工具下载 调试工具反汇编工具反编译工具PE相关工具编译工具编辑工具.NET工具脱壳工具加壳工具补丁工具监视软件代码计算 密码学工具其它 反编译(Decompilers) VFP程序 UnFoxAll 3.0专业增强版  优点:界面和功能较实用缺点:支持到…

反编译器

转自:https://blog.csdn.net/kongwei521/article/details/54927689 在项目开发过程中,估计也有人和我遇到过同样的经历:运行环境出现了重大Bug亟需解决、或者由于电脑挂了、旧代码覆盖新代码,而在这种情况下,我们不能…

如何构建反汇编代码?

大型的非结构化反汇编指令堆几乎不可能被分析,所以大多数反汇编工具都会以某种简单的分析方法来构造反汇编代码。在本节中,我们将会讨论通过反汇编工具恢复的通用代码和数据结构,以及这些通用代码和数据结构会如何帮助我们进行二进制分析。 …

反编译

反编译 我们都知道,Android程序打完包之后得到的是一个APK文件,这个文件是可以直接安装到任何Android手机上的,我们反编译其实也就是对这个APK文件进行反编译。Android的反编译主要又分为两个部分,一个是对代码的反编译&#xff…

解决openai.error.APIConnectionError: Error communicating with OpenAI

一、问题描述 可以fanqiang,但是使用openai的接口还是报错如下的openai.error.APIConnectionError: Error communicating with OpenAI问题: File "D:\Anaconda3\envs\gms\lib\site-packages\openai\api_resources\abstract\engine_api_resource.py…

【Nginx应用】1.理解正、反向代理和负载均衡

在讲解Nginx之前,我们首先要理解什么是正向代理和反向代理。因为Nginx作为负载均衡的作用时,扮演的就是一个代理的角色,理解了正反向代理,对我们接下来学习Nginx会很有帮助1.正向代理 在我们的日常生活中其实就已经使用到了正向代…

软件安全实验——局域网DDoS攻击

文章目录 实验任务实验过程DoS攻击与DDoS攻击ping命令参数实施DDoS攻击 实验任务 对局域网内IP地址为10.12.186.186的主机(已关闭防火墙)发起基于网络流量的DDoS攻击。 实验过程 DoS攻击与DDoS攻击 DoS是Denial of Service的简称,即拒绝服务…

kali局域网攻击(一)

前言 很久以前的博客才发现,发布一下。 这个系列以后有时间再做。 arp攻击 arp路由链表,感兴趣的自行百度,我的博客我的笔记. 路由指向 介绍两个东西. echo 0 >/proc/sys/net/ipv4/ip_forward #让经过的数据不留通 echo 1 >/proc/sys/net/ipv4/ip_forward…

嗅探欺骗之Ettercap局域网攻击

嗅探欺骗 ——Ettercap局域网攻击 最近在练习使用ettercap工具,下面来介绍一下用ettercap实施嗅探以及欺骗的实验过程。 嗅探: 首先,我们把虚拟机作为攻击者,物理机作为受害者。①在虚拟机中打开一个终端,输入命令ett…

当代局域网攻击软件到底带来了什么

20世纪00年代晚期21世纪初,计算机网络技术及其安全技术得到了迅速发展,出现了一系列新的局域网攻击工具,如Metasploit,它是一款强大的局域网渗透测试开发框架;NetWox,它可以扫描网络中的漏洞;Wi…

局域网arp攻击_ARP局域网攻防浅析

ARP官方释意:地址解析协议,即ARP(Address Resolution Protocol),是根据获取的一个。发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址(MAC);收到返回…

局域网断网攻击 (arp攻击)

ARP攻击能够实现的技术前提有两个,一是作为攻击者的计算机需要和被攻击者的计算机在一个局域网中,二是作为攻击者的计算机需要知道被攻击者计算机的局域网IP。 环境:安装在VMware Workstation中的Kali Linux,我们需要在VMware的设…

局域网arp攻击_如何排查ARP网络攻击

ARP攻击危害:众所周知,ARP攻击变得日益猖狂,局域网内频繁性区域或整体掉线、IP地址冲突;网速时快时慢。极其不稳定,严重影响了网络的正常通讯。 那么如何排查ARP网络攻击呢? 首先诊断是否为ARP病毒攻击 1、当发现上网明显变慢,或者突然掉线时,我们可以用arp -a命令来检…

从交换机安全配置,看常见局域网攻击

前言 构建零信任网络,自然离不开网络准入(NAC),这就涉及到交换机的一些安全测试,于是有了此文《从交换机安全配置看常见局域网攻击》。 交换机安全配置 如本文标题所说从交换机安全配置看常见的局域网攻击,那么下面提到的各种攻…

Kali linux 局域网arp断网攻击

Kali linux 局域网arp断网攻击 什么是arp断网攻击: ARP断网攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目&…