Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 19
1

Задачи линейного программирования (2)

20.07.2014, 22:39. Показов 2911. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача о диете (упрощенный вариант)
Предположим для определенности, что необходимо составить самый дешевый рацион питания цыплят, содержащий необходимое количество определенных питательных веществ (для простоты, тиамина Т и ниацина Н).

Таблица 1.
Исходные данные в задаче об оптимизации смеси.
Содержание


Пищевая ценность рациона (в калориях) должна быть не менее заданной. Пусть для простоты смесь для цыплят изготавливается из двух продуктов - К и С. Известно содержание тиамина и ниацина в этих продуктах, а. также питательная ценность К и С (в калориях). Сколько К и С надо взять для одной порции куриного корма, чтобы цыплята получили необходимую им дозу веществ Н и Т и калорий (или больше), а стоимость порции была минимальна? Исходные данные для расчетов приведены в табл.1.
Задача линейного программирования имеет вид:
3,8 К + 4,2 С → min ,
0,10 К + 0,25 С ≥ 1,00 ,
1,00 К + 0,25 С ≥ 5,00 ,
110,00 К + 120,00 С ≥ 400,00 ,
К ≥ 0 ,
С ≥ 0 .
Ее графическое решение представлено на рис.4.

Рис.4. Графическое решение задачи об оптимизации смеси.

На рис.4 ради облегчения восприятия четыре прямые обозначены номерами (1) - (4). Прямая (1) - это прямая 1,00 К + 0,25 С = 5,00 (ограничение по веществу Н). Она проходит, как и показано на рисунке, через точки (5,0) на оси абсцисс и (0,20) на оси ординат. Обратите внимание, что допустимые значения параметров (К, С) лежат выше прямой (1) или на ней, в отличие от ранее рассмотренных случаев в предыдущей производственной задаче линейного программирования.
Прямая (2) - это прямая 110,00 К + 120,00 С = 400,00 (ограничение по калориям). Обратим внимание, что в области неотрицательных С она расположена всюду ниже прямой (1). Действительно, это верно при К=0, прямая (1) проходит через точку (0,20), а прямая (2) - через расположенную ниже точку (0, 400/120). Точка пересечения двух прямых находится при решении системы уравнений
1,00 К + 0,25 С = 5,00 ,
110,00 К + 120,00 С = 400,00 .
Из первого уравнения К = 5 - 0,25 С. Подставим во второе: 110 (5- 0,25 С) + 120 С = 400, откуда 550 - 27,5 С + 120 С = 400. Следовательно, 150 = - 92,5 С, т.е. решение достигается при отрицательном С. Это и означает, что при всех положительных С прямая (2) лежит ниже прямой (1). Значит, если выполнено ограничения по Н, то обязательно выполнено и ограничение по калориям. Мы столкнулись с новым явлением - некоторые ограничения с математической точки зрения могут оказаться лишними. С экономической точки зрения они необходимы, отражают существенные черты постановки задачи, но в данном случае внутренняя структура задачи оказалась такова, что ограничение по калориям не участвует в формировании допустимой области параметров и нахождении решения.
Прямая (4) - это прямая 0,1 К + 0,25 С = 1 (ограничение по веществу Т). Она проходит, как и показано на рисунке, через точки (10,0) на оси абсцисс и (0,4) на оси ординат. Обратите внимание, что допустимые значения параметров (К, С) лежат выше прямой (4) или на ней, как и для прямой (1).
Следовательно, область допустимых значений параметров (К, С) является неограниченной сверху. Из всей плоскости она выделяется осями координат (лежит в первом квадранте) и прямыми (1) и (4) (лежит выше этих прямых, а также включает граничные отрезки). Область допустимых значений параметров, т.е. точек (К, С), можно назвать "неограниченным многоугольником". Минимум целевой функции 3,8 К + 4,2 С может достигаться только в вершинах этого "многоугольника". Вершин всего три. Это пересечения с осями абсцисс (10,0) и ординат (0,20) прямых (1) и (4) (в каждом случае из двух пересечений берется то, которое удовлетворяет обоим ограничениям). Третья вершина - это точка А пересечения прямых (1) и (4), координаты которой находятся при решении системы уравнений
0,10 К + 0,25 С = 1,00 ,
1,00 К + 0,25 С = 5,00 .
Из второго уравнения К = 5 - 0,25 С, из первого 0,10 (5 - 0,25 С) + 0,25 С = 0,5 - 0,025 С + 0,25 С = 0,5 + 0,225 С = 1, откуда С = 0,5/0,225 = 20/9 и К = 5 - 5/9 = 40/9. Итак, А = (40/9; 20/9).
Прямая (3) на рис.4 - это прямая, соответствующая целевой функции 3,8 К + 4,2 С . Она проходит между прямыми (1) и (4), задающими ограничения, и минимум достигается в точке А, через которую и проходит прямая (3). Следовательно, минимум равен 3,8х40/9 + 4,2х20/9 = 236/9. Задача об оптимизации смеси полностью решена.
Двойственная задача, построенная по описанным выше правилам, имеет приведенный ниже вид (мы повторяем здесь и исходную задачу об оптимизации смеси, чтобы наглядно продемонстрировать технологию построения двойственной задачи):

3,8 К + 4,2 С → min , W1 + 5 W2 + 400 W3 → max ,
0,10 К + 0,25 С ≥ 1,00 , 0,1 W1 + 1,10 W2 + 110 W3 ≤ 3,8 ,
1,00 К + 0,25 С ≥ 5,00 , 0,25W1 + 0,25 W2 + 120 W3 ≤ 4,2 ,
110,00 К + 120,00 С ≥ 400,00 , W1 ≥ 0 ,
К ≥ 0 , W2 ≥ 0 ,
С ≥ 0 . W3 ≥ 0 .
Минимальное значение в прямой задаче, как и должно быть, равно максимальному значению в двойственной задаче, т.е. оба числа равны 236/9. Интерпретация двойственных переменных: W1 - "стоимость" единицы вещества Т, а W2 - "стоимость" единицы вещества Н, измеренные "по их вкладу" в целевую функцию. При этом W3 = 0, поскольку ограничение на число калорий никак не участвует в формировании оптимального решения. Итак, W1 , W2 , W3 - это т.н. объективно обусловленные оценки (по Л.В. Канторовичу) ресурсов (веществ Т и Н, калорий).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.07.2014, 22:39
Ответы с готовыми решениями:

Решение задачи линейного программирования
1.1 . Решить задачу линейного программирования f(x) = 4x1 + x2 → inf, x1 + x2 > 2, x1 – x2...

Решение задачи Линейного программирования в Matlab
Доброго времени суток ! Помоги пожалуйста понять чего мне не хватает в моем решении задачи в...

Графический способ решения задачи линейного программирования
на рисунке показано как оно должно выглядеть. Нужно написать код!

Реализация линейного программирования
При реализации выводит неверный ответ. что может быть неправильно? c = ; d = ; b = ; f = c;...

2
2719 / 1773 / 187
Регистрация: 05.06.2011
Сообщений: 5,132
24.07.2014, 06:13 2
Как бы это сформулировать... Возможно, благородный дон хотел чего-то спросить?
1
Памирыч
31.07.2014, 12:37     Задачи линейного программирования (2)
  #3
 Комментарий модератора 
Закрыто. Причина: кросспостинг
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.07.2014, 12:37

Задача линейного программирования
Помогите реализовать данную ЗЛП в матлабе. Осилил только вручную на листке

Задача линейного программирования
Коллеги, добрый день. Подскажите, пожалуйста, с помощью какого пакета и какой литературы можно...

Задача линейного программирования в среде MatLab
Доброго времени суток! Друзья, помогите пожалуйста с решением данной задачи. Пробовала решить ее...

Решение задач линейного программирования. Симплекс метод
5x1 + x2→ min, x1 + 7x2 ≥ 7, 7x1 + x2 ≥ 7, –2x1 + x2 ≤ 6, 2x1 + 5x2 ≥ 10, 5x1 + 2x2 ≥ 10, x1...

Задачи линейного программирования
Тема: Линейное программирование в Mathcad Имеются 2 задачи. Подскажите пожалуйста, в чём мои...

Решение задачи линейного программирования
Здравструйте! У меня не получается через блок Given-Find найти корни функции, т.е. не получается...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Закрытая тема Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru