Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций ЭММ.doc
Скачиваний:
17
Добавлен:
17.11.2018
Размер:
2.35 Mб
Скачать

2.2. Примеры постановки оптимизационных задач

Пример 2.1. Задача планирования производства

Для изготовления продукции двух типов (I, II) требуется четыре вида сырья S1, S2, S3, S4. На изготовление одной единицы каждого типа продукции требуется разное количество сырья. Запасы сырья ограничены. Прибыль от реализации одной единицы продукции каждого типа известна. Запасы сырья каждого вида, нормозатраты сырья на единицу каждого из типов продукции, а также прибыль от единицы производимой продукции представлены в таблице.

Таблица 2.1 – Исходные данные к примеру 2.1

Виды сырья

Нормозатраты сырья на единицу продукции

Запасы

сырья

I вид

II вид

S1

2

3

19

S2

2

1

13

S3

0

3

15

S4

3

0

18

Прибыль от реализации единицы продукции

7

5

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

Для математического описания любой задачи оптимизации важно определить, что является переменными задачи и как через эти переменные можно выразить целевую функцию и систему ограничений.

В данном случае удобно обозначить: x1 – количество изготавливаемой продукции I типа, x2 – количество изготавливаемой продукции II типа.

Тогда прибыль от реализации продукции I типа составит 7x1, а от реализации второго типа – 5x1 (свойство пропорциональности). Совокупная прибыль предприятия составит 7x1 + 5x1 (свойство аддитивности). То есть целевая функция имеет вид:

z = 7x1 + 5x1 → max.

На выпуск единицы продукции первого типа требуется 2 единицы сырья S1 (см. табл. 2.1), тогда всего сырья S1 на выпуск x1 единиц продукции первого типа потребуется 2x1, на выпуск продукции второго типа – 3x2. Совокупный расход сырья S1 на выпуск продукции обоих типов составит 2x1 + 3x2, и он не должен превышать запаса этого ресурса в 19 единиц. Таким образом, имеем первое ограничение:

2x1 + 3x2 ≤ 19.

Аналогичным образом получаются остальные ограничения задачи:

2x1 + x2 ≤ 13,

3x2 ≤ 15,

3x1 ≤ 18.

Поскольку по смыслу задачи переменные x1 и x2 не могут быть отрицательными, водим ограничения на знак:

x1 ≥ 0, x2 ≥ 0.

Заметим, что это не единственно возможная постановка задачи. В качестве переменных можно было бы выбрать следующие: x1 – количество ресурса S1, которое расходуется на выпуск продукции I типа, x2 – количество ресурса S1, которое расходуется на выпуск продукции II типа, …, x7 – количество ресурса S4, которое расходуется на выпуск продукции I типа, x8 – количество ресурса S4, которое расходуется на выпуск продукции II типа.

Тогда система ограничений имела бы вид:

x1 + x2 ≤ 19,

x3 + x4 ≤ 13,

x5 + x6 ≤ 15,

x7 + x8 ≤ 18,

xj ≥ 0, .

Однако, при таком определении переменных возникают проблемы с выражением количества выпускаемой продукции и, соответственно, описанием целевой функции. Целевую функцию в этом случае можно представить так:

z = ,

однако, очевидно, что такая функция является нелинейной и решить задачу в такой постановке достаточно сложно. Поэтому первая постановка является предпочтительной.

Пример 2.2. Транспортная задача

На n складах находится соответственно А1, А2, ..., Аn некоторого товара. Этот товар необходим k потребителям соответственно в количествах B1, B2, ..., Bk единиц. Будем считать, что между предложением и спросом существует баланс, то есть A1+A2+ ... +An = B1+B2+ ... +Bk или .

Обозначим через сij – стоимость перевозки единицы товара от i-го поставщика j-му потребителю. Часто сij называют тарифами.

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

Вj

Аi

B1

B2

. . .

Bk

A1

с11

с12

. . .

с1k

A2

с21

с22

. . .

с2k

. . .

. . .

. . .

. . .

. . .

An

сn1

сn2

. . .

сnk

Пусть xij – число единиц товара, перевозимого от i-го поставщика j-му потребителю. Тогда общая стоимость перевозок составит:

z = c11x11 c12x12 + ... + c1kx1+ ... + cn1xn1 + cn2xn2 + ... + cnkxnk .

При этом должны быть выполнены такие ограничения:

1) все склады должны стать пустыми (вся продукция должна быть вывезена):

x11 + x12 + . . . + x1k = A1

. . . . . . . . . . . . . . . . . . .

xn1 + xn2 + . . . + xnk = An

2) все потребители должны быть полностью удовлетворены (спрос должен быть удовлетворен в полном объеме):

x11 + x21 + . . . + xn1 = B1

. . . . . . . . . . . . . . . . . . .

x1k + x2k + . . . + xnk = Bk

Имеют место также ограничения на знак (нельзя перевезти отрицательное число единиц продукции):

xij  0, .

Пример 2.3. Задача на построение расписаний

