- •Н.Г. Лядина, е.А. Ермакова, л.В. Уразбахтина
- •Математические методы в экономике апк
- •Нелинейное и выпуклое программирование
- •Учебное пособие
- •Содержание
- •Введение
- •Нелинейное программирование Постановка и особенности задач нелинейного программирования
- •2. Область допустимых решений может иметь несколько оптимальных решений, находящихся в отличие от линейного программирования не на отрезке. Пример на рисунке 1.
- •3. Область допустимых решений может состоять из нескольких частей.
- •4. Точки, соответствующие оптимальному решению, могут находиться как на границе, так и внутри области допустимых решений.
- •5. Целевая функция может иметь несколько локальных экстремумов, из которых затем находят точку глобального оптимума.
- •Контрольные вопросы
- •Экстремум функции1
- •Нахождение безусловных экстремумов непрерывных дифференцируемых функций
- •Контрольные вопросы
- •Индивидуальные задания 1
- •Нахождение условных экстремумов. Метод множителей Лагранжа5
- •Б) Алгоритм метода множителей Лагранжа
- •Контрольные вопросы
- •Выпуклое программирование
- •Свойства выпуклых и гладких функций
- •Классификация задач выпуклого программирования
- •Экономические показатели производства культур
- •Формы записи задачи выпуклого программирования
- •Градиент и производная по направлению
- •Алгоритм решения специальной задачи выпуклого программирования. Метод Франка-Вульфа 10
- •Индивидуальные задания 3
- •Методы поиска – методы решения задач выпуклого программирования Метод последовательного изменения аргументов (координат)
- •Индивидуальные задания 4
- •Индивидуальные задания 5
- •Градиентные методы Метод наискорейшего подъема (для самостоятельного изучения)
- •Метод наискорейшего спуска
- •Различные алгоритмы градиентного метода (для самостоятельного изучения)
- •Индивидуальные задания 6
- •Индивидуальные задания 7
- •Алгоритм нелокального случайного поиска на минимум целевой функции
- •Индивидуальные задания 8
- •Особенности метода локального случайного поиска
- •Индивидуальные задания 9
- •Метод штрафных функций
- •Индивидуальные задания 10
- •Квадратичное программирование (кп) Графический метод
- •Контрольные вопросы
- •Индивидуальные задания 11
- •Квадратичный симплекс-метод
- •Индивидуальные задания 12
- •Контрольные вопросы и задания
- •Тестовые задания Тесты - выпуклое программирование
- •Тесты - квадратичное программирование
- •Рекомендуемая литература
- •Словарь терминов
- •Приложение
- •Индивидуальные задания 1 - 30
- •127550, Москва, ул. Тимирязевская, 44
Приложение
Алгоритм решения задач линейного программирования методом штрафных функций
Решить задачу линейного программирования методом штрафных функций
I. Задачу линейного программирования сводим к канонической форме
2. Вводим вспомогательную функцию – штраф wz
При решении задачи на максимум целевой функции штраф имеет вид:
При решении задачи на минимум целевой функции штраф имеет вид:
Выражение в круглых скобках – штрафы за невыполнение ограничений.
При
,
,
а
,
.
3. Находим область допустимых решений ω. Определяем нижнюю и верхнюю границу изменения каждой переменной канонической формы задачи
Xj нижняя граница ≤ Xj ≤ Xj верхняя граница
4. Задаем числа
для каждого ограничения,
5. Подготавливаем начальный вектор 0( X1 нижняя граница, X2 нижняя граница,…, Xn нижняя граница), координатами которого являются нижние границы изменения переменных из области допустимых решений ω.
6. Формируем массив случайных чисел
:
7. Вводим счетчик S = N – счетчик неудавшихся попыток. На первой итерации S=0
8.Вычисляем функцию штрафов в точке
:
9. Формируем случайный вектор , где , координаты которого вычисляются по правилу
нижняя граница +
верхняя граница (
-
число из массива случайных чисел)
10. Вычисляем функцию штрафов в точке
:
11. Сравниваем
и
,
если
>
,
то испытание удачно и переходим к пункту
12, иначе переход к пункту 13.
12. Начальному вектору придаем значение ( = ) и полагаем штраф = , переход к пункту 9.
13. Если , то вектор и штраф оставляем прежними, ведем счет неудавшихся попыток S=S+1.
Если S N, (где N – контрольное число, например, N=1000), то переход к пункту 9. Иначе переход к пункту 15.
15. Конец вычислений. Запись ответа: координат вектора и штрафа .
Блок - схема
решения задач линейного программирования методом штрафных функций на максимум целевой функции.
Индивидуальные задания 1 - 30
Задачи линейного программирования решить методом штрафных функций, выбрав одно из заданных М. М=0,0001, М=0,001, М=0,01, M=1, М=10, М=100, …Учесть, что для задачи линейного программирования штрафные функции необходимо подбирать так, чтобы избегать узких гребней, затрудняющих применение методов поиска безусловных экстремумов. Параметр М в процессе решения изменяется от малой величины до большой. Это гарантирует отсутствие узких гребней.
1. Найти max z = 2x1 + 3x2
при условиях: x1 + 4x2 ≤ 4
x1 + x2 ≤ 2
x1 ≥ 0; x2 ≥ 0
2. Найти max z = 2x1 + 3x2
при условиях: x1 - x2 ≥ 0
- x1 + 2x2 ≤ 2
x1 + x2 ≤ 4
x1 ≥ 0; x2 ≥ 0
3. Найти max z = x1 + 5x2
при условиях: 2x1 + x2 ≥ 2,0
3x1 + x2 ≤ 4
x2 ≤ 4
x1 ≥ 0; x2 ≥ 0
4. Найти min z = x1 - 3x1
при условиях: x1 - 2x2 ≤ 8
x2 ≤ 3
x1 ≥ 0; x2 ≥ 0
5. Найти max z = x1 + 4x2
при условиях: x1 + x2 ≤ 6
x1 - x2 ≤ 1
x1 ≥ 0; x2 ≥ 0
6. Найти min z = 2x1 - 4x2
при условиях: x1 - x2 ≤ 3
x1 ≤ 5
x1 + 2x2 ≥ 1
x1 ≥ 0; x2 ≥ 0
7. Найти min z = - 2x1 - 3x2
при условиях: 2x1 - 3x2 ≤ 0
x2 ≤ 5
x1 ≥ 0; x2 ≥ 0
8. Найти max z = - 2x1 - 2x2 + 2
при условиях: x1 + x2 ≥ 1
2x1 + x2 ≤ 4
x1 ≥ 0; x2 ≥ 0
9. Найти max z = - 2x1 + 2x2 + 3
при условиях: x1 + 2x2 ≥ 3
2x1 - x2 ≤ 1
x1 + x2 ≤ 2
x1 ≥ 0; x2 ≥ 0
10. Найти min z = 2x1 + 3x2 - 1
при условиях: 2x1 + x2 ≤ 3
-x1 + 2x2 ≥ 1
x1 ≥ 0; x2 ≥ 0
11. Найти min z = 4x1 + x2 + 1
при условиях: x1 + x2 ≤ 10
2x1 - x2 ≤ 10
x1 ≥ 0; x2 ≥ 0
12. Найти max z = - 8x1 - 2 x2 + 1
при условиях: 5x1 + x2 ≥ 6
3x1 - 2x2 ≤ 1
x1 + 2x2 ≥ 3
x1 ≥ 0; x2 ≥ 0
13. Найти max z = 4x1 + x2 + 2
при условиях: x1 - x2 ≥ 0
x1 + x2 ≤ 4
x1 ≥ 0; x2 ≥ 0
14. Найти max z = 9x1 + 4x2 + 2
при условиях: x1 - x2 ≥ 0
x1 + x2 ≤ 4
x1 ≥ 0; x2 ≥ 0
15. Найти max z = 3x1 - 2 x2
при условиях: x1 - x2 ≥ 0
x1 + x2 ≤ 4
x1 ≥ 0; x2 ≥ 0
16. Найти max z = 4x1 + 5x2 - 2
при условиях: x1 + 3x2 ≤ 6
x1 + x2 ≤ 2
x1 ≥ 0; x2 ≥ 0
17. Найти max z = 5x1 + 3x2 – 2
при условиях: x1 - x2 ≥ 0
x1 + 2x2 ≤ 6
-x1 + x2 ≤ 4
x1 ≥ 0; x2 ≥ 0
18. Найти max z =3 x1 + 5x2 – 2
при условиях: 2x1 + x2 ≥ 2
2x1 + x2 ≤ 4
x2 ≤ 5
x1 ≥ 0; x2 ≥ 0
19. Найти min z = 3x1 - 3x2 + 2
при условиях: x1 - 2x2 ≤ 8
x2 ≤ 4
x1 ≥ 0; x2 ≥ 0
20. Найти max z = 2x1 + 4x2 -3
при условиях: x1 + x2 ≤ 5
x1 - x2 ≤ 1
x1 ≥ 0; x2 ≥ 0
21 Найти min z = 2x1 - 4x2 +5
при условиях: x1 - x2 ≤ 3
x1 ≤ 4
x1 + 2x2 ≥ 1
x1 ≥ 0; x2 ≥ 0
22. Найти min z = 4x1 - 2x2 + 2
при условиях: 2x1 - 3x2 ≤ 0
x2 ≤ 5
x1 ≥ 0; x2 ≥ 0
23. Найти max z =2x1 - 2x2 + 2
при условиях: x1 + x2 ≥ 1
2x1 + x2 ≤ 6
x1 ≥ 0; x2 ≥ 0
24. Найти max z = 4x1 + 2x2 + 3
при условиях: x1 + 2x2 ≥ 3
2x1 - x2 ≤ 1
x1 + x2 ≤ 3
x1 ≥ 0; x2 ≥ 0
25. Найти min z = -x1 +2x2 + 5
при условиях: 2x1 + x2 ≤ 4
-x1 + 2x2 ≥ 1
x2 ≤ 2
x1 ≥ 0; x2 ≥ 0
26. Найти min z = - 4x1 + 2x2+ 10
при условиях: x1 + x2 ≤ 6
2x1 - x2 ≤ 1
x1 ≥ 0; x2 ≥ 0
27. Найти max z = 2x1 + 4x2 - 4
при условиях: 5x1 + x2 ≥ 1
3x1 - 2x2 ≤ 2
x1 + 2x2 ≥ 3
x1 ≥ 0; x2 ≥ 0
28. Найти max z = 4 + 2x1+ 3x2
при условиях: x1 - x2 ≥ 0
x1 + x2 ≤ 5
x1 ≥ 0; x2 ≥ 0
29. Найти max z = 2x1 – x2 + 5
при условиях: x1 - x2 ≥ 0
x1 + x2 ≤ 6
x1 ≥ 0; x2 ≥ 0
30. Найти max z = - 3x1 - 2 x2 + 4
при условиях: x1 - x2 ≥ 0
x1 + x2 ≤ 6
x1 ≥ 0; x2 ≥ 0
Для заметок
Учебное издание
Лядина Надежда Григорьевна
Ермакова Елена Анатольевна
Уразбахтина Людмила Валерьевна
МАТЕМАТИЧЕСКИЕ МЕТОДЫ В ЭКОНОМИКЕ АПК
Нелинейное и выпуклое программирование
Учебное пособие
Издано в авторской редакции
Корректура авторов
Отпечатано с авторского набора
Подписано в печать . Формат 60х841/16
Усл. печ.л. . Уч. изд. л. . Усл. кр.-отт.
Тираж 150 экз. Изд.21. Зак.
Издательство РГАУ – МСХА имени К.А. Тимирязева
