1

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

(я буду использовать продаж коучинг в моем примере)

  • Сотрудники Реестры будут заполняться в систему от времени и посещаемости системы (время/дата).
  • Там будет очередь из сотрудников, которые еще не участвовали продажи коучинга
  • Некоторые из сотрудников они кочевники продаж, который будет председательствовать на сессии коучинга (один упряжная за сеанс)
  • Исходя из списка сотрудников, я бы как система для создания расписания сеансов коучинга (несколько случаев того же сеанса) для размещения очереди сотрудников, которые должны присутствовать. Логика этого графика основана на два обязательных и дополнительных критериях (по желанию, выбранного пользователем)

ОБЯЗАТЕЛЬНЫХ КРИТЕРИИ

(1) Каждый сеанс должен иметь упряжной, т.е. сеанс не может быть запланирован на время упряжная не значащихся в реестре работать

(2) Каждая сессия имеет максимальную емкость

ДОПОЛНИТЕЛЬНЫЕ КРИТЕРИИ

(1) Доступные места на сеансы ПРИО (предпочтение отдается пожилым сотрудникам)

(2) Максимальный порог числа сотрудников, которые могут посещать сеанс из определенного отдела (не может иметь 90-100% сотрудники из одного отдела в одной сессии)

(3) Существует минимальный порог для сеанса (не имеет смысла для сессии, которая запланирована только на одного человека)

Очевидно, что я хочу сначала создайте планировщик только с обязательными критериями, но важно помнить, что ему необходимо будет поддерживать дополнительные критерии.

Я не уверен, насколько сложна эта проблема, хотя я считаю, что это может быть проще, чем проблемы с ранцами и медсестрой, потому что количество сеансов может расти - я не ограничен ограниченным пространством.

Я знаю, что может быть невозможно, чтобы все критерии были выполнены для всех желающих участников, но я ищу наилучший вариант.

Кроме того, эта система не связана с фактическим воспроизведением сдвигов и проблемами без вычисления, которые могут возникнуть (человек A не хочет работать с человеком B и т. Д.). Что касается этой системы, то список представляет собой простой ввод из системы T & A.

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

Спасибо.

+0

Я бы предложил найти инструмент, который решает программы ограничения. –

+0

Спасибо, но я разрабатываю это как личный проект, чтобы получить опыт такого рода вычислений. Я бы предпочел сделать это сам. У меня нет временных ограничений, поэтому у меня есть свобода учиться. –

+0

По крайней мере, вы будете формализовать ограничения. Затем вы сможете выяснить, как решить эту проблему самостоятельно. У вас также будет инструмент для проверки того, что ваше решение действительно работает (при условии, что ограничения верны). Это хороший способ получить некоторый опыт такого рода вычислений. –

ответ

1

Узнайте, что вы можете от других стандартных проблем, но не ограничивайте себя своей проблемой в этих формах. Попробуйте грубую силу, если вам нравится, поскольку иногда полезно понять, почему она не масштабируется мимо тривиальных примеров. Я бы попытался использовать один из существующих инструментов, таких как optaplanner или minizinc и minion, чтобы почувствовать себя. Определенно пытаться реализовать свой собственный решатель ограничений очень поучительно, если у вас есть время. Читайте о том, как это сделали другие, потому что это не просто, и есть несколько ожидающих вас ловушек. Также посмотрите на местные идеи поиска, поскольку они на удивление легко внедряются, как только вы получите право на свое мышление. Похоже, что подходы к генетическому алгоритму, по крайней мере, для меня становятся труднее. Удачи.

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