導航:首頁 > 源碼編譯 > ga遺傳演算法

ga遺傳演算法

發布時間:2022-02-10 09:18:01

㈠ 求遺傳演算法(GA)C語言代碼

.----來個例子,大家好理解..--
基於遺傳演算法的人工生命模擬
#include<stdio.h>
#include<stdlib.h>
#include<graphics.h>
#include<math.h>
#include<time.h>
#include<string.h>
#include "graph.c"
/* 宏定義 */
#define TL1 20 /* 植物性食物限制時間 */
#define TL2 5 /* 動物性食物限制時間 */
#define NEWFOODS 3 /* 植物性食物每代生成數目 */
#define MUTATION 0.05 /* 變異概率 */
#define G_LENGTH 32 /* 個體染色體長度 */
#define MAX_POP 100 /* 個體總數的最大值 */
#define MAX_FOOD 100 /* 食物總數的最大值 */
#define MAX_WX 60 /* 虛擬環境的長度最大值 */
#define MAX_WY 32 /* 虛擬環境的寬度最大值 */
#define SX1 330 /* 虛擬環境圖左上角點x坐標 */
#define SY1 40 /* 虛擬環境圖左上角點y坐標 */
#define GX 360 /* 個體數進化圖形窗口的左上角點X坐標 */
#define GY 257 /* 個體數進化圖形窗口的左上角點Y坐標 */
#define GXR 250 /* 個體數進化圖形窗口的長度 */
#define GYR 100 /* 個體數進化圖形窗口的寬度 */
#define GSTEP 2 /* 個體數進化圖形窗口的X方向步長 */
#define R_LIFE 0.05 /* 初期產生生物數的環境比率 */
#define R_FOOD 0.02 /* 初期產生食物數的環境比率 */
#define SL_MIN 10 /* 個體壽命最小值 */
/* 全局變數 */
unsigned char gene[MAX_POP][G_LENGTH]; /* 遺傳基因 */
unsigned char iflg[MAX_POP]; /* 個體死活狀態標志變數 */

㈡ matlab中遺傳演算法ga(fitnessfcn,nvars,A,b,Aeq,beq)的目標函數內中變數的大小和參數是可變的怎麼實現

真巧,我在用遺傳演算法優化。GA是一個封裝文件,調用的話只需要在工作空間打上相應的參數就行了。例如[xv,fv]=ga(@fitness,0,30,50,100,0.9,0.04,0.01)回車即可運算。其中fitness是調用的另一個M文件函數

㈢ MATLAB用遺傳演算法ga求最大值中的最小值

MATLAB用遺傳演算法ga求含有最大值的最小值問題,可以這樣處理:由於最大值問題的反問題就是最小值問題,所以 max=-min。因此,你的問題就可以改寫為

min ( min -(3*x1+4*x2+...))

㈣ 遺傳演算法(GA)做project

遺傳學演算法解決旅行商問題.
網路上應該有很多的資料。

你是研究生???

旅行商問題就是那個幾個城市,每個城市只走一次,求最短路程的。這種問題用計算機的傳統方法解決就是個NP問題,所以根據這個問題就有很多其他的演算法應運出來。
比如退火,遺傳等等。
其實都是利用迭代,到一個比較穩定的數,就認為是一個較優的解,而未必是最優的解....

你可以搜索下遺傳學演算法,網路上應該不少東西,特別是旅行商的那種經典問題。

㈤ 模擬退火法(SA)和遺傳演算法(GA)的專業解釋

n局部搜索,模擬退火,遺傳演算法,禁忌搜索的形象比喻:

為了找出地球上最高的山,一群有志氣的兔子們開始想辦法。
1.兔子朝著比現在高的地方跳去。他們找到了不遠處的最高山峰。但是這座山不一定是珠穆朗瑪峰。這就是局部搜索,它不能保證局部最優值就是全局最優值。
2.兔子喝醉了。他隨機地跳了很長時間。這期間,它可能走向高處,也可能踏入平地。但是,他漸漸清醒了並朝最高方向跳去。這就是模擬退火。
3.兔子們吃了失憶葯片,並被發射到太空,然後隨機落到了地球上的某些地方。他們不知道自己的使命是什麼。但是,如果你過幾年就殺死一部分海拔低的兔子,多產的兔子們自己就會找到珠穆朗瑪峰。這就是遺傳演算法。
4.兔子們知道一個兔的力量是渺小的。他們互相轉告著,哪裡的山已經找過,並且找過的每一座山他們都留下一隻兔子做記號。他們制定了下一步去哪裡尋找的策略。這就是禁忌搜索。

㈥ 求遺傳演算法(GA)處理離散的整數型變數的程序。

