![](/user_photo/2706_HbeT2.jpg)
MOP
.pdf1. Приведемо матрицю до такого вигляду, щоб у кожному стовпці й кожному рядку знаходився хоча б один нуль. Для цього знайдемо в кожному рядку матриці мінімальний елемент і віднімемо його з усіх елементів відповідного рядка. Аналогічні перетворення виконаємо також з елементами стовпців.
3 |
7 |
5 |
8 |
|
0 |
4 |
2 |
5 |
0 |
2 |
2 |
2 |
|||||||
3 |
|||||||||||||||||||
|
|
|
|
|
|
|
|
0 |
2 |
2 |
3 |
|
|
0 |
0 |
2 |
0 |
|
|
|
2 |
4 |
4 |
5 |
|
2 |
|
|
|
|
|||||||||
|
4 |
7 |
2 |
8 |
|
2 |
|
2 |
5 |
0 |
6 |
|
|
2 |
3 |
0 |
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
7 |
3 |
8 |
|
3 |
|
6 |
4 |
0 |
5 |
|
|
6 |
2 |
0 |
2 |
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
2 |
0 |
3 |
|
|
|
|
|
|
|
2.Якщо після першого кроку можливий вибір чотирьох незалежних нулів,
тоді можна стверджувати, що задача вирішена. Незалежні нулі для зручності будемо позначати (*). При розставленні позначок найкраще вибирати рядок або стовпець, що містять найменшу кількість нулів. У цьому рядку (стовпці)
вибираємо нуль, позначаємо його і викреслюємо інші нулі в рядку або стовпці, на перетинанні яких знаходиться вибраний (або незалежний) нуль.
Позначки ставимо доти, поки в матриці існують вільні (непозначені або невикреслені) нулі.
|
|
0* |
2 |
2 |
2 |
|
|
|
|
|
|
0* |
|
|
|
|
|
|
|
0 |
2 |
0 |
У розглянутому прикладі не вдалося відразу ж |
|||
|
|
|
|
|
* |
|
|
|
|
2 |
3 |
0 |
3 |
|
|||
|
|
|
|
|
||||
|
|
6 |
2 |
0 |
2 |
|
|
|
|
|
|
|
|||||
|
одержати оптимальне рішення, отже, переходимо на виконання третього |
|||||||
|
кроку. |
|
|
|
|
|
|
|
3. |
Проведемо мінімальне число горизонтальних і вертикальних ліній, що |
|||||||
|
перетинають, принаймні, один раз усі нулі . Для задач невеликої розмірності |
|||||||
|
візуально легко нанести шукані лінії, для більш складних зручно використати |
|||||||
|
насупний алгоритм: |
|
|
|
|
|
1.Позначаємо всі рядки, що не містять незалежних нулів.
2.Позначаємо всі стовпці, що містять нуль хоча б в одному позначеному рядку.
23
![](/html/2706/746/html_CcfkwB_SfY.KVqQ/htmlconvd-7o3UAl22x1.jpg)
3. Позначаємо всі рядки, що містять незалежні нулі в позначених стовпцях.
Кроки 2 і 3 виконуємо доти, поки можливо ставити позначки. Далі викреслюємо непозначені рядки і позначені стовпці.
|
0* |
2 |
2 |
2 |
|
|
|
|
0* |
2 |
2 |
2 |
|
|
|
|
0* |
2 |
2 |
2 |
|
|
|
|
|
0* |
2 |
|
2 |
2 |
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
0* |
|
|
|
|
|
|
|
|
|
|
0* |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0* |
2 |
0 |
|
|
0 |
2 |
0 |
|
|
0 |
2 |
0 |
|
|
|
0 |
0* |
|
2 |
0 |
|
|
||||||||||||||||||||
|
|
|
|
* |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
|
|
|
* |
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
2 |
3 |
0 |
|
3 |
|
|
|
|
2 |
3 |
0 |
|
3 |
|
|
|
|
2 |
3 |
0 |
|
3 |
|
|
|
2 |
3 |
0 |
|
3 |
|
|||||||||||
|
|
|
0 |
|
|
|
|
|
6 |
2 |
0 |
2 |
|
|
|
|
6 |
2 |
0 |
2 |
|
|
|
|
6 |
2 |
|
0 |
2 |
|
|
||||||||||||
|
6 |
2 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Якщо виявилося, що кількість ліній дорівнює n ,тоді необхідно повернутися на попередній крок (позначки нулів) і знову вибрати незалежні нулі. Такий варіант можливий, якщо при проставленні позначок 2 або більше нулів у рядку мали «однакове право» бути незалежними.
4. Серед елементів, через які не пройшла жодна з ліній, вибираємо найменший. Віднімаємо це число зі всіх елементів, через які не пройшла жодна лінія, і додаємо його до всіх елементів, через які проведені дві лінії.
|
0* |
2 |
2 |
2 |
|
|
|
0 |
2 |
4 |
2 |
||||
|
|
|
0* |
|
|
|
|
|
|
|
0 |
|
|
0 |
|
|
0 |
2 |
0 |
|
|
|
0 |
4 |
|
||||||
|
2 |
|
|
* |
|
|
|
0 |
1 |
0 |
1 |
|
|||
|
|
|
|
||||||||||||
|
3 |
0 |
|
3 |
|
|
|
|
|||||||
|
|
|
|
0 |
|
|
|
|
|
4 |
0 |
0 |
0 |
|
|
|
6 2 |
2 |
|
|
|
|
5.Повертаємося на крок вибору незалежних нулів. У розглянутому прикладі
|
|
|
|
1 |
2 |
|
3 |
4 |
|
|
|
|
|
|
1 |
|
2 |
|
3 |
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
1 |
|
|
0* |
2 |
4 |
2 |
|
|
1 |
|
|
0* |
|
2 |
|
4 |
2 |
|
||
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
0 |
0* |
4 |
0 |
|
або |
2 |
|
0 |
|
0 |
|
4 |
0* |
|||||
3 |
|
|
0 |
|
* |
|
3 |
|
|
0 |
|
|
|
* |
|
|||||
|
|
1 |
0 1 |
|
|
|
|
|
1 |
0 1 |
|
|||||||||
4 |
|
|
4 |
0 |
0 |
* |
|
4 |
|
|
4 |
|
* |
|
0 |
|
||||
|
|
0 |
|
|
|
|
|
0 0 |
|
одержуємо відразу два оптимальних рішення:
1-е завдання 1-й ресурс
2-е завдання 2-й ресурс (або на 4-й ресурс)
3-е завдання 3-й ресурс
4-е завдання 4-й ресурс (або на 2-й ресурс)
24
У результаті такого призначення система виконає всі завдання за 17 умовних одиниць часу.
У тому випадку, якщо необхідно вирішити задачу отримання максимального значення функції цілі, можна скористатися наступною формулою переходу, що справедлива для будь-якої задачі лінійного і нелінійного програмування: min (L) = - max (-L) (тобто елементи матриці С домножити на (-1) ).
ЗАВДАННЯ №4
У розподільній системі опрацювання даних у деякий момент часу є n
ресурсів готових до виконання завдань. У систему надходить n завдань. Відома якість виконання завдань кожним ресурсом (коефіцієнти матриці С). Потрібно призначити кожному ресурсу своє завдання таким чином, щоб якість виконання всіх завдань була максимальною.
|
|
5 6 5 |
8 6 |
|
|
7 |
2 |
6 |
5 5 |
||||||||
|
|
|
4 |
8 |
6 |
9 5 |
|
|
|
|
2 |
8 |
9 |
7 3 |
|
||
1 |
|
|
|
11 |
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
C |
|
4 |
4 |
8 |
10 9 |
C |
|
7 |
8 |
6 |
6 10 |
||||||
|
ij |
|
|
|
|
|
|
|
|
|
ij |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
5 4 1 |
5 4 |
|
|
3 |
9 |
8 |
8 8 |
||||||||
|
|
|
7 |
9 |
4 |
2 9 |
|
|
|
|
1 |
4 |
7 |
1 6 |
|
||
|
|
|
|
|
|
|
|
||||||||||
|
|
3 6 6 |
4 |
7 |
|
|
4 |
3 |
2 |
1 1 |
|||||||
|
|
|
2 |
8 |
4 |
3 |
4 |
|
|
|
|
1 |
3 |
5 |
6 7 |
|
|
2 |
|
|
|
12 |
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
C |
|
7 |
4 |
6 |
5 |
5 |
C |
|
4 |
1 |
5 |
2 7 |
|||||
|
ij |
|
|
|
|
|
|
|
|
ij |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
5 9 1 |
2 |
4 |
|
|
4 |
4 |
9 |
10 8 |
|||||||
|
|
|
6 |
7 |
2 |
4 |
8 |
|
|
|
|
2 |
7 |
3 |
4 2 |
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
5 6 4 |
5 |
6 |
|
|
2 |
4 6 5 7 |
|||||||||
|
|
|
4 |
5 |
3 |
2 |
3 |
|
|
|
|
2 |
10 5 2 3 |
|
|||
3 |
|
|
|
13 |
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
C |
|
6 |
4 |
4 |
7 |
2 |
C |
|
4 |
6 4 7 4 |
|||||||
|
ij |
|
|
|
|
|
|
|
|
ij |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
6 3 2 |
1 |
5 |
|
|
8 |
3 5 1 6 |
|||||||||
|
|
|
9 |
7 |
3 |
2 |
6 |
|
|
|
|
5 |
9 3 2 7 |
|
|||
|
|
|
|
|
|
|
|
||||||||||
|
|
2 5 3 |
4 7 |
|
|
5 |
0 6 8 4 |
||||||||||
|
|
|
6 1 2 |
5 3 |
|
|
|
|
5 |
2 3 0 6 |
|
||||||
4 |
|
|
|
14 |
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
C |
|
2 2 4 |
1 4 |
C |
|
3 |
4 4 3 7 |
||||||||||
|
ij |
|
|
|
|
|
|
|
|
ij |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
5 7 5 |
1 6 |
|
|
3 |
15 7 2 5 |
||||||||||
|
|
|
5 9 3 |
2 7 |
|
|
|
|
6 |
17 7 4 5 |
|
||||||
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
25 |
|
|
|
|
|
|
|
|
|
|
8 7 5 |
1 2 |
|
|
4 |
6 3 6 4 |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
|
|
1 6 4 |
16 3 |
15 |
|
|
5 |
11 4 11 3 |
||
|
|
|
|
3 7 |
|
|
|
2 6 5 0 |
||||
C |
ij |
6 2 2 |
C |
ij |
7 |
|||||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
||||
|
|
|
1 5 8 |
4 8 |
|
|
6 |
3 1 3 3 |
||||
|
|
|
|
2 7 6 |
|
|
|
|
6 |
|
|
|
|
|
|
|
9 3 |
|
|
|
0 9 6 8 |
||||
|
|
|
5 5 9 |
4 6 |
|
|
5 |
6 |
4 |
8 5 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
|
|
3 7 2 |
2 5 |
16 |
|
|
3 |
6 |
6 |
7 3 |
|
|
|
|
9 9 |
|
|
|
|
|
9 10 |
||
C |
ij |
6 6 2 |
C |
ij |
7 |
2 |
3 |
|||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
||||
|
|
|
7 6 1 |
1 4 |
|
|
2 |
1 |
2 |
5 8 |
||
|
|
|
|
7 9 4 |
|
|
|
|
1 |
4 |
7 |
|
|
|
|
|
2 9 |
|
|
|
1 6 |
||||
|
|
|
3 2 6 |
9 7 |
|
|
7 |
9 |
6 |
5 1 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
|
|
7 3 6 |
1 4 |
17 |
|
|
5 |
1 |
7 |
5 7 |
|
|
|
|
6 5 |
|
|
|
|
|
3 7 |
||
C |
ij |
9 5 1 |
C |
ij |
3 |
2 |
4 |
|||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
||||
|
|
|
4 8 8 |
1 4 |
|
|
6 |
9 |
6 |
4 8 |
||
|
|
|
|
6 7 2 |
|
|
|
|
2 |
7 |
3 |
|
|
|
|
|
4 8 |
|
|
|
4 2 |
||||
|
|
|
2 3 7 |
2 6 |
|
|
5 |
3 |
6 |
5 7 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
|
|
4 2 4 |
8 3 |
18 |
|
|
3 |
6 |
9 5 3 |
|
|
|
|
|
8 2 |
|
|
|
|
9 6 4 |
|||
C |
ij |
4 2 3 |
C |
ij |
6 |
7 |
||||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
||||
|
|
|
3 2 5 |
3 5 |
|
|
7 |
1 |
5 |
10 6 |
||
|
|
|
|
9 7 3 |
|
|
|
|
5 |
9 |
3 |
|
|
|
|
|
2 6 |
|
|
|
2 7 |
||||
|
|
|
3 6 1 |
7 4 |
|
|
7 |
6 1 4 2 |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
|
|
8 9 4 |
10 6 |
19 |
|
|
5 |
6 4 9 3 |
||
|
|
|
|
5 7 |
|
|
|
1 11 6 7 |
||||
C |
ij |
4 6 9 |
C |
ij |
9 |
|||||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
||||
|
|
|
2 5 6 |
9 5 |
|
|
9 |
10 5 4 8 |
||||
|
|
|
|
6 9 7 |
|
|
|
|
2 |
|
|
|
|
|
|
|
4 5 |
|
|
|
7 6 9 3 |
||||
|
|
|
4 2 3 |
9 4 |
|
|
4 |
2 |
5 |
9 8 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
|
6 0 1 |
7 3 |
20 |
|
|
0 |
4 |
6 |
0 5 |
|
|
|
1 4 9 |
7 0 |
|
|
|
|
|
0 9 |
|||
C |
ij |
C |
ij |
1 |
5 |
7 |
||||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|||||
|
|
|
8 4 1 |
7 5 |
|
|
4 |
6 |
5 |
9 6 |
||
|
|
|
|
|
|
|
|
5 |
7 |
0 |
|
|
|
|
|
6 0 9 |
6 5 |
|
|
|
3 1 |
ЧАСТИНА 2. НЕЛІНІЙНЕ ПРОГРАМУВАННЯ
МЕТОДИ ОДНОВИМІРНОЇ ПОШУКОВОЇ ОПТИМІЗАЦІЇ
Задача оптимізації, в якій характеристична міра задана функцією однієї змінної, належить до найбільш простого типу оптимізаційних задач. Проте аналіз задач такого типу займає центральне місце в оптимізаційних дослідженнях
26
як теоретичної, так і практичної спрямованості. Це пов'язано з тим, що одновимірна оптимізація часто використовується для аналізу підзадач, що виникають при реалізації ітеративних процедур, орієнтованих на рішення багатовимірних задач оптимізації.
ВЛАСТИВОСТІ ФУНКЦІЙ ОДНІЄЇ ЗМІННОЇ f (x) для всіх x S x : a x b
У теорії оптимізації f називається цільовою функцією, а S - припустимою областю, множиною точок, що задовольняють обмеженням, або областю припустимих значень x.
В інженерних додатках існують такі випадки, коли доводиться використовувати розривні функції. Очевидно, залежно від того, чи є дослід-
жувана функція безупинною або розривною, а також залежно від структури припустимої області для реалізації процедури пошуку точок оптимуму функції варто використовувати різні методи
Монотонні функції. Функція f(x) є монотонною (як при зростанні, так і при спаданні), якщо для двох довільних точок x1 і x2 , таких, що x1 x2,
виконуються одна з наступних нерівностей:
(монотонно зростаюча функція), (монотонно спадна функція).
Визначення. Функція f(x) є унімодальною на відрізку a x b у тому і тільки тому випадку, якщо вона є монотонною з обох сторін від єдиної на розглянутому інтервалі оптимальної точки x . Іншими словами, якщо x - єдина точка мінімуму f(x) на відрізку a x b , то f(x) виявляється унімодальною на даному інтервалі тоді і тільки тоді, коли для точок x1 і x2
із x x1 x2 випливає, що
і
з x x1 x2 випливає, що
Унімодальна функція не обов'язково повинна бути безупинною.
27
![](/html/2706/746/html_CcfkwB_SfY.KVqQ/htmlconvd-7o3UAl26x1.jpg)
КРИТЕРІЇ ОПТИМАЛЬНОСТІ
Функція f(x), визначена на множині S, досягає свого глобального мінімуму в точці x S у тому і тільки тому випадку, якщо f ( x ) f ( x ) для всіх x S.
Функція f(x), визначена на множині S, має локальний мінімум (відносний мінімум) у точці x S у тому і тільки тому випадку, якщо f ( x ) f ( x ) для всіх x , віддалених від x на відстань , тобто якщо існує 0, таке, що для всіх x ,
що задовольняють умові x x , виконується нерівність f ( x ) f ( x ).
( 1. Якщо функція має властивість унімодальності, то локальний мінімум автоматично є глобальним мінімумом.
2.Якщо функція не є унімодальною, то можлива наявність декількох локальних оптимумів; при цьому глобальний мінімум можна визначити шляхом перебору всіх локальних оптимумів і вибору найменшого з
них.)
Теорема. Необхідна та достатня умови того, що x* є точкою локального мінімуму (максимуму) функції f, що двічі диференціюється на відкритому інтервалі (a , b), виражаються наступним співвідношеннями:
f
1.x x x 0.
|
2f |
|
0 |
0 . |
|
|
|
|
|
|
|
|
|
2. |
x2 |
|
|
|
|
|
|
|
|
|
|
||
|
x x |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
f |
|
|
0. |
|
Стаціонарною точкою називається точка |
x |
|
, для якої |
|
|
|
|
||||||
x |
|
|
|||||||||||
|
|
|
|
||||||||||
Теорема. Нехай у точці x перші (n-1) |
|
|
x x |
|
|||||||||
|
|
|
|||||||||||
похідні функції звертаються в нуль, |
апохідна порядку n відмінна від нуля.
(1)Якщо n - непарне, те x - точка перегину.
(2)Якщо n - парне, те x - точка локального оптимуму.
Крім того,
28
(а) якщо ця похідна позитивна, то x - точка локального мінімуму; (б) якщо ця похідна негативна, то x - точка локального максимуму.
НАБЛИЖЕНІ МЕТОДИ ОДНОВИМІРНОЇ БЕЗУМОВНОЇ ОПТИМІЗАЦІЇ
У тому випадку, якщо пошук екстремуму функції класичним методом з
використанням необхідної та достатньої умов є неможливим, можна застосувати
один з наближених методів одновимірної безумовної оптимізації. Для цього
спочатку необхідно визначити інтервал існування точкі екстремуму, а потім
проводити пошук згідно алгоритму обраного методу.
Метод розподілу інтервалу навпіл.Розглянутий метод дозволяє виключати
в точності половину інтервалу на кожній ітерації. Іноді цей метод називають
трьохкрапковим пошуком на рівних інтервалах, оскільки його реалізація
заснована на виборі трьох точок, рівномірно розподілених в інтервалі пошуку.
Алгоритм методу:
Покласти xm =(a +b)/2 і L =b-a. Обчислити значення f(xm ).
Покласти x1=a+L/4 і x2=b-L/4. Зауважимо, що точки x1, x2 і xm поділяють інтервал (a ,b) на чотири рівні частини. Обчислити значення f(x1) і f(x2).
Порівняти f(x1), f(x2) і f(xm).
Якщо f(x1)< f(xm), виключити інтервал (xm ,b) , поклавши b =xm. Середньою точкою інтервалу пошуку стає точка x1. Отже, необхідно покласти xm=x1 і f(xm)=f(x1).
Якщо f(x2)< f(xm), виключити інтервал (a ,xm) , поклавши a =xm. Середньою точкою інтервалу пошуку стає точка x2. Отже, необхідно покласти xm=x2 і f(xm)=f(x2).
Якщо f(x1) f(xm) і f(x2) f(xm), виключити інтервал (a ,x1) і (x2 ,b) .
Покласти a=x1 і b=x2 . Зауважимо, що xm продовжує залишатися середньою точкою нового інтервалу.
Обсислити L=b-a. Якщо розмір L заданої точності Eps, закінчити пошук. У противному випадку повернутися до пункту, позначеного
У якості точки оптимуму вибрати точку Хопт. = xm, Fопт. = f(xm).
Метод золотого перетину.Схема пошуку, при котрій спробні точки поділяють інтервал у відношенні 0. 61803, відома за назвою пошуку за
29
![](/html/2706/746/html_CcfkwB_SfY.KVqQ/htmlconvd-7o3UAl28x1.jpg)
допомогою методу золотого перетину. Зауважимо, що після двох обчислень
значень функції кожне наступне обчислення дозволяє виключити підінтервал,
розмір якого складає (1- )-ю частку від інтервалу пошуку.
Алгоритм методу:
x1
Покласти L =b-a,
x2
|
|
|
|
|
|
|
|
a |
3 5 |
|
L; |
||||
2 |
|
|
|||||
|
|
|
. Обчислити значення f(x1 ), f(x2). |
||||
|
|
|
|
|
|
|
|
a |
|
|
5 1 |
|
|||
|
|
L |
|||||
|
|
|
|||||
|
2 |
|
|
|
Порівняти f(x1), f(x2).
Якщо f(x1)> f(x2), виключити інтервал (а, x1) , поклавши а=x1, x1=x2, f(x1)=f(x2), L =b-a . Обчислити x2 і f(x2) за формулами, згаданими раніше.
Якщо f(x1) f(x2), виключити інтервал (x2 ,b) , поклавши b =x2 , x2=x1 , f(x2)=f(x1), L =b-a . Обчислити x1 і f(x1) за формулами,
згаданими раніше.
Якщо розмір L заданої точності Eps, закінчити пошук. У противному випадку повернутися до
Як точку оптимуму вибрати точку Хопт. =(a+b)/2. Обчислити значення функції в цій точці.
Метод Фібоначі. Схема пошуку заснована на підрахунку і використанні
чисел Фібоначі, що обчислюються за наступним правилом: наступне число
Фібоначі дорівнює сумі двох попередніх чисел
F1=F2=1, Fi+2 =Fi + Fi+1 , для будь-якого значення i 1.
{ 1, 1, 2 (1+1), 3(1+2), 5(2+3), 8(3+5), 13(5+8), 21 і т.д. }
Алгоритм методу:
Обчислювати числа Фібоначі доти, поки не виконається наступна умова
F |
|
b a |
F |
|
|
. Надалі необхідно буде виконати N=i кількість |
|||
i 1 |
|
Eps |
i 2 |
|
|
|
|
|
ітерацій (першою ітерацією є підготовчий етап).
|
|
|
|
a |
|
FN |
|
|
|
|
|
|
|
x1 |
|
|
|
L, |
f (x1 ); |
||||
|
|
FN 2 |
|||||||||
|
|
|
|
|
|
|
|
|
|
||
|
Підготовчий етап: обчислити, L= b-a, |
|
|
|
|
FN 1 |
|
|
|
|
|
x |
|
a |
|
|
L, |
f (x |
|
) |
|||
|
|
|
2 |
|
|
FN 2 |
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
|
|
|
|
|
|
|
|
|
|
Для к від к=2 до к=N.
Порівняти f(x1), f(x2).
Якщо f(x1)> f(x2), виключити інтервал (а ,x1) , поклавши а =x1,
|
|
a |
FN K 2 |
|
|
|
|
x2 |
L, f (x2 ) |
|
|||
x1=x2, f(x1)=f(x2). Обчислити |
FN 2 |
. |
||||
|
|
|
||||
|
|
|
|
|||
Якщо f(x1) f(x2), виключити інтервал (x2 ,b) , |
поклавши b =x2 , |
|
a |
FN |
K 1 |
x1 |
|||
|
|
||
x2=x1 , f(x2)=f(x1). Обчислити |
|
FN 2 |
|
|
|
Збільшити значення к на одиницю.
Закінчити пошук. Точкою оптимуму буде точка Хопт. значення функції в цій точці.
L, f (x1 ) .
=х1=х2. Обчислити
Для зручності виконання завдання всі обчислення краще заносити в
таблицю наступного виду:
для методу розподілу інтервалу навпіл:
№ |
|
A |
b |
|
L=b-a |
|
X1 |
|
|
Xm |
|
|
X2 |
|
F(X1) |
|
F(Xm) |
|
F(X2) |
|||||||||||
ітерац. |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
для методу золотого перетину: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
№ |
|
A |
|
|
b |
|
L=b-a |
|
|
X1 |
|
|
X2 |
|
F(X1) |
F(X2) |
|
||||||||||
|
|
ітерац. |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
для методу Фібоначі: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
№ |
|
|
|
A |
|
b |
|
X1 |
|
X2 |
|
F(X1) |
F(X2) |
|
|
|
|||||||||
|
|
|
|
|
ітерац. |
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Розглянемо наступну задачу:
F (x) (100 x)2 min на інтервалі [90;120] з точністю Еps =1.
Метод розподілу інтервалу навпіл:
№ |
а |
B |
L = |
X1 |
Xm |
X2 |
F(X1) |
F(Xm) |
F(X2) |
|
іт. |
b-a |
|||||||||
|
|
|
|
|
|
|
|
|||
1 |
90 |
120 |
30 |
97.5 |
105 |
112.5 |
2.52 |
52 |
12.52 |
|
|
|
|
|
|
|
|
|
|
|
|
2 |
90 |
105 |
15 |
93.75 |
97.5 |
102.25 |
6. 252 |
2.52 |
2. 252 |
|
|
|
|
|
|
|
|
|
|
|
|
3 |
97.5 |
105 |
7.5 |
100.37 |
102.25 |
104.12 |
0. 372 |
2. 252 |
4. 122 |
|
|
|
|
|
|
|
|
|
|
|
|
4 |
97.5 |
102.25 |
3.75 |
99.43 |
100.37 |
101.01 |
0. 572 |
0. 372 |
1. 012 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
|
|
|
5 |
99.43 |
101.01 |
1.87 |
99.9 |
100.37 |
100.84 |
0.12 |
0. 372 |
0. 842 |
|
|
|
|
|
|
|
|
|
|
6 |
99.43 |
100.37 |
0.94 |
|
99.9 |
|
|
0.01 |
|
|
|
|
|
|
|
|
|
|
|
На 6-й ітерації довжина відрізка L 0.94 < Eps. Отже, задача вирішена: точка мінімуму х 99.9, значення функції в цій точці Lmin 0.01.
Метод золотого перетину:
|
а |
b |
L = |
X1 |
X2 |
F(X1) |
F(X2) |
|
b-a |
||||||
|
|
|
|
|
|
|
|
1 |
90 |
120 |
30 |
101.46 |
108.54 |
1. 462 |
8. 542 |
|
|
|
|
|
|
|
|
2 |
90 |
108.54 |
18.54 |
97.08 |
101.46 |
2. 922 |
1. 462 |
|
|
|
|
|
|
|
|
3 |
97.08 |
108.54 |
11.46 |
101.46 |
104.16 |
1. 462 |
4. 162 |
|
|
|
|
|
|
|
|
4 |
97.08 |
104.16 |
7.08 |
99.78 |
101.46 |
0. 222 |
1. 462 |
|
|
|
|
|
|
|
|
5 |
97.08 |
101.46 |
4.38 |
98.75 |
99.78 |
1. 252 |
0. 222 |
|
|
|
|
|
|
|
|
6 |
98.75 |
101.46 |
2.71 |
99.78 |
100.42 |
0. 222 |
0. 422 |
|
|
|
|
|
|
|
|
7 |
98.75 |
100.42 |
1.67 |
99.39 |
99.78 |
0. 612 |
0. 222 |
|
|
|
|
|
|
|
|
8 |
99.39 |
100.42 |
1.03 |
99.78 |
100.03 |
0. 222 |
0. 032 |
|
|
|
|
|
|
|
|
9 |
99.78 |
100.42 |
0.64 |
100.03 |
|
0. 032 |
|
|
|
|
|
|
|
|
|
На 9-й ітерації довжина відрізка L 0.64 < Eps. Отже, задача вирішена: точка мінімуму х = (99.78+100. 42)/2 100. 1, значення функції в цій точці Lmin 0.01.
Метод Фібоначі :
(b-a)/Eps = 30; F1=F2=1, F3=2, F4=3, F5=5, F6=8, F7=13, F8=21, F9=34. F8=21<30< F9=34, отже, необхідно буде виконати 9-2=7 ітерацій для досягнення необхідної точності Eps ( N=7 ).
K |
а |
b |
X1 |
X2 |
F(X1) |
F(X2) |
|
|
|
|
|
|
|
1 |
90 |
120 |
101.47 |
108.53 |
1. 472 |
8. 532 |
|
|
|
|
|
|
|
2 |
90 |
108.53 |
97.06 |
101.47 |
2. 942 |
1. 472 |
|
|
|
|
|
|
|
3 |
97.06 |
108.53 |
101.47 |
104.12 |
1. 472 |
4. 122 |
|
|
|
|
|
|
|
4 |
97.06 |
104.12 |
99.71 |
101.47 |
0. 292 |
1. 472 |
|
|
|
|
|
|
|
5 |
97.06 |
101.47 |
98.82 |
99.71 |
1. 182 |
0. 292 |
|
|
|
|
|
|
|
6 |
98.82 |
101.47 |
99.71 |
100.58 |
0. 292 |
0. 582 |
|
|
|
|
|
|
|
7 |
98.82 |
100.58 |
99.71 |
99.71 |
0. 292 |
0. 292 |
|
|
|
|
|
|
|
|
|
|
32 |
|
|
|