def _optimise(a_matrix, max_stoich, num_opt_formulae): '''Optimise linear program and return result.''' bounds = [(1.0, max_stoich)] * (len(a_matrix[0]) - num_opt_formulae * 2) + \ [(0.0, max_stoich)] * num_opt_formulae * 2 return math_utils.linprog([1] * len(a_matrix[0]), a_matrix, [0.0] * (len(a_matrix)), bounds)
def test_linprog(self): '''Tests linprog method.''' a_matrix = [[-238, -142, 1, 248, 131, -1, -2, 1, 2], [-144, -86, 0, 150, 80, 0, 0, 0, 0], [-2, 0, 0, 2, 0, 0, 0, 0, 0], [-57, -9, 0, 62, 4, 0, -1, 0, 1], [-2, -1, 0, 2, 1, 0, 0, 0, 0], [2.0, 1.0, 1.0, -2.0, -2.0, -1, 0, 1, 0]] bounds = [(1, 8), (1, 8), (1, 8), (1, 8), (1, 8), (0, 8), (0, 8), (0, 8), (0, 8)] self.assertTrue(math_utils.linprog([1] * len(a_matrix[0]), a_matrix, [0] * len(a_matrix), bounds)[0])