Метод назначенийПредназначены для использования при изучении курса 'Принятие решений в задачах производственного и операционного менеджмента'. КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ О МЕТОДЕ НАЗНАЧЕНИЙ Метод назначений - это один из методов линейного программирования, который предназначен для оптимального подбора n 'предложений' к n 'потребностям', например, для назначения вида работы машине, назначения вида работы производственному отделу, назначения человека на должность и т.д. Метод назначений применяется при решении задач, имеющих следующие характеристики: 1. Имеется n 'предметов', которые должны быть распределены по n 'пунктам назначения'. 2. Каждый 'предмет' должен быть назначен единственному 'пункту назначения'. В понятие 'предмет' и 'пункт назначения' может вкладываться различное смысловое значение, определяемое конкретной задачей менеджмента. Так в качестве предмета может выступать определенный вид деятельности (работы), должность, человек и т.д. 3. Оптимальный подбор назначений должен быть достигнут за счет максимизации или минимизации определенной меры эффективности назначения : прибыли или стоимости. Для каждого потенциального назначения оценивается мера эффективности. Если мерой эффективности является прибыль, то в процессе решения задачи о назначениях она максимизируется, если мерой эффективности является стоимость, она минимизируется. Например, пусть имеются четыре должности, на которые необходимо назначить четырех кандидатов, которые в этом случае становятся работниками. Каждому работнику может быть назначена единственная должность. Заметим, что количество должностей равно количеству работников. Необходимо составить матрицу, чтобы показать все возможные взаимосвязи между четырьмя должностями и четырьмя работниками. Работники представляются строками матрицы, а должности - столбцами, как показано в таблице 1. 16 ячеек матрицы содержат стоимости каждой возможной комбинации должность-работник. Например, стоимость назначения должности 2 работнику 2 составляет $19. Содержимое ячеек матрицы определяет интегральную меру эффективности, которая должна минимизироваться, поскольку является стоимостью. Если содержимое ячеек матрицы представляет собой прибыль, мера эффективности должна максимизироваться. Таблица 1. Матрица назначений работников на должности
Приведенная выше задача может быть сформулирована как задача линейного программирования и решена с использованием модуля линейного программирования. Однако, легче и эффективнее для решения задач подобного типа использовать метод назначений, который состоит из следующих четырех шагов. 1. В каждой строке найти наименьшее значение и вычесть его из содержимого всех ячеек этой строки матрицы. (Получится по крайней мере один нуль в каждой строке.) 2. В столбце, не содержащем нулевых ячеек, найти наименьшее значение и вычесть его из содержимого всех ячеек этого столбца матрицы. 3. 'Линейный тест'. В матрице назначений провести минимальное число линий (горизонталей (по строкам) и/или вертикалей (по столбцам)), вычеркивающих все нулевые ячейки матрицы. Если минимальное число вычеркнутых строк и столбцов равно n, оптимальное решение найдено, т.к. назначения должны быть произведены в 'пункты', соответствующие нулевым ячейкам матрицы. В противном случае, если минимальное число вычеркнутых строк и столбцов 4. Среди невычеркнутых строк и столбцов найти ячейку с наименьшим значением. Вычесть это значение из содержимого всех невычеркнутых ячеек и добавить это значение к содержимому всех ячеек, находящихся на пересечении линий. Повторить шаг 3. Проиллюстрируем этот алгоритм на примере решения задачи о назначении 5 видов работ любой из 5 машин (n=5). Матрица стоимостей каждой комбинации работа/машина приведена в таблице 2-1. Таблица 2-1. Матрица назначений, содержащая затраты на выполнение работ каждой машиной
Например, при назначении работы 1 машине A вместо машины E убыток составит $2 ($5-$3). Программа, реализующая метод назначений, эффективно выполняет сравнения стоимостей для всего множества альтернативных назначений посредством приведения строк и столбцов. Метод решения задачи назначений требует, чтобы количество должностей и кандидатов было равным. Если это условие не выполняется, компьютер должен увеличить матрицу так, чтобы она стала квадратной. Например, если 5 работников претендуют на 4 должности, компьютер дополнит матрицу до размера 5*5 за счет введения фиктивной должности. Все значения стоимостей для фиктивной должности должны полагаться равными нулю, как показано в таблице 3. Заметим, что стоимость назначения работника 5 должна быть определена и включена в соответствующие ячейки матрицы. Если имеется больше должностей, чем работников (кандидатов), компьютер также должен увеличить матрицу, чтобы она стала квадратной. Предположим, что имеется 6 должностей и только 4 работника (кандидата). Компьютер дополнит матрицу до размера 6*6, как показано в таблице 4. Заметим, что работники 5 и 6 являются фиктивными и стоимости назначений для фиктивных работников полагаются равными нулю. Таблица 3. Расширенная матрица назначений - 4 должности для 5 кандидатов
Таблица 4. Расширенная матрица назначений - 6 должностей для 4 кандидатов
Стоимости назначений для этой задачи представлены в таблице 1. Загрузите программу DSSPOM в компьютер и выберите Assignment Method в главном меню. Через несколько секунд компьютер загрузит программу назначений и высветит Assignment Menu. Передвиньте указатель на опцию INPUT и нажмите клавишу . Программа приступит к вводу данных, запрашивая ввод заголовка задачи. Выберите заголовок, который Вы считаете подходящим, м введите его в поле заголовка задачи. Нажмите , чтобы ввести следующий параметр. Следующим входным параметром является 'тип цели'. Так как задача состоит в назначении должностей работникам и поэтому содержит стоимости, целью является минимизация стоимости. Напечатайте MIN и нажмите для продолжения. Заметим, что в это поле программа может принять только 'MIN' или 'MAX'. Никакие другие значения не принимаются и поэтому программа в случае неправильного ввода не сможет продолжить выполнение. Во время ввода данных при помощи нажатия клавиши 'Стрелка вверх' можно вернуться к предыдущему полю, чтобы исправить его значение. Для продолжения ввода данных нажмите клавишу 'Стрелка вправо' и напечатайте '4' для количества кандидатов. Нажмите , чтобы ввести количество должностей. Нажмите клавишу 'Стрелка вправо', напечатайте '4' и нажмите . Максимальная размерность задачи - 30 на 30, стоимости назначений должны быть в диапазоне от 0 до 9999. Заполненный экран исходных данных показан ниже.
Заполненная таблица исходных данных показана ниже.
Теперь Вы можете распечатать входные данные, для этого необходимо установить указатель на опцию PRINT и нажать . Предварительно проверьте готовность принтера к работе. Вы можете также сохранить задачу на диске для будущих обращений. Для этого установите указатель на опцию FILE и выберите подопцию 'Save current file', опуская подсвеченный прямоугольник на одну строку. Нажмите . Программа высветит название текущего устройства и директории и попросит Вас ввести имя файла. Введите имя файла в соответствии с соглашениями DOS. Теперь все готово для решения задачи. Установите указатель на опцию SOLVE и выберите под-опцию 'Display output'. Через несколько секунд программа выдаст оптимальное назначение, как показано ниже.
Стоимости назначений представлены в таблице 3. Этот тип задачи назначения называется 'несбалансированной задачей'. Для решения несбалансированной задачи, компьютер добавляет дополнительные фиктивные должности (или кандидатов), чтобы привести матрицу к квадратной форме. Стоимости назначений для фиктивных должностей (или работников) полагаются равными нулю. Установите указатель на опцию EDIT и нажмите для изменения условий задачи. Программа начнет процесс редактирования с установки указателя в поле названия задачи. Измените название задачи на EXAMPLE 2 и нажмите . Снова нажмите , чтобы сохранить тип цели. Измените количество кандидатов на 5. Для этого передвиньте указатель на одну позицию, напечатайте '5' нажмите . Нажмите , чтобы сохранить существующее значение количества должностей. Заполненный экран исходных данных показан ниже.
Заметим, что новая таблица содержит дополнительного кандидата, стоимости назначения которого равны нулю. Установите указатель на последнюю строку (Candid 5) и введите стоимости назначения в стобцы B - E. Заполненная таблица показана ниже.
Теперь все готово для решения задачи. Установите указатель на опцию SOLVE и выберите подопцию 'Display output'. Через несколько секунд программа выдаст сообщение о несбалансированности задачи и о добавлении дополнительного фиктивного столбца.
Оптимальное решение будет выглядеть следующим образом.
Стоимости назначения остальных четырех работников на эту должность полагаются равными нулю. Установите указатель на опцию EDIT и нажмите для изменения условий задачи. Программа начнет процесс редактирования с установки указателя в поле названия задачи. Измените название задачи на EXAMPLE 3 и нажмите . Нажмите дважды, чтобы установить указатель на поле 'количество должностей'. Измените значение на '5', чтобы добавить дополнительную должность, и нажмите для сохранения нового значения. Заполненный экран исходных данных показан ниже.
Заметим, что добавлена новая фиктивная должность (номер 5) со стоимостями назначения, равными нулю. Установите указатель на ячейку F6, представляющую стоимость назначения работника 5 на фиктивную должность и измените значение на 1000. Эта большая стоимость назначения предотвратит назначение кандидата 5 на фиктивную должность. Заполненная таблица показана ниже.
Теперь все готово для решения задачи назначений с ограничениями. Установите указатель на опцию SOLVE и выберите подoпцию 'Display output' для того, чтобы решить задачу и получить результаты, которые приведены ниже.
Кандидат 2 назначен на должность 1, кандидат 3 - на должность 3, кандидат 4 - на должность 4 и работник 5 - на должность 2. Суммарная стоимость этого нового решения $31, что несколько больше стоимости, полученной ранее ($29). ЗАДАНИЯ К ЛАБОРАТОРНОМУ ПРАКТИКУМУ 1 . Корпорации RMC требуется назначить пятерых работников на пять должностей. Найдите оптимальное решение на основе матрицы стоимостей, приведенной ниже.
Прибыль от выполнения пяти видов работ каждым из пяти подразделений показана ниже. Разработать оптимальную стратегию предложения работы.
Найдите оптимальное решение на основе матрицы стоимостей, приведенной ниже.
Прибыль от выполнения пяти видов работ каждым из шести подразделений показана ниже. Найдите оптимальное решение. Какое подразделение не получит работу? Почему?
Определите назначение на работу на основе 'оценки' и отдельно на основе зарплаты. Какова разница в стоимости наилучшего назначения, если вместо минимизации зарплаты максимизировать 'оценку?' Содержимое ячеек матрицы не обязательно выражается в долларах или каких-либо денежных единицах. 'Оценка' претендента за месяц
Основываясь на ценах, предложенных четырьмя потенциальными покупателями, определить, какую машину должен получить каждый из них, чтобы максимизировать прибыль продавца.
Потенциальными покупателями являетесь Вы и Ваши партнеры. Предложенные Вами и Вашими партнерами цены приведены ниже. |