资源简介
研一时候上智能优化算法课程,因为论文需要,通过遗传算法的代码自己改写的。通过插桩的方式,自动生成分支覆盖的测试用例,用来判断三角形的类型。
代码片段和文件信息
#include
#include
#include
#include
/* Change any of these parameters to match your needs */
#define POPSIZE 500 /* 种群大小 */
#define MAXGENS 15
/* 最多生成的代数 */
#define NVARS 3 /* 变量的个数 */
#define PXOVER 0.8 /* 交叉的概率 */
#define PMUTATION 0.15 /* 突变的概率 */
#define TRUE 1
#define FALSE 0
#define branch_no 5/* 分支个数 */
int generation; /* 当前的代数 */
int cur_best; /* 最佳的个体 */
int all_branchfit[branch_no]; /*整个种群的分支覆盖情况*/
int randint = 0;
FILE *galog; /* an output file */
/* genotype (GT) a member of the population */
struct genotype
{
double gene[NVARS]; /* a string of variables */
int branchfit[branch_no]; /* 分支覆盖情况 */
double fitness; /* GT‘s fitness */
double rfitness; /* relative fitness */
double cfitness; /* cumulative fitness */
};
struct genotype population[POPSIZE+1]; /* population */
struct genotype newpopulation[POPSIZE+1]; /* new population; */
/************被测程序***********/
void testedPro(double adouble bdouble cint* fi)
{
if(a<=0 || b<=0 || c<=0)
{
//printf(“边值无效!\n“);
fi[0] = 1;
}
else if(a+b<=c||a+c<=b||b+c<=a)
{
//printf(“不能构成三角形!\n“);
fi[1] = 1;
}
else
{
if(a==c||a==b||b==c)
{
if(a==c&&a==b)
{
//printf(“等边三角形!\n“);
fi[2] = 1;
}
else
{
//printf(“等腰三角形!\n“);
fi[3] = 1;
}
}
else
{
//printf(“斜三角形!\n“);
fi[4] = 1;
}
}
}
/***********************************************************/
/* Random value generator: Generates a value within bounds */
/***********************************************************/
double randval(void)
{
double val;
randint++;
val = (double)(rand()%100-10);
return(val);
}
//种群初始化
void initialize(void)
{
int i j z;
/* initialize variables within the bounds */
srand((unsigned)time(NULL));
for (i = 0; i < NVARS; i++)
{
for (j = 0; j < POPSIZE; j++)
{
population[j].fitness = 0;
population[j].rfitness = 0;
population[j].cfitness = 0;
population[j].gene[i] = randval();
for(z = 0; z < branch_no; z++)
population[j].branchfit[z] = 0;
}
}
}
/*************************************************************/
/* Evaluation function: This takes a user defined function. */
/* Each time this is changed the code has to be recompiled. */
/* The current function is: */
/*************************************************************/
void evaluate(void)
{
int membno;
for (mem = 0; mem < POPSIZE; mem++)
{
testedPro(population[mem].gene[0]population[mem].gene[1]population[mem].gene[2]population[mem].branchfit);
}
for(bno = 0;bno < branch_no;bno++)
{
for (mem = 0; mem < POPSIZE; mem++)
{
all_branchfit[bno] +=population[mem].branchfit[bno];
}
}
for (mem = 0; mem < POPSIZE; mem++)
{
for(bno = 0;bno < branch_no;bno++)
{
if(all_branchfit[bno] != 0)
population[mem].fitness += population[mem].branchfit[bno]/doubl
- 上一篇:multisum10.0的教程
- 下一篇:易语言软件加注册机例程
相关资源
- 遗传算法优化bp神经网络.zip
- 回溯法、遗传算法、CSP最小冲突法解
- 遗传算法代码
- PSO-GA-RBF
- 遗传算法目标函数真实ZDT(1-6)DTLZ(
- 遗传算法路径搜索代码
- 遗传算法解决车辆路径问题VRP
- 基于遗传算法的排课系统实现
- 遗传算法深度解析教程
- 基于遗传算法B样条曲线优化在机器人
- 遗传算法优化神经网络BP)进行预测
- 遗传算法波段选择
- 计算机专业人工智能遗传算法实验报
- 基于遗传算法的电力系统无功优化程
- GA-PLS 遗传算法部分最小二乘
- 遗传算法——最短路径问题
- 作业遗传算法解决Max f (x1 x2) =
- 基于遗传算法更新BP神经网络的权值以
- 模拟退火遗传算法 源程序
- 运输问题的遗传算法解答
- 基于遗传算法的摄像机自标定
- 基于遗传算法的改进FCM算法GA-FCM
- 遗传算法优化RBF神经网络
- 遗传算法进行机器人路径规划代码
- 遗传算法-偏最小二乘回归
- 遗传算法-粒子群优化算法
- 利用遗传算法解决电力系统最优潮流
- 运用遗传算法解决tsp问题
- 用混合遗传算法求解物流配送路径:
- 柔性作业车间调度遗传算法代码
评论
共有 条评论