- •Н.Г. Лядина, е.А. Ермакова, л.В. Уразбахтина
- •Математические методы в экономике апк
- •Нелинейное и выпуклое программирование
- •Учебное пособие
- •Содержание
- •Введение
- •Нелинейное программирование Постановка и особенности задач нелинейного программирования
- •4. Точки, соответствующие оптимальному решению, могут находиться как на границе, так и внутри области допустимых решений.
- •5. Целевая функция может иметь несколько локальных экстремумов, из которых затем находят точку глобального оптимума.
- •2. Область допустимых решений может иметь несколько оптимальных решений, находящихся в отличие от линейного программирования не на отрезке. Пример на рисунке 1.
- •3. Область допустимых решений может состоять из нескольких частей.
- •Контрольные вопросы
- •Экстремум функции1
- •Нахождение безусловных экстремумов непрерывных дифференцируемых функций
- •Контрольные вопросы
- •Индивидуальные задания 1
- •Нахождение условных экстремумов. Метод множителей Лагранжа5
- •Б) Алгоритм метода множителей Лагранжа
- •Контрольные вопросы
- •Выпуклое программирование
- •Свойства выпуклых и гладких функций
- •Классификация задач выпуклого программирования
- •Экономические показатели производства культур
- •Формы записи задачи выпуклого программирования
- •Градиент и производная по направлению
- •Алгоритм решения специальной задачи выпуклого программирования. Метод Франка-Вульфа 10
- •Индивидуальные задания 3
- •Методы поиска – методы решения задач выпуклого программирования Метод последовательного изменения аргументов (координат)
- •Индивидуальные задания 4
- •Индивидуальные задания 5
- •Градиентные методы Метод наискорейшего подъема (для самостоятельного изучения)
- •Метод наискорейшего спуска
- •Различные алгоритмы градиентного метода (для самостоятельного изучения)
- •Индивидуальные задания 6
- •Индивидуальные задания 7
- •Алгоритм нелокального случайного поиска на минимум целевой функции
- •Индивидуальные задания 8
- •Особенности метода локального случайного поиска
- •Индивидуальные задания 9
- •Метод штрафных функций
- •Индивидуальные задания 10
- •Квадратичное программирование (кп) Графический метод
- •Контрольные вопросы
- •Индивидуальные задания 11
- •Квадратичный симплекс-метод
- •Индивидуальные задания 12
- •Контрольные вопросы и задания
- •Тестовые задания Тесты - выпуклое программирование
- •Тесты - квадратичное программирование
- •Рекомендуемая литература
- •Словарь терминов
- •Приложение
- •Индивидуальные задания 1 - 30
- •127550, Москва, ул. Тимирязевская, 44
Методы поиска – методы решения задач выпуклого программирования Метод последовательного изменения аргументов (координат)
П
усть
необходимо найти
при условиях
Воспользуемся для этого следующим алгоритмом:
Выбираем начальную точку
,
удовлетворяющую системе ограничений
),
определяем
.Даём приращение
–й
координате:
(приращение получает лишь одна координата,
начинаем изменение координат с первой
по порядку:
).
Проверяем, принадлежит ли
области
допустимых решений, если да, то переход
к п. 4, иначе к п. 7.Определяем
.Если
, то
и
и делаем следующее приращение выбранной
координаты
.
Далее выполняем п.п.3,4,5, пока не окажется,
что при дальнейшем увеличении
–й
координаты целевая функция
возрастать уже не будет. Переход к п.7.
Если при первом приращении –й координаты
окажется, что
или
, то рассматриваем приращение
,
далее аналогично п.п. 3,4,5.После того, как прекратится увеличение
при изменении
–й
координаты (или если такого увеличения
получить не удалось), то переходим к
изменению
координаты, аналогично п.п. 3,4,5.
Замечание. Имеется несколько вариантов
этого алгоритма, которые отличаются
друг от друга правилами изменения
в процессе счета и признаком конца
поиска. Например, после каждого прохождения
всех координат изменяется
, конец вычислений определяется по
условию
,
где – сколько
угодно малое число, задающее точность
алгоритма.
Рассмотрим пример 16.
при условии
I итерация.
1. Выбираем начальную точку
2. ;
3.
,
т.е.
;
Так как новая точка удовлетворяет системе ограничений, переходим к п. 4.
4.
5. Сравниваем
и
,
так как
(6,25 >6), то
;
II итерация.
Переходим к пункту 2
2. делаем приращение для
,
3.
т.е.
, переходим к пункту 4.
4.
5. Сравниваем
и
,
так как
(7 > 6,25), то
;
III итерация.
2. Делаем ещё одно приращение для
;
,
переходим к пункту 3.
3.
, т.е.
, переходим к пункту 4.
4.
5. Сравниваем и , так как (8,25 > 7), то
;
IV итерация.
2. Делаем ещё одно приращение для
;
,
,
переход к пункту 3.
3.
,
т.е.
, переходим к пункту 4.
4.
5. Сравниваем и , так как (10 > 8,25 ), то
;
V итерация.
2. Делаем ещё одно приращение для
;
,
переходим к пункту 3.
3.
,
так как
, то переходим к пункту 4.
4.
,
т.е. начальную точку и значение целевой
функции не меняем и переходим к пункту
7.
VI итерация.
7. Переходим к изменению второй координаты:
,
,
переход к пункту 3.
3.
,
т.е.
,
переходим к пункту 4.
4.
5. Сравниваем
и
,
так как
(10,25 > 10), то
;
.
VII итерация.
2. Делаем ещё одно приращение для
,
,
3.
,
т.е.
,
переходим к к пункту 4.
4.
5. Сравниваем и ,
так как
(11 > 10,25), то
;
VIII итерация.
2. Делаем ещё одно приращение для x2:
,
, переход к пункту 3.
3.
,
так как
,
то переходим к пункту 4.
4.
,
т.е. начальную точку и значение целевой
функции не меняем и переходим к пункту
7.
IX итерация.
7. Переходим к изменению первой координаты:
2.
,
переход к пункту 3.
3. , т.е. , переходим к пункту 4.
4.
5. Сравниваем и , так как (13,25 > 11), то
;
X итерация.
2. Делаем ещё одно приращение для
,
переход к пункту 3.
3.
,
т.е.
,
переходим к пункту 4.
4.
.
5. Сравниваем
и
,
так как
(16 > 13,25), то
;
,
переходим к пункту 2
XI итерация.
2. Делаем еще одно приращение первой координаты:
x11 = x10 +x = 3+ 0,5 = 3,5
.
Переход к пункту 3.
3. (3,5; 1), так как. , то переходим к пункту 7.
7. Все координаты исчерпаны, заканчиваем
процесс вычислений, считая, что X*=
,
Заключение. Данный алгоритм может быть использован как для нахождения условного, так и безусловного экстремума. В последнем случае исключается пункт 3. (проверка новой точки на принадлежность ОДР).
