Skip to main content

This ended up being a bit too long for a comment, but I wanted to present another avenue of attack that may result in better performance.

The dominating set problem can be easily formulated as an Integer Linear Program. Given a graph $$G = (V, E)$$ create variables x_i in {0, 1} for each v_i where x_i is zero if a vertex is not part of the dominating set or 1 if it is.

$$\text{min} \sum_{v_i \in V} x_{i}$$ $$\text{subject to} \sum_{x_{j} \in N(v_{i})} x_j \geq 1, \forall v_{i} \in V$$

That is, you want to minimize the size of the dominating set and you must ensure that the closed neighborhood of every vertex must have at least one vertex

You can formulate the problem for a particular graph and then feed it to either an open source solver such as GLPK or CP-SAT or commercial solvers such as CPLEX or Gurobi.

I am not familiar with which options are available for Java but there appear to be interfaces to solvers such as this one.

This ended up being a bit too long for a comment, but I wanted to present another avenue of attack that may result in better performance.

The dominating set problem can be easily formulated as an Integer Linear Program. Given a graph $$G = (V, E)$$ create variables x_i in {0, 1} for each v_i where x_i is zero if a vertex is not part of the dominating set or 1 if it is.

$$\text{min} \sum_{v_i \in V} x_{i}$$ $$\text{subject to} \sum_{x_{j} \in N(v_{i})} x_j \geq 1, \forall v_{i} \in V$$

That is, you want to minimize the size of the dominating set and you must ensure that the closed neighborhood of every vertex must have at least one vertex

You can formulate the problem for a particular graph and then feed it to either an open source solver such as GLPK or commercial solvers such as CPLEX or Gurobi.

I am not familiar with which options are available for Java but there appear to be interfaces to solvers such as this one.

This ended up being a bit too long for a comment, but I wanted to present another avenue of attack that may result in better performance.

The dominating set problem can be easily formulated as an Integer Linear Program. Given a graph $$G = (V, E)$$ create variables x_i in {0, 1} for each v_i where x_i is zero if a vertex is not part of the dominating set or 1 if it is.

$$\text{min} \sum_{v_i \in V} x_{i}$$ $$\text{subject to} \sum_{x_{j} \in N(v_{i})} x_j \geq 1, \forall v_{i} \in V$$

That is, you want to minimize the size of the dominating set and you must ensure that the closed neighborhood of every vertex must have at least one vertex

You can formulate the problem for a particular graph and then feed it to either an open source solver such as GLPK or CP-SAT or commercial solvers such as CPLEX or Gurobi.

I am not familiar with which options are available for Java but there appear to be interfaces to solvers such as this one.

Source Link
Dair
  • 6k
  • 1
  • 20
  • 44

This ended up being a bit too long for a comment, but I wanted to present another avenue of attack that may result in better performance.

The dominating set problem can be easily formulated as an Integer Linear Program. Given a graph $$G = (V, E)$$ create variables x_i in {0, 1} for each v_i where x_i is zero if a vertex is not part of the dominating set or 1 if it is.

$$\text{min} \sum_{v_i \in V} x_{i}$$ $$\text{subject to} \sum_{x_{j} \in N(v_{i})} x_j \geq 1, \forall v_{i} \in V$$

That is, you want to minimize the size of the dominating set and you must ensure that the closed neighborhood of every vertex must have at least one vertex

You can formulate the problem for a particular graph and then feed it to either an open source solver such as GLPK or commercial solvers such as CPLEX or Gurobi.

I am not familiar with which options are available for Java but there appear to be interfaces to solvers such as this one.