1. matlab車間調度遺傳演算法中隨機產生初始種群的問題,,求教
P應該是一個大小為n的數組,P(j)表示數組第j個元素;eps在matalab中叫做「浮點零」,也叫是matalab中的零值。用手廳特殊的MATLAB數eps來代替在一個數組中的零元素,eps近似為2.2e-16。不是最小的數,而是系統能准確表示的浮點輪薯禪數的精度;rand是matlab中的隨機數,(0,1)間。
X(i,j)=1+(P(j)-eps)*rand;表示給矩陣X的第i行第j列的元素賦值,值為[1,P(j))范圍內的隨機數臘塵。
我解釋的您還滿意不?能在採納時加點懸賞分嗎?謝謝
2. 高分急求! 關於 粒子群解決車間調度的英文文獻 ! !先50 滿意再加50
基於動態雙種群粒子群
演算法的柔性工作車間調度
摘 要: 針對標准粒子群優化演算法存在易陷入局部最優點的缺點,提出了一種基於動態雙種群的粒子群
優化演算法(DPSO) ·DPSO 演算法將種群劃分成兩個種群規模隨進化過程不斷變化的子種群,兩個子種群分別采
用不同的學習策略進行進化,並在進化過程中相互交換信息·該演算法提高了全局尋優能力,有效地避免了早熟
收斂的發生·將以DPSO 演算法為基礎的排序演算法和啟發式分配演算法(HA) 相結合形成了解決柔性工作車間調
度問題的新方法(DPSO2HA) ·通過對算例的研究和與其他方法的比較表明,該方法是有效可行的·
A Dynamic Double2Population Particle Swarm Optimization
Algorithm for Flexible Job2Shop Scheling
L I Dan , GA O L i2qun , MA Jia , L I Yang
( School of Information Science & Engineering , Northeastern University , Shenyang 110004 , China.
Correspondent : L I Dan , E2mail : lidanneu @163. com)
Abstract : A dynamic double2population particle swarm optimization ( DPSO) algorithm is
presented to solve the problem that the standard PSO algorithm is easy to fall into a locally
optimized point , where the population is divided into two sub2populations varying with their own
evolutionary learning st rategies and the information exchange between them. The algorithm thus
improves it s solvability for global optimization to avoid effectively the precocious convergence.
Then , an ordering algorithm based on DPSO is integrated with the heuristic assignation ( HA)
algorithm to form a new algorithm DPSO2HA so as to solve the flexible job2shop scheling
problem (FJ SP) . The new algorithm is applied to a set of benchmark problems as instances , and
the simulation result s show the effectiveness and feasibility of DPSO2HA algorithm for the flexible
job2shop scheling.
Key words : double population ; PSO(particle swarm optimization) ; learning st rategy ; DPSO2HA
algorithm; flexible job2shop scheling
柔性工作車間調度問題( flexible job2shop
scheling problem , FJ SP) 是經典工作車間調度
問題的一個延伸,它允許工件被給定的有處理能
力的任何機器處理·柔性工作車間調度問題由於
減少了機器約束,擴大了可行解的搜索范圍,提高
了問題的復雜性,所以與傳統工作車間調度問題
相比更加接近實際生產環境的模擬·
相對於傳統工作車間調度,關於柔性工作車
間調度問題的文獻還比較少·目前所採用的方法
主要有分枝定界法[1 ] 、多項式演算法、分等級法和
傳統進化演算法( EA) [2 ]等,在近幾年中,很多研究
者使用禁忌搜索和遺傳演算法對FJ SP 進行求
解[3 - 4 ]
·
本文提出一個新的求解柔性工作車間調度問
題的方法———基於動態雙種群粒子群優化的分階
段方法·本方法的主要思想是:將柔性工作車間調
度問題分解成兩個有時間順序的子問題來考慮,
首先考慮工序排序子問題,在獲得可行的排序後
再考慮機器分配子問題·本文首先利用動態雙種
群粒子群優化演算法為工序進行排序,使其滿足約
束條件從而獲得一個可行解,然後利用文中所提
出的分配演算法為每道工序分配合適的機器,形成
可行的調度方案·本文所考慮的優化目標是最小
化最大完工時間(makespan) ·
1 柔性工作車間調度問題描述
柔性工作車間調度問題可描述為將n 個加工
順序不同的工件在m 台機器上加工完成·每個工
件使用同一台機器可以多於一次,每道工序的加工
過程不允許中斷·機器的集合用U 來表示,每個工
件J 包含nj 道工序,各工序之間的順序不允許改
變·Oij表示工件J 的第i 道工序,它可以在有處理
能力的任何一台機器上被加工·Ti , j , k表示工序Oij
用機器Mk 來加工所需要的時間, 可用集合T =
{ Ti , j , k| 1 ≤j ≤N ;1 ≤i ≤nj ;1 ≤k ≤M}表示, N 為
工件的數量, M 為機器的數量·例如表1 即是一個
實際的柔性工作車間調度加工時間表·
表1 柔性工作車間調度加工時間表
Table 1 Proce ssing schele for FJ SP
工件工序M1 M2 M3 M4
J1
O1 ,1 1 3 4 1
O2 ,1 3 8 2 1
O3 ,1 3 5 4 7
J2
O1 ,2 4 1 1 4
O2 ,2 2 3 9 3
O3 ,2 9 1 2 2
J3
O1 ,3 8 6 3 5
O2 ,3 4 5 8 1
在柔性工作車間調度問題中, 應滿足以下假
設:
(1) 所有的機器在時間t = 0 時都是可以使
用的,每個工件都可以在t = 0 時開始加工;
(2) 在給定的時間內, 一台機器只能加工一
道工序,直到加工完此工序後方可加工其他工序,
這就是所謂的資源約束;
(3) 對於每個工件的各道工序只能按照事先
給定的順序加工,這就是所謂的優先約束·
對於每一道工序Oi , j , 本文用ri , j來表示其
最早開始加工時間, 對不同的工序分別用下式進
行計算:
ri , j =
0 , 1 ≤ j ≤ N ;
ri - 1 , j +γi , j , 2 ≤ i ≤ nj ,1 ≤ j ≤ N ·
式中,γi , j = mink ( Ti , j , k) ,1 ≤i ≤nj ;1 ≤j ≤N·
對於FJ SP 來說一般存在兩個難題:第一個
是如何為每道工序選擇合適的機器;第二個是如
何計算每道工序的開始加工時間t i , j和結束加工
時間tf i , j·
本文所要研究的FJ SP 的優化目標是,在滿
足上述優先約束和資源約束的條件下尋找最優調
度方案,使全部工件的最大完工時間(Makespan)
最短·
2 排序演算法———動態雙種群粒子群
優化演算法
2. 1 標准粒子群優化演算法
粒子群優化(particle swarm optimization ,簡
稱PSO) 演算法是由Kennedy 和Eberhart 在1995
年提出·在PSO 系統中,每個潛在解被稱為一個
粒子,多個粒子共存、合作尋優,每個粒子根據它
自身的經驗在目標搜索空間中向更好的位置飛
行,搜索最優解·由文獻[ 5 ]可知,每個粒子根據如
下的公式來更新自己的速度和在解空間的位置·
v ( t +1)
id = w v ( t)
id + c1 r1 p ( t)
id - x ( t)
id +
c2 r2 p ( t)
gd - x ( t)
id , (1)
x ( t +1)
id = x ( t)
id + v ( t +1)
id · (2)
其中, d = 1 ,2 , ⋯, n , i = 1 ,2 , ⋯, m , m 為種群規
模; t 為當前進化代數; r1 和r2 為均勻分布於[0 ,
1]的隨機數; w 為慣性權重, 其值由下式來確
定[6 ] :
w = w max -
w max - w min
itermax
×iter · (3)
式中, w max , w min分別是w 的最大值和最小值;
iter ,itermax分別是當前迭代次數和最大迭代次數·
2. 2 粒子群優化演算法的學習策略
由標准粒子群優化演算法可知,粒子通過跟蹤
自己迄今為止所找到的最優解和種群迄今為止所
找到最優解這兩個極值來更新自己的速度,從而
更新自己的位置·這種行為也可以理解為,粒子在
借鑒自身和整個群體所取得的成功經驗,通過對
以往的成功經驗的學習獲得有用的信息,指導自
己下一步的行動策略·但人們也常說「失敗乃成功
之母」「, 吃一塹,長一智」,可見從一些失敗的嘗試
中也可以獲得有用的信息,基於這一點,提出了新
的粒子群優化演算法學習策略,這就是從以往的失
敗中獲得有價值的信息,使粒子遠離粒子本身和
整個群體所找到的最差的位置,從而更新粒子的
速度和位置·粒子在搜索過程中的失敗可以表現
為搜索到的具有較差適應值的位置,記第i 個粒
子迄今為止搜索到的最差位置為si = ( si1 , si2 ,
⋯, sin) ,整個粒子群迄今為止搜索到的最差位置
為sg = ( sg1 , sg2 , ⋯, sg n) ,則第i 個粒子的速度和
位置更新公式如下:
v ( t +1)
id = w v ( t)
id + c1 r1 x ( t)
id - s ( t)
id +
c2 r2 x ( t)
id - s ( t)
gd , (4)
x ( t +1)
id = x ( t)
id + v ( t +1)
id · (5)
如果只是利用上述的位置和速度更新公式更
新粒子,也就是說只是從失敗中獲取經驗,這與實
際經驗不符·一般來說,還是更多地從成功的經歷
中獲取信息,而從失敗的經歷中獲得相對少的信
息,基於這一點本文的演算法同時從成功和失敗的
經歷中獲取信息來更新粒子·
2. 3 動態雙種群粒子群優化演算法
由上面的敘述可以知道粒子群中的粒子可以
按照不同的學習策略進行學習,對速度和位置作
出更新·所以本文將一個種群分成兩個子種群,每
個子種群選用不同的學習策略,即第一個子種群
中的粒子選用從成功經歷中獲得學習信息的策
略,更新自己;第二個子種群中的粒子選用從失敗
的經歷中獲得學習信息的策略進行進化·本文可
以設置一個比例系數ρ來控制兩個子種群中粒
子的個數·
ρ =
m1
m2
, m1 + m2 = m · (6)
式中, m 為粒子群中的粒子總數; m1 為第一個子
種群中的粒子個數; m2 為第二個子種群中的粒
子個數·
為了使每個粒子都能從自身和群體的經歷中
獲得充分的學習, 本文規定兩個子種群中的粒子
是不斷變化的, 即每隔一定的代數後將整個種群
按照比例系數ρ重新隨機劃分成兩個子種群·從
粒子群優化演算法的進化過程中知道在優化的初期
粒子的位置比較分散, 得到較優值和較差值的機
會相差不多,所以此時採用上述兩種不同學習策
略的粒子的個數應大致相等·在優化搜索的後期
粒子將聚集在最優值的附近,這時將很難出現比
歷史最差值更差的值了,第二個子種群將從失敗
經歷中得不到太多的有價值的信息·此時第二個
子種群中的粒子數應該遠遠小於第一個子種群中
的粒子個數,直至完全採用跟蹤最優值來更新粒
子,即第二個子種群消亡·基於上述原因將ρ設
為一個線性變化的量,其值由下式確定:
ρ = ρmax -
ρmax - ρmin
018 ×itermax
×iterc · (7)
式中,ρmax和ρmin分別是ρ的最大值和最小值;
iterc 和itermax分別是種群重新劃分時的進化代數
和最大進化代數·
動態雙種群粒子群優化演算法的實現步驟如
下:
(1) 設PSO 種群規模為m , 加速常數為c1
和c2 ,慣性權重的最大值和最小值為w max , w min ,
比例系數ρ的最大值和最小值為ρmax ,ρmin ,種群
重新劃分代數iterc ,最大進化代數為Tmax·將當前
進化代數置為t = 1 ;
(2) 在解空間中初始化粒子的速度和位置;
(3) 將種群按照比例系數ρ劃分為兩個子種
群;
(4) 按式(3) 更新慣性權重w , 按式(7) 更新
比例系數ρ, 第一個子種群按式(1) 和(2) 更新粒
子速度和位置,第二個子種群按式(4) 和(5) 更新
子種群中的粒子,從而產生新種群Xt ;
(5) 評價種群Xt·將第i 個粒子當前點適應
值與該粒子迄今找到的最優位置pi (最差位置
si) 的適應值進行比較, 若更優(差) , 則更新pi
( si) ,否則保持pi ( si) 不變,再與種群迄今找到的
最優位置pg (最差位置sg) 的適應值進行比較,若
更優(差) ,則更新pg ( sg) ;否則保持pg ( sg) 不變;
(6) 檢查是否滿足尋優結束條件, 若滿足則
結束尋優, 求出最優解; 否則, 置t = t + 1 , 轉至
(3) ;結束條件為尋優達到最大進化代數Tmax·
2. 4 基於動態雙種群粒子群優化演算法的工序排序
2. 4. 1 粒子的編碼和解碼
根據第1 節對柔性工作車間調度問題的描
述,本文定義所有工件的總工序數L = 6n
j =1
nj ,把
一個粒子表示為一個L 維的向量·對所有工序進
行連續編號,即為每道工序指定一個固定的編號·
例如可以對表1 所給出的例子中的工序進行編
號,如表2 所示,則粒子的位置向量x [ L ]就是由
一組連續的自然數組成的L 維的向量,自然數的
順序決定了工序調度的順序·xi = [1 ,7 ,2 ,4 ,8 ,3 ,
5 ,6 ]就表示了一個滿足優先約束的可行的工序排
序·
表2 工序編號
Table 2 Serial numbers of operations
工序O1 ,1 O2 ,1 O3 ,1 O1 ,2 O2 ,2 O3 ,2 O1 ,3 O2 ,3
編號1 2 3 4 5 6 7 8
2. 4. 2 位置向量和速度向量的更新
對每個粒子, 粒子的速度向量可以用v [ L ]
表示·按照上面所述的更新公式對x [ L ] , v [ L ]
進行更新·由於粒子群優化演算法經常用在連續空
間上,而柔性工作車間調度問題為整數規劃問題
而且有工序先後順序約束,所以將粒子群演算法用
於柔性工作車間調度問題時,在速度和位置更新
方式上要做如下的修改:令粒子i 的當前的位置
為xi = [1 , 7 , 2 , 4 , 8 , 3 , 5 , 6 ] , 在經過一次迭代以
後位置向量變為xi = [ 2. 5 , 6. 7 , 3. 6 , 5. 9 , 8. 5 ,
112 ,4. 1 ,7. 6 ]·位置向量里存放的是工序的編號,
很明顯不能為小數, 本文對迭代後的位置向量進
行如下的處理:將更新後的位置向量中各分量的
值按照由小到大的順序進行排列, 並為其進行重
新編號:1. 2 (1) < 2. 5 (2) < 3. 6 (3) < 4. 1 (4) < 5. 9
(5) < 6. 7 (6) < 7. 6 (7) < 8. 5 (8) ,式中括弧內的數
字為該分量的編號, 然後位置向量中各分量用其
獲得的相應的編號代替·例如,第一個分量2. 5 用
編號2 代替,第二個分量6. 7 用編號6 代替等等,
此時位置向量變為xi = [2 , 6 , 3 , 5 , 8 , 1 , 4 , 7 ]·但
是這個工序排序不滿足優先約束,還要對其進行
調整,使其滿足約束條件·例如第一個分量2 代表
的是工序O21 ,第6 個分量1 代表的是工序O11 ,
工序O21應在工序O11之後進行加工, 所以要對
其進行調整·調整的方法為:對屬於同一個工件的
工序調換其相應先後位置使其滿足約束, 對每個
工件都做相似的處理, 則可以得到滿足優先順序約
束的位置向量: xi = [1 ,4 ,2 ,5 ,7 ,3 ,6 ,8 ]·
3 啟發式分配演算法
通過上一節介紹的排序演算法本文可以獲得一
個滿足工序優先約束的可行的工序序列·這一節
通過一個啟發式演算法為這一工序序列中的每一工
序分配一台合適的機器對其進行加工·
本文所採用的分配演算法的主要思想是:選擇
一台能使本道工序獲得最小完工時間的機器分配
給待加工的工序·可以用如下公式表示選擇機器
Mk 分配給待加工的工序以使本道工序的完工時
間最短:
tf i , j = min k ( ri , j + Ti , j , k) ,
ri , j = max ( rpfk , ropf) ·
式中, tf i , j 為工序Oi , j 的完工時間; ri , j 為工序的
開始加工時間; Ti , j , k為工序用機器k 加工消耗的
時間; rpfk為機器Mk 當前狀態下所加工的最後一
個工件的完工時間; ropf為待加工工序緊前工序的
完工時間·
利用排序演算法和分配演算法就可以獲得一個滿
足優先約束和資源約束的可行的調度方案, 並且
利用分配演算法還可以得到目標函數———全部工件
的最大完工時間的值·
將前面介紹的排序演算法和分配演算法綜合起來
便形成本文所採用的處理柔性工作車間調度優化
問題的方法,記為DPSO2HA·該方法將柔性工作
車間調度問題分解為兩個子問題———排序問題和
分配問題,在每一次迭代中首先通過動態雙種群
粒子群演算法獲得一個可行的工序序列, 然後利用
分配演算法給該序列分配合適的機器並計算目標函
數值,直至達到最大進化代數·
4 算例模擬
4. 1 模擬研究1
本文選用文獻[ 7 ]中的一個10 ×10 (10 個工
件,10 台機器) ,30 道工序的柔性工作車間調度問
題來計算最大完工時間·實驗參數如下:粒子群的
種群規模為m = 30 , c1 = c2 = 2 ,ρmax = 015 ,ρmin =
0 ,每隔5 代重新劃分種群,最大迭代次數Tmax =
150·
實驗中採用本文所提出的演算法運行10 次,和
傳統的GA 方法、文獻[8 ]中採用的MSA 演算法相
比較,比較結果如表3 所示·
表3 實驗結果比較
Table 3 Comparison of te sting re sults
方 法最優值平均值標准偏差
GA 8 11. 5 2. 67
MSA 7 7. 9 0. 97
DPSO2HA 7 7. 1 0. 32
從表3 中可以看出DPSO2HA 求得的平均值
和標准偏差都明顯優於GA 和VEGA , 這說明
DPSO2HA 的精度與穩定性明顯優於GA 和
VEGA 演算法·實驗中所獲得的一個較優的調度方
案的甘特圖如圖1 所示·圖中方框內的數字「i . j」
表示第j 個工件的第i 道工序·,
(不好意思,圖粘貼不下來,要不你告我郵箱)
圖1 柔性工作車間調度優化結果
Fig. 1 Optimization solution to the problem
10 ×10 with 30 operations
4. 2 模擬研究2
為了進一步對本文提出的演算法的性能加以驗
證,選用文獻[ 9 ]中所給出的實驗數據,利用本文
提出的演算法進行求解,並將調度結果與文獻[ 9 ]及
文獻[ 10 ]中所提演算法的調度結果加以比較·比較
結果如表4 所示·
表4 不同方法的調度結果比較
Table 4 Comparison of different scheling re sults
算例描述Brandimarte GENACE DPSO2HA
MK1 10 ×6 42 41 40
MK2 10 ×6 32 29 28
MK4 15 ×8 81 67 61
MK5 15 ×4 186 176 173
MK6 10 ×15 86 68 62
MK7 20 ×5 157 148 141
MK8 20 ×10 523 523 523
MK9 20 ×10 369 328 307
MK10 20 ×15 296 231 207
由上述的比較結果可以看出,本文所提出的
DPSO2HA 方法對上述算例的求解結果較另外兩
種方法有了較大的提高·
5 結 論
本文提出了一種動態雙種群粒子群優化演算法
(DPSO) ·DPSO 將種群劃分成兩個種群規模隨進
化過程不斷變化的子種群,兩個子種群分別採用
不同的學習策略進行進化,並在進化過程中相互
交換信息·該演算法在保持PSO 演算法高效簡單的基
礎上提高了全局尋優能力·將以DPSO 演算法為基
礎的排序演算法和啟發式分配演算法相結合形成了解
決柔性工作車間調度問題的新方法·通過對算例
的研究和與其他方法的比較表明,該方法是有效
可行的·
參考文獻:
[ 1 ] Carlier J , Pinson E. An algorithm for solving the job2shop
problem[J ] . Management Science , 1989 ,35 (2) :164 - 176.
[ 2 ] Reynolds R G. An introction to cultural algorithms[ C] ‖
Proceedings of the Third Annual Conference on Evolutionary
Programming. River Edge : World Scientific , 1994 : 131 -
139.
[ 3 ] Mastrolilli M , Gambardella L M. Effective neighborhood
functions for the flexible job shop problem[ J ] . Journal of
Scheling , 2002 ,3 (1) :3 - 20.
[ 4 ] Kacem I , Hammadi S , Borne P. Pareto2optimality approach
for flexible job2shop scheling problems : hybridization of
evolutionary algorithms and fuzzy logic[J ] . Mathematics and
Computers in Simulation , 2002 ,60 (3) :245 - 276.
[ 5 ] Kennedy J , Eberhart R. Particle swarm optimization [ C] ‖
Proceedings of IEEE International Conference on Neural
Networks. Perth : IEEE Press , 1995 :1942 - 1948.
[ 6 ] Shi Y, Eberhart R C. Empirical study of particle swarm
optimization [ C ] ‖Proceedings of the 1999 Congress on
Evolutionary Computation. Washington , 1999 : 1945 -
1950.
[ 7 ] Xia WJ , Wu Z M. An effective hybrid optimization approach
for multi2objective flexible job2shop scheling problems[J ] .
Computers & Inst rial Engineering , 2005 ,48 (2) :409 -
425.
[ 8 ] Najid N M , Stephane D P , Zaidat A. A modified simulated
annealing method for flexible job shop scheling problem[C]
‖Proceedings of the IEEE International Conference on
Systems , Man and Cybernetics. Hammamet : IEEE Press ,
2002 :89 - 94.
[ 9 ] Brandimarte P. Routing and scheling in a flexible job shop
by tabu search[J ] . A nnals of Operations Research , 1993 ,41
(3) :158 - 183.
[ 10 ] Ho N B , Tay J C. GENACE: an efficient cultural algorithm
for solving the flexible job2shop problem[C] ‖Proceedings of
the IEEE Congress on Evolutionary Computation. Portland :
IEEE Press , 2004 :1759 - 1766.
(do you know)
3. 遺傳演算法-總結
最近在做遺傳演算法的項目,簡單記錄一下。
遺傳演算法是模擬自然界生物進化機制的一種演算法,在尋優過程中有用的保留無用的去除。包括3個基本的遺傳運算元:選擇(selection)、交叉(crossover)和變異(mutation)。遺傳操作的效果與上述3個遺傳運算元所取的操作概率、編碼方法、群體大小、初始群體,以及適應度函數的設定密切相關。
1、種群初始化
popsize 種群大小,一般為20-100,太小會降低群體的多樣性,導致早熟;較大會影響運行效率;迭代次數一般100-500;交叉概率:0.4-0.99,太小會破壞群體的優良模式;變異概率:0.001-0.1,太大搜索趨於隨機。編碼包括實數編碼和二進制編碼,可以參考遺傳演算法的幾個經典問題,TSP、背包問題、車間調度問題。
2、選擇
目的是把優化個體直接遺傳到下一代或通過配對交叉產生新的個體再遺傳到下一代,我大部分採用了輪盤賭的方法。具體可參考 http://my.oschina.net/u/1412321/blog/192454 輪盤賭方法各個個體的選擇概率和其適應值成比例,個體適應值越大,被選擇的概率也越高,反之亦然。在實際問題中,經常需要最小值作為最優解,有以下幾種方法進行轉換
a、0-1之間的數據,可以用1-該數值,則最小值與最大值互換;
b、 求倒數;
c、求相反數;
以上幾種方法均可以將最大值變為最小值,最小值變為最大值,便於利用輪盤賭選擇最優個體,根據實際情況來確定。
3、交叉
交叉即將兩個父代個體的部分結構加以替換重組而生成新個體的操作,通過交叉,遺傳演算法的搜索能力得以飛躍提高。根據編碼方法的不同,可以有以下的演算法:
a、實值重組
離散重組、中間重組、線性重組、擴展線性重組
b、二進制交叉
單點交叉、多點交叉、均勻交叉、洗牌交叉、縮小代理交叉
4、變異
基本步驟:對群中所有個體以事先設定的變異概率判斷是否進行變異;對進行變異的個體隨機選擇變異位進行變異。根據編碼表示方法的不同,有實值變異和二進制變異
變異的目的:
a、使遺傳演算法具有局部的隨機搜索能力。當遺傳演算法通過交叉運算元已接近最優解鄰域時,利用變異運算元的這種局部搜索能力可以加速向最優解收斂。顯然該情況下變異概率應取較小值,否則接近最優解的積木塊會因為變異遭到破壞。
b、使遺傳演算法可維持多樣性,以防止未成熟收斂現象。此時收斂概率應取較大值。
變異概率一般取0.001-0.1。
5、終止條件
當最優個體的適應度達到給定的閾值,或者最優個體的適應度和群體適應度不再上升時,或者迭代次數達到預設的代數時,演算法終止。預設代數一般為100-500。
6、其它
多變數:將多個變數依次連接
多目標:一種方法是轉化為單目標,例如按大小進行排序,根據排序和進行選擇,可以參考 https://blog.csdn.net/paulfeng20171114/article/details/82454310