# Publishing Anonymized Set-Valued Data via Disassociation towards Analysis
## 4 Probabilistic Wheel Re-association for Disassociated Datasets
### Probabilistic Wheel Re-association Algorithm  
The problem of publishing an anonymized set-valued data is transformed into finding a neighbor dataset that shows true features from the original dataset while being distinct, hence faithful to data analysis. In this section, we propose an algorithm, probabilistic wheel re-association, Algorithm 5, to generate neighbor datasets, given hereafter. Roulette wheel selection is a probabilistic optimization method used for selecting potentially useful solutions for recombination. We profit from the disassociation technique to lead the re-association process. Disassociation by default creates ambiguity between associations present in different record chunks of a cluster, while preserving the accuracy for associations found in the same record chunk.Ambiguity on the level of the associations between the record chunks is our playground for the probabilistic wheel re-association. The following solution respects the result of disassociation on different levels:  
* What has been disassociated in two distinct clusters should not be re-associated. * Associations from different record chunks of the same cluster can only be re-associated. * The associations preserved in a record chunk should not be altered or re-associated between them. They already passed the \(k^{m}\)-anonymity test for anonymization. Algorithm 5 takes as input the disassociated dataset \(\mathcal{T}^{*}\), and starts by reconstructing a neighbor cluster \(C^{\prime}\) of each cluster \(C\) from \(\mathcal{T}^{*}\) (Line 1). \(C^{\prime}_{i}\) is the cluster containing the result of the gradual re-association between the record chunks of \(C_{i}\). At first, \(C^{\prime}_{i}\) is loaded with the records of the first record chunk (Line 2). Further, the original number of records in a cluster affects deeply the re-association where empty records show the weakness of the associations between the record chunks. To have the same size of the initial cluster, we add to \(C_{i}^{\prime}\) a number of empty sets representing what is left from the original cluster size not represented in \(R_{C_{0}}\) due to \(k^{m}\)-anonymity (Line 3-5). After initializing \(C_{i}^{\prime}\), the algorithm applies probabilistic wheel re-association between \(C_{i}^{\prime}\) and successively every \(R_{C_{j}}\) in \(C_{i}\) (Lines 6-17). Two records \(r_{1}\) and \(r_{0}\) are respectively chosen from \(C_{i}^{\prime}\) and the record chunk in question following the rules of the \(SelectRecord\) function (Line 9-10). Function \(SelectRecord\), Algorithm 6, takes a record chunk, generates the counts for the distinct itemsets in \(R_{C}\) (Line 2) and then constructs the array of cumulative probabilities of the records \(ACP\) (Line 3). A random number between 1 and 100 is generated (Line 4); the itemset with cumulative probability equal or straight greater than the selected random number is returned. The two selected itemsets, \(r_{0}\) and \(r_{1}\), are merged together (Line 11) and moved to the temporary cluster \(ReconstructedRecord\) (Line 12), waiting for all the itemsets in \(R_{C_{j}}\) to be merged with other itemsets from \(C_{i}\) in a similar way (Line 8-15). The generated itemsets in \(ReconstructedRecord\) are added to the neighbor cluster \(C_{i}^{\prime}\) for the merge with the next record chunk (Line 16). The union of all the generated clusters form the neighbor dataset of the disassociated dataset (Line 18). In Section 5, we present a set of experiments to evaluate the result in terms of neighborhood generation.