Some unexpected behavior came up when using the COIN-OR OSI interface to GLPK.
After a call to lpx_del_cols that removes one column (evidently a basic one), the code calls lpx_simplex to optimize the changed problem. However, this call fails with a "basis is invalid" error. I have traced through the code, so I think I have a sense of what's happening, which I've listed below. I'm not sure how this should be handled. Andrew (or anyone), what is your advice? How can we call lpx_simplex after a call to lpx_del_cols? Brady How I think the code works: - when columns are added, they are by default made nonbasic - when rows are added, they are by default made basic - the basis can be changed with a call to lpx_adv_basis or a prior call to lpx_simplex - when lpx_simplex is called, it calls spx_simplex, which eventually calls spx_warm_up - spx_warm_up will cause the program to fail if the basis is the wrong size or not invertible - although I haven't tested them, there seem to be a number of ways the basis could become invalid: + lpx_del_cols removes a basic column + lpx_del_rows removes a nonbasic row + lpx_add_rows adds a row that is linearly dependent on the current basis _______________________________________________ Help-glpk mailing list Help-glpk@gnu.org http://lists.gnu.org/mailman/listinfo/help-glpk