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