色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python代碼下的PSO實(shí)現(xiàn)及Matlab下的粒子群函數(shù)分享

冬至子 ? 來(lái)源:算法工程師的學(xué)習(xí)日志 ? 作者:搬磚工程師domi ? 2023-07-19 15:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

以Ras函數(shù)(Rastrigin's Function)為目標(biāo)函數(shù),求其在x1,x2∈[-5,5]上的最小值。這個(gè)函數(shù)對(duì)模擬退火、進(jìn)化計(jì)算等算法具有很強(qiáng)的欺騙性,因?yàn)樗蟹浅6嗟木植孔钚≈迭c(diǎn)和局部最大值點(diǎn),很容易使算法陷入局部最優(yōu),而不能得到全局最優(yōu)解。如下圖所示,該函數(shù)只在(0,0)處存在全局最小值0。

圖片

圖片

Python代碼實(shí)現(xiàn)

import numpy as np
import matplotlib.pyplot as plt




# 目標(biāo)函數(shù)定義
def ras(x):
    y = 20 + x[0] ** 2 + x[1] ** 2 - 10 * (np.cos(2 * np.pi * x[0]) + np.cos(2 * np.pi * x[1]))
    return y




# 參數(shù)初始化
w = 1.0
c1 = 1.49445
c2 = 1.49445


maxgen = 200  # 進(jìn)化次數(shù)
sizepop = 20  # 種群規(guī)模


# 粒子速度和位置的范圍
Vmax = 1
Vmin = -1
popmax = 5
popmin = -5


# 產(chǎn)生初始粒子和速度
pop = 5 * np.random.uniform(-1, 1, (2, sizepop))
v = np.random.uniform(-1, 1, (2, sizepop))


fitness = ras(pop)  # 計(jì)算適應(yīng)度
i = np.argmin(fitness)  # 找最好的個(gè)體
gbest = pop  # 記錄個(gè)體最優(yōu)位置
zbest = pop[:, i]  # 記錄群體最優(yōu)位置
fitnessgbest = fitness  # 個(gè)體最佳適應(yīng)度值
fitnesszbest = fitness[i]  # 全局最佳適應(yīng)度值


# 迭代尋優(yōu)
t = 0
record = np.zeros(maxgen)
while t < maxgen:


    # 速度更新
    v = w * v + c1 * np.random.random() * (gbest - pop) + c2 * np.random.random() * (zbest.reshape(2, 1) - pop)
    v[v > Vmax] = Vmax  # 限制速度
    v[v < Vmin] = Vmin


    # 位置更新
    pop = pop + 0.5 * v
    pop[pop > popmax] = popmax  # 限制位置
    pop[pop < popmin] = popmin


    '''
    # 自適應(yīng)變異
    p = np.random.random()             # 隨機(jī)生成一個(gè)0~1內(nèi)的數(shù)
    if p > 0.8:                          # 如果這個(gè)數(shù)落在變異概率區(qū)間內(nèi),則進(jìn)行變異處理
        k = np.random.randint(0,2)     # 在[0,2)之間隨機(jī)選一個(gè)整數(shù)
        pop[:,k] = np.random.random()  # 在選定的位置進(jìn)行變異 
    '''


    # 計(jì)算適應(yīng)度值
    fitness = ras(pop)


    # 個(gè)體最優(yōu)位置更新
    index = fitness < fitnessgbest
    fitnessgbest[index] = fitness[index]
    gbest[:, index] = pop[:, index]


    # 群體最優(yōu)更新
    j = np.argmin(fitness)
    if fitness[j] < fitnesszbest:
        zbest = pop[:, j]
        fitnesszbest = fitness[j]


    record[t] = fitnesszbest  # 記錄群體最優(yōu)位置的變化


    t = t + 1


# 結(jié)果分析
print(zbest)


plt.plot(record, 'b-')
plt.xlabel('generation')
plt.ylabel('fitness')
plt.title('fitness curve')
plt.show()

結(jié)果為

[0.99699579 0.00148844]

圖片

可以知道求解的點(diǎn)非最小值,算法陷入了局部最小值。

刪除自適應(yīng)變異部分的注釋,運(yùn)行后結(jié)果如下,可以看出收斂到全局最優(yōu)解。

[0.00022989 0.00014612]

圖片

Matlab有個(gè)自帶的粒子群優(yōu)化函數(shù)particleswarm也可以使用。本例的代碼如下:

y = @(x) 20 + x(1).^2 + x(2).^2 - 10*(cos(2*pi*x(1))+cos(2*pi*x(2)));
rng default
options = optimoptions('particleswarm','SwarmSize',200,'HybridFcn',@fmincon,'MaxIterations',200, 'Display','iter');
lb = [-5 -5];     % 這是變量的下限
ub = [5 5];       % 這是變量的上限
[x,fval,exitflag,output] = particleswarm(y,length(lb),lb,ub,options);

結(jié)果如下

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • MATLAB仿真
    +關(guān)注

    關(guān)注

    4

    文章

    176

    瀏覽量

    20401
  • 粒子群算法
    +關(guān)注

    關(guān)注

    0

    文章

    63

    瀏覽量

    13231
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4828

    瀏覽量

    87031
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    粒子群優(yōu)化模糊神經(jīng)網(wǎng)絡(luò)在語(yǔ)音識(shí)別中的應(yīng)用

    針對(duì)模糊神經(jīng)網(wǎng)絡(luò)訓(xùn)練采用BP算法比較依賴于網(wǎng)絡(luò)的初始條件,訓(xùn)練時(shí)間較長(zhǎng),容易陷入局部極值的缺點(diǎn),利用粒子群優(yōu)化算法(PSO)的全局搜索性能,將PSO用于模糊神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程.由于基本PSO
    發(fā)表于 05-06 09:05

    LabVIEW粒子群優(yōu)化(PSO)算法實(shí)現(xiàn)

    常常聽(tīng)到這個(gè)算法那個(gè)算法的,今天就介紹一粒子群優(yōu)化算法的案例。實(shí)際效果圖如下:PSO算法網(wǎng)上有很多關(guān)于matlab實(shí)現(xiàn)的方式及原理講解,有
    發(fā)表于 07-07 10:31

    粒子群算法城鎮(zhèn)能源優(yōu)化調(diào)度問(wèn)題

    computation)。源于對(duì)鳥(niǎo)群捕食的行為研究。粒子群優(yōu)化算法的基本思想:是通過(guò)群體中個(gè)體之間的協(xié)作和信息共享來(lái)尋找最優(yōu)解.PSO的優(yōu)勢(shì):在于簡(jiǎn)單容易實(shí)現(xiàn)并且沒(méi)有許多參數(shù)的調(diào)節(jié)。目前已被廣泛應(yīng)用于
    發(fā)表于 07-07 06:04

    什么是粒子群算法?

    粒子群算法(1.初步了解)? 1995年,受鳥(niǎo)類捕食行為的啟發(fā),Kennedy和Eberhart正式提出了粒子群優(yōu)化算法的概念。研究中發(fā)現(xiàn),在鳥(niǎo)類捕食過(guò)程中,個(gè)體并不知道如何找到食物以及自身離食物
    發(fā)表于 07-07 07:50

    【Simulink】粒子群算法(PSO)整定PID參數(shù)(附代碼和講解)精選資料分享

    本文提供粒子群算法簡(jiǎn)介和一個(gè)算法舉例,提供粒子群算法仿真PID的M文件代碼及simulink仿真。另外,本文還提供了一種動(dòng)態(tài)simulink仿真方法,可以讓M文件和simulink文件之間互相交換數(shù)據(jù),
    發(fā)表于 09-08 07:53

    基于模擬退火結(jié)合粒子群算法介紹

    【優(yōu)化選址】基于模擬退火結(jié)合粒子群算法求解分布式電源定容選址問(wèn)題matlab源碼1 算法介紹1.1 模擬退火算法1.2 粒子群算法模型介紹見(jiàn)這里。1.3 含有分布式電源的配電網(wǎng)結(jié)構(gòu)2 部分代碼
    發(fā)表于 12-29 07:04

    基于模擬退火結(jié)合粒子群算法相關(guān)資料分享

    【優(yōu)化選址】基于模擬退火結(jié)合粒子群算法求解分布式電源定容選址問(wèn)題matlab源碼1 算法介紹1.1 模擬退火算法1.2 粒子群算法粒子群算法同遺傳算法相似,也是根據(jù)生物界中的種群行為而
    發(fā)表于 01-03 07:58

    基于matlab粒子群配電網(wǎng)重構(gòu)簡(jiǎn)介

    一、簡(jiǎn)介基于matlab粒子群配電網(wǎng)重構(gòu)二、源代碼%主函數(shù)clearclcwarning offN=10;%節(jié)點(diǎn)總數(shù)(包括電源節(jié)點(diǎn))R=16;%支路總數(shù)sizepop=10;%
    發(fā)表于 01-03 07:05

    基于混合粒子群算法的PID參數(shù)尋優(yōu)

    提出一種將單純形法SM與粒子群算法PSO結(jié)合的混合粒子群算法HPSO。通過(guò)對(duì)3種常用測(cè)試函數(shù)進(jìn)行優(yōu)化和比較,結(jié)果表明HPSO比PSO和SM都
    發(fā)表于 05-25 16:29 ?20次下載

    基于似然分布調(diào)整的粒子群優(yōu)化粒子濾波新方法

    傳統(tǒng)基于粒子群優(yōu)化的粒子濾波(PF)算法(PSOPF)在移動(dòng)粒子向高似然區(qū)域移動(dòng)的過(guò)程中,由于破壞了預(yù)測(cè)分布,當(dāng)似然函數(shù)具有多峰時(shí),其在具有大計(jì)算量的同時(shí)濾波性能并沒(méi)有明顯提升。針對(duì)該
    發(fā)表于 12-04 15:40 ?0次下載
    基于似然分布調(diào)整的<b class='flag-5'>粒子群</b>優(yōu)化<b class='flag-5'>粒子</b>濾波新方法

    基于灰度平均梯度與粒子群優(yōu)化PSO算法的散焦圖像模糊參數(shù)估計(jì)

    針對(duì)散焦模糊圖像的復(fù)原問(wèn)題,提出一種基于灰度平均梯度與粒子群優(yōu)化(PSO)算法相結(jié)合的散焦圖像模糊參數(shù)估計(jì)方法。首先,利用PSO算法隨機(jī)生成一群不同模糊半徑的點(diǎn)擴(kuò)散函數(shù),分別用維納濾波
    發(fā)表于 12-21 09:27 ?1次下載
    基于灰度平均梯度與<b class='flag-5'>粒子群</b>優(yōu)化<b class='flag-5'>PSO</b>算法的散焦圖像模糊參數(shù)估計(jì)

    基于粒子群優(yōu)化PSO算法的部署策略

    針對(duì)云計(jì)算基礎(chǔ)設(shè)施即服務(wù)(IaaS)中的虛擬機(jī)部署問(wèn)題,提出一種基于粒子群優(yōu)化(PSO)算法的部署策略。由于PSO算法在處理虛擬機(jī)部署這類大規(guī)模復(fù)雜問(wèn)題時(shí),具有收斂速度慢且容易陷入局部最優(yōu)的缺點(diǎn)
    發(fā)表于 12-26 10:32 ?1次下載

    基于粒子群算法的行李條碼閱讀器優(yōu)化

    問(wèn)題;其次,通過(guò)標(biāo)準(zhǔn)粒子群優(yōu)化(PSO)算法求解此優(yōu)化問(wèn)題;最后,依照模型特點(diǎn)對(duì)標(biāo)準(zhǔn)粒子群算法進(jìn)行改進(jìn)。仿真結(jié)果表明,與標(biāo)準(zhǔn)PSO算法相比,DPDF-
    發(fā)表于 12-26 18:51 ?0次下載

    粒子群算法的MATLAB實(shí)現(xiàn)(1)

    粒子群算法(Particle Swarm Optimization,PSO)屬于進(jìn)化算法的一種,和模擬退火算法相似,它也是從隨機(jī)解出發(fā),通過(guò)迭代尋找最優(yōu)解。
    的頭像 發(fā)表于 07-21 15:25 ?3165次閱讀
    <b class='flag-5'>粒子群</b>算法的<b class='flag-5'>MATLAB</b><b class='flag-5'>實(shí)現(xiàn)</b>(1)

    粒子群算法的MATLAB實(shí)現(xiàn)(2)

    粒子群算法經(jīng)常與其他算法混合使用。混合策略就是將其他進(jìn)化算法、傳統(tǒng)優(yōu)化算法或其他技術(shù)應(yīng)用到PSO中,用于提高粒子多樣性、增強(qiáng)粒子的全局探索能力,或者提高局部開(kāi)發(fā)能力、增強(qiáng)收斂速度與精度
    的頭像 發(fā)表于 07-21 15:27 ?1409次閱讀
    <b class='flag-5'>粒子群</b>算法的<b class='flag-5'>MATLAB</b><b class='flag-5'>實(shí)現(xiàn)</b>(2)
    主站蜘蛛池模板: 欧美乱码卡一卡二卡四卡免费 | 国产精品久久久久久久久久影院 | 在线不卡日本v二区到六区 在线不卡日本v二区 | 国产在线观看www鲁啊鲁免费 | 99er热精品视频国产免费 | 国产精品亚洲AV色欲在线观看 | 网址在线观看你懂我意思吧免费的 | 看电影就来5566先锋av | 中文无码乱人伦中文视频播放 | 男生射女生 | 国语自产一区第二页 | 国产欧美国日产在线播放 | 欧美一级做a爰片免费 | 女教师跟黑人男朋友激情过后 | 亚洲综合春色另类久久 | 亚洲中文字幕欧美自拍一区 | 后式大肥臀国产在线 | 在线播放成人无码日 | 美艳人妻在厨房翘着屁股 | 色婷婷狠狠97成为人免费 | 99国产精品综合AV无码 | 国产精品日本无码久久一老A | 同居了嫂子在线观看 | 国产午夜三区视频在线 | 日本人娇小hd | 日本久久久免费高清 | 少妇内射视频播放舔大片 | 亚洲中文无码亚洲人在线观看- | 国产AV精品国语对白国产 | 久久精品久久精品 | 吃奶摸下的激烈免费视频 | 女人久久WWW免费人成看片 | 亚洲精品无码久久久久A片 亚洲精品无码国产爽快A片百度 | 亚洲绝美精品一区二区 | 一区二区三区高清视频 | 毛片手机在线观看 | 国产精品美女WWW爽爽爽视频 | 亚洲乱妇88网 | 国产香蕉视频在线观看 | 草比比过程图 | 亚洲精品乱码电影在线观看 |

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品