Я пытаюсь создать график смен для каждого сотрудника с учетом доступности смены сотрудника.У меня определен кортеж, включающий время начала смены, время окончания смены, максимальное количество людей в смену.Входные данные также включают в себя список массивов для предпочтений смены сотрудника, например [[1 0 0 1 1], ...], который представляет, что сотрудник 1 доступен для смен 1, 4, 5, но не 2, 3. Обратите внимание, чтовремена смены не являются взаимоисключающими и могут перекрываться.
У меня есть переменная решения x [i, j], которая равна 1, если сотрудник i укомплектован для смены j, 0 в противном случае.После выполнения я ожидаю, что x [i, j] будет матрицей, указывающей для каждого сотрудника, на какую смену они назначены.У меня есть другие ограничения, включая сменность.Но я застрял на том, как создать ограничение, чтобы убедиться, что назначенные сдвиги не перекрываются.
У меня есть одна идея - сравнить x [i, j] и x [i, k], где j= / = k и посмотреть, проверяют ли они время начала i> время окончания j ИЛИ время начала j> время окончания i.Но я не уверен, как реализовать это в OPL.