# One step linear programming pivot

The following question is not because I do not appreciate the numerous linear programming tools disponible from Sage or Python, but because I want to force my student to have a reflexion on how the Dantzig algorithm works by themselves

Here is some data

A=matrix([[1,2,3,4],[4,3,2,1],[2,4,3,1]])
b=vector([10,20,30])
c=vector([1,-2,3,-1])


With the help of this function

def tableau_(mat, cont, obj):
Id = identity_matrix(mat.nrows())
z = matrix(zero_vector(mat.ncols()-1))
return block_matrix([[A,II,matrix(b).transpose()],[matrix(c),matrix(z),zero_matrix(1,1)]],subdivide=False)


I can construct the following table

mm=matrix(tableau_(A, b, c))
show(mm)


now I want a simple step a the Dantzig pivot algorithm applied to mm throug a calling function like

one_step_pivot(mm, mm[2][2]) where mm[2][2] is the pivot. I wonder if there is a simple tools in Sage or numpy or any other package that do the trick or if I would be oblige to write the code by myself nwhich will tazkes me a lot of time. By advance thanks for the help.

edit retag close merge delete