private static void SolveTaskForStream(StreamWriter stream, FuzzyRelation relation, string name) { stream.WriteLine(new string('~', 10) + name + new string('~', 10) + "\n" + relation); stream.WriteLine("GetStrongPreferenceRelation:\n" + relation.GetStrongPreferenceRelation()); stream.WriteLine("GetSetOfNonDominatedAlternatives:\n" + relation.GetSetOfNonDominatedAlternatives() .Aggregate("", (seed, val) => seed += val + "\t")); stream.WriteLine("Most non-dominated alternative: \n" + relation.GetMostNonDominatedAlternatives() + "\n"); }
public static FuzzyRelation MinMaxComposition(FuzzyRelation first, FuzzyRelation second) { var firstCount = first._relation.Length; var secondCount = second._relation[0].Length; var result = new double[firstCount][]; for (var i = 0; i < firstCount; i++) { result[i] = new double[secondCount]; for (var j = 0; j < secondCount; j++) { var firstRow = first._relation[i]; var secondColumn = second._relation.Select(ar => ar[j]).ToArray(); result[i][j] = Max(firstRow, secondColumn).Min(); } } return new FuzzyRelation(result); }
public bool IsIn(FuzzyRelation other) { for (var i = 0; i < _relation.Length; i++) { for (var j = 0; j < _relation[i].Length; j++) { if (_relation[i][j] > other._relation[i][j]) return false; } } return true; }