/** * ****** 判断禁忌表中W最大的解,并打印解 * * @param tabuTable */ public static void PrintfSolution( int[][] tabuTable, int[] L, int[] W, RectanglePaking rping, int[][] plank) { rping.InitPlank(plank); // 木板初始化 int x = 0; // 表示最优解所处在的列 int lieshu = tabuTable[0].length; int max = tabuTable[0][lieshu - 2]; for (int i = 1; i < tabuTable.length; i++) { if (tabuTable[i][lieshu - 2] > max) { max = tabuTable[i][lieshu - 2]; x = i; } } // Console.WriteLine("最大的价值为: " + max); for (int i = 0; i < lieshu; i++) // Console.Write(tabuTable[x][i] + " "); // Console.WriteLine(); for (int k = 0; k < tabuTable[0].length - 2; k++) // 将初始解放入木块中 { rping.InsertRectangle(plank, W[tabuTable[x][k] - 1], L[tabuTable[x][k] - 1], k); } rping.PrintPlank(plank); }