Пример #1
0
        /// <summary>
        /// Перевірка найкращих альтернатив на зовнішню стійкість
        /// </summary>
        public bool IsBestAlternativesExternallyStable(HashSet <int> bestAlternatives, Relation relation)
        {
            HashSet <int> notBestAlternatives =
                Enumerable.Range(0, relation.Dimension)
                .Except(bestAlternatives)
                .ToHashSet();

            // Якщо верхній переріз якої-небудь з альтернатив, що не входять до найкращих, не містить
            // у собі жодної з найкращих альтернатив, то множина розв'язків не є зовнішньо стійкою
            foreach (int alternative in notBestAlternatives)
            {
                if (relation.GetUpperSection(alternative).Intersect(bestAlternatives).Count() == 0)
                {
                    return(false);
                }
            }

            return(true);
        }
Пример #2
0
        /// <summary>
        /// Перевірка найкращих альтернатив на внутрішню стійкість
        /// </summary>
        public bool IsBestAlternativesInternallyStable(HashSet <int> bestAlternatives, Relation relation)
        {
            // Якщо верхній переріз якої-небудь з найкращих альтернатив містить
            // у собі іншу найкращу альтернативу, то множина розв'язків не є внутрішньо стійкою
            foreach (int alternative in bestAlternatives)
            {
                if (relation.GetUpperSection(alternative).Intersect(bestAlternatives).Count() > 0)
                {
                    return(false);
                }
            }

            return(true);
        }