[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-glpk] Root node handling issue (and patch)

From: Chris Matrakidis
Subject: [Bug-glpk] Root node handling issue (and patch)
Date: Mon, 30 Nov 2015 11:55:41 +0200


In function ios_driver(), the root node is identified by checking whether the node level is zero (T->curr->level == 0). However, the node level may be zero even after branching if one of the branches is hopeless, in which case the node is reused. With the existing check, several procedures that are intended for the root node only are run again (e.g. proximity search, feasibility pump and heavy node preprocessing).

This can be seen using neos13.mps from miplib with:
glpsol --fpump --cuts neos13.mps

The attached patch introduces a new variable "root_done" which is initially zero and is set to one before the first branching decision. All checks for the root node are replaced with !root_done, and two more checks are added before the calls to ios_feas_pump() and ios_proxy_heur() where the original checks are inside the functions.

Best Regards,

Chris Matrakidis

Attachment: root.patch
Description: Binary data

reply via email to

[Prev in Thread] Current Thread [Next in Thread]