1: \documentclass[11pt]{article}
2: %\usepackage{springer1}
3: \usepackage{fullpage}
4: %\usepackage{vmargin}
5: \usepackage{xspace}
6: \usepackage{amsmath}
7: \usepackage{latexsym}
8: \usepackage{amsthm}
9: \usepackage{amssymb}
10: %\usepackage{setspace}
11: \usepackage{url}
12: %\usepackage{subfigure}
13: %\usepackage{graphics}
14: \usepackage{graphicx}
15: \usepackage{booktabs}
16: \usepackage{newalg}
17: \usepackage{epsfig}
18: \usepackage{layout}
19:
20: %\setpapersize{USletter}
21: %\setmargnohfrb{1in}{1in}{1in}{1in}%
22: %{headheight}{headsep}{footheight}{footskip}
23:
24: \begin{document}
25: %\input format
26: %%%%%%%%%%%%%%%%%%%%%%%%%%% theorems, proofs, examples and general assumptions
27: \newtheorem%
28: {theorem}{Theorem}[section]
29: \newtheorem%
30: {corollary}[theorem]{Corollary}
31: \newtheorem%
32: {proposition}[theorem]{Proposition}
33: \newtheorem%
34: {lemma}[theorem]{Lemma}
35:
36: \newtheorem%
37: {exampleAux}[theorem]{Example}
38:
39: \newenvironment%
40: % {example}{\begin{exampleAux}}{\end{exampleAux}}
41: {example}{\begin{exampleAux}\rm}{\qed\end{exampleAux}}
42:
43: \newenvironment%
44: % {example}{\begin{exampleAux}}{\end{exampleAux}}
45: {examplenq}{\begin{exampleAux}\rm}{\end{exampleAux}}
46:
47: \newtheorem%
48: {examplesAux}[theorem]{Examples}
49: \newenvironment%
50: {examples}{\begin{examplesAux}}{\end{examplesAux}}
51:
52: \newtheorem{definition}[theorem]{Definition}
53:
54: \newtheorem%
55: {constructionAux}[theorem]{Construction}
56: \newenvironment%
57: {construction}{\begin{constructionAux}\rm}{\end{constructionAux}}
58:
59: \newcounter{inv}
60:
61: \newenvironment%
62: {invariant}{\begin{list}{INV--\arabic{inv}:}{\usecounter{inv}\setlength{\labelwidth}{2.8cm}\setlength{\leftmargin}{1.9cm}}}{\end{list}}
63: %\setlength{\rightmargin}{\leftmargin}}}{\end{list}}
64:
65: \def\proof{{\sl Proof.\ \ }}
66: \def\proofsketch{{\sl Proof (Sketch).\ \ }}
67:
68: %\newenvironment%
69: % {Proof}{\parindent0pt \proof }{\qed}
70: %\newenvironment%
71: % {Proofwoqed}{\parindent0pt \proof }{}
72:
73: \def\qed{\hfill{\boxit{}}
74: \ifdim\lastskip<\medskipamount \removelastskip\penalty55\medskip\fi}
75: \long\def\boxit#1{\vbox{\hrule\hbox{\vrule\kern3pt
76: \vbox{\kern3pt#1\kern3pt}\kern3pt\vrule}\hrule}}
77:
78: \newenvironment%
79: {genass}%
80: {\medbreak\noindent{\bf General Assumption.\enspace}\it}%
81: {\ifdim\lastskip<\medskipamount \removelastskip\penalty55\medskip\fi}
82:
83:
84: %%%%%%%%%%%%%%%%%%%%%%% Figures
85:
86: \newcommand {\boxfigure}[1]%
87: {\framebox[\textwidth]{%
88: \parbox {0.99\textwidth}
89: {{#1}\vspace {0cm}\hfill}}}
90:
91: \newcommand {\boxfigureone}[1]%
92: {\framebox[\textwidth]{%
93: \parbox {0.90\textwidth}
94: {{#1}\vspace {0cm}\hfill}}}
95:
96: \newcommand{\gefig}[3]% get figure
97: {\begin{figure}[htb]
98: \begin{center}%
99: \mbox{}
100: {\psfig{figure=#1,width=0.60\textwidth}}
101: \mbox{}
102: \end{center}
103: \caption{{#2}\label{#3}}
104: \end{figure}}
105:
106: \newcommand{\hangif}[1]{\raisebox{-1ex}{\hspace{2em}
107: \makebox[1.0em][l]{if}
108: \parbox[t]{320pt}{#1}}}
109:
110:
111: %%%% end of format %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
112:
113:
114:
115: %\input macros
116: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% General Math
117: \def\A{{\cal A}} \def\B{{\cal B}} \def\C{{\cal C}} \def\D{{\cal D}}
118: \def\E{{\cal E}} \def\F{{\cal F}} \def\G{{\cal G}} \def\H{{\cal H}}
119: \def\I{{\cal I}} \def\J{{\cal J}} \def\K{{\cal K}} \def\L{{\cal L}}
120: \def\M{{\cal M}} \def\N{{\cal N}} \def\O{{\cal O}} \def\P{{\cal P}}
121: \def\Q{{\cal Q}} \def\R{{\cal R}} \def\S{{\cal S}} \def\T{{\cal T}}
122: \def\U{{\cal U}} \def\V{{\cal V}} \def\W{{\cal W}} \def\X{{\cal X}}
123: \def\Y{{\cal Y}} \def\Z{{\cal Z}}
124:
125: \newcommand{\dd}[2]{#1_1,\ldots,#1_{#2}} % da da, makes x1,...,xn
126:
127: \newcommand{\set}[1]{\{#1\}}
128: \newcommand{\eset}{\emptyset}
129: \newcommand\bigset[1]{ \Bigl\{ #1 \Bigr\} } % makes the big set { #1 }
130: \newcommand\bigmid{\ \Big|\ }
131:
132: \newcommand{\incl}{\subseteq} % included
133: \newcommand{\incls}{\supseteq} % includes
134:
135: \newcommand{\col}{\colon}
136:
137: \newcommand{\NP}{{\rm NP}} % the complexity class NP
138: \newcommand{\GI}{{\rm GI}} % the complexity calss GI
139: \newcommand{\PIPEETWO}{\Pi^{{\rm P}}_2} % the complexity class PiPeeTwo
140: \newcommand{\SIGPEETWO}{\Sigma^{{\rm P}}_2}
141: % the complexity class SigmaPeeTwo
142: \newcommand{\PSPACE}{{\rm PSPACE}} % complexity class PSPACE
143: %\newcommand{\PTIME}{{\rm P}} % complexity class PTIME
144: \newcommand{\EXPTIME}{{\rm EXPTIME}} % deterministic exponential time
145:
146:
147: \newcommand{\angles}[1]{\langle#1\rangle} % pointed angles
148:
149:
150:
151:
152: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Proofs
153:
154: \newcommand{\OnlyIf}{\lq\lq$\Rightarrow$\rq\rq\ \ } % 1st direction of iff-proof
155: \newcommand{\If}{\lq\lq$\Leftarrow$\rq\rq\ \ } % 2nd direction of iff-proof
156:
157:
158:
159: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Text Processing
160: \newcommand{\quotes}[1]{\lq\lq#1\rq\rq} % makes ``#1''
161: \newcommand{\wrt}{w.r.t.} % with respect to
162: \newcommand{\WLOG}{w.l.o.g.} % without loss of generality
163: \newcommand{\ie}{i.e.} % i.e.
164: \newcommand{\eg}{e.g.} % i.e.
165: \renewcommand{\hom}{homo\-mor\-phism}
166:
167: \newcommand{\eat}[1]{}
168:
169: \newcommand{\comment}[1]{\noindent{\it COMMENT:} {\it #1}}
170:
171:
172: %\input paper-macros
173: \newcommand{\paramP}{\langle\P\rangle}
174: \newcommand{\gcon}{\subset_{\text{\sc is}}}%\sqsubset}
175: \newcommand{\gconeq}{\subseteq_{\text{\sc is}}}%{\sqsubseteq}
176: \newcommand{\PIO}{{\rm PIO}\xspace}
177: \newcommand{\PINC}{{\rm PINC}\xspace}
178: \newcommand{\PTIME}{{\rm PTIME}\xspace}
179:
180: \newcommand{\undpath}[3]{#1\stackrel{#2}{\longleftrightarrow} #3}
181: \newcommand{\dpath}[3]{#1\xrightarrow{#2} #3}
182: \newcommand{\notV}{\overline V}
183: \newcommand{\graphPreceq}{\subseteq}
184: \newcommand{\graphPrec}{\subset}
185: \newcommand{\funTime}[2]{t_{{}_\P}(#1, #2)}
186: \newcommand{\funExtend}[2]{e_{{}_\P}(#1, #2)}
187: \newcommand{\funSize}[2]{s_{{}_\P}(#1, #2)}
188:
189: \newcommand{\funExtendVert}[2]{e'_{{}_\P}(#1, #2)}
190: \newcommand{\funSizeVert}[2]{s'_{{}_\P}(#1, #2)}
191: \renewcommand{\setminus}{-}
192: \newcommand{\cupSub}{\Cup}
193: %\newcommand{\cupSub}{\stackrel{\text{\tiny s}}{\cup}}
194: \newcommand{\alter}[1]{{\it alter}(#1)}
195: \newcommand{\vrank}[2]{{\it rank}(#1,#2)}
196: \newcommand{\gtn}[2]{{>_{{}_{#2}}}(#1)}
197: \newcommand{\ltn}[2]{{<_{{}_{#2}}}(#1)}
198: %\newcommand{\ltn}[2]{N^{<_{{}_{#2}}}(#1)}
199: \newcommand{\gless}[1]{<_{{}_{#1}}}
200: \newcommand{\Peel}[3]{{\sl Peel}(#1,#2,#3)}
201:
202: % \newcommand{\VCS}{{\rm VCS}\xspace}
203: % \newcommand{\IPVCS}{{\rm IP\_VCS}\xspace}
204: % \newcommand{\CHP}{{\rm CHP}\xspace}
205: % \newcommand{\IPCCHP}{{\rm IP\_CCHP}\xspace}
206: % \newcommand{\DAGCCHP}{{\rm DAG\_CCHP}\xspace}
207: % \newcommand{\CRHP}{{\rm CRHP}\xspace}
208: % \newcommand{\ACRHP}{{\rm A\_CRHP}\xspace}
209: % \newcommand{\CCHP}{{\rm CCHP}\xspace}
210:
211: \newcommand{\VCS}{\mbox{\sc VCS}\xspace}
212: \newcommand{\IPVCS}{\mbox{\sc IncPolyVCS}\xspace}
213: \newcommand{\CHP}{\mbox{\sc GenHered}\xspace}
214: \newcommand{\IPCCHP}{\mbox{\sc IncPolyCCHP}\xspace}
215: \newcommand{\IPCRHP}{\mbox{\sc IncPolyCRHP}\xspace}
216: \newcommand{\DAGCCHP}{\mbox{\sc DAG\_CCHP}\xspace}
217: \newcommand{\CRHP}{\mbox{\sc CRHP}\xspace}
218: \newcommand{\DCRHP}{\mbox{\sc DagCRHP}\xspace}
219: \newcommand{\TCCHP}{\mbox{\sc TreeCCHP}\xspace}
220: \newcommand{\OCP}{\mbox{\sc OrderedCP}\xspace}
221: \newcommand{\CCHP}{\mbox{\sc CCHP}\xspace}
222:
223:
224: \newcommand{\bigcard}[1]{\bigl|#1\bigr|}
225: \newcommand{\extend}[3]{{\it Ext}_{#3}(#1,#2)}
226: %\newcommand{\extend}[3]{{#1}^{|{#2},{#3}}}
227: \newcommand{\restrRank}[2]{[#1]_{#2}}
228: \newcommand{\rank}[1]{{\it rank}(#1,\P)}
229: %\newcommand{\restr}[2]{{#1}_{|#2}}
230: %\newcommand{\rest}[2]{\bar{#1}_{|{#2}}}
231: \newcommand{\Trav}[1]{{\it Tr}(#1)}
232: \newcommand{\delV}[2]{#1_{\hat #2}}
233: %\newcommand{\maxSol}[2]{#1^{\rm max}(\inducedSub{#2})}
234: %\newcommand{\sol}[2]{#1(\inducedSub{#2})}
235: \newcommand{\maxSolRank}[3]{{\it MSol}^{#3}(#1,#2)}
236: %\newcommand{\maxSol}[2]{{\it MSol}(#1,#2)}
237: \newcommand{\maxSol}[2]{#1^m(#2)}
238: \newcommand{\maxSolVert}[3]{#1^m(#2;\, #3)}
239: %\newcommand{\sol}[2]{{\it Sol}(#1, #2)}
240: \newcommand{\sol}[2]{#1(#2)}
241: \newcommand{\solRank}[3]{{\it Sol}^{#3}(#1, #2)}
242: %\newcommand{\inducedSub}[1]{[#1]}
243: \newcommand{\inducedSub}[1]{2^{#1}}
244: \newcommand{\layer}[2]{{\it Layer}(#1,#2)}
245: %\newcommand{\emptyGraph}{\emptyset_g}
246: %\newcommand{\emptyGraph}{G_\emptyset}
247: \newcommand{\emptyGraph}{O_0}
248: \newcommand{\prop}[1]{{\sf ``#1''}}
249: \newcommand{\plusNode}{\cup} %{\uplus}
250: \newcommand{\plusNodeG}[1]{\cup_{{}_{#1}}} %{\uplus_{{}_{#1}}}
251:
252: %\input title
253: \title{Generating All Maximal Induced Subgraphs for Hereditary,
254: Connected-Hereditary and Rooted-Hereditary Properties}
255: \author{Sara Cohen\thanks{The Selim and Rachel Benin School of
256: Computer Science and Engineering, The Hebrew University of
257: Jerusalem, Givat Ram Campus, Jerusalem 91904, Israel. Email: {\tt
258: \{sarina,sagiv\}@cs.huji.ac.il}} \and Yehoshua Sagiv$^*$
259: %\thanks{The Selim and Rachel Benin School of
260: % Computer Science and Engineering, The Hebrew University of
261: % Jerusalem, Givat Ram Campus, Jerusalem 91904, Israel. Email: {\tt
262: % sagiv@cs.huji.ac.il}}
263: }
264: \date{}
265: \maketitle
266:
267: \thispagestyle{empty}
268: %\input abstract
269: \begin{abstract}
270:
271: The problem of computing all maximal induced subgraphs of a graph $G$
272: that have a graph property $\P$, also called the {\em maximal $\P$-subgraphs
273: problem}, is considered. This problem is studied for hereditary,
274: connected-hereditary and rooted-hereditary graph properties.
275: The maximal $\P$-subgraphs problem is
276: reduced to restricted versions of this problem by providing algorithms
277: that solve the general problem, assuming that an algorithm for a
278: restricted version is given. The complexity of the algorithms are
279: analyzed in terms of total polynomial time, incremental polynomial
280: time and the complexity class P-enumerable. The general results
281: presented allow simple proofs that the maximal $\P$-subgraphs problem
282: can be solved efficiently (in terms of the input and output) for many
283: different properties.
284: \eat{
285: , e.g., bipartite
286: graphs. In databases, various problems, such as full
287: disjunctions, can be computed as maximal solutions to some
288: connected-hereditary properties.
289: For hereditary, connected-hereditary and rooted-hereditary
290: properties, it is shown that under some
291: general conditions, all maximal
292: solutions can be generated in polynomial time under input-output complexity.
293: If some additional conditions are satisfied, then all maximal
294: solutions can be generated in incremental
295: polynomial time, and $k$ maximal solutions can be generated in
296: polynomial time.
297: The above general results include and improve upon previous results in
298: databases, in particular, and in graph theory, in general. For
299: example, it is shown that full disjunctions can
300: be computed in incremental polynomial time, and that maximal bipartite
301: subgraphs can be generated in polynomial time under input-output complexity.
302: }
303:
304: %the problem of computing maximal answers (rather than
305: %complete answers) to a query over incomplete information can be
306: %couched as computing maximal solutions to a
307: %connected-hereditary or rooted-hereditary property. For example,
308:
309: %
310: %The goal of this paper is to investigate when all maximal solutions for
311: %hereditary, connected-hereditary, and rooted-hereditary properties can
312: %be computed in polynomial time under input-output complexity.
313: %Towards this end, {\em
314: % polynomially-extendable\/} and {\em polynomially
315: % vertex-extendible\/} properties are defined. The main
316: %results are
317: % about hereditary properties that are also polynomially-extendable,
318: % and connected-hereditary or rooted-hereditary properties that are
319: % also polynomially vertex-extendible. In both of these
320: % cases, all maximal solutions can be generated in polynomial time
321: % under input-output complexity.
322:
323: \eat{
324: This paper presents algorithms that generate all maximal solutions for
325: hereditary, connected-hereditary and rooted-hereditary graph
326: properties. For {\em polynomially-extendable\/} and {\em polynomially
327: vertex-extendible properties\/}, our algorithms run in polynomial
328: time under input-output complexity. It turns out that usually
329: properties that are {\em polynomially solvable}, i.e., properties for
330: which it is possible to generate all maximal solutions in polynomial
331: time under input-output complexity, are in one of the two classes
332: that we have identified. Properties
333: for which maximal solutions can be generated in incremental
334: polynomial time and for which $K$ maximal solutions can be generated
335: in polynomial time, for a given constant $K$, are also identified.
336:
337: The problem of finding ``maximal query answers'' over
338: incomplete databases has been studied in the past in various
339: different settings. It turns out that many of methods for computing
340: maximal query answers can be modeled abstractly as hereditary,
341: connected-hereditary or rooted-hereditary properties.
342: Hence, our algorithms yield
343: immediately as special cases several complexity results that were
344: proven independently in the past for the problem of finding
345: ``maximal query answers.'' In addition, we improve on previous
346: results in this area by providing
347: incremental polynomial algorithms that solve these problems. Our
348: algorithms also provide polynomial solutions to open problems in
349: graph theory, such
350: as that of generating all maximal bipartite subgraphs of a given graph.
351:
352: }
353: \eat{Our goal is to generate all maximal solutions for a variety of
354: problems in polynomially time under input-output complexity. Instead
355: of presenting an algorithms for each problem, we consider the very
356: general classes of hereditary,
357: connected-hereditary and rooted-hereditary graph properties, and
358: present algorithms for each class of problems.
359: }
360:
361: %In addition, we show that every
362: % hereditary property that is polynomially solvable is also
363: % polynomially extendible and that every rooted-hereditary property
364: % that is polynomially solvable is also polynomially
365: % vertex-extendible. Hence, our algorithms can be used to compute
366: % maximal solutions for all polynomially solvable hereditary or
367: % rooted-hereditary properties.
368:
369: \eat{We consider the problem of generating maximal solutions for
370: hereditary, connected-hereditary and rooted-hereditary properties over
371: graphs.
372:
373: Contributions:
374: * We recognized the fact that many problems for which we want to find
375: maximal answers can be modeled abstractly as hereditary,
376: connected-hereditary or rooted-hereditary properties.
377: * Formulated abstract algorithms
378: answers can be
379: }
380: \end{abstract}
381:
382: %\input introduction
383: \section{Introduction} \label{sec:intro}
384: \eat{
385: A graph property $\P$ is a set of graphs. For
386: example, the set of cliques, line graphs and 3-colorable graphs are
387: graph properties. Hereditary graph properties are graph properties
388: that are closed with respect to induced subgraphs. Such graph properties
389: include many common types of graphs, such as those mentioned
390: above. Connected-hereditary properties are graph properties that are
391: closed with respect to connected induced subgraphs and are also common.
392: Rooted-hereditary properties are graph properties that are
393: closed with respect to rooted induced subgraphs and appear in
394: database theory in the context of semistructured data.
395: }
396:
397: Hereditary and connected-hereditary graph properties include many common
398: types of graphs such as cliques, bipartite graphs
399: and trees. Such properties appear in many contexts, and thus, they have
400: been widely studied, e.g.,~\cite{Lewis:Yannakakis:JCSS,Yannakakis:Node:Edge:Deletion,Balogh:Speed-Hereditary,Sos:Saks-Diversity}.%
401: \eat{The node-deletion problem for hereditary properties has been
402: proven to be NP-complete~\cite{Lewis:Yannakakis:JCSS}.
403: This is also true of the node-deletion problem for
404: connected-hereditary
405: properties~\cite{Yannakakis:Node:Edge:Deletion}. The speed of
406: growth~\cite{Balogh:Speed-Hereditary}
407: and the diversity~\cite{Sos:Saks-Diversity} of hereditary properties
408: have also been analysed.
409: }
410: %
411: This paper focuses on the {\em maximal $\P$-subgraphs problem}: Given a
412: graph property $\P$ and an arbitrary graph $G$, find all maximal induced
413: subgraphs of $G$ that have the property $\P$.
414: We consider properties
415: that are hereditary, connected hereditary or rooted hereditary (a
416: variant of connected hereditary).
417:
418: Since the output for the maximal $\P$-subgraphs problem may be large,
419: our complexity analysis takes into consideration both the size of the
420: input and the size of the output. Specifically, we consider the
421: complexity measures {\em total polynomial
422: time\/}~\cite{Johnson-Yannakakis:Generating-Maximal-Independents-Sets} and
423: {\em incremental polynomial
424: time\/}~\cite{Johnson-Yannakakis:Generating-Maximal-Independents-Sets},
425: and the complexity class {\em
426: P-enumerable\/}~\cite{Valiant:Complexity:Computing:Permanent}.
427:
428: The maximal $\P$-subgraphs problem has been studied for many
429: properties $\P$. For example, it has been shown that this problem is
430: both P-enumerable and solvable in incremental polynomial time
431: for the properties \prop{is an independent set} and \prop{is
432: a
433: clique}~\cite{Johnson-Yannakakis:Generating-Maximal-Independents-Sets,Tsukiyama-Maximal:Independant:Sets,Akkoyunlu-Maximal:Cliques}.
434: If subgraphs (and not only induced subgraphs) are allowed, then the
435: maximal $\P$-subgraphs problem is P-enumerable for the properties
436: \prop{is a spanning
437: tree}~\cite{Read:Tarjan-Listing:Cycles:Paths:Spanning:Trees,Kappor:Ramesh-Generating:Spanning:Trees}, %,Gabow:Myers-Finding:Spanning:Trees},
438: \prop{is an elementary
439: cycle}~\cite{Read:Tarjan-Listing:Cycles:Paths:Spanning:Trees,Johnson-Elementary:Ciruit}
440: and \prop{is an elementary
441: path}~\cite{Read:Tarjan-Listing:Cycles:Paths:Spanning:Trees,Babic:Graovac-Enumeration:Walks},
442: among others.
443:
444: This paper differs from previous work in that we do not consider
445: specific properties, but instead, deal with the problem for a general
446: $\P$. Our strategy is to reduce the maximal $\P$-subgraphs problem to
447: restricted versions of the maximal $\P$-subgraphs problem that are
448: often easier to solve. Our reductions are by means of algorithms
449: that solve the maximal $\P$-subgraphs problem, given a solution to a
450: restricted version of this problem.
451:
452: \eat{We believe
453: that our approach is promising, since it involves defining algorithms
454: for a class of properties, instead of for
455: specific properties.
456: Our formulation allows our algorithms to be immediately
457: applied to new problems.
458: These general results include and
459: improve upon previous results in graph theory. For example, it is
460: shown that the maximal \prop{bipartite}-subgraph problem is solvable
461: in total polynomial time, which improves
462: upon~\cite{Number:Bipartite:Graphs}.
463: }
464:
465: Using our algorithms, we can show that the maximal $\P$-subgraphs
466: problem can be solved in total-polynomial time, incremental-polynomial
467: time or is P-enumerable if certain conditions hold on the runtime
468: of a restricted version of this problem. Hence, our approach is easily
469: shown to include and improve upon previous results in graph
470: theory. For example, it is
471: shown that the maximal \prop{bipartite}-subgraph problem is solvable
472: in total polynomial time, which improves
473: upon~\cite{Number:Bipartite:Graphs}.
474:
475: The maximal $\P$-subgraphs problem also has immediate practical
476: applications in the database field. Interestingly, it turns out that
477: many well-known semantics for answering queries in the presence of
478: incomplete information can be modeled as hereditary,
479: connected-hereditary or rooted-hereditary graph properties. Hence, the
480: results in this paper imply and improve upon the complexity results
481: in~\cite{Kanza:Et:Al-Incomplete:Answers:Over:SSDs-PODS,Kanza:Sagiv:Full:Disjunctions,Cohen:Generating:Relation}
482: and imply the complexity result
483: in~\cite{Yannakakis-Algorithms:Acyclic:Database:Schemas-VLDB}. In
484: fact, modeling semantics as graph properties allows previously
485: presented semantics to be extended without affecting their
486: complexity. See~\cite{ICDT:Submission} for more details.
487:
488:
489: \eat{
490: This paper differs from previous work in that we present a general
491: algorithm that allows for simple proofs that the Maximal $\P$-Subgraphs
492: Problem is P-enumerable, if certain conditions hold. If some
493: additional conditions are satisfied, then the Maximal $\P$-Subgraphs
494: Problem can be solved in incremental polynomial time, and $k$ maximal
495: $\P$-subgraphs can be generated in polynomial time, for a given
496: constant $k$. The above general results include and improve upon
497: previous results in graph theory. For example, it is shown that the
498: Maximal Bipartite-Subgraph problem is P-enumerable.
499:
500:
501: Databases often contain incomplete information. This is especially
502: common when the database is formed by integrating information from
503: heterogeneous sources or in semistructured databases. In such
504: situations, there may not be enough
505: information to completely answer a query. Hence, it is of interest to
506: find maximal answers for a given query. Different semantics for
507: computing maximal answers have been proposed
508: for a variety of settings
509: (e.g., full disjunctions~\cite{Galindo-Legaria:Full:Disjunctions},
510: weak and {\sc
511: or}-semantics~\cite{Kanza:Et:Al-Incomplete:Answers:Over:SSDs-PODS},
512: maximally interconnected nodes~\cite{Cohen:Generating:Relation}).
513: These semantics differ significantly
514: one from another. Nonetheless, it has been
515: shown that each of these semantics is {\em polynomially-solvable\/},
516: i.e., it is possible to generate all maximal solutions under each of
517: these semantics in polynomial time under input-output complexity.
518:
519: Obviously, when defining a semantics for maximal answers %for a query language
520: it is extremely desirable that the semantics be
521: polynomially-solvable. However, a full understanding of what
522: causes a semantics to be polynomially-solvable is lacking. Hence, it is
523: difficult to discern whether some newly defined semantics is in fact
524: polynomially-solvable. Actually, determining whether a semantics is
525: polynomially-solvable may be quite intricate. For example, although full
526: disjunctions were introduced in
527: 1994~\cite{Galindo-Legaria:Full:Disjunctions}, only recently was it
528: determined that full disjunctions
529: are polynomially-solvable~\cite{Kanza:Sagiv:Full:Disjunctions}. (A
530: special case was
531: shown to be polynomially-solvable in
532: 1996~\cite{Rajaraman:Ullman-Computing:Full:Disjunctions-PODS}.)
533: This makes it difficult to define a new polynomially-solvable
534: semantics for maximal answers for a language such as XQuery.
535:
536: One of the contributions of this paper is in determining that the
537: above semantics
538: can be couched as computing maximal solutions for a connected-hereditary or
539: rooted-hereditary graph property. It turns out that this is the underlying
540: reason why the semantics are polynomially-solvable.
541: Therefore, in this paper we study the problem of computing maximal
542: solutions for
543: hereditary, connected-hereditary and rooted-hereditary properties. We
544: are interested, in particular, in polynomially-solvable properties.
545: In contrast to previous work in this area, we do not
546: provide algorithms for specific properties. Instead, we identify
547: general conditions for which it is possible to generate all maximal
548: solutions in polynomial time under input-output complexity.
549:
550:
551: Our general results include and improve upon previous results in
552: databases, in particular, and in graph theory, in general. For
553: example, it is shown that full disjunctions can
554: be computed in incremental polynomial time, and that maximal bipartite
555: subgraphs can be generated in polynomial time under input-output
556: complexity. In Section~\ref{sec:conclusion} we present detailed
557: examples of problems that can be modeled as hereditary,
558: connected-hereditary or rooted-hereditary properties. We also show
559: how our results improve upon previous results for these problems.
560: }
561: \eat{
562: This paper is organized as follows.
563: Section~\ref{sec:definitions}
564: presents necessary definitions. %In Section~\ref{sec:examples}, a
565: %variety of examples of hereditary, connected-hereditary and
566: %rooted-hereditary properties are
567: %discussed.
568: Some background on computing maximal solutions is presented in
569: Section~\ref{sec:characteristics}.
570: In Section~\ref{sec:hereditary}
571: an algorithm that generates maximal solutions for hereditary
572: properties is presented.
573: In Section~\ref{sec:connected-hereditary} an
574: algorithm that generates maximal solutions for connected-hereditary
575: and rooted-hereditary properties is presented. An incremental polynomial
576: algorithm, that generates solutions for hereditary,
577: connected-hereditary and rooted-hereditary properties, is presented in
578: Section~\ref{sec:ip:connected-hereditary}.
579: Section~\ref{sec:conclusion} concludes.
580: }
581: \eat{
582: We
583: identify classes of properties for which all maximal solutions can be
584: generated in polynomial time under input-output complexity, and
585: present algorithms that solve this problems.
586:
587: For hereditary, connected-hereditary and rooted-hereditary
588: properties, this paper gives
589: general conditions guaranteeing that all maximal
590: solutions can be generated in polynomial time under input-output complexity.
591: If some additional conditions are satisfied, then all maximal
592: solutions can be generated in incremental
593: polynomial time, and $k$ maximal solutions can be generated in
594: polynomial time.
595:
596:
597: Therefore, we study the general problem of computing maximal solutions...
598: Results.
599: Results contain and improve.
600: Interestingly, our results also solve open problems in graph theory.
601:
602: It is often
603:
604:
605: Hereditary, connected-hereditary and rooted-hereditary graph
606: properties include many common graph properties.
607: Informally, a property is hereditary if the fact that it holds on a
608: graph $G$, implies that it holds on all induced subgraphs of
609: $G$. Similarly, a property is connected-hereditary or
610: rooted-hereditary if the fact that it holds on $G$ implies that it
611: holds on all connected or rooted induced subgraphs of $G$.
612: In databases, the problem of computing maximal answers (rather than
613: complete answers) of a query over incomplete information can be
614: couched as computing maximal solutions for a connected-hereditary or
615: rooted-hereditary property.
616:
617: The problem of finding ``maximal query answers'' (rather than complete
618: answers) over
619: incomplete information has been studied in the past in various
620: different settings. This problem
621: can often be couched as computing maximal solutions for a
622: connected-hereditary or rooted-hereditary property.
623:
624:
625: It turns out that many of methods for computing
626: maximal query answers can be modeled abstractly as hereditary,
627: connected-hereditary or rooted-hereditary properties.
628: For example,
629: In databases, various problems, such as full
630: disjunctions, can be computed as maximal solutions to some
631: connected-hereditary property.
632:
633:
634: }
635:
636: \eat{
637: It is often the case that a database contains only incomplete
638: information.
639: %A database may be incomplete, in the sense that it may contain only
640: %partial information.
641: In such situations, one may be interested in
642: computing {\em maximal solutions\/} for a given query, instead of
643: computing complete solutions for the query. For relational
644: databases, maximal solutions are often computed by means of full
645: disjunctions~\cite{}.
646: In~\cite{Kanza:Et:Al-Incomplete:Answers:Over:SSDs-PODS}, the problem
647: of computing maximal
648: solutions for graph queries over semi-structured databases was
649: studied. \cite{Cohen:Generating:Relation} focused on the problem of
650: generating maximal relations from XML documents. The number of
651: maximal solutions for a given query may be exponential in the size
652: of the input
653: (i.e., the query and the database). %When computing
654: % maximal solutions it is often the case that the number of maximal
655: % solutions is exponential in the input.
656: Hence, one is often
657: interested in the input-output complexity of such problems, i.e., in
658: the complexity as a function of the input and the output.
659: In each
660: of~\cite{,Kanza:Et:Al-Incomplete:Answers:Over:SSDs-PODS,Cohen:Generating:Relation},
661: algorithms that compute maximal solutions in polynomial time under
662: input-output complexity, were presented.
663:
664: We have shown
665: that these problems can be modeled abstractly as hereditary,
666: connected-hereditary or rooted-hereditary properties over graphs. We then
667: consider the general problem of computing maximal solutions for
668: hereditary, connected-hereditary and rooted-hereditary
669: properties. We identify the classes of properties called {\em
670: polynomially-extendable properties\/} and {\em polynomially
671: vertex-extendible properties}. It is often easy to verify whether a
672: given property is in one of these classes. For both
673: polynomially-extendable and polynomially vertex-extendible properties we
674: present algorithms that compute maximal solutions in polynomial time
675: under input-output complexity. It turns out that the problems
676: mentioned in the previous paragraph
677: are in these classes of properties. Hence, as special cases, our
678: algorithms show that the problems above can be solved in polynomial
679: time under input-output complexity. Our algorithms can also be used to
680: }
681: %To be filled in.
682: \eat{
683: Often we are interested in finding maximal answers for a given
684: problem. For example, one
685:
686: We consider the problem of generating all maximal solutions for
687: hereditary, connected-hereditary and rooted-hereditary graph
688: properties. Informally, a
689: property is hereditary if the fact that it holds on a graph $G$,
690: implies that it
691: holds on all induced subgraphs of $G$. Similarly, a property is
692: connected-hereditary if the fact that it holds on $G$ implies that it
693: holds on all connected induced subgraphs of $G$. Finally, a property is
694: rooted-hereditary if the fact that it holds on $G$ implies that it
695: holds on all rooted induced subgraphs of $G$.
696:
697: Hereditary properties, and their variants, are common in graph
698: theory. For example, the
699: property \prop{is a clique}
700: is hereditary. Many algorithms have been developed
701: that generate all maximal solutions for specific hereditary
702: properties. In our paper, we consider properties with abstract
703: characteristics, such as polynomially extendible properties and
704: polynomially vertex-extendible properties. We present
705: algorithms that generate all maximal solutions for hereditary,
706: connected-hereditary and rooted-hereditary properties with these
707: characteristics. Our
708: algorithms are polynomial under input-output complexity. We also
709: present an algorithm that runs in polynomial incremental time.
710:
711: The algorithms presented improve on some known results for generating
712: maximal solutions for specific properties. In addition, we believe
713: that our approach is promising, since it involves defining algorithms
714: for a class of properties, instead of for
715: specific properties.
716: Our formulation allows our algorithms to be immediately
717: applied to new problems.
718:
719: This paper is organized as follows. Section~\ref{sec:definitions}
720: presents necessary definitions. In Section~\ref{sec:examples}, a
721: variety of examples of hereditary, connected-hereditary and
722: rooted-hereditary properties are
723: discussed. Some background on the problem is presented in
724: Section~\ref{sec:characteristics}. These
725: characteristics are used in Section~\ref{sec:hereditary} to formulate
726: an algorithm that generates maximal solutions for hereditary
727: properties. The characteristics are also used in
728: Section~\ref{sec:connected-hereditary} in an
729: algorithm that generates maximal solutions for connected-hereditary
730: and rooted-hereditary properties. A polynomial incremental algorithm,
731: that generates solutions for hereditary, connected-hereditary and
732: rooted-hereditary properties, is presented in
733: Section~\ref{sec:ip:connected-hereditary}. Some special cases where
734: maximal solutions for connected-hereditary and rooted-hereditary
735: properties can be generated in linear time in the size of the output
736: are presented in Section~\ref{sec:linear:time}.
737: }
738:
739:
740: %\input graphs
741: \section{Graphs and Graph Properties}
742: \label{sec:definitions}
743:
744: %We present some necessary definitions and notation.
745:
746: \paragraph{Graphs and Induced Subgraphs.}
747: A {\em graph} $G=(V,E,r)$
748: consists of {\em (1)\/} a finite set
749: of {\em vertices\/} $V$, {\em (2)\/} a set of {\em edges\/}
750: $E\subseteq V\times V$ {\em and
751: (3)\/} a {\em root\/}
752: $r$ such that $r\in V\cup\set{\bot}$.
753: We say that $G$ is {\em rooted\/} if {\em (1)\/} $r\neq \bot$ {\em
754: and (2)\/} every vertex in $G$ is reachable via a directed path from
755: $r$. \label{rooted}
756: We say that $G$ is {\em connected\/} if its underlying undirected
757: graph is connected.
758: Observe that every rooted graph is
759: connected. However, a connected graph need not be rooted.
760: %
761: We use $V(G)$ to denote the set of vertices of $G$.
762:
763:
764:
765: A graph $H $ is an {\em induced subgraph\/} of a graph
766: $G$, written $H\gconeq G$, if {\em (1)\/} $H$ is
767: derived from $G$ by deleting some of the vertices of $G$ (and the edges
768: incident on these vertices) {\em and (2)\/} $H$ has the same root as
769: $G$, if the root of $G$ is among the vertices of $H$, and has $\bot$
770: as its root otherwise.
771: We write $H\gcon G$ if $H\gconeq G$
772: and $H$ is not equal to $G$.
773:
774: We use $G[\set{\dd v n}]$ to denote the induced subgraph
775: of $G$ that contains exactly the vertices $\dd v n$. If $H$ and $H'$
776: are induced subgraphs of $G$ and $v$ is a vertex in $G$, we use $G[H]$, $G[H,v]$ and $G[H,H']$ as
777: shorthand notations for $G[V(H)]$, $G[V(H)\cup \set{v}]$ and $G[V(H)\cup
778: V(H')]$, respectively.
779:
780:
781: \paragraph{Graph Properties.}
782: A {\em graph property} $\P$ is a nonempty and possibly
783: infinite set of graphs.
784: For example, \prop{is a clique} is a graph
785: property that contains all graphs that are
786: cliques. In this paper, we only consider properties $\P$ such that it
787: is possible to verify whether a graph $G$ is in $\P$ in polynomial
788: time. Hence, we assume that there is a polynomial procedure
789: {\sc Sat}$\paramP$ that receives a graph $G$ as input,
790: and returns true if $G\in\P$ and false otherwise. Observe that the
791: notation $\paramP$ denotes an algorithm that is
792: parameterized by the graph property $\P$, i.e., that differs for each
793: value of $\P$.
794:
795: We consider several special types of graph properties.
796: A graph property $\P$ is
797: {\em hereditary\/} if $\P$ is {\em closed\/} with respect to induced
798: subgraphs, i.e., whenever $G\in\P$,
799: every induced subgraph of $G$ is also in $\P$.
800: A graph property $\P$ is {\em connected hereditary\/} if
801: {\em (1)\/} all the graphs in $\P$ are connected {\em and (2)\/}
802: $\P$ is closed with respect to connected induced subgraphs.
803: %
804: %Lewis~\cite{Lewis:Complexity-Maximum-Subgraph} and
805: %Yannakakis~\cite{Yannakakis:Node:Edge:Deletion}
806: %recognized that many graph problems can be formulated in terms of
807: %hereditary or connected-hereditary properties. In this paper we
808: %introduce {\em rooted-hereditary\/} properties. This type of
809: %properties is useful when considering problems related to semistructured
810: %data, since such data is usually required to be rooted.
811: A graph property $\P$ is {\em rooted-hereditary\/} if
812: {\em (1)\/} $\P$ only holds on rooted graphs {\em and (2)\/}
813: $\P$ is closed with respect to rooted induced subgraphs.\footnote{This type of
814: properties is useful when considering database problems related to
815: semistructured data, since semistructured data are usually represented
816: as rooted graphs.}
817: It is rather unusual for a rooted-hereditary
818: property to also be hereditary or connected-hereditary.
819: Actually, one can show that if $\P$ is rooted-hereditary and $\P$ is
820: also hereditary or connected-hereditary, then $\P$ contains only
821: graphs with at most one vertex.
822: This gives an
823: additional motivation to considering
824: rooted-hereditary properties, since they
825: generally differ from connected-hereditary and hereditary properties.
826:
827:
828: Many graph properties are
829: hereditary~\cite{garey-johnson:intractability}, e.g.,
830: \prop{is a clique}
831: and \prop{is a
832: forest.} Note that
833: \prop{is a clique} is also
834: connected hereditary. However, \prop{is a clique} is not
835: rooted hereditary, since it contains graphs that do not have roots.
836: Some properties are connected hereditary, but
837: not hereditary or rooted hereditary, such as \prop{is a
838: tree,} which contains a graph $G$ if
839: the underlying undirected graph of $G$ is a tree. Note that $G$ is
840: not necessarily rooted. Hence, \prop{is a tree} is not rooted
841: hereditary.
842: %
843: The property \prop{is a rooted clique} is
844: rooted hereditary.
845:
846: \paragraph{The Maximal $\P$-Subgraphs Problem.}
847: Let $G$ be a graph and $\P$ be a property. (The graph $G$ is not
848: necessarily in $\P$.) We say that $H$ is a {\em
849: $\P$-subgraph\/} of $G$ if $H\gconeq G$ and
850: $H\in \P$. The set of $\P$-subgraphs of a graph $G$ is denoted
851: $\sol \P G$.
852:
853: We say that $H$ is a {\em maximal $\P$-subgraph\/} of $G$ if
854: $H$ is a $\P$-subgraph of $G$ and there is no $\P$-subgraph $H'$ of
855: $G$, such that $H\gcon H'$. We use $\maxSol \P G$ to denote the set
856: of maximal $\P$-subgraphs of $G$.
857: The {\em maximal $\P$-subgraphs
858: problem\/} is: Given a graph $G$, find the set $\maxSol \P G$.
859:
860:
861: %\input complexity
862: \newcommand{\SIZE}[1]{|#1|}
863: \newcommand{\OUT}{\text{\sc out}}
864:
865: \section{Complexity Classes and Measures} % and Classes}%mputing
866: % Maximal Answers}
867: This paper explores the problem of computing $\maxSol \P G$, for
868: a hereditary, connected-hereditary or rooted-hereditary property $\P$
869: and an arbitrary graph $G$.
870: The maximal $\P$-subgraphs problem cannot be solved in polynomial
871: time, in the general case. This follows from the fact that sometimes
872: the size of $\maxSol \P G$ is exponential in the size of
873: $G$ (see~\cite{Balogh:Speed-Hereditary} for details). Hence, exponential
874: time may be needed just to print the output.%
875: \eat{
876: Consider the following naive procedure that computes $\maxSol \P
877: G$:
878: \begin{itemize}
879: \item {\bf Step 1:} Compute the set $\sol \P G$.
880: \item {\bf Step 2:} Remove from $\sol \P G$ any graph that is not maximal.
881: \end{itemize}
882: Obviously, this procedure is too expensive to be of interest. For
883: example, if $\P$ is hereditary and $G\in \sol \P G$, then
884: a set of size $2^{|V(G)|}$ will be created in the first
885: step. During the second step, all graphs except $G$ will be
886: removed. Thus, the procedure will have run in exponential time, even
887: though its output is quite small. To summarize, the main fault of the naive
888: procedure lays in the fact that is always runs in exponential time,
889: regardless of the size of the output.
890: }
891: %
892: In this section, we discuss two complexity measures
893: that are of interest when the output of a problem may be
894: large: {\em total
895: polynomial
896: time\/}~\cite{Johnson-Yannakakis:Generating-Maximal-Independents-Sets}
897: and {\em incremental polynomial
898: time\/}~\cite{Johnson-Yannakakis:Generating-Maximal-Independents-Sets}.
899: We also consider the complexity class {\em
900: P-enumerable\/}~\cite{Valiant:Complexity:Computing:Permanent}.
901:
902: A problem can be solved in {\em total polynomial time}, or {PIO}
903: for short, if the time
904: required to list all its solutions is bounded by a polynomial in
905: $n$ (the size of the input) and $K$ (the number of solutions in the
906: output).\footnote{This complexity measure is similar to polynomial
907: time input-output complexity, which is commonly considered in
908: database theory,
909: e.g.~\cite{Yannakakis-Algorithms:Acyclic:Database:Schemas-VLDB}.}
910: For the maximal $\P$-subgraphs problem, $n$ is the
911: number of vertices in $G$ and $K$ is the number of graphs in $\maxSol
912: \P G$. %We say that a problem is in TPTIME if it can be solved in total
913: %polynomial time.
914: %Note that the naive procedure cannot be used
915: % to prove that the maximal $\P$-subgraphs problem can be
916: %solved in total polynomial time.
917:
918: The complexity class {\em P-enumerable\/} is more restrictive than
919: the measure of total polynomial time. Formally, a problem is
920: P-enumerable if the time required to list all its solutions is
921: bounded by $K$ times a polynomial in $n$. Note that P-enumerable
922: differs from total polynomial time in that the factor of the output in
923: the runtime must be linear. Since the size of the output may be
924: exponential in the size of the input,
925: the factor of output size in the
926: total runtime is highly influential.
927:
928: Another complexity measure that is of interest when dealing with
929: problems that may have large output (such as the
930: maximal $\P$-subgraphs problem) is {\em incremental polynomial
931: time}.
932: Formally, a problem is solvable in incremental polynomial time, or
933: PINC for short, if,
934: for all $k$, the $k$-th solution of
935: the output can be returned in polynomial time in $n$ (the
936: input) and $k$.
937: Incremental polynomial time is of importance when the user would like
938: to optimize evaluation time for retrieval of the first $k$
939: maximal induced subgraphs, as opposed to optimizing for overall time.
940: This is particularly useful in a scenario where the user reads the
941: answers as they are delivered, or is only interested in looking at a
942: small portion of the total result. If a problem is solvable in
943: total polynomial time, but not in incremental polynomial time,
944: the user may have to wait exponential time until
945: the entire output is created, before viewing a single maximal
946: $\P$-subgraph.
947:
948: Observe that every problem that is P-enumerable is also
949: solvable in total polynomial time. Similarly, every problem that is
950: solvable in incremental polynomial time is also solvable in total
951: polynomial time. It is not known whether every problem that is
952: solvable in incremental
953: polynomial time is also P-enumerable, and vice-versa.
954: %
955: The maximal $\P$-subgraphs problem has been studied for many
956: properties $\P$. See Section~\ref{sec:intro} for several examples and
957: see~\cite{Combinatorial:Enumeration:Website} for a
958: listing of algorithms for combinatorial enumeration problems.
959: \eat{For example, it has been shown that this problem is
960: both P-enumerable and solvable in incremental polynomial time
961: for the properties \prop{is an independent set} and \prop{is
962: a
963: clique}~\cite{Johnson-Yannakakis:Generating-Maximal-Independents-Sets,Tsukiyama-Maximal:Independant:Sets,Akkoyunlu-Maximal:Cliques}.
964: If subgraphs (and not only induced subgraphs) are allowed, then the
965: maximal $\P$-subgraphs problem is P-enumerable for the properties
966: \prop{is a spanning
967: tree}~\cite{Read:Tarjan-Listing:Cycles:Paths:Spanning:Trees,Kappor:Ramesh-Generating:Spanning:Trees,Gabow:Myers-Finding:Spanning:Trees},
968: \prop{is an elementary
969: cycle}~\cite{Read:Tarjan-Listing:Cycles:Paths:Spanning:Trees,Johnson-Elementary:Ciruit}
970: and \prop{is an elementary
971: path}~\cite{Read:Tarjan-Listing:Cycles:Paths:Spanning:Trees,Babic:Graovac-Enumeration:Walks},
972: among others. See~\cite{Combinatorial:Enumeration:Website} for a
973: listing of algorithms for combinatorial enumeration problems.
974: }
975:
976:
977: %\input restricted
978: \newcommand{\PCBIP}{\P_{\text{\sc cbip}}}
979: \newcommand{\PBIP}{\P_{\text{\sc bip}}}
980:
981: \section{\mathversion{bold}Restricting the Maximal $\P$-Subgraphs Problem}
982: Let $\P$ be a graph property. Suppose that we want to show that the
983: maximal $\P$-subgraphs problem is in PIO. To do this
984: we must devise an algorithm that, when given any graph $G$,
985: produces $\maxSol \P G$ in polynomial time in the
986: input (i.e., $G$) and the output (i.e., $\maxSol \P G$).
987: For many properties $\P$, it is difficult to find such an algorithm,
988: since an arbitrary graph $G$ must be dealt with. %A naive algorithm
989: %will create the set of graphs $\P(G)$, and then remove the graphs that are
990: %not maximal. However, this is clearly to expensive to be desirable.
991: %
992: Our task of finding
993: an appropriate algorithm is even more
994: difficult if we actually want to show that the maximal $\P$-subgraphs
995: problem is P-enumerable or is in PINC. Hence, we focus on restricted
996: versions of the maximal $\P$-subgraphs problem. For these restricted
997: versions, it is often easier to devise an efficient algorithm.
998: %in their input and its output.
999: Later on we will show how, given an algorithm for one
1000: of the restricted
1001: problems, the general problem can be solved.
1002:
1003: Let $G$ be a graph and let $\P$ be a property.
1004: We use $G-v$ to denote the induced graph of $G$ that contains all
1005: vertices other than $v$.
1006: We say that $G$ {\em almost satisfies\/} $\P$ if there is a
1007: vertex $v$ in $G$, such that
1008: $G-v\in \P$. Let $v'$ be a vertex in $G$.
1009: We use $\maxSolVert \P G {v'}$ to denote the subset of
1010: $\maxSol \P G$ that contains graphs with the vertex $v'$.
1011:
1012: We will be interested in three restricted versions of the maximal
1013: $\P$-subgraphs problem.
1014: \begin{itemize}
1015: \item The {\em input-restricted maximal $\P$-subgraphs
1016: problem\/} is: Given a graph $G$ that almost
1017: satisfies $\P$, find all maximal $\P$-subgraphs of $G$.
1018: %, i.e., $\maxSol \P G$.
1019: \item The {\em output-restricted maximal $\P$-subgraphs
1020: problem\/} is: Given an arbitrary graph $G$ and a vertex $v'$ in $G$,
1021: find all maximal $\P$-subgraphs of $G$ that contain $v'$.
1022: %, i.e., $\maxSolVert \P G {v'}$.
1023: \item The {\em io-restricted maximal $\P$-subgraphs problem\/} is: Given
1024: a graph $G$ that almost satisfies $\P$ and given a vertex $v'$ in $G$,
1025: find all maximal $\P$-subgraphs of $G$ that contain $v'$.
1026: %, i.e., $\maxSolVert \P G {v'}$.
1027: \end{itemize}
1028:
1029: Note that the output-restricted maximal $\P$-subgraphs problem can be
1030: used in a straightforward way to solve the maximal $\P$-subgraphs
1031: problem. However, it is not clear how the other two problems can be
1032: used to solve the maximal $\P$-subgraphs problem.
1033:
1034: The complexity of these three problems is highly dependent on the
1035: graph property $\P$. Sometimes, it turns out that the input-restricted
1036: maximal $\P$-subgraphs problem and the io-restricted maximal
1037: $\P$-subgraphs problem can actually be solved
1038: in polynomial time, since the number of graphs in their output is
1039: bounded in size by a constant. However, the
1040: fact that $G$ almost satisfies $\P$ does not always entail that
1041: $\maxSol \P G$ is small. This is shown in the following example.
1042:
1043:
1044: \eat{
1045: The problems
1046:
1047: Interestingly, sometimes the
1048:
1049: For some properties $\P$ it turns out that if $G$ almost satisfies
1050: $\P$, then the size of $\maxSol \P G$ is bounded by a constant.
1051: However, sometimes the size of $\maxSol \P G$ (and even of
1052: $\maxSolVert \P G {v'}$) may be
1053: exponential in the size of $G$. We demonstrate with an example.
1054: }
1055:
1056: \begin{figure}[!t]
1057: \begin{center}
1058: \epsfig{figure=2bipartite.eps,width=0.60\textwidth,clip=}
1059: \end{center}
1060: %\hfill
1061: %\epsfig{figure=bipartite.eps,width=0.45\textwidth,clip=}
1062: \caption{Finding Maximal Bipartite Subgraphs\label{fig:bipartite:graph}}
1063: \end{figure}
1064:
1065: \begin{example}%[The Graph Properties $\PCBIP$ and $\PBIP$]
1066: \label{example:pcbip:pbip}
1067: Let $\PCBIP$ be the connected-hereditary property that contains all
1068: connected bipartite graphs. Suppose that $G$ is a graph that almost
1069: satisfies $\PCBIP$. It is not difficult to see that $\maxSol
1070: {\PCBIP}G$ contains at most three graphs.
1071: As an example, consider the graph $G_1$ in
1072: Figure~\ref{fig:bipartite:graph}. The graph $G_1$ almost satisfies
1073: $\PCBIP$, since $G_1\setminus w$ is a
1074: connected bipartite graph. The set $\maxSol {\PCBIP}{G_1}$ contains
1075: the following three graphs: {\em (1)\/} $G_1 \setminus w$, {\em (2)\/}
1076: $G_1\setminus u_2$ (derived by removing the neighbors of $w$
1077: on the bottom side) {\em and (3)\/} $G_1\setminus\set{v_1,v_2,u_1}$
1078: (derived by removing the neighbors of $w$ on the top side,
1079: and then removing unconnected vertices).
1080:
1081:
1082: Let $\PBIP$ be the hereditary property that contains all
1083: bipartite graphs. It is possible for the size of $\maxSol
1084: {\PBIP} G$ to be exponential in the size of $G$, even if $G$
1085: almost satisfies $\PBIP$. Consider,
1086: for example, the graph $G_2$ in Figure~\ref{fig:bipartite:graph}. The
1087: graph $G_2$ almost satisfies $\PBIP$ since $G_2\setminus w\in
1088: \PBIP$. However, the set $\maxSol \P {G_2} $ contains $2^n + 1$ graphs,
1089: i.e., $G_2\setminus w$ and the graphs derived by choosing the vertex
1090: $w$ and one from each pair of vertices $(v_i,u_i)$, for all
1091: $i$. Notwithstanding the size of $\maxSol \P {G_2} $, it is not
1092: difficult to show that the input-restricted $\PBIP$-subgraphs problem
1093: is P-enumerable. To see this, observe that it is possible to find the
1094: graphs in
1095: $\maxSol \P {G_2} $ efficiently, in terms of the input {\em and\/}
1096: the output, by dealing separately with each connected component of
1097: $G_2\setminus w$.
1098: \end{example}
1099:
1100: By formalizing the intuition presented in Example~\ref{example:pcbip:pbip},
1101: the following propositions can be shown. Similar propositions can be
1102: shown for other graph properties.
1103:
1104: \begin{proposition}%[\mathversion{bold}Complexity of the Restricted
1105: % $\PCBIP$-Subgraphs Problem]
1106: \label{proposition:restricted:pcbip}
1107: The io-restricted $\PCBIP$-subgraphs problem is in \PTIME.
1108: \end{proposition}
1109:
1110: \begin{proposition}%[\mathversion{bold}Complexity of the Restricted
1111: % $\PBIP$-Subgraphs Problem]
1112: \label{proposition:restricted:pbip}
1113: The input-restricted $\PBIP$-subgraphs is {\rm P}-enumerable.
1114: \end{proposition}
1115:
1116:
1117: %\input hereditary
1118: \section{Hereditary Properties}\label{sec:hereditary}
1119:
1120: In this section, we reduce the maximal $\P$-subgraphs problem to the
1121: input-restricted maximal $\P$-subgraphs problem for hereditary properties
1122: $\P$. Our reduction is by means
1123: of an algorithm that shows how to compute $\maxSol \P G$ for an
1124: arbitrary graph $G$, given a procedure that can compute $\maxSol \P
1125: G$ for graphs $G$ that almost satisfy $\P$.
1126:
1127: In Figure~\ref{fig:poly:alg:1}, the algorithm
1128: {\sc GenHered}$\paramP$ is presented.
1129: This algorithm uses the following two procedures.
1130: \begin{itemize}
1131: \item {\sc Max}$\paramP(H,G)$: This procedure receives graphs
1132: $H$ and $G$
1133: as input and returns true if $H$ is a maximal $\P$-subgraph of
1134: $G$ and false otherwise. This procedure can easily be defined in
1135: terms of {\sc
1136: Sat}$\paramP$, by {\em (1)\/} checking if $H\in \P$ {\em
1137: and (2)\/} extending $H$ with each vertex in
1138: $G$ and checking whether any extension is in $\P$ (using
1139: {\sc Sat}$\paramP$).
1140: \item {\sc GenRestrHered}$\paramP(H)$: This procedure receives a graph $H$
1141: that almost satisfies $\P$ and returns the set $\maxSol \P H$. This
1142: procedure is not defined in this paper. Instead, it must be provided on a
1143: per-property basis.
1144: \end{itemize}
1145: In essence, our algorithm reduces the maximal
1146: $\P$-subgraphs problem to the input-restricted maximal $\P$-subgraphs
1147: problem by using the procedure {\sc GenRestrHered}$\paramP$.
1148:
1149: The algorithm {\sc GenHered}$\paramP$ starts with the set $\G =
1150: \set{\emptyGraph}$, where $\emptyGraph$ is an empty graph, i.e., a
1151: graph with no vertices or edges. It then continuously (Line~6) attempts to
1152: extend each graph $H$ in $\G$ with an additional vertex $v_i$. The
1153: graphs in $\maxSol \P {G[H,v_i]}$ that are maximal with respect to the
1154: vertices seen thus far are inserted into $\G$ (Line~7).
1155: This step is critical, since it {\em (1)\/} inserts graphs that are
1156: needed in order to create the final result {\em and (2)\/} avoids
1157: inserting extra graphs that would cause $\G$ to grow exponentially.
1158:
1159: Let $G$ be a graph with $n$ vertices. Suppose that there are $K$
1160: graphs in $\maxSol \P G$.
1161: We show that {\sc GenHered}$\paramP(G)$
1162: correctly computes $\maxSol \P G$ and analyze the runtime of our
1163: algorithm as a function of $n$ and $K$.
1164: We use $s_\P(n)$ to denote the amount of time needed to check if
1165: $G\in\P$,
1166: i.e., the runtime of {\sc Sat}$\paramP(G)$.
1167: Observe that {\sc Max}$\paramP(H,G)$ runs in $\O(n\,s_\P(n))$ time.
1168: We use $r_\P(n,K)$ to denote the amount of time needed to compute $\maxSol \P
1169: G$, when $G$ almost satisfies $\P$, i.e., the runtime of {\sc
1170: GenRestrHered}$\paramP(G)$. Note that $r_\P$ is a function of both
1171: the input and the output.
1172: \eat{
1173: Finally, we use $\#_\P(n)$ to denote the maximum
1174: number of graphs in $\maxSol \P G$, assuming that $G$ almost satisfies $\P$.
1175: %
1176: Clearly, $\#_\P(n)$ is dominated by $r_\P(n,K)$, since $\#_\P(n)\leq
1177: K$. However, we use the
1178: function $\#_\P(n)$ in our analysis since there are properties for
1179: which $\#_\P(n)$ is a constant, e.g., $\PCBIP$.
1180: %We assume in this paper that $s_\P(n)$, $r_\P(n)$ and $\#_\P(n)$ are
1181: %monotonically nondecreasing.
1182: }
1183: %The correctness of our algorithm is based on the following Lemma.
1184: %In order to prove the correctness of our method, we present a lemma
1185: %that shows that the above process does in fact compute maximal
1186: %solutions for a graph $G \plusNode v$.
1187:
1188:
1189: \begin{figure*}[t]
1190: %\onehalfspacing
1191: \begin{center}
1192: \scalebox{0.9}{
1193: \fbox{
1194: \parbox{1in}{
1195: \begin{tabbing}
1196: 0\=1\= 1. for\ \= for\ \= for\ \= for\ \= for\ \= AA \= \kill
1197: \>\> {\bf Algorithm:} \> \>\>\> {\sc GenHered}$\paramP$ \ \ \ \\
1198: \>\> {\bf Input:} \> \> \> \>
1199: Graph $G = (\set{\dd v n}, E, r)$ \\
1200: %\>\> \> \> \> \> Set of graphs $\G$\\
1201: \>\> {\bf Output:} \>\>\>\> Maximal $\P$-Subgraphs of $G$, i.e.,
1202: $\maxSol \P G$
1203: \end{tabbing}\vspace{-0.5cm}
1204: \begin{algorithm}{}{}
1205: \G := \set{\emptyGraph} \\
1206: \begin{FOR}{i := 1 \TO n}
1207: \H := \G \\
1208: \begin{FOREACH}{H\in \H}
1209: % \begin{IF}{\CALL{Sat}\paramP(G[H,v_i])}
1210: \G:= \G \setminus \set{H} \\ %\cup \set{G[H,v_i]}
1211: \begin{FOREACH}{H'\in \CALL{GenRestrHered}\paramP(G[H,v_i])\ \ \ }
1212: \begin{IF}{\CALL{Max}\paramP(H',G[\set{\dd v i}])}
1213: \G := \G \cup \set{H'}
1214: \end{IF}
1215: \end{FOREACH}
1216: % \end{IF}
1217: \end{FOREACH}
1218: \end{FOR} \\
1219: %\begin{IF}{\G = \set{\emptyGraph}}
1220: %\RETURN \emptyset
1221: %\ELSE
1222: \RETURN \G
1223: %\end{IF}
1224: \end{algorithm}
1225: }
1226: }
1227: }
1228: \end{center}
1229: \caption{Algorithm to compute $\maxSol \P {G}$ for
1230: hereditary properties
1231: \label{fig:poly:alg:1}}
1232: \end{figure*}
1233:
1234: %
1235:
1236: %We can now show that the algorithm {\sc GenHered} correctly computes the set
1237: %$\maxSol \P {G}$ for a hereditary property $\P$ and a graph $G$.
1238:
1239: %\enlargethispage{\baselineskip}
1240:
1241: \begin{theorem}%[CHP is Correct]
1242: \label{theorem:chp:correct}
1243: Let $\P$ be a hereditary property and let $G$ be a graph with $n$ vertices.
1244: Let $K$ be the number of graphs in $\maxSol \P G$. Then
1245: \begin{itemize}
1246: \item {\sc GenHered}$\paramP(G) = \maxSol \P {G}$ {\em and\/}
1247: \item {\sc GenHered}$\paramP(G)$ runs in time:
1248: %$\O\big(n\, K\, (r_\P(n,K) + n\,s_\P(n)\,\#_\P(n))\big)$.
1249: $\O\big(n^2\,s_\P(n)\,K\,r_\P(n,K)\big)$.
1250: \end{itemize}
1251: \eat{{\sc GenHered}$\paramP(G) = \maxSol \P {G}$ and
1252: {\sc GenHered}$\paramP(G)$ runs in time
1253: \[\O\big(n\, K\, (r_\P(n) + n\,s_\P(n)\,\#_\P(n))\big)\,.
1254: % = \O\big(n\, K\, (e_\P(n) + n\,t_\P(n)\,K)\big)
1255: \]
1256: }
1257: \end{theorem}
1258: \proofsketch
1259: We use $G_i$ to denote the induced subgraph of $G$ containing
1260: exactly the vertices $\dd v i$, i.e., $G[\set{\dd v i}]$. We use
1261: $\G_i$ to denote the value of $\G$ after $i$ iterations of the loop in
1262: Line 2 of the algorithm.
1263: We show by
1264: induction on the number of vertices $k$ in $G$ that
1265: $\G_k = \maxSol \P {G_k}$. The inclusion $\G_k \subseteq \maxSol \P
1266: {G_k}$ can be shown by a case analysis of the lines in which graphs
1267: are added to (and removed from) $\G_k$. The inclusion $ \maxSol \P
1268: {G_k} \subseteq \G_k$ follows from the following inclusion:
1269: \begin{align*}
1270: \maxSol \P {G_{k}} \subseteq \maxSol \P {G_{k-1}} \cup \big(\cup_{H\in
1271: \maxSol\P {G_{k-1}}} \maxSol \P
1272: {G[H,v_k]} \big)\,.
1273: \end{align*}
1274: The runtime follows from a careful analysis of the algorithm and from
1275: the fact that $|\maxSol \P {G_{i-1}}| \leq |\maxSol \P {G_i}|$, for
1276: all $i$.
1277: \qed
1278:
1279: %Using Theorem~\ref{theorem:chp:correct}, we can show the following results.
1280:
1281: \begin{corollary}
1282: Let $\P$ be a hereditary property.
1283: Then the maximal $\P$-subgraphs problem is in \PIO\ if and only if
1284: the input-restricted maximal $\P$-subgraphs problem is in \PIO.
1285: \end{corollary}
1286:
1287: \begin{corollary} \label{corollary:hereditary:P-enumerable}
1288: Let $\P$ be a hereditary property.
1289: Then the maximal $\P$-subgraphs problem is {\rm P}-enumerable if
1290: the input-restricted maximal $\P$-subgraphs problem is in \PTIME.
1291: \end{corollary}
1292:
1293: \begin{corollary}
1294: The maximal $\PBIP$-subgraphs problem is in \PIO.
1295: \end{corollary}
1296:
1297:
1298:
1299: %\input connected-hereditary
1300: \renewcommand{\VCS}{{\sc GenWithVertex}$\paramP$}
1301: \newcommand{\STACK}{{\mathit Stack}}
1302:
1303: \section{Connected-Hereditary and
1304: Rooted-Hereditary Properties}
1305: \label{sec:connected-hereditary}
1306: {\sc GenHered}$\paramP$ may fail to return the correct
1307: graphs if $\P$ is connected hereditary or
1308: rooted hereditary. Intuitively, this
1309: failure is caused by the fact that an induced subgraph $H$ may not be
1310: connected or rooted (and therefore, $H\not\in\P$), even though
1311: there is a graph $G$ such that $H\gcon G$ and $G\in\P$.
1312: In other words, the order in which we choose the vertices can
1313: effect the success of the algorithm.
1314:
1315: In this section, we solve the maximal $\P$-subgraphs problem for
1316: connected-hereditary and rooted-hereditary properties in the following
1317: way:
1318: \begin{itemize}
1319: \item The maximal $\P$-subgraphs problem is reduced to the
1320: output-restricted maximal $\P$-subgraphs problem in a
1321: straightforward fashion.
1322: \item The output-restricted maximal $\P$-subgraphs problem is reduced
1323: to the io-restricted maximal $\P$-subgraphs problem by means of the
1324: algorithm \VCS\ (see Figure~\ref{fig:alg:vcs}). The result of calling
1325: \VCS$(G,v_r)$, for an arbitrary graph $G$, is the
1326: set $\maxSolVert \P G {v_r}$. Note that \VCS$(G,v_r)$
1327: uses {\sc
1328: GenRestrWithVertex}$\paramP(G,v_r)$ which generates
1329: $\maxSolVert \P {G'} {v_r}$ for graphs $G'$ that almost satisfy $\P$.
1330: \end{itemize}
1331:
1332:
1333: In the remainder of this section, we explain the algorithm \VCS---its
1334: notation, data structures and flow of execution. We show its
1335: correctness and analyze its runtime.
1336:
1337: \paragraph{Notation.}
1338: Consider graphs $G$ and $H$ such that $H\gconeq
1339: G$. %We use $V(H)$ to denote the set of vertices in $H$.
1340: We say that a vertex
1341: $v$ in $V(G)\setminus V(H)$ is an {\em undirected neighbor\/} of a
1342: vertex $v'$ in $H$ if either
1343: the edge $(v, v')$ or the edge $(v', v)$ is in $G$. Similarly, we say
1344: that $v\in V(G)\setminus V(H)$ is a {\em directed neighbor\/} of
1345: $v'$ in $H$ if
1346: the edge $(v', v)$ is in $G$.
1347: Note that the neighbors (directed or undirected) of vertices in an
1348: induced subgraph are {\em not\/} in the induced subgraph.
1349:
1350: %
1351: %When dealing with connected-hereditary properties, we are usually
1352: %interested in undirected neighbors. When considering rooted-hereditary
1353: %properties, we are usually interested in directed neighbors. Hence,
1354: Given a property $\P$,
1355: we use $N_\P(H, G)$
1356: to denote the set of
1357: undirected neighbors of $H$ if $\P$ is connected-hereditary
1358: and to denote the set of directed neighbors of $H$ if $\P$ is
1359: rooted-hereditary. Note that we use $\P$ only in order to differentiate between
1360: undirected and directed neighbors.
1361:
1362: In our algorithm, a graph
1363: $H\gconeq G$ (such that $H\in \P$)
1364: is associated with a set of vertices $\notV(H)$. Intuitively, this
1365: set contains vertices $v'\in N_\P(H, G)$ that cannot be used to extend
1366: $H$, since $G[H, v']\not\in \P$.
1367:
1368: \paragraph{Data Structures.}
1369: \VCS\ uses two stacks to collect graphs: $\STACK_1$ and
1370: $\STACK_2$.
1371: %\begin{itemize}
1372: %\item
1373: $\STACK_1$ contains graphs for which processing
1374: is incomplete. Therefore, a graph $H$ will be in $\STACK_1$ if it has a
1375: $v'\in N_\P(H, G)$ that is not in $\notV(H)$. For such a vertex $v'$, it is not
1376: yet known whether $v'$ can be added to $H$, i.e., whether $G[H, v]\in
1377: \P$.
1378: %\item
1379: $\STACK_2$ contains graphs for
1380: which processing is complete. Therefore, a graph $H$ will be in $\STACK_2$
1381: if $N_\P(H, G)\subseteq \notV(H)$.
1382: %\end{itemize}
1383:
1384: To ensure that $\STACK_1$ and
1385: $\STACK_2$ contain the proper graphs, our algorithm uses the procedure
1386: {\sc PushAppropriate}$\paramP(H,G, \STACK_1, \STACK_2)$,
1387: which does the following. If $N_\P(H, G) \not \subseteq \notV(H)$,
1388: then the procedure adds $H$ to the top of $\STACK_1$. Otherwise, the
1389: procedure adds $H$ to the top of $\STACK_2$.
1390:
1391: \paragraph{Flow of Execution.}
1392: The algorithm \VCS\ starts by considering the graph $G[\set{v_r}]$. Then, it
1393: continually
1394: extends graphs in $\STACK_1$ with neighboring vertices to derive larger
1395: graphs that are in $\P$. All
1396: extensions created must contain the vertex $v_r$ (so that we will only
1397: create graphs in $\maxSolVert \P G {v_r}$). %A graph $H\in\STACK_1$ can be
1398: %extended with a neighboring vertex $v$.
1399: %
1400: Suppose $H\in \STACK_1$ and $v\in N_\P(H, G)$.
1401: We deal with the case in which
1402: $G[H, v]\in \P$ in Lines~9-10.
1403: We deal with the case in which $G[H, v]\not\in \P$ in
1404: Lines~11-25. \eat{Note that in the latter case we compute the set
1405: $\maxSolVert \P {G[H,v]} {v_r}$. One might think that
1406: graphs $G'\in \maxSolVert \P
1407: {G[H, v]} {v_r}$ can simply be added to $\STACK_1$ or $\STACK_2$, as
1408: appropriate. However, this might cause an
1409: exponential blowup in the size of $\STACK_1$ and $\STACK_2$. Hence, we first
1410: try to combine $G'$ with existing graphs in $\STACK_1$.
1411: We also check if $G'$ is
1412: an induced subgraph of a graph in $\STACK_2$. Only if we have not
1413: succeeded in either of these actions,
1414: $G'$ is added to $\STACK_1$ or $\STACK_2$, as appropriate.
1415: }
1416:
1417: \paragraph{Correctness and Runtime Analysis.}
1418: The proof of correctness of \VCS\ is rather intricate and has been
1419: omitted due to lack of space. However, we take note of the behavior of our
1420: algorithm that is critical in proving its correctness:
1421: \begin{itemize}
1422: \item The fact that $\notV(H)$ is assigned the empty set every time that
1423: a vertex is added to $H$, allows us to be prove that {\em all\/}
1424: graphs in $\maxSolVert \P G {v_r}$ are returned.
1425: \item Graphs $G'$ from $\maxSolVert \P {G[H,v]} {v_r}$ (see
1426: Line~12) are not immediately added to $\STACK_1$ or
1427: $\STACK_2$. Instead we first
1428: try to combine $G'$ with existing graphs in $\STACK_1$.
1429: We also check if $G'$ is
1430: an induced subgraph of a graph in $\STACK_2$. Only if we have not
1431: succeeded in either of these actions, do we add
1432: $G'$ to $\STACK_1$ or $\STACK_2$, as appropriate. This
1433: prevents $\STACK_1$ and $\STACK_2$ from growing too big. It also ensures
1434: that {\em only\/} graphs from $\maxSolVert \P G {v_r}$ are returned,
1435: and each such graph is returned only once.
1436: \end{itemize}
1437: In order to prove our complexity analysis of the runtime of {\sc
1438: GenWithVertex}$\paramP$, we must show that {\sc
1439: GenRestrWithVertex}$\paramP$ does not
1440: create more graphs than the number of graphs in
1441: the result of
1442: {\sc GenWithVertex}$\paramP$. This holds because we are able to prove
1443: that $H\gcon G$ implies
1444: that $|\maxSolVert \P {G[H]} {v_r}| \leq
1445: |\maxSolVert \P {G} {v_r}|$ if either {\em (1)\/} $\P$ is connected-hereditary
1446: {\em or (2)\/} $\P$ is rooted-hereditary and $v_r$ is the root of $G$.
1447:
1448:
1449: \begin{figure*}[!t]\begin{center}
1450: \scalebox{0.9}{
1451: \fbox{\parbox{1in}{
1452: \begin{tabbing}
1453: 0\=1\= AAA \= AAA \= AAA \= AAA \= AAA \= AA \= \kill
1454: \>\>{\bf Algorithm:} \>\> \>\>{\sc GenWithVertex}$\paramP$\\
1455: \>\>{\bf Input:} \> \> \>\> Graph $G$ and Vertex $v_r$ \\
1456: \>\>{\bf Output:} \>\>\>\> Maximal answers that contain vertex $v_r$,
1457: i.e., $\maxSolVert \P {G} {v_r}$ \ \ \ \ \
1458: \end{tabbing}\vspace{-0.5cm}
1459: \begin{algorithm}{}{}
1460: \notV(G[\set{v_r}]) := \emptyset \\
1461: {\mathit Stack}_1 := \emptyset \\
1462: {\mathit Stack}_2 := \emptyset \\
1463: \CALL{PushAppropriate}\paramP(G[\set{v_r}], G, {\mathit Stack}_1, {\mathit Stack}_2) \\
1464: \begin{WHILE}{{\mathit Stack}_1 \neq \emptyset}
1465: H:= {\mathit Stack}_1\CALL{.Pop()} \\
1466: \mbox{{\bf let} $v$ be a vertex in $N_\P(H, G)\setminus \notV(H)$} \\
1467: \begin{IF}{\CALL{Sat}\paramP(G[H, v])}
1468: \notV(G[H,v]):= \emptyset \\
1469: \CALL{PushAppropriate}\paramP(G[H,v])
1470: \ELSE \notV(H) := \notV(H) \cup\set{v} \\
1471: \begin{FOREACH}{G' \in \CALL{GenRestrWithVertex}\paramP(G[H,v],v_r)
1472: \setminus \set{H}}
1473: \notV(G') := \emptyset\\
1474: {\mathit inserted} := \text{false} \\
1475: \begin{FOREACH}{H' \in {\mathit Stack}_1 \text{s.t.} \CALL{Sat}\paramP(G[G',H'])}
1476: G_{\mathit new}:= G[G', H'] \\
1477: \notV(G_{\mathit new}):= \emptyset \\
1478: {\mathit Stack}_1.\CALL{Remove}(H') \\
1479: \CALL{PushAppropriate}\paramP(G_{\mathit new}, G, {\mathit Stack}_1, {\mathit Stack}_2) \\
1480: {\mathit inserted} := \text{true}
1481: \end{FOREACH} \\
1482: \begin{IF}{\mbox{exists $H'\in {\mathit Stack}_2$ s.t. $V(G')\subseteq V(H')$}}
1483: {\mathit inserted} := \text{true}
1484: \end{IF}\\
1485: \begin{IF}{\mbox{not({\it inserted})}}
1486: \CALL{PushAppropriate}\paramP(G', G, {\mathit Stack}_1, {\mathit Stack}_2)
1487: \end{IF}
1488: \end{FOREACH}\\
1489: \CALL{PushAppropriate}\paramP(H, G, {\mathit Stack}_1, {\mathit Stack}_2)
1490: \end{IF}
1491: \end{WHILE}\\
1492: \RETURN {\mathit Stack}_2
1493: \end{algorithm}
1494: }}}
1495: \end{center}
1496: \caption{Algorithm to compute $\maxSolVert \P G {v_r}$ for
1497: connected-hereditary or rooted-hereditary properties\label{fig:alg:vcs}}
1498: \end{figure*}
1499:
1500: Let $G$ be a graph with $n$ vertices.
1501: % and let $v_r$ be a vertex in
1502: %$G$. Suppose that there are $K$ graphs in $\maxSolVert G n v_r$.
1503: We use $r'_\P(n,K)$ to denote the amount of time needed to compute
1504: $\maxSolVert \P G v$ for a graph $G$ that almost satisfies $\P$ and an
1505: arbitrary vertex $v$, i.e.,
1506: the runtime of the procedure {\sc
1507: GenRestrWithVertex}$\paramP(G,v)$. Note that $r'_\P$ is a
1508: function of both the input $n$ and the number of graphs in the output
1509: $K$. The function $s_\P$ is defined as before.
1510:
1511: %We can show the following results.
1512: %Similarly, we use $\#'_\P(n)$ to denote the maximum
1513: %number of graphs in $\maxSolVert \P G v$, assuming that $G$ almost satisfies
1514: %$\P$.
1515: %As before, we assume that these functions are monotonically
1516: %nondecreasing.
1517:
1518:
1519: \begin{theorem}%[Correctness of VCS]
1520: \label{theorem:vcs:correct}
1521: Let $\P$ be a connected-hereditary or rooted-hereditary property. Let $G$
1522: be a graph with $n$ vertices, and let $v_r$ be a vertex in
1523: $G$. Suppose that
1524: $G[\set{v_r}]\in\P$. Let $K$ be the number of graphs in $\maxSolVert \P G
1525: v$. Then
1526: \begin{itemize}
1527: \item \VCS$(G, v_r) = \maxSolVert \P G {v_r}$ {\em and}
1528: %\item \VCS$(G, v_r)$ runs in time:
1529: %$\O\Big(n^2\,K\big(r'_\P(n,K) + K\,\#'_\P(n)\big(s_\P(n)\, +
1530: %n\big)\big)\Big)$.
1531: \item \VCS$(G, v_r)$ runs in time:
1532: $\O\Big(n^2\,K^2\, r'_\P(n,K)\big(s_\P(n)\, +
1533: n\big)\Big)$.
1534: \end{itemize}
1535: \end{theorem}
1536:
1537: %We can now prove the following result.
1538:
1539: \begin{theorem}%[Polynomially Solvable]
1540: \label{corollary:vertex-polynomially-extendable:is:polynomially-solvable}
1541: Let $\P$ be a connected-hereditary or rooted-hereditary property.
1542: The maximal
1543: $\P$-subgraphs problem is in \PIO\ if the io-restricted maximal
1544: $\P$-subgraphs problem is in \PIO.
1545: \end{theorem}
1546:
1547: \proofsketch
1548: Since any vertex in $G$ may or may not appear in a
1549: solution of a connected-hereditary property, it is possible to compute
1550: $\maxSol \P G$ for connected-hereditary properties by calling \VCS\
1551: for every vertex in $G$. If $\P$ is a rooted-hereditary, every graph
1552: in $\maxSol \P G$ must contain the root of $G$. Hence, it is
1553: possible to compute $\maxSol \P G$ by calling \VCS\ with the root of
1554: $G$.
1555: \qed
1556:
1557: If $\P$ is rooted
1558: hereditary and $v_r$ is the root of
1559: $G$, then $\maxSolVert \P G {v_r} = \maxSol \P
1560: G$. Hence, we can show the following result.
1561: %Corollary~\ref{corollary:iff:rooted} follows.
1562: %Hence, it follows that the
1563: %maximal $\P$-subgraphs problem is in \PIO\ if and only if the
1564: %input-restricted maximal $\P$-subgraphs problem is in \PIO.
1565:
1566: \begin{corollary} \label{corollary:iff:rooted}
1567: Let $\P$ be a rooted-hereditary property. The maximal
1568: $\P$-subgraphs problem is in \PIO\ if and only if the
1569: input-restricted maximal $\P$-subgraphs problem is in \PIO.
1570: \end{corollary}
1571:
1572: \section{Extending the Algorithms}
1573:
1574: In this section we discuss some small changes that can be made to the
1575: algorithms {\sc GenHered}$\paramP$ and \VCS\ in order to improve the
1576: complexity results from the previous sections.
1577:
1578: \paragraph{P-Enumerable for Connected-Hereditary and Rooted-Hereditary
1579: Properties.}
1580: In Corollary~\ref{corollary:hereditary:P-enumerable}, we presented a
1581: sufficient condition for the maximal $\P$-subgraphs problem to be
1582: P-enumerable, for hereditary properties $\P$. The algorithm \VCS\
1583: cannot be used in order to derive a sufficient condition for this
1584: problem to be
1585: P-enumerable for connected-hereditary or rooted-hereditary
1586: properties, since $K$ appears quadratically in the runtime of \VCS.
1587:
1588:
1589: It turns out that one can
1590: adapt {\sc GenHered}$\paramP$ to derive an algorithm that computes
1591: $\maxSolVert \P G {v_r}$, for a rooted-hereditary or
1592: connected-hereditary property $\P$, provided that certain conditions hold.
1593: The crux of the change to {\sc GenHered}$\paramP$ is in careful choice
1594: of the order in which to iterate over the vertices in $G$. The adapted
1595: algorithm can be used similarly to \VCS\ in order to compute $\maxSol \P G$.
1596:
1597: \begin{theorem}
1598: %Let $\P$ be a property.
1599: Suppose that the input-restricted maximal
1600: $\P$-subgraphs problem is in \PTIME. Then, the
1601: maximal $\P$-subgraphs problem is {\rm P}-enumerable if
1602: {\em (1)\/} $\P$ is rooted-hereditary and $G$ is acyclic
1603: {\em or (2)\/} $\P$ is connected-hereditary and the underlying
1604: undirected graph of $G$ is a tree.
1605: \end{theorem}
1606:
1607:
1608: \paragraph{Incremental Polynomial Time.}
1609: None of the complexity results presented have provided conditions for
1610: the maximal $\P$-subgraphs problem to be solvable in incremental
1611: polynomial time.
1612: %
1613: By slightly changing the procedure \VCS\
1614: we can derive an algorithm that computes $\maxSolVert \P G
1615: {v_r}$ in incremental
1616: polynomial time for an important special case. Using this adapted
1617: algorithm, $\maxSol \P G$ can also be computed in incremental
1618: polynomial time, for connected-hereditary and rooted-hereditary
1619: properties. %The algorithm and a
1620: %full proof of correctness are not presented, due to lack of space.
1621: Our adapted algorithm can also be used for a hereditary property $\P$, by
1622: reducing $\P$ to an appropriately defined rooted-hereditary property.
1623: In addition, we derive a polynomial complexity result for returning
1624: $k$ maximal induced subgraphs, for any constant $k$.
1625:
1626: \begin{theorem}%[\mathversion{bold}Algorithms Print $\maxSol \P G$]
1627: \label{theorem:inc-poly}
1628: Let $\P$ be hereditary, connected-hereditary or rooted-hereditary
1629: property. Suppose that the io-restricted maximal
1630: $\P$-subgraphs problem is in \PTIME.
1631: Then,
1632: %\begin{enumerate}
1633: %\item
1634: {\em (1)\/} the maximal $\P$-subgraphs problem is in \PINC\
1635: %\item
1636: {\em and (2)\/} $k$ graphs from $\maxSol \P G$ can be returned in polynomial
1637: time, for any constant $k$.
1638: %\end{enumerate}
1639: \end{theorem}
1640:
1641: \proofsketch
1642: Item~2 follows directly from Item~1. To show Item~1,
1643: let $G$ be a graph with $n$ vertices.
1644: By careful observation, one may note that after at most $n^2$
1645: iterations of the loop in Line 5 of \VCS, an additional graph will
1646: be in $\STACK_2$. One can take advantage of this fact to adapt \VCS\
1647: so that it will run in incremental polynomial time, by having {\sc
1648: PushAppropriate}$\paramP$ print graphs as it adds them to
1649: $\STACK_2$. (Care has to be taken not to print graphs that appeared
1650: before in a previous call to \VCS.)
1651: \qed
1652:
1653: \begin{corollary}
1654: The maximal $\PCBIP$ problem is in \PINC.
1655: \end{corollary}
1656:
1657: \eat{
1658: This paper considers the problem of returning {\em all\/} maximal
1659: solutions for a given property $\P$ and graph $G$. Another interesting
1660: problem is that of returning $k$ maximal solutions for $\P$ and
1661: $G$. Our incremental polynomial algorithm can be used to solve
1662: such problems in polynomial time, if the conditions of
1663: Theorem~\ref{theorem:inc-poly} hold.
1664: }
1665: \eat{
1666: \begin{corollary}%[\mathversion{bold}Generating $K$ Solutions]
1667: Let $G$ be a graph and $\P$ be a property.
1668: Suppose that either {\em
1669: (1)\/} $\P$ is hereditary or rooted-hereditary and the input-restricted
1670: maximal $\P$-subgraphs problem is in \PTIME\ {\em or
1671: (2)\/} $\P$ is a
1672: connected-hereditary property and the io-restricted maximal
1673: $\P$-subgraphs problem is in \PTIME.
1674: Then, it is possible to return $k$ graphs
1675: from $\maxSol \P G$ in polynomial time, for any constant $k$.
1676: \end{corollary}
1677: }
1678:
1679:
1680: %\input conclusion
1681: \section{Conclusion} \label{sec:conclusion}
1682:
1683: This paper reduces the maximal $\P$-subgraphs problem to restricted
1684: versions of the same problem by providing algorithms that solve the
1685: general problem, assuming that an algorithm for a
1686: restricted version is given. Our results imply that when attempting to
1687: efficiently solve the maximal $\P$-subgraphs problem, it is not
1688: necessary to define an algorithm that works for the general
1689: case. Instead, an algorithm for restricted cases must be
1690: defined. An efficient method for solving the maximal
1691: $\P$-subgraphs problem for the general case is automatically
1692: derived from our algorithms.
1693:
1694: Sometimes it turns out that algorithms for restricted cases of the
1695: maximal $\P$-subgraphs problem are straightfoward. For example, this
1696: is the case with the properties $\PBIP$ and $\PCBIP$. There are
1697: additional properties for which this holds, e.g., the set of
1698: independent sets, the set of star graphs, etc. Thus, our results
1699: immediately imply that the maximal \prop{is an independent
1700: set}-subgraphs problem is both P-enumerable and in \PINC,
1701: and the maximal \prop{is a star
1702: graph}-subgraphs problem is in \PINC. Note
1703: that it is significantly easier to come up with algorithms that solve
1704: the restricted versions of these problems than to come up with
1705: algorithms that solve the general cases.
1706:
1707:
1708: Interestingly, our results can be applied to
1709: the database problem of computing maximal query answers. Well-known
1710: semantics for this problem, e.g., full
1711: disjunctions~\cite{Galindo-Legaria:Full:Disjunctions}, can be modeled
1712: as
1713: graph properties. It is often easy to define algorithms that solve the
1714: restricted versions of the maximal $\P$-subgraph problem, for graph
1715: properties that correspond to semantics for incomplete
1716: information. Hence, the results in this paper have immediate practical
1717: applications for efficiently computing maximal query answers.
1718:
1719: %implythe results in this paper form the
1720: %basis~\cite{ICDT:Submission} which improve upon the complexity results
1721: %for generating maximal query answers for several different semantics.
1722:
1723: \eat{Such restricted versions are often easier to
1724: solve for specific properties $\P$ than the unrestricted version. Two
1725: examples of properties for which an algorithm that solves a restricted
1726: version is obvious are $\PBIP$ and $\PCBIP$.
1727: %The main contributions of this paper are as follows.
1728: % First,
1729: For hereditary properties, the algorithm {\sc GenHered} reduces
1730: the maximal $\P$-subgraphs problem to the input-restricted maxmimal
1731: $\P$-subgraphs problem. For connected-hereditary or rooted-hereditary
1732: properties, the algorithm {\sc GenWithVertex} reduces the maximal
1733: $\P$-subgraphs problem to the io-restricted maxmimal $\P$-subgraphs
1734: problem. These reductions give a complete characterization of when the
1735: maximal $\P$-subgraphs problem is in \PIO, for hereditary and
1736: rooted-hereditary properties, by reducing these problems to the
1737: input-restricted maximal $\P$-subgraphs problem and the io-restricted
1738: maximal $\P$-subgraphs problem, respectively.
1739: If certain additional conditions hold, we have shown that the maximal
1740: $\P$-subgraphs problem is in \PINC or is P-enumerable.
1741: }
1742:
1743:
1744: % Namely, for hereditary properties the
1745: %maximal $\P$-subgraphs is in \PIO if and
1746: %only if the input-restricted maximal $\P$-subgraphs problem is in \PIO
1747: %and for rooted-hereditary properties the
1748: %maximal $\P$-subgraphs is in \PIO if and only if the io-restricted
1749: %maximal $\P$-subgraphs problem is in \PIO.
1750:
1751:
1752:
1753: \eat{
1754: \begin{table}[t]
1755: \begin{tabular}{lccc}
1756: \toprule
1757: Restricted in & Hereditary & Connected Hereditary & Rooted Hereditary
1758: \\ \midrule
1759: input \PIO & \PIO & & \PIO \\ \midrule
1760: io \PIO & \PIO & \PIO & \PIO \\ \midrule
1761: input-restricted,
1762: & \PINC, & \PINC, & \PINC, \\
1763: io-restricted: \PTIME & P-enumerable & P-enumerable & P-enumerable \\
1764: & for arbitrary $G$ & if $G$ is acyclic & if $G$ is a tree \\
1765: \bottomrule
1766: \end{tabular}
1767: \end{table}
1768: }
1769:
1770: \eat{
1771: A complete
1772: characterization is given for when hereditary and
1773: rooted-hereditary properties are in \PIO.
1774:
1775:
1776: The goal of this paper is to investigate when all maximal solutions for
1777: hereditary, connected-hereditary, and rooted-hereditary properties can
1778: be computed in polynomial time under input-output complexity.
1779: Towards this end, {\em
1780: polynomially-extendable\/} and {\em polynomially
1781: vertex-extendible\/} properties are defined. The main
1782: results are
1783: about hereditary properties that are also polynomially-extendable,
1784: and connected-hereditary or rooted-hereditary properties that are
1785: also polynomially vertex-extendible. In both of these
1786: cases, all maximal solutions can be generated in polynomial time
1787: under input-output complexity. We show that all
1788: polynomially-solvable hereditary properties are
1789: polynomially-extendable and all polynomially-solvable
1790: rooted-hereditary properties are polynomially
1791: vertex-extendible. It is often easy to verify whether a
1792: property is polynomially extendible or polynomially
1793: vertex-extendible. In such cases, one can immediately determine whether a
1794: property is polynomially solvable.
1795:
1796: For hereditary and rooted-hereditary properties $\P$, such that
1797: $\funExtend n m$ is polynomial in $n$ and $m$, and for
1798: connected-hereditary properties $\P$, such that $\funExtendVert n m$ is
1799: polynomial in $n$ and $m$, we present an incremental polynomial
1800: algorithm that generates all maximal solutions. For such properties,
1801: we also show that $k$ maximal solutions can be generated in polynomial
1802: time in the size of the input, for a constant $k$.
1803:
1804: We now present examples of hereditary, connected-hereditary and
1805: rooted-hereditary properties which were studied independently in the
1806: past. For these properties, we demonstrate how our results contain and
1807: improve upon previous results.
1808:
1809: \paragraph{Graph Theory.}
1810: One application where it is of importance to find all maximal solutions
1811: to a hereditary property is that of graph coloring.
1812: There are algorithms for coloring a graph that
1813: first compute all maximal independent sets of the graph or all maximal
1814: bipartite subgraphs of the graph. An algorithm for computing maximal
1815: independent sets was presented
1816: in~\cite{Johnson-Yannakakis:Generating-Maximal-Independents-Sets}.
1817: %,Tsukiyama-Maximal:Independant:Sets}.
1818: In~\cite{Number:Bipartite:Graphs}, an
1819: algorithm for finding all maximal bipartite subgraphs of a graph is
1820: presented. This algorithm computes all maximal bipartite subgraphs of
1821: a graph $G$ with $n$ vertices in time proportional to the maximal
1822: number of bipartite subgraphs that a graph of size $n$ may
1823: have. However, this algorithm is not guaranteed to be polynomial in
1824: the size of the actual input and output. Since \prop{is a bipartite
1825: graph} is a polynomially-extendable hereditary property, our
1826: algorithm \CHP, presented
1827: in Section~\ref{sec:hereditary},
1828: computes all maximal bipartite subgraphs in
1829: polynomial time under input-output complexity.
1830:
1831: \eat{
1832: \paragraph{Classical Database Theory.}
1833: Many database problems involve
1834: hereditary properties. For example, in order to check if a
1835: relation $R$ is in BCNF, one must generate
1836: all minimal keys of $R$. The characteristic of being a minimal key
1837: is closely related to a hereditary property, since the property
1838: \prop{is a complement of a minimal key} is hereditary.
1839: Many data mining tasks, such as finding frequent
1840: itemsets, involve
1841: generating maximal sets with a given property.
1842: Although the problems discussed in this subsection involve hereditary
1843: properties, it is not yet clear if it is possible to apply our techniques
1844: to these problems.
1845: }
1846:
1847: \paragraph{Computing Maximal Answers to Queries.}
1848: With the development of the World-Wide Web and the high availability
1849: of data from widely varying sources, the problem of integrating
1850: information from heterogeneous sources has received much attention. In
1851: such scenarios, it is common for the information available to be
1852: partial. In general it may be the case that there is not enough
1853: information to completely answer (satisfy) a query. Under such
1854: conditions, one is interested in finding all maximal answers for a
1855: given query.
1856:
1857: %\begin{description}
1858: %\item[Full Disjunctions:] %\paragraph{Full Disjunction.}
1859: %\label{sec:examples:fd}
1860: Full disjunctions are a well-known method used to answer queries in incomplete
1861: relational databases
1862: (see~\cite{Rajaraman:Ullman-Computing:Full:Disjunctions-PODS,Galindo-Legaria:Full:Disjunctions}).
1863: Only recently, \cite{Kanza:Sagiv:Full:Disjunctions} showed that
1864: full disjunctions can be computed in polynomial time under input-output
1865: complexity.
1866: We show in Appendix~\ref{appendix:examples} that a full disjunction
1867: can be computed
1868: by generating maximal solutions for a suitably defined
1869: connected-hereditary property. A precise definition of a full disjunction
1870: and of the corresponding
1871: connected-hereditary property $\P_{\sf fd}$
1872: is presented in Appendix~\ref{appendix:examples}. The property
1873: $\P_{\sf fd}$ is polynomially vertex-extendible and $e'_{\P_{\sf
1874: fd}}(n, m)$ is polynomial in $n$ and $m$.
1875: Therefore, this
1876: paper improves on the result in~\cite{Kanza:Sagiv:Full:Disjunctions}
1877: since the algorithm in Section~\ref{sec:ip:connected-hereditary} can
1878: be used to compute $\P_{\sf fd}$ in incremental polynomial time.
1879:
1880:
1881: %\item[Incomplete Answers over Semistructured Data:]
1882: %\label{sec:examples:ss}
1883: In~\cite{Kanza:Et:Al-Incomplete:Answers:Over:SSDs-PODS} the problem of
1884: computing maximal answers for rooted graph queries over
1885: rooted graph databases was considered. For two of the semantics
1886: presented, {\em {\sc or}-semantics} and {\em weak semantics},
1887: algorithms that generate all maximal answers in polynomial time
1888: under input-output complexity were
1889: presented~\cite{Kanza:Et:Al-Incomplete:Answers:Over:SSDs-PODS,Kanza:Sagiv:Full:Disjunctions}.
1890: One can compute maximal
1891: answers under weak semantics and under
1892: {\sc or}-semantics by computing maximal solutions for
1893: appropriately defined rooted-hereditary properties. The definition of
1894: weak semantics and {\sc or}-semantics, along with
1895: rooted-hereditary properties $\P_{\sf weak}$ and $\P_{\sf or}$ for
1896: these problems, are presented in Appendix~\ref{appendix:examples}.
1897: The algorithms
1898: presented in this paper for generating maximal solutions for
1899: rooted-hereditary properties can be used to solve these problems.
1900: Since {\em (1)\/} $\P_{\sf weak}$ and $\P_{\sf or}$ are polynomially
1901: vertex-extendible {\em and (2)\/} $e_{{}_{\P_{\sf weak}}}(n,m)$ and
1902: $e_{{}_{\P_{\sf or}}}(n,m)$ are polynomial in $n$ and $m$, it is possible
1903: to compute all maximal answers under weak semantics and under {\sc
1904: or}-semantics in incremental polynomial time, which is an
1905: improvement on previous results.
1906:
1907: %\item[Extracting Relations from XML:]
1908: The problem of extracting
1909: maximal tuples (i.e., tuples padded with null values) from XML
1910: documents was considered in~\cite{Cohen:Generating:Relation}. They
1911: generated maximal tuples that are {\em completely interconnected\/} or
1912: {\em reachably interconnected} in polynomial time under input-output
1913: complexity. It is fairly straightforward to define a hereditary
1914: property that corresponds to complete interconnectedness and a
1915: connected-hereditary property that corresponds to reachable
1916: interconnectedness. Hence, our algorithms can be used to generate
1917: their maximal tuples. In addition, our algorithms are superior to
1918: those in~\cite{Cohen:Generating:Relation} in their
1919: runtime. Furthermore, our incremental polynomial algorithms can be
1920: used to generate maximal tuples in incremental polynomial time.
1921:
1922: \enlargethispage{\baselineskip}
1923: In summary, we believe that this paper lays a theoretical foundation for the
1924: problem of defining query semantics over incomplete information. The
1925: results in this paper imply that when defining a semantics for
1926: incomplete query answers it is often
1927: useful to define the semantics in terms of a hereditary,
1928: connected-hereditary or rooted-hereditary property that is
1929: polynomially solvable. In fact, we have shown that previously defined
1930: semantics for incomplete information were unwittingly defined in
1931: this way. We leave for future work the task of defining a semantics
1932: for incomplete
1933: information for XQuery, based on the principles presented in this paper.
1934:
1935:
1936: \eat{
1937: One open question is whether is is possible for a property to be
1938: connected-hereditary, polynomially solvable and {\em not\/} polynomially
1939: vertex-extendible.
1940: }
1941: }
1942: %\end{description}
1943:
1944: %{\small
1945: \bibliography{strings,%
1946: hereditary-lit}
1947: \bibliographystyle{abbrv}
1948: %\bibliographystyle{plain}
1949: %}
1950:
1951:
1952: \end{document}
1953:
1954: