This paper proves that maximum cliques can be computed in polynomial time for $B_2$-EPG graphs given their representation, and provides a coloring approximation algorithm for $B_k$-EPG graphs without the representation.
Contribution
It establishes polynomial-time algorithms for maximum clique in $B_2$-EPG graphs and introduces a simple approximation method for coloring in $B_k$-EPG graphs.
Findings
01
Maximum clique can be computed in polynomial time for $B_2$-EPG graphs given a representation.
02
A ${2(k+1)}$-approximation for coloring $B_k$-EPG graphs without the representation.
03
The results extend previous work on $B_1$-EPG graphs to $B_2$-EPG graphs.
Abstract
EPG graphs, introduced by Golumbic et al. in 2009, are edge-intersection graphs of paths on an orthogonal grid. The class Bk-EPG is the subclass of EPG graphs where the path on the grid associated to each vertex has at most k bends. Epstein et al. showed in 2013 that computing a maximum clique in B1-EPG graphs is polynomial. As remarked in [Heldt et al., 2014], when the number of bends is at least 4, the class contains 2-interval graphs for which computing a maximum clique is an NP-hard problem. The complexity status of the Maximum Clique problem remains open for B2 and B3-EPG graphs. In this paper, we show that we can compute a maximum clique in polynomial time in B2-EPG graphs given a representation of the graph. Moreover, we show that a simple counting argument provides a 2(k+1)-approximation for the coloring problem on Bk-EPG graphs without knowing the…
Equations6
∣E(G)∣
∣E(G)∣
≤(q−1)(i∑∣V(Gi)∣+j∑∣V(Gj′)∣)
=(q−1)(k+1)n
χ(G)≤2(k+1)⋅2(k+1)n≤2(k+1)n.
χ(G)≤2(k+1)⋅2(k+1)n≤2(k+1)n.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Graph Theory Research · Complexity and Algorithms in Graphs · Computational Geometry and Mesh Generation
Full text
Computing maximum cliques in B2-EPG graphs
Nicolas Bousquet
G-SCOP (CNRS
Supported by ANR Projects STINT
(anr-13-bs02-0007) and LabEx PERSYVAL-Lab
(anr-11-labx-0025-01).
Univ. Grenoble-Alpes)
Grenoble
France
Marc Heinrich
LIRIS (Université Lyon 1
Supported by the anr-14-ce25-0006 project of the French National Research Agency
CNRS)
Lyon
France
UMR5205
Abstract
EPG graphs, introduced by Golumbic et al. in 2009, are edge-intersection graphs of paths on an orthogonal grid. The class Bk-EPG is the subclass of EPG graphs where the path on the grid associated to each vertex has at most k bends.
Epstein et al. showed in 2013 that computing a maximum clique in B1-EPG graphs is polynomial. As remarked in [Heldt et al., 2014], when the number of bends is at least 4, the class contains 2-interval graphs for which computing a maximum clique is an NP-hard problem. The complexity status of the Maximum Clique problem remains open for B2 and B3-EPG graphs.
In this paper, we show that we can compute a maximum clique in polynomial time in B2-EPG graphs given a representation of the graph.
Moreover, we show that a simple counting argument provides a 2(k+1)-approximation for the coloring problem on Bk-EPG graphs without knowing the representation of the graph. It generalizes a result of [Epstein et al, 2013] on B1-EPG graphs (where the representation was needed).
1 Introduction
An Edge-intersection graph of Paths on a Grid (or EPG graph for short) is a graph where vertices can be represented as paths on an orthogonal grid, and where there is an edge between two vertices if their respective paths share at least one edge. A turn on a path is called a bend. EPG graphs were introduced by Golumbic, Lipshteyn and Stern in [10]. They showed that every graph can be represented as an EPG graph. The number of bends on the representation of each vertex was later improved in [13].
EPG graphs have been introduced in the context of circuit layout, which can be modeled as paths on a grid. EPG graphs are related to the knock-knee layout model where two wires may either cross on a grid point or bend at a common point, but are not allowed to share an edge of the grid. In [10], the authors introduced a restriction on the number of bends on the path representing each vertex. The class Bk-EPG is the subclass of EPG graphs where the path representing each vertex has at most k bends. Interval graphs (intersection graphs of intervals on the line) are B0-EPG graphs.
The class of trees is in B1-EPG [10], outerplanar graphs are in B2-EPG [14] and planar graphs are in B4-EPG [14]. Several papers are devoted to prove structural and algorithmic properties of EPG-graphs with a small number of bends, see for instance [1, 2, 6, 9].
While recognizing and finding a representation of a graph in B0-EPG (interval graph) can be done in polynomial time, it is NP-complete to decide if a graph belongs to B1-EPG [5] or to B2-EPG [15]. The complexity status remains open for more bends. Consequently, in all our results we will mention whether the representation of the graph is needed or not.
Epstein et al. [7] showed that the k-coloring problem and the k-independent set problem are NP-complete restricted to B1-EPG graphs even if the representation of the graph is provided.
Moreover they gave 4-approximation algorithms for both problems when the representation of the graph is given.
Bessy et al. [4] proved that this there is no PTAS for the k-independent set problem on B1-EPG graphs and that the problem is W[1]-hard on B2-EPG graphs (parameterized by k). Recently, Bonomo et al. [3] showed that every B1-EPG graph admits a 4-clique coloring and provides a linear time algorithm that finds it, given the representation of the graph.
Maximum Clique problem on EPG graphs.
A claw of the grid is a set of three edges of the grid incident to the same point. Golumbic et al proved in [10] that a maximum clique in a B1-EPG graph can be computed in polynomial time if the representation of the graph is given.
This algorithm is based on the fact that, for every clique X of a B1-EPG graph, either there exists an edge e of the grid such that all the vertices of X contain e, or there exists a claw T such that all the vertices of X contain at least two of the three edges of T. In particular, it implies that the number of maximal cliques in B1-EPG graphs is polynomial. Epstein et al. [7] remarked that the representation of the graph is not needed since the neighborhood of every vertex is a weakly chordal graph.
When the number of bends is at least 2, such a proof scheme cannot hold since there might be an exponential number of maximal cliques. Indeed, one can construct a complete graph minus a matching in B2-EPG (see Figure 1) which has 2n/2 maximal cliques. So to compute a maximum clique on Bk-EPG graphs for k≥2, a new proof technique has to be introduced.
EPG graphs are closely related to two well known classes of intersection graphs, namely k-interval graphs, and k-track interval graphs on which the maximum clique problem have been widely studied. A k-interval is the union of k distinct intervals in the real line. A k-interval graph, introduced in [16], is the intersection graph of k-intervals. A k-track interval is the union of k intervals on k-distinct lines (called tracks). A k-track interval graph is an intersection graph of k-track intervals (in other words, it is the edge union of k interval graphs on distinct lines). One can easily check, as first observed in [13], that B3k−3-EPG graphs contain k-track interval graphs and B4k−4-EPG graphs contain k-interval graphs.
Since computing a maximum clique in a 2-interval graph is NP-hard [8], the Maximum Clique Problem is NP-hard on B4-EPG graphs. So the complexity status of the Maximum Clique problem remains open on Bk-EPG graphs for k=2 and 3.
In this paper, we prove that the Maximum Clique problem can be decided in polynomial time on B2-EPG graphs when the representation of the graph is given.
The proof scheme of [10] cannot be extended to B2-EPG graphs. Indeed, there cannot exist a bijection between local structures, like claws, and maximal cliques since there are examples with an exponential number of different maximum cliques. Our proof is divided into two main lemmas. The first one ensures that we can separate so-called Z-vertices (vertices that use paths on two rows) from U-vertices (vertices that use edges of two columns). The second ensures that if a graph only contains Z-vertices, then all the maximal cliques are included in a polynomial number of subgraphs; subgraphs for which a maximum clique can be computed in polynomial time.
Coloring Bk-EPG graphs.
Gyarfás proved in [11] that the chromatic number of k-interval graphs is bounded by a function of the maximum clique using the degeneracy of the graph. In Section 5, we propose a slightly different proof than the one of Gyarfás to prove the degeneracy of Bk-EPG graphs. This bounds ensures that there is a polynomial time algorithm that colors the graph with 2(k+1)⋅χ(G) colors in polynomial time without knowing the representation of the graph, where χ(G) is the chromatic number of G. In particular, it provides a simple coloring algorithm using at most 4 times the optimal number of colors on B1-EPG graphs without knowing its representation. It improves the algorithm of [7] where the representation was needed.
A class of graphs C is χ-bounded if there exists a function f such that χ(G)≤f(ω(G)) for every graph G of C with ω(G) the size of a maximum clique in G. Combinatorial bounds on the chromatic number of generalizations of interval graphs received a considerable attention initiated in [12]. The bound on the degeneracy of the graph ensures that the class Bk-EPG is χ-bounded and
χ(G)≤2(k+1)⋅ω(G).
As a by-product, it also ensures that graphs in Bk-EPG contain either a clique or a stable set of size 2(k+1)n which improves a result of [2] in which they show that every B1-EPG graph admits a clique or a stable set of size O(n1/3).
2 Preliminaries
Let a,b be two real values with a≤b. The (closed) interval[a,b] is the set of points between a and b containing both a and b. The interval that does not contain b is represented by [a,b) and the one that does not contain a by (a,b].
An interval graph is an intersection graph of intervals in the line. More formally, vertices are intervals and two vertices are incident if their respective intervals intersect. Let H be an interval graph with its representation. Let u∈V(H). The left extremity of u is the leftmost point p of the line such that u contains p. The right extremity of u is the rightmost point p of the line such that u contains p.
Let G be an EPG graph with its representation on the grid.
In what follows, we will always denote by roman letters a,b,… the rows of the grid and by greek letters α,β,… the columns of the grids. Given a row a (resp. column α) of the grid, the row a−1 (resp. α−1) denotes the row under a (resp. at the left of α). Given a row a and a column α, we will denote by (a,α) the grid point at the intersection of a and α. By abuse of notation, we will also denote by α (for a given row a) the point at the intersection of row a and column α.
Let u∈V(G). We denote by Pu the path representing u on the grid. The vertex u of Gintersects a row (resp. column) if Pu contains at least one edge of it.
3 Typed intervals and projection graphs
Let G be a B2-EPG graph with its representation on the grid. Free to slightly modify the representation of G, we can assume that the path associated to every vertex has exactly 2 bends. Indeed, if there is a vertex u such that Pu has less than two bends, let (a,α) be one of the two extremities of Pu. Up to a rotation of the grid, we can assume that the unique edge of Pu incident to (a,α) is the horizontal edge e between (a,α) and (a,α+1). Then create a new column β between α and α+1, and replace the edge e by two edges, one between α and β on row a, and another one going up at β.
This transformation does not modify the graph G. So we will assume in the following that for every vertex u, the path Pu has exactly two bends.
A Z-vertex of G is a vertex that intersects two rows and one column. A U-vertex is a vertex that intersects one row and two columns. The index of a vertex u is the set of rows intersected by u. The vertex ucontains a in its index if a is in the index of u.
Let u be a vertex containing a in its index. The extremities of u on a are the points of the row a on which Pu stops or bends. Since Pu has at most two bends, Pu has exactly two extremities on a and the subpath of Pu on row a is the interval of a between these two extremities.
The a-interval of u, denoted by Pua, is the interval between the two extremities of u on a. Note that since the index of u contains a, Pua contains at least one edge.
Let α≤β be two points of a.
The path Puaintersects non-trivially[α,β] if Pua∩[α,β] is not empty or reduced to a single point. The path Puaweakly contains [α,β] if [α,β] is contained in Pua.
3.1 Typed intervals
Knowing that Pua=[α,β] is not enough to understand the structure of Pu. Indeed whether Pu stops at α, or bends (upwards or downwards) at α, affects the neighborhood of u in the graph. To catch this difference we introduce typed intervals that contain information on the “possible bends” on the extremities of the interval.
We define three types namely the empty type , the d-type and the u-type . A typed point (on row a) is a pair x,α where x is a type and α is the point at the intersection of row a and column α.
A typed interval (for row a) is a pair of typed points (x,α) and (y,β) (on row a) with α≤β denoted by [xα,yβ].
Informally, a typed interval is an interval [α,β] and indications on the structure of the bends on the extremities. A typed interval t is proper if α=β or if α=β, x=y, and x∈{\leavevmodeto4.87pt\vboxto10.45pt\pgfpicture\makeatletter\lower-1.97998ptto0.0pt\pgfsys@beginscope\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@setlinewidth0.4pt\pgfsys@invoke\nullfont\pgfsys@beginscope\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscopeto0.0pt\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@moveto1.97998pt0.0pt\pgfsys@curveto1.97998pt1.09352pt1.09352pt1.97998pt0.0pt1.97998pt\pgfsys@curveto-1.09352pt1.97998pt-1.97998pt1.09352pt-1.97998pt0.0pt\pgfsys@curveto-1.97998pt-1.09352pt-1.09352pt-1.97998pt0.0pt-1.97998pt\pgfsys@curveto1.09352pt-1.97998pt1.97998pt-1.09352pt1.97998pt0.0pt\pgfsys@closepath\pgfsys@moveto0.0pt0.0pt\pgfsys@fill\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt7.9676pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@setlinewidth0.8pt\pgfsys@invoke\pgfsys@moveto0.0pt1.98018pt\pgfsys@lineto0.0pt6.55835pt\pgfsys@stroke\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm0.01.0-1.00.00.0pt6.55835pt\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.02.39027pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\pgfsys@discardpath\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\lxSVG@closescope\endpgfpicture,\leavevmodeto4.87pt\vboxto10.45pt\pgfpicture\makeatletter\lower-8.4676ptto0.0pt\pgfsys@beginscope\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@setlinewidth0.4pt\pgfsys@invoke\nullfont\pgfsys@beginscope\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscopeto0.0pt\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@moveto1.97998pt0.0pt\pgfsys@curveto1.97998pt1.09352pt1.09352pt1.97998pt0.0pt1.97998pt\pgfsys@curveto-1.09352pt1.97998pt-1.97998pt1.09352pt-1.97998pt0.0pt\pgfsys@curveto-1.97998pt-1.09352pt-1.09352pt-1.97998pt0.0pt-1.97998pt\pgfsys@curveto1.09352pt-1.97998pt1.97998pt-1.09352pt1.97998pt0.0pt\pgfsys@closepath\pgfsys@moveto0.0pt0.0pt\pgfsys@fill\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt-7.9676pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@setlinewidth0.8pt\pgfsys@invoke\pgfsys@moveto0.0pt-1.98018pt\pgfsys@lineto0.0pt-6.55835pt\pgfsys@stroke\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm0.0-1.01.00.00.0pt-6.55835pt\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.02.39027pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\pgfsys@discardpath\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\lxSVG@closescope\endpgfpicture}.
Let t=[xα,yβ] and t′=[x′α′,y′β′] be two typed intervals on a row a. Denote by zγ one of the endpoints of t′. We say that t is coherent with the endpoint zγ of t′ if one of the following holds: (i) γ is included in the open interval (α,β), or (ii) z=\leavevmodeto4.87pt\vboxto3.96pt\pgfpicture\makeatletter\lower-1.97998ptto0.0pt\pgfsys@beginscope\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@setlinewidth0.4pt\pgfsys@invoke\nullfont\pgfsys@beginscope\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscopeto0.0pt\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@moveto1.97998pt0.0pt\pgfsys@curveto1.97998pt1.09352pt1.09352pt1.97998pt0.0pt1.97998pt\pgfsys@curveto-1.09352pt1.97998pt-1.97998pt1.09352pt-1.97998pt0.0pt\pgfsys@curveto-1.97998pt-1.09352pt-1.09352pt-1.97998pt0.0pt-1.97998pt\pgfsys@curveto1.09352pt-1.97998pt1.97998pt-1.09352pt1.97998pt0.0pt\pgfsys@closepath\pgfsys@moveto0.0pt0.0pt\pgfsys@fill\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.02.39027pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\pgfsys@discardpath\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\lxSVG@closescope\endpgfpicture, and [α,β] contains the edge of [α′,β′] adjacent to γ, or (iii) z=\leavevmodeto4.87pt\vboxto3.96pt\pgfpicture\makeatletter\lower-1.97998ptto0.0pt\pgfsys@beginscope\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@setlinewidth0.4pt\pgfsys@invoke\nullfont\pgfsys@beginscope\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscopeto0.0pt\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@moveto1.97998pt0.0pt\pgfsys@curveto1.97998pt1.09352pt1.09352pt1.97998pt0.0pt1.97998pt\pgfsys@curveto-1.09352pt1.97998pt-1.97998pt1.09352pt-1.97998pt0.0pt\pgfsys@curveto-1.97998pt-1.09352pt-1.09352pt-1.97998pt0.0pt-1.97998pt\pgfsys@curveto1.09352pt-1.97998pt1.97998pt-1.09352pt1.97998pt0.0pt\pgfsys@closepath\pgfsys@moveto0.0pt0.0pt\pgfsys@fill\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.02.39027pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\pgfsys@discardpath\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\lxSVG@closescope\endpgfpicture, and zγ∈{xα,yβ}.
We can remark in particular that if t is coherent with an endpoint zγ, then γ is in the closed interval [α,β].
The typed interval tcontainst′ if [α′,β′]⊂[α,β], and t is coherent with both endpoints of t′.
The typed interval tintersectst′ if [α,β] intersects non trivially [α′,β′] (i.e. the intersection contains at least one grid-edge), or t is coherent with an endpoint of t′, or t′ is coherent with an endpoint of t. Note that, if t′ contains t then in particular it intersects t.
Let u be a vertex containing a in its index. The t-projection of u on a is the typed interval [xα,yβ] where α,β are the extremities of Pua and the type of an extremity γ∈{α,β} is if Pu stops at γ and (resp. ) if Pua bends downwards (resp. upwards) at γ. Note that this typed interval is proper since it contains at least one edge.
The path Pucontains (resp. intersects) a typed interval t (on a) if the t-projection of u on a contains t (resp. intersects t). By abuse of notation we say that u contains or intersects t. Note that by definition, the path Pu contains the t-projection of u on a.
Moreover if a vertex u contains a typed interval t=[xα,yβ], then the path Pu weakly contains [α,β]. If u intersects t, then the path Pu intersects the segment [α,β] (possibly on a single point).
The following simple lemma motivates the introduction of typed intervals.
Lemma 1**.**
Let G be a B2-EPG graph, let u,v be two vertices whose index contain a, and t be a proper typed interval of a. If u contains t and v intersects t, then u and v are adjacent.
Proof.
Let tu=[xα,yβ] and tv=[x′α′,y′β′] be the t-projections of u and v respectively.
Let t=[xtαt,ytβt] be the typed interval such that u contains t, and v intersects t. Then [αt,βt]⊆[α,β], and [αt,βt]∩[α′,β′]=∅. This implies in particular that the intersection of [α,β] and [α′,β′] is not empty.
If this intersection contains a grid edge e, then the paths Pu and Pv both contain this edge, and u,v are adjacent in G.
If the intersection is reduced to a single point, then, since we have α=β and α′=β′, we can assume w.l.o.g. that the right endpoint of tv coincide with the left endpoint of tu, i.e. β′=α. By assumption on u, we know that α≤αt. Additionally, since [αt,βt]∩[α′,β′]=∅, we must have αt=α. Then either tv is coherent with the endpoint xα of t, or t is coherent with the endpoint yβ′ of tv. We will assume the former, the other case can be treated exactly the same way. Since [α′,β′] does not contain the edge at the left of αt, we have necessarily y′=\leavevmodeto4.87pt\vboxto3.96pt\pgfpicture\makeatletter\lower-1.97998ptto0.0pt\pgfsys@beginscope\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@setlinewidth0.4pt\pgfsys@invoke\nullfont\pgfsys@beginscope\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscopeto0.0pt\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@moveto1.97998pt0.0pt\pgfsys@curveto1.97998pt1.09352pt1.09352pt1.97998pt0.0pt1.97998pt\pgfsys@curveto-1.09352pt1.97998pt-1.97998pt1.09352pt-1.97998pt0.0pt\pgfsys@curveto-1.97998pt-1.09352pt-1.09352pt-1.97998pt0.0pt-1.97998pt\pgfsys@curveto1.09352pt-1.97998pt1.97998pt-1.09352pt1.97998pt0.0pt\pgfsys@closepath\pgfsys@moveto0.0pt0.0pt\pgfsys@fill\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.02.39027pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\pgfsys@discardpath\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\lxSVG@closescope\endpgfpicture. This implies that y′=xt, and xt∈{\leavevmodeto4.87pt\vboxto10.45pt\pgfpicture\makeatletter\lower-1.97998ptto0.0pt\pgfsys@beginscope\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@setlinewidth0.4pt\pgfsys@invoke\nullfont\pgfsys@beginscope\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscopeto0.0pt\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@moveto1.97998pt0.0pt\pgfsys@curveto1.97998pt1.09352pt1.09352pt1.97998pt0.0pt1.97998pt\pgfsys@curveto-1.09352pt1.97998pt-1.97998pt1.09352pt-1.97998pt0.0pt\pgfsys@curveto-1.97998pt-1.09352pt-1.09352pt-1.97998pt0.0pt-1.97998pt\pgfsys@curveto1.09352pt-1.97998pt1.97998pt-1.09352pt1.97998pt0.0pt\pgfsys@closepath\pgfsys@moveto0.0pt0.0pt\pgfsys@fill\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt7.9676pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@setlinewidth0.8pt\pgfsys@invoke\pgfsys@moveto0.0pt1.98018pt\pgfsys@lineto0.0pt6.55835pt\pgfsys@stroke\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm0.01.0-1.00.00.0pt6.55835pt\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.02.39027pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\pgfsys@discardpath\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\lxSVG@closescope\endpgfpicture,\leavevmodeto4.87pt\vboxto10.45pt\pgfpicture\makeatletter\lower-8.4676ptto0.0pt\pgfsys@beginscope\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@setlinewidth0.4pt\pgfsys@invoke\nullfont\pgfsys@beginscope\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscopeto0.0pt\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@moveto1.97998pt0.0pt\pgfsys@curveto1.97998pt1.09352pt1.09352pt1.97998pt0.0pt1.97998pt\pgfsys@curveto-1.09352pt1.97998pt-1.97998pt1.09352pt-1.97998pt0.0pt\pgfsys@curveto-1.97998pt-1.09352pt-1.09352pt-1.97998pt0.0pt-1.97998pt\pgfsys@curveto1.09352pt-1.97998pt1.97998pt-1.09352pt1.97998pt0.0pt\pgfsys@closepath\pgfsys@moveto0.0pt0.0pt\pgfsys@fill\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt-7.9676pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@setlinewidth0.8pt\pgfsys@invoke\pgfsys@moveto0.0pt-1.98018pt\pgfsys@lineto0.0pt-6.55835pt\pgfsys@stroke\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm0.0-1.01.00.00.0pt-6.55835pt\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.02.39027pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\pgfsys@discardpath\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\lxSVG@closescope\endpgfpicture}.
Additionally we know that tu is coherent with the endpoint xtαt of t. Consequently, we have x=xt=y′, which implies that both Pu and Pv bend at α in the same direction, and thus u,v are adjacent in G.
∎
Lemma 2**.**
Let G be a B2-EPG graph. If the t-projections of u and v on a intersect, then uv is an edge of G.
Moreover if u and v are two vertices containing a in their index and have no other row in common, then uv is an edge of G if and only if the t-projections of u and v on a intersect.
Proof.
Let u and v be two vertices containing a in their index. The first part of the statement is just a corollary of Lemma 1 since v intersects the t-projection of u on a.
Assume that there is no other row b contained in the index of both u and v. And suppose moreover that the t-projections of u and v on a do not intersect. Suppose by contradiction that u and v are adjacent in G. The two vertices cannot share a common edge on row a, otherwise their projections would intersect. By assumption they cannot share an edge on another row. Consequently, they must have a common edge e on a column, and let α this column. By symmetry, we can assume that e is below the row a. Since the paths Pu and Pv have at most two bends, both path must bend downwards at the intersection of row a and column α, to intersect the edge e. However, this implies that the t-projections of u and v on a intersect, a contradiction.
∎
3.2 Projection graphs
Let Y be the subset of vertices of G such that all the vertices of Y contain a in their index. The projection graph of Y on a is the graph on vertex set Y such that there is an edge between u and v if and only if the t-projections of u and v on a intersect.
Note that the projection of Y is not necessarily an interval graph since it can contain an induced C4 (see Fig. 3). We say that a set of vertices Y is a clique on a if the t-projection of Y on a is a clique.
Lemma 2, ensures that a clique on a is indeed a clique in the graph G.
In the very simple case where the representation uses only two rows a and b, we have the following lemma:
Lemma 3**.**
Let G be a B2-EPG graph and Gab be the subset of vertices with index {a,b}.
Then Gab induces a 2-track interval graph.
Proof.
Let us first prove that the projection graph of Gab on a is an interval graph. Let u be a vertex of Gab and x and y be the endpoints of Pua. The vertex u bends either on x or on y (since its index is {a,b} it has only one vertical segment). We associate to u the segment su=(x,y] if u bends on y, and [x,y) if it bends on x. Then the t-projection of u and v intersect on a if and only if the intervals su and sv intersect.
Indeed, if both u and v have a bend at the same column α, then they both contain the interval between row a and b on column α because they have the same index {a,b}. Then the projection graph of Gab on a is an interval graph.
By Lemma 2, any edge on the projection on a or b is also an edge of G. Conversely, if there is an edge between u and v then:
•
either their a-segments (resp. b segments) intersect on at least one edge, and there is an edge in the projection graph of Gab on a (resp. b),
•
or they share the same column. Then since they bend on the same point of the grid and on the same direction, there is an edge between u and v in the projection graphs of Gab on both a and b.
So there is an edge between u and v if and only if their t-intervals intersect on a or intersect on b. Since the t-projections of Gab on both a and b induce interval graphs, the graph Gab is a 2-track interval graph.
∎
Let us end this section with two lemmas that will be widely used all along the paper.
Lemma 4**.**
Let G be a B2-EPG graph and Y be a subset of vertices whose index contain a. Suppose that the projection of Y on a is a clique. Then there is a proper typed interval t such that:
•
all vertices of Y contain t,
•
if u is a vertex with index {a} or {a,c} where c is not in the index of any vertex of Y, then u is complete to Y if and only if u intersects t.
Proof.
Let α be the rightmost left extremity of an a-interval of Y, and β be the leftmost right extremity of an a-interval of Y. Since the projection of Y on a is a clique, α≤β. Let Yα be the set of vertices of Y whose a-segment have left extremity α, and Yβ be the set of vertices of Y whose a-segment have right extremity β.
We define the typed interval t=[xα,yβ] where x is equal to (resp. ) if all the vertices of Yα bend upwards (resp. downwards) at α, and is equal to otherwise. Similarly, y is equal to (resp. ) if all the vertices of Yβ bend upwards (resp. downwards) at α, and is equal to otherwise. Let us prove that t satisfies the conclusion of the lemma.
One can easily check that, by construction, all the vertices of Y contain the typed interval t. Indeed [α,β] is contained in all the intervals Pva for v∈Y by definition of α and β.
Let us prove now by contradiction that the typed interval t is proper. If α=β then t is proper, so we can suppose that α=β. Now assume that the types x and y are distinct or equal to . Up to symmetry, we can assume that x=\leavevmodeto4.87pt\vboxto10.45pt\pgfpicture\makeatletter\lower-1.97998ptto0.0pt\pgfsys@beginscope\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@setlinewidth0.4pt\pgfsys@invoke\nullfont\pgfsys@beginscope\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscopeto0.0pt\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@moveto1.97998pt0.0pt\pgfsys@curveto1.97998pt1.09352pt1.09352pt1.97998pt0.0pt1.97998pt\pgfsys@curveto-1.09352pt1.97998pt-1.97998pt1.09352pt-1.97998pt0.0pt\pgfsys@curveto-1.97998pt-1.09352pt-1.09352pt-1.97998pt0.0pt-1.97998pt\pgfsys@curveto1.09352pt-1.97998pt1.97998pt-1.09352pt1.97998pt0.0pt\pgfsys@closepath\pgfsys@moveto0.0pt0.0pt\pgfsys@fill\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt7.9676pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@setlinewidth0.8pt\pgfsys@invoke\pgfsys@moveto0.0pt1.98018pt\pgfsys@lineto0.0pt6.55835pt\pgfsys@stroke\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm0.01.0-1.00.00.0pt6.55835pt\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.02.39027pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\pgfsys@discardpath\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\lxSVG@closescope\endpgfpicture and y=\leavevmodeto4.87pt\vboxto10.45pt\pgfpicture\makeatletter\lower-8.4676ptto0.0pt\pgfsys@beginscope\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@setlinewidth0.4pt\pgfsys@invoke\nullfont\pgfsys@beginscope\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscopeto0.0pt\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@moveto1.97998pt0.0pt\pgfsys@curveto1.97998pt1.09352pt1.09352pt1.97998pt0.0pt1.97998pt\pgfsys@curveto-1.09352pt1.97998pt-1.97998pt1.09352pt-1.97998pt0.0pt\pgfsys@curveto-1.97998pt-1.09352pt-1.09352pt-1.97998pt0.0pt-1.97998pt\pgfsys@curveto1.09352pt-1.97998pt1.97998pt-1.09352pt1.97998pt0.0pt\pgfsys@closepath\pgfsys@moveto0.0pt0.0pt\pgfsys@fill\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt-7.9676pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@setlinewidth0.8pt\pgfsys@invoke\pgfsys@moveto0.0pt-1.98018pt\pgfsys@lineto0.0pt-6.55835pt\pgfsys@stroke\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm0.0-1.01.00.00.0pt-6.55835pt\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.02.39027pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\pgfsys@discardpath\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\lxSVG@closescope\endpgfpicture. Consequently, there exists a vertex v1∈Y such that Pv1a has left extremity α and either starts on α or bends downwards on α. Similarly, there exists a vertex v2∈Y such that Pv2a has right extremity β=α and either ends on α or bends upwards on α. But then the t-projection of v1 and v2 do not intersect, a contradiction since the t-projection of Y on a is a clique.
Let us finally prove the second point. Suppose that u intersects t, then for all y∈Y, y contains t, and by Lemma 2u and y are adjacent in G. Assume now that u does not intersect t. Let us prove that there exists y∈Y that is not incident to u.
Either Pua=[α′,β′] does not intersect [α,β] or it intersects it on exactly one vertex. We moreover know that if α=β then Pua does not contain the edge at the left and at the right of α (otherwise u would intersect t). So, up to symmetry, we can assume that β′≤α. If β′<α then let v be a vertex such that Pva has leftmost extremity α (such a vertex exists by definition of α). The projections of u and v on a do not intersect and Lemma 2 ensures that u is not adjacent to v.
Assume now that Pua intersects [α,β] on a single point. Since Pua contains at least one edge, this point is either α or β, α say. Let xu be the type of β′. Since u does not intersect t, this means that either xu=x or xu=x and xu=\leavevmodeto4.87pt\vboxto3.96pt\pgfpicture\makeatletter\lower-1.97998ptto0.0pt\pgfsys@beginscope\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@setlinewidth0.4pt\pgfsys@invoke\nullfont\pgfsys@beginscope\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscopeto0.0pt\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@moveto1.97998pt0.0pt\pgfsys@curveto1.97998pt1.09352pt1.09352pt1.97998pt0.0pt1.97998pt\pgfsys@curveto-1.09352pt1.97998pt-1.97998pt1.09352pt-1.97998pt0.0pt\pgfsys@curveto-1.97998pt-1.09352pt-1.09352pt-1.97998pt0.0pt-1.97998pt\pgfsys@curveto1.09352pt-1.97998pt1.97998pt-1.09352pt1.97998pt0.0pt\pgfsys@closepath\pgfsys@moveto0.0pt0.0pt\pgfsys@fill\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.02.39027pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\pgfsys@discardpath\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\lxSVG@closescope\endpgfpicture. Up to symmetry, we can assume xu=\leavevmodeto4.87pt\vboxto10.45pt\pgfpicture\makeatletter\lower-1.97998ptto0.0pt\pgfsys@beginscope\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@setlinewidth0.4pt\pgfsys@invoke\nullfont\pgfsys@beginscope\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscopeto0.0pt\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@moveto1.97998pt0.0pt\pgfsys@curveto1.97998pt1.09352pt1.09352pt1.97998pt0.0pt1.97998pt\pgfsys@curveto-1.09352pt1.97998pt-1.97998pt1.09352pt-1.97998pt0.0pt\pgfsys@curveto-1.97998pt-1.09352pt-1.09352pt-1.97998pt0.0pt-1.97998pt\pgfsys@curveto1.09352pt-1.97998pt1.97998pt-1.09352pt1.97998pt0.0pt\pgfsys@closepath\pgfsys@moveto0.0pt0.0pt\pgfsys@fill\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt7.9676pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@setlinewidth0.8pt\pgfsys@invoke\pgfsys@moveto0.0pt1.98018pt\pgfsys@lineto0.0pt6.55835pt\pgfsys@stroke\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm0.01.0-1.00.00.0pt6.55835pt\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.02.39027pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\pgfsys@discardpath\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\lxSVG@closescope\endpgfpicture and x=\leavevmodeto4.87pt\vboxto10.45pt\pgfpicture\makeatletter\lower-8.4676ptto0.0pt\pgfsys@beginscope\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@setlinewidth0.4pt\pgfsys@invoke\nullfont\pgfsys@beginscope\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscopeto0.0pt\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@moveto1.97998pt0.0pt\pgfsys@curveto1.97998pt1.09352pt1.09352pt1.97998pt0.0pt1.97998pt\pgfsys@curveto-1.09352pt1.97998pt-1.97998pt1.09352pt-1.97998pt0.0pt\pgfsys@curveto-1.97998pt-1.09352pt-1.09352pt-1.97998pt0.0pt-1.97998pt\pgfsys@curveto1.09352pt-1.97998pt1.97998pt-1.09352pt1.97998pt0.0pt\pgfsys@closepath\pgfsys@moveto0.0pt0.0pt\pgfsys@fill\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt-7.9676pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@setlinewidth0.8pt\pgfsys@invoke\pgfsys@moveto0.0pt-1.98018pt\pgfsys@lineto0.0pt-6.55835pt\pgfsys@stroke\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm0.0-1.01.00.00.0pt-6.55835pt\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.02.39027pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\pgfsys@discardpath\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\lxSVG@closescope\endpgfpicture. So there exists v∈Y such that Pva has a left extremity at α and Pv either bends upwards at α or has no bend at α. Since xu=\leavevmodeto4.87pt\vboxto10.45pt\pgfpicture\makeatletter\lower-1.97998ptto0.0pt\pgfsys@beginscope\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@setlinewidth0.4pt\pgfsys@invoke\nullfont\pgfsys@beginscope\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscopeto0.0pt\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@moveto1.97998pt0.0pt\pgfsys@curveto1.97998pt1.09352pt1.09352pt1.97998pt0.0pt1.97998pt\pgfsys@curveto-1.09352pt1.97998pt-1.97998pt1.09352pt-1.97998pt0.0pt\pgfsys@curveto-1.97998pt-1.09352pt-1.09352pt-1.97998pt0.0pt-1.97998pt\pgfsys@curveto1.09352pt-1.97998pt1.97998pt-1.09352pt1.97998pt0.0pt\pgfsys@closepath\pgfsys@moveto0.0pt0.0pt\pgfsys@fill\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt7.9676pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@setlinewidth0.8pt\pgfsys@invoke\pgfsys@moveto0.0pt1.98018pt\pgfsys@lineto0.0pt6.55835pt\pgfsys@stroke\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm0.01.0-1.00.00.0pt6.55835pt\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.02.39027pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\pgfsys@discardpath\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\lxSVG@closescope\endpgfpicture, Pua has right extremity α and either bends downwards at α or has no bend at α. So the projections of u and v on a does not intersect. By Lemma 1, u and v are not adjacent in G.
∎
Lemma 5**.**
Let G be a B2-EPG graph and Y be a subset of vertices with index {a,b}. Suppose that the projection of Y on a is not clique. Then there is a proper typed interval t such that:
•
All vertices of Y intersect t,
•
Let u be a vertex with index {a} or {a,c} where c=a,b. Then u is complete to Y if and only if u contains t.
Proof.
Let β be the rightmost left extremity of an a-interval of Y, and α be the leftmost right extremity of an a-interval of Y. Since the projection of Y on a is not a clique, α≤β.
Let Yα be the subset of vertices of Y whose a-segment have right extremity α, and Yβ be the subset of vertices of Y with left extremity β. We consider the typed interval t given by t=[xα′,yβ′] where:
•
x is equal to (resp. ) if all vertices of Yα bend upwards (resp. downwards) at α, and is equal to otherwise,
•
similarly, y is equal to (resp. ) if all vertices of Yβ bend upwards (resp. downwards) at α, and is equal to otherwise,
•
if x=\leavevmodeto4.87pt\vboxto3.96pt\pgfpicture\makeatletter\lower-1.97998ptto0.0pt\pgfsys@beginscope\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@setlinewidth0.4pt\pgfsys@invoke\nullfont\pgfsys@beginscope\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscopeto0.0pt\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@moveto1.97998pt0.0pt\pgfsys@curveto1.97998pt1.09352pt1.09352pt1.97998pt0.0pt1.97998pt\pgfsys@curveto-1.09352pt1.97998pt-1.97998pt1.09352pt-1.97998pt0.0pt\pgfsys@curveto-1.97998pt-1.09352pt-1.09352pt-1.97998pt0.0pt-1.97998pt\pgfsys@curveto1.09352pt-1.97998pt1.97998pt-1.09352pt1.97998pt0.0pt\pgfsys@closepath\pgfsys@moveto0.0pt0.0pt\pgfsys@fill\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.02.39027pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\pgfsys@discardpath\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\lxSVG@closescope\endpgfpicture then α′=α, otherwise α′=α−1,
•
if y=\leavevmodeto4.87pt\vboxto3.96pt\pgfpicture\makeatletter\lower-1.97998ptto0.0pt\pgfsys@beginscope\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@setlinewidth0.4pt\pgfsys@invoke\nullfont\pgfsys@beginscope\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscopeto0.0pt\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@moveto1.97998pt0.0pt\pgfsys@curveto1.97998pt1.09352pt1.09352pt1.97998pt0.0pt1.97998pt\pgfsys@curveto-1.09352pt1.97998pt-1.97998pt1.09352pt-1.97998pt0.0pt\pgfsys@curveto-1.97998pt-1.09352pt-1.09352pt-1.97998pt0.0pt-1.97998pt\pgfsys@curveto1.09352pt-1.97998pt1.97998pt-1.09352pt1.97998pt0.0pt\pgfsys@closepath\pgfsys@moveto0.0pt0.0pt\pgfsys@fill\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.02.39027pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\pgfsys@discardpath\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\lxSVG@closescope\endpgfpicture then β′=β, otherwise β′=β+1.
Let us prove that t is a proper typed interval. We can assume w.l.o.g. that a is below b. If α′=β′ then [α′,β′] is non reduced to a single point and then t is proper. So we can assume that α′=β′. In the construction, if one of x or y is equal to , then α′=β′ and then t is proper. Additionally, since all vertices have index {a,b}, and a is below b, all vertices bend upwards on row a. Consequently, x and y cannot be equal to . If none of them is , then they are both , and again t is proper.
We will first prove that every vertex of Y intersects t. Let v be a vertex of Yα, then either α′=α−1 and then Pva contains the edge [α−1,α] and thus v intersects t, or α′=α. In that case, x is equal to (resp. ) if all the vertices of Yα bends upwards (resp. downwards) on α. But then the t-projection of v has a right endpoint with extremity α and type (resp. ), and then by definition, the t-projection of v is coherent with the endpoint xα of t, and v intersects t. A similar proof holds to show that t-projections of vertices of Yβ intersect t. Now let v∈Y∖(Yα∪Yβ). The left extremity of v is before α and its right extremity is after β. Let αv and βv be the left and right extremities of Pva. They satisfy αv≤α and βv≤β. If α′=α, then α is contained in the open interval (αv,βv), and the t-projection of v on a is coherent with the extremity xα of t, and by consequence v intersects t. If α′=α−1, then the t-projection of v weakly contains [α′,β′], and this interval is not reduced to a single point. Consequently v intersects t.
Let us now prove the second point. Let u be a vertex such that the index of u contains a and not b. If u contains t, then for any y∈Y, y intersects t, and by Lemma 2u and y are adjacent in G.
Assume now that u does not contain t. We will show that there is a y∈Y such that u and y are not adjacent in G. By Lemma 1, it suffices to show that there exists a vertex v such that the t-projections of u and v on a do not intersect. First suppose that Pu does not weakly contain [α′,β′]. We can assume w.l.o.g. that Pu does not contain α′. Let αu and βu be the left and right endpoints of Pua. If βu<α′, then there is a vertex v∈Yβ such that the left endpoint of Pva is β, and αu<α′≤α≤β. Consequently the t-projection of u and v do not intersect. Otherwise, we can assume αu>α′. If α′=α, then there is a vertex v∈Yα such that the right endpoint of Pva is α. Then, since α=α′<αu, the t-projection of u and v do not intersect, and by Lemma 1, u and v do not intersect. If α′=α−1, then there is a vertex v such that α is the right endpoint of Pva, and Pv stops at α. Since α′<αu, we have α≤αu. This implies that [αu,βu] does not contain the edge at the left of α, which implies that the t-projection of u is not coherent with the right extremity of the t-projection of v. The same arguments show that the t-projection of v on a is not coherent with the endpoints of the t-projection of u, and thus the t-projections of u and v do not intersect.
Suppose now that [αu,βu] weakly contains [α′,β′]. Let tu be the t-projection of u. Since u does not contain t, tu is not coherent with one of its endpoints, say α′ up to symmetry. Then we have α′∈{αu,βu}. Suppose by contradiction that x=\leavevmodeto4.87pt\vboxto3.96pt\pgfpicture\makeatletter\lower-1.97998ptto0.0pt\pgfsys@beginscope\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@setlinewidth0.4pt\pgfsys@invoke\nullfont\pgfsys@beginscope\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscopeto0.0pt\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@moveto1.97998pt0.0pt\pgfsys@curveto1.97998pt1.09352pt1.09352pt1.97998pt0.0pt1.97998pt\pgfsys@curveto-1.09352pt1.97998pt-1.97998pt1.09352pt-1.97998pt0.0pt\pgfsys@curveto-1.97998pt-1.09352pt-1.09352pt-1.97998pt0.0pt-1.97998pt\pgfsys@curveto1.09352pt-1.97998pt1.97998pt-1.09352pt1.97998pt0.0pt\pgfsys@closepath\pgfsys@moveto0.0pt0.0pt\pgfsys@fill\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.02.39027pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\pgfsys@discardpath\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\lxSVG@closescope\endpgfpicture. Then we can’t have α′=βu since otherwise t would not be proper. So necessarily α′=αu, but this implies that tu is coherent with the endpoint α′ since [αu,βu] contains the edge at the left of α′, a contradiction. Since a is below b, we must have x=\leavevmodeto4.87pt\vboxto10.45pt\pgfpicture\makeatletter\lower-1.97998ptto0.0pt\pgfsys@beginscope\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@setlinewidth0.4pt\pgfsys@invoke\nullfont\pgfsys@beginscope\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscopeto0.0pt\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@moveto1.97998pt0.0pt\pgfsys@curveto1.97998pt1.09352pt1.09352pt1.97998pt0.0pt1.97998pt\pgfsys@curveto-1.09352pt1.97998pt-1.97998pt1.09352pt-1.97998pt0.0pt\pgfsys@curveto-1.97998pt-1.09352pt-1.09352pt-1.97998pt0.0pt-1.97998pt\pgfsys@curveto1.09352pt-1.97998pt1.97998pt-1.09352pt1.97998pt0.0pt\pgfsys@closepath\pgfsys@moveto0.0pt0.0pt\pgfsys@fill\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt7.9676pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@setlinewidth0.8pt\pgfsys@invoke\pgfsys@moveto0.0pt1.98018pt\pgfsys@lineto0.0pt6.55835pt\pgfsys@stroke\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm0.01.0-1.00.00.0pt6.55835pt\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.02.39027pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\pgfsys@discardpath\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\lxSVG@closescope\endpgfpicture. If α′=αu, then since tu is not coherent with the endpoint \leavevmodeto4.87pt\vboxto10.45pt\pgfpicture\makeatletter\lower-1.97998ptto0.0pt\pgfsys@beginscope\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@setlinewidth0.4pt\pgfsys@invoke\nullfont\pgfsys@beginscope\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscopeto0.0pt\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@moveto1.97998pt0.0pt\pgfsys@curveto1.97998pt1.09352pt1.09352pt1.97998pt0.0pt1.97998pt\pgfsys@curveto-1.09352pt1.97998pt-1.97998pt1.09352pt-1.97998pt0.0pt\pgfsys@curveto-1.97998pt-1.09352pt-1.09352pt-1.97998pt0.0pt-1.97998pt\pgfsys@curveto1.09352pt-1.97998pt1.97998pt-1.09352pt1.97998pt0.0pt\pgfsys@closepath\pgfsys@moveto0.0pt0.0pt\pgfsys@fill\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt7.9676pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@setlinewidth0.8pt\pgfsys@invoke\pgfsys@moveto0.0pt1.98018pt\pgfsys@lineto0.0pt6.55835pt\pgfsys@stroke\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm0.01.0-1.00.00.0pt6.55835pt\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.02.39027pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\pgfsys@discardpath\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\lxSVG@closescope\endpgfpictureα′ of t, necessarily the right endpoint of tu has type . Then, if v∈Yα, then by construction of t, since x=\leavevmodeto4.87pt\vboxto10.45pt\pgfpicture\makeatletter\lower-1.97998ptto0.0pt\pgfsys@beginscope\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@setlinewidth0.4pt\pgfsys@invoke\nullfont\pgfsys@beginscope\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscopeto0.0pt\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@moveto1.97998pt0.0pt\pgfsys@curveto1.97998pt1.09352pt1.09352pt1.97998pt0.0pt1.97998pt\pgfsys@curveto-1.09352pt1.97998pt-1.97998pt1.09352pt-1.97998pt0.0pt\pgfsys@curveto-1.97998pt-1.09352pt-1.09352pt-1.97998pt0.0pt-1.97998pt\pgfsys@curveto1.09352pt-1.97998pt1.97998pt-1.09352pt1.97998pt0.0pt\pgfsys@closepath\pgfsys@moveto0.0pt0.0pt\pgfsys@fill\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt7.9676pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@setlinewidth0.8pt\pgfsys@invoke\pgfsys@moveto0.0pt1.98018pt\pgfsys@lineto0.0pt6.55835pt\pgfsys@stroke\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm0.01.0-1.00.00.0pt6.55835pt\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.02.39027pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\pgfsys@discardpath\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\lxSVG@closescope\endpgfpicture we have α′=α, and αu is the right endpoint of Pvu. Since Pu does not bend upwards at α, the t-projections of u and v do not intersect. If α′=αu, then α′=β′, and since t is proper, we necessarily have y=\leavevmodeto4.87pt\vboxto10.45pt\pgfpicture\makeatletter\lower-1.97998ptto0.0pt\pgfsys@beginscope\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@setlinewidth0.4pt\pgfsys@invoke\nullfont\pgfsys@beginscope\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscopeto0.0pt\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@moveto1.97998pt0.0pt\pgfsys@curveto1.97998pt1.09352pt1.09352pt1.97998pt0.0pt1.97998pt\pgfsys@curveto-1.09352pt1.97998pt-1.97998pt1.09352pt-1.97998pt0.0pt\pgfsys@curveto-1.97998pt-1.09352pt-1.09352pt-1.97998pt0.0pt-1.97998pt\pgfsys@curveto1.09352pt-1.97998pt1.97998pt-1.09352pt1.97998pt0.0pt\pgfsys@closepath\pgfsys@moveto0.0pt0.0pt\pgfsys@fill\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.00.0pt7.9676pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@setlinewidth0.8pt\pgfsys@invoke\pgfsys@moveto0.0pt1.98018pt\pgfsys@lineto0.0pt6.55835pt\pgfsys@stroke\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm0.01.0-1.00.00.0pt6.55835pt\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@beginscope\pgfsys@invoke\pgfsys@beginscope\pgfsys@invoke\pgfsys@transformcm1.00.00.01.02.39027pt0.0pt\pgfsys@invoke\definecolorpgfstrokecolorrgb0,0,0\pgfsys@color@rgb@stroke000\pgfsys@invoke\pgfsys@color@rgb@fill000\pgfsys@invoke\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\pgfsys@discardpath\pgfsys@invoke\lxSVG@closescope\pgfsys@endscope\hss\lxSVG@closescope\endpgfpicture. A similar argument shows that there exists v∈Yβ whose t-projection does not intersect tu.
∎
4 Maximum clique in B2-EPG graphs
4.1 Graphs with Z-vertices
We start with the case where the graph only contains Z-vertices. We will show in Section 4.2 that it is possible to treat independently Z-vertices and U-vertices. The remaining part of Section 4.1 is devoted to prove the following theorem.
Theorem 6**.**
Let G be a B2-EPG graph with a representation containing only Z-vertices. The size of a maximum clique can be computed in polynomial time.
Note that, up to rotation of the representation of G, this theorem also holds for U-vertices. In other words, the size of a maximum clique can be computed in polynomial time if the graph only contains U-vertices.
The proof of Theorem 6 is divided in three steps. We will first define a notion of good subgraphs of G, and prove that:
•
there is a polynomial number of good subgraphs of G and,
•
a maximum clique of a good graph can be computed in polynomial time,
•
and any maximal clique of G is contained in a good subgraph.
Recall that a clique is maximum if its size is maximum. And it is maximal if it is maximal by inclusion.
The first point is an immediate corollary of the definition of good graphs. The proof of the second point consists in decomposing good graphs into sets on which a maximum clique can be computed efficiently. The proof of the third point, the most complicated, will be divided into several lemmas depending on the structure of the maximal clique we are considering.
An induced subgraph H of G is a good graph if one of the following holds:
(I)
there are two rows a and b, and two proper typed intervals ta and tb on a and b respectively such that H is the subgraph induced by vertices v such that, v contains ta, or v contains tb, or v intersects both ta and tb,
2. (II)
or there are three rows a, b, and c, and three proper typed intervals ta, tb, and tc on a,b,c respectively such that H is the subgraph induced by vertices v such that, either v contains ta, or v contains tb, or v intersects tb and contains tc.
Lemma 7**.**
Let G be a B2-EPG graph.
There are O(n6) good graphs, and a maximum clique of a good graph can be computed in polynomial time.
Proof.
A good graph is defined by two or three typed intervals. At first glance, to define a typed interval we need to choose a row, and then two points on it. So a natural upper bound on the number of typed interval is O(n3). However, we can make a slightly better evaluation. A point of the grid is important if the path of a vertex ends or bends on this point or on a point incident to it. There is a linear number of important points since every path defines a constant number of important points. One can easily notice, given an interval ta on row a, replacing an extremity r of ta by the important point s that is the closest from r on row a does not modify the set of vertices intersecting or complete to ta. Indeed, no path starts, stops or bends on the interval [r,s] on row a.
So we can assume that all the endpoints of typed intervals are important points. This implies that there are at most O(n2) typed intervals. As a consequence, there are O(n4) good graphs of type (I), and O(n6) good graphs of type (II).
Let us now prove that a maximum clique can be computed in polynomial time in a good graph.
•
Let H be a good graph of type (I) defined by two proper typed intervals ta and tb. Let Ha be the subset of vertices containing ta, and Hb be the set of vertices containing tb, and Hab be the other vertices of H (intersecting both ta and tb by definition of H). By Lemma 1, both Ha and Hb are complete to Hab and both Ha and Hb are cliques. Let H1 be the graph induced by Ha∪Hb, and H2 be the graph induced by Hab. Then H is the join of H1 and H2 (i.e. there is an edge between any vertex of H1 and any vertex of H2). So a maximum clique of H is the union of a maximum clique of H1 and a maximum clique of H2. Moreover:
–
Since both Ha and Hb induce cliques, H1 is the complement of a bipartite graph. Computing a maximum clique in H1 is the same as computing a maximal independent set in H1ˉ, the complement graph of H1 which is bipartite.
Additionally, computing a maximum independent set in a bipartite graph can be done in polynomial time. Indeed, a maximum independent set is the complement of a minimum vertex cover. In bipartite graphs, a minimum vertex cover can be computed in polynomial time using for instance Linear Programming.
–
By Lemma 3, H2 is a 2-track interval graph, on which a maximum clique can be computed in polynomial time [8].
Consequently, a maximum clique of both H1 and H2, and then of H, can be computed in polynomial time.
•
Let H be a good graph of type (II) defined by three proper typed intervals ta, tb and tc. Let Ha and Hb be the set of vertices containing ta and tb respectively, and Hbc be the set of vertices intersecting tb and containing tc. By Lemma 1, Ha, Hb, and Hbc are cliques since for each of these sets there is a proper typed interval contained in every vertex of the set. Moreover Hbc is complete to Hb since vertices of Hb contain tb and vertices of Hbc intersect it. Let H1=Ha and H2=Hb∪Hab. Both H1 and H2 induce cliques. So H is the complement of a bipartite graph, and a maximum clique of H can be computed in polynomial time.
∎
The remaining part of Section 4.1 is devoted to prove that any maximal clique of G is contained in a good graph.
Lemma 8**.**
Let G be a B2-EPG graph containing only Z-vertices, and X be a clique of G. Assume that there are two rows a and b such that every horizontal segment of X is included in either a or b, then X is contained in a good graph.
Proof.
By taking two typed intervals ta and tb consisting of the whole rows a and b, the clique X is clearly contained in a good graph of type (I).
∎
We say that a set of vertices Xintersects a column α (resp. a row a) if at least one vertex of X intersects the column α (resp. the row a). If X is a clique of G, and a, b two rows of the grid, we denote by Xab the subset of vertices of X with index {a,b}.
The three following lemmas allow us to prove that all the cliques of a B2-EPG graph are included in a good subgraphs. They use the same kind of techniques. The main idea is, using the tools of Section 3, to find typed intervals which describe well the vertices in a clique X.
Lemma 9**.**
Let G be a B2-EPG graph containing only Z-vertices, and X be a clique of G. If there are two rows a and b such that the projection graphs of Xab on a and b are not cliques, then X is included in a good graph.
Proof.
Let X be a clique satisfying this property for rows a and b. Let Xa be the set of vertices of X∖Xab intersecting row a and not row b, and Xb be the set of vertices of X∖Xab intersecting row b and not row a.
First note that X=Xa∪Xb∪Xab. Otherwise there would exist a vertex w of type (c,d) such that {c,d}∩{a,b}=∅ in X. Since w is complete to Xab, w would intersect all the vertices of Xab on their vertical part. But the projection graph of Xab on a is not a clique, consequently Xab intersects at least two columns. Thus a vertex of Xab does not intersect the unique column of w, a contradiction.
By Lemma 5 applied to Xab on both a and b, there exist two typed intervals ta and tb on rows a and b such that every vertex of Xab intersects both ta and tb, and such that vertices of Xa contain ta and vertices of Xb contain tb. So X is included in a good graph of type (I) defined by ta on a and tb on b.
∎
Lemma 10**.**
Let G be a B2-EPG graph containing only Z-vertices, and X be a clique of G. If there are two rows a and b such that the projection graph of Xab on a is not a clique, then there is a good graph containing X.
Proof.
Let X be a clique satisfying this property for rows a and b. We can assume that the projection graph of Xab on b is a clique since otherwise we can apply Lemma 9. Let Xa be the set of vertices of X∖Xab intersecting row a and not row b, and Xb be the set of vertices of X∖Xab intersecting row b and not row a.
First note that X=Xa∪Xb∪Xab. Otherwise there would exist a vertex w of index {c,d} such that {c,d}∩{a,b}=∅ in X. Since w is complete to Xab, w would intersect all the vertices of Xab on their vertical part. But the projection graph of Xab on a is not a clique, consequently Xab intersects at least two columns. Thus a vertex of Xab does not intersect the unique column of w, a contradiction.
Suppose first that the projection graph of Xb∪Xab on b is a clique. By Lemma 4 applied to Xb on b, there exists a proper typed interval tb on row b such that every vertex of Xb contains tb. By Lemma 5 applied to Xab on a, there exists a proper typed interval ta on row a such that every vertex of Xa contains ta.
So all the vertices of X are contained in the good graph of type (I) defined by ta and tb.
Suppose now that the projection graph of Xb∪Xab on b is not a clique. Then there are two vertices u,v of Xb such that the t-projections of u and v on b do not intersect. By Lemma 1, Pu and Pv intersect another row c, and since the projection graph of Xab on b is a clique, c=a. Since the projection graph of Xbc on b is not a clique, and c=a, we can assume that the projection graph of Xbc on c is a clique since otherwise Lemma 9 can be applied on Xbc. So by Lemma 4 applied to Xbc on c, there exists a typed interval tc contained in every vertex of Xbc. By Lemma 5 applied to Xbc on b (resp. Xab on a), we know that there exists a typed interval tb (resp. ta) satisfying the two conditions of Lemma 5. Now we divide Xb∪Xab into two subclasses: Xbc and Yb=(Xb∪Xab)∖Xbc.
We have X=Yb∪Xbc∪Xa.
Vertices of Xa contain ta. Vertices of Xbc intersect tb and contain tc. Vertices of Yb contain tb. This proves that X is included in the good graph of type (II) defined by ta,tb and tc on respectively rows a,b,c.
∎
We now have all the ingredients we need to prove Theorem 6.
By Lemma 10, we can assume that for all a,b, the projection graphs of Xab on a and b are cliques. As a by-product, if we denote by Xa the set of vertices containing a in their index, then the projection graph of Xa on a induces a clique for every row a. Indeed, suppose by contradiction that there is a row a, and two vertices u,v whose index contains a, such that the t-projections of u and v on a do not intersect. Then by Lemma 1, u and v intersect a common row b=a. But then, the projection graph of Xab on a is not a clique, a contradiction.
Thus by Lemma 4, for any row a such that Xa is not empty, there exists a proper typed interval ta such that the t-projection on a of any vertex of Xa contains ta.
Assume that there are two rows a and b such that Xab intersects at least two columns. By Lemma 8, we can assume that X intersects at least three rows. Let w∈X∖Xab be a vertex using a third row. As in the proof of Lemma 9, since Xab has at least two columns and w is complete to Xab, w has index either {a,c} or {b,c} for c=a,b. Consequently, w contains either ta or tb, which proves that X is contained in a good graph of type (I).
Assume now that for all pair of rows (a,b), all the vertices of Xab pass through the same column. We can assume that X intersects at least three columns, otherwise we could just rotate the representation of G and apply Lemma 8. Let u,v and w be three vertices using three different columns. Let a,b be the index of u. We can assume w.l.o.g. that the index of v is {b,c}. There are two possible cases:
•
w has index {b,d} for some row d. Note that d=a,c since otherwise this would contradict the fact that both Xab and Xbc intersect only one column. If all vertices in X contain b in their index, then they all contain the typed interval tb, and X is contained in a good graph of type (I). Let z be a vertex with z∈X∖Xb. Up to permutations of rows a, c and d, we can assume that the row c is below a and d is below c. Suppose that b is over c. Then, since z must intersect u,v and w, necessarily the index of z is of the form {s1,s2} with s1,s2∈{a,b,d}. Indeed, z can intersect only one of u,v,w on its vertical part. Additionally, the index of z cannot be {c,d} since otherwise z cannot intersect the vertical part of w. (see Fig. 4). So necessarily the index of z contains a. This proves that every vertex of X contains either tb or ta, and as a consequence X is included in a good graph of type (I).
A similar argument shows that if b is below c, then z cannot be of index {a,c}, and the index of z contains d.
•
w does not contain b in its index, then w has necessarily index {a,c} in order to intersect both u and v. If there are two rows, say for example a and b, such that every vertex of X has an index containing either a or b, then every vertex of X contains either ta or tb. This implies that X is contained in a good graph of type (I). Suppose that there are no two rows such that the index of any vertex contains one of the two rows. Suppose w.l.o.g.. that row b is below a, and c below b. There is a vertex zc whose index does not contain a or b. Then necessarily, the index of zc is {c,dc} for a certain row dc. Additionally, zc must intersect the vertex u of index {a,b} on its vertical part. This implies that b is below dc. By a similar argument, there is a vertex za of index {a,da} with da=b,c. Then za must intersect v on its vertical part, and da is below b. In particular, da is different from dc. This implies that za and zc do not have a row or a column in common, and thus do not intersect. Since X is a clique, this case is not possible.
4.2 General B2-EPG graphs
In Section 4.1, we have seen how to compute a maximum clique in a graph containing only Z-vertices. This section is devoted to prove that we can actually separate the graph in order to assume the graph only contains Z-vertices or U-vertices. We start by proving two lemmas showing that the existence of U-vertices puts some constraints on the Z-vertices that can be appear in a clique. We will then use these two lemmas to prove our main theorem.
Lemma 11**.**
Let G be a B2-EPG graph with a representation, and X be a clique of G, then:
•
either there are 3 rows intersecting all the U-vertices of X
•
or there are three columns intersecting all the Z-vertices of X.
Proof.
Let u1,u2,u3, and u4 be four U-vertices of X intersecting pairwise different rows. Let us prove that there are three columns containing every Z-vertex of X.
First assume that there are three columns α, β, γ such that, the set of columns intersected by ui is in {α,β,γ} for every i≤4. Let us prove that these three columns intersect every Z-vertex of X. Assume by contradiction that there exists v in X that does not intersect α, β and γ. Then for every i, Pv shares an edge with Pui on a horizontal segment. Since all the ui have disjoint index, this would imply that v intersects four different rows, a contradiction.
So we can assume that u1,u2,u3,u4 intersect at least four columns. Let α and β be the columns of u1. We can assume w.l.o.g. that u2 intersects the columns α and γ, with γ=α,β. And that u3 intersects a fourth column δ=α,β,γ. So both u3 and u4 must intersect α since they must intersect both u1 and u2. Let τ be the second column intersected by u4. Then any Z-vertex of X intersects one of α,δ,τ. Indeed, suppose by contradiction that a Z-vertex v of X does not intersect one of these columns. Since Pv does not intersect Pu3 and Pu4 on their vertical intervals, it shares an edge with Pu3 and Pu4 on their two horizontal parts. Since u1,u2,u3,u4 have pairwise different index, Pv that intersect the row of u3 and the row of u4, share an edge with Pu1 on the column β and Pu2 on the column γ since v does not intersect column α. However, a Z-vertex intersects a single column, a contradiction.
∎
In Section 3, we have introduced typed intervals. These typed interval defines intervals on a given row. In the following claim, we need two typed of typed interval: horizontal and vertical typed interval. An horizontal typed interval is a typed interval as defined in Section 3. A vertical typed interval is a typed interval of the graph after a rotation, i.e. the graph where rows become columns and columns become rows.
Lemma 12**.**
Let G be a B2-EPG graph with its representation, and X be a clique of G containing only U-vertices with the same index {a}. There exists a set St of at most three typed intervals such that:
•
St* contains exactly one horizontal typed interval, and at most two vertical typed intervals,*
•
every vertex of X contains all the typed intervals of St,
•
a Z-vertex u is complete to X if and only if u intersects one of the typed intervals of St.
Proof.
Since X is a clique of G and X only contains U-vertices of index {a}, Lemma 2 ensures that the projection graph of X on a is a clique. By Lemma 4 applied to X on a, there is a typed interval t such that every vertex of X contains t, and, if u is a vertex containing a in its index, and u is complete to X, then u must intersect t. The typed interval t is the unique horizontal typed interval of St.
Suppose that there is a column α, such that every vertex of X intersects α. Since all the vertices of X intersect the same row a and X is a clique, the projection graph of X on the column α is a clique.
Indeed, since all the vertices of X intersect column α and row a, all of them must bend on the point (a,α). Either they all bend on the same direction on column α, say upwards, and then they all contain the edge of the column α between a and a+1, and the projection graph is a clique. Or, some vertices of X bend upwards and other downwards on (a,α). Since X is a clique, they all come from the same direction on row a and then their t-projections on α pairwise intersect.
By Lemma 4 applied to X on column α, there exists a vertical typed interval tα satisfying both properties of Lemma 4.
Since every U-vertex intersects two columns, there are at most two columns α,β for which every vertex of X intersects these columns. Let St be the set composed of t and the typed intervals tα and tβ if they exist.
Let us prove that St satisfies the conclusion of the lemma. By construction St contains exactly one horizontal typed interval and at most two vertical typed intervals. By definitions of t and tα,tβ, every vertex v of X contains the typed intervals in St. Let us finally show the last point.
Let u be a Z-vertex. If u intersects a typed interval in St, then by Lemma 1, u is complete to X. Conversely, suppose that u is complete to X. If u contains a in its index, then Lemma 4 ensures that u intersects t since vertices of X all have index {a}. Assume now that the index of u does not contain a. So u intersects al the vertices of X on its unique column. Let γ be the unique column intersected by u. All the vertices of X must intersect γ since otherwise u cannot be complete to X. Then γ∈{α,β}, and w.l.o.g., we can assume γ=α. Then Lemma 4 ensures that u intersects tα since the unique column of u is α.
∎
The two previous lemmas are the main ingredients to prove that a maximum clique in B2-EPG graphs can be computed in polynomial time. The idea of the algorithm is, using Lemma 12, to guess some typed intervals contained in the U-vertices of the clique. Lemma 11 ensures that we do not have to guess too many intervals. Once we have guessed these intervals, we are left with a subgraph which is actually the join of two subgraphs, one with only Z-vertices, and another with only U-vertices. Then the maximum clique is obtained by applying Theorem 6 to each of the components.
Theorem 13**.**
Given a B2-EPG graph G with its representation, there is a polynomial time algorithm computing the maximum clique of G.
Proof.
In the rest of this proof, Si will denote a set of typed intervals. A vertex ucontainsSi if u contains all the typed intervals of Si. And uintersectsSi if u intersects one of its typed intervals. Given k of these sets S1,S2,…Sk, we denote by G(S1,S2,…Sk) the subgraph induced by the set of U-vertices containing one of the Si and the set of Z-vertices intersecting all of the Si-s.
Let X be a clique of G. Let us show that there are at most three sets S1,…,Sk with k≤3 such that X is contained in G(S1,…,Sk). Free to rotate the representation by 90°if needed, Lemma 11 ensures that there are at most three rows intersecting all U-vertices. Let us denote by a1,a2,a3 these (at most) three rows. By Lemma 12 applied on each row ai, there exists a set of typed intervals Si such that every U-vertex of X intersecting ai contains Si, and every Z-vertex of X intersects Si. This implies that X is included in G(S1,…,Sk) with k≤3.
Let us now describe the algorithm that computes a maximum clique in G: guess the sets S1,…Sk by trying all possibilities, and then compute the maximum clique of G(S1,…Sk). Reusing the argument in the proof of Lemma 7, we know that there are at most O(n2) typed intervals. Since each set Si is composed of three typed intervals, this give at most O(n6) possibilities. By looking more precisely at the proof of Lemma 12 we can see that the vertical typed intervals share a common endpoint with the horizontal one. This means that actually you only have O(n3) possibilities to look at for a set Si. Now, since we need at most three of these sets, there are at most O(n9) possible choices for the sets S1,…Sk, k≤3.
To complete the proof of the theorem, we only need to prove that computing a maximum clique in a subgraph G(S1,…,Sk) can be done in polynomial time. Fix S1,…Sk sets of typed intervals, and denote H=G(S1,…,Sk). Let HZ (resp. HU) be the subgraph of H induced by the Z-vertices (resp. U-vertices). Then H is the join of HU and HZ. Indeed, let u a U-vertex of H, and v a Z-vertex of H. By construction, there is a set Si such that u contains Si. Since v intersects Si, by Lemma 1u and v are adjacent in H. By Theorem 6, a maximum clique of HU and a maximum clique of HZ can be computed in polynomial time. This implies that a maximum clique of H can be computed in polynomial time.
∎
5 Colorings and χ-boundedness
We denote by χ(G) the chromatic number of G, i.e. the minimum number of colors needed to properly color the graph G. And we denote by ω(G) the maximum size of a clique of G. The following lemma upper bounds the number of edges in a Bk-EPG.
A similar bound on the number of edges was proposed by Gyarfás in [11] for k-interval graphs. We nevertheless give the proof for completeness.
Lemma 14**.**
Let G be a Bk-EPG graph on n vertices. There are at most (k+1)(ω(G)−1)n edges in G.
Proof.
Let G be a Bk-EPG graph, and consider a representation of G. Let q be the maximum number of distinct paths going through one edge of the grid. Then q≤ω(G) since all the paths sharing a common edge of the grid forms a clique of G. Let us prove that G has at most (k+1)(q−1) edges.
The path Pu of u can be decomposed into at most (k+1) intervals where an interval is a maximum subpath of Pu between two bends or between the beginning or the end of Pu and the first or last bend. Each interval is then contained on a single row or on a single column. Note that two intervals of Pu can be included on the same row if k is large enough. If two intervals of Pu on a row intersect, we define replace both intervals with a single interval that is the union of the two intervals. This operation is called a merging.
Given a vertex u, the canonical intervals of u are the intervals of u where we merged all the intervals that have an edge in common.
Let Gi=(Vi,Ei) be the interval graph where the vertices of Gi are the canonical intervals included in the ith row of the representation of G. And there is an edge between two canonical intervals if they intersect non trivially. Note that each path Pu might contribute to several vertices in Gi but all these intervals have to be disjoint intervals are canonical.
Note that the graph Gi defines an interval graph. Similarly we define Gj′ for each column of the representation. We denote by Gs the graph defined as the disjoint union of all the Gis and of all the Gj′s. We claim the following:
Claim 1**.**
∣E(Gs)∣≥∣E(G)∣* and ω(Gs)=q.*
Proof.
Let uv be an edge of G. Then Pu and Pv share an edge and then there is a canonical interval i of Pu and a canonical interval j of Pv such that i and j intersect. We can associate to uv the edge ij. This function from E(G) to E(Gs) is clearly injective and then ∣E(Gs)∣≥∣E(G)∣ .
Assume by contradiction that there is a clique of size more than q in Gi. Then there exists an edge of row i containing at least q+1 canonical intervals. Since there are at most q different vertices of G going through the same edge, two intervals are associated to the same vertex, a contradiction with the fact that the intervals are canonical.
∎
The remaining of the proof consists in evaluating the number of edges in G′. Now the graphs Gi and Gi′ are interval graphs, consequently their number of edges satisfies: ∣E(Gi)∣≤(q−1)∣V(Gi)∣. Since each path is composed of at most (k+1) intervals, we get:
[TABLE]
∎
A graph is k-degenerate if there is an ordering v1,…,vn of the vertices such that for every i, ∣N(vi)∩{vi+1,…,vn}∣≤k. It is straightforward to see that k-degenerate implies (k+1)-colorable. Lemma 14 immediately implies the following:
Corollary 15**.**
Let G be a Bk-EPG graph:
•
The graph G is \Big{(}2(k+1)\omega-1\Big{)}-degenerate.
•
χ(G)≤2(k+1)ω(G).
•
There is a polynomial time 2(k+1)-approximation algorithm for the coloring problem without knowing the representation of G.
•
Every graph of Bk-EPG contains a clique or a stable set of size at least 2(k+1)n.
Proof.
The first three points are immediate corollaries of Lemma 14. Let us only prove the last point. If the graph does not admit a clique of size at least 2(k+1)n, then
[TABLE]
Since a proper coloring is a partition into stable sets, there exists a stable set of size at least 2(k+1)nn=2(k+1)n which concludes the proof.
∎
Bibliography16
The reference list from the paper itself. Each links out to its DOI / PubMed record.
1[1] Liliana Alcón, Flavia Bonomo, Guillermo Durán, Marisa Gutierrez, María Pía Mazzoleni, Bernard Ries, and Mario Valencia-Pabon. On the bend number of circular-arc graphs as edge intersection graphs of paths on a grid. Discrete Applied Mathematics , pages –, 2016.
2[2] Andrei Asinowski and Bernard Ries. Some properties of edge intersection graphs of single-bend paths on a grid. Discrete Mathematics , 312(2):427–440, 2012.
3[3] Bonomo Flavia, Mazzoleni María Pía, and Stein Maya. Clique coloring -EPG graphs. Discrete Mathematics , 340(5):1008–1011, may 2017.
4[4] Marin Bougeret, Stéphane Bessy, Daniel Gonçalves, and Christophe Paul. On Independent Set on B 1 subscript 𝐵 1 B_{1} -EPG Graphs. In Approximation and Online Algorithms - 13th International Workshop, WAOA 2015, Patras, Greece, September 17-18, 2015. Revised Selected Papers , pages 158–169, 2015.
5[5] Kathie Cameron, Steven Chaplick, and Chính T. Hoàng. Edge intersection graphs of -shaped paths in grids. Discrete Applied Mathematics , 210:185–194, 2016. LAGOS’13: Seventh Latin-American Algorithms, Graphs, and Optimization Symposium, Playa del Carmen, México — 2013.
6[6] Elad Cohen, Martin Charles Golumbic, and Bernard Ries. Characterizations of cographs as intersection graphs of paths on a grid. Discrete Applied Mathematics , 178:46–57, 2014.
7[7] Dror Epstein, Martin Charles Golumbic, and Gila Morgenstern. Approximation Algorithms for B 1 subscript 𝐵 1 B_{1} -EPG Graphs. In Algorithms and Data Structures - 13th International Symposium, WADS 2013, London, ON, Canada, August 12-14, 2013. Proceedings , pages 328–340, 2013.
8[8] Mathew C. Francis, Daniel Gonçalves, and Pascal Ochem. The Maximum Clique Problem in Multiple Interval Graphs. Algorithmica , 71(4):812–836, 2015.