- •Тема: Методи безумовної багатомірної оптимізації першого порядку. Градієнтні методи
- •1. Короткі теоретичні відомості.
- •1.1. Загальні відомості про чисельні методи багатомірної оптимізації
- •1.2. Градієнтні методи
- •1.2.1. Загальна схема методів градієнтного спуску
- •1.2.2. Градієнтний метод з постійним кроком
- •1.2.3. Градієнтний метод із дробленням кроку
- •1.2.4. Метод найшвидшого спуску
- •1.3. Метод покоординатного спуску
- •1.4. Метод Гауса-Зейделя
- •1.5. Методи ярів
- •1.5.1. Загальна характеристика
- •1.5.2. Евристичні алгоритми
- •1.5.3. Яружні методи (Метод Гельфанда)
- •2. Завдання на лабораторну роботу
- •3. Варіанти завдання
- •3.2. Варіанти завдань
1.2.3. Градієнтний метод із дробленням кроку
У методі градієнтного спуску із дробленням кроку величина кроку k вибирається так, щоб була виконана нерівність:
,
де 0<<1 — довільно обрана постійна (та сама для всіх ітерацій). Це вимога на вибір кроку k більше твердого, чим умова убування, але має той же зміст: функція повинна убувати від ітерації до ітерації. Однак при виконанні нерівності функція буде зменшуватися на гарантовану величину, обумовлену правою частиною нерівності.
Процес вибору кроку протікає в такий спосіб. Вибираємо число >0, те саме для всіх ітерацій. На к-й ітерації перевіряємо виконання нерівності при k=. Якщо воно виконано, думаємо k= і переходимо до наступної ітерації. Якщо ні, то крок k дробимо, наприклад зменшуємо щораз у два рази, доти, поки воно не виконається.
Алгоритм градієнтного методу зі змінним кроком
Крок 1.
Задаються:
х0,
3,
— початкове значення кроку.
Обчислюється
значення градієнта
—
напрямок пошуку. Привласнюється к=0.
Крок 2.
Перевіряється умова: . Якщо виконується, то переходимо до кроку 3, інакше дробимо значення (α=α/2) і повторюємо крок 2.
Крок 3.
Визначається
точка чергового експерименту:
.
Крок 4.
Обчислюється
значення градієнта в точці хк+1:
.
Крок 5.
Якщо
,
то пошук закінчується, при цьому:
Інакше к=к+1 і переходимо до кроку 2.
Рис. 2.
Алгоритм градієнтного методу з дробленням кроку
1.2.4. Метод найшвидшого спуску
Ідея методу найшвидшого спуску
У градієнтному методі з постійним кроком величина кроку, що забезпечує убування функції f(x) від ітерації до ітерації, виявляється дуже малої, що приводить до необхідності проводити велику кількість ітерації для досягнення точки мінімуму. Тому методи спуска зі змінним кроком є більше ощадливими. Алгоритм, на кожній ітерації якого крок k вибирається з умови мінімуму функції f(x) у напрямку руху, тобто:
називається методом найшвидшого спуска. Зрозуміло, цей спосіб вибору k складніше раніше розглянутих варіантів.
Реалізація
методу найшвидшого спуска припускає
рішення на кожній ітерації досить
трудомісткої допоміжної задачі одномірної
мінімізації. Як правило, метод найшвидшого
спуска, проте, дає виграш у числі машинних
операцій, оскільки забезпечує рух із
самим вигідним кроком, тому що рішення
задачі одномірної мінімізації пов'язане
з додатковими обчисленнями тільки самої
функції f(x),
тоді як основний машинний час витрачається
на обчислення її градієнта
.
Варто мати на увазі, що одномірну мінімізацію можна робити будь-яким методом одномірної оптимізації, що породжує різні варіанти методу найшвидшого спуска.
Алгоритм методу найшвидшого спуску
Крок 1. Задаються
х0,
.
Обчислюється градієнт , напрямок пошуку. Привласнюється k=0.
Крок 2. Визначається точка чергового експерименту:
,
де k — мінімум задачі одномірної мінімізації:
Крок 3. Обчислюється значення градієнта в точці хк+1: .
Крок 4. Якщо , то пошук точки мінімуму закінчується й покладається:
Інакше k=k+1 і перехід до кроку 2.
Рис. 3.
Схема алгоритму методу найшвидшого спуску.
1.3. Метод покоординатного спуску
Ідея методу покоординатного спуску
Бажання зменшити об'єм обчислювальної роботи, необхідної для здійснення однієї ітерації методу найшвидшого спуска, привело до створення методів покоординатного спуску.
Нехай
—
початкове наближення. Обчислимо частинну
похідну по першій координаті й приймемо:
де е1={1, 0, …, 0}T — одиничний вектор вісі х1. Наступна ітерація складається в обчисленні точки х2 по формулі:
де е2={0, 1, 0, …, 0}T —одиничний вектор осі х2 і т.д.
Т
х(2)
Рис. 4.
Спуск по координатах до мінімального значення функції
Спуск по всіх координатах становить одну «зовнішню» ітерацію. Нехай k — номер чергової зовнішньої ітерації, а j-номер тієї координати, по якій відбувається спуск. Тоді формула, що визначає наступне наближення до точки мінімуму, має вигляд:
де k=0, 1, 2, …; j=1, 2, …, n.
У координатній формі формула виглядає так:
Після j=n лічильник числа зовнішніх ітерацій до збільшується на одиницю, а j приймає значення рівне одиниці.
Величина кроку k вибирається на кожній ітерації аналогічно тому, як це робиться в градієнтних методах. Наприклад, якщо k= постійно, те маємо покоординатний спуск із постійним кроком.
Алгоритму методу покоординатного спуску зі сталим кроком
Крок 1.
При k=0 задаються вихідні дані
х0,
,
.
Крок 2.
Здійснюється циклічний по j (j=1, 2, …, n) покоординатний спуск із точки хkn по формулі:
Крок 3.
Якщо
,
то пошук мінімуму закінчується, причому:
.
Інакше k=k+1 і переходимо до кроку 2.
Рис. 5.
Алгоритм методу покоординатного спуску.