兩種編碼都有,可以自己選擇。 你在MATLAB2008里輸入 gaoptimset 會彈出遺傳演算法的所有的設置選項及默認項。其中,第一行就是個體的編碼方式,第一行如下 PopulationType: [ 'bitstring' | 'custom' | ] 其中,bitstring就是二進制編碼,而'doubleVector'即實數編碼(MATLAB里實數是用double雙精度浮點數表示的,精度很高。大括弧{}表示是默認設置。 而中間的'custom'是表示用戶自己構造個體的編碼形式。

㈦ 遺傳演算法的優缺點

優點:

1、遺傳演算法是以決策變數的編碼作為運算對象,可以直接對集合、序列、矩陣、樹、圖等結構對象進行操作。這樣的方式一方面有助於模擬生物的基因、染色體和遺傳進化的過程,方便遺傳操作運算元的運用。

另一方面也使得遺傳演算法具有廣泛的應用領域,如函數優化、生產調度、自動控制、圖像處理、機器學習、數據挖掘等領域。

2、遺傳演算法直接以目標函數值作為搜索信息。它僅僅使用適應度函數值來度量個體的優良程度,不涉及目標函數值求導求微分的過程。因為在現實中很多目標函數是很難求導的,甚至是不存在導數的,所以這一點也使得遺傳演算法顯示出高度的優越性。

3、遺傳演算法具有群體搜索的特性。它的搜索過程是從一個具有多個個體的初始群體P(0)開始的,一方面可以有效地避免搜索一些不必搜索的點。

另一方面由於傳統的單點搜索方法在對多峰分布的搜索空間進行搜索時很容易陷入局部某個單峰的極值點,而遺傳演算法的群體搜索特性卻可以避免這樣的問題,因而可以體現出遺傳演算法的並行化和較好的全局搜索性。

4、遺傳演算法基於概率規則,而不是確定性規則。這使得搜索更為靈活,參數對其搜索效果的影響也盡可能的小。

5、遺傳演算法具有可擴展性,易於與其他技術混合使用。以上幾點便是遺傳演算法作為優化演算法所具備的優點。

缺點:

1、遺傳演算法在進行編碼時容易出現不規范不準確的問題。

2、由於單一的遺傳演算法編碼不能全面將優化問題的約束表示出來,因此需要考慮對不可行解採用閾值,進而增加了工作量和求解時間。

3、遺傳演算法效率通常低於其他傳統的優化方法。

4、遺傳演算法容易出現過早收斂的問題。

(7)ga遺傳演算法擴展閱讀

遺傳演算法的機理相對復雜,在Matlab中已經由封裝好的工具箱命令,通過調用就能夠十分方便的使用遺傳演算法。

函數ga:[x, fval,reason]= ga(@fitnessfun, nvars, options)x是最優解,fval是最優值,@fitnessness是目標函數,nvars是自變數個數,options是其他屬性設置。系統默認求最小值,所以在求最大值時應在寫函數文檔時加負號。

為了設置options,需要用到下面這個函數:options=gaoptimset('PropertyName1', 'PropertyValue1', 'PropertyName2', 'PropertyValue2','PropertyName3', 'PropertyValue3', ...)通過這個函數就能夠實現對部分遺傳演算法的參數的設置。

㈧ 遺傳演算法 matlab自帶ga函數

c=[246];%c為目標函數系數
fun_1=@(x)dot(c,x');%y為適應度函數值,求兩向量的數量積

A=[10-1;-1-20;-100];%A為AX<=b的系數矩陣
b=[10;-1;0];%b為AX<=b的常數項
Aeq=[011];%AeqX=beq的系數矩陣
beq=12;%AeqX=beq的常數項

[x,y]=ga(fun_1,3,A,b,Aeq,beq)

㈨ 遺傳演算法:matlab中ga函數參數options該怎麼設置

  1. options可以不寫有默認設置。

  2. options是一個結構體要用函數gaoptimset()設置。

  3. options=gaoptimset()然後把options填到ga()裡面。

  4. gaoptimset('屬性名1',數值1,'屬性名2',數值2......)。

常用設置:

閱讀全文

與ga遺傳演算法相關的資料

熱點內容
易學的php框架 瀏覽:380
文件夾擺桌圖片 瀏覽:688
姓名快速檢索演算法 瀏覽:106
主流單片機cpu頻率 瀏覽:869
編程有可能會被納入學科嗎 瀏覽:46
二級抗震柱子要全高加密么 瀏覽:367
絕地求生換伺服器有什麼變化 瀏覽:322
php如何放到伺服器里 瀏覽:245
紅色警戒2安裝加密密碼 瀏覽:152
php集群session 瀏覽:767
sct報價存儲伺服器怎麼選 瀏覽:725
金蝶硬加密怎麼樣 瀏覽:385
linux桌面虛擬化 瀏覽:90
時間動態加密怎麼解密 瀏覽:281
美女玩聲控解壓 瀏覽:368
編程人員組裝電腦 瀏覽:463
燕窩新版溯源碼 瀏覽:78
程序員吃青春飯的好處 瀏覽:664
浙江戴爾伺服器雲空間 瀏覽:332
網站鎖源碼 瀏覽:825