資源簡介
遺傳算法解決0-1背包問題,C++,VS2013

代碼片段和文件信息
#include?“Genetic_Algorithm.h“
int?calculate_total_volume()//計算物品的總容量
{
int?t_volume?=?0;
for?(int?i?=?0;?i? t_volume?+=?volume[i];
return?t_volume;
}
int?calculate_total_value()//計算物品的總價值
{
int?t_value?=?0;
for?(int?i?=?0;?i? t_value?+=?value[i];
return?t_value;
}
void?output_volume()//輸出每一件物品的體積
{
cout?<“每一件物品的體積:“?< for?(int?i?=?0;?i? cout?< cout?<}
void?output_value()//輸出每一件物品的價值
{
cout?<“每一件物品的價值:“?< for?(int?i?=?0;?i? cout?< cout?<}
GA::GA()
{
for?(int?i?=?0;?i? {
for?(int?j?=?0;?j? {
individual[i].chromosome[j]?=?0;
best_individual.chromosome[j]?=?0;
}
individual[i].total_volume?=?0;
individual[i].total_value?=?0;
best_individual.total_volume?=?0;
best_individual.total_value?=?0;
}
for?(int?j?=?0;?j? chr[j]?=?false;
max_value?=?0;
max_volume?=?0;
}
void?GA::initial_population()//產生初始種群
{
for?(int?i?=?0;?i? {
for?(int?j?=?0;?j? {
bool?k?=?(rand()?%?10?5)???0?:?1;//隨機產生0或1
individual[i].chromosome[j]?=?k;//初始化染色體編碼
individual[i].total_volume?+=?k*volume[j];//計算初始種群中每一個個體的體積
individual[i].total_value?+=?k*value[j];//計算初始種群中每一個個體的價值
}
if?(individual[i].total_volume?>?PACK_MAX_V)//如果個體體積超過最大的承受值,重新選擇
{
individual[i].total_volume?=?0;
individual[i].total_value?=?0;
i--;
}
}
for?(int?i?=?0;?i? {
if?(individual[i].total_value?>=?max_value)
{
max_volume?=?individual[i].total_volume;
max_value?=?individual[i].total_value;
best_individual?=?individual[i];
}
}
}
void?GA::calculate_fitness_value()//計算適應值
{
for?(int?i?=?0;?i? {
individual[i].total_volume?=?0;
individual[i].total_value?=?0;
for?(int?j?=?0;?j? {
individual[i].total_volume?+=?individual[i].chromosome[j]?*?volume[j];
individual[i].total_value?+=?individual[i].chromosome[j]?*?value[j];
}
if?(individual[i].total_volume?>?PACK_MAX_V)//如果個體體積超過最大的承受值,用初始最優解取代
{
individual[i]?=?best_individual;
}
}
for?(int?i?=?0;?i? {
for?(int?j?=?0;?j? {
if?(individual[i].total_value?>=?max_value)//更新最優解
{
max_volume?=?individual[i].total_volume;
max_value?=?individual[i].total_value;
best_individual?=?individual[i];//保存當前最優解
chr[j]?=?individual[i].chromosome[j];//記錄當前最優解的初始01序列
}
}
}
return;
}
void?GA::select_operator()//選擇
{
int?sum_of_fitness?=?0;
double?selected[NP];
double?r;
Individual?new_[NP];//新種群
for?(int?i?=?0;?i? sum_of_fitness?+=?individual[i].total_volume;
for?(int?i?=?0;?i? {
selected[i]?=?(double)individual[i].total_volume?/?(double)sum_of_fitness;
}
for?(int?i?=?1;?i? {
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-04-19?20:16??遺傳算法解決0-1背包問題\
?????目錄???????????0??2018-04-15?18:36??遺傳算法解決0-1背包問題\Debug\
?????文件???????73728??2018-04-19?17:22??遺傳算法解決0-1背包問題\Debug\遺傳算法解決0-1背包問題.exe
?????文件?????1101520??2018-04-19?17:22??遺傳算法解決0-1背包問題\Debug\遺傳算法解決0-1背包問題.ilk
?????文件?????1575936??2018-04-19?17:22??遺傳算法解決0-1背包問題\Debug\遺傳算法解決0-1背包問題.pdb
?????目錄???????????0??2018-04-19?17:21??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題\
?????文件?????7471104??2018-04-19?20:16??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題.sdf
?????文件????????1045??2018-04-14?16:07??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題.sln
?????文件???????31744??2018-04-19?20:16??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題.v12.suo
?????目錄???????????0??2018-04-15?18:06??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題txt\
?????文件????????6423??2018-04-15?14:50??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題txt\Genetic_Algorithm_cpp.txt
?????文件????????1194??2018-04-15?14:50??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題txt\Genetic_Algorithm_h.txt
?????文件?????????527??2018-04-15?14:50??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題txt\main.txt
?????文件???????10724??2018-04-15?18:06??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題txt\參考代碼.txt
?????目錄???????????0??2018-04-19?17:22??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題\Debug\
?????文件??????166382??2018-04-19?17:22??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題\Debug\Genetic_Algorithm.obj
?????文件??????155560??2018-04-19?17:04??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題\Debug\main.obj
?????文件??????363520??2018-04-19?17:22??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題\Debug\vc120.idb
?????文件??????356352??2018-04-19?17:22??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題\Debug\vc120.pdb
?????文件????????1720??2018-04-19?17:22??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題\Debug\遺傳算法解決0-1背包問題.log
?????目錄???????????0??2018-04-19?17:22??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題\Debug\遺傳算法解決0-1背包問題.tlog\
?????文件????????1158??2018-04-19?17:22??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題\Debug\遺傳算法解決0-1背包問題.tlog\cl.command.1.tlog
?????文件???????25230??2018-04-19?17:22??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題\Debug\遺傳算法解決0-1背包問題.tlog\CL.read.1.tlog
?????文件????????1642??2018-04-19?17:22??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題\Debug\遺傳算法解決0-1背包問題.tlog\CL.write.1.tlog
?????文件????????1266??2018-04-19?17:22??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題\Debug\遺傳算法解決0-1背包問題.tlog\li
?????文件????????2822??2018-04-19?17:22??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題\Debug\遺傳算法解決0-1背包問題.tlog\li
?????文件?????????558??2018-04-19?17:22??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題\Debug\遺傳算法解決0-1背包問題.tlog\li
?????文件?????????183??2018-04-19?17:22??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題\Debug\遺傳算法解決0-1背包問題.tlog\遺傳算法解決0-1背包問題.lastbuildstate
?????文件????????5103??2018-04-19?17:21??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題\Genetic_Algorithm.cpp
?????文件????????1901??2018-04-19?17:04??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題\Genetic_Algorithm.h
?????文件?????????689??2018-04-15?17:04??遺傳算法解決0-1背包問題\遺傳算法解決0-1背包問題\main.cpp
............此處省略2個文件信息
- 上一篇:C語言課設,學生證管理系統
- 下一篇:C++STL源碼剖析 中文高清非掃描版
評論
共有 條評論