0

I am trying to solve a simple simplex tableau using the python library scipy.

c = [7, 9, 18, 17] A = [ [2, 4, 5, 7], [ 1, 1, 2, 2], [ 1, 2, 3, 3] ] b = [42, 17, 24] from scipy.optimize import linprog print(linprog(c, A, b, method='simplex')) 

According to this course from the University Le Havre where this example tableau was used to introduce the simplex method, I should be getting [3,0,7,0] for the variables and 147 for the minimized function.

Instead, I get [0,0,0,0] and 0.

1 Answer 1

1

The optimisation sense of your problem setup is incorrect. linprog assumes minimisation but the textbook asks for maximization. Invert the sign of c and the problem succeeds:

import numpy as np from scipy.optimize import linprog c = -np.array((7, 9, 18, 17)) A = [ [2, 4, 5, 7], [1, 1, 2, 2], [1, 2, 3, 3] ] b = [42, 17, 24] result = linprog(c=c, A_ub=A, b_ub=b, method='highs') print(result) 
 message: Optimization terminated successfully. (HiGHS Status 7: Optimal) success: True status: 0 fun: -147.00000000000006 x: [ 3.000e+00 0.000e+00 7.000e+00 0.000e+00] nit: 4 lower: residual: [ 3.000e+00 0.000e+00 7.000e+00 0.000e+00] marginals: [ 0.000e+00 2.000e+00 0.000e+00 1.000e+00] upper: residual: [ inf inf inf inf] marginals: [ 0.000e+00 0.000e+00 0.000e+00 0.000e+00] eqlin: residual: [] marginals: [] ineqlin: residual: [ 1.000e+00 0.000e+00 0.000e+00] marginals: [-0.000e+00 -3.000e+00 -4.000e+00] mip_node_count: 0 mip_dual_bound: 0.0 mip_gap: 0.0 
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.