Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Заказ 201108.pdf
Скачиваний:
113
Добавлен:
13.05.2015
Размер:
170.85 Кб
Скачать

Математическое программирование

Задача 1

Кондитерская фабрика для производства двух видов карамели К1 и К2 использует три вида основного сырья: сахар, патоку, фруктовое пюре. Нормы расхода сырья каждого вида на производство 1 т. карамели К1 – 0,5; 0,4; 0,1 соответственно, на производство 1 т. карамели К2 – 0,8; 0,3; 0,1 соответственно. Общий запас сахара – 80 т., патоки – 60 т., фруктового пюре – 12 т. Прибыль от

реализации 1 т. карамели К1 составляет 108 тыс. р., а

1 т. карамели К2 –

112 тыс. р. Найти

оптимальный план

производства карамели, достигающий

максимальную прибыль:

 

 

 

а)

записать математическую модель задачи;

 

 

б)

решить задачу графическим методом;

 

 

в)

решить задачу симплекс-методом;

 

 

 

г)

к исходной задаче записать двойственную и найти ее решение, используя

соотношения двойственности и решение исходной задачи.

 

 

Решение

 

 

 

 

 

 

Примем, что план фабрики определяется количеством тонн произведенной

карамели каждого вида.

 

 

 

 

Представим исходную информацию в таблице:

 

 

 

 

 

 

 

 

 

 

 

Затраты сырья на производство 1т.

 

 

Виды сырья

 

продукции

 

 

Запас сырья, т.

 

 

 

К1

К2

 

 

 

 

 

 

 

 

 

 

Сахар

 

0,5

0,8

 

80

 

 

 

 

 

 

 

 

Патока

 

0,4

0,3

 

60

 

 

 

 

 

 

 

 

Фруктовое пюре

 

0,1

0,1

 

12

 

 

 

 

 

 

 

 

Доход, тыс. р.

 

108

112

 

 

 

 

 

 

 

 

 

а) Построение математической модели задачи

 

 

 

Пусть теперь

x1

количество (т.) карамели вида К1, а

x2

количество (т.)

карамели

вида

К2.

Тогда

компоненты

x1

и

x 2

производственного

плана

(x1 ; x2 )

,

очевидно,

должны

удовлетворять

следующим условиям-ограничениям по затратам cырья:

0,5 x1+0,8 x2 80 ;

0,4 x1+0,3 x2 60 ; 0,1 x1+0,1 x2 12 ; x1 0, x2 0.

С другой стороны, пара x1 , x2 , удовлетворяющая этим условиям, может рассматриваться как некоторый вариант производственного плана.

Требуется найти план, приносящий кондитерской фабрике наибольший доход, т. е. Найти допустимый план, для которого функция

f (x 1, x2)=108 x1+112 x2

принимает наибольшее значение.

Итак, пришли к следующей задаче ЛП: найти max(108 x1+112 x2) при условиях

0,5 x1+0,8 x2 80 ;

0,4 x1+0,3 x2 60 ; 0,1 x1+0,1 x2 12 ; x1 0, x2 0.

б) Графическое решение задачи

В плоскости строим декартову систему координат с осями x1 и x2 . Далее строим решение системы неравенств-ограничений:

0,5 x1+0,8 x2 80 ;

0,4 x1+0,3 x2 60 ; 0,1 x1+0,1 x2 12 ; x1 0, x2 0.

Точки, удовлетворяющие системе неравенств-ограничений, образуют многоугольник OABC.

Выберем некоторую точку M из данного многоугольника, точка (0 ;50)

Решением системы будут

вполне подойдет. Строим вектор c(108;112) . Проводим через точку M прямую π , перпендикулярную вектору с . Далее перемещаем эту прямую параллельно самой себе по направлению вектора с , пока она не займет относительно области OABC крайнего верхнего положения. Это произойдет, когда она пройдет через точку B.

Таким образом, оптимальное решение определяется координатами точки B. Так как в точке B пересекаются прямые, отвечающие первому и третьему неравенствам, то ее координаты находим из решения системы уравнений

0,5 x1+0,8 x2=80;

0,1 x1+0,1 x2=12.

x1=1603 ; x2= 2003 .

Следовательно, кондитерская фабрика должна производить 160/3 т. карамели вида К1 и 200/3 т. карамели вида К2, при этом ее доход будет составлять

108 1603 +112 2003 =396803 13226,667 тыс.рублей.

в) Решение задачи симплекс-методом

Прежде всего приведем задачу к каноническому виду, вводя в каждое основное неравенство свою дополнительную переменную yi при ограничениях:

0,5 x1+0,8 x2+ y1=80 ;

