06-Feb-2022 15:30:47 boat_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2. boat() implements a linear programming approach to the boat tiling problem. lp_generate(): Define a puzzle grid and set of tiles. Set up the linear system A*x=b defining the tiling problem. Use sparse storage for the matrix A. Write that information to an LP file. LP system computed. Matrix A has 777 rows, 8753 columns, 323861 nonzeros LP information saved as "boat.lp" lp_generate(): Normal end of execution. boat_cplex_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2. Examine the linear programming solution to the boat tiling problem, as produced by cplex(). solution_plot(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 Plot a solution generated by cplex(). Tile = 1, VAR = 3, Rotate = 0, reflect = 0, type = 3 pij = (10,6) Tile = 2, VAR = 516, Rotate = 1, reflect = 0, type = -4 pij = (34,18) Tile = 3, VAR = 1173, Rotate = 5, reflect = 1, type = 4 pij = (6,18) Tile = 4, VAR = 1412, Rotate = 3, reflect = 0, type = -5 pij = (24,36) Tile = 5, VAR = 1841, Rotate = 3, reflect = 0, type = -1 pij = (30,30) Tile = 6, VAR = 2027, Rotate = 0, reflect = 0, type = -5 pij = (8,12) Tile = 7, VAR = 2449, Rotate = 0, reflect = 0, type = -5 pij = (18,6) Tile = 8, VAR = 3051, Rotate = 2, reflect = 1, type = 5 pij = (32,12) Tile = 9, VAR = 3436, Rotate = 2, reflect = 0, type = -1 pij = (24,12) Tile = 10, VAR = 4052, Rotate = 5, reflect = 0, type = -5 pij = (20,36) Tile = 11, VAR = 4353, Rotate = 3, reflect = 1, type = -3 pij = (8,0) Tile = 12, VAR = 4667, Rotate = 1, reflect = 1, type = 3 pij = (30,42) Tile = 13, VAR = 5271, Rotate = 4, reflect = 1, type = -1 pij = (12,-12) Tile = 14, VAR = 5647, Rotate = 3, reflect = 1, type = -5 pij = (34,42) Tile = 15, VAR = 5931, Rotate = 2, reflect = 0, type = 5 pij = (18,6) Tile = 16, VAR = 6534, Rotate = 4, reflect = 1, type = -5 pij = (18,18) Tile = 17, VAR = 6723, Rotate = 1, reflect = 0, type = -5 pij = (28,12) Tile = 18, VAR = 7406, Rotate = 4, reflect = 1, type = 3 pij = (36,36) Tile = 19, VAR = 7721, Rotate = 3, reflect = 1, type = 3 pij = (20,0) Tile = 20, VAR = 7917, Rotate = 0, reflect = 0, type = -6 pij = (16,12) Tile = 21, VAR = 8474, Rotate = 2, reflect = 0, type = -5 pij = (26,-6) Graphics saved as "boat_cplex.png" solution_plot(): Normal end of execution. solution_tikz_ij(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 Make a tikz() image of a tiling solution. Tile = 1, VAR = 3, Rotate = 0, reflect = 0, type = 3 pij = (10,6) Tile = 2, VAR = 516, Rotate = 1, reflect = 0, type = -4 pij = (34,18) Tile = 3, VAR = 1173, Rotate = 5, reflect = 1, type = 4 pij = (6,18) Tile = 4, VAR = 1412, Rotate = 3, reflect = 0, type = -5 pij = (24,36) Tile = 5, VAR = 1841, Rotate = 3, reflect = 0, type = -1 pij = (30,30) Tile = 6, VAR = 2027, Rotate = 0, reflect = 0, type = -5 pij = (8,12) Tile = 7, VAR = 2449, Rotate = 0, reflect = 0, type = -5 pij = (18,6) Tile = 8, VAR = 3051, Rotate = 2, reflect = 1, type = 5 pij = (32,12) Tile = 9, VAR = 3436, Rotate = 2, reflect = 0, type = -1 pij = (24,12) Tile = 10, VAR = 4052, Rotate = 5, reflect = 0, type = -5 pij = (20,36) Tile = 11, VAR = 4353, Rotate = 3, reflect = 1, type = -3 pij = (8,0) Tile = 12, VAR = 4667, Rotate = 1, reflect = 1, type = 3 pij = (30,42) Tile = 13, VAR = 5271, Rotate = 4, reflect = 1, type = -1 pij = (12,-12) Tile = 14, VAR = 5647, Rotate = 3, reflect = 1, type = -5 pij = (34,42) Tile = 15, VAR = 5931, Rotate = 2, reflect = 0, type = 5 pij = (18,6) Tile = 16, VAR = 6534, Rotate = 4, reflect = 1, type = -5 pij = (18,18) Tile = 17, VAR = 6723, Rotate = 1, reflect = 0, type = -5 pij = (28,12) Tile = 18, VAR = 7406, Rotate = 4, reflect = 1, type = 3 pij = (36,36) Tile = 19, VAR = 7721, Rotate = 3, reflect = 1, type = 3 pij = (20,0) Tile = 20, VAR = 7917, Rotate = 0, reflect = 0, type = -6 pij = (16,12) Tile = 21, VAR = 8474, Rotate = 2, reflect = 0, type = -5 pij = (26,-6) tikz image saved as "boat_cplex_ij.tex" solution_tikz_ij(): Normal end of execution. solution_tikz_xy(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 Make a tikz() image of a tiling solution. The (x,y) coordinate system is used. Tile = 1, VAR = 3, Rotate = 0, reflect = 0, type = 3 pij = (10,6) pxy=(2.5,0.866025) Tile = 2, VAR = 516, Rotate = 1, reflect = 0, type = -4 pij = (34,18) pxy=(8.5,2.59808) Tile = 3, VAR = 1173, Rotate = 5, reflect = 1, type = 4 pij = (6,18) pxy=(1.5,2.59808) Tile = 4, VAR = 1412, Rotate = 3, reflect = 0, type = -5 pij = (24,36) pxy=(6,5.19615) Tile = 5, VAR = 1841, Rotate = 3, reflect = 0, type = -1 pij = (30,30) pxy=(7.5,4.33013) Tile = 6, VAR = 2027, Rotate = 0, reflect = 0, type = -5 pij = (8,12) pxy=(2,1.73205) Tile = 7, VAR = 2449, Rotate = 0, reflect = 0, type = -5 pij = (18,6) pxy=(4.5,0.866025) Tile = 8, VAR = 3051, Rotate = 2, reflect = 1, type = 5 pij = (32,12) pxy=(8,1.73205) Tile = 9, VAR = 3436, Rotate = 2, reflect = 0, type = -1 pij = (24,12) pxy=(6,1.73205) Tile = 10, VAR = 4052, Rotate = 5, reflect = 0, type = -5 pij = (20,36) pxy=(5,5.19615) Tile = 11, VAR = 4353, Rotate = 3, reflect = 1, type = -3 pij = (8,0) pxy=(2,0) Tile = 12, VAR = 4667, Rotate = 1, reflect = 1, type = 3 pij = (30,42) pxy=(7.5,6.06218) Tile = 13, VAR = 5271, Rotate = 4, reflect = 1, type = -1 pij = (12,-12) pxy=(3,-1.73205) Tile = 14, VAR = 5647, Rotate = 3, reflect = 1, type = -5 pij = (34,42) pxy=(8.5,6.06218) Tile = 15, VAR = 5931, Rotate = 2, reflect = 0, type = 5 pij = (18,6) pxy=(4.5,0.866025) Tile = 16, VAR = 6534, Rotate = 4, reflect = 1, type = -5 pij = (18,18) pxy=(4.5,2.59808) Tile = 17, VAR = 6723, Rotate = 1, reflect = 0, type = -5 pij = (28,12) pxy=(7,1.73205) Tile = 18, VAR = 7406, Rotate = 4, reflect = 1, type = 3 pij = (36,36) pxy=(9,5.19615) Tile = 19, VAR = 7721, Rotate = 3, reflect = 1, type = 3 pij = (20,0) pxy=(5,0) Tile = 20, VAR = 7917, Rotate = 0, reflect = 0, type = -6 pij = (16,12) pxy=(4,1.73205) Tile = 21, VAR = 8474, Rotate = 2, reflect = 0, type = -5 pij = (26,-6) pxy=(6.5,-0.866025) tikz image saved as "boat_cplex_xy.tex" solution_tikz_xy(): Normal end of execution. boat_solution_print(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 Print, for each configuration in a boat solution, the grid elements and (i,j) vertex coordinates covered by the configuration. boat cplex solution Configuration 3 used in solution. Tile = 1, VAR_NUM = 3, Rotate = 0, reflect = 0, type = 3 pij = (10,6) Configuration 516 used in solution. Tile = 2, VAR_NUM = 516, Rotate = 1, reflect = 0, type = -4 pij = (34,18) Configuration 1173 used in solution. Tile = 3, VAR_NUM = 1173, Rotate = 5, reflect = 1, type = 4 pij = (6,18) Configuration 1412 used in solution. Tile = 4, VAR_NUM = 1412, Rotate = 3, reflect = 0, type = -5 pij = (24,36) Configuration 1841 used in solution. Tile = 5, VAR_NUM = 1841, Rotate = 3, reflect = 0, type = -1 pij = (30,30) Configuration 2027 used in solution. Tile = 6, VAR_NUM = 2027, Rotate = 0, reflect = 0, type = -5 pij = (8,12) Configuration 2449 used in solution. Tile = 7, VAR_NUM = 2449, Rotate = 0, reflect = 0, type = -5 pij = (18,6) Configuration 3051 used in solution. Tile = 8, VAR_NUM = 3051, Rotate = 2, reflect = 1, type = 5 pij = (32,12) Configuration 3436 used in solution. Tile = 9, VAR_NUM = 3436, Rotate = 2, reflect = 0, type = -1 pij = (24,12) Configuration 4052 used in solution. Tile = 10, VAR_NUM = 4052, Rotate = 5, reflect = 0, type = -5 pij = (20,36) Configuration 4353 used in solution. Tile = 11, VAR_NUM = 4353, Rotate = 3, reflect = 1, type = -3 pij = (8,0) Configuration 4667 used in solution. Tile = 12, VAR_NUM = 4667, Rotate = 1, reflect = 1, type = 3 pij = (30,42) Configuration 5271 used in solution. Tile = 13, VAR_NUM = 5271, Rotate = 4, reflect = 1, type = -1 pij = (12,-12) Configuration 5647 used in solution. Tile = 14, VAR_NUM = 5647, Rotate = 3, reflect = 1, type = -5 pij = (34,42) Configuration 5931 used in solution. Tile = 15, VAR_NUM = 5931, Rotate = 2, reflect = 0, type = 5 pij = (18,6) Configuration 6534 used in solution. Tile = 16, VAR_NUM = 6534, Rotate = 4, reflect = 1, type = -5 pij = (18,18) Configuration 6723 used in solution. Tile = 17, VAR_NUM = 6723, Rotate = 1, reflect = 0, type = -5 pij = (28,12) Configuration 7406 used in solution. Tile = 18, VAR_NUM = 7406, Rotate = 4, reflect = 1, type = 3 pij = (36,36) Configuration 7721 used in solution. Tile = 19, VAR_NUM = 7721, Rotate = 3, reflect = 1, type = 3 pij = (20,0) Configuration 7917 used in solution. Tile = 20, VAR_NUM = 7917, Rotate = 0, reflect = 0, type = -6 pij = (16,12) Configuration 8474 used in solution. Tile = 21, VAR_NUM = 8474, Rotate = 2, reflect = 0, type = -5 pij = (26,-6) boat_solution_print(): Normal end of execution. boat_cplex_test(): Normal end of execution. boat_gurobi_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2. Examine the linear programming solution to the boat tiling problem, as produced by gurobi(). gurobi_solution_read(): Extract information from GUROBI file "boat_gurobi.sol". The file contains 8754 lines of information. The file contains 21 nonzero values. X array size adjusted to 8753 solution_plot(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 Plot a solution generated by cplex(). Tile = 1, VAR = 3, Rotate = 0, reflect = 0, type = 3 pij = (10,6) Tile = 2, VAR = 516, Rotate = 1, reflect = 0, type = -4 pij = (34,18) Tile = 3, VAR = 1173, Rotate = 5, reflect = 1, type = 4 pij = (6,18) Tile = 4, VAR = 1412, Rotate = 3, reflect = 0, type = -5 pij = (24,36) Tile = 5, VAR = 1841, Rotate = 3, reflect = 0, type = -1 pij = (30,30) Tile = 6, VAR = 2027, Rotate = 0, reflect = 0, type = -5 pij = (8,12) Tile = 7, VAR = 2449, Rotate = 0, reflect = 0, type = -5 pij = (18,6) Tile = 8, VAR = 3051, Rotate = 2, reflect = 1, type = 5 pij = (32,12) Tile = 9, VAR = 3436, Rotate = 2, reflect = 0, type = -1 pij = (24,12) Tile = 10, VAR = 4052, Rotate = 5, reflect = 0, type = -5 pij = (20,36) Tile = 11, VAR = 4353, Rotate = 3, reflect = 1, type = -3 pij = (8,0) Tile = 12, VAR = 4667, Rotate = 1, reflect = 1, type = 3 pij = (30,42) Tile = 13, VAR = 5271, Rotate = 4, reflect = 1, type = -1 pij = (12,-12) Tile = 14, VAR = 5647, Rotate = 3, reflect = 1, type = -5 pij = (34,42) Tile = 15, VAR = 5931, Rotate = 2, reflect = 0, type = 5 pij = (18,6)