Я решил проблему с MIP, заставив процесс решения спать на 1 секунду в каждой ветви, используя BranchCallback (один поток). Из журнала я заметил, что системное время, измеряемое в секундах, менялось при каждом запуске, в то время как детерминированное c время, измеренное в тиках, не изменялось. Однако проблема заключалась в том, что последний даже не изменился, был ли применен 1-секундный сон или нет. Напротив, системное время действительно записывало время ожидания.
Я также пытался получить детерминированное время c, используя API обратного вызова, но он подсчитывал только 0,0 тиков за 1-секундный сон. Это не проблема в режиме ожидания, потому что простой подсчет кода для большого числа также показал 0,0 тиков. Я подумал, что он может не записывать время выполнения кода.
Что именно определяет время 100m * детерминиста в CPLEX? Есть ли какой-либо метод для измерения реального времени выполнения (особенно реального времени выполнения обратного вызова), как системное время, но определенным образом c?