519
.pdfПример решения задачи в Microsoft Excel
Постановка задачи
При изготовлении трех видов изделий А, В, С, могут быть использованы три вида взаимозаменяемого сырья (S1, S2, S3). В табл. 3.2.1 даны нормы расхода каждого вида сырья на единицу изделия (кг), количества сырья (кг), прибыль от единицы изделия (руб.).
Составить оптимальную программу использования сырья с целью получения максимальной прибыли. Необходимо построить модель, найти оптимальное решение, проанализировать результаты.
Таблица 3.2.1
Исходные данные
Вид |
Нормарасходасырья |
Количество |
|
Прибыль |
|
||||
сырья |
|
наизделие, кг |
сырья, кг |
за ед. изделия, руб. |
|||||
|
А |
|
В |
С |
|
А |
|
В |
С |
S1 |
2 |
|
2 |
4 |
500 |
4 |
|
3 |
2 |
S2 |
5 |
|
2 |
3 |
700 |
1 |
|
3 |
4 |
S3 |
4 |
|
5 |
6 |
800 |
5 |
|
2 |
3 |
Моделирование
Обозначим переменные величины:
х11 – количество изделий А из первого сырья; х12 – количество изделий В из первого сырья; х13 – количество изделий С из первого сырья; х21 – количество изделий А из второго сырья; х22 – количество изделий В из второго сырья; х23 – количество изделий С из второго сырья; х31 – количество изделий А из третьего сырья; х32 – количество изделий В из третьего сырья;
81
х33 – количество изделий С из третьего сырья. Тогда целевая функция
z = 4x11 + x21 + 5x31 + 3x12 + 3x22 + 2x32 + 2x13 + 4x23 + 3x33 →
→max – максимумприбыли. Система ограничений примет вид
2x |
2x |
4x |
500; |
|
|
11 |
12 |
13 |
|
5x21 |
2x22 |
3x23 |
700; |
|
4x |
5x |
6x |
800; |
|
|
31 |
32 |
33 |
|
xij ≥ 0; i = 1,3; j = 1,3.
Решение
На рабочий лист Excel введем исходные данные и таблицу с изменяемыми ячейками (рис. 3.2.1).
Рис. 3.2.1. Исходные данные и таблица с изменяемыми ячейками
ЯчейкиК3:М5 предназначеныдлязначенийпеременных. О7 – целевая ячейка, в которой будет размещена фор-
мула целевой функции.
Ограничения на количество сырья – введем формулу =СУММПРОИЗВ(В3:D5;K3:M5) в ячейку N3 и растянем на ячейки N3:N5.
Введем формулу =СУММПРОИЗВ(F3:H5;K3:M5)
вячейку O7 – целевая функция.
Вячейку К6 введем формулу суммы для всех изделий =СУММ (К3:К5) и растянем в ячейки К6:М6.
82
Рис. 3.2.2. Диалоговое окно Поиск решения
Для поиска оптимального плана производства изделий, который соответствует максимальному значению целевой функции, воспользуемся надстройкой Поиск решения. Заполним диалоговое окно надстройки Поиск реше-
ния (рис. 3.2.2):
1.В поле Оптимизировать целевую ячейку введите адрес ЦФ О7.
2.Ниже выберите параметр Максимум.
3.В поле Изменяя ячейки переменных введите диапа-
зон ячеек с искомыми переменными К3:М5.
83
4.Установите флажок Сделать переменные без ограничений неотрицательными и выберите параметр Поиск решения линейных задач симплекс-методом.
5.Щелчком по кнопке Добавить вызовите окно Добавление ограничения. В этом окне выполните ссылки на ячейки ограничений, а также выберите оператор ограничений. Для решения данной задачи нам необходимо ограничение на количество сырья N3:N5 ≤ O3:O5.
6.Нажав кнопку Найти решения, получим результаты решения.
В окне Результаты поиска решения выберем отчет и сохраним полученный результат как сценарий (кнопка
Сохранить сценарии) с именем Ресурсы.
На рис. 3.2.3 приведен оптимальный план производства изделий.
Рис. 3.2.3. Результаты выполнения поиска решения
Анализ отчетов
Отчет о результатах, полученный на компьютере, представлен на рис. 3.2.4.
84
Рис. 3.2.4. Фрагмент листа Excel с отчетом о результатах
Отчет об устойчивости, полученный на компьютере, представлен на рис. 3.2.5.
Рис. 3.2.5. Фрагмент листа Excel с отчетом об устойчивости
Отчет о пределах, полученный на компьютере, представлен на рис. 3.2.6.
85
Рис. 3.2.6. Фрагмент листа Excel с отчетом о пределах
Анализ отчетов и выводы по анализу представлены в п. 2.6 и 2.7.
3.3.Задача о назначении
Впроцессе управления производством зачастую возникают задачи назначения исполнителей на различные виды работ, например: подбор кадров и назначение кандидатов на вакантные должности, распределение источников капитальных вложений между различными проектами научно-технического развития, распределение экипажей самолетов между авиалиниями.
Задача о назначении – частный случай транспортной задачи. Это класс так называемых распределительных задач. Они могут быть решены в рамках теории линейного программирования, если распределяется однородный ресурс. Например, в задаче о назначении все работники могут выполнять любую из предложенных работ, все экипажи самолетов направляться на любую авиалинию.
86
Название задачи о назначении непосредственно исходит от практической кадровой ситуации, когда претендентов нужноназначитьнавакантныедолжностинаилучшимобразом.
Критерий максимизации общего эффекта используется тогда, когда известны заданные оценки способности каждого претендента исполнять определенные функции (чем выше, тем лучше); минимизации – когда известна, заданная величина затрат на подготовку каждого претендента для определенной деятельности (чем выше, тем хуже).
Особенность задачи о назначении в том, что наличие высокой оценки еще не гарантирует успех, поскольку целью оптимизации является максимальный общий эффект. Вторая особенность в том, что переменные являются булевымипеременными, т.е. принимаютзначения «0» либо «1».
Постановка задачи
Задачу о назначениях можно сформулировать следующим образом. Необходимо выполнить M различных работ. Для их выполнения можно привлечь N рабочих. Каждый рабочий за определенную плату готов выполнить любую работу. Выполнение любой работы следует поручить одному рабочему, и каждый рабочий может выполнять только один вид работы. Требуется так распределить работы между рабочими, чтобы общие затраты на выполнение всех работ были минимальными.
Закрытая модель задачи о назначении
Предполагается, что количество рабочих равно количеству работ и равно m.
Математическаямодельзадачионазначенииприметвид
m |
m |
|
z cij xij max |
(3.3.1) |
|
j 1 |
i 1 |
|
при следующих условиях:
87
m |
|
|
xij 1, |
i 1, ..., m |
(3.3.2) |
i 1 |
|
|
m |
|
|
xij 1, |
j 1, ..., m |
(3.3.3) |
j 1 |
|
|
xij ≥ 0, i = 1, …, m; j = 1, ..., m, |
(3.3.4) |
где сij – показатель эффективности назначения i-го рабочего на j-й работе, например производительность выполнения i-м рабочим j-й работы;
xij – переменная модели (хij = 1, если i-й рабочий используется на j-й работе, и xij = 0 в противном случае).
(3.3.1) – целевая функция (минимум издержек на выполнение всех работ);
(3.3.2), (3.3.3) – система ограничений, отражающая следующие условия:
а) каждаяработадолжнабытьвыполненаоднимрабочим; б) каждыйрабочийможетбытьпривлеченкоднойработе; (3.3.4) – условия неотрицательности переменных.
При решении задачи о назначениях исходной информацией является таблица задачи о назначениях с = {сij}, элементами которой служат показатели эффективности назначений. Для задачи о назначениях, записанной в закрытой форме, количество строк этой таблицы совпадает с количеством столбцов (табл. 3.3.1).
Таблица 3.3.1 Исходные данные задачи о назначении
|
Рабочий |
|
|
|
Работа |
|
|
|
|
1 |
2 |
… |
|
j |
… |
m |
|
|
|
|
||||||
|
1 |
c11 |
c12 |
… |
|
c1j |
… |
c1m |
|
2 |
c21 |
c22 |
… |
|
c2j |
… |
c2m |
|
… |
… |
… |
… |
|
… |
… |
… |
|
i |
ci1 |
ci2 |
… |
|
cij |
… |
cim |
|
… |
… |
… |
… |
|
… |
… |
… |
|
m |
cm1 |
cm2 |
… |
|
cmj |
… |
cmm |
88 |
|
|
|
|
|
|
|
Результатом решения задачи о назначениях (3.3.1)– (3.3.4) является вектор x* xij* , компоненты которого
целые числа.
Оптимальный план задачи о назначениях (3.3.1)–(3.3.4) можно представить в виде квадратной матрицы назначений, в каждой строке и в каждом столбце которой находится ровно одна единица. Такую матрицу иногда называют матрицей перестановок. Значение целевой функции (3.3.1), соответствующее оптимальному плану, называют эффективностью назначений.
Открытая модель задачи о назначении
Задача о назначениях в открытой форме возникает тогда, когда количество рабочих не равно количеству работ. В этих случаях задача может быть преобразована в закрытую модель.
Пусть, например, количество рабочих п превышает количество работ m.
Введем дополнительные фиктивные работы с индексами j = m + 1, m + 2, ..., п. Коэффициенты таблицы назначений сij , i = 1, ..., п; j = m + 1, ..., п положим равными нулю. В этом случае получаем задачу, сформулированную в закрытой форме. Если в оптимальном плане этой задачи xij* = 1 при j = т + 1, ..., п, то исполнитель i назначается на выполнение фиктивной работы, т.е. остается без работы. Заметим, что оптимальное значение целевой функции исходной задачи совпадает с оптимальным значением задачи, приведенной к закрытой форме. Поэтому эффективность назначений в результате такого преобразования не меняется.
89
Пример решения задачи в Microsoft Excel
Постановка задачи
Предприятие объявило набор работников для нового цеха – указало названия трех должностей. Кадровая служба собрала четырех претендентов на эти должности, провела тестирование и определила эффект от выполнения работы каждым претендентом.
Нужно назначить на вакантные должности претендентов таким образом, чтобы общая эффективность выполняемых ими работ была максимальной.
Исходныеданныедлярешенияпредставленывтабл. 3.3.2.
|
|
|
|
|
Таблица 3.3.2 |
|
|
|
|
Исходные данные |
|
|
|
|
|
|
|
|
|
|
Работы |
|
Эффект от выполнения работ |
||||
|
|
Претенденты |
|
|
||
|
№ 1 |
|
№ 2 |
№ 3 |
|
№ 4 |
а1 |
5 |
|
4 |
2 |
|
6 |
а2 |
4 |
|
5 |
4 |
|
4 |
а3 |
3 |
|
6 |
5 |
|
3 |
Моделирование
Обозначим переменные величины: хij – искомые переменные;
х11 – назначение работника № 1 на должность а1; х12 – назначение работника № 1 на должность а2; х13 – назначение работника № 1 на должность а3;
х14 – назначение работника № 1 на должность а4 (фиктивная работа).
Аналогично для остальных претендентов. Тогда целевая функция
90