---
abstract: |
    We investigate a special case of hereditary property in graphs, referred to as [*robustness*]{}.  A property (or structure) is called robust in a graph $G$ if it is inherited by all the connected spanning subgraphs of $G$. We motivate this definition using two different settings of dynamic networks.  The first corresponds to networks of low dynamicity, where some links may be permanently removed so long as the network remains connected.  The second corresponds to highly-dynamic networks, where communication links appear and disappear arbitrarily often, subject only to the requirement that the entities are temporally connected in a recurrent fashion ([*i.e.*]{} they can always reach each other through temporal paths).  Each context induces a different interpretation of the notion of robustness. 

    We start by motivating the definition and discussing the two interpretations, after what we consider the notion independently from its interpretation, taking as our focus the robustness of [*maximal independent sets*]{} (MIS).  A graph may or may not admit a robust MIS.  We characterize the set of graphs [${\cal RMIS^\forall}$]{}in which [*all*]{} MISs are robust.  Then, we turn our attention to the graphs that [*admit*]{} a robust MIS ([${\cal RMIS^\exists}$]{}).  This class has a more complex structure; we give a partial characterization in terms of elementary graph properties, then a complete characterization by means of a (polynomial time) decision algorithm that accepts if and only if a robust MIS exists.  This algorithm can be adapted to construct such a solution if one exists. 
address:
- 'Université de Bordeaux, CNRS, Bordeaux INP, LaBRI, UMR 5800, France'
- 'Sorbonne Université, CNRS, Inria, LIP6 UMR 7606, France'
- 'Sorbonne Université, CNRS, Inria, LIP6 UMR 7606, France'
- 'Université de Bordeaux, CNRS, Bordeaux INP, LaBRI, UMR 5800, France'
author:
- Arnaud Casteigts
- Swan Dubois
- Franck Petit
- 'John M. Robson'
bibliography:
- 'robustness.bib'
title: 'Robustness: a New Form of Heredity Motivated by Dynamic Networks'
---

Heredity in graphs ,Highly-dynamic networks ,Minimal independent sets ,Temporal covering structure. 