0,4 x1+0,3 x2+ y2=60 ; 0,1 x1+0,1 x2+ y3=12 ;

x1 0, x2 0, y1 0, y2 0, y3 0.

Найти max(108 x1+112 x2+0 y1+0 y2+0 y3) .

Отметим, что правые части системы уравнений неотрицательны, система

уравнений является разрешенной относительно переменных

y1, y2, y3 ,

которые могут считаться базисными переменными начального базисного решения x1=0, x2 =0, y1=80, y2=60, y3=12 . Отметим так же, что функция f не содержит базисных переменных. Значение функции f для начального

решения f ( X нач)=0 . Для составления начальной симплекс

таблицы мы

выполнили все условия. В процессе дальнейших преобразований

возможны два

случая. Если в симплекс таблице, на каком-то шаге, мы получим строку f , состоящую из неотрицательных элементов – задача решена, мы нашли оптимальное решение. В противном случае – функция не является ограниченной.

Шаг 1

За ведущий выберем столбец 2 , так как -112 – наименьший элемент в f - строке. Элемент f строки, принадлежащий столбцу свободных членов не рассматриваем. За ведущую выберем строку 1, так как отношение свободного члена к соответствующему элементу выбранного столбца для 1 строки является наименьшим. Отметим, что отношение мы вычисляем только для положительных элементов столбца 2.

Базисные

x1

 

x2

 

 

y1

y2

y3

Свободные

Отношение

переменные

 

 

 

 

 

 

 

 

члены

 

 

 

 

 

 

 

 

 

 

 

 

y1

0,5

 

 

 

1

 

0

0

80

100

0,8

 

 

 

 

 

 

 

 

 

 

 

 

y2

0,4

 

0,3

 

0

 

1

0

60

200

 

 

 

 

 

 

 

 

 

 

 

y3

0,1

 

0,1

 

0

 

0

1

12

120

 

 

 

 

 

 

 

 

 

 

 

f

-108

 

-112

 

0

 

0

0

0

~

 

 

 

 

 

 

 

 

Разделим элементы строки 1 на 0,8.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Базисные

x1

 

x2

 

 

y1

y2

y3

Свободные

Отношение

переменные

 

 

 

 

 

 

 

 

члены

 

y1

5

 

 

 

 

5

0

0

100

100

1

 

 

 

8

 

 

 

 

4

 

 

 

 

y2

0,4

 

0,3

 

0

 

1

0

60

200

 

 

 

 

 

 

 

 

 

 

 

y3

0,1

 

0,1

 

0

 

0

1

12

120

 

 

 

 

 

 

 

 

 

 

 

f

-108

 

-112

 

0

 

0

0

0

~

 

 

 

 

 

 

 

 

 

 

 

От элементов строки 2 отнимаем соответствующие элементы строки 1, умноженные на 0,3. От элементов строки 3 отнимаем соответствующие элементы строки 1, умноженные на 0,1. От элементов строки f отнимаем соответствующие элементы строки 1, умноженные на -112.

Базисные

x1

x2

y1

y2

y3

Свободные члены

переменные

 

 

 

 

 

 

x2

5

 

1

5

 

0

0

100

 

8

 

 

4

 

 

 

 

y2

17

 

0

3

1

0

30

 

80

 

 

8

 

 

 

y3

3

 

0

1

0

1

2

 

 

80

 

 

8

 

 

 

f

-38

 

0

140

0

0

11200

 

 

 

 

 

 

 

 

 

 

X 1 =(0,

100,

0, 30,

2) ,

 

 

 

 

f =11200+38 x1140 x2=11200.

 

 

 

 

Значение функции

f для данного решения равно 11200.

 

Шаг 2

 

 

 

 

 

 

 

 

 

За ведущий выберем столбец 1 , так как -38 наименьший элемент в f - строке. Элемент f строки, принадлежащий столбцу свободных членов не рассматриваем. За ведущую выберем строку 3, так как отношение свободного члена к соответствующему элементу выбранного столбца для 3 строки является наименьшим. Отметим, что отношение мы вычисляем только для положительных элементов столбца 1.

Базисные

x1

x2

y1

y2

y3

Свободные отношение

переменные

 

 

 

 

 

члены

x2

5

 

1

5

 

0

0

100

160

 

8

 

 

4

 

 

 

 

 

 

y2

17

 

0

3

1

0

30

2400

 

80

 

 

8

 

 

 

 

17

y3

 

 

 

0

 

1

0

1

2

160

3

 

 

 

80

 

 

8

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

f

-38

 

0

140

0

0

11200

~

 

 

 

 

 

 

 

 

 

Разделим элементы строки 3 на

 

3 .

 

 

 

 

 

 

 

 

 

 

80