久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4452|回復: 0
打印 上一主題 下一主題
收起左側

基于免疫粒子群算法尋優-智能控制技術課程設計說明書

[復制鏈接]
跳轉到指定樓層
樓主
ID:276996 發表于 2018-1-17 15:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
基于免疫的粒子群算法是在免疫算法的基礎上采用粒子群優化對抗體群體進行更新,可以解決免疫算法收斂速度慢的缺點。
智能控制技術課程設計說明書
基于免疫粒子群算法尋優

學生姓名:學號:
學    院:電氣與控制工程學院
專    業:電氣工程與智能控制                       
指導教師:杜老師  孫老師
2018年 1 月

本文通過對生物免疫系統對外來抗原入侵響應過程的研究,提出了對免疫遺傳算法的改進方案。

并對改進的免疫遺傳算法的步驟和有效性進行了分析,證明了算法的收斂性。具體完成了以下研究工作:首先利用生物免疫原理中的濃度調節機制和個體多樣性保持策略以及免疫記憶功能,提出了基于相似性矢量距為選擇概率的免疫遺傳算法。該算法可以有效地克服基本遺傳算法的未成熟收斂現象,既可以提高抗體的相似性又可以兼顧到抗體的多樣性,為避免算法陷入局部最優解,縮短搜索時間提供了保證。同時給出了此類算法的一般表示形式。

最后,將改進的免疫粒子群算法應用于函數優化問題。通過實驗,確定了算法中參數的取值范圍。


第一章 緒  論
第二章 免疫算法
2.1一般的免疫遺傳算法
2.2改進的免疫遺傳算法
2.2.1免疫記憶
2.2.2基于小生境技術和抗體濃度及適應度的自適應式免疫遺傳選擇策略
第三章 基于免疫的粒子群算法尋優
3.1對已知函數的優化
結  論
附  錄
一在MATLAB中編寫程序代碼:
二建立目標函數代碼:
三在MATLAB命令行窗口輸入代碼:
參考文獻

第一章 緒  論

生命現象和生物的智能行為一直為人工智能研究者所關注。而自然免疫系統正是人工智能方法靈感的重要源泉之一。免疫系統在顯示學習、適應性、記憶機制等應用于不同計算任務的方法方面可以給人們提供豐富的靈感和啟示。從人體免疫系統發展出的計算方法已經引起許多不同領域廣泛的研究興趣。受人類自然免疫系統的啟發,現在已經提出了各種人工免疫算法。人工免疫算法是模擬自然免疫系統功能的一種智能方法,它實現一種受生物免疫系統啟發,通過學習外界物質的自然防御機理的學習技術,提供噪聲忍耐、無師學習、自組織、記憶等進化學習機理,結合了分類器、神經網絡和機器推理等系統的一些優點,因此具有提供新穎的解決問題的方法的潛力。它已經成為繼神經網絡、模糊邏輯推理和進化計算后人工智能的又一研究熱點。

思維進化算法是模擬人類思維進化過程的一種新型進化算法,其中的趨同與異化的概念對于目前正在大量廣泛研究的人工免疫算法有著重要的啟示。

根據人工免疫和思維進化的特點,本文提出了人工免疫思維進化算法。該算法借鑒了思維進化中的上述特點,引入了趨同半徑和異化半徑的概念,這樣抗體根據克隆擴增和受體編輯的原理分別進行局部競爭和全局競爭,實現了兩層搜索機制。另外,算法中強調了免疫記憶的優良抗體保持作用。



第二章 免疫算法2.1一般的免疫遺傳算法

免疫遺傳算法可以看作一種新型融合算法,也是一種改進的遺傳算法,一種新型計算智能方法,是具有免疫功能的遺傳算法。與免疫算法一樣,把待求解的問題對應為抗原,問題的解對應為抗體,在許多方面表現出超越遺傳算法和免疫算法的優點,目前應用相對較為廣泛,比如神經網絡設計、問題、信號分析、色譜分析、設計等等。這些算法既保留了遺傳算法的搜索特性,克服遺傳算法由于交叉搜索而在局部搜索特性,克服遺傳算法由于交叉搜索而在局部搜索解空間上效率較差的缺點,又在很大程度上避免未成熟收斂。該算法一般形式如圖一所示。

圖一

免疫遺傳算法與免疫算法在形式上看,就是在免疫算法中加入了遺傳算子,與遺傳算法相比,增加了抗原識別、記憶功能和調節功能,沒有附加復雜的操作,沒有降低遺傳算法的魯棒性,算法兼顧了搜索速度、全局搜索能力和局部搜索能力。免疫遺傳算法一般形式只是要表明免疫機制對進化算法的作用。

免疫遺傳算法的主要特點有:

1.多樣性抗體

通過細胞分化,免疫系統可產生大量不同的抗體來抵御各種抗原。利用該特點可維持進化過程中個體的多樣性,提高全局搜索能力,避免陷入局部最優解。

2.個體濃度的抑制和促進

免疫系統的平衡機制通過對抗體的促進和抑制作用,經自我調節產生適當數量的必要抗體。利用這一特點可提高進化算法的局部搜索能力,加快計算收斂速度,從而提高個體適應環境的能力。

3.記憶能力

免疫系統的記憶功能是當適量的抗原侵入時,免疫系統會相當準確地與之響應。以后再有不同抗原入侵時,不論數量的多少,免疫系統都會迅速而且準確地與之響應。這樣能夠減少搜索時間,使之快速的收斂到最優解。

4.遺傳算子

在編碼方案、適應度函數及遺傳算子確定后,遺傳算法將利用進化過程中獲得的信息自行組織搜由于基于自然的選擇策略為“適者生存,不適應者被淘汰”,因而適應度大的個體具有較高的生存索概率。通常,適應度大的個體具有更適應環境的基因結構,再通過基因重組交叉和基因突變變異等遺傳操作,就可能產生更適應環境的后代。選擇操作消除了算法設計過程中的一個最大的障礙,即需要事先描述問題的全部特點,并要說明針對問題的不同特點算法應采取的措施。因此,我們可以解決那些復雜的非結構化問題。

2.2改進的免疫遺傳算法

本文基于人工免疫原理,提出了一種新型的免疫遺傳算法,采用二進制編碼,通過引入小生境概念,將演化種群分為若干個小子群以實現種群隔離,采用了一種自適應式的選擇機制,并與免疫系統的克隆選擇和克隆抑制機制相結合,能夠有效的促進優秀抗體的繁殖,抑制濃度過高的抗體,保證抗體的多樣性,提高個體的適應度和防卜種群的退化,提高收斂速度。本算法的流程圖如圖二所示。

圖二
2.2.1免疫記憶

免疫系統中抗原消失很長時間,抗體形成細胞仍然具有免疫記憶,從而以后抗原入侵時,生物體根據自身免疫網絡可以很快生成對應的抗體來中和抗原。這里我們引入該功能,計算小生境內各個抗體的適應度值,如果本次計算得到的最大適應度值大于已有的最優值,則將對應的解保存到記憶表中,否則從記憶表中選擇歷次得到的最優解并進行選擇、交叉和變異操作,得出適應度更高的解作為免疫抗體。

生物體由于機體本身的新陳代謝,每天有的低激勵值細胞死亡,而代之以從骨髓中生成全新的細胞,而且新產生的細胞只有具有較強適應性的才能融合到免疫系統中。模擬免疫行為中細胞的這種現象,算法中將小生境內的低適應度值的抗體去除,并代之以隨機產生的新解。

2.2.2基于小生境技術和抗體濃度及適應度的自適應式免疫遺傳選擇策略

1.計算抗體的適應度

即抗體i與抗原之間的親和度。對于求優化問題可將抗體的適應度直接取對應的目標函數值,即

2.計算抗體i,j之間的親和度

信息墑可作為狀態分散程度的度量,因此用信息嫡來描述抗體的多樣性及等位基因概率的變化進程。如圖三所示個抗體。


圖三

設有N個抗體,抗體長度為M,等位基因的種類為S,則N個抗體第j位基因信息嫡為:

其中為第i個抗體的等位基因源于第j個基因的概率。如果在位置上所有抗體的等位基因都相同,那么等于零。

平均信息嫡為:

抗體i,j之間的新口度,反應兩抗體之間的相似度:

越大,表示抗體i,j越親和。

3.計算抗體的濃度

抗體i的濃度表示群體中相似抗體所占的比重。

其中

µ為一固定值。

4.基于抗體濃度和適應度的自適應式選擇策略

為保證群體的多樣性,通過選擇機制進行抗體的促進與抑制調節。本文中提出在每代抗體i適應值上疊加一個服從態分布的最優個體所對應的適應值,及其與該抗體的濃度相結合的方法來確定抗體i是否被選擇進行以卜的步驟。抗體i的選擇概率公式如下:

其中

——抗體i的選擇概率

——疊加正態分布變量的適應度值

——抗體i的濃度

——為自適應式的可變因子,其隨著進化代數的增加而減小。

基于抗體濃度和適應度的白適應式選擇策略能有效的抑制濃度過高的抗體繁殖,保證了抗體的多樣性,避免算法陷入局部最優值。并且,采用正態分布式的選擇策略能夠將優秀抗體附近的個體保留下來,減少收斂時間,提高算法的搜索速度。

