4.1 Synthetic data We created synthetic datasets with different numbers of rows and columns. For each dataset, we generated biclusters by sampling subsets of rows and columns. For this experiment, we randomly generated the number of rows and columns and identifiers for the rows and columns; we did not need to generate values for the cells of the matrices. For each set of biclusters, we recorded the time required to run our layout algorithm and the number of rows and columns in the computed layout. For each layout, we estimated the efficiency of the layout as the ratio of the size of the layout to the size of the dataset. Lower values of efficiency are better than higher values, since they indicate that the algorithm is able to exploit overlaps between biclusters. For each choice of number of rows in the dataset, number of columns in the dataset, and number of biclusters, we averaged the results for 100 runs. Tables 1 and 2 display our results. Efficiency values may be less than one, e.g., when some rows or columns in the dataset do not belong to any bicluster. Table 1 Execution times (in seconds) for the layout algorithm on synthetic matrices #biclusters #rows + #columns in the dataset 10 30 50 70 90 20 0.168 0.328 0.462 0.52 0.532 40 1.23 2.514 3.046 3.574 4.008 60 4.074 7.992 11.238 11.71 12.81 80 9.484 19.586 25.546 29.652 29.446 100 17.982 37.966 48.418 50.916 56.112 Table 2 Efficiency values for the layout algorithm on synthetic matrices. # biclusters #rows + #columns in the dataset 10 30 50 70 90 20 0.184 0.842 1.316 1.254 1.428 40 0.304 1.16 1.632 2.04 2.074 60 0.398 1.496 2.262 2.26 2.508 80 0.512 1.65 2.358 2.726 2.698 100 0.48 1.808 2.582 2.686 2.996