Я новичок в Cplex. Мне нужно вычислить перекрытие между несколькими интервалами одновременно. Для этого я вычисляю длину перекрытия между двумя интервалами за раз и сохраняю максимальное и минимальное значения начальной / конечной точек. Например, давайте рассмотрим три интервала Vars I1, I2, I3. Цель состоит в том, чтобы максимизировать совпадение между тремя. Затем код выглядит следующим образом:
over1 = mdl.overlap_length (I1, I2)
start1 = max (mdl.start_of (I1), mdl.start_of (I2) )
end1 = min (mdl.end_of (I1), mdl.end_of (I2))
over1 = mdl.overlap_length (I3, (start1, end1)
А затем я максимизирую оверлей 1. С этим я получаю следующую ошибку:
AssertionError: express фиксированный интервал, 'interval2' должен быть кортежем из двух целых чисел
На самом деле, start1 и end1 являются целочисленными выражениями CP. Я не нашел способа преобразовать или получить значение! Есть кто-нибудь, кто знает, как это сделать?
Спасибо