An algorithm for generating a family of alternating knots (which are described by means of a chain code) is presented. The family of alternating knots is represented on the cubic lattice, that is, each alternating knot is composed of constant orthogonal straight-line segments and is described by means of a chain code. This chain code is represented by a numerical string of finite length over a finite alphabet, allowing the usage of formal-language techniques for alternating-knot representation. When an alternating knot is described by a chain, it is possible to obtain its mirroring image in an easy way. Also, we have a compression efficiency for representing alternating knots, because chain codes preserve information and allow a considerable data reduction.

In 1993, Livingston [

Several authors have analyzed knots on the cubic lattice. In 1993, Diao presented the minimal knotted polygons on the cubic lattice [

An example of a complex knot: its continuous and discrete version, respectively.

This paper is organized as follows: Section

The alternating link diagrams of the type illustrated in Figure

An alternating link diagram composed of a set of rectilinear polygons with vertices on the 2-dimensional integer lattice. The polygons are bounded by an axis-aligned square,

Let

The

Let

Now, let

Now, to count the number of polygons in

We can see Figure

The graph

From (

Next, we will define a link

(a) A link for the alternating link diagram shown in Figure

The link

The section

(a) Chain code for a section of a link. To calculate

Let

The proof goes by induction on the position of

Now, suppose by induction that a section

Let

The following program, written in

For example, section(1,8) evaluates to “40012042042042042042042”. The next function calculates the chain code for

In order to probe our proposed method, we present some examples of alternating-knot generation. Figure

An example of an alternating knot of

The chain of the alternating knot shown in Figure

400120420420420420420420420420420420420420420420420420420420423001204230

012042042042042042042042042042042042042042042042042042300120420420423001

204204204204204204204204204204204204204204204230012042042042042042300120

420420420420420420420420420420420420423001204204204204204204204230012042

042042042042042042042042042042300120420420420420420420420420423001204204

204204204204204204204230012042042042042042042042042042042042300120420420

420420420420423001204204204204204204204204204204204204204230012042042042

042042300120420420420420420420420420420420420420420420423001204204204230

012042042042042042042042042042042042042042042042042042300120423001204204

204204204204204204204204204204204204204204204204204230400120420420420420

420420420420420420420420420420420420420420420423040012042042042042042042

042042042042042042042042042042042042042300120423001204204204204204204204

204204204204204204204204204204230012042042042300120420420420420420420420

420420420420420420420423001204204204204204230012042042042042042042042042

042042042042042300120420420420420420420423001204204204204204204204204204

204204230012042042042042042042042042042300120420420420420420420420420423

001204204204204204204204204204204204230012042042042042042042042300120420

420420420420420420420420420420420423001204204204204204230012042042042042

042042042042042042042042042042042300120420420423001204204204204204204204

204204204204204204204204204204230012042300120420420420420420420420420420

420420420420420420420420420423040012042042042042042042042042042042042042

04204204204204204204204230.

If we replace the chain elements 1 by the chain elements 3 and vice versa in the above-mentioned chain, we obtain the mirroring image [

Figure

An example of an alternating knot of

We have presented a modest attempt for generating alternating knots which are represented by means of chain coding. The chain-code representation of alternating knots preserves information and allows a considerable data reduction. Also, the mirror images of alternating knots are obtained in an easy way.

In order to have a self-contained paper, we summarize the main concepts and definitions of the used chain code. In the content of this paper, we use this chain code to represent complex knots.

A

A

The chain elements for a discrete knot are obtained by calculating the relative orthogonal direction changes of the contiguous constant straight-line segments along the knot. There are only five possible orthogonal direction changes [

An example of a complex knot.

An element

In order to improve the understanding of the chain elements, we have colored the straight-line segments which are defined by their corresponding chain elements. Thus, the straight-line segment defined by the chain element 0 in green, 1 in cyan, 2 in yellow, 3 in magenta, and 4 in red, respectively. This is valid for the web version of the paper; however, the gray-level version of the paper also allows us to understand the above-mentioned notation. Formally, if the consecutive sides of the reference angle have respective directions

Thus, the procedure to find the chain of a discrete knot is as follows.

The main characteristics of this chain code are as follows.

It is invariant under translation and rotation. This is due to the fact that only relative orthogonal direction changes are used.

In this code, there are only five possible orthogonal direction changes for representing any discrete knot, this produces a numerical string of finite length over a finite alphabet, allowing the usage of grammatical techniques for complex-knot generation.

Using this code, it is possible to obtain the

A complete review of the above-mentioned code can be found in [

Here is the function

The functions

The authors wish to express their gratitude to Guillermo Rojas for his help in generating patterns of alternating knots.