利用遗传算法和粒子群算法优化RFID的部署(二)

针对读写器-读写器碰撞问题,通过优化BPSO算法的粒子编码方式和惯性参数设置,有效降低了粒子维度,提高了算法收敛速度。实验结果显示,改进后的算法在四个任务上的平均准确率从39%提升至55%,但仍需进一步优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、备注

  上周主要是调整了一些基本参数,适当减少了阅读器的数量,但是并不能明显地改变读写器碰撞的问题,老师认为BPSO能够较好地解决读写器-读写器碰撞问题,因为它考虑了阅读器的开关状态,能够较好地对阅读器进行调度,于是老师让我改进这个算法。

二、改进

  在BPSO中,在每个时隙,所有阅读器的开关状态会用0或1来表示,0表示关闭,1表示打开,对于10个阅读器,100个时隙而言,粒子的维度就是10*100+10*2=1020, 维度过高导致后期算法难以收敛。于是,我们在编码上做了一点改进,对于每个时隙,我们用一个二进制数来表示阅读器的开关状态,10个阅读器对应一个10位的二进制数,比如0表示000000000020000000000_200000000002,对应10个阅读器全部关闭的状态,1023表示111111111121111111111_211111111112,对应10个阅读器全部开启的状态,这样,粒子的维度就变为10*2+100=120, 维度与之前相比大大降低。
  同时,考虑到这120维向量的不同部分取值不同,我将两个部分的惯性参数设定得也不同,向量可以表示阅读器的位置和阅读器的状态,这两部分用不同的惯性参数,对于阅读器位置,由于取值范围较小,惯性权重也相应的较小;对于阅读器状态,由于取值范围较大,惯性权重也较大,可以保证粒子能够充分到底每一个可能的取值。之前我们还忽略了一个问题,由于粒子的维度比较大,为了避免粒子陷入局部最优解,我们还增大了粒子的数量以及迭代的次数,粒子数量有原来的50增加至200,迭代次数由100增大至2000。

三、效果

  这次运行的效果要比上次好多了,

算法任务1任务2任务3任务4总分
改进前0.05050.292510.530.39
改进后0.07920.386010.290.55

  四个任务的权重分别为5%,10%,15%,70%,所以任务3和任务4得分更高,具体的结果可以看我之前的github。
  虽然有改进,但是准确率还是不够,只有55%左右,在现实中肯定是不够的,我们需要进一步改进该算法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值