MaximumWeightISInstance#
Module: iqm.applications.mis
- class iqm.applications.mis.MaximumWeightISInstance(graph, penalty, allow_custom_var_names=False)[source]#
Bases:
ISInstanceThe instance class for maximum-weight independent set problems.
The maximum-weight independent set problem refers to finding a subset of nodes of a graph, such that no nodes in the subset are connected by an edge and sum of the weights of the nodes in the subset is maximized. The class is initialized by initializing its parent class
ISInstancewith a custom objective function (carrying the weights of the graph nodes).- Parameters:
graph (Graph) – The
Graphdescribing the maximum-weight independent set problem. Each node of the graph needs to have an attribute (something like “weight”) storing a number. Specifically, the initialization method looks fornode attributes from the tupleNODE_ATTR_PRIORITY(in order) and takes the first one as the node weight.penalty (float | int) – The penalty to be incurred per each edge present in the solution, sometimes referred to as \(\lambda\) in the literature. The higher it is, the less likely the algorithm is to include an edge in the solution. This is needed when the problem formulation is transformed into QUBO.
allow_custom_var_names (bool) – Determines whether it’s allowed for
graphto have nodes labelled by anything other than consecutive integers starting at 0.
- Raises:
ValueError – If any of the input graph’s nodes doesn’t have any attribute from the tuple of attributes
NODE_ATTR_PRIORITY.TypeError – If the weight of any node is a wrong data type (neither
floatnorint).
Attributes
The worst bitstring(s) for the MWIS problem, determined trivially if all weights are non-negative.
Methods
Inheritance
