Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Экономические задачи линейного программирования и их решение с испол

..pdf
Скачиваний:
13
Добавлен:
15.11.2022
Размер:
2.4 Mб
Скачать

Примеры решения задач в Microsoft Excel

Транспортная задача с закрытой моделью

Постановка задачи

Имеется три поставщика (а1, а2, а3) с запасами одного продукта в количестве 30, 40, 20 единиц соответственно. Имеется четыре потребителя этого продукта (b1, b2, b3, b4) с заданными потребностями продукта в количестве 20, 25, 35, 10. Дана стоимость перевозки единиц груза по всем маршрутам (табл. 3.3). Суммарные запасы равны суммарным потребностям.

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

 

 

 

 

 

Таблица 3.3

 

 

 

 

 

 

Поставщики

 

Тарифы потребителей

 

Запас

b1

b2

b3

b4

груза

 

 

 

 

 

на складе

а1

2

3

5

4

30

а2

3

2

4

1

40

а3

4

3

2

6

20

Потребность

20

25

35

10

90

Моделирование

Обозначим переменные величины:

– хij – количество груза, перевозимого от i-го поставщика

кj-му потребителю;

х11 – количество груза, перевозимого от поставщика а1 к потребителю b1;

х12 – количество груза, перевозимого от поставщика а1 к потребителю b2;

х13 – количество груза, перевозимого от поставщика а1 к потребителю b3;

х14 – количество груза, перевозимого от поставщика а1 к потребителю b4.

Аналогично для остальных поставщиков.

121

Тогда целевая функция

z= 2x11 + 3x12 + 5x13 + 4x14 + 3x21 + 2x22 +

+4x23 + 1x24 + 4x31 + 3x32 + 2x33 + 6x34 → min.

Система ограничений:

x11

x21

x31

20,

 

x

x

22

x

32

25,

 

12

 

 

 

 

x

x

 

x

 

35,

 

 

13

 

23

 

33

 

 

x14

x24

x34

10,

 

x

x

 

x

 

x

30,

 

11

12

13

14

 

x21

x22

x23

x24

40,

 

 

x32

x33

x34

20,

x31

хij ≥ 0.

Решение

Введем исходные данные и таблицу с изменяемыми ячейками в Excel (рис. 3.14).

Рис. 3.14

Ячейки I4:L6 предназначены для значений переменных (это изменяемые в процессе поиска решения ячейки), в них появится искомое количество перевозимой продукции по завершении поиска решения. N9 – целевая ячейка, в которой будет размещена формула целевой функции.

В таблице «План доставки» продублированы столбец «Запас груза на складе» и строка «Потребность» (с помощью ссылок), добавлены:

122

столбец «Использовано»,

строка «Объем доставки».

Заполним таблицу «План доставки» формулами, необходимыми для создания ограничений:

ограничения на запасы – в ячейку M4 столбца «Использовано» введем =СУММ(I4:L4), а затем растянем эту формулу в ячейки

M5:M6;

ограничения на потребности – в ячейку I7 строки Объем доставки введем =СУММ(I4:I6) и растянем ее в ячейки J7:L7.

Запишем общие суммы по столбцам и строкам:

в ячейку N7 – по столбцу Запасы на складе =CУMM(N4:N6);

в ячейку M8 – по столбцу Потребность =СУММ(I8:L8);

в ячейку N8 введем логическую формулу для контроля об-

щих сумм: =ЕСЛИ(M8=N7; Закрытая модель; Открытая модель) (рис. 3.15).

Рис. 3.15

В ячейку N9 запишем формулу для целевой функции

=СУММПРОИЗВ(B4:E6;I4:E6).

Для поиска оптимального набора значений параметров плана доставки, который соответствует минимальному значению целевой функции, следует воспользоваться надстройкой Поиск решения. Заполним диалоговое окно надстройки (рис. 3.16):

123

1.В поле Оптимизировать целевую ячейку введем адрес целе-

вой функции N9.

2.Ниже выберем параметр Минимум.

Рис. 3.16

3.В поле Изменяя ячейки переменных введем диапазон ячеек

сискомыми переменными I4:L6.

4.Установим флажок Сделать переменные без ограничений неотрицательными и выберем параметр Поиск решения линейных задач симплекс-методом.

5.Щелчком по кнопке Добавить вызовем окно Добавление ограничения. В этом окне введем ссылки на ячейки ограничений,

атакже выберем оператор ограничений. Для решения данной задачи нам необходимы следующие ограничения:

– I7:L7 = I8:L8 – условиеполногоудовлетворенияпотребностей,

– M4:M6 = N4:N6 – условие полного распределения ресурсов.

124

6. Нажав кнопку Найти решения, получим результаты решения.

Вокне Результаты поиска решения выберем все три отчета

исохраним полученный результат как сценарий (кнопка Сохра-

нить сценарии) с именем Закрытая модель.

На рис. 3.17 приведен оптимальный план перевозок.

Рис. 3.17

Анализ отчетов

Теперь необходимо проанализировать отчеты, которые мы получили при решении задачи. На рис. 3.18 представлен отчет о результатах.

Рис. 3.18

125

Оптимальное значение целевой функции

 

 

 

 

 

 

 

 

zmin = 210 руб.

 

 

 

 

Значения основных переменных прямой задачи:

 

 

x11

