Exemple #1
0
double std_dev(archipelago a, double mean) {
	double retval = 0;
	for (archipelago::size_type i = 0; i< a.get_size(); ++i) {
		retval += pow((a.get_island(i)->get_population().champion().f[0] - mean),2);
	}
	return sqrt(retval / a.get_size());
}
Exemple #2
0
double mean(archipelago a) {
	double retval = 0;
	for (archipelago::size_type i = 0; i< a.get_size(); ++i) {
		retval += a.get_island(i)->get_population().champion().f[0];
	}
	return retval / a.get_size();
}
double std_dev(archipelago a, double mean, problem::base_ptr original_problem) {
	double retval = 0;
	for (archipelago::size_type i = 0; i< a.get_size(); ++i) {
		// test feasibility
		if(original_problem->feasibility_x(a.get_island(i)->get_population().champion().x))
			retval += pow((a.get_island(i)->get_population().champion().f[0] - mean),2);
	}
	return sqrt(retval / a.get_size());
}
double worst(archipelago a, problem::base_ptr original_problem) {
	double retval = - boost::numeric::bounds<double>::highest();
	for (archipelago::size_type i = 0; i< a.get_size(); ++i) {
		// test feasibility
		if(original_problem->feasibility_x(a.get_island(i)->get_population().champion().x))
			retval = std::max(retval, a.get_island(i)->get_population().champion().f[0]);
	}
	return retval;
}
Exemple #5
0
std::string getSolutions(archipelago a) {
	std::ostringstream sol;
	int solSize = a.get_island(0)->get_population().champion().x.size();
	for (archipelago::size_type i = 0; i< a.get_size(); ++i) {
		sol << "island " << i << ": (";
		for(int j = 0; j < solSize; ++j) {
			sol << a.get_island(i)->get_population().champion().x[j] << ",";
		}
		sol << ")" << std::endl;
	}	
	return sol.str();
}
double mean(archipelago a, problem::base_ptr original_problem) {
	double retval = 0;
	int count_feasible_arch = 0;
	for (archipelago::size_type i = 0; i< a.get_size(); ++i) {
		// test feasibility
		if(original_problem->feasibility_x(a.get_island(i)->get_population().champion().x)) {
			retval += a.get_island(i)->get_population().champion().f[0];
			count_feasible_arch++;
		}
	}
	if(count_feasible_arch != 0)
		return retval / count_feasible_arch;
	else
		return 0.;
}