def Qmax_cut(self, w: List[List[int]], ans_set)->List:
        qubitOp, offset = max_cut.get_operator(w)

        # mapping Ising Hamiltonian to Quadratic Program
        qp = QuadraticProgram()
        qp.from_ising(qubitOp, offset)
        qp.to_docplex()#.prettyprint()

        # solving Quadratic Program using exact classical eigensolver
        exact = MinimumEigenOptimizer(NumPyMinimumEigensolver())
        result = exact.solve(qp)

        return result
コード例 #2
0
                     pos=pos)
    edge_labels = nx.get_edge_attributes(G2, 'weight')
    nx.draw_networkx_edge_labels(G2,
                                 pos,
                                 font_color='b',
                                 edge_labels=edge_labels)


qubitOp, offset = tsp.get_operator(ins)
print('Offset:', offset)
print('Ising Hamiltonian:')
print(qubitOp.print_details())

qp = QuadraticProgram()
qp.from_ising(qubitOp, offset, linear=True)
qp.to_docplex().prettyprint()

result = exact.solve(qp)
print(result)

ee = NumPyMinimumEigensolver(qubitOp)
result = ee.run()

# print('energy:', result.eigenvalue.real)
# print('tsp objective:', result.eigenvalue.real + offset)
x = sample_most_likely(result.eigenstate)
print('feasible:', tsp.tsp_feasible(x))
z = tsp.get_tsp_solution(x)
print('solution:', z)
print('solution objective:', tsp.tsp_value(z, ins.w))
# draw_tsp_solution(G, z, colors, pos)