第三章 基于免疫的粒子群算法尋優
對于單峰值函數優化問題,算法的收斂速度是非常重要的但是對于多峰值函數優化問題,不但要求算法的快速收斂性,更重要的是要能找到全局最優解,避免陷入局部極值點。為了評價本文提出的免疫遺傳算法的求解性能,與傳統的簡單遺傳算法和一般的人工免疫算法進行了對比。由于算法的初始解群生成是隨機的,只憑兒次運行結果不能說明問題,因此對所有的測試算法均獨立運行次,考慮算法收斂到全局最優點的平均迭代代數,以及在這次運行中,算法收斂到局部極值點的次數經過足夠大的迭代次數后仍不能收斂到最優點,就認為算法陷入了局部極值點。
3.1對已知函數的優化

基于免疫的粒子群算法是在免疫算法的基礎上采用粒子群優化對抗體群體進行更新,可以解決免疫算法收斂速度慢的缺點。

對于這個函數,用基于免疫的粒子群算法步驟:

1.確定學習因子c1和c2、粒子(抗體)群體個數M。

2.由logistic回歸分析映射產生M個粒子(抗體)及其速度,其中i=1,2,...,N,最后形成初始粒子(抗體)群體.

3.產生免疫記憶粒子(抗體)。計算當前粒子(抗體)群體P中粒子(抗體)的適應值并判斷算法是否滿足結束條件,如果滿足則結束并輸出結果,否則繼續運行。

4.更高局部和全局最優解,并根據下面公式更新粒子位置和速度;

      

5.由logistic映射產生N個新的粒子(抗體)。

6.基于濃度的粒子(抗體)選擇。用群體相似抗體百分比計算產生N+M個新粒子(抗體)的概率,依照概率大小選擇N個粒子(抗體)形成粒子(抗體)群P然后轉入第(3)步。

7.圖五為免疫粒子群算法流程圖

圖四

圖五為函數優化結果:

圖五


圖六為基于免疫粒子群優化算法收斂結果:

圖六


結  論

本文提出一種免疫粒子群優化算法,該算法保留了一般免疫算法的基于抗體生存期望值的選擇策略,以保證抗體群體的多樣性,采用了交叉和變異產生新的抗體群體。在此基礎上,應用了粒子群優化對群體進行更新,本文并沒有完全采用粒子群優化表達式對群體進行更新,而是根據免疫算法的特點對其進行了簡化,使每個個體只跟蹤全局極值,使群體進化具有更明確的方向性,從而加快算法的收斂速度。通過求解六峰駝背函數的最大值驗證了算法的有效性,并將其與一般的免疫算法進行了比較。

由于本文提出的免疫粒子群算法是在一般免疫算法的基礎上加進了粒子群更新而得到的,所以在運行速度上可能要慢些,但是收斂速度確實能夠得到滿意的性能,下一步的工作是進一步加快算法的運行速度,對算法的有效性進行更全面、更有效的驗證。


附  錄一在MATLAB中編寫程序代碼(見附件):
二建立目標函數代碼:
function y = immuFunc( x )
y=(cos(x(1)^2+x(2)^2)-1)/((1+(x(1)^2-x(2).^2))^2)+0.5;
End
三在MATLAB命令行窗口輸入代碼:
[xm,fv]= POS_immu(@immuFunc,50,2,2,0.8,100,5,0.0000001,10,0.6,0.0000000000000000001,0)

參考文獻
[1] 曹先彬,劉克勝,王煦法.基于免疫進化規劃的多層前饋網絡設計.軟件學報,1999,10(11):18于1184
[2] 王熙法,張顯俊,曹先彬等.一種基于免疫原理的遺傳算法.小型微型計算機系統. 1999,20(2): 17-20
[3] 高鷹,謝勝利.免疫粒子群優化算法.計算機工程與應用. 2004,6:4-7

