fork download
  1. import numpy as np
  2. from scipy.optimize import linprog
  3.  
  4. # Matrice A
  5. A = np.array([
  6. [5, 5, 2, 2, 4, 2, 3, 4, 2, 2, 1],
  7. [1, 1, 3, 1, 5, 1, 1, 3, 3, 1, 1],
  8. [5, 5, 4, 1, 5, 1, 4, 2, 3, 1, 5],
  9. [2, 2, 5, 3, 2, 3, 1, 3, 5, 3, 3],
  10. [3, 3, 3, 5, 2, 4, 1, 1, 3, 4, 3],
  11. [3, 4, 5, 4, 3, 4, 5, 4, 4, 3, 3],
  12. [5, 1, 3, 1, 5, 1, 5, 2, 5, 2, 5],
  13. [5, 1, 3, 2, 1, 5, 1, 1, 5, 2, 3],
  14. [4, 5, 5, 3, 3, 3, 5, 3, 3, 3, 3],
  15. [4, 2, 3, 1, 2, 3, 4, 4, 4, 1, 3],
  16. [4, 3, 3, 5, 4, 1, 4, 2, 5, 5, 3],
  17. [3, 5, 1, 5, 3, 5, 5, 1, 4, 4, 3],
  18. [5, 5, 3, 3, 1, 3, 3, 1, 5, 2, 3],
  19. [1, 2, 3, 4, 1, 5, 5, 1, 2, 5, 3],
  20. [1, 1, 3, 2, 3, 4, 2, 1, 5, 1, 3],
  21. [5, 4, 3, 5, 2, 3, 4, 3, 4, 5, 3],
  22. [1, 1, 2, 2, 3, 2, 4, 5, 2, 3, 1],
  23. [2, 2, 1, 3, 5, 2, 2, 5, 4, 3, 3],
  24. [4, 4, 4, 3, 4, 2, 2, 5, 1, 3, 4],
  25. [2, 2, 1, 4, 4, 1, 3, 2, 3, 4, 2],
  26. [2, 3, 5, 4, 2, 4, 3, 4, 1, 4, 2],
  27. [4, 5, 1, 5, 4, 3, 1, 2, 1, 5, 3],
  28. [2, 4, 2, 1, 1, 5, 2, 5, 2, 4, 3],
  29. [3, 3, 4, 1, 3, 2, 1, 4, 1, 2, 4],
  30. [1, 1, 3, 3, 5, 4, 3, 3, 2, 1, 3],
  31. [1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3],
  32. [3, 4, 3, 4, 1, 5, 2, 5, 1, 5, 3]
  33. ])
  34.  
  35. # Vecteur B
  36. B = np.array([2, 4, 4, 2, 3, 4, 5, 3, 3, 2, 4, 4, 1, 5, 3, 3, 2, 3, 3, 3, 4, 4, 2, 3, 5, 3, 2])
  37.  
  38. # Vecteur C (coefficients de minimisation, non utilisé)
  39. C = np.zeros(A.shape[1])
  40.  
  41. # Bornes inférieures et supérieures pour les variables de décision
  42. bounds = [(0, None)] * A.shape[1]
  43.  
  44. # Contraintes d'égalité pour la somme des variables de décision
  45. constraints_eq = {'type': 'eq', 'fun': lambda x: np.dot(A, x) - B}
  46.  
  47. # Résolution du problème
  48. res = linprog(C, A_eq=A, b_eq=B, bounds=bounds)
  49.  
  50. # Affichage des résultats
  51. print("Solution optimale (variables de décision) :\n", res.x)
  52. print("Valeur optimale de la fonction objectif :\n", res.fun)
  53.  
Success #stdin #stdout #stderr 0.28s 54076KB
stdin
30 499887702
128990795 137274936
575374246 989051853
471048785 85168425
640066776 856699603
819841327 611065509
704171581 22345022
536108301 678298936
119980848 616908153
117241527 28801762
325850062 478675378
623319578 706900574
998395208 738510039
475707585 135746508
863910036 599020879
340559411 738084616
122579234 545330137
696368935 86797589
665665204 592749599
958833732 401229830
371084424 523386474
463433600 5310725
210508742 907821957
685281136 565237085
619500108 730556272
88215377 310581512
558193168 136966252
475268130 132739489
303022740 12425915
122379996 137199296
304092766 23505143
stdout
Solution optimale (variables de décision) :
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
Valeur optimale de la fonction objectif :
 0.0
stderr
./prog.py:48: OptimizeWarning: A_eq does not appear to be of full row rank. To improve performance, check the problem formulation for redundant equality constraints.