xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 8KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-23
  • 語(yǔ)言: 其他
  • 標(biāo)簽: CVRP??

資源簡(jiǎn)介

本資源為遺傳算法解決車輛的CVRP問題,CVRP是一個(gè)NP_HARD問題

資源截圖

代碼片段和文件信息


/*
Name:?GA算法實(shí)現(xiàn)?車輛的CVRP問題?
Copyright:?
Author:?GCJ?NEW?NEU?Labotatry?
Date:?12/11/17?20:49
Description:?本文件和附加的參數(shù)capacity.txt和data.txt文檔放在一個(gè)工程下即可,
????????????????然后修改readTxt()函數(shù)內(nèi)部的路徑即可運(yùn)行成功?

*/

#include?
#include“time.h“
#include ?
#include ?
#include

/*--------------------------------參數(shù)配置區(qū)---------------------------------------------------*/?

#define? CLIENT_NUM???50?? //客戶數(shù)量?為50??1個(gè)配送中心?
#define CAPACITY?????160 //車的容量為160???
#define? Population_size??50?? //種群大小
#define? iterations? ??50 //迭代次數(shù)

#define??ISGA_crossover???1 //是否可交叉?1:交叉??0:不交叉?
#define? PC ????????0.7??? //配置交叉率

#define??ISmutate?????????1 //是否可變異?1:?變異??0:不變異?
#define? PM ????????0.1 ? //變異率?

#define??IsChampionShip???1? //錦標(biāo)賽參數(shù)是否可調(diào)節(jié)(默認(rèn)值為0.1倍的種群大小)?1:可調(diào)?0:不可調(diào)?


/*--------------------------------宏配置區(qū)---------------------------------------------------*/?

#define?Min(xy)??????(?(?(x)?#define?Max(xy)? ?(?(?(x)?>?(y)?)??(x):(y)??)
#define? f(x)??(x?-1)? //用f宏?作為index?因?yàn)樵谡疑痰甑男蛱?hào)跟二維數(shù)組之間相差1?所以用f表示兩者之間的映射?

/*---錦標(biāo)賽參數(shù)設(shè)置區(qū)---*/
#ifdef?ChampionShip
???double?championShip?=?0.2; //自己可隨意設(shè)置成0-1之間的小數(shù)?但是最好不要超過(guò)0.5?
#endif

typedef?int?ElementType;
using?namespace?std;
ElementType?**Distance; //存儲(chǔ)商店之間的距離?
ElementType?*?Capacity; //存儲(chǔ)車容量?
typedef?struct?_rand{? ?
int?flag; ?
ElementType?num;
}Rand;
?
class?Chromosome
{
public:
Chromosome(); ?
Chromosome(int?len?); //length表示染色體的長(zhǎng)度 ?
virtual~Chromosome(); //析構(gòu)函數(shù)?
Chromosome(const?Chromosome&a); //自定義拷貝構(gòu)造函數(shù)??
const?Chromosome?&operator?=(const?Chromosome?&?o?)?;

void?initialize()?;??? //初始化染色體?調(diào)用newRandom函數(shù)?產(chǎn)生1-?length?的隨機(jī)數(shù)?
int??newRandom(int?lowint?high?);??//隨機(jī)產(chǎn)生?0-?num?個(gè)不重復(fù)的數(shù)字???
void?evaluate();
#if?ISmutate
void?mutate(); //采用逆轉(zhuǎn)變異算子?
#endif
//查看染色體內(nèi)容的調(diào)試函數(shù)?
void?toprint(){
?????????int?i;
?// cout<<“染色體內(nèi)容“< ? for(?i?=0?;?i ? ??cout< ???}??
? ???}
? ???void?printpath(); //打印最后的車輛安排路徑?
? ???ElementType?getFitness(){return?this->fitness;} //返回染色體適應(yīng)值?
? ???int?getLength(){?return?length;?} //獲取染色體長(zhǎng)度?
? ???int?getCar(){return?carNum;?} //獲取車的數(shù)量?
int?*codespace?=?NULL; //編碼空間?代表2-51商店的標(biāo)號(hào)?

private:
int?length; //染色體的長(zhǎng)度?
ElementType?fitness;?? //方便之后的數(shù)據(jù)的擴(kuò)展?
int?carNum; //車數(shù)量?
};
typedef?struct?_Cross{
ElementType?one;
ElementType?two;
int?flag1?; //標(biāo)記找到的one?
int?flag2?; //標(biāo)記找到的two?
_Cross():flag1(0)flag2(0){}??
}Cross; //部分交叉映射需要用到的結(jié)構(gòu)??記錄映射關(guān)系?
class?GA
{
public:
GA(){};
GA(int?popnumint?max); //popnum?種群大小,max表示迭代次數(shù)?
virtual~GA();
GA(const?GA&o); ??//自定義拷貝構(gòu)造函數(shù)??把指針的情況考慮進(jìn)去了?
const?GA?&operator?=(const?GA?&?o?); ??//自定義賦值函數(shù)??

//成員函數(shù)?
void?initializePop(); ??//初始化種群?
void?GArun(); ??//運(yùn)行GA算法?

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????????336??2017-11-03?16:40??capacity.txt
?????文件???????22060??2017-11-12?21:55??GA.cpp
?????文件?????????495??2017-11-02?22:30??position.txt
?????文件?????????182??2017-11-12?22:05??readme.txt

評(píng)論

共有 條評(píng)論