2013-07-28 147 views
0

我嘗試創建程序生成的線性規劃問題等「類型錯誤:_new_()需要至少2個參數(1給出)」

min cx 
s.t. Ax=b 
x>=0 

但它出現問題的程序警告消息

"File"/tmp/tmpgX7_hI/___code___.py", line 3, in <module> class LP:" 
"File"/tmp/tmpgX7_hI/___code___.py", line 4, in LP c=matrix()" 
"TypeError: _new_() take at least 2 arguments (1 given)" 

這是我的錯誤,我該如何解決它? 請!!!

Program 
    class LP: 
     c=matrix() 
     A=matrix() 
     b=matrix() 
     def__init__(self,cvector,Amatrix,bvector): 
      self.c=cvector 
      self.A=Amatrix 
      self.b=bvector 
#---------------------------------------------------------------------- 
    import random 
    colc=[]colAmatrix=[] 
    colb=[] 
    LP_GEN=[] 
    for m in range(2,5): 
     for n in range(2,5): 
      for k in range(2): 
       c=matrix(1,n) 
       for i in range(n): 
       c[0,i]=random.randint(-50,50) 
       b[0,i]=random.randint(-50,50) 
       A[0,i]=random.randint(-50,50) 
LP_GEN.append(LP(c,A,b)) 

回答

1

問題是如何創建matrix類的實例。 你這樣做:

c=matrix() 

但它應該是這樣的:

c=matrix(ARGUMENTS_HERE) 

取決於所需的參數來創建matrix

1

在您的班級定義中,您使用matrix()。但是你必須傳遞至少一個數據。我想你可能想:

class LP: 
    def__init__(self,cvector,Amatrix,bvector): 
     self.c=matrix(cvector) 
     self.A=matrix(Amatrix) 
     self.b=matrix(bvector) 

cvectorAmatrixbvector應該是一個數組或一個字符串。順便說一下,matrix(1, n)也會導致錯誤。

+0

我遵循你的建議,但它不是有效的。 該程序警告我「數據類型不明白」 – user2627960

+0

警告在哪裏?您可以編輯您的問題以解決新問題。 – zhangyangyu

相關問題