2017-02-15 7 views
1

Я работаю над проблемой оптимизации. Цель состоит в том, чтобы определить оптимальное количество целевых наемных работников (COUNT ниже) для установки на канал поиска персонала, который даст наименьшее количество аттриторов (ПРИНИМАЮТ ниже) в конце каждого месяца и при минимальных затратах на покупку (COST ниже). Ограничения состоят в том, что общий счет должен равняться 600 и что все каналы должны использоваться.Оптимизация: 2 Объективные ограничения

Учитывая две целевые функции, это что-то, что может быть выполнено с помощью R, Solver или любого инструмента с открытым исходным кодом?

Я попытался форматированием фиктивных данных и это будет выглядеть примерно так:

enter image description here

Спасибо!

ответ

1

Простым способом решения этой проблемы является количественная оценка стоимости истирания. У вас уже есть cost per hire, точно так же, используя знания вашего домена и деловой разговор, попробуйте придумать per employee attrition cost (скажем, первую модель). Скорее всего, в зависимости от уровня квалификации per employee attrition cost будет отличаться, поэтому для хорошего приближения вы можете рассчитать его для каждого канала, а затем сделать среднюю (скажем, вторую модель)

Как только вы скажете, что получил per employee attrition cost независимо от канала (первая модель), то вы можете просто добавить per employee attrition cost * total attrition в объектную функцию. В модели второго уровня вы можете сделать то же самое; с добавленным размером канала, per employee attrition cost for a channel * total attrition for that channel. Основываясь на деловой интерпретации, люди также идут на следующий уровень: factor * per employee attrition cost for a channel * total attrition for that channel, где factor - это корректировка важности найма и затрат на утилизацию (хотя я бы ожидал, что затраты будут решаться в одиночку).

Вы можете сделать это в решателе Excel ИЛИ выбрать здесь https://cran.r-project.org/web/views/Optimization.html ИЛИ пойти на коммерческие решения, такие как Gurobi, CPLEX со своими API-интерфейсами в R, Python.

+0

Спасибо! Умножение расходов на утилизацию сотрудников * полное истощение, безусловно, сделает это. Однако я намерен добавить дополнительную переменную, коэффициент конверсии (в процентах). Таким образом, каналы с низкими коэффициентами преобразования в идеале должны быть менее приоритетными. Могу ли я просто умножить три стоимости * полного истощения * (1-конверсионный курс), а затем минимизировать этот продукт? – lb0389

+0

Да, это правильно. Затем вам нужно это моделирование на уровне канала, которое будет «на расходы на увольнение каждого сотрудника для полного обхода канала для этого канала» (1-конверсионный курс для канала); в соответствии с вашим заявлением коэффициент конверсии является специфической для канала. – abhiieor

+0

Спасибо abhiieor. Но, извините, чтобы уточнить, что вы подразумеваете под моделированием «на сотрудника на уровне канала»? Вы имеете в виду, что мне приходится вычислять разные затраты на одного сотрудника, а затем собирать его обратно? Потому что, если так, я могу сделать это в течение одного месяца. Но тогда данные должны меняться в зависимости от месяца. Не могу ли я сделать это изначально на агрегированном уровне, как в прикрепленном изображении в моем исходном вопросе? – lb0389

Смежные вопросы