Exemplo n.º 1
0
    def test_K1_weighted(self):
        G = nx.Graph()
        G.add_node(0, weight=.5)

        Q = indep.maximum_weighted_independent_set_qubo(G)

        self.assertEqual(Q, {(0, 0): -1.})  # should be scaled to 1
Exemplo n.º 2
0
    def test_path3_weighted(self):
        G = nx.path_graph(3)
        G.nodes[1]['weight'] = 2.1

        Q = indep.maximum_weighted_independent_set_qubo(G, weight='weight')

        self.assertLess(dimod.qubo_energy({0: 0, 1: 1, 2: 0}, Q),
                        dimod.qubo_energy({0: 1, 1: 0, 2: 1}, Q))
Exemplo n.º 3
0
    def test_K2_partially_weighted(self):
        G = nx.Graph()
        G.add_node(0, weight=.5)
        G.add_node(1)
        G.add_edge(0, 1)

        Q = indep.maximum_weighted_independent_set_qubo(G, weight='weight')

        self.assertEqual(Q, {(0, 0): -.5, (1, 1): -1, (0, 1): 2.0})
Exemplo n.º 4
0
    def test_K1_no_weights(self):
        G = nx.complete_graph(1)

        Q = indep.maximum_weighted_independent_set_qubo(G)

        self.assertEqual(Q, {(0, 0): -1})
Exemplo n.º 5
0
    def test_empty(self):
        G = nx.Graph()

        Q = indep.maximum_weighted_independent_set_qubo(G)

        self.assertEqual(Q, {})
Exemplo n.º 6
0
# Scelgo dei parametri per un embedding migliore
chainstrenght= None

# Creo un grafo vuoto
G = nx.Graph()

# Prendo un grafo da un file creato con un altro codice
# in modo da poter ripetere computazioni sullo stesso problema
#grafo = open("/workspace/Tesi/Esempi-commentati/Pipelines-Antennas/MANN-a9.txt", "rb")
grafo = open("JOHNSON8-2-4.txt", "rb")
grafo = open("JOHNSON8-2-4.txt", "rb")
G = nx.read_edgelist(grafo)

#Creo la QUBO usando la funzione di libreria estratta prima
Q = maximum_weighted_independent_set_qubo(G, weight = None, lagrange=2.0)

#Faccio l'annealing per 100 volte e creo dunque il mio sampleset
response = sampler.sample_qubo(Q, chain_strength=chainstrenght, num_reads=50, label='Problema delle antenne')

# Visuliazziamo che tipo di risultati ho avuto
# print(response)

# COMMENTO: ricorda che la soluzione migliore è quella a
# a energia più bassa, ma noi vorremmo fosse anche quella
# che esce più volte.

# Seleziono il risultato con l'energi più bassa e lo visualizzo
sample = next(iter(response))
# print(sample)