之前介紹過遺傳算法,參見: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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
