标准遗传算法-c++源程序

news/2024/11/13 0:16:20/

#include〈stdio.h>

#include<stdlib.h>

#include<time.h>

#include<fstream。h〉

#include<windows。h〉

#define POPSIZE 500

#define MAXIMIZATION 1

#define MINIMIZATION 2

#define random(x) (rand()%(x))

#define Cmax 100   /*最大值函数适应度的设置*/

#define Cmin 0     /*最小值函数适应度的设置*/

#define LENGTH1 10

#define LENGTH2 10

#define CHROMLENGTH LENGTH1+LENGTH2

int FunctionMode=MAXIMIZATION;

/*optimization type即函数类型,是求最大值函数还是最小值函数*/

int a=100;

int PopSize=80;

int MaxGeneration=200;

double Pc=0。6;

double Pm=0.001;

struct individual

char chrom[CHROMLENGTH+1];

double value;

  double fitness;

};

int generation;

int best_index;

int worst_index;

struct individual bestindividual;

struct individual worstindividual;

struct individual currentbest;

struct individual population[POPSIZE];

void GenerateInitialPopulation(void);

void GenerateNextPopulation(void);

void EvaluatePopulation(void);

long DecodeChromosome(char *,int,int);

void CaculateObjectValue(void);

void CaculateFitnessValue(void);

void FindBestAndWorstIndividual(void);

void PerformEvolution(void);

void SelectionOperator(void);

void CrossoverOperator(void);

void MutationOperator(void);

void OutputTextReport(void);

void main()

    srand((unsigned)time(NULL));  //随时间而改变随机数

generation=0;

    GenerateInitialPopulation();


http://www.ppmy.cn/news/1545584.html

相关文章

蓝桥杯真题——三角回文数(C语言)

问题描述 对于正整数 n, 如果存在正整数 k 使得 n123⋯kk(k1)2n123⋯kk(k1)/2​, 则 n 称为三角数。例如, 66066 是一个三角数, 因为 66066123⋯36366066123⋯363 。 如果一个整数从左到右读出所有数位上的数字, 与从右到左读出所有数位 上的数字是一样的, 则称这个数为回文数…

硬件---1电路设计安全要点以及欧姆定律

前言&#xff1a; 一直搞的东西都偏软件&#xff0c;硬件也一直在学&#xff0c;元器件、基础电路知识、PCB设计、模电运放都学的马马虎虎&#xff0c;因此决定进行系统性学习&#xff0c;内容基本来源于手里的视频和书本以及自己的感悟。 一电路安全 1电路安全 在初期基础…

离散无记忆信道

目录 离散无记忆信道输入概率输出概率联合分布概率信道逆向概率一些记号示例1示例2 离散无记忆信道 离散&#xff1a;输入输出字母表都是有限的 无记忆&#xff1a;输出字符 d i d_i di​ 被接收到的概率只依赖于当前的输入 c i c_i ci​, 而与前面的输入无关。 一个离散无记…

Prosre:一款直观的协议发送模拟软件

Proser 是一款直观的协议编辑、发送端模拟软件。 在涉及二进制协议通信的程序开发过程中&#xff0c;我们经常会通过助手类工具编写协议来验证自己的代码&#xff0c;但这些助手对于大协议的编辑非常不友好&#xff0c;这时Proser会协助你轻松的完成测试。 特点 数据直接表达…

密码学与数学证明。

通常的数学证明工具主要有&#xff1a;以平行公设为基础的几何证明体系&#xff0c;以牛顿三定律为基础的经典力学证明体系&#xff0c;以四则计算为基础的计算证明方法&#xff0c;以正则三段论为基础的断言思证系统&#xff0c;以数学归纳法和夹挤定理为基础的包络收敛分析证…

C++入门基础知识142—【关于C++ 友元函数】

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///C爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于C 友元函数的相关内容&#xff01; 关于…

【如何使用 ADB 脚本批量停止 Android 设备上的所有应用】

在 Android 开发和测试中&#xff0c;有时候我们需要批量停止设备上的所有应用进程。为此&#xff0c;我们可以使用一个简单的 ADB 脚本来自动完成这一任务。本文将介绍如何编写和使用这个脚本。 脚本介绍 下面的脚本通过 ADB 命令来列出并停止所有正在运行的 Android 应用进程…

Git 入门篇(三)

前言 Git 入门篇&#xff08;一&#xff09; Git 入门篇&#xff08;二&#xff09; Git 入门篇&#xff08;三&#xff09; 目录 更新代码到远程仓库 git add git commit git push git status git log git rm git reset 更新代码到远程仓库 git add 用于将文件的更改&…