4 つのノードと 5 つのエッジを持つグラフの maxcut 問題を解く必要がありますが、2 次解と線形解の両方を使用する必要があります。いくつかの制約を追加して、二次 maxcut 問題を線形の問題に変換する必要がありますが、その方法がわかりません。
これは私が見つけた二次方程式のバージョンです:
import numpy as np
from qiskit_optimization import QuadraticProgram
from qiskit_optimization.algorithms import MinimumEigenOptimizer
from qiskit import BasicAer
from qiskit.algorithms import QAOA
from qiskit.algorithms.optimizers import SPSA
# Generate a graph of 4 nodes
n = 4
graph = nx.Graph()
graph.add_nodes_from(np.arange(0, n, 1))
elist = [(0, 1, 1.0), (0, 2, 1.0), (0, 3, 1.0), (1, 2, 1.0), (2, 3, 1.0)]
graph.add_weighted_edges_from(elist)
# Compute the weight matrix from the graph
w = nx.adjacency_matrix(graph)
print(w)
# Formulate the problem as quadratic program
problem = QuadraticProgram()
_ = [problem.binary_var('x{}'.format(i)) for i in range(n)] # create n binary variables
linear = w.dot(np.ones(n))
quadratic = -w
problem.maximize(linear=linear, quadratic=quadratic)
print(problem.export_as_lp_string())
ここで、次の制約を追加して、問題を線形として定式化する必要があります: (下の画像のリンク)
<( https://imgur.com/EdRDBiO )>
助けてくれてありがとう