Skip to content

Maxcut for graph with non-consecutive nodes/verticies #578

@Siheon-Park

Description

@Siheon-Park

What should we add?

Problem

qiskit_optimization.applications.max_cut.Maxcut cannot work along with the graph non-consecutive nodes (e.g. V={0, 1, 4, 5}). This may result in minor inconvenience when we create graph and then remove nodes, such as isolated nodes. Obviously, it is not necessary to keep isolated nodes (i.e., nodes not connected to any other nodes) for max-cut problem and waste qubits.

Solution

Simply replace line 44 in file qiskit_optimization.applications.max_cut.py in current git version (2b5c37b) from

x = {i: mdl.binary_var(name=f"x_{i}") for i in range(self._graph.number_of_nodes())}

to

x = {node: mdl.binary_var(name=f"x_{node}") for node in list(self._graph.nodes)}

See my forked repo

Test

It is so simple that it does not require testing. This is also the reason why I made issue instead of pull request; only a single line changed. However, it is bugging me that I have to inherit the well-made Maxcut class every time to insert this feature.
It would be great to add this line of code to this repo to be feasible with non-consecutive nodes.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions