Что означают события, содержащиеся в SCIP_EVENTTYPE_NODESOLVED?

Я пытаюсь поймать изменение двойной привязки с помощью обработчика событий. В type_event.h нет события для обнаружения этого, поэтому я хочу использовать событие SCIP_EVENTTYPE_NODEFEASIBLE.

Меня немного смущает взаимосвязь между событиями, из которых состоит SCIP_EVENTTYPE_NODESOLVED (SCIP_EVENTTYPE_NODEFEASIBLE, SCIP_EVENTTYPE_NODEINFEASIBLE и SCIP_EVENTTYPE_NODEBRANCHED). Эти события не пересекаются? Что они конкретно означают? ИМХО, в документации по этому поводу не очень ясно.

Я предполагаю следующее (при условии, что три события не пересекаются):

  • SCIP_EVENTTYPE_NODEFEASIBLE: LP в этом узле является цельным.
  • SCIP_EVENTTYPE_NODEINFEASIBLE: узел недопустим или был обрезан путем привязки.
  • SCIP_EVENTTYPE_NODEBRANCHED: решение LP на этом узле является дробным, и было выполнено ветвление.

Заранее спасибо!


person rocarvaj    schedule 27.06.2019    source источник


Ответы (1)


Ваша догадка почти верна. SCIP_EVENTTYPE_NODEINFEASIBLE выдается, если текущий узел фокуса обнаруживается как недопустимый, либо путем распространения, либо после решения узла LP.

Однако удаление открытых узлов в дереве путем отсечения происходит только после того, как будет найдено новое действующее решение. Это действие внутреннего дерева, которое не фиксируется никаким событием.

К счастью, вам не нужно об этом беспокоиться, потому что обрезка не влияет на двойную привязку. Просто запросите двойную границу на каждом SCIP_EVENTTYPE_NODESOLVED.

person Gregor    schedule 27.06.2019
comment
Большое спасибо, Грегор! Как вы говорите, мне на самом деле не нужно знать подробности события узла, чтобы проверить наличие обновлений в привязке. Но было хорошо узнать это. Как такой простой смертный, как я, может предложить улучшения в документации SCIP? - person rocarvaj; 27.06.2019
comment
Мы всегда стараемся улучшить документацию. Вы всегда можете связаться со мной лично, так как я отвечаю за документацию. Я обновлю свои обязанности на веб-странице, чтобы прояснить это. Альтернативой является использование формы отправки сообщений об ошибках, которая создаст запрос SCIP в нашем gitlab. . Жду ваших предложений. - person Gregor; 28.06.2019