Можно ли решить модель с обратным вызовом, используя model.solve(url=url, key=api)
? Я пробую пример, похожий на этот, но у обратного вызова нет эффект при вызове dropsolve
.
docplex с обратным вызовом в dropsolve
Ответы (1)
Если бы это было возможно, это было бы катастрофой производительности: для каждого вызова обратного вызова решение должно было бы вызывать обратный вызов из облака на ваш компьютер, чтобы вызвать обратный вызов. Поскольку обратные вызовы обычно вызываются часто, это приводит к большим накладным расходам во время выполнения.
Вместо этого вы можете отправить свой скрипт Python с помощью docplex в DOcplexcloud. Затем полный скрипт выполняется в облаке. В этом случае будет вызван обратный вызов. Пример можно найти в документации DOcplexcloud Python API. пример.
person
Daniel Junglas
schedule
19.03.2020
Тот же вопрос задан здесь: developer.ibm.com/answers/questions/531431/ Пожалуйста, не переписывайтесь. И если вы чувствуете, что должны это сделать, пожалуйста, соедините вопросы, чтобы люди не отвечали в двух местах.
- person Daniel Junglas; 19.03.2020
Я заметил, что в docplexcloud метод обратного вызова для tsp занимает больше времени, чем простое ограничение MTZ. Можете ли вы объяснить причину этого, или в моем наблюдении есть ошибка.
- person ooo; 20.03.2020
Если вы вводите все ограничения заранее, то CPLEX может использовать их в предварительном решении. Это невозможно, если они разделены в обратном вызове. Более того, если вы используете ленивые ограничения, некоторые предварительные сокращения не могут быть применены, поскольку CPLEX не видит полную модель. Это также может привести к снижению производительности. Наконец, вызов обратных вызовов курса влечет за собой некоторые накладные расходы во время выполнения.
- person Daniel Junglas; 20.03.2020