import ecos import cvxopt as o #from guppy import hpy A = o.spmatrix([1.,1.], [0,1],[0,1]) b = o.matrix([1.,1.]) G = o.spmatrix([-1.,-1.], [0,1], [0,1]) h = o.matrix([0.,0.]) c = o.matrix([1.,1.]) dims = {'l': 2} print c print h sol = ecos.ecos(c,G,h,dims,A,b) print sol print sol['x'] # Ai = numpy.matrix([0,1]) # Ap = numpy.matrix([0,1,2]) # b = numpy.matrix([1.,1.]) # c = numpy.matrix([1.,1.]) # # solution = p.solve(Ax, Ai, Ap, b, c) # print solution['x'] # print solution['y'] # print solution['status'] # # print getrefcount(solution['x']) # h = hpy() # print h.heap()
# with variables z (8), w (1). cc = matrix(0.0, (9, 1)) cc[:8], cc[8] = h, b GG = spmatrix([], [], [], (n + 8, 9)) GG[:n, :8] = -G.T GG[:n, 8] = -A.T GG[n::n + 9] = -1.0 hh = matrix(0.0, (n + 8, n)) hh[:n, :] = matrix([i >= j for i in range(n) for j in range(n)], (n, n), 'd') # upper triangular matrix of ones #l = [-blas.dot(cc, solvers.lp(cc, GG, hh[:,k])['x']) for k in range(n) l = [ -blas.dot(cc, ecos.ecos(cc, GG, hh[:, k], { 'l': GG.size[0], 'q': [] })['x']) for k in range(n) ] #u = [blas.dot(cc, solvers.lp(cc, GG, -hh[:,k])['x']) for k in range(n)] u = [ blas.dot(cc, ecos.ecos(cc, GG, -hh[:, k], { 'l': GG.size[0], 'q': [] })['x']) for k in range(n) ] def f(x, y): return x + 2 * [y]
# subject to +/- c + G'*z + A'*w >= 0 # z >= 0 # # with variables z (8), w (1). cc = matrix(0.0, (9,1)) cc[:8], cc[8] = h, b GG = spmatrix([], [], [], (n+8, 9)) GG[:n,:8] = -G.T GG[:n,8] = -A.T GG[n::n+9] = -1.0 hh = matrix(0.0, (n+8,n)) hh[:n,:] = matrix([i>=j for i in range(n) for j in range(n)], (n,n), 'd') # upper triangular matrix of ones #l = [-blas.dot(cc, solvers.lp(cc, GG, hh[:,k])['x']) for k in range(n) l = [-blas.dot(cc, ecos.ecos(cc, GG, hh[:,k], {'l': GG.size[0], 'q': []})['x']) for k in range(n)] #u = [blas.dot(cc, solvers.lp(cc, GG, -hh[:,k])['x']) for k in range(n)] u = [blas.dot(cc, ecos.ecos(cc, GG, -hh[:,k], {'l': GG.size[0], 'q': []})['x']) for k in range(n)] def f(x,y): return x+2*[y] def stepl(x): return reduce(f, x[1:], [x[0]]) def stepr(x): return reduce(f, x[:-1], []) + [x[-1]] try: import pylab except ImportError: pass else: pylab.figure(1, facecolor='w') pylab.plot(stepl(a), stepr(p), '-') pylab.title('Maximum entropy distribution (fig. 7.2)') pylab.xlabel('a')