11 research outputs found
An efficient algorithm for computing the distance between close partitions
A K -partition of a set S is a splitting of S into K non-overlapping classes that cover all elements of S . Numerous practical applications dealing with data partitioning or clustering require computing the distance between two partitions. Previous articles proved that one can compute it in polynomial time—minimum O ( | S | + K 2 ) and maximum O ( | S | + K 3 ) —using a reduction to the linear assignment problem. We propose several conditions for which the partition distance can be computed in O ( | S | ) time. In practical terms, this computation can be done in O ( | S | ) time for any two relatively resembling partitions (i.e. with distance less than | S | 5 ) except specially constructed cases. Finally, we prove that, even if there is a bounded number of classes for which the proposed conditions are not satisfied, one can still preserve the linear complexity by exploiting decomposition properties of the similarity matrix
Informed Reactive Tabu Search for Graph Coloring
Tabu search (TS) has always been a very popular algorithm for graph coloring, both as a stand-alone optimizer as well as a subroutine inside population-based hybrid methods. We present two TS extensions that could allow previous TS algorithms to improve their behavior at almost no additional computational cost. First, we integrate two new evaluation functions which employ supplementary (structural or dynamic) information in addition to the conventional objective function (the number of edges with both ends of the same color). These new evaluation functions allow the search process to differentiate configurations not distinguished by the conventional evaluation function. The second extension concerns a reactive mechanism for improving the tabu list management. Theoretical arguments show that this reactive component completely eliminates the risk of getting blocked looping on plateaus. Numerical experiments show that the two proposed TS extensions can be very useful inside a stand-alone TS optimizer, as well as inside TS subroutines of state-of-the-art hybrid methods.