Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

max-weight k-clique in a complete k-partite graph

My Problem

Whether there's an efficient algorithm to find a max-weight (or min-weight) k-clique in a complete k-partite graph (a graph in which vertices are adjacent if and only if they belong to different partite sets according to wikipedia)?

More Details about the Terms

Max-weight Clique: Every edge in the graph has a weight. The weight of a clique is the sum of the weights of all edges in the clique. The goal is to find a clique with the maximum weight.

Note that the size of the clique is k which is the largest possible clique size in a complete k-partite graph.

What I have tried

I met this problem during a project. Since I am not a CS person, I am not sure about the complexity etc.

I have googled several related papers but none of them deals with the same problem. I have also programmed a greedy algorithm + simulated annealing to deal with it (the result seems not good). I have also tried something like Dynamic Programming (but it does not seem efficient). So I wonder whether the exact optimal can be computed efficiently. Thanks in advance.

EDIT Since my input can be really large (e.g. the number of vertices in each clique is 2^k), I hope to find a really fast algorithm (e.g. polynomial of k in time) that works out the optimal result. If it's not possible, can we prove some lower bound of the complexity?

like image 711
linusz Avatar asked Jun 18 '13 11:06

linusz


People also ask

How do you find the maximum clique on a graph?

In chordal graphs, the maximal cliques can be found by listing the vertices in an elimination ordering, and checking the clique neighborhoods of each vertex in this ordering. In some cases, these algorithms can be extended to other, non-perfect, classes of graphs as well.

How many cliques are in a complete graph?

edges must contain a three-vertex clique. Ramsey's theorem states that every graph or its complement graph contains a clique with at least a logarithmic number of vertices. According to a result of Moon & Moser (1965), a graph with 3n vertices can have at most 3n maximal cliques.

Is maximum clique NP-complete?

Note that Max-Clique is clearly in NP. Theorem 20.2 Max-Clique is NP-Complete. We then put an edge between two nodes if the partial assignments are consistent. Notice that the maximum possible clique size is m because there are no edges between any two nodes that correspond to the same clause c.

Is clique a complete graph?

A complete graph is often called a clique. The size of the largest clique that can be made up of edges and vertices of G is called the clique number of G.


2 Answers

Generalized Maximum Clique Problem (GMCP)

  • I understand that you are looking for the Generalized Maximum/ minimum Clique Problem (GMCP), where finding the clique with maximum score or minimum cost is the optimization problem.
  • This problem is a NP-Hard problem as shown in Generalized network design problems, so there is currently no polynomial time exact solution to your problem.
  • Since, there is no known polynomial solution to your problem, you have 2 choices. Reducing the problem size to find the exact solution or to find an estimated solution by relaxing your problem and it leads you to a an estimation to the optimal solution.

Example and solution for the small problem size

  • In small k-partite graphs (in our case k is 30 and each partite has 92 nodes), we were able to get the optimal solution in a reasonable time by a heavy branch and bounding algorithm. We have converted the problem into another NP-hard problem (Mixed Integer Programming), reduced number of integer variables, and used IBM Cplex optimizer to find the optimal solution to GMCP.
  • You can find our project page and paper useful. I can also share the code with you.

How to estimate the solution

  • One straight forward estimation to this NP-Hard problem is relaxing the Mixed Integer Programming problem and solve it as a linear programming problem. Of course it will give you an estimation of the solution, but still you might get a reasonable answer in practice.

More general problem (Generalized Maximum Multi Clique Problem)

  • In another work, we solve the Generalized Maximum Multi Clique Problem (GMMCP), where maximizing the score or minimizing the cost of selecting multiple k-cliques in a complete k-partite graph is in interest. You can find the project page by searching for GMMCP Tracking.
like image 127
Shayan Modiri Avatar answered Sep 17 '22 19:09

Shayan Modiri


The maximum clique problem in a weighted graph in general is intractable. In your case, if the graph contains N nodes, you can enumerate through all possible k-cliques in N ** k time. If k is fixed (don't know if it is), your problem is trivially polynomially solvable, as this is a polynomial in N. I don't believe the problem to be tractable if k is a free parameter because I can't see how the assumption of a k-partite graph would make the problem significantly simpler from the general one.

How hard your problem is in practice depends also on how the weights are distributed. If all the weights are very near to each others, i.e. the difference between "best" and "good" is relatively small, the problem is very hard. If you have wildly different weights on the edges, the problem can be easier, because a greedy algorithm can give you a good "initial" solution, and you can use that and subsequent good solutions to limit your combinatorial search using the well-known branch-and-bound method.

like image 44
Antti Huima Avatar answered Sep 17 '22 19:09

Antti Huima