i.e., $N$ points (vectors) each with $D$ attributes (components), hard partitional algorithms divide ${{\mathcal X}}$ into $K$ exhaustive and mutually exclusive clusters $\mathcal{P} = \{ P_1, P_2, \dotsc, P_K \},$ $\;\; \bigcup\nolimits_{i = 1}^K {P_i = {{\mathcal X}}},$ $\;\; P_i \cap P_j = \emptyset$ for $1 \leq i \neq j \leq K$. These algorithms usually generate clusters by optimizing a criterion function. The most intuitive and frequently used criterion function is the Sum of Squared Error (SSE) given by: $$\label{eq_sse}
 \mbox{SSE} = \sum\limits_{i = 1}^K {\sum\limits_{{{\bf x}}_j \in P_i} {\left\| {{{\bf x}}_j - {{\bf c}}_i } \right\|_2^2 } }$$ where $\| . \|_2$ denotes the Euclidean ($\mathcal{L}_2$) norm and ${{\bf c}}_i =
{1 \mathord{\left/ {\vphantom {1 {\left| P_i \right|}}} \right.
 \kern-\nulldelimiterspace} {\left| P_i \right|}}\sum\nolimits_{{{\bf x}}_j \in P_i} {{{\bf x}}_j}$ is the centroid of cluster $P_i$ whose cardinality is $\left| P_i \right|$. The optimization of is often referred to as the minimum SSE clustering (MSSC) problem.

The number of ways in which a set of $N$ objects can be partitioned into $K$ non-empty groups is given by Stirling numbers of the second kind: $$\label{eq_num_parts}
\mathcal{S}(N,K) =
\frac{1}
{{K!}}\sum\limits_{i = 0}^K {( - 1)^{K - i} \left( \begin{gathered}
  K \hfill \\
  i 