[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-glpk] is it possible to determine the value a nb variable will
From: |
Andrew Makhorin |
Subject: |
Re: [Help-glpk] is it possible to determine the value a nb variable will take? |
Date: |
Tue, 13 Jan 2009 18:03:45 +0300 |
> well, since our grades are already posted for the homework, i will be
> glad to share the code.
> this is a zip file of 27kb size
> http://www.2shared.com/file/4613418/36e26fd8/TabuSearch.html
> note that i have slightly modified the original lpx_prim_ratio_test()
> function of GLPK
> the modified files are also in the zip file.
> i needed to know how the basic variable changed(-1 decrease, +1
> increase) and the final value of the entering nonbasic variable. maybe
> GLPK already presents these values, i am not sure.
> glpk.h (obviously since the signature of the function has changed)
> glplpx06.c (this is where i added a few lines of code to obtain what i
> want)
> glplpx08.c (this changes since it has calls to lpx_prim_ratio_test(),
> i just added two more parameters with values 0 (null) so that it would
> compile)
There is no need to change the code.
Let the routine choose xB[p]. Looking through the tableau column
passed to lpx_prim_ratio_test you can determine corresponding influence
coefficient alfa[p] != 0. By definition:
(delta xB[p]) = alfa[p] * (delta xN[q])
where:
(delta xB[p]) = (adjacent xB[p]) - (current xB[p])
(delta xN[q]) = (adjacent xN[q]) - (current xN[q])
If xN[q] increases (decreases) then: if alfa[p] > 0, xB[p] also
increases (decreases), and if alfa[p] < 0, xB[p] decreases (increases).
Knowing in which direction xB[p] changes you can determine its change
in the adjacent basis:
if xB[p] increases, in the adjacent basis it goes to its upper bound:
delta xB[p] = (upper bound of xB[p]) - (current xB[p]) (>= 0)
if xB[p] decreases, in the adjacent basis it goes to its lower bound:
delta xB[p] = (lower bound of xB[p]) - (current xB[p]) (<= 0)
And knowing delta xB[p] you can determine the change of xN[q] in the
adjacent basis, if necessary:
delta xN[q] = (delta xB[p]) / alfa[p].
- Re: [Help-glpk] is it possible to determine the value a nb variable will take?, Andrew Makhorin, 2009/01/09
- Message not available
- Re: [Help-glpk] is it possible to determine the value a nb variable will take?, Selçuk Cihan, 2009/01/09
- Re: [Help-glpk] is it possible to determine the value a nb variable will take?, Michael Hennebry, 2009/01/09
- Re: [Help-glpk] is it possible to determine the value a nb variable will take?, Selçuk Cihan, 2009/01/09
- Re: [Help-glpk] is it possible to determine the value a nb variable will take?,
Andrew Makhorin <=
- Re: [Help-glpk] is it possible to determine the value a nb variable will take?, Michael Hennebry, 2009/01/19
- Re: [Help-glpk] is it possible to determine the value a nb variable will take?, Andrew Makhorin, 2009/01/20
- Re: [Help-glpk] is it possible to determine the value a nb variable will take?, Michael Hennebry, 2009/01/20
- Re: [Help-glpk] is it possible to determine the value a nb variable will take?, Andrew Makhorin, 2009/01/20