亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? allocationant.cpp

?? 火力分配的應用
?? CPP
字號:
// AllocationAnt.cpp: implementation of the CAllocationAnt class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "genetest.h"
#include "AllocationAnt.h"
#include "GenetestView.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CAllocationAnt::CAllocationAnt()
{
	//m_bSearchFinished = FALSE;
	//SetAllocArray();
	m_fFitness = 0.0;
}

CAllocationAnt::~CAllocationAnt()
{

}
void CAllocationAnt::SetAllocArray()
{
	int i,j;
	for(i=0;i<maxTarget;i++)
	{
		m_nTargetAllocated[i] = 0;
		m_nSortArray[i] = i;
		for(j=0;j<maxWeapon;j++)
			m_nArray[i][j]=0;
	}
}

void CAllocationAnt::SearchPath()
{
	//SetAllocArray();
		
	//得到武器數
	CGenetestView *pView;
	pView = (CGenetestView *)((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView();
	int nWeapon = pView->m_nweapon;
	int nTarget = pView->m_ntarget;
	for(int n=0;n<nWeapon;n++)
	{
		//初始時讓螞蟻隨機的位于一個武器點上
		//然后根據跡來選擇一個與之匹配的目標點。
		//首先判斷該點是否已被分配,即判斷m_nArray所代表矩陣的第randpos列是否有值為1,
		//若已經為1,則重新找武器點
		BOOL flag = TRUE;
		int i;
		int randpos;
		
		while(flag == TRUE)//已被分配
		{
			int r = rand();
			randpos = r%nWeapon;
			for(i=0;i<nTarget;i++)
			{
				int c = m_nArray[i][randpos];
				if(c == 1)
				{
					flag = TRUE;
					break;
				}
			}
			if(i==nTarget)//找到的武器點還沒有被分配,因為若是分配了,for循環會終止,i不能增長到nTarget
				flag = FALSE;
		}
		//--------計算轉移概率-------------------------
		float TransferProp;
		float maxPheromone,Sum;
		//定義與randpos點相連邊的跡最大的目標點的索引
		int TransferTarget;
		int nMaxTarget;
		//尋找最大的跡,并計算跡的和
				
		Sum = 0;
		SortTargetIndexByPheromone(randpos);
		int j = 0;
		while(!AnalysisTarget(m_nSortArray[j])&&j<nTarget)
		{
			j++;
		}
		if(j==nTarget)
			pView->WriteLog("出現錯誤");
		nMaxTarget = m_nSortArray[j];
		maxPheromone = pView->m_PheromoneArray[nMaxTarget][randpos];
		for(i=0;i<nTarget;i++)
		{
			Sum += pView->m_PheromoneArray[i][randpos];
		}
		
		
		//轉移概率的定義本來還考慮了“路徑可見度”的影響,此處沒有涉及,只是考慮了跡
		TransferProp = maxPheromone/Sum;//用跡最大的邊定義轉移概率
		//判斷轉移概率是否小于設定P0值,若小于,則將TransferTarger點分配給randpos點
		if(TransferProp <= TransferP0)
		{
			TransferTarget = nMaxTarget;
			m_nArray[TransferTarget][randpos] = 1;
			m_nTargetAllocated[TransferTarget]++;
		}
		else//若大于p0,則選擇跡小的邊
		{
			TransferTarget = rand()%nTarget;
			while(TransferTarget==nMaxTarget)
			{
				TransferTarget = rand()%nTarget;
			}
			m_nArray[TransferTarget][randpos] = 1;
			m_nTargetAllocated[TransferTarget]++;
		}
	}
	//-------------------計算轉移概率及找分配點的代碼,在此函數中可能無用,移至別處--------
}
//計算路徑長度,在MMAS算法中,是只有路徑最短的螞蟻才進行跡的更新,跡更新函數在View類中定義,
//此處,計算路徑長度實際上是計算適應度函數,應該是適應度函數最大的螞蟻才進行跡的更新
//在Run函數中調用ComputePathLength()還是在View類中調用合適呢????
float CAllocationAnt::ComputePathLength()
{
	//得到武器數和目標數
	CGenetestView *pView;
	pView = (CGenetestView *)((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView();
	int nWeapon = pView->m_nweapon;
	int nTarget = pView->m_ntarget;
	float Sum = 0.0;
	float mul;
	for(int i = 0;i < nTarget;i++)
	{
		mul = 1.0;
		for(int j = 0;j < nWeapon;j++)
		{
			if(m_nArray[i][j]==1)//Weapon J被分配給了Target I
			{
				mul = mul*(1 - pView->m_SuccessArray[i][j]);//計算失敗的概率
			}
		}
		mul = 1 - mul;//得到成功的概率
		Sum = Sum + pView->m_Worthiness[i]*mul; //得到對目標打擊成功的概率和
			
	}
	return Sum;
}

void CAllocationAnt::ReadTargetLimit()
{
	CGenetestView *pView;
	pView = (CGenetestView *)((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView();
	int nTarget = pView->m_ntarget;
	POSITION pos = pView->m_WeaponList.GetHeadPosition();
	int i = 0;
	while(pos != NULL)
	{
		m_nTargetLimit[i] = pView->m_WeaponList.GetAt(pos)->m_nMaxWeapon;
		i++;
		pView->m_WeaponList.GetNext(pos);
	}
}
//根據傳進來的目標索引,分析該目標分配的武器是否已經達到允許分配最多武器數的限制,若沒達到
//返回TRUE,否則返回FALSE
BOOL CAllocationAnt::AnalysisTarget(int TargetIndex)
{
	CGenetestView *pView;
	pView = (CGenetestView *)((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView();
	int nTarget = pView->m_ntarget;
	BOOL flag = FALSE;
	if(m_nTargetLimit[TargetIndex] > m_nTargetAllocated[TargetIndex])
		flag = TRUE;
	return flag;
}
//針對某一武器,將各目標按照該武器與目標之間的跡的大小,從大到小排序,將排序結果放在m_nSortArray中
void CAllocationAnt::SortTargetIndexByPheromone(int nWeapon)
{
	CGenetestView *pView;
	pView = (CGenetestView *)((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView();
	int nTarget = pView->m_ntarget;
	float maxPheromone = 0.0;
	int nMaxTarget = -1;
	CString str,str1;
	str.Format("武器%d",nWeapon+1);
	pView->WriteLog(str);
	//str = "";
	for(int i=0;i<nTarget;i++)
	{
		for(int j = 0;j<nTarget;j++)
		{
			//去除已經排過序的值
			if(i!=0)
			{
				BOOL flag = FALSE;
				for(int k=0;k<i;k++)
				{
					if(j==m_nSortArray[k]){
						flag = TRUE;
						break;
					}
				}
				if(flag) continue;
			}
			if(pView->m_PheromoneArray[j][nWeapon]>maxPheromone)
			{
				nMaxTarget = j;//與點randpos相連邊的跡最大的點
				maxPheromone = pView->m_PheromoneArray[j][nWeapon];
			}
		}
		m_nSortArray[i] = nMaxTarget;
		maxPheromone = 0.0;
		//str1.Format("%d ",nMaxTarget+1);
		//str += str1;
	}
	//pView->WriteLog(str);
}
//將分配結果輸出到文件
void CAllocationAnt::WriteResult()
{
	CGenetestView *pView;
	pView = (CGenetestView *)((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView();
	int nTarget = pView->m_ntarget;
	int nWeapon = pView->m_nweapon;
	CString str,str1;
	for(int i = 0; i < nTarget;i++)
	{
		str = "";
		str1 = "";
		for(int j = 0;j < nWeapon;j++)
		{
			if(m_nArray[i][j]==1)
			{
				str1.Format("第%d個、",j+1);
				str += str1;
			}
		}
		if(str1!="")
		{
			str1.Format("武器被分配到%d號目標",i+1);
			str = str.Left(str.GetLength()-2);
			str += str1;
		}
		else
			str.Format("沒有武器分配到第%d號目標",i+1);
		pView->WriteLog(str);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区视频在线| 色婷婷综合久色| 91久久久免费一区二区| 91精品久久久久久久久99蜜臂| 久久久亚洲高清| 日韩福利电影在线| 91极品视觉盛宴| 中文字幕在线观看不卡视频| 久久99国内精品| 欧美一区二区福利在线| 一区二区三区精品视频| 成人永久aaa| 久久久久久一二三区| 免费成人美女在线观看.| 色www精品视频在线观看| 中文乱码免费一区二区| 韩日欧美一区二区三区| 4hu四虎永久在线影院成人| 亚洲欧美激情小说另类| av动漫一区二区| 国产精品国产三级国产| 福利91精品一区二区三区| 久久影音资源网| 国产一区二区三区免费在线观看| 91精品国产丝袜白色高跟鞋| 午夜精品久久久久久| 欧美综合在线视频| 亚洲一区二区不卡免费| 欧美性感一类影片在线播放| 亚洲高清在线精品| 欧美丰满少妇xxxxx高潮对白 | 中文字幕中文字幕一区二区| 高清国产午夜精品久久久久久| 久久噜噜亚洲综合| 国产成人免费9x9x人网站视频| 久久久亚洲精品一区二区三区 | 91久久精品网| 亚洲黄色小说网站| 欧美日韩国产高清一区二区三区 | 国产综合久久久久影院| www国产成人| 国产电影一区二区三区| 国产精品久久久久9999吃药| 91国内精品野花午夜精品 | 欧美一区二区精品| 蜜臀a∨国产成人精品| 欧美日本韩国一区| 日韩欧美三级在线| 欧美日韩免费视频| 国产精品传媒在线| 欧美这里有精品| 久久国产剧场电影| 久久久综合激的五月天| 91在线看国产| 日本美女一区二区三区| 国产肉丝袜一区二区| 色偷偷一区二区三区| 丝袜美腿成人在线| 久久久国产精品不卡| 在线日韩国产精品| 精品一区二区三区在线观看 | 国产在线麻豆精品观看| 国产精品国产三级国产有无不卡| 欧美三级中文字幕在线观看| 久久成人久久鬼色| 最新中文字幕一区二区三区| 88在线观看91蜜桃国自产| 成人欧美一区二区三区黑人麻豆| 成人av综合在线| 亚洲成人动漫精品| 国产亚洲成aⅴ人片在线观看 | 成人美女视频在线观看18| 国产精品久久久久7777按摩 | 国产精品久久一级| 日韩一区二区在线观看视频| 91麻豆文化传媒在线观看| 免费的国产精品| 日韩美女久久久| 久久综合久久99| 欧美三级韩国三级日本一级| 成人久久18免费网站麻豆| 日精品一区二区三区| 中文字幕在线观看一区| 精品国产凹凸成av人导航| 欧美日韩国产高清一区二区三区| aaa亚洲精品一二三区| 精品中文字幕一区二区| 午夜精品视频在线观看| 亚洲图片另类小说| 国产欧美日韩久久| 久久夜色精品一区| 欧美一二三区在线| 欧美午夜片在线看| 色综合天天性综合| 成人性视频免费网站| 国产乱国产乱300精品| 理论电影国产精品| 丝袜亚洲另类欧美| 天天综合色天天综合色h| 一区二区三区四区在线免费观看| 欧美激情一区二区在线| 国产亚洲一区二区三区四区| 久久久久久久av麻豆果冻| 日韩欧美二区三区| 欧美一区二区三区在| 555www色欧美视频| 欧美久久久久中文字幕| 欧美伊人久久久久久久久影院 | 国产亚洲制服色| xf在线a精品一区二区视频网站| 欧美变态凌虐bdsm| 2019国产精品| 国产三级三级三级精品8ⅰ区| 久久久国产综合精品女国产盗摄| 国产偷国产偷亚洲高清人白洁| 精品国偷自产国产一区| 精品嫩草影院久久| 久久欧美中文字幕| 国产精品美女久久久久久久网站| 久久精品亚洲麻豆av一区二区| 国产女同互慰高潮91漫画| 国产日韩在线不卡| |精品福利一区二区三区| 亚洲精品视频在线观看免费| 一区二区三区不卡视频在线观看 | 北条麻妃一区二区三区| 91亚洲精品久久久蜜桃| 在线亚洲+欧美+日本专区| 欧美日韩免费一区二区三区视频| 91精品国产综合久久久久久久久久| 制服.丝袜.亚洲.另类.中文| 亚洲精品在线三区| 亚洲三级小视频| 亚洲一区二区三区免费视频| 热久久国产精品| 国产成人aaaa| 欧美制服丝袜第一页| 日韩精品一区二区三区视频| 中文字幕av在线一区二区三区| 亚洲综合色婷婷| 国内精品免费在线观看| av在线不卡免费看| 欧美一级高清片在线观看| 国产亚洲制服色| 亚洲小说欧美激情另类| 国产呦萝稀缺另类资源| www.日韩大片| 91精品国产aⅴ一区二区| 中文字幕免费一区| 午夜免费久久看| 成人一区二区三区在线观看 | 国产精品美女久久福利网站| 午夜一区二区三区视频| 国产综合久久久久久鬼色| 欧美在线观看视频在线| 久久久久久99精品| 婷婷丁香激情综合| 91免费版pro下载短视频| 精品日韩在线观看| 午夜精品福利视频网站| 久久疯狂做爰流白浆xx| 色婷婷久久久久swag精品| 久久午夜色播影院免费高清| 亚洲小说欧美激情另类| 成人a级免费电影| 日韩欧美国产高清| 亚洲成a人在线观看| 91网站在线观看视频| 精品免费国产二区三区| 午夜a成v人精品| 91久久精品网| 成人免费在线观看入口| 自拍偷拍国产精品| 福利电影一区二区| 欧美电影一区二区三区| 亚洲素人一区二区| 国产在线一区二区| 91精品国产日韩91久久久久久| 中文字幕欧美一| 国产成人aaa| 国产亚洲一区字幕| 黑人巨大精品欧美一区| 91精品中文字幕一区二区三区| 亚洲乱码国产乱码精品精可以看| 国内偷窥港台综合视频在线播放| 欧美伦理影视网| 亚洲一级片在线观看| 色激情天天射综合网| 一区在线播放视频| 93久久精品日日躁夜夜躁欧美| 亚洲国产成人私人影院tom| 国产电影精品久久禁18| 久久久久久久av麻豆果冻| 韩国女主播一区| 久久综合色天天久久综合图片| 麻豆成人综合网| 日韩免费电影网站| 久久精品免费观看| 亚洲精品一区二区三区蜜桃下载| 日韩激情视频在线观看|