cs0410039/main.tex
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: