**1. Introduction**

With the era of big data, the complexity of data processing in time and space have become increasingly demanding. Real-time updating of data requires efficient processing of dynamic data. The concept lattice is a powerful tool for data analysis which was proposed by Professor Wille R in 1982 [1]. It has completeness and accuracy, and has been widely applied in information retrieval, digital library, knowledge discovery, and so on [2–4]. Domestic and overseas scholars have carried out various research on concept lattices that mainly include a construction algorithm and improvement [5–7], rule mining based on concept lattices [8,9], and the fusion of other theories such as fuzzy theory, predicate logic, and rough set theory.

For different needs, some expanded concept lattices have been produced, such as, the fuzzy concept lattice, weighted concept lattice, constraint concept lattice, quantitative concept lattice, expansion concept lattice, rough concept lattice etc. [10–12]. In particular, the classic concept lattice, fuzzy concept lattice and weighted concept lattices, the extent contains the objects which meet all the attributes in the intent. To find the concepts which have partial attributes, we must scan the concept lattice and combine the concepts. The time cost is large especially for large concept lattices. While, in the rough concept lattice, although the concepts which have partial attributes can be searched, there may be a lot of objects which only have an attribute of the intent, thus the support and degree of confidence of constructing association rules will be greatly reduced. In practical applications, we often care about the object set which has a certain number or percent of attributes in intent. Then, some pertinent association rules will be mined through a correlation analysis.

Based on the above questions, the interval concept lattice [13] was put forward in 2012 as a collection of objects which had a certain number or percentage of attributes in the connotation. Its expression of concept is (*M<sup>α</sup>*, *<sup>M</sup>β*,*<sup>Y</sup>*). Classical concept lattices are constructed from all attributes with full connotations of extensions, and its expression of concept is (*<sup>X</sup>*,*<sup>Y</sup>*). Rough concept lattices are composed of the concepts of a maximum attribute set and minimum attribute set containing connotative attributes respectively by upper approximate extension and lower approximate extension. The conceptual form of rough concept lattices is (*<sup>M</sup>*, *<sup>N</sup>*,*<sup>Y</sup>*). Interval concept lattices degenerate into classical concept lattices or rough concept lattices when the parameters are *α* = 0, *β* = 1 or *α* = 1/|*Y*|, *β* = 1, separately. As will be readily seen, interval concept lattice is a general form of classical concept lattice and rough concept lattice.

On the other hand, with the dynamic change of data, the structure of an interval concept lattice will also change. The association rules are also updated in real time. For example, every day a huge amount of transaction information is generated. If we build the interval concept lattice from the daily trading information, we can only tap the local association rules [14,15]. It cannot provide timely and accurate decision-making for the decision-makers from the overall supermarket shopping system. Therefore, it is very necessary to carry out research on the uniting of interval concept lattices to realize data aggregation. Therefore, the dynamic uniting of interval concept lattices is of grea<sup>t</sup> significance.

At present, the main union algorithms of concept lattices are as follows: Reference [16] arranges sub-concept lattices vertically or horizontally in ascending or descending order according to the connotation or extension of the concept; Reference [17] proposes synonymous concepts and updates all father-child nodes according to the relationship between father-child concepts; Reference [18] gives an ordered outline by discussing the relationship between the same concept lattices with the same object set. Since the interval concept lattice has only been proposed for about two years, research on it is limited to the progressive generation algorithm of lattice structure, dynamic compression algorithm and association rules mining algorithm. There is no relevant literature on the uniting of interval concept lattices. The uniting of interval concept lattices is divided into vertical and horizontal uniting. The principle and algorithm of vertical uniting of lattices [19] are studied preliminarily. In this paper, the algorithm for dynamic horizontal uniting of interval concept lattices generated from multiple databases was studied.

The structure is as follows: Section 2 introduces the basic concepts of interval concept lattices, the incremental generation algorithm of interval concept lattices [20] and the related concepts of formal context uniting [21,22]; Section 3 proposes the basic theorem of interval concept lattices' horizontal uniting. On the basis of improving the incremental generation algorithm of interval concept lattices, the horizontal uniting algorithm of interval concept lattices was designed. In Section 4, an example is given to demonstrate the feasibility and efficiency of the algorithm.

