I'm trying to formulate a greedy algorithm for the Max k-cut problem:
Let's have an not oriented graph $G(V,E)$, each edge $e \in E$ has its weight $w_e$. The goal of the algorithm is to divide all vertices $v\in V$ to $k$ disjunct sets $V_1,\dots,V_k$ and maximize the weight of the edges that are connecting these sets.
I have come up with the following algorithm:
- Take any vertex $v$ from $v\in V$ and add it into a queue $Q$.
- while $Q$ is not empty
- take the first vertex from the queue. (Let's name it $u$.)
- $p_i:=0$ for $i\in\{1, 2, \dots, k\}$
- for each neighbour $n\in \text{Neighbours}(u)$ consider the edge $\{u, n\}$.
- $p_i := p_i + 1$ if $n\in V_i$
- Add the vertex $u$ to the set $V_i$ that has the lowest $p_i$.
- Add all neighbours of $u$ that have not been yet assigned to any set to the queue $Q$.
- return $V_1, V_2, \dots, V_n$
It is basically a greedy breadth-first search algorithm, that adds each vertex to the best set based on information of the neighbours that have already been added.
Now I am trying to analyze the algorithm, if it is an $\left(1-\frac{1}{k}\right)$-approximation algorithm, but I am having hard time finding where to start.
Could someone please give me some hints on how to analyze this algorithm?