源程序如下:
  1. function[x,y,Result]=POS_immu(func,N,c1,c2,w,MaxDT,D,eps,DS,replaceP,minD,Psum)
  2. format long;
  3. %%%%%%%%%給定初始化條件%%%%%%%%%%
  4. %c1=2;        %學習因子1
  5. %c2=2;       %學習因子2
  6. %w=0.8;      %慣性權重
  7. %MaxDT=100;    %最大迭代次數
  8. %D=2;         %搜索空間維數(未知數個數)
  9. %N=100;       %初始化群體個體數目
  10. %eps=10^(-10);%設置精度(在已知最小值時候用)
  11. %DS=8;        %每隔DS次循環就檢查最優個體是否變化%
  12. %replaceP=0.5;%粒子的概率大于replaceP將被免疫替換
  13. %minD=1e-10;  %粒子間的最小距離
  14. %Psum=0;      %個體最佳的和
  15. range=100;
  16. count=0;
  17. %%%%%%%%%初始化種群的個體%%%%%%%%%%%%%%
  18. for i=1:N
  19.     for j=1:D
  20.         x(i,j)=-range+2*range*rand;            %隨機初始化位置
  21.         v(i,j)=randn;                          %隨機初始化速度
  22.     end
  23. end
  24. %%%%%%%先計算各個粒子的適應度,并初始化Pi和Pg%%%%%%
  25. for i=1:N
  26.     p(i)=feval(func,x(i,:));
  27.     y(i,:)=x(i,:);
  28. end
  29. pg=x(1,:);                      %pg為全局最優
  30. for i=2:N
  31.     if feval(func,x(i,:))<feval(func,pg)
  32.         pg=x(i,:);
  33.     end
  34. end
  35. %%%%%%%%%%%主循環,按照公式依次迭代,直到滿足精度要求%%%%%%
  36. for t=1:MaxDT
  37.     for i=1:N
  38.         v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg-x(i,:));
  39.         x(i,:)=x(i,:)+v(i,:);
  40.         if feval(func,x(i,:))<p(i)
  41.             p(i)=feval(func,x(i,:));
  42.             y(i,:)=x(i,:);
  43.         end
  44.         if p(i)<feval(func,pg)
  45.             pg=y(i,:);
  46.             subplot(1,2,1);
  47.             bar(pg,0.25);
  48.             axis([0 3 -40 40]);
  49.             title(['Iteration',num2str(t)]);pause(0.1);
  50.             subplot(1,2,2);
  51.             plot(pg(1,1),pg(1,2),'rs','MarkerFaceColor','r','MarkerSize',8)
  52.             hold on;
  53.             plot(x(:,1),x(:,2),'k.');
  54.             set(gca,'Color','g')
  55.             hold off;
  56.             grid on;
  57.             axis([-100 100 -100 100]);
  58.             title(['Global Min= ',num2str(p(i))]);
  59.             xlabel(['Min_x= ',num2str(pg(1,1)),'Min_y= ',num2str(pg(1,2))]);
  60.         end
  61.     end
  62. Pbest(t)=feval(func,pg);
  63.    %if Foxhole(pg,D)<eps
  64.        %break;
  65.   %end
  66. %%%%%開始進行免疫%%%%%%%%
  67.     if t>DS
  68.         if mod(t,DS)==0&&(Pbest(t-DS+1)-Pbest(t))<1e-020
  69.             for i=1:N
  70.                 Psum=Psum+p(i);
  71.             end
  72.             for i=1:N     %%%%%%%%開始免疫
  73.                 for j=1:N
  74.                     distance(j)=abs(p(j)-p(i));
  75.                 end
  76.                 num=0;
  77.                 for j=1:N
  78.                     if distance(j)<minD
  79.                         num=num+1;
  80.                     end
  81.                 end
  82.                 PF(i)=p(N-i+1)/Psum;
  83.                 PD(i)=num/N;
  84.                 a=rand;
  85.                 PR(i)=a*PF(i)+(1-a)*PD(i);
  86.             end
  87.             for i=1:N
  88.                 if PR(i)>replaceP
  89.                     x(i,:)=-range+2*range*rand(1,D);
  90.                 count=count+1;
  91.                 end
  92.             end
  93.         end
  94.     end
  95. end
  96. %%%%%%%%%最后給出結果%%%%%%
  97. x=pg(1,1);
  98. y=pg(1,2);
  99. Result=feval(func,pg);
  100. %%%%%%%%%算法結束%%%%%%%%%%%%%%
  101. ……………………

  102. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

完整的word格式文檔51黑下載地址:
基于免疫粒子群算法尋優.doc (321.44 KB, 下載次數: 22)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人av片在线观看 | 亚洲国产一区二区三区在线观看 | 91麻豆精品国产91久久久久久久久 | 国产日韩欧美在线一区 | 天堂资源最新在线 | www.av7788.com| 91亚洲国产| 欧美一级在线 | 亚洲欧美在线一区 | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 国产欧美综合在线 | 午夜av在线 | 91性高湖久久久久久久久_久久99 | 国产精品精品久久久 | 成人天堂噜噜噜 | 国产亚洲第一页 | 日韩精品一区二区三区中文在线 | 欧美一区在线看 | 色综合天天综合网国产成人网 | 欧美男人天堂 | 精品免费国产一区二区三区四区介绍 | 国产精品中文字幕在线 | 91av精品| 日韩成人在线播放 | 日日干夜夜操 | 青青久久久 | 久久精品视频网站 | 婷婷狠狠| 久久久精品综合 | 久久一区二区视频 | 午夜免费福利电影 | 婷婷久久久久 | 国产日韩一区 | 日韩欧美一区二区在线播放 | 国产伊人久久久 | 在线色 | 日本在线一区二区三区 | 天堂久| 自拍偷拍第一页 | 一区精品在线观看 | 亚洲 欧美 日韩在线 |