[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Help-glpk] basis invalid after lpx_del_cols
From: |
Brady Hunsaker |
Subject: |
[Help-glpk] basis invalid after lpx_del_cols |
Date: |
Sat, 11 Mar 2006 23:42:35 -0500 |
User-agent: |
Debian Thunderbird 1.0.7 (X11/20051017) |
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] basis invalid after lpx_del_cols,
Brady Hunsaker <=