Мне нужно решить проблему с влиянием на работу, и я хотел бы найти, предпочтительно, эффективные алгоритмы для решения этой проблемы.
Допустим, есть некоторые работники, которые могут выполнять несколько видов задач. У нас также есть пул задач, которые должны выполняться каждую неделю. Каждая задача занимает некоторое время. Каждое задание должно быть принято кем-то. Каждый работник должен работать от N до P часов в неделю.
Эта первая часть проблемы кажется хорошим кандидатом на алгоритм программирования ограничений.
Но вот сложность: поскольку работник может выполнять разные задачи, у него также могут быть предпочтения (или желания). Если кто-то хочет удовлетворить все пожелания для всех, решение проблемы не существует (слишком много ограничений).
Так что мне нужен алгоритм для решения этой проблемы. Я не хочу изобретать велосипед, если идеальное колесо уже существует.
Алгоритм должен быть справедливым (если можно определить это слово), поэтому, например, я должен иметь возможность добавить ограничение типа «попытаться удовлетворить хотя бы одно желание на людей». Я не уверен, что эту проблему можно решить с помощью описанных здесь методов Иерархии ограничений: Иерархии ограничений . На самом деле я не уверен, что «справедливость» и пожелания могут быть выражены действительными ограничениями для этой категории алгоритмов.
Есть ли эксперт по программированию с ограничениями, чтобы дать мне несколько советов? Нужно ли разрабатывать новое колесо с некоторой эвристикой вместо использования эффективных алгоритмов CP?
Спасибо!