## **2. Theoretical and Methodological Basis**

For example, in the supermarket shopping system, the promotional manager often pays more attention to the customers who purchase k (k > 1) kinds of goods or more and the potential demand of these customers, and then carry out product marketing to ge<sup>t</sup> the greatest benefit through minimum promotion. However, in the existing concept lattice structure, this kind of query cannot be operated directly, and some union connections or filtrations must be performed. The time and space costs are too high. In order to address this problem, interval concept lattices are required.

## *2.1. Interval Concept Lattice*

**Definition 1.** *For the formal context* (*<sup>U</sup>*, *A*, *R*) *and its rough concept lattice RL*(*<sup>U</sup>*, *A*, *<sup>R</sup>*)*,* (*<sup>M</sup>*, *<sup>N</sup>*,*<sup>Y</sup>*) *is the rough concept. Set an interval* [*α*, *β*] (0 ≤ *α* ≤ *β* ≤ <sup>1</sup>)*, then α upper bound extension Mα and β lower bound extent Mβ are:*

$$M^{\mathfrak{a}} = \{ \mathbf{x} | \mathbf{x} \in M, |f(\mathbf{x}) \cap Y| / |Y| \ge \mathfrak{a}, 0 \le \mathfrak{a} \le 1 \}\tag{1}$$

$$M^{\mathcal{S}} = \{ \mathbf{x} | \mathbf{x} \in M, |f(\mathbf{x}) \cap Y| / |Y| \ge \mathcal{S}, 0 \le \mathbf{a} \le \mathcal{P} \le 1 \}\tag{2}$$

*Y is the concept intension and* |*Y*| *is the number of elements in Y, that is base number, Mα refers to the objects which may be covered by α* × |*Y*| *attributes or more in Y. Mβ refers to the objects which may be covered by β* × |*Y*| *attributes or more in Y.*

**Definition 2.** *Suppose* (*<sup>U</sup>*, *A*, *R*) *is a formal context and* (*M<sup>α</sup>*, *<sup>M</sup>β*,*<sup>Y</sup>*) *is an interval concept. Y is the intent. Mα is the α upper bound extension and Mβ is the β lower bound extension.*

**Definition 3.** *Suppose* (*<sup>U</sup>*, *A*, *R*) *has two interval concepts,* (*M<sup>α</sup>*1 , *Mβ*1 ,*Y*1) *and* (*M<sup>α</sup>*2 , *Mβ*2 ,*Y*2)*. If* (*M<sup>α</sup>*1 , *Mβ*1 ,*Y*1) *and* (*M<sup>α</sup>*2 , *Mβ*2 ,*Y*2) *meet Y*1 ⊆ *Y*2*,* |*<sup>Y</sup>*2| − |*<sup>Y</sup>*1| = 1*, <sup>M</sup><sup>α</sup>*1 = *<sup>M</sup><sup>α</sup>*2 *and Mβ*1 = *Mβ*2 *, then* (*M<sup>α</sup>*1 , *Mβ*1 ,*Y*1) *is called the redundant concept.*

**Definition 4.** *Suppose* (*<sup>U</sup>*, *A*, *R*) *has an interval concept,* (*M<sup>α</sup>*, *<sup>M</sup>β*,*<sup>Y</sup>*)*. If it meets Mα* = *Mβ* = ∅*, then* (*M<sup>α</sup>*, *<sup>M</sup>β*,*<sup>Y</sup>*) *is called the empty concept.*

**Definition 5.** *Suppose* (*<sup>U</sup>*, *A*, *R*) *has an interval concept, C* = (*M<sup>α</sup>*, *<sup>M</sup>β*,*<sup>Y</sup>*)*. If C is neither the redundant concept nor the empty concept, then C is called the existence concept. Lβα* (*<sup>U</sup>*, *A*, *R*) *is a collection of all the existence concepts.*

**Definition 6.** *Lβα* (*<sup>U</sup>*, *A*, *R*) *refers to all the* [*α*, *β*] *interval concepts, which includes: existence concepts, redundant concepts and empty concepts, that is:*

