0

我尝试创建程序生成线性规划问题,如

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))
4

2 回答 2

1

问题是您如何创建matrix类的实例。你这样做:

c=matrix()

但它应该是这样的:

c=matrix(ARGUMENTS_HERE)

取决于创建所需的参数matrix

于 2013-07-28T17:16:52.767 回答
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)也会导致错误。

于 2013-07-28T17:18:16.890 回答