#include<iostream.h>
#include<stdlib.h>
#include <fstream.h>
#include<time.h>
#include<math.h>
typedef struct
{
int weight;
int value;
}item;
double Random()
{
return (double)rand()/RAND_MAX;
}
int Randomi(int i,int j)
{
return i+rand()%(j-i+1);
}
int GetCi(int *current,int n,item *collection)//计算当前物品列表总价值
{
int result=0;
int i;
for(i=0;i<n;i++)
result+=collection[current[i]-1].value;
return result;
}
int GetAi(int *current,int n,item *collection)//计算当前物品列表总重量
{
int result=0;
int i;
for(i=0;i<n;i++)
result+=collection[current[i]-1].weight;
return result;
}
void ACO_BAG(int B,item *collection,int n,double *info_table)
{
//**************初始化********************************
int i;
int m=n;//蚂蚁个数
double p=0.1;//信息素挥发参数
int **current=new int*[m];//m个蚂蚁装包过程
int *len=new int[m];//m个蚂蚁所装的物品数量
for(i=0;i<m;i++)
len[i
蚁群算法求解0/1背包,注意学习二维动态数组的初始化方法
最新推荐文章于 2023-09-10 01:08:30 发布