$$(M\_1^a, M\_1^\beta, \mathbb{Y}\_1) \le (M\_2^a, M\_2^\beta, \mathbb{Y}\_2) \Leftrightarrow \mathbb{Y}\_1 \supseteq \mathbb{Y}\_2. \tag{3}$$

*Then "*≤*" is called the partial order relationship of Lβα* (*<sup>U</sup>*, *A*, *<sup>R</sup>*)*.*

**Definition 7.** *If all the concepts in Lβα* (*<sup>U</sup>*, *A*, *R*) *meet "*≤*", then Lβα* (*<sup>U</sup>*, *A*, *R*) *calls interval concept lattice on the formal context* (*<sup>U</sup>*, *A*, *<sup>R</sup>*)*.*

**Definition 8.** *In the interval concept lattice Lβα* (*<sup>U</sup>*, *A*, *<sup>R</sup>*)*, if C* = (*M<sup>α</sup>*, *<sup>M</sup>β*,*<sup>Y</sup>*) ∈ *Lβα* (*<sup>U</sup>*, *A*, *<sup>R</sup>*)*, then the layers of the Lattice Structure is* |*A*| + 1 *and node C is at Layer* |*Y*|*. In particular, when Y* = ∅*, C was recorded on the zeroth layer.*

*2.2. Incremental Construction Algorithm of Interval Concept Lattice (ICAICL)*

Thought of algorithm [11] is as follows.

(1) Calculate the attribute power set *P*(*A*) from formal context and let each element *Y* of power set be intent. Construct the initial node-set G according to the intension cardinal number in ascending order. For clarity, suppose each concept is a six-point group:

$$(M^a, M^\beta, \text{Y}, \text{Parent}, \text{Chill}(\text{rem}, \text{No}), \tag{4}$$

where *M<sup>α</sup>*, *Mβ* is null set, and *Parent* = *Children* = "*NULL*".

(2) Set parameters *α*, *β* and the node of *Y* is *G* = (*M<sup>α</sup>*, *<sup>M</sup>β*,*<sup>Y</sup>*). Traversing the intent *Yi* of every object, if *Yi* ⊆ *Y* and |*Yi*|/|*Y*| ≥ *α*, then merge the object into *M<sup>α</sup>*; if *Yi* ⊆ *Y* and |*Yi*|/|*Y*| ≥ *β*, merge the object into *Mβ*.

(3) Firstly, construct the root and end node, then insert other nodes as new ones into the lattice incrementally to form the lattice structure. After inserting a new one, there are three kinds of nodes in the *Lβα* : New node (the node inserted), invariant and update node.

## **3. Dynamic Horizontal Union Algorithm**

*3.1. Basic Principles*

**Definition 9.** *In the two formal context K*1 = (*<sup>G</sup>*1, *M*1, *<sup>I</sup>*1) *and K*2 = (*<sup>G</sup>*2, *M*2, *<sup>I</sup>*2)*, if gI*1*<sup>m</sup>* ⇔ *gI*2*<sup>m</sup> for each g* ∈ *G*1 ∩ *G*2 *and m* ∈ *M*1 ∩ *M*2*, then K*1 *and K*2 *are consistent [12,13]. Otherwise, K*1 *and K*2 *are inconsistent.*

**Definition 10.** *Suppose the formal context* (*<sup>U</sup>*1, *A*1, *<sup>R</sup>*1) *and* (*<sup>U</sup>*2, *A*2, *<sup>R</sup>*2) *is consistent and they compose interval concept lattice Lβ*<sup>1</sup> *α*1 (*<sup>U</sup>*1, *A*1, *<sup>R</sup>*1) *and Lβ*<sup>2</sup> *α*2 (*<sup>U</sup>*2, *A*2, *<sup>R</sup>*2) *respectively. When they meet α*1 = *α*2 = *α and β*1 = *β*2 = *β, then Lβα* (*<sup>U</sup>*1, *A*1, *<sup>R</sup>*1) *and Lβα* (*<sup>U</sup>*2, *A*2, *<sup>R</sup>*2) *call consistently, otherwise they are inconsistent.*

**Definition 11.** *If interval concept lattice Lβα* (*<sup>U</sup>*1, *A*1, *<sup>R</sup>*1) *and Lβα* (*<sup>U</sup>*2, *A*2, *<sup>R</sup>*2) *is consistent and meet U* = *U*1 = *U*2*, we get Lβα* (*<sup>U</sup>*, *A*, *R*) *when we combine them. Lβα* (*<sup>U</sup>*, *A*, *R*) *call horizontal union of Lβα* (*<sup>U</sup>*1, *A*1, *<sup>R</sup>*1) *and Lβα* (*<sup>U</sup>*2, *A*2, *<sup>R</sup>*2)*. Suppose C*1 ∈ *Lβα* (*<sup>U</sup>*1, *A*, *<sup>R</sup>*1)*, C*2 ∈ *Lβα* (*<sup>U</sup>*2, *A*, *<sup>R</sup>*2)*, then C* = *C*1 ⊗ *C*2 *is the horizontal union of the interval concept.*

The concepts in *Lβα* (*<sup>U</sup>*, *A*, *R*) can be divided into two categories. The first is that the number of conceptual connotative attributes in the original structure equals the number of layers of the concepts, and the second is that the sum of the number of conceptual connotative attributes in the two original structures equals the number of layers of the concepts. The specific combination of the two concepts is as follows:

**Theorem 1.** *Suppose Lβα* (*<sup>U</sup>*1, *A*1, *<sup>R</sup>*1) *and Lβα* (*<sup>U</sup>*2, *A*2, *<sup>R</sup>*2) *is consistent and meet A*1 = *A*2 = *A. At the same time suppose* (*M<sup>α</sup>*1 , *Mβ*1 ,*Y*1) *and* (*M<sup>α</sup>*2 , *Mβ*2 ,*Y*2) *are interval concepts in Lβα* (*<sup>U</sup>*1, *A*, *<sup>R</sup>*1) *and Lβα* (*<sup>U</sup>*2, *A*, *<sup>R</sup>*2) *respectively. If they meet Y* = *Y*1 = *Y*2*, Mα* = *<sup>M</sup><sup>α</sup>*1 ∪ *<sup>M</sup><sup>α</sup>*2 *and Mβ* = *Mβ*1 ∪ *Mβ*2 *, then* (*M<sup>α</sup>*, *<sup>M</sup>β*,*<sup>Y</sup>*) *is the interval concept after vertical union.*

Theorem 1 shows that for the first kind of concepts, the extension and intension of upper and lower bounds of the concepts themselves remain unchanged before and after uniting. But the flags of conceptual types are different. When the conceptual labels flag equals 2 and flag equals 3 in the lattice structure, they remain unchanged after uniting; when the conceptual label flag equals 1 in the lattice structure, flags may equal 1 or 2 after uniting.

**Proof.** Since the formal context corresponding to the primitive structure is contained in the formal context corresponding to the united lattice structure, the ternary ordered pairs of concepts in the primitive structure are completely preserved in the united lattice structure. At the same time, there is no change before and after the uniting of empty concepts and redundant concepts. For the existence concepts, the new concepts generated by uniting may make themselves redundant.

For the second kind of concept, *C* = (*M<sup>α</sup>*, *<sup>M</sup>β*,*<sup>Y</sup>*) ∈ *Lβα* (*<sup>U</sup>*, *A*, *<sup>R</sup>*), *C*1 = (*M<sup>α</sup>*1 , *Mβ*1 ,*Y*1) ∈ *Lβα* (*<sup>U</sup>*, *A*1, *<sup>R</sup>*1), *C*2 = (*M<sup>α</sup>*2 , *Mβ*2 ,*Y*2) ∈ *Lβα* (*<sup>U</sup>*, *A*2, *<sup>R</sup>*2). When *Y*1 ∩ *Y*2 = ∅, taking the upper boundary extension as an example, the case of horizontal union can be divided into the following two types: See Theorems 2 and 3. 

**Theorem 2.** *When* |*<sup>Y</sup>*1|*<sup>α</sup>* + |*<sup>Y</sup>*2|*<sup>α</sup>* = |*<sup>Y</sup>*1 ∪ *<sup>Y</sup>*2|*<sup>α</sup>, Mα* = *<sup>M</sup><sup>α</sup>*1 ∩ *<sup>M</sup><sup>α</sup>*2 *, verify whether x*1 = *<sup>M</sup><sup>α</sup>*1 − *Mα and x*2 = *<sup>M</sup><sup>α</sup>*2 − *Mα are empty, if not empty, then bring them into and verify whether* | *f*(*x*)∩(*<sup>Y</sup>*1∪*Y*2)| |*Y*| ≥ *α. If* | *f*(*x*)∩(*<sup>Y</sup>*1∪*Y*2)| |*Y*| ≥ *α, add objects to M<sup>α</sup>, or not. Symbol x denotes the smallest integer greater than or equal to x.*

**Proof.** Determined by the boundary extension itself | *f*(*x*)∩*<sup>Y</sup>*| |*Y*| ≥ *α*, the object satisfying this formula contains at least B attributes, and *Y*1 ∩ *Y*2 = ∅. |*<sup>Y</sup>*1|*<sup>α</sup>* + |*<sup>Y</sup>*2|*<sup>α</sup>* = |*<sup>Y</sup>*1 ∪ *<sup>Y</sup>*2|*<sup>α</sup>* is equivalent to *Mα* = *<sup>M</sup><sup>α</sup>*1 ∩ *<sup>M</sup><sup>α</sup>*2 . However, *x*1 = *<sup>M</sup><sup>α</sup>*1 − *Mα* or *x*2 = *<sup>M</sup><sup>α</sup>*2 − *Mα* may still contain objects larger than or equal to (|*<sup>Y</sup>*1 ∪ *<sup>Y</sup>*2|*α*), so it needs further verification and cannot be eliminated directly. 

**Theorem 3.** *When* |*<sup>Y</sup>*1|*<sup>α</sup>* = |*<sup>Y</sup>*1 ∪ *<sup>Y</sup>*2|*<sup>α</sup>, Mα* = *<sup>M</sup><sup>α</sup>*1 *, verify whether x*1 = *<sup>M</sup><sup>α</sup>*1 − *Mα and x*2 = *<sup>M</sup><sup>α</sup>*2 − *Mα are empty, if not empty, then bring them into and verify whether* | *f*(*x*)∩(*<sup>Y</sup>*1∪*Y*2)| |*Y*| ≥ *α. If* | *f*(*x*)∩(*<sup>Y</sup>*1∪*Y*2)| |*Y*| ≥ *α, adds objects to M<sup>α</sup>, or not.* |*<sup>Y</sup>*2|*<sup>α</sup>* = |*<sup>Y</sup>*1 ∪ *<sup>Y</sup>*2|*<sup>α</sup>.*

**Theorem 4.** *Supposes that Lβα* (*<sup>U</sup>*, *A*, *R*) *is the interval concept lattice obtained by the horizontal uniting of Lβα* (*<sup>U</sup>*, *A*1, *<sup>R</sup>*1) *and Lβα* (*<sup>U</sup>*, *A*2, *<sup>R</sup>*2) *(A*1 ∩ *A*2 = ∅*), then the m-level node of Lβα* (*<sup>U</sup>*, *A*, *R*) *is Cm*|*<sup>A</sup>*1|+|*<sup>A</sup>*2<sup>|</sup> = *Cm*|*<sup>A</sup>*1<sup>|</sup> + *Cm*−<sup>1</sup> |*<sup>A</sup>*1| *<sup>C</sup>*<sup>1</sup>|*<sup>A</sup>*2<sup>|</sup> + *Cm*−<sup>2</sup> |*<sup>A</sup>*1| *<sup>C</sup>*<sup>2</sup>|*<sup>A</sup>*2<sup>|</sup> + ... + *<sup>C</sup>*<sup>1</sup>|*<sup>A</sup>*1|*Cm*−<sup>1</sup> |*<sup>A</sup>*2| + *Cm*|*<sup>A</sup>*2|*.*

Here *Cm*|*<sup>A</sup>*1<sup>|</sup> refers to all interval concepts whose number of intension attributes is m in *Lβα* (*<sup>U</sup>*, *A*1, *<sup>R</sup>*1), *Cm*−<sup>1</sup> |*<sup>A</sup>*1| *<sup>C</sup>*<sup>1</sup>|*<sup>A</sup>*2<sup>|</sup> refers to all interval concepts whose number of intension attributes is *m* − 1 in *Lβα* (*<sup>U</sup>*, *A*1, *<sup>R</sup>*1) and all interval concepts whose number of intension attributes is 1 in *Lβα* (*<sup>U</sup>*, *A*2, *<sup>R</sup>*2) merge horizontally.

## *3.2. Algorithmic Design*

In order to generate interval concept lattices while retaining all interval concepts, including existing concepts, redundant concepts and empty concepts, and effectively improve the uniting efficiency of interval concept lattices, the existing incremental interval concept lattice generation algorithm needs to be modified first, and on this basis, a dynamic horizontal uniting algorithm of multiple interval concept lattices is proposed.

#### 3.2.1. Improved Progressive Generation Algorithms for Interval Concept Lattices

In order to distinguish between different interval concepts, concept nodes are defined and stored in structured form as follows:

$$\begin{array}{c|c|c|c|c|c|c} \hline f \text{lag} & \mathcal{M}^a & \mathcal{M}^b & \mathcal{Y} & parent & children & no \\ \hline \end{array}$$

It is defined in the following form. struct concept { string *<sup>M</sup><sup>α</sup>i* ; *<sup>M</sup><sup>α</sup>i Mβi* ;*Yi*; struct Y, parent, children; int flag; }

The concept of category is marked by flag. When flag = 1, flag = 2 and flag = 3, stored concept is exist concept, redundant concept and empty concept separately.

## **Algorithm 1.** Improved ICAICL

Input: formal context (*<sup>U</sup>*, *A*, *R*)

Output: interval concept lattice *Lβα* and *Lβα*

(1) Calculate power set of attribute set P(A) to determine the intent of concept, generate concept node of initialization G.

(2) Determine upper bound extent *<sup>M</sup><sup>α</sup>i* and lower bound extent *Mβi* , make flag of empty concept be 3 and the other be 1.

(3) According to the partial order relationship, determine the level of the node and the parent-child relationship, make flag of redundant concept be 2.

The method of finding out redundant concept is Romove-redun (Ch,Gi).

Remove-redun(Ch,Gi) //find out redundant concept, sign and store, and delete it

{ for each children Ch in Gi // Ch pointer point to every children of Gi 

{ If (Gi.*M<sup>α</sup>i*= Ch.*M<sup>α</sup>i* , Gi.*Mβi*= Ch.*Mβi*)

{ Flag=2; Delete Gi from *Lβα*}}}

(4) To find concept of no = 1, structure the root node. Then insert other nodes into the lattice according to the parent-child relationship successively. Eventually form the structure of interval concept lattice.

#### 3.2.2. Dynamic Lateral Uniting Algorithms for Multi-Interval Concept Lattices

 *Lβαi* ...

The basic idea of the algorithm is that whenever a new data set is generated, it will be transformed into a formal representation of the interval concept lattice and united with the united lattice structure. In this way, the information of the interval concept lattice can be aggregated again and again, which lays a foundation for further mining association rules.

**Algorithm 2.** DHM (Dynamic Horizontal union)

Input: *Lβα*1, *Lβα*1, *Lβα*2, *Lβα*2... *<sup>L</sup>βα<sup>i</sup>*,Output: *Lβα* and *Lβα* Steps: (1)Let*Lβα*=*Lβα*1and*Lβα*=*Lβα*1;

(2) The newly generated interval concept lattices *Lβαi* and *Lβαi* (*i* = 2, 3 . . . *n*) are united with *Lβα* and *Lβα* respectively. The united results are assigned to *Lβα* and *Lβα*. The uniting steps of the two interval concept lattices are as follows:




Horizontal union-M Layer (*Lβα<sup>i</sup>*<sup>∗</sup>, *C*∗*i* , *Lβα*, *C*, *Lβ*<sup>∗</sup> *α* , *C*∗)

{ For *C*∗*i* in *<sup>L</sup>βα<sup>i</sup>*<sup>∗</sup>; For *C* in *Lβα*;

If (*C*<sup>∗</sup>*i* .|*Y*| = *m*) // the intention attributes number of the concept in *Lβα<sup>i</sup>*∗ is equal to the concept layer m { If (*C*<sup>∗</sup>.*Y* = *C*∗*i*.*Y*)

$$\begin{aligned} \{ \} \quad \quad \quad \mathbf{C}^\*. flag = \mathbf{C}\_l^\*. flag; \\ \quad \quad \quad \quad \quad \mathbf{C}^\*. M^a = \mathbf{C}\_l^\*. M^a; \end{aligned}$$

*C*∗1 .*Mβ* = *C*∗*i* .*Mβ*; }

Else end } If (*C*.|*Y*| = *m*) // the intention attributes number of the concept in *Lβα* is equal to the concept layer{ If (*C*<sup>∗</sup>.*Y* = *C*.*Y*) { *C*<sup>∗</sup>. *flag* = *C*. *flag*; *C*<sup>∗</sup>.*M<sup>α</sup>* = *C*.*M<sup>α</sup>*; *C*<sup>∗</sup>.*Mβ* = *<sup>C</sup>*.*Mβ*; } Else end } If (*C*<sup>∗</sup>*i* .|*Y*| + *<sup>C</sup>*.|*Y*| = *m*) // The sum of the number of attributes in *Lβα<sup>i</sup>*∗ and *Lβα* is equal to the conceptlayer *m* { For (*C*<sup>∗</sup>*i* .|*Y*| = 1; *C*∗*i* .|*Y*| = *m* − 1; *C*∗*i* .|*Y*| + +) *<sup>C</sup>*.|*Y*| = *m* − *C*∗*i* .|*Y*| For *C*<sup>∗</sup>.*M<sup>α</sup>* If (*C*<sup>∗</sup>*i* .|*Y*| ∗ *α* + *<sup>C</sup>*.|*Y*| ∗ *α* = (*C*<sup>∗</sup>*i* .|*Y*| + *<sup>C</sup>*.|*Y*|) ∗ *α*) { *γ* = *α* union1-*C*<sup>∗</sup>*i <sup>C</sup>*(*C*<sup>∗</sup>*i* , *C*, *C*∗) } If (*C*<sup>∗</sup>*i* .|*Y*| ∗ *α* = (*C*<sup>∗</sup>*i* .|*Y*| + *<sup>C</sup>*.|*Y*|) ∗ *α* or *<sup>C</sup>*.|*Y*| ∗ *α* = (*C*<sup>∗</sup>*i* .|*Y*| + *<sup>C</sup>*.|*Y*|) ∗ *α*) { If *C*<sup>∗</sup>*i* .|*Y*| ∗ *α* = (*C*<sup>∗</sup>*i* .|*Y*| + *<sup>C</sup>*.|*Y*|) ∗ *α* { *γ* = *α*; *Cg* = *C*∗*i* ; *Ch* = *C*; union2-*CgCh*(*Cg*, *Ch*, *C*∗)} If (*<sup>C</sup>*.|*Y*| ∗ *α* = (*C*<sup>∗</sup>*i* .|*Y*| + *<sup>C</sup>*.|*Y*|) ∗ *α* { *γ* = *α*; *Cg* = *C*; *Ch* = *C*∗*i* ; union2-*CgCh*(*Cg*, *Ch*, *C*∗)} Else end }} For *C*<sup>∗</sup>.*Mβ* If (*C*<sup>∗</sup>*i* .|*Y*| ∗ *β* + *<sup>C</sup>*.|*Y*| ∗ *β* = (*C*<sup>∗</sup>*i* .|*Y*| + *<sup>C</sup>*.|*Y*|) ∗ *β*) { *γ* = *β* union1-*C*<sup>∗</sup>*i <sup>C</sup>*(*C*<sup>∗</sup>*i* , *C*, *C*∗)} If (*C*<sup>∗</sup>*i* .|*Y*| ∗ *β* = (*C*<sup>∗</sup>*i* .|*Y*| + *<sup>C</sup>*.|*Y*|) ∗ *β* or *<sup>C</sup>*.|*Y*| ∗ *β* = (*C*<sup>∗</sup>*i* .|*Y*| + *<sup>C</sup>*.|*Y*|) ∗ *β*) { If (*C*<sup>∗</sup>*i* .|*Y*| ∗ *β* = (*C*<sup>∗</sup>*i* .|*Y*| + *<sup>C</sup>*.|*Y*|) ∗ *β* { *γ* = *β*; *Cg* = *C*∗*i* ; *Ch* = *C*; union2-*CgCh*(*Cg*, *Ch*, *C*∗)} If (*<sup>C</sup>*.|*Y*| ∗ *β* = (*C*<sup>∗</sup>*i* .|*Y*| + *<sup>C</sup>*.|*Y*|) ∗ *β* { *γ* = *β*; *Cg* = *C*; *Ch* = *C*∗*i* ; union2-*CgCh*(*Cg*, *Ch*, *C*∗)} Else end }} Remove-redun(Ch,Gi) If (*C*<sup>∗</sup>.*M<sup>α</sup>* = *C*<sup>∗</sup>.*Mβ* = ∅) Flag = 3 Else flag = 1}}

 m

