Dynamic data redistribution is used to enhance the performance of an algorithm and to achieve data locality in parallel programs on distributed memory multi-computers. Therefore, the data redistribution problem has been extensively studied. Previous resul