private List <IMultiObjectiveBehaviour> RejectSimilarBehaviours(IList <IMultiObjectiveBehaviour> behaviours) { List <IMultiObjectiveBehaviour> nonsimilar = new List <IMultiObjectiveBehaviour>(); int count = behaviours.Count; for (int i = 0; i < count; i++) { IMultiObjectiveBehaviour b = behaviours[i]; bool reject = false; int nCount = nonsimilar.Count; for (int j = 0; j < nCount; j++) { IMultiObjectiveBehaviour nb = nonsimilar[j]; double similarity = b.Objectives.Select((t, k) => Math.Abs(t - nb.Objectives[k])).Sum(); if (similarity < _params.RejectSimilarThreshold) { reject = true; break; } } if (reject) { b.Reject(); } else { nonsimilar.Add(b); } } return(nonsimilar); }