Если имеется больше должностей, чем работников (кандидатов), компьютер также должен увеличить матрицу, чтобы она стала квадратной. Предположим, что имеется 6 должностей и только 4 работника (кандидата). Компьютер дополнит матрицу до размера 6*6, как показано в таблице 4. Заметим, что работники 5 и 6 являются фиктивными и стоимости назначений для фиктивных работников полагаются равными нулю.
Таблица 3. Расширенная матрица назначений - 4 должности для 5 кандидатов
Должности | ||||||
1 | 2 | 3 | 4 | 5 | ||
1 | 16 | 9 | 14 | 17 | 0 | |
Канди- | 2 | 7 | 19 | 8 | 14 | 0 |
даты | 3 | 15 | 6 | 9 | 10 | 0 |
4 | 19 | 17 | 11 | 4 | 0 | |
5 | 14 | 11 | 18 | 16 | 0 |
Замечание: Ячейки содержат стоимости назначений.
Таблица 4. Расширенная матрица назначений - 6 должностей для 4 кандидатов
Должности | |||||||
1 | 2 | 3 | 4 | 5 | 6 | ||
1 | 16 | 9 | 14 | 17 | 8 | 11 | |
Канди- | 2 | 7 | 19 | 8 | 14 | 13 | 18 |
даты | 3 | 15 | 6 | 9 | 10 | 17 | 5 |
4 | 19 | 17 | 11 | 4 | 9 | 14 | |
5 | 0 | 0 | 0 | 0 | 0 | 0 | |
6 | 0 | 0 | 0 | 0 | 0 | 0 |
ИНСТРУКЦИЯ ПО ИСПОЛЬЗОВАНИЮ ПОДСИСТЕМЫ "МЕТОД НАЗНАЧЕНИЙ" ПРОГРАММЫ DSSPOM
ПРИМЕР 1 - ЗАДАЧА НАЗНАЧЕНИЯ РАБОТНИКОВ НА ДОЛЖНОСТИ
В этом примере используется программа назначений для решения задачи назначения работника на должность. Цель - назначить четыре должности четырем работникам так, чтобы минимизировать суммарную стоимость назначений. Стоимости назначений для этой задачи представлены в таблице 1.
Загрузите программу DSSPOM в компьютер и выберите Assignment Method в главном меню. Через несколько секунд компьютер загрузит программу назначений и высветит Assignment Menu. Передвиньте указатель на опцию INPUT и нажмите клавишу <ENTER>. Программа приступит к вводу данных, запрашивая ввод заголовка задачи. Выберите заголовок, который Вы считаете подходящим, м введите его в поле заголовка задачи. Нажмите <ENTER>, чтобы ввести следующий параметр.
Следующим входным параметром является "тип цели". Так как задача состоит в назначении должностей работникам и поэтому содержит стоимости, целью является минимизация стоимости. Напечатайте MIN и нажмите <ENTER> для продолжения. Заметим, что в это поле программа может принять только "MIN" или "MAX". Никакие другие значения не принимаются и поэтому программа в случае неправильного ввода не сможет продолжить выполнение. Во время ввода данных при помощи нажатия клавиши "Стрелка вверх" можно вернуться к предыдущему полю, чтобы исправить его значение.
Для продолжения ввода данных нажмите клавишу "Стрелка вправо" и напечатайте "4" для количества кандидатов. Нажмите <ENTER>, чтобы ввести количество должностей. Нажмите клавишу "Стрелка вправо", напечатайте "4" и нажмите <ENTER>. Максимальная размерность задачи - 30 на 30, стоимости назначений должны быть в диапазоне от 0 до 9999. Заполненный экран исходных данных показан ниже.
Problem title: JOB CONTRACT |
Objective type (MIN/MAX): MIN |
Number of candidates (rows): 4 |
Number of jobs (columns): 4 |
Enter problem parametrs as requested. Press RETURN toaccept, or ESC to exit. Maximum problem size is 30 by 30assignment costs should be within 0 and 9999. |
Затем программа продолжит выполнение, запрашивая, хотите ли Вы ввести стоимости назначений.
Continue with assignment costs (Y/N) Y |
После нажатия <Y> на экране появится отформатированная таблица для ввода стоимостей назначений. Заполненная таблица исходных данных показана ниже.
B1 | Job1 | ||||
A | B | C | D | E | |
1 | Job1 | Job2 | Job3 | Job4 | |
2 | Candid1 | 16 | 9 | 14 | 17 |
3 | Candid2 | 7 | 19 | 8 | 14 |
4 | Candid3 | 15 | 6 | 9 | 10 |
5 | Candid4 | 19 | 17 | 11 | 4 |
Если Вы хотите использовать более содержательные имена для работников (отличные от Candid1, Candid2 и т.д.), переместите указатель в колонку A таблицы и выполните ссответствующие изменения. Вы можете также поместить указатель в первую строку и изменить названия должностей. После завершения процесса ввода нажмите <F10> для запоминания данных и выхода из табличного редактора.
Теперь Вы можете распечатать входные данные, для этого необходимо установить указатель на опцию PRINT и нажать <ENTER>. Предварительно проверьте готовность принтера к работе. Вы можете также сохранить задачу на диске для будущих обращений. Для этого установите указатель на опцию FILE и выберите подопцию "Save current file", опуская подсвеченный прямоугольник на одну строку. Нажмите <ENTER>. Программа высветит название текущего устройства и директории и попросит Вас ввести имя файла. Введите имя файла в соответствии с соглашениями DOS.
Теперь все готово для решения задачи. Установите указатель на опцию SOLVE и выберите под-опцию "Display output". Через несколько секунд программа выдаст оптимальное назначение, как показано ниже.
Problem Title: JOB CONTRACT |
Optimal Solution: Objective value = 29 |
Candid1 assigned to Job2 |
Candid2 assigned to Job1 |
Candid3 assigned to Job3 |
Candid4 assigned to Job4 |
Полученное оптимальное назначение (минимальной стоимости) предписывает назначить работника 1 на должность 2, работника 2 на должность 1, работника 3 на должность 3 и работника 4 на должность 4. Общая стоимость этого назначения $29.
ПРИМЕР 2 - ЗАДАЧА НАЗНАЧЕНИЯ РАБОТНИКОВ НА ДОЛЖНОСТИ (НЕСБАЛАНСИРОВАННАЯ)
Предположим, что имеется дополнительный работник, но должностей по прежнему четыре. Стоимости назначений представлены в таблице 3.
Этот тип задачи назначения называется "несбалансированной задачей". Для решения несбалансированной задачи, компьютер добавляет дополнительные фиктивные должности (или кандидатов), чтобы привести матрицу к квадратной форме. Стоимости назначений для фиктивных должностей (или работников) полагаются равными нулю.
Установите указатель на опцию EDIT и нажмите <ENTER> для изменения условий задачи. Программа начнет процесс редактирования с установки указателя в поле названия задачи. Измените название задачи на EXAMPLE 2 и нажмите <ENTER>. Снова нажмите <ENTER>, чтобы сохранить тип цели. Измените количество кандидатов на 5. Для этого передвиньте указатель на одну позицию, напечатайте "5" нажмите <ENTER>. Нажмите <ENTER>, чтобы сохранить существующее значение количества должностей. Заполненный экран исходных данных показан ниже.
Problem Title: EXAMPLE 2 |
Objective type (MIN/MAX): MIN |
Number of candidates (rows): 5 |
Number of jobs (columns): 4 |
Continue with assignment costs (Y/N) Y |
Нажмите <ENTER> для внесения изменений в таблицу стоимостей назначения. Заметим, что новая таблица содержит дополнительного кандидата, стоимости назначения которого равны нулю. Установите указатель на последнюю строку (Candid 5) и введите стоимости назначения в стобцы B - E. Заполненная таблица показана ниже.
E6 | 16 | ||||
A | B | C | D | E | |
1 | Job1 | Job2 | Job3 | Job4 | |
2 | Candid1 | 16 | 9 | 14 | 17 |
3 | Candid2 | 7 | 19 | 8 | 14 |
4 | Candid3 | 15 | 6 | 9 | 10 |
5 | Candid4 | 19 | 17 | 11 | 4 |
6 | Candid5 | 14 | 11 | 18 | 16 |
После завершения ввода данных для нового кандидата нажмите <F10>, чтобы сохранить исходные данные и выйти из табличного редактора.
Теперь все готово для решения задачи. Установите указатель на опцию SOLVE и выберите подопцию "Display output". Через несколько секунд программа выдаст сообщение о несбалансированности задачи и о добавлении дополнительного фиктивного столбца.
Since there are fewer columns than rows, additional dummy |
columns will be added with zero value in each cell |
Нажмите <ENTER>, чтобы продолжить процесс решения. Оптимальное решение будет выглядеть следующим образом.
Problem Title: EXAMPLE 2 |
Optimal Solution: Objective value = 29 |
Candid1 assigned to Job2 |
Candid2 assigned to Job1 |
Candid3 assigned to Job3 |
Candid4 assigned to Job4 |
Candid5 assigned to Dummy 5 |
Полученное оптимальное назначение такое же, как в примере 1 и имеет такую же стоимость $29. Отличие состоит только в том, что новый работник должен быть назначен на фиктивную должность 5. Это означает, что новому работнику не предоставляется ни одна из существующих четырех должностей.
ПРИМЕР 3 - ЗАДАЧА НАЗНАЧЕНИЯ РАБОТНИКОВ НА ДОЛЖНОСТИ: НОВЫЕ ОГРАНИЧЕНИЯ
Теперь предположим, что по некоторым причинам дополнительный (пятый) работник должен быть назначен на реальную, а не на фиктивную должность. Как решить эту задачу? Одно из возможных решений - точно так же ввести фиктивную должность и определить стоимость назначения пятого работника самыми большими. Стоимости назначения остальных четырех работников на эту должность полагаются равными нулю.
Установите указатель на опцию EDIT и нажмите <ENTER> для изменения условий задачи. Программа начнет процесс редактирования с установки указателя в поле названия задачи. Измените название задачи на EXAMPLE 3 и нажмите <ENTER>. Нажмите <ENTER> дважды, чтобы установить указатель на поле "количество должностей". Измените значение на "5", чтобы добавить дополнительную должность, и нажмите <ENTER> для сохранения нового значения. Заполненный экран исходных данных показан ниже.