I've just finished writing a a linear programming problem solver which uses the simplex method. Now I would like to start optimizing my solver but before I can do this, I need a way of reliably testing it's performance.
What is a good algorithm for generating random linear programming problems of arbitrary size? If possible I would also like to be able to control whether a solution exists or not and I would like to ensure that the origin is a vertex on the simplex.
If you want a given vector $v \in {\mathbb R}^n$ as a solution:
choose a vector $b \in{\mathbb R}^m$ such that $b \ge A v$.
You can generate b by taking $b=Av+\delta, \delta_i\ge0$
Then the constraints can be $A x \le b$.
Generically, if $m \ge n$ and $b - Av$ has at least $n$ zero entries, $v$ will be a basic solution.
If you want a problem that is unbounded
If you want a problem that is infeasible, take the dual of an unbounded problem.