1. Постановка завдання
Необхідно розробити програмне засіб для пошуку альтернативних рішень для наступного завдання:
В· багатокритеріальна задача
вхідні дані: кількість критеріїв і рішень; вагові значення, задані безпосередньо, ступінь важливості критеріїв, інтервали переваги, ціна переходу значення в сусідній клас.
вихідні дані: матриця згоди; матриця незгоди; ядро ​​бінарного відношення.
програмний альтернативний рішення багатокритерійний
2. Короткі теоретичні відомості
Нехай заданий набір числових функцій, визначених на множині можливих рішень X. Залежно від змісту завдання вибору ці функції іменують критеріями оптимальності, критеріями ефективності або цільовими функціями. p> Зазначені вище числові функції утворюють векторний критерій, який приймає значення в просторі m-мірних векторів. Це простір називають критеріальним простором або простором оцінок, а всяке значення іменують векторної оцінкою можливого рішення x. Всі можливі векторні оцінки утворюють безліч можливих оцінок (можливих або допустимих векторів)
В
Як правило, між множинами можливих рішень X і відповідним безліччю векторів Y можна встановити взаємно однозначну відповідність, тобто кожному можливого вирішення поставити у відповідність певний можливий вектор, і назад - кожного можливого вектору зіставити певне можливе рішення. У таких випадках вибір в безлічі рішень з математичної точки зору рівносильний вибору в безлічі векторів і всі визначення і результати можна формулювати як в термінах рішень, так і в термінах векторів, причому при бажанні завжди можна без зусиль здійснити перехід від однієї форми викладу до іншої.
Задачу вибору, яка включає безліч допустимих рішень X і векторний критерій f, зазвичай називають багатокритеріальної завданням або завданням багатокритеріальної оптимізації.
Необхідно відзначити, що формування математичної моделі прийняття рішень (тобто побудова безлічі X і векторного критерію f ) нерідко являє собою складний процес, в якому тісно взаємодіють фахівці двох сторін. А саме, представники конкретної галузі знань, до якої належить досліджувана проблема, і фахівці з прийняття рішень (математики). З одного боку, слід врахувати всі найважливіші риси і деталі реального завдання, а з іншого, - побудована модель не повинна виявитися надмірно складною з тим, щоб для її дослідження та рішення можна було успішно застосувати розроблений до теперішнього часу відповідний математичний апарат. Саме тому етап побудови математичної моделі значною мірою залежить від досвіду, інтуїції і мистецтва дослідників обох сторін. Його неможливо ототожнити з простим формальним застосуванням вже відомих, добре описаних алгоритмів.
Тут слід ще додати, що будь-яка задача вибору (в тому числі і багатокритеріальна) тісно пов'язана з конкретним ОПР ( особа, яка приймає рішення). Вже на стадії формування математичної моделі при побудові безлічі можливих рішень і векторного критерію справа не обходиться без порад, рекомендацій та вказівок ОПР, тим більше що векторний критерій якраз і служить. Прийняття рішення при багатьох критеріях для вираження цілей ОПР. При цьому ясно, що побудувати модель в точності відповідає всім реальним обставинам неможливо. Модель завжди є спрощенням дійсності. Важливо домогтися, щоб вона містила ті риси і деталі, які найбільшою мірою впливають на остаточний вибір найкращого рішення.
Розглянемо два довільних можливих рішення і. Для них має місце один і тільки один з наступних трьох випадків:
) справедливе співвідношення (ОПР перше рішення воліє другого),
) справедливе співвідношення (ОПР друге рішення воліє першому),
) не виконується ні співвідношення, ні співвідношення (ОПР не може віддати перевагу жодному із зазначених двох рішень).
Зауважимо, що четвертий випадок, коли обидва беруть участь тут співвідношення і виконуються, неможливий завдяки асиметричності відношення переваги
У першому із зазначених вище випадків, тобто при виконанні співвідношення, говорять, що рішення домінує рішення.
Якщо ж реалізується третій випадок, то говорять, що рішення і не порівняні по відношенню переваги.
3. Реалізація програмного засобу
середу розробки: Visual Studio 2008 Мова програмування: C #
3.1 Проектування
При проектуванні програмного засобу будемо використовувати об'...