Exemplo n.º 1
0
def test_pubo_degree_reduction_pairs():

    pubo = PUBO({
        ('x0', 'x1'): -1,
        ('x1', ): 1,
        ('x1', 'x2'): -1,
        ('x2', ): 1,
        ('x3', 'x2'): -1,
        ('x3', ): 1,
        ('x4', 'x3'): -1,
        ('x4', ): 1,
        ('x4', 'x5'): -1,
        ('x5', ): 1,
        ('x5', 'x6'): -1,
        ('x6', ): 1,
        ('x7', 'x6'): -1,
        ('x7', ): 1,
        ('x8', 'x7'): -1,
        ('x8', ): 1,
        ('x9', 'x8'): -1,
        ('x9', ): 1
    })**2
    pairs = {('x0', 'x1'), ('x1', 'x2'), ('x2', 'x3'), ('x3', 'x4'),
             ('x4', 'x5'), ('x5', 'x6'), ('x6', 'x7'), ('x7', 'x8'),
             ('x8', 'x9')}
    qubo1 = pubo.to_qubo()
    qubo2 = pubo.to_qubo(pairs=pairs)
    assert qubo1.num_binary_variables - pubo.num_binary_variables > 9
    assert qubo2.num_binary_variables - pubo.num_binary_variables == 9
    quso1 = pubo.to_quso()
    quso2 = pubo.to_quso(pairs=pairs)
    assert quso1.num_binary_variables - pubo.num_binary_variables > 9
    assert quso2.num_binary_variables - pubo.num_binary_variables == 9
Exemplo n.º 2
0
def test_properties():

    temp = PUBO({('0', '0'): 1, ('0', 1): 2})
    assert not temp.offset

    d = PUBO()
    d[(0, )] += 1
    d[(1, )] += 2
    assert d == d.to_qubo() == {(0, ): 1, (1, ): 2}
    assert d.mapping == d.reverse_mapping == {0: 0, 1: 1}

    d.set_mapping({1: 0, 0: 1})
    assert d.to_qubo() == {(1, ): 1, (0, ): 2}
    assert d.mapping == d.reverse_mapping == {0: 1, 1: 0}
Exemplo n.º 3
0
def test_properties():

    temp = PUBO({('0', '0'): 1, ('0', 1): 2})
    assert not temp.offset

    d = PUBO()
    d[(0,)] += 1
    d[(1,)] += 2
    assert d == d.to_qubo() == {(0,): 1, (1,): 2}
    assert d.mapping == d.reverse_mapping == {0: 0, 1: 1}

    d.set_mapping({1: 0, 0: 1})
    assert d.to_qubo() == {(1,): 1, (0,): 2}
    assert d.mapping == d.reverse_mapping == {0: 1, 1: 0}

    # an old bug
    d = PUBO()
    d.set_mapping({0: 0})
    d[(0,)] += 1
    assert d.num_binary_variables == 1
    assert d.variables == {0}
Exemplo n.º 4
0
def test_pubo_degree_reduction_lam():

    pubo = PUBO({
        ('x0', 'x1'): -1, ('x1',): 1, ('x1', 'x2'): -1, ('x2',): 1,
        ('x3', 'x2'): -1, ('x3',): 1, ('x4', 'x3'): -1, ('x4',): 1,
     }) ** 2

    # just make sure it runs
    pubo.to_qubo(lam=4)
    pubo.to_qubo(lam=lambda v: v)
    pubo.to_qubo(lam=Symbol('lam'))
    pubo.to_qubo(lam=lambda v: v * Symbol('lam'))
    pubo.to_quso(lam=4)
    pubo.to_quso(lam=lambda v: v)
    pubo.to_quso(lam=Symbol('lam'))
    pubo.to_quso(lam=lambda v: v * Symbol('lam'))