Наука о данных. Алгоритмы. Искусственный интеллект. Оптимизация

Эволюция вашего кода. Часть 2. Как решить проблему распределения персонала с помощью генетического алгоритма

Решение задачи распределения кадровых ресурсов с использованием генетического алгоритма

Введение

Если вы пришли сюда из моей предыдущей статьи Эволюция в вашем коде: понимание и кодирование генетического алгоритма с нуля — часть 1, добро пожаловать обратно.

Если вы здесь новичок, я рекомендую прочитать первую часть, так как это облегчит понимание интуитивного понимания кода, который мы собираемся написать ниже.

В этой статье давайте попробуем решить задачу распределения ресурсов в ресторане быстрого питания, которая является одним из самых популярных типов задач, изучаемых на занятиях по оптимизации.

Распределение ресурсов в задаче быстрого питания

Предположим, ресторан решает, как распределить свои ресурсы между тремя основными разделами:

  • Готовка
  • Сборка
  • Обслуживание

Целью этих задач является максимизация удовлетворенности клиентов, что в нашем случае, как мы предполагаем, зависит от эффективности этих разделов.

По этим секциям будут перемещаться 15 сотрудников, и на каждую секцию требуется минимум 3 сотрудника.

У каждого сотрудника свой коэффициент эффективности для каждого раздела в диапазоне от 0 до 1, где более высокая эффективность означает большую пригодность для этого раздела.

Удовлетворенность клиентов рассчитывается как произведение средних показателей эффективности сотрудников каждого отдела.

Вот наши дополнительные предположения:

  • Все сотрудники работают в одинаковые часы.
  • Эффективность отдела — это просто среднее значение эффективности его сотрудников.
  • Количество сотрудников в разделе не влияет на его эффективность, за исключением индивидуальной эффективности сотрудника — это означает, что нет ни уменьшающейся отдачи, ни синергии, реализуемой с большим количеством сотрудников.