Example #1
0
import cvxopt

p = QCML()

rows = (m - 1) * n
cols = m * n

s = '''
    dimension cols
    dimension rows
    variable y(cols)
    parameter top(rows,cols)
    parameter bottom(rows,cols)
    parameter left(rows,cols)
    parameter right(rows,cols)

    parameter diff_down(rows)
    parameter diff_right(rows)

    parameter s_down(rows,rows)

    y >= 0

    minimize ( sum(square(s_down*(top*y - bottom*y - diff_down))) + sum(square( left*y - bottom*y - diff_right )) )
    '''
p.parse(s)

# <codecell>

sol = p.solve()
Example #2
0
p = QCML()

rows = (m-1)*n
cols = m*n

s = '''
    dimension cols
    dimension rows
    variable y(cols)
    parameter top(rows,cols)
    parameter bottom(rows,cols)
    parameter left(rows,cols)
    parameter right(rows,cols)

    parameter diff_down(rows)
    parameter diff_right(rows)

    parameter s_down(rows,rows)

    y >= 0

    minimize ( sum(square(s_down*(top*y - bottom*y - diff_down))) + sum(square( left*y - bottom*y - diff_right )) )
    '''
p.parse(s)

# <codecell>

sol = p.solve()


Example #3
0
        #     # x(:,i+1) == A(:,:,i)*x(:,i) + B*u(:,i) for i = 1,...,T
        #     # sum_{ij in E}
        #     #
        #     # matrix X
        #     # A*X is map(A*x, X)
        #     # X*A
        minimize (norm(a) + gamma*sum(pos(1 - X*a + b) + pos(1 + Y*a - b)))
        # minimize c'*a
        #    norm(X*a,Y*a,Z*a, W*a) <= 1
    """
    )

    # TODO: sum(norms(X))
    # A*x
    #
    p.solve()

    pr = cProfile.Profile()
    pr.enable()

    p.canonicalize()
    p.dims = {"n": n, "m": m}
    p.codegen("python")
    print p.prob2socp.source
    socp_data = p.prob2socp(params=locals())
    import ecos

    sol = ecos.solve(**socp_data)
    my_vars = p.socp2prob(sol["x"])

    pr.disable()
Example #4
0
File: lasso.py Project: nkhuyu/qcml
    variable x(n)
    parameters A(m,n) b(m)
    parameter gamma positive
    minimize (square(norm(A*x - b)) + gamma*norm1(x))
    """
    print s

    raw_input("press ENTER to parse....")
    p = QCML(debug=True)
    p.parse(s)

    raw_input("press ENTER to canonicalize....")
    p.canonicalize()

    raw_input("press ENTER to solve the problem....")
    res = p.solve()

    raw_input("press ENTER to generate C code and save it....")
    p.codegen("C")
    print p.prob2socp.source
    p.save("lasso")

    raw_input("press ENTER to write the test C program....")
    c_template = """
#include <stdio.h>
#include "lasso.h"
#include "ecos.h"

int read_file(const char * file, void *x, size_t size, size_t num)
{
  FILE *f;
Example #5
0
    variable x(n)
    parameters A(m,n) b(m)
    parameter gamma positive
    minimize (square(norm(A*x - b)) + gamma*norm1(x))
    """
    print s

    raw_input("press ENTER to parse....")
    p = QCML(debug=True)
    p.parse(s)

    raw_input("press ENTER to canonicalize....")
    p.canonicalize()

    raw_input("press ENTER to solve the problem....")
    res = p.solve()

    raw_input("press ENTER to generate C code and save it....")
    p.codegen("C")
    p.save("lasso")

    raw_input("press ENTER to write the test C program....")
    c_template = """
#include <stdio.h>
#include "lasso.h"
#include "ecos.h"

int read_file(const char * file, void *x, size_t size, size_t num)
{
  FILE *f;
  f = fopen(file, "rb");
Example #6
0
        #     x + z == 5
        #     # x(:,i+1) == A(:,:,i)*x(:,i) + B*u(:,i) for i = 1,...,T
        #     # sum_{ij in E}
        #     #
        #     # matrix X
        #     # A*X is map(A*x, X)
        #     # X*A
        minimize (norm(a) + gamma*sum(pos(1 - X*a + b) + pos(1 + Y*a - b)))
        # minimize c'*a
        #    norm(X*a,Y*a,Z*a, W*a) <= 1
    """)

    # TODO: sum(norms(X))
    # A*x
    #
    p.solve()

    pr = cProfile.Profile()
    pr.enable()

    p.canonicalize()
    p.dims = {'n': n, 'm': m}
    p.codegen("python")
    print p.prob2socp.source
    socp_data = p.prob2socp(params=locals())
    import ecos
    sol = ecos.solve(**socp_data)
    my_vars = p.socp2prob(sol['x'])

    pr.disable()
    ps = pstats.Stats(pr)