<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Method of formation shift indexes vector by minimization of polynomials</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>National Technical University of Ukraine “Igor Sikorsky Kyiv Polytechnic Institute”</institution>
          ,
          <addr-line>Kyiv</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>State University of Telecommunications</institution>
          ,
          <addr-line>Kyiv</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <fpage>259</fpage>
      <lpage>269</lpage>
      <abstract>
        <p>In this article, the 2 methods of formation shift indexes vector of the ring code are proposed. This article presents the matrix of the ring code in the form of binary elements (0,1) and in the form of polynomials, which consist of the sum of the arguments x of a certain category corresponding to the binary value of 1 code sequences of the ring code. With these two methods, shift indexes vectors are created using an example of a ring code of 7 × 7, each row containing 4 units and 3 zeros. The first method makes it possible to form VPS by implementing logical transformations (XOR, OR, or AND) over the binary elements of the generating matrix of the ring code. The second method makes it possible to form VPS by implementing logical transformations (XOR, OR, or AND) over the arguments x of a certain category corresponding to the binary value of 1 code sequences of the ring code. According to the proposed second method, as a result of the logical transformations of the XOR, OR, or AND arguments of polynomials of the matrix G, similar shift indexes vectors were formed. The first method allows developing an algorithm and implementing a program implementation of the formation shift indexes vector. The second method is more visual, by means of which you can mathematically describe the sequence of the formation shift indexes vector of the ring code.</p>
      </abstract>
      <kwd-group>
        <kwd>matrix of ring code</kwd>
        <kwd>polynomial</kwd>
        <kwd>logical transformations of the XOR</kwd>
        <kwd>OR</kwd>
        <kwd>or AND arguments</kwd>
        <kwd>shift indexes vector</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        The ring code is constructed on the principle of block-cyclic codes [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], the rows of the
forming matrices of which are linked by the condition of cyclicity.
      </p>
      <p>
        Cyclic codes have been widely used due to their efficiency in detecting and
correcting errors [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ].
      </p>
      <p>Cyclic codes are a subset of linear block codes. Linear (n, k) - Code C is called
cyclic if the cyclic shift of any word c is also a word of that code. The cyclic shift of
the code word с=(с0, с1,… сn-1) corresponds to the shift of all elements of the word
Copyright © 2019 for this paper by its authors. Use permitted under Creative Commons License
Attribution 4.0 International (CC BY 4.0).
one position to the right, resulting in a code word с(1)= (сn-1, с0, с1,… сn-2). As a result
of the i- multiple shift, we get the code word с(i)= (сn-i,…, сn-1, с0, с1,… сn-i-1).</p>
      <p>The schematics of the encoding and decoding devices for these codes are
extremely simple and are based on conventional shift registers. An example of a
feedback register is shown in fig. 1.</p>
      <p>The initial state of the register
0
С
1
С
С
…</p>
      <p>С
n-3</p>
      <p>С
n-2</p>
      <p>С
n-1
Register state after shifting items 1 position to the right
С
n-1
1
С
С
…</p>
      <p>С
n-4</p>
      <p>С
n-3</p>
      <p>С
n-2
2</p>
      <p>0</p>
      <p>It is convenient to consider cyclic codes by presenting a combination of binary code
not as sequences of zeros and ones, but as a polynomial from a dummy variable х.</p>
      <p>The code word с=(с0, с1,…сn-1) can be represented as the following
polynomial:
с(х) = с0х0 + с1х1 +…+ сn-1хn-1 = с0 + с1х +…+ сn-1хn-1
(1)</p>
      <p>Where сi – are the numbers of the given system of calculus (in binary system 0
and 1).</p>
      <p>The above comparison of code words and polynomials is unambiguous: each
word corresponds to a polynomial and each polynomial corresponds to a word that is
determined by the coefficients of that polynomial.</p>
      <p>
        If с=(с0, с1,… сn-1) is a code word belonging to code С, then the corresponding
