<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.0 20120330//EN" "JATS-journalpublishing1.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">INFORMATICA</journal-id>
<journal-title-group><journal-title>Informatica</journal-title></journal-title-group>
<issn pub-type="epub">1822-8844</issn><issn pub-type="ppub">0868-4952</issn><issn-l>0868-4952</issn-l>
<publisher>
<publisher-name>Vilnius University</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">INFOR566</article-id>
<article-id pub-id-type="doi">10.15388/24-INFOR566</article-id>
<article-categories><subj-group subj-group-type="heading">
<subject>Research Article</subject></subj-group></article-categories>
<title-group>
<article-title>An Improved Algorithm for Extracting Frequent Gradual Patterns</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Kenmogne</surname><given-names>Edith Belise</given-names></name><email xlink:href="ebkenmogne@gmail.com">ebkenmogne@gmail.com</email><xref ref-type="aff" rid="j_infor566_aff_002">2</xref><bio>
<p><bold>E.B. Kenmogne</bold> received her master and PhD degrees in computer science at the Department of Mathematics and Computer Science of the Faculty of Sciences of the University of Dschang (Cameroon) in 2012 and 2018, respectively. Her current research interests include data mining and artificial intelligence. In January 2020, she started working at the University of Dschang as a lecturer. In December 2021, she was promoted to the rank of senior lecturer.</p></bio>
</contrib>
<contrib contrib-type="author">
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0003-3413-0981</contrib-id>
<name><surname>Tetakouchom</surname><given-names>Idriss</given-names></name><email xlink:href="itetakouchom@gmail.com">itetakouchom@gmail.com</email><xref ref-type="aff" rid="j_infor566_aff_002">2</xref><xref ref-type="corresp" rid="cor1">∗</xref><bio>
<p><bold>I. Tetakouchom</bold> received his master degree in computer science from the Department of Mathematics and Computer Science at the Faculty of Sciences of the University of Dschang in 2019, where he is now a PhD candidate. His main research topic is knowledge discovery.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Tayou Djamegni</surname><given-names>Clémentin</given-names></name><email xlink:href="dtayou@gmail.com">dtayou@gmail.com</email><xref ref-type="aff" rid="j_infor566_aff_001">1</xref><xref ref-type="aff" rid="j_infor566_aff_002">2</xref><bio>
<p><bold>C. Tayou Djamegni</bold> is a full professor of computer science at the University of Dschang (Uds). He obtained the <italic>DEA</italic>, the <italic>Doctorat de Troisième Cycle</italic>, and the <italic>Doctorat d’État</italic> at the Department of Computer Science of the Faculty of Sciences of the University of Yaoundé I in 1995, 1997 and 2005, respectively. From December 2007 to March 2018, he headed the Department of Mathematics and Computer Science at the Faculty of Sciences of the Uds. In this position, he initiated and coordinated the design and implementation of the first Master’s and doctoral programs of the Uds in computer science and mathematics. He also launched and coordinated the creation of the first computer science research laboratory at Uds LIFA, later renamed URIFIA. From March 2018 to this day, he is head of the Computer Engineering Department at the Fotso Victor University Institute of Technology. He supervised fifteen doctoral theses in computer science. He is a member of the Editorial Board of <italic>Informatics in Medicine Unlocked</italic> and <italic>African Revue in Informatics and Mathematics Applied</italic>. He won four third prizes, one second prize and four first prizes at SAT competitions, and one third prize at EDA CHALLENGE 2021. His research interests include sensor networks, knowledge discovery, distributed algorithms, cloud computing, artificial intelligence and security.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Nkambou</surname><given-names>Roger</given-names></name><email xlink:href="nkambou.roger@uqam.ca">nkambou.roger@uqam.ca</email><xref ref-type="aff" rid="j_infor566_aff_003">3</xref><bio>
<p><bold>R. Nkambou</bold> received his PhD degree in computer science from the Université de Montréal in 1996. He is a full professor of computer science at the Université du Québec à Montréal and the Director of the Artificial Intelligence Research Center (<uri>http://gdac.uqam.ca/CRIA</uri>). His research interests include machine learning, knowledge representation, intelligent tutoring systems, ontology engineering, data mining, and affective computing. He is an associate editor of Frontiers in Artificial Intelligence. He also serves as a senior member of the program committees for important international conferences such as EDM, ITS and AIED.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Tabueu Fotso</surname><given-names>Laurent Cabrel</given-names></name><email xlink:href="laurent.tabueu@gmail.com">laurent.tabueu@gmail.com</email><xref ref-type="aff" rid="j_infor566_aff_002">2</xref><bio>
<p><bold>L. Tabueu Fotso</bold> received his master and PhD degree in computer science from the Department of Mathematics and Computer Science at the Faculty of Sciences of the University of Dschang in 2017 and 2023, respectively. His main research topic is knowledge discovery.</p></bio>
</contrib>
<aff id="j_infor566_aff_001"><label>1</label>Department of Computer Engineering, <institution>UIT-FV, University of Dschang</institution>, <country>Cameroon</country></aff>
<aff id="j_infor566_aff_002"><label>2</label>Department of Mathematics and Computer Science, <institution>FS, University of Dschang</institution>, <country>Cameroon</country></aff>
<aff id="j_infor566_aff_003"><label>3</label>Computer Science Department, <institution>University of Québec at Montréal</institution>, <country>Canada</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>∗</label>Corresponding author.</corresp>
</author-notes>
<pub-date pub-type="ppub"><year>2024</year></pub-date><pub-date pub-type="epub"><day>24</day><month>7</month><year>2024</year></pub-date><volume>35</volume><issue>3</issue><fpage>577</fpage><lpage>600</lpage><history><date date-type="received"><month>4</month><year>2023</year></date><date date-type="accepted"><month>6</month><year>2024</year></date></history>
<permissions><copyright-statement>© 2024 Vilnius University</copyright-statement><copyright-year>2024</copyright-year>
<license license-type="open-access" xlink:href="http://creativecommons.org/licenses/by/4.0/">
<license-p>Open access article under the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/">CC BY</ext-link> license.</license-p></license></permissions>
<abstract>
<p>Frequent gradual pattern extraction is an important problem in computer science widely studied by the data mining community. Such a pattern reflects a co-variation between attributes of a database. The applications of the extraction of the gradual patterns concern several fields, in particular, biology, finances, health and metrology. The algorithms for extracting these patterns are greedy in terms of memory and computational resources. This clearly poses the problem of improving their performance. This paper proposes a new approach for the extraction of gradual and frequent patterns based on the reduction of candidate generation and processing costs by exploiting frequent itemsets whose size is a power of two to generate all candidates. The analysis of the complexity, in terms of CPU time and memory usage, and the experiments show that the obtained algorithm outperforms the previous ones and confirms the interest of the proposed approach. It is sometimes at least 5 times faster than previous algorithms and requires at most half the memory.</p>
</abstract>
<kwd-group>
<label>Key words</label>
<kwd>gradual pattern</kwd>
<kwd>frequent pattern</kwd>
<kwd>candidate</kwd>
<kwd>binary matrix</kwd>
<kwd>mining</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="j_infor566_s_001">
<label>1</label>
<title>Introduction</title>
<p>The technological development in the last decades has allowed the creation of many electronic devices used to solve the current problems of humanity. These devices are present in many aspects of human life such as health, agriculture, economy and education. They produce and store huge amounts of digital data, which in turn contain a certain amount of hidden knowledge. Knowledge extraction (Di-Jorio <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_012">2009a</xref>; Vera <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_032">2020</xref>; Al-Jammali, <xref ref-type="bibr" rid="j_infor566_ref_002">2023</xref>) aims to extract useful and understandable hidden knowledge, such as correlation, dependence or co-variation of attributes, from large databases.</p>
<p>A well known data mining task is frequent itemset mining, widely studied by the data mining community. It consists of analysing data to discover frequently co-occurring itemsets (Agrawal and Srikant, <xref ref-type="bibr" rid="j_infor566_ref_001">1994</xref>; Kenmogne, <xref ref-type="bibr" rid="j_infor566_ref_021">2018</xref>). It has many applications in many areas such as market basket analysis, e-learning, image classification, activity monitoring, community discovery, malware detection, web mining, chemical and biological analysis, and software bug analysis. Over the past decades, many studies have been devoted to frequent sequence mining (Kenmogne, <xref ref-type="bibr" rid="j_infor566_ref_020">2016</xref>; Belise <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_005">2017</xref>, <xref ref-type="bibr" rid="j_infor566_ref_007">2018</xref>; Kenmogne <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_022">2022</xref>), which generalizes frequent itemset mining by taking the sequential ordering of itemsets in transactions into account to find frequently co-occurring subsequences in a set of transactions. Recently, gradual patterns that model frequent co-variations between numerical attributes aroused great interest in a multitude of areas. They convey knowledge of the form «<italic>the more A, the more B</italic>». Examples of gradual patterns extracted from a salary database and a medical database are «<italic>the higher the age, the higher the salary</italic>» and « <italic>patients with high insulin levels, high body mass index and high age have a high probability of having diabetes</italic>», respectively. Previous studies have developed two basic algorithms for extracting frequent gradual patterns, namely Graank and Grite. Both algorithms are based on the Apriori principle, which consists in generating candidates and selecting those that are frequent. The difference between them comes from how to calculate the gradual supports. In the Grite algorithm, gradual support is based on the so-called precedence graph approach. In the Graank algorithm, it relies instead on the so-called concordant pairs approach.</p>
<p>Even though the problem of knowledge extraction has been addressed for many years (Frawley <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_015">1992</xref>; Agrawal and Srikant, <xref ref-type="bibr" rid="j_infor566_ref_001">1994</xref>; Hüllermeier, <xref ref-type="bibr" rid="j_infor566_ref_017">2002</xref>; Berzal <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_008">2007</xref>; Di-Jorio <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_012">2009a</xref>; Kononenko and Bevk, <xref ref-type="bibr" rid="j_infor566_ref_023">2009</xref>; Ayouni <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_003">2010</xref>; Negrevergne <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_030">2014</xref>; Kenmogne, <xref ref-type="bibr" rid="j_infor566_ref_020">2016</xref>; Jabbour <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_019">2019</xref>; Chicco and Jurman, <xref ref-type="bibr" rid="j_infor566_ref_009">2020</xref>; Lonlac <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_029">2020</xref>; Lonlac and Nguifo, <xref ref-type="bibr" rid="j_infor566_ref_028">2020</xref>; Vera <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_032">2020</xref>; Clémentin <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_010">2021</xref>; Li and Liu, <xref ref-type="bibr" rid="j_infor566_ref_027">2021</xref>; Ham <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_016">2022</xref>), knowledge mining algorithms are well known to be both time and memory intensive for large databases, and the improvements are driven by the need to process more data at faster speed with less cost. This paper follows this trend for the extraction of frequent gradual patterns.</p>
<p>Interesting gradual pattern mining algorithms can be classified into four categories. The first category focuses on the extraction of frequent gradual patterns (Di-Jorio <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_012">2009a</xref>, <xref ref-type="bibr" rid="j_infor566_ref_013">2009b</xref>, <xref ref-type="bibr" rid="j_infor566_ref_014">2009c</xref>; Laurent <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_024">2009</xref>; Clémentin <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_010">2021</xref>). The second category focuses on reducing the number of frequent gradual patterns by considering only closed or maximal patterns (Ayouni <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_003">2010</xref>; Côme and Lonlac, <xref ref-type="bibr" rid="j_infor566_ref_011">2021</xref>; Belise <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_006">2023</xref>). The third category focuses on leveraging parallel architectures to speed up the mining process (Laurent <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_025">2010</xref>, <xref ref-type="bibr" rid="j_infor566_ref_026">2012</xref>; Negrevergne <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_030">2014</xref>; Belise <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_007">2018</xref>). The fourth category concerns the integration of constraints, related to the application context, in the mining process (Belise, <xref ref-type="bibr" rid="j_infor566_ref_004">2011</xref>; Kenmogne, <xref ref-type="bibr" rid="j_infor566_ref_020">2016</xref>; Belise <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_005">2017</xref>; Kenmogne, <xref ref-type="bibr" rid="j_infor566_ref_021">2018</xref>; Ser <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_031">2018</xref>; Lonlac <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_029">2020</xref>). Many algorithms of the four categories are based on the Apriori principle, also known as the test-generation principle, which consists in generating candidate itemsets, calculating their gradual supports and retaining only those candidates whose support is above the minimum threshold. In these algorithms, frequent gradual patterns of size <italic>k</italic> are used to generate candidates of size <inline-formula id="j_infor566_ineq_001"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(k+1)$]]></tex-math></alternatives></inline-formula>.</p>
<p>The work presented in this paper is related to the first category of algorithms. In this category, performance optimization involves reducing the search space and reducing the costs of fundamental operations used in the mining process, namely support calculation, candidate generation and binary matrix multiplication. In mining algorithms, the search space could be reduced to the lattice of positive gradual patterns, i.e. patterns whose first term is positive. This halves the search space, which in turn results in a halving of the computational load. The reduction of support calculation costs has been studied in the literature in the particular case where the gradual support is based on the so-called precedence graph approach. This paper focuses on reducing the costs of generating and processing candidates, assuming that gradual support relies on the so-called concordant pairs approach. This results in a new approach for extracting frequent gradual patterns. Compared to previous approaches, the cost of candidate generation is significantly reduced by using only frequent gradual itemsets whose size is a power of two to generate all candidates. More precisely, frequent gradual patterns of size <inline-formula id="j_infor566_ineq_002"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{k}}$]]></tex-math></alternatives></inline-formula> are used to generate all candidates whose size is between <inline-formula id="j_infor566_ineq_003"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[${2^{k}}+1$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor566_ineq_004"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{(k+1)}}$]]></tex-math></alternatives></inline-formula>. Experiments carried out on real and synthetic datasets show a significant gain obtained with the proposed approach compared to the Graank reference approach.</p>
<p>The rest of the paper is organized as follows. Section <xref rid="j_infor566_s_002">2</xref> presents related work. Section <xref rid="j_infor566_s_005">3</xref> presents a new approach for the extraction of frequent gradual patterns. Section <xref rid="j_infor566_s_008">4</xref> presents the experimental results. Section <xref rid="j_infor566_s_017">5</xref> concludes the paper.</p>
</sec>
<sec id="j_infor566_s_002">
<label>2</label>
<title>State of the Art</title>
<p>This section presents the fundamental concepts of the extraction of the gradual patterns and the methods of extraction of the said patterns.</p>
<sec id="j_infor566_s_003">
<label>2.1</label>
<title>Concepts and Definitions</title>
<p>The database described in Table <xref rid="j_infor566_tab_001">1</xref> is used to illustrate the concepts and methods for extracting gradual patterns.</p>
<table-wrap id="j_infor566_tab_001">
<label>Table 1</label>
<caption>
<p>Example of a numerical database <inline-formula id="j_infor566_ineq_005"><alternatives><mml:math>
<mml:mi mathvariant="script">D</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{D}$]]></tex-math></alternatives></inline-formula>.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Id</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Age (A)</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Salary (S)</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Car (C)</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_006"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{1}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">22</td>
<td style="vertical-align: top; text-align: left">1200</td>
<td style="vertical-align: top; text-align: left">0</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_007"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{2}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">28</td>
<td style="vertical-align: top; text-align: left">1850</td>
<td style="vertical-align: top; text-align: left">2</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_008"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{3}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">24</td>
<td style="vertical-align: top; text-align: left">1200</td>
<td style="vertical-align: top; text-align: left">3</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_009"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{4}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">35</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2200</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1</td>
</tr>
</tbody>
</table>
</table-wrap>
<statement id="j_infor566_stat_001"><label>Definition 1</label>
<title>(<italic>Item</italic>)<italic>.</italic></title>
<p>An item is an attribute of the database.</p></statement>
<p>For example, in Table <xref rid="j_infor566_tab_001">1</xref>, A, S and C are items.</p><statement id="j_infor566_stat_002"><label>Definition 2</label>
<title>(<italic>Gradual Item</italic>)<italic>.</italic></title>
<p>A gradual item is of the form <inline-formula id="j_infor566_ineq_010"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${A^{\ast }}$]]></tex-math></alternatives></inline-formula> where <italic>A</italic> is an attribute of the database and *<inline-formula id="j_infor566_ineq_011"><alternatives><mml:math>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mo mathvariant="normal">&gt;</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>⩾</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>⩽</mml:mo>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\in \{\gt ,\lt ,\geqslant ,\leqslant \}$]]></tex-math></alternatives></inline-formula> is the variation operator of the values of attribute <italic>A</italic>.</p></statement>
<p>In database <inline-formula id="j_infor566_ineq_012"><alternatives><mml:math>
<mml:mi mathvariant="script">D</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{D}$]]></tex-math></alternatives></inline-formula> in Table <xref rid="j_infor566_tab_001">1</xref>, <inline-formula id="j_infor566_ineq_013"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${A^{\gt }}$]]></tex-math></alternatives></inline-formula> is linguistically expressed as “<italic>increasing age</italic>” and <inline-formula id="j_infor566_ineq_014"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&lt;</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${A^{\lt }}$]]></tex-math></alternatives></inline-formula> as “<italic>decreasing age</italic>”.</p><statement id="j_infor566_stat_003"><label>Definition 3</label>
<title>(<italic>Gradual pattern or gradual itemset</italic>)<italic>.</italic></title>
<p>A gradual pattern <italic>M</italic>, also called gradual itemset, is a concatenation of several gradual items, denoted <inline-formula id="j_infor566_ineq_015"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[$M={I_{i}^{\ast i}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_016"><alternatives><mml:math>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1..</mml:mn>
<mml:mi mathvariant="italic">k</mml:mi></mml:math><tex-math><![CDATA[$i=1..k$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_infor566_ineq_017"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${I_{i}^{\ast i}}$]]></tex-math></alternatives></inline-formula> is a gradual item.</p></statement>
<p><italic>M</italic> is linguistically interpreted as a conjunction of gradual items. A <italic>k</italic>-gradual itemsets is an gradual itemset containing <italic>k</italic> gradual items. For example, the 2-gradual itemset <inline-formula id="j_infor566_ineq_018"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⩾</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⩾</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${A^{\geqslant }}{S^{\geqslant }}$]]></tex-math></alternatives></inline-formula> means “<italic>the more the age increases, the more the salary increases</italic>”.</p><statement id="j_infor566_stat_004"><label>Definition 4</label>
<title>(<italic>Complementary gradual itemset</italic>)<italic>.</italic></title>
<p>Let <inline-formula id="j_infor566_ineq_019"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$M=({i_{1}^{{\ast _{1}}}},\dots ,{i_{k}^{{\ast _{k}}}})$]]></tex-math></alternatives></inline-formula> be a gradual itemset and <italic>c</italic> the function defined by <inline-formula id="j_infor566_ineq_020"><alternatives><mml:math>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">⇒</mml:mo></mml:math><tex-math><![CDATA[$c(\lt )\Rightarrow $]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor566_ineq_021"><alternatives><mml:math>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal">&gt;</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal">&lt;</mml:mo></mml:math><tex-math><![CDATA[$c(\gt )=\lt $]]></tex-math></alternatives></inline-formula>. The gradual itemset <inline-formula id="j_infor566_ineq_022"><alternatives><mml:math>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$c(M)=({i_{1}^{c({\ast _{1}})}},\dots ,{i_{k}^{c({\ast _{k}})}})$]]></tex-math></alternatives></inline-formula> is defined as the complement of <italic>M</italic>.</p></statement>
<p>In the literature, it is often assumed that <inline-formula id="j_infor566_ineq_023"><alternatives><mml:math>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo>⩾</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo>⩽</mml:mo></mml:math><tex-math><![CDATA[$c(\geqslant )=\leqslant $]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_024"><alternatives><mml:math>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo>⩽</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo>⩾</mml:mo></mml:math><tex-math><![CDATA[$c(\leqslant )=\geqslant $]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_025"><alternatives><mml:math>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">⇒</mml:mo></mml:math><tex-math><![CDATA[$c(\lt )\Rightarrow $]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor566_ineq_026"><alternatives><mml:math>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal">&gt;</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal">&lt;</mml:mo></mml:math><tex-math><![CDATA[$c(\gt )=\lt $]]></tex-math></alternatives></inline-formula>. However, as in the work of Berzal <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor566_ref_008">2007</xref>), in this work, we will only consider strict inequalities. For example, the gradual itemset <inline-formula id="j_infor566_ineq_027"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&lt;</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${A^{\gt }}{S^{\lt }}$]]></tex-math></alternatives></inline-formula> is the complement of the gradual itemset <inline-formula id="j_infor566_ineq_028"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&lt;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${A^{\lt }}{S^{\gt }}$]]></tex-math></alternatives></inline-formula>.</p><statement id="j_infor566_stat_005"><label>Definition 5</label>
<title>(<italic>Gradual rule</italic>)<italic>.</italic></title>
<p>A gradual rule, denoted R: <inline-formula id="j_infor566_ineq_029"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${M_{1}}\to {M_{2}}$]]></tex-math></alternatives></inline-formula>, is a causal relationship between two gradual patterns <inline-formula id="j_infor566_ineq_030"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${M_{1}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor566_ineq_031"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${M_{2}}$]]></tex-math></alternatives></inline-formula>. <inline-formula id="j_infor566_ineq_032"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${M_{1}}$]]></tex-math></alternatives></inline-formula> is called the antecedent or premise of the rule and <inline-formula id="j_infor566_ineq_033"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${M_{2}}$]]></tex-math></alternatives></inline-formula> the consequent.</p></statement>
<p>The rule <inline-formula id="j_infor566_ineq_034"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⩾</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">→</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⩾</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${A^{\geqslant }}\to {S^{\geqslant }}$]]></tex-math></alternatives></inline-formula> means “<italic>if the age increases, the salary increases</italic>”. The fundamental difference between a gradual rule and a gradual pattern is that the gradual rules reflect the causal trends observed in the dataset while the gradual patterns reflect the co-variation trends.</p><statement id="j_infor566_stat_006"><label>Definition 6</label>
<title>(<italic>Concordant pairs</italic>)<italic>.</italic></title>
<p>A concordant pair with respect to a gradual itemset is a pair of objects in the database that satisfies the order induced by the said itemset.</p></statement>
<p>For example, <inline-formula id="j_infor566_ineq_035"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\{({p_{1}},{p_{2}}),({p_{1}},{p_{3}}),({p_{1}},{p_{4}}),({p_{2}},{p_{4}}),({p_{3}},{p_{2}}),({p_{3}},{p_{4}})\}$]]></tex-math></alternatives></inline-formula> is the set of concordant pairs with respect to item <inline-formula id="j_infor566_ineq_036"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${A^{\gt }}$]]></tex-math></alternatives></inline-formula>. In contrast to the concordant pairs, we distinguish the discordant pairs.</p><statement id="j_infor566_stat_007"><label>Definition 7</label>
<title>(<italic>Binary matrix of an itemset,</italic> Di-Jorio <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_012">2009a</xref>)<italic>.</italic></title>
<p>Let <inline-formula id="j_infor566_ineq_037"><alternatives><mml:math>
<mml:mi mathvariant="script">D</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{D}$]]></tex-math></alternatives></inline-formula> be a database made up of m attributes and n objects, <inline-formula id="j_infor566_ineq_038"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${M_{k}}$]]></tex-math></alternatives></inline-formula> a gradual itemset of size <italic>k</italic>. The binary matrix of gradual itemset <inline-formula id="j_infor566_ineq_039"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${M_{k}}$]]></tex-math></alternatives></inline-formula> is the square binary matrix of order <italic>n</italic> such that the inputs are the n objects of the database and for any pair of objects <inline-formula id="j_infor566_ineq_040"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">o</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">o</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(o,{o^{\prime }})$]]></tex-math></alternatives></inline-formula> <inline-formula id="j_infor566_ineq_041"><alternatives><mml:math>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mi mathvariant="script">D</mml:mi>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mi mathvariant="script">D</mml:mi></mml:math><tex-math><![CDATA[$\in \mathcal{D}X\mathcal{D}$]]></tex-math></alternatives></inline-formula>, the entry <inline-formula id="j_infor566_ineq_042"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">o</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">o</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(o,{o^{\prime }})$]]></tex-math></alternatives></inline-formula> of the matrix is <bold>1</bold> if the pair is concordant and <bold>0</bold> otherwise.</p></statement>
<p>Table <xref rid="j_infor566_tab_002">2</xref> illustrates the notion of binary matrix of a gradual itemset and the calculation of the binary matrix of a concatenation of itemsets. If <inline-formula id="j_infor566_ineq_043"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathcal{L}_{{M^{\prime }}}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor566_ineq_044"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>″</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathcal{L}_{{M^{\prime\prime }}}}$]]></tex-math></alternatives></inline-formula> are respectively the binary matrices of the itemsets <inline-formula id="j_infor566_ineq_045"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${M^{\prime }}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor566_ineq_046"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>″</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${M^{\prime\prime }}$]]></tex-math></alternatives></inline-formula>, the matrix <inline-formula id="j_infor566_ineq_047"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>″</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathcal{L}_{{M^{\prime }}{M^{\prime\prime }}}}$]]></tex-math></alternatives></inline-formula> of the itemset <inline-formula id="j_infor566_ineq_048"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>″</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${M^{\prime }}{M^{\prime\prime }}$]]></tex-math></alternatives></inline-formula> is <inline-formula id="j_infor566_ineq_049"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>″</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mspace width="2.5pt"/>
<mml:mtext mathvariant="bold">AND</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>″</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathcal{L}_{{M^{\prime }}{M^{\prime\prime }}}}={\mathcal{L}_{{M^{\prime }}}}\hspace{2.5pt}\textbf{AND}\hspace{2.5pt}{\mathcal{L}_{{M^{\prime\prime }}}}$]]></tex-math></alternatives></inline-formula>, where AND is the logical conjunction operator, i.e. <inline-formula id="j_infor566_ineq_050"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>″</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mtext mathvariant="bold">AND</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>″</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[${\mathcal{L}_{{M^{\prime }}{M^{\prime\prime }}}}[i,j]={\mathcal{L}_{{M^{\prime }}}}[i,j]\hspace{2.5pt}\textbf{AND}\hspace{2.5pt}{\mathcal{L}_{{M^{\prime\prime }}}}[i,j]$]]></tex-math></alternatives></inline-formula> for any pair of indexes <inline-formula id="j_infor566_ineq_051"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(i,j)$]]></tex-math></alternatives></inline-formula>.</p>
<table-wrap id="j_infor566_tab_002">
<label>Table 2</label>
<caption>
<p>Binary matrices of some itemsets from database <inline-formula id="j_infor566_ineq_052"><alternatives><mml:math>
<mml:mi mathvariant="script">D</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{D}$]]></tex-math></alternatives></inline-formula> in Table <xref rid="j_infor566_tab_001">1</xref>.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"/>
<td colspan="4" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_053"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathcal{L}_{{A^{\gt }}}}$]]></tex-math></alternatives></inline-formula></td>
<td colspan="4" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_054"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathcal{L}_{{S^{\gt }}}}$]]></tex-math></alternatives></inline-formula></td>
<td colspan="4" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_055"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathcal{L}_{{C^{\gt }}}}$]]></tex-math></alternatives></inline-formula></td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">↱</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_056"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{1}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_057"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{2}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_058"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{3}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_059"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{4}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_060"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{1}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_061"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{2}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_062"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{3}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_063"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{4}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_064"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{1}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_065"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{2}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_066"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{3}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_067"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{4}}$]]></tex-math></alternatives></inline-formula></td>
</tr>
</tbody><tbody>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_068"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{1}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">1</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_069"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{2}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_070"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{3}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_071"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{4}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"/>
<td colspan="4" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_072"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathcal{L}_{{A^{\gt }}{S^{\gt }}}}$]]></tex-math></alternatives></inline-formula></td>
<td colspan="4" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_073"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathcal{L}_{{A^{\gt }}{C^{\gt }}}}$]]></tex-math></alternatives></inline-formula></td>
<td colspan="4" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_074"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathcal{L}_{{A^{\gt }}{S^{\gt }}{C^{\gt }}}}$]]></tex-math></alternatives></inline-formula></td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">↱</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_075"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{1}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_076"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{2}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_077"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{3}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_078"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{4}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_079"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{1}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_080"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{2}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_081"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{3}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_082"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{4}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_083"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{1}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_084"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{2}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_085"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{3}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_086"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{4}}$]]></tex-math></alternatives></inline-formula></td>
</tr>
</tbody><tbody>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_087"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{1}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_088"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{2}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_089"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{3}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_090"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{4}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
</tr>
</tbody>
</table>
</table-wrap>
<statement id="j_infor566_stat_008"><label>Proposition 1</label>
<title>(Binary matrix of a complementary itemset).</title>
<p><italic>If</italic> <inline-formula id="j_infor566_ineq_091"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathcal{L}_{M}}$]]></tex-math></alternatives></inline-formula> <italic>is the binary matrix of the gradual itemset M, the binary matrix of the complementary gradual itemset</italic> <inline-formula id="j_infor566_ineq_092"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${M^{c}}$]]></tex-math></alternatives></inline-formula> <italic>can be deduced from that of M by transposing</italic> <inline-formula id="j_infor566_ineq_093"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathcal{L}_{M}}$]]></tex-math></alternatives></inline-formula><italic>, i.e.</italic> <inline-formula id="j_infor566_ineq_094"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathcal{L}_{{M^{c}}}}={t_{{\mathcal{L}_{M}}}}$]]></tex-math></alternatives></inline-formula><italic>.</italic></p></statement>
<p>The extraction of the relevant gradual patterns and rules is based on quality criteria that are based on the concept of support and the concept of trust. The definition of the support concept varies depending on the extraction method. This paper considers the definition based on the notion of concordant pairs.</p><statement id="j_infor566_stat_009"><label>Definition 8</label>
<title>(<italic>Support of a gradual pattern,</italic> Berzal <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_008">2007</xref>)<italic>.</italic></title>
<p>The support <inline-formula id="j_infor566_ineq_095"><alternatives><mml:math>
<mml:mtext mathvariant="italic">Supp</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\textit{Supp}(M)$]]></tex-math></alternatives></inline-formula> of a gradual pattern <inline-formula id="j_infor566_ineq_096"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1..</mml:mn>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$M=\{({A_{j}^{\ast }}{\ast _{j}}),\hspace{2.5pt}j=1..k\}$]]></tex-math></alternatives></inline-formula> is the ratio of the number of concordant pairs with respect to <italic>M</italic> on the half of the total number of pairs of the database: 
<disp-formula id="j_infor566_eq_001">
<label>(1)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtext mathvariant="italic">Supp</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">o</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">o</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mi mathvariant="script">D</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mi mathvariant="script">D</mml:mi>
<mml:mo stretchy="false">∣</mml:mo>
<mml:mi mathvariant="italic">o</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mo mathvariant="normal">&lt;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">o</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">}</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="script">D</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="script">D</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \textit{Supp}(M)=\frac{|\{(o,{o^{\prime }})\in \mathcal{D}x\mathcal{D}\mid o{\lt _{M}}{o^{\prime }}\}|}{|\mathcal{D}|(|\mathcal{D}|-1)/2}.\]]]></tex-math></alternatives>
</disp-formula>
</p></statement>
<p>Table <xref rid="j_infor566_tab_003">3</xref> illustrates the notion of gradual support.</p>
<table-wrap id="j_infor566_tab_003">
<label>Table 3</label>
<caption>
<p>Gradual supports of some itemsets from database <inline-formula id="j_infor566_ineq_097"><alternatives><mml:math>
<mml:mi mathvariant="script">D</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{D}$]]></tex-math></alternatives></inline-formula> in Table <xref rid="j_infor566_tab_001">1</xref>.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Itemset</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Complementary itemset</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">List of concordant pairs</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Support</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_098"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${A^{\gt }}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_099"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&lt;</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${A^{\lt }}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_100"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\{({p_{1}},{p_{2}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_101"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({p_{1}},{p_{3}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_102"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({p_{1}},{p_{4}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_103"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({p_{2}},{p_{4}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_104"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({p_{3}},{p_{2}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_105"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$({p_{3}},{p_{4}})\}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_106"><alternatives><mml:math>
<mml:mn>6</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>6</mml:mn></mml:math><tex-math><![CDATA[$6/6$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_107"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${S^{\gt }}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_108"><alternatives><mml:math>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo mathvariant="normal">&lt;</mml:mo></mml:math><tex-math><![CDATA[$S\lt $]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_109"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\{({p_{1}},{p_{2}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_110"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({p_{1}},{p_{4}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_111"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({p_{2}},{p_{4}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_112"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({p_{3}},{p_{2}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_113"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$({p_{3}},{p_{4}})\}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_114"><alternatives><mml:math>
<mml:mn>5</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>6</mml:mn></mml:math><tex-math><![CDATA[$5/6$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_115"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${C^{\gt }}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_116"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&lt;</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${C^{\lt }}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_117"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\{({p_{1}},{p_{2}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_118"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({p_{1}},{p_{3}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_119"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({p_{1}},{p_{4}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_120"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({p_{2}},{p_{3}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_121"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({p_{4}},{p_{2}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_122"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$({p_{4}},{p_{3}})\}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_123"><alternatives><mml:math>
<mml:mn>6</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>6</mml:mn></mml:math><tex-math><![CDATA[$6/6$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_124"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${A^{\gt }}{S^{\gt }}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_125"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&lt;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&lt;</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${A^{\lt }}{S^{\lt }}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_126"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\{({p_{1}},{p_{2}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_127"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({p_{1}},{p_{4}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_128"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({p_{2}},{p_{4}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_129"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({p_{3}},{p_{2}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_130"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$({p_{3}},{p_{4}})\}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_131"><alternatives><mml:math>
<mml:mn>5</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>6</mml:mn></mml:math><tex-math><![CDATA[$5/6$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_132"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${A^{\gt }}{C^{\gt }}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_133"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&lt;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&lt;</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${A^{\lt }}{C^{\lt }}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_134"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\{({p_{1}},{p_{2}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_135"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({p_{1}},{p_{3}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_136"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$({p_{1}},{p_{4}})\}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_137"><alternatives><mml:math>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>6</mml:mn></mml:math><tex-math><![CDATA[$3/6$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_138"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&gt;</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${A^{\gt }}{S^{\gt }}{C^{\gt }}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_139"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&lt;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&lt;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal">&lt;</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${A^{\lt }}{S^{\lt }}{C^{\lt }}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_140"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\{({p_{1}},{p_{2}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_141"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$({p_{1}},{p_{4}})\}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor566_ineq_142"><alternatives><mml:math>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>6</mml:mn></mml:math><tex-math><![CDATA[$2/6$]]></tex-math></alternatives></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
<statement id="j_infor566_stat_010"><label>Proposition 2</label>
<title>(Equality of support, Berzal <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_008">2007</xref>).</title>
<p><inline-formula id="j_infor566_ineq_143"><alternatives><mml:math>
<mml:mtext mathvariant="italic">Supp</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="italic">Supp</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\textit{Supp}(M)=\textit{Supp}(c(M))$]]></tex-math></alternatives></inline-formula><italic>.</italic></p></statement><statement id="j_infor566_stat_011"><label>Proposition 3.</label>
<p><italic>If a gradual pattern is frequent then its complementary is also frequent.</italic></p></statement>
<p>Proposition <xref rid="j_infor566_stat_011">3</xref> is a consequence of Proposition <xref rid="j_infor566_stat_010">2</xref>.</p><statement id="j_infor566_stat_012"><label>Definition 9</label>
<title>(<italic>Confidence of a gradual rule</italic>)<italic>.</italic></title>
<p>The confidence <inline-formula id="j_infor566_ineq_144"><alternatives><mml:math>
<mml:mtext mathvariant="italic">con</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\textit{con}(R)$]]></tex-math></alternatives></inline-formula> of a gradual rule <inline-formula id="j_infor566_ineq_145"><alternatives><mml:math>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$R:{M_{1}}\to {M_{2}}$]]></tex-math></alternatives></inline-formula> is the proportion of concordant pairs with respect to <inline-formula id="j_infor566_ineq_146"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${M_{2}}$]]></tex-math></alternatives></inline-formula> in the set of concordant pairs with respect to <inline-formula id="j_infor566_ineq_147"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${M_{1}}$]]></tex-math></alternatives></inline-formula>: 
<disp-formula id="j_infor566_eq_002">
<label>(2)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtext mathvariant="italic">con</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mtext mathvariant="italic">supp</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>∩</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mtext mathvariant="italic">supp</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \textit{con}(R)=\frac{\textit{supp}({M_{1}}\cap {M_{2}})}{\textit{supp}({M_{1}})}.\]]]></tex-math></alternatives>
</disp-formula>
</p></statement><statement id="j_infor566_stat_013"><label>Definition 10</label>
<title>(<italic>Frequent gradual pattern</italic>)<italic>.</italic></title>
<p>A gradual pattern <italic>M</italic> is said to be frequent if its support is greater than or equal to the minimum support threshold <italic>minSupp</italic>, i.e. <inline-formula id="j_infor566_ineq_148"><alternatives><mml:math>
<mml:mtext mathvariant="italic">supp</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>⩾</mml:mo>
<mml:mtext mathvariant="italic">minSupp</mml:mtext></mml:math><tex-math><![CDATA[$\textit{supp}(M)\geqslant \textit{minSupp}$]]></tex-math></alternatives></inline-formula>.</p></statement><statement id="j_infor566_stat_014"><label>Definition 11</label>
<title>(<italic>Valid gradual rule</italic>)<italic>.</italic></title>
<p>A gradual rule <italic>R</italic> is said to be valid if its confidence is greater than or equal to the minimum confidence threshold <italic>minCon</italic>, i.e. <inline-formula id="j_infor566_ineq_149"><alternatives><mml:math>
<mml:mtext mathvariant="italic">con</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>⩾</mml:mo>
<mml:mtext mathvariant="italic">minCon</mml:mtext></mml:math><tex-math><![CDATA[$\textit{con}(R)\geqslant \textit{minCon}$]]></tex-math></alternatives></inline-formula>.</p></statement>
</sec>
<sec id="j_infor566_s_004">
<label>2.2</label>
<title>Some Approaches to Extracting Gradual Itemsets</title>
<p>The first approach is based on the notion of linear regression (Hüllermeier, <xref ref-type="bibr" rid="j_infor566_ref_017">2002</xref>). It only considers fuzzy data and rules whose premise and conclusion have a size less than or equal to two. However, the notion of T-norm makes it possible to overcome the size limitation of the premises and conclusions of the gradual rules. This approach makes it possible to extract the gradual rules.</p>
<p>The second approach evaluates the support of a gradual pattern as a function of the number of concordant pairs and the total number of pairs in the database. The support calculation formula proposed in Berzal <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor566_ref_008">2007</xref>), corresponds to that of Definition <xref rid="j_infor566_eq_001">1</xref>. This definition is implemented in the Graank algorithm (Laurent <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_024">2009</xref>), which extracts frequent gradual patterns. However, in some works, instead of considering half of the total number of pairs in the database, the total number of pairs in the database is considered instead and the support formula becomes: 
<disp-formula id="j_infor566_eq_003">
<label>(3)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtext mathvariant="italic">Supp</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">o</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">o</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mi mathvariant="script">D</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mi mathvariant="script">D</mml:mi>
<mml:mo stretchy="false">∣</mml:mo>
<mml:mi mathvariant="italic">o</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mo mathvariant="normal">&lt;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">o</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">}</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="script">D</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="script">D</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \textit{Supp}(M)=\frac{|\{(o,{o^{\prime }})\in \mathcal{D}x\mathcal{D}\mid o{\lt _{M}}{o^{\prime }}\}|}{|\mathcal{D}|(|\mathcal{D}|-1)}.\]]]></tex-math></alternatives>
</disp-formula> 
The Graank algorithm is based on the Apriori principle, also known as the generate-test principle, which consists of generating candidate itemsets, calculating the gradual support of said candidates and retaining only those candidates whose support is greater than the minimum support threshold. This algorithm performs a breadth-first search of the search space. During the first iteration, it generates candidates of size 1 and retains only those that are frequent. More generally, in the <inline-formula id="j_infor566_ineq_150"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(k-1)$]]></tex-math></alternatives></inline-formula>-th iteration, it generates the candidates of size <italic>k</italic> and selects those that are frequent. The algorithm stops if none of the candidates of an iteration is frequent.</p>
<p>The third approach evaluates the support of a gradual pattern based on the longest path of its precedence graph. The nodes of the graph are the objects of the database and the arcs translate variations which are in adequacy with the set of comparison operators of the pattern. The graph of precedence of a gradual pattern is a graphic representation of its binary matrix. The Grite algorithm (Di-Jorio <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_014">2009c</xref>), which extracts frequent gradual patterns, is based on this approach. Like Graank, Grite is based on the Apriori principle. Its weakness comes from the relatively high cost of calculating the longest path of a precedence graph. Therefore, the computational cost of gradual support is high compared to that of Graank. On the other hand, Graank takes into account the magnitude of the distortion for data that do not satisfy the gradual itemsets. Indeed, the deletion of an object can considerably reduce the value of the support and lead to additional calculations in the Grite algorithm.</p>
</sec>
</sec>
<sec id="j_infor566_s_005">
<label>3</label>
<title>An Improved Algorithm</title>
<sec id="j_infor566_s_006">
<label>3.1</label>
<title>Presentation of Two Versions of the Proposed Algorithms</title>
<fig id="j_infor566_fig_001">
<label>Fig. 1</label>
<caption>
<p>General principle of the new algorithm. In this figure <inline-formula id="j_infor566_ineq_151"><alternatives><mml:math>
<mml:mtext>C</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\text{C}(i)$]]></tex-math></alternatives></inline-formula> is the set of all candidates itemsets of size <italic>i</italic> and <inline-formula id="j_infor566_ineq_152"><alternatives><mml:math>
<mml:mtext>CF</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\text{CF}(i)$]]></tex-math></alternatives></inline-formula> the set of all frequents itemsets of size <italic>i</italic>.</p>
</caption>
<graphic xlink:href="infor566_g001.jpg"/>
</fig>
<p>Like most pattern discovery algorithms following the Apriori principle, the Graank algorithm performs a breadth-first traversal of the search space to identify frequent gradual itemsets. In this algorithm, the generation of candidate itemsets of size <inline-formula id="j_infor566_ineq_153"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(k+1)$]]></tex-math></alternatives></inline-formula> is performed by exploiting only gradual and frequent itemsets of size <italic>k</italic>. To do this, two frequent itemsets of size <italic>k</italic> are concatenated to form a candidate of size <inline-formula id="j_infor566_ineq_154"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(k+1)$]]></tex-math></alternatives></inline-formula> if they have <inline-formula id="j_infor566_ineq_155"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(k-1)$]]></tex-math></alternatives></inline-formula> items in common. The size of a candidate determines his level. For example, if <inline-formula id="j_infor566_ineq_156"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${A^{+}}{S^{+}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor566_ineq_157"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${A^{+}}{C^{+}}$]]></tex-math></alternatives></inline-formula> are frequent, we concatenate them to obtain the candidate <inline-formula id="j_infor566_ineq_158"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${A^{+}}{S^{+}}{C^{+}}$]]></tex-math></alternatives></inline-formula> of size 3, i.e. of level 3. At the <italic>k</italic>-th iteration, the algorithm generates all candidates of size <italic>k</italic> from the frequent itemsets of size <inline-formula id="j_infor566_ineq_159"><alternatives><mml:math>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$k-1$]]></tex-math></alternatives></inline-formula>, then searches for candidates that are frequent. If <inline-formula id="j_infor566_ineq_160"><alternatives><mml:math>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$k=1$]]></tex-math></alternatives></inline-formula>, the set of candidates is equal to the set of items. The algorithm stops as soon as no frequent itemset is found in an iteration. When <inline-formula id="j_infor566_ineq_161"><alternatives><mml:math>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>⩾</mml:mo>
<mml:mn>2</mml:mn></mml:math><tex-math><![CDATA[$k\geqslant 2$]]></tex-math></alternatives></inline-formula>, the <italic>k</italic>-th iteration requires a memory area to store all frequent itemsets of level <inline-formula id="j_infor566_ineq_162"><alternatives><mml:math>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$k-1$]]></tex-math></alternatives></inline-formula> with their binary matrix and frequent candidates of level <italic>k</italic> with their binary matrix. The cost of this storage can be important. The binary matrix of a candidate of size <italic>k</italic> is obtained as a product of two matrices from two frequent itemsets of size <inline-formula id="j_infor566_ineq_163"><alternatives><mml:math>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$k-1$]]></tex-math></alternatives></inline-formula>. Thus, the binary matrix of a candidate of size <italic>k</italic> is obtained from <inline-formula id="j_infor566_ineq_164"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(k-1)$]]></tex-math></alternatives></inline-formula> matrix products. Because of this, the total cost of matrix products can significantly increase the running time of Graank.</p>
<p>The new algorithm presented here attempts to correct Graank’s weaknesses. Compared to Graank, at iteration <inline-formula id="j_infor566_ineq_165"><alternatives><mml:math>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>⩾</mml:mo>
<mml:mn>3</mml:mn></mml:math><tex-math><![CDATA[$k\geqslant 3$]]></tex-math></alternatives></inline-formula>, it reduces the memory space needed to store the itemsets used to generate the candidates and the frequent itemsets discovered at iteration <italic>k</italic> that will be used at iteration <inline-formula id="j_infor566_ineq_166"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(k+1)$]]></tex-math></alternatives></inline-formula> to generate the candidates. Moreover, it significantly reduces the number of matrix products needed to determine the binary matrix of a candidate. The first difference between Graank and the proposed algorithm concerns the way candidates are generated. All candidates from size <inline-formula id="j_infor566_ineq_167"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(k+1)$]]></tex-math></alternatives></inline-formula> up to size <inline-formula id="j_infor566_ineq_168"><alternatives><mml:math>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">k</mml:mi></mml:math><tex-math><![CDATA[$2k$]]></tex-math></alternatives></inline-formula> are generated only from gradual and frequent itemsets of size <italic>k</italic>. In this candidate generation approach, two frequent itemsets of size <italic>k</italic> and having <italic>p</italic> items in common make it possible to generate a candidate of size <inline-formula id="j_infor566_ineq_169"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(2k-p)$]]></tex-math></alternatives></inline-formula>, between <inline-formula id="j_infor566_ineq_170"><alternatives><mml:math>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$2k+1$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor566_ineq_171"><alternatives><mml:math>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">k</mml:mi></mml:math><tex-math><![CDATA[$2k$]]></tex-math></alternatives></inline-formula>. The second difference comes from the processing carried out at each iteration as illustrated in Fig. <xref rid="j_infor566_fig_001">1</xref>. However, we start by searching for all the frequent items before entering the iteration phase. As in Graank, the iterations are numbered starting from 1. However, during iteration <inline-formula id="j_infor566_ineq_172"><alternatives><mml:math>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>⩾</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$k\geqslant 1$]]></tex-math></alternatives></inline-formula>, instead of searching for all the frequent itemsets of level <italic>k</italic> as in Graank, we rather search for all the frequent itemsets of the levels <inline-formula id="j_infor566_ineq_173"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[${2^{k-1}}+1$]]></tex-math></alternatives></inline-formula> up to <inline-formula id="j_infor566_ineq_174"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{k}}$]]></tex-math></alternatives></inline-formula>. In the first version of the algorithm, at the <italic>k</italic>-th iteration, the algorithm generates all candidates whose size is between <inline-formula id="j_infor566_ineq_175"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({2^{k-1}}+1)$]]></tex-math></alternatives></inline-formula> to <inline-formula id="j_infor566_ineq_176"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{k}}$]]></tex-math></alternatives></inline-formula> only from the frequent itemsets of sizes <inline-formula id="j_infor566_ineq_177"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{k-1}}$]]></tex-math></alternatives></inline-formula> obtained at the <inline-formula id="j_infor566_ineq_178"><alternatives><mml:math>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$k-1$]]></tex-math></alternatives></inline-formula> iteration. Then, it goes through all the candidates in ascending order of their level, from level <inline-formula id="j_infor566_ineq_179"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({2^{k-1}}+1)$]]></tex-math></alternatives></inline-formula> to <inline-formula id="j_infor566_ineq_180"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{k}}$]]></tex-math></alternatives></inline-formula>, to select those who are frequent. Like Graank, the proposed algorithm performs a breadth-first traversal of the search space and stops as soon as it encounters the first level which does not contain a frequent candidate. In the second version of the algorithm, at the <italic>k</italic>-th iteration, the algorithm does not simultaneously store all the candidates whose level varies from <inline-formula id="j_infor566_ineq_181"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({2^{k-1}}+1)$]]></tex-math></alternatives></inline-formula> to <inline-formula id="j_infor566_ineq_182"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{k}}$]]></tex-math></alternatives></inline-formula>. It performs an internal iteration which at each step generates a candidate, calculates its binary matrix and determines if it is frequent. The second version of the algorithm stops at the beginning of iteration <italic>k</italic> if there is no frequent itemset of size <inline-formula id="j_infor566_ineq_183"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{k-1}}$]]></tex-math></alternatives></inline-formula>.</p>
<fig id="j_infor566_fig_002">
<label>Algorithm 1</label>
<caption>
<p>First version of the improved algorithm</p>
</caption>
<graphic xlink:href="infor566_g002.jpg"/>
</fig>
<fig id="j_infor566_fig_003">
<label>Algorithm 2</label>
<caption>
<p>Second version of the improved algorithm</p>
</caption>
<graphic xlink:href="infor566_g003.jpg"/>
</fig>
<p>Algorithms <xref rid="j_infor566_fig_002">1</xref> and <xref rid="j_infor566_fig_003">2</xref> describe two versions of the improved algorithm. They take as input a database and a minimal support provided by the user, and return the set of frequent gradual patterns. Table <xref rid="j_infor566_tab_004">4</xref> describes the list of symbols used in the algorithms. As in Graank, both versions of the proposed algorithm exploit the notion of complementarity to reduce the search space by half. To do this, only itemsets with a positive first term are handled. Both versions search and store all frequent itemsets in main memory. Both versions of the algorithm can be modified in the following way to display each frequent itemset immediately after its discovery and in such a way as to reduce the consumption of main memory:</p>
<list>
<list-item id="j_infor566_li_001">
<label>–</label>
<p>Display each frequent itemset after its discovery.</p>
</list-item>
<list-item id="j_infor566_li_002">
<label>–</label>
<p>Store each new frequent itemset whose size is a power of 2, i.e. of the form <inline-formula id="j_infor566_ineq_184"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{k}}$]]></tex-math></alternatives></inline-formula>, in <inline-formula id="j_infor566_ineq_185"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${F_{{2^{k}}}^{+}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_infor566_li_003">
<label>–</label>
<p>Free the memory space occupied by <inline-formula id="j_infor566_ineq_186"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${F_{{2^{k-1}}}^{+}}$]]></tex-math></alternatives></inline-formula> as soon as the construction of <inline-formula id="j_infor566_ineq_187"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${F_{{2^{k}}}^{+}}$]]></tex-math></alternatives></inline-formula> is finished.</p>
</list-item>
</list>
<p>There are two main differences between Algorithms <xref rid="j_infor566_fig_002">1</xref> and <xref rid="j_infor566_fig_003">2</xref>. The first difference comes from the management of the memory space used to store the candidates of an iteration. During an iteration, Algorithm <xref rid="j_infor566_fig_002">1</xref> generates the set of all candidates and selects the frequent ones while Algorithm <xref rid="j_infor566_fig_003">2</xref> generates the first candidate and keeps it if it is frequent, then generates the second candidate and retains it if it is frequent, and so on. Thus Algorithm <xref rid="j_infor566_fig_002">1</xref> requires an additional memory space to store all the candidates of each iteration while Algorithm <xref rid="j_infor566_fig_003">2</xref> does not need such memory space. The key idea of Algorithm <xref rid="j_infor566_fig_003">2</xref> is to save memory. The second difference comes from their termination criteria. Algorithm <xref rid="j_infor566_fig_002">1</xref> could terminate during one iteration without computing the supports of all candidates in said iteration while Algorithm <xref rid="j_infor566_fig_003">2</xref> cannot do this because it calculates the supports of all the candidates of an iteration. As a result, Algorithm <xref rid="j_infor566_fig_002">1</xref> generally finishes before Algorithm <xref rid="j_infor566_fig_003">2</xref>.</p>
<table-wrap id="j_infor566_tab_004">
<label>Table 4</label>
<caption>
<p>List of symbols.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Notation</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Signification</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_188"><alternatives><mml:math>
<mml:mi mathvariant="script">D</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{D}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Database</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_189"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${F_{k}^{+}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Set of frequent itemsets of sizes <italic>k</italic> whose first term is positive</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor566_ineq_190"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${C_{k}^{+}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Set of candidate itemsets of size <italic>k</italic> whose first term is positive</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><italic>m</italic></td>
<td style="vertical-align: top; text-align: left">Number of database attributes</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Threshold</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Minimal support given by the user</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="j_infor566_s_007">
<label>3.2</label>
<title>Complexity Analysis</title>
<p>This section studies the time and memory complexities of Graank and the proposed algorithms.</p>
<p>Consider a candidate <italic>c</italic> of level <inline-formula id="j_infor566_ineq_191"><alternatives><mml:math>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi></mml:math><tex-math><![CDATA[$l={2^{k-1}}+p$]]></tex-math></alternatives></inline-formula> for some <italic>p</italic> and some <italic>k</italic>, corresponding to the <italic>k</italic>-th iteration of the new algorithm, such that <inline-formula id="j_infor566_ineq_192"><alternatives><mml:math>
<mml:mn>1</mml:mn>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>⩽</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$1\leqslant p\leqslant {2^{k-1}}$]]></tex-math></alternatives></inline-formula>. In Graank, <italic>c</italic> is derived from the concatenation of two frequent itemsets of size <inline-formula id="j_infor566_ineq_193"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(l-1)$]]></tex-math></alternatives></inline-formula>, which in turn are each derived from the concatenation of two frequent itemsets of size <inline-formula id="j_infor566_ineq_194"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(l-2)$]]></tex-math></alternatives></inline-formula>. By transitivity, <italic>c</italic> comes from the concatenation of <inline-formula id="j_infor566_ineq_195"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{p}}$]]></tex-math></alternatives></inline-formula> frequent itemsets of size <inline-formula id="j_infor566_ineq_196"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{k-1}}$]]></tex-math></alternatives></inline-formula>. The matrix of <italic>c</italic> comes from a product of two matrices of level <inline-formula id="j_infor566_ineq_197"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(l-1)$]]></tex-math></alternatives></inline-formula>, and each of them comes in turn from two matrices of level <inline-formula id="j_infor566_ineq_198"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(l-2)$]]></tex-math></alternatives></inline-formula> and so on. On the other hand, in both versions of the proposed algorithm, <italic>c</italic> is derived from the concatenation of two frequent itemsets of size <inline-formula id="j_infor566_ineq_199"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{k-1}}$]]></tex-math></alternatives></inline-formula>. Moreover, the matrix of <italic>c</italic> is issued from the product of two matrices of frequent itemsets of level <inline-formula id="j_infor566_ineq_200"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{k-1}}$]]></tex-math></alternatives></inline-formula>. The number of matrix products performed between the first and the <italic>k</italic>-th iteration for the computation of the matrix of <italic>c</italic> is <italic>k</italic>. Therefore, generating candidate <italic>c</italic> requires <inline-formula id="j_infor566_ineq_201"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(l-1)$]]></tex-math></alternatives></inline-formula> itemset concatenations and <inline-formula id="j_infor566_ineq_202"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(l-1)$]]></tex-math></alternatives></inline-formula> matrix products in Graank, while <italic>k</italic> itemset concatenations and <italic>k</italic> matrix products are needed in the proposed algorithms. This leads to Lemma <xref rid="j_infor566_stat_015">1</xref>.</p><statement id="j_infor566_stat_015"><label>Lemma 1.</label>
<p><italic>The generation of a candidate of level</italic> <inline-formula id="j_infor566_ineq_203"><alternatives><mml:math>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi></mml:math><tex-math><![CDATA[$l={2^{k}}+p$]]></tex-math></alternatives></inline-formula><italic>, for some p and k, with its matrix requires</italic> <inline-formula id="j_infor566_ineq_204"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(l-1)$]]></tex-math></alternatives></inline-formula> <italic>itemset concatenations and</italic> <inline-formula id="j_infor566_ineq_205"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(l-1)$]]></tex-math></alternatives></inline-formula> <italic>matrix products in Graank, while k itemset concatenations and k matrix products are needed in the proposed algorithms.</italic></p></statement>
<p>Lemma <xref rid="j_infor566_stat_015">1</xref> shows that the CPU cost of generating a candidate and computing its binary matrix is significantly improved.</p><statement id="j_infor566_stat_016"><label>Lemma 2.</label>
<p><italic>Denote</italic> <inline-formula id="j_infor566_ineq_206"><alternatives><mml:math>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mi mathvariant="italic">C</mml:mi></mml:math><tex-math><![CDATA[$TC$]]></tex-math></alternatives></inline-formula><italic>,</italic> <inline-formula id="j_infor566_ineq_207"><alternatives><mml:math>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$T{C_{1}}$]]></tex-math></alternatives></inline-formula> <italic>the time complexity of Graank and</italic> Algorithm <xref rid="j_infor566_fig_002">1</xref> <italic>and</italic> <xref rid="j_infor566_fig_003">2</xref> <italic>respectively. We have</italic> 
<disp-formula id="j_infor566_eq_004">
<label>(4)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ TC={\sum \limits_{l=1}^{m}}\big|{F_{l-1}^{+}}\big|\big(\big|{F_{l-1}^{+}}\big|-1\big)2(l-1)+{\sum \limits_{l=1}^{m}}\big|{C_{l}^{g}}\big|{n^{2}}\]]]></tex-math></alternatives>
</disp-formula> 
<italic>and</italic> 
<disp-formula id="j_infor566_eq_005">
<label>(5)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo fence="true" stretchy="false">⌈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo movablelimits="false">log</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" stretchy="false">⌉</mml:mo>
</mml:mrow>
</mml:munderover>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo fence="true" stretchy="false">⌈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo movablelimits="false">log</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" stretchy="false">⌉</mml:mo>
</mml:mrow>
</mml:munderover>
<mml:mo maxsize="1.61em" minsize="1.61em" stretchy="true">|</mml:mo>
<mml:munder>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">⋃</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>⩽</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:munder>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo maxsize="1.61em" minsize="1.61em" stretchy="true">|</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ T{C_{1}}={\sum \limits_{k=1}^{\lceil {\log _{2}}(m)\rceil }}\big|{F_{{2^{k-1}}}^{+}}\big|\big(\big|{F_{{2^{k-1}}}^{+}}\big|-1\big){2^{k}}+{\sum \limits_{k=1}^{\lceil {\log _{2}}(m)\rceil }}\Big|\bigcup \limits_{{2^{k-1}}+1\leqslant l\leqslant {2^{k}}}{C_{l}}\Big|{n^{2}},\]]]></tex-math></alternatives>
</disp-formula> 
<italic>where</italic> <inline-formula id="j_infor566_ineq_208"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${C_{l}^{g}}$]]></tex-math></alternatives></inline-formula> (<italic>resp.</italic> <inline-formula id="j_infor566_ineq_209"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{l}}$]]></tex-math></alternatives></inline-formula>) <italic>is the set of candidates of size l generated by Graank</italic> (<italic>resp. the proposed algorithms</italic>)<italic>.</italic></p></statement><statement id="j_infor566_stat_017"><label>Proof.</label>
<p>In (<xref rid="j_infor566_eq_004">4</xref>) and (<xref rid="j_infor566_eq_005">5</xref>), the first expression is the time complexity of the generation of candidates. The second expression is time complexity of the computation of binary matrices of candidates.  □</p></statement>
<p>Lemma <xref rid="j_infor566_stat_016">2</xref> shows that, compared to Graank, the overall candidate generation runtime in the proposed algorithms is significantly improved. The overall runtime of the calculation of matrix multiplications is not improved although the execution time for the calculation of the matrix of a single itemset is significantly improved according to Lemma <xref rid="j_infor566_stat_015">1</xref>.</p>
<p>Denote by <inline-formula id="j_infor566_ineq_210"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$MS(k)$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_211"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$M{S_{1}}(k)$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor566_ineq_212"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$M{S_{2}}(k)$]]></tex-math></alternatives></inline-formula> the memory space required by the <italic>k</italic>-th iteration respectively in Graank, in the first and second versions of the proposed algorithm. <inline-formula id="j_infor566_ineq_213"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$MS(k)$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_214"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$M{S_{1}}(k)$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor566_ineq_215"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$M{S_{2}}(k)$]]></tex-math></alternatives></inline-formula> depend on the storage space of candidate itemsets and frequent itemsets. Here, we evaluate <inline-formula id="j_infor566_ineq_216"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$MS(k)$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_217"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$M{S_{1}}(k)$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor566_ineq_218"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$M{S_{2}}(k)$]]></tex-math></alternatives></inline-formula>. In Graank, at iteration <italic>k</italic>, after generating a candidate of size <italic>k</italic>, its gradual support is calculated to know if it is frequent or not before generating the next candidate. Any frequent candidate discovered at iteration <italic>k</italic> is stored in <inline-formula id="j_infor566_ineq_219"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${F_{k}^{+}}$]]></tex-math></alternatives></inline-formula>. Thus, in Graank, we have: 
<disp-formula id="j_infor566_eq_006">
<label>(6)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ MS(k)={\sum \limits_{l=1}^{k-2}}\big(\big|{F_{l}^{+}}\big|l\big)+\big|{F_{k-1}^{+}}\big|\big((k-1)+{n^{2}}\big)+\big(k+{n^{2}}\big)+\big|{F_{k}^{+}}\big|\big(k+{n^{2}}\big).\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>This is equivalent to: 
<disp-formula id="j_infor566_eq_007">
<label>(7)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ MS(k)={\sum \limits_{l=1}^{k}}(\big|{F_{l}^{+}}\big|l)+\big|{F_{k-1}^{+}}\big|{n^{2}}+(k+{n^{2}})+\big|{F_{k}^{+}}\big|{n^{2}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>In (<xref rid="j_infor566_eq_006">6</xref>), the first expression is the memory space required to store all frequent itemsets discovered between levels 1 and <inline-formula id="j_infor566_ineq_220"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(k-2)$]]></tex-math></alternatives></inline-formula>, without storing their matrices. The second expression is the memory space required to store all the frequent itemsets discovered at level <inline-formula id="j_infor566_ineq_221"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(k-1)$]]></tex-math></alternatives></inline-formula>, with their matrices. All frequent itemsets of size <inline-formula id="j_infor566_ineq_222"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(k-1)$]]></tex-math></alternatives></inline-formula> and their matrices are used to generate all the candidates of size <italic>k</italic> and their matrices respectively. The third expression is the memory space required to store the current candidate and its matrix, i.e. the one being processed. The fourth expression is the memory space required to store all frequent itemsets of size <italic>k</italic> and their matrices.</p>
<p>In the first version of the proposed algorithm, iteration <italic>k</italic> starts by generating and storing all candidates whose size is between <inline-formula id="j_infor566_ineq_223"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[${2^{k-1}}+1$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor566_ineq_224"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{k}}$]]></tex-math></alternatives></inline-formula>. Then, it performs a breadth-search of all candidates, i.e. level by level. The gradual support of the current candidate, i.e. the one being processed, is calculated to know if it is frequent or not. A frequent candidate of size <italic>l</italic> is stored in <inline-formula id="j_infor566_ineq_225"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${F_{l}^{+}}$]]></tex-math></alternatives></inline-formula> without its matrix if <inline-formula id="j_infor566_ineq_226"><alternatives><mml:math>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$l\lt {2^{k}}$]]></tex-math></alternatives></inline-formula> and with its matrix otherwise. Once all the candidates of the same level have been processed, their memory space is freed and used to store frequent itemsets. Thus, in the first version of the proposed algorithm, we have: 
<disp-formula id="j_infor566_eq_008">
<label>(8)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">M</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mspace width="1em"/>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="2.03em" minsize="2.03em">(</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:munderover>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:munderover>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="2.03em" minsize="2.03em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}M{S_{1}}(k)& ={\sum \limits_{l=1}^{l={2^{k-1}}-1}}\big(\big|{F_{l}^{+}}\big|l\big)+\big|{F_{{2^{k-1}}}^{+}}\big|\big({2^{k-1}}+{n^{2}}\big)+\big({2^{k}}+{n^{2}}\big)\\ {} & \hspace{1em}+\bigg(\hspace{0.1667em}{\sum \limits_{l={2^{k-1}}+1}^{{2^{k}}}}\big(\big|{C_{l}^{+}}\big|l\big)+{\underset{l={2^{k-1}}+1}{\overset{{2^{k}}}{\max }}}\big(\big|{F_{l}^{+}}\big|l\big)\bigg)+\big|{F_{{2^{k}}}^{+}}\big|{n^{2}}.\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>This is equivalent to: 
<disp-formula id="j_infor566_eq_009">
<label>(9)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">M</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:munderover>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mspace width="1em"/>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="2.45em" minsize="2.45em">(</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:munderover>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:munderover>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="2.45em" minsize="2.45em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}M{S_{1}}(k)& ={\sum \limits_{l=1}^{l={2^{k-1}}}}\big(\big|{F_{l}^{+}}\big|l\big)+\big|{F_{{2^{k-1}}}^{+}}\big|{n^{2}}+\big({2^{k}}+{n^{2}}\big)\\ {} & \hspace{1em}+\Bigg(\hspace{0.1667em}{\sum \limits_{l={2^{k-1}}+1}^{{2^{k}}}}\big(\big|{C_{l}^{+}}\big|l\big)+{\underset{l={2^{k-1}}+1}{\overset{{2^{k}}}{\max }}}\big(\big|{F_{l}^{+}}\big|l\big)\Bigg)+\big|{F_{{2^{k}}}^{+}}\big|{n^{2}}.\end{aligned}\]]]></tex-math></alternatives>
</disp-formula> 
In (<xref rid="j_infor566_eq_008">8</xref>), the first expression is the memory space required to store all frequent itemsets discovered between levels 1 and <inline-formula id="j_infor566_ineq_227"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[${2^{k-1}}-1$]]></tex-math></alternatives></inline-formula>, without storing their matrices. The second expression is the memory space required to store all the frequent itemsets discovered at level <inline-formula id="j_infor566_ineq_228"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{k-1}}$]]></tex-math></alternatives></inline-formula> with their matrices. All frequent itemsets of size <inline-formula id="j_infor566_ineq_229"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{k-1}}$]]></tex-math></alternatives></inline-formula> and their matrices are used to generate all candidates whose size is between <inline-formula id="j_infor566_ineq_230"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[${2^{k-1}}+1$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor566_ineq_231"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{k}}$]]></tex-math></alternatives></inline-formula> with their matrices respectively. The third expression is the memory space required to store the current candidate and its matrix, i.e. the one being processed. The fourth expression is the memory space needed to store all candidates of unprocessed levels and all frequent itemsets whose size is between <inline-formula id="j_infor566_ineq_232"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[${2^{k-1}}+1$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor566_ineq_233"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{k}}$]]></tex-math></alternatives></inline-formula> without their matrices. The fifth expression is the memory space required to store all the matrices of frequent itemsets of size <inline-formula id="j_infor566_ineq_234"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{k}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>In the second version of the proposed algorithm, at iteration <italic>k</italic>, after generating a candidate whose size is between <inline-formula id="j_infor566_ineq_235"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[${2^{k-1}}+1$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor566_ineq_236"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{k}}$]]></tex-math></alternatives></inline-formula>, its support is calculated to know if it is frequent or not before generating the next candidate. If the current candidate, i.e. the one being processed, is frequent and of size l, it is stored in <inline-formula id="j_infor566_ineq_237"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${F_{l}^{+}}$]]></tex-math></alternatives></inline-formula> without its matrix if <inline-formula id="j_infor566_ineq_238"><alternatives><mml:math>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$l\lt {2^{k}}$]]></tex-math></alternatives></inline-formula> and with its matrix otherwise. Thus, in the second version of the proposed algorithm, we have: 
<disp-formula id="j_infor566_eq_010">
<label>(10)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">M</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mspace width="1em"/>
<mml:mo>+</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}M{S_{2}}(k)& ={\sum \limits_{l=1}^{l={2^{k-1}}-1}}\big(\big|{F_{l}^{+}}\big|l\big)+\big|{F_{{2^{k-1}}}^{+}}\big|\big({2^{k-1}}+{n^{2}}\big)+\big({2^{k}}+{n^{2}}\big)\\ {} & \hspace{1em}+{\sum \limits_{l={2^{k-1}}+1}^{l={2^{k}}-1}}\big(\big|{F_{l}^{+}}\big|l\big)+\big|{F_{{2^{k}}}^{+}}\big|\big({2^{k}}+{n^{2}}\big).\end{aligned}\]]]></tex-math></alternatives>
</disp-formula> 
This is equivalent to: 
<disp-formula id="j_infor566_eq_011">
<label>(11)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">M</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:munderover>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mspace width="1em"/>
<mml:mo>+</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:munderover>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}M{S_{2}}(k)& ={\sum \limits_{l=1}^{l={2^{k-1}}}}\big(\big|{F_{l}^{+}}\big|l\big)+\big|{F_{{2^{k-1}}}^{+}}\big|{n^{2}}+\big({2^{k}}+{n^{2}}\big)\\ {} & \hspace{1em}+{\sum \limits_{l={2^{k-1}}+1}^{l={2^{k}}}}\big(\big|{F_{l}^{+}}\big|l\big)+\big|{F_{{2^{k}}}^{+}}\big|{n^{2}}.\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>This is equivalent to: 
<disp-formula id="j_infor566_eq_012">
<label>(12)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:munderover>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ M{S_{2}}(k)={\sum \limits_{l=1}^{l={2^{k}}}}\big(\big|{F_{l}^{+}}\big|l\big)+\big|{F_{{2^{k-1}}}^{+}}\big|{n^{2}}+\big({2^{k}}+{n^{2}}\big)+\big|{F_{{2^{k}}}^{+}}\big|{n^{2}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>In formula (<xref rid="j_infor566_eq_010">10</xref>), the first, second and third expressions have the same meaning as their counterpart in formula (<xref rid="j_infor566_eq_008">8</xref>). The fourth expression is the memory space needed to store all frequent itemsets whose size is between <inline-formula id="j_infor566_ineq_239"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[${2^{k-1}}+1$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor566_ineq_240"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[${2^{k}}-1$]]></tex-math></alternatives></inline-formula> without their matrices. The fifth expression is the memory space required to store all frequent itemsets of size <inline-formula id="j_infor566_ineq_241"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{k}}$]]></tex-math></alternatives></inline-formula> and their matrices.</p><statement id="j_infor566_stat_018"><label>Lemma 3.</label>
<p><italic>We have</italic> <inline-formula id="j_infor566_ineq_242"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$M{S_{2}}(k)\lt M{S_{1}}(k)$]]></tex-math></alternatives></inline-formula> <italic>and</italic> <inline-formula id="j_infor566_ineq_243"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>−</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$MS({2^{k}})=M{S_{2}}(k)+(|{F_{{2^{k}}-1}^{+}}|-|{F_{{2^{k-1}}}^{+}}|){n^{2}}$]]></tex-math></alternatives></inline-formula><italic>.</italic></p></statement><statement id="j_infor566_stat_019"><label>Proof.</label>
<p>The first, second, third and fifth expression of formula (<xref rid="j_infor566_eq_009">9</xref>) are respectively equal to their counterpart in formula (<xref rid="j_infor566_eq_011">11</xref>). The fourth expression of formula (<xref rid="j_infor566_eq_011">11</xref>) is less than its counterpart in formula (<xref rid="j_infor566_eq_009">9</xref>). Thus, we have <inline-formula id="j_infor566_ineq_244"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$M{S_{2}}(k)\lt M{S_{1}}(k)$]]></tex-math></alternatives></inline-formula>. The calculation of <inline-formula id="j_infor566_ineq_245"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$MS({2^{k}})-MS(k)$]]></tex-math></alternatives></inline-formula> using formulas (<xref rid="j_infor566_eq_012">12</xref>) and (<xref rid="j_infor566_eq_007">7</xref>) leads to <inline-formula id="j_infor566_ineq_246"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>−</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$MS({2^{k}})=M{S_{2}}(k)+(|{F_{{2^{k}}-1}^{+}}|-|{F_{{2^{k-1}}}^{+}}|){n^{2}}$]]></tex-math></alternatives></inline-formula>.  □</p></statement><statement id="j_infor566_stat_020"><label>Lemma 4.</label>
<p><italic>Denote by</italic> <inline-formula id="j_infor566_ineq_247"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${k_{2}}$]]></tex-math></alternatives></inline-formula><italic>,</italic> <inline-formula id="j_infor566_ineq_248"><alternatives><mml:math>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$kg1$]]></tex-math></alternatives></inline-formula> <italic>and</italic> <inline-formula id="j_infor566_ineq_249"><alternatives><mml:math>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mn>2</mml:mn></mml:math><tex-math><![CDATA[$kg2$]]></tex-math></alternatives></inline-formula><italic>, respectively, the iterations for which</italic> <inline-formula id="j_infor566_ineq_250"><alternatives><mml:math>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$S{M_{2}}(k)$]]></tex-math></alternatives></inline-formula><italic>,</italic> <inline-formula id="j_infor566_ineq_251"><alternatives><mml:math>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$SM(k)$]]></tex-math></alternatives></inline-formula><italic>and</italic> <inline-formula id="j_infor566_ineq_252"><alternatives><mml:math>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$SM({2^{k}})$]]></tex-math></alternatives></inline-formula> <italic>reach their maximum value. Denote by</italic> <inline-formula id="j_infor566_ineq_253"><alternatives><mml:math>
<mml:mtext mathvariant="italic">SMC</mml:mtext></mml:math><tex-math><![CDATA[$\textit{SMC}$]]></tex-math></alternatives></inline-formula><italic>,</italic> <inline-formula id="j_infor566_ineq_254"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext mathvariant="italic">SMC</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\textit{SMC}_{1}}$]]></tex-math></alternatives></inline-formula> <italic>and</italic> <inline-formula id="j_infor566_ineq_255"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext mathvariant="italic">SMC</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\textit{SMC}_{2}}$]]></tex-math></alternatives></inline-formula> <italic>the spaces memory complexity required by Graank,</italic> Algorithm <xref rid="j_infor566_fig_002">1</xref> <italic>and</italic> <xref rid="j_infor566_fig_003">2</xref><italic>, respectively. We have</italic>: <disp-formula-group id="j_infor566_dg_001">
<disp-formula id="j_infor566_eq_013">
<label>(13)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mtext mathvariant="italic">SMC</mml:mtext>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& \textit{SMC}={\underset{k=1}{\overset{m}{\max }}}\big(MS(k)\big)\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_infor566_eq_014">
<label>(14)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msub>
<mml:mrow>
<mml:mtext mathvariant="italic">SMC</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo fence="true" stretchy="false">⌈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo movablelimits="false">log</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" stretchy="false">⌉</mml:mo>
</mml:mrow>
</mml:munderover>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {\textit{SMC}_{1}}={\underset{k=1}{\overset{\lceil {\log _{2}}(m)\rceil }{\max }}}\big(M{S_{1}}(k)\big),\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_infor566_eq_015">
<label>(15)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msub>
<mml:mrow>
<mml:mtext mathvariant="italic">SMC</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo fence="true" stretchy="false">⌈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo movablelimits="false">log</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" stretchy="false">⌉</mml:mo>
</mml:mrow>
</mml:munderover>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {\textit{SMC}_{2}}={\underset{k=1}{\overset{\lceil {\log _{2}}(m)\rceil }{\max }}}\big(M{S_{2}}(k)\big),\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_infor566_eq_016">
<label>(16)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msub>
<mml:mrow>
<mml:mtext mathvariant="italic">SMC</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mtext mathvariant="italic">SMC</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {\textit{SMC}_{2}}\lt {\textit{SMC}_{1}},\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_infor566_eq_017">
<label>(17)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mtext mathvariant="italic">If</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mo mathvariant="normal">&gt;</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mtext mathvariant="italic">then</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mtext mathvariant="italic">SMC</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:mtext mathvariant="italic">SMC</mml:mtext>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& \textit{If}\hspace{2.5pt}\big|{F_{{2^{k2}}-1}^{+}}\big|\gt \big|{F_{{2^{k2-1}}}^{+}}\big|,\hspace{2.5pt}\textit{then}\hspace{2.5pt}{\textit{SMC}_{2}}\lt \textit{SMC},\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_infor566_eq_018">
<label>(18)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mtext mathvariant="italic">If</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mspace width="1em"/>
<mml:mtext mathvariant="italic">and</mml:mtext>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mtext mathvariant="italic">then</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mtext mathvariant="italic">SMC</mml:mtext>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mtext mathvariant="italic">SMC</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& \textit{If}\hspace{2.5pt}\big|{F_{{2^{kg2}}-1}^{+}}\big|\lt \big|{F_{{2^{kg2-1}}}^{+}}\big|\hspace{1em}\textit{and}\hspace{1em}kg1=kg2,\hspace{2.5pt}\textit{then}\hspace{2.5pt}\textit{SMC}\lt {\textit{SMC}_{2}}.\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
</disp-formula-group></p></statement><statement id="j_infor566_stat_021"><label>Proof.</label>
<p>(<xref rid="j_infor566_eq_014">14</xref>) and (<xref rid="j_infor566_eq_015">15</xref>) are straightforward from the respective definitions of <inline-formula id="j_infor566_ineq_256"><alternatives><mml:math>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$SM(k)$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_257"><alternatives><mml:math>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$SM1(k)$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor566_ineq_258"><alternatives><mml:math>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$SM2(k)$]]></tex-math></alternatives></inline-formula>. (<xref rid="j_infor566_eq_016">16</xref>) is straightforward from equation <inline-formula id="j_infor566_ineq_259"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$MS2(k)\lt MS1(k)$]]></tex-math></alternatives></inline-formula> established in Lemma <xref rid="j_infor566_stat_018">3</xref>. (<xref rid="j_infor566_eq_017">17</xref>) and (<xref rid="j_infor566_eq_018">18</xref>) are straightforward from equation <inline-formula id="j_infor566_ineq_260"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>−</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$MS({2^{k}})=M{S_{2}}(k)+(|{F_{{2^{k}}-1}^{+}}|-|{F_{{2^{k-1}}}^{+}}|){n^{2}}$]]></tex-math></alternatives></inline-formula> established in Lemma <xref rid="j_infor566_stat_018">3</xref>.  □</p></statement>
<p>Lemma <xref rid="j_infor566_stat_020">4</xref> shows that the first version of the proposed algorithm consumes more memory space than the second one which in turn can consume less or more memory space than Graank under certain constraints. However, the first version may stop one iteration before the second. Thus, the first version stops faster than the second. The second version stops at the start of an iteration that has no candidate. Such an iteration <italic>k</italic> implies that there is no frequent itemset of size <inline-formula id="j_infor566_ineq_261"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{k-1}}$]]></tex-math></alternatives></inline-formula>. The first version stop during an iteration whose some level has no frequent itemset. Such iteration <italic>k</italic> implies that there is no frequent itemset of size <inline-formula id="j_infor566_ineq_262"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi></mml:math><tex-math><![CDATA[${2^{k-1}}+p$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor566_ineq_263"><alternatives><mml:math>
<mml:mn>1</mml:mn>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>⩽</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$1\leqslant p\leqslant {2^{k-1}}$]]></tex-math></alternatives></inline-formula>, for some <italic>p</italic>.</p>
</sec>
</sec>
<sec id="j_infor566_s_008">
<label>4</label>
<title>Experimentations</title>
<p>This section compares three algorithms: Graank and two versions of the proposed algorithm. Section <xref rid="j_infor566_s_009">4.1</xref> presents datasets. Section <xref rid="j_infor566_s_010">4.2</xref> presents the results of the experimental comparisons.</p>
<sec id="j_infor566_s_009">
<label>4.1</label>
<title>Presentation of Datasets</title>
<p>In this section, we present four types of datasets: one agricultural dataset (Islam <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_018">2018</xref>), three health datasets (Li and Liu, <xref ref-type="bibr" rid="j_infor566_ref_027">2021</xref>; Chicco and Jurman, <xref ref-type="bibr" rid="j_infor566_ref_009">2020</xref>), one economic dataset (Clémentin <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_010">2021</xref>) and three synthetic datasets (Clémentin <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_010">2021</xref>).</p>
<p>The agricultural dataset (agricultural-dataset-bangladesh) comes from information collected on 28 agricultural areas of Bangladesh. It provides relationships between soil nutrients, types of fertilizers, types of soil and meteorological information. The soil nutrients were collected on 6 different types of land: flooded land at high altitude, flooded land at medium altitude, medium land, medium low land, flood low land, very low flood land and miscellaneous land. We have 4 types of fertilizers (urea, triple superphosphate, diammonium dhosphate, and MP). The types of soils come from 19 different types of soil and 4 different types of soil information. The meteorological data come from the Bangladesh Meteorological Department (BMD), providing information on average rainfall, maximum and minimum temperature, and humidity from 2008–2017. The complete description of the different attributes are given in Islam <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor566_ref_018">2018</xref>). The initial database is composed of 44 attributes and 70 transactions. For experimentation purposes, non-numeric attributes and those with missing values were remove, reducing the number of attributes to 32. The acces link to the agricultural dataset is <uri>https://www.kaggle.com/tanhim/agricultural-dataset-bangladesh-44-parameters</uri></p>
<p>The three health datasets are described in the following.</p>
<list>
<list-item id="j_infor566_li_004">
<label>1.</label>
<p>The first health dataset concerns diabetes (diabetes.csv). It comes from the national institute of diabetes and digestive and kidney diseases. It is composed of 9 numeric attributes and 768 transactions. The objective of this dataset is to predict whether a patient is diabetic or not, based on certain diagnostic measures included in the dataset. Several constraints were placed on the selection of these instances from a larger database. In particular, all patients here are females at least 21 years old and of Pima Indian origin. The dataset is composed of several medical predictor variables and a target variable. The predictor variables include the number of pregnancies the patient has had, her BMI, insulin level, age, blood pressure, triceps skinfold thickness and diabetes pedigree function. The acces link to the diabete dataset is <uri>https://www.kaggle.com/uciml/pima-indians-diabetes-database</uri></p>
</list-item>
<list-item id="j_infor566_li_005">
<label>2.</label>
<p>The second health dataset concerns child mortality (fetal_health.csv) (Li and Liu, <xref ref-type="bibr" rid="j_infor566_ref_027">2021</xref>). These data come from Larxel Volunteer (São Paulo), It is a set of 22 numerical attributes and 2126 transactions. Due to memory limitations, only 200 transactions were considered in experimentations. The objective of this dataset is to predict fetal health allowing healthcare professionals to take action to prevent infant and maternal mortality. The different attributes in the dataset are based on Fetal Heart Rate (FHR), fetal movements, uterine contractions. The access link to the child mortality dataset is <uri>https://www.kaggle.com/andrewmvd/fetal-health-classification</uri></p>
</list-item>
<list-item id="j_infor566_li_006">
<label>3.</label>
<p>The third and last health dataset contains medical records of 299 patients with heart failure collected at Faisalabad Heart Institute and Allied Hospital Faisalabad (Punjab, Pakistan), between April and December 2015 (heart_failure_clinical_records.csv) (Chicco and Jurman, <xref ref-type="bibr" rid="j_infor566_ref_009">2020</xref>). It is a set of 13 numeric attributes and 299 transactions. The access link to this dataset is <uri>https://www.kaggle.com/andrewmvd/fetal-health-classification</uri></p>
</list-item>
</list>
<p>The economic dataset comes from the Nasdaq Financials dataset (fundamentals.csv) (Clémentin <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_010">2021</xref>). It contains 35 attributes and 300 transactions. Due to memory limitations, only the first 20 attributes and the first 150 transactions were considered in experimentations. The access link of the economic dataset is <uri>https://www.kaggle.com/dgawlik/nyse?select=fundamentals.csv</uri>.</p>
<p>The three synthetic datasets are C250-A100-50 (Negrevergne <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_030">2014</xref>), F20Att00Li (Negrevergne <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_030">2014</xref>) and test (Negrevergne <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_030">2014</xref>). The access link to all these datasets is <uri>https://github.com/bnegreve/paraminer/tree/master/data/gri</uri></p>
<p>The characteristics of these datasets are summarized in Table <xref rid="j_infor566_tab_005">5</xref>.</p>
<table-wrap id="j_infor566_tab_005">
<label>Table 5</label>
<caption>
<p>Characteristics of the datasets.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Datasets</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Number of items</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Number of transactions</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">Agricultural dataset bangladesh</td>
<td style="vertical-align: top; text-align: left">32</td>
<td style="vertical-align: top; text-align: left">70</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Diabetes</td>
<td style="vertical-align: top; text-align: left">9</td>
<td style="vertical-align: top; text-align: left">768</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Fetal health</td>
<td style="vertical-align: top; text-align: left">26</td>
<td style="vertical-align: top; text-align: left">200</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Heart Failure Clinical Records</td>
<td style="vertical-align: top; text-align: left">13</td>
<td style="vertical-align: top; text-align: left">299</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Fondamental</td>
<td style="vertical-align: top; text-align: left">20</td>
<td style="vertical-align: top; text-align: left">150</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">C250-A100-50</td>
<td style="vertical-align: top; text-align: left">12</td>
<td style="vertical-align: top; text-align: left">250</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F20Att200Li</td>
<td style="vertical-align: top; text-align: left">20</td>
<td style="vertical-align: top; text-align: left">100</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">test</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">10</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">100</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="j_infor566_s_010">
<label>4.2</label>
<title>Experimental Evaluation of Algorithms</title>
<p>This section compares the performance of the Graank algorithm (Laurent <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor566_ref_024">2009</xref>) and the two versions of the proposed algorithms. Experiments were performed on a computer with a Intel(R) Core(TM) i7 CPU M 620 @ 2.67 GHz 2.67 GHz with 6 GB RAM, running on Windows 10 Home 64-bit operating system. The different algorithms are implemented in Java. The purpose of experiments is to compare the runtime as depicted on Figs. <xref rid="j_infor566_fig_004">2</xref>, <xref rid="j_infor566_fig_005">3</xref>, <xref rid="j_infor566_fig_006">4</xref>, <xref rid="j_infor566_fig_007">5</xref> and the memory consumption as shown in Figs. <xref rid="j_infor566_fig_008">6</xref>, <xref rid="j_infor566_fig_009">7</xref>, <xref rid="j_infor566_fig_010">8</xref>, <xref rid="j_infor566_fig_011">9</xref> for different support threshold values on datasets presented on Section <xref rid="j_infor566_s_009">4.1</xref>.</p>
<sec id="j_infor566_s_011">
<label>4.2.1</label>
<title>Runtime Evaluation of Algorithms</title>
<p>Figure reffig:timeagriculture shows the runtime performance of the three algorithms on the agricultural dataset. The two versions of the proposed algorithm have almost similar execution times and are sometimes at least five times faster than Graank.</p>
<fig id="j_infor566_fig_004">
<label>Fig. 2</label>
<caption>
<p>CPU performance on agricultural dataset.</p>
</caption>
<graphic xlink:href="infor566_g004.jpg"/>
</fig>
<p>Figure <xref rid="j_infor566_fig_005">3</xref> shows the runtime performances of the three algorithms on the three medical datasets. The two versions of the proposed algorithm are globally faster than Graank on medical datasets. Moreover, they are sometimes seven times faster than Graank on the diabete dataset and twice as fast as Graank on fetal health and heart failure datasets. However, for some support threshold values, both versions of the proposed algorithm are slightly slower than Graank. This is due to the matrix multiplication times according to Lemma <xref rid="j_infor566_stat_016">2</xref>. As with the agricultural dataset, the two versions of the proposed algorithm have nearly similar runtimes on medical datasets.</p>
<fig id="j_infor566_fig_005">
<label>Fig. 3</label>
<caption>
<p>CPU performance on medical datasets.</p>
</caption>
<graphic xlink:href="infor566_g005.jpg"/>
</fig>
<p>Figures <xref rid="j_infor566_fig_006">4</xref>, <xref rid="j_infor566_fig_007">5</xref> show the runtime performances of the three algorithms on economic and synthetic datasets respectively. Both versions of the proposed algorithms are faster than Graank. On the other hand, the first version is slightly faster than the second one.</p>
<fig id="j_infor566_fig_006">
<label>Fig. 4</label>
<caption>
<p>CPU performance on economic dataset.</p>
</caption>
<graphic xlink:href="infor566_g006.jpg"/>
</fig>
<fig id="j_infor566_fig_007">
<label>Fig. 5</label>
<caption>
<p>CPU performance on synthetic datasets.</p>
</caption>
<graphic xlink:href="infor566_g007.jpg"/>
</fig>
<p>In summary, the runtime evaluation shows that Algorithms <xref rid="j_infor566_fig_002">1</xref> and <xref rid="j_infor566_fig_003">2</xref> outperform Graank in terms of CPU consumption and are sometimes at least 5–7 times faster. Between Algorithms <xref rid="j_infor566_fig_002">1</xref> and <xref rid="j_infor566_fig_003">2</xref>, the advantage goes to Algorithm <xref rid="j_infor566_fig_002">1</xref> in terms of CPU consumption.</p>
</sec>
<sec id="j_infor566_s_012">
<label>4.2.2</label>
<title>Memory Evaluation of Algorithms</title>
<p>Figure <xref rid="j_infor566_fig_008">6</xref> shows the memory consumption on agricultural dataset. The memory consumption of both versions of the proposed algorithm is less than that of Graank for support threshold values which are less than 0.37 and slightly higher otherwise.</p>
<fig id="j_infor566_fig_008">
<label>Fig. 6</label>
<caption>
<p>RAM usage on agricultural dataset.</p>
</caption>
<graphic xlink:href="infor566_g008.jpg"/>
</fig>
<p>Figure <xref rid="j_infor566_fig_009">7</xref> shows memory consumption on medical datasets. The memory consumption of both versions of the proposed algorithm is lower than that of Graank. On the other hand, the second version uses less memory than the first one.</p>
<fig id="j_infor566_fig_009">
<label>Fig. 7</label>
<caption>
<p>RAM usage on medical datasets.</p>
</caption>
<graphic xlink:href="infor566_g009.jpg"/>
</fig>
<p>Figure <xref rid="j_infor566_fig_010">8</xref> shows the memory consumption on the economical dataset. The memory consumption of both versions of the proposed algorithm is lower than that of Graank. Moreover, the second version uses less memory than the first one.</p>
<fig id="j_infor566_fig_010">
<label>Fig. 8</label>
<caption>
<p>RAM usage on economic dataset.</p>
</caption>
<graphic xlink:href="infor566_g010.jpg"/>
</fig>
<p>Figure <xref rid="j_infor566_fig_011">9</xref> shows the memory consumption on synthetic datasets. The memory consumption of both versions of the proposed algorithm is lower than that of Graank on the first two datasets and slightly higher than that of Graank on the third dataset. As with the economic dataset, the second version consumes less memory than the first one.</p>
<fig id="j_infor566_fig_011">
<label>Fig. 9</label>
<caption>
<p>RAM usage on synthetic datasets.</p>
</caption>
<graphic xlink:href="infor566_g011.jpg"/>
</fig>
<p>In summary, the memory evaluation shows that, in general, Algorithms <xref rid="j_infor566_fig_002">1</xref> and <xref rid="j_infor566_fig_003">2</xref> outperform Graank in terms of memory consumption and they require sometimes at most half the memory. Between Algorithms <xref rid="j_infor566_fig_002">1</xref> and <xref rid="j_infor566_fig_003">2</xref>, the advantage goes to Algorithm <xref rid="j_infor566_fig_003">2</xref> in terms of memory consumption. However, there are marginal cases where Graank consumes less memory than Algorithms <xref rid="j_infor566_fig_002">1</xref> and <xref rid="j_infor566_fig_003">2</xref>. Formula (<xref rid="j_infor566_eq_018">18</xref>) in Lemma <xref rid="j_infor566_stat_020">4</xref> characterizes some of the said cases.</p>
</sec>
</sec>
<sec id="j_infor566_s_013">
<label>4.3</label>
<title>Presentation of Some Interesting Patterns</title>
<p>This section presents some interesting patterns extracted from real datasets.</p>
<sec id="j_infor566_s_014">
<label>4.3.1</label>
<title>Case of the Agricultural Dataset</title>
<p>Here some interesting gradual patterns extracted from the <italic>agricultural-dataset-bangladesh</italic> dataset, with the minimum support threshold <inline-formula id="j_infor566_ineq_264"><alternatives><mml:math>
<mml:mtext mathvariant="italic">minSupp</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mn>43</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi></mml:math><tex-math><![CDATA[$\textit{minSupp}=43\% $]]></tex-math></alternatives></inline-formula>: “the more calcareous brown floodplain soil increases, the more calcareous dark grey floodplain soil increases, the more non calcareous grey floodplain soil increases and the more non calcareous dark grey floodplain soil increases” <inline-formula id="j_infor566_ineq_265"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mtext mathvariant="italic">Supp</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mn>51.46</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\textit{Supp}=51.46\% )$]]></tex-math></alternatives></inline-formula>; “the more average rainfall increase, the more minimum temperature increase, the more the boron content increases and the more potato yield increases” <inline-formula id="j_infor566_ineq_266"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mtext mathvariant="italic">Supp</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mn>51.80</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\textit{Supp}=51.80\% )$]]></tex-math></alternatives></inline-formula>.</p>
</sec>
<sec id="j_infor566_s_015">
<label>4.3.2</label>
<title>Case of Health Datasets</title>
<p>Here are some interesting gradual patterns extracted from the <italic>diabetes</italic> dataset with the minimum support threshold <inline-formula id="j_infor566_ineq_267"><alternatives><mml:math>
<mml:mtext mathvariant="italic">minSupp</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mn>4</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi></mml:math><tex-math><![CDATA[$\textit{minSupp}=4\% $]]></tex-math></alternatives></inline-formula>: “the more number of times pregnant increases, the more plasma glucose concentration after 2 hours in an oral glucose tolerance test increases, the more diastolic blood pressure increases, the more body mass index increases and the more age increases” <inline-formula id="j_infor566_ineq_268"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mtext mathvariant="italic">Supp</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mn>16.45</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\textit{Supp}=16.45\% )$]]></tex-math></alternatives></inline-formula>; “the more triceps skin fold thickness increases, the more 2-hour serum insulin level increases, the more body mass index increase and the more diabetes pedigree function increases” <inline-formula id="j_infor566_ineq_269"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mtext mathvariant="italic">Supp</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mn>23.36</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\textit{Supp}=23.36\% )$]]></tex-math></alternatives></inline-formula>.</p>
<p>Here are some interesting gradual patterns extracted from the <italic>fetal heart</italic> dataset with the minimum support threshold <inline-formula id="j_infor566_ineq_270"><alternatives><mml:math>
<mml:mtext mathvariant="italic">minSupp</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mn>6.9</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi></mml:math><tex-math><![CDATA[$\textit{minSupp}=6.9\% $]]></tex-math></alternatives></inline-formula> : “the more number of fetal movements per second increases, the more percentage of time with abnormal short term variability decreases, the more width of the histogram made using all values from a record increases and histogram minimum value decreases” <inline-formula id="j_infor566_ineq_271"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mtext mathvariant="italic">Supp</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mn>30.49</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\textit{Supp}=30.49\% )$]]></tex-math></alternatives></inline-formula>; “the more percentage of time with abnormal short term variability increases, the more width of the histogram made using all values from a record decreases, the more histogram minimum value increases and the histogram maximum value decreases and the more histogram variance decreases” <inline-formula id="j_infor566_ineq_272"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mtext mathvariant="italic">Supp</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mn>42.25</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\textit{Supp}=42.25\% )$]]></tex-math></alternatives></inline-formula>.</p>
<p>Here are some interesting gradual patterns extracted from the <italic>heart failure</italic> dataset with the minimum support threshold <inline-formula id="j_infor566_ineq_273"><alternatives><mml:math>
<mml:mtext mathvariant="italic">minSupp</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mn>4</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi></mml:math><tex-math><![CDATA[$\textit{minSupp}=4\% $]]></tex-math></alternatives></inline-formula>: “the more age increases, the more Level of serum creatinine in the blood increases and the more follow-up period (days) decreases” <inline-formula id="j_infor566_ineq_274"><alternatives><mml:math>
<mml:mtext mathvariant="italic">Supp</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mn>31.92</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi></mml:math><tex-math><![CDATA[$\textit{Supp}=31.92\% $]]></tex-math></alternatives></inline-formula>; “the more percentage of blood leaving the heart at each contraction increases, the more number of platelets in the blood increases and the more follow-up period (days) increases” <inline-formula id="j_infor566_ineq_275"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mtext mathvariant="italic">Supp</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mn>23.97</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\textit{Supp}=23.97\% )$]]></tex-math></alternatives></inline-formula>.</p>
</sec>
<sec id="j_infor566_s_016">
<label>4.3.3</label>
<title>Case of the Economic Dataset</title>
<p>Here are some interesting gradual patterns extracted from the <italic>fundamentals</italic> dataset, with the minimum support threshold <inline-formula id="j_infor566_ineq_276"><alternatives><mml:math>
<mml:mtext mathvariant="italic">minSupp</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mn>5.625</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi></mml:math><tex-math><![CDATA[$\textit{minSupp}=5.625\% $]]></tex-math></alternatives></inline-formula>: “the more capital expenditure increases, the more earnings before interest and tax decrease, the more earnings before tax decrease and the more fixed asset decreases” <inline-formula id="j_infor566_ineq_277"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mtext mathvariant="italic">Supp</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mn>57.86</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\textit{Supp}=57.86\% )$]]></tex-math></alternatives></inline-formula>; “the more cost of revenue increases, the more earnings before interest and tax increase and the more earnings before tax increase” <inline-formula id="j_infor566_ineq_278"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mtext mathvariant="italic">Supp</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mn>63.49</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\textit{Supp}=63.49\% )$]]></tex-math></alternatives></inline-formula>.</p>
</sec>
</sec>
</sec>
<sec id="j_infor566_s_017">
<label>5</label>
<title>Conclusion</title>
<p>In this paper, we have presented a new approach to improve the performance of frequent gradual pattern mining algorithms by reducing the candidate generation and processing costs. The complexity analysis and experimental performances carried out on different databases are to the advantage of the proposed approach compared to the previous ones, which confirms the effectiveness of the new approach. Sometimes, the CPU consumption gain factor is greater than 5 and the memory consumption gain factor is greater than 2. However, the theoretical and experimental studies carried out in this article reveal marginal cases for which Graank requires less memory than the proposed approach. This work opens interesting perspectives. Studying how to reduce the memory space required by Graank for marginal cases is an interesting research question. This may lead to an adaptation or improvement of the candidate generation and processing technique proposed in this paper. It could also lead to the design of a new technique. It is also interesting to study the integration of the proposed candidate generation and processing technique into other data mining algorithms in order to improve their performance. Another research question is to study how to parallelize the algorithms in which the technique proposed in this paper has been integrated in order to take advantage of the benefits offered by parallel computing for processing large datasets.</p>
</sec>
</body>
<back>
<ref-list id="j_infor566_reflist_001">
<title>References</title>
<ref id="j_infor566_ref_001">
<mixed-citation publication-type="chapter"><string-name><surname>Agrawal</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Srikant</surname>, <given-names>R.</given-names></string-name> (<year>1994</year>). <chapter-title>Fast algorithms for mining association rules in large databases</chapter-title>. In: <source>International Conference On Very Large Data Bases (VLDB ‘94)</source>. <publisher-name>Morgan Kaufmann Publishers, Inc.</publisher-name>, <publisher-loc>San Francisco, CA, USA</publisher-loc>, pp. <fpage>487</fpage>–<lpage>499</lpage>. <isbn>1-55860-153-8</isbn>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_002">
<mixed-citation publication-type="journal"><string-name><surname>Al-Jammali</surname>, <given-names>K.</given-names></string-name> (<year>2023</year>). <article-title>Prediction of heart diseases using data mining algorithms</article-title>. <source>Informatica (Slovenia)</source>, <volume>47</volume>(<issue>5</issue>). <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.31449/INF.V47I5.4467" xlink:type="simple">https://doi.org/10.31449/INF.V47I5.4467</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_003">
<mixed-citation publication-type="chapter"><string-name><surname>Ayouni</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Yahia</surname>, <given-names>S.B.</given-names></string-name>, <string-name><surname>Laurent</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Poncelet</surname>, <given-names>P.</given-names></string-name> (<year>2010</year>). <chapter-title>Motifs graduels clos</chapter-title>. In: <source>Extraction et Gestion des Connaissances (EGC’2010), Actes, 26 au 29 janvier 2010, Hammamet, Tunisie</source>, pp. <fpage>211</fpage>–<lpage>216</lpage>. <ext-link ext-link-type="uri" xlink:href="http://editions-rnti.fr/?inprocid=1001293">http://editions-rnti.fr/?inprocid=1001293</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_004">
<mixed-citation publication-type="other"><string-name><surname>Belise</surname>, <given-names>K.E.</given-names></string-name> (2011). <italic>Algorithmes des motifs séquentiels et temporels : Etat de l’art et étude comparative</italic>. Master’s thesis, Université de Dschang.</mixed-citation>
</ref>
<ref id="j_infor566_ref_005">
<mixed-citation publication-type="journal"><string-name><surname>Belise</surname>, <given-names>K.E.</given-names></string-name>, <string-name><surname>Calvin</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Nkambou</surname>, <given-names>R.</given-names></string-name> (<year>2017</year>). <article-title>A pattern growth-based sequential pattern mining algorithm called prefixSuffixSpan</article-title>. <source>EAI Endorsed Transactions on Scalable Information Systems</source>, <volume>4</volume>(<issue>12</issue>), <fpage>4</fpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.4108/eai.18-1-2017.152103" xlink:type="simple">https://doi.org/10.4108/eai.18-1-2017.152103</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_006">
<mixed-citation publication-type="journal"><string-name><surname>Belise</surname>, <given-names>K.E.</given-names></string-name>, <string-name><surname>Fotso</surname>, <given-names>L.C.T.</given-names></string-name>, <string-name><surname>Djamégni</surname>, <given-names>C.T.</given-names></string-name> (<year>2023</year>). <article-title>A novel algorithm for mining maximal frequent gradual patterns</article-title>. <source> Engineering Applications of Artificial Intelligence</source>, <volume>120</volume>, <fpage>105939</fpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.engappai.2023.105939" xlink:type="simple">https://doi.org/10.1016/j.engappai.2023.105939</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_007">
<mixed-citation publication-type="chapter"><string-name><surname>Belise</surname>, <given-names>K.E.</given-names></string-name>, <string-name><surname>Roger</surname>, <given-names>N.</given-names></string-name>, <string-name><surname>Calvin</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Nguifo</surname>, <given-names>E.M.</given-names></string-name> (<year>2018</year>). <chapter-title>A parallel pattern-growth algorithm</chapter-title>. In: <source>CARI’2018</source>, <conf-loc>South Africa</conf-loc>, pp. <fpage>245</fpage>–<lpage>256</lpage>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_008">
<mixed-citation publication-type="journal"><string-name><surname>Berzal</surname>, <given-names>F.</given-names></string-name>, <string-name><surname>Cubero</surname>, <given-names>J.C.</given-names></string-name>, <string-name><surname>Sánchez</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Miranda</surname>, <given-names>M.A.V.</given-names></string-name>, <string-name><surname>Serrano</surname>, <given-names>J.</given-names></string-name> (<year>2007</year>). <article-title>An alternative approach to discover gradual dependencies</article-title>. <source>International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems</source>, <volume>15</volume>(<issue>5</issue>), <fpage>559</fpage>–<lpage>570</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1142/S021848850700487X" xlink:type="simple">https://doi.org/10.1142/S021848850700487X</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_009">
<mixed-citation publication-type="journal"><string-name><surname>Chicco</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Jurman</surname>, <given-names>G.</given-names></string-name> (<year>2020</year>). <article-title>Machine learning can predict survival of patients with heart failure from serum creatinine and ejection fraction alone</article-title>. <source>BMC Medical Informatics and Decision Making</source>, <volume>20</volume>(<issue>1</issue>), <fpage>1</fpage>–<lpage>16</lpage>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_010">
<mixed-citation publication-type="journal"><string-name><surname>Clémentin</surname>, <given-names>T.D.</given-names></string-name>, <string-name><surname>Cabrel</surname>, <given-names>T.F.L.</given-names></string-name>, <string-name><surname>Belise</surname>, <given-names>K.E.</given-names></string-name> (2021). <article-title>A novel algorithm for extracting frequent gradual patterns</article-title>. <source>Machine Learning with Applications</source>, <volume>5</volume>, <elocation-id>100068</elocation-id>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_011">
<mixed-citation publication-type="chapter"><string-name><surname>Côme</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Lonlac</surname>, <given-names>J.</given-names></string-name> (<year>2021</year>). <chapter-title>Extracting frequent (closed) seasonal gradual patterns using closed itemset mining</chapter-title>. In: <source>33rd IEEE International Conference on Tools with Artificial Intelligence, ICTAI 2021, Washington, DC, USA, November 1–3, 2021</source>. <publisher-name>IEEE</publisher-name>, pp. <fpage>1442</fpage>–<lpage>1448</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/ICTAI52525.2021.00229" xlink:type="simple">https://doi.org/10.1109/ICTAI52525.2021.00229</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_012">
<mixed-citation publication-type="chapter"><string-name><surname>Di-Jorio</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Laurent</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Teisseire</surname>, <given-names>M.</given-names></string-name> (<year>2009</year>a). <chapter-title>Extraction efficace de règles graduelles</chapter-title>. In: <string-name><surname>Ganascia</surname>, <given-names>J.-G.</given-names></string-name>, <string-name><surname>Gançarski</surname>, <given-names>P.</given-names></string-name> (Eds.), <source>Extraction et gestion des connaissances (EGC’2009), Actes, Strasbourg, France, 27 au 30 janvier 2009</source>. <series><italic>Revue des Nouvelles Technologies de l’Information</italic></series>, Vol. <volume>RNTI-E-15</volume>. <publisher-name>Cépaduès-Éditions</publisher-name>, pp. <fpage>199</fpage>–<lpage>204</lpage>. <isbn>978-2-85428-878-0</isbn>. <uri>http://editions-rnti.fr/?procid=4591</uri>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_013">
<mixed-citation publication-type="chapter"><string-name><surname>Di-Jorio</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Laurent</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Teisseire</surname>, <given-names>M.</given-names></string-name> (<year>2009</year>b). <chapter-title>Mining frequent gradual itemsets from large databases</chapter-title>. In: <source>International Symposium on Intelligent Data Analysis</source>, pp. <fpage>297</fpage>–<lpage>308</lpage>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_014">
<mixed-citation publication-type="chapter"><string-name><surname>Di-Jorio</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Laurent</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Teisseire</surname>, <given-names>M.</given-names></string-name> (<year>2009</year>c). <chapter-title>Mining frequent gradual itemsets from large databases</chapter-title>. In: <string-name><surname>Adams</surname>, <given-names>N.M.</given-names></string-name>, <string-name><surname>Robardet</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Siebes</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Boulicaut</surname>, <given-names>J.-F.</given-names></string-name> (Eds.), <source>Advances in Intelligent Data Analysis VIII, 8th International Symposium on Intelligent Data Analysis, IDA 2009, Lyon, France, August 31–September 2, 2009. Proceedings</source>. <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. 5772. <publisher-name>Springer</publisher-name>, pp. <fpage>297</fpage>–<lpage>308</lpage>. <isbn>978-3-642-03914-0</isbn>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_015">
<mixed-citation publication-type="journal"><string-name><surname>Frawley</surname>, <given-names>W.J.</given-names></string-name>, <string-name><surname>Piatetsky-Shapiro</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Matheus</surname>, <given-names>C.J.</given-names></string-name> (<year>1992</year>). <article-title>Knowledge discovery in databases: an overview</article-title>. <source>AI Magazine</source>, <volume>13</volume>(<issue>3</issue>), <fpage>57</fpage>–<lpage>70</lpage>. <uri>http://www.aaai.org/ojs/index.php/aimagazine/article/view/1011</uri>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_016">
<mixed-citation publication-type="journal"><string-name><surname>Ham</surname>, <given-names>N.</given-names></string-name>, <string-name><surname>Nguyen</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Huong</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Tuong</surname>, <given-names>L.</given-names></string-name> (<year>2022</year>). <article-title>A new approach for efficiently mining frequent weighted utility patterns</article-title>. <source>Applied Intelligence</source>, <volume>53</volume>(<issue>1</issue>), <fpage>121</fpage>–<lpage>140</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/s10489-022-03580-7" xlink:type="simple">https://doi.org/10.1007/s10489-022-03580-7</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_017">
<mixed-citation publication-type="chapter"><string-name><surname>Hüllermeier</surname>, <given-names>E.</given-names></string-name> (<year>2002</year>). <chapter-title>Association RUles for expressing gradual dependencies</chapter-title>. In: <source>Principles of Data Mining and Knowledge Discovery, 6th European Conference, PKDD 2002, Helsinki, Finland, August 19–23, 2002, Proceedings</source>, pp. <fpage>200</fpage>–<lpage>211</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/3-540-45681-3_17" xlink:type="simple">https://doi.org/10.1007/3-540-45681-3_17</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_018">
<mixed-citation publication-type="other"><string-name><surname>Islam</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Chisty</surname>, <given-names>T.A.</given-names></string-name>, <string-name><surname>Roy</surname>, <given-names>P.</given-names></string-name> (2018). <italic>A Deep Neural Network Approach for Intelligent Crop Selection and Yield Prediction Based on 46 Parameters for Agricultural Zone-28 in Bangladesh</italic>. PhD thesis, BRAC University.</mixed-citation>
</ref>
<ref id="j_infor566_ref_019">
<mixed-citation publication-type="chapter"><string-name><surname>Jabbour</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Lonlac</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Saïs</surname>, <given-names>L.</given-names></string-name> (<year>2019</year>). <chapter-title>Mining gradual itemsets using sequential pattern mining</chapter-title>. In: <source>2019 IEEE International Conference on Fuzzy Systems, FUZZ-IEEE 2019, New Orleans, LA, USA, June 23–26, 2019</source>. <publisher-name>IEEE</publisher-name>, pp. <fpage>1</fpage>–<lpage>6</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/FUZZ-IEEE.2019.8858864" xlink:type="simple">https://doi.org/10.1109/FUZZ-IEEE.2019.8858864</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_020">
<mixed-citation publication-type="journal"><string-name><surname>Kenmogne</surname>, <given-names>E.B.</given-names></string-name> (<year>2016</year>). <article-title>The impact of the pattern-growth ordering on the performances of pattern growth-based sequential pattern mining algorithms</article-title>. <source>Computer and Information Science</source>, <volume>10</volume>(<issue>1</issue>), <fpage>23</fpage>–<lpage>33</lpage>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_021">
<mixed-citation publication-type="other"><string-name><surname>Kenmogne</surname>, <given-names>E.B.</given-names></string-name> (2018). <italic>Contribution to the Sequential and Parallel Discovery of Sequential Patterns with an Application to the Design of e-Learning Recommenders</italic>. PhD thesis, University of Dschang.</mixed-citation>
</ref>
<ref id="j_infor566_ref_022">
<mixed-citation publication-type="journal"><string-name><surname>Kenmogne</surname>, <given-names>E.B.</given-names></string-name>, <string-name><surname>Djamegni</surname>, <given-names>C.T.</given-names></string-name>, <string-name><surname>Nkambou</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Tabueu Fosto</surname>, <given-names>L.C.</given-names></string-name>, <string-name><surname>Tadmon</surname>, <given-names>C.</given-names></string-name> (<year>2022</year>). <article-title>Efficient mining of intra-periodic frequent sequences</article-title>. <source>Array</source>, <volume>16</volume>, <fpage>100263</fpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.array.2022.100263" xlink:type="simple">https://doi.org/10.1016/j.array.2022.100263</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_023">
<mixed-citation publication-type="journal"><string-name><surname>Kononenko</surname>, <given-names>I.</given-names></string-name>, <string-name><surname>Bevk</surname>, <given-names>M.</given-names></string-name> (<year>2009</year>). <article-title>Extended symbolic mining of textures with association rules</article-title>. <source>Informatica (Slovenia)</source>, <volume>33</volume>(<issue>4</issue>), <fpage>487</fpage>–<lpage>497</lpage>. <uri>http://www.informatica.si/index.php/informatica/article/view/266</uri>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_024">
<mixed-citation publication-type="chapter"><string-name><surname>Laurent</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Lesot</surname>, <given-names>M.-J.</given-names></string-name>, <string-name><surname>Rifqi</surname>, <given-names>M.</given-names></string-name> (<year>2009</year>). <chapter-title>GRAANK: exploiting rank correlations for extracting gradual itemsets</chapter-title>. In: <string-name><surname>Andreasen</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Yager</surname>, <given-names>R.R.</given-names></string-name>, <string-name><surname>Bulskov</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>0001</surname>, <given-names>H.C.</given-names></string-name>, <string-name><surname>Larsen</surname>, <given-names>H.L.</given-names></string-name> (Eds.), <source>Flexible Query Answering Systems, 8th International Conference, FQAS 2009, Roskilde, Denmark, October 26–28, 2009. Proceedings</source>. <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>5822</volume>. <publisher-name>Springer</publisher-name>, pp. <fpage>382</fpage>–<lpage>393</lpage>. <isbn>978-3-642-04956-9</isbn>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_025">
<mixed-citation publication-type="chapter"><string-name><surname>Laurent</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Negrevergne</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Sicard</surname>, <given-names>N.</given-names></string-name>, <string-name><surname>Termier</surname>, <given-names>A.</given-names></string-name> (<year>2010</year>). <chapter-title>PGP-mc: extraction parallèle efficace de motifs graduels</chapter-title>. In: <source>EGC: Extraction et Gestion des Connaissances</source>, pp. <fpage>453</fpage>–<lpage>464</lpage>. <comment>Cépaduès</comment>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_026">
<mixed-citation publication-type="chapter"><string-name><surname>Laurent</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Négrevergne</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Sicard</surname>, <given-names>N.</given-names></string-name>, <string-name><surname>Termier</surname>, <given-names>A.</given-names></string-name> (<year>2012</year>). <chapter-title>Efficient parallel mining of gradual patterns on multicore processors</chapter-title>. In: <source>Advances in Knowledge Discovery and Management</source>. <publisher-name>Springer</publisher-name>, pp. <fpage>137</fpage>–<lpage>151</lpage>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_027">
<mixed-citation publication-type="chapter"><string-name><surname>Li</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Liu</surname>, <given-names>X.</given-names></string-name> (<year>2021</year>). <chapter-title>Fetal health classification based on machine learning</chapter-title>. In: <source>2021 IEEE 2nd International Conference on Big Data, Artificial Intelligence and Internet of Things Engineering (ICBAIE)</source>. <publisher-name>IEEE</publisher-name>, pp. <fpage>899</fpage>–<lpage>902</lpage>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_028">
<mixed-citation publication-type="journal"><string-name><surname>Lonlac</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Nguifo</surname>, <given-names>E.M.</given-names></string-name> (<year>2020</year>). <article-title>A novel algorithm for searching frequent gradual patterns from an ordered data set</article-title>. <source>Intelligent Data Analysis</source>, <volume>24</volume>(<issue>5</issue>), <fpage>1029</fpage>–<lpage>1042</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.3233/IDA-194644" xlink:type="simple">https://doi.org/10.3233/IDA-194644</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_029">
<mixed-citation publication-type="chapter"><string-name><surname>Lonlac</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Doniec</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Lujak</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Lecoeuche</surname>, <given-names>S.</given-names></string-name> (<year>2020</year>). <chapter-title>Mining frequent seasonal gradual patterns</chapter-title>. In: <string-name><surname>Song</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Song</surname>, <given-names>I.</given-names></string-name>, <string-name><surname>Kotsis</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Tjoa</surname>, <given-names>A.M.</given-names></string-name>, <string-name><surname>Khalil</surname>, <given-names>I.</given-names></string-name> (Eds.), <source>Big Data Analytics and Knowledge Discovery – 22nd International Conference, DaWaK 2020, Bratislava, Slovakia, September 14–17, 2020, Proceedings</source>. <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>12393</volume>. <publisher-name>Springer</publisher-name>, pp. <fpage>197</fpage>–<lpage>207</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-3-030-59065-9_16" xlink:type="simple">https://doi.org/10.1007/978-3-030-59065-9_16</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_030">
<mixed-citation publication-type="journal"><string-name><surname>Negrevergne</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Termier</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Rousset</surname>, <given-names>M.-C.</given-names></string-name>, <string-name><surname>Méhaut</surname>, <given-names>J.-F.</given-names></string-name> (<year>2014</year>). <article-title>Para miner: a generic pattern mining algorithm for multi-core architectures</article-title>. <source>Data Mining and Knowledge Discovery</source>, <volume>28</volume>(<issue>3</issue>), <fpage>593</fpage>–<lpage>633</lpage>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_031">
<mixed-citation publication-type="chapter"><string-name><surname>Ser</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Saïs</surname>, <given-names>F.</given-names></string-name>, <string-name><surname>Teisseire</surname>, <given-names>M.</given-names></string-name> (<year>2018</year>). <chapter-title>Découverte de motifs graduels partiellement ordonnés: application aux données d’expériences scientifiques</chapter-title>. In: <source>Extraction et Gestion des Connaissances, EGC 2018, Paris, France</source>.</mixed-citation>
</ref>
<ref id="j_infor566_ref_032">
<mixed-citation publication-type="journal"><string-name><surname>Vera</surname>, <given-names>J.C.D.</given-names></string-name>, <string-name><surname>Ortiz</surname>, <given-names>G.M.N.</given-names></string-name>, <string-name><surname>Molina</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Vila</surname>, <given-names>M.A.</given-names></string-name> (<year>2020</year>). <article-title>Knowledge redundancy approach to reduce size in association rules</article-title>. <source>Informatica (Slovenia)</source>, <volume>44</volume>(<issue>2</issue>). <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.31449/inf.v44i2.2839" xlink:type="simple">https://doi.org/10.31449/inf.v44i2.2839</ext-link>.</mixed-citation>
</ref>
</ref-list>
</back>
</article>
