=Paper= {{Paper |id=Vol-3284/4871 |storemode=property |title=Computing Eternal Vertex Cover Number on Maximal Outerplanar Graphs in Linear Time |pdfUrl=https://ceur-ws.org/Vol-3284/4871.pdf |volume=Vol-3284 |authors=Jasine Babu,Karunakaran Murali Krishnan,Veena Prabhakaran,Nandini J. Warrier |dblpUrl=https://dblp.org/rec/conf/ictcs/BabuKPW22 }} ==Computing Eternal Vertex Cover Number on Maximal Outerplanar Graphs in Linear Time== https://ceur-ws.org/Vol-3284/4871.pdf
Computing Eternal Vertex Cover Number of Maximal
Outerplanar Graphs in Linear Time
Jasine Babu1,‑ , K. Murali Krishnan2,† , Veena Prabhakaran1,*,† and Nandini J. Warrier2,†
1
    Indian Institute of Technology Palakkad, India
2
    National Institute of Technology Calicut, India


                                         Abstract
                                         Eternal vertex cover problem is a variant of the classical vertex cover problem modeled as a two player
                                         attacker-defender game. Computing eternal vertex cover number of graphs is known to be NP-hard
                                         in general and even for bipartite graphs. There is a quadratic complexity algorithm known for this
                                         problem for chordal graphs. Maximal outerplanar graphs forms a subclass of chordal graphs, for which
                                         no algorithm of sub-quadratic time complexity is known. In this paper, we obtain a linear time recursive
                                         algorithm for computing eternal vertex cover number of maximal outerplanar graphs.

                                         Keywords
                                         Eternal Vertex Cover, Maximal Outerplanar Graph, Linear Time Algorithm




1. Introduction
A set 𝑆 of vertices in a graph 𝐺 forms a vertex cover of 𝐺 if every edge in 𝐺 has at least one
end point in 𝑆. The size of a minimum vertex cover in 𝐺, called the vertex cover number of 𝐺,
will be denoted by mvc(𝐺). The eternal vertex cover problem of graphs is motivated by the
following dynamic network security / fault-tolerance model. A network can be modeled by a
graph 𝐺(𝑉, 𝐸), where the nodes of the network are represented by the vertices of 𝐺 and the
links by the edges of 𝐺. The problem is to deploy a minimum set of guards at the nodes, so that
if there is an attack (or fault) on a single link at any time, a guard is available at the end of the
link, who can move across the link to defend (or repair) the attack (or fault). Simultaneously, the
remaining guards need to reconfigure themselves, possibly by repositioning themselves to one
of their adjacent nodes, so that any attack (or fault) on a single edge at any future instant of time
can also be protected in the same manner. Thus, the model requires guaranteeing protection
against single link attacks/failures ad-infinitum. It is immediate that lowest number of guards
needed to achieve this goal in a graph 𝐺 is at least mvc(𝐺). If π‘˜ guards are sufficient to achieve
the goal, then we say that 𝐺 is π‘˜-defendable.
    Formally, guards are initially placed on a vertex cover 𝐢0 of 𝐺, forming an initial configuration.

Proceedings of the 23rd Italian Conference on Theoretical Computer Science, Rome, Italy, September 7-9, 2022
*
  Corresponding author.
†
  These authors contributed equally.
‑
  Jasine Babu acknowledges support from SERB Power Grant SPG/2021/003250
" jasine@iitpkd.ac.in (J. Babu); kmurali@nitc.ac.in (K. Murali Krishnan); veenaprabhakaran7@gmail.com
(V. Prabhakaran); nandini.wj@gmail.com (N. J. Warrier)
                                       Β© 2022 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).
    CEUR
    Workshop
    Proceedings
                  http://ceur-ws.org
                  ISSN 1613-0073
                                       CEUR Workshop Proceedings (CEUR-WS.org)
Suppose at instant 𝑖, guards are placed in a configuration 𝐢𝑖 and an attack occurs on an arbitrary
edge 𝑒𝑣 ∈ 𝐸(𝐺), then a guard at either 𝑒 or 𝑣 (or both) must move across the edge. Other
guards may or not move across one of their neighboring edges simultaneously. At the end
of these movements, the next configuration 𝐢𝑖+1 is reached. To ensure that all edges remain
guarded at the instant 𝑖 + 1, we require 𝐢𝑖+1 to be a vertex cover of 𝐺. The minimum number
of guards necessary for a graph 𝐺 to be protected against any infinite sequence of single edge
attacks is called the eternal vertex cover number of 𝐺, denoted by evc(𝐺). The eternal vertex
cover problem has two models. The first one allows only at most one guard on a vertex in any
configuration, while in the second model this constraint is absent. The results in this paper
work in both the models.
   Computing evc(𝐺) for an arbitrary graph 𝐺 is NP-hard, though in PSPACE [1], and is fixed
parameter tractable with evc(𝐺) as parameter [1]. Recently, it was shown that the problem
is NP-hard even for bipartite graphs [2]. It is also known that the problem is NP-complete
for biconnected internally triangulated planar graphs [3]. Polynomial time algorithms for
computing evc(𝐺) exactly were known only for very elementary graph classes such as an 𝑂(𝑛)
algorithm for trees [4], a polynomial time algorithm for a tree-like graph class [5] and a linear
time algorithm for cactus graphs [6]. A recent structure theorem developed in [7] has resulted
in a quadratic time algorithm for chordal graphs.
   An outerplanar graph is a planar graph that admits a planar embedding with all its vertices
lying on the exterior face and it is maximal outerplanar if addition of any more edges between
existing vertices will make the graph not outerplanar. Since maximal outerplanar graphs are
chordal, it follows from [7] that its evc number can be computed in quadratic time. We improve
the complexity and show that the evc number of maximal outerplanar graphs can be computed
in linear time. The techniques used here are fundamentally different from that used in the
algorithm known for cactus graphs [6], which is based on the fact that no edge of a cactus graph
lies on more than one cycle.
   Our algorithm takes a maximal outerplanar graph 𝐺 on at least three vertices and an edge
𝑒𝑣 on the outer face of 𝐺 and recursively computes evc(𝐺), mvc(𝐺) along with some related
parameters. If both 𝑒 and 𝑣 are of degree greater than two, then the recursion is applied on
the two induced subgraphs 𝐺𝑒 and 𝐺𝑣 of 𝐺 as shown in Figure 1. Otherwise, the recursion
works on the graph obtained by deleting the degree two end point of the edge 𝑒𝑣 from 𝐺. Since
evc(𝐺) happens to be not merely a function of the eternal vertex cover number and vertex
cover number of these associated subgraphs, the algorithm has to recursively compute this
larger set of parameters. The linear time complexity of the algorithm is derived from Theorems
1 to 4, which assert that evc(𝐺) can be determined in constant time from this larger set of
parameters of the associated subgraphs. Apart from the algorithmic result, these theorems serve
to demonstrate the structural connection between the minimum vertex cover problem and the
eternal vertex cover problem for maximal outerplanar graphs.


2. Preliminaries
Let 𝐺(𝑉, 𝐸) be a graph with 𝑆 βŠ† 𝑉 . The parameter evc𝑆 (𝐺) denotes the minimum number
π‘˜ such that 𝐺 is π‘˜-defendable with all vertices of 𝑆 occupied in all configurations. Similarly,
                                      u                         v

                                          Gu              Gv


                                                   w
Figure 1: 𝐺𝑒 is the 𝑒𝑣 segment of this graph that contains 𝑒 and 𝐺𝑣 is the 𝑒𝑣 segment that contains 𝑣.


mvc𝑆 (𝐺) denote the size of the smallest cardinality vertex cover of 𝐺 containing all vertices of 𝑆.
When 𝑆 = {𝑣1 . . . 𝑣𝑖 } for 1 ≀ 𝑖 ≀ 3, we shorten the notation evc{𝑣1 ...𝑣𝑖 } (𝐺) and mvc{𝑣1 ...𝑣𝑖 } (𝐺)
as evc𝑣1 ...𝑣𝑖 (𝐺) and mvc𝑣1 ...𝑣𝑖 (𝐺) respectively.
   Proofs omitted from the main content due to space constraints are available in the arXiv
preprint [8]. Proposition 1 given below is an easy adaptation of a result given in [3].

Proposition 1. [3] Let 𝐺(𝑉, 𝐸) be a maximal outerplanar graph with at least two vertices and
𝑆 βŠ† 𝑉 . If for every vertex 𝑣 ∈ 𝑉 βˆ– 𝑆, mvc𝑆βˆͺ{𝑣} (𝐺) = mvc𝑆 (𝐺), then evc𝑆 (𝐺) = mvc𝑆 (𝐺).
Otherwise, evc𝑆 (𝐺) = mvc𝑆 (𝐺) + 1. Hence, evc𝑆 (𝐺) = maxπ‘£βˆˆπ‘‰ (𝐺) mvc𝑆βˆͺ{𝑣} (𝐺).

  The following proposition is a direct consequence of Proposition 1.

Proposition 2. Let 𝐺 be a maximal outerplanar graph with an edge 𝑒𝑣. Then, evc𝑣 (𝐺) ≀
evc𝑒𝑣 (𝐺) ≀ evc(𝐺) + 1.

  From now on, whenever we say a graph is maximal outerplanar, we assume a fixed outerplanar
embedding of the graph. For a maximal outerplanar graph 𝐺 on at least three vertices and
any edge 𝑒𝑣 on the outer face of 𝐺, we use the notation βˆ†(𝑒𝑣) to denote the unique common
neighbor of 𝑒 and 𝑣.

Definition 1 (𝑒𝑣-segments). Let 𝐺 be a maximal outerplanar graph with at least three vertices.
Let 𝑒𝑣 be an edge on the outer face of 𝐺. Let 𝑀 = βˆ†(𝑒𝑣). We define the graph 𝐺𝑒 (𝑒𝑣) (respectively,
𝐺𝑣 (𝑒𝑣)) to be the maximal biconnected outerplanar subgraph of 𝐺 that satisfies the following two
properties (see Figure 1):
   1. The edge 𝑒𝑀 (respectively, 𝑣𝑀) is on the outer face of 𝐺𝑒 (𝑒𝑣) (respectively, 𝐺𝑣 (𝑒𝑣)).
   2. 𝐺𝑒 (𝑒𝑣) (respectively, 𝐺𝑣 (𝑒𝑣)) does not contain the vertex 𝑣 (respectively 𝑒).
𝐺𝑒 (𝑒𝑣) and 𝐺𝑣 (𝑒𝑣) will be called the 𝑒𝑣 segments of 𝐺.

Note 1. We will write 𝐺𝑒 and 𝐺𝑣 instead of 𝐺𝑒 (𝑒𝑣) and 𝐺𝑣 (𝑒𝑣) when there is no scope for
confusion. Observe that 𝐺𝑒 and 𝐺𝑣 will be single edge graphs if 𝐺 is a triangle.

Definition 2 (mvc and evc parameters). For a maximal outerplanar graph 𝐺 and an edge 𝑒𝑣,
the set of parameters M (𝐺, 𝑒𝑣) = {mvc(𝐺), mvc𝑒 (𝐺), mvc𝑣 (𝐺), mvc𝑒𝑣 (𝐺)} is called the (set
of) mvc parameters of 𝐺 with respect to 𝑒𝑣 and the set E (𝐺, 𝑒𝑣) = {evc(𝐺), evc𝑒 (𝐺), evc𝑣 (𝐺),
evc𝑒𝑣 (𝐺)} is called the (set of) evc parameters of 𝐺 with respect to 𝑒𝑣.
  The following proposition that gives the mvc and evc parameters of a triangle is the base
case of the recursive computation of these parameters for larger graphs described in subsequent
sections.

Proposition 3. Suppose 𝐺 is a triangle and 𝑒𝑣 an edge of it. Then,
   1. mvc(𝐺) = mvc𝑒 (𝐺) = mvc𝑣 (𝐺) = mvc𝑒𝑣 (𝐺) = 2
   2. evc(𝐺) = evc𝑒 (𝐺) = evc𝑣 (𝐺) = 2 and evc𝑒𝑣 (𝐺) = 3


3. Computation of the mvc Parameters
Throughout this section, we assume that 𝐺 is a maximal outerplanar graph of at least four
vertices, 𝑒𝑣 is an edge on the outer face of 𝐺 and 𝑀 = βˆ†(𝑒𝑣). The results in this section show
that the mvc parameters of 𝐺 with respect to the edge 𝑒𝑣 - viz., M (𝐺, 𝑒𝑣), can be computed in
constant time if the mvc parameters of 𝐺𝑒 with respect to 𝑒𝑀 - viz., M (𝐺𝑒 , 𝑒𝑀) and the mvc
parameters of 𝐺𝑣 with respect to 𝑣𝑀 - viz., M (𝐺𝑣 , 𝑣𝑀) are given.
  The following observation is easy to see.

Observation 1. If 𝑑𝑒𝑔𝐺 (𝑒) = 2 and 𝑑𝑒𝑔𝐺 (𝑣) > 2, then,
   1. mvc(𝐺) = mvc𝑣𝑀 (𝐺 βˆ– 𝑒)
   2. mvc𝑒 (𝐺) = mvc(𝐺 βˆ– 𝑒) + 1
   3. mvc𝑣 (𝐺) = mvc(𝐺)
   4. mvc𝑒𝑣 (𝐺) = mvc𝑣 (𝐺 βˆ– 𝑒) + 1

  The following theorem is a consequence of Observation 1.

Theorem 1. Let 𝐺 be a maximal outerplanar graph and 𝑒𝑣 be an edge on the outer face of 𝐺
such that 𝑑𝑒𝑔𝐺 (𝑒) = 2. Let 𝑀 = βˆ†(𝑒𝑣).
   1. Given M (𝐺 βˆ– 𝑒, 𝑣𝑀), it is possible to compute mvc(𝐺) in constant time.
   2. Given mvc(𝐺) and M (𝐺 βˆ– 𝑒, 𝑣𝑀), it is possible to compute the remaining mvc parameters
      of 𝐺 with respect to 𝑒𝑣 in constant time.

   Now, we look at the computation of M (𝐺, 𝑒𝑣) when 𝑑𝑒𝑔𝐺 (𝑒) > 2 and 𝑑𝑒𝑔𝐺 (𝑣) > 2. The
following proposition is easy to obtain.

Proposition 4. If 𝑑𝑒𝑔𝐺 (𝑒) > 2 and 𝑑𝑒𝑔𝐺 (𝑣) > 2, then
  mvc(𝐺) ∈ {mvc(𝐺𝑒 ) + mvc(𝐺𝑣 ) βˆ’ 1, mvc(𝐺𝑒 ) + mvc(𝐺𝑣 )}.

  The following lemma gives a method to compute mvc(𝐺) using M (𝐺𝑒 , 𝑒𝑀) and M (𝐺𝑣 , 𝑣𝑀).

Lemma 1. If 𝑑𝑒𝑔𝐺 (𝑒) > 2 and 𝑑𝑒𝑔𝐺 (𝑣) > 2, then mvc(𝐺) = min{mvc𝑀 (𝐺𝑒 ) + mvc𝑣𝑀 (𝐺𝑣 ) βˆ’
1, mvc𝑒𝑀 (𝐺𝑒 ) + mvc𝑀 (𝐺𝑣 ) βˆ’ 1, mvc(𝐺𝑒 ) + mvc(𝐺𝑣 )}.

 The next lemma shows that given mvc(𝐺), M (𝐺𝑒 , 𝑒𝑀) and M (𝐺𝑣 , 𝑣𝑀), the values of
mvc𝑒 (𝐺), mvc𝑣 (𝐺) and mvc𝑒𝑣 (𝐺) are computable in constant time.
Lemma 2. If 𝑑𝑒𝑔𝐺 (𝑒) > 2 and 𝑑𝑒𝑔𝐺 (𝑣) > 2, then:
   1. If mvc(𝐺) = mvc(𝐺𝑒 ) + mvc(𝐺𝑣 ) βˆ’ 1, then mvc𝑒 (𝐺) = mvc𝑒𝑀 (𝐺𝑒 ) + mvc(𝐺𝑣 ) βˆ’ 1,
      mvc𝑣 (𝐺) = mvc(𝐺𝑒 )+mvc𝑣𝑀 (𝐺𝑣 )βˆ’1 and mvc𝑒𝑣 (𝐺) = mvc𝑒𝑀 (𝐺𝑒 )+mvc𝑣𝑀 (𝐺𝑣 )βˆ’1.
   2. If mvc(𝐺) = mvc(𝐺𝑒 ) + mvc(𝐺𝑣 ), then
      mvc𝑒 (𝐺) = min{mvc𝑒 (𝐺𝑒 ) + mvc(𝐺𝑣 ), mvc(𝐺𝑒 ) + mvc𝑀 (𝐺𝑣 ), mvc(𝐺) + 1},
      mvc𝑣 (𝐺) = min{mvc(𝐺𝑒 ) + mvc𝑣 (𝐺𝑣 ), mvc𝑀 (𝐺𝑒 ) + mvc(𝐺𝑣 ), mvc(𝐺) + 1} and
      mvc𝑒𝑣 (𝐺) = min{mvc𝑒 (𝐺𝑒 ) + mvc𝑣 (𝐺𝑣 ), mvc(𝐺) + 1}.

  From Lemma 1 and Lemma 2, the following theorem is immediate.

Theorem 2. Let 𝐺 be a maximal outerplanar graph and 𝑒𝑣 be an edge on the outer face of 𝐺
such that 𝑑𝑒𝑔𝐺 (𝑒) > 2 and 𝑑𝑒𝑔𝐺 (𝑣) > 2. Let 𝑀 = βˆ†(𝑒𝑣).
   1. Given M (𝐺𝑒 , 𝑒𝑀) and M (𝐺𝑣 , 𝑣𝑀), it is possible to compute mvc(𝐺) in constant time.
   2. Given mvc(𝐺), M (𝐺𝑒 , 𝑒𝑀) and M (𝐺𝑣 , 𝑣𝑀), it is possible to compute the remaining mvc
      parameters of 𝐺 with respect to 𝑒𝑣 in constant time.


4. Bounds on the evc Parameters
In this section, we will derive some bounds on the evc parameters of a maximal outerplanar
graph. These bounds will be used in the next section for the recursive computation of the evc
parameters. Throughout this section, we consider 𝐺 to be a maximal outerplanar graph on at
least four vertices, 𝑒𝑣 an edge on its outer face and 𝑀 = βˆ†(𝑒𝑣). First, we derive some bounds
for E (𝐺, 𝑒𝑣) when 𝑑𝑒𝑔𝐺 (𝑒) = 2.
   The proof of the lemma below is easy to obtain by repeated applications of Proposition 1.

Lemma 3. If 𝑒 is a degree-2 vertex in 𝐺, then:
   1. evc(𝐺) ≀ evc𝑒 (𝐺) = evc(𝐺 βˆ– 𝑒) + 1
   2. evc𝑒𝑣 (𝐺) = evc𝑣 (𝐺 βˆ– 𝑒) + 1
   3. evc(𝐺) β‰₯ π‘šπ‘Žπ‘₯{mvc(𝐺 βˆ– 𝑒) + 1, evc𝑣𝑀 (𝐺 βˆ– 𝑒)}
   4. evc𝑣 (𝐺) = max{mvc𝑒𝑣 (𝐺), evc(𝐺)}

   Now, we derive some upper bounds for E (𝐺, 𝑒𝑣) when 𝑑𝑒𝑔𝐺 (𝑒) > 2 and 𝑑𝑒𝑔𝐺 (𝑣) > 2. The
following proposition is a direct consequence of Proposition 1.

Proposition 5.
   1. maxπ‘₯βˆˆπ‘‰ (𝐺𝑣 ) mvcπ‘₯ (𝐺) ≀ min{mvc𝑀 (𝐺𝑒 ) + evc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1,
      mvc𝑒𝑀 (𝐺𝑒 ) + evc𝑀 (𝐺𝑣 ) βˆ’ 1, mvc(𝐺𝑒 ) + evc(𝐺𝑣 )}
   2. maxπ‘₯βˆˆπ‘‰ (𝐺𝑒 ) mvcπ‘₯ (𝐺) ≀ min{evc𝑒𝑀 (𝐺𝑒 ) + mvc𝑀 (𝐺𝑣 ) βˆ’ 1,
      evc𝑀 (𝐺𝑒 ) + mvc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1, evc(𝐺𝑒 ) + mvc(𝐺𝑣 )}

  The proof of Lemma 4 follows easily from propositions 1 and 5.

Lemma 4. If 𝑑𝑒𝑔𝐺 (𝑒) > 2 and 𝑑𝑒𝑔𝐺 (𝑣) > 2, then:
   1. evc(𝐺) ≀ min{mvc(𝐺) + 1, evc𝑀 (𝐺𝑒 ) + evc𝑀 (𝐺𝑣 ) βˆ’ 1}
   2. evc(𝐺) ≀ max{π‘ˆ, 𝑉 }, where π‘ˆ = min{evc𝑒𝑀 (𝐺𝑒 ) + mvc𝑀 (𝐺𝑣 ) βˆ’ 1, evc𝑀 (𝐺𝑒 ) +
      mvc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1, evc(𝐺𝑒 ) + mvc(𝐺𝑣 )} and 𝑉 = min{mvc𝑀 (𝐺𝑒 ) + evc𝑣𝑀 (𝐺𝑣 ) βˆ’
      1, mvc𝑒𝑀 (𝐺𝑒 ) + evc𝑀 (𝐺𝑣 ) βˆ’ 1, mvc(𝐺𝑒 ) + evc(𝐺𝑣 )}
  In a similar way, we can also prove Lemma 5 and Lemma 6, which give upper bounds on
evc𝑣 (𝐺) and evc𝑒𝑣 (𝐺) respectively.
Lemma 5. If 𝑑𝑒𝑔𝐺 (𝑒) > 2 and 𝑑𝑒𝑔𝐺 (𝑣) > 2, then:
  1. evc𝑣 (𝐺) ≀ min{evc(𝐺) + 1, mvc𝑣 (𝐺) + 1, evc𝑀 (𝐺𝑒 ) + evc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1}
  2. evc𝑣 (𝐺) ≀ max{π‘ˆ, 𝑉 }, where π‘ˆ = min{evc(𝐺𝑒 ) + mvc𝑣 (𝐺𝑣 ), evc𝑀 (𝐺𝑒 ) +
     mvc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1} and 𝑉 = min{mvc(𝐺𝑒 ) + evc𝑣 (𝐺𝑣 ), mvc𝑀 (𝐺𝑒 ) + evc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1}
Lemma 6. If 𝑑𝑒𝑔𝐺 (𝑒) > 2 and 𝑑𝑒𝑔𝐺 (𝑣) > 2, then:
  1. evc𝑒𝑣 (𝐺) ≀ min{evc(𝐺) + 1, mvc𝑒𝑣 (𝐺) + 1, max{𝑃1 , 𝑃2 }}, where
     𝑃1 = π‘šπ‘–π‘›{evc𝑒𝑀 (𝐺𝑒 ) + mvc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1, evc𝑒 (𝐺𝑒 ) + mvc𝑣 (𝐺𝑣 )} and
     𝑃2 = π‘šπ‘–π‘›{mvc𝑒𝑀 (𝐺𝑒 ) + evc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1, mvc𝑒 (𝐺𝑒 ) + evc𝑣 (𝐺𝑣 )}
  2. evc𝑒𝑣 (𝐺) ≀ min{𝑄, evc𝑒𝑀 (𝐺𝑒 ) + evc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1, evc𝑒 (𝐺𝑒 ) + evc(𝐺𝑣 ), evc𝑣 (𝐺𝑣 ) +
     evc(𝐺𝑒 )}, where 𝑄 = max{evc𝑒 (𝐺𝑒 ) + evc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1, evc𝑒 (𝐺𝑒 ) + mvc𝑣 (𝐺𝑣 )}
  The next lemma gives some lower bounds for E (𝐺, 𝑒𝑣) when 𝑑𝑒𝑔𝐺 (𝑒) > 2 and 𝑑𝑒𝑔𝐺 (𝑣) > 2.
Lemma 7. If 𝑑𝑒𝑔𝐺 (𝑒) > 2 and 𝑑𝑒𝑔𝐺 (𝑣) > 2, then:
  1. evc(𝐺) β‰₯ max{evc𝑀 (𝐺𝑒 ) + mvc(𝐺𝑣 ) βˆ’ 1, mvc(𝐺𝑒 ) + evc𝑀 (𝐺𝑣 ) βˆ’ 1}
  2. evc𝑒 (𝐺) β‰₯ max{evc(𝐺), mvc𝑒𝑀 (𝐺𝑒 ) + evc(𝐺𝑣 ) βˆ’ 1, evc𝑒𝑀 (𝐺𝑒 ) + mvc(𝐺𝑣 ) βˆ’ 1,
     evc𝑒 (𝐺𝑒 ) + mvc𝑀 (𝐺𝑣 ) βˆ’ 1}
  3. evc𝑒𝑣 (𝐺) β‰₯ max{evc(𝐺), evc𝑒 (𝐺), evc𝑣 (𝐺), mvc𝑒𝑀 (𝐺𝑒 ) + evc𝑣 (𝐺𝑣 ) βˆ’ 1,
     evc𝑒 (𝐺𝑒 ) + mvc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1, evc𝑒𝑀 (𝐺𝑒 ) + mvc𝑣 (𝐺𝑣 ) βˆ’ 1, mvc𝑒 (𝐺𝑒 ) + evc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1}


5. Computation of the evc Parameters
Let 𝐺 be a maximal outerplanar graph with at least four vertices, 𝑒𝑣 be an edge on its outer
face and 𝑀 = βˆ†(𝑒𝑣). In this section, we describe the method of computing E (𝐺, 𝑒𝑣) using the
bounds obtained in Section 4.

5.1. Computing E (𝐺, 𝑒𝑣) when 𝑑𝑒𝑔𝐺 (𝑒) = 2
In this subsection, we consider the case when 𝑒 is a degree-2 vertex in 𝐺. Bounds obtained in
Proposition 2 and Lemma 3 together with Proposition 1 give the following.
Lemma 8. evc(𝐺) = max{mvc(𝐺 βˆ– 𝑒) + 1, evc𝑣𝑀 (𝐺 βˆ– 𝑒)}.
  From Lemma 3 and Lemma 8, the following theorem is immediate.
Theorem 3. Let 𝐺 be a maximal outerplanar graph and 𝑒 be a degree-2 vertex in 𝐺 with neighbors
𝑣 and 𝑀.
   1. Given mvc(𝐺 βˆ– 𝑒) and E (𝐺 βˆ– 𝑒, 𝑣𝑀), it is possible to compute evc(𝐺) in constant time.
   2. Given evc(𝐺), M (𝐺, 𝑒𝑣) and E (𝐺 βˆ– 𝑒, 𝑣𝑀), it is possible to compute the remaining evc
      parameters of 𝐺 with respect to 𝑒𝑣 in constant time.
5.2. Computing E (𝐺, 𝑒𝑣) when 𝑑𝑒𝑔𝐺 (𝑒) > 2 and 𝑑𝑒𝑔𝐺 (𝑣) > 2
Now, we will see how E (𝐺, 𝑒𝑣) can be computed when 𝑑𝑒𝑔𝐺 (𝑒) > 2 and 𝑑𝑒𝑔𝐺 (𝑣) > 2 using
mvc(𝐺), M (𝐺𝑒 , 𝑒𝑀), M (𝐺𝑣 , 𝑣𝑀), E (𝐺𝑒 , 𝑒𝑀) and E (𝐺𝑣 , 𝑣𝑀). For this subsection, we will
assume that 𝑑𝑒𝑔𝐺 (𝑒) > 2 and 𝑑𝑒𝑔𝐺 (𝑣) > 2. We will also assume that mvc(𝐺𝑒 ) = π‘˜π‘’ and
mvc(𝐺𝑣 ) = π‘˜π‘£ .
  Lemma 9 handles the computation of evc(𝐺). The proof of this lemma uses the bounds
obtained in Lemma 4 and Lemma 7.

Lemma 9.
   1. If evc(𝐺𝑒 ) = π‘˜π‘’ and evc(𝐺𝑣 ) = π‘˜π‘£ , then
         β€’ evc(𝐺) = max{evc𝑀 (𝐺𝑒 ) + mvc(𝐺𝑣 ) βˆ’ 1, mvc(𝐺𝑒 ) + evc𝑀 (𝐺𝑣 ) βˆ’ 1}.
   2. If evc(𝐺𝑒 ) = π‘˜π‘’ and evc(𝐺𝑣 ) = π‘˜π‘£ + 1, then
         β€’ evc(𝐺) = min{mvc(𝐺)+1, evc(𝐺𝑒 )+evc𝑣𝑀 (𝐺𝑣 )βˆ’1, mvc𝑒𝑀 (𝐺𝑒 )+evc𝑀 (𝐺𝑣 )βˆ’1}.
   3. If evc(𝐺𝑒 ) = π‘˜π‘’ + 1 and evc(𝐺𝑣 ) = π‘˜π‘£ + 1, then
         β€’ evc(𝐺) = min{mvc(𝐺) + 1, max{evc𝑒𝑀 (𝐺𝑒 ) + mvc𝑀 (𝐺𝑣 ) βˆ’ 1, mvc𝑀 (𝐺𝑒 ) +
           evc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1}}.

  Lemmas 10-12 deal with the computation of the remaining parameters in E (𝐺, 𝑒𝑣) using
evc(𝐺), M (𝐺, 𝑒𝑣), M (𝐺𝑒 , 𝑒𝑀), M (𝐺𝑣 , 𝑣𝑀), E (𝐺𝑒 , 𝑒𝑀) and E (𝐺𝑣 , 𝑣𝑀). The proofs of these
lemmas critically use the bounds stated in lemmas 5-7.

Lemma 10. Suppose evc(𝐺𝑒 ) = π‘˜π‘’ and evc(𝐺𝑣 ) = π‘˜π‘£ .
   1. If evc(𝐺) = π‘˜π‘’ + π‘˜π‘£ βˆ’ 1, then
         β€’ evc𝑒 (𝐺) = evc𝑒𝑀 (𝐺𝑒 ) + mvc(𝐺𝑣 ) βˆ’ 1.
         β€’ evc𝑣 (𝐺) = evc𝑣𝑀 (𝐺𝑣 ) + mvc(𝐺𝑒 ) βˆ’ 1.
         β€’ evc𝑒𝑣 (𝐺) = π‘šπ‘–π‘›{mvc𝑒𝑣 (𝐺) + 1, evc𝑒𝑀 (𝐺𝑒 ) + evc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1}.
   2. If evc(𝐺) = π‘˜π‘’ + π‘˜π‘£ , then
         β€’ evc𝑒 (𝐺) = evc𝑣 (𝐺) = evc(𝐺).
         β€’ evc𝑒𝑣 (𝐺) = min{evc𝑒 (𝐺𝑒 ) + mvc(𝐺𝑣 ), evc𝑣 (𝐺𝑣 ) + mvc(𝐺𝑒 ), mvc𝑒𝑣 (𝐺) + 1}.

Lemma 11. Suppose evc(𝐺𝑒 ) = π‘˜π‘’ and evc(𝐺𝑣 ) = π‘˜π‘£ + 1.
   1. If mvc(𝐺) = π‘˜π‘’ + π‘˜π‘£ βˆ’ 1, then
         β€’ evc𝑒 (𝐺) = mvc𝑒𝑀 (𝐺𝑒 ) + evc(𝐺𝑣 ) βˆ’ 1.
         β€’ evc𝑣 (𝐺) = min{mvc𝑣 (𝐺) + 1, evc𝑀 (𝐺𝑒 ) + evc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1, max{mvc𝑀 (𝐺𝑒 ) +
           evc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1, evc(𝐺𝑒 ) + mvc𝑣 (𝐺𝑣 )}}.
         β€’ evc𝑒𝑣 (𝐺) = min{mvc𝑒𝑣 (𝐺) + 1, evc𝑒𝑀 (𝐺𝑒 ) + evc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1, evc𝑒 (𝐺𝑒 ) +
           max{evc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1, mvc𝑣 (𝐺𝑣 )}}.
   2. If mvc(𝐺) = 𝑒𝑣𝑐(𝐺) = π‘˜π‘’ + π‘˜π‘£ , then
         β€’ evc𝑒 (𝐺) = evc𝑒 (𝐺𝑒 ) + evc𝑀 (𝐺𝑣 ) βˆ’ 1
         β€’ evc𝑣 (𝐺) = min{mvc𝑣 (𝐺) + 1, evc𝑀 (𝐺𝑒 ) + evc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1, max{mvc𝑀 (𝐺𝑒 ) +
           evc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1, evc(𝐺𝑒 ) + mvc𝑣 (𝐺𝑣 )}}
         β€’ evc𝑒𝑣 (𝐺) = min{evc(𝐺) + 1, max{evc𝑒 (𝐺𝑒 ) + mvc𝑣 (𝐺𝑣 ), evc𝑒 (𝐺𝑒 ) +
           evc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1}}.
   3. If evc(𝐺) = π‘˜π‘’ + π‘˜π‘£ + 1, then
         β€’ evc𝑒 (𝐺) = evc𝑣 (𝐺) = evc(𝐺)
         β€’ evc𝑒𝑣 (𝐺) = min{mvc𝑒𝑣 (𝐺) + 1, evc(𝐺𝑒 ) + evc𝑣 (𝐺𝑣 )}.

Lemma 12. Suppose evc(𝐺𝑒 ) = π‘˜π‘’ + 1 and evc(𝐺𝑣 ) = π‘˜π‘£ + 1. Then,
   1. evc𝑒 (𝐺) = min{mvc𝑒 (𝐺) + 1, evc𝑒 (𝐺𝑒 ) + evc𝑀 (𝐺𝑣 ) βˆ’ 1}
   2. evc𝑣 (𝐺) = min{mvc𝑣 (𝐺) + 1, evc𝑣 (𝐺𝑣 ) + evc𝑀 (𝐺𝑒 ) βˆ’ 1}
   3.    β€’ If mvc𝑒𝑣 (𝐺) ≀ π‘˜π‘’ + π‘˜π‘£ then evc𝑒𝑣 (𝐺) = mvc𝑒𝑣 (𝐺) + 1.
         β€’ Otherwise, evc𝑒𝑣 (𝐺) = π‘šπ‘–π‘›(mvc𝑒𝑣 (𝐺) + 1, π‘šπ‘Žπ‘₯(𝑄1 , 𝑄2 )), where
            𝑄1 = π‘šπ‘–π‘›(evc𝑒𝑀 (𝐺𝑒 ) + mvc𝑣𝑀 (𝐺𝑣 ) βˆ’ 1, evc𝑒 (𝐺𝑒 ) + mvc𝑣 (𝐺𝑣 )) and
            𝑄2 = π‘šπ‘–π‘›(evc𝑣𝑀 (𝐺𝑣 ) + mvc𝑒𝑀 (𝐺𝑒 ) βˆ’ 1, evc𝑣 (𝐺𝑣 ) + mvc𝑒 (𝐺𝑒 )).

  From Lemma 9-12, the following theorem is immediate.

Theorem 4. Let 𝐺 be a maximal outerplanar graph and 𝑒𝑣 be an edge on the outer face of 𝐺
such that 𝑑𝑒𝑔𝐺 (𝑒) > 2 and 𝑑𝑒𝑔𝐺 (𝑣) > 2. Let 𝑀 = βˆ†(𝑒𝑣).
   1. Given M (𝐺𝑒 , 𝑒𝑀), E (𝐺𝑒 , 𝑒𝑀), M (𝐺𝑣 , 𝑣𝑀) and E (𝐺𝑣 , 𝑣𝑀), it is possible to compute
      evc(𝐺) in constant time.
   2. Given evc(𝐺), M (𝐺, 𝑒𝑣), M (𝐺𝑒 , 𝑒𝑀), E (𝐺𝑒 , 𝑒𝑀), M (𝐺𝑣 , 𝑣𝑀) and E (𝐺𝑣 , 𝑣𝑀), it is
      possible to compute the remaining evc parameters of 𝐺 with respect to 𝑒𝑣 in constant time.


6. A Linear Time Algorithm to Compute evc Number
In this section, we formulate a divide and conquer algorithm that takes a pair (𝐺, 𝑒𝑣) as input,
where 𝐺 is a maximal outerplanar graph and 𝑒𝑣 is an edge on its outer face, and recursively
computes M (𝐺, 𝑒𝑣) and E (𝐺, 𝑒𝑣). The case when 𝐺 is a triangle forms the base case of
the recursion and it is handled using Proposition 3. Let 𝑀 = βˆ†(𝑒𝑣). If 𝑑𝑒𝑔𝐺 (𝑒) > 2 and
𝑑𝑒𝑔𝐺 (𝑣) > 2, then the recursion works on (𝐺𝑒 , 𝑒𝑀) and (𝐺𝑣 , 𝑣𝑀) using Theorem 2 and
Theorem 4. Otherwise, suppose 𝑒′ is the degree-2 vertex among 𝑒 and 𝑣 and 𝑣 β€² is the other one.
In this case, the recursion works on (𝐺 βˆ– 𝑒′ , 𝑣 β€² 𝑀) using Theorem 1 and Theorem 3.
   A high level overview of our method is given in Algorithm 1. To obtain the linear time
guarantee, we need to ensure that the time spent in steps other than the recursive calls is 𝑂(1).
Theorems 1-4 guarantee that lines 8 βˆ’ 11 and lines 17 βˆ’ 20 work in constant time, forming the
most crucial part of our algorithm. However, we will have to avoid the explicit computation of
the subgraphs and passing them as explicit parameters in the recursive calls using a refinement
of Algorithm 1.
Algorithm 1 To compute M (𝐺, 𝑒𝑣) and E (𝐺, 𝑒𝑣) of a maximal outerplanar graph 𝐺 with 𝑒𝑣
an edge on its outer face. [A high level overview]
Inputs: A maximal outerplanar graph 𝐺 with at least three vertices, an edge 𝑒𝑣 on the outer
face of 𝐺.
Outputs: M (𝐺, 𝑒𝑣) and E (𝐺, 𝑒𝑣).
  1: procedure EVC_Parameters(𝐺, 𝑒𝑣)
  2:    𝑀 ← βˆ†(𝑒𝑣).
  3:    if 𝐺 is a triangle then
  4:        mvc(𝐺)=evc(𝐺)=mvc𝑒 (𝐺)=mvc𝑣 (𝐺)=mvc𝑒𝑣 (𝐺)=2,                   evc𝑒 (𝐺)=evc𝑣 (𝐺)=2,
     evc𝑒𝑣 (𝐺)=3.
  5:    else if One end point of 𝑒𝑣 is degree-2 then
  6:        𝑒′ =degree-2 end point of 𝑒𝑣, 𝑣 β€² =higher degree end point of 𝑒𝑣.
  7:        Recursively call EVC_Parameters(𝐺 βˆ– 𝑒′ , 𝑣 β€² 𝑀).
  8:        Compute mvc(𝐺) using Theorem 1 (Part 1).
  9:        Compute mvc𝑒 (𝐺), mvc𝑣 (𝐺) and mvc𝑒𝑣 (𝐺) using Theorem 1 (Part 2).
 10:        Compute evc(𝐺) using Theorem 3 (Part 1).
 11:        Compute evc𝑒𝑣 (𝐺) in constant using Theorem 3 (Part 2).
 12:    else
 13:        𝐺𝑒 ← 𝑒𝑣-segment of 𝐺 containing the vertex 𝑒
 14:        𝐺𝑣 ← 𝑒𝑣-segment of 𝐺 containing the vertex 𝑣
 15:        Recursively call EVC_Parameters(𝐺𝑒 , 𝑒𝑀).
 16:        Recursively call EVC_Parameters(𝐺𝑣 , 𝑣𝑀).
 17:        Compute mvc(𝐺) using Theorem 2 (Part 1).
 18:        Compute mvc𝑒 (𝐺), mvc𝑣 (𝐺), mvc𝑒𝑣 (𝐺) using Theorem 2 (Part 2).
 19:        Compute evc(𝐺) using Theorem 4 (Part 1).
 20:        Compute evc𝑒 (𝐺), evc𝑣 (𝐺), evc𝑒𝑣 (𝐺) using Theorem 4 (Part 2).
 21:    end if
 22:    return (M (𝐺, 𝑒𝑣) and E (𝐺, 𝑒𝑣))
 23: end procedure


   For the purpose of a refined algorithm, we maintain a Vertex Edge Face Adjacency List data
structure using which the following operations are possible:

    β€’ For any edge 𝑒, in constant time we can traverse through the internal faces on which the
      edge 𝑒 lies.
    β€’ For any internal face 𝑓 , in constant time we can traverse through the edges on the
      boundary of 𝑓 .

The details of the data structure is given in Figure 2. For any edge 𝑣𝑖 𝑣𝑗 , there are links between
the edge node 𝑣𝑖 𝑣𝑗 and the edge node 𝑣𝑗 𝑣𝑖 . For each face 𝑓 in 𝐺, the face node representing
𝑓 contains links to the edge nodes corresponding to the bounding edges of 𝑓 and vice versa.
Remember that each edge of 𝐺 has two edge nodes corresponding to it. Hence, for each face
node 𝑓 , there are six pointers to edge nodes. For each face node, there is a visit field which is
initialized to unvisited. Each vertex node has a mark field, which is initialized to unmarked, the
cur-edge field which is initialized to null and a pointer to the beginning of the adjacency list of
that vertex.
struct vertex                        struct edgenode                       struct facenode
 {                                    {                                     {
    int vnum;                           int vertex1 ;                         edgenode βˆ—e1 ;
    int degree                          int vertex2 ;                         edgenode βˆ—pair-e1 ;
   boolean mark;                        facenode βˆ—f1 ;                        edgenode βˆ—e2 ;
                                        facenode βˆ—f2 ;
    edgenode*head;                                                            edgenode βˆ—pair-e2 ;
                                        edgenode *pair;
    edgenode *cur-edge;                 edgenode *next;                       edgenode βˆ—e3 ;
  }                                                                           edgenode βˆ—pair-e3 ;
                                       }
struct vertex Varray[size]                                                    boolean visit;
                                                                             }


Figure 2: Details of the vertex edge face adjacency list data structure.


   Algorithm 2 gives a linear time refinement of Algorithm 1. To compute the evc number
of a maximal outerplanar graph, we pass an edge 𝑒𝑣 on the outer face of the graph as input
parameter to the algorithm. We assume that the vertex face adjacency list of this graph is
maintained as a global data structure. It may be noted that the Vertex Edge Face Adjacency List
of a maximal outerplanar graph can be produced in linear time by modifying the algorithm
suggested by N. Chiba and T. Nishizeki [9] for listing all the triangles of a planar graph.
   Using the visit field of faces in the data structure, we avoid passing the subgraph as an explicit
parameter in recursive calls. Initially, the visit field of all (internal) faces are set to unvisited.
Note that, the edge 𝑒𝑣 is present in exactly one unvisited face 𝑒𝑣𝑀 initially. In subsequent
recursive calls, the following invariants will be maintained:
    β€’ the edge 𝑒 passed as parameter to the recursion is present in exactly one unvisited face 𝑓 .
    β€’ The 𝑒-segment of 𝐺 that contains the unvisited face 𝑓 containing 𝑒 is precisely the
      subgraph on which the recursive call in Algorithm 1 would have been made.
Now we explain how the correspondence between the computational steps of Algorithm 1 and
Algorithm 2 are maintained.
   In line number 2 of Algorithm 1, we find the unique common neighbor 𝑀 of 𝑒 and 𝑣 in the
input graph. Instead of this step, line number 2 of Algorithm 2 identifies 𝑀 as the third vertex in
the unique unvisited face containing the edge 𝑒𝑣. After this, the face 𝑒𝑣𝑀 is marked as visited
in line number 4 of Algorithm 2 and subsequently the edges 𝑒𝑀 and 𝑣𝑀 are in at most one
unvisited face each.
   Algorithm 1 is divided into following three cases:
   1. The input graph is a triangle (degrees of both the end vertices of the edge 𝑒𝑣 are 2). Refer
      to line number 3 of Algorithm 1.
   2. The input graph is not a triangle and exactly one end vertex of the input edge 𝑒𝑣 is of
      degree 2. Refer to line number 5 of Algorithm 1.
   3. The input graph is not a triangle and both the end vertices of the input edge 𝑒𝑣 has degree
      greater than 2. Refer to line number 12 of Algorithm 1.
The three cases of Algorithm 2 corresponding to the three cases of Algorithm 1 are as follows:
   1. Both edges 𝑒𝑀 and 𝑣𝑀 lie in no unvisited face and thereby 𝑒𝑣𝑀 is a triangle. Refer to
      line number 5 of Algorithm 2.
   2. Exactly one among the edges 𝑒𝑀 and 𝑣𝑀 lie in an unvisited face. Refer to line number 8
      of Algorithm 2.
   3. Both 𝑒𝑀 and 𝑣𝑀 lie in one unvisited face each. Refer to line number 16 of Algorithm 2.

Algorithm 2 For computing M (𝐺, 𝑒𝑣) and E (𝐺, 𝑒𝑣) of a maximal outerplanar graph 𝐺 with
𝑒𝑣 an edge on its outer face in linear time
Inputs: An edge 𝑒𝑣 on the outer face of the maximal outerplanar graph 𝐺 that has at least
three vertices.
Output: M (𝐺, 𝑒𝑣) and E (𝐺, 𝑒𝑣).
Assumption: The vertex edge face adjacency list is maintained globally.
  1: procedure EVC_Parameters
  2:     Identify the unvisited face 𝑒𝑣𝑀 in which the edge 𝑒𝑣 lie.
  3:                                  ◁ Possible in constant time by vertex edge face adjacency list
  4:      Set the visit field of the face 𝑒𝑣𝑀 to visited.
  5:     if neither edge 𝑒𝑀 nor edge 𝑣𝑀 is in any unvisited faces then
  6:                    ◁ Possible to check in constant time using vertex edge face adjacency list
  7:         mvc(𝐺)=evc(𝐺)=mvc𝑒 (𝐺)=mvc𝑣 (𝐺)=mvc𝑒𝑣 (𝐺)=2,                     evc𝑒 (𝐺)=evc𝑣 (𝐺)=2,
     evc𝑒𝑣 (𝐺)=3.
  8:     else if exactly one among 𝑒𝑀 and 𝑣𝑀 lie in an unvisited face then
  9:               ◁ Possible to check in constant time using the vertex edge face adjacency list
 10:         𝑒 be the edge among 𝑒𝑀 and 𝑣𝑀 that lie in an unvisited face.
 11:         𝑑 β†βˆ’ EVC_Parameters(𝑒).
 12:         Compute mvc(𝐺) in constant time using Theorem 1 (part 1).
 13:         Compute mvc𝑒 (𝐺), mvc𝑣 (𝐺) and mvc𝑒𝑣 (𝐺) in constant time using Theorem 1 (part
     2).
 14:         Compute evc(𝐺) in constant time using Theorem 3 (part 1).
 15:         Compute evc𝑒𝑣 (𝐺) in constant using Theorem 3 (part 2).
 16:     else
 17:         𝑑1 β†βˆ’ EVC_Parameters(𝑒𝑀).
 18:         𝑑2 β†βˆ’ EVC_Parameters(𝑣𝑀).
 19:         Compute mvc(𝐺) in constant time using Theorem 2 (part 1).
 20:         Compute mvc𝑒 (𝐺), mvc𝑣 (𝐺), mvc𝑒𝑣 (𝐺) in constant time using Theorem 2 (part 2).
 21:         Compute evc(𝐺) in constant time using Theorem 4 (part 1).
 22:         Compute evc𝑒 (𝐺), evc𝑣 (𝐺), evc𝑒𝑣 (𝐺) in constant time using Theorem 4 (part 2).
 23:     end if
 24:     return (M (𝐺, 𝑒𝑣) and E (𝐺, 𝑒𝑣))
 25: end procedure


   Now, we show that line number 3 of Algorithm 1 is equivalent to line number 5 of Algorithm 2.
In line number 3 of Algorithm 1, we check whether the input graph is a triangle, which is the
base case. Equivalently, by the invariants stated above, in Algorithm 2, it is enough to check
if the 𝑒𝑣-segment of 𝐺 containing the face 𝑒𝑣𝑀 is a triangle. In line 5 of Algorithm 2, we do
the following in constant time using vertex edge face adjacency list: We check if 𝑒𝑀 or 𝑣𝑀
lie in any unvisited face. If neither 𝑒𝑀 nor 𝑣𝑀 lie in an unvisited face, then we can infer that
𝑒𝑣-segment of 𝐺 containing the face 𝑒𝑣𝑀 is a triangle.
   In line 5 of Algorithm 1, we check whether exactly one end vertex of the edge 𝑒𝑣 is of degree
2. In line number 8 of Algorithm 2, if 𝑒𝑀 (respectively, 𝑣𝑀) is in any univisited face, then we
can infer that the degree of the vertex 𝑒 (respectively, 𝑣) is greater than 2 in the 𝑒𝑣-segment of
𝐺 that contains the face 𝑒𝑣𝑀. Otherwise, the degree of 𝑒 (respectively, 𝑣) in the 𝑒𝑣-segment of
𝐺 that contains the face 𝑒𝑣𝑀 is equal to 2.
   In line number 7 of Algorithm 1, we recursively call the function EVC_Parameters with two
input parameters: (1) the graph obtained by deleting the degree-2 endpoint 𝑒′ of the edge 𝑒𝑣
from the input graph and (2) the edge 𝑣 β€² 𝑀 bounding the face 𝑒𝑣𝑀, where degree of 𝑣 β€² is greater
than 2 in the input graph. Since in Algorithm 2, 𝑒𝑣𝑀 is already marked as visited in line number
4, it is enough to invoke the recursive call with the edge 𝑒 as parameter, where 𝑒 is the bounding
edge of the face 𝑒𝑣𝑀 with one unvisited face adjacent to it. This is achieved in line number 12
of Algorithm 2, in which we recursively call the function EVC_Parameters with the edge 𝑒 as
input, where 𝑒 is that edge among the edges 𝑒𝑀 and 𝑣𝑀 which lies in an unvisited face. Note
that the invariants of the Algorithm 2 are maintained.
   The equivalence between line number 12 of Algorithm 1 and line number 16 of Algorithm 2
follows from our arguments so far. In line number 15 (respectively, 16) of Algorithm 1, a recursive
call to the algorithm is made with input parameters: (1) 𝐺𝑒 (respectively, 𝐺𝑣 ), the 𝑒𝑀-segment
(respectively, 𝑣𝑀-segment) of 𝐺 that does not contain the edge 𝑣𝑀 (respectively, 𝑒𝑀) and (2)
the edge 𝑒𝑀 (respectively, 𝑣𝑀). Note that the edges bounding the face 𝑒𝑣𝑀, other than 𝑒𝑣, are
used as parameters in these two calls. Equivalently, in line number 17 and 18 of Algorithm 2,
recursive calls are made respectively with the edges 𝑒𝑀 and 𝑣𝑀 as input parameters. Since the
face 𝑒𝑣𝑀 is marked as visited already, the invariants of the algorithm are maintained here as
well.
   Thus, we can see that Algorithm 2 is a linear time implementation of Algorithm 1.


7. Conclusion
This paper presents a linear time algorithm for computing the eternal vertex cover number
of maximal outerplanar graphs, lowering the best known upper bound to the complexity of
the problem from quadratic [7] time to linear. The techniques presented in the paper make
crucial use of the planarity of the underlying graph to yield a divide and conquer algorithm
for computing the evc number of a maximal outerplanar graph. Attempts to generalize our
techniques to maximal planar graphs may not be successful due to the known NP-hardness
result on the evc computation of biconnected internally triangulated planar graphs [3]. The
complexity status of the problem of computing the evc number of outerplanar graphs is open,
and may be attempted using some techniques developed in this work. However, the observation
that for a chordal graph, any vertex cover containing all its cut vertices is connected [3], which
yields Proposition 1 that is extensively used in this work, does not hold for outerplanar graphs.
References
[1] F. V. Fomin, S. Gaspers, P. A. Golovach, D. Kratsch, S. Saurabh, Parameterized algorithm for
    eternal vertex cover, Information Processing Letters 110 (2010) 702 – 706.
[2] N. Misra, S. Nanoti, Eternal vertex cover on bipartite and co-bipartite graphs, CoRR
    abs/2201.03820 (2022). URL: https://arxiv.org/abs/2201.03820. arXiv:2201.03820.
[3] J. Babu, L. S. Chandran, M. Francis, V. Prabhakaran, D. Rajendraprasad, N. J. Warrier, On
    graphs whose eternal vertex cover number and vertex cover number coincide, Discrete
    Applied Mathematics 319 (2022) 171–182. doi:https://doi.org/10.1016/j.dam.2021.
    02.004.
[4] W. Klostermeyer, C. Mynhardt, Edge protection in graphs, Australasian Journal of Combi-
    natorics 45 (2009) 235 – 250.
[5] H. Araki, T. Fujito, S. Inoue, On the eternal vertex cover numbers of generalized trees, IEICE
    Transactions on Fundamentals of Electronics, Communications and Computer Sciences
    E98.A (2015) 1153–1160. doi:10.1587/transfun.E98.A.1153.
[6] J. Babu, V. Prabhakaran, A. Sharma, A substructure based lower bound for eternal vertex
    cover number, Theoretical Computer Science (2021). doi:https://doi.org/10.1016/j.
    tcs.2021.08.018.
[7] J. Babu, V. Prabhakaran, A new lower bound for the eternal vertex cover number of graphs,
    Journal of Combinatorial Optimization (2021) 1–17.
[8] J. Babu, K. M. Krishnan, V. Prabhakaran, N. J. Warrier, Eternal vertex cover number of
    maximal outerplanar graphs, 2022. URL: https://arxiv.org/abs/2201.06577.
[9] N. Chiba, T. Nishizeki, Arboricity and subgraph listing algorithms, SIAM Journal on
    computing 14 (1985) 210–223.