예제 #1
0
void CICHWithFurtherPriorityQueue::ExecuteLocally_SVG(double distThreshold, set<int> &fixedDests, int max_covered_points)
{
	if (fComputationCompleted)
		return;
	if (!fLocked)
	{
		fLocked = true;
		nCountOfWindows = 0;	
		nMaxLenOfWindowQueue = 0;
		depthOfResultingTree = 0;
		InitContainers();
		nTotalMilliSeconds = GetTickCount();	
		BuildSequenceTree_SVG(distThreshold, fixedDests,max_covered_points);
		nTotalMilliSeconds = GetTickCount() - nTotalMilliSeconds;
		//FillExperimentalResults();
		ClearContainers();

		fComputationCompleted = true;
		fLocked = false;
	}
}
예제 #2
0
void CExactMethodForDGP::Execute()
{
	if (fComputationCompleted)
		return;
	if (!fLocked)
	{
		fLocked = true;
		nCountOfWindows = 0;	
		nMaxLenOfWindowQueue = 0;
		depthOfResultingTree = 0;
		InitContainers();
        nTotalMilliSeconds = GetCurrentTime();
		BuildSequenceTree();
        nTotalMilliSeconds = GetCurrentTime() - nTotalMilliSeconds;
		//FillExperimentalResults();
		ClearContainers();
		
		fComputationCompleted = true;
		fLocked = false;
	}
}
예제 #3
0
double CICHWithFurtherPriorityQueue::ExecuteLocally_vertNum(int levelNum, set<int>& fixedDests)
{
	if (fComputationCompleted)
		return DBL_MAX;
	double dis = DBL_MAX;
	if (!fLocked)
	{
		fLocked = true;
		nCountOfWindows = 0;	
		nMaxLenOfWindowQueue = 0;
		depthOfResultingTree = 0;
		InitContainers();
		nTotalMilliSeconds = GetTickCount();	
		dis = BuildSequenceTree_vertNum(levelNum, fixedDests);
		nTotalMilliSeconds = GetTickCount() - nTotalMilliSeconds;
		//FillExperimentalResults();
		ClearContainers();

		fComputationCompleted = true;
		fLocked = false;
	}
	return dis;
}