- •Лабораторний практикум
- •Краматорськ 2009
- •Загальні вказівки
- •Методи одновимірної оптимізації. Знаходження глобального екстремуму функції методом послідовного рівномірного перебору (сканування)
- •Знаходження екстремуму унімодальної функції
- •Знаходження екстремуму функції методом послідовного рівномірного перебору з уточненням
- •Пошук всіх екстремумів функції
- •Завдання до лабораторної роботи
- •Метод дихотомії
- •Метод золотого перетину
- •Завдання до лабораторної роботи
- •Методика оптимізації функції методом найшвидшого спуску
- •Приклад мінімізації функції методом найшвидшого спуску
- •Завдання до лабораторної роботи
- •Загальні вказівки
- •Обчислення градієнту функції на еом
- •Алгоритм оптимізації методом найшвидшого спуску
- •Програмна реалізація методу найшвидшого спуску
- •Завдання до лабораторної роботи
- •Лабораторна робота 5
- •Багатовимірних задач оптимізації
- •Порядок виконання роботи
- •Загальні вказівки
- •Алгоритм методу прямого пошуку
- •Програмна реалізація методу прямого пошуку
- •Завдання до лабораторної роботи
- •Лабораторна робота 6
- •Багатовимірних задач оптимізації
- •Порядок виконання роботи
- •Загальні вказівки
- •Алгоритм методу випадкового пошуку з перерахунком
- •Програмна реалізації методу випадкового пошуку
- •Завдання до лабораторної роботи
- •Лабораторна робота 7
- •Програмування графічним методом
- •Порядок виконання роботи
- •Загальні вказівки
- •Методика розв’язання задачі лінійного програмування графічним методом
- •Приклади розв’язання задач лінійного програмування графічним методом
- •Завдання до лабораторної роботи
- •Продовження таблиці 15
- •Лабораторна робота 8
- •З використанням симплексних таблиць
- •Порядок виконання роботи
- •Загальні вказівки
- •Алгоритм симплексного методу
- •Приклад розв’язання лп-задачі симплексним методом
- •Завдання до лабораторної роботи
- •Лабораторна робота 9
- •Порядок виконання роботи
- •Загальні вказівки
- •Опис роботи програми simc (intsim)
- •Приклад моделювання та розв’язку лп-задачі за допомогою програми simc
- •Індивідуальні завдання до лабораторної роботи
- •Лабораторна робота 10 моделювання транспортних задач та їх
- •Порядок виконання роботи
- •Загальні вказівки
- •Побудова початкового(вихідного) опорного плану
- •Алгоритм методу потенціалів
- •Приклад моделювання та розв’язку т-задачі методом потенціалів
- •Завдання до лабораторної роботи
- •Лабораторна робота 11
- •Лабораторна робота 12
- •Загальні вказівки
- •Загальна методика розв’язання задачі методом динамічного програмування
- •Методика розв’язання задачі оптимального розподілу коштів на розширення виробництва методом динамічного програмування
- •Приклад розв’язання задачі оптимального розподілу коштів методом динамічного програмування
- •Завдання до лабораторної роботи
- •Продовження таблиці 36
- •Список рекомендованої літератури
- •Додаток а завдання до лабораторної роботи 9 Задача 1
- •Задача 2
- •Задача 3
- •Задача 4
- •Задача 5
- •Задача 6
- •Задача 7
- •Задача 8
- •Задача 9
- •Задача 10
- •Задача 11
- •Задача 12
- •Задача 13
- •Задача 14
- •Задача 15
- •Задача 16
- •Задача 17
- •Задача 18
- •Задача 19
- •Задача 20
- •Задача 21
- •Задача 22
- •Задача 23
- •Задача 24
- •Задача 25
- •84313, М. Краматорськ, вул. Шкадінова, 72.
Багатовимірних задач оптимізації
Мета роботи: набути практичних навичок розробки алгоритмів і програм оптимізації багатовимірних функцій методами нульового порядку, зокрема методом прямого пошуку; навчитися розв’язувати системи рівнянь методами оптимізації.
Порядок виконання роботи
1 Ознайомтеся з методикою, наведеними програмами і прикладом розв’язання задачі мінімізації функції трьох змінних методом прямого пошуку.
2 Опишіть роботу алгоритму прямого пошуку.
3 Напишіть підпрограму-функцію MODEL для заданої функції (табл. 11).
4 Виберіть вихідні дані для розв’язання задачі мінімізації функції трьох змінних.
5 Складіть програму оптимізації функції, використавши процедуру OPTPOISK. У програмі передбачте відтворення траєкторії руху базисної точки в координатах x1 О x2, x1 O x3, x2 O x3.
6 Розв’яжіть систему рівнянь (табл. 12) одним з методів оптимізації (для варіантів з непарними номерами застосуйте метод найшвидшого спуску, з парними - метод прямого пошуку).
7 Налагодьте програму і виконайте розрахунки на ЕОМ.
Загальні вказівки
При оптимізації методами нульового порядку для визначення напрямку спуску не потрібно обчислювати похідні цільової функції. Напрямок мінімізації в даному випадку цілком визначається послідовним обчисленням значень функції що мінімізується. Одним з методів нульового порядку є метод прямого пошуку, що має також назву метод Хука-Дживса.
Алгоритм методу прямого пошуку
Алгоритм методу прямого пошуку включає наступні етапи.
Етап
1. Задати значення координат xi0
,
i=
початкової точки X0
та вектор зміни координат X=(x1,
x2
,...,
xn)
для процесу обстеження околу точки,
найменше припустиме значенням
компонент вектора X.
Етап 2. Вважати, що X0 є базисною точкою ХБ, і обчислити значення f(XБ).
Етап 3. Циклічно змінювати кожну координату точки ХБ на величину xi, тобто розглядати послідовність точок:
X = (x1Б, x2Б, ..., xiБ xi, ..., xnБ). (17)
При
цьому обчислювати значення f(X)
і порівнювати їх із значеннями f(XБ).
Якщо f(X)<f(XБ),
то відповідна координата xiБ
,
i=
набуває нового значення, обчисленого
по одному з виразів (17). У противному
випадку значення цієї координати
залишається незмінним. Після зміни
останньої координати зафіксувати точку
X1.
Якщо f(X1)<f(XБ),
то перейти до етапу 4. У противному
випадку – до етапу 8.
Етап 4. Здійснити спуск із точки X1 у точку X2:
X2 = X1 + (X1 - XБ) = 2X1 - XБ (18)
або в координатній формі –
xi2
= 2xi1
- xiБ
,
i=
.
Обчислити значення f(X2).
Етап 5. Як і на етапі 3, циклічно змінювати кожну координату точки X2 відповідно до формули (17), здійснюючи порівняння відповідних значень f(X) зі значенням f(X2). Після зміни останньої координати зафіксувати точку X3. Якщо f(X3)<f(X1), то перейти до етапу 6; у противному випадку - до етапу 7.
Етап 6. Вважати, що X1 є новою базисною точкою XБ, а X3 є точкою X1, і повернутися до етапу 4.
Етап 7. Вважати, що Х1 є базисною точкою ХБ, і повернутися до етапу 3.
Етап 8. Порівняти значення xi і . Якщо xi <, то обчислення припинити. У противному випадку зменшити значення xi і повернутися до етапу 3.
