Автор: Пользователь скрыл имя, 23 Марта 2012 в 08:23, дипломная работа
Мета роботи полягає у вивченні теоретичних основ щодо прийняття рішень в умовах визначеності, задач багатокритеріальної оптимізації та програмної реалізації методу багатокритеріальної оптимізації, а саме методу бажаної точки.
Виходячи з поставленої мети, в роботі розв’язано низку наступних завдань:
- розгляд прикладів багатокритеріальності;
- ознайомлення із задачами багатокритеріального програмування;
- вивчення основних понять та принципів теорії прийняття рішень в умовах визначеності;
- з’ясування основних методів багатокритеріальної оптимізації;
- розробка програмної реалізації методу бажаної точки.
ВСТУП………………………………………………………...……………………...3
РОЗДІЛ 1. ІНФОРМАЦІЙНИЙ ОГЛЯД…………………………………………...5
1.1. Огляд задач багатокритеріального програмування,
приклади багатокритеріальності………...………………………..……5
1.2. Поняття про багатокритеріальну оптимізацію……………...…………8
РОЗДІЛ 2. ТЕОРЕТИЧНА ЧАСТИНА………………………………..………….11
2.1. Основні поняття та визначення теорії прийняття рішень
в умовах визначеності…………………………..…………………….11
2.2. Загальні відомості про задачі багатокритеріальної оптимізації..….12
2.3. Постановка задачі багатокритеріальної оптимізації……..…………18
2.4. Методи багатокритеріальної оптимізації………..…………………..29
2.5. Метод бажаної точки при прийнятті рішень в умовах
визначеності…………………………………………………………...32
РОЗДІЛ 3. ПРАКТИЧНА РЕАЛІЗАЦІЯ…………………………………. ………36
3.1. Блок-схема алгоритму …………………….………………………...36
3.2. Опис програмної реалізації методу бажаної точки………………....38
ВИСНОВКИ………………………………………………………………………...45
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ………………………………………..46
ДОДАТОК А………………….…………………………………………………….48
Вище були введені поняття ефективності декількох типів і установлений взаємозв'язок між ними. Цьому зв'язку відповідають наступні включення для множини оцінок і альтернатив, ефективних у різному сенсі: .
2.4 Методи багатокритеріальної оптимізації
Вибір альтернативи, яка буде розв'язком задачі багатокритеріальної оптимізації, потрібно робити з множини ефективних альтернатив (чи слабко-ефективних альтернатив, чи власно-ефективних альтернатив) – в залежності від вимог ОПР і предметної області, в якій приймається рішення (далі, для спрощення викладання припустимо, що вибирається ефективна альтернатива).
Але яку, однак, ефективну альтернативу
вибирати? Звичайно, якщо множина абсолютно-оптимальних
альтернатив не є порожньою, то будь-яка
з них (слід нагадати, що всі абсолютно-оптимальні
альтернативи рівноцінні між собою)
може вважатися розв'язком
Правила вибору ефективних альтернатив. Те, що у рамках постановки багатокритеріальної задачі проблема вибору єдиної ефективної альтернативи не може бути розв'язаною, потребує уведення деякого правила (позначимо його через R) вибору єдиної альтернативи з множини ефективних альтернатив [2].
Нехай – множина альтернатив багатокритеріальної задачі:
,
яка задовольняє правилу вибору R. Сформулюємо умови, яким це правило повинно задовольняти у загальному випадку (так звані умови раціональності, сформульовані Вільгельмом [1]).
1. Вибір повинен бути зробленим завжди, тобто .
2. Вибирається ефективна альтернатива, тобто .
3. Єдиність вибору потрібно
розуміти не буквально, що
4. Більше того, якщо ми вибираємо
якусь альтернативу, для якої
у множині альтернатив є
5. Якщо розглядати дві ситуації прийняття рішення за одним і тим же вектором критеріїв f, але на множинах альтернатив таких, що одна з множин X' є підмножиною іншої X, то вибір з "більш широкої" множини альтернатив X, якщо він належить "більш вузькій" множині альтернатив , повинен бути вибором з цієї множини. Тобто якщо , то .
Звичайно, правил вибору, які задовольняють цим умовам, можна побудувати необмежену кількість, але в цьому немає нічого поганого, оскільки це дає можливість пристосуватися до будь-якої ОПР і специфіки предметної області. Незважаючи на такий широкий спектр різних можливих правил вибору, серед них можна виділити певні класи.
Ці міркування приводять до необхідності створення правил вибору у вигляді діалогової процедури, яка являє собою ітеративний процес взаємодії між ОПР і комп'ютером. Кожна ітерація i, i=1,2,…, складається з двох етапів [11]:
Методи
багатокритеріальної
Методи багатокритеріальної
Методи, які не використовують інформацію про перевагу на множині критеріїв.
Методи, які використовують один тип інформації про перевагу на множині критеріїв.
Методи, які використовують різні типи інформації про перевагу на множині критеріїв.
Спеціальні методи.
Особливістю цієї діалогової процедури є необхідність визначення ОПР бажаних значень критеріїв для визначення переваги на множині критеріїв.
0-й крок. Розраховуються "найкращі" і "найгірші" значення критеріїв: , здійснюється монотонне перетворення критеріїв до нормованого безрозмірного вигляду:
.
k-й крок (k=1,2,…). ОПР аналізує отриманий на попередньому кроці розв'язок та його оцінку у порівнянні з "найкращими" і "найгіршими" значеннями критеріїв і вказує бажані значення критеріїв
Здійснюється перетворення
бажаних значень цільових функцій
до нормованого безрозмірного
Обчислюються вагові коефіцієнти критеріїв:
.
Ефективна альтернатива знаходиться як розв'язок однокритеріальної задачі: . Обчислюється оцінка . Якщо отримані значення цільових функцій задовольняють ОПР, то процедура закінчується, у протилежному випадку – переходимо на наступний крок. Цей метод використовує тільки один тип інформації від ОПР про бажані значення критеріїв [13].
Приклад 2.1. Розв'язати методом бажаної точки наступну задачу:
На рисунку 1.3 зображена множина альтернатив X; лінії рівнів першого й другого критеріїв, відповідно (1), (2); – найкращі, відповідно за першим і другим критерієм задачі, альтернативи.
0 –й крок. Обчислюємо "найкращі" і "найгірші" значення критеріїв: і здійснимо монотонне перетворення критеріїв до нормованого безрозмірного вигляду:
Рис. 1.3
Крок 1. ОПР вказує бажані значення критеріїв Нехай, наприклад, . Здійснюємо перетворення бажаних значень цільових функцій до нормованого безрозмірного вигляду: .
Обчислюються вагові коефіцієнти критеріїв:
.
Ефективну альтернативу знаходимо як розв'язок задачі:
На рисунку 1.4 можна побачити лінії рівнів і цієї функції, які утворюють кути вершини яких x i x* знаходяться на прямій , що визначається умовою рівності аргументів функції , а бокові сторони паралельні лініям рівня відповідних критеріїв початкової двохкритеріальної задачі. Рівень буде максимальним значенням функції, а точка буде оптимальним розв'язком цієї задачі. Обчислюємо оцінку . Якщо отримані значення критеріїв задовольняють ОПР, то процедура закінчується, у протилежному випадку – переходимо на наступний крок.
Рис. 1.4
Далі цей метод реалізовано
програмно. Для знаходження мінімумів
однонокритеріальних задач
РОЗДІЛ 3. ПРАКТИЧНА РЕАЛІЗАЦІЯ
3.1 Блок-схема алгоритму
Для кращої інтерпретації
алгоритму методу бажаної точки
в багатокритеріальній
Рис. 2.1 – Блок-схема алгоритму методу бажаної точки
Рис.2.2 – Продовження блок-схеми алгоритму методу бажаної точки
Рис. 2.3 – Продовження блок-схеми алгоритму методу бажаної точки
3.2 Опис програми
Для розв’язування поставленої задачі була створена програма на мові Object Pascal в середовищі Delphi 6.
В якості прикладу було взято задачу:
Критерії і були задані в програмі (див. підпрограми function f (x1, x2 ,x3:real):real і function t (x1, x2, x3:real):real в модулі Unit3).
Мінімальне значення , критеріїв шукається за допомогою градієнтного методу (див. процедуру GradientMethod в модулі Unit2).
Цей метод дає наближений розв’язок, який певною мірою залежить від того, яку початкову точку вибрали. Користувач має можливість сам вказати початкові точки для кожного критерію.
Для розв’язування задачі градієнтним методом необхідно знати перші похідні по всім змінним для кожного критерію.
Для нашого прикладу:
Значення похідних були задані функціями (див. модуль Unit3):
Точність знаходження оптимального розв’язку задається в програмі значенням константи epsilon=0.001.
Значення обирається рівним . Якщо при цьому не було знайдено розв’язку з заданою точністю, то буде зменшуватися в десять разів, до тих пір, доки не буде знайдено оптимального розв’язку.
В програмі є обмеження на кількість ітерацій. Оскільки, кількість ітерацій наперед невідома, то вона була задана фіксованим числом, достатньо великим для того, щоб метод працював, а саме: константою SIZE=10000. Якщо ітерацій буде більше, то програма видасть повідомлення про це і завершить роботу. В цьому випадку слід взяти іншу початкову точку і знову запустити програму.
Максимальні значення , критеріїв були знайдені перебором. Для поставленої задачі (виходячи з обмежень) зрозуміло, що максимум буде досягатися в точках або , . В програмі перебираємо можливі комбінації і знаходимо максимум.
Знаходження максимальних значень , критеріїв було реалізовано в процедурі MethodBaganTochki (див. модуль Unit2). Змінна max_f буде зберігати максимальне значення критерію . Змінна max_t –– , максимальне значення критерію .
Розв’язування однокритеріальної задачі було здійснено наближеним методом, а саме: методом Монте-Карло.
В програмі метод Монте-Карло реалізовано процедурою MethodMonteKarlo (див. модуль Unit2) наступним чином.
10001 раз випадково генеруються точки в діапазоні . Генеруються за допомогою датчика випадкових чисел за нормальним законом розподілу (це досягається вбудованими в Delphi підпрограмами Randomize і Random). Кожен раз, коли були згенеровані нові точки , обчислювалось і . З них вибирався мінімум. А після, програма знайшла найбільше значення з 10001 знайдених, і точку , яка дала цей максимум.
Бажані значення критеріїв , вводяться користувачем до тих пір, доки оптимальний розв’язок задачі його не задовольнить. Програма контролює, щоб бажані значення , були не менше мінімальних значень , критеріїв (знайдені градієнтним методом) і не більше максимальних значень , критеріїв (знайдені перебором); , .