在MFC项目中使用GAlib时出现未处理的异常

时间:2014-02-10 12:05:51

标签: visual-c++ mfc genetic-algorithm genetic-programming

所有,我在VC ++ MFC项目中使用GAlib,并在使用GA initialize()函数时遇到Unhandled异常:

Unhandled exception at 0x765b2eec in XMLDOMFromVC.exe: Microsoft C++ exception: _com_error at memory location 0x00f9de10..

这是我的代码,它遵循GAlib中的示例:

void CGATrainingDlg::OnBnClickedGaTrainButton()
{
// TODO: Add your control notification handler code here
GARealAlleleSetArray alleles2a;
for(int i=0; i<m_nAlleleSetArrayLen; i++)
    alleles2a.add(0, 1, GAAllele::EXCLUSIVE, GAAllele::INCLUSIVE);

GARealGenome genome2a(alleles2a, ObjectiveTrampoline, this);
genome2a.mutator(GARealIncrementalMutator);
genome2a.crossover(GARealOnePointCrossover);

// Now do a genetic algorithm for each one of the genomes that we created.
GASimpleGA ga(genome2a);

// Now that we have the genomes, create a parameter list that will be used for
// all of the genetic algorithms.
GAParameterList params;
GASimpleGA::registerDefaultParameters(params);
params.set(gaNpCrossover, m_dPCross); 
params.set(gaNpMutation, m_dPMut);

if(BST_CHECKED == IsDlgButtonChecked(IDC_GA_CONVERGENCE_RADIO))
{
    params.set(gaNpConvergence, m_fPconv);
    params.set(gaNnConvergence, m_nConv);
    ga.terminator(GAGeneticAlgorithm::TerminateUponConvergence);
}else{
    params.set(gaNnGenerations, m_nGAGen);
}

params.set(gaNpopulationSize, m_nGAPopSize);
params.set(gaNscoreFrequency, m_nScoreFreq);
params.set(gaNflushFrequency, m_nFlushFreq);
params.set(gaNselectScores, (int)GAStatistics::AllScores);

if((m_fPconv == 0 || m_nConv == 0) && m_nGAGen == 0)
{
    AfxMessageBox(_T("You need to specify parameters for GA Terminator"));
    exit(EXIT_FAILURE);
}

ga.parameters(params);
// the following line is where the exception happened
ga.initialize();
/* some other code*/
}

我一直在关注使用GA initialize()的示例(ex7.C),但不知道这个异常的原因是什么,所以任何想法如何解决这个问题?

欢呼声

0 个答案:

没有答案