#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;
for(i=0;i<m;i++)
{
current[i]=new int[n];
}
int *elitist=new int[n];//
蚁群算法求解0/1背包,注意学习二维动态数组的初始化方法
最新推荐文章于 2023-09-10 01:08:30 发布
本文通过蚁群算法实现求解0/1背包问题,重点介绍二维动态数组的初始化方法。程序中定义了蚂蚁个体的路径选择、信息素挥发及更新策略,并展示最优解的输出。

最低0.47元/天 解锁文章
736





