Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

Big data collection and analysis for manufacturing organisations

  • Published: 01 April 2017
  • 00B10

  • Data mining applications are becoming increasingly important for the wide range of manufacturing and maintenance processes. During daily operations, large amounts of data are generated. This large volume and variety of data, arriving at a greater velocity has its own advantages and disadvantages. On the negative side, the abundance of data often impedes the ability to extract useful knowledge. In addition, the large amounts of data stored in often unconnected databases make it impractical to manually analyse for valuable decision-making information. However, an advent of new generation big data analytical tools has started to provide large scale benefits for the organizations. The paper examines the possible data inputs from machines, people and organizations that can be analysed for maintenance. Further, the role of big data within maintenance is explained and how, if not managed correctly, big data can create problems rather than provide solutions. The paper highlights the need to have advanced mining techniques to enable conversion of data into information in an acceptable time frame and to have modern analytical tools to extract value from the big datasets.

    Citation: Pankaj Sharma, David Baglee, Jaime Campos, Erkki Jantunen. Big data collection and analysis for manufacturing organisations[J]. Big Data and Information Analytics, 2017, 2(2): 127-139. doi: 10.3934/bdia.2017002

    Related Papers:

    [1] Adel Alahmadi, Altaf Alshuhail, Patrick Solé . The mass formula for self-orthogonal and self-dual codes over a non-unitary commutative ring. AIMS Mathematics, 2023, 8(10): 24367-24378. doi: 10.3934/math.20231242
    [2] Adel Alahmadi, Asmaa Melaibari, Patrick Solé . Quasi self-dual codes over non-unital rings from three-class association schemes. AIMS Mathematics, 2023, 8(10): 22731-22757. doi: 10.3934/math.20231158
    [3] Ted Hurley . Ultimate linear block and convolutional codes. AIMS Mathematics, 2025, 10(4): 8398-8421. doi: 10.3934/math.2025387
    [4] Doris Dumičić Danilović, Andrea Švob . On Hadamard 2-(51,25,12) and 2-(59,29,14) designs. AIMS Mathematics, 2024, 9(8): 23047-23059. doi: 10.3934/math.20241120
    [5] Guoqing Wang . Lower bound for the Erdős-Burgess constant of finite commutative rings. AIMS Mathematics, 2020, 5(5): 4424-4431. doi: 10.3934/math.2020282
    [6] Ismail Aydogdu . On double cyclic codes over Z2+uZ2. AIMS Mathematics, 2024, 9(5): 11076-11091. doi: 10.3934/math.2024543
    [7] Jie Liu, Xiying Zheng . Equivalence of constacyclic codes over finite non-chain ring and quantum codes. AIMS Mathematics, 2025, 10(7): 15193-15205. doi: 10.3934/math.2025681
    [8] Fatma Zehra Uzekmek, Elif Segah Oztas, Mehmet Ozen . (θi,λ)-constacyclic codes and DNA codes over Z4+uZ4+u2Z4. AIMS Mathematics, 2024, 9(10): 27908-27929. doi: 10.3934/math.20241355
    [9] Sami Alabiad, Yousef Alkhamees . On classification of finite commutative chain rings. AIMS Mathematics, 2022, 7(2): 1742-1757. doi: 10.3934/math.2022100
    [10] Chaofeng Guan, Ruihu Li, Hao Song, Liangdong Lu, Husheng Li . Ternary quantum codes constructed from extremal self-dual codes and self-orthogonal codes. AIMS Mathematics, 2022, 7(4): 6516-6534. doi: 10.3934/math.2022363
  • Data mining applications are becoming increasingly important for the wide range of manufacturing and maintenance processes. During daily operations, large amounts of data are generated. This large volume and variety of data, arriving at a greater velocity has its own advantages and disadvantages. On the negative side, the abundance of data often impedes the ability to extract useful knowledge. In addition, the large amounts of data stored in often unconnected databases make it impractical to manually analyse for valuable decision-making information. However, an advent of new generation big data analytical tools has started to provide large scale benefits for the organizations. The paper examines the possible data inputs from machines, people and organizations that can be analysed for maintenance. Further, the role of big data within maintenance is explained and how, if not managed correctly, big data can create problems rather than provide solutions. The paper highlights the need to have advanced mining techniques to enable conversion of data into information in an acceptable time frame and to have modern analytical tools to extract value from the big datasets.



    Historically, the classification of self-dual codes over unitary rings and finite fields has rested on two pillars: an algorithm to generate short length codes, and a mass formula to signal the completion of the classification [7,15]. While the pionneers (Conway, Pless Sloane, and so on), were using various ad hoc methods like glueing theory to generate short codes [17], in recent years the build up method emerged as a systematic generation method [10,13,14]. By using a recursion on generator matrices, from a self-dual code of length n, it creates a self-dual code of length n+h (with h small and fixed). This is sometimes called a propagation rule of order h. For concreteness, one may take h=2 for binary codes [6] and codes over a certain ring of order 4 [12], and h=4 for ternary codes [13]. In [5], this technique was applied to a commutative non-unital ring with success.

    In this paper, we initiate the study of self-dual codes over the ring E3, defined on two generators a,b by the relations

    E3=a,b| 3a=3b=0, a2=a, b2=b, ab=a, ba=b.

    This ring is a non-unital, non commutative ring of order 9. This notation is consistent with the classification of rings of order p2 for p, a prime of [9]. While the use of finite fields as alphabets in Coding Theory dates back to its inception in the 1940's, and the use of finite rings from the 1980's, it is only in recent years that non-unitary rings have been used as alphabets at the cost of theoretical hurdles [1,2,3,4].

    We will use a definition of self-dual codes for non-commutative rings introduced in [2]. This new notion of self-dual codes coincides with that of QSD codes for that special ring. Also of interest are left self-dual (LSD) and right self-dual (RSD) codes, in agreement with the non-commutativity of the alphabet ring. In particular, we modify the propagation rules of [1] to produce self-orthogonal and self-dual codes, as well as one-sided self-dual codes. As an application, we classify the three types of codes considered in lengths at most 7. We derive mass formulas for the these three types that guarantee that the classification is complete.

    The material is arranged as follows. The next section contains the preliminary notions and notations needed in the later sections. Section 3 derives building-up constructions for the three classes of codes mentioned. Section 4 applies these propagation rules to concrete classifications in short lengths. Section 5 concludes the article.

    Let Fn3 represent the vector space of n-tuples over the 3-element field F3. A ternary linear code C of length n and dimension k, denoted shortly as an [n,k]3 code, is a k-dimensional subspace of Fn3.

    The number of nonzero coordinates of a vector xFn3 is called its Hamming weight wt(x). The Hamming distance d(x,y) between two vectors x,yFn3 is defined by d(x,y)=wt(xy). The minimum distance of a linear code C is

    d(C)=min{d(x,y)|x,yC,xy}=min{wt(c)|cC,c0}

    A 3-ary linear code of length n, dimension k, and minimum distance d is said to be an [n,k,d]3 code.

    Following [9], we define the ring E3 of order 9 on two generators a and b by the relations:

    E3=a,b| 3a=3b=0, a2=a, b2=b, ab=a, ba=b.

    Thus, E3 has characteristic three, and consists of nine elements

    E3={0,a,b,c,d,e,f,g,h},

    where

    c=a+b, d=2b, e=2a,f=e+b, g=a+d,  and h=d+e.

    These definitions immediately lead to the addition and the multiplication tables given as follow.

    Table 1.  Addition and multiplication tables for E3.

     | Show Table
    DownLoad: CSV

    We may deduce from the multiplication table that this ring is non-commutative without identity and has unique maximal ideal J3={0,f,g=2f} with residue field E3/J3F3.

    As a result, we have the following f-adic decomposition. It can be checked by inspection that any element iE3 can be expressed as i=ax+fy, for unique scalars x,yF3. We have defined a natural action of F3 on the ring E3 by the rule

    r0=0r=0,r1=1r=r,and r2=r+r=2r for all rE3.

    Note that, for all rE3, x,yF3, this action is "distributive" in the sense that r(xy)=rx+ry, where denote the addition in F3. When xFn3, and rEn3, we will occasionally use the inner product notation (x,r) to indicate

    (x,r)=x1r1++xnrn.

    We define the reduction map modulo S as π:E3E3/J3F3 by

    π(0)=π(f)=π(g)=0,
    π(a)=π(b)=π(h)=1,
    π(e)=π(d)=π(c)=2.

    This map is extended in the natural way in a map from En3 to Fn3.

    A linear E3-code C of length n is a one-sided E3-submodule of En3. It may be thought of as the E3-span of the rows of a matrix called a generator matrix (we assume that these rows belong to C). There are two ternary codes of length n associated with the code C. The residue code res(C) is just π(C), and the torsion code tor(C) is {xFn3| fxC}. It is easy to verify that res(C)tor(C) [3]. We denote the dimension of the residue code by k1, and the dimension of the torsion code by k1+k2. Such a code C is of type {k1,k2}. A straightforward application of the first isomorphism theorem [3] shows that

    |C|=|res(C)||tor(C)|=32k1+k2.

    By a result similar to [3, Theorem 1], we can show that every code C over E3 of length n and type {k1,k2} is equivalent to a code with a generator matrix

    [aIk1aXY0fIk2fZ],

    where Y is a matrix with entries in E3, X and Z are matrices with entries from F3, and Ik1, Ik2 are identity matrices.

    In fact, generator matrices of res(C) and tor(C) are given by

    [Ik1Xπ(Y)] and [Ik1Xπ(Y)0Ik2Z],

    respectively.

    Define the inner product of x and y in En3 as (x,y)=x1y1+x2y2++xnyn, where x=(x1,x2,,xn) and y=(y1,y2,,yn).

    The left dual code CL of a code C is the module defined as

    CL={yEn3 | xC , (y,x)=0}.

    The right dual code CR of a code C is the module defined as:

    CR={yEn3 | xC , (x,y)=0}.

    Thus, the left (respectively, right) dual of a left (respectively, right) module is a left (respectively, right) module.

    A left self-dual code C satisfies C=CL. Likewise, a right self-dual code C satisfies C=CR.

    The two-sided dual of C, denoted by C, is given by C=CLCR. We say that a code C is self-dual (SD) iff C=CLCR. A code C is self-orthogonal (SO) if for all x,yC, (x,y)=0.

    Clearly, C is a self-orthogonal code C, iff CCLCR.

    Two E3-codes are monomially equivalent if there is a monomial transformation of coordinates that maps one to the other. Here a monomial transformation is a matrix with entries in F3 and with exactly one element per row and per column. The parameters (n,3k,d) of an E3-code are identified with that of its image by ϕ, defined in the next subsection.

    An additive code C of length n over F9 is an additive subgroup of Fn9. Thus, C contains 3k codewords for some integer 0k2n, and is called an (n,3k) code. If, furthermore, C has minimum distance d, we write the parameters of C as (n,3k,d). An additive code C over F9 can be represented by a k×n generator matrix with entries from F9 whose rows span C, called a generator matrix. That is, C is the F3-span of its rows.

    Let ωF9 be such that ω2=ω+1. Since the polynomial t2t1 is irreducible over F3, we can write F9=F3[ω]. The trace map, Tr:F9F3, is defined as Tr(x)=x+x3.

    Every linear E3-code C is attached with an additive F9-code ϕ(C) by the alphabet substitution

    00,  a2,  bω,
    c2+ω,  d2ω,  e1,
    fω+1,  g2(ω+1),  h1+2ω,

    extended naturally to Fn9. The parameters (n,3k,d) of an E3-code are identified with that of its image under ϕ. It can be checked that, for all xEn3, we have Tr(ϕ(x))=π(x), and thus res(C)=Tr(ϕ(C)).

    Similarly, we see that tor(C) is the so-called subfield subcode of ϕ(C), that is Fn3ϕ(C).

    We recall from [17] that the weight enumerator of any linear or additive code C of length n is the polynomial

    WC(x,y)=xn+ni=1Aixniyi

    where the sequence A1,......,An is the weight distribution of C. That is, Ai is the number of codewords in C of weight i.

    Lemma 1. If C is a linear code of length n over E3 with weight enumerator WC(x,y), then the weight enumerator of the dual code C is given by

    WC=3nWC(x+8y,xy).

    In particular, the weight enumerator of a self-dual code is invariant under the matrix group generated by 13(1811).

    Proof. The first statement, analogous to the MacWilliams identity for linear codes over Fq, follows from the general theory [17, Theorem 13], since our trace inner product ϕ(C) is an (n,32k1+k2) additive code over F9 with

    WC(x,y)=Wϕ(C)(x,y).

    The second statement follows from the first, by noticing that, for a self-dual code, we have WC=WC.

    Let φn,k denote the number of distinct self-orthogonal ternary codes having parameters [n,k1] (see [15, Theorem 4.7]. We define the Gaussian coefficient (kr)3 for rk as

    (kr)3=(3k1)(3k11)....(3kr+11)(3r1)(3r11)....(31)

    which gives the number of subspaces of dimension r contained in a k-dimensional vector space over F3.

    In what follows, we present a mass formula for self-orthogonal codes over E3 which is a characteristic 3-version of [4, Theorem 8].

    Theorem 1. For all lengths n, and for the type {k1,k2}, where k11, the number of self-orthogonal codes over E3 is

    NSO(n,k1,k2)=φn,k1(n2k1k2)33k1(n2k1k2).

    If k1=0, then

    NSO(n,0,k2)=(nk2)3.

    The following mass formulas follow by the usual counting technique under group action. Corollaries 1–4 are a consequence of Theorem 1.

    Corollary 1. For given length n and type {k1,k2}, with 0k1,k2n, we have

    C1|Aut(C)|=NSO(n,k1,k2)2nn!,

    where C runs over distinct representatives of equivalence classes under monomial column permutations of SO codes of length n and type (k1,k2).

    Corollary 2. For given length n and type {k1,k2}, with k11, we have

    C1|Aut(C)|=NSD(n,k1,k2)2nn!=φn,k12nn!,

    where C runs over distinct representatives of equivalence classes under monomial column permutations of SD codes of length n and type {k1,k2}.

    Corollary 3. For given length n and type {0,k2}, with k21, we have

    C1|Aut(C)|=NRSD(n,k1,k2)2nn!=12nn!,

    where C runs over distinct representatives of equivalence classes under monomial column permutations of RSD codes of length n and type {0,k2}.

    Corollary 4. For given length n and type {n2,0}, with n21, we have

    C1|Aut(C)|=NLSD(n,k1,k2)2nn!=φn,n22nn!,

    where C runs over distinct representatives of equivalence classes under monomial column permutations of LSD codes of length n and type {n2,0}.

    In this section we provide the building-up construction for self-orthogonal codes, (one-sided) self-dual, and self-dual codes over E3. Our building-up construction needs the following theorems.

    Theorem 2. Let C be an E3 code of length n, with residue code C1 and torsion code C2. The following hold:

    If C is a linear code of length n over E3, then C=aC1+fC2.

    If C1 is self-orthogonal with C1C2C1, then C is a self-orthogonal code.

    If, furthermore, |C|=3n, then C2=C1.

    Proof. The first statement:_ It suffices to prove that CaC1+fC2.

    Let iC. We can write i in f-adic decomposition form as i=ax+fy where x,yFn3.

    Since π(ax+fy)=x, it follows that xres(C).

    By following [3, Lemma 3], we have axC. Also by a linearity of C, we can see that fyC, and hence ytor(C).

    This proves that CaC1+fC2.

    The second statement:_ Suppose i1,i2C. We can write i1 and i2 in f-adic decomposition form as i1=ax1+fy1 and i2=ax2+fy2 where x1,x2res(C) and y1,y2tor(C). Compute (i1,i2),

    (ax1+fy1,ax2+fy2)=a2(x1,x2)+af(x1,y2)+fa(x2,y1)+f2(y1,y2)=a(x1,x2)+f(x2,y1).

    Since tor(C)res(C), it follows that (x1,x2)=(x2,y1)=0, which is self-orthogonal. Thus, C is self-orthogonal.

    The last statement:_ It follows that C2=3nk1=C1.

    The next result control the linear structure of SO codes.

    Corollary 5. For any SO codes C over E3 of length n, we have

    (i) tor(C)res(C).

    (ii) res(C) must be a self-orthogonal ternary code.

    Proof. For (i), let ytor(C), then fyC and qC, we can write q in f-adic decomposition form as q=au+fv, where ures(C) and vtor(C).

    (fy,au+fv)=fa(y,u)=f(y,u)=0.

    Thus, yres(C) and tor(C)res(C).

    For (ii), By (i), and the fact that res(C)tor(C), it follows that

    res(C)tor(C)res(C).

    The following theorem characterizes one-sided self-dual codes over E3.

    Theorem 3. For any linear code C over E3, we have

    (i) CL=a res(C)+f res(C).

    (ii) CR=a tor(C)+f Fn3.

    Proof. For (i), we need to prove that res(CL)=res(C)=tor(CL).

    From the fact res(CL)tor(CL), it follows that res(CL)res(C)tor(CL).

    Now, let ytor(CL), then fyCL and xres(C), then axC. By definition of CL, we can see that

    (fy,ax)=fa(y,x)=f(y,x)=0.

    Thus, yres(C) and tor(CL)res(C).

    On the other hand, given rres(C) and iC, i may be expressed in f-adic decomposition form as i=au+fv, where ures(C) and vtor(C),respectively. It can be seen that

    (ar,i)=(ar,au+fv)=a(r,u)=0

    by definition of C. Thus, arCL, and rres(CL). This implies that, res(C)res(CL). Therefore,

    res(CL)=res(C)=tor(CL).

    For (ii), suppose ytor(C)res(C), and iC, we can write i in f-adic decomposition form as i=au+fv, where ures(C) and vtor(C). By definition of C, we have

    (i,ay)=(au+fv,ay)=a(u,y)+f(v,y)=0.

    Thus, ayCR, and yres(CR). This implies that, tor(C)res(CR). Conversely, let xres(CR), then axCR. Let ytor(C), then fyC. Observe that

    (fy,ax)=fa(y,x)=f(y,x)=0.

    Thus, fyC and ytor(C). This implies that res(CR)=tor(C).

    Now to prove tor(CR)=Fn3, it suffices to show that Fn3tor(CR).

    Let rFn3, and iC, we can write i in f-adic decomposition form as i=au+fv, where ures(C) and vtor(C). We can see that

    (i,fr)=(au+fv,fr)=af(u,r)+f2(v,r)=0.

    Thus, frCR, then rtor(CR), and so Fn3tor(CR). This completes the proof.

    Corollary 6. For any linear code C over E3, we have

    (i) C is left self-dual (LSD) iff C is of type {n2,0}.

    (ii) C is right self-dual (RSD) iff C=f Fn3.

    The lengths of LSD codes can be determined completely.

    Corollary 7. Left self-dual codes over E3 of length n occurs if and only if n is a multiple of 4.

    Proof. From Theorem 3, C is left self-dual iff res(C) is a self-dual ternary code. Then, by [16, Theorem 3], a self-dual code over F3 of length n exists only if n is a multiple of 4.

    This completes the proof. The next theorem characterizes SD codes.

    Theorem 4. Assume C is an E3-code of length n, C is a SD code if and only if

    C=a res(C)+f res(C);

    moreover, |C|=3n.

    Proof. We know that C is self-dual code over E3 iff C=C=CRCL. By Theorem 2, we can see that

    C=a (res(CR)res(CL))+f (tor(CR)tor(CL)).

    Thus, by Theorem 3, it can be seen that

    C=a tor(C)+f res(C)=a res(C)+f res(C).

    Corollary 8. For any linear code C over E3, we have:

    (1) If C is SD with k1=0, then C is RSD.

    (2) If C is SD with k2=0, then C is LSD.

    The next result bounds the minimum distances of SD and LSD codes.

    Corollary 9. (i) The minimum distance d(C) of a self-dual code over E3 is less than or equal to min.

    (ii) If \mathcal{C} is a left self-dual code \mathcal{C} over \mathit{E}_3 , then the minimum distance d(\mathcal{C}) is equal to d(\mathrm{res(\mathcal{C})}) .

    Proof. For ( i ), by Theorem 4, we have \mathcal{C} = a \ \mathrm{res(\mathcal{C})} + f \ \mathrm{res(\mathcal{C})}^\bot.

    Let d_1 and d_2 denote the minimum distances of \mathrm{res(\mathcal{C})} and \mathrm{res(\mathcal{C})}^\bot , respectively.

    By definition of \mathrm{tor(\mathcal{C})} , we have d(\mathcal{C})\le d_2 . By [3, Lemma 3], we have a \ \mathrm{res(\mathcal{C})}\subseteq \mathcal{C} , which indicates that d(\mathcal{C})\le d_1 . It follows that d(\mathcal{C})\le min\left\{ d_1, d_2 \right\} .

    For ( ii ), by Theorem 3, we have \mathcal{C} = a \ \mathrm{res(\mathcal{C})}^\bot + f \ \mathrm{res(\mathcal{C})}^\bot, where \mathrm{res(\mathcal{C})}^\bot = \mathrm{res(\mathcal{C})}. This means that d_1 = d_2.

    We now establish that d(\mathcal{C}) \ge d_1 . Assume {\mathbf q} is in \mathcal{C} and wt({\mathbf q}) = d . Because {\mathbf r} \in \mathrm{res(\mathcal{C})}^\bot and {\mathbf s} \in \mathrm{res(\mathcal{C})}^\bot , {\mathbf q} = a{\mathbf r}+f{\mathbf s} by Theorem 2. We have the following three scenarios, which rely on {\mathbf r} and {\mathbf s}, since \mathcal{C} is nonzero:

    (1) wt({\mathbf q}) = wt(a {\mathbf r}) = wt({\mathbf r}) \, \ \text{if} \, \ {\mathbf r}\neq 0 \, \ \text{and} \, \ {\mathbf s} = 0 ,

    (2) wt({\mathbf q}) = wt(f {\mathbf s}) = wt({\mathbf s}) \, \ \text{if} \, \ {\mathbf r} = 0 \, \ \text{and} \, \ {\mathbf s}\neq 0 ,

    (3) wt({\mathbf q}) = wt(a {\mathbf r}+f {\mathbf s})\ge wt({\mathbf ar}) = wt({\mathbf r}) \, \ \text{if} \, \ {\mathbf r}, {\mathbf s}\neq 0.

    It follows that d(\mathcal{C}) \ge d_1 since d_1 = d_2 . Thus, from (i) , we conclude that d(\mathcal{C}) = d_1.

    In this subsection, we present the build-up construction method for self-orthogonal codes over \mathit{E}_3 . The following theorem is a propagation rule of order three which increases the number of generators by one.

    Theorem 5. Let \mathcal{C}_{0} be a self-orthogonal code over \mathit{E}_3 of length n with generator matrix \mathcal{G}_{0} = ({\mathbf r}_{i}) where {\mathbf r}_{i} is the i th row of \mathcal{G}_{0} , for i = 1, 2, \ldots, m . Let {\mathbf x}\in\mathbb{F}_{3}^{n} and \alpha, \beta, \gamma \in \mathit{E}_3, such that \alpha+\beta+\gamma = 0 . Then the code \mathcal{C} with the following generator matrix

    \mathcal{G} = \left(\begin{array}{ccc|c} \alpha & \beta & 0 & \gamma{\mathbf x}\\ \hline ({\mathbf x}, {\mathbf r}_{1}) & ({\mathbf x}, {\mathbf r}_{1}) & ({\mathbf x}, {\mathbf r}_{1}) & {\mathbf r}_{1}\\ \vdots & \vdots & \vdots & \vdots\\ ({\mathbf x}, {\mathbf r}_{m}) & ({\mathbf x}, {\mathbf r}_{m}) & ({\mathbf x}, {\mathbf r}_{m}) & {\mathbf r}_{m} \end{array}\right)

    is a self-orthogonal code of length n+3 if:

    (i) ({\mathbf x}, {\mathbf x}) = 1 , and \alpha, \beta, \gamma \in \mathit{E}_3 \setminus J_3 ; or

    (ii) ({\mathbf x}, {\mathbf x}) = -1 and (\alpha \neq 0, \, \ \beta = 0, \, \ \gamma = 2\alpha) .

    Proof. It suffices to show that the rows of \mathcal{G} are orthogonal to each other. Let {\mathbf y}_{0} = \left(\begin{array}{cccc} \alpha & \beta & 0 & \gamma{\mathbf x}\end{array}\right) , the first row of \mathcal{G} and {\mathbf y}_{i} = \left(\begin{array}{cccc} ({\mathbf x}, {\mathbf r}_{i}) & ({\mathbf x}, {\mathbf r}_{i}) & ({\mathbf x}, {\mathbf r}_{i}) & {\mathbf r}_{i}\end{array}\right) , the i+1 st row of \mathcal{G} , for i = 1, 2, \ldots, m .

    (i) If ({\mathbf x}, {\mathbf x}) = 1 and \alpha, \beta, \gamma \in \mathit{E}_3 \setminus J_3 , then

    \begin{align*} ({\mathbf y}_{0}, {\mathbf y}_{0}) & = \alpha^{2}+\beta^{2}+\gamma^{2}({\mathbf x}, {\mathbf x}) = \alpha^{2}+\beta^{2}+\gamma^{2} = 0, \\ ({\mathbf y}_{0}, {\mathbf y}_{i}) & = \alpha({\mathbf x}, {\mathbf r}_{i})+\beta({\mathbf x}, {\mathbf r}_{i})+\gamma({\mathbf x}, {\mathbf r}_{i}) = (\alpha+\beta+\gamma)({\mathbf x}, {\mathbf r}_{i}) = 0, \\ ({\mathbf y}_{i}, {\mathbf y}_{j}) & = 3({\mathbf x}, {\mathbf r}_{i})({\mathbf x}, {\mathbf r}_{j})+({\mathbf r}_{i}, {\mathbf r}_{j}) = 0, \end{align*}

    for all i, j = 1, 2, \ldots, m .

    (ii) If ({\mathbf x}, {\mathbf x}) = -1 and (\alpha \neq 0, \, \ \beta = 0, \, \ \gamma = 2\alpha) , then

    \begin{align*} ({\mathbf y}_{0}, {\mathbf y}_{0}) & = \alpha^{2}+(2\alpha)^{2}({\mathbf x}, {\mathbf x}) = \alpha^2- \alpha^2 = 0, \\ ({\mathbf y}_{0}, {\mathbf y}_{i}) & = \alpha({\mathbf x}, {\mathbf r}_{i})+2\alpha({\mathbf x}, {\mathbf r}_{i}) = 3\alpha({\mathbf x}, {\mathbf r}_{i}) = 0, \\ ({\mathbf y}_{i}, {\mathbf y}_{j}) & = 3({\mathbf x}, {\mathbf r}_{i})({\mathbf x}, {\mathbf r}_{j})+({\mathbf r}_{i}, {\mathbf r}_{j}) = 0, \end{align*}

    for all i, j = 1, 2, \ldots, m .

    In both cases, we see that { \mathcal{C}} is a self-orthogonal code.

    Example 1. We construct self-orthogonal codes of length 6 derived from length 3. By Theorem 2, we have the self-orthogonal (3, 3^2, 3) code with generator matrix \mathcal{G}_0 given by

    \mathcal{G}_0 = \begin{pmatrix} a & b & h\\ \end{pmatrix}.

    Using Theorem 5 from \mathcal{G}_0 , we get three non-equivalent monomial SO (6, 3^4, 3) codes, with generator matrices:

    \left( \begin{array}{ccc|ccc} a & 0& 0& a & e & 0\\ \hline f & f& f& a & b & h\\ \end{array}\right), \ \, \ \ \, \ \left( \begin{array}{ccc|ccc} a & a& 0& a & 0 & 0\\ \hline a & a& a& a & b & h\\ \end{array}\right), \ \, \ \text{and } \, \ \left( \begin{array}{ccc|ccc} a & b& 0& h & 0 & 0\\ \hline a & a& a& a & b & h\\ \end{array}\right).

    Their Hamming weight enumerators are

    \begin{align*} W_1(x, y) & = x^6 + 14x^3y^3 + 12x^2y^4+18xy^5+36y^6 , \\ W_2(x, y) & = x^6 + 16x^3y^3 + 64y^6 , \end{align*}

    and

    W_3(x, y) = x^6 + 10x^3y^3 +18xy^5+ 52y^6 ,

    respectively.

    Remark 1. The build-up construction method given in Theorem 5, cannot be also used for self-dual codes as the cardinality of the code \mathcal{C} is not 3^{n+3}.

    Remark 2. If any two self-orthogonal \mathit{E}_3 -codes are monomially equivalent, then their residue and torsion codes are also monomially equivalent, but the converse is not necessarily true. For example, when n = 3 and type \left\{ 1, 0 \right\} , the codes \mathcal{C}_1 and {\mathcal{C}}_2 with generator matrices \begin{pmatrix} a & a & a\\ \end{pmatrix} and \begin{pmatrix} a & b & h\\ \end{pmatrix} , respectively. They have the same residue and torsion codes, but are not monomially equivalent.

    We will provide a construction approach for one-sided self-dual codes over \mathit{E}_3 in this subsection. Initially, this structure was provided for left self-dual codes with two extra generators and a length increase of four. We only need to take into consideration the situation in which the length n is a multiple of 4 , as a result of Corollary 7.

    Theorem 6. Let \mathcal{C}_{0} be a left self-dual code over \mathit{E}_3 of length n with generator matrix \mathcal{G}_{0} = ({\mathbf r}_{i}) where {\mathbf r}_{i} is the i th row of \mathcal{G}_{0} , for i = 1, 2, \ldots, m . Let {\mathbf x}_1, {\mathbf x}_2 \in \mathbb{F}_{3}^{n} such that ({\mathbf x}_1, {\mathbf x}_2) = 0 , and ({\mathbf x}_i, {\mathbf x}_i) = 2 for i = 1, 2 . For 1 \le i \le m , define u_i = ({\mathbf x}_1, {\mathbf r}_i) and v_i = ({\mathbf x}_2, {\mathbf r}_i) . If \alpha \in \mathit{E}_3 \setminus J_3 , then the code \mathcal{C} with the following generator matrix

    \mathcal{G} = \left( \begin{array}{cccc|c} \alpha & 0 & 0 & 0 & 2\alpha {\mathbf x}_1 \\ 0 & \alpha & 0 & 0 & 2\alpha {\mathbf x}_2\\ \hline u_1& v_1& u_1+v_1 &2u_1+v_1 & {\mathbf r}_1 \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ u_m& v_m& u_m+v_m &2u_m+v_m & {\mathbf r}_m \end{array} \right)

    is a left self-dual code of length n+4 .

    Proof. Let {\mathbf y}_0 = \left(\begin{array}{ccccc} \alpha & 0 & 0 & 0 & 2\alpha {\mathbf x}_1 \end{array} \right) and {\mathbf y}_0' = \left(\begin{array}{ccccc} 0 & \alpha & 0 & 0 & 2\alpha {\mathbf x}_2 \end{array} \right) . Then

    \begin{align*} ({\mathbf y}_0, {\mathbf y}_0) & = \alpha^2 + (2\alpha)^2 ({\mathbf x}_1, {\mathbf x}_1) = 0, \\ ({\mathbf y}_0', {\mathbf y}_0') & = \alpha^2 + (2\alpha)^2 ({\mathbf x}_2, {\mathbf x}_2) = 0, \\ ({\mathbf y}_0, {\mathbf y}_0') & = \alpha ({\mathbf x}_1, {\mathbf x}_2) = 0. \end{align*}

    Now, for 1 \leq i \leq m , let {\mathbf y}_i = \left(\begin{array}{ccccc} u_i & v_i & u_i+v_i & 2u_i+v_i & {\mathbf r}_i \end{array} \right) . So, for 1 \leq j \leq m ,

    ({\mathbf y}_i, {\mathbf y}_j) = u_i u_j + v_i v_j + (u_i + v_i)(u_j + v_j) + (2u_i+v_i)(2u_j+v_j) +( {\mathbf r}_i, {\mathbf r}_j) = 0.

    Thus, \mathcal{C} is self-orthogonal and since \left| \mathcal{C} \right| = 9^2\left| \mathcal{C}_0 \right| = 3^{n+4} , \mathcal{C} is left self-dual.

    Define \widehat{\mathcal{C}_0} to be the span of the last m rows of \mathcal{G} , and for every y \in \mathit{E}_3 write

    T_y = (y, 0, 0, 0, 2y{\mathbf x}_1), \, \ \text{and} \, \ \, \ U_y = (0, y, 0, 0, 2y{\mathbf x}_2).

    The construction in Theorem 6 maybe demonstrated to be equivalent to

    \mathcal{C} = \dot\cup _{t, u \in \mathit{E}_3 \setminus S }(T_t + U_u +\widehat{\mathcal{C}_0}).

    Example 2. We construct a left self-dual code of length 8 derived from length 4. By Theorem 3, we have the left self-duall (4, 3^4, 3) code with generator matrix \mathcal{G}_1 given by

    \mathcal{G}_1 = \begin{pmatrix} a & 0 & a & a \\ 0 & a & a & e \\ \end{pmatrix}.

    Using Theorem 6 from \mathcal{G}_1 with \alpha = a , we get only one non-equivalent monomial left self-dual (8, 3^8, 3) code with generator matrix

    \mathcal{G}_{1, 1} = \left( \begin{array}{cccc|cccc} a & 0 & 0& 0 & e & e & 0& 0 \\ 0 & a & 0& 0& e & a & 0&0 \\ \hline a & a & e & 0 & a & 0 &a & a \\ a & e & 0 & e & 0 & a & a & e \end{array} \right) .

    Its Hamming weight enumerator is

    W_{1, 1}(x, y) = x^8 + 64x^5y^3 + 96x^4y^4 + 1024x^2y^6 + 3072xy^7 + 2304y^8.

    Repeating this process using \mathcal{G}_{1, 1} with {\mathbf x}_1 = (1, 1, 0, 0, 0, 0, 0, 0) , we get only three non-equivalent monomial left self-dual (12, 3^{12}, 3) codes with generator matrices

    \mathcal{G}_{1, 1, 1} = \left( \begin{array}{cccc|cccccccc} a & 0 & 0 & 0 & e & e & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & a & 0 & 0 & 0 & 0 & 0 & e & a & 0 & 0 & 0\\ \hline a& a & e& 0 & a & 0 & 0& 0 & e & e & 0& 0 \\ a& a & e& 0 & 0 & a & 0& 0& e & a & 0&0 \\ e& e& a& 0 & a & a & e & 0 & a & 0 &a & a \\ 0& e & e & a & a & e & 0 & e & 0 & a & a & e \end{array} \right),
    \mathcal{G}_{1, 1, 2} = \left( \begin{array}{cccc|cccccccc} a & 0 & 0 & 0 & e & e & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & a & 0 & 0 & a & e & a & a & a & 0 & 0 & 0\\ \hline a& 0 & a& a & a & 0 & 0& 0 & e & e & 0& 0 \\ a& e & 0& e & 0 & a & 0& 0& e & a & 0&0 \\ e& 0& e& e & a & a & e & 0 & a & 0 &a & a \\ 0 & 0 & 0 & 0 & a & e & 0 & e & 0 & a & a & e \end{array} \right),

    and

    \mathcal{G}_{1, 1, 3} = \left( \begin{array}{cccc|cccccccc} a & 0 & 0 & 0 & e & e & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & a & 0 & 0 & 0 & 0 & 0 & e & e & e & e & e\\ \hline a& a & e& 0 & a & 0 & 0& 0 & e & e & 0& 0 \\ a& 0 & a& a & 0 & a & 0& 0& e & a & 0&0 \\ e& 0& e& e & a & a & e & 0 & a & 0 &a & a \\ 0 & 0 & 0 & 0 & a & e & 0 & e & 0 & a & a & e \end{array} \right).

    Their Hamming weight enumerators are

    \begin{align*} W_{1, 1, 1}(x, y) = & x^{12} + 96x^9y^3 + 144x^8y^4 + 3072x^6y^6 + 9216x^5y^7 + 6912x^4y^8+32768x^3y^9\\ & +147456x^2y^{10}+ 221184xy^{11}+ 110592y^{12}, \\ W_{1, 1, 2}(x, y) = &x^{12} + 24x^9y^3 + 8x^8y^4+ 176x^7y^5+ 1112x^6y^6 + 4376x^5y^7 +15272x^4y^8 \\ & + 47776x^3y^9+132776x^2y^{10}+ 208544xy^{11}+ 121376y^{12} , \end{align*}

    and

    W_{1, 1, 3}(x, y) = x^{12} + 32x^9y^3 + 1248x^6y^6 + 5184x^5y^7 +14256x^4y^8+ 46976x^3y^9+134784x^2y^{10}
    +207360xy^{11}+ 121600y^{12},

    respectively.

    Corollary 10. The minimum Hamming weight of left self-dual codes over \mathit{E}_3 of length n is a multiple of 3 .

    Proof. Following Corollary 9, the minimum distance d(\mathcal{C}) of a left self-dual code \mathcal{C} is equal to d(\mathrm{res(\mathcal{C})}) . Thus, by [11, Lemma 1], self-dual codes over \mathbb{F}_3 of length n exist only if n is a multiple of 4 and a minimum weight is a multiple of 3 .

    In the following theorem, we will now describe the general approach that we will utilize in finding construction methods for right self-dual codes over \mathit{E}_3 .

    Theorem 7. Let \mathcal{C}_0 be a right self-dual code of length n over \mathit{E}_3 , with generator matrix \mathcal{G}_0 = ({\mathbf r}_i) , where r_i is the i -th row of \mathcal{G}_0 , for 1 \le i\le m . Then the code \mathcal{C} with the following generator matrix

    \mathcal{G} = \begin{pmatrix} f I_h & 0 \, \ ... \, \ 0 \\ 0 & \\ \vdots & \mathcal{G}_0 \\ 0 & \\ \end{pmatrix}

    is a a right self-dual code of length n+h .

    Proof. We can show that \mathcal{G} generates a self-orthogonal code \mathcal{C} in a similar way as given in Theorem 6.

    Now, according to \left| \mathcal{C} \right| = 3^h\left| \mathcal{C}_0 \right| = 3^{n+h} , \mathcal{C} is self-dual.

    Corollary 11. Every one-sided self-dual code is also self-dual.

    Proof. Let \mathcal{C} be a left self-dual in order to demonstrate that every left self-dual is self-dual. \mathrm{res(\mathcal{C})} = \mathrm{res(\mathcal{C})^{\bot}} and \mathrm{tor(\mathcal{C})} = \mathrm{res(\mathcal{C})^{\bot}} are the results of Theorem 3. Hence, \mathcal{C} is a self-dual code according to Theorem 4.

    To prove that every right self-dual is self-dual, let \mathcal{C} be right self-dual. Also, by use Theorem 3, we see that \mathcal{C} = a \left\{ 0 \right\}+ f \mathbb{F}_3^n. Observe that \mathrm{tor(\mathcal{C})} = \mathrm{res(\mathcal{C})}^\bot . Then, by Theorem 4, \mathcal{C} is a self-dual code.

    Example 3. The linear code of length 4 with the two generators

    \mathcal{G}_2 = \begin{pmatrix} a & 0 & a& a\\ 0 & a& a& e \end{pmatrix}

    is a self-dual and left self-dual, but not right self-dual.

    Example 4. The linear code of length 3 defined by

    \mathcal{C} = \begin{Bmatrix} 000, f00, 0f0, 00f, g00, 0g0, 00g, ff0, f0f, 0ff, gg0, g0g, 0gg, gfg, \\ ggf, fgg, ffg, fgf, gff, fg0, 0gf, f0g, gf0, 0gf, g0f, fff, ggg \end{Bmatrix}

    is a self-dual and right self-dual code, but not left self-dual.

    Remark 3. We note that a similar construction method in Theorems 6 and 7 can be applied to self-dual codes over \mathit{E}_3 .

    The following result constructs a self-dual code of length n+3 from a self-dual code of length n .

    Theorem 8. Let \mathcal{C}_{0} be a self-dual code over \mathit{E}_3 of length n with generator matrix \mathcal{G}_{0} = ({\mathbf r}_{i}) where {\mathbf r}_{i} is the i th row of \mathcal{G}_{0} , for i = 1, 2, \ldots, m . Let {\mathbf x}\in\mathbb{F}_{3}^{n} and \alpha, \beta, \gamma \in \mathit{E}_3 , such that \alpha+\beta+\gamma = 0 . Let \sigma\in J_3 , non-zero element. Then the code \mathcal{C} with the following generator matrix

    \mathcal{G} = \left(\begin{array}{ccc|c} \alpha & \beta & 0 & \gamma{\mathbf x}\\ 0 & \sigma & 0& 2\sigma {\mathbf x}\\ \hline ({\mathbf x}, {\mathbf r}_{1}) & ({\mathbf x}, {\mathbf r}_{1}) & ({\mathbf x}, {\mathbf r}_{1}) & {\mathbf r}_{1}\\ \vdots & \vdots & \vdots & \vdots\\ ({\mathbf x}, {\mathbf r}_{m}) & ({\mathbf x}, {\mathbf r}_{m}) & ({\mathbf x}, {\mathbf r}_{m}) & {\mathbf r}_{m} \end{array}\right)

    is a self-dual code of length n+3 if:

    (1) ({\mathbf x}, {\mathbf x}) = 1 , and (\alpha, \beta, \gamma \in \mathit{E}_3 \setminus J_3) ; or

    (2) ({\mathbf x}, {\mathbf x}) = -1 , and (\alpha = 0, \, \ \beta \in \mathit{E}_3 \setminus J_3, \, \ \gamma = 2\beta) .

    Proof. We first show that \mathcal{C} is self-orthogonal. Let {\mathbf y}_{0} = \left(\begin{array}{cccc} \alpha & \beta & 0 & \gamma{\mathbf x}\end{array}\right) , the first row of \mathcal{G} , and {\mathbf y}_{0}' = \left(\begin{array}{cccc} 0 & \sigma & 0 & 2\sigma {\mathbf x}\end{array}\right) , the second row of \mathcal{G} . For 1 \le i \le m , let {\mathbf y}_{i} = \left(\begin{array}{cccc} ({\mathbf x}, {\mathbf r}_{i}) & ({\mathbf x}, {\mathbf r}_{i}) & ({\mathbf x}, {\mathbf r}_{i}) & {\mathbf r}_{i}\end{array}\right) . Then,

    (i) If ({\mathbf x}, {\mathbf x}) = 1 and (\alpha, \beta, \gamma \in \mathit{E}_3 \setminus J_3) , then

    \begin{align*} ({\mathbf y}_{0}, {\mathbf y}_{0}) & = \alpha^{2}+\beta^{2}+\gamma^{2}({\mathbf x}, {\mathbf x}) = (\alpha^{2}+\beta^{2}+\gamma^{2}) = 0, \\ ({\mathbf y}_{0}', {\mathbf y}_{0}') & = \sigma^{2}+(2\sigma)^{2}({\mathbf x}, {\mathbf x}) = 0, \\ ({\mathbf y}_{0}, {\mathbf y}_{0}') & = \beta\sigma+\gamma(2\sigma)({\mathbf x}, {\mathbf x}) = 0, \\ ({\mathbf y}_{0}', {\mathbf y}_{0}) & = \sigma \beta+2\sigma\gamma({\mathbf x}, {\mathbf x}) = \sigma+2\sigma = 0, \\ ({\mathbf y}_{0}, {\mathbf y}_{i}) & = \alpha({\mathbf x}, {\mathbf r}_{i})+\beta({\mathbf x}, {\mathbf r}_{i})+\gamma({\mathbf x}, {\mathbf r}_{i}) = (\alpha+\beta+\gamma) = 0, \\ ({\mathbf y}_{0}', {\mathbf y}_{i}) & = (\sigma+2\sigma)({\mathbf x}, {\mathbf r}_{i}) = 0, \\ ({\mathbf y}_{i}, {\mathbf y}_{j}) & = 3({\mathbf x}, {\mathbf r}_{i})({\mathbf x}, {\mathbf r}_{j})+({\mathbf r}_{i}, {\mathbf r}_{j}) = 0, \end{align*}

    for all i, j = 1, 2, \ldots, m .

    (ii) If ({\mathbf x}, {\mathbf x}) = -1 and (\alpha = 0, \, \ \beta \in \mathit{E}_3 \setminus J_3, \, \ \gamma = 2\beta) , then

    \begin{align*} ({\mathbf y}_{0}, {\mathbf y}_{0}) & = \beta^{2}+(2\beta)^{2}({\mathbf x}, {\mathbf x}) = \beta^{2}-\beta^{2} = 0, \\ ({\mathbf y}_{0}', {\mathbf y}_{0}) & = \sigma \beta+(2\sigma) (2\beta)({\mathbf x}, {\mathbf x}) = \sigma \beta-\sigma \beta = 0, \\ ({\mathbf y}_{0}, {\mathbf y}_{i}) & = \beta({\mathbf x}, {\mathbf r}_{i})+2\beta({\mathbf x}, {\mathbf r}_{i}) = 3\beta({\mathbf x}, {\mathbf r}_{i}) = 0, \\ ({\mathbf y}_{i}, {\mathbf y}_{j}) & = 3({\mathbf x}, {\mathbf r}_{i})({\mathbf x}, {\mathbf r}_{j})+({\mathbf r}_{i}, {\mathbf r}_{j}) = 0, \end{align*}

    for all i, j = 1, 2, \ldots, m .

    In both cases, we see that {\mathcal{C}} is a self-orthogonal code. Since |\mathcal{C}| = 9^13^1|\mathcal{C}_0| = 3^{n+3} , \mathcal{C} is a self-dual code of length n+3 .

    Example 5. We construct self-dual codes of length 7 derived from length 4. By Theorem 4, we have the self-dual (4, 3^4, 1) code with generator matrix \mathcal{G}_3 = \begin{pmatrix} a & 0 & a & a\\ 0 &f & 0 & 0\\ 0 & 0 & f & g \\ \end{pmatrix}.

    Using Theorem 8 from \mathcal{G}_3 , we get five non-equivalent monomial self-dual codes with generator matrices:

    \left( \begin{array}{ccc|cccc} a & a & 0 & 0 & a& 0 & 0\\ 0 & f & 0 & 0 & g& 0 & 0\\ \hline 0 & 0 & 0 & a & 0& a & a\\ f& f & f & 0 & f& 0 & 0\\ 0& 0 & 0 & 0 & 0& f & g\\ \end{array}\right) , \, \, \ \left( \begin{array}{ccc|cccc} a & a & 0 & a & e& e & a\\ 0 & f & 0 & g & f& f & g\\ \hline a & a & a & a & 0& a & a\\ g& g & g & 0 & f& 0 & 0\\ f& f & f & 0 & 0& f & g\\ \end{array}\right), \, \ \, \ \, \ \left( \begin{array}{ccc|cccc} 0 & a & 0 & e & e& 0 &0\\ 0 & g & 0& f & f& 0 & 0\\ \hline a & a & a & a & 0& a & a\\ f& f & f & 0 & f& 0 & 0\\ 0 & 0 & 0 & 0 & 0& f & g\\ \end{array}\right),
    \, \ \, \ \left( \begin{array}{ccc|cccc} 0 & a & 0 & e & 0& e &0\\ 0 & g & 0& f & 0& f & 0\\ \hline e & e & e & a & 0& a & a\\ 0 & 0 & 0 & 0 & f& 0 & 0\\ f& f & f & 0 & 0& f & g\\ \end{array}\right), \; \text{and} \, \ \left( \begin{array}{ccc|cccc} 0 & a & 0 & 0 & 0& e & a\\ 0 & g & 0& 0 & 0& f & g\\ \hline 0 & 0 & 0 & a & 0& a & a\\ 0 & 0 & 0 & 0 & f& 0 & 0\\ g& g & g & 0 & 0& f & g\\ \end{array}\right).

    Their Hamming weight enumerators are

    \begin{align*} W_1(x, y)& = x^7 + 2x^6y+ 12x^5y^2 + 64x^4y^3 + 116x^3y^4 + 312x^2y^5 + 880 xy^6+800y^7 , \\ W_2(x, y) & = x^7 + 12x^5y^2 + 40x^4y^3 + 90x^3y^4 + 240x^2y^5 + 724 xy^6+1080y^7 , \\ W_3(x, y) & = x^7 + 2x^5y^2 + 24x^4y^3 + 38x^3y^4 + 52x^2y^5 + 236 xy^6+376y^7 , \\ W_4(x, y) & = x^7 +2x^6y+ 6x^5y^2 + 40x^4y^3 + 56x^3y^4 + 48 x^2y^5 + 256 xy^6+ 320y^7 , \end{align*}

    and

    W_5(x, y) = x^7 + 2x^6y+ 34x^4y^3 + 122x^3y^4 + 162x^2y^5 + 208xy^6+200y^7 ,

    respectively.

    Theorem 9. Two self-dual \mathit{E}_3 -codes are monomially equivalent if and only if their residue codes are also equivalent.

    Proof. Let \mathcal{C}_1 and \mathcal{C}_2 be two monomially equivalent codes over \mathit{E}_3 , then their residue codes are also equivalent as a \ \mathrm{res(\mathcal{C}_1)} \subseteq \mathcal{C}_1 and a \ \mathrm{res(\mathcal{C}_2)} \subseteq \mathcal{C}_2 .

    Conversely, Let \mathcal{C}_1 and \mathcal{C}_2 be two self-dual \mathit{E}_3 -codes, and \mathrm{res(\mathcal{C}_1)} and \mathrm{res(\mathcal{C}_2)} monomially equivalent codes. Then, there is a monomial matrix M sends a code res(\mathcal{C}_{1}) into the equivalent code such that

    \mathrm{res(\mathcal{C}_2)} = \mathrm{res(\mathcal{C}_{1})} M = \left\{ uM:u \in \mathrm{res(\mathcal{C}_{1})} \right\}.

    The set of all monomials such that \mathrm{res(\mathcal{C}_2)} = \mathrm{res(\mathcal{C}_{1})} forms the automorphism group G(\mathrm{res(\mathcal{C}_{1})}) of the code \mathrm{res(\mathcal{C}_{1})} , and as \mathrm{res(\mathcal{C}_2)^\bot} = \mathrm{res(\mathcal{C}_{1})^\bot} M.

    Thus, from Theorem 4, we have

    \begin{equation} \mathcal{C}_2 = a \ \mathrm{res(\mathcal{C}_2)}+ f \ \mathrm{res(\mathcal{C}_2)^\bot} = a \ \mathrm{res(\mathcal{C}_{1})} M+f \ \mathrm{res(\mathcal{C}_1)^\bot} M = \mathcal{C}_1M. \end{equation} (3.1)

    By Eq (3.1), we have \mathcal{C}_2 = \mathcal{C}_{1} M , proving that \mathcal{C}_1 and \mathcal{C}_2 are monomially equivalent.

    Remark 4. Every one-sided self-dual code is also a self-dual code, but not conversely as the next example shows.

    Example 6. The linear code with the three generators \mathcal{G} = \begin{pmatrix} a & 0 & a & a\\ 0 & f & 0 & 0\\ 0 & 0 & f & g \end{pmatrix}, is a self-dual code, but neither left- nor right-self-dual.

    In this section, we use the multilevel constructs in Theorems 2–4 to categorize self-orthogonal, (one-sided) self-dual, and self-dual \mathit{E}_3 -codes of length n < 8 with residue dimension k_1 = 0, 1, 2 . All the computer calculations in this section were performed in Magma [8].

    There is one right self-dual code over \mathit{E}_3 of type \left\{ 0, 1 \right\} , with generator matrix in Table 2.

    Table 2.  RSD codes over \mathit{E}_3 of type \left\{ 0, 1 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    (f) 2 [1, 2]

     | Show Table
    DownLoad: CSV

    There is one right self-dual code over \mathit{E}_3 of type \left\{ 0, 2 \right\} , with generator matrix in Table 3.

    Table 3.  RSD codes over \mathit{E}_3 of type \left\{ 0, 2 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} f&0\\0&f \end{pmatrix} 8 [1, 4, 4]

     | Show Table
    DownLoad: CSV

    For type \left\{ 0, 2 \right\} , there are three distinct self-orthogonal codes over \mathit{E}_3 , with generator matrices in Table 4.

    Table 4.  SO codes over \mathit{E}_3 of type \left\{ 0, 2 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} f&0&0\\0&f&f \end{pmatrix} 8 [1, 2, 2, 4] \begin{pmatrix} f&0&f\\0&f&f \end{pmatrix} 12 [1, 0, 6, 2]
    \begin{pmatrix} f&0&0\\0&f&f \end{pmatrix} 16 [1, 4, 4, 0]

     | Show Table
    DownLoad: CSV

    For type \left\{ 0, 3 \right\} , there is one right self-dual code over \mathit{E}_3 , with generator matrix in Table 5.

    Table 5.  RSD codes over \mathit{E}_3 of type \left\{ 0, 3 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} f&0&0\\0&f&0\\0&0&f \end{pmatrix} 48 [1, 6, 12, 8]

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 0 \right\} , there are two distinct self-orthogonal codes over \mathit{E}_3 , with generator matrices in Table 6.

    Table 6.  SO codes over \mathit{E}_3 of type \left\{ 1, 0 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&a&a \end{pmatrix} 12 [1, 0, 0, 8] \begin{pmatrix} a&b&h \end{pmatrix} 6 [1, 0, 0, 8]

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 1 \right\} , there is one distinct self-dual code over \mathit{E}_3 , with generator matrix in Table 7.

    Table 7.  SD codes over \mathit{E}_3 of type \left\{ 1, 1 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&a&a\\0&g&f\ \end{pmatrix} 12 [1, 0, 6, 20]

     | Show Table
    DownLoad: CSV

    For type \left\{ 0, 4 \right\} , there is one right self-dual code over \mathit{E}_3 , with generator matrix in Table 8.

    Table 8.  RSD codes over \mathit{E}_3 of type \left\{ 0, 4 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} f&0&0&0\\0&f&0&0\\0&0&f&0\\0&0&0&f \end{pmatrix} 96 [1, 8, 24, 32, 16]

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 0 \right\} , there are four distinct self-orthogonal codes over \mathit{E}_3 , with generator matrices in Table 9.

    Table 9.  SO codes over \mathit{E}_3 of type \left\{ 1, 0 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&0&a&a \end{pmatrix} 24 [1, 0, 0, 8, 0] \begin{pmatrix} a&0&b&h \end{pmatrix} 12 [1, 0, 0, 8, 0]
    \begin{pmatrix} a&f&a&a \end{pmatrix} 12 [1, 0, 0, 2, 6] \begin{pmatrix} a&f&b&h \end{pmatrix} 6 [1, 0, 0, 2, 6]

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 1 \right\} , there are six distinct self-orthogonal codes over \mathit{E}_3 , with generator matrices in Table 10.

    Table 10.  SO codes over \mathit{E}_3 of type \left\{ 1, 1 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&0&a&a\\0&f&0&0 \end{pmatrix} 24 [1, 2, 0, 8, 16] \begin{pmatrix} a&0&b&h\\0&f&0&0 \end{pmatrix} 12 [1, 2, 0, 8, 16]
    \begin{pmatrix} a&0&a&a\\0&f&f&g \end{pmatrix} 12 [1, 0, 0, 14, 12] \begin{pmatrix} a&0&b&h\\0&f&f&g \end{pmatrix} 6 [1, 0, 0, 14, 12]
    \begin{pmatrix} a&0&a&a\\0&0&f&g \end{pmatrix} 24 [1, 0, 6, 20, 0] \begin{pmatrix} a&f&a&a\\f&0&0&g \end{pmatrix} 12 [1, 0, 6, 2, 18]

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 2 \right\} , there is only one distinct self-dual codes over \mathit{E}_3 , with generator matrix in Table 11.

    Table 11.  SD codes over \mathit{E}_3 of type \left\{ 1, 2 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&0&a&a\\0&b&0&0\\0&0&b&d \end{pmatrix} 24 [1, 2, 6, 32, 40]

     | Show Table
    DownLoad: CSV

    For type \left\{ 2, 0 \right\} , there is only one left self-dual code over \mathit{E}_3 , with generator matrix in Table 12.

    Table 12.  LSD codes over \mathit{E}_3 of type \left\{ 2, 0 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&0&a&a\\0&a&a&e \end{pmatrix} 48 [1, 0, 0, 32, 48]

     | Show Table
    DownLoad: CSV

    For type \left\{ 0, 5 \right\} , there is one right self-dual code over \mathit{E}_3 , with generator matrix in Table 13.

    Table 13.  RSD codes over \mathit{E}_3 of type \left\{ 0, 5 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} f&0&0&0&0\\0&f&0&0&0\\0&0&f&0&0\\0&0&0&f&0\\0&0&0&0&f \end{pmatrix} 3840 [1, 10, 40, 80, 80, 32]

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 0 \right\} , there are six distinct self-orthogonal codes, with generator matrices in Table 14.

    Table 14.  SO codes over \mathit{E}_3 of type \left\{ 1, 0 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&0&0&a&a \end{pmatrix} 96 [1, 0, 0, 8, 0, 0] \begin{pmatrix} a&0&0&b&h \end{pmatrix} 48 [1, 0, 0, 8, 0, 0]
    \begin{pmatrix} a&f&0&a&a \end{pmatrix} 24 [1, 0, 0, 2, 6, 0] \begin{pmatrix} a&f&0&b&h \end{pmatrix} 12 [1, 0, 0, 2, 6, 0]
    \begin{pmatrix} a&f&f&a&a \end{pmatrix} 24 [1, 0, 0, 2, 0, 6] \begin{pmatrix} a&f&f&b&h \end{pmatrix} 12 [1, 0, 0, 2, 0, 6]

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 2 \right\} , there are ten distinct self-orthogonal codes, with generator matrices in Table 15.

    Table 15.  SO codes over \mathit{E}_3 of type \left\{ 1, 2 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&0&0&a&a\\0&f&0&0&0\\0&0&f&0&0 \end{pmatrix} 96 [1, 4, 4, 8, 32, 32] \begin{pmatrix} a&0&0&b&h\\0&f&0&0&0\\0&0&f&0&0 \end{pmatrix} 48 [1, 4, 4, 8, 32, 32]
    \begin{pmatrix} a&0&0&a&a\\0&f&f&0&0\\0&0&0&f&g \end{pmatrix} 48 [1, 0, 8, 20, 12, 40] \begin{pmatrix} a&0&0&a&a\\0&f&0&0&0\\0&0&f&f&g \end{pmatrix} 24 [1, 2, 0, 14, 40, 24]
    \begin{pmatrix} a&0&0&b&h\\0&f&f&0&0\\0&0&0&f&g \end{pmatrix} 12 [1, 2, 0, 14, 40, 24] \begin{pmatrix} a&0&0&a&a\\0&f&f&0&0\\0&0&f&f&g \end{pmatrix} 24 [1, 0, 2, 20, 30, 28]
    \begin{pmatrix} a&0&0&b&h\\0&f&f&0&0\\0&0&f&f&g \end{pmatrix} 12 [1, 0, 2, 20, 30, 28] \begin{pmatrix} a&0&0&a&a\\0&0&f&0&0\\0&0&0&f&g \end{pmatrix} 48 [1, 2, 6, 32, 40, 0]
    \begin{pmatrix} a&f&f&a&a\\0&0&f&0&0\\0&0&0&g&f \end{pmatrix} 24 [1, 2, 6, 14, 22, 36] \begin{pmatrix} a&f&g&a&a\\g&0&0&0&f\\f&0&0&0&g \end{pmatrix} 24 [1, 0, 6, 2, 18, 0]

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 3 \right\} , there is only one distinct self-dual codes over \mathit{E}_3 , with generator matrix in Table 16.

    Table 16.  SD codes over \mathit{E}_3 of type \left\{ 1, 3 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&0&0&a&a\\0&f&0&0&0\\0&0&f&0&0\\0&0&0&f&g \end{pmatrix} 96 [1, 4, 10, 44, 104, 80]

     | Show Table
    DownLoad: CSV

    For type \left\{ 0, 6 \right\} , there is one right self-dual code over \mathit{E}_3 , with generator matrix in Table 17.

    Table 17.  RSD codes over \mathit{E}_3 of type \left\{ 0, 6 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} f&0&0&0&0&0\\0&f&0&0&0&0\\0&0&f&0&0&0\\0&0&0&f&0&0\\0&0&0&0&f&0\\0&0&0&0&0&f \end{pmatrix} 46080 [1, 6, 12, 16, 48, 96, 64]

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 3 \right\} , there are 13 distinct self-orthogonal codes, with generator matrices in Table 18.

    Table 18.  SO codes over \mathit{E}_3 of type \left\{ 1, 3 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&a&0&0&0&a\\0&0&f&0&0&0\\0&0&0&f&0&0\\0&0&0&0&f&0 \end{pmatrix} 576 \begin{matrix} [1, 6, 12, 16, 48, 96, 64]\end{matrix} \begin{pmatrix} a&b&0&0&0&h\\0&0&f&0&0&0\\0&0&0&f&0&0\\0&0&0&0&f&0 \end{pmatrix} 288 \begin{matrix} [1, 6, 12, 16, 48, 96, 64] \end{matrix}
    \begin{pmatrix} a&a&0&0&0&a\\f&0&f&0&0&g\\0&0&0&f&0&0\\0&0&0&0&f&0 \end{pmatrix} 96 \begin{matrix} [1, 4, 4, 14, 68,104, 48]\end{matrix} \begin{pmatrix} a&b&0&0&0&h\\f&0&f&0&0&g\\0&0&0&f&0&0\\0&0&0&0&f&0 \end{pmatrix} 48 \begin{matrix} [1, 4, 4, 14, 68,104, 48]\end{matrix}
    \begin{pmatrix} a&a&0&0&0&a\\f&0&0&0&0&g\\0&0&0&f&0&0\\0&0&0&0&f&0 \end{pmatrix} 192 \begin{matrix} [1, 4, 10, 44, 104, 80, 0]\end{matrix} \begin{pmatrix} a&a&0&0&0&a\\f&0&f&0&0&g\\f&0&0&f&0&g\\f&0&0&0&f&g \end{pmatrix} 72 \begin{matrix} [1, 0, 6, 28, 54,102, 52] \end{matrix}
    \begin{pmatrix} a&b&0&0&0&h\\f&0&f&0&0&g\\f&0&0&f&0&g\\f&0&0&0&f&g \end{pmatrix} 36 \begin{matrix} [1, 0, 6, 28, 54,102, 52] \end{matrix} \begin{pmatrix} a&a&a&a&a&a\\f&0&0&g&0&0\\f&0&0&g&0&0\\f&0&0&g&0&0 \end{pmatrix} 96 \begin{matrix} [1, 0, 2, 0, 0, 4, 20] \end{matrix}
    \begin{pmatrix} a&b&h&a&b&h\\f&0&0&g&0&0\\f&0&0&g&0&0\\f&0&0&g&0&0 \end{pmatrix} 16 \begin{matrix} [1, 0, 2, 0, 0, 4, 20] \end{matrix} \begin{pmatrix} a&a&a&a&a&a\\f&f&0&g&g&0\\f&f&0&g&g&0\\f&f&0&g&g&0 \end{pmatrix} 96 \begin{matrix} [1, 0, 0, 0, 6, 0, 20] \end{matrix}
    \begin{pmatrix} a&b&h&a&b&h\\f&f&0&g&g&0\\f&f&0&g&g&0\\f&f&0&g&g&0 \end{pmatrix} 8 \begin{matrix} [1, 0, 0, 0, 6, 0, 20] \end{matrix} \begin{pmatrix} a&a&a&a&a&a\\g&f&0&0&0&0\\g&0&f&0&0&0\\g&0&0&f&0&0 \end{pmatrix} 96 \begin{matrix} [1, 0, 12, 16, 18, 24,172] \end{matrix}
    \begin{pmatrix} a&b&h&a&b&h\\g&f&0&0&0&0\\g&0&f&0&0&0\\g&0&0&f&0&0 \end{pmatrix} 48 \begin{matrix} [1, 0, 12, 16, 18, 24,172] \end{matrix}

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 4 \right\} , there are two distinct self-dual codes over \mathit{E}_3 , with generator matrices in Table 19.

    Table 19.  SD codes over \mathit{E}_3 of type \left\{ 1, 4 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&a&0&0&0&a\\0&f&0&0&0&g\\0&0&f&0&0&0\\0&0&0&f&0&0\\0&0&0&0&f&0 \end{pmatrix} 576 \begin{matrix} [1, 6, 18, 64, 192,288,160] \end{matrix} \begin{pmatrix} a&a&a&a&a&a\\0&f&0&0&0&g\\0&0&f&0&0&g\\0&0&0&f&0&g\\0&0&0&0&f&g \end{pmatrix} 1440 \begin{matrix} [1, 0, 30, 40, 90, 60,508] \end{matrix}

     | Show Table
    DownLoad: CSV

    For type \left\{ 0, 7 \right\} , there is one right self-dual code over \mathit{E}_3 , with generator matrix in Table 20.

    Table 20.  RSD codes over \mathit{E}_3 of type \left\{ 0, 7 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} f&0&0&0&0&0&0\\0&f&0&0&0&0&0\\0&0&f&0&0&0&0\\0&0&0&f&0&0&0\\0&0&0&0&f&0&0\\0&0&0&0&0&f&0\\0&0&0&0&0&0&f \end{pmatrix} 604800 [1, 14, 84, 280, 560, 672, 448, 128]

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 5 \right\} , there are two distinct self-dual codes over \mathit{E}_3 , with generator matrices in Table 21.

    Table 21.  SD codes over \mathit{E}_3 of type \left\{ 1, 5 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&a&0&a&a&a&a\\0&f&0&0&0&0&g\\0&0&f&0&0&0&0\\0&0&0&f&0&0&g\\0&0&0&0&f&0&g\\0&0&0&0&0&f&g \end{pmatrix} 2880 [1, 2, 30, 100, 170, 240, 628, 1016]
    \begin{pmatrix} a&a&0&0&0&0&a\\0&f&0&0&0&0&g\\0&0&f&0&0&0&0\\0&0&0&f&0&0&0\\0&0&0&0&f&0&0\\0&0&0&0&0&f&0 \end{pmatrix} 4608 \begin{matrix}[1, 8, 30, 100, 320, 672, 736, 320]\end{matrix}

     | Show Table
    DownLoad: CSV

    According to the mass formula in subsection 2.5, we enumerate all equivalent codes obtained under the action of the monomial group, and illustrate how the mass formula can be used in the classification of \mathit{E}_3 -codes, that is, we find representatives for the equivalence classes of \mathit{E}_3 -codes for each length and type. The following examples illustrate our results.

    Example 7. Let \mathcal{C} be the set of self-orthogonal codes over \mathit{E}_3 of length 3 and type \left\{ 1, 0 \right\} given by the following generator matrices:

    \left( \begin{pmatrix} a & a& a \end{pmatrix}, \begin{pmatrix} a & b& h \end{pmatrix} \right).

    The codes in \mathcal{C} are inequivalent and they have an automorphism group of order 12 and 6 respectively. Therefore, from Corollary 1,

    \sum\limits_{1}^2\frac{1}{\left| Aut(\mathcal{C}) \right|} = \frac{1}{12}+\frac{1}{6} = \frac{1}{4} = \frac{\mathcal{N}_{SO}(n, k_1, k_2)}{2^{n}n!} = \frac{4\times 3\times 1}{6\times 8} = \frac{1}{4}.

    It demonstrates that, up to monomial equivalency, there exist precisely two self-orthogonal codes.

    Example 8. Let \mathcal{C} be the set of left self-dual codes over \mathit{E}_3 of length 4 and type \left\{ 2, 0 \right\} given by the following generator matrix: \begin{pmatrix} a & 0 & a & a\\ 0 &a & a & e\\ \end{pmatrix}.

    The code in \mathcal{C} has an automorphism group of order 48. Therefore, by Corollary 4,

    \sum\limits_{1}^1\frac{1}{\left| Aut(\mathcal{C}) \right|} = \frac{1}{48} = \frac{\varphi_{n, \frac{n}{2}}}{2^{n}n!} = \frac{8\times 1\times 1}{24\times 16} = \frac{1}{48}.

    It demonstrates that, up to monomial equivalency, there exist only one left self-dual code.

    Example 9. Let \mathcal{C} be the set of self-dual codes over \mathit{E}_3 of length 7 and type \left\{ 1, 5 \right\} given by the following generator matrices:

    \left( \begin{pmatrix} a &a & 0& 0 & 0& 0& a\\ 0 &f & 0 & 0& 0&0 &g\\ 0 &0 & f & 0& 0&0 &0\\ 0 &0 & 0 & f& 0&0& 0\\ 0 &0 & 0& 0 & f&0& 0\\ 0 &0 & 0& 0 & 0&f& 0\\ \end{pmatrix}, \begin{pmatrix} a &a & 0& a & a& a& a\\ 0 &f & 0 & 0& 0&0 &g\\ 0 &0 & f & 0& 0&0 &0\\ 0 &0 & 0 & f& 0&0& g\\ 0 &0 & 0& 0 & f&0& g\\ 0 &0 & 0& 0 & 0&f& g\\ \end{pmatrix} \right).

    The codes in \mathcal{C} are inequivalent and they have an automorphism group of order 4608 and 2880 respectively. Therefore, from Corollary 2, we have

    \sum\limits_{1}^2\frac{1}{\left| Aut(\mathcal{C}) \right|} = \frac{1}{4608}+\frac{1}{2880} = 0.000564 = \frac{\varphi_{n, k_1}}{2^{7}7!} = \frac{364 }{128\times 5040} = 0.000564,

    which shows that there are exactly two self-dual codes, up to monomial equivalence.

    Next, we use our build-up construction methods mentioned in Sections 3.1–3.3 to obtain SO, RSD, LSD, and SD codes over \mathit{E}_3 . It is possible to discover several self-dual codes of suitable lengths in a fairly effective manner, as demonstrated by our computation. The partial classification results are summarized in Table 22 below.

    Table 22.  Classification of SO, RSD, LSD, and SD codes using the building method in Section 3.
    n Code Construction Length of constructed code {\mathbf x} d(\mathcal{C}) Weight distribution
    1 (f) Theorem 5 4 (1) 1 [1, 2, 0, 8, 16]
    Theorem 7 5 (0) 1 [1, 10, 40, 80, 80, 32]
    2 \begin{pmatrix} f&0\\0&f \end{pmatrix} Theorem 5 5 (10) 1 [1, 4, 4, 8, 32, 32]
    5 (11) 2 [1, 0, 8, 20, 12, 40]
    Theorem 7 6 (00) 1 [1, 6, 12, 16, 48, 96, 64]
    3 \begin{pmatrix} f&0&0\\0&f&0\\0&0&f \end{pmatrix} Theorem 5 6 (001) 1 \begin{matrix} [1,12,60,160,240,192,64] \end{matrix}
    Theorem 7 7 (000) 1 \begin{matrix} [1,14,84,280,560,672,448,128]\end{matrix}
    \begin{pmatrix} a&a&a\\0&f&g \end{pmatrix} Theorem 5 6 (020) 2 \begin{matrix} [1,0,2,20,30,28,162] \end{matrix}
    (002) 3 \begin{matrix} [1,0,0,16,0,0,64] \end{matrix}
    (111) 2 \begin{matrix} [1,0,14,20,48,160,0] \end{matrix}
    (221) 2 \begin{matrix} [1,0,10,0,24,68,140] \end{matrix}
    (110) 2 \begin{matrix} [1,0,6,28,0,48,160] \end{matrix}
    (210) 2 \begin{matrix} [1,0,2,32,48,64,96] \end{matrix}
    Theorem 6 7 (110)(120) 2 \begin{matrix} [1,0,6,52,48,192,928,960] \end{matrix}
    Theorem 7 6 (000) 1 \begin{matrix} [1,6,18,64,192,288,160] \end{matrix}
    Theorem 8 6 (100) 2 \begin{matrix} [1,0,12,40,36,240,400] \end{matrix}
    (110) 1 \begin{matrix} [1,6,12,64,30,150,466] \end{matrix}
    4 \begin{pmatrix} f&0&0&0\\0&f&0&0\\0&0&f&0\\0&0&0&f \end{pmatrix} Theorem 5 7 (0100) 2 \begin{matrix} [1,8,24,40,80,192,256,128] \end{matrix}
    (1111) 1 \begin{matrix} [1,2,12,40,50,60,220,344] \end{matrix}
    (1100) 1 \begin{matrix} [1,4,12,52,124,168,208,160] \end{matrix}
    Theorem 7 7 (0000) 1 \begin{matrix} [1,14,84,280,560,672,448,128] \end{matrix}
    \begin{pmatrix} a&0&a&a\\0&f&0&0\\0&0&f&g \end{pmatrix} Theorem 5 7 (1000) 1 \begin{matrix} [1,2,6,40,56,48,256,320] \end{matrix}
    (2211) 2 \begin{matrix} [1,0,2,16,34,76,232,368] \end{matrix}
    (1212) 2 \begin{matrix} [1,0,2,24,38,52,236,376] \end{matrix}
    (1010) 1 \begin{matrix} [1,2,6,40,56,48,256,320] \end{matrix}
    Theorem 6 8 (1100), (1200) 1 \begin{matrix} [1,2,6,64,152,288,1312,2816,1920] \end{matrix}
    (1010), (0102) 2 \begin{matrix} [1,0,10,40,192,412,1084,2850,1972] \end{matrix}
    (2001), (0110) 2 \begin{matrix} [1,0,2,40,78,164,1012,2784,2480] \end{matrix}
    4 \begin{pmatrix} a&0&a&a\\0&f&0&0\\0&0&f&g\\\end{pmatrix} Theorem 3.7 7 (1000) 1 \begin{matrix} [1,2,12,64,116,312,880,800] \end{matrix}
    (1221) 2 \begin{matrix} [1,0,12,40,90,240,724,1080] \end{matrix}
    (1010) 1 \begin{matrix} [1,2,6,40,56,48,256,320] \end{matrix}
    (1100) 2 \begin{matrix} [1,0,2,24,38,52,236,376] \end{matrix}
    \begin{pmatrix} a&0&a&a\\0&a&a&e\\\end{pmatrix} Theorem 5 7 (1100) 3 \begin{matrix} [1,0,0,40,48,0,256,384] \end{matrix}
    (1212) 3 \begin{matrix} [1,0,0,16,24,72,280,336] \end{matrix}
    Theorem 3.7 7 (0001) 1 \begin{matrix} [1,6,12,40,240,672,832,384] \end{matrix}
    (1111) 2 \begin{matrix} [1,0,6,52,48,192,928,960]\end{matrix}
    Theorem 3.5 8 (1100), (0011) 3 \begin{matrix} [1,0,0,34,96,0,1024,3072,2304]\end{matrix}
    5 \begin{pmatrix} f&0&0&0&0\\0&f&0&0&0\\0&0&f&0&0\\0&0&0&f&0\\0&0&0&0&f\\\end{pmatrix} Theorem 3.4 8 (10000) 1 \begin{matrix} [1,10,40,88,160,352,640,640,256] \end{matrix}
    (11110) 1 \begin{matrix} [1,4,16,64,130,160,340,784,688] \end{matrix}
    Theorem 3.6 8 (00000) 1 \begin{matrix} [1,16,112,448,1120,1792,1792,1024,256] \end{matrix}
    \begin{pmatrix} a&0&0&a&a\\0&f&0&0&0\\0&0&f&0&0\\0&0&0&f&g\\\end{pmatrix} Theorem 3.4 8 (11110) 2 \begin{matrix} [1,0,6,16,60,36,388,696,984] \end{matrix}
    (10000) 1 \begin{matrix} [1,4,10,52,136,160,352,832,640] \end{matrix}
    (22000) 1 \begin{matrix} [1,2,2,28,86,128,340,848,752] \end{matrix}
    (00011) 1 \begin{matrix} [1,4,10,52,136,160,352,832,640] \end{matrix}
    Theorem 3.5 9 (01100), (01200) 1 \begin{matrix} [1,4,10,76,280,592,1888,5440,7552,3840] \end{matrix}
    (01100), (00011) 2 \begin{matrix} [1,0,18,60,108,720,1416,2160,7200,8000] \end{matrix}
    5 \begin{pmatrix} a&0&0&a&a\\0&f&0&0&0\\0&0&f&0&0\\0&0&0&f&g\\\end{pmatrix} Theorem 3.5 9 (11112), (10001) 1 \begin{matrix} [1,2,2,44,158,320,1340,4808,8048,4960] \end{matrix}
    Theorem 3.7 8 (11110) 2 \begin{matrix} [1,0,8,64,120,176,880,2688,2624] \end{matrix}
    (10000) 1 \begin{matrix} [1,4,16,88,244,544,1504,2560,1600] \end{matrix}
    (00011) 1 \begin{matrix} [1,4,10,44,116,176,396,816,624] \end{matrix}
    (11111) 2 \begin{matrix} [1,0,14,40,60,320,472,480,800] \end{matrix}
    (00021) 1 \begin{matrix} [1,4,6,40,148,384,544,640,384] \end{matrix}
    6 \begin{pmatrix} f&0&0&0&0&0\\0&f&0&0&0&0\\0&0&f&0&0&0\\0&0&0&f&0&0\\0&0&0&0&f&0\\0&0&0&0&0&f \end{pmatrix} Theorem 3.4 9 (100000) 1 \begin{matrix} [1,12,60,168,336,672,1344,1920,1536,512] \end{matrix}
    (111100) 1 \begin{matrix} [1,6,24,96,258,420,660,1464,2256,1376] \end{matrix}
    (110000) 1 \begin{matrix} [1,8,32,116,380,872,1376,1664,1472,640] \end{matrix}
    Theorem 3.6 9 (000000) 1 \begin{matrix} [1,18,144,672,2016,4032,5376,4608,2304,512] \end{matrix}
    \begin{pmatrix} a&a&0&0&0&a\\0&f&0&0&0&g\\0&0&f&0&0&0\\0&0&0&f&0&0\\0&0&0&0&f&0\\\end{pmatrix} Theorem 3.4 9 (111100) 1 \begin{matrix} [1,2,6,28,92,156,460,1472,2376,1968] \end{matrix}
    (100000) 1 \begin{matrix} [1,6,14,32,120,368,908,1800,2192,1120] \end{matrix}
    (001111) 2 \begin{matrix} [1,0,10,30,90,136,276,1296,1888,2834] \end{matrix}
    (000022) 1 \begin{matrix} [1,4,6,30,136,324,654,1462,2352,1592] \end{matrix}
    6 \begin{pmatrix} a&a&0&0&0&a\\0&f&0&0&0&g\\0&0&f&0&0&0\\0&0&0&f&0&0\\0&0&0&0&f&0\\\end{pmatrix} Theorem 3.4 9 (111011) 1 \begin{matrix} [1,2,14,68,140,440,1112,1424,1760,1600] \end{matrix}
    (110000) 1 \begin{matrix} [1,6,18,72,240,432,672,1536,2304,1280] \end{matrix}
    Theorem 3.5 10 \begin{matrix}(110000), (120000)\end{matrix} 1 \begin{matrix} [1,6,18,96,432,1152,3072,9216,18432,18944,7680] \end{matrix}
    \begin{matrix}(110000), (001100)\end{matrix} 1 \begin{matrix} [1,2,18,96,228,936,2856,4992,11520,22400,16000] \end{matrix}
    \begin{matrix}(111110), (211110)\end{matrix} 2 \begin{matrix} [1,0,12,36,138,516,1464,4584,10650,20936,20712] \end{matrix}
    \begin{matrix}(110000), (211110)\end{matrix} 2 \begin{matrix} [1,0,18,60,162,720,2064,4320,9144,20960,21600] \end{matrix}
    Theorem 3.6 9 (000000) 1 \begin{matrix} [1,12,66,252,840,2352,4704,5952,4224,1280] \end{matrix}
    Theorem 3.7 9 (111100) 1 \begin{matrix} [1,2,8,80,248,416,1232,4448,8000,5248] \end{matrix}
    (100000) 1 \begin{matrix} [1,6,20,88,336,992,2752,5760,6656,3072] \end{matrix}
    (111011) 1 \begin{matrix} [1,2,14,68,140,440,1112,1424,1760,1600] \end{matrix}
    (110000) 1 \begin{matrix} [1,6,18,72,240,432,672,1536,2304,1280] \end{matrix}
    (111101) 1 \begin{matrix} [1, 2, 12, 70,134,402 \ 1192, 1484, 1584, 1680] \end{matrix}
    \begin{pmatrix} a&a&a&a&a&a\\0&f&0&0&0&g\\0&0&f&0&0&g\\0&0&0&f&0&g\\0&0&0&0&f&g\\\end{pmatrix} Theorem 3.4 9 (001212) 1 \begin{matrix} [1,2,6,28,92,156,460,1472,2376,1968] \end{matrix}
    6 \begin{pmatrix} a&a&a&a&a&a\\0&f&0&0&0&g\\0&0&f&0&0&g\\0&0&0&f&0&g\\0&0&0&0&f&g\\\end{pmatrix} Theorem 3.4 9 (100000) 2 \begin{matrix} [1,0,20,38,60,320,410,1218,938,3556] \end{matrix}
    (111100) 2 \begin{matrix} [1,0,18,36,90,360,600,504,1512,3440] \end{matrix}
    (210000) 2 \begin{matrix} [1,0,14,40,114,320,904,1560,1448,2160] \end{matrix}
    Theorem 3.5 10 \begin{matrix}(111110), (121110)\end{matrix} 2 \begin{matrix} [1,0,18,60,162,720,2064,4320,9144,20960,21600] \end{matrix}
    \begin{matrix}(110000), (001100)\end{matrix} 1 \begin{matrix} [1,2,18,96,228,936,2856,4992,11520,22400,16000] \end{matrix}
    \begin{matrix}(210111), (000021)\end{matrix} 1 \begin{matrix} [1,4,6,48,246,636,1980,7488,17664,21056,9920] \end{matrix}
    \begin{matrix}(110000), (120000)\end{matrix} 2 \begin{matrix} [1,0,30,72,138,1020,3228,4800,6240,19136,24384] \end{matrix}
    \begin{matrix}(110000), (000011)\end{matrix} 2 \begin{matrix} [1,0,12,54,156,678,2184,4440,8868,21008,21648] \end{matrix}
    Theorem 3.6 9 (000000) 1 \begin{matrix} [1,6,42,228,690,1320,2268,4488,6576,4064] \end{matrix}
    Theorem 3.7 9 (100000) 2 \begin{matrix} [1,0,26,70,240,980,1330,2622,4718,9696] \end{matrix}
    (111100) 2 \begin{matrix} [1,0,36,60,270,900,1848,2160,4248,10160] \end{matrix}
    (002121) 1 \begin{matrix} [1,2,8,80,248,416,1232,4448,8000,5248] \end{matrix}
    (002121) 2 \begin{matrix} [1,0,14,40,114,320,904,1560,1448,2160] \end{matrix}

     | Show Table
    DownLoad: CSV

    In this study, we have derived and used propagation rules over a certain non-unital ring of order 9 to generate self-orthogonal, one-sided self-dual and self-dual codes. Combining this generating technique with mass formulas we have classified these three classes of codes in length at most 7 up to monomial equivalence. It is an open problem to know if, alike what happens in [4], all codes in the three families can be generated by this technique up to some mild type condition.

    In order to expand the classification results to longer lengths, more processing power or more efficient automorphism algorithms may be required due to the combinatorial explosion of codes in the three families.

    The authors declare they have not used Artificial Intelligence (AI) tools in the creation of this article.

    This research work was funded by Institutional Fund Projects under grant No. (IFPRC-105-130-2020). Therefore, authors gratefully acknowledge technical and financial support from the Ministry of Education and King Abdulaziz University, Jeddah, Saudi Arabia.

    All authors declare no conflicts of interest in this paper.

    [1] Levitan A. V., Redman T. C. (1998) Data as a resource: Properties, implications and prescriptions. Sloan Management Review 40: 89-101.
    [2] A. Koronios, S. Lin and J. Gao, A data quality model for asset management in engineering organisations, Proceedings of the 10th International Conference on Information Quality, Massachusetts Institute of Technology, Cambridge, USA, 2005.
    [3] G. Gilliland, S. K. Barger, V. Bhatia and R. Nicol, Creating value through data integrity: A pragmatic approach, BCG Perspectives, (2011), Available at http://www.bcgindia.com/documents/file83320.pdf.
    [4] Rao J. S., Zubair M., Rao C. (2003) Condition monitoring of power plants through the Internet. Integrated Manufacturing Systems 14: 508-517.
    [5] O. Prakash, Asset management through condition monitoring -How it may go wrong: A case study, Proceedings of the 1st World Congress on Engineering Asset Management, (WCEAM) 2006, Gold Coast, Queensland, Australia, July 11–14,2006.
    [6] Kalogirou S. A. (2003) Artificial intelligence for the modeling and control of combustion processes: A review. Progress in Energy and Combustion Science 29: 515-566.
    [7] Liao S. H. (2005) Expert system methodologies and applications -A decade review from 1995 to 2004. Expert Systems with Applications 28: 93-103.
    [8] K. Warwick, A. O. Ekwue and R. Aggarwal, Artificial Intelligence Techniques in Power Systems, Institution of Electrical Engineers, Stevenage, UK, 1997.

    10.1049/PBPO022E

    [9] K. Wang, Intelligent Condition Monitoring and Diagnosis System a Computational Intelligent Approach, Frontiers in Artificial Intelligence and Applications, 93,2003.
    [10] Rao M., Yang H., Yang H. (1996) Integrated distributed intelligent system for incident reporting in DMI pulp mill, success and failures of knowledge-based systems in real-world applications. Proceedings of the First International Conference : 169-178.
    [11] Rao M., Zhou J., Yang H. (1998) Architecture of integrated distributed intelligent multimedia system for on-line real-time process monitoring. SMC'98 Conference Proceedings, 1998 IEEE International Conference on Systems, Man, and Cybernetics 2: 1411-16.
    [12] Rao M., Zhou J., Yang H. (1998) Integrated distributed intelligent system architecture for incidents monitoring and diagnosis. Computers in Industry 37: 143-151.
    [13] Reichard K. M., Van Dyke M., Maynard K. (2000) Application of sensor fusion and signal classification techniques in a distributed machinery condition monitoring system. Proceedings of SPIE -The International Society for Optical Engineering 4051: 329-336.
    [14] J. Campos and O. Prakash, Information and communication technologies in condition monitoring and maintenance, in Dolgui, A., Morel, G and Pereira, C. E. (Eds. ) Information Control Problems in Manufacturing, Elsevier, 39 (2006), 3-8.

    10.3182/20060517-3-FR-2903.00003

    [15] Campos J. (2009) Survey paper: Development in the application of ICT in condition monitoring and maintenance. Computers in Industry 60: 1-20.
    [16] Sycara K. P. (1998) MultiAgent Systems. AI Magazine 19.
    [17] Feng J. Q., Buse D. P., Wu Q. H., Fitch J. (2002) A multi-agent based intelligent monitoring system for power transformers in distributed substations. International Conference on Power System Technology Proceedings 3: 1962-1965.
    [18] Weaver A. C. (1997) The internet and the world wide web. 23 rd International Conference on Industrial Electronics, Control and Instrumentation 4: 1529-1540.
    [19] D. Stenmark, Designing the new intranet, Gothenburg Studies in Informatics, Report 21, March 2002.
    [20] M. D. Assunção, R. N. Calheiros, S. Bianchi, M. A. S. Netto and R. Buyya, Big data computing and clouds: Trends and future directions, Journal of Parallel and Distributed Computing, Special Issue on Scalable Systems for Big Data Management and Analytics, (2015), 79-80, 3-15.

    10.1016/j.jpdc.2014.08.003

    [21] B. Xu and S. Kumar, Big Data Analytics Framework For System Health Monitoring, Presented at the 2015 IEEE International Congress on Big Data (BigData Congress), IEEE Computer Society, 2015.

    10.1109/BigDataCongress.2015.66

    [22] Fumeo E., Oneto L., Anguita D. (2015) Condition based maintenance in railway transportation systems based on big data streaming analysis. Procedia Computer Science 53: 437-446.
    [23] A. Mohamed, M. S. Hamdi and S. Tahar, A machine learning approach for big data in oil and gas pipelines, Presented at the 2015 International Conference on Future Internet of Things and Cloud (FiCloud), 2015 International Conference on Open and Big Data (OBD), IEEE Computer Society, 2015.

    10.1109/FiCloud.2015.54

    [24] A. Nunez, J. Hendriks, L. Zili, B. De Schutterand and R. Dollevoet, Facilitating maintenance decisions on the dutch railways using big data: The ABA case study, Presented at the 2014 IEEE International Conference on Big Data (Big Data), IEEE. 2014.

    10.1109/BigData.2014.7004431

    [25] A. Parida and U. Kumar, Managing information is key to maintenance effectiveness, in Proceedings of Intelligent Maintenance System, Arles, France, 15-17 July, 2004.
    [26] P. Soderholm, Continuous Improvement of Complex Technical System: Aspects of Stakeholder Requirements and System Functions, Licentiate Thesis, Division of Quality and Environmental Management, Lulea University of Technology, Lulea, 2003.
    [27] Chen G., Wua S., Wang Y. (2015) The evolvement of big data systems: From the perspective of an information security application. Big Data Research 2: 65-73.
    [28] Fan W., Bifet A. (2012) Mining big data: Current status, and forecast to the future. SIGKDD Explorations 14: 1-5.
    [29] N. Taleb, Antifragile: How to Live in a World We Don't Understand, Penguin Books Limited, 2012.
    [30] A. Parida, Role of condition monitoring and performance measurements in asset productivity enhancement, 20th International Conference on Condition Monitoring and Diagnostic Engineering Management, Faro, Portugal, 2007.
    [31] Jagadish H. V., Gehrke J., Labrinidis A., Papakonstantinou Y., Patel J. M., Ramakrishnan R., Shahabi C. (2014) Big data and its technical challenges. Communications Of The ACM 57: 86-94.
    [32] Kumar U., Galar D., Parida A., Stenström C., Berges L. (2013) Maintenance performance metrics: A state-of-the-art review. Journal of Quality in Maintenance Engineering 19: 233-277.
    [33] Orlikowski W. J., Barley S. R. (2001) Technology and institutions: What can research on information technology and research on organizations learn from each other?. MIS Quarterly 25: 145-165.
    [34] S. Rogers, Big data is scaling bi and analytics, Available at http://www.informationmanagement.com/issues/21-5/big-data-is-scaling-bi-and-analytics-10021093-1.html, 2011.
    [35] Fan J., Han F., Liu H. (2014) Challenges of big data analysis. National Science Review 1: 293-314.
    [36] Wu X., Zhu X., Wu G.-Q., Ding W. (2014) Data mining with big data. IEEE Transactions on Knowledge and Data Engineering 26: 97-107.
    [37] Hsieh J. C., Li A. H., Yang C. C. (2013) Mobile, cloud, and big data computing: Contributions, challenges, and new directions in telecardiology. International Journal of Environmental Research and Public Health 10: 6131-6153.
    [38] ISACA, Generating Value From Big Data Analytics, White Paper, Retrieved from (http://www.isaca.org), 2014.
    [39] Bollen J., Mao H., Zeng X. (2011) Twitter mood predicts the stock market. Journal of Computational Science 2: 1-8.
    [40] Gundami A., Haider M. (2015) Beyond the hype: Big data concepts, methods, and analytics. International Journal of Information Management 35: 137-144.
    [41] Oborski P. (2004) Man-machine interactions in advanced manufacturing systems. The International Journal of Advanced Manufacturing Technology 23: 227-232.
    [42] J. Horák, I. Ivan, T. Inspektor and J. Tesla, Sparse big data problem: A case study of czech graffiti crimes, In: Ivan I., Singleton A., Horák J., Inspektor T. (eds) The Rise of Big Spatial Data, Lecture Notes in Geoinformation and Cartography, Springer, 2017.
    [43] Yan Y., Chen L. J., Zhang Z. (2014) Error bounded sampling for analytics on big sparse data. Proceedings of the VLDB Endowment 7: 1508-1519.
    [44] Kumar P. K., Rao P. C., Changala R., Rao T. J., Shankar P. H. (2015) Data mining challenges with big data. International Journal for Research in Applied Science & Engineering Technology (IJRASET) 3: 148-150.
    [45] Longadge R., Dongre S. S., Malik L. (2013) Class imbalance problem in data mining: Review. International Journal of Computer Science and Network (IJCSN) 2.
    [46] He H., Garcia E. A. (2009) Learning from imbalanced data. IEEE Transactions on Knowledge and Data Engineering 21: 1263-1284.
    [47] Sun Y., Wong A. K. C., Kamel M. S. (2009) Classification of imbalanced data: A review. International Journal of Pattern Recognition and Artificial Intelligence 23: 687-719.
    [48] Weiss G. M. (2004) Mining with rarity: A unifying framework. SIGKDD Explorations 6: 7-19.
    [49] Widmer G., Kubat M. (1996) Learning in the presence of concept drift and hidden contexts. Machine Learning 23: 69-101.
    [50] Zhang P., Zhu X., Shi Y. (2008) Categorizing and mining concept drifting data streams. the 14th ACM SIGKDD International Conference On Knowledge Discovery And Data Mining : 812-820.
    [51] Chandak M. B. (2016) Role of big data in classification and novel class detection in data streams. Journal of Big Data 3: 1-9.
    [52] Zliobaite I., Pechenizkiy M., Gama J. (2015) An overview of concept drift applications. Big Data Analysis: New Algorithms for a New Society 16: 91-114.
  • This article has been cited by:

    1. Tamador Alihia, On the Duality of Codes over Non-Unital Commutative Ring of Order p2, 2025, 17, 2073-8994, 690, 10.3390/sym17050690
  • Reader Comments
  • © 2017 the Author(s), licensee AIMS Press. This is an open access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/4.0)
通讯作者: 陈斌, bchen63@163.com
  • 1. 

    沈阳化工大学材料科学与工程学院 沈阳 110142

  1. 本站搜索
  2. 百度学术搜索
  3. 万方数据库搜索
  4. CNKI搜索

Metrics

Article views(5352) PDF downloads(733) Cited by(3)

Figures and Tables

Figures(3)

/

DownLoad:  Full-Size Img  PowerPoint
Return
Return

Catalog