The Horizontal union-M Layer algorithm calls three sub-functions, Remove-redun(Ch,Gi), union1-*C*<sup>∗</sup>*i <sup>C</sup>*(*C*<sup>∗</sup>*i* , *C*, *C*∗) and union2-*C*<sup>∗</sup>*i <sup>C</sup>*(*C*<sup>∗</sup>*i* , *C*, *C*∗) respectively. The function of Remove-redun(Ch,Gi) is to find redundant concepts of united interval concept lattices and mark them. The function of union1-*C*<sup>∗</sup>*i <sup>C</sup>*(*C*<sup>∗</sup>*i* , *C*, *C*∗) and union2-*C*<sup>∗</sup>*i <sup>C</sup>*(*C*<sup>∗</sup>*i* , *C*, *C*∗) are to calculate and test the deleted objects for uniting cases, and to ge<sup>t</sup> the concept of interval after uniting.

Assign *Lβα* and *Lβα* to *Lβ*<sup>∗</sup> *α* and *Lβ*<sup>∗</sup> *α* separately. Let *i* = *i* + 1, go to step 2.

The algorithm starts from the interval concept lattice directly, makes full use of the lattice structure of the original interval concept lattice and covers the uniting of all concepts. Therefore, it has completeness and effectiveness. Compared with the method of uniting formal context first and then using ICAICL algorithm to construct the interval concept lattice, this algorithm reduces time complexity and has a value of *<sup>O</sup>*(*n* ∗ *ni* ∗ (*n* + *ni*)), which proves the efficiency of the algorithm.

