##遺傳算法實現二次離散系統優化
1.編寫適應度函數如下:
function y = fitness(u)
[rows,cols] = size(u);
x = 100*ones(rows,cols+1);
sum = 0;
for k=1:1:cols
x(k+1) = x(k) + u(k);
end
for k=2:1:cols
sum = sum + x(k)^2 + u(k)^2;
end
y = sum + x(cols+1)^2;
2.使用matlab Optimization Tool工具箱選擇ga(遺傳算法求解器)
3.導入自己的之前編寫的fitness函數,同時輸入待優化的變量數目和上下界,如圖所示
4.點擊開始訓練,同時可以在options中設置自己的一些參數,和觀察優化過程中適應度值的變化曲線。
5.訓練完成後,可以把訓練的優化的結果導入matlab工作空間中,此時可以觀察到最後的結果集,如圖所示
選擇導出到workspace空間:
選擇導出的結果集,這裏全部導出:
可以看到此時matlab workspace空間中存在的變量,可以點進去看看,裏面存放了很多訓練最後的結果和GA的參數設置:
此時,可以調用變量進行繪製: