Contents - Index


PURPOSE Optimizes a cost function which measures the degree to which a partition forms structurally equivalent blocks using a tabu search method.

DESCRIPTION A partition of a network divides the adjacency matrix into matrix blocks. For perfect structural equivalence each block should consist of  zeros or all ones. The number of errors in a block are the least number of changes required to make either all zeros or all ones. The sum of the errors of all the matrix blocks gives a measure or cost function of the degree of structural equivalence for a given partition. The routine attempts to optimize this cost function to try and find the best partition of the vertices into a specified number of blocks.    

Input dataset:
Name of file containing network to be analyzed. Data type: Graph.

Number of blocks: (Default = 2).
Number of groups or blocks into which the vertices are to be assigned.  The number of  matrix blocks will be the square of this number.

Output sets dataset: (Default = 'SbmSets').
Name of file which contains a block by actor incidence matrix.  A 1 in row i column j indicates that actor j is a member of block i.  This matrix is not displayed in the LOG FILE.

Output Partition Dataset: (Default = 'SbmPart').
Name of output file which contains a partition indicator vector.  This vector has the form (k1,k2, where ki assigns vertex i to block ki, so that (1 1 2 1 2) assigns vertices 1, 2 and 4 to block 1 and 3 and 5 to block 2.  
This vector is not displayed in the LOG FILE.
Are diagonal values valid? (Default = NO)
Whether diagonals are to be included in cost function.

Maximum # of iterations in a series: (Default = 50)
The algorithm starts from an arbitrary partition and attempts to decrease the cost by taking the steepest descent.  If the cost cannot be reduced then the algorithm continues its search in the neighborhood of the current partition. This search direction is a mildest ascent direction and from there new search directions are explored.  This exploration only continues for a fixed number of iterations in a series.  If no improvement is made after the fixed number of iterations the algorithm terminates with the current minimum. Increasing the parameter gives a more exhaustive and therefore slower search.

Random Number Seed:
The random number seed generates the initial partition.  UCINET generates a different random number as default each time it is run.  This number should be changed if the user wishes to repeat the analysis with different initial configurations.  The range is 1 to 32000.
Length of time in penalty box: (Default =25)
If the algorithm makes an ascending step then it is possible that the best possible descending step is the reverse of the direction just taken.  This parameter prohibits a move along the reverse direction for a set number of steps.  The larger the value the more difficult it will be to come back to a previously explored local minimum, however it will also be more difficult to explore the vicinity of that minimum. The default has been shown experimentally to be the most useful.

Number of random starts: (Default = 5)
The whole procedure is repeated with a different initial partition.  The best of these are then selected as a minimum.



LOG FILE The number of errors and the R-squared value for the initial partition. The R-squared value is the correlation coefficient of the partitioned data matrix and an ideal structure matrix.  The structure matrix has the same dimension as the data matrix but each block is set to a one or zero corresponding to the nearest block in the data matrix. 
The final number or errors the R-squared value and the errors in each block after the optimization.

List of blocks.  Each block is labeled and is specified by the vertices it contains.

The blocked adjacency matrix.  The rows and columns of the original adjacency matrix are permuted into blocks.  The adjacency matrix is displayed in terms of the matrix blocks it contains.

TIMING Each iteration of the tabu search algorithm is O(N^2).

COMMENTS Care should be taken when using this routine.

The algorithm seeks to find the minima of the cost function.  Even if successful this result may still have a high value in which case the blocking may not conform very closely to structural equivalence.  

In addition there may be a number of alternative partitions which also produce the minimum value;  the algorithm does not search for additional solutions.  Finally it is possible that the routine terminates at a local minima and does not locate the desired global minima.

To test the robustness of the solution the algorithm should be run a number of times from different starting configurations.  If there is good agreement between these results then this is a sign that there is a clear split of the data into the reported blocks.

REFERENCES Panning W (1982).  'Fitting blockmodels to data'.  Social Networks 4, 81-101.

Glover F (1989).  Tabu Search - Part I.  ORSA Journal on Computing 1, 190-206.

Glover F (1990).  Tabu Search - Part II.  ORSA Journal on Computing 2, 4-32.