之前介紹過遺傳算法,參見:https://www.cnblogs.com/LoganChen/p/7509702.html
我們用Python實現(xiàn)同樣的問題解答。
y=10*sin(5*x)+7*abs(x-5)+10
我們來求這個函數(shù)在0-10之間的最大值。
先來看一下這個函數(shù)的圖像:
import
numpy as np
import
matplotlib.pyplot as plt
"""
**Colors**
The following color abbreviations are supported:
============= ===============================
character color
============= ===============================
``'b'`` blue
``'g'`` green
``'r'`` red
``'c'`` cyan
``'m'`` magenta
``'y'`` yellow
``'k'`` black
``'w'`` white
============= ===============================
If the color is the only part of the format string, you can
additionally use any `matplotlib.colors` spec, e.g. full names
(``'green'``) or hex strings (``'#008000'``).
**Markers**
============= ===============================
character description
============= ===============================
``'.'`` point marker
``','`` pixel marker
``'o'`` circle marker
``'v'`` triangle_down marker
``'^'`` triangle_up marker
``'<'`` triangle_left marker
``'>'`` triangle_right marker
``'1'`` tri_down marker
``'2'`` tri_up marker
``'3'`` tri_left marker
``'4'`` tri_right marker
``'s'`` square marker
``'p'`` pentagon marker
``'*'`` star marker
``'h'`` hexagon1 marker
``'H'`` hexagon2 marker
``'+'`` plus marker
``'x'`` x marker
``'D'`` diamond marker
``'d'`` thin_diamond marker
``'|'`` vline marker
``'_'`` hline marker
============= ===============================
**Line Styles**
============= ===============================
character description
============= ===============================
``'-'`` solid line style
``'--'`` dashed line style
``'-.'`` dash-dot line style
``':'`` dotted line style
============= ===============================
"""
x
= np.arange(0,10,0.05
)
y
= 10*np.sin(5*x)+7*np.abs(x-5)+10
plt.figure(figsize
=(8,4
))
plt.plot(x,y,color
=
"
green
"
,linestyle=
'
dashed
'
,linewidth=1
)
#
plt.plot(x, y, color='green', marker='o', linestyle='dashed',linewidth=2, markersize=12)
plt.xlabel(
"
x
"
)
plt.ylabel(
"
y
"
)
plt.ylim(0,
56
)
#
plt.title("y=10*sin(5*x)+7*abd(x-5)+10")
plt.title(
"
$y=10*sin(5*x)+7*abs(x-5)+10$
"
)
plt.show()
函數(shù)圖像如圖:
我們對種群進行編碼,我們也使用二進制編碼,二進制編碼長度為10.
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

