uses comparators (and not dominates)
git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@306 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
parent
d79c193b84
commit
8d887505f9
2 changed files with 13 additions and 3 deletions
|
|
@ -13,6 +13,7 @@
|
||||||
#ifndef MOEOCONTRIBUTIONMETRIC_H_
|
#ifndef MOEOCONTRIBUTIONMETRIC_H_
|
||||||
#define MOEOCONTRIBUTIONMETRIC_H_
|
#define MOEOCONTRIBUTIONMETRIC_H_
|
||||||
|
|
||||||
|
#include <moeoObjectiveVectorComparator.h>
|
||||||
#include <metric/moeoMetric.h>
|
#include <metric/moeoMetric.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -41,6 +42,10 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
/** Functor to compare two objective vectors according to Pareto dominance relation */
|
||||||
|
moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the number of solutions both in '_set1' and '_set2'
|
* Returns the number of solutions both in '_set1' and '_set2'
|
||||||
* @param _set1 the first Pareto set
|
* @param _set1 the first Pareto set
|
||||||
|
|
@ -66,7 +71,8 @@ private:
|
||||||
unsigned w=0;
|
unsigned w=0;
|
||||||
for (unsigned i=0; i<_set1.size(); i++)
|
for (unsigned i=0; i<_set1.size(); i++)
|
||||||
for (unsigned j=0; j<_set2.size(); j++)
|
for (unsigned j=0; j<_set2.size(); j++)
|
||||||
if (_set1[i].dominates(_set2[j])) {
|
if (paretoComparator(_set2[j], _set1[i]))
|
||||||
|
{
|
||||||
w++;
|
w++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -83,7 +89,8 @@ private:
|
||||||
for (unsigned i=0; i<_set1.size(); i++) {
|
for (unsigned i=0; i<_set1.size(); i++) {
|
||||||
bool domin_rel = false;
|
bool domin_rel = false;
|
||||||
for (unsigned j=0; j<_set2.size(); j++)
|
for (unsigned j=0; j<_set2.size(); j++)
|
||||||
if (_set1[i].dominates(_set2[j]) || _set2[j].dominates(_set1 [i])) {
|
if ( (paretoComparator(_set2[j], _set1[i])) || (paretoComparator(_set1[i], _set2[j])) )
|
||||||
|
{
|
||||||
domin_rel = true;
|
domin_rel = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -72,6 +72,8 @@ private:
|
||||||
std::vector<double> vect_min_val;
|
std::vector<double> vect_min_val;
|
||||||
/** vector of max values */
|
/** vector of max values */
|
||||||
std::vector<double> vect_max_val;
|
std::vector<double> vect_max_val;
|
||||||
|
/** Functor to compare two objective vectors according to Pareto dominance relation */
|
||||||
|
moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -82,7 +84,8 @@ private:
|
||||||
for (unsigned i=0 ; i<_f.size(); i++) {
|
for (unsigned i=0 ; i<_f.size(); i++) {
|
||||||
bool dom = false;
|
bool dom = false;
|
||||||
for (unsigned j=0; j<_f.size(); j++)
|
for (unsigned j=0; j<_f.size(); j++)
|
||||||
if (i != j && _f[j].dominates(_f[i])) {
|
if (i != j && paretoComparator(_f[i],_f[j]))
|
||||||
|
{
|
||||||
dom = true;
|
dom = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue