# On Chamfer Distances on the Square and Body-Centered Cubic Grids: An Operational Research Approach

Authors: Gergely Kovács; Benedek Nagy; Gergely Stomfai; Neşet Deni̇z Turgay; Béla Vizvári
Journal: Mathematical Problems in Engineering
 (2021)

---

## Abstract

Linear programming is used to solve optimization problems. Thus, finding a shortest path in a grid is a good target to apply linear programming. In this paper, specific bipartite grids, the square and the body-centered cubic grids are studied. The former is represented as a “diagonal square grid” having points with pairs of either even or pairs of odd coordinates (highlighting the bipartite feature). Therefore, a straightforward generalization of the representation describes the body-centered cubic grid in 3D. We use chamfer paths and chamfer distances in these grids; therefore, weights for the steps between the closest neighbors and steps between the closest same type points are fixed, and depending on the weights, various paths could be the shortest one. The vectors of the various neighbors form a basis if they are independent, and their number is the same as the dimension of the space studied. Depending on the relation of the weights, various bases could give the optimal solution and various steps are used in the shortest paths. This operational research approach determines the optimal paths as basic feasible solutions of a linear programming problem. A directed graph is given containing the feasible bases as nodes and arcs with conditions on the used weights such that the simplex method may step from one feasible basis to another one. Thus, the optimal bases can be determined, and they are summarized in two theorems. If the optimal solution is not integer, then the Gomory cut is applied and the integer optimal solution is reached after only one Gomory iteration. Chamfer distances are frequently used in image processing and analysis as well as graphics-related subjects. The body-centered cubic grid, which is well-known in solid state physics, material science, and crystallography, has various applications in imaging and graphics since less samples are needed to represent the signal in the same quality than on the cubic grid. Moreover, the body-centered cubic grid has also a topological advantage over the cubic grid, namely, the neighbor Voronoi cells always share a full face.


---

## Body

## 1. Introduction

Grids have a significant role not only in crystallography, material science, and solid state physics but also in various engineering applications, e.g., in image processing and in digital geometry [1]. There is a large variety of ways to tessellate the plane and the three dimensional space. Regular grids in 2D are the square, the hexagonal, and the triangular grids, and the only regular grid in 3D is the cubic grid [2, 3]. The square and the cubic grids are most popular grids since their coordinate systems are the Cartesian coordinate systems. They are considered as the traditional grids. One of the earliest results on the square grid is the introduction of chessboard and cityblock motions which is given in [4]. The dual of the square grid is again a square grid, whereas the hexagonal and the triangular grids are duals of each other. The hexagonal grid has a useful symmetric coordinate frame, and every pixel, also called hexel [5], has six neighbors. The triangular grid is also described by the symmetric coordinate system. The useful descriptions of these grids by three coordinates are given in [6–8]. These two regular grids are also studied from various points of view such as topological/combinatorial coordinate systems [9] and applied in discrete tomography [5, 10, 11].Irregular grids are also applied in various places, e.g., triangulation in computer graphics. These grids are usually ad hoc and miss any type of structure. On the other hand, there are various well-structured grids. Two of the nontraditional grids in 3D are the body-centered Cubic (BCC) and the face-centered cubic (FCC) grids. They provide structures of various solid materials, and thus they play crucial importance in crystallography. They are alternative to the cubic grid in various engineering applications. These grids have many application areas, e.g., image processing [12], visualization [13], and topology preserving digitization [14]. It is worth noting that the FCC and BCC grids are point lattices. Further, BCC and FCC grids are generalizations of the hexagonal grid to 3D. Especially, in the hexagonal grid, there is only one usual neighborhood relation among the hexagon-shaped tiles/pixels, and two neighbor hexagons share a full side. The BCC grid generalizes this property to 3D, i.e., both of the used types of neighbor relations are among voxels such that either a full hexagon face or a square face is shared between the neighbor voxels. This topological advantage of the BCC grid can be used, e.g., by combinatorial coordinate systems in boundary tracking [15]. Moreover, the BCC grid is proven to have some better properties in applications than the cubic grid [16–18] highlighting the importance of our study. In electronic imaging, it is important what kind of mesh we scan the object according to. BCC grid is often used for this purpose [19]. Further, the BCC grid also plays an important role in the latest chapters of material science [20].In 2D, one of the irregular grids is the Khalimsky grid. In this grid, the 4-neighbor and the 8-neighbor relations are used for the points of the grid, alternately, depending on their positions. Khalimsky’s topology on the integers is introduced by Efim Khalimsky [21, 22]. This topology is a digital counterpart of the Euclidean topology on the real line and is useful in connection with digital geometry. Digital geometry of the 2D Khalimsky grid is studied, e.g., in [23].In digital geometry, the distance between two points is defined by the number of steps in a shortest path connecting these points [1, 3, 4]. An algorithm which finds the shortest path and also their number between arbitrary two points in the square grid is given in [24]. Distance on the hexagonal grid is computed in [25]. Moreover, in [8], an algorithm, which produces the shortest path between two arbitrary points of the hexagonal grid is introduced. Weighted distances play also an important role in image processing, e.g., morphological filtering [26]. Weighted distances (chamfer distances) are also studied in various grids [23, 27, 28]. One may think about to finding a minimal path (and so, to determine the digital distance) as an optimization problem. We should note here that there are various shortest path algorithms in graph theory and in artificial intelligence [29], but those algorithms, e.g., Dijkstra algorithm (see, e.g., in [1]), are very general and do not take into account the very definite structures of the grids used in digital geometry. For this reason, both of their space and time complexities are much worse than the complexities of some more specific algorithms ([8]) and computations. Our aim here is to provide direct formulae for the distance computation.Another important subject of our work is linear programming. Linear programming is an optimization problem. The objective function is linear, the constraints are linear equations, and the variables are nonnegative. The linear programming was discovered by George Dantzig in 1947. He published the simplex method in 1949 [30]. It is still one of the most effective methods of linear optimization. A great advantage of the simplex method is that its theory is a complete geometric description of the structure of the problem. In this paper, the results are based on the optimality criterion of the method. It is important to know that if optimal solution exists, then an optimal solution must exist among finitely many points. They are the so-called basic feasible solutions. Each such point belongs to a linear basis of the columns of the matrix of the equation system.In the next section, as a preliminary part, we recall the simplex method and the Gomory cut [31] from operational research. In this paper, the 2D square grid and the 3D BCC grid are studied. Their formal description is given in Section 3. Both of these grids are bipartite grids (according to the new concept, we investigate in Subsection 3.1). Actually, we use an unusual description of the square grid which is somewhat related to the coordinate system we have invented for the Khalimsky grid (see, e.g., [23]). In this novel representation that we named as “diagonal square grid,” the closest neighbor points are represented by coordinates with different parities (see the details in Subsection 3.2). Although the square grid is the most known, the new description gives us a new way of view that allows us to make an analogous study in nontraditional higher dimensional grids, as we do also in the 3D BCC grid. Section 4 shows our linear programming model for each grid in its subsections, respectively. Depending on the relation of the weights assigned to the two types of neighbors, various bases could give the optimal solution, i.e., various types (and directions) of steps could be used in the shortest paths. If the optimal solution is not integer (one case of both problems), then the so-called Gomory cut cuts the noninteger solutions, and the integer optimal solution is reached after only one Gomory iteration. Our theorems can easily be applied by knowing the fixed weights for the two types of neighbors; the distance of any two points can be computed directly, as we show it in examples. It is widely known that weighted distances were already studied both in the square and the BCC grids; however, our approach has not been applied yet, by giving a nice relation between digital geometry and linear programming. Moreover, our approach, up to our knowledge, is more general than the study, e.g., in [32, 33] since the case when closest neighbors get a larger weight than the second closest neighbors is not studied yet in detail for the BCC grid. In this way, our results also complement the previous knowledge on this field. Finally, the paper is closed by a concluding section.


## 2. Methods: On the Simplex Method and the Gomory Cuts

The simplex method of linear programming solves an optimization problem given in the form as follows:(1)maxcTx,Ax=b,x≥0,where A is an m × n matrix, b is an m-dimensional vector, c is an n-dimensional vector of constants, and x is the n-dimensional vector of variables.The constraints determine a polyhedral set. What is called the corner point in the usual geometry is called extreme point here. A point is an extreme point of the polyhedral set if it is the only intersection point of the polyhedral set and a hyperplane. The extreme points of the polyhedral set of the linear programming problem are the so called basic feasible solutions. For the sake of simplicity, assume that the rank of matrixA is m. Let B be a subset of the columns of A such that the vectors of B form a basis. The matrix formed from the elements of B is an m × m matrix. It is also denoted by B. Assume that matrix A and vector x are partitioned accordingly, i.e., A = (B, N) and xT=xBT,xNT. The basic solution of basis B is obtained if x satisfies the equation system, and its xN part is 0. It can be obtained as follows:(2)Ax=B,NxBxN=BxB+NxN=b.Hence,(3)xB=B−1b−B−1NxN.Thus, thexB part of the basic solution is B−1b. The basic solution is feasible if B−1b ≥ 0.An important consequence of the linearity, that if optimal solution exists, then at least one basic feasible solution is optimal.Roughly speaking, the finite versions of the simplex method start from a basic feasible solution. It improves the solution by stepping to another basic feasible solution along an edge of the polyhedral set. It repeats this step until it recognizes that the current extreme point is optimal. This property also proves that the set of edges of a convex polyhedral set is a connected graph.Gomory’s method of integer programming is based on the observation that the basic variables are expressed by the other variables in the form of the equation system (3). Assume that one of this equation is(4)xi=di0−∑j∈Kdijxj,where K is the index set of the nonbasic variables. Assume further on, that di0 is noninteger. It is the current value of the integer variable xi. Let fj be the fractional part of the coefficient, i.e., the fractional part of dtj:(5)fj=dij−dij,j∈K∪0.Let us substitute these quantities into the equation. If the equation is rearranged such that all terms which are integer for sure are in the left-hand side, the new form of the equation is obtained as follows:(6)xt−dt0+∑j∈Kdtjxj=f0−∑j∈Kfjxj.Hence,(7)f0≡∑j∈Kfjxjmod1.All the coefficients of this relation are between 0 and 1. Thus, the two sides can be congruent only if the value of the right-hand side is in the set {f0, f0 + 1, f0 + 2, … }. Hence, the inequality(8)∑j∈Kfjxj≥f0must be satisfied. This inequality is not satisfied by the current basic feasible solution as the values of the variables in the sum are all 0. This inequality is the Gomory cut.


## 3. Formal Descriptions of the Diagonal Square Grid and the BCC Grid

In this paper, we are focusing on two grids, the first is the 2D square grid but with a nontraditional description, while the second one is the body-centered cubic grid. We use a nontraditional view to represent the square grid in such a way that its description generalizes to 3D exactly in a way that produces a description of the BCC grid.


### 3.1. On Bipartite Grids

One may connect the closest neighbor point pairs of a grid by edges. Therefore, grids can be seen as infinite graphs with a kind of regular, periodic structure. Various grids could have various (graph-theoretic) properties. We call a graph and thus also a grid “bipartite” if there it does not contain any odd cycle. It is easy to see that the square grid is bipartite, and this well-known property is reflected, e.g., by the coloring of a chessboard: the two partitions of the points (i.e., pixels and fields in the usual square grid terminology) are colored by two different colors, e.g., black and white. The cubic and also the BCC grids are bipartite, as well as, the triangular and the diamond grids (moreover, these two latter grids are not point lattices, the relation of the two partitions—called also types or parities of the points in these cases—does not provide closure under translations). On the other hand, it is also easy to show grids which are not bipartite, e.g., the hexagonal or the FCC grids (in both of these grids, 3 cycles—i.e., triangles—exist among closest neighbor points). Now, for bipartite grids, it is interesting to see what is the grid structure of the partitions and what is the type of the subgrids. At the case of triangular grid, each of the partitions of the even and odd points forms a hexagonal subgrid. The even and odd points of the diamond grid have the structure of two separate FCC subgrids. The two partitions of the BCC grid are cubic subgrids. Finally, each partition of the square grid is again a square grid. In the next subsection, by showing an unusual coordinate system for the square grid, we underline its bipartite property.


### 3.2. The Diagonal Square Grid: Reflecting the Bipartite Property of the Grid

We use a 45° rotation of the usual square grid, and we call this representation and description as the diagonal square grid (see Figure1). The two coordinates are used in a similar manner, as we have described the so-called Khalimsky grid in [23, 34], but in this paper, we consider every point/pixel of the grid with the same connectedness, i.e., the same neighborhood. In this way, although the coordinate pairs of the represented points/pixels are similar to those that are used for the Khalimsky grid, our description fits to the square grid, which is in fact, a regular grid and it represents a point lattice at the same time. We note here that in the mentioned papers, integer coordinate pairs addressed half of the points of the grid, while coordinate pairs having value integer plus a half the other half of the points. In contrast to this, here, we prefer to use only integer coordinates (by multiplying each of the Khalimsky coordinates by 2); thus, we have two subgrids as follows. The even-subgrid is built up by the points (or squares, depending on the representation used) addressed by a pair of even coordinates. The odd-subgrid is built up by points addressed by odd coordinate pairs. Consequently, we call the points even or odd depending on the fact which subgrid they belong. It is worth noting that both the even and the odd subgrids are square grids themselves, and our grid which is the union of these two subgrids is also a square grid. The traditional 4-neighborhood relation consists of pairs of points that are different types and closest to each other (i.e., always an even and an odd point). They are depicted by vectors (±1, ±1). Additionally, the traditional 8-neighborhood contains also the pairs of the closest same type points (i.e., two even or two odd points). They are described by vectors (±2, 0) and (0, ±2). In Figure 2, part (a) shows also a part of this grid (in the dual representation, showing “grid points”—i.e., midpoints of the pixels—instead of pixels) with the assigned coordinate pairs of the points, and the neighbors of the point (0, 0) are also shown. Chamfer distances are defined first on the square grid [35, 36]. Based on the two classical neighborhoods, assigning weight a for steps between the closest neighbors (examples are shown by pink lines) and weight b for the steps between the second closest neighbors (examples are shown by black lines), the shortest weighted path between two points gives their chamfer (or weighted) distance. The paths we refer here are built in graph-theoretic sense by consecutive steps between (various type of) neighbor points of the grid.Figure 1
Turning the square grid by 45° obtaining the diagonal square grid (showing the origin (0, 0)), the two subgrids, and the assigned coordinate system.Figure 2
(a) The diagonal square grid with the neighbors of the origin (0, 0). (b) The BCC grid with some points of its two subgrids and their coordinates.
(a)(b)


### 3.3. A (Usual) Coordinate System for the BCC Grid

Now, as a straightforward generalization of the previous description, one can obtain the grid which is the union of the two 3D subgrids: the grid of even points (addressed by triplets of even numbers) and the grid of odd points (addressed by triplets of odd numbers). Here, both the even and the odd subgrids are cubic grids, and their union is actually the BCC grid [32, 33] (see also Figure 2, part (b)), where the “grid point” representation of the diagonal square grid can easily be generalized from two to three dimensions. For explanation, we recall that, e.g., the caesium chloride (CsCl) has such 3D structure: the caesium ions are represented by black balls and the chloride ions are represented by red-while balls. In the BCC grid, there are also two usual neighborhoods. The closest neighbor points are different type, and each point has 8 of them (as a chloride ion has 8 caesium ion neighbors). They are described by vectors (±1, ±1, ±1) (in Figure 2, part (b), the eight closest neighbors of the point (−1, 1, 1) are also highlighted, pink color is used to connect those neighbors, and their Euclidean distance is 3/2 times the length of the edge of the cubes of the unit cell, which is 2 here to ensure to use only integer coordinates to address the points of the grid). On the other hand, the second closest neighbors are actually the closest neighbors inside a given subgrid; that is, they are the closest same type points. Each point has 6 such neighbors, and they are described by vectors of the form (±2, 0, 0), (0, ±2, 0) and (0, 0, ±2) as, e.g., a chloride ion has 6 closest chloride ion neighbors. Actually, every point pair having their distance exactly the same as the length of the edge (shown by black lines on the figure) of a unit cell are representing two such neighbors. By our coordinate system, this length is exactly 2. Chamfer distances on the BCC grid can be defined analogously to the way they have been defined on the (diagonal) square grid: steps between two closest neighbor points (shown, e.g., by pink line in Figure 2) have weight a, while between the closest same type points (connected, e.g., by black line) weight b is used. Then, the weighted length of a corresponding shortest path connecting the points gives the chamfer distance of the points. We note here that in the mentioned literature, one may found also results about the weighted distances; however, in this paper, we use an approach coming from operational research. Moreover, we study also the case in which the steps to the second closest neighbors have a smaller weight than the steps to the closest neighbors, i.e., b < a. Therefore, we present not only a new approach but also some new results. We should also note here, that in 2D, the square grid and the diagonal square grid have the same structure, same number of neighbors, and so on. However, in 3D, the cubic and the BCC grids are two essentially different grids. The BCC grid is more compact than the cubic grid; both the number of closest neighbors and its packing density are larger than the corresponding values of the cubic grid.


## 3.1. On Bipartite Grids

One may connect the closest neighbor point pairs of a grid by edges. Therefore, grids can be seen as infinite graphs with a kind of regular, periodic structure. Various grids could have various (graph-theoretic) properties. We call a graph and thus also a grid “bipartite” if there it does not contain any odd cycle. It is easy to see that the square grid is bipartite, and this well-known property is reflected, e.g., by the coloring of a chessboard: the two partitions of the points (i.e., pixels and fields in the usual square grid terminology) are colored by two different colors, e.g., black and white. The cubic and also the BCC grids are bipartite, as well as, the triangular and the diamond grids (moreover, these two latter grids are not point lattices, the relation of the two partitions—called also types or parities of the points in these cases—does not provide closure under translations). On the other hand, it is also easy to show grids which are not bipartite, e.g., the hexagonal or the FCC grids (in both of these grids, 3 cycles—i.e., triangles—exist among closest neighbor points). Now, for bipartite grids, it is interesting to see what is the grid structure of the partitions and what is the type of the subgrids. At the case of triangular grid, each of the partitions of the even and odd points forms a hexagonal subgrid. The even and odd points of the diamond grid have the structure of two separate FCC subgrids. The two partitions of the BCC grid are cubic subgrids. Finally, each partition of the square grid is again a square grid. In the next subsection, by showing an unusual coordinate system for the square grid, we underline its bipartite property.


## 3.2. The Diagonal Square Grid: Reflecting the Bipartite Property of the Grid

We use a 45° rotation of the usual square grid, and we call this representation and description as the diagonal square grid (see Figure1). The two coordinates are used in a similar manner, as we have described the so-called Khalimsky grid in [23, 34], but in this paper, we consider every point/pixel of the grid with the same connectedness, i.e., the same neighborhood. In this way, although the coordinate pairs of the represented points/pixels are similar to those that are used for the Khalimsky grid, our description fits to the square grid, which is in fact, a regular grid and it represents a point lattice at the same time. We note here that in the mentioned papers, integer coordinate pairs addressed half of the points of the grid, while coordinate pairs having value integer plus a half the other half of the points. In contrast to this, here, we prefer to use only integer coordinates (by multiplying each of the Khalimsky coordinates by 2); thus, we have two subgrids as follows. The even-subgrid is built up by the points (or squares, depending on the representation used) addressed by a pair of even coordinates. The odd-subgrid is built up by points addressed by odd coordinate pairs. Consequently, we call the points even or odd depending on the fact which subgrid they belong. It is worth noting that both the even and the odd subgrids are square grids themselves, and our grid which is the union of these two subgrids is also a square grid. The traditional 4-neighborhood relation consists of pairs of points that are different types and closest to each other (i.e., always an even and an odd point). They are depicted by vectors (±1, ±1). Additionally, the traditional 8-neighborhood contains also the pairs of the closest same type points (i.e., two even or two odd points). They are described by vectors (±2, 0) and (0, ±2). In Figure 2, part (a) shows also a part of this grid (in the dual representation, showing “grid points”—i.e., midpoints of the pixels—instead of pixels) with the assigned coordinate pairs of the points, and the neighbors of the point (0, 0) are also shown. Chamfer distances are defined first on the square grid [35, 36]. Based on the two classical neighborhoods, assigning weight a for steps between the closest neighbors (examples are shown by pink lines) and weight b for the steps between the second closest neighbors (examples are shown by black lines), the shortest weighted path between two points gives their chamfer (or weighted) distance. The paths we refer here are built in graph-theoretic sense by consecutive steps between (various type of) neighbor points of the grid.Figure 1
Turning the square grid by 45° obtaining the diagonal square grid (showing the origin (0, 0)), the two subgrids, and the assigned coordinate system.Figure 2
(a) The diagonal square grid with the neighbors of the origin (0, 0). (b) The BCC grid with some points of its two subgrids and their coordinates.
(a)(b)


## 3.3. A (Usual) Coordinate System for the BCC Grid

Now, as a straightforward generalization of the previous description, one can obtain the grid which is the union of the two 3D subgrids: the grid of even points (addressed by triplets of even numbers) and the grid of odd points (addressed by triplets of odd numbers). Here, both the even and the odd subgrids are cubic grids, and their union is actually the BCC grid [32, 33] (see also Figure 2, part (b)), where the “grid point” representation of the diagonal square grid can easily be generalized from two to three dimensions. For explanation, we recall that, e.g., the caesium chloride (CsCl) has such 3D structure: the caesium ions are represented by black balls and the chloride ions are represented by red-while balls. In the BCC grid, there are also two usual neighborhoods. The closest neighbor points are different type, and each point has 8 of them (as a chloride ion has 8 caesium ion neighbors). They are described by vectors (±1, ±1, ±1) (in Figure 2, part (b), the eight closest neighbors of the point (−1, 1, 1) are also highlighted, pink color is used to connect those neighbors, and their Euclidean distance is 3/2 times the length of the edge of the cubes of the unit cell, which is 2 here to ensure to use only integer coordinates to address the points of the grid). On the other hand, the second closest neighbors are actually the closest neighbors inside a given subgrid; that is, they are the closest same type points. Each point has 6 such neighbors, and they are described by vectors of the form (±2, 0, 0), (0, ±2, 0) and (0, 0, ±2) as, e.g., a chloride ion has 6 closest chloride ion neighbors. Actually, every point pair having their distance exactly the same as the length of the edge (shown by black lines on the figure) of a unit cell are representing two such neighbors. By our coordinate system, this length is exactly 2. Chamfer distances on the BCC grid can be defined analogously to the way they have been defined on the (diagonal) square grid: steps between two closest neighbor points (shown, e.g., by pink line in Figure 2) have weight a, while between the closest same type points (connected, e.g., by black line) weight b is used. Then, the weighted length of a corresponding shortest path connecting the points gives the chamfer distance of the points. We note here that in the mentioned literature, one may found also results about the weighted distances; however, in this paper, we use an approach coming from operational research. Moreover, we study also the case in which the steps to the second closest neighbors have a smaller weight than the steps to the closest neighbors, i.e., b < a. Therefore, we present not only a new approach but also some new results. We should also note here, that in 2D, the square grid and the diagonal square grid have the same structure, same number of neighbors, and so on. However, in 3D, the cubic and the BCC grids are two essentially different grids. The BCC grid is more compact than the cubic grid; both the number of closest neighbors and its packing density are larger than the corresponding values of the cubic grid.


## 4. Results and Discussion: The Linear Programming Model

Many problems of combinatorial optimization are actually linear programming problems. The shortest path problem in a finite graph has also its linear programming version. A grid can be represented by an infinite graph. Therefore, the linear programming model is different.The matrices of the steps of the diagonal square grid and the 3-dimensional BCC grid are given in the matrices shown in formulae (9) and (10), respectively.The matrix of the diagonal square grid is as follows:(9)20−2011−1−1020−21−11−1.The matrix of the BCC grid is as follows:(10)200−2001111−1−1−1−10200−2011−1−111−1−100200−21−11−11−11−1.It can be seen immediately that the matrix of the BCC grid is the generalization of the matrix of diagonal square grid to 3-dimension.It is supposed that the paths start at the origins and those go to the target points which are (p, q)T and (p, q, r)T, respectively. As the grids are highly symmetric, it is enough to investigate just a segment of the plane. Therefore, it is supposed that p > q > 0 and p > q > r > 0, respectively. All the components of the target points must be either even numbers or odd numbers. The lengths of the steps are positive numbers. The lengths of the vertical and horizontal steps are equal and are denoted by b. The lengths of the cross steps are equal, too, and it is denoted by a.


### 4.1. The Diagonal Square Grid

The optimization model in the case of the diagonal square grid is as follows:(11)minbx1+bx2+bx3+bx4+ax5+ax6+ax7+ax8,(12)2x1+0x2−2x3+0x4+x5+x6−x7−x8=p,(13)0x1+2x2+0x3−2x4+x5−x6+x7−x8=q,(14)x1,…,x8≥0,(15)x1,…,x8is integer.Models (11)–(15) areinteger programming models as (15) claims the integrality of the variables. First, the linear programming problem (11)–(14) is solved based on the theory of the simplex method. If the solution is not integer, then the Gomory method of integer programming is applied.There are 28 pairs of the columns of matrix (9). However, there are only six out of the 28 which give a feasible, i.e., nonnegative, solution of the equation system. According to the theory of linear programming, an optimal solution must be among these solutions. The optimal solution depends on the right-hand sides. Table 1 summarizes the six solutions. Instead of the columns, the variables are given.Table 1
The feasible bases of problem (11)–(14).
NumberBasic variablesSolutionThe value of the objective function1x1, x2x1=p/2,x2=q/2p+qb/22x1, x5x1=p−q/2,x5=qp−qb/2+qa3x1, x7x1=p+q/2,x7=qp+qb/2+qa4x2, x6x2=p+q/2,x6=pp+qb/2+pa5x4, x5x4=p−q/2,x5=pp−qb/2+pa6x5, x6x5=p+q/2,x6=p−q/2paThe only basis which may produce a fractional solution is basis 1. All other solutions are integer because the parities ofp and q are the same. It is easy to see that the objective function value of the solution of basis 2 is smaller than the objective function values of the solutions of bases 3, 4, and 5. Thus, only bases 1, 2, and 6 can be linearly optimal. If either basis 2 or basis 6 is linearly optimal, then it is the optimal solution of the integer programming problem, i.e., the optimal linear solution provided with the steps of the optimal path.The solution of basis 2 is better than the solution of basis 1 if and only if(16)p+qb2>p−qb2+qa.It is equivalent to(17)b>a.Similarly, the solution of basis 6 is better than the solution of basis 2 if and only if(18)p−qb2+qa>pa.It is equivalent to(19)b>2a.Another calculation shows that the solution of basis 6 is better than the solution of basis 1 if and only if(20)b>2pp+qa.The multiplier2p/p+q is between 1 and 2. Thus, when the solution of basis 6 is better than the solution of basis 2, it is already better than the solution of basis 1. The results can be summarized as follows.Theorem 1.
Assume thatp > q > 0 are integers such that either both of them are even or both of them are odd.(i)
If bothp and q are even and b < a, then the minimal path from the polygon of the origin to the target polygon (p, q) consists of p horizontal and q vertical steps.(ii)
Ifa < b < 2a, then the minimal path from the polygon of the origin to the target polygon (p, q) consists of p−q/2 horizontal steps and q steps which go at 45° to right and up.(iii)
Ifb > 2a, then the minimal path from the polygon of the origin to the target polygon (p, q) consists of p+q/2 steps which go at 45° to right and up and p−q/2 steps which go at 45° to right and down.The only case which is not discussed yet is whenb < a and both p and q are odd numbers. The starting point is the origin. Its coordinates are even numbers. Thus, at least one step must exists such that the parities of the coordinates change. It is equivalent to the inequality(21)x5+x6+x7+x8≥1.The first method of integer programming such that it could solve problems with unbounded integer variables was the Gomory method. It is still the most general method. It is a cutting plane method. It starts from the linear programming relaxation. If the optimal linear programming solution is not integer, then a cut is generated. It is called Gomory cut. It cuts the last linear programming optimal solution which is not integer. However, it does not cut any integer feasible solution. A new linear programming problem is generated in this way. It is solved by the lexicographic simplex method. Interestingly, the first Gomory cut is (21).The cut generation in this particular case is as follows. The simplex method works in a way such that the basic variables are expressed with the nonbasic variables. Ifx1 and x2 are the two basic variables, then the expression of x1 is obvious.(22)x1=p2−12x5−12x6+12x7+12x8.Collecting all terms which are integer to the left-hand side, the new form of the equation is(23)x1−p−12−x7−x8=12−12x5−12x6−12x7−12x8.The right-hand side must be integer. As every term with the exception of the constant are nonpositive on the right-hand side, the value of the right-hand side is a nonpositive integer implying that(24)12≤12x5+12x6+12x7+12x8.It is equivalent to (21).The lexicographic simplex method makes only one simplex iteration and immediately gets the integer optimal solution which is(25)x1=p−12,x2=q−12,x3=x4=0,x5=1,x6=x7=x8=0.After describing our method in detail in this 2D case, we are ready to go to 3D and discuss and apply it on the BCC grid to obtain our main and most important results.


### 4.2. The BCC Grid

The matrix of (10) must be used in the linear programming model of the BCC grid. Thus, there are 14 variables. The lengths of the horizontal and vertical steps are again b, and the lengths of the other steps are a. There are 17 bases which can give basic feasible solutions. These bases are shown on Figure 3. Table 2 summarizes the solutions.Figure 3
The feasible bases for BCC grid with their relation. Bases that can be optimal are marked with double frame. Black arrows show how one can shift from one basis to other by replacing a vector. Condition on the arrow shows when the change provides a better solution. Opposite condition implies that the change going opposite direction gives a better solution. For instance, from the basis (1, 2, 3), in case 3b > 2a, one gets a better solution by changing vector 3 to 7 obtaining basis (1, 2, 7). However, in case 3b < 2a, reverse direction changes, i.e., from basis (1, 2, 7) to (1, 2, 3) provides a better solution. Green arrows mean trivial conditions, e.g., a > 0; thus, these arrows can be used only in one direction and they always lead to a possible optimal basis. The orange lines show indifferent changes, i.e., the solutions of the related two basis are equivalent.Table 2
The feasible bases of the linear programming problem of the BCC grid.
NumberBasic variablesSolutionThe value of the objective function1x1, x2, x3x1=p/2,x2=q/2,x3=r/2p+q+rb/22x1, x2, x7x1=p−r/2,x2=q−r/2,x7=rp+q−2rb/2+ra3x1, x2, x9x1=p−r/2,x2=q+r/2,x9=rp+qb/2+ra4x1, x2, x11x1=p+r/2,x2=q−r/2,x11=rp+qb/2+ra5x1, x3, x8x1=p−q/2,x3=q+r/2,x8=qp+rb/2+qa6x1, x6, x7x1=p−q/2,x6=q−r/2,x7=qp−rb/2+qa7x1, x7, x8x1=p−q/2,x7=q+r/2,x8=q−r/2p−qb/2+qa8x1, x7, x12x1=p−r/2,x7=q+r/2,x12=q−r/2p−rb/2+qa9x1, x8, x11x1=p+r/2,x8=q−r/2,x11=q+r/2p+rb/2+qa10x2, x7, x10x2=q+r/2,x7=p+r/2,x10=p−r/2q−rb/2+pa11x2, x8, x9x2=q+r/2,x8=p−r/2,x9=p+r/2q+rb/2+pa12x3, x8, x9x3=q+r/2,x8=p+q/2,x9=p−q/2q+rb/2+pa13x6, x7, x10x6=q−r/2,x7=p+q/2,x10=p−q/2q−rb/2+pa14x7, x8, x9x7=q+r/2,x8=p−r/2,x9=p−q/2pa15x7, x8, x10x7=p+r/2,x8=q−r/2,x10=p−q/2pa16x7, x10, x12x7=p+q/2,x10=p−r/2,x12=q−r/2(p + q − r)a17x8, x9, x11x8=p+q/2,x9=p+r/2,x11=q+r/2(p + q + r)aIf the optimal solution belonging to basis 1 is not integer, then the Gomory cut is(26)1≤∑j=714xj.The first lexicographic simplex iteration again finds the optimal solution which is(27)x1=p−12,x2=q−12,x3=r−12,x7=1,x4=x5=x6=x8=⋯=x14=0.As it can be seen from Figure3, only five bases can be optimal. They are in the rows 1, 2, 7, 14, and 15 of Table 2. The order of steps of the minimal paths can be interchanged.Theorem 2.
If the steps are made according to the values of the variables, then the optimal paths of the BCC grid are as follows:(i)
If 3b < 2a and p, q, and r are even numbers, then the path consists ofp/2, q/2, and r/2 steps parallel to the three axis.(ii)
If 3b < 2a andp, q, and r are odd numbers, then the path consists of p−1/2, q−1/2, and r−1/2 steps parallel to the three axis and one step into the direction (1, 1, 1)T.(iii)
If 3b > 2a and b < a, then the path makesr steps of type (1, 1, 1)T and get to the (r, r, r)T point. It continues parallel with the first two axis.(iv)
If 2a > b > a, then the path goes first to the (p − q, 0, 0)T point with steps parallel to the first axis. Then, it continues by q+r/2 steps of type (1, 1, 1)T. Finally, it completes by q−r/2 steps of type (1, 1, −1)T.(v)
If b > 2a, then the path makesq+r/2 steps of type (1, 1, 1)T. It continues with p+r/2 steps of type (1, 1, −1)T. Finally, it completes by p−q/2 steps of type (1, −1, 1)T. An alternative solution exists. The path makes p+r/2 steps of type (1, 1, 1)T. It continues with q+r/2 steps of type (1, 1, −1)T. Finally, it completes by p−q/2 steps of type (1, −1, −1)T.Example 1.
Leta = 4, b = 3, and (p, q, r) = (5, 3, 1). It is the third case of Theorem 2. Then, the optimal basis is basis (1, 2, 7). In this case, x1 = 2, x2 = 1, x7 = 1, and the length of the minimal path is 13.Example 2.
Leta = 1, b = 3, and (p, q, r) = (5, 3, 1). It is the fifth case of Theorem 2. Then, the optimal basis is basis (7, 8, 9) or basis (7, 8, 10). In the case of the basis (7, 8, 9), the solution is x7 = 2, x8 = 2, and x9 = 1, and the length of the minimal path is 5. In the case of the basis (7, 8, 10), the solution is x7 = 3, x8 = 1, and x10 = 1, and the length of the minimal path is 5, too.
As we have proven, based on the respective ratio of the weight, the case can be easily determined, and direct formulae give the weighted distance. One may think that Dijkstra or other well-known shortest path algorithms from graph theory could be used, and it is true. However, their complexity is much worse, i.e., the time we need to get the result will be much longer. On the one hand, we cannot use the upper bound as the size of the graph since our grids are infinite. On the other hand, practically, of course only a finite segment of the grid could and will play role in shortest paths between two fixed points. However, the size of this segment is proportional to the third power of the largest coordinate difference of the points, which also implies a relatively large time complexity with respect to our approach. This means that the results presented in this paper give a more efficient way to determine weighted distances.


## 4.1. The Diagonal Square Grid

The optimization model in the case of the diagonal square grid is as follows:(11)minbx1+bx2+bx3+bx4+ax5+ax6+ax7+ax8,(12)2x1+0x2−2x3+0x4+x5+x6−x7−x8=p,(13)0x1+2x2+0x3−2x4+x5−x6+x7−x8=q,(14)x1,…,x8≥0,(15)x1,…,x8is integer.Models (11)–(15) areinteger programming models as (15) claims the integrality of the variables. First, the linear programming problem (11)–(14) is solved based on the theory of the simplex method. If the solution is not integer, then the Gomory method of integer programming is applied.There are 28 pairs of the columns of matrix (9). However, there are only six out of the 28 which give a feasible, i.e., nonnegative, solution of the equation system. According to the theory of linear programming, an optimal solution must be among these solutions. The optimal solution depends on the right-hand sides. Table 1 summarizes the six solutions. Instead of the columns, the variables are given.Table 1
The feasible bases of problem (11)–(14).
NumberBasic variablesSolutionThe value of the objective function1x1, x2x1=p/2,x2=q/2p+qb/22x1, x5x1=p−q/2,x5=qp−qb/2+qa3x1, x7x1=p+q/2,x7=qp+qb/2+qa4x2, x6x2=p+q/2,x6=pp+qb/2+pa5x4, x5x4=p−q/2,x5=pp−qb/2+pa6x5, x6x5=p+q/2,x6=p−q/2paThe only basis which may produce a fractional solution is basis 1. All other solutions are integer because the parities ofp and q are the same. It is easy to see that the objective function value of the solution of basis 2 is smaller than the objective function values of the solutions of bases 3, 4, and 5. Thus, only bases 1, 2, and 6 can be linearly optimal. If either basis 2 or basis 6 is linearly optimal, then it is the optimal solution of the integer programming problem, i.e., the optimal linear solution provided with the steps of the optimal path.The solution of basis 2 is better than the solution of basis 1 if and only if(16)p+qb2>p−qb2+qa.It is equivalent to(17)b>a.Similarly, the solution of basis 6 is better than the solution of basis 2 if and only if(18)p−qb2+qa>pa.It is equivalent to(19)b>2a.Another calculation shows that the solution of basis 6 is better than the solution of basis 1 if and only if(20)b>2pp+qa.The multiplier2p/p+q is between 1 and 2. Thus, when the solution of basis 6 is better than the solution of basis 2, it is already better than the solution of basis 1. The results can be summarized as follows.Theorem 1.
Assume thatp > q > 0 are integers such that either both of them are even or both of them are odd.(i)
If bothp and q are even and b < a, then the minimal path from the polygon of the origin to the target polygon (p, q) consists of p horizontal and q vertical steps.(ii)
Ifa < b < 2a, then the minimal path from the polygon of the origin to the target polygon (p, q) consists of p−q/2 horizontal steps and q steps which go at 45° to right and up.(iii)
Ifb > 2a, then the minimal path from the polygon of the origin to the target polygon (p, q) consists of p+q/2 steps which go at 45° to right and up and p−q/2 steps which go at 45° to right and down.The only case which is not discussed yet is whenb < a and both p and q are odd numbers. The starting point is the origin. Its coordinates are even numbers. Thus, at least one step must exists such that the parities of the coordinates change. It is equivalent to the inequality(21)x5+x6+x7+x8≥1.The first method of integer programming such that it could solve problems with unbounded integer variables was the Gomory method. It is still the most general method. It is a cutting plane method. It starts from the linear programming relaxation. If the optimal linear programming solution is not integer, then a cut is generated. It is called Gomory cut. It cuts the last linear programming optimal solution which is not integer. However, it does not cut any integer feasible solution. A new linear programming problem is generated in this way. It is solved by the lexicographic simplex method. Interestingly, the first Gomory cut is (21).The cut generation in this particular case is as follows. The simplex method works in a way such that the basic variables are expressed with the nonbasic variables. Ifx1 and x2 are the two basic variables, then the expression of x1 is obvious.(22)x1=p2−12x5−12x6+12x7+12x8.Collecting all terms which are integer to the left-hand side, the new form of the equation is(23)x1−p−12−x7−x8=12−12x5−12x6−12x7−12x8.The right-hand side must be integer. As every term with the exception of the constant are nonpositive on the right-hand side, the value of the right-hand side is a nonpositive integer implying that(24)12≤12x5+12x6+12x7+12x8.It is equivalent to (21).The lexicographic simplex method makes only one simplex iteration and immediately gets the integer optimal solution which is(25)x1=p−12,x2=q−12,x3=x4=0,x5=1,x6=x7=x8=0.After describing our method in detail in this 2D case, we are ready to go to 3D and discuss and apply it on the BCC grid to obtain our main and most important results.


## 4.2. The BCC Grid

The matrix of (10) must be used in the linear programming model of the BCC grid. Thus, there are 14 variables. The lengths of the horizontal and vertical steps are again b, and the lengths of the other steps are a. There are 17 bases which can give basic feasible solutions. These bases are shown on Figure 3. Table 2 summarizes the solutions.Figure 3
The feasible bases for BCC grid with their relation. Bases that can be optimal are marked with double frame. Black arrows show how one can shift from one basis to other by replacing a vector. Condition on the arrow shows when the change provides a better solution. Opposite condition implies that the change going opposite direction gives a better solution. For instance, from the basis (1, 2, 3), in case 3b > 2a, one gets a better solution by changing vector 3 to 7 obtaining basis (1, 2, 7). However, in case 3b < 2a, reverse direction changes, i.e., from basis (1, 2, 7) to (1, 2, 3) provides a better solution. Green arrows mean trivial conditions, e.g., a > 0; thus, these arrows can be used only in one direction and they always lead to a possible optimal basis. The orange lines show indifferent changes, i.e., the solutions of the related two basis are equivalent.Table 2
The feasible bases of the linear programming problem of the BCC grid.
NumberBasic variablesSolutionThe value of the objective function1x1, x2, x3x1=p/2,x2=q/2,x3=r/2p+q+rb/22x1, x2, x7x1=p−r/2,x2=q−r/2,x7=rp+q−2rb/2+ra3x1, x2, x9x1=p−r/2,x2=q+r/2,x9=rp+qb/2+ra4x1, x2, x11x1=p+r/2,x2=q−r/2,x11=rp+qb/2+ra5x1, x3, x8x1=p−q/2,x3=q+r/2,x8=qp+rb/2+qa6x1, x6, x7x1=p−q/2,x6=q−r/2,x7=qp−rb/2+qa7x1, x7, x8x1=p−q/2,x7=q+r/2,x8=q−r/2p−qb/2+qa8x1, x7, x12x1=p−r/2,x7=q+r/2,x12=q−r/2p−rb/2+qa9x1, x8, x11x1=p+r/2,x8=q−r/2,x11=q+r/2p+rb/2+qa10x2, x7, x10x2=q+r/2,x7=p+r/2,x10=p−r/2q−rb/2+pa11x2, x8, x9x2=q+r/2,x8=p−r/2,x9=p+r/2q+rb/2+pa12x3, x8, x9x3=q+r/2,x8=p+q/2,x9=p−q/2q+rb/2+pa13x6, x7, x10x6=q−r/2,x7=p+q/2,x10=p−q/2q−rb/2+pa14x7, x8, x9x7=q+r/2,x8=p−r/2,x9=p−q/2pa15x7, x8, x10x7=p+r/2,x8=q−r/2,x10=p−q/2pa16x7, x10, x12x7=p+q/2,x10=p−r/2,x12=q−r/2(p + q − r)a17x8, x9, x11x8=p+q/2,x9=p+r/2,x11=q+r/2(p + q + r)aIf the optimal solution belonging to basis 1 is not integer, then the Gomory cut is(26)1≤∑j=714xj.The first lexicographic simplex iteration again finds the optimal solution which is(27)x1=p−12,x2=q−12,x3=r−12,x7=1,x4=x5=x6=x8=⋯=x14=0.As it can be seen from Figure3, only five bases can be optimal. They are in the rows 1, 2, 7, 14, and 15 of Table 2. The order of steps of the minimal paths can be interchanged.Theorem 2.
If the steps are made according to the values of the variables, then the optimal paths of the BCC grid are as follows:(i)
If 3b < 2a and p, q, and r are even numbers, then the path consists ofp/2, q/2, and r/2 steps parallel to the three axis.(ii)
If 3b < 2a andp, q, and r are odd numbers, then the path consists of p−1/2, q−1/2, and r−1/2 steps parallel to the three axis and one step into the direction (1, 1, 1)T.(iii)
If 3b > 2a and b < a, then the path makesr steps of type (1, 1, 1)T and get to the (r, r, r)T point. It continues parallel with the first two axis.(iv)
If 2a > b > a, then the path goes first to the (p − q, 0, 0)T point with steps parallel to the first axis. Then, it continues by q+r/2 steps of type (1, 1, 1)T. Finally, it completes by q−r/2 steps of type (1, 1, −1)T.(v)
If b > 2a, then the path makesq+r/2 steps of type (1, 1, 1)T. It continues with p+r/2 steps of type (1, 1, −1)T. Finally, it completes by p−q/2 steps of type (1, −1, 1)T. An alternative solution exists. The path makes p+r/2 steps of type (1, 1, 1)T. It continues with q+r/2 steps of type (1, 1, −1)T. Finally, it completes by p−q/2 steps of type (1, −1, −1)T.Example 1.
Leta = 4, b = 3, and (p, q, r) = (5, 3, 1). It is the third case of Theorem 2. Then, the optimal basis is basis (1, 2, 7). In this case, x1 = 2, x2 = 1, x7 = 1, and the length of the minimal path is 13.Example 2.
Leta = 1, b = 3, and (p, q, r) = (5, 3, 1). It is the fifth case of Theorem 2. Then, the optimal basis is basis (7, 8, 9) or basis (7, 8, 10). In the case of the basis (7, 8, 9), the solution is x7 = 2, x8 = 2, and x9 = 1, and the length of the minimal path is 5. In the case of the basis (7, 8, 10), the solution is x7 = 3, x8 = 1, and x10 = 1, and the length of the minimal path is 5, too.
As we have proven, based on the respective ratio of the weight, the case can be easily determined, and direct formulae give the weighted distance. One may think that Dijkstra or other well-known shortest path algorithms from graph theory could be used, and it is true. However, their complexity is much worse, i.e., the time we need to get the result will be much longer. On the one hand, we cannot use the upper bound as the size of the graph since our grids are infinite. On the other hand, practically, of course only a finite segment of the grid could and will play role in shortest paths between two fixed points. However, the size of this segment is proportional to the third power of the largest coordinate difference of the points, which also implies a relatively large time complexity with respect to our approach. This means that the results presented in this paper give a more efficient way to determine weighted distances.


## 5. Conclusions

In this paper, it is shown that linear programming gives an efficient tool to find optimal solutions in some digital geometry problems. Chamfer distances on the square grid and on the BCC grid are studied. The BCC grid plays importance in solid state physics, crystallography, and material science since it describes the structure of the atoms/ions in various materials. This structure is more compact than the simple cubic structure and has various advantages also in engineering applications. The distances we have computed are based on weighted paths among the grid points. These distances are useful in various applications (e.g., 2D and 3D image processing) since they could provide relatively good approximations of the Euclidean distance, but since they are step-based, efficient incremental algorithms, e.g., distance transform [37] can easily be adapted. Feasible and optimal bases are found for various cases of the used weights. We have also studied the case when the second closest neighbors can be reached by a smaller weighted step than the closest neighbors (up to our knowledge this has not been done before on the BCC grid). The structure of all optimal paths is explicitly given. Moreover, one needs to check only the respective ratio of the weights and then can easily choose the case, thus, an optimal path and the chamfer distance.We believe that our method can easily be applied for other similar grids, similarly as we also used in the second part of the paper, wheren-dimensional generalizations of the BCC are considered [38].



---

*Source: 5582034-2021-04-22.xml*