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
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))
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})
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})
def test_empty(self): G = nx.Graph() Q = indep.maximum_weighted_independent_set_qubo(G) self.assertEqual(Q, {})
# 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)