<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Appl. Math. Stat.</journal-id>
<journal-title>Frontiers in Applied Mathematics and Statistics</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Appl. Math. Stat.</abbrev-journal-title>
<issn pub-type="epub">2297-4687</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fams.2022.838546</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Applied Mathematics and Statistics</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Control in Boolean Networks With Model Checking</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name><surname>Cifuentes-Fontanals</surname> <given-names>Laura</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x0002A;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1496634/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Tonello</surname> <given-names>Elisa</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Siebert</surname> <given-names>Heike</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>Department of Mathematics and Computer Science, Freie Universit&#x000E4;t Berlin</institution>, <addr-line>Berlin</addr-line>, <country>Germany</country></aff>
<aff id="aff2"><sup>2</sup><institution>IMPRS-CBSC, Max Planck Institute for Molecular Genetics</institution>, <addr-line>Berlin</addr-line>, <country>Germany</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Jean Clairambault, Institut National de Recherche en Informatique et en Automatique (INRIA), France</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Franck Delaplace, Universit&#x000E9; Paris-Saclay, France; Jean-Paul Comet, Universit&#x000E9; C&#x000F4;te d&#x00027;Azur, France</p></fn>
<corresp id="c001">&#x0002A;Correspondence: Laura Cifuentes-Fontanals <email>l.cifuentes&#x00040;fu-berlin.de</email></corresp>
<fn fn-type="other" id="fn001"><p>This article was submitted to Mathematical Biology, a section of the journal Frontiers in Applied Mathematics and Statistics</p></fn></author-notes>
<pub-date pub-type="epub">
<day>26</day>
<month>04</month>
<year>2022</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>8</volume>
<elocation-id>838546</elocation-id>
<history>
<date date-type="received">
<day>17</day>
<month>12</month>
<year>2021</year>
</date>
<date date-type="accepted">
<day>22</day>
<month>02</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2022 Cifuentes-Fontanals, Tonello and Siebert.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Cifuentes-Fontanals, Tonello and Siebert</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 terms.</p></license> </permissions>
<abstract>
<p>Understanding control mechanisms in biological systems plays a crucial role in important applications, for instance in cell reprogramming. Boolean modeling allows the identification of possible efficient strategies, helping to reduce the usually high and time-consuming experimental efforts. Available approaches to control strategy identification usually focus either on attractor or phenotype control, and are unable to deal with more complex control problems, for instance phenotype avoidance. They also fail to capture, in many situations, all possible minimal strategies, finding instead only sub-optimal solutions. In order to fill these gaps, we present a novel approach to control strategy identification in Boolean networks based on model checking. The method is guaranteed to identify all minimal control strategies, and provides maximal flexibility in the definition of the control target. We investigate the applicability of the approach by considering a range of control problems for different biological systems, comparing the results, where possible, to those obtained by alternative control methods.</p></abstract>
<kwd-group>
<kwd>control strategy</kwd>
<kwd>Boolean network</kwd>
<kwd>model checking</kwd>
<kwd>attractor</kwd>
<kwd>phenotype</kwd>
<kwd>control</kwd>
</kwd-group>
<contract-sponsor id="cn001">Freie Universit&#x000E4;t Berlin<named-content content-type="fundref-id">10.13039/501100007537</named-content></contract-sponsor>
<counts>
<fig-count count="6"/>
<table-count count="8"/>
<equation-count count="7"/>
<ref-count count="22"/>
<page-count count="15"/>
<word-count count="11742"/>
</counts>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>1. Introduction</title>
<p>The study of control of cellular systems has opened multiple possibilities for application in bioengineering and medicine. It also provides the possibility to make predictions on model behavior, for instance about the reachability of phenotypes under certain mutations, that could be verified experimentally and used for model validation. Experimental approaches for the identification of effective control targets are usually costly and time consuming. To help reducing these efforts, mathematical modeling can be used to identify, <italic>in silico</italic>, potentially useful interventions that could lead to the reduction of experimental trials [<xref ref-type="bibr" rid="B1">1</xref>].</p>
<p>Boolean modeling is often used to model biological systems, since it is able to capture qualitative behaviors by describing the activating or inhibiting interactions between different species using logical functions. The species are represented by binary-valued nodes, whose two activity levels might indicate for instance in a gene-regulatory network whether a certain gene is expressed or not. The simplicity of the Boolean formalism helps coping with the usual problem of lack of parameter information when modeling biological processes while capturing the relevant dynamics of biological systems [<xref ref-type="bibr" rid="B2">2</xref>&#x02013;<xref ref-type="bibr" rid="B4">4</xref>].</p>
<p>In the context of control for drug target identification or cell reprogramming, the main goal is the identification of controls that require a minimal number of system interventions. Providing multiple alternatives for minimal control interventions is also desirable, so that suitable interventions for experimental implementation can be found. Furthermore, there are many different scenarios and goals to which control might be applied, for instance, to enforce or avoid a specific behavior in a biological system. An example of such a scenario could be a cell differentiation system where a particular cell type is to be avoided since it can be linked to the development of cancer or another pathology [<xref ref-type="bibr" rid="B5">5</xref>].</p>
<p>Many approaches have been developed for control of biological systems, covering different contexts and goals. Some of them focus on leading the system to an attractor of interest, starting from a specific initial state [<xref ref-type="bibr" rid="B6">6</xref>] or from any possible initial state [<xref ref-type="bibr" rid="B7">7</xref>]. This control problem is known as attractor control. However, in some cases, a small number of observable and measurable components is sufficient to capture the relevant features of the system attractors, for example the set of biomarkers defining a phenotype. In such cases, it might be useful to aim the control toward the phenotype defined by these biomarkers rather than a specific attractor, since fewer interventions might be sufficient. This approach, which targets a set of relevant variables instead of a specific attractor, is known as target control. Several methods have been developed for target control using different computation techniques [<xref ref-type="bibr" rid="B8">8</xref>&#x02013;<xref ref-type="bibr" rid="B11">11</xref>].</p>
<p>A basic approach to control is value percolation, which is also a core step in many more sophisticated methods [<xref ref-type="bibr" rid="B10">10</xref>, <xref ref-type="bibr" rid="B11">11</xref>]. Approaches based on value percolation can be implemented efficiently [<xref ref-type="bibr" rid="B12">12</xref>]. However, they are quite restrictive and might miss many possible control strategies. A step toward the identification of some of these missed control strategies using trap spaces was presented in [<xref ref-type="bibr" rid="B9">9</xref>]. Although this approach is more flexible than just value percolation, it also does not identify all the possible control strategies. In the last years, multiple methods have been developed for control strategy identification, looking for instance at the stable motifs of the system [<xref ref-type="bibr" rid="B7">7</xref>] or exploiting computational algebra methods [<xref ref-type="bibr" rid="B13">13</xref>]. These approaches are usually focused on targeting an attractor or subspace and they also do not generally uncover all possible minimal control strategies. In order to bridge this gap, recent works have tackled the problem of attractor control by using basins of attraction, sets of states from which only a specific attractor is reachable [<xref ref-type="bibr" rid="B14">14</xref>]. Such approaches increase in many cases the amount of strategies identified. However, they are still limited to control for attractors and lack flexibility to deal with groups of attractors or phenotypes as well as with attractor avoidance. To the best of our knowledge, there is no method that can identify all the optimal control strategies for a general set of states or attractors.</p>
<p>In this work, we introduce a new approach for control strategy identification that provides a complete solution set of minimal controls and allows full flexibility in the control target. Identifying all the minimal control strategies for a general set of states is a complex problem. It might require the full exploration of the state space, which grows exponentially with the size of the network. To deal with this computational explosion, we explore model checking techniques. Model checking is a verification method that allows one to determine whether a transition system satisfies a specific property. Although originating in the field of computer science, model checking has been successfully applied to analyse biological networks and a wide variety of tools have been developed [<xref ref-type="bibr" rid="B15">15</xref>]. Model checking presents many advantages, for instance the use of symbolic representation, which allows one to deal with systems with a large number of states and other problems that could not be handled otherwise. Yet, tackling a wider and more complex control problem naturally entails higher computational costs, since many shortcuts and reduction methods do not apply. Therefore, we investigate efficient preprocessing techniques that can be used to significantly reduce the computational cost and make it suitable for application.</p>
<p>As mentioned above, this work presents a model checking-based method to identify optimal control strategies for any target subset. We start with a general overview about Boolean networks (Section 2). Then we introduce the formal definition of control strategy and show some properties of value percolation that are used in our approach (Section 3). In Section 4, we introduce the main concepts of model checking needed for this work and establish the basis for the control strategy computation with model checking. The implementation of our approach is also detailed in this section, together with techniques to reduce the search space size and improve the performance of the method. Finally, in Section 5 we show the applicability of our method to different biological networks and compare our results with existing control approaches.</p></sec>
<sec id="s2">
<title>2. Background: Boolean Networks and Dynamics</title>
<p>We define a <italic>Boolean network</italic> as a function <italic>f</italic> : &#x1D539;<sup><italic>n</italic></sup> &#x02192; &#x1D539;<sup><italic>n</italic></sup>, with &#x1D539; &#x0003D; {0, 1}. The set of variables or components of <italic>f</italic> is denoted by <italic>V</italic> &#x0003D; {1, &#x02026;, <italic>n</italic>}. Given a Boolean function different dynamics can be defined depending on the way components are updated. A dynamics is usually represented by the <italic>state transition graph</italic> (STG), a graph whose set of vertices is the state space &#x1D539;<sup><italic>n</italic></sup> and whose edges represent the transitions between them. The <italic>synchronous dynamics SD</italic>(<italic>f</italic>) defines transitions that update at the same time all the components that can be updated. Thus, the synchronous state transition graph has an edge from <italic>x</italic> &#x02208; &#x1D539;<sup><italic>n</italic></sup> to <italic>y</italic> &#x02208; &#x1D539;<sup><italic>n</italic></sup> if and only if <italic>x</italic> &#x02260; <italic>y</italic> and <italic>y</italic> &#x0003D; <italic>f</italic>(<italic>x</italic>). In order to better capture the different times scales that might coexist in a biological system, the <italic>asynchronous dynamics AD</italic>(<italic>f</italic>) is often used. It defines transitions that update only one component at a time. Therefore, its state transition graph has an edge from <italic>x</italic> &#x02208; &#x1D539;<sup><italic>n</italic></sup> to <italic>y</italic> &#x02208; &#x1D539;<sup><italic>n</italic></sup> if there exists <italic>i</italic> &#x02208; <italic>V</italic> such that <italic>y</italic><sub><italic>i</italic></sub> &#x0003D; <italic>f</italic><sub><italic>i</italic></sub>(<italic>x</italic>) &#x02260; <italic>x</italic><sub><italic>i</italic></sub> and <italic>y</italic><sub><italic>j</italic></sub> &#x0003D; <italic>x</italic><sub><italic>j</italic></sub> for all <italic>j</italic> &#x02260; <italic>i</italic>. The <italic>generalized asynchronous dynamics GD</italic>(<italic>f</italic>) includes transitions that update a non-empty subset of components. Thus, given <italic>x, y</italic> &#x02208; &#x1D539;<sup><italic>n</italic></sup> there is a transition from <italic>x</italic> to <italic>y</italic> if there exists a subset &#x02205; &#x02260; <italic>I</italic> &#x02286; <italic>V</italic> such that <italic>y</italic><sub><italic>i</italic></sub> &#x0003D; <italic>f</italic><sub><italic>i</italic></sub>(<italic>x</italic>) &#x02260; <italic>x</italic><sub><italic>i</italic></sub> for all <italic>i</italic> &#x02208; <italic>I</italic> and <italic>y</italic><sub><italic>j</italic></sub> &#x0003D; <italic>x</italic><sub><italic>j</italic></sub> for all <italic>j</italic> &#x02209; <italic>I</italic>. To simplify the notation, we use <italic>D</italic>(<italic>f</italic>) to refer to any of these three dynamics.</p>
<p>A <italic>path</italic> in an STG is defined as a sequence of nodes <italic>x</italic><sup>0</sup>, <italic>x</italic><sup>1</sup>, &#x02026; such that there exists an edge from <italic>x</italic><sup><italic>i</italic>&#x02212;1</sup> to <italic>x</italic><sup><italic>i</italic></sup> for all <italic>i</italic> &#x02265; 1. We denote the set of paths starting in a state <italic>x</italic> as Paths(<italic>x</italic>). Given a state <italic>x</italic> &#x02208; &#x1D539;<sup><italic>n</italic></sup>, we define Reach(<italic>x</italic>) &#x0003D; {<italic>y</italic> &#x02208; &#x1D539;<sup><italic>n</italic></sup> | &#x02203;&#x003C0; &#x02208; Paths(<italic>x</italic>) s.t. <italic>y</italic> &#x02208; &#x003C0;} and given <italic>S</italic> &#x02286; &#x1D539;<sup><italic>n</italic></sup>, Reach(<italic>S</italic>) is the set {<italic>y</italic> &#x02208; &#x1D539;<sup><italic>n</italic></sup> | <italic>y</italic> &#x02208; Reach(<italic>x</italic>) for some <italic>x</italic> &#x02208; <italic>S</italic>}. Note that <italic>x</italic> &#x02208; Reach(<italic>x</italic>), since <italic>x</italic> is the 1-element path to <italic>x</italic>. A set <italic>T</italic> &#x02286; &#x1D539;<sup><italic>n</italic></sup> such that <italic>T</italic> &#x0003D; Reach(<italic>T</italic>) is called a <italic>trap set</italic>. Trap sets are therefore unions of strongly connected components that do not admit any outgoing edge. An <italic>attractor</italic> is a minimal trap set under inclusion. Attractors correspond to the terminal strongly connected components of the STG and they might vary in different updates. In biological systems, attractors consisting of only one state (<italic>steady states</italic>) might correspond to different cell fates, while attractors consisting of more than one state (<italic>cyclic attractors</italic>) might be associated with sustained oscillation. <xref ref-type="fig" rid="F1">Figure 1</xref> shows a representation of the three different dynamics (synchronous, asynchronous, and generalized asynchronous) for a Boolean network in four variables. States belonging to attractors are denoted in bold.</p>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption><p>State transition graphs of the Boolean function <inline-formula><mml:math id="M1"><mml:mi>f</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M2"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula><mml:math id="M3"><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula><mml:math id="M4"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> in <bold>(A)</bold> synchronous, <bold>(B)</bold> asynchronous, and <bold>(C)</bold> general asynchronous dynamics. The trap spaces, denoted by colored boxes, (0&#x02217;&#x02217;0, 10&#x02217;&#x02217;, 10&#x02217;1, 1001, &#x02217;&#x02217;&#x02217;&#x02217;) and the steady state (1001) are the same in the three dynamics, while the cyclic attractors (marked in blue) vary. All three dynamics admit one cyclic attractor, the set {0110, 0010, 0000} in the synchronous case, {0100, 0110, 0010} in the asynchronous and {0100, 0110, 0010, 0000} in the general asynchronous. <bold>(D)</bold> Asynchronous dynamics of the restriction of <italic>f</italic> to &#x003A9; &#x0003D; 1&#x02217;&#x02217;&#x02217;, <italic>f</italic><sub>&#x021BE;<sub>&#x003A9;</sub></sub> &#x0003D; (1, 0, <inline-formula><mml:math id="M5"><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula><mml:math id="M6"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. &#x003A9; percolates to <italic>S</italic> &#x0003D; 10&#x02217;&#x02217; under <italic>f</italic><sub>&#x021BE;<sub>&#x003A9;</sub></sub>. <italic>S</italic> is the percolated subspace from &#x003A9; with respect to <italic>f</italic><sub>&#x021BE;<sub>&#x003A9;</sub></sub> since <italic>S</italic> &#x0003D; <italic>F</italic>(<italic>f</italic><sub>&#x021BE;<sub>&#x003A9;</sub></sub>)(<italic>S</italic>) and consequently no further percolation is possible.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fams-08-838546-g0001.tif"/>
</fig>
<p>Given <italic>I</italic> &#x02286; <italic>V</italic> and <italic>c</italic> &#x02208; &#x1D539;<sup><italic>n</italic></sup> we define the <italic>subspace</italic> induced by <italic>I</italic> and <italic>c</italic> as the set &#x003A3;(<italic>I, c</italic>) &#x0003D; {<italic>x</italic> &#x02208; &#x1D539;<sup><italic>n</italic></sup> | <italic>x</italic><sub><italic>i</italic></sub> &#x0003D; <italic>c</italic><sub><italic>i</italic></sub> &#x02200;<italic>i</italic> &#x02208; <italic>I</italic>}. We denote a subspace by writing the value 0 or 1 for variables that are fixed and &#x02217; for the free variables. Given a subspace <italic>S</italic>, we use <italic>S</italic><sub><italic>i</italic></sub> to denote the value of a fixed component <italic>i</italic>. For example, 0&#x02217;&#x02217;1 denotes the subspace fixing the first variable to 0 and the fourth to 1, that is, <italic>S</italic> &#x0003D; {<italic>x</italic> &#x02208; &#x1D539;<sup><italic>n</italic></sup> | <italic>x</italic><sub>1</sub> &#x0003D; 0, <italic>x</italic><sub>4</sub> &#x0003D; 1} and <italic>S</italic><sub>1</sub> &#x0003D; 0 and <italic>S</italic><sub>4</sub> &#x0003D; 1. A <italic>trap space</italic> is a subspace that is also a trap set. Since the minimal subspace containing a state and all of its successors in a state transition graph is the same in all updates, trap spaces of a Boolean network, as opposed to attractors or trap sets, are always the same in any update. The Boolean network shown in <xref ref-type="fig" rid="F1">Figure 1</xref> has five trap spaces: 0&#x02217;&#x02217;0, 10&#x02217;&#x02217;, 10&#x02217;1, 1001, &#x02217;&#x02217;&#x02217;&#x02217;.</p>
<p>In this work we consider interventions that fix (or &#x0201C;freeze&#x0201D;) certain components to specific values. Note that a set of such interventions can be seen as a subspace and the effect that these interventions have on the dynamics can be described by restricting the original Boolean function to the intervention subspace. Given a Boolean function <italic>f</italic> and a subspace &#x00398; &#x0003D; &#x003A3;(<italic>I, c</italic>) we define the restriction of <italic>f</italic> to the subspace &#x00398; as:</p>
<p>
<disp-formula id="E1"><mml:math id="M9"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x021BE;</mml:mo></mml:mrow><mml:mrow><mml:mo>&#x00398;</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>:</mml:mo><mml:mo>&#x00398;</mml:mo><mml:mo>&#x02192;</mml:mo><mml:mo>&#x00398;</mml:mo><mml:mo>,</mml:mo><mml:mtext class="textrm" mathvariant="normal">where&#x000A0;for&#x000A0;all&#x000A0;</mml:mtext><mml:mi>i</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mi>V</mml:mi><mml:mtext class="textrm" mathvariant="normal">,</mml:mtext><mml:msub><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x021BE;</mml:mo></mml:mrow><mml:mrow><mml:mo>&#x00398;</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd><mml:mtd><mml:mi>i</mml:mi><mml:mo>&#x02209;</mml:mo><mml:mi>I</mml:mi><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mtd><mml:mtd><mml:mi>i</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mi>I</mml:mi><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:math></disp-formula>
Note that all the definitions above can be applied to the restriction by identifying <italic>f</italic><sub>&#x021BE;<sub>&#x00398;</sub></sub> with a Boolean function on &#x1D539;<sup><italic>n</italic>&#x02212;|<italic>I</italic>|</sup>. An example of the dynamics of a Boolean function restricted to a subspace is shown in <xref ref-type="fig" rid="F2">Figure 2</xref>.</p>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption><p><bold>(A)</bold> Asynchronous dynamics of the Boolean function <inline-formula><mml:math id="M7"><mml:mi>f</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> with two steady states 110 and 011 (marked in gray). The states and paths inside the subspace &#x003A9; &#x0003D; &#x02217;&#x02217;0 (dotted) are marked in red. <bold>(B)</bold> Asynchronous dynamics of the restriction of <italic>f</italic> to &#x003A9; &#x0003D; &#x02217;&#x02217;0, <inline-formula><mml:math id="M8"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x021BE;</mml:mo></mml:mrow><mml:mrow><mml:mo>&#x003A9;</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. &#x003A9; is a control strategy for <italic>P</italic> &#x0003D; 110 in <italic>AD</italic>(<italic>f</italic>). &#x003A9; does not percolate to <italic>P</italic> nor to any non-trivial trap space. <italic>T</italic> &#x0003D; 110 &#x02286; <italic>P</italic> (in gray) is the only minimal trap space of <italic>f</italic><sub>&#x021BE;<sub>&#x003A9;</sub></sub> and is complete in <italic>D</italic>(<italic>f</italic><sub>&#x021BE;<sub>&#x003A9;</sub></sub>).</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fams-08-838546-g0002.tif"/>
</fig></sec>
<sec id="s3">
<title>3. Control Strategies: Value Percolation and Completeness</title>
<p>A control strategy is defined as a set of interventions that lead the controlled system to a target subset. This target subset usually represents a specific stable behavior, for instance an attractor or a subspace representing a phenotype. The formal definition of a control strategy is given below.</p>
<p><bold>Definition 3.1</bold>. Given a Boolean network <italic>f</italic> and a subset <italic>P</italic> &#x02286; &#x1D539;<sup><italic>n</italic></sup>, a <italic>control strategy for the target P</italic> in <italic>D</italic>(<italic>f</italic>) is a subspace &#x00398; &#x02286; &#x1D539;<sup><italic>n</italic></sup> such that, for any attractor <inline-formula><mml:math id="M10"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow></mml:math></inline-formula> of <italic>D</italic>(<italic>f</italic><sub>&#x021BE;<sub>&#x00398;</sub></sub>), <inline-formula><mml:math id="M11"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow><mml:mo>&#x02286;</mml:mo><mml:mi>P</mml:mi></mml:math></inline-formula>.</p>
<p>In other words, a subspace &#x00398; &#x0003D; &#x003A3;(<italic>I, c</italic>) is a control strategy for a subset <italic>P</italic> if fixing the variables in <italic>I</italic> to their corresponding values in <italic>c</italic> forces the system to have attractors only in the desired target <italic>P</italic>. Note that the asynchronous and generalized dynamics for a control strategy can contain non-attractive cycles, which give rise to infinite trajectories that do not reach any attractor. In application, such trajectories are usually viewed as having probability zero and are not further considered in the context of attractor analysis and control. We adopt the same view in this work.</p>
<p>The size of a control strategy &#x00398; &#x0003D; &#x003A3;(<italic>I, c</italic>) is defined as the size of <italic>I</italic>, and is therefore the number of interventions. Optimal control strategies are the ones with the lowest number of interventions, that is, the maximal subspaces with respect to inclusion. An example of a control strategy is shown in <xref ref-type="fig" rid="F2">Figure 2</xref>, where fixing the variable <italic>x</italic><sub>3</sub> &#x0003D; 0 is enough to guarantee that the system only has one attractor, the target steady state 110.</p>
<p>Note that Definition 3.1 considers a subset as the control target, encompassing both attractor control and target control. Moreover, it provides the flexibility to deal with further control problems, such as control to union of attractors (<inline-formula><mml:math id="M12"><mml:mi>P</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mo>&#x022C3;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>) or attractor avoidance (<inline-formula><mml:math id="M13"><mml:mi>P</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mo>&#x1D539;</mml:mo></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msup><mml:mo>\</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow></mml:math></inline-formula>).</p>
<sec>
<title>3.1. Percolation</title>
<p>In this subsection we introduce formally the concept of percolation, used in many approaches to control. We also deduce properties of percolated subspaces that are useful for control strategy identification and that are used later in our approach.</p>
<p>The concept of value percolation is based on the idea that fixing of some components might induce other components to get fixed downstream. We define the percolation function with respect to <italic>f</italic> as the function that associates to every subspace <italic>S</italic> the subspace determined by the components fixed by <italic>f</italic> within <italic>S</italic>.</p>
<p><bold>Definition 3.2</bold>. Given a Boolean function <italic>f</italic>, the <italic>percolation function</italic> with respect to <italic>f</italic> is the function <inline-formula><mml:math id="M14"><mml:mi>F</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>:</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">S</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">S</mml:mi></mml:mrow></mml:math></inline-formula>, <italic>S</italic> &#x021A6; <italic>F</italic>(<italic>f</italic>)(<italic>S</italic>), where <inline-formula><mml:math id="M15"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">S</mml:mi></mml:mrow></mml:math></inline-formula> is the set of all subspaces in &#x1D539;<sup><italic>n</italic></sup> and <italic>F</italic>(<italic>f</italic>)(<italic>S</italic>) is the smallest subspace that contains <italic>f</italic>(<italic>S</italic>) (with respect to inclusion).</p>
<p>Explicitly, given a subspace <inline-formula><mml:math id="M16"><mml:mi>S</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">S</mml:mi></mml:mrow></mml:math></inline-formula>, <italic>F</italic>(<italic>f</italic>)(<italic>S</italic>) &#x0003D; &#x003A3;(<italic>I, c</italic>) with <italic>I</italic> &#x0003D; {<italic>i</italic> &#x02208; <italic>V</italic> | |<italic>f</italic><sub><italic>i</italic></sub>(<italic>S</italic>)| &#x0003D; 1} and <italic>c</italic> any state &#x1D539;<sup><italic>n</italic></sup> such that in <italic>c</italic><sub><italic>i</italic></sub> &#x0003D; <italic>f</italic><sub><italic>i</italic></sub>(<italic>x</italic>) for all <italic>x</italic> &#x02208; <italic>S</italic> for <italic>i</italic> &#x02208; <italic>I</italic>.</p>
<p><bold>Definition 3.3</bold>. Let <italic>f</italic> be a Boolean function and <italic>S, S</italic>&#x02032; &#x02286; &#x1D539;<sup><italic>n</italic></sup> two subspaces. We say that the subspace <italic>S percolates to S</italic>&#x02032; <italic>under f</italic> if and only if there exists <italic>k</italic> &#x02265; 0 such that <italic>F</italic>(<italic>f</italic>)<sup><italic>k</italic></sup>(<italic>S</italic>) &#x0003D; <italic>S</italic>&#x02032;.</p>
<p>For any trap space <italic>T</italic> and its image <italic>T</italic>&#x02032; &#x0003D; <italic>F</italic>(<italic>f</italic>)(<italic>T</italic>), we have <italic>T</italic>&#x02032; &#x02286; <italic>T</italic>, since by definition <italic>F</italic> preserves the fixed components of <italic>T</italic>. The free components in <italic>T</italic> might get fixed or remain free depending on the Boolean function <italic>f</italic>. In fact, <italic>T</italic>&#x02032; is a trap space of <italic>f</italic>, since for any fixed variable <italic>i</italic> &#x02208; <italic>V</italic> in <italic>T</italic>&#x02032;, <inline-formula><mml:math id="M17"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> by definition of <italic>F</italic>. Moreover, <italic>F</italic>(<italic>f</italic>)<sup><italic>k</italic></sup>(<italic>T</italic>) is a trap space for any <italic>k</italic> &#x02265; 0. An example of a subspace &#x003A9; &#x0003D; 1&#x02217;&#x02217;&#x02217; percolating to another subspace <italic>S</italic> &#x0003D; 10&#x02217;&#x02217; is shown in <xref ref-type="fig" rid="F1">Figure 1</xref>. Both &#x003A9; and <italic>S</italic> are trap spaces of <italic>f</italic><sub>&#x021BE;<sub>&#x003A9;</sub></sub>.</p>
<p><bold>Remark 3.4</bold>. Let <italic>f</italic> be a Boolean function and <italic>S</italic> &#x02286; &#x1D539;<sup><italic>n</italic></sup> a subspace. Let <italic>k</italic> &#x02265; 0 and <inline-formula><mml:math id="M18"><mml:msup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>F</mml:mi><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x021BE;</mml:mo></mml:mrow><mml:mrow><mml:mi>S</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. Then <italic>S</italic><sup><italic>k</italic></sup> is a trap space of <italic>f</italic><sub>&#x021BE;<sub><italic>S</italic></sub></sub> for every <italic>k</italic> &#x02265; 0.</p>
<p>Note that the paths in the dynamics of <italic>F</italic>(<italic>f</italic>) starting at a trap space <italic>T</italic> cannot have cycles and, consequently, all the reachable attractors from <italic>T</italic> in these dynamics are fixed points. When considering the synchronous dynamics of <italic>F</italic>(<italic>f</italic>), each initial trap space <italic>T</italic> leads to a unique fixed point.</p>
<p><bold>Definition 3.5</bold>. Given a Boolean function <italic>f</italic> and a trap space <italic>T</italic>, we call the unique fixed point <italic>T</italic>&#x02032; of the synchronous dynamics of <italic>F</italic>(<italic>f</italic>) reachable from <italic>T</italic> the <italic>percolated subspace from T with respect to f</italic>, that is, <italic>T</italic>&#x02032; &#x0003D; <italic>F</italic>(<italic>f</italic>)<sup><italic>k</italic></sup>(<italic>T</italic>) with <italic>k</italic> such that <italic>F</italic>(<italic>f</italic>)<sup><italic>k</italic></sup>(<italic>T</italic>) &#x0003D; <italic>F</italic>(<italic>f</italic>)<sup><italic>r</italic></sup>(<italic>T</italic>) for all <italic>r</italic> &#x02265; <italic>k</italic>.</p>
<p>In order to relate value percolation to control strategies, we derive some dynamical properties of percolated subspaces.</p>
<p>L<sc>emma</sc> 3.6. <italic>Let f be a Boolean function, T</italic> &#x02286; &#x1D539;<sup><italic>n</italic></sup> <italic>a trap space. Let k</italic> &#x02265; 0 and <italic>T</italic><sup><italic>k</italic></sup> &#x0003D; <italic>F</italic>(<italic>f</italic>)<sup><italic>k</italic></sup>(<italic>T</italic>). <italic>Then for every x</italic> &#x02208; <italic>T there exists a path in D</italic>(<italic>f</italic>) <italic>from x to some y</italic> &#x02208; <italic>T</italic><sup><italic>k</italic></sup>.</p>
<p>P<sc>roof</sc>. It is enough to show that if <italic>T</italic> is a trap space, then for every <italic>x</italic> &#x02208; <italic>T</italic> there exists a path in <italic>D</italic>(<italic>f</italic>) from <italic>x</italic> to some <italic>y</italic> &#x02208; <italic>F</italic>(<italic>f</italic>)(<italic>T</italic>). Set <italic>T</italic>&#x02032; &#x0003D; <italic>F</italic>(<italic>f</italic>)(<italic>T</italic>), with <italic>I</italic>&#x02032; &#x02286; <italic>V</italic> being the set of fixed variables in <italic>T</italic>&#x02032;. Since <italic>T</italic>&#x02032; &#x02286; <italic>T</italic>, for all <italic>i</italic> &#x02208; <italic>I</italic>&#x02032;, <inline-formula><mml:math id="M19"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> by definition of <italic>F</italic>. Now let us look at every update separately. In the asynchronous dynamics, for every <italic>i</italic> &#x02208; <italic>I</italic>&#x02032;, <italic>x</italic> admits a successor <italic>y</italic> in <italic>AD</italic>(<italic>f</italic>) with <inline-formula><mml:math id="M20"><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and <italic>y</italic><sub><italic>j</italic></sub> &#x0003D; <italic>x</italic><sub><italic>j</italic></sub> for <italic>j</italic> &#x02260; <italic>i</italic>; therefore there exists a path from any state in <italic>T</italic> to <italic>T</italic>&#x02032;. In the synchronous dynamics, <inline-formula><mml:math id="M21"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> for all <italic>i</italic> &#x02208; <italic>I</italic>&#x02032; and so <italic>x</italic> admits a successor <italic>y</italic> &#x02208; <italic>T</italic>&#x02032;. The case of the generalized asynchronous dynamics follows from the other cases, since all the paths in <italic>SD</italic>(<italic>f</italic>) or <italic>AD</italic>(<italic>f</italic>) are also paths in <italic>GD</italic>(<italic>f</italic>).</p>
<p>C<sc>orollary</sc> 3.6.1. <italic>Let f be a Boolean function, S</italic> &#x02286; &#x1D539;<sup><italic>n</italic></sup> <italic>a subspace. Let k</italic> &#x02265; 0 <italic>and</italic> <inline-formula><mml:math id="M22"><mml:msup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>F</mml:mi><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x021BE;</mml:mo></mml:mrow><mml:mrow><mml:mi>S</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. <italic>Then for every x</italic> &#x02208; <italic>S there exists a path in D</italic>(<italic>f</italic><sub>&#x021BE;<sub><italic>S</italic></sub></sub>) <italic>from x to some y</italic> &#x02208; <italic>S</italic><sup><italic>k</italic></sup>.</p>
<p>L<sc>emma</sc> 3.7. <italic>Let f be a Boolean function and S</italic> &#x02286; &#x1D539;<sup><italic>n</italic></sup> a subspace. Let <italic>k</italic> &#x02265; 0 <italic>and</italic> <inline-formula><mml:math id="M23"><mml:msup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>F</mml:mi><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x021BE;</mml:mo></mml:mrow><mml:mrow><mml:mi>S</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. <italic>Then</italic> <inline-formula><mml:math id="M24"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow></mml:math></inline-formula> <italic>is an attractor of f</italic><sub>&#x021BE;<sub><italic>S</italic></sub></sub> <italic>if and only if</italic> <inline-formula><mml:math id="M25"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow><mml:mo>&#x02286;</mml:mo><mml:msup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> <italic>and</italic> <inline-formula><mml:math id="M26"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow></mml:math></inline-formula> <italic>is an attractor of</italic> <inline-formula><mml:math id="M27"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x021BE;</mml:mo></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p>P<sc>roof</sc>. As noted in Remark 3.4, <italic>S</italic><sup><italic>k</italic></sup> is a trap space of <italic>f</italic><sub>&#x021BE;<sub><italic>S</italic></sub></sub>. Then <inline-formula><mml:math id="M28"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x021BE;</mml:mo></mml:mrow><mml:mrow><mml:mi>S</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x021BE;</mml:mo></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> for all <italic>x</italic> &#x02208; <italic>S</italic><sup><italic>k</italic></sup>. Therefore, any attractor of <inline-formula><mml:math id="M29"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x021BE;</mml:mo></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula> is also an attractor of <italic>f</italic><sub>&#x021BE;<sub><italic>S</italic></sub></sub> and if <inline-formula><mml:math id="M30"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow></mml:math></inline-formula> is an attractor of <italic>f</italic><sub>&#x021BE;<sub><italic>S</italic></sub></sub> and <inline-formula><mml:math id="M31"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow><mml:mo>&#x02286;</mml:mo><mml:msup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, then <inline-formula><mml:math id="M32"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow></mml:math></inline-formula> is also an attractor of <inline-formula><mml:math id="M33"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x021BE;</mml:mo></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula>. Let <inline-formula><mml:math id="M34"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow></mml:math></inline-formula> be an attractor of <italic>f</italic><sub>&#x021BE;<sub><italic>S</italic></sub></sub>. Then <inline-formula><mml:math id="M35"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mtext>Reac</mml:mtext><mml:msub><mml:mrow><mml:mtext>h</mml:mtext></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x021BE;</mml:mo></mml:mrow><mml:mrow><mml:mi>S</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. By Corollary 3.6.1, for every <italic>x</italic> &#x02208; <italic>S</italic> there exists a path in <italic>f</italic><sub>&#x021BE;<sub><italic>S</italic></sub></sub> from <italic>x</italic> to some <italic>y</italic> &#x02208; <italic>S</italic><sup><italic>k</italic></sup>. Therefore, <inline-formula><mml:math id="M36"><mml:mtext>Reac</mml:mtext><mml:msub><mml:mrow><mml:mtext>h</mml:mtext></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x021BE;</mml:mo></mml:mrow><mml:mrow><mml:mi>S</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02229;</mml:mo><mml:msup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>&#x02260;</mml:mo><mml:mi>&#x02205;</mml:mi></mml:math></inline-formula> and so, <inline-formula><mml:math id="M37"><mml:msup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>&#x02229;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow><mml:mo>&#x02260;</mml:mo><mml:mi>&#x02205;</mml:mi></mml:math></inline-formula>. Since <italic>S</italic><sup><italic>k</italic></sup> is a trap space of <italic>f</italic><sub>&#x021BE;<sub><italic>S</italic></sub></sub>, <inline-formula><mml:math id="M38"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow><mml:mo>&#x02286;</mml:mo><mml:msup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>. Therefore, all the attractors of <italic>f</italic><sub>&#x021BE;<sub><italic>S</italic></sub></sub> are contained in <italic>S</italic><sup><italic>k</italic></sup> and, consequently, are also attractors of <inline-formula><mml:math id="M39"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x021BE;</mml:mo></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p>C<sc>orollary</sc> 3.7.1. <italic>Let f be a Boolean function and S</italic> &#x02286; &#x1D539;<sup><italic>n</italic></sup> <italic>a subspace and P</italic> &#x02286; &#x1D539;<sup><italic>n</italic></sup> <italic>a subset. Let k</italic> &#x02265; 0 <italic>and</italic> <inline-formula><mml:math id="M40"><mml:msup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>F</mml:mi><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x021BE;</mml:mo></mml:mrow><mml:mrow><mml:mi>S</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. <italic>S is a control strategy for P if and only if S</italic><sup><italic>k</italic></sup> <italic>is a control strategy for P</italic>.</p>
<p>Corollary 3.7.1 provides a way to identify control strategies or discard candidate subspaces by using value percolation. Moreover, checking whether the percolated subspace satisfies the conditions of Definition 3.1 instead of the original subspace allows us to reduce the dimension of the restricted network and, consequently, to simplify the verification problem. In the example shown in <xref ref-type="fig" rid="F1">Figure 1</xref>, it would be enough to check the subspace <italic>S</italic> to know whether the subspace &#x003A9; is a control strategy.</p>
<p>Percolation-only methods select candidate subspaces and percolate them. If the resulting subspace is contained in the target subspace, the candidate subspace is identified as a control strategy [<xref ref-type="bibr" rid="B10">10</xref>]. This type of control strategies can be identified efficiently [<xref ref-type="bibr" rid="B12">12</xref>]. However, additional control strategies might exist, that do not directly percolate to the target subspace, as shown in [<xref ref-type="bibr" rid="B9">9</xref>], or even to non-trivial intermediate trap spaces. An example of this scenario can be seen in <xref ref-type="fig" rid="F2">Figure 2</xref>, where the control strategy &#x003A9; does not percolate to the target nor to any non-trivial trap space. With our approach, value percolation can also be exploited as a first step toward control strategy identification, as a means to achieve dimensionality reduction, as described by Corollary 3.7.1.</p></sec>
<sec>
<title>3.2. Completeness</title>
<p>To improve control detection, we propose to define sufficient conditions on the system restricted to a candidate subspace to identify this candidate as a control strategy. Moreover, conditions on minimal trap spaces can be defined in order to deduce properties of the system attractors, in particular, their belonging to a target subset.</p>
<p><bold>D<sc>efinition</sc> 3.8</bold>. A set of trap spaces <inline-formula><mml:math id="M41"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">T</mml:mi></mml:mrow></mml:math></inline-formula> is <italic>complete</italic> in <italic>D</italic>(<italic>f</italic>) if and only if for every attractor <inline-formula><mml:math id="M42"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow></mml:math></inline-formula> of <italic>D</italic>(<italic>f</italic>) there exists <inline-formula><mml:math id="M43"><mml:mi>T</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">T</mml:mi></mml:mrow></mml:math></inline-formula> such that <inline-formula><mml:math id="M44"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow><mml:mo>&#x02286;</mml:mo><mml:mi>T</mml:mi></mml:math></inline-formula>. A Boolean function <italic>f</italic> is <italic>complete</italic> in the dynamics <italic>D</italic>(<italic>f</italic>) if its minimal trap spaces are complete in <italic>D</italic>(<italic>f</italic>).</p>
<p>Completeness of the minimal trap spaces has been used for attractor approximation and it can be detected using model checking as described in [<xref ref-type="bibr" rid="B16">16</xref>]. The following proposition presents sufficient conditions for a subspace to be a control strategy. Given a candidate subspace, if the set of minimal trap spaces of the restricted system is complete and contained in the target subset, then the candidate subspace is a control strategy for that subset.</p>
<p>P<sc>roposition</sc> 3.9. <italic>Let f be a Boolean function, P</italic>, &#x00398; &#x02286; &#x1D539;<sup><italic>n</italic></sup> <italic>subspaces and</italic> <inline-formula><mml:math id="M45"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">T</mml:mi></mml:mrow></mml:math></inline-formula> <italic>the set of minimal trap spaces of f</italic><sub>&#x021BE;<sub>&#x00398;</sub></sub>. <italic>If all the trap spaces of</italic> <inline-formula><mml:math id="M46"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">T</mml:mi></mml:mrow></mml:math></inline-formula> <italic>are contained in P and</italic> <inline-formula><mml:math id="M47"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">T</mml:mi></mml:mrow></mml:math></inline-formula> <italic>is complete in D</italic>(<italic>f</italic><sub>&#x021BE;<sub>&#x00398;</sub></sub>), then &#x00398; is a control strategy of <italic>P</italic>.</p>
<p>P<sc>roof</sc>. Let <inline-formula><mml:math id="M48"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow></mml:math></inline-formula> be an attractor of <italic>D</italic>(<italic>f</italic><sub>&#x021BE;<sub>&#x00398;</sub></sub>). Since <inline-formula><mml:math id="M49"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">T</mml:mi></mml:mrow></mml:math></inline-formula> is complete in <italic>D</italic>(<italic>f</italic><sub>&#x021BE;<sub>&#x00398;</sub></sub>), there exists a minimal trap space <inline-formula><mml:math id="M50"><mml:mi>T</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">T</mml:mi></mml:mrow></mml:math></inline-formula> such that <inline-formula><mml:math id="M51"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow><mml:mo>&#x02286;</mml:mo><mml:mi>T</mml:mi></mml:math></inline-formula>. Therefore, <inline-formula><mml:math id="M52"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow><mml:mo>&#x02286;</mml:mo><mml:mi>T</mml:mi><mml:mo>&#x02286;</mml:mo><mml:mi>P</mml:mi></mml:math></inline-formula>.</p>
<p>Proposition 3.9 provides sufficient conditions that allow us to identify new control strategies missed by percolation-based approaches. An example of such a control strategy is shown in <xref ref-type="fig" rid="F2">Figure 2</xref>. The subspace &#x003A9; is not a trap space nor percolates to any smaller subspace. Since <italic>f</italic><sub>&#x021BE;<sub>&#x003A9;</sub></sub> is complete in <italic>AD</italic>(<italic>f</italic><sub>&#x021BE;<sub>&#x003A9;</sub></sub>) and its only attractor is included in the target <italic>P</italic>, &#x003A9; is identified as a control strategy. We refer to this approach for control strategy identification as the <italic>completeness</italic> approach. However, it still does not characterize all the possible control strategies satisfying Definition 3.1. <xref ref-type="fig" rid="F3">Figure 3</xref> shows a subspace &#x003A9; that is a control strategy for the target <italic>P</italic> but, since &#x003A9; is the unique trap space in <italic>f</italic><sub>&#x021BE;<sub>&#x003A9;</sub></sub> and &#x003A9; &#x02288; <italic>P</italic>, Proposition 3.9 cannot be applied. Thus, &#x003A9; is not detected as a control strategy by the completeness approach. To obtain the full solution set, we formulate a model checking approach, as shown in the next section.</p>
<fig id="F3" position="float">
<label>Figure 3</label>
<caption><p>The asynchronous dynamics of a Boolean function <italic>f</italic> and its restriction <italic>f</italic><sub>&#x021BE;<sub>&#x003A9;</sub></sub>, with &#x003A9; &#x0003D; 0&#x02217;&#x02217;&#x02217;, are represented in <bold>(A,B)</bold>, respectively. Attractors are marked in gray. &#x003A9; is a control strategy for <italic>P</italic> &#x0003D; 00&#x02217;&#x02217; in <italic>AD</italic>(<italic>f</italic>). &#x003A9; is not a trap space in <italic>f</italic> and it does not percolate to the target <italic>P</italic> nor to any other trap space in <italic>f</italic><sub>&#x021BE;<sub>&#x003A9;</sub></sub>. Since &#x003A9; is the unique trap space in <italic>f</italic><sub>&#x021BE;<sub>&#x003A9;</sub></sub> and &#x003A9; &#x02288; <italic>P</italic>, &#x003A9; would not be identified as control strategy by the completeness approach.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fams-08-838546-g0003.tif"/>
</fig></sec></sec>
<sec id="s4">
<title>4. Control Strategies With Model Checking</title>
<sec>
<title>4.1. Model Checking</title>
<p>This section provides a practical introduction to the model checking concepts required for the description of our approach. For a more extensive and detailed explanation of model checking we refer the reader to [<xref ref-type="bibr" rid="B17">17</xref>]. Model checking is a formal method used in computer science to solve verification problems. Its application to the control strategy problem presents many advantages, for instance the use of symbolic representation, which allows one to deal with systems with a large number of states, like STGs of Boolean networks. Moreover, many efficient algorithms have been developed and are available for running model checking queries. An overview of existing model checking tools in the context of biochemical networks analysis can be found in [<xref ref-type="bibr" rid="B15">15</xref>].</p>
<p>Model checking allows one to verify whether a given transition system satisfies a specific property. A transition system is defined as a set of states and a set of transitions, which represent changes from one state to another. Formally, a labeled transition system (LTS) is defined by a tuple (<sans-serif>S,T,L</sans-serif>) where <sans-serif>S</sans-serif> is a finite set of states, <sans-serif>T</sans-serif> &#x02286; <sans-serif>S</sans-serif> &#x000D7; <sans-serif>S</sans-serif> is a transition relation such that (<italic>x</italic><sup>1</sup>, <italic>x</italic><sup>2</sup>) &#x02208; <sans-serif>T</sans-serif> if there exists a possible transition from state <italic>x</italic><sup>1</sup> to state <italic>x</italic><sup>2</sup> and <sans-serif>L</sans-serif> : <sans-serif>S</sans-serif> &#x02192; 2<sup><italic>AP</italic></sup> is a labeling function with <italic>AP</italic> a finite set of atomic propositions. In the following, a transition (<italic>x</italic><sup>1</sup>, <italic>x</italic><sup>2</sup>) will also be denoted by <italic>x</italic><sup>1</sup> &#x02192; <italic>x</italic><sup>2</sup>. The labeling function <sans-serif>L</sans-serif> gives a set <sans-serif>L</sans-serif>(<italic>x</italic>) &#x02208; 2<sup><italic>AP</italic></sup> of atomic propositions for each state <italic>x</italic> which includes exactly the atomic propositions satisfied by <italic>x</italic>. In the Boolean context, an STG defines an LTS, where the set of states is &#x1D539;<sup><italic>n</italic></sup> and the transitions are defined by the Boolean function and the type of update that is chosen. For our purposes, we need a deadlock-free transition system, so we add extra transitions (<italic>x, x</italic>) &#x02208; <sans-serif>T</sans-serif> for every steady state <italic>x</italic> &#x02208; &#x1D539;<sup><italic>n</italic></sup>. We use the atomic propositions <italic>AP</italic> &#x0003D; {(<italic>v</italic> &#x0003D; <italic>c</italic>) | <italic>v</italic> &#x02208; <italic>V, c</italic> &#x02208; &#x1D539;} and define the labeling function by (<italic>v</italic> &#x0003D; <italic>c</italic>) &#x02208; <sans-serif>L</sans-serif>(<italic>x</italic>) if and only if <italic>x</italic><sub><italic>v</italic></sub> &#x0003D; <italic>c</italic>.</p>
<p>There are different ways to express properties of a transition system. In our case, we use Computational Tree Logic (CTL). CTL is based on a branching notion of time, where the behavior of the system is represented by a tree of states. In the case of Boolean networks, one can imagine that every path starting in a state <italic>x</italic> &#x02208; &#x1D539;<sup><italic>n</italic></sup> is represented as a branch in a tree rooted in <italic>x</italic>. In the following we introduce the main concepts of CTL.</p>
<p>We distinguish between state properties and path properties. In this context, a <italic>path</italic> is an infinite sequence <italic>x</italic><sup>0</sup>, <italic>x</italic><sup>1</sup>, &#x02026; &#x02208; <sans-serif>S</sans-serif> such that (<italic>x</italic><sup><italic>i</italic>&#x02212;1</sup>, <italic>x</italic><sup><italic>i</italic></sup>) &#x02208; <sans-serif>T</sans-serif> for all <italic>i</italic> &#x02265; 1. A statement about a state or a path can be made using a CTL formula. A CTL <italic>state formula</italic> &#x003D5; over the set of atomic propositions <italic>AP</italic> is of the form
<disp-formula id="E2"><mml:math id="M53"><mml:mi>&#x003D5;</mml:mi><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mi>a</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle class="math"><mml:mo>|</mml:mo></mml:mstyle><mml:mo>&#x000AC;</mml:mo><mml:mi>&#x003D5;</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle class="math"><mml:mo>|</mml:mo></mml:mstyle><mml:msub><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle class="math"><mml:mo>|</mml:mo></mml:mstyle><mml:msub><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle class="math"><mml:mo>|</mml:mo></mml:mstyle><mml:mstyle mathvariant='bold'><mml:mtext>E</mml:mtext></mml:mstyle><mml:mi>&#x003C6;</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle class="math"><mml:mo>|</mml:mo></mml:mstyle><mml:mstyle mathvariant='bold'><mml:mtext>A</mml:mtext></mml:mstyle><mml:mi>&#x003C6;</mml:mi></mml:math></disp-formula>
where <italic>a</italic> &#x02208; <italic>AP</italic> is an atomic proposition, <bold>E</bold> is the <italic>exists</italic> operator, <bold>A</bold> is the <italic>for all</italic> operator, &#x003D5;, &#x003D5;<sub>1</sub>, and &#x003D5;<sub>2</sub> are CTL state formulas and &#x003C6; is a CTL <italic>path formula</italic>, which in our work will be of the form:</p>
<disp-formula id="E3"><mml:math id="M54"><mml:mi>&#x003C6;</mml:mi><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold'><mml:mtext>F</mml:mtext></mml:mstyle><mml:mi>&#x003C8;</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle class="math"><mml:mo>|</mml:mo></mml:mstyle><mml:mstyle mathvariant='bold'><mml:mtext>G</mml:mtext></mml:mstyle><mml:mi>&#x003C8;</mml:mi></mml:math></disp-formula>
<p>where <bold>F</bold> is the <italic>future</italic> operator, <bold>G</bold> the <italic>global</italic> operator, and &#x003C8; a CTL state formula. Note that we do not use the full expressiveness of CTL but only a subset of operators necessary to formulate our control queries. In accordance to the definition of semantics of CTL formulas, a state formula is evaluated for a state whereas a path formula is evaluated for an infinite path. When &#x003D5; &#x0003D; <italic>a</italic>, where <italic>a</italic> is an atomic proposition, if <italic>a</italic> &#x02208; <sans-serif>L</sans-serif>(<italic>x</italic>) we say that the CTL state formula &#x003D5; is satisfied at the state <italic>x</italic> and we write <italic>x</italic> &#x022A7; &#x003D5;. For example, if &#x003D5; &#x0003D; (<italic>i</italic> &#x0003D; 1) for some <italic>i</italic> &#x02208; <italic>V</italic>, then <italic>x</italic> &#x022A7; &#x003D5; if (<italic>i</italic> &#x0003D; 1) &#x02208; <sans-serif>L</sans-serif>(<italic>x</italic>), that is <italic>x</italic><sub><italic>i</italic></sub> &#x0003D; 1. Analogously, we write &#x003C0; &#x022A7; &#x003C6; when the CTL path formula &#x003D5; is satisfied by a path &#x003C0;. See <xref ref-type="table" rid="T1">Table 1</xref> for the recursive definition of the satisfaction relation &#x022A7; for transition systems and CTL formulas used in this work. Since we only use atomic propositions of the form (<italic>v</italic> &#x0003D; <italic>c</italic>) where <italic>v</italic> &#x02208; <italic>V</italic> and <italic>c</italic> &#x02208; &#x1D539; and (<italic>v</italic> &#x0003D; <italic>c</italic>) &#x02208; <sans-serif>L</sans-serif>(<italic>x</italic>) if and only if <italic>x</italic><sub><italic>v</italic></sub> &#x0003D; <italic>c</italic>, atomic propositions can be interpreted in each state <italic>x</italic> according to the values of each variable in <italic>x</italic>. Thus, to simplify the notation, given an atomic proposition &#x003D5; &#x0003D; (<italic>v</italic> &#x0003D; <italic>c</italic>), we define &#x003D5;(<italic>x</italic>) &#x0003D; (<italic>x</italic><sub><italic>v</italic></sub> &#x0003D; <italic>c</italic>) so that &#x003D5; is satisfied by <italic>x</italic> if and only if &#x003D5;(<italic>x</italic>) &#x0003D; <italic>true</italic>. <xref ref-type="fig" rid="F4">Figure 4</xref> shows some examples of state and path formulas which are satisfied in an STG.</p>
<table-wrap position="float" id="T1">
<label>Table 1</label>
<caption><p>Satisfaction relation and semantics for the CTL formulas used in this work, with <italic>a</italic> &#x02208; <italic>AP</italic> an atomic proposition, <italic>x</italic> &#x02208; <italic>S</italic> a state, &#x003C0; a path in the transition system, &#x003C6; a path formula and &#x003D5;, &#x003D5;<sub>1</sub>, and &#x003D5;<sub>2</sub> state formulas.</p></caption>
<table frame="hsides" rules="groups">
<tbody>
<tr>
<td valign="top" align="left"><bold><inline-formula><mml:math id="M55"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mi>x</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>u</mml:mi><mml:mi>e</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>x</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:mi>a</mml:mi></mml:mtd><mml:mtd><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">iff</mml:mtext></mml:mstyle></mml:mtd><mml:mtd><mml:mi>a</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mstyle style="font-family:Sans-Serif"><mml:mtext>L</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>x</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">iff</mml:mtext></mml:mstyle></mml:mtd><mml:mtd><mml:mi>x</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">&#x000A0;or&#x000A0;</mml:mtext></mml:mstyle><mml:mi>x</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>x</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">iff</mml:mtext></mml:mstyle></mml:mtd><mml:mtd><mml:mi>x</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">&#x000A0;and&#x000A0;</mml:mtext></mml:mstyle><mml:mi>x</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>x</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:mo>&#x000AC;</mml:mo><mml:mi>&#x003D5;</mml:mi></mml:mtd><mml:mtd><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">iff</mml:mtext></mml:mstyle></mml:mtd><mml:mtd><mml:mi>x</mml:mi><mml:mo>&#x022AD;</mml:mo><mml:mi>&#x003D5;</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>x</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:mi>E</mml:mi><mml:mi>&#x003C6;</mml:mi></mml:mtd><mml:mtd><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">iff</mml:mtext></mml:mstyle></mml:mtd><mml:mtd><mml:mo>&#x02203;</mml:mo><mml:mi>&#x003C0;</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mtext>Paths</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">&#x000A0;s.t.&#x000A0;</mml:mtext></mml:mstyle><mml:mi>&#x003C0;</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:mi>&#x003C6;</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>x</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:mi>A</mml:mi><mml:mi>&#x003C6;</mml:mi></mml:mtd><mml:mtd><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">iff</mml:mtext></mml:mstyle></mml:mtd><mml:mtd><mml:mo>&#x02200;</mml:mo><mml:mi>&#x003C0;</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mtext>Paths</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>&#x003C0;</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:mi>&#x003C6;</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>&#x003C0;</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:mi>F</mml:mi><mml:mi>&#x003D5;</mml:mi></mml:mtd><mml:mtd><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">iff</mml:mtext></mml:mstyle></mml:mtd><mml:mtd><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003C0;</mml:mi><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">&#x000A0;s.t.&#x000A0;</mml:mtext></mml:mstyle><mml:mi>y</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:mi>&#x003D5;</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>&#x003C0;</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:mi>G</mml:mi><mml:mi>&#x003D5;</mml:mi></mml:mtd><mml:mtd><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">iff</mml:mtext></mml:mstyle></mml:mtd><mml:mtd><mml:mo>&#x02200;</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003C0;</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:mi>&#x003D5;</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>x</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:mi>E</mml:mi><mml:mi>F</mml:mi><mml:mi>&#x003D5;</mml:mi></mml:mtd><mml:mtd><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">iff</mml:mtext></mml:mstyle></mml:mtd><mml:mtd><mml:mo>&#x02203;</mml:mo><mml:mi>&#x003C0;</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mtext>Paths</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003C0;</mml:mi><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">&#x000A0;s.t.&#x000A0;</mml:mtext></mml:mstyle><mml:mi>y</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:mi>&#x003D5;</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>x</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:mi>A</mml:mi><mml:mi>G</mml:mi><mml:mi>&#x003D5;</mml:mi></mml:mtd><mml:mtd><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">iff</mml:mtext></mml:mstyle></mml:mtd><mml:mtd><mml:mo>&#x02200;</mml:mo><mml:mi>&#x003C0;</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mtext>Paths</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x02200;</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003C0;</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:mi>&#x003D5;</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></inline-formula></bold></td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F4" position="float">
<label>Figure 4</label>
<caption><p><bold>(A)</bold> Asynchronous state transition graph of a Boolean function with two attractors, {101} and {010, 110} (marked in gray). <bold>(B)</bold> TS for the STG shown in <bold>(A)</bold>. Note that a self-loop has been added in the steady state 101 to have a deadlock-free TS. The states 001, 011, 101, and 111 satisfy the state formula <bold>AG</bold>&#x003D5;<sub>3</sub>, where &#x003D5;<sub><italic>i</italic></sub> &#x0003D; (<italic>i</italic> &#x0003D; 1), while <bold>EF</bold>&#x003D5;<sub>3</sub> is satisfied by all the states except 010 and 110. The path that starts at 000 and then oscillates between 010 and 110 (in red) satisfies for instance <bold>F</bold>&#x003D5;<sub>2</sub> and <bold>G</bold>&#x000AC;&#x003D5;<sub>3</sub> but not <bold>G</bold>&#x003D5;<sub>1</sub>.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fams-08-838546-g0004.tif"/>
</fig></sec>
<sec>
<title>4.2. Control With Model Checking</title>
<p>In this section, we present the basis of our new approach for the identification of all the minimal control strategies, based on model checking. To do so, we express the definition of control strategy in terms of CTL formulas. We start by rewriting it in terms of paths.</p>
<p>L<sc>emma</sc> 4.1. <italic>Let f be a Boolean function</italic>, &#x00398; &#x02286; &#x1D539;<sup><italic>n</italic></sup> <italic>a subspace and P</italic> &#x02286; &#x1D539;<sup><italic>n</italic></sup> <italic>a subset. The following are equivalent:</italic>
<list list-type="order">
<list-item><p>&#x00398; <italic>is a control strategy for P in D</italic>(<italic>f</italic>).</p></list-item>
<list-item><p><italic>For every x</italic> &#x02208; &#x00398; <italic>there exists y</italic> &#x02208; <italic>P such that there exists a path in D</italic>(<italic>f</italic><sub>&#x021BE;<sub>&#x00398;</sub></sub>) <italic>from x to y and there does not exist any path in D</italic>(<italic>f</italic><sub>&#x021BE;<sub>&#x00398;</sub></sub>) <italic>from y to any state outside P (that is, all paths starting at y are contained in P</italic>).</p></list-item>
</list></p>
<p>P<sc>roof</sc>. (&#x021D2;) Let <italic>x</italic> &#x02208; &#x00398; and let <inline-formula><mml:math id="M56"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow></mml:math></inline-formula> be an attractor of <italic>D</italic>(<italic>f</italic><sub>&#x021BE;<sub>&#x00398;</sub></sub>) that can be reached from <italic>x</italic>. Since &#x00398; is a control strategy, <inline-formula><mml:math id="M57"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow><mml:mo>&#x02286;</mml:mo><mml:mi>P</mml:mi></mml:math></inline-formula>. Take <inline-formula><mml:math id="M58"><mml:mi>y</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow></mml:math></inline-formula>. Since <inline-formula><mml:math id="M59"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow></mml:math></inline-formula> is reached from <italic>x</italic>, there exists a path from <italic>x</italic> to <inline-formula><mml:math id="M60"><mml:mi>y</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow><mml:mo>&#x02286;</mml:mo><mml:mi>P</mml:mi></mml:math></inline-formula> and there are no paths from <italic>y</italic> leaving <italic>P</italic>.</p>
<p>(&#x021D0;) Let <inline-formula><mml:math id="M61"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow></mml:math></inline-formula> be an attractor of <italic>f</italic><sub>&#x021BE;<sub>&#x00398;</sub></sub>. Let <inline-formula><mml:math id="M62"><mml:mi>x</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow></mml:math></inline-formula>. Since <inline-formula><mml:math id="M63"><mml:mi>x</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow><mml:mo>&#x02286;</mml:mo><mml:mo>&#x00398;</mml:mo></mml:math></inline-formula>, there exists <italic>y</italic> &#x02208; <italic>P</italic> such that there exists a path in <italic>D</italic>(<italic>f</italic><sub>&#x021BE;<sub>&#x00398;</sub></sub>) from <italic>x</italic> to <italic>y</italic> and there does not exist any path in <italic>D</italic>(<italic>f</italic><sub>&#x021BE;<sub>&#x00398;</sub></sub>) from <italic>y</italic> to any state outside <italic>P</italic>. Since <inline-formula><mml:math id="M64"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow></mml:math></inline-formula> is an attractor, <inline-formula><mml:math id="M65"><mml:mi>y</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M66"><mml:mtext>Reac</mml:mtext><mml:msub><mml:mrow><mml:mtext>h</mml:mtext></mml:mrow><mml:mrow><mml:mi>D</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x021BE;</mml:mo></mml:mrow><mml:mrow><mml:mo>&#x00398;</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow></mml:math></inline-formula>. Then, <inline-formula><mml:math id="M67"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow><mml:mo>&#x02229;</mml:mo><mml:msup><mml:mrow><mml:mo>&#x1D539;</mml:mo></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msup><mml:mo>\</mml:mo><mml:mi>P</mml:mi><mml:mo>=</mml:mo><mml:mi>&#x02205;</mml:mi></mml:math></inline-formula>, that is, <inline-formula><mml:math id="M68"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow><mml:mo>&#x02286;</mml:mo><mml:mi>P</mml:mi></mml:math></inline-formula>, and &#x00398; is a control strategy for <italic>P</italic>.</p>
<p>Before expressing Lemma 4.1 in terms of CTL formulas, we introduce a state formula &#x003C8;<sub><italic>S</italic></sub> that is satisfied at a state <italic>x</italic> if and only if the state <italic>x</italic> belongs to the subspace <italic>S</italic> &#x0003D; &#x003A3;(<italic>I, c</italic>):
<disp-formula id="E4"><mml:math id="M69"><mml:msub><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x02227;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:math></disp-formula>
This formulation can be extended to subsets as well. Clearly, every subset can be written as the union of subspaces, since a singleton set constitutes a subspace. Let <italic>P</italic> &#x02286; &#x1D539;<sup><italic>n</italic></sup> be a subset. We define &#x003D5;<sub><italic>P</italic></sub> to be satisfied at a state <italic>x</italic> if and only if the state <italic>x</italic> belongs to <italic>x</italic> &#x02208; <italic>P</italic>:</p>
<p>
<disp-formula id="E5"><mml:math id="M70"><mml:msub><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x02228;</mml:mo></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">S</mml:mi></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:msub><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula>
where <inline-formula><mml:math id="M71"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">S</mml:mi></mml:mrow></mml:math></inline-formula> is a subspace cover of <italic>P</italic>.</p>
<p>Now we can express Lemma 4.1 in terms of CTL formulas, using &#x003D5;<sub><italic>P</italic></sub>(<italic>x</italic>) as defined above.</p>
<p>L<sc>emma</sc> 4.2. <italic>Let f be a Boolean function</italic>, &#x00398; &#x02286; &#x1D539;<sup><italic>n</italic></sup> <italic>a subspace and P</italic> &#x02286; &#x1D539;<sup><italic>n</italic></sup> <italic>a subset. The following are equivalent:</italic>
<list list-type="order">
<list-item><p>&#x00398; <italic>is a control strategy for P in D</italic>(<italic>f</italic>).</p></list-item>
<list-item><p>&#x003A6;<sub><italic>P</italic></sub>(<italic>x</italic>), <italic>defined as</italic> &#x003A6;<sub><italic>P</italic></sub>(<italic>x</italic>) = <italic><bold>EF</bold></italic>(<italic><bold>AG</bold></italic>(&#x003D5;<sub><italic>P</italic></sub>))(<italic>x</italic>), <italic>is satisfied in D</italic>(<italic>f</italic><sub>&#x021BE;<sub>&#x00398;</sub></sub>) <italic>for every x</italic> &#x02208; &#x00398;.</p></list-item>
</list></p>
<p>P<sc>roof</sc>. &#x003A6;<sub><italic>P</italic></sub> is satisfied at a state <italic>x</italic> if and only if there exists a path <italic>x</italic> &#x0003D; <italic>x</italic><sup>0</sup>, <italic>x</italic><sup>1</sup>, &#x02026; such that <bold>AG</bold>(&#x003D5;<sub><italic>P</italic></sub>) is satisfied at <italic>x</italic><sup><italic>i</italic></sup> for some <italic>i</italic> &#x02265; 1. Let <italic>y</italic> &#x0003D; <italic>x</italic><sup><italic>i</italic></sup>. <bold>AG</bold>(&#x003D5;<sub><italic>P</italic></sub>) is satisfied at <italic>y</italic> if and only if for all paths <italic>y</italic> &#x0003D; <italic>y</italic><sup>0</sup>, <italic>y</italic><sup>1</sup>, &#x02026;, for all <italic>i</italic> &#x02265; 0, &#x003D5;<sub><italic>P</italic></sub> is satisfied at <italic>y</italic><sup><italic>i</italic></sup>, that is, <italic>y</italic><sup><italic>i</italic></sup> &#x02208; <italic>P</italic>. Thus, by Lemma 4.1, &#x003A6;<sub><italic>P</italic></sub> is satisfied for all <italic>x</italic> &#x02208; &#x00398; if and only if &#x00398; is a control strategy for <italic>P</italic> in <italic>D</italic>(<italic>f</italic>).</p>
<p>Note that &#x003A6;<sub><italic>P</italic></sub> is not affected by the presence of non-attractive cycles since, by definition, they contain at least one state with an outgoing trajectory leading to an attractor.</p>
<p>The CTL formula &#x003A6;<sub><italic>P</italic></sub> defined in Lemma 4.2 provides a way to determine whether a candidate subspace is a control strategy for <italic>P</italic>. The next section presents the implementation of this idea for control strategy identification.</p></sec>
<sec>
<title>4.3. Computation of Control Strategies</title>
<p>Building on the model checking formulas derived in the previous section, we develop a method for control strategy identification. The formula derived in Lemma 4.2 can be used to define a CTL query that can determine whether a candidate subspace is a control strategy for a target subset. In addition, in order to improve the performance of the method, preliminary checks on the candidate subspace and the restricted network can be conducted to possibly discard it without exhaustive exploration. Moreover, the dimension of the problem, that is, the free variables of the Boolean function, can be reduced by restricting the function to the percolated subspace instead of the candidate subspace, as stated in Section 3.1. The complete implementation of the control strategy identification is detailed in <xref ref-type="table" rid="T9">Algorithm 1</xref> and explained in the following.</p>
<table-wrap position="float" id="T9">
<label>Algorithm 1</label>
<caption><p>Control strategies for a target subset.</p></caption>
<table frame="hsides" rules="groups">
<tbody>
<tr><td align="left" valign="top"><bold>Input</bold>: <italic>f</italic> Boolean function, <italic>P</italic> target subset, <italic>D</italic> type of update, <italic>m</italic> size limit</td></tr>
<tr><td align="left" valign="top"><bold>Output</bold>: control strategies for <italic>P</italic></td></tr>
<tr><td align="left" valign="top">1: <bold>function</bold> C<sc>ontrol</sc>S<sc>trategies</sc>(<italic>f</italic>, <italic>P</italic>, <italic>D</italic>, <italic>m</italic>)</td></tr>
<tr><td align="left" valign="top">2: &#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>CS</bold> &#x02190; &#x02205;</td></tr>
<tr><td align="left" valign="top">3: &#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>ST</bold> &#x02190; &#x02205; &#x022B3; ST stores positively checked subspaces</td></tr>
<tr><td align="left" valign="top">4: &#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>SF</bold> &#x02190; &#x02205; &#x022B3; SF stores negatively checked subspaces</td></tr>
<tr><td align="left" valign="top">5: &#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>for</bold> <italic>i</italic> in {1, &#x02026;&#x02009;, min(<italic>m</italic>, <italic>n</italic>)} <bold>do</bold>: &#x022B3; <italic>n</italic>: number of variables</td></tr>
<tr><td align="left" valign="top">6: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>S</bold> &#x02190; {S subspace:|fixed(S)| = <italic>i</italic>}</td></tr>
<tr><td align="left" valign="top">7: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>for</bold> S in <bold>S do</bold>:</td></tr>
<tr><td align="left" valign="top">8: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>if</bold> (S &#x02288; S&#x00027; for all S&#x00027; in <bold>CS</bold>) <bold>then</bold>:</td></tr>
<tr><td align="left" valign="top">9: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;S<sup>&#x0002A;</sup> &#x02190; percolate(<bold>f</bold>, S)</td></tr>
<tr><td align="left" valign="top">10: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>if</bold> S<sup>&#x0002A;</sup> &#x02208; <bold>ST then</bold>: add S to <bold>CS</bold></td></tr>
<tr><td align="left" valign="top">11 &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>if</bold> S<sup>&#x0002A;</sup> &#x02208; <bold>ST</bold> &#x0222A; <bold>SF then</bold>: <italic>break</italic></td></tr>
<tr><td align="left" valign="top">12: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>if</bold> S<sup>&#x0002A;</sup> &#x02286; <italic>P</italic> <bold>then</bold>:</td></tr>
<tr><td align="left" valign="top">13: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0; add S to <bold>CS</bold></td></tr>
<tr><td align="left" valign="top">14: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;add S<sup>&#x0002A;</sup> to <bold>ST</bold></td></tr>
<tr><td align="left" valign="top">15: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>else</bold>:</td></tr>
<tr><td align="left" valign="top">16: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>f</bold><sup><bold>&#x02217;</bold></sup> &#x02190; reduce(<bold>f</bold>, S<sup>&#x0002A;</sup>)</td></tr>
<tr><td align="left" valign="top">17: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>minTS</bold> &#x02190; minimalTrapSpaces(<bold>f</bold><sup><bold>&#x02217;</bold></sup>)</td></tr>
<tr><td align="left" valign="top">18: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>if</bold> (T &#x02229; <italic>P</italic> &#x02260; &#x02205; for all T in <bold>minTS</bold>) <bold>then</bold>:</td></tr>
<tr><td align="left" valign="top">19: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>halfTS</bold> &#x02190; {T in <bold>minTS</bold> if T &#x02288; <italic>P</italic>}</td></tr>
<tr><td align="left" valign="top">20: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;valid &#x02190; <bold>true</bold></td></tr>
<tr><td align="left" valign="top">21: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>for</bold> T in <bold>halfTS do</bold>:</td></tr>
<tr><td align="left" valign="top">22: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>f</bold><sup><bold>&#x02217;&#x02217;</bold></sup> &#x02190; reduce(<bold>f</bold><sup><bold>&#x02217;</bold></sup>, T)</td></tr>
<tr><td align="left" valign="top">23: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x003A6;<sub><italic>P</italic></sub> &#x02190; CTLFormula(f<sup><bold>&#x02217;&#x02217;</bold></sup>, <italic>P</italic>)</td></tr>
<tr><td align="left" valign="top">24: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>if not</bold> runMC(<bold>f</bold><sup><bold>&#x02217;&#x02217;</bold></sup>, <italic>D</italic>, &#x003A6;<sub><italic>P</italic></sub>) <bold>then</bold>:</td></tr>
<tr><td align="left" valign="top">25: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;valid &#x02190; <bold>false</bold></td></tr>
<tr><td align="left" valign="top">26: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;add S<sup>&#x0002A;</sup> to <bold>SF</bold></td></tr>
<tr><td align="left" valign="top">27: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<italic>break</italic></td></tr>
<tr><td align="left" valign="top">28: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>if</bold> valid <bold>then</bold>:</td></tr>
<tr><td align="left" valign="top">29: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x003A6;<sub><italic>P</italic></sub>&#x02190; CTLFormula(<bold>f</bold><sup><bold>&#x02217;</bold></sup>, <italic>P</italic>)</td></tr>
<tr><td align="left" valign="top">30: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;if runMC(<bold>f</bold><sup><bold>&#x02217;</bold></sup>, <italic>D</italic>, &#x003A6;<sub><italic>P</italic></sub>) <bold>then</bold>:</td></tr>
<tr><td align="left" valign="top">31: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;add S to <bold>CS</bold></td></tr>
<tr><td align="left" valign="top">32: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;add S<sup>&#x0002A;</sup> to <bold>ST</bold></td></tr>
<tr><td align="left" valign="top">33: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>else</bold></td></tr>
<tr><td align="left" valign="top">34: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;add S<sup>&#x0002A;</sup> to <bold>SF</bold></td></tr>
<tr><td align="left" valign="top">35: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>else</bold></td></tr>
<tr><td align="left" valign="top">36: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;add S<sup>&#x0002A;</sup> to <bold>SF</bold></td></tr>
<tr><td align="left" valign="top">37: &#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>return CS</bold></td></tr>
</tbody>
</table>
</table-wrap>
<p>The main algorithm takes as inputs a constant-free Boolean function <italic>f</italic> (i.e. all coordinate functions of <italic>f</italic> are non-constant), a target subset <italic>P</italic> and the type of update (asynchronous, synchronous or generalized) and returns the minimal control strategies for <italic>P</italic> in the respective dynamics. If the original Boolean function is not constant-free, a pre-processing step is applied in which the constant function values are percolated. Instead of the original function we then consider its restriction to the corresponding percolated subspace. As discussed in Section 3.1, this pre-processing does not impact the attractors of the system.</p>
<list list-type="bullet">
<list-item><p>For each candidate subspace <italic>S</italic>, its percolated subspace with respect to <italic>f</italic><sub>&#x021BE;<sub><italic>S</italic></sub></sub>, <italic>S</italic><sup>&#x0002A;</sup>, is computed (line 9), as defined in Definition 3.5. By Corollary 3.7.1, <italic>S</italic><sup>&#x0002A;</sup> is a control strategy if and only if <italic>S</italic> is a control strategy, so we perform all the checks on <italic>S</italic><sup>&#x0002A;</sup>.</p></list-item>
<list-item><p>If <italic>S</italic><sup>&#x0002A;</sup> is contained in the target subset <italic>P</italic>, then <italic>S</italic> is a control strategy (lines 12&#x02013;13). If not, the algorithm continues to compute the restriction to <italic>S</italic><sup>&#x0002A;</sup>, <italic>f</italic><sup>&#x0002A;</sup>, and its minimal trap spaces (lines 16&#x02013;17).</p></list-item>
<list-item><p>If there exists a minimal trap space disjoint from the target, the candidate subspace is discarded, since each minimal trap space contains at least one attractor (line 18).</p></list-item>
<list-item><p>Trap spaces that are partially contained in the target subset are analyzed first (line 19). Since <italic>f</italic>(<italic>x</italic>) &#x0003D; <italic>f</italic><sub>&#x021BE;<sub><italic>T</italic></sub></sub>(<italic>x</italic>) for all <italic>x</italic> &#x02208; <italic>T</italic>, we can reduce the function to <italic>T</italic> and run the model checking query for the restriction to <italic>T</italic>, <italic>f</italic>&#x0002A;&#x0002A;, (lines 22&#x02013;24). If the formula is not satisfied in one of these trap spaces, the candidate subspace is discarded.</p></list-item>
<list-item><p>Otherwise, the algorithm concludes by checking the CTL formula &#x003A6;<sub><italic>P</italic></sub> for the restricted function <italic>f</italic><sup>&#x0002A;</sup> and deciding whether <italic>S</italic> is a control strategy (lines 29&#x02013;30).</p></list-item>
</list>
<p>Since the aim is to identify optimal control strategies, the candidate subspaces <italic>S</italic> are taken randomly fixing an increasing number of variables, so that supersets of sets already defining a successful intervention are not considered (lines 5&#x02013;8). Furthermore, an upper bound <italic>m</italic> for the size of the control strategies can be set. Moreover, the decisions made for each percolated subspace are stored in two variables <italic>ST</italic> (for positively checked subspaces) and <italic>SF</italic> (for negatively checked subspaces) to avoid repeating the same verification query.</p>
<p>The algorithm presented above is implemented using PyBoolNet [<xref ref-type="bibr" rid="B18">18</xref>], a Python package that allows generation and analysis of Boolean networks. PyBoolNet uses NuSMV to decide model checking queries for Boolean networks. It also provides an efficient computation of trap spaces for relatively large networks.</p></sec></sec>
<sec sec-type="results" id="s5">
<title>5. Results</title>
<p>In this section we study the applicability of our method to different biological networks. We start by applying our method to a network modeling the epithelial-to-mesenchymal transition, considering different control targets: attractor, subspace and subset avoidance. In addition, we compare our approach to current control methods in different Boolean networks for attractor and target control. We show that our method is able to identify all the minimal control strategies identified by other approaches, uncovering in some cases minimal control strategies missed by them. All the results presented here were obtained with a regular desktop 8-processor computer, Intel&#x000AE;Core<sup>TM</sup> i7-2600 CPU at 3.40 GHz, 16 GB memory. The running times vary significantly from scenario to scenario, depending on the type of target considered and the upper bound set on the size of the control strategies. They can range from seconds or minutes, for small control strategies or simple networks, to hours or days of computation for complex target subsets or large control strategies.</p>
<sec>
<title>5.1. Case Study: EMT Network</title>
<p>The network considered in this case study was recently introduced by Selvaggio et al. [<xref ref-type="bibr" rid="B20">20</xref>] to model how microenvironmental signals influence cancer-related phenotypes along the epithelial-to-mesenchymal transition (EMT). The original network consists of 56 components, ten of them being inputs and two readouts or outputs (see <xref ref-type="fig" rid="F5">Figure 5</xref>). Since the original model is multivalued, we work with its booleanized version obtained with GINsim [<xref ref-type="bibr" rid="B19">19</xref>]. This booleanization maps a multivalued component of maximum value <italic>m</italic> to <italic>m</italic> Boolean components. For instance, a component taking the values 0, 1, 2, 3 is encoded using 3 Boolean variables that would take values 000, 100, 110, 111, respectively (see <xref ref-type="table" rid="T2">Table 2</xref>). Although this method introduces states that do not correspond to any value of the multivalued variable (non-admissible states), these cannot be part of any attractor since they always have at least one path to an admissible state and do not have incoming transitions from admissible states. Therefore, the asymptotic behavior generated strictly replicates the original model. The booleanized network of this case study consists of 60 Boolean variables, whose regulatory functions can be found in the PyBoolNet repository [<xref ref-type="bibr" rid="B18">18</xref>].</p>
<fig id="F5" position="float">
<label>Figure 5</label>
<caption><p>EMT multivalued network. Boolean nodes are represented by ellipses and multivalued nodes by rectangles. Input and output nodes are colored in gray and black respectively. Image obtained using GINsim [<xref ref-type="bibr" rid="B19">19</xref>], model from [<xref ref-type="bibr" rid="B20">20</xref>]. Further information about the model can be found in [<xref ref-type="bibr" rid="B20">20</xref>].</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fams-08-838546-g0005.tif"/>
</fig>
<table-wrap position="float" id="T2">
<label>Table 2</label>
<caption><p>Relation of the phenotypes of the EMT network, the values of the multivalued readouts (AJ, FA) in bold, and the values of the equivalent Boolean components (AJ1, AJ2, FA1, FA2, FA3).</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th/>
<th/>
<th valign="top" align="center"><bold>AJ</bold></th>
<th valign="top" align="center"><bold>AJ1</bold></th>
<th valign="top" align="center"><bold>AJ2</bold></th>
<th valign="top" align="center"><bold>FA</bold></th>
<th valign="top" align="center"><bold>FA1</bold></th>
<th valign="top" align="center"><bold>FA2</bold></th>
<th valign="top" align="center"><bold>FA3</bold></th>
<th valign="top" align="center"><bold>Number of steady states</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Epithelial phenotype</td>
<td valign="top" align="left">E1</td>
<td valign="top" align="center"><bold>2</bold></td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center"><bold>0</bold></td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">60</td>
</tr>
<tr>
<td valign="top" align="left">Hybrid phenotypes</td>
<td valign="top" align="left">H1</td>
<td valign="top" align="center"><bold>2</bold></td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center"><bold>1</bold></td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">40</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">H2</td>
<td valign="top" align="center"><bold>1</bold></td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center"><bold>2</bold></td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">36</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">H3</td>
<td valign="top" align="center"><bold>2</bold></td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center"><bold>3</bold></td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">48</td>
</tr>
<tr>
<td valign="top" align="left">Mesenchymal phenotypes</td>
<td valign="top" align="left">M1</td>
<td valign="top" align="center"><bold>0</bold></td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center"><bold>1</bold></td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">208</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">M2</td>
<td valign="top" align="center"><bold>0</bold></td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center"><bold>2</bold></td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">368</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">M3</td>
<td valign="top" align="center"><bold>0</bold></td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center"><bold>3</bold></td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">672</td>
</tr>
<tr>
<td valign="top" align="left">Undefined phenotype</td>
<td valign="top" align="left">UN</td>
<td valign="top" align="center"><bold>0</bold></td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center"><bold>0</bold></td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">20</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p><italic>The number of steady states belonging to each phenotype is also shown</italic>.</p>
</table-wrap-foot>
</table-wrap>
<p>The asynchronous dynamics has 1,452 attractors, all of them steady states. They are classified according to the values of the readout components <bold>AJ</bold> and <bold>FA</bold>, which represent the different degrees of cell adhesions by adherens junctions and focal adhesions, respectively [<xref ref-type="bibr" rid="B20">20</xref>]. The eight resulting biological phenotypes are divided in four groups: epithelial (E1), mesenchymal (M1, M2, M3), hybrid (H1, H2, H3), and unknown (UN) (see <xref ref-type="table" rid="T2">Table 2</xref>).</p>
<p>To show the flexibility of our method, we analyse different control targets. We start by targeting single steady states (attractor control). Then, we target the subspaces corresponding to each phenotype (target control). Finally, we study the avoidance of the hybrid phenotype, setting as target the complement of the general hybrid phenotype.</p>
<sec>
<title>5.1.1. Attractor Control: Steady States</title>
<p>Here we consider the problem of attractor control. Since the control targets are steady states, the minimum number of interventions in each control strategy is at least the number of inputs (each input component needs to be fixed to the corresponding value in the attractor).</p>
<p>For each of the 1,452 steady states, the control strategies up to size 13 were identified. Seven hundred and eighty-eight steady states have minimal control strategies of size 10, meaning that the dynamics can be controlled to the steady state only by fixing the values of the input components to their values in the attractor. Of the remaining ones, 396 need an extra component to be fixed, 212 require fixing at least two more components and the last 56 steady states require fixing three extra components.</p>
<p><xref ref-type="fig" rid="F6">Figure 6</xref> shows the number of control strategies identified for each size (10&#x02013;13) with steady states grouped by phenotype, distinguishing between control strategies identified by direct percolation or only by the model checking approach. In most of the cases, our approach is able to identify many control strategies that are missed by direct percolation. In addition, we observe that the mesenchymal phenotypes are the ones with the highest amount of control strategies, which is to be expected since they are also the ones containing more attractors. The number of steady states per phenotype can be found in <xref ref-type="table" rid="T2">Table 2</xref>. Interestingly, no control strategies consisting of only input variables lead to hybrid steady states.</p>
<fig id="F6" position="float">
<label>Figure 6</label>
<caption><p>Number of control strategies identified for the steady states grouped by phenotype and size. The control strategies obtained by direct percolation are represented in red and the additional control strategies identified by model checking in green. The number of steady states per phenotype can be found in <xref ref-type="table" rid="T2">Table 2</xref>.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fams-08-838546-g0006.tif"/>
</fig></sec>
<sec>
<title>5.1.2. Target Control</title>
<p>The minimal control strategies up to size 3 are identified for each of the phenotypes, taking as target the subspace defined by the corresponding values of the phenotypic components in each case (see <xref ref-type="table" rid="T2">Table 2</xref>). The five phenotypic components are excluded from the candidate interventions, since they represent the readouts of the model that we want to control. <xref ref-type="table" rid="T3">Table 3</xref> shows the number of control strategies identified per phenotype and size. Similarly to the case of attractor control, we observe that the phenotypes with higher number of control strategies are the mesenchymal phenotypes (over a hundred), while the epithelial and the hybrid phenotypes have fewer or no control strategies up to size 3. This is consistent with the bias of the model toward the mesenchymal phenotypes in terms of attractors.</p>
<table-wrap position="float" id="T3">
<label>Table 3</label>
<caption><p>Number of minimal control strategies identified per size for each phenotype.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th valign="top" align="left"><bold>Phenotype</bold></th>
<th valign="top" align="center"><bold>E1</bold></th>
<th valign="top" align="center"><bold>H1</bold></th>
<th valign="top" align="center"><bold>H2</bold></th>
<th valign="top" align="center"><bold>H3</bold></th>
<th valign="top" align="center"><bold>M1</bold></th>
<th valign="top" align="center"><bold>M2</bold></th>
<th valign="top" align="center"><bold>M3</bold></th>
<th valign="top" align="center"><bold>UN</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Size 1</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
</tr>
<tr>
<td valign="top" align="left">Size 2</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">17</td>
<td valign="top" align="center">0</td>
</tr>
<tr>
<td valign="top" align="left">Size 3</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">113</td>
<td valign="top" align="center">111</td>
<td valign="top" align="center">83</td>
<td valign="top" align="center">14</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p><italic>All the control strategies are obtained by direct percolation except three control strategies of size 3 for the phenotype M3 which are only identified by model checking</italic>.</p>
</table-wrap-foot>
</table-wrap>
<p>All of the control strategies obtained are also identified by direct percolation, except for three minimal control strategies for the phenotype M3 that are only identified by model checking. These are: {BCat-AJ = 1, GSK3B = 1, ITG-AB = 1}, {ECad-AJ1 = 1, GSK3B = 1, ITG-AB = 1}, and {ECad-AJ2 = 1, GSK3B = 1, ITG-AB = 1}.</p></sec>
<sec>
<title>5.1.3. Avoidance of Hybrid Phenotypes</title>
<p>According to [<xref ref-type="bibr" rid="B20">20</xref>], hybrid phenotypes may provide advantageous abilities to cancer cells such as drug resistance or tumor-initiating potential. Therefore, interventions avoiding these phenotypes might be good candidates for drug targets in therapeutic treatment against cancer cells presenting these traits.</p>
<p>The authors of [<xref ref-type="bibr" rid="B20">20</xref>] define the hybrid phenotype as the one containing steady states with both components AJ and FA activated, that is, AJ &#x02265; 1 and FA &#x02265; 1. Therefore, the subset defining the avoidance of the hybrid phenotype is</p>
<disp-formula id="E6"><mml:math id="M72"><mml:mi>P</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtext>AJ</mml:mtext><mml:mn>1</mml:mn><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mtext>AJ</mml:mtext><mml:mn>2</mml:mn><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>&#x0222A;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtext>FA</mml:mtext><mml:mn>1</mml:mn><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mtext>FA</mml:mtext><mml:mn>2</mml:mn><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mtext>FA</mml:mtext><mml:mn>3</mml:mn><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:math></disp-formula>
<p>As in the previous case, the five phenotypic components are excluded from the candidate interventions. Setting the upper bound on the size of the control strategies to 1, 12 control strategies are obtained:</p>
<disp-formula id="E7"><mml:math id="M73"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mo>&#x0007B;</mml:mo><mml:mtext>ECad</mml:mtext><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>&#x0007D;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x0007B;</mml:mo><mml:mtext>ROS</mml:mtext><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x0007D;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x0007B;</mml:mo><mml:mtext>SLUG</mml:mtext><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x0007D;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x0007B;</mml:mo><mml:mtext>SNAIL</mml:mtext><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x0007D;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x0007B;</mml:mo><mml:mtext>TGFB</mml:mtext><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x0007D;</mml:mo><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#x0007B;</mml:mo><mml:mtext>TGFBR</mml:mtext><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x0007D;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x0007B;</mml:mo><mml:mtext>ZEB</mml:mtext><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x0007D;</mml:mo><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#x0007B;</mml:mo><mml:mtext>BCat</mml:mtext><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>&#x0007D;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x0007B;</mml:mo><mml:mtext>CSL</mml:mtext><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x0007D;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x0007B;</mml:mo><mml:mtext>SMAD</mml:mtext><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x0007D;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x0007B;</mml:mo><mml:mtext>TCF-LEF</mml:mtext><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>&#x0007D;</mml:mo><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#x0007B;</mml:mo><mml:mtext>miR200</mml:mtext><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>&#x0007D;</mml:mo><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The first seven control strategies can be identified using direct percolation to the maximal subspaces of the target subset. The last five are not identified by using only percolation but are captured by the model checking approach. Two of the obtained interventions correspond to input variables (ROS and TGFB) while the other ten correspond to internal components. Looking at the regulatory functions, we observe that TGFBR is uniquely regulated by TGFB, so setting TGFB to 1 implies that TGFBR is also set to 1 and, therefore, these interventions are equivalent in terms of their effect on phenotypic components. Moreover, since there are no control strategies of size 1 for individual phenotypes, we deduce that these interventions lead to systems where multiple phenotypes coexist, none of them being hybrid.</p>
<p>The components involved in the control strategies identified include the epithelial markers (ECad and miR200) and the mesenchymal ones (BCat, SNAIL, SLUG, TCF-LEF, and ZEB) as described in [<xref ref-type="bibr" rid="B20">20</xref>]. In addition, the authors of [<xref ref-type="bibr" rid="B20">20</xref>] performed a systematic analysis of the effect of single mutants on the attractor landscape, excluding the input variables. All the single mutants corresponding to the non-input interventions found by our approach were identified as having only attractors in non-hybrid phenotypes. Moreover, there was no other single mutation that produced this result. In other words, the results obtained by our approach are in complete correspondence to the ones presented in [<xref ref-type="bibr" rid="B20">20</xref>].</p></sec></sec>
<sec>
<title>5.2. Comparison With Other Methods</title>
<p>In this section, we compare the model checking approach to other control methods currently available. We show that our method is able to capture all the minimal control strategies identified by other methods, uncovering in some cases minimal control strategies that might be missed by them.</p>
<p>In order to be able to compare different approaches, certain common features need to be chosen. Here, we consider control for any possible initial state. We separately compare to methods tackling attractor control and target control. Although approaches for target control can also be used for attractor control when the target attractor is a steady state or minimal trap space, they are usually aimed at targeting larger subspaces, determined for example by a phenotype, which often include several attractors. For this reason, we consider two different scenarios: one for attractor control and one for target control. The case of an arbitrary subset as target could not be considered for comparison, since no other method, to our knowledge, allows this possibility.</p>
<p>The comparison presented here encompasses each of the main approaches for control strategy identification discussed in previous sections (an overview of the main features of the control methods is shown in <xref ref-type="table" rid="T4">Table 4</xref>):</p>
<list list-type="bullet">
<list-item><p><bold>For attractor control:</bold></p>
<list list-type="bullet">
<list-item><p><italic>Stable-motifs approach (SM)</italic>, attractor control method based on the identification of stable motifs as described in [<xref ref-type="bibr" rid="B7">7</xref>].</p></list-item>
<list-item><p><italic>Basins approach (BA)</italic>, attractor control method that uses the basin of attraction of the target attractor to identify control strategies as implemented in [<xref ref-type="bibr" rid="B14">14</xref>].</p></list-item>
<list-item><p><italic>Model checking approach (MC)</italic>, as presented in Section 4.</p></list-item></list></list-item>
<list-item><p><bold>For target control:</bold></p>
<list list-type="bullet">
<list-item><p><italic>Percolation-only approach (PO)</italic>, target control method based on percolation into the target subspace as implemented in [<xref ref-type="bibr" rid="B21">21</xref>].</p></list-item>
<list-item><p><italic>Trap-spaces approach (TS)</italic>, target control method based on percolation into selected trap spaces introduced in [<xref ref-type="bibr" rid="B9">9</xref>].</p></list-item>
<list-item><p><italic>Completeness approach (CN)</italic>, introduced in Section 3.2.</p></list-item>
<list-item><p><italic>Model checking approach (MC)</italic>, presented in Section 4.</p></list-item>
</list></list-item></list>
<p>Since the methods for attractor control considered here (BA and SM) only work for asynchronous update, the comparison is only made for this dynamics. In the case of target control, control strategies are identified for both synchronous and asynchronous dynamics.</p>
<table-wrap position="float" id="T4">
<label>Table 4</label>
<caption><p>Overview of the versatility of the different control methods in terms of the types of targets and update schemes.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th/>
<th/>
<th/>
<th valign="top" align="center" colspan="5" style="border-bottom: thin solid #000000;"><bold>Control target</bold></th>
<th valign="top" align="center" colspan="3" style="border-bottom: thin solid #000000;"><bold>Update</bold></th>
</tr>
<tr>
<th valign="top" align="left" colspan="2"><bold>Method</bold></th>
<th valign="top" align="left"><bold>Tool</bold></th>
<th valign="top" align="left"><bold>Steady state</bold></th>
<th valign="top" align="center"><bold>Trap space attractor</bold></th>
<th valign="top" align="center"><bold>Complex attractor</bold></th>
<th valign="top" align="center"><bold>Subspace</bold></th>
<th valign="top" align="center"><bold>Arbitrary subset</bold></th>
<th valign="top" align="center"><bold>Async</bold></th>
<th valign="top" align="center"><bold>Sync</bold></th>
<th valign="top" align="center"><bold>Gen. async</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Basins</td>
<td valign="top" align="left">BA</td>
<td valign="top" align="left">CABEAN [<xref ref-type="bibr" rid="B14">14</xref>]</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
</tr>
<tr>
<td valign="top" align="left">Stable motifs</td>
<td valign="top" align="left">SM</td>
<td valign="top" align="left">StableMotifs [<xref ref-type="bibr" rid="B7">7</xref>]</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
</tr>
<tr>
<td valign="top" align="left">Percolation-only</td>
<td valign="top" align="left">PO</td>
<td valign="top" align="left">Caspo [<xref ref-type="bibr" rid="B21">21</xref>]</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">Trap spaces</td>
<td valign="top" align="left">TS</td>
<td valign="top" align="left">PyBoolNet [<xref ref-type="bibr" rid="B9">9</xref>]</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">Completeness</td>
<td valign="top" align="left">CN</td>
<td valign="top" align="left">PyBoolNet</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">Model checking</td>
<td valign="top" align="left">MC</td>
<td valign="top" align="left">PyBoolNet</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>In view of the different nature of each method, we do not compare their running times. Some approaches require the computation of the system attractors to identify the control strategies (BA, SM). Others do not allow the choice of a certain attractor as target and identify control strategies for all the attractors simultaneously (SM). Therefore, a fair comparison with respect to the running times is hard to achieve. For this reason, we focus on the amount and size of the control strategies identified, provided that the program terminates within several hours. In particular, our method takes between a few minutes and 2 h for the networks and targets chosen for attractor control and between half an hour and 12 h for the networks and targets chosen for target control.</p>
<p>In order to capture different control scenarios, several biological networks of different sizes with different type and number of attractors are considered. A short description of each network is provided below. See <xref ref-type="table" rid="T5">Table 5</xref> for an overview of the networks and their features. The Boolean rules for each biological network can be found in the PyBoolNet repository [<xref ref-type="bibr" rid="B18">18</xref>].</p>
<list list-type="order">
<list-item><p>T-LGL network, introduced by Zhang et al. [<xref ref-type="bibr" rid="B4">4</xref>] to model the T cell large granular lymphocyte (T-LGL) survival signaling network. In order for SM to terminate the processing of the network within a few hours, it has been adapted as in [<xref ref-type="bibr" rid="B7">7</xref>], removing the outgoing interactions of <italic>Apoptosis</italic> and setting <italic>Stimuli</italic> and <italic>IL15</italic> to 1 and the remaining inputs to 0. The simplified network consists of 60 Boolean variables and its asynchronous dynamics has 3 cyclic attractors, vs. the 156 (steady states and cyclic) of the original. For sake of simplicity, the same modified network is used for attractor control and target control.</p></list-item>
<list-item><p>MAPK, introduced by Grieco et al. [<xref ref-type="bibr" rid="B3">3</xref>] to model the effect of the Mitogen-Activated Protein Kinase (MAPK) pathway on cell fate decisions taken in pathological cells. The network consists of 53 Boolean variables and it has 18 attractors in the asynchronous dynamics, 12 steady states, and 6 cyclic attractors.</p></list-item>
<list-item><p>Cell-Fate network, introduced by Calzone et al. [<xref ref-type="bibr" rid="B2">2</xref>] to model the cell fate decision process. The network uses 28 Boolean variables and its asynchronous dynamics has 27 attractors, all of them steady states. These are classified in four different phenotypes (Apoptosis, Survival, Non-Apoptotic Cell Death, and Naive) according to the values of the output components of the network.</p></list-item>
</list>
<p>As mentioned in Section 4.3, our method takes as input a constant-free Boolean function. Therefore, all the networks with constant coordinate functions considered for comparison have been pre-processed so that the constant values are percolated and removed from the network. In such cases, for the sake of the comparison, all the methods have taken as input the reduced network.</p>
<table-wrap position="float" id="T5">
<label>Table 5</label>
<caption><p>Main features of the biological networks used in the comparison.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th valign="top" align="center" colspan="2"><bold>Network</bold></th>
<th valign="top" align="left"><bold>Size</bold></th>
<th valign="top" align="left"><bold>Inputs</bold></th>
<th valign="top" align="left"><bold>Outputs</bold></th>
<th valign="top" align="center" colspan="2" style="border-bottom: thin solid #000000;"><bold>Attractors</bold></th>
</tr>
<tr>
<th/>
<th/>
<th/>
<th/>
<th/>
<th valign="top" align="center"><bold>Steady</bold></th>
<th valign="top" align="center"><bold>Cyclic</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Cell-Fate</td>
<td valign="top" align="left">[<xref ref-type="bibr" rid="B2">2</xref>]</td>
<td valign="top" align="left">28</td>
<td valign="top" align="left">3</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">27</td>
<td valign="top" align="center">0</td>
</tr>
<tr>
<td valign="top" align="left">MAPK</td>
<td valign="top" align="left">[<xref ref-type="bibr" rid="B3">3</xref>]</td>
<td valign="top" align="left">53</td>
<td valign="top" align="left">4</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">12</td>
<td valign="top" align="center">6</td>
</tr>
<tr>
<td valign="top" align="left">T-LGL</td>
<td valign="top" align="left">[<xref ref-type="bibr" rid="B4">4</xref>]</td>
<td valign="top" align="left">60</td>
<td valign="top" align="left">6</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">3</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p><italic>Input components are fixed in the T-LGL network and free in the Cell-Fate and MAPK networks, unless specified otherwise</italic>.</p>
</table-wrap-foot>
</table-wrap>
<sec>
<title>5.2.1. Attractor Control</title>
<p>We compare our model checking approach (MC) to two methods for attractor control: stable motifs (SM) [<xref ref-type="bibr" rid="B7">7</xref>] and basins of attraction (BA) [<xref ref-type="bibr" rid="B14">14</xref>]. SM works for steady states and the complex attractors captured by the stable motifs (in some cases, complex attractors are not identified and the method cannot be applied). BA works for any kind of attractors and computes their basins of attraction to identify minimal control strategies.</p>
<p>The control problems selected for each network are described below.</p>
<list list-type="order">
<list-item><p><bold>T-LGL network</bold>. The three attractors of this network can be classified in two types (Survival and Apoptosis) according to the values of the output components. For this comparison, the apoptotic attractor is chosen, that is, the one with Apoptosis = 1. Similar results would be obtained for another choice of attractor.</p></list-item>
<list-item><p><bold>MAPK network</bold>. The 18 attractors of this network can also be classified in two types (Survival and Apoptosis) according to the values of the output components. In order to apply BA to this network, we set some input components to fixed values. We consider all the input combinations that allow the two phenotypes to coexist. Three input-value combinations satisfy this condition. For sake of space, we only show the results for one of the combinations, the one fixing EGFR-stimulus = 0 and FGFR3-stimulus = 0 and targeting an apoptotic attractor. Similar results for BA and MC would be obtained for the other input-value combinations and different choices of attractor. Results for SM might vary depending on the target attractor that is chosen.</p></list-item>
<list-item><p><bold>Cell-Fate network</bold>. The 27 attractors of this network can be classified in four different phenotypes (Apoptosis, Survival, Non-Apoptotic Cell Death, and Naive) according to the values of the output components. The control strategies up to size 4 obtained by each method for each of the attractors of the network are the same, except for five attractors, where the SM approach missed some of the minimal control strategies obtained by BA and MC. In order to gain more insight, we also compare the results when fixing the input components. We analyse the five input-value combinations that allow the three relevant phenotypes (Apoptosis, Survival, and NonACD) to coexist. For sake of space, we only show the results for one of the combinations, the one fixing FADD = 0, FASL = 1, and TNF = 1 and targeting the apoptotic attractor. Similar results would be obtained for the other input-value combinations and different choices of attractor.</p></list-item>
</list>
<p><xref ref-type="table" rid="T6">Table 6</xref> contains the size and number of the control strategies up to size 4 computed by each approach for each network. MC is able to identify all the minimal control strategies for every network. SM obtains some non-minimal control strategies of larger size, which are supersets of minimal ones. BA identifies all the minimal control strategies of minimum size, as done by MC. However, while BA does not identify any control strategy larger than the minimum size, MC computes all the strategies minimal with respect to inclusion. The minimal control strategies for each network and the methods that are able to identify them are shown in <xref ref-type="table" rid="T7">Table 7</xref>.</p>
<table-wrap position="float" id="T6">
<label>Table 6</label>
<caption><p>Number and size of the control strategies up to size 4 identified by each method (SM, BA, and MC) for the corresponding attractor of each biological network, with the input components fixed as mentioned in the main text.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th valign="top" align="left"><bold>Network</bold></th>
<th valign="top" align="center"><bold>Method</bold></th>
<th valign="top" align="center"><bold>Size 1</bold></th>
<th valign="top" align="center"><bold>Size 2</bold></th>
<th valign="top" align="center"><bold>Size 3</bold></th>
<th valign="top" align="center"><bold>Size 4</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Cell-Fate</td>
<td valign="top" align="center">SM</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">28 (12)</td>
<td valign="top" align="center">2 (0)</td>
</tr>
<tr>
<td/>
<td valign="top" align="center">BA</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
</tr>
<tr>
<td/>
<td valign="top" align="center">MC</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">28</td>
<td valign="top" align="center">0</td>
</tr>
<tr>
<td valign="top" align="left">T-LGL</td>
<td valign="top" align="center">SM</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">5 (0)</td>
<td valign="top" align="center">1 (0)</td>
</tr>
<tr>
<td/>
<td valign="top" align="center">BA</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
</tr>
<tr>
<td/>
<td valign="top" align="center">MC</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
</tr>
<tr>
<td valign="top" align="left">MAPK</td>
<td valign="top" align="center">SM</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">16 (0)</td>
</tr>
<tr>
<td/>
<td valign="top" align="center">BA</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">0</td>
</tr>
<tr>
<td/>
<td valign="top" align="center">MC</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">0</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p><italic>When a method obtains non-minimal control strategies, the number of minimal control strategies identified is indicated in parenthesis. Note that BA does not look for larger control strategies once a minimal one (with respect to size) is obtained</italic>.</p>
</table-wrap-foot>
</table-wrap>
<table-wrap position="float" id="T7">
<label>Table 7</label>
<caption><p>Minimal control strategies up to size 4 identified by each method (SM, BA, and MC) for the selected attractor of each biological network.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th valign="top" align="left"><bold>Network</bold></th>
<th valign="top" align="left"><bold>Minimal control strategies</bold></th>
<th valign="top" align="left"><bold>SM</bold></th>
<th valign="top" align="left"><bold>BA</bold></th>
<th valign="top" align="left"><bold>MC</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Cell-Fate</td>
<td valign="top" align="left">{BAX = 1, MPT = 0}</td>
<td valign="top" align="left">&#x02013;</td>
<td valign="top" align="left">&#x02713;</td>
<td valign="top" align="left">&#x02713;</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">{BAX = 1, ROS = 0}</td>
<td valign="top" align="left">&#x02013;</td>
<td valign="top" align="left">&#x02713;</td>
<td valign="top" align="left">&#x02713;</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">{CASP3 = 1, MPT = 0}</td>
<td valign="top" align="left">&#x02713;</td>
<td valign="top" align="left">&#x02713;</td>
<td valign="top" align="left">&#x02713;</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">{CASP3 = 1, ROS = 0}</td>
<td valign="top" align="left">&#x02713;</td>
<td valign="top" align="left">&#x02713;</td>
<td valign="top" align="left">&#x02713;</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">{CASP8 = 1, MPT = 0}</td>
<td valign="top" align="left">&#x02013;</td>
<td valign="top" align="left">&#x02713;</td>
<td valign="top" align="left">&#x02713;</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">{CASP8 = 1, ROS = 0}</td>
<td valign="top" align="left">&#x02013;</td>
<td valign="top" align="left">&#x02713;</td>
<td valign="top" align="left">&#x02713;</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">{MOMP = 1, MPT = 0}</td>
<td valign="top" align="left">&#x02013;</td>
<td valign="top" align="left">&#x02713;</td>
<td valign="top" align="left">&#x02713;</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">{MOMP = 1, ROS = 0}</td>
<td valign="top" align="left">&#x02013;</td>
<td valign="top" align="left">&#x02713;</td>
<td valign="top" align="left">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">T-LGL</td>
<td valign="top" align="left">{Ceramide = 1}</td>
<td valign="top" align="left">&#x02013;</td>
<td valign="top" align="left">&#x02713;</td>
<td valign="top" align="left">&#x02713;</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">{PDGFR = 0}</td>
<td valign="top" align="left">&#x02713;</td>
<td valign="top" align="left">&#x02713;</td>
<td valign="top" align="left">&#x02713;</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">{S1P = 0}</td>
<td valign="top" align="left">&#x02713;</td>
<td valign="top" align="left">&#x02713;</td>
<td valign="top" align="left">&#x02713;</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">{SPHK1 = 0}</td>
<td valign="top" align="left">&#x02713;</td>
<td valign="top" align="left">&#x02713;</td>
<td valign="top" align="left">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">MAPK</td>
<td valign="top" align="left">{DNA-damage = 1, TGFBR-stimulus = 0, GAB1 = 0}</td>
<td valign="top" align="left">&#x02013;</td>
<td valign="top" align="left">&#x02713;</td>
<td valign="top" align="left">&#x02713;</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">{DNA-damage = 1, TGFBR-stimulus = 0, PI3K = 0}</td>
<td valign="top" align="left">&#x02013;</td>
<td valign="top" align="left">&#x02713;</td>
<td valign="top" align="left">&#x02713;</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p><italic>&#x02713; and &#x02212; denote whether the control strategy is obtained by the method or not, respectively. For simplicity, only the control strategies of size 2 are included for the Cell-Fate network</italic>.</p>
</table-wrap-foot>
</table-wrap></sec>
<sec>
<title>5.2.2. Target Control</title>
<p>We compare our model checking approach (MC) in asynchronous and synchronous dynamics to several methods for target control: percolation to target (PO) [<xref ref-type="bibr" rid="B21">21</xref>], percolation <italic>via</italic> trap spaces (TS) [<xref ref-type="bibr" rid="B9">9</xref>], and the completeness approach (CN), developed in Section 3.2. An overview of the features of each control method is shown in <xref ref-type="table" rid="T4">Table 4</xref>.</p>
<p>The target subspaces chosen for each network are the ones corresponding to the apoptotic phenotype, a common target in drug identification studies for cancer therapeutic treatments [<xref ref-type="bibr" rid="B22">22</xref>]. They are defined in terms of the output components of each network:
<list list-type="order">
<list-item><p><bold>T-LGL:</bold> {Apoptosis = 1, Proliferation = 0}.</p></list-item>
<list-item><p><bold>MAPK:</bold> {Apoptosis = 1, Proliferation = 0, Growth-Arrest = 1}.</p></list-item>
<list-item><p><bold>Cell-Fate:</bold> {Apoptosis = 1, Survival = 0, NonACD = 0}.</p></list-item>
</list></p>
<p><xref ref-type="table" rid="T8">Table 8</xref> contains the size and number of the control strategies computed by each approach for the asynchronous and synchronous dynamics. It is important to note that all the minimal control strategies obtained by PO are included in the ones identified by TS, since TS is built on top of PO. Moreover, direct percolation is a pre-check for CN and MC methods and, therefore, all minimal control strategies found by PO are obtained by CN and MS as well. PO is able to identify a high number of minimal control strategies, as is to be expected since regulatory functions modeling biological systems usually induce a lot of percolation. Nonetheless, in some networks this number is still far from the number of minimal control strategies identified by MC.</p>
<table-wrap position="float" id="T8">
<label>Table 8</label>
<caption><p>Number and size of the control strategies identified by each method (PO, TS, CN, and MC) for the corresponding target subspace of each biological network in the asynchronous and synchronous dynamics.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th/>
<th/>
<th valign="top" align="center" colspan="3" style="border-bottom: thin solid #000000;"><bold>Asynchronous</bold></th>
<th valign="top" align="center" colspan="3" style="border-bottom: thin solid #000000;"><bold>Synchronous</bold></th>
</tr>
<tr>
<th valign="top" align="left"><bold>Network</bold></th>
<th valign="top" align="left"><bold>Method</bold></th>
<th valign="top" align="center"><bold>Size 1</bold></th>
<th valign="top" align="center"><bold>Size 2</bold></th>
<th valign="top" align="center"><bold>Size 3</bold></th>
<th valign="top" align="center"><bold>Size 1</bold></th>
<th valign="top" align="center"><bold>Size 2</bold></th>
<th valign="top" align="center"><bold>Size 3</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Cell-Fate</td>
<td valign="top" align="left">PO</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">17</td>
<td valign="top" align="center">173</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">17</td>
<td valign="top" align="center">173</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">TS</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">17</td>
<td valign="top" align="center">173</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">17</td>
<td valign="top" align="center">173</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">CN</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">21</td>
<td valign="top" align="center">191</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">17</td>
<td valign="top" align="center">189</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">MC</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">21</td>
<td valign="top" align="center">191</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">17</td>
<td valign="top" align="center">189</td>
</tr>
<tr>
<td valign="top" align="left">T-LGL</td>
<td valign="top" align="left">PO</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">224 (77)</td>
<td valign="top" align="center">327 (77)</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">224 (164)</td>
<td valign="top" align="center">327 (97)</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">TS</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">195 (77)</td>
<td valign="top" align="center">282 (77)</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">224 (164)</td>
<td valign="top" align="center">327 (97)</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">CN</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">116</td>
<td valign="top" align="center">204</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">232 (172)</td>
<td valign="top" align="center">762 (109)</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">MC</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">116</td>
<td valign="top" align="center">204</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">251</td>
<td valign="top" align="center">261</td>
</tr>
<tr>
<td valign="top" align="left">MAPK</td>
<td valign="top" align="left">PO</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">124 (59)</td>
<td valign="top" align="center">175 (45)</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">124 (88)</td>
<td valign="top" align="center">175 (49)</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">TS</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">106 (59)</td>
<td valign="top" align="center">162 (45)</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">124 (88)</td>
<td valign="top" align="center">175 (49)</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">CN</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">105</td>
<td valign="top" align="center">66</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">164 (112)</td>
<td valign="top" align="center">195 (155)</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">MC</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">105</td>
<td valign="top" align="center">66</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">118</td>
<td valign="top" align="center">216</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p><italic>When a method obtains non-minimal control strategies, the number of minimal control strategies identified is indicated in parenthesis</italic>.</p>
</table-wrap-foot>
</table-wrap>
<p>Control strategies are update-dependent by definition. However, all the control strategies identified by PO are valid in all the dynamics considered here. The number of these control strategies that are minimal might vary from one update to another (see results for T-LGL and MAPK networks). On the other hand, methods TS, CN, and MC are sensitive to the update. In the case of TS, since none of the networks is complete in the synchronous dynamics, attractors cannot be approximated by minimal trap spaces and, therefore, no additional control strategies compared to PO are obtained. Interestingly, the methods CN and MC obtain the same number of control strategies for the asynchronous dynamics. This is not the case for the synchronous dynamics, where additional control strategies are obtained by MC for the T-LGL and MAPK networks. This is caused by the fact that the CN method cannot classify a subspace as a control strategy if the restricted network is not complete. The CN method is likely to obtain better results when the original network is complete, which is usually the case for the asynchronous dynamics of biological networks [<xref ref-type="bibr" rid="B16">16</xref>].</p>
<p>These case studies illustrate how an exhaustive approach like the one provided by the model checking method introduced in this article has the capacity to identify, in networks of practical relevance, simple sets of interventions that might otherwise not be identified, and that can furnish additional insights into the model, widening the possibility for potential applications.</p></sec></sec></sec>
<sec sec-type="discussion" id="s6">
<title>6. Discussion</title>
<p>This work presents a novel method to identify all the minimal control strategies for an arbitrary target subset. It is able to deal not only with the problems of attractor control and target control, already tackled by existing methods, but also with subset control, providing maximal flexibility on the definition of the control goal and allowing for instance the possibility of dealing with attractor avoidance problems.</p>
<p>The comparison performed in Section 5.2 shows that our approach is able to identify all the minimal control strategies obtained by the methods analyzed and, in many cases, to uncover new control strategies. It also provides flexibility to study different control problems, which can lead to additional insights into the network. For these reasons, the method presented here can be a good option when a deep analysis of the control strategies of the model is required.</p>
<p>Even though running times are not compared in this work, the model checking approach is likely to entail more computational time than other approaches due to its exhaustiveness, since in some cases the full exploration of the state space might be required. Although the use of symbolic states allows one to deal with relatively large networks, the computational time required to explore their state spaces might still be too high. For this reason, several steps have been developed to reduce the candidate space and the dimensionality of the problem, improving the overall performance. The case studies of Section 5 show the applicability of the method to real models of interest. In cases where this reduction might still be insufficient, our approach could be used to complement faster methods for the particular scenarios in which a more exhaustive analysis is needed.</p>
<p>This new approach is able to adapt to different types of targets and updates. This flexibility, provided by the versatility of model checking, results in the potential to be extended to other control problems. Possible future works could include its extension to tackle control from a set of initial states or the addition of other types of interventions.</p></sec>
<sec sec-type="data-availability" id="s7">
<title>Data Availability Statement</title>
<p>Publicly available datasets were analyzed in this study. This data can be found at: <ext-link ext-link-type="uri" xlink:href="https://github.com/hklarner/pyboolnet/tree/master/pyboolnet/repository">https://github.com/hklarner/pyboolnet/tree/master/pyboolnet/repository</ext-link>. The implementation of the method presented in this work can be found in PyBoolNet, in the module <italic>control_strategies.py</italic>.</p></sec>
<sec id="s8">
<title>Author Contributions</title>
<p>LC-F, ET, and HS conceived the study. LC-F developed the underlying theory, the code, and the analysis with the support of ET. LC-F wrote the manuscript, with contributions from ET and HS. All authors approved the final manuscript.</p></sec>
<sec sec-type="funding-information" id="s9">
<title>Funding</title>
<p>LC-F was partially funded by the Volkswagen Stiftung (Volkswagen Foundation) under the funding initiative Life?&#x02014;A fresh scientific approach to the basic principles of life (Project ID: 93063).</p></sec>
<sec sec-type="COI-statement" id="conf1">
<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 sec-type="disclaimer" id="s10">
<title>Publisher&#x00027;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>
</body>
<back>
<ack>
<p>We would like to thank Claudine Chaouiya, Florence Janody, and Hannes Klarner for fruitful discussions. We acknowledge support by the Open Access Publication Initiative of Freie Universit&#x000E4;t Berlin.</p>
</ack>
<ref-list>
<title>References</title>
<ref id="B1">
<label>1.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Flobak</surname> <given-names>&#x000C5;</given-names></name> <name><surname>Baudot</surname> <given-names>A</given-names></name> <name><surname>Remy</surname> <given-names>E</given-names></name> <name><surname>Thommesen</surname> <given-names>L</given-names></name> <name><surname>Thieffry</surname> <given-names>D</given-names></name> <name><surname>Kuiper</surname> <given-names>M</given-names></name> <etal/></person-group>. <article-title>Discovery of drug synergies in gastric cancer cells predicted by logical modeling</article-title>. <source>PLoS Comput Biol</source>. (<year>2015</year>) <volume>11</volume>:<fpage>e1004426</fpage>. <pub-id pub-id-type="doi">10.1371/journal.pcbi.1004426</pub-id><pub-id pub-id-type="pmid">26317215</pub-id></citation></ref>
<ref id="B2">
<label>2.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Calzone</surname> <given-names>L</given-names></name> <name><surname>Tournier</surname> <given-names>L</given-names></name> <name><surname>Fourquet</surname> <given-names>S</given-names></name> <name><surname>Thieffry</surname> <given-names>D</given-names></name> <name><surname>Zhivotovsky</surname> <given-names>B</given-names></name> <name><surname>Barillot</surname> <given-names>E</given-names></name> <etal/></person-group>. <article-title>Mathematical modelling of cell-fate decision in response to death receptor engagement</article-title>. <source>PLoS Comput Biol</source>. (<year>2010</year>) <volume>6</volume>:<fpage>e1000702</fpage>. <pub-id pub-id-type="doi">10.1371/journal.pcbi.1000702</pub-id><pub-id pub-id-type="pmid">20221256</pub-id></citation></ref>
<ref id="B3">
<label>3.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Grieco</surname> <given-names>L</given-names></name> <name><surname>Calzone</surname> <given-names>L</given-names></name> <name><surname>Bernard-Pierrot</surname> <given-names>I</given-names></name> <name><surname>Radvanyi</surname> <given-names>F</given-names></name> <name><surname>Kahn-Perl&#x000E8;s</surname> <given-names>B</given-names></name> <name><surname>Thieffry</surname> <given-names>D</given-names></name></person-group>. <article-title>Integrative modelling of the influence of MAPK network on cancer cell fate decision</article-title>. <source>PLoS Comput Biol</source>. (<year>2013</year>) <volume>9</volume>:<fpage>e1003286</fpage>. <pub-id pub-id-type="doi">10.1371/journal.pcbi.1003286</pub-id><pub-id pub-id-type="pmid">24250280</pub-id></citation></ref>
<ref id="B4">
<label>4.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhang</surname> <given-names>R</given-names></name> <name><surname>Shah</surname> <given-names>MV</given-names></name> <name><surname>Yang</surname> <given-names>J</given-names></name> <name><surname>Nyland</surname> <given-names>SB</given-names></name> <name><surname>Liu</surname> <given-names>X</given-names></name> <name><surname>Yun</surname> <given-names>JK</given-names></name> <etal/></person-group>. <article-title>Network model of survival signaling in large granular lymphocyte leukemia</article-title>. <source>Proc Natl Acad Sci USA</source>. (<year>2008</year>) <volume>105</volume>:<fpage>16308</fpage>&#x02013;<lpage>13</lpage>. <pub-id pub-id-type="doi">10.1073/pnas.0806447105</pub-id><pub-id pub-id-type="pmid">18852469</pub-id></citation></ref>
<ref id="B5">
<label>5.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Dongre</surname> <given-names>A</given-names></name> <name><surname>Weinberg</surname> <given-names>RA</given-names></name></person-group>. <article-title>New insights into the mechanisms of epithelial-mesenchymal transition and implications for cancer</article-title>. <source>Nat Rev Mol Cell Biol</source>. (<year>2019</year>) <volume>20</volume>:<fpage>69</fpage>&#x02013;<lpage>84</lpage>. <pub-id pub-id-type="doi">10.1038/s41580-018-0080-4</pub-id><pub-id pub-id-type="pmid">30459476</pub-id></citation></ref>
<ref id="B6">
<label>6.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Mandon</surname> <given-names>H</given-names></name> <name><surname>Su</surname> <given-names>C</given-names></name> <name><surname>Haar</surname> <given-names>S</given-names></name> <name><surname>Pang</surname> <given-names>J</given-names></name> <name><surname>Paulev&#x000E9;</surname> <given-names>L</given-names></name></person-group>. <article-title>Sequential reprogramming of Boolean networks made practical</article-title>. In: <person-group person-group-type="editor"><name><surname>Bortolussi</surname> <given-names>L</given-names></name> <name><surname>Sanguinetti</surname> <given-names>G</given-names></name></person-group>, editors. <source>Computational Methods in Systems Biology</source>. <volume>Vol. 11773</volume>. <publisher-loc>Cham</publisher-loc>: <publisher-name>Springer International Publishing</publisher-name> (<year>2019</year>). p. <fpage>3</fpage>&#x02013;<lpage>19</lpage>. <pub-id pub-id-type="doi">10.1007/978-3-030-31304-3_1</pub-id></citation></ref>
<ref id="B7">
<label>7.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Za&#x000F1;udo</surname> <given-names>JGT</given-names></name> <name><surname>Albert</surname> <given-names>R</given-names></name></person-group>. <article-title>Cell fate reprogramming by control of intracellular network dynamics</article-title>. <source>PLoS Comput Biol</source>. (<year>2015</year>) <volume>11</volume>:<fpage>e1004193</fpage>. <pub-id pub-id-type="doi">10.1371/journal.pcbi.1004193</pub-id><pub-id pub-id-type="pmid">26700269</pub-id></citation></ref>
<ref id="B8">
<label>8.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Biane</surname> <given-names>C</given-names></name> <name><surname>Delaplace</surname> <given-names>F</given-names></name></person-group>. <article-title>Causal reasoning on boolean control networks based on abduction: theory and application to cancer drug discovery</article-title>. <source>IEEE/ACM Trans Comput Biol Bioinform</source>. (<year>2019</year>) <volume>16</volume>:<fpage>1574</fpage>&#x02013;<lpage>85</lpage>. <pub-id pub-id-type="doi">10.1109/TCBB.2018.2889102</pub-id><pub-id pub-id-type="pmid">30582550</pub-id></citation></ref>
<ref id="B9">
<label>9.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Cifuentes Fontanals</surname> <given-names>L</given-names></name> <name><surname>Tonello</surname> <given-names>E</given-names></name> <name><surname>Siebert</surname> <given-names>H</given-names></name></person-group>. <article-title>Control strategy identification <italic>via</italic> trap spaces in Boolean networks</article-title>. In: <person-group person-group-type="editor"><name><surname>Abate</surname> <given-names>A</given-names></name> <name><surname>Petrov</surname> <given-names>T</given-names></name> <name><surname>Wolf</surname> <given-names>V</given-names></name></person-group>, editors. <source>Computational Methods in Systems Biology</source>. <publisher-loc>Cham</publisher-loc>: <publisher-name>Springer International Publishing</publisher-name> (<year>2020</year>). p. <fpage>159</fpage>&#x02013;<lpage>75</lpage>. <pub-id pub-id-type="doi">10.1007/978-3-030-60327-4_9</pub-id></citation></ref>
<ref id="B10">
<label>10.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Samaga</surname> <given-names>R</given-names></name> <name><surname>Kamp</surname> <given-names>AV</given-names></name> <name><surname>Klamt</surname> <given-names>S</given-names></name></person-group>. <article-title>Computing combinatorial intervention strategies and failure modes in signaling networks</article-title>. <source>J Comput Biol</source>. (<year>2010</year>) <volume>17</volume>:<fpage>39</fpage>&#x02013;<lpage>53</lpage>. <pub-id pub-id-type="doi">10.1089/cmb.2009.0121</pub-id><pub-id pub-id-type="pmid">20078396</pub-id></citation></ref>
<ref id="B11">
<label>11.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yang</surname> <given-names>G</given-names></name> <name><surname>G&#x000F3;mez Tejeda Za&#x000F1;udo</surname> <given-names>J</given-names></name> <name><surname>Albert</surname> <given-names>R</given-names></name></person-group>. <article-title>Target control in logical models using the domain of influence of nodes</article-title>. <source>Front Physiol</source>. (<year>2018</year>) <volume>9</volume>:<fpage>454</fpage>. <pub-id pub-id-type="doi">10.3389/fphys.2018.00454</pub-id><pub-id pub-id-type="pmid">29867523</pub-id></citation></ref>
<ref id="B12">
<label>12.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kaminski</surname> <given-names>R</given-names></name> <name><surname>Schaub</surname> <given-names>T</given-names></name> <name><surname>Siegel</surname> <given-names>A</given-names></name> <name><surname>Videla</surname> <given-names>S</given-names></name></person-group>. <article-title>Minimal intervention strategies in logical signaling networks with ASP</article-title>. <source>Theory Pract Logic Programm</source>. (<year>2013</year>) <volume>13</volume>:<fpage>675</fpage>&#x02013;<lpage>90</lpage>. <pub-id pub-id-type="doi">10.1017/S1471068413000422</pub-id></citation></ref>
<ref id="B13">
<label>13.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Murrugarra</surname> <given-names>D</given-names></name> <name><surname>Veliz-Cuba</surname> <given-names>A</given-names></name> <name><surname>Aguilar</surname> <given-names>B</given-names></name> <name><surname>Laubenbacher</surname> <given-names>R</given-names></name></person-group>. <article-title>Identification of control targets in Boolean molecular network models <italic>via</italic> computational algebra</article-title>. <source>BMC Syst Biol</source>. (<year>2016</year>) <volume>10</volume>:<fpage>94</fpage>. <pub-id pub-id-type="doi">10.1186/s12918-016-0332-x</pub-id><pub-id pub-id-type="pmid">27662842</pub-id></citation></ref>
<ref id="B14">
<label>14.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Su</surname> <given-names>C</given-names></name> <name><surname>Pang</surname> <given-names>J</given-names></name></person-group>. <article-title>CABEAN: a software for the control of asynchronous Boolean networks</article-title>. <source>Bioinformatics</source>. (<year>2020</year>) <volume>37</volume>:<fpage>879</fpage>&#x02013;<lpage>81</lpage>. <pub-id pub-id-type="doi">10.1093/bioinformatics/btaa752</pub-id><pub-id pub-id-type="pmid">32845335</pub-id></citation></ref>
<ref id="B15">
<label>15.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Carrillo</surname> <given-names>M</given-names></name> <name><surname>G&#x000F3;ngora</surname> <given-names>PA</given-names></name> <name><surname>Rosenblueth</surname> <given-names>D</given-names></name></person-group>. <article-title>An overview of existing modeling tools making use of model checking in the analysis of biochemical networks</article-title>. <source>Front Plant Sci</source>. (<year>2012</year>) <volume>3</volume>:<fpage>155</fpage>. <pub-id pub-id-type="doi">10.3389/fpls.2012.00155</pub-id><pub-id pub-id-type="pmid">22833747</pub-id></citation></ref>
<ref id="B16">
<label>16.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Klarner</surname> <given-names>H</given-names></name> <name><surname>Siebert</surname> <given-names>H</given-names></name></person-group>. <article-title>Approximating attractors of Boolean networks by iterative CTL model checking</article-title>. <source>Front Bioeng Biotechnol</source>. (<year>2015</year>) <volume>3</volume>:<fpage>130</fpage>. <pub-id pub-id-type="doi">10.3389/fbioe.2015.00130</pub-id><pub-id pub-id-type="pmid">26442247</pub-id></citation></ref>
<ref id="B17">
<label>17.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Baier</surname> <given-names>C</given-names></name> <name><surname>Katoen</surname> <given-names>JP</given-names></name></person-group>. <source>Principles of Model Checking</source>. <publisher-loc>Cambridge, MA; London</publisher-loc>: <publisher-name>MIT Press</publisher-name> (<year>2008</year>).</citation></ref>
<ref id="B18">
<label>18.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Klarner</surname> <given-names>H</given-names></name> <name><surname>Streck</surname> <given-names>A</given-names></name> <name><surname>Siebert</surname> <given-names>H</given-names></name></person-group>. <article-title>PyBoolNet: a Python package for the generation, analysis and visualization of Boolean networks</article-title>. <source>Bioinformatics</source>. (<year>2016</year>) <volume>33</volume>:<fpage>770</fpage>&#x02013;<lpage>2</lpage>. <pub-id pub-id-type="doi">10.1093/bioinformatics/btw682</pub-id><pub-id pub-id-type="pmid">27797783</pub-id></citation></ref>
<ref id="B19">
<label>19.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chaouiya</surname> <given-names>C</given-names></name> <name><surname>Naldi</surname> <given-names>A</given-names></name> <name><surname>Thieffry</surname> <given-names>D</given-names></name></person-group>. <article-title>Logical modelling of gene regulatory networks with GINsim</article-title>. <source>Methods Mol Biol</source>. (<year>2012</year>). <volume>804</volume>:<fpage>463</fpage>&#x02013;<lpage>79</lpage>. <pub-id pub-id-type="doi">10.1007/978-1-61779-361-5_23</pub-id><pub-id pub-id-type="pmid">22144167</pub-id></citation></ref>
<ref id="B20">
<label>20.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Selvaggio</surname> <given-names>G</given-names></name> <name><surname>Canato</surname> <given-names>S</given-names></name> <name><surname>Pawar</surname> <given-names>A</given-names></name> <name><surname>Monteiro</surname> <given-names>PT</given-names></name> <name><surname>Guerreiro</surname> <given-names>PS</given-names></name> <name><surname>Br&#x000E1;s</surname> <given-names>MM</given-names></name> <etal/></person-group>. <article-title>Hybrid epithelial-mesenchymal phenotypes are controlled by microenvironmental factors</article-title>. <source>Cancer Res</source>. (<year>2020</year>) <volume>80</volume>:<fpage>2407</fpage>&#x02013;<lpage>20</lpage>. <pub-id pub-id-type="doi">10.1158/0008-5472.CAN-19-3147</pub-id><pub-id pub-id-type="pmid">32217696</pub-id></citation></ref>
<ref id="B21">
<label>21.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Videla</surname> <given-names>S</given-names></name> <name><surname>Saez-Rodriguez</surname> <given-names>J</given-names></name> <name><surname>Guziolowski</surname> <given-names>C</given-names></name> <name><surname>Siegel</surname> <given-names>A</given-names></name></person-group>. <article-title>Caspo: a toolbox for automated reasoning on the response of logical signaling networks families</article-title>. <source>Bioinformatics</source>. (<year>2016</year>) <volume>33</volume>:<fpage>947</fpage>&#x02013;<lpage>50</lpage>. <pub-id pub-id-type="doi">10.1093/bioinformatics/btw738</pub-id><pub-id pub-id-type="pmid">28065903</pub-id></citation></ref>
<ref id="B22">
<label>22.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Carneiro</surname> <given-names>BA</given-names></name> <name><surname>El-Deiry</surname> <given-names>WS</given-names></name></person-group>. <article-title>Targeting apoptosis in cancer therapy</article-title>. <source>Nat Rev Clin Oncol</source>. (<year>2020</year>) <volume>17</volume>:<fpage>395</fpage>&#x02013;<lpage>417</lpage>. <pub-id pub-id-type="doi">10.1038/s41571-020-0341-y</pub-id><pub-id pub-id-type="pmid">32203277</pub-id></citation></ref>
</ref-list>
</back>
</article>