polynomial c (x) is also called a code word С [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ].
      </p>
      <p>According to the definition of the cyclic code for constructing the forming
matrix  n, k it is sufficient to select only one initial n-degree combination Ci(х). A
cyclic shift can produce (п - 1) different combinations, of which any k combinations
can be taken as starting points By summing the rows of the forming matrix in all
possible combinations, other code combinations can be obtained.</p>
      <p>
        Thus, the cyclic (n, k) - code is a set of polynomials forming a k-dimensional
linear subspace of the space of all polynomials of degree n-1 closed with respect to
the cyclic shift operation [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>
        The cyclic shift of the combination with the unit in the higher n-th digit is
identical to the multiplication of the corresponding polynomial by x with the
simultaneous subtraction from the result of the polynomial (хn- 1) or (хn + 1), since the
operations are performed by module two. According to [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], the code combination of
the cyclic (п, k)- code can be obtained in two ways:
      </p>
      <p>1) by multiplying a simple code combination of degree (k - 1) by the monomial
xn-k and adding to this multiplication the residue obtained from dividing the resulting
multiplication by the polynomial Р(х) of degree (п - k),</p>
      <p>2) by multiplying a simple code combination of degree (k - 1) by the forming
polynomial Р(х) of degree (п – k).</p>
      <p>According to the first encoding method, the first k symbols of the resulting code
combination match the corresponding symbols of the original simple code
combination.</p>
      <p>According to the second method, in the code combination obtained, the
information symbols do not always coincide with the symbols of the original simple
combination. This method is easy to implement, but because the resulting code
combinations do not contain information symbols in explicit form, it complicates the
decoding process.</p>
      <p>In practice, the first method of obtaining a cyclic code is usually used.</p>
      <p>The cyclic code can be represented as a formative matrix  , , which consists of
two submatrices: information  and additional  :
 , = 
, 
(2)</p>
      <p>
        Information submatrix Uk, is a square unit matrix with the number of rows and
columns equal to k. The additional sub-matrix Нр contains р = п - k columns and
k rows and is formed by residues R(х)[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>The forming matrix allows k code combinations to be obtained. Other
combinations are formed by summing the modulus of two rows of the forming matrix
in all possible combinations.</p>
      <p>The forming matrix Pn,k can also be formed by multiplying the forming
polynomial Р(х) of degree  = n - k by the monomial xk-1 of the following
k-1 shifts of the resulting combination. The number of rows and columns in the
formative matrix may be arbitrary.</p>
      <p>
        The forming matrix of ring code unlike the cyclic code is always a square matrix
of size N × N, each row of which contains m units and, accordingly, N – m zeros.
Each row of the forming matrix of cyclic code has the same number of elements and
the same structure of unitary and null character combinations. The first row of the
forming matrix of cyclic code is called the initial vector, or the initial sequence, and
the last row is the final vector of the cyclic shift of the code sequence elements. In this
case, the rows of the matrix seem to form a ring of a complete cycle of shift of
elements of code sequences [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>An example of a matrix representation of a ring code
For example is a ring code, the shift of elements of the code sequences, which is
carried out, from right to left, with the leftmost symbol being transferred to the right
at the end of the code sequence each time. Below are the forming of ring code
matrices that contain elements of code sequences in a binary number system. The
forming matrix G has a size of 7 × 7</p>
      <p>and contains 4 units and 3 zeros, and the
forming matrix P has a size of 9 х 9 P contains 4 units and 5 zeros. The first rows of
the forming matrices are called the initial sequence.
(3)
(4)
(5)
⎢⎢0101101⎥⎥
⎢0110101⎥
⎢1101010⎥
⎣1010101⎦
010010011
⎡100100110⎤
⎢⎢001001101⎥⎥
⎢010011010⎥
⎢001101001⎥
⎢011010010⎥
⎢110100100⎥
⎣101001001⎦
⎣




+
+
+
+
+
+
+ 
+
+
+
+
+
+
+ 
+
+
+
+
+
+
+  ⎦
⎤
⎥
⎥
⎥
⎥
⎥
The above forming matrices can also be represented in the form of polynomials that
correspond to the code sequences represented in the binary number system and where
x – is an argument of a particular digit corresponding to the binary value of 1 ring
code. The structure of the code sequences of the forming matrix 
corresponds to the
structure of the code sequences in the binary number system the forming matrix  , the
structure of the code sequences of the forming matrix 
structure of the code sequences in the binary number system the forming matrix:
corresponds to the

(6)
Analysis of the structure of the polynomials of the 
and 
forming
matrices indicates that the number of polynomials in the forming matrices depends on
the number of elements in the code sequence, and, accordingly, on the number of
code sequences. At that time, the number of members in each polynomial depends
only on the number of units in the code sequence and does not depend on the number
of elements in the code sequence.</p>
      <p>Using the above matrices, we form the shift indexes vectors of the ring code
by performing the binary transformations of XOR, AND and OR over the binary
arguments of the polynomials of the matrices 
elements of the code sequences of the matrices 
and  .</p>
      <p>and  , as well as over the
of the code sequences, is performed.
the shift indexes matrix.
3</p>
      <p>The
method
of formation
of shift indexes
vector
by
performing logical transformations over the binary elements of the
matrices  and 
The shift indexes vector is the sequence of decimal numbers formed by summing the
number of units resulting from
the implementation
of one
of the
binary
transformations XOR, AND, OR (with or without negation) of the elements of the
initial</p>
      <p>sequence (first line) of the ring code and the rest of its lines.</p>
      <p>
        According to [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] the shift indexes vector (hereinafter referred to as SIV) is formed
in three stages:
1) Alternatively, the binary logical transformation of XOR, OR, AND elements of the
first line and the next rows of the matrix of the ring code, placed at the same positions
2) The binary elements (0, 1), resulting from the logical transformation are written to
SIV.
      </p>
      <p>AND.
3) The number of units is calculated in each row of the resulting shift
indexes
matrix (hereinafter referred to as the SIM). In doing so, the SIM is transformed into</p>
    </sec>
    <sec id="sec-2">
      <title>Line number ring code</title>
    </sec>
    <sec id="sec-3">
      <title>Line</title>
      <p>number
ring code
Line
number
ring code
1
2
3
4
5
6
7
1
2
3
4
5
6
7
4 The method of forming a shift indexes vector by making
logical transformations over the arguments of polynomials of the
matrix 
Formation of the SIV by making logical transformations over the arguments of
polynomials is carried out as follows:
1) Alternately the binary logical transformation XOR, OR, or AND of the arguments
of the first polynomial and subsequent polynomials of the ring code  matrix is
performed.
2) Depending on the type of logical transformation (XOR, OR or AND) the following
steps are performed:
а) For logical XOR transformation:
- paired arguments of the generated polynomial with identical digits are deleted;
- counts the number of arguments left after deletion paired arguments with equal
digits;
b) For logical AND transformation:
- remove the odd arguments of the polynomial;
- paired arguments with equal digits are absorbed by one argument;
- counts the number of arguments left after deletion and absorbing arguments;
c) For OR logical transformation:
- paired arguments with equal digits are absorbed by one argument;
- counts the number of arguments left after the arguments are absorbed.</p>
      <p>Tables 7 - 9 show the sequence of transformations of ring code a 9 × 9, each row
containing 4 units and 5 zeros by performing logical transformations over the
arguments of the polynomials of the forming matrix  .
1
2
3
4
5
6
7
1
2
3
4
5
6</p>
    </sec>
    <sec id="sec-4">
      <title>Line number RC 1</title>
      <p>2
3
4
5
6
7</p>
      <p>The
ring
code matrix
As noted above, polynomials of the forming matrices  and  consist of arguments
whose degrees correspond to the degrees of the binary elements of the code sequences
of the forming matrices  and  of the ring code. The analysis of the above tables
indicates that the algorithm for converting the ring code represented in the form of
polynomials is similar to the algorithm for converting the ring code represented as
binary elements.
5</p>
      <p>Conclusions
1. The ring code can be represented in the form of a matrix, each line of which is a
polynomial with arguments of a certain digit corresponding to the binary value of 1
ring code.
2. The shift indexes vector can be formed by two methods:
- by making logical transformations (XOR, OR or AND) over the binary elements of
the ring matrix-forming matrix;
- by performing logical transformations (XOR, OR or AND) over the arguments of
the forming matrix of polynomials.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>D.</given-names>
            <surname>Augot</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Betti</surname>
          </string-name>
          ,
          <string-name>
            <surname>E. Orsini.:</surname>
          </string-name>
          <article-title>An introduction to linear and cyclic codes</article-title>
          .
          <source>Journal of Symbolic Computation</source>
          ,
          <fpage>47</fpage>
          -
          <lpage>68</lpage>
          (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>L. M. J.</given-names>
            <surname>Bazzi</surname>
          </string-name>
          and
          <string-name>
            <given-names>S. K.</given-names>
            <surname>Mitter</surname>
          </string-name>
          .:
          <article-title>Some randomized code constructions from group actions</article-title>
          .
          <source>IEEE Trans. on In. Theory</source>
          , vol.
          <volume>52</volume>
          , pp.
          <fpage>3210</fpage>
          -
          <lpage>3219</lpage>
          (
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>J.</given-names>
            <surname>Yuan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ding</surname>
          </string-name>
          , Senior Member.
          <article-title>: IEEE Secret Sharing Schemes from Three Classes of Linear Codes</article-title>
          ,
          <source>IEEE Trans. on Inf. Theory</source>
          ,
          <volume>52</volume>
          (
          <issue>1</issue>
          ),
          <fpage>206</fpage>
          -
          <lpage>212</lpage>
          (
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>A.</given-names>
            <surname>Vardy</surname>
          </string-name>
          .:
          <article-title>Algorithmic complexity in coding theory and the minimum distance problem</article-title>
          ,
          <source>STOC '97: Proceedings of the twenty-ninth annual ACM symposium on Theory of Computing</source>
          , pp.
          <fpage>92</fpage>
          -
          <lpage>109</lpage>
          (
          <year>1997</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>A.</given-names>
            <surname>Ashikmin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Barg</surname>
          </string-name>
          .:
          <article-title>Minimal vectors in linear codes</article-title>
          ,
          <source>IEEE Transactions on Information Theory</source>
          <volume>44</volume>
          (
          <issue>5</issue>
          ) (
          <year>1998</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>G.</given-names>
            <surname>Castagnoli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. L.</given-names>
            <surname>Massey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. A.</given-names>
            <surname>Schoeller</surname>
          </string-name>
          , and N. von Seeman.:
          <article-title>On repeated root cyclic codes</article-title>
          ,
          <source>IEEE Trans. on Inf. Theory</source>
          , vol.
          <volume>37</volume>
          , pp.
          <fpage>337</fpage>
          -
          <lpage>342</lpage>
          (
          <year>1991</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Gavrilko</surname>
            <given-names>E.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Otrokh</surname>
            <given-names>S.I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yarosh</surname>
            <given-names>V.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grishchenko</surname>
            <given-names>L.N.</given-names>
          </string-name>
          :
          <article-title>Improving the quality of the functioning of the network of the future through the use of ring codes</article-title>
          .
          <source>Vesnik svyazi (2)</source>
          ,
          <fpage>60</fpage>
          -
          <lpage>64</lpage>
          (in Russian) (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>S.</given-names>
            <surname>Otrokh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Kuzminykh</surname>
          </string-name>
          ,
          <string-name>
            <surname>O. Hryshchenko.</surname>
          </string-name>
          :
          <article-title>Method of forming the ring codes</article-title>
          .
          <source>CEUR Workshop Proceedings</source>
          , vol.
          <volume>2318</volume>
          , pp.
          <fpage>188</fpage>
          -
          <lpage>198</lpage>
          (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>