## **4. Example Analysis**

Two formal contexts are listed in Tables 1 and 2. *U* = {1, 2, 3, 4, 5} is the element set. *A*1 = {*<sup>a</sup>*, *b*, *c*} and *A*2 = {*<sup>c</sup>*, *d*,*e*, *f* } are attribute sets before and after the change, respectively. Their corresponding lattice structures and union are described as follows.



**Figure 1.** (**a**) The lattice structure *Lβα* (*<sup>U</sup>*, *A*1, *<sup>R</sup>*1) of *Lβα*1; (**b**) The lattice structure *Lβα* (*<sup>U</sup>*, *A*2, *<sup>R</sup>*2) of *Lβα*2.

Take Layer 3 as an example, several cases of horizontal uniting of interval concepts are described below. The number of attributes in *Lβα*1<sup>∗</sup> and *Lβα*2 are 2 and 4. According to *C*36 = *C*34 + *C*12*C*24 + *C*22*C*14, the uniting of the third layer of *Lβα* can be divided into three cases.

∗



**Figure 2.** The lattice structure *Lβ α* (*<sup>U</sup>*, *A*, *R*) united by *Lβ α* (*<sup>U</sup>*, *A*1, *<sup>R</sup>*1) and *Lβ α* (*<sup>U</sup>*, *A*2, *<sup>R</sup>*2) for the Interval parameters *α* = 0.6 and *β* = 0.7.

Then *Lβα* can be obtained by horizontal uniting between conceptual nodes. After eliminating the interval concepts of flag equaling 2 and 3 in *Lβα*, it can be transformed into *Lβα*. See Figure 2.
