Пример #1
0
def test_LP_solve_Karmarkar_example ():
    p = Polyhedron('x1+x2==MAX')
    for i in range (11):
        p1 = mpq((i,10))*1
        p.add('2*%s*x1+x2<=%s+1' % (p1,p1**2))
    names, D = p.get_LP()
    Dwork = D[:]
    xopt, vopt = Dwork.LP_solve(overwrite=True)
    assert (D[0,1:] * xopt)[0,0]==vopt==mpq ((5,4)),`D[0,1:] * xopt,vopt`
Пример #2
0
def test_LP_solve_Karmarkar_example():
    p = Polyhedron('x1+x2==MAX')
    for i in range(11):
        p1 = mpq((i, 10)) * 1
        p.add('2*%s*x1+x2<=%s+1' % (p1, p1**2))
    names, D = p.get_LP()
    Dwork = D[:]
    xopt, vopt = Dwork.LP_solve(overwrite=True)
    assert (D[0, 1:] * xopt)[0, 0] == vopt == mpq(
        (5, 4)), ` D[0, 1:] * xopt, vopt `
Пример #3
0
def test_LP_solve_Chateau_ETH_Production():
    constraints = '''\
3*x1+4*x2+2*x3==MAX
2*x1<=4
x1+2*x3<=8
3*x2+x3<=6
'''
    p = Polyhedron(*constraints.split('\n'))
    #p.show()
    names, D = p.get_LP()
    Dwork = D[:]
    xopt, vopt = Dwork.LP_solve(overwrite=True)
    assert (D[0, 1:] * xopt)[0, 0] == vopt == 16, ` D[0, 1:] * xopt, vopt `
Пример #4
0
def test_LP_solve_cyclic():
    constraints = '''
x1-2*x2+x3==MAX
2*x1-x2+x3<=0
3*x1+x2+x3<=0
-5*x1+3*x2-2*x3<=0
'''
    p = Polyhedron(*constraints.split('\n'))
    #p.show()
    names, D = p.get_LP()
    Dwork = D[:]
    xopt, vopt = Dwork.LP_solve(overwrite=True)
    assert (D[0, 1:] * xopt)[0, 0] == vopt == 0, ` D[0, 1:] * xopt, vopt `
Пример #5
0
def test_LP_solve_Chateau_ETH_Production():
    constraints = '''\
3*x1+4*x2+2*x3==MAX
2*x1<=4
x1+2*x3<=8
3*x2+x3<=6
'''
    p = Polyhedron(*constraints.split('\n'))
    #p.show()
    names, D = p.get_LP()
    Dwork = D[:]
    xopt, vopt = Dwork.LP_solve(overwrite=True)
    assert (D[0,1:] * xopt)[0,0]==vopt==16,`D[0,1:] * xopt,vopt`
Пример #6
0
def test_LP_solve_cyclic():
    constraints = '''
x1-2*x2+x3==MAX
2*x1-x2+x3<=0
3*x1+x2+x3<=0
-5*x1+3*x2-2*x3<=0
'''
    p = Polyhedron(*constraints.split('\n'))
    #p.show()
    names, D = p.get_LP()
    Dwork = D[:]
    xopt, vopt = Dwork.LP_solve(overwrite=True)
    assert (D[0,1:] * xopt)[0,0]==vopt==0,`D[0,1:] * xopt,vopt`
Пример #7
0
def test_Av98a():
    constraints = '''\
#x1+x2+x3==1
1+x1>=0
1+x2>=0
1-x1>=0
1-x2>=0
1-x1+x3>=0
1-x2+x3>=0
1+x1+x3>=0
1+x2+x3>=0'''
    p = Polyhedron(*constraints.split('\n'))
    #p.show()

    return

    vertices = [(1, 1, 0), (-1, 1, 0), (1, -1, 0), (-1, -1, 0), (0, 0, -1)]
    rays = [(0, 0, 1)]

    print 'A_L'
    print p.A_L

    xd, dep, indep = p.A_L.solve_null(labels=p.names)
    Aker = Matrix([xd[l].tolist()[0] for l in p.names])
    print 'Aker:'
    print Aker

    print 'A * Aker:'
    print p.A * Aker

    xd, dep, indep = p.A_I[(0, 1), :].solve_null(labels=p.names)
    Aker = Matrix([xd[l].tolist()[0] for l in p.names])
    print 'Aker:'
    print Aker
    print 'A * Aker:'
    print p.A * Aker

    print p.A[(0, 1, 2, 4), :].I * 2
    print p.A[(0, 1, 2, 4), :] * p.A[(0, 1, 2, 4), :].I