Назначения и отбор

Изображение лупы
На этой странице на примере задачи о назначениях мы рассмотрим, каким образом можно применить методы оптимизации к созданию лучшей команды, сделать тот или иной отбор, исходя из различных требований. Мы отберем оптимальные пары, применив стандартный инструмент MS Excel Поиск решения.

Вы научитесь:

Мини-кейс: Формирование команд.

Фирма, занимающаяся продажей оборудования для компьютерных сетей, наняла 10 новых специалистов по продажам и 11 новых техников-программистов, которых необходимо объединить в пары (техник + менеджер по продажам) — команды по продаже оборудования, соответствующего нуждам конкретного клиента. Менеджер по работе с персоналом провел среди них тест Майер-Бриггс и определил индекс взаимной совместимости для каждой возможной пары техник - продавец. Индекс может принимать значения в интервале от 1 до 16. Значение индекса 1 показывает, что команда обладает наилучшей совместимостью. Индекс, равный 16, свидетельствует о практической невозможности какого бы то ни было сотрудничества. Результаты тестов представлены в таблице. Необходимо провести формальный Team-building, т.е. по результатам тестирования наилучшим образом составить команды «техник + продавец» для работы с потенциальными клиентами.
данные задачи о назначениях
скрепка
  1. Сформулируйте целевую функцию для данной проблемы. Определите переменные задачи и организуйте данные для вычислений. Поставьте задачу для «Поиска решения» и получите оптимальное решение не вводя ограничений целочисленности или бинарности.
  2. Есть ли среди созданных команд пара сомнительного качества? Введите дополнительное ограничение, чтобы все команды имели бы индекс не хуже, чем 10. Каково минимальное возможное значение индекса худшей команды?
  3. Специалисты по HR утверждают, что нехорошо объединять в команды друзей. Попробуйте добавить ограничение, что индекс команд должен быть не лучше 2 или 3.

Математическая модель и решение задачи в MS Excel.

Применим метод решения транспортных задач к решению задачи о назначениях.
  • Перенесем данные задачи на лист MS Excel.
  • Будем искать решение в виде таблицы, в которой в случае создания пары "техник + менеджер по продажам" в соответствующей ячейке поставим 1. Назовем искомую таблицу таблицей назначений.
  • В таблице назначений выделим желтым цветом область переменных.
Алгоритм наших действий показан ниже (анимация):
 Таблица задачи о назначении
Очевидно, что вы можете назначить команды и расставить 1 интуитивно, однако это не продуктивно и не даст вам уверенности, что команды назначены наилучшим образом.

Какой параметр в данном случае математически описывает тот факт, что мы получим оптимальный набор команд в результате нашего отбора?
  • Поскольку у каждой команды есть собственный индекс совместимости, то сложив эти индексы мы получим суммарный индекс нашего отбора.
  • Тогда, чем меньше значение полученного суммарного индекса, тем лучше наше решение.
  • Следовательно, целевая функция данной задачи - сумма индексов совместимости каждой назначенной пары " техник + менеджер по продажам". Чем меньше значение этой величины, тем больше совместимых команд мы собрали, или тем меньше малосовместимых команд у нас получилось.
  • Цель оптимизации - подобрать команды так, чтобы суммарный индекс совместимости всех команд был бы минимальным.
Впишем необходимые формулы в таблицы (анимация).
 решаем задачу о назначениях
Теперь рассмотрим ограничения задачи.
  • В нашей таблице техники записаны в столбцах. Поскольку техников одиннадцать, а менеджеров по продажам десять, то один техник останется лишним и в команду не войдет.
  • Значит, в итоговом решении в каждом столбце таблице назначений должна стоять только одна единица и один столбец должен остаться пустым.
  • Если сложить все значения в каждом столбце, то полученная сумма будет равна 1 или 0. Это первое ограничение в этой задаче.
  • Менеджеры по продажам записаны в строках таблицы назначений. Каждый менеджер обязательно войдет в команду, но только в одну. Следовательно, в каждой строке таблицы решения будет стоять только одна единица.
  • Если мы сложим все значения ячеек в строке, то полученная сумма будет равна 1. Это второе ограничение.
Внесем данные в таблицу "Параметры поиска решения" (анимация).
 Панель параметры поиска решения для задачи о назначениях
После запуска Поиска решения получим следующий результат:
  • Суммарный индекс команд - 38.
  • Из десяти команд три имеют индекс совместимости 1, еще 3 команды имеют индекс совместимости 2. Очень хороший результат.
  • Однако, одна команда имеет индекс совместимости 12. Это тревожно. В этой команде возможны частые конфликты. Продуктивная работа такой команды вряд ли возможна.
 Решение задачи, найденное Поиском решения

Анализ полученного решения.

Итак, мы получили решение, но нас не устраивает команда с индексом совместимости 12. Поэтому введем в задаче дополнительное ограничение:
индекс совместимости команд не может быть больше 10.
Математически это ограничение может быть записано так:
  • $N$3:$N$12 <= 10
Запустим поиск решения и получим новый результат.
Решение, исключающее команды с индексом совместимости не хуже 10.
 Результат решения задачи
Одного взгляда на результат достаточно, чтобы понять, что мы получили не то, на что рассчитывали. Как можно назначить в команду 0.4 человека?
  • Причина проста: алгоритм нахождения оптимального решения ничего не знает о деталях задачи, он работает с цифрами и получает оптимальный, с точки зрения математики, результат.
  • Задача менеджера проанализировать полученный результат и внести коррективы в модель в случае необходимости.
  • В нашем случае для получения корректного решения нужно явно добавить требование: переменны должны быть бинарными, т.е. равны 1 или 0.
Введем это ограничение в поиск решения.
 Ввод новых ограничений на панели Поиска решений

Получим новый результат. Хотя суммарный индекс совместимости наших команд стал 39, зато у нас больше нет потенциально конфликтных команд с тяжелым микроклиматом.
Я надеюсь, что на третий вопрос задачи вы легко сможете ответить самостоятельно, добавив в "Параметры поиска решения" еще одно ограничение:
значение индекса совместимости отдельно команды должно быть не меньше 2.

блокнот Этот метод отбора можно использовать и при назначении конкретного работника на выполнение определенной работы.
Для того, чтобы применить метод оптимизации к решению задачи о назначении или отборе, необходимо:
  1. Создать таблицу эффективности. Это может быть таблица совместимости для отбора пар. Это может быть таблица скорости выполнения работ для задачи о назначении работника на выполнение определенной работы.
  2. Подготовить таблицу назначений.
  3. Подумать, что может стать целевой функцией в задаче. Это может быть минимальный суммарный индекс совместимости всех команд. Это может быть наименьшее время выполнения всех работ.
  4. Проанализировать данные:
    • все ли работники будут востребованы?
    • все ли работы могут быть выполнены?
  5. Установить ограничения.
  6. Внести данные в "Параметры поиска решения".
  7. Получить и проанализировать результат.