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

  • 大小: 5KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-12
  • 語言: C/C++
  • 標(biāo)簽: 遺傳算法??C++??bitset??

資源簡介

使用C++編寫的遺傳算法,代碼量200行左右,供大家學(xué)習(xí)研究,互相交流。

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include?
using?namespace?std;

#define?SIZE?20//染色體長度,根據(jù)實(shí)際情況改寫

typedef?bitset?Chromosome;
typedef?vector?Population;
typedef?vector?MatingPool;


void?cross(MatingPool&?pool?double?crossRate)
{
default_random_engine?e(time(0));
uniform_real_distribution?rand_r(0?1);
uniform_int_distribution?rand_p(1?SIZE?-?1);
for?(int?i?=?0;?i? {
if?(rand_r(e)?<=?crossRate)
{
int?pos?=?rand_p(e);
Chromosome?temp?=?pool[i]?>>?pos?<>?(SIZE?-?pos);
pool[i?+?1]?=?pool[i?+?1]?>>?pos?<>?(SIZE?-?pos);
pool[i]?=?temp;
}
}
}


void?mutate(Population&?population?double?mutationRate)
{
default_random_engine?e(time(0));
uniform_real_distribution?rand_r(0?1);
uniform_int_distribution?rand_p(1?SIZE?-?1);
for?(int?i?=?0;?i? {
if?(rand_r(e)?<=?mutationRate)
{
population[i].flip(rand_p(e));
}
}
}

double?parse(Chromosome?chromo)
{
double?value?=?chromo.to_ullong();
value?/=?(1?< value?*=?3.141592654;
return?value;
}

//價(jià)值函數(shù),根據(jù)實(shí)際情況改寫
double?value_of(Chromosome?chromo)
{
double?value?=?cos(parse(chromo));
return?1?/?value?/?value;
}


void?Scale(vector&?values)
{
vector?temp;
for?(int?i?=?0;?i? {
int?rank?=?values.size();
for?(int?j?=?0;?j? {
if?(i?==?j)?continue;
if?(values[i]? }
temp.push_back(rank);
}
values.swap(temp);
}


void?Init(Population&?population?int?popSize)
{
popSize?=?popSize?>>?1?< default_random_engine?e(time(0));
uniform_int_distribution?b(0?1);
for?(int?i?=?0;?i? {
Chromosome?chromo;
for?(int?i?=?0;?i? {
chromo.set(i?b(e));
}
population.push_back(chromo);
}
}


void?selection(Population?population?vector?values?MatingPool&?pool)
{
Scale(values);
int?size?=?population.size();
for?(int?i?=?1;?i? default_random_engine?e(time(0));
uniform_real_distribution?rand(0?values[size?-?1]);
for?(int?i?=?0;?i?

評論

共有 條評論