Python实现线性规划求解

  

  线性规划标准形式:MATLAB   
  

  

  -------------   

  

     

  

     

  

  求解用到的模块(scipy和,numpy):   
  

  <前>   得到scipy  import 优化   import  numpy  as  np   之前   

  例题:   

  

   Python实现线性规划求解”>
  </p>
  <p>
  转换成标准系数格式:
  </p>
  <前>
  时间=c  [2, 3, 5]
  A =, [[2, 5, 1],, (1,, 3,, 1]]
  b =, (-10,, 12)
  Aeq =, [[1, 1, 1]]
  时间=beq  [7]
  x1 =,(0,,没有)
  x2 =,(0,,没有)
  x3 =,(0,,没有)
  </>之前
  <p>
  LP求解函数:
  </p>
  <前>
  # - *安康;编码:utf-8  - * -
  #导入包
  得到scipy  import 优化
  import  numpy  as  np
  def  LP (m=& # 39; & # 39;, clist=[],倾斜的=[],blist=[], Aeqlist=[], beqlist=[], all_x=()):
  ,,,# c, A, b, Aeq,说真的,磅,乌兰巴托,X0,选项
  ,,,c =, np.array (clist)
  ,,,A =, np.array(倾斜的)
  ,,,b =, np.array (blist)
  ,,,Aeq =, np.array (Aeqlist)
  ,,,beq =, np.array (beqlist)
  ,,,#求解
  ,,,if  m ==, & # 39;分钟# 39;:
  ,,,,,,,res =, optimize.linprog (c, A, b,, Aeq,,说真的,,边界=all_x)
  ,,,,,,,fun =res.fun
  ,,,,,,,x =res.x
  ,,,:
  ,,,,,,,res =, optimize.linprog (- c, A, b,, Aeq,,说真的,,边界=all_x)
  ,,,,,,,fun =, - (res.fun)
  ,,,,,,,x =res.x
  ,,,return 有趣,x
  </>之前
  <p>
  主要函数,方便其它调用:
  </p>
  <前>
  # - *安康;编码:utf-8  - * -
  import  LP
  import 系统
  if  __name__&nbsp==, & # 39; __main__ # 39;:
  ,,,m =, sys.argv [1]
  ,,,clist =,列表(eval (sys.argv [2]))
  ,,,Alist =,列表(eval (sys.argv [3]))
  ,,,blist =,列表(eval (sys.argv [4]))
  ,,,Aeqlist =,列表(eval (sys.argv [5]))
  ,,,beqlist =列表(eval (sys.argv [6]))
  ,,,all_x =,元组(eval (sys.argv [7]))
  ,,,r=LP.LP (m=m, clist=clist,倾斜的=船向一边倾斜的,blist=blist Aeqlist=Aeqlist beqlist=beqlist all_x=all_x)
  ,,,印刷(右)
  </>之前
  <p>
  说明:(1)因为系统参数传入的都是字符串格式,所以主要文件中,将传入参数都转换成列的表。
  </p>
  <p>
  ,,,,,,(2)标准是最小值,如果是最大值,c应该换成- c
  </p>
  <p>
  最后执行结果:
  </p>
  <p>
  <img src=Python实现线性规划求解