/* 本程式試用遺傳演算法來解決rosenbrock函式的全域性最大值計算問題:
max f(x1,x2) = 100 (x1^2-x2)^2 + (1-x1)^2
-2.048 ≤ xi ≤ 2.048i=1,2)*/
#include
#include<>
#include <>
#include
using namespace std;
const int m=8,t=2m 群體大小,pc 交叉概率,pm 變異概率,t 終止代數
const double pc=0.6,pm=0.01;
struct population定義群體結構
p[m];
void initial(population初始化函式
void evaluefitness(population計算適應度
void select(population選擇複製函式
void crossover(population交叉函式
void mutation(population變異函式
void decoding(population解碼函式
void print(population顯示函式
int main遺傳演算法主函式
decoding(&p[0]);
evaluefitness(&p[0]);
cout<<"最後得出的滿意解為:"< for(int i=0;i cout<<"x1:" }初始化函式 int rand01用於隨機取0或1的函式 void initial(population *t) //群體初始化函式 計算適應值函式 void evaluefitness(population *t計算適應值函式 for(po=t;po }選擇複製函式 double randab(double a,double b在區間(a,b)內生成乙個隨機數 void select(population *t選擇運算元函式 else continue; } i++; } for(i=0;i for(int j=0;j<20;j++) p[i].x[j]=pt[i].x[j]; }交叉函式 void crossover(population *t交叉運算元函式 } else continue; }} 變異函式 void mutation(population *t) //變異運算元函式 }} 解碼函式 void decoding(population *t解碼函式 {population *po; int temp,s1=0,s2=0; 07計本張雷 070701010116 遺傳演算法是由美國的j.holland教授於1975年在他的專著 自然界和人工系統的適應性 中首先提出的,它是一類借鑑生物界自然選擇和自然遺傳機制的隨機化搜尋演算法 遺傳演算法模擬自然選擇和自然遺傳過程中發生的繁殖 交叉和基因突變現象,在每次迭代中都保留一組候... 窮舉法列舉所有可能,然後乙個個去,得到最優的結果。如圖一,需要從a點一直走到g點,才能知道,f是最高的 最優解 這種演算法得到的最優解肯定是最好的,但也是效率最低的。窮舉法雖然能得到最好的最優解,但效率是極其低下的。為了能提高效率,可以不要列舉所有的結果,只列舉結果集中的一部分,如果某個解在這部分解... 摘要 針對模具生產典型的離散生產過程,對模具生產的工藝過程和工件的特徵進行了研究。結合企業的生產特點,從通用類模具生產例項入手,建立了生產單元分配方法,利用遺傳演算法的強魯棒性,提出了一種實用的生產排程演算法,並進行了詳細的演算法設計與計算。關鍵詞 遺傳演算法 模具 車間作業排程 the desig...遺傳演算法原理及應用
蟻群演算法 遺傳演算法 模擬退火演算法介紹
基於遺傳演算法的模具企業車間作業排程演算法設計研究