Больнице скорой помощи в разные дни недели требуется разное число санитаров: в понедельник – 27, во вторник – 23, в среду – 25, в четверг – 29, в пятницу – 24, в субботу – 26, в воскресенье – 21. По требованию профсоюза работник должен трудиться 5 дней подряд, а затем 2 дня отдыхать. Необходимо минимизировать общее количество санитаров, которое следует принять на работу.

На первый взгляд математическое описание задачи простое: нужно ввести 7 переменных xj – количество санитаров, работающих в j-й день недели. Ограничения будут очень простыми: x1 ≥ 27, x2 ≥ 23, …, x7 ≥ 21. Однако, в этом случае целевая функция не будет показывать, сколько санитаров принято на работу, так как каждый санитар учитывается в ней 5 раз, а отражает только отработанные человеко-дни. Кроме того, при такой постановке в ограничениях никак не учитывается, что переменные xj связаны между собой, ведь часть людей, работавших в понедельник, будут работать и во вторник, и в среду, и т.д.

Выходом из данной ситуации является понятие того, что не важно сколько людей работает в данный день недели, а важно, сколько людей начинают рабочую неделю с определенного дня недели.

Если обозначить x1 – количество санитаров, начинающих работу с понедельника (они не будут работать по сб, вс), …, x7 – количество санитаров, начинающих работу с воскресенья (они не будут работать по пт, сб), получим:

.

Ограничения:

– в пн работают все, кроме тех, кто начинает рабочую неделю со вт (x2) или со ср (x3);

– во вт работают все, кроме x3 и x4;

.

Заметим, что оптимальное решение этой задачи Z = 35,67, x1 = 4,67, x2 = 8,67, x3 = 0, x4 = 10,67, x5 = 0, x6 = 6,67, x7 = 5. Это решение нас устроить не может, поскольку по смыслу задачи переменные должны быть целыми. Простое округление переменных дает Z = 37. Однако, при постановке этой задачи как задачи целочисленного программирования (дискретной), можно получить лучшее решение: Z = 36 при x1 = 6, x2 = 9, x3 = 0, x4 = 10, x5 = 1, x6 = 6, x7 = 4.

Пример 2.4. Динамическая модель принятия решений

Компания производит лодки. Потребность в лодках в каждом квартале составляет: 40, 60, 75, 25. К началу первого квартала компания имеет запас в 10 лодок.

В течение каждого квартала компания может производить до 40 лодок, используя основное рабочее время, затрачивая 400 грн. на 1 лодку. Можно увеличить производство лодок выше 40, используя сверхурочное время, но тогда цена лодки составит 450 грн. Хранение нереализованного на конец квартала запаса лодок обходится компании в 20 грн. за 1 лодку.

Составить производственную программу, минимизирующую затраты на производство и хранение в течение 4 кварталов.

Введем переменные:

4 переменных xi – количество лодок, произведенных в j-м квартале в основное рабочее время;

4 переменных yi – количество лодок, произведенных в j-м квартале в сверхурочное время;

4 переменных hi – количество лодок, нереализованных на конец j-го квартала.

Целевая функция, минимизирующая затраты, имеет вид:

Ограничения по основным производственным мощностям:

ограничения, взаимоувязывающие производство, сбыт и складские запасы:

– запасы на конец первого квартала равны запасам на начало квартала (10) плюс производство в основное (x1) и сверхурочное (y1) время в первом квартале, минус объем реализации в первом квартале. Аналогично:

Оптимальным решением данной задачи будет: z = 78 450, , x4 = 25, y1 = 0, y2 = 10, y3 = 35, y4 = 0, h1 = 10, .

Пример 2.5. Задача на раскрой

Для изготовления брусьев длиной 1,2 м, 3 м и 5 м в соотношении 2:1:3 на распил поступают 195 бревен длиной 6 м. Определить план распила, обеспечивающий максимальное число комплектов.

В этой и подобных задачах на раскрой необходимо составить таблицу возможных рациональных вариантов раскроя. В данном случае можно выделить следующие способы распила бревен:

Способ распила, i

Число получаемых брусьев длиной, м

1,2

3,0

5,0

1

5

-

-

2

2

1

-

3

-

2

-

4

-

-

1

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

Обозначим: – число бревен, распиленных i-тым способом (i = 1,2,3,4); x – число комплектов брусьев (которое совпадает с количеством бревен по 3 м).

Учитывая, что все бревна должны быть распилены, а число брусьев каждого размера должно удовлетворять условию комплектности, экономико-математическая модель задачи примет вид:

x1 + x2 + x3 + x4 = 195 – все бревна должны быть распилены,

5x1 + 2x2 = 2x – количество брусьев длиной 1,2 м в 2 раза больше числа комплектов,

x2 + 2x3 = x – количество брусьев по 3 м равно числу комплектов,

x4 = 3x – количество брусьев по 5 м в три раза больше числа комплектов.

.

Часто в задачах на раскрой критерием принятия решения бывает минимизация отходов. Для записи такого критерия в таблице со способами раскроя нужно определить непродуктивные отходы для каждого способа. Для предыдущей задачи отходы для первого способа распила равны нулю, для второго способа – 0,6 м, для третьего – 0, для четвертого – 1 м.

Критерий минимизации отходов в этом случае можно было бы записать так:

.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]