91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

ACO實現(xiàn)0-1背包問題,算法簡單易懂且有實驗報告。

資源截圖

代碼片段和文件信息

#include?“iostream“
#include?
#include?
#include?

using?namespace?std;

#define?M?8//螞蟻數(shù)
#define?P?0.2//信息素揮發(fā)率
#define?MAX?70
int?BRoute[MAX];//最優(yōu)解
int?BValue=0;//最優(yōu)解的總價值
int?BWeight;//最優(yōu)解的總重量
int?max_circle=500;//外循環(huán)最大次數(shù)
int?antRoute[9][MAX];
int?antValue[9];
void?main(){
int?n;//物品個數(shù)
int?w_limit;//背包重量限制
int?value[MAX];//各物品價值
int?weight[MAX];//各物品重量
????float?inf[MAX][MAX];//信息素矩陣
int?ij;



//?**************?讀數(shù)據?*************************//
string?filestring;
cout<<“請輸入測試文件名:?“;
cin>>filestring;

ifstream?inFile(filestring.c_str());
//報告錯誤
if(!inFile)
{
cerr<<“不能打開測試文件:“< exit(-1);
}
????
inFile>>n;
inFile>>w_limit;

value[0]=0;
????weight[0]=0;
for?(i=1;?i<=n;?i++)
{
inFile?>>?weight[i];??
}
for?(i=1;?i<=n;?i++)
{
inFile?>>?value[i];?

}

//*************************?信息素矩陣初始化?********************//

for(i=0;i<=n;i++)
inf[i][0]=0;
for(i=0;i<=n;i++){
for(j=1;j<=n;j++){
inf[i][j]=1;
}
}


//************************?數(shù)據輸出?****************************//
cout<<“物品總數(shù)為:“< cout<<“背包重量限制為:“<
cout<<“各物品重量分別為:“<??? for(i=0;i<=n;i++)
cout< cout<
cout<<“各物品價值分別為:“<????for(i=0;i<=n;i++)
cout< cout</*
cout<<“信息素矩陣初始化為:“<????for(i=0;i<=n;i++){
for(j=0;j<=n;j++){
cout< }
cout< }
*/


srand((int)time(0));?//初始化隨機種子
bool?mark[MAX];
int?no_modify=0;
for(int?k=1;k<=max_circle?&&?no_modify<100?;k++){//外循環(huán)
// for(int?k=1;k<=max_circle??;k++){//外循環(huán)
for(i=1;i<=M;i++){
antRoute[i][0]=0;
int?Cur_n=0;?//已選取物品個數(shù)
int?Cur_w=0;?//已選取物品總重量
int?Cur_v=0;?//已選取物品總價值
int?Cur_ps=0;?//記錄當前選取物品的標號
????for(j=1;j<=n;j++)
mark[j]=false;?//作為物品是否選取的標志
bool?finish=false;?
??? int?ok[MAX];?
while(finish==false){
if(Cur_n==n){
antRoute[i][++Cur_n]=0;
antValue[i]=Cur_v;
finish=true;

}
else{
int?ok_n=0;
for(j=1;j<=n;j++){
if(mark[j]==false?&&(Cur_w+weight[j])<=w_limit){
ok[ok_n++]=j;?//該數(shù)組用于存儲滿足條件的物品的標號
}
}
if(ok_n==0){?//無滿足條件的物品
antRoute[i][++Cur_n]=0;
antValue[i]=Cur_v;
finish=true;
}
else{
//有滿足條件的物品:按信息素來進行隨機選取
float?total=0;
float?rate[MAX];

for(j=0;j float?total=total+inf[Cur_ps][ok[j]];
}
for(j=0;j rate[j]=(inf[Cur_ps][ok[j]]/total);

bool?choose=false;
while(choose==false){
double?r=(double)(rand()?%?1001)?*?0.001f;
int?u=(int)(rand()%ok_n);
if(rate[u]>r){
antRoute[i][++Cur_n]=ok[u];
Cur_ps=ok[u];
Cur_w+=weight[ok[u]];
Cur_v+=value[ok[u]];
mark[ok[u]]=true;
choose=true;
break;

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????4381??2008-07-10?16:12??ACO解01背包問題\ACO解01背包問題.dsp

?????文件????????555??2008-07-10?15:32??ACO解01背包問題\ACO解01背包問題.dsw

?????文件??????50176??2008-07-11?18:59??ACO解01背包問題\ACO解01背包問題.ncb

?????文件??????48640??2008-07-11?18:59??ACO解01背包問題\ACO解01背包問題.opt

?????文件????????923??2008-07-11?18:43??ACO解01背包問題\ACO解01背包問題.plg

?????文件?????553044??2008-07-11?18:43??ACO解01背包問題\Debug\ACO解01背包問題.exe

?????文件?????817036??2008-07-11?18:43??ACO解01背包問題\Debug\ACO解01背包問題.ilk

?????文件????1147904??2008-07-11?18:43??ACO解01背包問題\Debug\ACO解01背包問題.pdb

?????文件?????352329??2008-07-11?18:43??ACO解01背包問題\Debug\main.obj

?????文件?????123904??2008-07-11?18:47??ACO解01背包問題\Debug\vc60.idb

?????文件?????110592??2008-07-11?18:43??ACO解01背包問題\Debug\vc60.pdb

?????文件???????4612??2008-07-11?18:43??ACO解01背包問題\main.cpp

?????文件????????122??2008-07-11?14:35??ACO解01背包問題\readme.txt

?????文件?????????65??2008-07-09?21:10??ACO解01背包問題\test1.txt

?????文件????????126??2008-07-09?21:10??ACO解01背包問題\test2.txt

?????文件?????????18??2008-07-11?14:29??ACO解01背包問題\test3.txt

?????文件?????????27??2008-07-11?14:30??ACO解01背包問題\test4.txt

?????文件?????????27??2008-07-11?14:34??ACO解01背包問題\test5.txt

?????文件?????157696??2011-01-19?20:29??ACO解01背包問題\蟻群算法實現(xiàn)0.doc

?????目錄??????????0??2011-01-19?20:27??ACO解01背包問題\Debug

?????目錄??????????0??2011-01-19?20:29??ACO解01背包問題

-----------?---------??----------?-----??----

??????????????3372177????????????????????21


評論

共有 條評論