Hi: I am trying to implement a bandwidth reduction algorithm for a (M x N) binary matrix using the GA package in R. I am using the folloging code to get the optimal permutation for rows and columns (optimization in two dimensions). M <- matrix(c(0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1),nrow=5, ncol=4) BW <- function(patt, origMatrix) { M1 <- origMatrix[patt[1], patt[2]] temp2 <- 0; temp3 <- 0; for(i in 1:nrow(M1)) { for(j in 1:ncol(M1)) { if(M1[i,j] > 0) { temp1 <- abs(i - j) temp2 <- append(temp2, temp1) } } temp3 <- append(temp3, max(temp2)) temp2 <- 0 } return(max(temp3)) } bwFit <- function(patt, ...) 1/BW(patt[1], patt[2],...) GA <- ga(type = "permutation", fitness = bwFit, origMatrix = M, min c(1,1), max = c(5,4), popSize = 100, maxiter = 5000, run = 500, pmutation = 0.2) I get this error message: Error in BW(patt[1], patt[2], ...) : unused argument (patt[2]) In summary, I am unable to implement the optimization in two dimensions. In the solution, I need two vectors containing the optimal row and column permutations. Can you suggest a solution? Regards: John