Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
НЕЛИНЕЙНОЕ И ВЫП ПРОГРАММИРОВАНИЕ.doc
Скачиваний:
64
Добавлен:
10.11.2019
Размер:
10.86 Mб
Скачать

Приложение

Алгоритм решения задач линейного программирования методом штрафных функций

Решить задачу линейного программирования методом штрафных функций

I. Задачу линейного программирования сводим к канонической форме

2. Вводим вспомогательную функцию – штраф wz

При решении задачи на максимум целевой функции штраф имеет вид:

При решении задачи на минимум целевой функции штраф имеет вид:

Выражение в круглых скобках – штрафы за невыполнение ограничений.

При , , а , .

3. Находим область допустимых решений ω. Определяем нижнюю и верхнюю границу изменения каждой переменной канонической формы задачи

Xj нижняя границаXjXj верхняя граница

4. Задаем числа для каждого ограничения,

5. Подготавливаем начальный вектор 0( X1 нижняя граница, X2 нижняя граница,…, Xn нижняя граница), координатами которого являются нижние границы изменения переменных из области допустимых решений ω.

6. Формируем массив случайных чисел :

7. Вводим счетчик S = N – счетчик неудавшихся попыток. На первой итерации S=0

8.Вычисляем функцию штрафов в точке :

9. Формируем случайный вектор , где , координаты которого вычисляются по правилу

нижняя граница + верхняя граница ( - число из массива случайных чисел)

10. Вычисляем функцию штрафов в точке :

11. Сравниваем и , если > , то испытание удачно и переходим к пункту 12, иначе переход к пункту 13.

12. Начальному вектору придаем значение ( = ) и полагаем штраф = , переход к пункту 9.

13. Если , то вектор и штраф оставляем прежними, ведем счет неудавшихся попыток S=S+1.

  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. Зак.

Издательство РГАУ – МСХА имени К.А. Тимирязева