- •Н.Г. Лядина, е.А. Ермакова, л.В. Уразбахтина
- •Математические методы в экономике апк
- •Нелинейное и выпуклое программирование
- •Учебное пособие
- •Содержание
- •Введение
- •Нелинейное программирование Постановка и особенности задач нелинейного программирования
- •4. Точки, соответствующие оптимальному решению, могут находиться как на границе, так и внутри области допустимых решений.
- •5. Целевая функция может иметь несколько локальных экстремумов, из которых затем находят точку глобального оптимума.
- •2. Область допустимых решений может иметь несколько оптимальных решений, находящихся в отличие от линейного программирования не на отрезке. Пример на рисунке 1.
- •3. Область допустимых решений может состоять из нескольких частей.
- •Контрольные вопросы
- •Экстремум функции1
- •Нахождение безусловных экстремумов непрерывных дифференцируемых функций
- •Контрольные вопросы
- •Индивидуальные задания 1
- •Нахождение условных экстремумов. Метод множителей Лагранжа5
- •Б) Алгоритм метода множителей Лагранжа
- •Контрольные вопросы
- •Выпуклое программирование
- •Свойства выпуклых и гладких функций
- •Классификация задач выпуклого программирования
- •Экономические показатели производства культур
- •Формы записи задачи выпуклого программирования
- •Градиент и производная по направлению
- •Алгоритм решения специальной задачи выпуклого программирования. Метод Франка-Вульфа 10
- •Индивидуальные задания 3
- •Методы поиска – методы решения задач выпуклого программирования Метод последовательного изменения аргументов (координат)
- •Индивидуальные задания 4
- •Индивидуальные задания 5
- •Градиентные методы Метод наискорейшего подъема (для самостоятельного изучения)
- •Метод наискорейшего спуска
- •Различные алгоритмы градиентного метода (для самостоятельного изучения)
- •Индивидуальные задания 6
- •Индивидуальные задания 7
- •Алгоритм нелокального случайного поиска на минимум целевой функции
- •Индивидуальные задания 8
- •Особенности метода локального случайного поиска
- •Индивидуальные задания 9
- •Метод штрафных функций
- •Индивидуальные задания 10
- •Квадратичное программирование (кп) Графический метод
- •Контрольные вопросы
- •Индивидуальные задания 11
- •Квадратичный симплекс-метод
- •Индивидуальные задания 12
- •Контрольные вопросы и задания
- •Тестовые задания Тесты - выпуклое программирование
- •Тесты - квадратичное программирование
- •Рекомендуемая литература
- •Словарь терминов
- •Приложение
- •Индивидуальные задания 1 - 30
- •127550, Москва, ул. Тимирязевская, 44
Алгоритм нелокального случайного поиска на минимум целевой функции
Найти min Z =
при условии аj ≤ xj ≤ bj; j = 1 ÷ n,
где – выпуклая функция.
Выписываем область допустимых значений ω( аj ≤ xj ≤ bj ); где j=1÷n.
Подготавливаем начальный вектор
(а1,
а2,
..., аn)
=
(x1нижняя
граница,
x2нижняя
граница,…,
xnнижняя
граница)
=
( x10,
x20,
..., xn0
), координатами служат нижние границы
измерения координат из области допустимых
решений ω.Вводим целевую функцию Z = .
Вычисляем целевую функцию при
=
,
Z
= f(
).Вводим счетчик неудачных испытаний S = 0, N = 1000 – контрольное число.
Формируем массив случайных чисел λ.
Формируем случайный вектор
, где
,
координаты которого вычисляются по
правилу xj1
= xjнижняя
граница +
λj
ּxjверхняя
граница =
аj
+ λj
ּbj.Вычисляем целевую функцию при = , Z = f( ).
Сравниваем f( ) и f( ).
Если испытание удачное, то есть если f( ) <f( ), то переход к пункту 11, иначе переход к пункту 12.
= и Z =f( ) = f( ).
Переход к пункту 7.
Если f( ) ≥ f( ), то ведем счет неудачных испытаний S = S + 1.
Сравниваем S с N, где N – контрольное число неудачных испытаний. Если S ≤ N, то переходим к пункту 7, иначе переход к пункту 15.
Конец вычислений. Запись ответа Z =f( ) и .
Пример 18
Найти minZ = (x1 - 2)2+(x2 - 1)2
при условиях
0 ≤ x1 ≤ 3,
0 ≤ x2 ≤ 2.
I итерация.
В ыписываем область допустимых решений ω:
ω 0 ≤ x1 ≤ 3,
0 ≤ x2 ≤ 2.
Подготавливаем начальный вектор (x1нижняя граница, x2нижняя граница), (0,0).
Вводим целевую функцию Z= (x1 - 2)2+(x2 - 1)2
Вычисляем целевую функцию при = , Z =f( ) =
+
= 5
Вводим счетчик неудавшихся испытаний S = 0.
Формируем массив случайных чисел
λ (0,11; 0,17; 0,20; 0,09; 0,15; 0,71; … )
Формируем случайный вектор
= xj
нижняя
граница +
λj
ּ
xj
верхняя
граница
= 0 +0,11*3 = 0,33
= 0 +0,17*2 = 0,34
= (0,33; 0,34) ω
Схема алгоритма случайного поиска на минимум целевой функции
Вычисляем целевую функцию при = ; Z = f( ); Z = f( ) = (x1 - 2)2+(x2 - 1)2=
+
= (1,67)2
+ (0,66)2
= 2,79 + 0,44 = 3,23Сравниваем f( ) и f( ), 3,23 < 5, испытание удачное.
=
(0,33; 0,34); Z =f(
)
=f(
)
= 3,23
II итерация
1. Формируем случайный вектор
= 0 + 0,20*3 = 0,60
= 0 + 0,09*2 = 0,18
( 0,60; 0,18) ω
2. Вычисляем Z =f(
)
=
+
= (1,40)2 + (0,82)2 = 1,96 + 0,67 = 2,63
3. Сравним f( ) и f( )
2,63 < 3,23, испытание удачное.
4. = (0,60; 0,18)
Z=f( ) = f( ) = 2,63
и т. д.
Индивидуальные задания 8
Решить задачи 1-15 методом нелокального случайного поиска, в четных номерах находить максимум целевой функции, а в нечетных – минимум.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Особенности метода локального случайного поиска
Отличие алгоритма локального случайного
поиска от алгоритма нелокального
случайного поиска только в формировании
случайного вектора
.
Координаты вектора случайных чисел
вычисляются по формуле:
= xj0
+Pj
,
где
- заданное для данной задачи число,
например,
=1, т. е.
=
+
·
1.
Вектор
сам является случайным вектором,
координаты которого принадлежат
какому-то заданному интервалу,
≤ Pj
≤
.
Например, интервалу [-1, 1]. Координаты
вектора
формируются по формуле Pj
=A+ λjּB,
где λj -
число из массива случайных чисел λ.
Следовательно, = xj0 + (A+ λjּB) · .
В этой задаче можно значение
менять по формуле
=
до какого-то заданного предела .
