<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Artif. Intell.</journal-id>
<journal-title>Frontiers in Artificial Intelligence</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Artif. Intell.</abbrev-journal-title>
<issn pub-type="epub">2624-8212</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">681117</article-id>
<article-id pub-id-type="doi">10.3389/frai.2021.681117</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Artificial Intelligence</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Minimal Cycle Representatives in Persistent Homology Using Linear Programming: An Empirical Study With User&#x2019;s Guide</article-title>
<alt-title alt-title-type="left-running-head">Li et&#x20;al.</alt-title>
<alt-title alt-title-type="right-running-head">Minimal Persistent Homology Cycle Representatives</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Li</surname>
<given-names>Lu</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1028849/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Thompson</surname>
<given-names>Connor</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Henselman-Petrusek</surname>
<given-names>Gregory</given-names>
</name>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1276043/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Giusti</surname>
<given-names>Chad</given-names>
</name>
<xref ref-type="aff" rid="aff4">
<sup>4</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1297682/overview"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Ziegelmeier</surname>
<given-names>Lori</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1062706/overview"/>
</contrib>
</contrib-group>
<aff id="aff1">
<label>
<sup>1</sup>
</label>Mathematics, Statistics, and Computer Science Department, Macalester College, <addr-line>Saint Paul</addr-line>, <addr-line>MN</addr-line>, <country>United&#x20;States</country>
</aff>
<aff id="aff2">
<label>
<sup>2</sup>
</label>Department of Mathematics, Purdue University, <addr-line>West Lafayette</addr-line>, <addr-line>IN</addr-line>, <country>United&#x20;States</country>
</aff>
<aff id="aff3">
<label>
<sup>3</sup>
</label>Mathematical Institute, University of Oxford, <addr-line>Oxford</addr-line>, <country>United&#x20;Kingdom</country>
</aff>
<aff id="aff4">
<label>
<sup>4</sup>
</label>Department of Mathematical Sciences, University of Delaware, <addr-line>Newark</addr-line>, <addr-line>DE</addr-line>, <country>United&#x20;States</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/243393/overview">Kathryn Hess</ext-link>, &#xc9;cole Polytechnique F&#xe9;d&#xe9;rale de Lausanne, Switzerland</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1281587/overview">Gard Spreemann</ext-link>, Telenor Research, Norway</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1290045/overview">Henri Riihim&#xe4;ki</ext-link>, University of Aberdeen, United&#x20;Kingdom</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Lori Ziegelmeier, <email>lziegel1@macalester.edu</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Machine Learning and Artificial&#x20;Intelligence, a section of the journal Frontiers in Artificial Intelligence</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>11</day>
<month>10</month>
<year>2021</year>
</pub-date>
<pub-date pub-type="collection">
<year>2021</year>
</pub-date>
<volume>4</volume>
<elocation-id>681117</elocation-id>
<history>
<date date-type="received">
<day>15</day>
<month>03</month>
<year>2021</year>
</date>
<date date-type="accepted">
<day>14</day>
<month>05</month>
<year>2021</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2021 Li, Thompson, Henselman-Petrusek, Giusti and Ziegelmeier.</copyright-statement>
<copyright-year>2021</copyright-year>
<copyright-holder>Li, Thompson, Henselman-Petrusek, Giusti and Ziegelmeier</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these&#x20;terms.</p>
</license>
</permissions>
<abstract>
<p>Cycle representatives of persistent homology classes can be used to provide descriptions of topological features in data. However, the non-uniqueness of these representatives creates ambiguity and can lead to many different interpretations of the same set of classes. One approach to solving this problem is to optimize the choice of representative against some measure that is meaningful in the context of the data. In this work, we provide a study of the effectiveness and computational cost of several <inline-formula id="inf1">
<mml:math id="m1">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> minimization optimization procedures for constructing homological cycle bases for persistent homology with rational coefficients in dimension one, including uniform-weighted and length-weighted edge-loss algorithms as well as uniform-weighted and area-weighted triangle-loss algorithms. We conduct these optimizations via standard linear programming methods, applying general-purpose solvers to optimize over column bases of simplicial boundary matrices. Our key findings are: 1) optimization is effective in reducing the size of cycle representatives, though the extent of the reduction varies according to the dimension and distribution of the underlying data, 2) the computational cost of optimizing a basis of cycle representatives exceeds the cost of computing such a basis, in most data sets we consider, 3) the choice of linear solvers matters a lot to the computation time of optimizing cycles, 4) the computation time of solving an integer program is not significantly longer than the computation time of solving a linear program for most of the cycle representatives, using the Gurobi linear solver, 5) strikingly, whether requiring integer solutions or not, we almost always obtain a solution with the same cost and almost all solutions found have entries in <inline-formula id="inf2">
<mml:math id="m2">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1,0,1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and therefore, are also solutions to a restricted <inline-formula id="inf3">
<mml:math id="m3">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimization problem, and 6) we obtain qualitatively different results for generators in Erd&#x151;s-R&#xe9;nyi random clique complexes than in real-world and synthetic point cloud&#x20;data.</p>
</abstract>
<kwd-group>
<kwd>topological data analysis</kwd>
<kwd>computational persistent homology</kwd>
<kwd>minimal cycle representatives</kwd>
<kwd>generators</kwd>
<kwd>linear programming</kwd>
<kwd>
<italic>l</italic>
<sub>1</sub> and <italic>l</italic>
<sub>0</sub> minimization</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>Topological data analysis (TDA) uncovers mesoscale structure in data by quantifying its shape using methods from algebraic topology. Topological features have proven effective when characterizing complex data, as they are qualitative, independent of choice of coordinates, and robust to some choices of metrics and moderate quantities of noise (<xref ref-type="bibr" rid="B9">Carlsson, 2009</xref>; <xref ref-type="bibr" rid="B28">Ghrist, 2014</xref>). As such, topological features extracted from data have recently drawn attention from researchers in various fields including, for example, neuroscience (<xref ref-type="bibr" rid="B1">Bendich et&#x20;al., 2016</xref>; <xref ref-type="bibr" rid="B29">Giusti et&#x20;al., 2016</xref>; <xref ref-type="bibr" rid="B49">Sizemore et&#x20;al., 2019</xref>), computer graphics (<xref ref-type="bibr" rid="B48">Singh et&#x20;al., 2007</xref>; <xref ref-type="bibr" rid="B8">Br&#xfc;el-Gabrielsson et&#x20;al., 2020</xref>), robotics (<xref ref-type="bibr" rid="B57">Vasudevan et&#x20;al., 2011</xref>; <xref ref-type="bibr" rid="B4">Bhattacharya et&#x20;al., 2015</xref>), and computational biology (<xref ref-type="bibr" rid="B3">Bhaskar et&#x20;al., 2019</xref>; <xref ref-type="bibr" rid="B55">Ulmer et&#x20;al., 2019</xref>; <xref ref-type="bibr" rid="B40">McGuirl et&#x20;al., 2020</xref>) [including the study of protein structure (<xref ref-type="bibr" rid="B60">Xia and Wei, 2014</xref>; <xref ref-type="bibr" rid="B37">Kovacev-Nikolic et&#x20;al., 2016</xref>; <xref ref-type="bibr" rid="B61">Xia et&#x20;al., 2018</xref>)].</p>
<p>The primary tool in TDA is persistent homology (PH) (<xref ref-type="bibr" rid="B27">Ghrist, 2008</xref>), which describes how topological features of data, colloquially referred to as &#x201c;holes,&#x201d; evolve as one varies a real-valued parameter. Each hole comes with a geometric notion of dimension which describes the shape that encloses the hole: connected components in dimension zero, loops in dimension one, shells in dimension two, and so on. From a parameterized topological space <inline-formula id="inf4">
<mml:math id="m4">
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>S</mml:mi>
<mml:mo>&#x2282;</mml:mo>
<mml:msub>
<mml:mi>&#x211d;</mml:mi>
<mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, for each dimension <italic>n</italic>, PH produces a collection <inline-formula id="inf5">
<mml:math id="m5">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>Barcode</mml:mtext>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>X</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> of lifetime intervals <inline-formula id="inf6">
<mml:math id="m6">
<mml:mi mathvariant="normal">&#x2112;</mml:mi>
</mml:math>
</inline-formula> which encode for each topological feature the parameter values of its birth, when it first appears, and death, when it no longer remains.</p>
<p>A basic problem in the practical application of PH is interpretability: given an interval <inline-formula id="inf7">
<mml:math id="m7">
<mml:mrow>
<mml:mi mathvariant="normal">&#x2112;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mtext>Barcode</mml:mtext>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>X</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, how do we understand it in terms of the underlying data? A reasonable approach would be to find an element of the homology class, also known as a cycle representative, that witnesses structure in the data that has meaning to the investigator. In the context of geometric data, this takes the form of an &#x201c;inverse problem,&#x201d; constructing geometric structures corresponding to each persistent interval in the original input data. For example, a representative for an interval <inline-formula id="inf8">
<mml:math id="m8">
<mml:mrow>
<mml:mi mathvariant="normal">&#x2112;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mtext>Barcode</mml:mtext>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>X</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> consists of a closed curve or linear combination of closed curves which enclose a set of holes across the family of spaces <inline-formula id="inf9">
<mml:math id="m9">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="normal">&#x2112;</mml:mi>
<mml:mo>&#x2282;</mml:mo>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. Cycle representatives are used in <xref ref-type="bibr" rid="B23">Emmett et&#x20;al. (2015)</xref> to annotate particular loops as chromatin interactions, and <xref ref-type="bibr" rid="B59">Wu et&#x20;al. (2017)</xref> uses cycle representatives to study and locate and reconstruct fine muscle columns in cardiac trabeculae restoration.</p>
<p>An important challenge, however, is that cycle representatives are not uniquely defined. For example, in the left-hand image in <xref ref-type="fig" rid="F1">Figure&#x20;1</xref> adapted from <xref ref-type="bibr" rid="B9">Carlsson (2009)</xref>, two curves enclose the same topological feature and thus, represent the same persistent homology class. We often want to find a cycle that captures not only the existence but also information about the location and shape of the hole that the homology class has detected. This often means optimizing an application-dependent property using the underlying data, e.g. finding a minimal length or bounding area/volume using an appropriate metric. The algorithmic problem of selecting such optimal representatives is currently an active area of research (<xref ref-type="bibr" rid="B11">Chen and Freedman, 2010a</xref>; <xref ref-type="bibr" rid="B18">Dey et&#x20;al., 2011</xref>; <xref ref-type="bibr" rid="B59">Wu et&#x20;al., 2017</xref>; <xref ref-type="bibr" rid="B44">Obayashi, 2018</xref>; <xref ref-type="bibr" rid="B20">Dey et&#x20;al., 2019</xref>).</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Two disks (gray) &#x2014;&#x20;which we regard as 2-dimensional simplicial complexes, though the explicit decomposition into simplices is not shown&#x2014;with different numbers of holes (white) and cycle representatives (black solid or dotted) adapted from (<xref ref-type="bibr" rid="B9">Carlsson, 2009</xref>). The disk on the left has a single 2-dimensional &#x201c;hole&#x201d; <inline-formula id="inf10">
<mml:math id="m10">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and the two loops around it are cycle representatives for the same homology class. Similarly, the disk on the right has three &#x201c;holes&#x201d; <inline-formula id="inf11">
<mml:math id="m11">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and the two loops shown are cycle representatives for different homology classes.</p>
</caption>
<graphic xlink:href="frai-04-681117-g001.tif"/>
</fig>
<p>There are diverse notions of optimality we may wish to consider in a given context, and which may have significant impact on the effectiveness or suitability of optimization, including.<list list-type="simple">
<list-item>
<p>&#x2022; weight assignment to chains (uniform vs. length or area weighted),</p>
</list-item>
<list-item>
<p>&#x2022; choice of loss function <inline-formula id="inf12">
<mml:math id="m12">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>vs</mml:mtext>
<mml:mtext>.</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>,</p>
</list-item>
<list-item>
<p>&#x2022; formulation of the optimization problem (cycle size vs. bounded area or volume),&#x20;and</p>
</list-item>
<list-item>
<p>&#x2022; restrictions on allowable coefficients (rational, integral, or <inline-formula id="inf13">
<mml:math id="m13">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mn>0,1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>).</p>
</list-item>
</list>
</p>
<p>Each has a unique set of advantages and disadvantages. For example, optimization using the <inline-formula id="inf14">
<mml:math id="m14">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> norm with <inline-formula id="inf15">
<mml:math id="m15">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mn>0,1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> coefficients is thought to yield the most interpretable results, but <inline-formula id="inf16">
<mml:math id="m16">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimization is NP-hard, in general (<xref ref-type="bibr" rid="B12">Chen and Freedman, 2010b</xref>). The problem of finding <inline-formula id="inf17">
<mml:math id="m17">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimal cycles with rational coefficients, can be formulated as a more tractable linear programming problem. While some literature exists to inform this choice (<xref ref-type="bibr" rid="B18">Dey et&#x20;al., 2011</xref>; <xref ref-type="bibr" rid="B25">Escolar and Hiraoka, 2016</xref>; <xref ref-type="bibr" rid="B44">Obayashi, 2018</xref>), questions of basic importance remain, including:<list list-type="simple">
<list-item>
<label>Q1</label>
<p>How do the computational costs of the various optimization techniques compare? How much do these costs depend on the choice of a particular linear solver?</p>
</list-item>
<list-item>
<label>Q2</label>
<p>What are the statistical properties of optimal cycle representatives? For example, how often does the support of a representative form a single loop in the underlying graph? And, how much do optimized cycles coming out of an optimization pipeline differ from the representative that went&#x20;in?</p>
</list-item>
<list-item>
<label>Q3</label>
<p>To what extent does choice of technique matter? For example, how often does the length of a length-weighted optimal cycle match the length of a uniform-weighted optimal cycle? And, how often are <inline-formula id="inf18">
<mml:math id="m18">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimal representatives <inline-formula id="inf19">
<mml:math id="m19">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimal?</p>
</list-item>
</list>
</p>
<p>Given the conceptual and computational complexity of these problems [see <xref ref-type="bibr" rid="B12">Chen and Freedman (2010b)</xref>], the authors expect that formal answers are unlikely to be available in the near future. However, even where theoretical results are available, strong empirical trends may suggest different or even contrary principles to the practitioner. For example, while the persistence calculation is known to have matrix multiplication time complexity (<xref ref-type="bibr" rid="B41">Milosavljevi&#x107; et&#x20;al., 2011</xref>), in practice the computation runs almost always in linear time. Therefore, the authors believe that a careful empirical exploration of questions one to three will be of substantial&#x20;value.</p>
<p>In this paper, we undertake such an exploration in the context of one-dimensional persistent homology over the field of rationals, <inline-formula id="inf20">
<mml:math id="m20">
<mml:mi>&#x211a;</mml:mi>
</mml:math>
</inline-formula>. We focus on linear programming (LP) and mixed-integer programming (MIP) approaches due to their ease of use, flexibility, and adaptability. In doing so, we present a new treatment of parameter-dependence (vis-a-vis selection of simplex-wise refinements) relevant to common cases of rational cycle representative optimization (<xref ref-type="bibr" rid="B25">Escolar and Hiraoka, 2016</xref>; <xref ref-type="bibr" rid="B44">Obayashi, 2018</xref>), such as finding optimal cycle bases for the persistent homology of the Vietoris-Rips complex of a point cloud. We restrict our attention to one-dimensional homology to limit the number of reported statistics and data visualizations presented, although the methods discussed could be applied to any homological dimension.</p>
<p>The paper is organized as follows. <xref ref-type="sec" rid="s2">Section 2</xref> provides an overview of some key concepts in TDA to inform a reader new to algebraic topology and establish notation. Then, we provide a survey of previous work on finding optimal persistent cycle representatives in <xref ref-type="sec" rid="s3">Section 3</xref>, and formulate the methods used in this paper to find different notions of minimal cycle representatives via LP and MIP in <xref ref-type="sec" rid="s4">Section 4</xref>. <xref ref-type="sec" rid="s5">Section 5</xref> describes our experiments, including overviews of the data and the hardware and software we use for our analysis. In <xref ref-type="sec" rid="s6">Section 6</xref>, we discuss the results of our experiments. We conclude and describe possible future work in <xref ref-type="sec" rid="s7">Section&#x20;7</xref>.</p>
</sec>
<sec id="s2">
<title>2 Background: Topological Data Analysis and Persistent Homology</title>
<p>In this section, we introduce key terms in algebraic and computational topology to provide minimal background and establish notation. For a more thorough introduction see, for example, <xref ref-type="bibr" rid="B32">Hatcher et&#x20;al. (2002)</xref>, <xref ref-type="bibr" rid="B27">Ghrist (2008)</xref>, <xref ref-type="bibr" rid="B21">Edelsbrunner and Harer (2008)</xref>, <xref ref-type="bibr" rid="B9">Carlsson (2009)</xref>, <xref ref-type="bibr" rid="B22">Edelsbrunner and Harer (2010)</xref>, and <xref ref-type="bibr" rid="B54">Topaz et&#x20;al. (2015)</xref>.</p>
<p>Given a discrete set of sample data, we approximate the topological space underlying the data by constructing a <italic>simplicial complex</italic>. This construction expresses the structure as a union of vertices, edges, triangles, tetrahedrons, and higher dimensional analogues (<xref ref-type="bibr" rid="B9">Carlsson, 2009</xref>).</p>
<sec id="s2-1">
<title>2.1 Simplicial Complexes</title>
<p>A simplicial complex is a collection <italic>K</italic> of non-empty subsets of a finite set <italic>V</italic>. The elements of <italic>V</italic> are called vertices of <italic>K</italic>, and the elements of <italic>K</italic> are called simplices. A simplicial complex has the following properties: 1) <inline-formula id="inf21">
<mml:math id="m21">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mi>&#x03C5;</mml:mi>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> in <italic>K</italic> for all <inline-formula id="inf22">
<mml:math id="m22">
<mml:mrow>
<mml:mi>&#x03C5;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, and 2) <inline-formula id="inf23">
<mml:math id="m23">
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2282;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>&#x3c3;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf24">
<mml:math id="m24">
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>K</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> guarantees that <inline-formula id="inf25">
<mml:math id="m25">
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>K</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Additionally, we say that a simplex has dimension <italic>n</italic> or is an <italic>n</italic>-simplex if it has cardinality <italic>n</italic> &#x2b; 1. We use <inline-formula id="inf26">
<mml:math id="m26">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> to denote the collection of <italic>n</italic>-simplices contained in&#x20;<italic>K</italic>.</p>
<p>While there are a variety of approaches to create a simplicial complex from data, our examples use a standard construction for approximation of point clouds. Given a metric space <italic>X</italic> with metric <italic>d</italic> and real number <inline-formula id="inf27">
<mml:math id="m27">
<mml:mrow>
<mml:mi>&#x3b5;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2265;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, the Vietoris-Rips complex for <italic>X</italic>, denoted by <inline-formula id="inf28">
<mml:math id="m28">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">VR</mml:mi>
</mml:mrow>
<mml:mi>&#x3b5;</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>X</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, is defined as<disp-formula id="equ1">
<mml:math id="m29">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">VR</mml:mi>
</mml:mrow>
<mml:mi>&#x3b5;</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>X</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2264;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>&#x3b5;</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mtext>for all</mml:mtext>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>That is, given a set of discrete points <italic>X</italic> and a metric <italic>d</italic>, we build a <bold>VR</bold> complex at scale <italic>&#x03B5;</italic> by forming an <italic>n</italic>-simplex if and only if <inline-formula id="inf29">
<mml:math id="m30">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> points in <italic>X</italic> are pairwise within <italic>&#x03B5;</italic> distance of each&#x20;other.</p>
</sec>
<sec id="s2-2">
<title>2.2 Chains and Chain Complexes</title>
<p>Given a simplicial complex <italic>K</italic> and an abelian group <italic>G</italic>, the group of <italic>n</italic>-chains in <italic>K</italic> with coefficients in <italic>G</italic> is defined as<disp-formula id="equ2">
<mml:math id="m31">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msup>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Formally, we regard <inline-formula id="inf30">
<mml:math id="m32">
<mml:mrow>
<mml:msup>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> as a group of functions <inline-formula id="inf31">
<mml:math id="m33">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2192;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> under element-wise addition. Alternatively, we may view <inline-formula id="inf32">
<mml:math id="m34">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> as a group of formal <italic>G</italic>-linear combinations of <italic>n</italic>-simplices, i.e., <inline-formula id="inf33">
<mml:math id="m35">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:msub>
<mml:mo>&#x2211;</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
</mml:msub>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>&#x3c3;</mml:mi>
</mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>&#x7c;</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>&#x3c3;</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mstyle>
<mml:mi>G</mml:mi>
<mml:mtext>&#xa0;and</mml:mtext>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>
<statement content-type="algorithm" id="alg11">
<label>
<bold>Remark 2.1. </bold>
</label>
<p>We will focus on the cases where <italic>G</italic> is <inline-formula id="inf34">
<mml:math id="m36">
<mml:mi>&#x211a;</mml:mi>
</mml:math>
</inline-formula> (the field of rationals), <inline-formula id="inf35">
<mml:math id="m37">
<mml:mi>&#x2124;</mml:mi>
</mml:math>
</inline-formula> (the group of integers), or <inline-formula id="inf36">
<mml:math id="m38">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="double-struck">F</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (the 2-element field). Since we are most interested in the case <inline-formula id="inf37">
<mml:math id="m39">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>&#x211a;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, we adopt the shorthand <inline-formula id="inf38">
<mml:math id="m40">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:mo>;</mml:mo>
<mml:mi>&#x211a;</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</statement>
</p>
<p>&#x2003;An element <inline-formula id="inf39">
<mml:math id="m41">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>&#x3c3;</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msup>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is called an <italic>n</italic>-chain of <italic>K</italic>. As in this example, see we will generally use a bold-face symbol for the tuple <inline-formula id="inf40">
<mml:math id="m42">
<mml:mi mathvariant="bold">x</mml:mi>
</mml:math>
</inline-formula> and corresponding light-face symbols for entries <inline-formula id="inf41">
<mml:math id="m43">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>&#x3c3;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. The support of an <italic>n</italic>-chain is the set of simplices on which <inline-formula id="inf42">
<mml:math id="m44">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>&#x3c3;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is nonzero:<disp-formula id="equ3">
<mml:math id="m45">
<mml:mrow>
<mml:mtext>supp</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x7c;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>&#x3c3;</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2260;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>The <inline-formula id="inf43">
<mml:math id="m46">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> norm<xref ref-type="fn" rid="fn1">
<sup>1</sup>
</xref> and <inline-formula id="inf44">
<mml:math id="m47">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> norm<xref ref-type="fn" rid="fn2">
<sup>2</sup>
</xref> of <inline-formula id="inf45">
<mml:math id="m48">
<mml:mi mathvariant="bold">x</mml:mi>
</mml:math>
</inline-formula> are defined as<disp-formula id="equ4">
<mml:math id="m49">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mo>&#x2016;</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2016;</mml:mo>
</mml:mrow>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:mtext>supp</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mo>&#x2016;</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2016;</mml:mo>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mstyle displaystyle="true">
<mml:msub>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>&#x3c3;</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mstyle>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
<p>
<statement content-type="algorithm" id="alg8">
<label>
<bold>Remark 2.2</bold>
</label>
<p>&#xa0;(Indexing conventions for chains and simplices). As chains play a central role in our discussion, it&#x20;will be useful to establish some special conventions to describe them. These conventions depend on the availability of certain linear orders, either on the set of vertices or the set of simplices.</p>
</statement>
</p>
<p>
<bold>Case 1:</bold> Vertex set <italic>V</italic> has a linear order <inline-formula id="inf46">
<mml:math id="m50">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>. Every vertex set&#x20;<italic>V</italic>&#x20;discussed in this text will be assigned a (possibly arbitrary)&#x20;linear order. Without risk of ambiguity, we may therefore write<disp-formula id="equ5">
<mml:math id="m51">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C5;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x03C5;</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>for the <italic>n</italic>-chain that places a coefficient of 1 on <inline-formula id="inf47">
<mml:math id="m52">
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C5;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2264;</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>&#x2264;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>&#x03C5;</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and 0 on all other simplices.</p>
<p>
<statement>
<p>
<bold>Case 2:</bold> Simplex set <inline-formula id="inf48">
<mml:math id="m53">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> has a linear order <inline-formula id="inf49">
<mml:math id="m54">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>. We will sometimes define a linear order on <inline-formula id="inf50">
<mml:math id="m55">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. This determines a unique bijection <inline-formula id="inf51">
<mml:math id="m56">
<mml:mrow>
<mml:msup>
<mml:mi>&#x3c3;</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mo>&#x7c;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
<mml:mo>&#x2192;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> such that <inline-formula id="inf52">
<mml:math id="m57">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2264;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msubsup>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>j</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> iff <inline-formula id="inf53">
<mml:math id="m58">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2264;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. This bijection determines an isomorphism.<disp-formula id="equ6">
<mml:math id="m59">
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msup>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2192;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msup>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>such that <inline-formula id="inf54">
<mml:math id="m60">
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> for all <italic>i</italic>. Provided a linear order <inline-formula id="inf55">
<mml:math id="m61">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>, we will use <inline-formula id="inf56">
<mml:math id="m62">
<mml:mi mathvariant="bold">x</mml:mi>
</mml:math>
</inline-formula> to denote both <inline-formula id="inf57">
<mml:math id="m63">
<mml:mi mathvariant="bold">x</mml:mi>
</mml:math>
</inline-formula> and <inline-formula id="inf58">
<mml:math id="m64">
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and rely on context to clarify the intended meaning.</p>
<p>&#x2003;For each <inline-formula id="inf59">
<mml:math id="m65">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2265;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, the boundary map <inline-formula id="inf60">
<mml:math id="m66">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2192;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="italic">K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the linear transformation defined on a basis vector <inline-formula id="inf61">
<mml:math id="m67">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C5;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>&#x03C5;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>&#x03C5;</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> by<disp-formula id="equ7">
<mml:math id="m68">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C5;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x03C5;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x03C5;</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msubsup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C5;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true">&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x03C5;</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>where <inline-formula id="inf62">
<mml:math id="m69">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true">&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> omits <inline-formula id="inf63">
<mml:math id="m70">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> from the vector. This map extends linearly from the basis of <italic>n</italic>-simplices to any <italic>n</italic>-chain in <inline-formula id="inf64">
<mml:math id="m71">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. By an abuse of notation, we also denote the matrix representation of this boundary map, known as the boundary matrix, as <inline-formula id="inf65">
<mml:math id="m72">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. The boundary matrix is parametrized by the <italic>n</italic>-simplices <inline-formula id="inf66">
<mml:math id="m73">
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> along the columns and <inline-formula id="inf67">
<mml:math id="m74">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2010;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> simplices <inline-formula id="inf68">
<mml:math id="m75">
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> along the&#x20;rows.</p>
<p>&#x2003;The collection <inline-formula id="inf69">
<mml:math id="m76">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> along with the boundary maps <inline-formula id="inf70">
<mml:math id="m77">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> form a chain complex<disp-formula id="equ8">
<mml:math id="m78">
<mml:mrow>
<mml:mo>&#x2026;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mover accent="true">
<mml:mo>&#x2192;</mml:mo>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mover>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mover accent="true">
<mml:mo>&#x2192;</mml:mo>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mover>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mover accent="true">
<mml:mo>&#x2192;</mml:mo>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mover>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mo>&#x2026;</mml:mo>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mover accent="true">
<mml:mo>&#x2192;</mml:mo>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>3</mml:mi>
</mml:msub>
</mml:mover>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mover accent="true">
<mml:mo>&#x2192;</mml:mo>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>2</mml:mi>
</mml:msub>
</mml:mover>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mover accent="true">
<mml:mo>&#x2192;</mml:mo>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>1</mml:mi>
</mml:msub>
</mml:mover>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mover accent="true">
<mml:mo>&#x2192;</mml:mo>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>0</mml:mi>
</mml:msub>
</mml:mover>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mi mathvariant="normal">.</mml:mi>
</mml:math>
</disp-formula>
</p>
</statement>
</p>
<p>
<statement content-type="algorithm" id="alg9">
<label>
<bold>Remark 2.3</bold>
</label>
<p>&#xa0;(Indexing conventions for boundary matrices). In general, boundary matrix <inline-formula id="inf71">
<mml:math id="m79">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is regarded as an element of <inline-formula id="inf72">
<mml:math id="m80">
<mml:mrow>
<mml:msup>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#xd7;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, that is, as an array with columns labeled by <italic>n</italic>-simplices and rows labeled by <inline-formula id="inf73">
<mml:math id="m81">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2010;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> simplices. However, given linear orders on <inline-formula id="inf74">
<mml:math id="m82">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf75">
<mml:math id="m83">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, we may naturally regard <inline-formula id="inf76">
<mml:math id="m84">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> as an element of <inline-formula id="inf77">
<mml:math id="m85">
<mml:mrow>
<mml:msup>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#xd7;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, see <xref ref-type="table" rid="alg8">Remark 2.2</xref>.</p>
</statement>
</p>
</sec>
<sec id="s2-3">
<title>2.3 Cycles, Boundaries</title>
<p>The boundary of an <italic>n</italic>-chain <inline-formula id="inf78">
<mml:math id="m86">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is <inline-formula id="inf79">
<mml:math id="m87">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. An <italic>n-</italic>cycle is an <italic>n</italic>-chain with zero boundary. The set of all <italic>n</italic>-cycles forms a subspace <inline-formula id="inf80">
<mml:math id="m88">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">ker</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> of <inline-formula id="inf81">
<mml:math id="m89">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> An <italic>n</italic>-boundary is an <italic>n</italic>-chain that is the boundary of <inline-formula id="inf82">
<mml:math id="m90">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2b;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> chains. The set of all <italic>n</italic>-boundaries forms a subspace <inline-formula id="inf83">
<mml:math id="m91">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">im</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> of <inline-formula id="inf84">
<mml:math id="m92">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> We refer to <inline-formula id="inf85">
<mml:math id="m93">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf86">
<mml:math id="m94">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> as the space of cycles and space of boundaries, respectively.</p>
<p>It can be shown that <inline-formula id="inf87">
<mml:math id="m95">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mo>&#x2218;</mml:mo>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> for all <inline-formula id="inf88">
<mml:math id="m96">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>; colloquially, &#x201c;a boundary has no boundary.&#x201d; Equivalently, <inline-formula id="inf89">
<mml:math id="m97">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2218;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the zero map. Since the boundary map takes a boundary to 0, an <italic>n</italic>-boundary must also be an <italic>n</italic>-cycle. Therefore, <inline-formula id="inf90">
<mml:math id="m98">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2286;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</sec>
<sec id="s2-4">
<title>2.4 Homology, Cycle Representatives</title>
<p>The <italic>n</italic>th homology group of <italic>K</italic> is defined as the quotient.<disp-formula id="equ9">
<mml:math id="m99">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Concretely, elements of <inline-formula id="inf91">
<mml:math id="m100">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> are cosets of the form <inline-formula id="inf92">
<mml:math id="m101">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2010;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.<xref ref-type="fn" rid="fn3">
<sup>3</sup>
</xref> An element <inline-formula id="inf93">
<mml:math id="m102">
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is called an <italic>n-</italic>dimensional homology class. We say that a cycle <inline-formula id="inf94">
<mml:math id="m103">
<mml:mrow>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> represents <italic>h</italic>, or that <inline-formula id="inf95">
<mml:math id="m104">
<mml:mi mathvariant="bold">z</mml:mi>
</mml:math>
</inline-formula> is a cycle representative of <italic>h</italic> if <inline-formula id="inf96">
<mml:math id="m105">
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. We say that <inline-formula id="inf97">
<mml:math id="m106">
<mml:mi mathvariant="bold">z</mml:mi>
</mml:math>
</inline-formula> and <inline-formula id="inf98">
<mml:math id="m107">
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
</mml:math>
</inline-formula> are homologous if <inline-formula id="inf99">
<mml:math id="m108">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>
<bold>Example:</bold> Consider the example in <xref ref-type="fig" rid="F2">Figure&#x20;2A</xref>, which illustrates two homologous 1-cycles and the example in <xref ref-type="fig" rid="F2">Figure&#x20;2B</xref>, which illustrates two non-homologous cycles.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>We show an example of homologous cycles in <bold>(A)</bold>, adapted from (<xref ref-type="bibr" rid="B54">Topaz et&#x20;al., 2015</xref>). The 1-cycle <inline-formula id="inf100">
<mml:math id="m109">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>0,1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>1,2</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>2,3</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>3,4</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>0,4</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and the 1-cycle <inline-formula id="inf101">
<mml:math id="m110">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>1,2</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>2,3</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>3,4</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>4,1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> are homologous because their difference is the boundary of <inline-formula id="inf102">
<mml:math id="m111">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>0,1,4</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Subfigure <bold>(B)</bold> shows an example of non-homologous cycles. The 1-cycle <inline-formula id="inf103">
<mml:math id="m112">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mn>4</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>5,2</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>2,6</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>0,6</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and the 1-cycle <inline-formula id="inf104">
<mml:math id="m113">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>2,3</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>3,4</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>4,5</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>2,5</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> are not homologous because their difference is a cycle <inline-formula id="inf105">
<mml:math id="m114">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>0,1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>1,2</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>2,6</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>0,6</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> which is not a linear combination of boundaries of 2-simplices.</p>
</caption>
<graphic xlink:href="frai-04-681117-g002.tif"/>
</fig>
<p>
<statement>
<p>
<bold>Remark 2.4.</bold> The term homological generator has been used differently by various authors: to refer to an arbitrary nontrivial homology class, an element in a (finite) representation of <inline-formula id="inf106">
<mml:math id="m115">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, as a set of cycles which generate the homology group, or (particularly in literature surrounding optimal cycle representatives) interchangeably with cycle representative. We favor the term cycle representative, to avoid ambiguity.</p>
</statement>
</p>
</sec>
<sec id="s2-5">
<title>2.5 Betti Numbers, Cycle Bases</title>
<p>A (dimension-<italic>n</italic>) homological cycle basis for <inline-formula id="inf107">
<mml:math id="m116">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is a set of cycles <inline-formula id="inf108">
<mml:math id="m117">
<mml:mrow>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mn>1</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>m</mml:mi>
</mml:msup>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> such that <inline-formula id="inf109">
<mml:math id="m118">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2260;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>j</mml:mi>
</mml:msup>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> when <inline-formula id="inf110">
<mml:math id="m119">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2260;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf111">
<mml:math id="m120">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mn>1</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>m</mml:mi>
</mml:msup>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is a basis for <inline-formula id="inf112">
<mml:math id="m121">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Modulo boundaries, every <italic>n</italic>-cycle can be expressed as a unique linear combination in <inline-formula id="inf113">
<mml:math id="m122">
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
</mml:math>
</inline-formula>.</p>
<p>Homological cycle bases have several useful interpretations. It is common, for example, to think of a 1-cycle as a type of &#x201c;loop,&#x201d; generalizing the intuitive notion of a loop as a simple closed curve to include more intricate structures, and to regard the operation of adding boundaries as a generalized form of &#x201c;loop-deformation.&#x201d; Framed in this light, a homological cycle basis&#x20;<inline-formula id="inf114">
<mml:math id="m123">
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
</mml:math>
</inline-formula> for <inline-formula id="inf115">
<mml:math id="m124">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> can be regarded as a basis for the space of loops-up-to-deformation in <italic>K</italic>. Higher dimensional analogs of loops involve closed &#x201c;shells&#x201d; made up of <italic>n</italic>-simplices.</p>
<p>Another interpretation construes each nontrivial homology class <inline-formula id="inf116">
<mml:math id="m125">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2260;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> as a hole in <italic>K</italic>. Such holes are &#x201c;witnessed&#x201d; by loops or shells that are not homologous to the zero cycle. Viewed in this light, <inline-formula id="inf117">
<mml:math id="m126">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> can naturally be regarded as the space of <inline-formula id="inf118">
<mml:math id="m127">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> dimensional holes in <italic>K</italic>. The rank of the <italic>n</italic>th homology group<disp-formula id="equ10">
<mml:math id="m128">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>dim</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>dim</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2010;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>dim</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>therefore quantifies the &#x201c;number of gray independent holes&#x201d; in <italic>K</italic>. We call <inline-formula id="inf119">
<mml:math id="m129">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> the <italic>n</italic>th Betti number of&#x20;<italic>K</italic>.</p>
<p>
<bold>Example:</bold> Consider the gray disks in <xref ref-type="fig" rid="F1">Figure&#x20;1</xref> [similar to <xref ref-type="bibr" rid="B9">Carlsson (2009)</xref>] with different numbers of holes and cycle representatives.</p>
</sec>
<sec id="s2-6">
<title>2.6 Filtrations of Simplicial Complexes</title>
<p>A filtration on a simplicial complex <italic>K</italic> is a nested sequence of simplicial complexes <inline-formula id="inf120">
<mml:math id="m130">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> such that<disp-formula id="equ11">
<mml:math id="m131">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2286;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2286;</mml:mo>
<mml:mrow>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>&#x2286;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>K</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>where <inline-formula id="inf121">
<mml:math id="m132">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3c;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>&#x3c;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are real numbers. A filtered simplicial complex is a simplicial complex equipped with a filtration <inline-formula id="inf122">
<mml:math id="m133">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Example Let <italic>X</italic> be a metric space with metric <italic>d</italic>, and let <inline-formula id="inf123">
<mml:math id="m134">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3c;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>&#x3c;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> be an increasing sequence of non-negative real numbers. Then the sequence <inline-formula id="inf124">
<mml:math id="m135">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> defined by <inline-formula id="inf125">
<mml:math id="m136">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">R</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>X</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is a filtration on&#x20;<italic>K</italic>.</p>
<p>The data of a filtered complex is naturally captured by the birth function on simplices, defined<disp-formula id="equ12">
<mml:math id="m137">
<mml:mrow>
<mml:mtext>Birth</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>K</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2192;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>&#x211d;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>&#x3c3;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x21a6;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>min</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>We regard the pair <inline-formula id="inf126">
<mml:math id="m138">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:mo>,</mml:mo>
<mml:mtext>Birth</mml:mtext>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> as a simpilicial complex whose simplices are weighted by the birth function. For convenience, we will implicitly identify the sequence <inline-formula id="inf127">
<mml:math id="m139">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> with this weighted complex. Thus, for example, when we say that <inline-formula id="inf128">
<mml:math id="m140">
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>K</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> has birth parameter <italic>t</italic>, we mean that <inline-formula id="inf129">
<mml:math id="m141">
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>K</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf130">
<mml:math id="m142">
<mml:mrow>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>
<statement>
<p>
<bold>Definition 2.5.</bold> A filtration <inline-formula id="inf131">
<mml:math id="m143">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is simplex-wise if one can arrange the simplices of <italic>K</italic> into a sequence <inline-formula id="inf132">
<mml:math id="m144">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> such that <inline-formula id="inf133">
<mml:math id="m145">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> for all <italic>i.</italic> A simplex-wise refinement of <inline-formula id="inf134">
<mml:math id="m146">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is&#x20;a simplex-wise filtration <inline-formula id="inf135">
<mml:math id="m147">
<mml:mrow>
<mml:msubsup>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> such that each space in <inline-formula id="inf136">
<mml:math id="m148">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can be expressed in form <inline-formula id="inf137">
<mml:math id="m149">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> for some&#x20;<italic>j.</italic>
</p>
<p>&#x2003;As an immediate corollary, given a simplex-wise refinement of <inline-formula id="inf138">
<mml:math id="m150">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, we may naturally interpret each boundary matrix <inline-formula id="inf139">
<mml:math id="m151">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> as an element of <inline-formula id="inf140">
<mml:math id="m152">
<mml:mrow>
<mml:msup>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#xd7;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, see <xref ref-type="table" rid="alg9">Remark 2.3</xref> Under this interpretation, columns (respectively, rows) with larger indices correspond to simplices with later birth times; that is, birth time increases as one moves left-to-right and top-to-bottom.</p>
</statement>
</p>
</sec>
<sec id="s2-7">
<title>2.7 Filtrations of Chain Complexes</title>
<p>If we regard <inline-formula id="inf141">
<mml:math id="m153">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> as a family of formal linear combinations in <inline-formula id="inf142">
<mml:math id="m154">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, then it is natural to consider <inline-formula id="inf143">
<mml:math id="m155">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> as a subgroup of <inline-formula id="inf144">
<mml:math id="m156">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> for all <inline-formula id="inf145">
<mml:math id="m157">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3c;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. In particular, we have an inclusion map<disp-formula id="equ13">
<mml:math id="m158">
<mml:mrow>
<mml:mi>&#x3b9;</mml:mi>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2192;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mstyle displaystyle="true">
<mml:munder>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:munder>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>&#x3c3;</mml:mi>
</mml:msub>
<mml:mi>&#x3c3;</mml:mi>
</mml:mrow>
</mml:mstyle>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x21a6;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mstyle displaystyle="true">
<mml:munder>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:munder>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>&#x3c3;</mml:mi>
</mml:msub>
<mml:mi>&#x3c3;</mml:mi>
</mml:mrow>
</mml:mstyle>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2b;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mstyle displaystyle="true">
<mml:munder>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x2209;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:munder>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>&#x22c5;</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
</mml:mstyle>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Given a simplex-wise refinement <inline-formula id="inf146">
<mml:math id="m159">
<mml:mrow>
<mml:msubsup>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, one can naturally regard <inline-formula id="inf147">
<mml:math id="m160">
<mml:mi mathvariant="bold">c</mml:mi>
</mml:math>
</inline-formula> as an element <inline-formula id="inf148">
<mml:math id="m161">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> of <inline-formula id="inf149">
<mml:math id="m162">
<mml:mrow>
<mml:msup>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. From this perspective, <italic>&#x3b9;</italic> has a particularly simple interpretation, namely &#x201c;padding&#x201d; by zeros:<disp-formula id="equ14">
<mml:math id="m163">
<mml:mrow>
<mml:mi>&#x3b9;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:munder>
<mml:mrow>
<mml:munder>
<mml:mrow>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
</mml:mrow>
<mml:mo>&#xfe38;</mml:mo>
</mml:munder>
</mml:mrow>
<mml:mi mathvariant="bold">c</mml:mi>
</mml:munder>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Similar observations hold when one replaces <inline-formula id="inf150">
<mml:math id="m164">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> with either <inline-formula id="inf151">
<mml:math id="m165">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the space of cycles, or <inline-formula id="inf152">
<mml:math id="m166">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the space of boundaries.</p>
</sec>
<sec id="s2-8">
<title>2.8 Persistent Homology, Birth, Death</title>
<p>The notion of birth for simplices has a natural extension to chains, as well as a variant called death. Formally, the birth and death parameters of <inline-formula id="inf153">
<mml:math id="m167">
<mml:mrow>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> are <disp-formula id="equ15">
<mml:math id="m168">
<mml:mrow>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>min</mml:mi>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>Death</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>min</mml:mi>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>&#x221e;</mml:mi>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mtext>else</mml:mtext>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>In the special case where <inline-formula id="inf154">
<mml:math id="m169">
<mml:mi mathvariant="bold">c</mml:mi>
</mml:math>
</inline-formula> is a cycle, <inline-formula id="inf155">
<mml:math id="m170">
<mml:mrow>
<mml:mtext>Birth</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the first&#x20;parameter value where <inline-formula id="inf156">
<mml:math id="m171">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> represents a homology class,&#x20;and <inline-formula id="inf157">
<mml:math id="m172">
<mml:mrow>
<mml:mtext>Death</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the first parameter value where <inline-formula id="inf158">
<mml:math id="m173">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> represents the zero homology class. Thus, the half-open lifespan interval<disp-formula id="equ16">
<mml:math id="m174">
<mml:mrow>
<mml:mi mathvariant="normal">&#x2112;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mtext>Death</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>is the range of parameters over which <inline-formula id="inf159">
<mml:math id="m175">
<mml:mi mathvariant="bold">c</mml:mi>
</mml:math>
</inline-formula> represents a well-defined, nonzero homology&#x20;class.</p>
<p>A (dimension-<italic>n</italic>) persistent homology cycle basis is a subset <inline-formula id="inf160">
<mml:math id="m176">
<mml:mrow>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2286;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> with the following two properties:</p>
<p>1. Each <inline-formula id="inf161">
<mml:math id="m177">
<mml:mrow>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> has a nonempty lifespan interval.</p>
<p>2. For each <inline-formula id="inf162">
<mml:math id="m178">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, the set<disp-formula id="equ17">
<mml:math id="m179">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">&#x2112;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>is a homological cycle basis for <inline-formula id="inf163">
<mml:math id="m180">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="italic">&#x3f5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Every filtration of simplicial complexes <inline-formula id="inf164">
<mml:math id="m181">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> admits a persistent homological cycle basis <inline-formula id="inf165">
<mml:math id="m182">
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
</mml:math>
</inline-formula> (<xref ref-type="bibr" rid="B63">Zomorodian and Carlsson, 2005</xref>). Moreover, it can be shown that the multiset of lifespan intervals (one for each basis vector), called the dimension-<italic>n</italic> barcode of <inline-formula id="inf166">
<mml:math id="m183">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>,<disp-formula id="equ18">
<mml:math id="m184">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>Barcode</mml:mtext>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold">&#x2112;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="italic">&#x212c;</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>is invariant over all possible choices of persistent homological cycle bases <inline-formula id="inf167">
<mml:math id="m185">
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
</mml:math>
</inline-formula> (<xref ref-type="bibr" rid="B63">Zomorodian and Carlsson, 2005</xref>).</p>
<p>
<bold>Example:</bold> Consider the sequence of simplicial complexes (<inline-formula id="inf168">
<mml:math id="m186">
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> shown in <xref ref-type="fig" rid="F3">Figure&#x20;3E</xref>. The set <inline-formula id="inf169">
<mml:math id="m187">
<mml:mrow>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>4</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>5</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>6</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is a (dimension-1) persistent homological cycle basis of the filtration.&#x20;The associated dimension-1 barcode is <inline-formula id="inf170">
<mml:math id="m188">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>Barcode</mml:mtext>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mn>1,2</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> where <inline-formula id="inf171">
<mml:math id="m189">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf172">
<mml:math id="m190">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> are the lifespans of <inline-formula id="inf173">
<mml:math id="m191">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>5</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf174">
<mml:math id="m192">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>6</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, respectively.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Examples of optimizing a cycle representative (using the notion of minimizing edges) within the same homology class <bold>(A-D)</bold> and using a basis of cycle representatives <bold>(E)</bold>, modified examples adapted from (<xref ref-type="bibr" rid="B25">Escolar and Hiraoka, 2016</xref>; <xref ref-type="bibr" rid="B44">Obayashi, 2018</xref>). The dotted lines represent a cycle representative for the enclosed &#x201c;hole.&#x201d; Intuitively, we consider <inline-formula id="inf175">
<mml:math id="m193">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2032;&#x2032;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> in <bold>(D)</bold> as the optimal cycle representative since it consists of the smallest number of edges. Subfigure <bold>(E)</bold> shows a case where we optimize a cycle representative using a basis of cycle representatives. In <bold>(E)</bold>, <inline-formula id="inf176">
<mml:math id="m194">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>4</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>5</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>6</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the original basis of cycle representatives. We can substitute <inline-formula id="inf177">
<mml:math id="m195">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>6</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> with <inline-formula id="inf178">
<mml:math id="m196">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>6</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, which we can obtain by adding <inline-formula id="inf179">
<mml:math id="m197">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>5</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> to <inline-formula id="inf180">
<mml:math id="m198">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>6</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, and thus obtain <inline-formula id="inf181">
<mml:math id="m199">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>4</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>5</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>6</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> as the new basis of cycle representatives.</p>
</caption>
<graphic xlink:href="frai-04-681117-g003.tif"/>
</fig>
<p>Barcodes are among the foremost tools in topological data analysis (<xref ref-type="bibr" rid="B27">Ghrist, 2008</xref>; <xref ref-type="bibr" rid="B21">Edelsbrunner and Harer, 2008</xref>), and they contain a great deal of information about a filtration. For example, it follows immediately from the definition of persistent homological cycle bases that <inline-formula id="inf182">
<mml:math id="m200">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> for all <italic>n</italic> and <italic>i</italic>. Consequently,<disp-formula id="equ19">
<mml:math id="m201">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mtext>Barcode</mml:mtext>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
</sec>
<sec id="s2-9">
<title>2.9 Computing PH Cycle Representatives</title>
<p>Barcodes and persistent homology bases may be computed via the so-called <inline-formula id="inf183">
<mml:math id="m202">
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>D</mml:mi>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> decomposition (<xref ref-type="bibr" rid="B14">Cohen-Steiner et&#x20;al., 2006</xref>) of&#x20;the boundary matrices <inline-formula id="inf184">
<mml:math id="m203">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. Details are discussed in the <xref ref-type="sec" rid="s12">Supplementary Material</xref>.</p>
</sec>
</sec>
<sec id="s3">
<title>3 Related Work on Minimizing Cycle Representatives</title>
<p>One important problem in TDA is interpreting homological features. In general, a lifetime interval <inline-formula id="inf185">
<mml:math id="m204">
<mml:mi mathvariant="normal">&#x2112;</mml:mi>
</mml:math>
</inline-formula> corresponding to a feature may be represented by many different cycle representatives. As discussed in <xref ref-type="bibr" rid="B13">Chen et&#x20;al. (2008)</xref>, localizing homology classes can be characterized as finding a representative cycle with the most concise geometric measure. As an illustrative example from <xref ref-type="bibr" rid="B25">Escolar and Hiraoka (2016)</xref>, <xref ref-type="fig" rid="F3">Figure&#x20;3A</xref> shows a simplicial complex <italic>K</italic> with <inline-formula id="inf186">
<mml:math id="m205">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> isomorphic to <inline-formula id="inf187">
<mml:math id="m206">
<mml:mi>&#x211a;</mml:mi>
</mml:math>
</inline-formula> or equivalently, <inline-formula id="inf188">
<mml:math id="m207">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>; it contains one hole. <xref ref-type="fig" rid="F3">Figures 3B&#x2013;D</xref> display three cycle representatives, <inline-formula id="inf189">
<mml:math id="m208">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>and</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2033;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, each of which represents the same homology class (heuristically, they encircle the same hole). We intuitively prefer <inline-formula id="inf190">
<mml:math id="m209">
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2033;</mml:mo>
</mml:msup>
</mml:math>
</inline-formula> as a representative, since it involves the fewest edges and &#x201c;hugs&#x201d; the hole most tightly. Given a simplicial complex <italic>K</italic> and a nontrivial cycle <inline-formula id="inf191">
<mml:math id="m210">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> on it, we are interested in finding a cycle representative that is optimal with respect to some geometric criterion. In this section, we discuss previous studies on optimal cycle representatives.</p>
<p>Minimal cycle representatives have proven useful in many applications. <xref ref-type="bibr" rid="B36">Hiraoka et&#x20;al. (2016)</xref> use TDA to geometrically analyze amorphous solids. Their analysis using minimal cycle representatives explicitly captures hierarchical structures of the shapes of cavities and rings. <xref ref-type="bibr" rid="B59">Wu et&#x20;al. (2017)</xref> discuss an application of optimal cycles in Cardiac Trabeculae Restoration, which aims to reconstruct trabeculae, very complex muscle structures that are hard to detect by traditional image segmentation methods. They propose to use topological priors and cycle representatives to help segment the trabeculae. However, the original cycle representative can be complicated and noisy, causing the reconstructed surface to be messy. Optimizing the cycle representatives makes the cycle more smooth and thus, leads to more accurate segmentation results. <xref ref-type="bibr" rid="B23">Emmett et&#x20;al. (2015)</xref> use PH to analyze chromatin interaction data to study chromatin conformation. They use loops to represent different types of chromatin interactions. To annotate particular loops as interactions, they need to first localize a cycle. Thus, they propose an algorithm to locate a minimal cycle representative for a given PH class using a breadth-first search, which finds the shortest path that contains the edge that enters the filtration at the birth time of the cycle and is homologically independent from the minimal cycles of all PH classes born before the current&#x20;cycle.</p>
<p>There are several approaches used to define an optimal cycle representative. <xref ref-type="bibr" rid="B18">Dey et&#x20;al. (2011)</xref> propose an algorithm to find an optimal homologous 1-cycle for a given homology class via linear programming. That is, they consider a single homology class <inline-formula id="inf192">
<mml:math id="m211">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and search for a homologous cycle representative that minimizes some geometric measure within that class, for instance, the number of 1-simplices within the representative. <xref ref-type="bibr" rid="B25">Escolar and Hiraoka (2016)</xref> extend this approach to find an optimal cycle by using cycles outside of a single homology class to &#x201c;factor out&#x201d; redundant information. In this approach, an optimal cycle representative is no longer guaranteed to be homologous to the original representative, but the collection of cycle representatives have each been independently optimized and the collection still forms a homology basis. Further, <xref ref-type="bibr" rid="B25">Escolar and Hiraoka (2016)</xref> extends this approach to achieve a filtered cycle basis, although we note that it is not guaranteed to be a persistent homology basis. The two approaches in <xref ref-type="bibr" rid="B18">Dey et&#x20;al. (2011)</xref> and <xref ref-type="bibr" rid="B25">Escolar and Hiraoka (2016)</xref> aim to minimize the number of 1-simplices in a cycle representative. <xref ref-type="bibr" rid="B44">Obayashi (2018)</xref> proposes an alternative algorithm for finding volume-optimal cycles in persistent homology, which minimize the number of 2-simplices which the cycle representative bounds, also using linear programming. These methods serve as the foundation for our present paper and are discussed in more detail in the rest of this section.</p>
<p>In addition to linear programming, many researchers have contributed to the problem of computing optimal cycles: <xref ref-type="bibr" rid="B59">Wu et&#x20;al. (2017)</xref> propose an algorithm for finding shortest persistent 1-cycles. They first construct a graph based on the given simplicial complex and then compute annotation for the given complex. The annotation assigns all edges different vectors and can be used to verify if a cycle belongs to the desired group of cycles. They then find the shortest path between two vertices of the edge born at the birth time of the original cycle representative using a new <inline-formula id="inf193">
<mml:math id="m212">
<mml:mrow>
<mml:msup>
<mml:mi>A</mml:mi>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> heuristic search strategy. Their algorithm is a polynomial time algorithm but in the worst case, the time complexity is exponential to the number of topological features. <xref ref-type="bibr" rid="B17">Dey et&#x20;al. (2010)</xref> propose a polynomial-time algorithm that computes a set of loops from a VR complex of the given data whose lengths approximate those of a shortest basis of the one dimensional homology group <inline-formula id="inf194">
<mml:math id="m213">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. In <xref ref-type="bibr" rid="B20">Dey et&#x20;al. (2019)</xref>, show that finding optimal (minimal) persistent 1-cycles is NP-hard and then propose a polynomial time algorithm to find an alternative set of meaningful cycle representatives. This alternative set of representatives is not always optimal but still meaningful because each persistent 1-cycle is a sum of shortest cycles born at different indices. They find shortest cycles using Dijkstra&#x2019;s algorithm by considering the 1-skeleton as a graph. This list is by no means exhaustive, and does not touch on the wide variety of related approaches, e.g. <xref ref-type="bibr" rid="B12">Chen and Freedman (2010b)</xref>, which attempts to fit cycle representatives within a ball of minimum radius.</p>
<p>In the next subsection, we briefly introduce some basic notions of linear programming, and then in the subsequent three subsections, we survey the optimization problems on which the present work is&#x20;based.</p>
<sec id="s3-1">
<title>3.1 Background: Linear Programming</title>
<p>Linear programming seeks to find a set of decision variables <inline-formula id="inf195">
<mml:math id="m214">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>&#x3b7;</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> which optimize a linear cost (or objective) function <inline-formula id="inf196">
<mml:math id="m215">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> subject to a set of linear (in)equality constraints <inline-formula id="inf197">
<mml:math id="m216">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">a</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>T</mml:mi>
</mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold">a</mml:mi>
<mml:mi>&#x3bc;</mml:mi>
<mml:mi>T</mml:mi>
</mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>&#x3bc;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. Any linear optimization problem can be written as a Linear Program (LP) in standard form<disp-formula id="e1">
<mml:math id="m217">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>minimize&#xa0;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>&#xa0;subject&#xa0;to&#xa0;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">b</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2265;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>where <italic>A</italic> is the <inline-formula id="inf198">
<mml:math id="m218">
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#xd7;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> matrix with coefficients of the constraints as rows and <inline-formula id="inf199">
<mml:math id="m219">
<mml:mrow>
<mml:mi mathvariant="bold">b</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>&#x3bc;</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. Linear programming is well-studied and discussed in many texts (<xref ref-type="bibr" rid="B2">Bertsimas and Tsitsiklis, 1997</xref>; <xref ref-type="bibr" rid="B56">Vanderbei, 2014</xref>; <xref ref-type="bibr" rid="B6">Boyd and Vandenberghe, 2004</xref>).</p>
<p>The optimal solution <inline-formula id="inf200">
<mml:math id="m220">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mtext>&#x2a;</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> satisfies the constraints while optimizing the objective function, yielding the optimal cost <inline-formula id="inf201">
<mml:math id="m221">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mtext>&#x2a;</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula>. The feasible set of solutions in a linear optimization problem is a polyhedron defined by the linear constraints. In general, the optimal solution of a (non-degenerate) LP will occur at a vertex of the polyhedron and can be solved with the standard simplex algorithm, which traverses through the edges of the polytope to vertices in a cost reducing manner, or interior point methods, which traverse along the inside of the polytope to reach an optimal vertex. In the worst-case, the complexity of the simplex method is exponential, yet it often runs remarkably fast, while interior point methods are polynomial time algorithms.</p>
<p>Standard LPs search for real-valued optimal solutions, but in some instances, a restriction of the decision variables, such as requiring integral solutions, may be necessitated. The mixed integer programming (MIP) problem is written<disp-formula id="e2">
<mml:math id="m222">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>minimize&#xa0;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">d</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold">y</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>&#xa0;subject&#xa0;to&#xa0;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>B</mml:mi>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">b</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mo>&#x2265;</mml:mo>
<mml:mi mathvariant="bold">0</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mtext>&#xa0;integer,</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>for matrices <inline-formula id="inf202">
<mml:math id="m223">
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>B</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and vectors <inline-formula id="inf203">
<mml:math id="m224">
<mml:mrow>
<mml:mi mathvariant="bold">b</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold">d</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. A standard LP has fewer constraints, and thus, will have optimal cost less than or equal to that of the analogous MIP. MIPs are much more challenging to solve than LPs, as they are discrete as opposed to convex optimization problems, and no efficient general algorithm is known (<xref ref-type="bibr" rid="B2">Bertsimas and Tsitsiklis, 1997</xref>). However, LP relaxations, (exponential-time) exact, (polynomial-time) approximation, and heuristic algorithms can be used to obtain solutions to&#x20;MIPs.</p>
<p>In this paper, we determine optimal cycle representatives with both LP and MIP formulations.</p>
</sec>
<sec id="s3-2">
<title>3.2 Minimal Cycle Representatives of a Homology Class</title>
<p>Given a homology class <inline-formula id="inf204">
<mml:math id="m225">
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and a function <inline-formula id="inf205">
<mml:math id="m226">
<mml:mrow>
<mml:mtext>loss</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2192;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">&#x211d;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, how does one find a cycle representative of <italic>h</italic> on which <inline-formula id="inf206">
<mml:math id="m227">
<mml:mrow>
<mml:mtext>loss</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> attains minimum? This problem is equivalent to solving the following program defined in <xref ref-type="bibr" rid="B18">Dey et&#x20;al. (2011)</xref>:<disp-formula id="e3">
<mml:math id="m228">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>minimize&#xa0;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>loss</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>&#xa0;subject&#xa0;to&#xa0;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold">w</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi mathvariant="bold">w</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
<p>This formulation considers all cycle representatives homologous to <inline-formula id="inf207">
<mml:math id="m229">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mtext>Orig</mml:mtext>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, i.e. that differ by a boundary, and selects the optimal representative <inline-formula id="inf208">
<mml:math id="m230">
<mml:mi mathvariant="bold">x</mml:mi>
</mml:math>
</inline-formula> which minimizes <inline-formula id="inf209">
<mml:math id="m231">
<mml:mrow>
<mml:mtext>loss</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula>. The program in <xref ref-type="disp-formula" rid="e3">Eq. 3</xref> is correct because the coset <italic>h</italic> can be expressed in the form<disp-formula id="equ20">
<mml:math id="m232">
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mtext>Orig</mml:mtext>
</mml:mrow>
</mml:msup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2b;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2b;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold">w</mml:mi>
<mml:mo>&#x7c;</mml:mo>
<mml:mi mathvariant="bold">w</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>In practice, a cycle representative <inline-formula id="inf210">
<mml:math id="m233">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is almost always provided together with the initial problem data (which consists of <italic>K</italic>, <italic>G</italic>, loss, and <italic>h</italic>), so the central challenge lies with solving the program in <xref ref-type="disp-formula" rid="e3">Eq. 3</xref>.</p>
<p>Several variants of the program in <xref ref-type="disp-formula" rid="e3">Eq. 3</xref> have been studied, especially where <inline-formula id="inf211">
<mml:math id="m234">
<mml:mrow>
<mml:mtext>loss</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x2016;</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2016;</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> or <inline-formula id="inf212">
<mml:math id="m235">
<mml:mrow>
<mml:mtext>loss</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x2016;</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2016;</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. For a survey of results when <inline-formula id="inf213">
<mml:math id="m236">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="double-struck">F</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, see <xref ref-type="bibr" rid="B12">Chen and Freedman (2010b)</xref>. For a discussion of results when <inline-formula id="inf214">
<mml:math id="m237">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>&#x2124;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, see <xref ref-type="bibr" rid="B18">Dey et&#x20;al. (2011)</xref>. Broadly speaking, minimizing against <inline-formula id="inf215">
<mml:math id="m238">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> tends to be hard, even when <italic>K</italic> has attractive properties such as embeddability in a low-dimensional Euclidean space (<xref ref-type="bibr" rid="B5">Borradaile et&#x20;al., 2020</xref>). Minimizing against <inline-formula id="inf216">
<mml:math id="m239">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is hard when <inline-formula id="inf217">
<mml:math id="m240">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="double-struck">F</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (since, in this case, <inline-formula id="inf218">
<mml:math id="m241">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>), but tractable via linear programming when <inline-formula id="inf219">
<mml:math id="m242">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mi>&#x211a;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x211d;</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>An interesting variant of the minimal cycle representative problem is the minimal persistent cycle representative problem. This problem was described in <xref ref-type="bibr" rid="B13">Chen et&#x20;al. (2008)</xref> and may be formulated as follows: given an interval <inline-formula id="inf220">
<mml:math id="m243">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>Barcode</mml:mtext>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="italic">K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, solve<disp-formula id="e4">
<mml:math id="m244">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>minimize&#xa0;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>loss</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>&#xa0;subject&#xa0;to&#xa0;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>a</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>Death</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>b</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>a</mml:mi>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>for <inline-formula id="inf221">
<mml:math id="m245">
<mml:mi mathvariant="bold">x</mml:mi>
</mml:math>
</inline-formula>. An advanced treatment of this problem can be found in (<xref ref-type="bibr" rid="B13">Chen et&#x20;al., 2008</xref>) for special case where 1) <inline-formula id="inf222">
<mml:math id="m246">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="double-struck">F</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, 2) <inline-formula id="inf223">
<mml:math id="m247">
<mml:mrow>
<mml:mtext>loss</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> is a weighted sum of incident edges, and 3) the birth function assigns distinct values to any two simplices of the same dimension, and 4) <inline-formula id="inf224">
<mml:math id="m248">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</sec>
<sec id="s3-3">
<title>3.3 Minimal Homological Cycle Bases</title>
<p>The program in <xref ref-type="disp-formula" rid="e3">Eq. 3</xref> has a natural extension when <italic>G</italic> is a field. This extension focuses not on the smallest representative of a single homology class, but the smallest homological cycle basis. It may be formally expressed as follows:<disp-formula id="e5">
<mml:math id="m249">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>minimize&#xa0;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:msub>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mtext>loss</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>&#xa0;subject&#xa0;to&#xa0;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mtext>HCB</mml:mtext>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>),</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>where <inline-formula id="inf225">
<mml:math id="m250">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>HCB</mml:mtext>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the family of dimension-<italic>n</italic> homological cycle bases of <inline-formula id="inf226">
<mml:math id="m251">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Thus, the program is finding a complete generating set <inline-formula id="inf227">
<mml:math id="m252">
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
</mml:math>
</inline-formula> for all of the homological cycles of dimension <italic>n</italic> where each element has been minimized in some&#x20;sense.</p>
<p>It is natural to wonder whether a solution to the program in <xref ref-type="disp-formula" rid="e5">Eq. 5</xref> could be obtained by first calculating an arbitrary (possibly non-minimal) homological cycle basis <inline-formula id="inf228">
<mml:math id="m253">
<mml:mrow>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>1</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msup>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and then selecting an optimal cycle representative <inline-formula id="inf229">
<mml:math id="m254">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> from each homology class <inline-formula id="inf230">
<mml:math id="m255">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Unfortunately, the resulting basis need not be optimal. To see why, consider the simplicial complex <inline-formula id="inf231">
<mml:math id="m256">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> shown in <xref ref-type="fig" rid="F3">Figure&#x20;3E</xref>, taking <italic>G</italic> to be <inline-formula id="inf232">
<mml:math id="m257">
<mml:mi>&#x211a;</mml:mi>
</mml:math>
</inline-formula> and <inline-formula id="inf233">
<mml:math id="m258">
<mml:mrow>
<mml:mtext>loss</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> to be the <inline-formula id="inf234">
<mml:math id="m259">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> norm. Complex <inline-formula id="inf235">
<mml:math id="m260">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> has several different homological cycle bases in degree 1, including <inline-formula id="inf236">
<mml:math id="m261">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>6</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>6</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf237">
<mml:math id="m262">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>5</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>6</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf238">
<mml:math id="m263">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>5</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>6</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>4</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. However, only <inline-formula id="inf239">
<mml:math id="m264">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is <inline-formula id="inf240">
<mml:math id="m265">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> minimal. Moreover, each of the cycle representatives <inline-formula id="inf241">
<mml:math id="m266">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>5</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>6</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>6</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is already minimal within its homology class, so element-wise minimization will not transform <inline-formula id="inf242">
<mml:math id="m267">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> or <inline-formula id="inf243">
<mml:math id="m268">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> into optimal bases, as might have been&#x20;hoped.</p>
<p>As with the minimal cycle representative problem, the minimal homological cycle basis problem has been well-studied in the special case where <inline-formula id="inf244">
<mml:math id="m269">
<mml:mrow>
<mml:mtext>loss</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> is the <inline-formula id="inf245">
<mml:math id="m270">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> norm and <inline-formula id="inf246">
<mml:math id="m271">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="double-struck">F</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. In this case, the program in <xref ref-type="disp-formula" rid="e5">Eq. 5</xref> is NP-hard to approximate for <inline-formula id="inf247">
<mml:math id="m272">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3e;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, but <inline-formula id="inf248">
<mml:math id="m273">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>n</mml:mi>
<mml:mn>3</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> when <inline-formula id="inf249">
<mml:math id="m274">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> (<xref ref-type="bibr" rid="B18">Dey et&#x20;al., 2018</xref>). Several interesting variants and special cases have been developed in the <inline-formula id="inf250">
<mml:math id="m275">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> case, as well <xref ref-type="bibr" rid="B64">Erickson and Whittlesey (2009)</xref>, <xref ref-type="bibr" rid="B17">Dey et al. (2010)</xref>, and <xref ref-type="bibr" rid="B11">Chen and Freedman (2010)</xref>. We are not currently aware of a systematic treatment for the case <inline-formula id="inf251">
<mml:math id="m276">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mi mathvariant="normal">&#x211a;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">&#x211d;</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>A natural variant of the minimal homological cycle basis program in <xref ref-type="disp-formula" rid="e5">Eq. 5</xref> is the minimal persistent homological cycle basis problem<disp-formula id="e6">
<mml:math id="m277">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>minimize</mml:mtext>
<mml:mo>&#xa0;</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:msub>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mtext>loss</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mo>&#xa0;</mml:mo>
<mml:mtext>subject&#xa0;to</mml:mtext>
<mml:mo>&#xa0;</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mtext>PrsHCB</mml:mtext>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>),</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>where <inline-formula id="inf252">
<mml:math id="m278">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>PrsHCB</mml:mtext>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the set of persistent homological cycle bases. This is a stricter condition than the program in <xref ref-type="disp-formula" rid="e5">Eq. 5</xref> in that not only does it require that the elements of <inline-formula id="inf253">
<mml:math id="m279">
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
</mml:math>
</inline-formula> form a generating set of all cycles of dimension <italic>n</italic>, but the barcode associated to <inline-formula id="inf254">
<mml:math id="m280">
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
</mml:math>
</inline-formula> must match <inline-formula id="inf255">
<mml:math id="m281">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>Barcode</mml:mtext>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="italic">K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> That is, the multisets of birth/death pairs must be identical.</p>
<p>The program in <xref ref-type="disp-formula" rid="e6">Eq. 6</xref> is much more recent than the program in <xref ref-type="disp-formula" rid="e5">Eq. 5</xref>, and consequently appears less in the literature. In the special case where every bar in the multiset <inline-formula id="inf256">
<mml:math id="m282">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>Barcode</mml:mtext>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> has multiplicity 1 (i.e. there are no duplicate bars), the program in <xref ref-type="disp-formula" rid="e6">Eq. 6</xref> can be solved by making one call to the minimal persistent cycle representative program in <xref ref-type="disp-formula" rid="e4">Eq. 4</xref> for each bar. In particular, the method of <xref ref-type="bibr" rid="B13">Chen et&#x20;al. (2008)</xref> may be applied to obtain a minimal persistent basis when the correct hypotheses are satisfied: <inline-formula id="inf257">
<mml:math id="m283">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="double-struck">F</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, loss is a weighted sum of incident simplices, there are distinct birth times for all simplices of the same dimension, and <inline-formula id="inf258">
<mml:math id="m284">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. In general, however, bars of multiplicity two are possible, and in this case repeated application of the program in <xref ref-type="disp-formula" rid="e4">Eq. 4</xref> will be insufficient.</p>
</sec>
<sec id="s3-4">
<title>3.4 Minimal Filtered Cycle Space Bases</title>
<p>A close cousin of the minimal homological cycle basis the program in <xref ref-type="disp-formula" rid="e5">Eq. 5</xref> is the minimal filtered cycle basis problem, which may be formulated as follows<disp-formula id="e7">
<mml:math id="m285">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>minimize</mml:mtext>
<mml:mo>&#xa0;</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:msub>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="script">C</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mtext>loss</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mo>&#xa0;</mml:mo>
<mml:mtext>subject&#xa0;to</mml:mtext>
<mml:mo>&#xa0;</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi mathvariant="script">C</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>FCB</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>),</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>where <inline-formula id="inf259">
<mml:math id="m286">
<mml:mrow>
<mml:mtext>FCB</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the family of all bases <inline-formula id="inf260">
<mml:math id="m287">
<mml:mi mathvariant="script">C</mml:mi>
</mml:math>
</inline-formula> of <inline-formula id="inf261">
<mml:math id="m288">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> such that <inline-formula id="inf262">
<mml:math id="m289">
<mml:mi mathvariant="script">C</mml:mi>
</mml:math>
</inline-formula> contains a basis for each subspace <inline-formula id="inf263">
<mml:math id="m290">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, for <inline-formula id="inf264">
<mml:math id="m291">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>
<xref ref-type="bibr" rid="B25">Escolar and Hiraoka (2016)</xref> provide a polynomial time solution via linear programming when.<list list-type="simple">
<list-item>
<p>1. <inline-formula id="inf265">
<mml:math id="m292">
<mml:mrow>
<mml:mtext>loss</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> is the <inline-formula id="inf266">
<mml:math id="m293">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>&#x20;norm,</p>
</list-item>
<list-item>
<p>2. <inline-formula id="inf267">
<mml:math id="m294">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x211a;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>,&#x20;and</p>
</list-item>
<list-item>
<p>3. <inline-formula id="inf268">
<mml:math id="m295">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is a simplex-wise filtration [without loss of generality, <inline-formula id="inf269">
<mml:math id="m296">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>].</p>
</list-item>
</list>
</p>
<p>Their key observation is that <inline-formula id="inf270">
<mml:math id="m297">
<mml:mi mathvariant="script">C</mml:mi>
</mml:math>
</inline-formula> is an optimal solution to the program in <xref ref-type="disp-formula" rid="e6">Eq. 6</xref> if and only if <inline-formula id="inf271">
<mml:math id="m298">
<mml:mi mathvariant="script">C</mml:mi>
</mml:math>
</inline-formula> can be expressed as a collection <inline-formula id="inf272">
<mml:math id="m299">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>j</mml:mi>
</mml:msup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>j</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>&#x20;where</p>
<list list-type="simple">
<list-item>
<p>1. the set <inline-formula id="inf273">
<mml:math id="m300">
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="normal">&#x228a;</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> that indexes the cycles is the list of filtrations at which a novel <italic>n</italic>-cycle appears,&#x20;and.</p>
</list-item>
<list-item>
<p>2. for each <inline-formula id="inf274">
<mml:math id="m301">
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, the cycle <inline-formula id="inf275">
<mml:math id="m302">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>j</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> first appears in <inline-formula id="inf276">
<mml:math id="m303">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and is a minimizer for the loss function among all such cycles, i.e. <inline-formula id="inf277">
<mml:math id="m304">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>j</mml:mi>
</mml:msup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mtext>argmin</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>\</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mtext>loss</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
</list>
<p>The authors formulate this problem as<disp-formula id="e8">
<mml:math id="m305">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>minimize&#xa0;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x2016;</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2016;</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>&#xa0;subject&#xa0;to&#xa0;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munder>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>R</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>r</mml:mi>
</mml:msub>
<mml:msup>
<mml:mi>g</mml:mi>
<mml:mi>r</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mstyle>
<mml:mo>&#x2b;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munder>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C5;</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:msup>
<mml:mi>f</mml:mi>
<mml:mi>s</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi mathvariant="bold">w</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="normal">&#x211a;</mml:mi>
<mml:mi>R</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="normal">&#x211a;</mml:mi>
<mml:mi>S</mml:mi>
</mml:msup>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>where <inline-formula id="inf278">
<mml:math id="m306">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>\</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is a novel cycle representative at filtration <italic>j</italic>; <inline-formula id="inf279">
<mml:math id="m307">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>g</mml:mi>
<mml:mi>r</mml:mi>
</mml:msup>
<mml:mo>:</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is a basis for <inline-formula id="inf280">
<mml:math id="m308">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
<xref ref-type="fn" rid="fn4">
<sup>4</sup>
</xref>; and <inline-formula id="inf281">
<mml:math id="m309">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>g</mml:mi>
<mml:mi>r</mml:mi>
</mml:msup>
<mml:mo>:</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
<mml:mo>&#x222a;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>f</mml:mi>
<mml:mi>s</mml:mi>
</mml:msup>
<mml:mo>:</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is an extension of the given basis for <inline-formula id="inf282">
<mml:math id="m310">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> to a basis for <inline-formula id="inf283">
<mml:math id="m311">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. That is, <inline-formula id="inf284">
<mml:math id="m312">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is a cycle that has just appeared in the filtration. To optimize it, we are allowed to consider linear combinations of both boundaries, <inline-formula id="inf285">
<mml:math id="m313">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>g</mml:mi>
<mml:mi>r</mml:mi>
</mml:msup>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and cycles, <inline-formula id="inf286">
<mml:math id="m314">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>f</mml:mi>
<mml:mi>s</mml:mi>
</mml:msup>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, born before <inline-formula id="inf287">
<mml:math id="m315">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> The cycle <inline-formula id="inf288">
<mml:math id="m316">
<mml:mi mathvariant="bold">x</mml:mi>
</mml:math>
</inline-formula> obtained in this way cannot have a birth time before that of <inline-formula id="inf289">
<mml:math id="m317">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, but may have a different death time if <inline-formula id="inf290">
<mml:math id="m318">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:msub>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C5;</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:msup>
<mml:mi>f</mml:mi>
<mml:mi>s</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> dies later than <inline-formula id="inf291">
<mml:math id="m319">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>The algorithm developed in <xref ref-type="bibr" rid="B25">Escolar and Hiraoka (2016)</xref> is cleverly constructed to extract <inline-formula id="inf292">
<mml:math id="m320">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf293">
<mml:math id="m321">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>g</mml:mi>
<mml:mi>r</mml:mi>
</mml:msup>
<mml:mo>:</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf294">
<mml:math id="m322">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>f</mml:mi>
<mml:mi>s</mml:mi>
</mml:msup>
<mml:mo>:</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> from matrices which are generated in the normal course of a barcode calculation.</p>
<p>
<statement content-type="algorithm" id="alg10">
<label>
<bold>Remark 3.1.</bold>
</label>
<p>&#xa0;It is important to distinguish between <inline-formula id="inf295">
<mml:math id="m323">
<mml:mrow>
<mml:mtext>PrsHCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf296">
<mml:math id="m324">
<mml:mrow>
<mml:mtext>FCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula>, hence between the optimization the programs in <xref ref-type="disp-formula" rid="e6">Eqs 6</xref>, <xref ref-type="disp-formula" rid="e7">7</xref>. As <xref ref-type="bibr" rid="B25">Escolar and Hiraoka (2016)</xref> point out, given <inline-formula id="inf297">
<mml:math id="m325">
<mml:mrow>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>PrsHCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf298">
<mml:math id="m326">
<mml:mrow>
<mml:mi mathvariant="script">C</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>FCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula>, one can always find an injective function <inline-formula id="inf299">
<mml:math id="m327">
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mo>&#x2192;</mml:mo>
<mml:mi mathvariant="script">C</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> such that <inline-formula id="inf300">
<mml:math id="m328">
<mml:mrow>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> for all <inline-formula id="inf301">
<mml:math id="m329">
<mml:mi mathvariant="bold">z</mml:mi>
</mml:math>
</inline-formula>. However, this does not imply that <inline-formula id="inf302">
<mml:math id="m330">
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>PrsHCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula>, as the deaths of each cycle may not coincide. Indeed, the question of whether a persistent homological cycle basis can be extracted from <inline-formula id="inf303">
<mml:math id="m331">
<mml:mi mathvariant="script">C</mml:mi>
</mml:math>
</inline-formula> by any means is an open question, so far as we are aware. We provide an example in <xref ref-type="fig" rid="F4">Figure&#x20;4</xref> where the cycle basis obtained by optimizing each cycle using the program in <xref ref-type="disp-formula" rid="e7">Eq. 7</xref> is not a persistent homology cycle basis <inline-formula id="inf304">
<mml:math id="m332">
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
</mml:math>
</inline-formula>.</p>
</statement>
</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>An example where the optimal cycles obtained from <xref ref-type="disp-formula" rid="e8">Eq. 8</xref> do not form a persistent homological cycle basis. The thickened colored cycles in Subfigure <bold>(A)</bold> represent a cycle representative for the hole it encloses, and the bar with the corresponding color in Subfigure <bold>(B)</bold> records the lifespan of the cycle. In Subfigure <bold>(A)</bold>, we see <inline-formula id="inf305">
<mml:math id="m333">
<mml:mrow>
<mml:mi mathvariant="normal">&#x2112;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>1</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">&#x2112;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mn>1,2</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> Then, <inline-formula id="inf306">
<mml:math id="m334">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>1</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> forms a basis for the persistent homological cycles. The cycle representative <inline-formula id="inf307">
<mml:math id="m335">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is an optimal cycle representative obtained by solving <xref ref-type="disp-formula" rid="e7">Eq. 7</xref> for the filtered simplicial complex <inline-formula id="inf308">
<mml:math id="m336">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. However, <inline-formula id="inf309">
<mml:math id="m337">
<mml:mrow>
<mml:mi mathvariant="normal">&#x2112;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and thus <inline-formula id="inf310">
<mml:math id="m338">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>1</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is no longer a persistent homological cycle&#x20;basis.</p>
</caption>
<graphic xlink:href="frai-04-681117-g004.tif"/>
</fig>
<p>&#x2003;Though <xref ref-type="table" rid="alg10">Remark 3.1</xref> is a bit disappointing for those interested in persistent homology, the machinery developed to study the program in <xref ref-type="disp-formula" rid="e7">Eq. 7</xref> is nevertheless interesting, and we will discuss an adaptation.</p>
</sec>
<sec id="s3-5">
<title>3.5&#x20;Volume-Optimal Cycles: Minimizing Over Bounding Chains</title>
<p>
<xref ref-type="bibr" rid="B47">Schweinhart (2015)</xref> and <xref ref-type="bibr" rid="B44">Obayashi (2018)</xref> consider a different notion of minimization: volume<xref ref-type="fn" rid="fn5">
<sup>5</sup>
</xref> optimality. This approach focuses on the &#x201c;size&#x201d; of a bounding chain; it is specifically designed for cycle representatives in a persistent homological cycle&#x20;basis.</p>
<p>
<xref ref-type="bibr" rid="B44">Obayashi (2018)</xref> formalizes the approach as follows. First, assume a simplex-wise filtration <inline-formula id="inf311">
<mml:math id="m339">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>; without loss of generality, <inline-formula id="inf312">
<mml:math id="m340">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and we may enumerate the simplices of <inline-formula id="inf313">
<mml:math id="m341">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> such that <inline-formula id="inf314">
<mml:math id="m342">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> for all <italic>i</italic>. Since each simplex has a unique birth time, each interval in <inline-formula id="inf315">
<mml:math id="m343">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>Barcode</mml:mtext>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> has a unique left endpoint. Fix <inline-formula id="inf316">
<mml:math id="m344">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>Barcode</mml:mtext>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="italic">K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> such that <inline-formula id="inf317">
<mml:math id="m345">
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3c;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> (in the case <inline-formula id="inf318">
<mml:math id="m346">
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, volume is undefined). It can be shown that <inline-formula id="inf319">
<mml:math id="m347">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is an <italic>n</italic>-simplex and <inline-formula id="inf320">
<mml:math id="m348">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is an <inline-formula id="inf321">
<mml:math id="m349">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> simplex. We use <italic>&#x3c4;</italic>
<sub>
<italic>k</italic>
</sub> &#x3d; <italic>&#x03C3;</italic>
<sub>
<italic>k</italic>
</sub> below when the dimension of <italic>&#x03C3;</italic>
<sub>
<italic>k</italic>
</sub> is equal to <italic>n</italic> &#x2b; 1.</p>
<p>A persistent volume <inline-formula id="inf322">
<mml:math id="m350">
<mml:mi mathvariant="bold">v</mml:mi>
</mml:math>
</inline-formula> for <inline-formula id="inf323">
<mml:math id="m351">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is an <inline-formula id="inf324">
<mml:math id="m352">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> chain <inline-formula id="inf325">
<mml:math id="m353">
<mml:mrow>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> such that<xref ref-type="fn" rid="fn6">
<sup>6</sup>
</xref>
<disp-formula id="e9">
<mml:math id="m354">
<mml:mrow>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munder>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munder>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>
<disp-formula id="e10">
<mml:math id="m355">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold">v</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mo>&#x2200;</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>
<disp-formula id="e11">
<mml:math id="m356">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold">v</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2260;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(11)</label>
</disp-formula>where <inline-formula id="inf326">
<mml:math id="m357">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3c;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> denotes the <italic>n</italic>-simplices alive in the window between the birth and death time of the interval under consideration.</p>
<p>We interpret these equations as follows: Given a persistence interval <inline-formula id="inf327">
<mml:math id="m358">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, condition <xref ref-type="disp-formula" rid="e9">Eq. 9</xref> implies that <inline-formula id="inf328">
<mml:math id="m359">
<mml:mi mathvariant="bold">v</mml:mi>
</mml:math>
</inline-formula> only contains <inline-formula id="inf329">
<mml:math id="m360">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> simplices born between <inline-formula id="inf330">
<mml:math id="m361">
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf331">
<mml:math id="m362">
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and must contain the <inline-formula id="inf332">
<mml:math id="m363">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> simplex born at <inline-formula id="inf333">
<mml:math id="m364">
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. Condition (<xref ref-type="disp-formula" rid="e11">Eq. 10</xref>) ensures that the boundary of <inline-formula id="inf334">
<mml:math id="m365">
<mml:mi mathvariant="bold">v</mml:mi>
</mml:math>
</inline-formula> contains no <italic>n</italic>-simplex born after <inline-formula id="inf335">
<mml:math id="m366">
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and condition (<xref ref-type="disp-formula" rid="e11">Eq. 11</xref>) ensures that the boundary of <inline-formula id="inf336">
<mml:math id="m367">
<mml:mi mathvariant="bold">v</mml:mi>
</mml:math>
</inline-formula> contains the <italic>n</italic>-simplex born at <inline-formula id="inf337">
<mml:math id="m368">
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. This guarantees that <inline-formula id="inf338">
<mml:math id="m369">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold">v</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> exists at step <inline-formula id="inf339">
<mml:math id="m370">
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, does not exist before step <inline-formula id="inf340">
<mml:math id="m371">
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and dies at step&#x20;<inline-formula id="inf341">
<mml:math id="m372">
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>
<statement content-type="theorem" id="theorem3-2">
<label>
<bold>Theorem 3.2.</bold>
</label>
<p> <xref ref-type="bibr" rid="B44">(Obayashi, 2018)</xref>. Suppose that <inline-formula id="inf342">
<mml:math id="m373">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>Barcode</mml:mtext>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="italic">K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf343">
<mml:math id="m374">
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3c;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>.<list list-type="simple">
<list-item>
<p>&#x2003;1. Interval <inline-formula id="inf344">
<mml:math id="m375">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> has a persistent volume.</p>
</list-item>
<list-item>
<p>&#x2003;2. If <inline-formula id="inf345">
<mml:math id="m376">
<mml:mi mathvariant="bold">v</mml:mi>
</mml:math>
</inline-formula> is a persistent volume for <inline-formula id="inf346">
<mml:math id="m377">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> then <inline-formula id="inf347">
<mml:math id="m378">
<mml:mrow>
<mml:mi mathvariant="normal">&#x2112;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold">v</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</list-item>
<list-item>
<p>&#x2003;3. Suppose that <inline-formula id="inf348">
<mml:math id="m379">
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
</mml:math>
</inline-formula> is an n-dimensional persistent homological cycle basis for <inline-formula id="inf349">
<mml:math id="m380">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, that <inline-formula id="inf350">
<mml:math id="m381">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the basis vector corresponding to <inline-formula id="inf351">
<mml:math id="m382">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and that <inline-formula id="inf352">
<mml:math id="m383">
<mml:mi mathvariant="bold">v</mml:mi>
</mml:math>
</inline-formula> is a persistent volume for <inline-formula id="inf353">
<mml:math id="m384">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Then, <inline-formula id="inf354">
<mml:math id="m385">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mo>\</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x222a;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold">v</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is also a persistent homological cycle&#x20;basis.</p>
</list-item>
</list>
</p>
<p>By <xref ref-type="statement" rid="theorem3-2">
<bold>Theorem 3.2</bold>
</xref>, for any barcode composed of finite intervals, one can construct a persistent homological cycle basis from nothing but (boundaries of) persistent volumes! Were we to build such a basis, it would be natural to ask for volumes that are optimal with respect to some loss function; that is, we might like to solve<disp-formula id="e12">
<mml:math id="m386">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>minimize&#xa0;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>loss</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>subject&#xa0;to&#xa0;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mn>9</mml:mn>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mn>10</mml:mn>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mn>11</mml:mn>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(12)</label>
</disp-formula>for each barcode interval <inline-formula id="inf355">
<mml:math id="m387">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. A solution <inline-formula id="inf356">
<mml:math id="m388">
<mml:mi mathvariant="bold">v</mml:mi>
</mml:math>
</inline-formula> to the program in <xref ref-type="disp-formula" rid="e12">Eq. 12</xref> is called an optimal volume; its boundary, <inline-formula id="inf357">
<mml:math id="m389">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold">v</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is called a volume-optimal&#x20;cycle.</p>
<p>It is interesting to contrast <inline-formula id="inf358">
<mml:math id="m390">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> minimal cycle representatives for an interval<xref ref-type="fn" rid="fn7">
<sup>7</sup>
</xref> <inline-formula id="inf359">
<mml:math id="m391">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> with <inline-formula id="inf360">
<mml:math id="m392">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> volume-optimal cycle for the same interval.&#x20;Consider, for example, <xref ref-type="fig" rid="F5">Figure&#x20;5</xref>. For the persistence interval <inline-formula id="inf361">
<mml:math id="m393">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, the cycle with minimal number of edges is <inline-formula id="inf362">
<mml:math id="m394">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. However, the volume-optimal cycle would be found as follows: considering <inline-formula id="inf363">
<mml:math id="m395">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, we must find the fewest 2-simplices whose boundary captures the persistence interval. In this case, we would have an optimal volume <inline-formula id="inf364">
<mml:math id="m396">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and volume-optimal cycle <inline-formula id="inf365">
<mml:math id="m397">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</statement>
</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>A situation in which a volume-optimal cycle is different from the uniform minimal cycle. Consider the filtered simplicial complex pictured. For the persistence interval <inline-formula id="inf366">
<mml:math id="m398">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, the cycle with minimal 0-norm (fewest number of edges) is <inline-formula id="inf367">
<mml:math id="m399">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. However, the volume-optimal cycle would be found as follows: considering <inline-formula id="inf368">
<mml:math id="m400">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, we must find the fewest 2-simplices whose boundary captures the persistence interval. In this case, we would have an optimal volume <inline-formula id="inf369">
<mml:math id="m401">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and volume-optimal cycle <inline-formula id="inf370">
<mml:math id="m402">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</caption>
<graphic xlink:href="frai-04-681117-g005.tif"/>
</fig>
</sec>
<sec id="s3-6">
<title>3.6&#x20;<inline-formula id="inf371">
<mml:math id="m403">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> vs. <inline-formula id="inf372">
<mml:math id="m404">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> Optimization</title>
<p>As mentioned above, it is common to choose <inline-formula id="inf373">
<mml:math id="m405">
<mml:mrow>
<mml:mtext>loss</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x2016;</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2016;</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> or <inline-formula id="inf374">
<mml:math id="m406">
<mml:mrow>
<mml:mtext>loss</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x2016;</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2016;</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.<xref ref-type="fn" rid="fn8">
<sup>8</sup>
</xref> A linear program (LP) with <inline-formula id="inf375">
<mml:math id="m407">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> objective function is polynomial time solvable. However, an objective function with the <inline-formula id="inf376">
<mml:math id="m408">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> norm restricted to <inline-formula id="inf377">
<mml:math id="m409">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mn>0,1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> coefficients is often preferred as the output of such a problem is highly interpretable: a cycle representative with minimal number of edges or enclosing the minimal number of triangles. Yet, <inline-formula id="inf378">
<mml:math id="m410">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimization is known to be NP-hard (<xref ref-type="bibr" rid="B53">Tahbaz-Salehi and Jadbabaie, 2010</xref>).</p>
<p>The <inline-formula id="inf379">
<mml:math id="m411">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> norm promotes sparsity and often gives a good approximation of <inline-formula id="inf380">
<mml:math id="m412">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimization (<xref ref-type="bibr" rid="B52">Tahbaz-Salehi and Jadbabaie, 2008</xref>; <xref ref-type="bibr" rid="B53">Tahbaz-Salehi and Jadbabaie, 2010</xref>), but the solution may not be exact. Yet, if all of the coefficients of the solution <inline-formula id="inf381">
<mml:math id="m413">
<mml:mi>x</mml:mi>
</mml:math>
</inline-formula> are restricted to 0 or <inline-formula id="inf382">
<mml:math id="m414">
<mml:mrow>
<mml:mo>&#xb1;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> in the optimization problem, then the <inline-formula id="inf383">
<mml:math id="m415">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf384">
<mml:math id="m416">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> norms are identical. A looser restriction, as proposed in <xref ref-type="bibr" rid="B25">Escolar and Hiraoka (2016)</xref>, would be to solve an optimization with <inline-formula id="inf385">
<mml:math id="m417">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> objective function with integer constraints on the solution.</p>
<p>Requiring the solution to be integral also allows us to understand the optimal solution more intuitively than having fractional coefficients. Such an optimization problem is called a mixed integer program (MIP), which is known to be slower than linear programming and is NP-hard (<xref ref-type="bibr" rid="B44">Obayashi, 2018</xref>). Many variants of integer programming special to optimal homologous cycles, in particular, have been shown to be hard as well (<xref ref-type="bibr" rid="B5">Borradaile et&#x20;al., 2020</xref>). In <xref ref-type="sec" rid="s4">Section 4</xref>, we discuss the optimization problems we implement, where each is solved both as an LP with an <inline-formula id="inf386">
<mml:math id="m418">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> norm in the objective function and an MIP by adding the constraint that <inline-formula id="inf387">
<mml:math id="m419">
<mml:mi mathvariant="bold">x</mml:mi>
</mml:math>
</inline-formula> is integral.</p>
<p>
<xref ref-type="bibr" rid="B18">Dey et&#x20;al. (2011)</xref> gives the totally unimodularity sufficient condition which guarantees that an LP and MIP give&#x20;the same optimal solution. A matrix is totally unimodular if the determinant of each square submatrix is <inline-formula id="inf388">
<mml:math id="m420">
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1,0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, or 1. <xref ref-type="bibr" rid="B18">Dey et&#x20;al. (2011)</xref> give conditions for when the <inline-formula id="inf389">
<mml:math id="m421">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> matrix is totally unimodular. If the totally unimodularity condition is not satisfied, then an LP may not give the desired result. As totally unimodularity is not guaranteed for all boundary matrices (<xref ref-type="bibr" rid="B33">Henselman and D&#x142;otko, 2014</xref>), we cannot rely on this condition.</p>
</sec>
<sec id="s3-7">
<title>3.7 Software Implementations</title>
<p>
<bold>Edge-minimal cycles:</bold> Software implementing the edge-loss method introduced in <xref ref-type="bibr" rid="B25">Escolar and Hiraoka (2016)</xref> can be found at <xref ref-type="bibr" rid="B26">Escolar and Hiraoka (2021)</xref>. This is a C&#x2b;&#x2b; library specialized for 3-dimensional point clouds.</p>
<p>
<bold>Triangle-loss optimal cycles:</bold> The volume optimization technique introduced in <xref ref-type="bibr" rid="B44">Obayashi (2018)</xref> is available through the software platform HomCloud, available at <xref ref-type="bibr" rid="B43">Obayashi et&#x20;al. (2021)</xref>. The code can be accessed by unarchiving the HomCloud package (for example, <ext-link ext-link-type="uri" xlink:href="https://homcloud.dev/download/homcloud-3.1.0.tar.gz">https://homcloud.dev/download/homcloud-3.1.0.tar.gz</ext-link>) and picking the file <ext-link ext-link-type="uri" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://homcloud-x.y.z/homcloud/optvol.py">homcloud-x.y.z/homcloud/optvol.py</ext-link>.</p>
</sec>
</sec>
<sec id="s4">
<title>4 Programs and Solution Methods</title>
<p>The present work focuses on linear programming (LP) and mixed integer programming (MIP) optimization of 1-dimensional persistent homology cycle representatives with <inline-formula id="inf390">
<mml:math id="m422">
<mml:mrow>
<mml:mi mathvariant="normal">&#x211a;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>-</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>coefficients</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula>. While the methods discussed below can be applied to any homological dimension, we limit the scope of the present work to dimension one. As described in <xref ref-type="sec" rid="s3">Section 3</xref>, we follow two general approaches: those that measure loss as a function of <italic>n</italic>-simplices, and those that measure loss as a function of <inline-formula id="inf391">
<mml:math id="m423">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> simplices. Motivated by the <inline-formula id="inf392">
<mml:math id="m424">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> case, we refer to the former as edge-loss methods and the latter as triangle-loss methods. For our empirical analysis, four variations (corresponding to two binary parameters) are chosen from each approach, yielding a total of eight distinct optimization problems.</p>
<p>Concerning implementation, we find that triangle-loss methods [namely, <xref ref-type="bibr" rid="B44">Obayashi (2018)</xref>] can be applied essentially as discussed in that paper. The greatest challenge to implementing this approach is the assumption of an underlying simplex-wise filtration. This necessitates parameter choices and preprocessing steps not included in the optimization itself; we discuss how to execute these steps&#x20;below.</p>
<p>Implementation of edge-loss methods is slightly more complex. For binary coefficients <inline-formula id="inf393">
<mml:math id="m425">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="double-struck">F</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> a variety of combinatorial techniques have been implemented in dimension 1 (<xref ref-type="bibr" rid="B13">Chen et&#x20;al., 2008</xref>; <xref ref-type="bibr" rid="B62">Zhang and Wu, 2019</xref>). <xref ref-type="bibr" rid="B25">Escolar and Hiraoka (2016)</xref> provide an approach for <inline-formula id="inf394">
<mml:math id="m426">
<mml:mrow>
<mml:mi mathvariant="normal">&#x211a;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>-</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>coefficients</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula>, but in general this may not yield a persistent homology cycle basis, see <xref ref-type="table" rid="alg10">Remark 3.1</xref>. In addition to the triangle-loss method mentioned in <xref ref-type="sec" rid="s3-5">Section 3.5</xref>, <xref ref-type="bibr" rid="B44">Obayashi (2018)</xref> introduces a modified form of this edge-loss method which <italic>does</italic> guarantee a persistent homology basis, but assumes a simplex-wise filtration. We show that this approach can be modified to remove the simplex-wise filtered constraint.</p>
<p>Neither of the approaches presented here is guaranteed to solve the minimal persistent homology cycle basis problem, the program in <xref ref-type="disp-formula" rid="e6">Eq. 6</xref>. In the case of triangle-loss methods, this is due to the (arbitrary) choice of a total order on simplices. In the case of edge-loss methods, it is due to the choice of an initial persistent homology cycle&#x20;basis.</p>
<p>In the remainder of this section, we present the eight programs studied, including any modifications from existing&#x20;work.</p>
<sec id="s4-1">
<title>4.1 Structural Parameters</title>
<p>Each program addressed in our empirical study may be expressed in the following form<disp-formula id="e13">
<mml:math id="m427">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>minimize</mml:mtext>
<mml:mo>&#xa0;</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x2016;</mml:mo>
<mml:mrow>
<mml:mi>W</mml:mi>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mo>&#x2016;</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munder>
<mml:mo>&#x2211;</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
</mml:munder>
<mml:mrow>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">x</mml:mi>
<mml:mo>&#x03C3;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">x</mml:mi>
<mml:mo>&#x03C3;</mml:mo>
<mml:mo>&#x2010;</mml:mo>
</mml:msubsup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>subject&#xa0;to</mml:mtext>
<mml:mo>&#xa0;</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="normal">x</mml:mi>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
<mml:mo>&#x2010;</mml:mo>
<mml:msup>
<mml:mi mathvariant="normal">x</mml:mi>
<mml:mo>&#x2010;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2010;</mml:mo>
</mml:msup>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="script">X</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(13)</label>
</disp-formula>where <inline-formula id="inf395">
<mml:math id="m428">
<mml:mi mathvariant="script">X</mml:mi>
</mml:math>
</inline-formula> is a space of feasible solutions and <italic>W</italic> is a diagonal matrix with nonnegative entries. These programs vary along 3 parameters:<list list-type="simple">
<list-item>
<p>&#x2003;1. <italic>Chain dimension of <bold>x</bold>.</italic> If <inline-formula id="inf397">
<mml:math id="m430">
<mml:mi mathvariant="script">X</mml:mi>
</mml:math>
</inline-formula> is a family of 1-chains, then we say that the program in <xref ref-type="disp-formula" rid="e13">Eq. 13</xref> is an edge-loss program. If <inline-formula id="inf398">
<mml:math id="m431">
<mml:mi mathvariant="script">X</mml:mi>
</mml:math>
</inline-formula> is a family of 2-chains, we say that the program in <xref ref-type="disp-formula" rid="e13">Eq. 13</xref> is a triangle-loss program.</p>
</list-item>
<list-item>
<p>&#x2003;2. <italic>Integrality.</italic> The program is integral if each <inline-formula id="inf399">
<mml:math id="m432">
<mml:mrow>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="script">X</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> has integer coefficients; otherwise we call the problem non-integral.</p>
</list-item>
<list-item>
<p>&#x2003;3. <italic>Weighting.</italic> For each loss type (edge vs. triangle) we consider two possible values for <italic>W</italic>: identity and non-identity. In the identity case, all edges (or triangles) are weighted equally; we call this a uniform-weighted problem. In the non-identity case we weigh each entry according to some measurement of &#x201c;size&#x201d; of the underlying simplex (length, in the case of edges, and area, in the case of triangles).<xref ref-type="fn" rid="fn9">
<sup>9</sup>
</xref> There is precedent for such weighting schemes in existing literature (<xref ref-type="bibr" rid="B13">Chen et&#x20;al., 2008</xref>; <xref ref-type="bibr" rid="B18">Dey et&#x20;al., 2011</xref>).</p>
</list-item>
</list>
</p>
<p>Edge-loss and triangle-loss programs will be denoted <inline-formula id="inf400">
<mml:math id="m433">
<mml:mrow>
<mml:mtext>Edge</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf401">
<mml:math id="m434">
<mml:mrow>
<mml:mtext>Tri</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula>, respectively. Integrality will be indicated by a superscript <italic>I</italic> (integer) or <inline-formula id="inf402">
<mml:math id="m435">
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> (non-integer). Uniform weighting will be denoted by a subscript <inline-formula id="inf403">
<mml:math id="m436">
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> (uniform); non-uniform weighting will be indicated by subscript <inline-formula id="inf404">
<mml:math id="m437">
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> (for edge-loss programs) or <inline-formula id="inf405">
<mml:math id="m438">
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> (for triangle-loss programs). Thus, for example, <inline-formula id="inf406">
<mml:math id="m439">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mtext>Edge</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> denotes a length-weighted edge-loss program with integer constraints.</p>
</sec>
<sec id="s4-2">
<title>4.2&#x20;Edge-Loss Methods</title>
<p>Our approach to edge-loss minimization, based on work by <xref ref-type="bibr" rid="B25">Escolar and Hiraoka (2016)</xref>, is summarized in <xref ref-type="other" rid="alg1">Algorithm 1</xref>. As in <xref ref-type="bibr" rid="B25">Escolar and Hiraoka (2016)</xref>, we obtain <inline-formula id="inf407">
<mml:math id="m440">
<mml:mi mathvariant="bold">x</mml:mi>
</mml:math>
</inline-formula> by taking a linear combination of <inline-formula id="inf408">
<mml:math id="m441">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> with not only boundaries but cycles as well; consequently <inline-formula id="inf409">
<mml:math id="m442">
<mml:mi mathvariant="bold">x</mml:mi>
</mml:math>
</inline-formula> need not be homologous to <inline-formula id="inf410">
<mml:math id="m443">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Our pipeline differs from <xref ref-type="bibr" rid="B25">Escolar and Hiraoka (2016)</xref> in three&#x20;respects. First, we perform all optimizations after the persistence calculation has run. On the one hand, this means&#x20;that our persistence calculations fail to benefit from the&#x20;memory advantages offered by optimized cycles; on the other hand, separating the calculations allows one to &#x201c;mix and match&#x201d; one&#x2019;s favorite persistence solver with one&#x2019;s favorite linear solver, and we anticipate that this will be increasingly important as new, more efficient solvers of each kind are developed. Second, we introduce additional constraints which guarantee that <inline-formula id="inf428">
<mml:math id="m461">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mtext>&#x2a;</mml:mtext>
</mml:msup>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>PrsHCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> [and, moreover, <inline-formula id="inf429">
<mml:math id="m462">
<mml:mrow>
<mml:mi mathvariant="normal">&#x2112;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="normal">&#x2112;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> for each <inline-formula id="inf430">
<mml:math id="m463">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>]. Third, we remove the hypothesis of a simplex-wise filtration; this requires some technical modifications, whose motivation is explained in the <xref ref-type="sec" rid="s12">Supplementary Material</xref>. The crux of this modification lies with the for loop, which replaces cycles that have been optimized in the cycle basis for later cycle optimization.</p>
<p>The program in <xref ref-type="disp-formula" rid="e14">Eq. 14</xref> optimizes the <italic>j</italic>th element of an ordered sequence of cycle representatives <inline-formula id="inf431">
<mml:math id="m464">
<mml:mrow>
<mml:mi>Z</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mn>1</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>m</mml:mi>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. In particular, it seeks to minimize <inline-formula id="inf432">
<mml:math id="m465">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>j</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. To define this program, we first construct a matrix <italic>A</italic> such that <inline-formula id="inf433">
<mml:math id="m466">
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mo>:</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> for <inline-formula id="inf434">
<mml:math id="m467">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. We then define three index sets, <inline-formula id="inf435">
<mml:math id="m468">
<mml:mrow>
<mml:mi mathvariant="script">Q</mml:mi>
<mml:mtext>,</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mtext>,</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> such that<disp-formula id="equ21">
<mml:math id="m469">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="script">Q</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>:</mml:mo>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>Death</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:mtext>Death</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>i</mml:mi>
<mml:mo>&#x2260;</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>:</mml:mo>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>:</mml:mo>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>That is, &#x2119; indexes the set of cycles <inline-formula id="inf436">
<mml:math id="m470">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> such that <inline-formula id="inf437">
<mml:math id="m471">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is born (respectively, dies) by the time that <inline-formula id="inf438">
<mml:math id="m472">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>j</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is born (respectively, dies), excluding the&#x20;original cycle <inline-formula id="inf439">
<mml:math id="m473">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>j</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> itself. Set <inline-formula id="inf440">
<mml:math id="m474">
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
</mml:math>
</inline-formula> is the family of triangles born by&#x20;<inline-formula id="inf441">
<mml:math id="m475">
<mml:mrow>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and set <inline-formula id="inf442">
<mml:math id="m476">
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
</mml:math>
</inline-formula> is the family of edges born by <inline-formula id="inf443">
<mml:math id="m477">
<mml:mrow>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>With these definitions in place, we now formalize the general edge-loss problem as the program in <xref ref-type="disp-formula" rid="e14">Eq. 14</xref>, where <inline-formula id="inf444">
<mml:math id="m478">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> denotes the submatrix of <inline-formula id="inf445">
<mml:math id="m479">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> indexed by triangles born by <inline-formula id="inf446">
<mml:math id="m480">
<mml:mrow>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> (along columns) and edges indexed by edges born by <inline-formula id="inf447">
<mml:math id="m481">
<mml:mrow>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Likewise <italic>A</italic>
<inline-formula id="inf448">
<mml:math id="m482">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>,</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="script">Q</mml:mi>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the column submatrix of <italic>A</italic> corresponding to cycles that are born before the birth time of <inline-formula id="inf449">
<mml:math id="m483">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> (and which die before the death time of <inline-formula id="inf450">
<mml:math id="m484">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>), excluding <inline-formula id="inf451">
<mml:math id="m485">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> itself.<inline-formula id="inf452">
<mml:math id="m486">
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>minimize</mml:mtext>
<mml:mo>&#xa0;</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x2016;</mml:mo>
<mml:mrow>
<mml:mi>W</mml:mi>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mo>&#x2016;</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:munder>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>R</mml:mi>
</mml:mrow>
</mml:munder>
</mml:mrow>
</mml:mrow>
<mml:mi mathvariant="normal">W</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>&#x2010;</mml:mo>
</mml:msubsup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</inline-formula>
<disp-formula id="e14">
<mml:math id="m487">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mtext>subject&#xa0;to</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
<mml:mo>&#x2010;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2010;</mml:mo>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>A</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">Q</mml:mi>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="normal">&#x211a;</mml:mi>
<mml:mi mathvariant="script">Q</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">q</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="normal">&#x211a;</mml:mi>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi>G</mml:mi>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2010;</mml:mo>
</mml:msup>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0.</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(14)</label>
</disp-formula>
</p>
<p>Recall from <xref ref-type="sec" rid="s4-1">Section 4.1</xref> that this program varies along two parameters (integrality and weighting). In integral programs <inline-formula id="inf453">
<mml:math id="m488">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="normal">&#x2124;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, whereas in nonintegral programs <inline-formula id="inf454">
<mml:math id="m489">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="normal">&#x211a;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. The weight matrix <italic>W</italic> is always diagonal, but in uniform-weighted programs <inline-formula id="inf455">
<mml:math id="m490">
<mml:mrow>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> for all <italic>&#x3c3;</italic>&#x20;&#x003D; <italic>R</italic>, whereas in length-weighted programs <inline-formula id="inf456">
<mml:math id="m491">
<mml:mrow>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the length of edge <italic>&#x3c3;</italic>. The program in <xref ref-type="disp-formula" rid="e14">Eq. 14</xref> thus results in four variants:<list list-type="simple">
<list-item>
<p>
<inline-formula id="inf457">
<mml:math id="m492">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mtext>Edge</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>: Nonintegral edge-loss with uniform weights.</p>
</list-item>
<list-item>
<p>
<inline-formula id="inf458">
<mml:math id="m493">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mtext>Edge</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>: Integral edge-loss with uniform weights.</p>
</list-item>
<list-item>
<p>
<inline-formula id="inf459">
<mml:math id="m494">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mtext>Edge</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>: Nonintegral edge-loss with edges weighted by length.</p>
</list-item>
<list-item>
<p>
<inline-formula id="inf460">
<mml:math id="m495">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mtext>Edge</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>: Integral edge-loss with edges weighted by length.</p>
</list-item>
</list>
</p>
<p>The program in <xref ref-type="disp-formula" rid="e14">Eq. 14</xref> may have many more variables than needed, because <inline-formula id="inf461">
<mml:math id="m496">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is often highly singular. Indeed, in applications, <inline-formula id="inf462">
<mml:math id="m497">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can have hundreds or thousands of times as many columns as rows!</p>
<p>A simple means to reduce the size of the program in <xref ref-type="disp-formula" rid="e14">Eq. 14</xref>, therefore, is to replace <inline-formula id="inf463">
<mml:math id="m498">
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
</mml:math>
</inline-formula> with a subset <inline-formula id="inf464">
<mml:math id="m499">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2286;</mml:mo>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> such that <inline-formula id="inf465">
<mml:math id="m500">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is a column basis for <inline-formula id="inf466">
<mml:math id="m501">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Replacing <inline-formula id="inf467">
<mml:math id="m502">
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
</mml:math>
</inline-formula> with <inline-formula id="inf468">
<mml:math id="m503">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> will not change the space of feasible values for <inline-formula id="inf469">
<mml:math id="m504">
<mml:mi mathvariant="bold">x</mml:mi>
</mml:math>
</inline-formula> in the program in <xref ref-type="disp-formula" rid="e14">Eq. 14</xref>, but it can cut the number of&#x20;decision variables significantly. In particular, one may take <inline-formula id="inf470">
<mml:math id="m505">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>:</mml:mo>
<mml:mi>R</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mo>:</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo>&#x2260;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> in the <inline-formula id="inf471">
<mml:math id="m506">
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> decomposition of <inline-formula id="inf472">
<mml:math id="m507">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> described in the <xref ref-type="sec" rid="s12">Supplementary Material</xref>. We also show correctness of this choice of <inline-formula id="inf473">
<mml:math id="m508">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>&#x20;there.</p>
</sec>
<sec id="s4-3">
<title>4.3&#x20;Triangle-Loss Methods</title>
<p>Our approach to triangle-loss optimization is essentially that of <xref ref-type="bibr" rid="B44">Obayashi (2018)</xref>, plus a preprocessing step that converts more general problem data into the simplex-wise filtration format assumed in <xref ref-type="bibr" rid="B44">Obayashi (2018)</xref>. There are several noteworthy methods for time and memory performance enhancement developed in <xref ref-type="bibr" rid="B44">Obayashi (2018)</xref>, which we do not implement (e.g., using restricted neighborhoods<inline-formula id="inf474">
<mml:math id="m509">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mi>q</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> to reduce problem size), but which may substantially improve runtime and memory performance.</p>
<p>The original method makes the critical assumption that <inline-formula id="inf475">
<mml:math id="m510">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is a simplex-wise filtration, more precisely, that there exists a linear order <inline-formula id="inf476">
<mml:math id="m511">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> such that <inline-formula id="inf477">
<mml:math id="m512">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. This hypothesis allows one to map each finite-length interval <inline-formula id="inf478">
<mml:math id="m513">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>Barcode</mml:mtext>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:msub>
<mml:mi mathvariant="italic">K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> to a unique pair of simplices <inline-formula id="inf479">
<mml:math id="m514">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, called a <italic>birth/death pair</italic>, where <inline-formula id="inf480">
<mml:math id="m515">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf481">
<mml:math id="m516">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. This mapping makes it possible to formulate the program in <xref ref-type="disp-formula" rid="e12">Eq. 12</xref>. Unlike&#x20;the&#x20;general edge-loss the program in <xref ref-type="disp-formula" rid="e13">Eq. 13</xref>, one can formulate the program in <xref ref-type="disp-formula" rid="e12">Eq. 12</xref> without ever needing to choose an initial (non-optimal) cycle.&#x20;Thus, for simplex-wise filtrations, the method of <xref ref-type="bibr" rid="B44">Obayashi (2018)</xref> has the substantial advantage of being &#x201c;parameter free.&#x201d;</p>
<p>However, in many applied settings the filtration <inline-formula id="inf482">
<mml:math id="m517">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is not simplex-wise. Indeed, even accessing information about the filtration can be difficult in modern workflows. Such is the case,&#x20;for example, for the filtered Vietroris-Rips (VR) construction. In many VR applications, the user presents raw data in the form of a point cloud or distance matrix to a &#x201c;black box&#x201d; solver; the solver returns the barcode without&#x20;ever&#x20;exposing information about the filtered complex to the user. Thus, the problem of mapping intervals back to pairs of simplices has practical challenges in common applied settings.</p>
<p>To accommodate this more general form of problem data, we employ <xref ref-type="other" rid="alg2">Algorithm 2</xref>. This procedure works by (implicitly) defining a simplex-wise refinement <inline-formula id="inf483">
<mml:math id="m518">
<mml:mrow>
<mml:msub>
<mml:msup>
<mml:mi>K</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> of <inline-formula id="inf484">
<mml:math id="m519">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, applying the method of <xref ref-type="bibr" rid="B44">Obayashi (2018)</xref> to this refinement, then extracting a persistent homology cycle basis for the subspace of finite intervals from the resulting data. More details, including recovery of a complete persistent homology cycle basis with infinite intervals,<xref ref-type="fn" rid="fn10">
<sup>10</sup>
</xref> and a proof of correctness can be found in the <xref ref-type="sec" rid="s12">Supplementary Material</xref>.</p>
<p>A key component of <xref ref-type="other" rid="alg2">Algorithm 2</xref> is the program in <xref ref-type="disp-formula" rid="e15">Eq. 15</xref>, which we refer to as the triangle-loss program.<disp-formula id="e15">
<mml:math id="m536">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>minimize&#xa0;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x2016;</mml:mo>
<mml:mrow>
<mml:mi>W</mml:mi>
<mml:mi mathvariant="bold">v</mml:mi>
</mml:mrow>
<mml:mo>&#x2016;</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi>&#x03B3;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x03B3;</mml:mi>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mi>&#x03B3;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mi>&#x03B3;</mml:mi>
<mml:mo>&#x2010;</mml:mo>
</mml:msubsup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>subject&#xa0;to&#xa0;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>]</mml:mo>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>&#x2260;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:msub>
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mi>&#x3c4;</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>&#x2010;</mml:mo>
</mml:msup>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>&#x2010;</mml:mo>
</mml:msup>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>This terminology is motivated by the special case <inline-formula id="inf499">
<mml:math id="m537">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, which is&#x20;our focus for empirical studies. As with the general edge-loss program in <xref ref-type="disp-formula" rid="e15">Eq. 15</xref> varies along two parameters (integrality and&#x20;weighting). In integral programs <inline-formula id="inf500">
<mml:math id="m538">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="normal">&#x2124;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, whereas in nonintegral programs <inline-formula id="inf501">
<mml:math id="m539">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="normal">&#x211a;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. The weight matrix <italic>W</italic> is always diagonal, but in uniform-weighted programs <inline-formula id="inf502">
<mml:math id="m540">
<mml:mrow>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi>&#x03B3;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x03B3;</mml:mi>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> for all &#x03B3;, whereas in <italic>area</italic>-weighted programs <inline-formula id="inf503">
<mml:math id="m541">
<mml:mrow>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi>&#x03B3;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x03B3;</mml:mi>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the area of triangle &#x03B3;.<xref ref-type="fn" rid="fn11">
<sup>11</sup>
</xref> The program in <xref ref-type="disp-formula" rid="e15">Eq. 15</xref> thus results in four variants:<list list-type="simple">
<list-item>
<p>
<inline-formula id="inf504">
<mml:math id="m542">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mtext>Tri</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>: Nonintegral triangle-loss with uniform weights.</p>
</list-item>
<list-item>
<p>
<inline-formula id="inf505">
<mml:math id="m543">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mtext>Tri</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>: Integral triangle-loss with uniform weights.</p>
</list-item>
<list-item>
<p>
<inline-formula id="inf506">
<mml:math id="m544">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mtext>Tri</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>: Nonintegral triangle-loss with edges weighted by&#x20;area.</p>
</list-item>
<list-item>
<p>
<inline-formula id="inf507">
<mml:math id="m545">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mtext>Tri</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>: Integral triangle-loss with edges weighted by&#x20;area.</p>
</list-item>
</list>
</p>
<p>
<statement content-type="remark" id="Remark_4_1">
<label>
<bold>Remark 4.1.</bold>
</label>
<p>
<xref ref-type="other" rid="alg2">Algorithm 2 </xref>offers an effective means to apply the&#x20;methods of <xref ref-type="bibr" rid="B44">Obayashi (2018)</xref> to some of the most common&#x20;data sets in TDA. However, this is done at the cost of parameter-dependence; in particular, outputs depend on the&#x20;choice of linear orders <inline-formula id="inf508">
<mml:math id="m546">
<mml:mrow>
<mml:msup>
<mml:mo>&#x2264;</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. A brief discussion on how the choice of a total order <inline-formula id="inf509">
<mml:math id="m547">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula> in <xref ref-type="other" rid="alg2">Algorithm 2</xref> may impact the&#x20;difficulty of the linear programs one must solve is discussed in the <xref ref-type="sec" rid="s12">Supplementary Material</xref>. In particular, we explain why the&#x20;total order implicitly chosen in <xref ref-type="other" rid="alg2">Algorithm 2</xref> is reasonable, from a computational/performance standpoint.</p>
</statement>
</p>
</sec>
<sec id="s4-4">
<title>4.4 Acceleration Techniques</title>
<p>We consider acceleration techniques to reduce the computational costs of the programs in <xref ref-type="disp-formula" rid="e14">Eqs 14</xref>, <xref ref-type="disp-formula" rid="e15">15</xref>.</p>
<sec id="s4-4-1">
<title>4.4.1 Edge-Loss Methods</title>
<p>The technique used for edge-loss problems aims to reduce the number of decision variables in the program in <xref ref-type="disp-formula" rid="e14">Eq. 14</xref>. It does so by replacing a (large) set of decision variables indexed by <inline-formula id="inf510">
<mml:math id="m548">
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
</mml:math>
</inline-formula> with a much smaller set, <inline-formula id="inf511">
<mml:math id="m549">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>. See <xref ref-type="sec" rid="s4-2">Section 4.2</xref> for details.</p>
</sec>
<sec id="s4-4-2">
<title>4.4.2 Triangle-Loss Methods</title>
<p>When <inline-formula id="inf512">
<mml:math id="m550">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is large, the memory and computation time needed to construct the constraint matrix <inline-formula id="inf513">
<mml:math id="m551">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> can be nontrivial. In applications that require an optimal representative for every interval in the barcode, these costs&#x20;can be incurred for hundreds or even thousands of programs. We consider two ways to generate the constraint&#x20;matrices <inline-formula id="inf514">
<mml:math id="m552">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> for each of the intervals in a barcode: build <inline-formula id="inf515">
<mml:math id="m553">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> from scratch for each program, or build the complete boundary matrix <inline-formula id="inf516">
<mml:math id="m554">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> in advance; rather than recompute block submatrices for each program, we pass a slice of the complete matrix stored in memory.</p>
<p>The difference between these two techniques can be seen as a speed/memory tradeoff. As we will see in <xref ref-type="sec" rid="s6-2">Section 6.2</xref>, the first approach is generally faster to optimize the entire basis of homology cycle representatives, but when the data set is large, the full boundary matrix <inline-formula id="inf517">
<mml:math id="m555">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> may be too large to store in memory.</p>
</sec>
</sec>
</sec>
<sec id="s5">
<title>5 Experiments</title>
<p>In order to address the questions raised in <xref ref-type="sec" rid="s1">Section 1</xref>, we conduct&#x20;an empirical study of minimal homological cycle representatives in dimension one&#x2014;as defined by the optimization problems detailed in <xref ref-type="sec" rid="s4">Section 4</xref>&#x20;&#x2014;&#x20;on a collection of point clouds, which includes both real world data sets and point samples drawn from four common probability distributions of varying dimension.</p>
<sec id="s5-1">
<title>5.1&#x20;Real-World Data Sets</title>
<p>We consider 11 real world data sets from <xref ref-type="bibr" rid="B45">Otter et&#x20;al. (2017)</xref>, a widely used reference for benchmark statistics concerning persistent homology computations. There are 13 data sets considered by <xref ref-type="bibr" rid="B45">Otter et&#x20;al. (2017)</xref>, however, one of them (gray-scale image) is not available, and one of them is a randomly generated data set similar to our own synthetic data. We summarize information about the dimension, number of points, persistence computation time of each point cloud in <xref ref-type="table" rid="T1">Table&#x20;1</xref>. Below we provide brief descriptions of each data set, but we refer the interested reader to <xref ref-type="bibr" rid="B45">Otter et&#x20;al. (2017)</xref> for further details.<xref ref-type="fn" rid="fn12">
<sup>12</sup>
</xref>
<list list-type="simple">
<list-item>
<p>1. Vicsek biological aggregation model. The Vicsek model is a dynamical system describing the motion of particles. It was first introduced in <xref ref-type="bibr" rid="B58">Vicsek et&#x20;al. (1995)</xref> and was analyzed using PH in <xref ref-type="bibr" rid="B54">Topaz et&#x20;al. (2015)</xref>. We consider a snapshot in time of a single realization of the model with each point specified by its <inline-formula id="inf518">
<mml:math id="m556">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> position and heading. To compute distances, the positions and headings are scaled to be between 0 and 1, and then distance is calculated on the unit cube with periodic boundary conditions. The distance between <italic>a</italic> and <italic>b</italic> is computed as <inline-formula id="inf519">
<mml:math id="m557">
<mml:mrow>
<mml:mtext>min</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>:</mml:mo>
<mml:mi>q</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mn>0,1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>3</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. We denote this data by <bold>Vicsek</bold>.</p>
</list-item>
<list-item>
<p>2. Fractal networks. These networks are self-similar and are used to explore the connection patterns of the cerebral cortex (<xref ref-type="bibr" rid="B50">Sporns, 2006</xref>). The distances between nodes in this data set are defined uniformly at random by <xref ref-type="bibr" rid="B45">Otter et&#x20;al. (2017)</xref>. In another data set, the authors of <xref ref-type="bibr" rid="B45">Otter et&#x20;al. (2017)</xref> define distances between nodes&#x20;by using linear weight-degree correlations. We consider both data sets and found the results to be similar. Therefore, we opt to use the one with distances defined uniformly at random. We denote this data set by <bold>Fract&#x20;R</bold>.</p>
</list-item>
<list-item>
<p>3. C.elegans neuronal network. This is an undirected network in&#x20;which each node is a neuron, and edges represent synapses. It was studied using PH in <xref ref-type="bibr" rid="B46">Petri et&#x20;al. (2013)</xref>. Each nonzero edge weight is converted to a distance equal to its inverse by <xref ref-type="bibr" rid="B45">Otter et&#x20;al. (2017)</xref>. We denote this data by <bold>
<italic>C.elegans</italic>
</bold>.</p>
</list-item>
<list-item>
<p>4. Genomic sequences of the HIV virus. This data set is constructed by taking <inline-formula id="inf520">
<mml:math id="m558">
<mml:mrow>
<mml:mn>1,088</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> different genomic sequences of dimension 673. The aligned sequences were studied using PH in <xref ref-type="bibr" rid="B10">Chan et&#x20;al. (2013)</xref> with sequences retrieved from (<xref ref-type="bibr" rid="B39">Los Alamos National Laboratory, 2021</xref>). Distances are defined using the Hamming distance, which is equal to the number of entries that are different between two genomic sequences. We denote this data by&#x20;<bold>HIV</bold>.</p>
</list-item>
<list-item>
<p>5. Genomic sequences of H3N2. This data set contains <inline-formula id="inf521">
<mml:math id="m559">
<mml:mrow>
<mml:mn>1,173</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> genomic sequences of H3N2 influenza in dimension <inline-formula id="inf522">
<mml:math id="m560">
<mml:mrow>
<mml:mn>2,722</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. Distances are defined using the Hamming distance. We denote this data set as&#x20;<bold>H3N2</bold>.</p>
</list-item>
<list-item>
<p>6. Human genome. This is a network representing a sample of the human genome studied using PH in <xref ref-type="bibr" rid="B46">Petri et&#x20;al. (2013)</xref>, which was created using data retrieved from <xref ref-type="bibr" rid="B16">Davis and Hu (2011)</xref>. Distances are measured using Euclidean distance. We denote this data set by <bold>Genome</bold>.</p>
</list-item>
<list-item>
<p>7. U.S. Congress roll-call voting networks. In the two networks below, each node represents a legislator, and the edge weight is a number in <inline-formula id="inf523">
<mml:math id="m561">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mn>0,1</mml:mn>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> representing the similarity of the two legislators&#x2019; past voting decisions. Distance between two nodes <inline-formula id="inf524">
<mml:math id="m562">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> are defined to be <inline-formula id="inf525">
<mml:math id="m563">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2010;</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<list list-type="simple">
<list-item>
<p>1. <bold>House</bold>. This is a weighted network of the House of Representatives from the 104th United&#x20;States Congress.</p>
</list-item>
<list-item>
<p>2. <bold>Senate</bold>. This is a weighted network of the Senate from the 104th United&#x20;States Congress.</p>
</list-item>
</list>
</list-item>
<list-item>
<p>8. Network of network scientists. This data set represents the largest connected component of a collaboration network of network scientists (<xref ref-type="bibr" rid="B42">Newman, 2006</xref>). The edge weights indicate the number of joint papers between two authors. Distances are defined as the inverse of edge weight. We denote this data set by <bold>Network</bold>.</p>
</list-item>
<list-item>
<p>9. Klein. The Klein bottle is a non-orientable surface with one side. This data set was created in <xref ref-type="bibr" rid="B45">Otter et al. (2017a)</xref> by linearly sampling 400 points from the Klein bottle using its &#x201c;figure&#x20;8&#x201d; immersion in <inline-formula id="inf526">
<mml:math id="m564">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="normal">&#x211d;</mml:mi>
<mml:mn>3</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. This data set originally contains (<xref ref-type="bibr" rid="B5">Borradaile et&#x20;al., 2020</xref>) duplicate points, which we remove. Distances are measured using the Euclidean distance. We denote this data set by <bold>Klein</bold>.</p>
</list-item>
<list-item>
<p>10. Stanford Dragon graphic. This data set contains 1,000 points sampled uniformly at random by <xref ref-type="bibr" rid="B45">Otter et al. (2017)</xref> from 3-dimensional scans of the dragon (<xref ref-type="bibr" rid="B51">Stanford University Computer Graphics Laboratory, 1999</xref>). Distances are measured using the Euclidean distance. We denote this data set <bold>Drag</bold>.</p>
</list-item>
</list>
</p>
<table-wrap id="alg1" position="float">
<label>Algorithm 1</label>
<caption>
<p>Edge-loss persistent cycle minimization</p>
</caption>
<table>
<tbody>
<tr>
<td>
<list list-type="simple">
<list-item>
<p>1: Compute a persistent homology basis <inline-formula id="inf411">
<mml:math id="m444">
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
</mml:math>
</inline-formula> for homology in dimension 1, with coefficients in <inline-formula id="inf412">
<mml:math id="m445">
<mml:mi mathvariant="normal">&#x211a;</mml:mi>
</mml:math>
</inline-formula>, using the standard matrix decomposition procedure described in the <xref ref-type="sec" rid="s12">Supplementary Material</xref>. Arrange the elements of <inline-formula id="inf413">
<mml:math id="m446">
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
</mml:math>
</inline-formula> into an ordered sequence <inline-formula id="inf414">
<mml:math id="m447">
<mml:mrow>
<mml:msup>
<mml:mi>Z</mml:mi>
<mml:mn>0</mml:mn>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mrow>
<mml:mn>0,1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</list-item>
<list-item>
<p>2: <bold>for</bold> <inline-formula id="inf415">
<mml:math id="m448">
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> <bold>do</bold>
</p>
</list-item>
<list-item>
<p>3: Solve the program in <xref ref-type="disp-formula" rid="e14">Eq. 14</xref> to optimize the <inline-formula id="inf416">
<mml:math id="m449">
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>th element of <inline-formula id="inf417">
<mml:math id="m450">
<mml:mrow>
<mml:msup>
<mml:mi>Z</mml:mi>
<mml:mi>j</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. Let <inline-formula id="inf418">
<mml:math id="m451">
<mml:mi mathvariant="bold">x</mml:mi>
</mml:math>
</inline-formula> denote the solution to this problem, and define <inline-formula id="inf419">
<mml:math id="m452">
<mml:mrow>
<mml:msup>
<mml:mi>Z</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> by replacing the <inline-formula id="inf420">
<mml:math id="m453">
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>th element of <inline-formula id="inf421">
<mml:math id="m454">
<mml:mrow>
<mml:msup>
<mml:mi>Z</mml:mi>
<mml:mi>j</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> with <inline-formula id="inf422">
<mml:math id="m455">
<mml:mi mathvariant="bold">x</mml:mi>
</mml:math>
</inline-formula>. Concretely, <inline-formula id="inf423">
<mml:math id="m456">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf424">
<mml:math id="m457">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> for <inline-formula id="inf425">
<mml:math id="m458">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2260;</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</list-item>
<list-item>
<p>4: <bold>end for</bold>
</p>
</list-item>
<list-item>
<p>5: Return <inline-formula id="inf426">
<mml:math id="m459">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mtext>&#x2a;</mml:mtext>
</mml:msup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, the set of elements in <inline-formula id="inf427">
<mml:math id="m460">
<mml:mrow>
<mml:msup>
<mml:mi>Z</mml:mi>
<mml:mi>m</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</list-item>
</list>
</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s5-2">
<title>5.2 Randomly Generated Point Clouds</title>
<p>We also generate a large corpus of synthetic point clouds, each containing 100 points in <inline-formula id="inf527">
<mml:math id="m565">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="normal">&#x211d;</mml:mi>
<mml:mi>q</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> with <inline-formula id="inf528">
<mml:math id="m566">
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mn>10</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, drawn from normal, exponential, gamma, and logistic distributions. We produce 10 realizations for each distribution and dimension combination, for a total of 360 randomly generated point clouds. We use Euclidean distance to measure similarity between points and the Vietoris- Rips filtered simplicial complex to compute persistent homology.</p>
</sec>
<sec id="s5-3">
<title>5.3&#x20;Erd&#x151;s-R&#xe9;nyi Random Complexes</title>
<p>To investigate which properties of homological cycle representatives could arise as the result of the underlying geometry of the point clouds, we also consider a common non-geometric model for random complexes: Erd&#x151;s-R&#xe9;nyi random clique complexes. Here, we construct 100 symmetric dissimilarity matrices of size <inline-formula id="inf529">
<mml:math id="m567">
<mml:mrow>
<mml:mn>100</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#xd7;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mn>100</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> by drawing entries i. i.d. from the uniform distribution on <inline-formula id="inf530">
<mml:math id="m568">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mn>0,1</mml:mn>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> for each pair of distinct points. As these dissimilarities are fully independent, they are in particular not subject to geometric constraints like the triangle inequality. A natural filtration is placed on these dissimilarity matrices by forming filtered simplicial complex <inline-formula id="inf531">
<mml:math id="m569">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> where <inline-formula id="inf532">
<mml:math id="m570">
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3c;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>&#x3c;</mml:mo>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> to compute persistent homology.</p>
</sec>
<sec id="s5-4">
<title>5.4 Computations</title>
<p>For each of the data sets, we perform <xref ref-type="other" rid="alg1">Algorithms 1</xref>, <xref ref-type="other" rid="alg2">2</xref> (using Vietoris-Rips complexes with <inline-formula id="inf533">
<mml:math id="m571">
<mml:mrow>
<mml:mi>&#x211a;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>-</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>coefficients</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula>) to find optimal bases <inline-formula id="inf534">
<mml:math id="m572">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
<mml:mtext>&#x2a;</mml:mtext>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">D</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>PrsHCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula>. For comparison to the edge-loss problem in <xref ref-type="other" rid="alg1">Algorithm 1</xref>, we also apply the program in <xref ref-type="disp-formula" rid="e8">Eq. 8</xref> to each representative in the persistent homology cycle basis to find a basis <inline-formula id="inf535">
<mml:math id="m573">
<mml:mrow>
<mml:mi mathvariant="script">C</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>FCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</sec>
<sec id="s5-5">
<title>5.5 Hardware and Software</title>
<p>We test our programs on an iMac (Retina 5K, 27-inch, 2019) with a 3.6&#xa0;GHz Intel Core i9 processor and 40&#xa0;GB 2667&#xa0;MHz DDR4 memory.</p>
<p>Software for our experiments is implemented in the programming language Julia; source code is available at <xref ref-type="bibr" rid="B38">Li and Thompson (2021)</xref>. This code specifically implements <xref ref-type="other" rid="alg1">Algorithms 1</xref>, <xref ref-type="other" rid="alg2">2</xref> and the program in <xref ref-type="disp-formula" rid="e8">Eq. 8</xref>.<xref ref-type="fn" rid="fn13">
<sup>13</sup>
</xref>
</p>
<p>Since our interest lies not only with the outputs of these algorithms but with the structure of the linear programs themselves <xref ref-type="bibr" rid="B38">Li and Thompson (2021)</xref>, implements a standalone workflow that exposes the objects built internally within each pipeline. This library is simple by design, and does not implement the performance-enhancing techniques developed in <xref ref-type="bibr" rid="B25">Escolar and Hiraoka (2016)</xref> and <xref ref-type="bibr" rid="B44">Obayashi (2018)</xref>. Users wishing to work with optimal cycle representatives for applications may consider these approaches discussed in <xref ref-type="sec" rid="s3-7">Section&#x20;3.7</xref>.</p>
<p>To implement <xref ref-type="other" rid="alg1">Algorithms 1</xref>, <xref ref-type="other" rid="alg2">2</xref> in homological dimension one, the test library (<xref ref-type="bibr" rid="B38">Li and Thompson, 2021</xref>) provides three key functions: <italic>A novel solver for persistence with</italic> <inline-formula id="inf536">
<mml:math id="m574">
<mml:mrow>
<mml:mi mathvariant="normal">&#x211a;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>-</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula>
<italic>coefficients</italic>. To compute cycle representatives for persistent homology with <inline-formula id="inf537">
<mml:math id="m575">
<mml:mrow>
<mml:mi mathvariant="normal">&#x211a;</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>-</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>coefficients</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula>, we implement a new persistent homology solver adapted from Eirene (<xref ref-type="bibr" rid="B35">Henselman-Petrusek, 2016</xref>). The adapted version uses native Eirene code as a subroutine to reduce the number of columns in the top dimensional boundary matrix in a way that is guaranteed not to alter the outcome of the persistence computation (<xref ref-type="bibr" rid="B34">Henselman and Ghrist, 2016</xref>).</p>
<p>
<italic>Formatting of Inputs to Linear Programs</italic>. Having computed barcodes and persistent homology cycle representatives, library (<xref ref-type="bibr" rid="B38">Li and Thompson, 2021</xref>) provides built-in functionality to format the linear the program in <xref ref-type="disp-formula" rid="e14">Eqs 14</xref>, <xref ref-type="disp-formula" rid="e15">15</xref> for input to a linear solver. This &#x201c;connecting&#x201d; step is executed in pure Julia.</p>
<p>
<italic>Wrappers for Linear Solvers</italic>. We use the Gurobi linear solver (<xref ref-type="bibr" rid="B31">Gurobi Optimization, 2020</xref>) and the GLPK solver (<xref ref-type="bibr" rid="B30">GNU Project, 2012</xref>). Both solvers can optimize both LPs and MIPs. Experiments indicate that Gurobi executes much faster than GLPK on this class of problems, and thus, we use it in the bulk of our computations. Both solvers are free for academic&#x20;users.</p>
</sec>
</sec>
<sec sec-type="results|discussion" id="s6">
<title>6 Results and Discussion</title>
<p>In this section, we investigate each of the questions raised in <xref ref-type="sec" rid="s1">Section 1</xref> with the following analyses.</p>
<sec id="s6-1">
<title>6.1 Computation Time Comparisons</title>
<p>We summarize results for Programs Edge<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Unif</italic>
</sub>, Edge<sup>
<italic>I</italic>
</sup>
<sub>
<italic>Unif</italic>
</sub>, Edge<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Len</italic>
</sub>, Edge<sup>
<italic>I</italic>
</sup>
<sub>
<italic>Len</italic>
</sub>, Tri<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Unif</italic>
</sub>, and Tri<sup>
<italic>I</italic>
</sup>
<sub>
<italic>Unif</italic>
</sub> in <xref ref-type="table" rid="T1">Table&#x20;1</xref> for data described in <xref ref-type="sec" rid="s5-1">Section 5.1</xref> and <xref ref-type="table" rid="T2">Table&#x20;2</xref> for data described in <xref ref-type="sec" rid="s5-2">Section 5.2</xref> and&#x20;<xref ref-type="sec" rid="s5-3">Section 5.3</xref>. Further, we summarize results for Programs Tri<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Area</italic>
</sub> and Tri<sup>
<italic>I</italic>
</sup>
<sub>
<italic>Area</italic>
</sub> in <xref ref-type="table" rid="T2">Table&#x20;2</xref> for data described in <xref ref-type="sec" rid="s5-2">Section 5.2</xref>.<xref ref-type="fn" rid="fn14">
<sup>14</sup>
</xref> We use&#x20;<inline-formula id="inf546">
<mml:math id="m584">
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mi mathvariant="bold">e</mml:mi>
<mml:mi mathvariant="bold">r</mml:mi>
<mml:mi mathvariant="bold">s</mml:mi>
<mml:mi mathvariant="bold">i</mml:mi>
<mml:mi mathvariant="bold">s</mml:mi>
<mml:mi mathvariant="bold">t</mml:mi>
<mml:mi mathvariant="bold">e</mml:mi>
<mml:mi mathvariant="bold">n</mml:mi>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mi mathvariant="bold">e</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to denote the time taken to compute all original cycle representatives and their lifespans <inline-formula id="inf547">
<mml:math id="m585">
<mml:mi mathvariant="normal">&#x2112;</mml:mi>
</mml:math>
</inline-formula>. We use <inline-formula id="inf548">
<mml:math id="m586">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> to denote the computation time for optimizing all generators found by the persistence algorithm, where the subscript denotes the cost function e.g. <italic>E-Unif</italic> or <italic>T-Unif</italic>, and the superscript denotes the nonintegral <sup>
<italic>NI</italic>
</sup> or integral <sup>
<italic>I</italic>
</sup> constraint. The <inline-formula id="inf549">
<mml:math id="m587">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> computations include the time required to construct the inputs to the solver for the edge-loss methods, and exclude the time required to construct the inputs to the triangle-loss methods, whose computation time is separately recorded in order to compare two ways of constructing the input matrix, as discussed in <xref ref-type="sec" rid="s4-4">Section 4.4</xref>. In each table, rows 1&#x2013;3 provide information about the data by specifying ambient dimension, number of points, and number of cycle representatives. Row 4, labeled as <inline-formula id="inf550">
<mml:math id="m588">
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mi mathvariant="bold">e</mml:mi>
<mml:mi mathvariant="bold">r</mml:mi>
<mml:mi mathvariant="bold">s</mml:mi>
<mml:mi mathvariant="bold">i</mml:mi>
<mml:mi mathvariant="bold">s</mml:mi>
<mml:mi mathvariant="bold">t</mml:mi>
<mml:mi mathvariant="bold">e</mml:mi>
<mml:mi mathvariant="bold">n</mml:mi>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mi mathvariant="bold">e</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, gives the total time to compute persistent homology for the data, measured in seconds. Rows 5&#x2013;12 (<xref ref-type="table" rid="T1">Table&#x20;1</xref>) and rows 5&#x2013;14 (<xref ref-type="table" rid="T2">Table&#x20;2</xref>) give the total time to optimize all cycle representatives that are feasible to compute using each optimization technique. In the last two rows of each table, we provide the time of constructing the input to the triangle-loss methods using two different&#x20;approaches described in <xref ref-type="sec" rid="s4-4">Section 4.4</xref>. The penultimate row records the time of building the entire <inline-formula id="inf551">
<mml:math id="m589">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> matrix once and then extracting <inline-formula id="inf552">
<mml:math id="m590">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> for each representative. The last row records the total time to iteratively build the part of the boundary matrix <inline-formula id="inf553">
<mml:math id="m591">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> for each cycle representative. In <xref ref-type="table" rid="T2">Table&#x20;2</xref>, the computation times displayed average all random samples from each dimension for each distribution.</p>
<table-wrap id="alg2" position="float">
<label>Algorithm 2</label>
<caption>
<p>Triangle-loss persistent cycle minimization.</p>
</caption>
<table>
<tbody>
<tr>
<td>
<list list-type="simple">
<list-item>
<label>1:</label>
<p>Place a filtration-preserving linear order <inline-formula id="inf485">
<mml:math id="m520">
<mml:mrow>
<mml:msup>
<mml:mo>&#x2264;</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> on <inline-formula id="inf486">
<mml:math id="m521">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>l</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> for each <italic>l</italic>.</p>
</list-item>
<list-item>
<label>2:</label>
<p>Compute an <inline-formula id="inf487">
<mml:math id="m522">
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> decomposition as described in (<xref ref-type="bibr" rid="B14">Cohen-Steiner et al., 2006</xref>) and the <xref ref-type="sec" rid="s12">Supplementary Material</xref>. We then obtain a set <inline-formula id="inf488">
<mml:math id="m523">
<mml:mi>&#x393;</mml:mi>
</mml:math>
</inline-formula> of birth/death pairs <inline-formula id="inf489">
<mml:math id="m524">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</list-item>
<list-item>
<label>3:</label>
<p>For each <inline-formula id="inf490">
<mml:math id="m525">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x393;</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> such that Birth<inline-formula id="inf491">
<mml:math id="m526">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> &#x3c; Birth<inline-formula id="inf492">
<mml:math id="m527">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, put<disp-formula id="equ22">
<mml:math id="m528">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>:</mml:mo>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>&#x3c3;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:menclose notation="updiagonalstrike">
<mml:mo>&#x2264;</mml:mo>
</mml:menclose>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="equ23">
<mml:math id="m529">
<mml:mrow>
<mml:mo>&#x2003;</mml:mo>
<mml:mo>&#x2003;</mml:mo>
<mml:msub>
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>:</mml:mo>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msup>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:menclose notation="updiagonalstrike">
<mml:mo>&#x2264;</mml:mo>
</mml:menclose>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>and <inline-formula id="inf493">
<mml:math id="m530">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x222a;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Compute a solution to the corresponding program in <xref ref-type="disp-formula" rid="e15">Eq. 15</xref>, and denote this solution by <inline-formula id="inf494">
<mml:math id="m531">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<label>4:</label>
<p>Put <inline-formula id="inf495">
<mml:math id="m532">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="script">D</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>:</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>&#x393;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#xa0;and&#xa0;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3c;</mml:mo>
<mml:mtext>Birth</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and let <inline-formula id="inf496">
<mml:math id="m533">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="script">D</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="normal">&#x2133;</mml:mi>
<mml:mo>:</mml:mo>
<mml:mtext>Death</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf497">
<mml:math id="m534">
<mml:mi mathvariant="normal">&#x2133;</mml:mi>
</mml:math>
</inline-formula> is a persistent homology cycle basis calculated by the standard <inline-formula id="inf498">
<mml:math id="m535">
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>D</mml:mi>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> method.</p>
</list-item>
<list-item>
<label>5:</label>
<p>Return <inline-formula id="inf1495">
<mml:math id="m1532">
<mml:mrow>
<mml:mi mathvariant="script">D</mml:mi>
</mml:mrow>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="script">D</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mo>&#x222a;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="script">D</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:math>
</inline-formula>
</p>
</list-item>
</list>
</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The two numbers in parenthesis in the third row of <xref ref-type="table" rid="T1">Table&#x20;1</xref> indicate the actual number of representatives we were able to optimize using the triangle-loss methods (all edge-loss representatives were optimized). For the <bold>Genome</bold> and <bold>H3N2</bold> data sets, we are not able to compute all triangle-loss cycle representatives due to the large number of 2-simplices born between the birth and death interval of some cycles. For instance, for a particular cycle representative in the <bold>Genome</bold> data set, there were 10,522,991&#x20;2-simplices born in this cycle&#x2019;s lifespan. Also, given the large number of 2-simplices in the simplicial complex, we are not able to build the full <inline-formula id="inf554">
<mml:math id="m592">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> matrix due to memory constraints, denoted by - in the penultimate row of <xref ref-type="table" rid="T1">Table&#x20;1</xref>.</p>
<p>Below we describe some insights on computation time drawn from the two tables.</p>
<sec id="s6-1-1">
<title>6.1.1 Persistence and Optimization <inline-formula id="inf555">
<mml:math id="m593">
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mtext>persistence</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>vs</mml:mtext>
<mml:mtext>.</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</title>
<p>We observe that <inline-formula id="inf556">
<mml:math id="m594">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> <xref ref-type="fn" rid="fn15">
<sup>15</sup>
</xref> <inline-formula id="inf557">
<mml:math id="m595">
<mml:mo>&#x3e;</mml:mo>
</mml:math>
</inline-formula> <inline-formula id="inf558">
<mml:math id="m596">
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mi mathvariant="bold">e</mml:mi>
<mml:mi mathvariant="bold">r</mml:mi>
<mml:mi mathvariant="bold">s</mml:mi>
<mml:mi mathvariant="bold">i</mml:mi>
<mml:mi mathvariant="bold">s</mml:mi>
<mml:mi mathvariant="bold">t</mml:mi>
<mml:mi mathvariant="bold">e</mml:mi>
<mml:mi mathvariant="bold">n</mml:mi>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mi mathvariant="bold">e</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> e.g. for 5 out of the 11&#x20;real-world data sets described in <xref ref-type="sec" rid="s5-1">Section 5.1</xref> when using the four edge-loss methods. The same inequality holds in seven out of the 11 data&#x20;sets when using the two uniform-weighted triangle-loss methods. For all of the synthetic data described in <xref ref-type="sec" rid="s5-2">Sections 5.2</xref> and <xref ref-type="sec" rid="s5-3">5.3</xref>, we&#x20;have <inline-formula id="inf559">
<mml:math id="m597">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:mo>&#x3e;</mml:mo>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mi mathvariant="bold">e</mml:mi>
<mml:mi mathvariant="bold">r</mml:mi>
<mml:mi mathvariant="bold">s</mml:mi>
<mml:mi mathvariant="bold">i</mml:mi>
<mml:mi mathvariant="bold">s</mml:mi>
<mml:mi mathvariant="bold">t</mml:mi>
<mml:mi mathvariant="bold">e</mml:mi>
<mml:mi mathvariant="bold">n</mml:mi>
<mml:mi mathvariant="bold">s</mml:mi>
<mml:mi mathvariant="bold">e</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> when using all eight optimization programs. Therefore, the computational cost of optimizing a basis of cycle representatives generally exceeds the cost of computing such a&#x20;basis.</p>
<p>This somewhat surprising result highlights the computational complexity of the algorithms used both to compute persistence and to optimize generators. A common feature of both the persistence computation and linear optimization is that empirical performance typically outstrips asymptotic complexity by a wide margin; the persistence computation, for example, has cubic complexity in the size of the complex, but usually runs in linear time. Thus, worst-case complexity paints an incomplete picture. Moreover, naive &#x201c;back of the envelope&#x201d; calculations are often hindered by lack of information. For example, the persistence computation (which essentially reduces to Gaussian elimination) typically processes each of the <italic>m</italic> columns of a boundary matrix <inline-formula id="inf560">
<mml:math id="m598">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> in sequence. The polytope of feasible solutions for an associated linear program (edge-loss or triangle-loss) may have many fewer or many more vertices than <italic>m</italic>, depending on the program; moreover, even&#x20;if the number of vertices is very high, the number of <italic>visited</italic> vertices (e.g., by the simplex algorithm) can be much lower. Without knowing these numbers <italic>a priori</italic>, run times can be quite challenging to estimate. Empirical studies, such as the present one, give a picture of how these algorithms perform in practice.</p>
</sec>
<sec id="s6-1-2">
<title>6.1.2 Integral and Nonintegral Programs <inline-formula id="inf561">
<mml:math id="m599">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>T</mml:mi>
<mml:mi>I</mml:mi>
</mml:msup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>vs</mml:mtext>
<mml:mtext>.</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</title>
<p>In <xref ref-type="table" rid="T1">Tables 1</xref> and <xref ref-type="table" rid="T2">2</xref>, we observe that <inline-formula id="inf562">
<mml:math id="m600">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>T</mml:mi>
<mml:mi>I</mml:mi>
</mml:msup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x3e;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, i.e.,&#x20;the total computation time of optimizing a basis of cycle representatives using an integer program exceeds the computation time using a non-integer constrained program. Yet, <inline-formula id="inf563">
<mml:math id="m601">
<mml:mrow>
<mml:msup>
<mml:mi>T</mml:mi>
<mml:mi>I</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf564">
<mml:math id="m602">
<mml:mrow>
<mml:msup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> are on the same order of magnitude, for both edge-loss methods and triangle-loss method.</p>
<p>Let <inline-formula id="inf565">
<mml:math id="m603">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>t</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mi>t</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> where <inline-formula id="inf566">
<mml:math id="m604">
<mml:mrow>
<mml:msubsup>
<mml:mi>t</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> represents the computation time for optimizing a single cycle representative. We define <inline-formula id="inf567">
<mml:math id="m605">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf568">
<mml:math id="m606">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> similarly. We compute each for every cycle representative for data described in <xref ref-type="table" rid="T1">Tables 1</xref>, <xref ref-type="table" rid="T2">2</xref>. Let <inline-formula id="inf569">
<mml:math id="m607">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denote the average of <inline-formula id="inf570">
<mml:math id="m608">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf571">
<mml:math id="m609">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denote the standard deviation of <inline-formula id="inf572">
<mml:math id="m610">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. We have <inline-formula id="inf573">
<mml:math id="m611">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1.49</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1.34</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf574">
<mml:math id="m612">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1.55</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1.38</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf575">
<mml:math id="m613">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1.28</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1.14</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. <xref ref-type="fig" rid="F6">Figures 6A,C,E</xref> plots <inline-formula id="inf576">
<mml:math id="m614">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> using scatter plots and <xref ref-type="fig" rid="F6">Figures 6B,D,F</xref> displays the same data using box plots. The vertical axis represents the ratio between the MIP time and LP time of optimizing a cycle representative. The horizontal axis in the scatter plots represents the computation time to solve the LP. The red line in each subfigure represents the horizontal line <inline-formula id="inf577">
<mml:math id="m615">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. As we can see from the box plots, the ratio between the computation time of MIP and LP for most of the cycle representatives <inline-formula id="inf578">
<mml:math id="m616">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mo>&#x3e;</mml:mo>
<mml:mn>50</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is around 1 and less than 2. Although there are cases where the computation time of solving an MIP is 108.70&#x20;times the computation time of solving an LP, such cases happen only for cycle representatives with a very short LP computation&#x20;time.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Ratio between the computation time of solving an integer programming problem (Programs Tri<sup>
<italic>I</italic>
</sup>
<sub>
<italic>Unif</italic>
</sub>, Edge<sup>
<italic>I</italic>
</sup>
<sub>
<italic>Len</italic>
</sub>, Edge<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Unif</italic>
</sub>) and the computation time of solving a linear programming problem (Programs Tri<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Unif</italic>
</sub>, Edge<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Len</italic>
</sub>, Edge<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Unif</italic>
</sub>) for all of the cycle representatives from data sets described in <xref ref-type="sec" rid="s5-1">Sections 5.1</xref>, <xref ref-type="sec" rid="s5-2">5.2</xref> and <xref ref-type="sec" rid="s5-3">5.3</xref>. Subfigures <bold>(A) (C) (E)</bold> plot the data using scatter plots and subfigures <bold>(B) (D) (F)</bold> show the same data using box plots. The vertical axis represents the ratio between the integer programming time and linear programming time of optimizing a cycle representative and the horizontal axis represents the computation time to solve the linear program. The red line in each subfigure represents the horizontal line <italic>y</italic> &#x3d; 1, where the time for each optimization is equivalent. As we can see from the box plots, the&#x20;ratio between the computation time of integer programming and linear programming for most of the cycle representatives (&#x3e;50%) center around 1.</p>
</caption>
<graphic xlink:href="frai-04-681117-g006.tif"/>
</fig>
</sec>
<sec id="s6-1-3">
<title>6.1.3 Triangle-Loss Vs. Edge-Loss Programs <inline-formula id="inf587">
<mml:math id="m625">
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mo>&#x2022;</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>vs</mml:mtext>
<mml:mtext>.</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mo>&#x2022;</mml:mo>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</title>
<p>We observe that the edge-loss optimal cycles are more efficient to compute than the triangle-loss cycles for more than <inline-formula id="inf588">
<mml:math id="m626">
<mml:mrow>
<mml:mn>60.11</mml:mn>
<mml:mo>%</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>&#x20;of the cycle representatives<xref ref-type="fn" rid="fn16">
<sup>16</sup>
</xref>. This aligns with our&#x20;intuition because for representatives with a longer persistence, the number of columns in the boundary matrix&#x20;<inline-formula id="inf589">
<mml:math id="m627">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> grows faster than that of <inline-formula id="inf590">
<mml:math id="m628">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mo>:</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Consequently, the edge-loss programs are feasible for all cycle representatives we experiment with, whereas the triangle-loss technique fails for six representatives due to the large problem size (with greater than twenty million triangles born between the life span of those cycle representatives).</p>
</sec>
<sec id="s6-1-4">
<title>6.1.4 Different Linear Solvers</title>
<p>The choice of linear solver can significantly impact the computational cost of the optimization problems. We perform experiments on length/uniform-minimal cycle representatives using the GLPK (<xref ref-type="bibr" rid="B30">GNU Project, 2012</xref>; <xref ref-type="bibr" rid="B31">Gurobi Optimization, 2020</xref>) linear solvers on 90 data sets drawn from the normal distribution with dimensions from 2 to 10 with a total of <inline-formula id="inf591">
<mml:math id="m629">
<mml:mrow>
<mml:mn>4,815</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> cycle representatives. The median of the computation time ratio between using the GLPK solver and Gurobi solver is 2.22 for Program <inline-formula id="inf592">
<mml:math id="m630">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, 1.68 for Program <inline-formula id="inf593">
<mml:math id="m631">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, 2.28 for Program <inline-formula id="inf594">
<mml:math id="m632">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, and 1.73 for Program <inline-formula id="inf595">
<mml:math id="m633">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, and the computation time using the GLPK solver can be 30&#x20;times larger than the computation time using the Gurobi solver for some cycles, see figure in the <xref ref-type="sec" rid="s12">Supplementary Material</xref>. Therefore, we use the Gurobi solver in all other analyses in this&#x20;paper.</p>
</sec>
</sec>
<sec id="s6-2">
<title>6.2 Performance of Acceleration Techniques</title>
<sec id="s6-2-1">
<title>6.2.1 Edge-Loss Optimal Cycles</title>
<p>As discussed in <xref ref-type="sec" rid="s4-4">Section 4.4</xref>, we accelerate edge-loss problems&#x20;by replacing <inline-formula id="inf596">
<mml:math id="m634">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mo>:</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> with the column basis submatrix of <inline-formula id="inf597">
<mml:math id="m635">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mo>:</mml:mo>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. We further reduce the size of <inline-formula id="inf598">
<mml:math id="m636">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mo>:</mml:mo>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> by only including the rows corresponding to 1-simplices born before the birth time of the cycle, denoted as <inline-formula id="inf599">
<mml:math id="m637">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. We perform experiments on a small-sized data set (<bold>Senate</bold>) that consists of 103 points in dimension 60 and a medium-sized data set (<bold>House</bold>) that contains 445 points in dimension 261. In <xref ref-type="table" rid="T3">Table&#x20;3</xref>, we report the computation time of solving the optimization problems in Programs <inline-formula id="inf600">
<mml:math id="m638">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf601">
<mml:math id="m639">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf602">
<mml:math id="m640">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf603">
<mml:math id="m641">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> using these three techniques of varying the size of the input boundary matrix. The results align with intuition that the optimizations are faster with fewer input variables, and thus, the third implementation is the most efficient among the&#x20;three.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Summary of the experimental results of the data sets from <xref ref-type="bibr" rid="B45">Otter et&#x20;al. (2017)</xref> as described in <xref ref-type="sec" rid="s5-1">Section 5.1</xref>. The rows include the ambient dimension, number of points, the number of cycle representatives in <inline-formula id="inf927">
<mml:math id="m971">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and the time (measured in seconds) it took to compute persistent homology for each data set. We also include the computation time taken to optimize the set of cycle representatives under six different optimization problems, and computation time of two different implementation choices for the triangle-loss optimal cycles: building the full <inline-formula id="inf928">
<mml:math id="m972">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> boundary matrix once and extracting the part needed, or constructing part of the <inline-formula id="inf929">
<mml:math id="m973">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> boundary matrix for each cycle representative. In this table, <italic>T</italic> stands for computation time measured in seconds with subscripts indicating the type of the optimal cycle and superscripts indicating whether the program was solved using linear programming (NI) or integer programming (I). The time taken to construct the input to the optimization problem is included in the optimization time for edge-loss minimal cycle representatives, but is excluded and separately listed in the last two rows for the triangle-loss minimal cycle representatives. For triangle-loss cycles, we were able to compute 115 out of the 117 cycle representatives for the <bold>Genome</bold> data set and 52 out of 57 cycle representatives for the <bold>H3N2</bold> data set due to memory constraints. The numbers in the parenthesis represent the other optimization statistics corresponding to the triangle-loss optimal cycles we were actually able to compute. The last two rows compare two ways of building the input <inline-formula id="inf930">
<mml:math id="m974">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mo>:</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> matrix to the triangle-loss optimal cycle program. The penultimate row records the time of building the entire <inline-formula id="inf931">
<mml:math id="m975">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> matrix once and then extracting columns born in the interval <inline-formula id="inf932">
<mml:math id="m976">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> for each representative. The last row records the total time to iteratively build the part of the boundary matrix <inline-formula id="inf933">
<mml:math id="m977">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mo>:</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> for each cycle representative.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left"/>
<th align="center">Klein</th>
<th align="center">Vicsek</th>
<th align="center">C.<italic>elegans</italic>
</th>
<th align="center">HIV</th>
<th align="center">Genome</th>
<th align="center">Fractal R</th>
<th align="center">Network</th>
<th align="center">House</th>
<th align="center">Senate</th>
<th align="center">Drag</th>
<th align="center">H3N2</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">&#x2003;Ambient dimension</td>
<td align="char" char=".">3</td>
<td align="char" char=".">3</td>
<td align="char" char=".">202</td>
<td align="char" char=".">673</td>
<td align="char" char=".">688</td>
<td align="char" char=".">259</td>
<td align="char" char=".">300</td>
<td align="char" char=".">261</td>
<td align="char" char=".">60</td>
<td align="char" char=".">3</td>
<td align="char" char=".">1,173</td>
</tr>
<tr>
<td align="left">&#x2003;&#x23; Points</td>
<td align="char" char=".">400</td>
<td align="char" char=".">300</td>
<td align="char" char=".">297</td>
<td align="char" char=".">1,088</td>
<td align="char" char=".">1,397</td>
<td align="char" char=".">512</td>
<td align="char" char=".">379</td>
<td align="char" char=".">445</td>
<td align="char" char=".">103</td>
<td align="char" char=".">1,000</td>
<td align="char" char=".">2,722</td>
</tr>
<tr>
<td align="left">&#x2003;&#x23; Representatives</td>
<td align="char" char=".">257</td>
<td align="char" char=".">149</td>
<td align="char" char=".">107</td>
<td align="char" char=".">174</td>
<td align="char" char=".">117 (115)</td>
<td align="char" char=".">438</td>
<td align="char" char=".">7</td>
<td align="char" char=".">126</td>
<td align="char" char=".">12</td>
<td align="char" char=".">311</td>
<td align="char" char=".">28 (26)</td>
</tr>
<tr>
<td align="left">&#x2003;<inline-formula id="inf934">
<mml:math id="m978">
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">100.97</td>
<td align="char" char=".">129.39</td>
<td align="char" char=".">5.14</td>
<td align="char" char=".">728.51</td>
<td align="char" char=".">967.61</td>
<td align="char" char=".">143.07</td>
<td align="char" char=".">12.18</td>
<td align="char" char=".">9.62</td>
<td align="char" char=".">0.10</td>
<td align="char" char=".">1,053.53</td>
<td align="char" char=".">71,081.77</td>
</tr>
<tr>
<td colspan="12" align="left">
<bold>Edge-loss persistent homological cycle representatives (<xref ref-type="disp-formula" rid="e14">Eq. 14)</xref>
</bold>
</td>
</tr>
<tr>
<td align="left">&#x2003;<inline-formula id="inf935">
<mml:math id="m979">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">16.01</td>
<td align="char" char=".">8.20</td>
<td align="char" char=".">19.64</td>
<td align="char" char=".">466.85</td>
<td align="char" char=".">656.05</td>
<td align="char" char=".">150.46</td>
<td align="char" char=".">0.17</td>
<td align="char" char=".">63.93</td>
<td align="char" char=".">0.31</td>
<td align="char" char=".">45.14</td>
<td align="char" char=".">4,732.59</td>
</tr>
<tr>
<td align="left">&#x2003;<inline-formula id="inf936">
<mml:math id="m980">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">11.28</td>
<td align="char" char=".">6.61</td>
<td align="char" char=".">16.07</td>
<td align="char" char=".">403.63</td>
<td align="char" char=".">491.69</td>
<td align="char" char=".">86.95</td>
<td align="char" char=".">0.13</td>
<td align="char" char=".">48.65</td>
<td align="char" char=".">0.22</td>
<td align="char" char=".">34.73</td>
<td align="char" char=".">4,540.55</td>
</tr>
<tr>
<td align="left">&#x2003;<inline-formula id="inf937">
<mml:math id="m981">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">14.59</td>
<td align="char" char=".">9.09</td>
<td align="char" char=".">19.22</td>
<td align="char" char=".">473.82</td>
<td align="char" char=".">689.51</td>
<td align="char" char=".">119.94</td>
<td align="char" char=".">0.23</td>
<td align="char" char=".">63.34</td>
<td align="char" char=".">0.33</td>
<td align="char" char=".">45.51</td>
<td align="char" char=".">4,714.90</td>
</tr>
<tr>
<td align="left">&#x2003;<inline-formula id="inf938">
<mml:math id="m982">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">11.38</td>
<td align="char" char=".">5.55</td>
<td align="char" char=".">15.63</td>
<td align="char" char=".">404.95</td>
<td align="char" char=".">492.66</td>
<td align="char" char=".">83.40</td>
<td align="char" char=".">0.12</td>
<td align="char" char=".">48.88</td>
<td align="char" char=".">0.22</td>
<td align="char" char=".">33.88</td>
<td align="char" char=".">4,547.37</td>
</tr>
<tr>
<td colspan="12" align="left">
<bold>Edge-loss filtered homological cycle represnetatives (<xref ref-type="disp-formula" rid="e8">Eq. 8)</xref>
</bold>
</td>
</tr>
<tr>
<td align="left">&#x2003;<inline-formula id="inf939">
<mml:math id="m983">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">16.93</td>
<td align="char" char=".">8.64</td>
<td align="char" char=".">20.41</td>
<td align="char" char=".">468.22</td>
<td align="char" char=".">1,144.17</td>
<td align="char" char=".">155.08</td>
<td align="char" char=".">0.17</td>
<td align="char" char=".">62.20</td>
<td align="char" char=".">0.30</td>
<td align="char" char=".">67.77</td>
<td align="char" char=".">2,999.24</td>
</tr>
<tr>
<td align="left">&#x2003;<inline-formula id="inf940">
<mml:math id="m984">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">10.29</td>
<td align="char" char=".">5.51</td>
<td align="char" char=".">16.15</td>
<td align="char" char=".">403.74</td>
<td align="char" char=".">973.15</td>
<td align="char" char=".">88.66</td>
<td align="char" char=".">0.13</td>
<td align="char" char=".">48.24</td>
<td align="char" char=".">0.22</td>
<td align="char" char=".">50.25</td>
<td align="char" char=".">2,829.12</td>
</tr>
<tr>
<td align="left">&#x2003;<inline-formula id="inf941">
<mml:math id="m985">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">15.14</td>
<td align="char" char=".">8.32</td>
<td align="char" char=".">19.76</td>
<td align="char" char=".">476.84</td>
<td align="char" char=".">1,191.44</td>
<td align="char" char=".">142.4</td>
<td align="char" char=".">0.24</td>
<td align="char" char=".">61.82</td>
<td align="char" char=".">0.31</td>
<td align="char" char=".">68.63</td>
<td align="char" char=".">2,937.16</td>
</tr>
<tr>
<td align="left">&#x2003;<inline-formula id="inf942">
<mml:math id="m986">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">11.07</td>
<td align="char" char=".">5.63</td>
<td align="char" char=".">16.23</td>
<td align="char" char=".">406.97</td>
<td align="char" char=".">981.72</td>
<td align="char" char=".">87.59</td>
<td align="char" char=".">0.12</td>
<td align="char" char=".">48.11</td>
<td align="char" char=".">0.22</td>
<td align="char" char=".">54.05</td>
<td align="char" char=".">2,833.06</td>
</tr>
<tr>
<td colspan="12" align="left">
<bold>Triangle-loss persistent homological cycle representatives (<xref ref-type="disp-formula" rid="e15">Eq. 15)</xref>
</bold>
</td>
</tr>
<tr>
<td align="left">&#x2003;<inline-formula id="inf943">
<mml:math id="m987">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">316.33</td>
<td align="char" char=".">24.52</td>
<td align="char" char=".">657.53</td>
<td align="char" char=".">25,402.56</td>
<td align="char" char=".">16,379.86</td>
<td align="char" char=".">20,440.33</td>
<td align="char" char=".">2.91</td>
<td align="char" char=".">234.05</td>
<td align="char" char=".">0.29</td>
<td align="char" char=".">384.91</td>
<td align="char" char=".">39,140.67</td>
</tr>
<tr>
<td align="left">&#x2003;<inline-formula id="inf944">
<mml:math id="m988">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">154.36</td>
<td align="char" char=".">19.18</td>
<td align="char" char=".">540.06</td>
<td align="char" char=".">23,260.12</td>
<td align="char" char=".">14,535.42</td>
<td align="char" char=".">18,279.82</td>
<td align="char" char=".">2.47</td>
<td align="char" char=".">206.63</td>
<td align="char" char=".">0.18</td>
<td align="char" char=".">277.93</td>
<td align="char" char=".">36,401.50</td>
</tr>
<tr>
<td align="left">&#x2003;<italic>T</italic> Build all</td>
<td align="char" char=".">2.16</td>
<td align="char" char=".">0.32</td>
<td align="char" char=".">4.88</td>
<td align="char" char=".">268.57</td>
<td align="char" char=".">&#x2014;</td>
<td align="char" char=".">138.46</td>
<td align="char" char=".">0.06</td>
<td align="char" char=".">6.23</td>
<td align="char" char=".">0.03</td>
<td align="char" char=".">5.94</td>
<td align="char" char=".">&#x2014;</td>
</tr>
<tr>
<td align="left">&#x2003;Total <italic>T</italic> build part</td>
<td align="char" char=".">9.18</td>
<td align="char" char=".">3.51</td>
<td align="char" char=".">28.47</td>
<td align="char" char=".">1688.10</td>
<td align="char" char=".">415.79</td>
<td align="char" char=".">917.42</td>
<td align="char" char=".">0.28</td>
<td align="char" char=".">45.02</td>
<td align="char" char=".">0.05</td>
<td align="char" char=".">106.64</td>
<td align="char" char=".">1,236.80</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Summary of the experimental results for the synthetic, randomly generated data sets described in <xref ref-type="sec" rid="s5-2">Section 5.2</xref> and <xref ref-type="sec" rid="s5-3">Section 5.3</xref>. For each distribution, we sample 10 data sets each containing 100 points in ambient dimensions from 2&#x2013;10. The computation time in this table averages the 10 random samples for each dimension and distribution combination. The number of cycle representatives is totaled over the 90 samples for each distribution. The rows of this table are analogous to those of <xref ref-type="table" rid="T1">Table&#x20;1</xref>, excluding the penultimate row of that table, as the time comparison is only done for the large real-world data&#x20;sets.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left"/>
<th align="center">Normal</th>
<th align="center">Gamma</th>
<th align="center">Logistic</th>
<th align="center">Exponential</th>
<th align="center">Erd&#x151;s-R&#xe9;nyi</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">&#x2003;Ambient dimension</td>
<td align="char" char=".">2&#x2013;10</td>
<td align="char" char=".">2&#x2013;10</td>
<td align="char" char=".">2&#x2013;10</td>
<td align="char" char=".">2&#x2013;10</td>
<td align="char" char=".">NA</td>
</tr>
<tr>
<td align="left">&#x2003;&#x23; Points</td>
<td align="char" char=".">100</td>
<td align="char" char=".">100</td>
<td align="char" char=".">100</td>
<td align="char" char=".">100</td>
<td align="char" char=".">100</td>
</tr>
<tr>
<td align="left">&#x2003;Total &#x23; representatives</td>
<td align="char" char=".">4,815</td>
<td align="char" char=".">3,706</td>
<td align="char" char=".">4,456</td>
<td align="char" char=".">3,788</td>
<td align="char" char=".">34,214</td>
</tr>
<tr>
<td align="left">&#x2003;Average <inline-formula id="inf945">
<mml:math id="m989">
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi mathvariant="normal">persistence</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (seconds)</td>
<td align="char" char=".">2.80</td>
<td align="char" char=".">2.12</td>
<td align="char" char=".">2.01</td>
<td align="char" char=".">2.63</td>
<td align="char" char=".">2.20</td>
</tr>
<tr>
<td colspan="6" align="left">
<bold>Edge-loss persistent homological cycle representatives (<xref ref-type="disp-formula" rid="e14">Eq. 14)</xref>
</bold>
</td>
</tr>
<tr>
<td align="left">&#x2003;Average total <inline-formula id="inf946">
<mml:math id="m990">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">5.52</td>
<td align="char" char=".">6.01</td>
<td align="char" char=".">5.65</td>
<td align="char" char=".">5.91</td>
<td align="char" char=".">5.99</td>
</tr>
<tr>
<td align="left">&#x2003;Average total <inline-formula id="inf947">
<mml:math id="m991">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">4.37</td>
<td align="char" char=".">4.55</td>
<td align="char" char=".">4.32</td>
<td align="char" char=".">4.47</td>
<td align="char" char=".">4.99</td>
</tr>
<tr>
<td align="left">&#x2003;Average total <inline-formula id="inf948">
<mml:math id="m948">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">5.31</td>
<td align="char" char=".">5.97</td>
<td align="char" char=".">5.45</td>
<td align="char" char=".">5.90</td>
<td align="char" char=".">6.16</td>
</tr>
<tr>
<td align="left">&#x2003;Average total <inline-formula id="inf949">
<mml:math id="m993">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">4.08</td>
<td align="char" char=".">4.58</td>
<td align="char" char=".">4.23</td>
<td align="char" char=".">4.51</td>
<td align="char" char=".">4.87</td>
</tr>
<tr>
<td colspan="6" align="left">
<bold>Edge-loss filtered homological cycle representatives (<xref ref-type="disp-formula" rid="e8">Eq. 8)</xref>
</bold>
</td>
</tr>
<tr>
<td align="left">&#x2003;Average total <inline-formula id="inf950">
<mml:math id="m994">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">5.32</td>
<td align="char" char=".">6.46</td>
<td align="char" char=".">6.27</td>
<td align="char" char=".">6.88</td>
<td align="char" char=".">7.44</td>
</tr>
<tr>
<td align="left">&#x2003;Average total <inline-formula id="inf951">
<mml:math id="m995">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">4.07</td>
<td align="char" char=".">5.05</td>
<td align="char" char=".">4.78</td>
<td align="char" char=".">5.11</td>
<td align="char" char=".">4.69</td>
</tr>
<tr>
<td align="left">&#x2003;Average total <inline-formula id="inf952">
<mml:math id="m996">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">5.23</td>
<td align="char" char=".">6.46</td>
<td align="char" char=".">6.25</td>
<td align="char" char=".">6.66</td>
<td align="char" char=".">6.25</td>
</tr>
<tr>
<td align="left">&#x2003;Average total <inline-formula id="inf953">
<mml:math id="m997">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">4.17</td>
<td align="char" char=".">4.94</td>
<td align="char" char=".">4.61</td>
<td align="char" char=".">5.29</td>
<td align="char" char=".">4.64</td>
</tr>
<tr>
<td colspan="6" align="left">
<bold>Triangle-loss persistent homological cycle representatives (<xref ref-type="disp-formula" rid="e15">Eq. 15)</xref>
</bold>
</td>
</tr>
<tr>
<td align="left">&#x2003;Average total <inline-formula id="inf954">
<mml:math id="m998">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">6.56</td>
<td align="char" char=".">9.91</td>
<td align="char" char=".">7.06</td>
<td align="char" char=".">9.68</td>
<td align="char" char=".">4.64</td>
</tr>
<tr>
<td align="left">&#x2003;Average total <inline-formula id="inf955">
<mml:math id="m999">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">5.24</td>
<td align="char" char=".">7.99</td>
<td align="char" char=".">5.79</td>
<td align="char" char=".">7.75</td>
<td align="char" char=".">4.49</td>
</tr>
<tr>
<td align="left">&#x2003;Average total <inline-formula id="inf956">
<mml:math id="m1000">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2010;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>Area</mml:mtext>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">6.59</td>
<td align="char" char=".">10.20</td>
<td align="char" char=".">7.30</td>
<td align="char" char=".">9.99</td>
<td align="char" char=".">&#x2014;</td>
</tr>
<tr>
<td align="left">&#x2003;Average total <inline-formula id="inf957">
<mml:math id="m1001">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mtext>Area</mml:mtext>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">5.19</td>
<td align="char" char=".">7.89</td>
<td align="char" char=".">5.80</td>
<td align="char" char=".">7.57</td>
<td align="char" char=".">&#x2014;</td>
</tr>
<tr>
<td align="left">&#x2003;Average total <italic>T</italic> build all</td>
<td align="char" char=".">1.40</td>
<td align="char" char=".">1.71</td>
<td align="char" char=".">1.56</td>
<td align="char" char=".">1.07</td>
<td align="char" char=".">1.24</td>
</tr>
<tr>
<td align="left">&#x2003;Average total <italic>T</italic> build part</td>
<td align="char" char=".">3.51</td>
<td align="char" char=".">1.54</td>
<td align="char" char=".">1.61</td>
<td align="char" char=".">1.56</td>
<td align="char" char=".">0.85</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Computation time of three differently sized input boundary matrices to edge-loss and triangle-loss methods. The superscripts denote whether the program requires an integral solution or not, and the subscripts indicate the type of optimal cycle. All time is measured in seconds. We perform experiments on a small-sized data set (<bold>Senate</bold>) that consists of 103 points in dimension 60 and a medium-sized data set (<bold>House</bold>) that contains 445 points in dimension 261. For edge-loss methods, we consider three implementations to solve these optimization problems: using the full boundary matrix <inline-formula id="inf958">
<mml:math id="m1002">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, using the basis columns and all rows <inline-formula id="inf959">
<mml:math id="m1003">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mo>:</mml:mo>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and using the basis columns and deleting rows corresponding to edges born after the birth time of the cycle <inline-formula id="inf960">
<mml:math id="m1004">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. For triangle-loss methods, we consider three approaches to solve these optimization problems: zeroing out the columns in the boundary matrix outside of <inline-formula id="inf961">
<mml:math id="m1005">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> denoted as <inline-formula id="inf962">
<mml:math id="m1006">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>o</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, deleting columns outside of this range <inline-formula id="inf963">
<mml:math id="m1007">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mo>:</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and deleting both columns outside of <inline-formula id="inf964">
<mml:math id="m1008">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and rows born after <inline-formula id="inf965">
<mml:math id="m1009">
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denoted <inline-formula id="inf966">
<mml:math id="m1010">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. The <bold>House</bold> data set was too large to implement the first method.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th rowspan="2" align="left"/>
<th colspan="4" align="center">Edge-loss Optimal Cycles (<xref ref-type="disp-formula" rid="e14">Eq. 14</xref>
<bold>)</bold>
</th>
</tr>
<tr>
<th align="center">T</th>
<th align="center">
<inline-formula id="inf967">
<mml:math id="m1011">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
<th align="center">
<inline-formula id="inf968">
<mml:math id="m1012">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mo>:</mml:mo>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
<th align="center">
<inline-formula id="inf969">
<mml:math id="m1013">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x211b;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td rowspan="4" align="left">Small Data Set (Senate)</td>
<td align="center">
<inline-formula id="inf970">
<mml:math id="m1014">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">1.06</td>
<td align="char" char=".">1.03</td>
<td align="char" char=".">0.41</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf971">
<mml:math id="m1015">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">1.25</td>
<td align="char" char=".">1.23</td>
<td align="char" char=".">0.60</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf972">
<mml:math id="m1016">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">1.05</td>
<td align="char" char=".">1.05</td>
<td align="char" char=".">0.41</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf973">
<mml:math id="m1017">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">1.23</td>
<td align="char" char=".">1.19</td>
<td align="char" char=".">0.65</td>
</tr>
<tr>
<td rowspan="4" align="left">Medium Data Set (House)</td>
<td align="center">
<inline-formula id="inf974">
<mml:math id="m1018">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">184.70</td>
<td align="char" char=".">122.72</td>
<td align="char" char=".">47.10</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf975">
<mml:math id="m1019">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">188.88</td>
<td align="char" char=".">147.27</td>
<td align="char" char=".">64.64</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf976">
<mml:math id="m1020">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">184.41</td>
<td align="char" char=".">121.80</td>
<td align="char" char=".">46.02</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf977">
<mml:math id="m1021">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">193.01</td>
<td align="char" char=".">146.46</td>
<td align="char" char=".">63.87</td>
</tr>
<tr>
<td align="char" char=".">
</td>
<td colspan="4" align="center">
<bold>Triangle-loss Optimal Cycles (<xref ref-type="disp-formula" rid="e15">Eq. 15</xref>)</bold>
</td>
</tr>
<tr>
<td/>
<td align="center">
<bold>T</bold>
</td>
<td align="center">
<inline-formula id="inf978">
<mml:math id="m1022">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x2202;</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mi mathvariant="bold-italic">z</mml:mi>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi mathvariant="bold-italic">o</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">
<inline-formula id="inf979">
<mml:math id="m1023">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mo>:</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">
<inline-formula id="inf980">
<mml:math id="m1024">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:msub>
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td rowspan="2" align="left">Small Data Set (Senate)</td>
<td align="center">
<inline-formula id="inf981">
<mml:math id="m1025">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">21.37</td>
<td align="char" char=".">0.64</td>
<td align="char" char=".">0.18</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf982">
<mml:math id="m1026">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">24.51</td>
<td align="char" char=".">0.86</td>
<td align="char" char=".">0.29</td>
</tr>
<tr>
<td rowspan="2" align="left">Medium Data Set (House)</td>
<td align="center">
<inline-formula id="inf983">
<mml:math id="m1027">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">&#x2014;</td>
<td align="char" char=".">297.34</td>
<td align="char" char=".">203.63</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf984">
<mml:math id="m1028">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">&#x2014;</td>
<td align="char" char=".">321.31</td>
<td align="char" char=".">234.05</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s6-2-2">
<title>6.2.2 Triangle-Loss Optimal Cycles</title>
<p>As discussed in <xref ref-type="sec" rid="s4-4">Section 4.4</xref>, there are also multiple approaches to creating the input to the triangle-loss problems. To recap, we restrict the boundary matrix <inline-formula id="inf604">
<mml:math id="m642">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to&#x20;<inline-formula id="inf605">
<mml:math id="m643">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> for a particular cycle representative <inline-formula id="inf606">
<mml:math id="m644">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. We can do so in various ways: 1) zeroing out the columns of <inline-formula id="inf607">
<mml:math id="m645">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> not in <inline-formula id="inf608">
<mml:math id="m646">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> but maintaining the original size of the boundary matrix, 2a) building the entire boundary matrix <inline-formula id="inf609">
<mml:math id="m647">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> once and then deleting the columns not in <inline-formula id="inf610">
<mml:math id="m648">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> for each representative, 2b) building the columns in <inline-formula id="inf611">
<mml:math id="m649">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> iteratively for each representative, and 3a/b) in conjunction with 2a) or 2b) respectively, reducing the rows of the boundary matrix of <inline-formula id="inf612">
<mml:math id="m650">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to only include the rows born before the death time of the cycle <inline-formula id="inf613">
<mml:math id="m651">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>In <xref ref-type="table" rid="T3">Table&#x20;3</xref>, we summarize the computation time of solving Programs <inline-formula id="inf614">
<mml:math id="m652">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Tri</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf615">
<mml:math id="m653">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Tri</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> to find triangle-loss optimal cycles with three different sized boundary matrices as input: 1) zeroing out, 2b) deleting partial columns, and 3b) deleting partial rows and columns. Note that 2a) and 2b) both result in&#x20;the same boundary matrix <inline-formula id="inf616">
<mml:math id="m654">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mo>:</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. We again use the <bold>Senate</bold> and <bold>House</bold> data sets for analysis. We see that deleting partial rows and columns is the most efficient among the three implementations, which again matches intuition that reducing the number of variables accelerates the optimization problem.</p>
<p>We also ran experiments on the real-world data sets to compare the timing of building <inline-formula id="inf617">
<mml:math id="m655">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> via methods 3a) and 3b) and summarize the results in the last two rows of <xref ref-type="table" rid="T1">Table&#x20;1</xref>. We find that approach 3a), where we build the entire matrix <inline-formula id="inf618">
<mml:math id="m656">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and then delete columns for each cycle representative, is in general faster than approach 3b), where the boundary matrix <inline-formula id="inf619">
<mml:math id="m657">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x2131;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is iteratively built for each representative. However, this latter approach can be more useful for large data sets, whose full boundary matrix <inline-formula id="inf620">
<mml:math id="m658">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> might be too large to construct. For example, building the full boundary matrix for the <bold>Genome</bold> data set caused Julia to crash due to the large number of 2-simplices (<inline-formula id="inf621">
<mml:math id="m659">
<mml:mrow>
<mml:mn>453,424,290</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> triangles for the <bold>Genome</bold> data set and <inline-formula id="inf622">
<mml:math id="m660">
<mml:mrow>
<mml:mn>3,357,641,440</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> triangles for the <bold>H3N2</bold> data set). Whereas, by implenting 3b) where we rebuild a part of the boundary matrix for each representative, we were able to optimize 115 out of the 117 cycle representatives for the <bold>Genome</bold> data set and 52 of 57 cycle representatives for the <bold>H3N2</bold> data&#x20;set.</p>
</sec>
</sec>
<sec id="s6-3">
<title>6.3 Coefficients of Optimal Cycle Representatives in Data Sets From <xref ref-type="sec" rid="s5-1">Section&#x20;5.1</xref> <bold>and</bold> <xref ref-type="sec" rid="s5-2">Section&#x20;5.2</xref>
</title>
<p>As discussed in <xref ref-type="sec" rid="s3-6">Section 3.6</xref>, the problem of solving an <inline-formula id="inf623">
<mml:math id="m661">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimization is desirable for its interpretability but doing so is NP-hard (<xref ref-type="bibr" rid="B53">Tahbaz-Salehi and Jadbabaie, 2010</xref>). Often, <inline-formula id="inf624">
<mml:math id="m662">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimization is approximated by an <inline-formula id="inf625">
<mml:math id="m663">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimization problem, which is solvable in polynomial time. If the coefficients of a solution of the <inline-formula id="inf626">
<mml:math id="m664">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> problem are in <inline-formula id="inf627">
<mml:math id="m665">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1,0,1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, then it is in fact an <inline-formula id="inf628">
<mml:math id="m666">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> solution to the restricted optimization problem where we require solutions to have entries in <inline-formula id="inf629">
<mml:math id="m667">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1,0,1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> (<xref ref-type="bibr" rid="B25">Escolar and Hiraoka, 2016</xref>; <xref ref-type="bibr" rid="B44">Obayashi, 2018</xref>).</p>
<p>We find that <inline-formula id="inf630">
<mml:math id="m668">
<mml:mrow>
<mml:mn>99.50</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the original, unoptimized cycle representatives obtained from data sets described in <xref ref-type="sec" rid="s5-1">Section 5.1</xref> and <inline-formula id="inf631">
<mml:math id="m669">
<mml:mrow>
<mml:mn>99.91</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the unoptimized cycle representatives obtained from data sets described in <xref ref-type="sec" rid="s5-2">Section 5.2</xref> have coefficients in <inline-formula id="inf632">
<mml:math id="m670">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1,0,1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. All unoptimized cycle representatives turned out to have integral entries.</p>
<p>We then systematically check each solution of the eight programs <inline-formula id="inf633">
<mml:math id="m671">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf634">
<mml:math id="m672">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf635">
<mml:math id="m673">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf636">
<mml:math id="m674">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf637">
<mml:math id="m675">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Tri</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf638">
<mml:math id="m676">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Tri</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf639">
<mml:math id="m677">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Tri</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf640">
<mml:math id="m678">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Tri</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> across all data sets and all optimal cycle representatives from data discussed in <xref ref-type="sec" rid="s5-1">Sections 5.1</xref> and <xref ref-type="sec" rid="s5-2">5.2</xref>,<xref ref-type="fn" rid="fn17">
<sup>17</sup>
</xref> found by <xref ref-type="other" rid="alg1">Algorithms 1</xref>, <xref ref-type="other" rid="alg2">2</xref> and the program in <xref ref-type="disp-formula" rid="e8">Eq. 8</xref> to see if the coefficients are integral or in <inline-formula id="inf641">
<mml:math id="m679">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1,0,1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. We analyze the <inline-formula id="inf642">
<mml:math id="m680">
<mml:mrow>
<mml:mn>18,163</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> optimal cycle representatives and find the following consistent results.</p>
<p>All optimal solutions to the program in <xref ref-type="disp-formula" rid="e8">Eq. 8</xref> (edge-loss minimization of filtered cycle bases) and all but one of the solutions returned by <xref ref-type="other" rid="alg1">Algorithm 1</xref> (edge-loss minimization of persistent cycle bases) had coefficients in <inline-formula id="inf643">
<mml:math id="m681">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1,0,1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>; see the table in&#x20;the <xref ref-type="sec" rid="s12">Supplementary Material</xref> for details. The exceptional representative <inline-formula id="inf644">
<mml:math id="m682">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> occurred in the <bold>C.elegans</bold> data set, with coefficients in <inline-formula id="inf645">
<mml:math id="m683">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>0.5</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>0,0.5</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. It corresponds to one of only a few cases where two intervals with equal birth and death time occur within the same data set; see <xref ref-type="sec" rid="s6-6">Section 6.6</xref>. An interesting consequence of these fractional coefficients is that here, unlike all other cycle representatives from data discussed in <xref ref-type="sec" rid="s5-1">Section 5.1</xref> and <xref ref-type="sec" rid="s5-2">Section 5.2</xref>, the <inline-formula id="inf646">
<mml:math id="m684">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> norm and <inline-formula id="inf647">
<mml:math id="m685">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> norm differ. This accounts for the sole point that lies below the <inline-formula id="inf648">
<mml:math id="m686">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> line in the first column of row (B) in <xref ref-type="fig" rid="F8">Figure&#x20;8</xref>.</p>
<p>On the one hand, this exceptional behavior could bear some&#x20;connection to <xref ref-type="other" rid="alg1">Algorithm 1</xref>. Recall that <xref ref-type="other" rid="alg1">Algorithm 1</xref> operates by removing a sequence of cycles from a cycle basis, replacing each cycle with a new, optimized cycle on each iteration (that is, we swap the <inline-formula id="inf649">
<mml:math id="m687">
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> element of <inline-formula id="inf650">
<mml:math id="m688">
<mml:mrow>
<mml:msup>
<mml:mi>Z</mml:mi>
<mml:mi>j</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> with an optimized cycle <inline-formula id="inf651">
<mml:math id="m689">
<mml:mi mathvariant="bold">x</mml:mi>
</mml:math>
</inline-formula> in order to produce <inline-formula id="inf652">
<mml:math id="m690">
<mml:mrow>
<mml:msup>
<mml:mi>Z</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>). Replacing optimized cycles in the basis is key, since without replacement it would be possible in theory to get a set of optimized cycles that no longer form a basis. We verified that if we modify <xref ref-type="other" rid="alg1">Algorithm 1</xref> to skip the replacement step, we achieve <inline-formula id="inf653">
<mml:math id="m691">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1,0,1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> solutions for the exceptional <bold>C.elegans</bold> cycle representative (for the other repeated intervals we obtain the same optimal cycle with and without the replacement). On the other hand, we find that even with replacement the GLPK solver obtains a solution with coefficients in <inline-formula id="inf654">
<mml:math id="m692">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1,0,1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Thus, every one of the cases considered produced <inline-formula id="inf655">
<mml:math id="m693">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1,0,1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> coefficients for at least one of the two solvers, and the appearance of fractional coefficients may be naturally tied to the specific implementation of the solver&#x20;used.</p>
<p>When solving the integral triangle-loss problem by <xref ref-type="other" rid="alg2">Algorithm 2</xref>, we obtain two solutions whose boundaries x &#x003D; &#x2202;<sub>2</sub>
<bold>v</bold> have coefficients in {-1,0,1,2} for two different cycle representatives from the logistic distribution data set. However, the corresponding solutions <bold>v</bold> of these cycle representatives do have coefficients in {-1,0,1}.</p>
<p>The surprising predominance of solutions in <inline-formula id="inf656">
<mml:math id="m694">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1,0,1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> suggests that in most cases, the modeler can reap both the computational advantage of <inline-formula id="inf657">
<mml:math id="m695">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> solutions and the theoretical and interpretability advantages of <inline-formula id="inf658">
<mml:math id="m696">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> solutions<xref ref-type="fn" rid="fn18">
<sup>18</sup>
</xref> by solving an <inline-formula id="inf659">
<mml:math id="m697">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimization problem. Further, we find that the optimum cost is the same whether we require an integer solution or not&#x20;for more than <inline-formula id="inf660">
<mml:math id="m698">
<mml:mrow>
<mml:mn>99.97</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of solutions to Program Edge<sub>
<italic>Len</italic>
</sub>, <inline-formula id="inf662">
<mml:math id="m700">
<mml:mrow>
<mml:mn>100</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of solutions to <inline-formula id="inf663">
<mml:math id="m701">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>Edge</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf664">
<mml:math id="m702">
<mml:mrow>
<mml:mn>100</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of solutions to <inline-formula id="inf665">
<mml:math id="m703">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>Tri</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. Thus, the modeler can drop the integral constraint to save computation time while still being able to achieve an integral solution in most&#x20;cases.</p>
</sec>
<sec id="s6-4">
<title>6.4 Comparing Optimal Cycle Representatives Against Different Loss Functions</title>
<p>We compare the optimal cycle representatives against different loss functions to study the extent to which the solutions produced by each technique vary. We consider two loss functions on an <inline-formula id="inf666">
<mml:math id="m704">
<mml:mrow>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> cycle representative <inline-formula id="inf667">
<mml:math id="m705">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>:<disp-formula id="equ24">
<mml:math id="m706">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munder>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>supp</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:munder>
<mml:mrow>
<mml:mtext>Length</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mstyle>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>where <inline-formula id="inf668">
<mml:math id="m707">
<mml:mrow>
<mml:mtext>Length</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the distance&#x2014;as designated by the metric <italic>d</italic> used to define the VR complex&#x2014;between the two vertices of a 1-simplex &#x3c3;, and<disp-formula id="equ25">
<mml:math id="m708">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x2016;</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2016;</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:mtext>supp</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>the number of 1-simplices (edges) in a representative.</p>
<p>We also consider two loss functions on 2-chains <inline-formula id="inf669">
<mml:math id="m709">
<mml:mrow>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, namely area-weighted loss:<disp-formula id="equ26">
<mml:math id="m710">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>A</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munder>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mtext>supp</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:munder>
<mml:mrow>
<mml:mtext>Area</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mstyle>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>where <inline-formula id="inf670">
<mml:math id="m711">
<mml:mrow>
<mml:mtext>Area</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the area of a 2-simplex as computed by Heron&#x2019;s Formula, and uniform-weighted loss<disp-formula id="equ27">
<mml:math id="m712">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x2016;</mml:mo>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>&#x2016;</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:mtext>supp</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>
<statement>
<p>
<xref ref-type="sec" rid="s6-1">Remark 6.1.</xref> These weighted <inline-formula id="inf671">
<mml:math id="m713">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> loss functions differ from the objective functions used in the optimization problems presented in <xref ref-type="sec" rid="s4">Section 4</xref>, which measure weighted <inline-formula id="inf672">
<mml:math id="m714">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> norm. However, weighted <inline-formula id="inf673">
<mml:math id="m715">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> norm and weighted <inline-formula id="inf674">
<mml:math id="m716">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> norm agree on solutions with <inline-formula id="inf675">
<mml:math id="m717">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1,0,1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> coefficients, and (as reported in <xref ref-type="sec" rid="s6-3">Section 6.3</xref>) nearly all cycle representatives for <xref ref-type="sec" rid="s5-1">Sections 5.1</xref> and <xref ref-type="sec" rid="s5-2">5.2</xref> data satisfy this condition, both pre- and post-optimization.</p>
<p>In the special case where <inline-formula id="inf676">
<mml:math id="m718">
<mml:mrow>
<mml:mtext>supp</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> determines a simple closed polygonal curve <italic>c</italic> with vertices <inline-formula id="inf677">
<mml:math id="m719">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi>q</mml:mi>
<mml:mn>1</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>p</mml:mi>
<mml:mi>n</mml:mi>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi>q</mml:mi>
<mml:mi>n</mml:mi>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="normal">&#x211d;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, we also use the Surveyor&#x2019;s Area Formula (<xref ref-type="bibr" rid="B7">Braden, 1986</xref>) to quantify area of <bold>X</bold> as<disp-formula id="equ28">
<mml:math id="m720">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>r</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>A</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>c</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
<mml:mrow>
<mml:msup>
<mml:mi>p</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
<mml:msup>
<mml:mi>q</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2010;</mml:mo>
<mml:msup>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mi>q</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>where, by convention, <inline-formula id="inf678">
<mml:math id="m721">
<mml:mrow>
<mml:msup>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf679">
<mml:math id="m722">
<mml:mrow>
<mml:msup>
<mml:mi>q</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi>q</mml:mi>
<mml:mn>1</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. We evaluate this function only when (i) the ambient point cloud of the VR complex is a subset of <inline-formula id="inf680">
<mml:math id="m723">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="normal">&#x211d;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, b) <inline-formula id="inf681">
<mml:math id="m724">
<mml:mrow>
<mml:mtext>supp</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> forms a graph-theoretic cycle when regarded as a subset of edges in the combinatorial graph formed by 1-skeleton of <italic>K</italic>, and 3) no pair of distinct closed line segments intersect one another.</p>
<p>&#x2003;In the case when we compute the loss function of a corresponding optimal solution, we use the notation for the cost <inline-formula id="inf682">
<mml:math id="m725">
<mml:mrow>
<mml:msubsup>
<mml:mi>C</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> to an edge-loss problem that finds optimal solution <inline-formula id="inf683">
<mml:math id="m726">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf684">
<mml:math id="m727">
<mml:mrow>
<mml:msubsup>
<mml:mi>C</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:mo>:</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> to a triangle-loss problem that finds optimal solution <inline-formula id="inf685">
<mml:math id="m728">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>. For instance, <inline-formula id="inf686">
<mml:math id="m729">
<mml:mrow>
<mml:msubsup>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. We will also compute the loss functions of optimal solutions from differing optimizations. For instance, <inline-formula id="inf687">
<mml:math id="m730">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and in that case, we do not use the <inline-formula id="inf688">
<mml:math id="m731">
<mml:mrow>
<mml:msubsup>
<mml:mi>C</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> notation.</p>
<p>&#x2003;<xref ref-type="fig" rid="F7">Figure&#x20;7</xref> shows an example of various optimal cycle representatives obtained from Programs Edge<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Unif</italic>
</sub>, Edge<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Len</italic>
</sub>, Tri<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Unif</italic>
</sub>, and Tri<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Area</italic>
</sub> on an example point cloud drawn from the normal distribution in <inline-formula id="inf693">
<mml:math id="m736">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="normal">&#x211d;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. In this example, solutions obtained from <xref ref-type="other" rid="alg1">Algorithm 1</xref> and the program in <xref ref-type="disp-formula" rid="e8">Eq. 8</xref> are the same. Each subfigure is labeled by program in the upper left corner. The values of different loss functions evaluated on each optimal representative appear in the upper right corner. We do not compute <inline-formula id="inf694">
<mml:math id="m737">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> or <inline-formula id="inf695">
<mml:math id="m738">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>A</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> of the optimal edge-loss minimal cycle representatives, as no bounding 2-chain for this 1-cycle is specified in the optimization.<xref ref-type="fn" rid="fn19">
<sup>19</sup>
</xref> We observe that various notions of optimality lead to differing cycle representatives, yet each solution to an optimization problem minimizes the loss function it is intended to optimize. This will not always be the case, as we will see momentarily.</p>
<p>&#x2003;<xref ref-type="fig" rid="F8">Figure&#x20;8</xref> reports ratios on the losses <inline-formula id="inf696">
<mml:math id="m739">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf697">
<mml:math id="m740">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf698">
<mml:math id="m741">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>r</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>A</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
<xref ref-type="fn" rid="fn20">
<sup>20</sup>
</xref> for the eight <inline-formula id="inf699">
<mml:math id="m742">
<mml:mrow>
<mml:mtext>PrsHCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> optimization problems detailed in <xref ref-type="sec" rid="s4">Section 4</xref> as well as the four edge-loss <inline-formula id="inf700">
<mml:math id="m743">
<mml:mrow>
<mml:mtext>FCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> problems from the program in <xref ref-type="disp-formula" rid="e8">Eq. 8</xref>, evaluated on the data from <xref ref-type="sec" rid="s5-1">Sections 5.1</xref> and <xref ref-type="sec" rid="s5-2">5.2</xref>. These ratios suggest that the uniform-weighted and length-weighted edge-loss cycles do minimize what they set out to&#x20;minimize, namely, the number of edges and the total&#x20;length, respectively. We also observe that intuitively the&#x20;less-constrained solutions to the <inline-formula id="inf701">
<mml:math id="m744">
<mml:mrow>
<mml:mtext>FCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> program in <xref ref-type="disp-formula" rid="e8">Eq. 8</xref> can have a lower cost than the more-constrained solutions to the <inline-formula id="inf702">
<mml:math id="m745">
<mml:mrow>
<mml:mtext>PrsHCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> program in <xref ref-type="disp-formula" rid="e14">Eq. 14</xref>.</p>
<p>&#x2003;We also see that the edge-loss-minimal cycles have similar loss in terms of length and number of edges (<inline-formula id="inf703">
<mml:math id="m746">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf704">
<mml:math id="m747">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>) whereas the triangle-loss-minimal cycles can have larger losses&#x20;(<inline-formula id="inf705">
<mml:math id="m748">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf706">
<mml:math id="m749">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>). We find that <inline-formula id="inf707">
<mml:math id="m750">
<mml:mrow>
<mml:mn>63.28</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the <inline-formula id="inf708">
<mml:math id="m751">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> minimal cycle representatives are also <inline-formula id="inf709">
<mml:math id="m752">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> minimal while <inline-formula id="inf710">
<mml:math id="m753">
<mml:mrow>
<mml:mn>99.66</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the <inline-formula id="inf711">
<mml:math id="m754">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> minimal cycle representatives are also <inline-formula id="inf712">
<mml:math id="m755">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> minimal across all cycle representatives from all data sets for <inline-formula id="inf713">
<mml:math id="m756">
<mml:mrow>
<mml:mtext>PrsHCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> cycles. Similarly, we find that <inline-formula id="inf714">
<mml:math id="m757">
<mml:mrow>
<mml:mn>61.31</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the <inline-formula id="inf715">
<mml:math id="m758">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> minimal cycle representatives are also <inline-formula id="inf716">
<mml:math id="m759">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> minimal while <inline-formula id="inf717">
<mml:math id="m760">
<mml:mrow>
<mml:mn>99.32</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the <inline-formula id="inf718">
<mml:math id="m761">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> minimal cycle representatives are also <inline-formula id="inf719">
<mml:math id="m762">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> minimal across all cycle representatives from all data sets for <inline-formula id="inf720">
<mml:math id="m763">
<mml:mrow>
<mml:mtext>FCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> cycles. This suggests that modelers can often use the length-weighted minimal cycle to substitute the uniform-weighted minimal cycle. However, the triangle-loss cycles can potentially provide very different results.</p>
<p>&#x2003;Counterintuitively, the <inline-formula id="inf721">
<mml:math id="m764">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>A</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimal cycle representative might not be the representative that encloses the smallest surveyor&#x2019;s area. As shown in <xref ref-type="fig" rid="F8">Figure&#x20;8</xref>, we observe that <inline-formula id="inf722">
<mml:math id="m765">
<mml:mrow>
<mml:mn>15.55</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of <inline-formula id="inf723">
<mml:math id="m766">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf724">
<mml:math id="m767">
<mml:mrow>
<mml:mn>13.14</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of <inline-formula id="inf725">
<mml:math id="m768">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf726">
<mml:math id="m769">
<mml:mrow>
<mml:mn>23.59</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of <inline-formula id="inf727">
<mml:math id="m770">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf728">
<mml:math id="m771">
<mml:mrow>
<mml:mn>23.59</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of <inline-formula id="inf729">
<mml:math id="m772">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> for the cycles from PrsHCB using the program in <xref ref-type="disp-formula" rid="e14">Eq. 14</xref> have an area smaller than that of the triangle-loss area-weighted optimal cycle <bold>x</bold>
<sup>
<italic>NI</italic>
</sup>&#xa0;<sub>
<italic>T-Area</italic>
</sub>. Similarly, <inline-formula id="inf731">
<mml:math id="m774">
<mml:mrow>
<mml:mn>15.55</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of <inline-formula id="inf732">
<mml:math id="m775">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf733">
<mml:math id="m776">
<mml:mrow>
<mml:mn>12.87</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of <inline-formula id="inf734">
<mml:math id="m777">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf735">
<mml:math id="m778">
<mml:mrow>
<mml:mn>24.53</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of <inline-formula id="inf736">
<mml:math id="m779">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf737">
<mml:math id="m780">
<mml:mrow>
<mml:mn>24.53</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of <inline-formula id="inf738">
<mml:math id="m781">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> for the cycles from FCB using the program in <xref ref-type="disp-formula" rid="e8">Eq. 8</xref> have an area smaller than that of the triangle-loss area-weighted optimal cycle <bold>x</bold>
<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>T-Area</italic>
</sub>. Lastly, 3.22% of <inline-formula id="inf742">
<mml:math id="m785">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, 2.81% of <inline-formula id="inf992">
<mml:math id="m992">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, and 2.95% of <bold>x</bold>
<sup>
<italic>I</italic>
</sup>
<sub>
<italic>T-Area</italic>
</sub> for the cycles found using the program in <xref ref-type="disp-formula" rid="e15">Eq. 15</xref> have an area smaller than that of the triangle-loss area-weighted optimal cycle <bold>x</bold>
<sup>
<italic>NI</italic>
</sup>&#xa0;<sub>
<italic>T-Area</italic>
</sub>.</p>
<p>&#x2003;In <xref ref-type="fig" rid="F9">Figure&#x20;9</xref>, we provide an example illustrating why the triangle-loss area-weighted optimal cycle, solving Programs Tri<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Area</italic>
</sub>, or Tri<sup>
<italic>I</italic>
</sup>
<sub>
<italic>Area</italic>
</sub>, might not be the cycle that encloses the smallest surveyor&#x2019;s area. Another reason why the area-weighted triangle-loss cycles could have a larger enclosed area is that in the optimization problems, the loss function is the sum of the&#x20;triangles the cycle bounds, not the real enclosed area. Therefore, the area-weighted triangle-loss cycle will have the optimal area-weighted optimal cost, but not necessarily the smallest enclosed&#x20;area.</p>
</statement>
</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Examples of different optimal cycles and cost against different loss functions using a point cloud of 100 points with ambient dimension two randomly drawn from a normal distribution. The upper left corner of each subfigure labels the optimization algorithm used to optimize the original cycle representative. The upper right corner of each subfigure records the different measures of the size of the optimal representative. Blue text represents the measure an algorithm sets out to optimize.</p>
</caption>
<graphic xlink:href="frai-04-681117-g007.tif"/>
</fig>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Box plots of the ratios between <bold>(A)</bold> <inline-formula id="inf745">
<mml:math id="m788">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf746">
<mml:math id="m789">
<mml:mrow>
<mml:msubsup>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> <bold>(B)</bold> <inline-formula id="inf747">
<mml:math id="m790">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf748">
<mml:math id="m791">
<mml:mrow>
<mml:msubsup>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, and <bold>(C)</bold> <inline-formula id="inf749">
<mml:math id="m792">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>r</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>A</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf750">
<mml:math id="m793">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>r</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>A</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>A</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Within each row, the denominator is fixed across all three columns, and corresponds to the <inline-formula id="inf751">
<mml:math id="m794">
<mml:mrow>
<mml:mtext>PrsHCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> cycles which are solutions to Programs <inline-formula id="inf752">
<mml:math id="m795">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> row <bold>(A)</bold>, <inline-formula id="inf753">
<mml:math id="m796">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> row <bold>(B)</bold>, or <inline-formula id="inf754">
<mml:math id="m797">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Tri</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> row <bold>(C)</bold>. The horizontal axis of each subplot is the type of optimal representative. The cost of the optimal solutions to the programs in <xref ref-type="disp-formula" rid="e8">Eqs 8</xref>, <xref ref-type="disp-formula" rid="e14">14</xref>, and Program <inline-formula id="inf755">
<mml:math id="m798">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Tri</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> was equal regardless of the presence of an integer constraint in nearly all examples (as discussed in <xref ref-type="sec" rid="s6-3">Section 6.3</xref>), resulting in two columns in each row having ratio 1. The data used in <bold>(A)</bold> and <bold>(B)</bold> aggregate over all cycle representatives from data described in <xref ref-type="sec" rid="s5-1">Sections 5.1</xref> and <xref ref-type="sec" rid="s5-2">5.2</xref>. The data used in <bold>(C)</bold> aggregate the 746 cycle representatives from 40 point clouds with ambient dimension of two from data described in <xref ref-type="sec" rid="s5-2">Section 5.2</xref>. We observe that some edge-loss and uniform-weighted-triangle-loss optimal cycles have a surveyor&#x2019;s area strictly smaller than the denominator in row <bold>(C)</bold>; refer to <xref ref-type="fig" rid="F8">Figure&#x20;8</xref> and <xref ref-type="sec" rid="s6-4">Section 6.4</xref> to see why this may happen. It is possible for <inline-formula id="inf756">
<mml:math id="m799">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> to be strictly smaller than <inline-formula id="inf757">
<mml:math id="m800">
<mml:mrow>
<mml:msubsup>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> because the cycle <inline-formula id="inf758">
<mml:math id="m801">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> is calculated to be optimal relative to <inline-formula id="inf759">
<mml:math id="m802">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> loss, not <inline-formula id="inf760">
<mml:math id="m803">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, which is a measure of <inline-formula id="inf761">
<mml:math id="m804">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> loss. We observe this behavior in the first plot on the second row, discussed in detail in <xref ref-type="sec" rid="s6-3">Section 6.3</xref>.</p>
</caption>
<graphic xlink:href="frai-04-681117-g008.tif"/>
</fig>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>An example illustrating when the area enclosed by the triangle-loss area-weighted optimal cycle, solution to Program <inline-formula id="inf788">
<mml:math id="m831">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Tri</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, can be larger than the area enclosed by the edge-loss length-weighted minimal cycle, solution to Program <inline-formula id="inf789">
<mml:math id="m832">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> <bold>(A)</bold> is the original cycle of a representative point cloud in <inline-formula id="inf790">
<mml:math id="m833">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="normal">&#x211d;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> drawn from the normal distribution <bold>(B)</bold> is the length-weighted edge-loss optimal cycle <bold>(C)</bold> is the area-weighted triangle-loss optimal cycle, in this example, it is the same cycle as the original cycle <bold>(D)</bold> is the area-weighted minimal cycle where the blue shaded area marks the triangle born at the death time of the cycle. Constraint <xref ref-type="disp-formula" rid="e9">Eq. 9</xref> specifies that the area-weighted optimal cycle must contain the 2-simplex born at the death time of the cycle. Therefore, this cycle must contain <inline-formula id="inf791">
<mml:math id="m834">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> because it was born at the death time. The length-weighted minimal cycle does not have this constraint, and as such, can result in a smaller&#x20;area.</p>
</caption>
<graphic xlink:href="frai-04-681117-g009.tif"/>
</fig>
</sec>
<sec id="s6-5">
<title>6.5 Comparative Performance and Precision of LP Solvers</title>
<p>Our experiments demonstrate that the choice of linear solver may impact speed, frequency of obtaining integer solutions, and frequency of obtaining <inline-formula id="inf762">
<mml:math id="m805">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimal solutions. While these particular results are subject to change due to regular updates to each platform, they illustrate the degree to which these factors can&#x20;vary.</p>
<p>As discussed in <xref ref-type="sec" rid="s6-1">Section 6.1</xref>, the GLPK solver performs much slower than the Gurobi solver in an initial set of experiments. The GLPK solver also finds non-integral solutions when solving a linear programming problem in Programs <inline-formula id="inf763">
<mml:math id="m806">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf764">
<mml:math id="m807">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> more often than the Gurobi solver. On the same set of experiments as in <xref ref-type="sec" rid="s6-1">Section 6.1</xref>, when finding the <inline-formula id="inf765">
<mml:math id="m808">
<mml:mrow>
<mml:mtext>FCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> using the program in <xref ref-type="disp-formula" rid="e8">Eq.&#x20;8</xref>, <inline-formula id="inf766">
<mml:math id="m809">
<mml:mrow>
<mml:mn>9.74</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the edge-loss length-weighted minimal cycle representatives have non-integral entries, and <inline-formula id="inf767">
<mml:math id="m810">
<mml:mrow>
<mml:mn>8.32</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the edge-loss uniform-weighted minimal cycle representatives have non-integral entries when using the GLPK solver, whereas when using the Gurobi solver, 0.12% of the length-weighted minimal cycle representatives have non-integral entries, and <inline-formula id="inf769">
<mml:math id="m812">
<mml:mrow>
<mml:mn>0.04</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the uniform-weighted minimal cycle representatives have non-integral entries. For the length-weighted minimal cycle representatives, the non-integral solutions differ from an <inline-formula id="inf770">
<mml:math id="m813">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimal solution by a margin of machine error with both solvers. However, for the uniform-weighted minimal cycle representatives, the GLPK solver has <inline-formula id="inf771">
<mml:math id="m814">
<mml:mrow>
<mml:mn>1.83</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of its non-integral solutions differing from an <inline-formula id="inf772">
<mml:math id="m815">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimal solution by a margin not of machine epsilon, and the Gurobi solver has <inline-formula id="inf773">
<mml:math id="m816">
<mml:mrow>
<mml:mn>0.02</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of its non-integral solutions differing from an <inline-formula id="inf774">
<mml:math id="m817">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimal solution by a margin greater than machine epsilon. For the GLPK solver, when solving Program Edge<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Unif</italic>
</sub>, instead of finding an integral solution, it occasionally finds a solution with fractional entries that sum to 1. For example, instead of assigning an edge a coefficient of 1, it sometimes assigns two edges each with a coefficient of 0.5. In that way, the solution is still <inline-formula id="inf776">
<mml:math id="m819">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimal, but no longer <inline-formula id="inf777">
<mml:math id="m820">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimal. Thus, the choice of linear solver may affect the optimization results.</p>
</sec>
<sec id="s6-6">
<title>6.6 Statistical Properties of Optimal Cycle Representatives With Regard to Various Other Quantities of Interest</title>
<sec id="s6-6-1">
<title>6.6.1 Support of a Representative Forming a Single Loop in the Underlying Graph</title>
<p>The support of the original cycle, <inline-formula id="inf778">
<mml:math id="m821">
<mml:mrow>
<mml:mtext>supp</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2286;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, need not be a cycle in the graph-theoretic sense. Concretely, this means that the nullity, <italic>p</italic>, of column submatrix <inline-formula id="inf779">
<mml:math id="m822">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mo>:</mml:mo>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> may be strictly greater than 1. We refer to <italic>p</italic> informally as the &#x201c;number of loops&#x201d; in <inline-formula id="inf781">
<mml:math id="m824">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>We are interested in exploring how often the support of an&#x20;original cycle representative forms a single loop in the&#x20;underlying graph. We analyze each of the 360 synthetic data sets of various dimensions and distributions&#x20;discussed in <xref ref-type="sec" rid="s5-2">Section 5.2</xref> as well as the 100&#x20;Erd&#x151;s-R&#xe9;nyi random complexes discussed in <xref ref-type="sec" rid="s5-3">Section 5.3</xref> and display the results in <xref ref-type="fig" rid="F10">Figure&#x20;10</xref>. We find that the majority of the original cycle representatives have one loop. After optimizing these cycle representatives with the edge-loss methods, we verify that all <inline-formula id="inf782">
<mml:math id="m825">
<mml:mrow>
<mml:mtext>FCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf783">
<mml:math id="m826">
<mml:mrow>
<mml:mtext>PrsHCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> optimal cycles only have one loop, whereas <inline-formula id="inf784">
<mml:math id="m827">
<mml:mrow>
<mml:mn>0.13</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the triangle-loss cycles have two loops. However, we observe that <inline-formula id="inf785">
<mml:math id="m828">
<mml:mrow>
<mml:mn>91.93</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of&#x20;the&#x20;optimal cycle representatives for Erd&#x151;s-R&#xe9;nyi complexes have 1 loop, <inline-formula id="inf786">
<mml:math id="m829">
<mml:mrow>
<mml:mn>5.81</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> have two loops, and <inline-formula id="inf787">
<mml:math id="m830">
<mml:mrow>
<mml:mn>2.14</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> have more than two loops, with 15 as the maximum number of&#x20;loops.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>(Rows 1&#x2013;3) Number of loops in the original cycle representative aggregated by dimension (labeled by subfigure title) in the 360 randomly generated distribution data sets discussed in <xref ref-type="sec" rid="s5-2">Section 5.2</xref> and (Row 4) same for the Erd&#x151;s-R&#xe9;nyi random complexes discussed in <xref ref-type="sec" rid="s5-3">Section 5.3</xref>, where we bin cycle representatives that have two to five loops, 6&#x2013;10, loops, or more than 10 loops. The horizontal axis is the number of cycle representatives and the vertical axis is the number of loops in the original representative. We observe that for the distribution data, an original cycle representative can have up to 5 loops in higher dimensions, and in general, it is uncommon to find an original representative with multiple loops. However, we observe that <inline-formula id="inf793">
<mml:math id="m836">
<mml:mrow>
<mml:mn>17.47</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the cycle representatives for Erd&#x151;s-R&#xe9;nyi complexes have more than 1 loop, with a maximum number of 17 loops in a cycle representative.</p>
</caption>
<graphic xlink:href="frai-04-681117-g010.tif"/>
</fig>
<p>As shown in <xref ref-type="fig" rid="F11">Figure&#x20;11</xref> the reduction in size of the&#x20;original&#x20;cycle, formalized as <inline-formula id="inf792">
<mml:math id="m835">
<mml:mrow>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>C</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mtext>&#x2a;</mml:mtext>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, correlates closely with the reduction in the number of loops by the optimization.</p>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>Violin plot of the effectiveness of the optimization as a function of the number of loops in the original cycle representative. Results are aggregated over the data sets from <xref ref-type="sec" rid="s5-1">Section 5.1</xref> and <xref ref-type="sec" rid="s5-2">Section 5.2</xref>. The <italic>x</italic>-axis shows the size reduction in terms of number of loops, and the <italic>y</italic>-axis shows the size reduction in terms of the length of the cycle. We see that in general, the reduction in size of the original cycle mostly comes from the reduction in the number of loops by the optimization.</p>
</caption>
<graphic xlink:href="frai-04-681117-g011.tif"/>
</fig>
</sec>
<sec id="s6-6-2">
<title>6.6.2 Overall Effectiveness of Optimization <inline-formula id="inf794">
<mml:math id="m837">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mtext>&#x2a;</mml:mtext>
</mml:msubsup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>vs</mml:mtext>
<mml:mtext>.</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</title>
<p>We compare the optimal representatives against the original cycle representatives<xref ref-type="fn" rid="fn21">
<sup>21</sup>
</xref> with respect to edge-loss functions <inline-formula id="inf795">
<mml:math id="m838">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf796">
<mml:math id="m839">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. As shown in <xref ref-type="fig" rid="F12">Figure&#x20;12</xref>, we find that the optimizations are&#x20;in general effective in reducing the size of the cycle representative, especially for representatives with larger size. On each of the subfigures, the horizontal axis is the size of the original cycle representative and the vertical axis is the ratio between the loss of each optimal representative and the loss of the original representative:<disp-formula id="equ29">
<mml:math id="m840">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>C</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<fig id="F12" position="float">
<label>FIGURE 12</label>
<caption>
<p>The effectiveness of length-weighted and uniform-weighted optimization for the data sets in <xref ref-type="sec" rid="s5-1">Sections 5.1</xref> and <xref ref-type="sec" rid="s5-2">5.2</xref> in reducing the size of the original cycle representative found by the persistence algorithm. In each subfigure, the horizontal axis is the size of the original representative and the vertical axis is the ratio between the size of the optimal representative and the size of the original representative. The uniform-weighted graphs appear more sparse because reductions in the cost <inline-formula id="inf797">
<mml:math id="m841">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> can only come in multiples of the reciprocal of the original length. The node size in the uniform-weighted graphs corresponds to the number of overlapping points.</p>
</caption>
<graphic xlink:href="frai-04-681117-g012.tif"/>
</fig>
<p>The average ratio <inline-formula id="inf798">
<mml:math id="m842">
<mml:mrow>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is <inline-formula id="inf799">
<mml:math id="m843">
<mml:mrow>
<mml:mn>83.17</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula>, aggregated over cycle representatives obtained from data described in <xref ref-type="sec" rid="s5-1">Section 5.1</xref> and <inline-formula id="inf800">
<mml:math id="m844">
<mml:mrow>
<mml:mn>90.35</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> aggregated over cycle representatives obtained from data described in <xref ref-type="sec" rid="s5-2">Section 5.2</xref> for cycles obtained from the program in <xref ref-type="disp-formula" rid="e14">Eq.&#x20;14</xref>. The average ratio <inline-formula id="inf801">
<mml:math id="m845">
<mml:mrow>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is <inline-formula id="inf802">
<mml:math id="m846">
<mml:mrow>
<mml:mn>87.02</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> over cycle&#x20;representatives obtained from data described in <xref ref-type="sec" rid="s5-1">Section&#x20;5.1</xref> and <inline-formula id="inf803">
<mml:math id="m847">
<mml:mrow>
<mml:mn>90.41</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> over cycle representatives obtained from data&#x20;describedra <xref ref-type="sec" rid="s5-2">Section 5.2</xref> for cycles obtained from&#x20;the program in <xref ref-type="disp-formula" rid="e14">Eq. 14</xref>. The average ratio <inline-formula id="inf804">
<mml:math id="m848">
<mml:mrow>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is <inline-formula id="inf805">
<mml:math id="m849">
<mml:mrow>
<mml:mn>88.34</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> over&#x20;cycle representatives obtained from data described in <xref ref-type="sec" rid="s5-1">Section 5.1</xref> and <inline-formula id="inf806">
<mml:math id="m850">
<mml:mrow>
<mml:mn>95.54</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> over cycle representatives obtained&#x20;from data described in <xref ref-type="sec" rid="s5-2">Section 5.2</xref> for cycles obtained from the program in <xref ref-type="disp-formula" rid="e15">Eq. 15</xref>.</p>
</sec>
<sec id="s6-6-3">
<title>6.6.3 Comparing Solutions to Integral Programs and Non-Integral Programs <inline-formula id="inf807">
<mml:math id="m851">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>vs</mml:mtext>
<mml:mtext>.</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</title>
<p>Among all cycle representatives found by solving the program in <xref ref-type="disp-formula" rid="e14">Eq. 14</xref>, <inline-formula id="inf808">
<mml:math id="m852">
<mml:mrow>
<mml:mn>66.38</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of them have <inline-formula id="inf809">
<mml:math id="m853">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf810">
<mml:math id="m854">
<mml:mrow>
<mml:mn>92.52</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of them have <inline-formula id="inf811">
<mml:math id="m855">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>. We find <inline-formula id="inf812">
<mml:math id="m856">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> for <inline-formula id="inf813">
<mml:math id="m857">
<mml:mrow>
<mml:mn>80.44</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the cycle representatives and <inline-formula id="inf814">
<mml:math id="m858">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>A</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>A</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> for <inline-formula id="inf815">
<mml:math id="m859">
<mml:mrow>
<mml:mn>100</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the cycle representatives when using the triangle-loss program in <xref ref-type="disp-formula" rid="e15">Eq. 15</xref>. Thus, the presence or absence of integer constraints rarely impacts the result of an area- or length-weighted program, but often impacts solutions of a uniform-weighted program. We saw in <xref ref-type="sec" rid="s6-3">Section 6.3</xref> that essentially all solutions had coefficients in <inline-formula id="inf816">
<mml:math id="m860">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1,0,1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> regardless of integer or non-integer constraints. As such, we conjecture that the higher rate of different solutions in the uniform-weighted problems could result from a larger number of distinct optimal solutions and be a feature of particular choice of solution selected by the linear solvers, rather than the non-existence of a particular integer solution.</p>
</sec>
<sec id="s6-6-4">
<title>6.6.4 Cycle Representative Size for Different Distributions and Dimensions</title>
<p>
<xref ref-type="fig" rid="F13">Figure&#x20;13</xref> provides a summary of the size and number of cycle representatives found for each distribution data set described in <xref ref-type="sec" rid="s5-2">Section 5.2</xref>. We observe that there tend to be more and larger (with respect to <inline-formula id="inf817">
<mml:math id="m861">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> norm) representatives in higher dimensions.</p>
<fig id="F13" position="float">
<label>FIGURE 13</label>
<caption>
<p>The number of original cycle representatives and the number of edges within each original representative for data described in <xref ref-type="sec" rid="s5-2">Section 5.2</xref>. These plots aggregate all cycle representatives for each dimension of a particular distribution. The horizontal axis for each subplot is the dimension of the data set, and the vertical axis is the number of cycle representatives found in each dimension. In general, we see there are more cycle representatives in higher dimensional data sets. Each bar is partitioned by the number of edges of the representative. We observe that as dimension increases, there tend to be more cycle representatives with more&#x20;edges.</p>
</caption>
<graphic xlink:href="frai-04-681117-g013.tif"/>
</fig>
</sec>
<sec id="s6-6-5">
<title>6.6.5 Duplicate Intervals in the Barcode</title>
<p>Of all data sets analyzed, only <bold>Klein</bold> and <bold>C.elegans</bold> have barcodes in which two or more intervals had equal birth and death times (that is, bars with multiplicity <inline-formula id="inf818">
<mml:math id="m862">
<mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>). Among the 107 total intervals of the <bold>C.elegans</bold> data set, there are 75 unique intervals, 10 intervals with multiplicity two, and one interval each with multiplicity three, four, and five. The duplicate bars in the <bold>C.elegans</bold> data set are noteworthy for having produced the sole example of an optimized cycle representative <inline-formula id="inf819">
<mml:math id="m863">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> with coefficients outside <inline-formula id="inf820">
<mml:math id="m864">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1,0,1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> (in particular, it had coefficients in <inline-formula id="inf821">
<mml:math id="m865">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>0.5</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>0.5</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>).</p>
<p>Among the 257 total intervals of the <bold>Klein</bold> data set, there are 179 unique intervals, 1 interval that is repeated twice, and two intervals that are repeated 38 times. For the <bold>Klein</bold> data set, if we replace the distance matrix provided by <xref ref-type="bibr" rid="B45">Otter et&#x20;al. (2017)</xref> with the Euclidean distance matrix calculated using Julia (the maximum difference between the two matrices is on the scale of <inline-formula id="inf822">
<mml:math id="m866">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>5</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>), we obtain only one interval that is repeated twice. This indicates that duplicate intervals are rare in practice, at least in dimension&#x20;1.</p>
</sec>
<sec id="s6-6-6">
<title>6.6.6 Edge-Loss Cycle Representatives <inline-formula id="inf823">
<mml:math id="m867">
<mml:mrow>
<mml:mtext>FCB</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>vs</mml:mtext>
<mml:mtext>.</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>PrsHCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula>
</title>
<p>We find that for <inline-formula id="inf824">
<mml:math id="m868">
<mml:mrow>
<mml:mn>84.52</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of <inline-formula id="inf825">
<mml:math id="m869">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf826">
<mml:math id="m870">
<mml:mrow>
<mml:mn>90.84</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of <inline-formula id="inf827">
<mml:math id="m871">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf828">
<mml:math id="m872">
<mml:mrow>
<mml:mn>93.49</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of <inline-formula id="inf829">
<mml:math id="m873">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf830">
<mml:math id="m874">
<mml:mrow>
<mml:mn>93.49</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of <inline-formula id="inf831">
<mml:math id="m875">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Edge</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, the <inline-formula id="inf832">
<mml:math id="m876">
<mml:mrow>
<mml:mtext>FCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> edge-loss cycle representatives found by the program in <xref ref-type="disp-formula" rid="e8">Eq. 8</xref> and the <inline-formula id="inf833">
<mml:math id="m877">
<mml:mrow>
<mml:mtext>PrsHCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> edge-loss cycles from the program in <xref ref-type="disp-formula" rid="e14">Eq. 14</xref> are the same, i.e. the <inline-formula id="inf834">
<mml:math id="m878">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> norm of their difference is 0. As mentioned in <xref ref-type="table" rid="alg10">Remark 3.1</xref>, the <inline-formula id="inf835">
<mml:math id="m879">
<mml:mrow>
<mml:mtext>FCB</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> cycles may not have the same death time as <inline-formula id="inf836">
<mml:math id="m880">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. For the real-world data sets, <inline-formula id="inf837">
<mml:math id="m881">
<mml:mrow>
<mml:mn>6.72</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the (Edge<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Len</italic>
</sub>) and&#x20;(Edge<sup>
<italic>I</italic>
</sup>
<sub>
<italic>Len</italic>
</sub>), <inline-formula id="inf840">
<mml:math id="m884">
<mml:mrow>
<mml:mn>7.65</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the (Edge<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Unif</italic>
</sub>) and <inline-formula id="inf842">
<mml:math id="m886">
<mml:mrow>
<mml:mn>4.48</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of (Edge<sup>
<italic>I</italic>
</sup>
<sub>
<italic>Unif</italic>
</sub>) have lifetimes different than <inline-formula id="inf844">
<mml:math id="m888">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. For the randomly generated distribution data sets, <inline-formula id="inf845">
<mml:math id="m889">
<mml:mrow>
<mml:mn>7.11</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the (Edge<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Len</italic>
</sub>) and (Edge<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Len</italic>
</sub>), <inline-formula id="inf848">
<mml:math id="m892">
<mml:mrow>
<mml:mn>8.06</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the (Edge<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Unif</italic>
</sub>) and <inline-formula id="inf850">
<mml:math id="m894">
<mml:mrow>
<mml:mn>4.25</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of (Edge<sup>
<italic>I</italic>
</sup>
<sub>
<italic>Len</italic>
</sub>) have lifetimes different than <inline-formula id="inf852">
<mml:math id="m896">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. All cycle representatives with lifetimes different than <inline-formula id="inf853">
<mml:math id="m897">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> have death time beyond that of <inline-formula id="inf854">
<mml:math id="m898">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</sec>
</sec>
<sec id="s6-7">
<title>6.7 Optimal Cycle Representatives for Erd&#x151;s-R&#xe9;nyi Random Clique Complexes</title>
<p>We observe qualitatively different behavior in cycle representatives from the Erd&#x151;s-R&#xe9;nyi random clique complexes. Among the <inline-formula id="inf855">
<mml:math id="m899">
<mml:mrow>
<mml:mn>34,214</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> cycle representatives from the 100 dissimilarity matrices found by solving the programs in <xref ref-type="disp-formula" rid="e14">Eqs 14</xref>, <xref ref-type="disp-formula" rid="e15">15</xref>, we find that <inline-formula id="inf856">
<mml:math id="m900">
<mml:mrow>
<mml:mn>91.04</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the original cycle representatives have entries in <inline-formula id="inf857">
<mml:math id="m901">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1,0,1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf858">
<mml:math id="m902">
<mml:mrow>
<mml:mn>99.75</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the original cycle representatives have integral entries. We have <inline-formula id="inf859">
<mml:math id="m903">
<mml:mrow>
<mml:mn>3.89</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the length-weighted edge-loss representatives, <inline-formula id="inf860">
<mml:math id="m904">
<mml:mrow>
<mml:mn>4.49</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the uniform-weighted edge-loss&#x20;representatives, and <inline-formula id="inf861">
<mml:math id="m905">
<mml:mrow>
<mml:mn>3.52</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of&#x20;the uniform-weighted triangle-loss representatives with entries not in <inline-formula id="inf862">
<mml:math id="m906">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1,0,1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. We find <inline-formula id="inf863">
<mml:math id="m907">
<mml:mrow>
<mml:mn>2.66</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the length-weighted edge-loss representatives, <inline-formula id="inf864">
<mml:math id="m908">
<mml:mrow>
<mml:mn>3.57</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the uniform-weighted edge-loss&#x20;representatives, and <inline-formula id="inf865">
<mml:math id="m909">
<mml:mrow>
<mml:mn>1.58</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the uniform-weighted triangle-loss representatives with non-integral entries when not requiring integral solutions.</p>
<p>We find <inline-formula id="inf866">
<mml:math id="m910">
<mml:mrow>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x3e;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> for <inline-formula id="inf867">
<mml:math id="m911">
<mml:mrow>
<mml:mn>1.07</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the cycle representatives and <inline-formula id="inf868">
<mml:math id="m912">
<mml:mrow>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:msubsup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x3e;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> for <inline-formula id="inf869">
<mml:math id="m913">
<mml:mrow>
<mml:mn>1.09</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the representatives. All such representatives have entries outside of <inline-formula id="inf870">
<mml:math id="m914">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1,0,1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and involve some fractional entries. An average of <inline-formula id="inf871">
<mml:math id="m915">
<mml:mrow>
<mml:mn>96.75</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the nonzero entries in the reduced boundary matrices are in <inline-formula id="inf872">
<mml:math id="m916">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1,1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf873">
<mml:math id="m917">
<mml:mrow>
<mml:mn>2.15</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> in <inline-formula id="inf874">
<mml:math id="m918">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>2,2</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf875">
<mml:math id="m919">
<mml:mrow>
<mml:mn>0.27</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> with an absolute value greater than or equal to&#x20;3.</p>
<p>Because of the non-integrality of some original cycle representatives found by the persistence algorithm, we fail to find an integral solution for <inline-formula id="inf876">
<mml:math id="m920">
<mml:mrow>
<mml:mn>0.27</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the edge-loss representatives and <inline-formula id="inf877">
<mml:math id="m921">
<mml:mrow>
<mml:mn>0.11</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the triangle-loss representatives.</p>
<p>A partial explanation for this behavior can be found in the work of (<xref ref-type="bibr" rid="B15">Costa et&#x20;al., 2015</xref>). Here, the authors show that a connected two-dimensional simplicial complex for which every subcomplex has fewer than three times as many edges as vertices must have the homotopy type of a wedge of circles, 2-spheres, and real projective planes. With high probability, certain&#x20;ranges of thresholds for the i.i.d. dissimilarity matrices&#x20;on which the Erd&#x151;s-R&#xe9;nyi random complexes are built produces random complexes with approximately such density patterns at each vertex. Thus, some of the persistent&#x20;cycles are highly likely to correspond to projective planes. Because of their non-orientability, the corresponding minimal generators could be expected to have entries outside of the range <inline-formula id="inf878">
<mml:math id="m922">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1,0,1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</sec>
</sec>
<sec id="s7">
<title>7 Conclusion</title>
<p>In this work, we provide a theoretical, computational, and empirical user&#x2019;s guide to optimizing cycle representatives against four criteria of optimality: total length, number of edges, internal volume, and area-weighted internal volume. Utilizing this framework, we undertook a study on statistical properties of minimal cycle representatives for <inline-formula id="inf879">
<mml:math id="m923">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> homology found via linear programming. In doing so, we made the following four main contributions.<list list-type="simple">
<list-item>
<label>1.</label>
<p>We developed a publicly available code library (<xref ref-type="bibr" rid="B38">Li and Thompson, 2021</xref>) to compute persistent homology with rational coefficients, building on the software package Eirene (<xref ref-type="bibr" rid="B34">Henselman and Ghrist, 2016</xref>) and implemented and extended algorithms from (<xref ref-type="bibr" rid="B25">Escolar and Hiraoka, 2016</xref>; <xref ref-type="bibr" rid="B44">Obayashi, 2018</xref>) for computing minimal cycle representatives. The library employs standard linear solvers (GLPK and Gurobi) and implements various acceleration techniques described in <xref ref-type="sec" rid="s4-4">Section 4.4</xref> to make the computations more efficient.</p>
</list-item>
<list-item>
<label>2.</label>
<p>We formulated specific recommendations concerning procedural factors that lie beyond the scope of the optimization problems per&#x20;se (for example, the process used to generate inputs to a solver) but which bear directly on the overall cost of computation, and of which practitioners should be&#x20;aware.</p>
</list-item>
<list-item>
<label>3.</label>
<p>We used this library to compute optimal cycle representatives for a variety of real-world data sets and randomly generated point clouds. Somewhat surprisingly, these experiments demonstrate that computationally advantageous properties are typical for persistent cycle representatives in data. Indeed, we find that we are able to compute uniform/length-weighted optimal cycles for all data sets we considered, and that we are able to compute triangle-loss optimal cycles for all but six cycle representatives, which fail due to the large number of triangles (more than 20 million) used in the optimization problem. Computation time information is summarized in <xref ref-type="table" rid="T1">Table&#x20;1</xref> and <xref ref-type="table" rid="T2">Table&#x20;2</xref>.</p>
</list-item>
<list-item>
<label/>
<p>Consequently, heuristic techniques may provide efficient means to extract solutions to cycle representative optimization problems across a broad range of contexts. For example, we find that edge-loss optimal cycles are faster to compute than triangle-loss optimal cycles for cycle representatives with a longer persistence interval, whereas for cycles with shorter persistence intervals, the triangle-loss cycle can be less computationally expensive to compute.</p>
</list-item>
<list-item>
<label>4.</label>
<p>We provided statistics on various minimal cycle representatives found in these data, such as their effectiveness in reducing the size of the original cycle representative found by the persistence algorithm and their effectiveness evaluated against different loss functions. In doing so, we identified consistent trends across samples that address the questions raised in <xref ref-type="sec" rid="s1">Section&#x20;1</xref>.</p>
<list list-type="simple">
<list-item>
<label>a.</label>
<p>Optimal cycle representatives are often significant improvements in terms of a given loss function over the initial cycle representatives provided by persistent homology computations (typically, by a factor of 0.3&#x2013;1.0). Interestingly, we find that area-weighted triangle-loss optimal cycle representatives can enclose a greater area than length- or uniform-weighted optimal cycle representatives.</p>
</list-item>
<list-item>
<label>b.</label>
<p>We find that length-weighted edge-loss optimal cycles are also optimal with respect to a uniform-weighted edge-loss function upwards of <inline-formula id="inf880">
<mml:math id="m924">
<mml:mrow>
<mml:mn>99</mml:mn>
<mml:mtext>%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of the time in the data we studied. This suggests that one can often find a solution that is both length-weighted minimal and uniform-weighted minimal by solving only the length-weighted minimal optimization problem. However, the triangle-loss optimal cycles can have a relatively higher length-weighted edge-loss or uniform-weighted edge-loss than the length/uniform-weighted minimal cycles. Thus, computing triangle-loss optimal cycles might provide distinct information and insights.</p>
</list-item>
<list-item>
<label>c.</label>
<p>Strikingly, all but one <inline-formula id="inf881">
<mml:math id="m925">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimal representatives were also <inline-formula id="inf882">
<mml:math id="m926">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimal (that is, <inline-formula id="inf883">
<mml:math id="m927">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimal among cycles taking <inline-formula id="inf884">
<mml:math id="m928">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mn>0,1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> coefficients; <inline-formula id="inf885">
<mml:math id="m929">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimality among cycles taking <inline-formula id="inf886">
<mml:math id="m930">
<mml:mi mathvariant="normal">&#x2124;</mml:mi>
</mml:math>
</inline-formula> coefficients was not tested) in the real-world and synthetic point cloud data. Thus, it appears that solutions to the NP-hard problem of finding <inline-formula id="inf887">
<mml:math id="m931">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimal cycle representatives can often be solved using linear programming in real data. In the Erd&#x151;s-R&#xe9;nyi random complexes, qualitatively different behavior was found; this may relate to the fact that spaces in this random family contain non-orientable subcomplexes with high probability.</p>
</list-item>
</list>
</list-item>
</list>
</p>
<p>Several questions lie beyond the scope of this text and merit future investigation. For example, while the methods discussed in <xref ref-type="sec" rid="s4">Section 4</xref> apply equally to homology in any dimension, we have focused our empirical investigation exclusively in dimension one; it would be useful and interesting to compare these results with homology in higher dimensions. It would likewise be interesting to compare with different weighting strategies on simplices, and loss functions other than <inline-formula id="inf888">
<mml:math id="m932">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf889">
<mml:math id="m933">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, e.g. <inline-formula id="inf890">
<mml:math id="m934">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. Future work may also consider whether the modified approach to the edge-loss minimization program in <xref ref-type="disp-formula" rid="e14">Eq. 14</xref> could be incorporated into persistence solvers themselves, as pioneered in (<xref ref-type="bibr" rid="B25">Escolar and Hiraoka, 2016</xref>). Unlike the programs formulated in this earlier work, the program in <xref ref-type="disp-formula" rid="e14">Eq. 14</xref> requires information about the death times of cycles in addition to their births; typically this information is not available until after the persistence computation has already finished, so new innovations would probably be needed to make progress in this direction.</p>
</sec>
</body>
<back>
<sec id="s8">
<title>Data Availability Statement</title>
<p>The datasets presented in this study can be found in online repositories. The names of the repository/repositories and accession number(s) can be found below: <ext-link ext-link-type="uri" xlink:href="https://github.com/TDAMinimalGeneratorResearch/minimal-generator">https://github.com/TDAMinimalGeneratorResearch/minimal-generator</ext-link>.</p>
</sec>
<sec id="s9">
<title>Author Contributions</title>
<p>GH-P wrote the Eirene code. LL and CT wrote the rest of the code and performed all experiments. LL created all figures and tables. GH-P and LZ designed, directed, and supervised the project. GH-P developed the theory in the <xref ref-type="sec" rid="s12">Supplementary Material</xref>. All authors contributed to the analysis of the results and to the writing of the manuscript.</p>
</sec>
<sec id="s10">
<title>Funding</title>
<p>This material is based upon work supported by the National Science Foundation under grants no. DMS-1854683, DMS-1854703, and DMS-1854748. GH-P is a member of the Centre for Topological Data Analysis, supported by the EPSRC grant New Approaches to Data Science: Application Driven Topological Data Analysis EP/R018472/1.</p>
</sec>
<sec sec-type="COI-statement" id="s11">
<title>Conflict of Interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec id="s13" sec-type="disclaimer">
<title>Publisher&#x2019;s Note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ack>
<p>The authors are grateful to David Turner for helpful advice on selection of linear solvers. They also thank and acknowledge the initial work done by Robert Angarone and Sophia Wiedemann on this&#x20;study.</p>
</ack>
<sec id="s12">
<title>Supplementary Material</title>
<p>The Supplementary Material for this article can be found online at: <ext-link ext-link-type="uri" xlink:href="https://www.frontiersin.org/articles/10.3389/frai.2021.681117/full#supplementary-material">https://www.frontiersin.org/articles/10.3389/frai.2021.681117/full&#x23;supplementary-material</ext-link>
</p>
<supplementary-material xlink:href="DataSheet1.pdf" id="SM1" mimetype="application/pdf" xmlns:xlink="http://www.w3.org/1999/xlink"/>
</sec>
<fn-group>
<fn id="fn1">
<label>1</label>
<p>The <inline-formula id="inf891">
<mml:math id="m935">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> &#x201c;norm&#x201d; is not a real norm as it does not satisfy the homogeneous requirement of a norm. For example, scaling a vector <inline-formula id="inf892">
<mml:math id="m936">
<mml:mi mathvariant="bold">x</mml:mi>
</mml:math>
</inline-formula> by a constant factor does not change its <inline-formula id="inf893">
<mml:math id="m937">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> &#x201c;norm.&#x201d;</p>
</fn>
<fn id="fn2">
<label>2</label>
<p>See <xref ref-type="table" rid="alg11">Remark 2.1</xref> These choices of groups have a natural notion of absolute&#x20;value.</p>
</fn>
<fn id="fn3">
<label>3</label>
<p>More generally, we denote the groups of cycles and boundaries with coefficients in <italic>G</italic> as <inline-formula id="inf894">
<mml:math id="m938">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf895">
<mml:math id="m939">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. The (<italic>dimension-n</italic>) <italic>homology of K with coefficients in G</italic> is <inline-formula id="inf896">
<mml:math id="m940">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">Z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:mo>;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</fn>
<fn id="fn4">
<label>4</label>
<p>Because of the assumption that <inline-formula id="inf897">
<mml:math id="m941">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is a simplex-wise filtration, if there is a new <italic>n</italic>-cycle in <inline-formula id="inf898">
<mml:math id="m942">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> then there cannot also be a new <inline-formula id="inf899">
<mml:math id="m943">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> simplex, so this is also a basis for <inline-formula id="inf900">
<mml:math id="m944">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</fn>
<fn id="fn5">
<label>5</label>
<p>This notion of volume differs from that of <xref ref-type="bibr" rid="B12">Chen and Freedman (2010b)</xref>. The latter refers to volume as the <inline-formula id="inf901">
<mml:math id="m945">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> norm of a chain, while the former (which we discuss in this section) refers to the <inline-formula id="inf902">
<mml:math id="m946">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> norm of a <italic>bounding</italic>&#x20;chain.</p>
</fn>
<fn id="fn6">
<label>6</label>
<p>If we regard <inline-formula id="inf903">
<mml:math id="m947">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold">v</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> as a function <inline-formula id="inf904">
<mml:math id="m811">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2192;</mml:mo>
<mml:mi mathvariant="normal">&#x211a;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, then <inline-formula id="inf905">
<mml:math id="m949">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold">v</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>&#x03C3;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the value taken by <inline-formula id="inf906">
<mml:math id="m950">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold">v</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> on simplex <italic>&#x03C3;</italic>. Alternatively, if we regard <inline-formula id="inf907">
<mml:math id="m951">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold">v</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> as a linear combination of <italic>n</italic>-simplices, then <inline-formula id="inf908">
<mml:math id="m952">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold">v</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>&#x03C3;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the coefficient placed by <inline-formula id="inf909">
<mml:math id="m953">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mi mathvariant="normal">o</mml:mi>
<mml:mi mathvariant="normal">n</mml:mi>
<mml:mi>&#x03C3;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</fn>
<fn id="fn7">
<label>7</label>
<p>Technically, this notion is not well-defined; to be formal, we should fix a persistent homology cycle basis <inline-formula id="inf910">
<mml:math id="m954">
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
</mml:math>
</inline-formula>, fix a cycle representative <inline-formula id="inf911">
<mml:math id="m955">
<mml:mrow>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="normal">&#x212c;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> with lifespan interval <inline-formula id="inf912">
<mml:math id="m956">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and ask for an <inline-formula id="inf913">
<mml:math id="m957">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> cycle representative in the same homology class, <inline-formula id="inf914">
<mml:math id="m958">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, as per the program in <xref ref-type="disp-formula" rid="e3">Eq. (3)</xref>. However, in simple cases the intended meaning is&#x20;clear.</p>
</fn>
<fn id="fn8">
<label>8</label>
<p>Other choices of loss function, e.g., the <inline-formula id="inf915">
<mml:math id="m959">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> norm, are common throughout mathematical optimization. While we focus on <inline-formula id="inf916">
<mml:math id="m960">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf917">
<mml:math id="m961">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> due to their tendency to produce sparse solutions, other choices may be better or worse suited, depending on the intended application. For example, since <inline-formula id="inf918">
<mml:math id="m962">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> loss imposes lighter penalties on small errors and heavier penalties on large ones (as compared to <inline-formula id="inf919">
<mml:math id="m963">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>), it is especially sensitive to outliers; this makes it useful for tasks such as function estimation. On the other hand, by imposing relatively heavy penalties on small errors, <inline-formula id="inf920">
<mml:math id="m964">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> loss encourages sparsity (<xref ref-type="bibr" rid="B52">Tahbaz-Salehi and Jadbabaie, 2008</xref>; <xref ref-type="bibr" rid="B53">Tahbaz-Salehi and Jadbabaie, 2010</xref>).</p>
</fn>
<fn id="fn9">
<label>9</label>
<p>These notions make sense due to our use of coefficient field <inline-formula id="inf921">
<mml:math id="m965">
<mml:mi mathvariant="normal">&#x211a;</mml:mi>
</mml:math>
</inline-formula>. The distance used to form a simplicial complex can be used to define length. We restrict our attention of area to points in Euclidean&#x20;space.</p>
</fn>
<fn id="fn10">
<label>10</label>
<p>Recall volume is undefined for infinite intervals.</p>
</fn>
<fn id="fn11">
<label>11</label>
<p>We compute the area of a 2-simplex using Heron&#x2019;s Formula. We calculate area only for VR complexes whose vertices are points in Euclidean space, though more general metrics could also be considered.</p>
</fn>
<fn id="fn12">
<label>12</label>
<p>We use the distance matrices found on the associated github page (<xref ref-type="bibr" rid="B68">Otter et al., 2017b</xref>), except in two cases. For the <bold>Vicsek</bold> data, we use a distance to account for the intended periodic boundary conditions of the model, and for the <bold>genome</bold> data, we use Euclidean distance as the distance matrix in <xref ref-type="bibr" rid="B68">Otter et al. (2017b)</xref> resulted in an integer overflow&#x20;error.</p>
</fn>
<fn id="fn13">
<label>13</label>
<p>The program in <xref ref-type="disp-formula" rid="e8">Eq. 8</xref> is implemented analogously.</p>
</fn>
<fn id="fn14">
<label>14</label>
<p>We compute the area of a 2-simplex using Heron&#x2019;s Formula for data whose distances are measured using the Euclidean distance. For data with non-Euclidean distances, we find that there are triangles that do not obey the triangle inequality, thus, we only compute area-weighted triangle-loss cycles for data described in <xref ref-type="sec" rid="s5-2">Section 5.2</xref>. As such, Tri<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Area</italic>
</sub>, Tri<sup>
<italic>NI</italic>
</sup>
<sub>
<italic>Area</italic>
</sub> do not appear in <xref ref-type="table" rid="T1">Table&#x20;1</xref> and the Er&#x151;s&#x2010;R&#xe9;nyi column of <xref ref-type="table" rid="T2">Table&#x20;2</xref>.</p>
</fn>
<fn id="fn15">
<label>15</label>
<p>Including the time of constructing the input to the optimization programs.</p>
</fn>
<fn id="fn16">
<label>16</label>
<p>
<xref ref-type="bibr" rid="B44">Obayashi (2018)</xref> proposes a few techniques for accelerating the triangle-loss methods which we did not implement.</p>
</fn>
<fn id="fn17">
<label>17</label>
<p>We discuss the coefficients of the Erd&#x151;s-R&#xe9;nyi complexes of <xref ref-type="sec" rid="s5-3">Section 5.3</xref> in <xref ref-type="sec" rid="s6-7">Section&#x20;6.7</xref>.</p>
</fn>
<fn id="fn18">
<label>18</label>
<p>Recall that, in the current discussion, <inline-formula id="inf924">
<mml:math id="m968">
<mml:mrow>
<mml:msub>
<mml:mi>&#x2113;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> optimality refers to the <italic>restricted</italic> integer problem where coefficients are constrained to lie in <inline-formula id="inf925">
<mml:math id="m969">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1,0,1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. The unrestricted problem (about which we have nothing to say) may have quite different properties.</p>
</fn>
<fn id="fn19">
<label>19</label>
<p>We formulated an Obayashi-style linear program similar to Program in <xref ref-type="disp-formula" rid="e15">Eq. 15</xref> to compute the volume of edge-loss optimal cycles but in many cases it had no feasible solution.</p>
</fn>
<fn id="fn20">
<label>20</label>
<p>Recall, we only compute <inline-formula id="inf926">
<mml:math id="m970">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> on the 2-dimensional distribution&#x20;data.</p>
</fn>
<fn id="fn21">
<label>21</label>
<p>The remainder of this subsection excludes the Erd&#x151;s-R&#xe9;nyi cycles.</p>
</fn>
</fn-group>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bendich</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Marron</surname>
<given-names>J.&#x20;S.</given-names>
</name>
<name>
<surname>Miller</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Pieloch</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Skwerer</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Persistent Homology Analysis of Brain Artery Trees</article-title>. <source>Ann. Appl. Stat.</source> <volume>10</volume>, <fpage>198</fpage>&#x2013;<lpage>218</lpage>. <pub-id pub-id-type="doi">10.1214/15-AOAS886</pub-id> </citation>
</ref>
<ref id="B2">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Bertsimas</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Tsitsiklis</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>1997</year>). <source>Introduction to Linear Optimization</source>. <publisher-loc>(Belmont, MA</publisher-loc>: <publisher-name>Athena Scientific)</publisher-name>. </citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bhaskar</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Manhart</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Milzman</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Nardini</surname>
<given-names>J.&#x20;T.</given-names>
</name>
<name>
<surname>Storey</surname>
<given-names>K. M.</given-names>
</name>
<name>
<surname>Topaz</surname>
<given-names>C. M.</given-names>
</name>
<etal/>
</person-group> (<year>2019</year>). <article-title>Analyzing Collective Motion with Machine Learning and Topology</article-title>. <source>Chaos: Interdiscip. J.&#x20;Nonlinear Sci.</source> <volume>29</volume>, <fpage>123125</fpage>. <pub-id pub-id-type="doi">10.1063/1.5125493</pub-id> </citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bhattacharya</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Ghrist</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Kumar</surname>
<given-names>V.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Persistent Homology for Path Planning in Uncertain Environments</article-title>. <source>IEEE Trans. Robotics</source> <volume>31</volume>, <fpage>578</fpage>&#x2013;<lpage>590</lpage>. <pub-id pub-id-type="doi">10.1109/TRO.2015.2412051</pub-id> </citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Borradaile</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Maxwell</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Nayyeri</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2020</year>). &#x201c;<article-title>Minimum Bounded Chains and Minimum Homologous Chains in Embedded Simplicial Complexes</article-title>,&#x201d; in <source>36th International Symposium on Computational Geometry (SoCG 2020)</source>. <source>Leibniz Int. Proc. Informatics</source> <volume>21</volume>, <fpage>21:1</fpage>&#x2013;<lpage>21:15</lpage>. </citation>
</ref>
<ref id="B6">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Boyd</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Vandenberghe</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2004</year>). <source>Convex Optimization</source>. <publisher-loc>Belmont, MA</publisher-loc>: <publisher-name>Cambridge University Press</publisher-name>. </citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Braden</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>1986</year>). <article-title>The Surveyor&#x2019;s Area Formula</article-title>. <source>Coll. Math. J.</source> <volume>17</volume>, <fpage>326</fpage>&#x2013;<lpage>337</lpage>. <pub-id pub-id-type="doi">10.1080/07468342.1986.11972974</pub-id> </citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Br&#xfc;el-Gabrielsson</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Ganapathi-Subramanian</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Skraba</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Guibas</surname>
<given-names>L. J.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Topology-aware Surface Reconstruction for point Clouds</article-title>. <source>Comput. Graphics Forum</source> <volume>39</volume>, <fpage>197</fpage>&#x2013;<lpage>207</lpage>. <pub-id pub-id-type="doi">10.1111/cgf.14079</pub-id> </citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Carlsson</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2009</year>). <article-title>Topology and Data</article-title>. <source>Bull. Am. Math. Soc.</source> <volume>46</volume>, <fpage>255</fpage>&#x2013;<lpage>308</lpage>. </citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chan</surname>
<given-names>J.&#x20;M.</given-names>
</name>
<name>
<surname>Carlsson</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Rabadan</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Topology of Viral Evolution</article-title>. <source>Proc. Natl. Acad. Sci.</source> <volume>110</volume>, <fpage>18566</fpage>&#x2013;<lpage>18571</lpage>. <pub-id pub-id-type="doi">10.1073/pnas.1313480110</pub-id> </citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Freedman</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2010a</year>). <article-title>Measuring and Computing Natural Generators for Homology Groups</article-title>. <source>Comput. Geometry</source> <volume>43</volume>, <fpage>169</fpage>&#x2013;<lpage>181</lpage>. <pub-id pub-id-type="doi">10.1016/j.comgeo.2009.06.004</pub-id> </citation>
</ref>
<ref id="B12">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Freedman</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2010b</year>). &#x201c;<article-title>Hardness Results for Homology Localization</article-title>,&#x201d; in <source>SODA &#x2019;10:</source> <source>Proceedings of the Twenty-First Annual ACM-SIAM Symposium on Discrete Algorithms</source>. <publisher-loc>USA</publisher-loc>: <publisher-name>Society for Industrial and Applied Mathematics)</publisher-name>. </citation>
</ref>
<ref id="B13">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Freedman</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2008</year>). &#x201c;<article-title>Quantifying Homology Classes. Albers S</article-title>,&#x201d; in <source>25th International Symposium On Theoretical Aspects Of Computer Science</source>. (<publisher-loc>Dagstuhl, Germany:</publisher-loc> <publisher-name>Schloss Dagstuhl&#x2013;Leibniz-Zentrum Fuer Informatik</publisher-name>). Editor <person-group person-group-type="editor">
<name>
<surname>Weil</surname>
<given-names>P.</given-names>
</name>
</person-group>, <volume>1</volume>, <fpage>169</fpage>&#x2013;<lpage>180</lpage>. <pub-id pub-id-type="doi">10.4230/LIPIcs.STACS.2008.1343</pub-id> </citation>
</ref>
<ref id="B14">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Cohen-Steiner</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Edelsbrunner</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Morozov</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2006</year>). &#x201c;<article-title>Vines and Vineyards by Updating Persistence in Linear Time</article-title>,&#x201d; in <conf-name>Proceedings of the Twenty-Second Annual Symposium on Computational Geometry</conf-name>, <fpage>119</fpage>&#x2013;<lpage>126</lpage>. </citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Costa</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Farber</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Horak</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Fundamental Groups of Clique Complexes of Random Graphs</article-title>. <source>Trans. Lond. Math. Soc.</source> <volume>2</volume>, <fpage>1</fpage>&#x2013;<lpage>32</lpage>. <pub-id pub-id-type="doi">10.1112/tlms/tlv001</pub-id> </citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Davis</surname>
<given-names>T. A.</given-names>
</name>
<name>
<surname>Hu</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>The university of florida Sparse Matrix Collection</article-title>. <source>ACM Trans. Math. Softw.</source> <volume>38</volume>, <fpage>1</fpage>&#x2013;<lpage>25</lpage>. <pub-id pub-id-type="doi">10.1145/2049662.2049663</pub-id> </citation>
</ref>
<ref id="B17">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Dey</surname>
<given-names>T. K.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2010</year>). &#x201c;<article-title>Approximating Loops in a Shortest Homology Basis from point Data</article-title>,&#x201d; in <source>SoCG &#x2019;10: Proceedings of the Twenty-Sixth Annual Symposium on Computational Geometry</source>. (<publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>Association for Computing Machinery)</publisher-name>, <fpage>166</fpage>&#x2013;<lpage>175</lpage>. <pub-id pub-id-type="doi">10.1145/1810959.1810989</pub-id> </citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Dey</surname>
<given-names>T. K.</given-names>
</name>
<name>
<surname>Hirani</surname>
<given-names>A. N.</given-names>
</name>
<name>
<surname>Krishnamoorthy</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>Optimal Homologous Cycles, Total Unimodularity, and Linear Programming</article-title>. <source>SIAM J.&#x20;Comput.</source> <volume>40</volume>, <fpage>1026</fpage>&#x2013;<lpage>1044</lpage>. <pub-id pub-id-type="doi">10.1137/100800245</pub-id> </citation>
</ref>
<ref id="B19">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Dey</surname>
<given-names>T. K.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2018</year>). &#x201d;<article-title>Efficient Algorithms for Computing a Minimal Homology Basis</article-title>,&#x201d; in <source>Latin American Symposium on Theoretical Informatics</source>. <publisher-name>Springer</publisher-name>, <fpage>376</fpage>&#x2013;<lpage>398</lpage>. </citation>
</ref>
<ref id="B20">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Dey</surname>
<given-names>T. K.</given-names>
</name>
<name>
<surname>Hou</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Mandal</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2019</year>). &#x201c;<article-title>Persistent 1-cycles: Definition, Computation, and its Application</article-title>,&#x201d; in <source>International Workshop on Computational Topology in Image Context</source>. M&#x00E1;laga, Spain: <publisher-name>Springer</publisher-name>, <fpage>123</fpage>&#x2013;<lpage>136</lpage>. </citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Edelsbrunner</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Harer</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2008</year>). <article-title>Persistent Homology&#x2013;A Survey</article-title>. <source>Discrete Comput. Geometry - DCG</source> <volume>453</volume>, <fpage>257</fpage>&#x2013;<lpage>282</lpage>. <pub-id pub-id-type="doi">10.1090/conm/453/08802</pub-id> </citation>
</ref>
<ref id="B22">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Edelsbrunner</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Harer</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2010</year>). <source>Computational Topology: An Introduction</source>. <publisher-loc>Providence, RI</publisher-loc>: <publisher-name>Applied Mathematics (American Mathematical Society)</publisher-name>. </citation>
</ref>
<ref id="B23">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Emmett</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Schweinhart</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Rabadan</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2015</year>). <source>Multiscale Topology of Chromatin Folding</source>. <comment>arXiv preprint arXiv:1511.01426</comment>. </citation>
</ref>
<ref id="B64">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Erickson</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Whittlesey</surname>
<given-names>K.</given-names>
</name>
</person-group> (<year>2009</year>). &#x201c;<article-title>Greedy optimal homotopy and homology generators.</article-title> <source>SODA</source> <volume>5</volume>, <fpage>1038</fpage>&#x2013;<lpage>1046</lpage>. </citation>
</ref>
<ref id="B25">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Escolar</surname>
<given-names>E. G.</given-names>
</name>
<name>
<surname>Hiraoka</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2016</year>). &#x201c;<article-title>Optimal Cycles for Persistent Homology via Linear Programming</article-title>,&#x201d; in <source>Optimization in the Real World</source>. <publisher-loc>Tokyo</publisher-loc>: <publisher-name>Springer</publisher-name>, <fpage>79</fpage>&#x2013;<lpage>96</lpage>. </citation>
</ref>
<ref id="B26">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Escolar</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Hiraoka</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2021</year>). <source>OptiPersLP - optimal cycles in persistence via linear programming</source>. <comment>Available at: <ext-link ext-link-type="uri" xlink:href="https://bitbucket.org/remere/optiperslp/src/master/">https://bitbucket.org/remere/optiperslp/src/master/</ext-link>
</comment>. </citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ghrist</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2008</year>). <article-title>Barcodes: the Persistent Topology of Data</article-title>. <source>Bull. Am. Math. Soc.</source> <volume>45</volume>, <fpage>61</fpage>&#x2013;<lpage>75</lpage>. <pub-id pub-id-type="doi">10.1090/s0273-0979-07-01191-3</pub-id> </citation>
</ref>
<ref id="B28">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Ghrist</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2014</year>). <source>Elementary Applied Topology</source>. (<publisher-loc>Seattle</publisher-loc>: <publisher-name>CreateSpace Independent Publishing Platform)</publisher-name>. </citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Giusti</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Ghrist</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Bassett</surname>
<given-names>D. S.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Two&#x2019;s Company, Three (Or More) Is a Simplex</article-title>. <source>J.&#x20;Comput. Neurosci.</source> <volume>41</volume>, <fpage>1</fpage>&#x2013;<lpage>14</lpage>. </citation>
</ref>
<ref id="B30">
<citation citation-type="book">
<collab>GNU Project</collab> (<year>2012</year>). <source>GLPK (GNU Linear Programming Kit)</source>. <comment>Available at:</comment>. </citation>
</ref>
<ref id="B31">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Gurobi Optimization</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2020</year>). <source>Gurobi Optimizer Reference Manual</source>. </citation>
</ref>
<ref id="B32">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Hatcher</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Press</surname>
<given-names>C. U. </given-names>
</name>
</person-group>
<collab>of Mathematics CUD</collab> (<year>2002</year>). <source>
<italic>Algebraic Topology</italic>. Algebraic Topology</source>. <publisher-loc>Cambridge, UK</publisher-loc>: <publisher-name>Cambridge University Press</publisher-name>. </citation>
</ref>
<ref id="B33">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Henselman</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>D&#x142;otko</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2014</year>). &#x201c;<article-title>Combinatorial Invariants of Multidimensional Topological Network Data</article-title>,&#x201d; In <conf-name>IEEE Global Conference on Signal and Information Processing (GlobalSIP)</conf-name>. <publisher-name>IEEE</publisher-name>, <fpage>828</fpage>&#x2013;<lpage>832</lpage>. </citation>
</ref>
<ref id="B34">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Henselman</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Ghrist</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2016</year>). <source>Matroid Filtrations and Computational Persistent Homology</source>. <comment>Available at: <ext-link ext-link-type="uri" xlink:href="http://adsabs.harvard.edu/abs/2016arXiv160600199H">http://adsabs.harvard.edu/abs/2016arXiv160600199H</ext-link> (Accessed May, 2021)</comment>. </citation>
</ref>
<ref id="B35">
<citation citation-type="web">
<person-group person-group-type="author">
<name>
<surname>Henselman-Petrusek</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Eirene (Julia Library for Computational Persistent Homology)</article-title>. <comment>Available at: <ext-link ext-link-type="uri" xlink:href="https://github.com/Eetion/Eirene.jl">https://github.com/Eetion/Eirene.jl</ext-link> (Accessed May, 2021)</comment>. <comment>Commit 4f57d6a0e4c030202a07a60bc1bb1ed1544bf679.</comment> </citation>
</ref>
<ref id="B36">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hiraoka</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Nakamura</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Hirata</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Escolar</surname>
<given-names>E. G.</given-names>
</name>
<name>
<surname>Matsue</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Nishiura</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Hierarchical Structures of Amorphous Solids Characterized by Persistent Homology</article-title>. <source>Proc. Natl. Acad. Sci.</source> <volume>113</volume>, <fpage>7035</fpage>&#x2013;<lpage>7040</lpage>. <pub-id pub-id-type="doi">10.1073/pnas.1520877113</pub-id> </citation>
</ref>
<ref id="B37">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kovacev-Nikolic</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Bubenik</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Nikoli&#x107;</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Heo</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Using Persistent Homology and Dynamical Distances to Analyze Protein Binding</article-title>. <source>Stat. App. Genet. Mol Biol.</source> <volume>15</volume>, <fpage>19</fpage>&#x2013;<lpage>38</lpage>. <pub-id pub-id-type="doi">10.1515/sagmb-2015-0057</pub-id> </citation>
</ref>
<ref id="B38">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Thompson</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2021</year>). <source>Source Code, <italic>Minimal Cycle Representatives In Persistent Homology Using Linear Programming: An Empirical Study With User&#x2019;s Guide</italic>
</source>. <comment>Available at: <ext-link ext-link-type="uri" xlink:href="https://github.com/TDAMinimalGeneratorResearch/minimal-generator">https://github.com/TDAMinimalGeneratorResearch/minimal-generator</ext-link> (Accessed May, 2021</comment>). </citation>
</ref>
<ref id="B39">
<citation citation-type="book">
<collab>Los Alamos National Laboratory</collab> <year>(2021)</year>. <source>HIV Database</source>. <comment>Available at: <ext-link ext-link-type="uri" xlink:href="http://www.hiv.lanl.gov/content/index">http://www.hiv.lanl.gov/content/index</ext-link>
</comment>. </citation>
</ref>
<ref id="B40">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>McGuirl</surname>
<given-names>M. R.</given-names>
</name>
<name>
<surname>Volkening</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Sandstede</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Topological Data Analysis of Zebrafish Patterns</article-title>. <source>Proc. Natl. Acad. Sci.</source> <volume>117</volume>, <fpage>5113</fpage>&#x2013;<lpage>5124</lpage>. <pub-id pub-id-type="doi">10.1073/pnas.1917763117</pub-id> </citation>
</ref>
<ref id="B41">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Milosavljevi&#x107;</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Morozov</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Skraba</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2011</year>). &#x201c;<article-title>Zigzag Persistent Homology in Matrix Multiplication Time</article-title>,&#x201d; in <source>SoCG &#x2019;11: Proceedings of the Twenty-Seventh Annual Symposium on Computational Geometry</source>. <publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>Association for Computing Machinery)</publisher-name>, <fpage>216</fpage>&#x2013;<lpage>225</lpage>. <pub-id pub-id-type="doi">10.1145/1998196.1998229</pub-id> </citation>
</ref>
<ref id="B42">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Newman</surname>
<given-names>M. E.</given-names>
</name>
</person-group> (<year>2006</year>). <article-title>Finding Community Structure in Networks Using the Eigenvectors of Matrices</article-title>. <source>Phys. Rev. E</source> <volume>74</volume>, <fpage>036104</fpage>. <pub-id pub-id-type="doi">10.1103/physreve.74.036104</pub-id> </citation>
</ref>
<ref id="B43">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Obayashi</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Wada</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Tunhua</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Miyanaga</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Hiraoka</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2021</year>). <source>HomCloud: Data Analysis Software Based on Persistent Homology)</source>. <comment>Available at: <ext-link ext-link-type="uri" xlink:href="https://homcloud.dev/">https://homcloud.dev/</ext-link>
</comment>. </citation>
</ref>
<ref id="B44">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Obayashi</surname>
<given-names>I.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Volume-optimal Cycle: Tightest Representative Cycle of a Generator in Persistent Homology</article-title>. <source>SIAM J.&#x20;Appl. Algebra Geometry</source> <volume>2</volume>, <fpage>508</fpage>&#x2013;<lpage>534</lpage>. </citation>
</ref>
<ref id="B45">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Otter</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Porter</surname>
<given-names>M. A.</given-names>
</name>
<name>
<surname>Tillmann</surname>
<given-names>U.</given-names>
</name>
<name>
<surname>Grindrod</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Harrington</surname>
<given-names>H. A.</given-names>
</name>
</person-group> (<year>2017a</year>). <article-title>A Roadmap for the Computation of Persistent Homology</article-title>. <source>EPJ&#x20;Data Sci.</source> <volume>6</volume>, <fpage>17</fpage>. <pub-id pub-id-type="doi">10.1140/epjds/s13688-017-0109-5</pub-id> </citation>
</ref>
<ref id="B68">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Otter</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Porter</surname>
<given-names>M. A.</given-names>
</name>
<name>
<surname>Tillmann</surname>
<given-names>U.</given-names>
</name>
<name>
<surname>Grindrod</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Harrington</surname>
<given-names>H. A.</given-names>
</name>
</person-group> (<year>2017b</year>). <comment>A Roadmap for the Computation of Persistent Homology. Available at: <ext-link ext-link-type="uri" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://github.com/n-otter/PH-roadmap">https://github.com/n-otter/PH-roadmap</ext-link>
</comment>
</citation>
</ref>
<ref id="B46">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Petri</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Scolamiero</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Donato</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Vaccarino</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Topological Strata of Weighted Complex Networks</article-title>. <source>PloS one</source> <volume>8</volume>, <fpage>e66506</fpage>. <pub-id pub-id-type="doi">10.1371/journal.pone.0066506</pub-id> </citation>
</ref>
<ref id="B47">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Schweinhart</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2015</year>). <source>Statistical Topology of Embedded Graphs</source>. <comment>Ph.D. thesis</comment>. <publisher-loc>Princeton, NJ</publisher-loc>: <publisher-name>Princeton University</publisher-name>. </citation>
</ref>
<ref id="B48">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Singh</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>M&#xe9;moli</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Carlsson</surname>
<given-names>G. E.</given-names>
</name>
</person-group> (<year>2007</year>). <article-title>Topological Methods for the Analysis of High Dimensional Data Sets and 3d Object Recognition</article-title>. <source>SPBG</source> <volume>91</volume>, <fpage>100</fpage>. <pub-id pub-id-type="doi">10.2312/SPBG/SPBG07/091-100</pub-id> </citation>
</ref>
<ref id="B49">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sizemore</surname>
<given-names>A. E.</given-names>
</name>
<name>
<surname>Phillips-Cremins</surname>
<given-names>J.&#x20;E.</given-names>
</name>
<name>
<surname>Ghrist</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Bassett</surname>
<given-names>D. S.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>The Importance of the Whole: Topological Data Analysis for the Network Neuroscientist</article-title>. <source>Netw. Neurosci.</source> <volume>3</volume>, <fpage>656</fpage>&#x2013;<lpage>673</lpage>. <pub-id pub-id-type="doi">10.1162/netn_a_00073</pub-id> </citation>
</ref>
<ref id="B50">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sporns</surname>
<given-names>O.</given-names>
</name>
</person-group> (<year>2006</year>). <article-title>Small-world Connectivity, Motif Composition, and Complexity of Fractal Neuronal Connections</article-title>. <source>Bio. Syst.</source> <volume>85</volume>, <fpage>55</fpage>&#x2013;<lpage>64</lpage>. <pub-id pub-id-type="doi">10.1016/j.biosystems.2006.02.008</pub-id> </citation>
</ref>
<ref id="B51">
<citation citation-type="book">
<collab>Stanford University Computer Graphics Laboratory</collab> (<year>1999</year>). <source>The Stanford 3D Scanning Repository</source>. (<comment>Accessed May, 2021</comment>). </citation>
</ref>
<ref id="B52">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tahbaz-Salehi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Jadbabaie</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>20082008</year>). <article-title>Distributed Coverage Verification in Sensor Networks without Location Information</article-title>. <source>IEEE Conf. Decis. Control.</source>, <fpage>4170</fpage>&#x2013;<lpage>4176</lpage>. <pub-id pub-id-type="doi">10.1109/CDC.2008.4738751</pub-id> </citation>
</ref>
<ref id="B53">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tahbaz-Salehi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Jadbabaie</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2010</year>). <article-title>Distributed Coverage Verification in Sensor Networks without Location Information</article-title>. <source>IEEE Trans. Automatic Control.</source> <volume>55</volume>, <fpage>1837</fpage>&#x2013;<lpage>1849</lpage>. <pub-id pub-id-type="doi">10.1109/TAC.2010.2047541</pub-id> </citation>
</ref>
<ref id="B54">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Topaz</surname>
<given-names>C. M.</given-names>
</name>
<name>
<surname>Ziegelmeier</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Halverson</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Topological Data Analysis of Biological Aggregation Models</article-title>. <source>PloS one</source> <volume>10</volume>, <fpage>e0126383</fpage>. <pub-id pub-id-type="doi">10.1371/journal.pone.0126383</pub-id> </citation>
</ref>
<ref id="B55">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ulmer</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Ziegelmeier</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Topaz</surname>
<given-names>C. M.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>A Topological Approach to Selecting Models of Biological Experiments</article-title>. <source>PLOS ONE</source> <volume>14</volume>, <fpage>1</fpage>&#x2013;<lpage>18</lpage>. <pub-id pub-id-type="doi">10.1371/journal.pone.0213679</pub-id> </citation>
</ref>
<ref id="B56">
<citation citation-type="other">
<person-group person-group-type="author">
<name>
<surname>Vanderbei</surname>
<given-names>R. J.</given-names>
</name>
</person-group> (<year>2014</year>). &#x201c;<article-title>Linear Programming Foundations and Extensions</article-title>,&#x201d; in <source>International Series in Operations Research Management Science</source>. <edition>4th ed. edn</edition>.<volume>v.2014</volume> <publisher-loc>New York</publisher-loc>: <publisher-name>Springer</publisher-name>. </citation>
</ref>
<ref id="B57">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Vasudevan</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Ames</surname>
<given-names>A. D.</given-names>
</name>
<name>
<surname>Bajcsy</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>Human Based Cost from Persistent Homology for Bipedal Walking</article-title>,&#x201d; in <source>18th IFAC World Congress</source>. <source>IFAC Proc. Volumes</source> <volume>44</volume>, <fpage>3292</fpage>&#x2013;<lpage>3297</lpage>. <pub-id pub-id-type="doi">10.3182/20110828-6-IT-1002.03807</pub-id> </citation>
</ref>
<ref id="B58">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Vicsek</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Czir&#xf3;k</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Ben-Jacob</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Cohen</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Shochet</surname>
<given-names>O.</given-names>
</name>
</person-group> (<year>1995</year>). <article-title>Novel Type of Phase Transition in a System of Self-Driven Particles</article-title>. <source>Phys. Rev. Lett.</source> <volume>75</volume>, <fpage>1226</fpage>&#x2013;<lpage>1229</lpage>. <pub-id pub-id-type="doi">10.1103/PhysRevLett.75.1226</pub-id> </citation>
</ref>
<ref id="B59">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Yuan</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Qian</surname>
<given-names>Z.</given-names>
</name>
<etal/>
</person-group> (<year>2017</year>). &#x201c;<article-title>Optimal Topological Cycles and Their Application in Cardiac Trabeculae Restoration</article-title>,&#x201d; in <source>Proceedings of the Twenty- IJCAI-19</source>, <publisher-name>International Joint Conferences on 1136 Artificial Intelligence Organization</publisher-name>, <fpage>80</fpage>&#x2013;<lpage>92</lpage>. </citation>
</ref>
<ref id="B60">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xia</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Wei</surname>
<given-names>G. W.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Persistent Homology Analysis of Protein Structure, Flexibility, and Folding</article-title>. <source>Int. J.&#x20;Numer. Methods Biomed. Eng.</source> <volume>30</volume>, <fpage>814</fpage>&#x2013;<lpage>844</lpage>. <pub-id pub-id-type="doi">10.1002/cnm.2655</pub-id> </citation>
</ref>
<ref id="B61">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xia</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Mu</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Multiscale Persistent Functions for Biomolecular Structure Characterization</article-title>. <source>Bull. Math. Biol.</source> <volume>80</volume>, <fpage>1</fpage>&#x2013;<lpage>31</lpage>. <pub-id pub-id-type="doi">10.1007/s11538-017-0362-6</pub-id> </citation>
</ref>
<ref id="B62">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Yuan</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Metaxas</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Heuristic Search for Homology Localization Problem and its Application in Cardiac Trabeculae Reconstruction</article-title>. <source>Proceedings of the Twenty-Eighth1135International Joint Conference on Artificial Intelligence, IJCAI-19</source>, <fpage>1312</fpage>&#x2013;<lpage>1318</lpage>. <pub-id pub-id-type="doi">10.24963/ijcai.2019/182</pub-id> </citation>
</ref>
<ref id="B63">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zomorodian</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Carlsson</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2005</year>). <article-title>Computing Persistent Homology</article-title>. <source>Discrete Comput. Geometry</source> <volume>33</volume>, <fpage>249</fpage>&#x2013;<lpage>274</lpage>. <pub-id pub-id-type="doi">10.1007/s00454-004-1146-y</pub-id> </citation>
</ref>
</ref-list>
</back>
</article>