= 20,

x12

= 0,

x13 = 10,

x14

= 0,

x21

= 0,

x22

= 25,

x23

= 5,

x24

= 10,

x31 = 0,

x32

= 0,

x33

=20,

x34

= 0.

Анализ отчетов и выводы по анализу аналогичны тем, что представлены в подразд. 2.6 и 2.7.

Транспортная задача с открытой моделью

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

Откроем лист Excel с закрытой моделью, удалим из плана доставки полученные результаты и изменим данные в столбце «Запас груза на складе» (рис. 3.19). Изменится общая сумма запасов на складе, а в ячейке N8 появится сообщение «Открытая модель».

Рис. 3.19

Эта ситуация приведет к тому, что будут израсходованы не все запасы, поэтому изменится ограничение M4:M6 ≤ N4:N6 – условие неполного распределения запасов (рис. 3.20).

Результат выполнения поиска решения сохраним в виде сценария с именем «Открытая модель 1».

Результаты решения приведены на рис. 3.21.

126

Рис. 3.20

Рис. 3.21

Анализ отчетов и выводы по анализу аналогичны тем, что представлены в подразд. 2.6 и 2.7.

3.4.Задача о назначении

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

127

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

Задача о назначении – частный случай транспортной задачи. Это класс так называемых распределительных задач. Они могут быть решены в рамках теории линейного программирования, если распределяется однородный ресурс. Например, в задаче о назначении все работники могут выполнять любую из предложенных работ, все экипажи самолетов – направляться на любую авиалинию.

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

Критерий максимизации общего эффекта используется тогда, когда известны заданные оценки способности каждого претендента исполнять определенные функции (чем выше, тем лучше); критерий минимизации – когда известна заданная величина затрат на подготовку каждого претендента для определенной деятельности (чем выше, тем хуже).

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

Постановка задачи

Задачу о назначениях можно сформулировать следующим образом. Необходимо выполнить m различных работ. Для их выполнения можно привлечь n рабочих. Каждый рабочий за определенную плату готов выполнить любую работу. Выполнение любой работы следует поручить одному рабочему, и каждый рабочий может выполнять только один вид работы. Требуется так распределить работы между рабочими, чтобы общие затраты на выполнение всех работ были минимальными.

128

Закрытая модель задачи о назначении

Предполагается, что количество рабочих равно количеству работ, т.е. n = m.

Математическая модель задачи о назначении примет следующий вид.

Целевая функция

n

m

 

 

z cij xij min.

(3.15)

j 1

i 1

 

 

Система ограничений:

 

 

 

m

 

 

 

xij 1,

i 1, ..., m,

(3.16)

i 1

 

 

 

n

 

 

 

xij

1,

j 1, ..., n,

(3.17)

j 1

 

 

 

xij ≥ 0, i = 1, …, m, j = 1, ..., n,

(3.18)

где сij – показатель эффективности j-го рабочего на i-й работе, например производительность выполнения j-м рабочим i-й работы;

xij – переменная модели (хij = 1, если j-й рабочий используется

на i-й работе, и xij = 0 в противном случае).

(3.15) – целевая функция (минимум издержек на выполнение всех работ).

(3.16), (3.17) – система ограничений, отражающая следующие условия: каждая работа должна быть выполнена одним рабочим; каждый рабочий может быть привлечен к одной работе.

(3.18) – условия неотрицательности переменных.

При решении задачи о назначениях исходной информацией является таблица задачи о назначениях с = {сij}, элементами которой служат показатели эффективности назначений. Для задачи о назначениях, записанной в закрытой форме, количество строк этой таблицы совпадает с количеством столбцов (табл. 3.4).

129

 

 

 

 

 

 

 

 

 

 

Таблица 3.4

 

 

 

 

 

 

Рабочий

 

 

 

Работа

 

 

 

 

 

1

2

 

 

 

j

 

n

 

 

 

 

 

1

c11

c12

 

 

 

c1j

 

c1n

2

c21

c22

 

 

 

c2j

 

c2n

 

 

 

 

i

ci1

ci2

 

 

 

cij

 

cin

 

 

 

 

m

cm1

cm2

 

 

 

cmj

 

cmn

Результатом решения задачи о назначениях (3.15)–(3.18) явля-

ется набор переменных x*

 

 

 

(i

1, m

; j

1, n

), значения которых рав-

 

 

ij

 

 

 

 

 

 

 

 

 

ны 0 или 1.

Оптимальный план задачи можно представить в виде квадратной матрицы назначений, в каждой строке и в каждом столбце которой находится ровно одна единица. Такую матрицу иногда называют матрицей перестановок. Значение целевой функции (3.15), соответствующее оптимальному плану, называют эффективностью назначений.

Открытая модель задачи о назначении

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

Пусть, например, количество рабочих п превышает количество работ m.

Введем дополнительные фиктивные работы с индексами i = = m + 1, m + 2, ..., k. Коэффициенты таблицы назначений сij, j = 1, ..., п; i = m + 1, ..., k положим равными нулю. В этом случае получаем задачу, сформулированную в закрытой форме. Если в оптимальном плане этой задачи xij* = 1 при i = т + 1, ..., k, то исполнитель j назначается на выполнение фиктивной работы, т.е. остается без работы. Заметим, что оптимальное значение целевой функции исходной за-

130

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