我尝试创建程序生成线性编程问题,如
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))
答案 0 :(得分:1)
问题是如何创建matrix
类的实例。
你这样做了:
c=matrix()
但它应该是这样的:
c=matrix(ARGUMENTS_HERE)
取决于创建matrix
所需的参数。
答案 1 :(得分:1)
在您的班级定义中,您使用matrix()
。但是你必须至少传递一个数据。我想你可能想要:
class LP:
def__init__(self,cvector,Amatrix,bvector):
self.c=matrix(cvector)
self.A=matrix(Amatrix)
self.b=matrix(bvector)
cvector
,Amatrix
,bvector
应该是数组或字符串。顺便说一下,matrix(1, n)
也会导致错误。