Reply
Fri 11 Nov, 2005 11:36 am
Hello All,
I have basic knowledge about graph theory and I want to know if I can use it, or one of its variants or classical situations to solve this problem:
I have a graph that is representing a wireless network, where wireless devices are represented by a vertice and an edge exist between two vertices if they can communicate with each others directly (referred to as neighbors).
The objective is to devide this network into clusters (groups) with a ClusterHead for each one. The clusterHeads should verify the property that the path lenght between them and each one of their member in the cluster is less than k (k is a constant, and is referring to the number of hops between 2 vertices). The objective is also to have the less possible number of clusters.
According to this, if we say that, for a vertice m, a "potential member" is every vertice n of the graph such that the path lenght between m and n is less than k (the path lenght is the sum of edges), I want to find the vertice N1 having the biggest number of members (in case of equality, weights are used). N1 will be the clusterhead and all its "potential members" will be the cluster members. (If N1 is not covering all vertices of the graph, the process will be iterated on remaining edges).
Any suggestions, ideas or references are welcome.
Thanks a lot for your help.
Regards.
Hajer.
I don't think picking the largest cluster at each step (greedy algorithm) will necessarily minimize the number of clusters.
Imagine a narrow, wide graph that is dense in the middle and sparse at either end. The largest cluster (in the center) might contain 2/3 of the vertices. Two more clusters would be required to include the remaining 1/6 at either end. The optimal solution might be two clusters that contain 1/2 the vertices each.
If you don't get an answer here, try here:
http://www.ocf.berkeley.edu/~wwu/cgi-bin/yabb/YaBB.cgi