資源簡介
可自定義皇后數量,采用遺傳算法求解,已經vs編譯通過,可運行
代碼片段和文件信息
#include?
#include?
#include?
#define?Simple 0
#define?Multi 1
//?分別定義單親與普通雙親情況下子代無條件保留的臨界值,避免種群早熟而無法收斂的情況
#define?Critical?1e-2
#define?M_Critical?1e-3
#define?debug
#define?MAX_QUEENS?1000 //?定義最大皇后數為?1000
int?n?;
int?goal?; //?種群進化的目標,達到目標即返回程序
clock_t?start?end?; //?用以計算程序耗費的時間來比較算法優劣
time_t start_time?end_time?;
//?定義種群
typedef?struct?{
int?queen[MAX_QUEENS]?;?//?queen序列保純個體的??DNA?值
int?unitFitness ;???????//?unitFitness?當前個體的?適應度
int?eachFitness[MAX_QUEENS]?;//?eachFitness?個體中每個?DNA?的適應度
}?Population?;?
Population?s_population?m_population[10?+?MAX_QUEENS?/?10]?;
int?m_size?;
int?m_totFitness?;????//?輪盤賭局式選擇的時候計算群體適應度
//?用當前時間初始化隨機種子
//?讀入
void?init?()
{
srand?(time(0))?;
scanf?(“%d“?&n)?;
goal?=?n?*?(n?-?1)?;
m_size?=?30?+?n?/?10?;
}
//?為種群的qsort排序函數提供比較接口
int?compare(const?void?*aconst?void?*b)
{
??return?((Population?*)b)->unitFitness?-?((Population?*)a)->unitFitness;
}??
//?定義?p-
- 上一篇:舞蹈機器人 源程序
- 下一篇:合肥科大訊飛公司各類面試題
評論
共有 條評論