Triangles in a graph via LP

126 Views Asked by At

I have a linear program and I can't formulate the objective function and constraints.

For a graph $G = (V, E)$ we may select a set $S$ of vertices of $V$. Each vertex carries a cost $c_v > 0$ if it is selected into $S$. For every triangle $T$ of $G$ (triangle: three vertices pairwise connected by edges of $V$) we incur a penalty $p_T$ if no vertex of $T$ is selected. The goal is to find a set $S$ of vertices such that the sum of total costs of vertices in $S$, plus the sum of penalties for triangles not covered by S is minimized.

Now this is a minimization problem, the objective function is $\min$ (something). I tried to use some notations:

  • $c_i$ denotes the cost of vertex $i$ if vertex $i \in S$

  • $x_i$ is a Boolean value: $1$ if vertex $i \in S$ and $0$ if vertex $i \notin S$

Or I could combine $c_i$ with $x_i$ and if $i \notin S$ then $c_i = 0$.

$Y_{a,b,c}$ - if vertices $a$, $b$, $c$ form a triangle

$p_{a, b, c}$ - penalty for triangle $T$ formed with vertices $a$, $b$, $c$

I think that the objective function should be something like $$ \min \quad \sum_{i=1} ^ n x_i \cdot c_i +\sum_{a, b, c = 1, a \neq b \neq c} ^ n Y_{a, b, c} \cdot p_{a,b,c} $$ where $n$ is the number of vertices.

I'm not sure if the objective function is correct or not, I don't have any idea for the constraints (how to modulate the problem)..

Also, the problem suggest that we should binary variables (with values $0$, $1$)

1

There are 1 best solutions below

6
On

The problem is to minimize $$\sum_i c_i x_i + \sum_T p_T \prod_{i\in T} (1-x_i),$$ which you can linearize by introducing binary variables $z_T$ and minimizing $$\sum_i c_i x_i + \sum_T p_T z_T$$ subject to $$\sum_{i\in T} x_i + z_T \ge 1 \quad \text{for all $T$}.$$