1

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 )>

助けてくれてありがとう

4

0 に答える 0