Introduction {#sec:introduction}
============

The area of dynamic networks covers a variety of contexts, ranging from nearly-static networks where the network topology changes only occasionally, to highly-dynamic settings where the entities interact in a volatile way, through communication links which appear and disappear arbitrarily often and unexpectedly.  In the second case, the immediate structure of the communication graph at given time ([[i.e.,]{}]{}its structural snapshot) does not capture much information, the main features being rather of a temporal nature.  For example, the snapshots may never be connected, and yet offer a form of connectivity over time and space, called [*temporal connectivity*]{}.  A number of formalisms were proposed recently to capture the temporality of these contexts, such as evolving graphs, time-varying graphs, link streams, and temporal graphs (see [[e.g.]{}]{} [@Fer04; @CFQS12; @LVM17; @KKK02], among many others).  In this article, we introduce a graph concept which is strongly motivated by the highly-dynamic setting; however, the notion itself can be formulated and studied in terms of standard graphs, independently from its temporal interpretation.  Given a (standard) graph $G$, a given property (or structure) in $G$ is said to be [*robust*]{} if and only if it is inherited by every [*connected spanning subgraph*]{} of $G$. Hereditary properties based on the removal of edges are generally called [*monotone*]{} (see for instance [@heredity1; @heredity2; @K88]).  Robustness is therefore a particular case of monotonicity, in which the subgraph is additionally constrained to remain spanning and connected. ( This concept is different from other uses of the term “robustness” in the literature, see [[e.g.]{}]{} [@robustness3; @robustness1; @robustness2].)  As explained, robustness can be interpreted in several different ways. ( 1) [*Static networks with permanent link crashes:*]{} Here, the network is essentially static; however, it deteriorates over time and some of the links may definitively stop working (or equivalently, be removed).  The network is to be used so long as it still connects all the nodes.  It is easy to see, that if a property is robust in such a network, then it will remain valid so long as the network is used, despite the uncertainty regarding which of the links will crash. ( 2) [*Recurrent temporal connectivity in highly-dynamic networks:*]{} Here, the immediate structure of the network does not matter as much as its temporal properties.  In particular, a basic assumption is that temporal paths exists recurrently between all the entities, corresponding to Class [$\cal TC^R$]{} in [@Cas18] and Class 5 in [@CFQS12].  Dubois et al.  observed in [@DKP15] that this assumption is equivalent to the guarantee that a subset of the edges always reappears, although in general such as subset is not known in advance.  Thus, robustness can be interpreted in $\cal TC^R$ as the fact that a property is satified with respect to the subset of recurrent edges, whichever these edges are.  The choice for a given interpretation is not mandatory, as robustness can be studied independently.  However, the second interpretation being the original motivation here, we develop it further in a dedicated (but optional) section in the end of the paper. 

In this paper, we illustrate the concept of robustness through a classical covering problem called [*maximal independent set*]{} (MIS), which consists of selecting a subset of vertices none of which are neighbors (independence) and which is maximal for inclusion.  Let us first observe that robust MISs may or may not exist depending on the considered graph.  For example, if the graph is a triangle, then only one such structure exists up to isomorphism, consisting of a single vertex (refer to Figure \[fig:mis-a\]).  If an edge next to the selected vertex is removed, then this set is no longer maximal.  Therefore, the triangle graph admits no robust MIS. 

=\[circle, inner sep=1.2pt, fill=darkgray\] (0,0) node (a) ; (a)+(0:1) node (b) ; (a)+(-60:1) node (c) ;

(a)–(b)–(c)–(a);

=\[circle, draw, red, inner sep=2pt\] (a) node ;

\[fig:mis-a\]

=\[circle, inner sep=1.2pt, fill=darkgray\] (0,0) node (a) ; (a)+(-30:1) node (b) ; (b)+(0:1) node (c) ; (b)+(-60:1) node (d) ; (c)+(30:1) node (e) ;

(a)–(b)–(c)–(e); (b)–(d)–(c);

=\[circle, draw, red, inner sep=2pt\] (a) node ; (c) node ;

\[fig:mis-b\]

=\[circle, inner sep=1.2pt, fill=darkgray\] (0,0) node (a) ; (a)+(-30:1) node (b) ; (b)+(0:1) node (c) ; (b)+(-60:1) node (d) ; (c)+(30:1) node (e) ;

(a)–(b)–(c)–(e); (b)–(d)–(c);

=\[circle, draw, red, inner sep=2pt\] (a) node ; (d) node ; (e) node ;

\[fig:mis-c\]

=\[circle, inner sep=1.2pt, fill=darkgray\] (0,0) node (a) ; (a)+(0:1) node (b) ; (b)+(-90:1) node (c) ; (c)+(-180:1) node (d) ;

(a)–(b)–(c)–(d)–(a);

=\[circle, draw, red, inner sep=2pt\] (a) node ; (c) node ;

\[fig:mis-d\]

Some graphs admit both robust and non-robust MISs, as exemplified by the bull graphs on Figures \[fig:mis-b\] (non-robust) and \[fig:mis-c\] (robust).  Finally, some graphs like the square graph (Figure \[fig:mis-d\]) are such that [*all*]{} MISs are robust. 

Contributions
-------------

In addition to the concept itself and the related discussions, we characterize exactly the set [${\cal RMIS^\forall}$]{}of the graphs in which all MISs are robust.  To this end, we first define a class of graphs called [*sputniks*]{} (for reasons that will become clear later).  Sputniks include, among others, all the trees, for which every property is trivially robust (since none of the edges are removable).  We show that [${\cal RMIS^\forall}$]{}consists exactly of the union of sputniks and complete bipartite graphs.  The interest of this [*universal*]{} class is that finding a robust MIS in it amounts to finding a standard MIS. 

The [*existential*]{} versions of this class, namely the set [${\cal RMIS^\exists}$]{}of those graphs which admit a robust solution seem to have a more complex structure.  We first give a sufficient condition and we show that this condition is necessary in the particular case of biconnected graphs (meaning here 2-vertex-connected).  The more general case is addressed by means of an algorithm that decides if a given graph belongs to [${\cal RMIS^\exists}$]{}.  The trivial strategy for such an algorithm would amount to enumerating all MISs until a robust one is found.  However, exponentially many MISs may exist in general graphs (see Moon and Moser [@MM65], and [@F87; @GGG88] in the particular case of connected graphs) and the validity of each one may have to be satisfied in exponentially many connected spanning subgraphs.  Motivated by this observation, we present a polynomial time decision algorithm, which can be adapted into a constructive algorithm (without significant overhead).  Our algorithm relies on a particular decomposition of the graph into a tree of 2-vertex-connected (biconnected) components called an ${\cal ABC}$-tree (a variant of block-cut trees [@Harary]), along which constraints are propagated as to the MIS status of intermediate vertices.  The inner constraints of non-trivial components are solved by a reduction to the 2-SAT problem.  The yes-instances of this algorithm characterize [${\cal RMIS^\exists}$]{}, albeit indirectly.  Whether [${\cal RMIS^\exists}$]{}admits a more elementary characterization in terms of graph properties is left open. 

Organization of the paper
-------------------------

Section \[sec:definitions\] presents the main definitions and concepts.  Next, Section \[sec:forallMIS\] presents the characterization of class [${\cal RMIS^\forall}$]{}.  In Section \[sec:biconnectivity\], we show that if the graph is biconnected, then being bipartite is both necessary and sufficient to belong to [${\cal RMIS^\exists}$]{}.  Then, we present the decision algorithm in Sections \[sec:algo\] through \[sec:actual-algorithm\], its complexity in Section \[sec:complexity\] and its adaptation into a constructive algorithm in Section \[sec:constructivity\].  In Section \[sec:temporal-interpretation\], we develop the discussion regarding the temporal interpretation of robustness, motivated by highly-dynamic networks.  We conclude in Section \[sec:conclusion\] by observing some additional features of robustness in general and a few open questions. 

Main Concepts and Basic Results {#sec:definitions}
===============================

Let $G=(V,E)$ be a simple connected undirected graph on a finite set $V$ of $n$ vertices (or nodes).  We denote by $N(v)$ the neighbors of vertex $v$, [[i.e.,]{}]{}the set $\{w \mid \{v,w\}\in E\}$. The degree of a vertex $v$ is $|N(v)|$. A vertex is [*pendant*]{} if it has degree $1$. An [*articulation point*]{} (or [*cut vertex*]{}) is a vertex whose removal disconnects the graph.  A [*bridge*]{} (or [*cut edge*]{}) is an edge whose removal disconnects the graph.  We say that an edge is [*removable*]{} in a graph $G$ if it is not a bridge of $G$. Given $V' \subseteq V$, the induced subgraph $G[V']$ is the graph whose vertex set is $V'$ and whose edge set consists of all of the edges in $E$ that have both endpoints in $V'$. In the context of this paper, a graph is said to be [*biconnected*]{} if it has at least three vertices, and it remains connected after the removal of any single vertex ([[i.e.,]{}]{}2-vertex-connectivity).  A biconnected [*component*]{} is a maximal biconnected subgraph.  Finally, a [*spanning connected subgraph*]{} of a graph $G=(V,E_G)$ is a graph $H=(V, E_H)$ such that $E_H \subseteq E_G$, and $H$ is connected.  We define the concept of robustness as follows. 

\[def:robustness\] A property $P$ is [*robust*]{} in $G$ if and only if it is satisfied in every connected spanning subgraph of $G$ (including $G$ itself). 

In other words, a robust property holds even after an arbitrary number of edges are removed without disconnecting the graph.  Robustness is a special case of hereditary property, and more precisely a special case of a decreasing monotone property (see for instance [@K88]).  The term “property” includes both basic graph properties and solutions to combinatorial problems.  Our focus in this initial work is on the latter; however, looking at the robustness of basic graph properties might help understand this notion further, for instance, connectivity itself is a trivial robust property.  Bipartiteness is also a robust that is discussed at several occasions in this paper. 

In the present work, we focus on the [*maximal independent sets*]{} (MIS) problem, which consists of selecting a subset of vertices none of which are neighbors (independence) and to which no further vertex can be added (maximality).  Following Definition \[def:robustness\], a robust MIS (RMIS, for short) in a graph $G$ is a subset of vertices which remains [*maximal*]{} and [*independent*]{} in every connected spanning subgraph of $G$.

\[obs:independence\] The notion of independence is stable under the removal of edges.  Therefore, it is sufficient that an MIS remains maximal in order to be an RMIS. 

Let us define the following two classes of graphs. 

Set of graphs in which all MISs are robust. 

Set of graphs that admit at least one robust MIS. 

Trivially, ${\ensuremath{{\cal RMIS^\forall}}\xspace}\subseteq {\ensuremath{{\cal RMIS^\exists}}\xspace}$. Finally, we define two classes of graphs which play a central role in this work, namely [*complete bipartite graphs*]{} and [*sputnik graphs*]{}, the latter being new. 

A complete bipartite graph is a graph $G=(V_1 \cup V_2,E)$ such that $V_1 \cap V_2 = \emptyset$ and $E = \{\{v_1,v_2\},v_1\in V_1\text{ and }v_2\in V_2\}$.

In other words, the vertices can be partitioned into two sets $V_1$ and $V_2$ such that every vertex in $V_1$ shares an edge with every vertex in $V_2$ (completeness), and these are the only edges (bipartiteness). 

\[def:sputnik\] A graph is a [*sputnik*]{} if and only if every vertex $v$ belonging to a cycle has at least one pendant neighbor. 

An example of sputnik is shown on Figure \[fig:sputnik\].  This name was chosen by analogy with the well-known satellite.  By the same analogy, we say that a vertex has an [*antenna*]{} if it has at least one pendant neighbor. 

=\[defnode, inner sep=1pt\] (1.5,10.3) node \[\] (v0) ; (2.9,10.48) node \[\] (v3) ; (3.7,10.38) node \[\] (v26) ; (1.9,8.36) node \[\] (v5) ; (3.78,7.8) node \[\] (v9) ; (6.48,7.38) node \[\] (v16) ; (8.02,7.36) node \[\] (v17) ; (7.32,10.8) node \[\] (v18) ; (5.4,7.52) node \[\] (v19) ; (8.88,7.4) node \[\] (v20) ; (9.64,7.42) node \[\] (v24) ; (10.38,7.44) node \[\] (v25) ;

(2.18,9.66) node \[\] (v1) ; (3.26,9.68) node \[\] (v2) ; (2.88,8.76) node \[\] (v4) ; (6.56,8.86) node \[\] (v11) ; (7.32,9.64) node \[\] (v12) ; (8.02,8.86) node \[\] (v13) ; (6.9,8.12) node \[\] (v14) ; (7.66,8.1) node \[\] (v15) ; (4.5,8.32) node \[\] (v8) ; (9.98,8.24) node \[\] (v23) ; (4.44,9.66) node \[\] (v6) ; (9.02,9.82) node \[\] (v21) ; (5.06,9.02) node \[\] (v7) ; (5.52,9.92) node \[\] (v10) ; (9.92,9.08) node \[\] (v22) ; =\[\]; (v0)–(v1); (v1)–(v2); (v2)–(v4); (v4)–(v1); (v5)–(v4); (v2)–(v3); (v2)–(v26); (v2)–(v6); (v7)–(v6); (v9)–(v8); (v8)–(v7); (v6)–(v10); (v10)–(v11); (v11)–(v12); (v12)–(v13); (v13)–(v11); (v11)–(v14); (v14)–(v15); (v15)–(v13); (v16)–(v14); (v17)–(v15); (v18)–(v12); (v19)–(v11); (v20)–(v13); (v21)–(v13); (v22)–(v21); (v23)–(v22); (v23)–(v24); (v23)–(v25);

Characterization of [${\cal RMIS^\forall}$]{} {#sec:forallMIS}
=============================================

In this section, we show that the class of graphs in which all MISs are robust, [${\cal RMIS^\forall}$]{}, corresponds exactly to the union of complete bipartite graphs and sputnik graphs.  We first show that all the MISs in a complete bipartite graph are robust, and so are all MISs in a sputnik graph (sufficient conditions).  Next, we show that these graphs are the only ones (necessary condition).  The necessary side is more complex because two classes of graphs are involved.  The proof proceeds by showing that if all MISs are robust in a graph which is not a sputnik, then that graph [*must*]{} be a complete bipartite graph. 

\[lem:BK\] All MISs in a complete bipartite graph are robust. 

From Observation \[obs:independence\], we only need to show that maximality is preserved.  There are two ways of chosing an MIS in a complete bipartite graph $G=(V_1\cup V_2, E)$, namely $V_1$ or $V_2$. Without loss of generality, let $V_1$ be chosen.  Then, in all connected spanning subgraphs of $G$, every vertex in $V_2$ still has at least one neighbor in $V_1$ (otherwise the graph is disconnected), which preserves maximality. 

\[lem:sputniks\] All MISs in a sputnik graph are robust. 

Again, by Observation \[obs:independence\], we only need to show that maximality is preserved.  By definition of a sputnik graph (Definition \[def:sputnik\]), if an edge $\{u,v\}$ is removable ([[i.e.,]{}]{}it belongs to a cycle), then both of its endpoints have an antenna.  Maximality implies that either $u$ or the tip of its antenna are in the set. ( The same holds for $v$.) As antennas are bridges, they cannot be removed and thus maximality is preserved when edges from a cycle are removed. 

\[lem:necessary\] If $G$ is not a sputnik, and every MIS in $G$ is robust, then $G$ must be a complete bipartite graph. 

If $G$ is not a sputnik, then some vertex $u$ belonging to a cycle $C \subseteq G$ has no antenna.  Consider the graph $G \setminus \{u\}$ and call $X_1, X_2, \dots, X_k$ the components that would result, except that a copy of $u$ is added back to each (see Figure \[fig:claim\] for an illustration).  Without loss of generality, let $X_1$ be the one containing $C$.  The other components (if any) are such that every neighbor of $u$ has another neighbor than $u$ (otherwise $u$ would have a pendant neighbor). 

**Claim.**  If all MISs in $G$ are robust, then all neighbors of $u$ in $X_1$ have the same set of neighbors. 

We prove this claim by contradiction.  Let two neighbors $v_1, v_2$ of $u$ be such that $N(v_1) \ne N(v_2)$. We will show that at least one MIS is not robust (see Figure \[fig:claim\] for an illustration).  Without loss of generality, let $x$ be a vertex in $N(v_1) \setminus N(v_2)$. Then an MIS can be built which contains both $v_2$ and $x$ (as a special case, $x$ may be the same vertex as $v_2$, which is not a problem).  For each of the components $X_{i\ge 2}$, choose an edge $\{u,w_i\} \in X_i$ and add another neighbor of $w_i$ to the MIS (such a neighbor exists, as we have already seen).  One can see that $u$, $v_1$ and all $w_i$ can no longer enter the MIS because they all have neighbors in it.  Now, choose the remaining elements of the MIS arbitrarily.  Now, consider the following removals: in all components $X_{i\ge 2}$ all edges incident to $u$ except $\{u,w_i\}$ are removed; and in $X_1$, all edges incident to $u$ except $\{u,v_1\}$ are removed.  The resulting graph is connected since all of the $X_i \setminus \{u\}$ are connected, but the set is no longer maximal because $u$ could now be added in it.\

=\[defnode, inner sep=1pt\] (0,1) node (a); (1,1) node (w2); (2,0) node (u); (3,1) node (w3); (4,1) node (b); (1,-.5) node (v1); (3,-.5) node (v2); (1,-1.2) node (x); =\[circle, draw, red, inner sep=2pt\] (a) node; (b) node; (v2) node; (x) node; =\[\] (u) node\[below=3pt\] [$u$]{}; (w2) node\[above right\] [$w_2$]{}; (w3) node\[above left\] [$w_3$]{}; (v1) node\[left=3pt\] [$v_1$]{}; (v2) node\[right=3pt\] [$v_2$]{}; (v2) node\[gray,below=10pt\] [$X_1$]{}; (a) node\[gray,below=10pt\] [$X_2$]{}; (b) node\[gray,below=10pt\] [$X_3$]{}; (x) node\[above right=1pt,yshift=-1pt\] [$x$]{}; (a)–(w2)–(u)–(w3)–(b); (u) edge node\[midway,red\] [$\boldsymbol \times$]{} (b); (u) edge node\[midway,red\] [$\boldsymbol \times$]{} (v2); (x)–(v1)–(u)–(v2); (x) edge\[dashed, bend right=10\] (v2);

=\[inner sep=10pt\] [ \[ create hullcoords/.code=[ in (hullcoord0) at (hullcoord); (hullcoord) at (hullcoord1); ]{}, create hullcoords \] ($(hullcoord1)!.2cm!-90:(hullcoord0)$) in [1,...,]{} [ let 1 = ($(hullcoord\currentnode) - (hullcoord\previousnode)$), 1 = [atan2(1,1) + 90]{}, 2 = ($(hullcoord\nextnode) - (hullcoord\currentnode)$), 2 = [atan2(2,2) + 90]{}, = [Mod(2-1,360) - 360]{} in [arc \[start angle=1, delta angle=, radius=.2cm\]]{} – ($(hullcoord\nextnode)!.2cm!-90:(hullcoord\currentnode)$) ]{} ]{}; [ \[ create hullcoords/.code=[ in (hullcoord0) at (hullcoord); (hullcoord) at (hullcoord1); ]{}, create hullcoords \] ($(hullcoord1)!.2cm!-90:(hullcoord0)$) in [1,...,]{} [ let 1 = ($(hullcoord\currentnode) - (hullcoord\previousnode)$), 1 = [atan2(1,1) + 90]{}, 2 = ($(hullcoord\nextnode) - (hullcoord\currentnode)$), 2 = [atan2(2,2) + 90]{}, = [Mod(2-1,360) - 360]{} in [arc \[start angle=1, delta angle=, radius=.2cm\]]{} – ($(hullcoord\nextnode)!.2cm!-90:(hullcoord\currentnode)$) ]{} ]{}; [ \[ create hullcoords/.code=[ in (hullcoord0) at (hullcoord); (hullcoord) at (hullcoord1); ]{}, create hullcoords \] ($(hullcoord1)!.2cm!-90:(hullcoord0)$) in [1,...,]{} [ let 1 = ($(hullcoord\currentnode) - (hullcoord\previousnode)$), 1 = [atan2(1,1) + 90]{}, 2 = ($(hullcoord\nextnode) - (hullcoord\currentnode)$), 2 = [atan2(2,2) + 90]{}, = [Mod(2-1,360) - 360]{} in [arc \[start angle=1, delta angle=, radius=.2cm\]]{} – ($(hullcoord\nextnode)!.2cm!-90:(hullcoord\currentnode)$) ]{} ]{};

Since $u$’s neighbors in $X_1$ have the same neighbors, this means in particular that none of these vertices has an antenna.  As a result, the arguments that applied to $u$ because of its absence of antenna, apply in turn to $u$’s neighbors in $X_1$. In particular, the neighbors of these vertices (including $u$) must have the same set of neighbors.  This implies that (1) $u$ can no longer be an articulation point, thus $G=X_1$ and (2) all neighbors of $u$ have the same set of neighbors, and these neighbors also have the same set of neighbors, which finally implies that the graph is complete bipartite. 

Lemmas \[lem:BK\], \[lem:sputniks\], and \[lem:necessary\] allow us to conclude with Theorem \[th:forallMIS\] :

\[th:forallMIS\] All MISs are robust in a graph $G$ if and only if $G$ is complete bipartite or sputnik. 

Characterization of [${\cal RMIS^\exists}$]{} {#sec:existsMIS}
=============================================

In this section, we turn our attention to the characterization of graphs which [*admit*]{} a robust MIS (${\ensuremath{{\cal RMIS^\exists}}\xspace}$).  Unfortunately, this class does not seem to admit a simple characterization in terms of elementary graph properties.  We start by discussing some such properties that give a partial characterization, namely we show that bipartiteness is a necessary and sufficient condition for [*biconnected*]{} graphs to be in [${\cal RMIS^\exists}$]{}.  Then, we turn our attention to the general case and present an algorithm that decides if a given graph admits a robust MIS (in polynomial time, and constructively).  The yes-instances of this algorithm are an indirect characterization of [${\cal RMIS^\exists}$]{}. 

Bipartiteness versus Biconnectivity {#sec:biconnectivity}
-----------------------------------

Let us first observe that bipartiteness is a sufficient condition for any graph to admit a robust MIS. 

\[obs:bipartiteness\] All bipartite graphs admit a robust MIS. 

The argument generalizes that of Lemma \[lem:BK\] for complete bipartite graphs.  Let an MIS be composed of all the vertices of the first part.  As long as the graph remains connected, every vertex in the second part has a neighbor in the first part, and thus in the MIS, which preserves maximality. ( Independence is not impacted—Observation \[obs:independence\].) 

In fact, bipartiteness happens to be also a necessary condition in the particular case of biconnected graphs. 

\[lem:nonbi\] If a biconnected graph $G$ is not bipartite, then it admits no robust MIS. 

By contradiction, suppose that $G$ admits a robust MIS.  As $G$ is not bipartite, it is not 2-colorable, thus either two neighbor vertices exist which are both included in the set, or two neighbor vertices exist which are both excluded from the set.  In the first case, independence is contradicted.  In the second case, let $u$ and $v$ be two such vertices.  Because the graph is biconnected, it is possible to remove all the incident edges to $u$ except $\{u,v\}$ without disconnecting $G$, resulting in a non-maximal set, thus contradicting robustness. 

The argument in the proof of Lemma \[lem:nonbi\] will be used several times in the rest of the paper.  We refer to it through the concept of a weak vertex. 

\[def:weak\] Let $u$ be a vertex that is not included in an MIS.  If $u$ has another neighbor $v$ not being included in the MIS and such that all edges incident to $u$ except $\{u,v\}$ can be simultaneously removed without disconnecting the graph, then $u$ is called a [*weak*]{} vertex. 

Lemmas \[obs:bipartiteness\] and \[lem:nonbi\] imply that the intersection of ${\ensuremath{{\cal RMIS^\exists}}\xspace}$ with biconnected graphs is [*exactly*]{} the set of bipartite biconnected graphs (see Table \[tab:dichotomy\]). 

                        Bipartite   $\neg$ Bipartite
  -------------------- ----------- ------------------
      Biconnected          yes             no
   $\neg$ Biconnected      yes          possibly

  : \[tab:dichotomy\] Existence of a robust MIS with respect to bipartiteness and biconnectedness. 

An immediate corollary is the existence of an infinite family of graphs which do not admit a robust MIS, namely all biconnected non-bipartite graphs (including, for example, the triangle graph in Figure \[fig:examples\] and more generally all the odd cycles). 

Overview of the algorithm {#sec:algo}
-------------------------

The problem of computing a [*standard*]{} MIS in a graph $G=(V_G,E_G)$ can be solved by a one-sentence greedy algorithm as follows: for all vertices $v \in V_G$ in arbitrary order, include $v$ in the MIS if none of its neighbors already is.  The problem of computing a [*robust*]{} MIS (or RMIS) is fundamentally different in two respects: (1) Solutions may or may not exist, and (2) Even if a solution exists, a decision made in some part of the graph can restrict (or invalidate) the feasible choices in remote parts.  For example, in the graph of Figure \[fig:non-local\], if vertex $v$ is included in the set, then an RMIS exists if and only if node $u$ is not included in the set. ( Any other choice would produce a weak vertex.) 

=\[defnode\] (-1,1) node \[\] (ma) ; (0,0) node \[\] (ba) ; (0,2) node \[\] (ha) ; (1,1) node \[\] (mb) ; (3,1) node \[\] (m0) ; (4,0) node \[\] (b0) ; (4,2) node \[\] (h0) ; (5,1) node \[\] (m1) ; (6,0) node \[\] (b3) ; (6,2) node \[\] (h3) ; (7,0) node \[\] (b3b) ; (7,2) node \[\] (h3b) ; (8,1) node \[\] (m4) ; (9,0) node \[\] (b4) ; (9,2) node \[\] (h4) ; (10,1) node \[\] (m5) ; (12,1) node \[\] (m7) ; (13,0) node \[\] (b7) ; (13,2) node \[\] (h7) ; (14,1) node \[\] (m8) ;

=\[\] (ma) node\[left\] [$u$]{}; (m8) node\[right\] [$v$]{}; (mb) node\[right=9pt\] [$\dots$]{}; (m5) node\[right=9pt\] [$\dots$]{};

(ma)–(ba)–(mb)–(ha)–(ma); (m0)–(b0)–(m1)–(h0)–(m0); (m1)–(b3)–(b3b)–(m4)–(h3b)–(h3)–(m1); (m4)–(b4)–(m5)–(h4)–(m4); (m7)–(b7)–(m8)–(h7)–(m7);

=\[mis\] (ha) node ; (ba) node ; (h0) node ; (b0) node ; (h3) node ; (b3) node ; (m4) node ; (m5) node ; (m7) node ; (m8) node ;

More generally, deciding whether a graph admits an RMIS requires the identification and propagation of constraints within the graph.  To do so, our algorithm relies on a particular type of decomposition of the input graph as a tree of biconnected components called [$\mathcal{ABC}$-tree]{}.  The constraints are first determined at the leaves of this tree, then they are propagated and modified upward, until the root component is itself analysed.  At an intermediate node of this tree, either the corresponding subtree admits an RMIS or it does not.  If it does, a condition may apply regarding the status of the topmost vertex in the subtree, e.g. the subtree may admit an RMIS at the condition that this vertex is (or is not) in the MIS. 

In the following, we always refer to the vertices of the input graph as [*vertices*]{}, and to those of the decomposition tree as [*nodes*]{} to avoid confusion.  Note that if $G$ is a tree, then none of its edges can be removed (thus all MISs are robust).  As a result, we restrict our attention to the cases that $G$ has at least one biconnected component.  We also assume that $G$ is connected, as otherwise each part can be solved separately. 

The [$\mathcal{ABC}$-tree]{}decomposition
-----------------------------------------

An [$\mathcal{ABC}$-tree]{}, denoted by $T=(V_T,E_T)$, is neither a block-cut tree, nor a bridge tree (see [@Harary] for background), it is a mixture of both.  Precisely, an [$\mathcal{ABC}$-tree]{}is made of four types of nodes ${\ensuremath{\mathcal{A}}\xspace}, {\ensuremath{\mathcal{B}}\xspace}, {\ensuremath{\mathcal{C}}\xspace}$ and ${\ensuremath{\mathcal{P}}\xspace}$ defined with respect to the input graph $G=(V_G,E_G)$ as follows:

-   [$\mathcal{P}$]{}is the set of pendant vertices,

-   [$\mathcal{A}$]{}is the set of articulation points,

-   [$\mathcal{B}$]{}is the set of bridges,

-   [$\mathcal{C}$]{}is the set of biconnected component. 

Thus, every node in ${\ensuremath{\mathcal{P}}\xspace}$ and ${\ensuremath{\mathcal{A}}\xspace}$ corresponds to an original [*vertex*]{} in $V_G$ (the converse is not true), every node in ${\ensuremath{\mathcal{B}}\xspace}$ corresponds to an [*edge*]{} in $E_G$ (same remark), and every node in ${\ensuremath{\mathcal{C}}\xspace}$ corresponds to an entire [*subgraph*]{} of $G$ (same remark again).  Considering the graph in Figure \[fig:treecomp\], one would obtain ${\ensuremath{\mathcal{P}}\xspace}=\{4,5,7,12,20,24\}$, ${\ensuremath{\mathcal{A}}\xspace}=\{2,3,6,8,10,11,14,15,16,17,18,21,22,28\}$, ${\ensuremath{\mathcal{B}}\xspace}= \{\{2,3\},\{3,4\},\{4,5\},\{6,7\},\dots\}$, and ${\ensuremath{\mathcal{C}}\xspace}= \{\texttt{A},\texttt{B},\texttt{C},\texttt{D},\texttt{E}\}$.

Observe that a same vertex of $V_G$ may correspond to a node ${\ensuremath{\mathcal{A}}\xspace}$, and at the same time be the endpoint of one or several bridges in ${\ensuremath{\mathcal{B}}\xspace}$, and at the same time belong to one or several biconnected components in ${\ensuremath{\mathcal{C}}\xspace}$. Also observe that the endpoints of a bridge are always articulation points or pendant vertices.  All these relations are materialized by the set of edges $E_T$ of the [$\mathcal{ABC}$-tree]{}, defined as

$E_T= \{\{a,X\} \in {\ensuremath{\mathcal{A}}\xspace}\times{\ensuremath{\mathcal{C}}\xspace}\mid a \in X\}$ $\cup$ $\{\{v,Y\} \in ({\ensuremath{\mathcal{A}}\xspace}\cup{\ensuremath{\mathcal{P}}\xspace}) \times {\ensuremath{\mathcal{B}}\xspace}\mid v \in Y\}$.

In words, articulation points (seen as nodes) share an edge with the biconnected components they belong to (if any), and articulation points or pendant nodes (seen as nodes) share an edge with the bridges they belong to (if any).  The [$\mathcal{ABC}$-tree]{}corresponding to the graph of Figure \[fig:treecomp\] is shown in Figure \[fig:ex\_compo\].  The reader is encouraged to spend a few minutes getting acquainted with this construction, which is used frequently in the following. 

![ \[fig:treecomp\] Example of input graph, seen as a tree of biconnected components. ]( example_composant.pdf){width=".9\textwidth"}

![ \[fig:ex\_compo\] [$\mathcal{ABC}$-tree]{}corresponding to the input graph on Figure \[fig:treecomp\]. ]( example_abctree.pdf){width="100.00000%"}

(0,0) node\[text width=5cm\](legend)[ [$\circ$]{}: pendant vertices ($\in {\ensuremath{\mathcal{P}}\xspace}$)\
[$\Diamond$]{}: articulation points ($\in {\ensuremath{\mathcal{A}}\xspace}$)\
[$\Box$]{}: bridge edges ($\in {\ensuremath{\mathcal{B}}\xspace}$)\
[$\bigcirc$]{}: biconnected components ($\in {\ensuremath{\mathcal{C}}\xspace}$) ]{};

RMIS constraints in a rooted [$\mathcal{ABC}$-tree]{} {#sec:constraints}
-----------------------------------------------------

The algorithm proceeds by propagating constraints from the leaves of the [$\mathcal{ABC}$-tree]{}to a root ${\ensuremath{R}\xspace}$ chosen arbitrarily among the biconnected components.  Given a node in $x \in V_T\setminus {\ensuremath{R}\xspace}$, we denote by ${{\tt parent}\xspace}(x)$ the neighbor of $x \in V_T$ that is one-hop closer to [$R$]{}, and by ${{\tt children}\xspace}(x)$ the set of nodes $\{y \in V_T\setminus{\ensuremath{R}\xspace}\mid {{\tt parent}\xspace}(y)=x\}$. We extend these definitions to ${{\tt descendants}\xspace}()$ in the natural way.  Because some nodes in $T$ correspond to real vertices (namely, the nodes in ${\ensuremath{\mathcal{A}}\xspace}$ and ${\ensuremath{\mathcal{P}}\xspace}$) and others do not (the nodes in ${\ensuremath{\mathcal{B}}\xspace}$ and ${\ensuremath{\mathcal{C}}\xspace}$), we define a notion of [*attachment vertex*]{} $v(x)$ of a node $x$ as being either the underlying vertex itself (if $x\in{\ensuremath{\mathcal{A}}\xspace}\cup{\ensuremath{\mathcal{P}}\xspace}$) or the underlying vertex of the parent (if $x\in{\ensuremath{\mathcal{B}}\xspace}\cup{\ensuremath{\mathcal{C}}\xspace}$).  Indeed, the parent of a node in ${\ensuremath{\mathcal{B}}\xspace}\cup {\ensuremath{\mathcal{C}}\xspace}$ is always a node in ${\ensuremath{\mathcal{A}}\xspace}$, thus it corresponds to a real vertex in $V_G$. Intuitively, the attachment vertex of a node is the highest vertex in this node towards the root $R$. For instance, in Figure \[fig:ex\_compo\], assuming that [$R$]{}is component `D`, then we have for instance $v(4)=4$, $v(\{3,4\})=3$, $v(3)=3$, $v(\{8,14\})=v(\{8,21\})=v(8)=8$, and $v(\{10,28\})=v(\texttt{B})=v(10)=10$, and indeed, $10$ is the highest underlying vertex in all these nodes (with respect to the root). 

Attachment vertices play a important role in the management of constraints, because the constraints induced by $x$ are ultimately aggregated as a membership status for $v(x)$ in the MIS.  The more formal definition relies on induced subgraphs as follows.  Every node $x$ induces a subgraph $G_x \subseteq G$ which is exactly $G[x]$ when $x\in{\ensuremath{\mathcal{A}}\xspace}\cup{\ensuremath{\mathcal{B}}\xspace}\cup{\ensuremath{\mathcal{P}}\xspace}$ (see definitions in Section \[sec:definitions\]), or $x$ itself when $x\in{\ensuremath{\mathcal{C}}\xspace}$. By extension, for any $x\in V_T$, the subtree $T_x=(V_{T_x},E_{T_x})\subseteq T$ whose highest node with respect to ${\ensuremath{R}\xspace}$ is $x$ induces a subgraph $G[{T_x}]\subseteq G$ defined as $\cup G_y$ over all $y \in ({{\tt descendants}\xspace}(x)\cup x)$. In other words, $G[{T_x}]$ is the subgraph of $G$ which corresponds to the subtree of $x$. We define the concept of [*aerial*]{} version of $G[T_x]$, noted $G_a[T_x]$ as $G[T_x]\cup G[\{v(x),a\}]$ with $a$ an artificial neighbor of $v(x)$ that does not belong to $G[T_x]$. For any $x$, the constraints applying to $v(x)$ are encoded using the three following labels (also called tags):

-   [*PI*]{}([Possibly In]{}): $G[T_x]$ admits an RMIS that includes $v(x)$;

-   [*PO*]{}([Possibly Out]{}): $G[T_x]$ admits an RMIS that does not include $v(x)$;

-   [*PE*]{}([Possibly External]{}): $G_a[T_x]$ admits an RMIS that does not include $v(x)$.

Observe that a node may have several labels at the same time.  For example [*PI*]{}and [*PO*]{}, or [*PI*]{}and [*PE*]{}.  On the other hand, we use [*PO*]{}and [*PE*]{}in a mutually exclusive way based on the following remark. 

\[rem:POPE\] If a node $x$ has label ${\textsl{PO}\xspace}$, then $G[T_x]$ admits an RMIS in which $v(x)$ is not included but one of its neighbor in $G[T_x]$ is (due to maximality).  Thus, no inclusion constraint applies regarding the external neighbor of $v(x)$. As a result, whenever the constraints from different children induce both [*PO*]{}and [*PE*]{}, [*PO*]{}is chosen. 

Constraint identification and propagation {#sec:propagation}
-----------------------------------------

In this subsection, we present the rules used for identifying and propagating constraints within the [$\mathcal{ABC}$-tree]{}.  The purpose of the rules is to determine what labels $L(x)$ a node $x$ should take based on the labels of its children in the [$\mathcal{ABC}$-tree]{}.  The validity of the rules is established gradually along their descriptions, based on the following definition of a correct labeling. 

\[def:correct-labeling\] A node $x$ (in the underlying rooted [$\mathcal{ABC}$-tree]{}$T$) is correctly labeled if

-   ${\textsl{PI}\xspace}\in L(x)$ if and only if $G[T_x]$ admits an RMIS that includes $v(x)$;

-   ${\textsl{PO}\xspace}\in L(x)$ if and only if $G[T_x]$ admits an RMIS that does not include $v(x)$; and

-   ${\textsl{PE}\xspace}\in L(x)$ if and only if ${\textsl{PO}\xspace}\notin L(x)$ and $G_a[T_x]$ admits an RMIS that does not include $v(x)$.

The rules are presented below based on the type of $x$ (namely, ${\ensuremath{\mathcal{A}}\xspace},{\ensuremath{\mathcal{B}}\xspace},{\ensuremath{\mathcal{C}}\xspace},$ and ${\ensuremath{\mathcal{P}}\xspace}$).  They are illustrated in reference to the input graph $G=(V_G,E_G)$ in Figure \[fig:treecomp\] and the corresponding [$\mathcal{ABC}$-tree]{}$T=(V_T,E_T)$ in Figure \[fig:ex\_compo\], with root $\texttt{D}\in {\ensuremath{\mathcal{C}}\xspace}$. For simplicity, when discussing about the construction of an MIS, if a vertex $v$ is not included in the MIS and none of its neighbor are included, we say that $v$ is [*not covered*]{}.  The other vertices are [*covered*]{}. ( This terminology is standard in the literature on covering problems.) 

### Pendant nodes ($x \in {\ensuremath{\mathcal{P}}\xspace}$)

This case is the easiest, because nodes in ${\ensuremath{\mathcal{P}}\xspace}$ have no children and their labels are always the same. 

\[rule:P\] $L(x)$ is set to $\{{\textsl{PI}\xspace},{\textsl{PE}\xspace}\}$.

In words, $v(x)$ may or may not be included to the MIS, but if it is not, then $v(y)$ should be, where $y$ is the bridge node such that ${{\tt parent}\xspace}(x)=y$.

\[lem:labelnodeprmis\] If $x\in {\ensuremath{\mathcal{P}}\xspace}$, then Labeling rule \[rule:P\] produces a correct labeling of $x$.

If $v(x)$ is included in the solution set, then this set (made of $v(x)$ alone) is clearly maximal and independent in $G[T_x]$ (which is also $v(x)$ alone), thus $x$ can be labeled [*PI*]{}.  If it is not included, but $v({{\tt parent}\xspace}(x))$ is included, then the resulting set is maximal and independent in $G_a[T_x]$ ([[i.e.,]{}]{}the graph made of a single edge between $x$ and ${{\tt parent}\xspace}(x)$), thus $x$ can be labeled [*PE*]{}.  In both cases, the considered subgraph of $G$ is itself a tree, thus any valid MIS in it is robust, thus labels [*PI*]{}and [*PE*]{}are both valid.  On the other hand, $x$ cannot be labeled [*PO*]{}because if $v(x)$ is not in the MIS, then the corresponding set is not maximal in $G[T_x]$ (which is reduced to the single vertex $v(x)$). 

### Articulation points ($x \in {\ensuremath{\mathcal{A}}\xspace}$)

By construction of the [$\mathcal{ABC}$-tree]{}, if $x\in A$, then all the children of $x$ are in ${\ensuremath{\mathcal{B}}\xspace}$ or in ${\ensuremath{\mathcal{C}}\xspace}$ and their attachment vertex is nothing but $v(x)$ itself.  Thus, the constraints of each children already relates to $v(x)$, albeit individually.  The rule consists of aggregating these constraints as follows. 

\[rule:A\]If [*PI*]{}belongs to the labels of all the children of $x$, then [*PI*]{}is added to $L(x)$; if all the children of $x$ contain a label [*PE*]{}or [*PO*]{}, then two subcases arise: either none of them contains [*PO*]{}, in which case [*PE*]{}is added to $L(x)$, or at least one contains [*PO*]{}, in which case [*PO*]{}is added to $L(x)$.

The formal description of Labeling rule \[rule:A\] is given by Lines 6 to 13 in Algorithm  (the algorithm itself is discussed in a subsequent section).  In our example, nodes $3$, $11$, and $18$ are all labeled [*PI*]{}and [*PO*]{}. 

\[lem:labelnodearmis\] If $x \in {\ensuremath{\mathcal{A}}\xspace}$ and all the nodes in ${{\tt children}\xspace}(x)$ are correctly labeled, then Labeling rule \[rule:A\] produces a correct labeling of $x$.

Let us assume that all the nodes in ${{\tt children}\xspace}(x)$ are correctly labeled.  The proof follows the same cases as the labeling rule.  We first prove that the assigned labels are valid, then we prove that they cannot be assigned otherwise. 

-   If all the nodes in ${{\tt children}\xspace}(x)$ contain label [*PI*]{}, then for all $y\in{{\tt children}\xspace}(x)$, $G[T_y]$ admits a robust MIS that includes $v(y)$. But since $x\in {\ensuremath{\mathcal{A}}\xspace}$, we have $v(y)=v(x)$, thus $G[T_x]$ admits a robust MIS that includes $v(x)$.

-   If all the nodes in ${{\tt children}\xspace}(x)$ contain label [*PE*]{}or [*PO*]{}, then two possible subcases arise:

    1.   None of them contains [*PO*]{}.  In this case, all of them contain label [*PE*]{}, meaning that for all $y\in {{\tt children}\xspace}(x), G[T_y]$ does not admit a robust MIS that excludes $v(y)$, but $G_a[T_y]$ does.  Since $v(x)=v(y)$, we have that $G[T_x]$ does not admit a robust MIS that excludes $v(x)$ (a single child with label [*PE*]{}would actually be enough here), but $G_a[T_x]$ does (here, we need that [*all*]{} the children have label [*PE*]{}). 

    2.   At least one contains [*PO*]{}.  In this case, at least one child $y$ is such that $G[T_y]$ admits an RMIS that excludes $v(y)$. Since $v(y)=v(x)$, at least one of the neighbors of $v(x)$ in $G[T_y]$ can be included in such an MIS, which satisfies the aerial constraints of the $G_a[T_{y'}]$ for all other children $y'$ labeled [*PE*]{}(if any).  Thus $G[T_x]$ admits an RMIS that excludes $v(x)$ without requiring further aerial constraints above $x$.

We focus now on the negative direction.  If $G[T_x]$ does not admit a robust MIS that includes $v(x)$, then because $v(x)=v(y)$, there exists at least one $y\in {{\tt children}\xspace}(x)$ such that $G[T_y]$ does not admit a robust MIS that includes $v(y)$. As the labeling of $y$ is correct, $y$ is not labeled [*PI*]{}and hence $v(x)$ is not labeled [*PI*]{}by the rule.  Similarly, if $G[T_x]$ does not admit a robust MIS that excludes $v(x)$, then because $v(x)=v(y)$, the two cases above are possible.  $(i)$ There exists at least one $y\in {{\tt children}\xspace}(x)$ such that neither $G[T_y]$ nor $G_a[T_y]$ admit a robust MIS that excludes $v(y)$. As the labeling of $y$ is correct, $y$ is not labeled [*PO*]{}or [*PE*]{}.  $(ii)$ For any $y\in {{\tt children}\xspace}(x)$, $G[T_y]$ does not admit a robust MIS that excludes $v(y)$. As the labeling of $y$ is correct, $y$ is not labeled [*PO*]{}.  In both cases, $v(x)$ cannot be labeled [*PO*]{}by the rule.  Finally, if $G_a[T_x]$ does not admit a robust MIS that excludes $v(x)$, then because $v(x)=v(y)$, there exists at least one $y\in {{\tt children}\xspace}(x)$ such that $G_a[T_y]$ does not admit a robust MIS that excludes $v(y)$. As the labeling of $y$ is correct, $y$ is not labeled [*PE*]{}and hence $v(x)$ is not labeled [*PE*]{}by the rule. 

### Bridge nodes ($x \in {\ensuremath{\mathcal{B}}\xspace}$)

If $x$ is a bridge node, then it has exactly one child $y$ whose attachment vertex $v(y)$ is a neighbor of $v(x)$. The rule consists of transforming the existing constraints on $v(y)$ into constraints on $v(x)$ as follows. 

\[rule:B\] If $L(y)$ contains label [*PI*]{}, then label ${\textsl{PO}\xspace}$ is added to $L(x)$; if $L(y)$ contains label [*PE*]{}, then [*PI*]{}is added to $L(x)$; if $L(y)$ contains label [*PO*]{}, then [*PI*]{}and [*PE*]{}are added to $L(x)$. Finally (cleaning), if both [*PE*]{}and [*PO*]{}have been added to $L(x)$, then [*PE*]{}is removed from $L(x)$ (see Remark \[rem:POPE\]). 

The formal description of Labeling rule \[rule:B\] is given by Lines 15 to 23 in Algorithm \[algo:labelnode\].  In our example, the nodes $\{3,4\}$, $\{3,5\}$, and $\{18,20\}$ are all tagged [*PI*]{}and [*PO*]{}. 

\[lem:labelnodebrmis\] If $x \in {\ensuremath{\mathcal{B}}\xspace}$ and $y$ is correctly labeled, then Labeling rule \[rule:B\] produces a correct labeling of $x$.

Let $x\in{\ensuremath{\mathcal{B}}\xspace}$ and ${{\tt children}\xspace}(x)=\{y\}$.

-   If $L(y)$ contains label [*PI*]{}, then $G[T_y]$ admits a robust MIS including $v(y)$. Because $v(y)$ is included, the MIS is also valid in $G[T_x]=G[T_y]\cup G[\{x,y\}]$, and because this edge is a bridge ([[i.e.,]{}]{}it is not removable), it remains robust in $G[T_x]$, thus $x$ can be labeled [*PO*]{}. 

-   If $L(y)$ contains label [*PE*]{}, then $G_a[T_y]=G[T_x]$ admits a robust MIS including $v(x)$, thus $x$ can be labeled [*PI*]{}. 

-   If $L(y)$ contains label PO, then $G[T_y]$ admits a robust MIS that excludes $v(y)$.\
    - As $v(y)$ is the only neighbor of $v(x)$ in $G[T_x]$, adding $v(x)$ to such an MIS would produce a valid MIS in $G[T_x]=G[T_y]\cup G[\{x,y\}]$, and because $\{x,y\}$ is a bridge, the resulting MIS would remain robust.  Thus $x$ can be labeled [*PI*]{}.\
    - As $v(y)$ already has a neighbor included in the MIS in $G[T_y]$, not including $v(x)$ in the MIS means that $v(x)$ is the only uncovered vertex in $G[T_x]$, which can be remedied by including to the MIS an aerial neighbor in $G_a[T_x]$. Thus, $x$ can be labeled [*PE*]{}. 

We focus now on the negative direction.  If $G[T_x]$ does not admit a robust MIS that includes $v(x)$, then because $\{x,y\}$ is not a removable edge, $G[T_y]$ does not admit a robust MIS that excludes $v(y)$ and $G_a[T_y]=G[T_x]$ does not admit a robust MIS that excludes $v(y)$ (and includes $a$).  As the labeling of $y$ is correct, $y$ is not labeled [*PI*]{}or [*PE*]{}and hence $v(x)$ is not labeled [*PI*]{}by the rule.  Similarly, if $G[T_x]$ does not admit a robust MIS that excludes $v(x)$, then because $\{x,y\}$ is not a removable edge, $G[T_y]$ does not admit a robust MIS that includes $v(y)$. As the labeling of $y$ is correct, $y$ is not labeled [*PI*]{}and hence $v(x)$ cannot be labeled [*PO*]{}.  Finally, if $G_a[T_x]$ does not admit a robust MIS that excludes $v(x)$, then because $\{x,y\}$ is not a removable edge, $G[T_y]$ does not admit a robust MIS that excludes $v(y)$. As the labeling of $y$ is correct, $y$ is not labeled [*PO*]{}and hence $v(x)$ is not labeled [*PE*]{}by the rule. 

**Parameters:** A node $x$ whose children in $T$ are already labeled\
**Return:** A correct labeling of $x$

XX: = XX = XX = XX = XX = XX = XX = XX =01: $L(x) \gets \emptyset$\
02:\
03: **case** $x \in {\ensuremath{\mathcal{P}}\xspace}$:\[line:P-begin\]\
04: $L(x) \gets \{{\textsl{PI}\xspace},{\textsl{PE}\xspace}\}$\[line:P-end\]\
05:\
06: **case** $x \in {\ensuremath{\mathcal{A}}\xspace}$:\
07: **if** $\forall c\in {{\tt children}\xspace}(x), {\textsl{PI}\xspace}\in L(c)$ **then**\
08: $L(x)\gets L(x)\cup{\textsl{PI}\xspace}$\
09: **if** $\forall c\in {{\tt children}\xspace}(x), {\textsl{PO}\xspace}\in L(c)$ or ${\textsl{PE}\xspace}\in L(c)$ **then**\
10: **if** $\exists c\in {{\tt children}\xspace}(x), {\textsl{PO}\xspace}\in L(c)$ **then**\
11: $L(x)\gets L(x)\cup{\textsl{PO}\xspace}$\
12: **else**\
13: $L(x)\gets L(x)\cup{\textsl{PE}\xspace}$\
14:\
15: **case** $x \in {\ensuremath{\mathcal{B}}\xspace}$: (with child side $c$)\
16: **if** ${\textsl{PI}\xspace}\in L(c)$ **then**\
17: $L(x)\gets L(x)\cup {\textsl{PO}\xspace}$\
18: **if** ${\textsl{PE}\xspace}\in L(c)$ **then**\
19: $L(x)\gets L(x)\cup {\textsl{PI}\xspace}$\
20: **if** ${\textsl{PO}\xspace}\in L(c)$ **then**\
21: $L(x)\gets L(x)\cup \{{\textsl{PI}\xspace},{\textsl{PE}\xspace}\}$\
22: **if** ${\textsl{PO}\xspace}\in L(x)$ and ${\textsl{PE}\xspace}\in L(x)$ **then**\
23: $L(x)\gets L(x)\setminus {\textsl{PE}\xspace}$\
24:\
25: **case** $x \in {\ensuremath{\mathcal{C}}\xspace}$:\
26: **if** **isSatisfiable**$(x,{\tt in})$ **then**\
27: $L(x)\gets L(x)\cup {\textsl{PI}\xspace}$\
28: **if** **isSatisfiable**$(x,{\tt out})$ **then**\
29: $L(x)\gets L(x)\cup {\textsl{PO}\xspace}$\
30: **else**\
31: $L({{\tt parent}\xspace}(x))\gets {\textsl{PO}\xspace}$\
32: **if** **isSatisfiable**$(x,{\tt out})$ **then**\
33: $L(x)\gets L(x)\cup {\textsl{PE}\xspace}$\
34: $L({{\tt parent}\xspace}(x))\gets \emptyset$\
35:\
36: $L(x)$

### Biconnected components ($x \in {\ensuremath{\mathcal{C}}\xspace}$) {#sec:biconnected}

As discussed in Section \[sec:biconnectivity\], when $G$ itself is a biconnected component, an RMIS exists if and only if $G$ is bipartite (Lemmas \[obs:bipartiteness\] and \[lem:nonbi\]).  When a biconnected component $x$ is a node in the [$\mathcal{ABC}$-tree]{}$T$, the situation is more complex due to the existence of constraints from neighbors in $T$. In particular, an RMIS satisfying these constraints may or may not exist. 

Let $G_x$ be the subgraph of $G$ induced by node $x$ (in fact, coinciding with $x$).  By construction of the [$\mathcal{ABC}$-tree]{}, every neighbor of $x$ in $T$ (whether children or parent) corresponds to an articulation point $y$ in ${\ensuremath{\mathcal{A}}\xspace}$ such that $v(y) \in G_x$. Thus, potential constraints on these nodes can be seen as applying to vertices [*inside*]{} $G_x$. This nice feature allows us to focus on finding an RMIS in $G_x$ without worrying about the entire subtree $G[T_x]$. Indeed, if an RMIS $M$ satisfying the constraints exists in $G_x$ and if every child $y$ is correctly labelled, then an RMIS $M_y$ must exist in every $G[T_y]$ such that $v(y)$ has the same status (included or excluded) in $M_y$ and in $M$. As every $y$ is an articulation point, the union of all these RMISs forms a robust MIS in $G[T_x]$.

Based on the above observation, we now focus on the simpler problem of finding an RMIS in $G_x$ that satisfies potential constraints on its articulation points.  In addition, we add an input parameter to the problem that forces the status of the attachment vertex $v(x)$ in the RMIS, so that (for instance) $x$ receives label [*PI*]{}if an RMIS is found that includes $v(x)$. (The exact labeling rule using will be described later on.) 

#### \[sec:biconnected\].1  Solving $G_x$

 

Here, we consider the following problem.  Given a biconnected component $G_x$, some vertices of which are articulation points in $G$ (corresponding to nodes in ${\ensuremath{\mathcal{A}}\xspace}$); given constraints on these articulations points, encoded into the labeling function $L$; given a parameter ${\tt in, out,}$ or ${\tt none}$; the goal is to determine if there exists a robust MIS in $G_x$ in which $v(x)$ is included in the RMIS if the parameter is ${\tt in}$, not included if the parameter is ${\tt out}$, and unrestricted if the parameter is ${\tt none}$, and such that the inclusion status of every constrained articulation point $y$ matches at least one of its labels.  Namely, if $L(y) \ne \emptyset$ ([[i.e.,]{}]{}$y$ is constrained), then $v(y)$ can be included to the RMIS only if $L(y)$ contains [*PI*]{}; and it can be excluded from the RMIS only if $L(y)$ contains [*PO*]{}or [*PE*]{}. 

#### Bipartiteness [*vs.*]{} [*PO*]{}labels

As already explained, if a biconnected graph is not bipartite, then weak vertices must exist (see Lemma \[lem:nonbi\] and Definition \[def:weak\]).  Bipartiteness still plays a central role in the case of biconnected components, but the existence of [*PO*]{}labels makes it more subtle, as explained in the following remark. 

\[rem:PO\] Let $y$ be an articulation point such that $v(y) \in G_x$ and $y$ contains label [*PO*]{}, then there exists an RMIS in $G[T_y]$ that does not include $v(y)$ itself but includes one (or possibly several) neighbors in $G[T_y]$ that prevent $v(y)$ from being a weak vertex. 

As a result, the vertices admitting a label [*PO*]{}are not subject to the same bipartiteness constraint as the others vertices. 

#### The procedure

The procedure is formally described in Algorithm \[algo:testrmis\], to which the reader is referred for details, and its correctness is proved subsequently.  Let $E^{\textsl{PO}\xspace}$ be the set of edges in $G_x$ such that both endpoints contain label [*PO*]{}, and let $X$ be the subgraph $G_x \setminus E^{\textsl{PO}\xspace}$, possibly resulting into several connected components $X_1, ..., X_k$. If $X$ is not bipartite, then the algorithm rejects, because this means that at least one non-PO vertex must be [*weak*]{}.  Otherwise, the component may possibly admit an RMIS if the combination of constraints induced by all the vertices is satisfiable.  The rest of the procedure consists of encoding these constraints into a 2-SAT formula such that $G_x$ admits an RMIS (with given status for $v(x)$, the attachment vertex), if and only if the formula is satisfiable.  The formula is built as follows.  For each connected component $X_i$, a SAT variable $x_i$ is created.  As $X_i$ is bipartite, every vertex $v$ of one part receives label $\ell(v) \gets x_i$ and every vertex $v$ of the other part receives a label $\ell(v) \gets \neg x_i$. (Intuitively, if the eventual formula is satisfiable with $x_i=true$, then the vertices in the first part are included in the RMIS; if it is satisfiable with $x_i=false$, then the vertices of the second part are included.)  Then, the existing constraints of articulation points are incorporated; namely, if an articulation point $y \in {\ensuremath{\mathcal{A}}\xspace}$ contains [*only*]{} label [*PI*]{}, then $\ell(v(y))$ is set to [true]{}; if it contains only [*PO*]{}or only [*PE*]{}, then $\ell(v(y))$ is set to [false]{}; if it contains both options ([[i.e.,]{}]{}[*PI*]{}[*PO*]{}or [*PI*]{}[*PE*]{}), then no constraint is added.  Finally, although the edges of $E^{\textsl{PO}\xspace}$ induce no constraints for bipartiteness, we must still make sure that their endpoints are not both included to the RMIS (for independence), thus if $\{u,v\} \in E^{\textsl{PO}\xspace}$, then the clause $\neg\ell(u)\vee\neg\ell(v)$ is added. 

**Parameters:** A node $x\in {\ensuremath{\mathcal{C}}\xspace}$ and a $flag \in\{{\tt in,out,none}\}$ that forces the status of $v(x)$\
**Return:** ${\tt true}$ if a suitable set of $x$ exists, ${\tt false}$ otherwise

XX: = XX = XX = XX = XX = XX = XX = XX =01: Let $E^{\tt PO}$ be the set of edges $\{u,v\}$ of $G_x$ such that ${\textsl{PO}\xspace}\in L(u)$ and ${\textsl{PO}\xspace}\in L(v)$\
02: Let $X=G_x \setminus E^{\tt PO}$\
03: **if** $X$ is not bipartite **then**\
04: false\
05: Let $X_1,\ldots,X_k$ be the (bipartite) connected components in $X$\
06: Let $F$ be an empty $2$-SAT expression on a set $\{x_1,\ldots,x_k\}$ of boolean variables\
07: **foreach** $i$ in $1..k$ **do**\
08: Assign to each vertex $v$ in $X_i$ a label $\ell(v)\in\{x_i,\neg x_i\}$ such that neighbors have different labels\
09: **foreach** $a\in {\ensuremath{\mathcal{A}}\xspace}| v(a) \in G_x$ **do**\
10: **if** $L(a) = \{{\textsl{PI}\xspace}\}$ **then**\
11: $F\gets F\wedge(\ell(v(a)))$\
12: **if** $L(a) = \{{\textsl{PO}\xspace}\}$ or $L(a) = \{{\textsl{PE}\xspace}\}$ **then**\
13: $F\gets F\wedge(\neg\ell(v(a)))$\
14: **foreach** $\{u,v\}\in E^{\tt PO}$ **do**\
15: $F\gets F\wedge(\neg\ell(u)\vee\neg\ell(v))$\
16: **if** $flag = {\tt in}$ **then**\
17: $F\gets F\wedge(\ell(v(x)))$\
18: **else if** $flag = {\tt out}$ **then**\
19: $F\gets F\wedge(\neg\ell(v(x)))$\
20: **return** whether $F$ is satisfiable (using an external 2-SAT solver)\

#### Correctness

To formalize the properties of the procedure ${\tt isSatisfiable}$, we need to introduce some definitions.  Let [$G_x^+$]{}be the graph built from $G_x$ by adding a small gadget to every $v(y) \in G_x$ when $y$ is constrained ([[i.e.,]{}]{}$L(y)$ is non-empty).  The gadget consists of a path of length $2$ incident to $v(y)$ through virtual vertices $v'(y)$ and $v''(y)$ (see Figure \[fig:GP\] for an intuition).  This construction is not used in the procedure itself, only in the proof. 

=\[defnode\] (1,2) node (v2); (2,2) node (v6); (3,2) node (v8); (0.3,1) node (v1); (3.7,1) node (v9); (1,0) node (v13); (2,0) node (v11); (3,0) node (v10);

(v2)+(0,.5)–(v2); (v6)+(0,.5)–(v6); (v8)+(0,.5)–(v8); (v8)+(1,0)–(v8); (v11)+(0,-.5)–(v11); (v1)–(v2)–(v6)–(v8)–(v9)–(v10)–(v11)–(v13)–(v1); (v2)–(v11);

=\[font=, inner sep=2pt\] (v1) node\[above left\] [1]{}; (v2) node\[above right\] [2]{}; (v6) node\[above right\] [6]{}; (v8) node\[above left\] [8]{}; (v9) node\[left=2pt\] [9]{}; (v10) node\[below=-1pt, xshift=8pt\] [$10 =$$v(x)$]{}; (v11) node\[below right\] [11]{}; (v13) node\[below right\] [13]{};

=\[font=, inner sep=2pt\] (v2) node\[left\] [[*PI*]{}[*PO*]{}]{}; (v6) node\[below\] [[*PI*]{}[*PO*]{}]{}; (v11) node\[above=1pt,xshift=9pt\] [[*PI*]{}[*PO*]{}]{}; (v8) node\[below left,xshift=2pt\] [[*PI*]{}]{}; (0,2.5) rectangle (4,-.5); (0,2.2) node\[left\] [$x=$ [B]{}]{}; (5,1) node [$\rightarrow$]{}; (0,-.85) coordinate (bidon);

=\[defnode\] (1,2) node (v2); (1,2.4) node\[gray\] (v2b); (1,2.8) node\[gray\] (v2c); (2,2) node (v6); (2,2.4) node\[gray\] (v6b); (2,2.8) node\[gray\] (v6c); (3,2) node (v8); (3,2.4) node\[gray\] (v8b); (3,2.8) node\[gray\] (v8c); (0.3,1) node (v1); (3.7,1) node (v9); (1,0) node (v13); (2,0) node (v11); (2,-.4) node\[gray\] (v11b); (2,-.8) node\[gray\] (v11c); (3,0) node (v10);

=\[circle, draw, red, inner sep=2pt\] (v8) node ; (v10) node ; (v13) node ; (v2) node ; (v2c) node ; (v6b) node ; (v8c) node ; (v11b) node ;

(v2)–(v2b)–(v2c); (v6)–(v6b)–(v6c); (v8)–(v8b)–(v8c); (v11)–(v11b)–(v11c); (v1)–(v2)–(v6)–(v8)–(v9)–(v10)–(v11)–(v13)–(v1); (v2)–(v11);

=\[font=, inner sep=2pt\] (v1) node\[above left\] [1]{}; (v2) node\[above right\] [2]{}; (v6) node\[above right\] [6]{}; (v8) node\[above left\] [8]{}; (v9) node\[left=2pt\] [9]{}; (v10) node\[below=-1pt, xshift=8pt\] [$10 =$ $v(x)$]{}; (v11) node\[below right\] [11]{}; (v13) node\[below right\] [13]{};

=\[font=, inner sep=2pt\]

We say that a set of vertices $S$ is a [*suitable RMIS*]{} of [$G_x^+$]{}if and only if $S$ is an RMIS of [$G_x^+$]{}such that, for every $y\in G_x$ with at least one label in $L(y)$, we have:\
- $v(y)$ in $S$ only if [*PI*]{}$\in L(y)$;\
- $v(y)$ not in $S$ only if [*PO*]{}or [*PE*]{}appears in $L(y)$; and\
- $v(y)$ not in $S$, $v'(y)$ in $S$, and $v''(y)$ not in $S$ only if PO appears in $L(y)$.

The idea is that, for every $y$, the graph induced by the path $\{v(y),v'(y),v''(y)\}$ replaces $G[T_y]$ in the management of constraints so that a suitable RMIS of [$G_x^+$]{}exists if and only if an RMIS of $G[T_x]$ exists.  We now prove the main lemma. 

\[lem:testrmis1\] Given a biconnected component $x\in{\ensuremath{\mathcal{C}}\xspace}$ with constraints on some articulation points, ${\tt isSatisfiable}(x,{\tt in})$ returns true if and only if a suitable RMIS of ${\ensuremath{G_x^+}\xspace}$ including $v(x)$ exist; ${\tt isSatisfiable}(x,{\tt out})$ returns true if and only if a suitable RMIS of ${\ensuremath{G_x^+}\xspace}$ excluding $v(x)$ exist; ${\tt isSatisfiable}(x,{\tt none})$ returns true if and only if a suitable RMIS of ${\ensuremath{G_x^+}\xspace}$ exists, irrespective of $v(x)$.

Let $x$ be the considered node in the [$\mathcal{ABC}$-tree]{}and $G_x$ the corresponding component.  Let ${\ensuremath{G_x^+}\xspace}$ be the augmented version of $G_x$ as described above.  First observe that, if $G_x \setminus E^{\textsl{PO}\xspace}$ is bipartite, then so is ${\ensuremath{G_x^+}\xspace}\setminus E^{\textsl{PO}\xspace}$, because the adjunction of such paths cannot affect bipartiteness.  In the following, we first prove the direction that (1) if the procedure returns true, then the corresponding type of suitable RMIS exists; then (2) if the given type of suitable RMIS exists, then the procedure with corresponding parameters must return true. 

1.   If $F$ is satisfiable, define $S$ as the set of vertices induced by a positive assignment, [[i.e.,]{}]{}$\{v \in G_x | \ell(v)=true\}$. Now, add to $S$ some of the virtual vertices as follows: if $v(y)$ is in $S$, add only $v''(y)$; if $v(y)$ is not in $S$ and is weak in $G_x$, add only $v'(y)$; if $v(y)$ is not in $S$ and is not weak in $G_x$, add only $v''(y)$. Lines 16 to 19 ensure that $v(x)$ is included in the MIS if $flag={\tt in}$ and that it is excluded if $flag={\tt out}$ (if $flag={\tt none}$, no constraint applies).  We now prove that $S$ is independent, maximal, robust, and suitable in $G^+$.

    [*Independence:*]{} Let $e=\{u,v\}$ be an edge of [$G_x^+$]{}.  If $e$ is an edge from one of the extra paths, $u$ and $v$ cannot be both in $S$ by construction.  Otherwise ([[i.e.,]{}]{}$e$ is in $G_x$), either $e$ belongs to $E^{{\textsl{PO}\xspace}}$, or it does not.  If it does, then the clause introduced on Line 15 ensures that $u$ and $v$ cannot be both in the MIS.  If it does not, then it belongs to ${\ensuremath{G_x^+}\xspace}\setminus E^{{\textsl{PO}\xspace}}$, which is bipartite, then Line 08 (and the greedy process for extra paths) ensures that $u$ and $v$ cannot be both in the MIS. 

    [*Maximality and robustness:*]{} Recall that independence is not affected by the removal of edges (Observation \[obs:independence\]), thus robustness means preserving maximality.  Let $u$ be a vertex of $G_x^+$ that does not belong to $S$. Either $u$ belongs to an edge in $E^{{\textsl{PO}\xspace}}$ or it does not.  If it does, then by Remark \[rem:PO\] it has a neighbor in the MIS (maximality) and it cannot be a weak vertex (robustness).  If it does not, then [*all*]{} of its neighbors in $G_x^+$ are in the set because $G_x \setminus E^{{\textsl{PO}\xspace}}$ is bipartite (and the extension of $S$ in the extra paths keep alternating the inclusion status), thus so long as $G_x^+$ remains connected, $u$ cannot be added to $S$ (maximality and robustness). 

    [*Suitability:*]{} For every $v(y)\in G_x$ such that $L(y) \ne \emptyset$. Lines 12 and 13 ensure that $v(y)\in S$ only if [*PI*]{}appears in $L(y)$. Lines 10 and 11 ensure that $v(y)\notin S$ only if [*PO*]{}or [*PE*]{}appear in $L(y)$. If $v'(y) \in S$ and $v''(y) \notin S$, then by construction $v(y) \notin S$ and it is weak in $G_x$. Line 08 implies that at least one adjacent edge to $v(y)$ in $G_x$ is in $E^{\textsl{PO}\xspace}$ and then [*PE*]{}does not appear in $L(y)$, implying that $PO$ does. 

2.   Let $M$ be a suitable RMIS of ${\ensuremath{G_x^+}\xspace}$ in which the status of $v(x)$ is ${\tt in}$ (resp ${\tt out}$).  Let $X = G_x\setminus E^{{\textsl{PO}\xspace}}$. If $X$ is not bipartite, then it contains a weak vertex, which contradicts the robustness of $M$. Thus, $X$ must be bipartite.  In general, $X$ may be made of several connected components $X_1, ..., X_k$. A satisfying assignment can then be constructed from $M$ as follows.  For all $i$ ranging from $1$ to $k$, chose the value of $x_i$ so that $\forall v\in G_x, \ell(v)=true\Leftrightarrow v\in M$. This assignment satisfies the mutual exclusivity constraint in Line 15 (with respect to edges in $E^{\textsl{PO}\xspace}$), as otherwise $M$ would not be independent, and it also satisfies the constraint added with respect to $L(y)$ (Lines 09 to 13), by suitability of $M$. Finally, due to Lines 17 and 19, the assignment must include (respectively exclude) $v(x)$ if the input flag is ${\tt in}$ (resp.  ${\tt out}$).  Thus a satisfiable assignment corresponding to $M$ must exists. 

#### \[sec:biconnected\].2  The Labeling Rule

 

Let us now return to the labeling of node $x \in {\ensuremath{\mathcal{C}}\xspace}$ in the [$\mathcal{ABC}$-tree]{}, assuming that all $y$ in ${{\tt children}\xspace}(x)$ are correctly labeled.  The goal here is to label $x$ as per the possibilities, namely to assign label [*PI*]{}if an RMIS exists in $G[T_x]$ that includes $v(x)$; to assign label [*PO*]{}if an RMIS exists in $G[T_x]$ that excludes $v(x)$; and, in case the latter does not, to assign [*PE*]{}if an RMIS exists that excludes $v(x)$ provided that an external neighbor of it is subsequently included. 

We need to distinguish here between the case that $x$ is the root component $R$ of the [$\mathcal{ABC}$-tree]{}, or just an internal node.  If $x$ is the root, then it has no attachment point and the only thing that matters is whether an RMIS exists or not.  As such, $x$ does not receive a labeling, and is instead treated directly from the main algorithm (described in the next section).  Thus, we focus on how the above procedure can be used to label $x$ when $x$ is an internal node of the [$\mathcal{ABC}$-tree]{}. 

The first two tests are realized by fixing the status of $v(x)$ as a parameter when calling ${\tt isSatisfiable()}$. A first call is made, setting this parameter to [in]{}, then a second call is made, setting this parameter to ${\tt out}$. If the second call fails (no such RMIS exist), then a third call is made with a different strategy.  This strategy relies on a trick using label [*PO*]{}.  Remark \[rem:PO\] implies that whenever a child $y$ of $x$ is labeled [*PO*]{}, then $v(y)$ (itself in $x$) does not need to have a neighbor [*within*]{} $x$ that is included in the RMIS.  As a result, testing whether $G[T_x]$ admits an RMIS if an external neighbor of $v(x)$ is subsequently added ([[i.e.,]{}]{}label [*PE*]{}) can be done by pretending that the parent $z$ of $x$, whose attachment vertex $v(z)=v(x)$ is in $x$, itself has an external neighbor in the MIS.  Thus, just like the other children labeled [*PO*]{}, an artificial [*PO*]{}label is assigned to ${{\tt parent}\xspace}(x)$, resulting in the forced non-selection of $v(x)$ to the MIS and the adjunction of an extra path to $v(x)$ (whose neighbor in the path [*will*]{} be included).  The existence of an RMIS satisfying this configuration implies that $x$ can be labeled [*PE*]{}.  The resulting labeling rule is as follows. 

\[rule:C\] If ${\tt isSatisfiable()}$ returns true with parameter [in]{}, then [*PI*]{}is added to $L(x)$. Next, if ${\tt isSatisfiable()}$ returns true with parameter [out]{}, then [*PO*]{}is added to $L(x)$. Next, if ${\textsl{PO}\xspace}\notin L(x)$ and ${\tt isSatisfiable()}$ returns true with parameter [out]{} with an artificial [*PO*]{}label in $L(parent(x))$, then [*PE*]{}is added to $L(x)$.

The corresponding instructions are formally given in Lines 25 to 34 of Algorithm \[algo:labelnode\].  In our example (Figure \[fig:ex\_compo\]), component $\texttt{E}$ is labeled both [*PI*]{}(with the suitable set $\{28,30\}$) and [*PO*]{}(with the suitable set $\{29,31\}$) while `B` is labeled [*PI*]{}(with the suitable set $\{2,8,10,13\}$) and [*PE*]{}(with the suitable set $\{1,8,11\}$). 

\[lem:labelnodebrmis\] If $x \in {\ensuremath{\mathcal{C}}\xspace}\setminus \{R\}$ and all nodes of $children(x)$ are correctly labeled, then Labeling rule \[rule:C\] produces a correct labeling of $x$.

Follows from Lemma \[lem:testrmis1\] and definition of a suitable RMIS of ${\ensuremath{G_x^+}\xspace}$.

The actual algorithm {#sec:actual-algorithm}
--------------------

Now that the [$\mathcal{ABC}$-tree]{}decomposition and the labeling rules are described, the main algorithm is relatively easy to present.  We start by giving an informal description of the algorithm, along with the corresponding code, assuming that the [$\mathcal{ABC}$-tree]{}decomposition is given.  Then, we give an example of execution in which the graph of Figure \[fig:treecomp\] and \[fig:ex\_compo\] is entirely labeled.  The time complexity of the algorithm is discussed in a subsequent section, in which we also discuss the cost of computing the [$\mathcal{ABC}$-tree]{}.  Then, in Section \[sec:constructivity\], we discuss how to turn this decision algorithm into a constructive algorithm that returns an RMIS (if one exists). 

### Description

Given the [$\mathcal{ABC}$-tree]{}$T$, the algorithm starts by chosing an arbitrary biconnected component ${\ensuremath{R}\xspace}\in {\ensuremath{\mathcal{C}}\xspace}$ to be the root node of $T$ and setting it as the current node. ( As already explained, if $G$ has no biconnected component, then it is itself a tree and any property is trivially robust.)  The main component of the algorithm consists of a DFS recursion within $T$ starting from $R$. For every node $x$ in $T$, the actual labeling of $x$ occurs after the last child of $x$ has been visited by the DFS, [[i.e.,]{}]{}after the labels of all the children are known.  At any point of the execution, if the set of labels of a node is empty [*after*]{} executing the labeling rules, this means that the current subtree (and a fortiori $G$ itself) does not admit a robust MIS, thus the algorithm rejects (and terminates).  If the execution survives until the recursion returns at the root $R$, then a special call to ${\tt isSatisfiable}$ is performed without constraints on the attachment vertex (which does not exists at $R$).  If this call returns true, then $G$ admits an RMIS, otherwise it does not.  The code of the main algorithm is given on Algorithm \[algo:findrmis\]. 

**Input:** An [$\mathcal{ABC}$-tree]{}$T$ whose nodes are ${\ensuremath{\mathcal{A}}\xspace}\cup{\ensuremath{\mathcal{B}}\xspace}\cup{\ensuremath{\mathcal{C}}\xspace}\cup{\ensuremath{\mathcal{P}}\xspace}$, rooted in some $R\in {\ensuremath{\mathcal{C}}\xspace}$\
**Output:** A labeling $L$ of $T$

XX: = XX = XX = XX = XX = XX = XX = XX =01: **foreach** $x\in\ {{\tt children}\xspace}(R)$ **do**\
02: **LabelSubTree**$(x)$\
03: **if** **isSatisfiable**$(R,{\tt none})$ **then**\
04:\
05: **else**\
04:

The recursion of the DFS is given by the procedure in Algorithm \[algo:labelsubtreermis\], which consists of descending the children first, then calling the labeling procedure described on Algorithm , and finally reject if none of the labels were possible for the current node. 

**Parameters:** A node $x \in V_T$

XX: = XX = XX = XX = XX = XX = XX = XX =01: **foreach** $c\in {{\tt children}\xspace}(x)$ **do**\
02: **LabelSubTree**$(c)$\
03: $L(x) \gets$ **LabelNode**$(x)$\
04: **if** $L(x)=\emptyset$ **then**\
05:

The correctness of the whole mainly follows from the correctness of the relabeling rules.  Indeed, the notion of [*correct labeling*]{} (see Definition \[def:correct-labeling\]) specifies that the label of a node encodes the existence of RMIS in the current subtree (parametrized by the status of the highest vertex).  On the other hand, Lemmas \[lem:labelnodeprmis\] to \[lem:labelnodebrmis\] guarantee us that if all the children of a node $x$ are correctly labeled, then the appropriate labeling rule will produce a correct labeling of $x$ (unless the algorithm rejects).  If thus follows, by induction on the tree defined by the DFS, that if the execution survives the recursion started at Lines 01 and 02 of Algorithm \[algo:findrmis\], then all the children of the root node $R$ are correctly labeled.  And Lemma \[lem:testrmis1\] allows us to conclude based the call to ${\tt isSatisfiable}$ with parameter ${\tt none}$.

### Example

The outcome of the labeling is shown in Figure \[fig:tagged\], corresponding to the input graph of Figure \[fig:treecomp\] and its [$\mathcal{ABC}$-tree]{}shown in Figure \[fig:ex\_compo\]. 

![ \[fig:tagged\]Outcome of the algorithm corresponding to the input graph of Figure \[fig:treecomp\].](example_abctree_tagged.pdf){width="100.00000%"}

(0,0) node\[text width=5cm\](legend)[ [$\circ$]{}: pendant vertices ($\in {\ensuremath{\mathcal{P}}\xspace}$)\
[$\Diamond$]{}: articulation points ($\in {\ensuremath{\mathcal{A}}\xspace}$)\
[$\Box$]{}: bridge edges ($\in {\ensuremath{\mathcal{B}}\xspace}$)\
[$\bigcirc$]{}: biconnected components ($\in {\ensuremath{\mathcal{C}}\xspace}$) ]{};

Time complexity {#sec:complexity}
---------------

In this paragraph, we analyse the running time of the algorithm.  In the following, $n$ denotes the number of vertices in $G$, which is related to the number of vertices in $T$ by a constant factor (thus the same $O$ notation is used for both interchangeably).  The purpose is not to present a fine-grained analysis.  Instead, we favor simple arguments over optimal ones, the resulting running time being in any case dominated by $O(n^3)$ time steps. 

The [$\mathcal{ABC}$-tree]{}decomposition can be computed in $O(n^2)$ time steps. 

The biconnected components of $G$ can be computed using a classical algorithm by Hopcroft and Tarjan [@HT73], which has the same complexity as a DFS in $G$, thus in time $O(n^2)$ in the worst case that $G$ is dense.  After this process, the components of size $1$ and degree $1$ correspond to the nodes in ${\ensuremath{\mathcal{P}}\xspace}$, the edges between components correspond to bridges is ${\ensuremath{\mathcal{B}}\xspace}$, and the endpoints of these bridges correspond to articulation points in ${\ensuremath{\mathcal{A}}\xspace}$. All of these can be determined either through looping over the components themselves (at most $O(n)$), or looping over the edges of $G$ (at most $O(n^2)$) in order to compare the membership of their endpoints to the components (this latter test takes constant time after Hopcroft and Tarjan’s algorithm).  Once the four types of nodes are identified, the relations between nodes in ${\ensuremath{\mathcal{A}}\xspace}$ and nodes in ${\ensuremath{\mathcal{C}}\xspace}$ can be found by looping over all the vertices of the components ($O(n)$ vertices overall, with constant time test for each) and the relations between nodes in ${\ensuremath{\mathcal{B}}\xspace}$ on the one hand, and nodes in ${\ensuremath{\mathcal{P}}\xspace}$ or ${\ensuremath{\mathcal{A}}\xspace}$ in the other hand, can be found by looping over all the edges of $G$ ($O(n^2)$ edges overall, with constant time tests for each). 

\[lem:2-SAT\] Procedure ${\tt isSatisfiable()}$ takes $O(n^2)$ time steps. 

Building the set $E^{{\textsl{PO}\xspace}}$ can be done by looping over all the edges of $G_x$ and looking at the labels of its endpoints (in constant time), thus in $O(n^2)$ time steps.  Building $X$ without these edges is also linear in the number of edges, thus costs $O(n^2)$ time steps.  Then, testing if a graph is bipartite can be done by performing a 2-coloring of it along a BFS as follows: give color 1 to an arbitrary first vertex $v$, then as the BFS progresses, give color 2 to all the vertices at distance $1$ from $v$, then color 1 again to all the vertices at distance $2$ from $v$, etc.  Possibly restart the BFS algorithm if $X$ is not connected.  As the BFS algorithm runs in time linear in the number of edges (whether or not $X$ is connected), the $2$-coloring algorithm will take up to $O(n^2)$ time steps, and the detection of whether the coloring is proper can also be done in $O(n^2)$ time steps (checking the two endpoints of every edge).  If the procedure is still running ($X$ is bipartite), the obtained $2$-coloring can be reused directly over lines 07 and 08 to assign to every vertex its SAT constraint $x_i$ or $\neg x_i$, depending on its color and connected component (the latter being possibly determined during the BFS).  Then, Lines 09 to 13 consist of a loop over (part of) the vertices with constant time processing time for each.  Lines 14 and 15 consist of a loop over the edges of $E^{{\textsl{PO}\xspace}}$ and constant processing time for each, thus at most $O(n^2)$. Lines 16 to 19 take constant time.  Finally, the resulting formula is made of $O(n^2)$ constraints over $O(n)$ clauses, and it is known that 2-SAT is solvable in time linear in the number of constraints.  In conclusion, the overall procedure takes $O(n^2)$ time steps. 

The decision algorithm presented in Section \[sec:algo\] takes $O(n^3)$ time steps. 

The main loop of the algorithm performs a depth first search in the [$\mathcal{ABC}$-tree]{}$T$, whose running time is $O(n)$. Every node $x$ is labeled once, after the DFS has finished the exploration of its subtree.  At that moment, four cases apply depending on whether $x$ is of type ${\ensuremath{\mathcal{A}}\xspace},{\ensuremath{\mathcal{B}}\xspace},{\ensuremath{\mathcal{C}}\xspace},$ or ${\ensuremath{\mathcal{P}}\xspace}$. If $x$ is of type ${\ensuremath{\mathcal{P}}\xspace}$, the labeling takes constant time (see Algorithm \[algo:labelnode\] Lines 03 to 04, and 17 to 25, respectively).  If $x$ is of type ${\ensuremath{\mathcal{B}}\xspace}$, the labeling also takes constant time because $x$ has only one child (Lines 17 to 25).  If $x$ is of type ${\ensuremath{\mathcal{A}}\xspace}$, then the labeling rule performs two loops over the children of $x$, thus the labeling takes $O(n)$ time steps (the nested existential quantifier can be tested upon the same loop).  If $x$ is in ${\ensuremath{\mathcal{C}}\xspace}$, then two or three calls are made to ${\tt isSatisfiable()}$, whose running time is $O(n^2)$ by Lemma \[lem:2-SAT\].  As a result, the overall running time is dominated by the latter being applied to possibly $O(n)$ nodes, for a total of $O(n^3)$ time steps. 

Constructivity {#sec:constructivity}
--------------

The algorithm presented over the previous subsections is a decision algorithm that returns yes or no, or equivalently, accepts or rejects the given instance.  However, the algorithm is fairly easy to adapt in order to obtain an actual RMIS if one exists.  There are essentially two options: either the RMIS is constructed in parallel of the decision algorithm, or a dedicated algorithm [*redescends*]{} the tree after the algorithm has completed.  Here, we briefly sketch both solutions. 

1.   [*Construction in parallel.*]{}  In this version, the main difficulty is that the algorithm cannot decide which of the current labels will eventually be compatible with later (higher) constraints in the tree.  For example, a node $x$ may admit an RMIS in its subtree whether or not its attachment vertex $v(x)$ is included (label [*PI*]{}and [*PO*]{}), but it might later become mandatory that $v(x)$ is included.  Thus, the idea is to build several RMIS simultaneously, one for each possible label of the current attachment vertex.  These RMIS can be built by extending the ones of the children (with compatible status), starting from the leaves, thus at most two RMIS need to be memorized for the current subtree.  In the particular case that $x$ is a biconnected component, it is needed that the satisfying assignment found by the 2-SAT solver be known and transposed into a membership status for each vertex (similarly to the set $S$ in the proof of Lemma \[lem:testrmis1\]). 

    ![ A possible RMIS of $G$ that includes $16$ vertices.\[fig:ex\_rmis2\]](example_composant_RMIS1.pdf){width="10cm"}

2.   [*Construction afterwards.*]{}  In this version, we are given an already labeled tree whose root component has been solved (successfully).  The algorithm consists of redescending the labeled tree, by making [*arbitrary choices*]{} whenever the considered attachment vertex has several labels.  Indeed, the existence of an RMIS corresponding to each such label is guaranteed when redescending the tree.  The cases that $x$ is of type ${\ensuremath{\mathcal{A}}\xspace}, {\ensuremath{\mathcal{B}}\xspace},$ or ${\ensuremath{\mathcal{P}}\xspace}$ are trivial (just pick one of the labels of the child and translate it as a membership status for its attachment vertex).  The only difficulty is when $x$ is a biconnected components.  In this case, a label is chosen arbitrarily among the labels of its attachment vertex, and the 2-SAT reduction procedure is called again with the configuration corresponding to this constraint in order to obtain the satisfying assignement that specifies which inner vertex must be included to the MIS. ( Alternatively, the satisfying assignments might be recorded while in the decision algorithm.) 

A possible outcome of the constructive algorithm, obtained by manually following the first method is shown in Figure \[fig:ex\_rmis2\]. 

Further discussion on the temporal interpretation of robustness {#sec:temporal-interpretation}
===============================================================

(\#1,\#2)[ (\#1,\#2+1) node (a); (\#1+1,\#2+1) node (b); (\#1,\#2) node (c); (\#1+1,\#2) node (d); ]{}

As discussed in the introduction, the original motivation behind the concept of robustness comes from highly-dynamic networks.  Here, we review some of the background that led to its definition.  As the content pertains to the temporal interpretation, the reader interested in the notion of robustness [*per se*]{} can safely omit reading this section.  In [@CMM11], three canonical ways of redefining combinatorial problems in highly-dynamic networks were explored, in particular covering problems such as [*dominating set*]{}, [*vertex cover*]{}, or [*independent set*]{}.  The main focus in [@CMM11] was on dominating sets, which are subsets of nodes $S\subseteq V$ such that each node in the network is either in $S$, or has a neighbor in $S$. Three natural adaptations of these problems were formulated:

-   [*Temporal*]{} version: the covering property of the problem is achieved [*over time*]{} – [*E.g.,*]{} for domination, every node outside the set must share an edge [*at least once*]{} over the lifetime with a node in the set. 

-   [*Evolving*]{} version: the covering property must be satisfied at any given instant, relative to the current structural snapshot of the network; however, the solution can be updated as the structure of the network changes.  This version is closer to the traditional “dynamic graph algorithms” (also referred to as “reoptimization”). 

-   [*Permanent*]{} version: the covering property must be satisfied in every snapshot (as for the evolving version), but here the solution cannot be updated. 

The three versions are related.  For example, in the case of dominating sets, the temporal version consists of computing a dominating set in the [*footprint*]{} $\cup {\ensuremath{\mathcal{G}}\xspace}$ of the network ([[i.e.,]{}]{}the union of all snapshots) and the permanent version consists of computing a solution in $\cap {\ensuremath{\mathcal{G}}\xspace}$ (their intersection) [@CMM11].  Furthermore, solutions to the *permanent* and the *temporal* versions form upper and lower bounds for the *evolving* version, respectively. 

In [@DKP15], the temporal definition above is extended to [*infinite*]{} lifetime networks, by requiring that the covering relation (domination or else) be satisfied [*infinitely often*]{}.  The authors observe that whenever the network is temporally connected in a recurrent way, which corresponds to Class [$\cal TC^R$]{} in [@Cas18] (and Class $5$ in [@CFQS12]), one has the guarantee that among all the edges that appear at some point, at least a connected spanning subset of them must reappear forever [@BDKP16].  In other words, an equivalent characterization of $\cal TC^R$ is that the [*eventual footprint*]{} of the network ([[i.e.,]{}]{}the union of those edges which reappear forever) is connected.  The uncertainty as to which part of the footprint will belong to the eventual footprint is the main motivation behind robustness. 

For completeness, let us cite a few recent works that considered the problem of computing temporal covering structures in highly-dynamic networks (or graphs), although not related to robustness.  Mandal et al.  [@permanent] study approximation algorithms for the permanent version of [*dominating sets*]{}.  Bamberger [*et al.*]{}  [@kuhn] also consider a temporal variant of vertex coloring and MIS.  Finally, Akrida [*et al.*]{}  [@AMSZ18] define a variant of the temporal version in the case of vertex cover, in which a solution is not just a set of nodes (as it was in [@CMM11]) but a set of pairs $(nodes, times)$, allowing different nodes to cover the edges at different times (and within a sliding time window). 

Concluding remarks {#sec:conclusion}
==================

This paper introduced a new form of heredity called robustness, motivated by various kinds of dynamic networks.  In particular, we believe that robustness is a key property of highly dynamic systems for achieving stable structures in unstable environments. 

Focusing on the classical covering problem MIS, we characterized the set of graphs in which all MISs are robust.  We gave partial characterizations of the existential analogues of this class, namely graphs that [*admit*]{} a robust solution.  We characterized the class entirely by means of a polynomial time algorithm which finds a robust MIS in an arbitrary graph is one exists (and rejects otherwise).  Whether a characterization of the existential classes exists in terms of elementary graph properties is an open question.  It would also be interesting to investigate the robustness of other types of structures ([[e.g.]{}]{}minimal dominating sets) and of basic graph properties, with the aim to understand robustness at a deeper level.  For example, bipartiteness or “sputnikness” are themselves robust properties of a graph. 

Acknowledgment {#acknowledgment .unnumbered}
==============

This research has been supported by ANR project ESTATE (ANR-16-CE25-0009-03).