1: \newif\ifmakebbl
2: %\makebbltrue
3: %
4: % Format for letter paper !!
5: %
6:
7: \documentclass[11pt]{article}
8: \usepackage[english]{babel}
9: \selectlanguage{english}
10: \usepackage{epic,eepic}%,eclbip,ecltree}
11: \usepackage{epsfig}
12: \usepackage{latexsym}
13: \usepackage{times}
14: \usepackage{theorem}
15: %\usepackage{supertabular}
16:
17:
18: \newcommand{\tuple}[1]{\langle#1\rangle}
19:
20: %%%% Georg's Macros %%%%%%%%%%%%%
21:
22: \newcommand{\efi}{\epsilon^{\gvp}_i}
23: \newcommand{\egi}{\epsilon^{\psi}_i}
24: \newcommand{\ev}{\epsilon(v)}
25: \newcommand{\evar}[1]{\epsilon(#1)}
26:
27: %%% Skips macros %%%%%%%%%%%%%%%
28:
29: \newcommand{\nbls}{\vspace*{-1\baselineskip}}
30: \newcommand{\hnbls}{\vspace*{-.5\baselineskip}}
31: \newcommand{\tnbls}{\vspace*{-.33\baselineskip}}
32: \newcommand{\qnbls}{\vspace*{-.25\baselineskip}}
33: \newcommand{\bls}{\vspace*{1\baselineskip}}
34: \newcommand{\hbls}{\vspace*{.5\baselineskip}}
35: \newcommand{\tbls}{\vspace*{.33\baselineskip}}
36: \newcommand{\qbls}{\vspace*{.25\baselineskip}}
37:
38: %%%%%%%% Kaz %%%%%%%%%%%%%%%
39:
40: \newcommand{\qed}[0]{\hspace*{0mm}\hfill $\Box$\vspace{3mm}}
41: \newcommand{\ol}[1]{{\overline#1}}
42: \newcommand{\proof}{\noindent {\bf Proof}.\ }
43:
44: \newcommand{\raf}[1]{(\ref{#1})}
45:
46: \newcommand{\OR}{\bigvee}
47: \newcommand{\AN}{\bigwedge}
48:
49: %\newcommand{\hspacea}{\hspace*{.57cm}}
50: %\newcommand{\hspaceb}{\hspace*{.92cm}}
51: %\newcommand{\hspacec}{\hspace*{1.2cm}}
52: %\newcommand{\hspaced}{\hspace*{1.74cm}}
53: %\newcommand{\hspacee}{\hspace*{2.28cm}}
54: %\newcommand{\hspacef}{\hspace*{2.58cm}}
55: % Full left alignment
56: \newcommand{\hspacea}{\hspace*{0cm}}
57: \newcommand{\hspaceb}{\hspace*{.35cm}}
58: \newcommand{\hspacec}{\hspace*{.45cm}}
59: \newcommand{\hspaced}{\hspace*{1.15cm}}
60: \newcommand{\hspacee}{\hspace*{1.71cm}}
61: \newcommand{\hspacef}{\hspace*{2.01cm}}
62:
63:
64:
65: \newcommand{\cS}{{\cal S}}
66: \newcommand{\cF}{{\cal F}}
67: \newcommand{\cC}{{\cal C}}
68: \newcommand{\cH}{{\cal H}}
69: \newcommand{\cA}{{\cal A}}
70: \newcommand{\cB}{{\cal B}}
71:
72: \newcommand{\ga}{\alpha}
73: \newcommand{\gb}{\beta}
74: \newcommand{\gc}{\gamma}
75: \newcommand{\gd}{\delta}
76: \newcommand{\gD}{\Delta}
77: \newcommand{\gG}{{\it PI}}
78: \newcommand{\gve}{\varepsilon}
79: \newcommand{\gvp}{\varphi}
80: \newcommand{\Tw}{{\it Tw}}
81: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Georg:
82:
83: \newcommand{\np}{{\rm NP}}
84: \newcommand{\NP}{{\rm NP}}
85: \newcommand{\coNP}{\textrm{co-NP}}
86: \newcommand{\pol}{{\rm P}}
87: \newcommand{\Pol}{{\rm P}}
88: \newcommand{\nondet}[1]{{#1\textrm{-}\Pol}}
89: \newcommand{\betapol}[1]{{\beta_{#1}\Pol}}
90: \newcommand{\cobetapol}[1]{{{\rm co}\textrm{-}\beta_{#1}\Pol}}
91:
92: \newcommand{\Tr}{\mathit{Tr}}
93:
94: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
95:
96: \newtheorem{theorem}{Theorem}[section]
97: \newtheorem{example}{Example}[section]
98: \newtheorem{lemma}[theorem]{Lemma}
99: \newtheorem{proposition}[theorem]{Proposition}
100: \newtheorem{corollary}[theorem]{Corollary}
101: \newtheorem{conjecture}{Conjecture}[section]
102: \newtheorem{remark}{Remark}[section]
103: \newtheorem{definition}{Definition}[section]
104:
105: %%%% standard values
106: \global\setlength\theorempreskipamount{12pt plus 5pt minus 3pt}
107: \global\setlength\theorempostskipamount{8pt plus 3pt minus 1.5pt}
108: %%% other values
109: %\global\setlength\theorempreskipamount{8pt plus 4pt minus 3pt}
110: %\global\setlength\theorempostskipamount{3pt plus 2pt minus 1.5pt}
111:
112: \newcommand{\nop}[1]{}
113:
114: \renewcommand{\baselinestretch}{1.1}
115:
116: \oddsidemargin 0 pt % Left margin on odd-numbered pages.
117: %\oddsidemargin .137in % Left margin for letter paper
118: \evensidemargin=\oddsidemargin
119:
120: \marginparwidth 0 pt % Width of marginal notes.
121: \topmargin 0 in % Nominal distance from top of page to top of
122: %\addtolength{\topmargin}{\baselineskip}
123: \footskip 30pt
124: \textheight 8.5in % Height of text (including
125: % footnotes/figures)
126: %\addtolength{\textheight}{1.9\baselineskip}
127: %\textwidth 6.5in % Width of text line.
128: \textwidth 6.25in % Width of text line.
129:
130: \fboxsep 1mm
131: \fboxrule .2mm
132: \fboxsep 1mm
133: \fboxrule .2mm
134: %****}
135:
136: \newcounter{myenumctr}
137:
138: \newenvironment{myenumerate}{\begin{list}{\arabic{myenumctr}.}{\usecounter{myenumctr}
139: \setlength{\leftmargin}{0pt}
140: \setlength{\itemindent}{\labelwidth}}}
141: {\end{list}}
142:
143: \newenvironment{myitemize}{\begin{list}{$\bullet$}{\setlength{\leftmargin}{0pt}
144: \setlength{\itemindent}{\labelwidth}}}
145: {\end{list}}
146:
147: %%%%%%%%%% Format from Horn-Difference paper %%%%%%%%%%%%%%%%%%%%%%%%
148:
149: \title{
150: \vspace*{-2\baselineskip}
151: \bf New Results on Monotone Dualization and \\ Generating Hypergraph
152: Transversals%
153: \thanks{A shorter version of this paper
154: appears in: Proceedings of the 34th ACM Symposium on Theory of Computing (STOC-02), May 19-21, 2002, Montreal, Quebec, Canada.}
155: \\~\\[-2ex]}
156:
157: \author{Thomas Eiter\thanks{Institut f\"{u}r
158: Informationssysteme, Technische Universit\"{a}t Wien, Favoritenstra{\ss}e
159: 9-11, A-1040 Vienna,
160: Austria. Email: eiter@kr.tuwien.ac.at
161: %Phone: +43-1-58801-18460, Fax: +43-1-58801-18493.
162: }
163: \qquad Georg Gottlob\thanks{Institut f\"{u}r
164: Informationssysteme, Technische Universit\"{a}t Wien, Favoritenstra{\ss}e
165: 9-11, A-1040 Vienna,
166: Austria. Email: gottlob@dbai.tuwien.ac.at
167: %,Phone: +43-1-58801-18420, Fax: +43-1-58801-18492
168: }
169: \qquad
170: Kazuhisa Makino\thanks{Division of Systems Science,
171: Graduate School of Engineering Science,
172: Osaka University,
173: Toyonaka, Osaka, 560-8531, Japan. Email: makino@sys.es.osaka-u.ac.jp}
174: %,Phone: +81-6-6850-6388,
175: %Fax: +81-6-6850-6341%
176: }
177:
178: \date{}
179:
180: \newlength{\help}
181:
182: \begin{document}
183:
184: \maketitle
185:
186:
187: %\nbls
188: %\renewcommand{\abstractname}{Summary}
189:
190: \begin{abstract}
191: We consider the problem of dualizing a monotone CNF (equivalently,
192: computing all minimal transversals of a hypergraph), whose associated
193: decision problem is a prominent open problem in \NP-completeness. We
194: present a number of new polynomial time resp.\ output-polynomial time
195: results for significant cases, which largely advance the tractability
196: frontier and improve on previous results. Furthermore, we show that
197: duality of two monotone CNFs can be disproved with limited
198: nondeterminism. More precisely, this is feasible in polynomial time
199: with $O(\chi(n)\cdot\log n)$ suitably guessed bits, where $\chi(n)$ is
200: given by $\chi(n)^{\chi(n)} = n$; note that $\chi(n) = o(\log
201: n)$. This result sheds new light on the complexity of this important
202: problem.
203: \end{abstract}
204:
205: \nbls
206:
207: {\small
208: \begin{tabbing}
209: {\bf Keywords}: \= Dualization, hypergraphs, transversal computation,
210: output-polynomial algorithms, \\
211: \> combinatorial enumeration, treewidth, hypergraph acyclicity, limited
212: nondeterminism.
213: \end{tabbing}
214: }
215:
216:
217: \section{Introduction}
218:
219: Recall that the prime CNF of a monotone Boolean function $f$ is the
220: unique formula $\gvp=\bigwedge_{c\in S} c$ in conjunctive normal form
221: where $S$ is the set of all prime implicates of $f$, i.e., minimal
222: clauses $c$ which are logical consequences of $f$. In this paper, we
223: consider the following problem:
224:
225: \begin{center}
226: \fbox{
227: \parbox{5.5in}{
228: \smallskip
229:
230: \centerline{Problem {\sc Dualization}}
231:
232: \medskip
233: \centerline{\begin{tabular}{rl}
234: Input:&The prime CNF $\gvp$ of a monotone Boolean function
235: $f=f(x_1,\ldots,x_m)$. \\
236: Output:&The prime CNF $\psi$ of its dual $f^d =
237: \ol{f}(\ol{x_1},\ldots,\ol{x_m})$.
238: \end{tabular}}
239: \smallskip
240: }}
241: \end{center}
242:
243: It is well known
244: that {\sc Dualization} is equivalent to the {\sc Transversal
245: Computation} problem, which requests to compute the set of all minimal
246: transversals (i.e., minimal hitting sets) of a given hypergraph ${\cal
247: H}$, in other words, the {\em transversal hypergraph} $\Tr({\cal H})$ of $\cal H$.
248: Actually, these problems can be viewed as the same problem, if the
249: clauses in a monotone CNF $\gvp$ are identified with the sets of
250: variables they contain.
251: {\sc Dualization} is a search problem; the associated decision problem
252: {\sc Dual} is to decide whether two given monotone prime CNFs $\gvp$
253: and $\psi$ represent a pair $(f,g)$ of dual Boolean functions.
254: Analogously, the decision problem {\sc Trans-Hyp} associated with {\sc
255: Transversal Computation} is deciding, given hypergraphs $\cal H$ and
256: $\cal G$, whether $\cal G = \Tr({\cal H})$.
257:
258: {\sc Dualization} and several problems which are like transversal computation known to be
259: computationally equivalent to problem {\sc Dualization} (see
260: \cite{eite-gott-95}) are of interest in various areas such as
261: database theory (e.g.\ \cite{mann-raih-86,thi-86}), machine learning
262: and data mining (e.g., \cite{BGKM2001,BGKM2002,domingo-etal-99,guno-etal-97}), game
263: theory (e.g.\
264: \cite{Gur75,Ram90,Read78}), artificial intelligence (e.g.,
265: \cite{gogi-etal-98,kavv-etal-93,khar-95,reit-87}),
266: mathematical programming (e.g., \cite{BEGKM2001}), and distributed
267: systems (e.g., \cite{garc-barb-85,ibar-kame-93}) to mention a few.
268:
269: While the output CNF $\psi$ can be exponential in the size of $\gvp$,
270: it is currently not known whether $\psi$ can be computed in {\em
271: output-polynomial} (or {\em polynomial total}) {\em time}, i.e., in
272: time polynomial in the combined size of $\gvp$ {\em and} $\psi$. Any
273: such algorithm for {\sc Dualization} (or for {\sc Transversal
274: Computation}) would significantly advance the state of the art of
275: several problems in the above application areas. Similarly, the
276: complexity of {\sc Dual} (equivalently, {\sc Trans-Hyp}) is open since
277: more than 20 years now (cf.\
278: \cite{bioc-ibar-95,eite-gott-95,john-91,john-etal-88,lawl-etal-80}).
279:
280: Note that {\sc Dualization} is solvable in polynomial total time on a
281: class $\cal C$ of hypergraphs iff {\sc Dual} is in PTIME for all pairs
282: $({\cal H},{\cal G})$, where $\cal H\in {\cal C}$ \cite{bioc-ibar-95}.
283: {\sc Dual} is known to be in $\coNP$ and the best currently known
284: upper time-bound is quasi-polynomial time
285: ~\cite{fred-khac-96,gaur-99,tamaki-00}.
286: Determining
287: the complexities of {\sc Dualization} and {\sc Dual}, and of
288: equivalent problems such as the transversal problems, is a prominent
289: open problem. This is witnessed by the fact that these problems are
290: cited in a rapidly growing body of literature and have been referenced
291: in various survey papers and complexity theory retrospectives,
292: e.g.~\cite{john-91,lova-92,papa-97}.
293:
294: Given the importance of monotone dualization and equivalent problems
295: for many application areas, and given the long standing failure to
296: settle the complexity of these problems, emphasis was put on finding
297: tractable cases of {\sc Dual} and corresponding polynomial total-time
298: cases of {\sc Dualization}. In fact, several relevant tractable
299: classes were found by various authors; see e.g.\
300: \cite{boro-etal-00,BGH93,BHIK97,cram-87,domingo-etal-99,eite-92,eite-gott-95,gaur-krish-00,maki-ibar-97,MI98,mish-pitt-97,PS94} and references
301: therein. Moreover, classes of formulas were identified on which {\sc
302: Dualization} is not just polynomial total-time, but where the
303: conjuncts of the dual formula can be enumerated with {\em incremental
304: polynomial delay}, i.e., with delay polynomial in the size of the
305: input plus the size of all conjuncts so far computed, or even with
306: {\em polynomial delay}, i.e., with delay polynomial in the input size
307: only. On the other hand, there are also results which show that
308: certain well-known algorithms for {\sc Dualization} are not
309: polynomial-total time. For example, \cite{eite-gott-95,mish-pitt-97}
310: pointed out that a well-known sequential algorithm, in
311: which the clauses $c_i$ of a CNF $\gvp=c_1\land\cdots\land c_m$ are
312: processed in order $i=1,\ldots,m$, is not polynomial-total time in general. Most
313: recently, \cite{taka-02} showed that this holds even if an
314: optimal ordering of the clauses is assumed (i.e., they may be
315: arbitrarily arranged for free).
316:
317: \medskip
318:
319: \noindent{\bf Main Goal.} The main goal of this paper is to present
320: important new polynomial total time cases of {\sc Dualization} and,
321: correspondingly, PTIME solvable subclasses of {\sc Dual} which
322: significantly improve previously considered classes. Towards this aim,
323: we first present a new algorithm {\sc Dualize} and prove its
324: correctness. {\sc Dualize} can be regarded as a generalization of a
325: related algorithm proposed by Johnson, Yannakakis, and
326: Papadimitriou~\cite{john-etal-88}. As other dualization algorithms,
327: {\sc Dualize} reduces the original problem by self-reduction to
328: smaller instances. However, the subdivision into subproblems proceeds
329: according to a particular order which is induced by an arbitrary fixed
330: ordering of the variables. This, in turn, allows us to derive some
331: bounds on intermediate computation steps which imply that {\sc
332: Dualize}, when applied to a variety of input classes, outputs the
333: conjuncts of $\psi$ with polynomial delay or incremental polynomial
334: delay. In particular, we show positive results for the following input
335: classes:
336:
337: %\tnbls
338:
339: %\begin{description}
340: \begin{myitemize}
341: \item[$\bullet$] {\bf Degenerate CNFs.} We generalize the notion of
342: $k$-degenerate graphs~\cite{toft-95} to hypergraphs and define {\em
343: $k$-degenerate monotone CNFs} resp.\ {\em hypergraphs}. We prove that
344: for any constant $k$, {\sc Dualize} works with polynomial delay on
345: $k$-degenerate CNFs. Moreover, it works in output-polynomial time on
346: $O(\log n)$-degenerate CNFs.
347:
348: %\tnbls
349:
350: \item[$\bullet$] {\bf Read-$k$ CNFs.} A CNF is {\em read-$k$}, if each
351: variable appears at most $k$ times in it. We show that for read-$k$
352: CNFs, problem {\sc Dualization} is solvable with
353: polynomial delay, if $k$ is constant, and in total polynomial time, if
354: $k=O(\log(\|\gvp\|)$.
355: Our result for constant $k$ significantly improves upon the
356: previous best known algorithm \cite{domingo-etal-99}, which has a higher
357: complexity bound, is not polynomial delay, and outputs the clauses of $\psi$
358: in no specific order. The result for $k=O(\log \|\gvp\|)$ is a non-trivial
359: generalization of the result in \cite{domingo-etal-99}, which was
360: posed as an open problem \cite{domingo-97}.
361:
362: %\tnbls
363:
364: \item[$\bullet$] {\bf Acyclic CNFs.} There are several notions of
365: hypergraph resp.\ monotone CNF acyclicity~\cite{fagi-83}, where the
366: most general and well-known is $\alpha$-acyclicity. As shown
367: in~\cite{eite-gott-95}, {\sc Dualization} is polynomial total time for
368: $\beta$-acyclic CNFs; $\beta$-acyclicity is the hereditary version of
369: $\alpha$-acyclicity and far less general. A similar result for
370: $\alpha$-acyclic prime CNFs was left open. (For non-prime
371: $\alpha$-acyclic CNFs, this is trivially as hard as the general
372: case.) In this paper, we give a positive answer and show that for
373: $\alpha$-acyclic (prime) $\gvp$, {\sc Dualization} is solvable with
374: polynomial delay.
375: %As a side result, we can improve the result for $\beta$-acyclicity in
376: %\cite{eite-gott-95}.
377:
378: %\tnbls
379:
380: \item[$\bullet$] {\bf Formulas of Bounded Treewidth.} The {\em
381: treewidth}~\cite{robe-seym-86}
382: of a graph expresses its degree of cyclicity. Treewidth is an
383: extremely general notion, and bounded treewidth generalizes almost all
384: other notions of near-acyclicity. Following~\cite{chekuri-rajaraman-95}, we
385: define the treewidth of a hypergraph resp.\ monotone CNF $\gvp$ as the treewidth of its
386: associated (bipartite) variable-clause incidence graph. We show
387: that {\sc Dualization} is solvable with polynomial delay
388: (exponential in $k$) if the treewidth of $\gvp$
389: is bounded by a constant $k$, and in polynomial total time
390: if the treewidth is $O(\log\log \|\gvp\|)$.
391:
392: %\tnbls
393:
394: \item[$\bullet$] {\bf Recursive Applications of {\sc Dualize} and $k$-CNFs.}
395: We show that
396: if {\sc Dualize} is applied recursively and the recursion depth is
397: bounded by a constant, then {\sc Dualization} is solved in polynomial
398: total time. We apply this to provide a simpler proof of the known
399: result~\cite{BGH93,eite-gott-95} that monotone $k$-CNFs (where each conjunct
400: contains at most $k$ variables) can be dualized in output-polynomial
401: time.
402: %{\bf Theta: kriegen wir hier einen besseren bound als im SIAM paper?}
403: %\end{description}
404: \end{myitemize}
405:
406:
407: After deriving the above results, we turn our attention (in
408: Section~\ref{sec:nondet}) to the fundamental computational nature of
409: problems {\sc Dual} and {\sc Trans-Hyp} in terms of complexity theory.
410:
411: \medskip
412:
413: \noindent{\bf Limited nondeterminism.} In a landmark
414: paper, Fredman and Khachiyan~\cite{fred-khac-96}
415: proved that problem {\sc Dual} can be solved in quasi-polynomial
416: time. More precisely, they first gave an algorithm~A solving the
417: problem in $n^{O(\log^2 n)}$ time, and then a more complicated
418: algorithm~B whose runtime is bounded by $n^{4\chi(n)+O(1)}$ where $\chi(n)$
419: is defined by $\chi(n)^{\chi(n)}=n$. As noted in~\cite{fred-khac-96},
420: $\chi(n)\sim \log n/\log\log n = o(\log n)$; therefore, duality
421: checking is feasible in $n^{o(\log n)}$ time. This is the best upper
422: bound for problem {\sc Dual} so far, and shows that the problem is
423: most likely not \NP-complete.
424:
425: A natural question is whether {\sc Dual} lies in some lower complexity
426: class based on other resources than just runtime. In the present
427: paper, we advance the complexity status of this problem by showing
428: that its complement is feasible with {\em limited nondeterminism},
429: i.e, by a nondeterministic polynomial-time algorithm that makes only a
430: poly-logarithmic number of guesses. For a survey on complexity classes
431: with limited nondeterminism, and for several references
432: see~\cite{gold-etal-96}.
433: We first show by using a simple but
434: effective technique, which succinctly describes computation paths,
435: that testing non-duality is feasible in polynomial time with $O(\log^3
436: n)$ nondeterministic steps. We then observe that this approach can be
437: improved to obtain a bound of $O(\chi(n)\cdot\log n)$ nondeterministic
438: steps. {\em This result is surprising, because most researchers
439: dealing with the complexity of {\sc Dual} and {\sc Trans-Hyp} believed
440: so far that these problems are completely unrelated to limited
441: nondeterminism.}
442:
443: We believe that the results presented in this paper are significant,
444: and we are confident that they will be prove useful in various
445: contexts. First, we hope that the various
446: polynomial/output-polynomial cases of the problems which we identify
447: will lead to better and more general methods in various application
448: areas (as we show, e.g.\ in learning and data
449: mining~\cite{domingo-etal-99}), and that based on the algorithm {\sc
450: Dualize} or some future modifications, further relevant tractable
451: classes will be identified. Second, we hope that our discovery on
452: limited nondeterminism provides a new momentum to complexity research
453: on {\sc Dual} and {\sc Trans-Hyp}, and will push it towards settling
454: these longstanding open problems.
455:
456: The rest of this paper is structured as follows. The next section
457: provides some preliminaries and introduces notation. In
458: Section~\ref{sec:ordered}, we present our algorithm {\sc Dualize} for
459: dualizing a given monotone prime CNF. After that, we exploit this
460: algorithm in Section~\ref{sec:polynomial-cases} to derive a number of
461: polynomial instance classes of the problems {\sc Dualization} and {\sc
462: Dual}. In Section~\ref{sec:nondet} we then show that {\sc Dual} can be
463: solved with limited nondeterminism.
464:
465: \section{Preliminaries and Notation}
466: \label{sec:prelim}
467:
468: A {\em Boolean function} (in short, {\em function}) is a mapping
469: $f: \{0,1\}^{n} \to \{0,1\}$,
470: where $v \in \{0, 1\}^n$ is called a {\em Boolean vector} (in short, {\em
471: vector}).
472: %If $f(v) = 1$ (resp., 0),
473: %then $v$ is called a {\em true} (resp., {\em false}) vector of $f$.
474: %The set of all true vectors (resp., false vectors) is denoted by $T(f)$
475: %(resp., $F(f)$).
476: %A true vector $v$ of $f$ is {\em minimal} if there is no
477: %other true vector $w$ such that $w < v$ (i.e., $w \leq v$ and $w\not=v$),
478: %and let $\min T(f)$ denote the set of
479: %all minimal true vectors of $f$.
480: %A {\em maximal} false vector is
481: %symmetrically defined and $\max F(f)$ denotes the set of all maximal
482: %false vectors of $f$.
483: As usual, we write $g \leq f$ if $f$ and $g$ satisfy $g(v)
484: \leq f(v)$ for all $v \in \{0,1 \}^{n}$, and $g<f$ if $g\leq f$ and
485: $g\neq f$.
486: %If $h \leq f$ and there exists a vector $v$
487: %satisfying $h(v)=0$ and $f(v)=1$, we denote $h < f$.
488: A function $f$ is {\em monotone} (or {\em positive}), if $v \leq w$
489: (i.e., $v_i \leq w_i$ for all $i$) implies $f(v) \leq f(w)$ for all
490: $v,w \in \{0,1\}^n$. Boolean variables $x_1, x_2, \ldots , x_n$ and their
491: complements $\bar{x}_1, \bar{x}_2, \ldots , \bar{x}_n$ are called {\em
492: literals}. A {\em clause} (resp., {\em term}) is a disjunction
493: (resp., conjunction) of literals containing at most one of $x_i$ and
494: $\bar{x}_i$ for each variable. A clause $c$ (resp., term $t$) is an
495: {\em implicate} (resp., {\em implicant}) of a function $f$, if $f \leq
496: c$ (resp., $t \leq f$); moreover, it is {\em prime}, if there is no
497: implicate $c' < c$ (resp., no implicant $t' > t$) of $f$, and {\em
498: monotone}, if it consists of positive literals only. We denote by
499: $PI(f)$ the set of all prime implicants of $f$.
500:
501: A {\em conjunctive normal form} (CNF) (resp., disjunctive normal form,
502: DNF) is a conjunction of clauses (resp., disjunction of terms); it is
503: {\em prime} (resp.\ {\em monotone}), if all its members are prime
504: (resp.\ {\em monotone}). For any CNF (resp., DNF) $\rho$, we denote by
505: $|\rho|$ the number of clauses (resp., terms) in it. Furthermore, for
506: any formula $\gvp$, we denote by $V(\gvp)$ the set of variables that
507: occur in $\gvp$, and by $\| \gvp \|$ its {\em length}, i.e.,
508: the number of literals in it.
509: % Add proviso about set notation.
510: We occasionally view CNFs $\gvp$ also as sets of clauses, and
511: clauses as sets of literals, and use respective notation (e.g., $c\in
512: \gvp$, $\ol{x_1}\in c$ etc).
513:
514: As well-known, a function $f$ is monotone iff it has a monotone
515: CNF. Furthermore, all prime implicants and prime implicates of a
516: monotone $f$ are monotone, and it has a unique prime CNF, given by the
517: conjunction of all its prime implicates. For example, the monotone
518: $f$ such that $f(v)=1$ iff $v\in
519: \{ (1100), (1110), (1101), (0111), (1111)\}$ has the unique prime CNF
520: $\gvp= x_2(x_1 \vee x_3)(x_1 \vee x_4)$.
521:
522: Recall that the {\em dual} of a function $f$, denoted $f^{d}$, is
523: defined by
524: $f^{d}(x) = \ol{f}(\ol{x})$,
525: where $\ol{f}$ and $\ol{x}$ is the complement of $f$ and $x$,
526: respectively. By definition, we have $(f^d)^d=f$. From De Morgan's
527: law, we obtain a formula for $f^{d}$ from any one of $f$ by exchanging
528: $\vee$ and $\wedge$ as well as the constants $0$ and $1$. For example,
529: if $f$ is given by $\gvp=x_1x_2 \vee \ol{x}_1(\ol{x}_3 \vee x_4)$,
530: then $f^d$ is represented by $\psi=(x_1 \vee x_2)(\ol{x}_1 \vee
531: \ol{x}_3x_4)$. For a monotone function $f$, let $\psi=\AN_{c \in C}( \OR_{x_i
532: \in c}x_i)$ be the prime CNF of $f^d$. Then by De Morgan's
533: law, $f$ has the (unique) prime DNF $\rho=\OR_{c \in C}(\AN_{x_i \in
534: c}x_i)$; in the previous example, $\rho = x_1 x_2 \lor x_2
535: x_3x_4$. Thus, we will regard {\sc Dualization} also as the problem of
536: computing the prime DNF of $f$ from the prime CNF of $f$.
537:
538: \section{Ordered Transversal Generation}
539: \label{sec:ordered}
540:
541: In what follows, let $f$ be a monotone function and
542: \begin{eqnarray}
543: \gvp &=&\AN_{i=1}^mc_i \label{eq-1}
544: \end{eqnarray}
545: its prime CNF, where we assume
546: without loss of generality
547: %w.l.o.g.
548: that all variables $x_j$ ($j=1,2, \ldots n$) appear in $\gvp$. Let
549: $\gvp_i$ ($i=0,1, \ldots , n$) be the CNF obtained from $\gvp$ by
550: fixing variables $x_j=1$ for all $j$ with $j \geq i+1$. By
551: definition, we have $\gvp_0= 1$ (truth) and $\gvp_n=\gvp$. For
552: example, consider $\gvp=(x_1 \vee x_2)(x_1 \vee x_3)(x_2 \vee x_3 \vee
553: x_4)(x_1 \vee x_4)$. Then we have $\gvp_0=\gvp_1=1$, $\gvp_2=(x_1
554: \vee x_2)$, $\gvp_3=(x_1 \vee x_2)(x_1 \vee x_3)$, and $\gvp_4=\gvp$.
555: Similarly, for the prime DNF
556: \begin{eqnarray}
557: \psi&=&\textstyle \OR_{t \in \gG(f)}t \label{eq-2}
558: \end{eqnarray}
559: of $f$, we denote
560: by $\psi_i$ the DNF obtained from $\psi$ by fixing variables $x_j=1$
561: for all $j$ with $j \geq i+1$. Clearly, we have $\gvp_i \equiv
562: \psi_i$, i.e., $\gvp_i$ and $\psi_i$ represent the same function
563: denoted by $f_i$.
564:
565: \begin{proposition}
566: \label{prop1}
567: Let $\gvp$ and $\psi$ be any CNF and DNF for $f$, respectively. Then,
568: for all $i\geq 0$,
569: \begin{itemize}
570: \item[(a)]
571: $\|\gvp_i\| \leq \|\gvp\|$ and $|\gvp_i| \leq |\gvp|$, and
572: \item[(b)]
573: $\|\psi_i\| \leq \|\psi\|$ and $|\psi_i| \leq |\psi|$.
574: \end{itemize}
575: \end{proposition}
576: %
577: Denote by $\gD^i$ ($i=1,2, \ldots ,n$) the CNF consisting of all the clauses
578: in $\gvp_i$ but not in $\gvp_{i-1}$.
579: For the above example, we have $\gD^1=1$, $\gD^2=(x_1 \vee x_2)$,
580: $\gD^3=(x_1
581: \vee x_3)$, and
582: $\gD^4=(x_2 \vee x_3 \vee x_4)(x_1 \vee x_4)$.
583: Note that $\gvp_{i} =\gvp_{i-1} \wedge \gD^{i}$; hence,
584: for all $i=1,2,\ldots,n$ we have
585: \begin{eqnarray}
586: \psi_{i}&\equiv& \psi_{i-1} \wedge \gD^{i}
587: %\nonumber\\
588: %&\equiv&
589: \ \equiv \
590: \OR_{t \in \gG(f_{i-1})} (t \wedge \gD^{i}). \label{eq-3}
591: \end{eqnarray}
592: Let $\Delta^{i}[t]$, for $i=1,\ldots,n$ denote the CNF consisting
593: of all the clauses $c$ such that $c$ contains no literal in $t_{i-1}$ and
594: $c \vee x_{i}$ appears in $\Delta^{i}$. For example, if
595: $t=x_2x_3x_4$ and $\gD^4=(x_2 \vee x_3 \vee x_4)(x_1
596: \vee x_4)$, then $\gD^4[t]=x_1$.
597: It follows from \raf{eq-3} that for all $i=1,2,\ldots,n$
598: \begin{eqnarray}
599: \psi_{i}&\equiv& \OR_{t \in \gG(f_{i-1})} \Bigl((t\wedge\gD^{i}[t]) \ \vee\
600: (t\wedge x_{i})\Bigr). \label{eq-4}
601: \end{eqnarray}
602: \begin{lemma}
603: \label{lemma-1}
604: For every term $t\in \gG(f_{i-1})$, let $g_{i,t}$ be the function represented by
605: $\gD^{i}[t]$. Then $|\gG(g_{i,t})|\leq|\psi_{i}|\leq|\psi|$.
606: \end{lemma}
607:
608: \proof Let $V =\{x_1,x_2, \ldots , x_n\}$ and let $s \in \gG(g_{i,t})$.
609: Then by \raf{eq-4}, $t \wedge s$ is an implicant of $\psi_{i}$.
610: Hence, some $t^s \in \gG(f_{i})$ exists such
611: that $t^s \geq t \wedge s$.
612: Note that
613: %\begin{eqnarray}
614: $V(t) \cap V(\gD^{i}[t])=\emptyset$, %\label{eq-5}
615: %\end{eqnarray}
616: %i.e.,
617: $t$ and $\gD^{i}[t]$ have no variable in common,
618: and hence we have $V(s) \subseteq V(t^s) \,(\subseteq V(s) \cup
619: V(t))$,
620: since otherwise there exists a clause $c$ in $\gD^{i}[t]$
621: such that $V(c) \cap V(t^s) =\emptyset$, a contradiction.
622: Thus $V(t^s)\cap V(\gD^{i}[t]) = V(s)$.
623: For any $s' \in \gG(g_{i,t})$ such that $s \neq s'$,
624: let $t^s, t^{s'} \in \gG(f_{i})$ such
625: that $t^s \geq t \wedge s$ and $t^{s'} \geq t \wedge s'$, respectively.
626: By the above discussion, we have $t^s \neq t^{s'}$.
627: This completes the proof. \qed
628:
629: We now describe our algorithm {\sc Dualize} for generating $\gG(f)$.
630: It is inspired by a similar graph algorithm of Johnson, Yannakakis, and
631: Papadimitriou \cite{john-etal-88}, and can be regarded as a generalization.
632:
633: %\newpage
634: \vspace*{0.5cm}
635:
636: \hrule
637: \begin{small}
638: \begin{quote}
639: \noindent {\bf Algorithm} {\sc Dualize}
640:
641: \hnbls
642: \tnbls
643:
644: \begin{tabbing}
645: {\em Output: }\=\kill
646: {\em Input:}\> The prime CNF $\gvp$ of a monotone function $f$.
647: \\
648: {\em Output:}\> The prime DNF $\psi$ of $f$, i.e. all prime
649: implicants
650: of $f$.
651: \end{tabbing}
652:
653: \nbls
654: \tnbls
655:
656: \begin{description}
657: \addtolength{\itemsep}{-0.1cm}
658: \item[\hspacea Step 1:] Compute the smallest prime implicant $t_{min}$ of
659: $f$ and set $Q := \{\, t_{min} \,\}$;
660:
661: \item[\hspacea Step 2:] {\bf while} \ $Q\not=\emptyset$ \ {\bf do}
662: {\bf begin}
663:
664: \hspacec Remove the smallest $t$ from $Q$ and output $t$;
665:
666: \hspacec {\bf for} each $i$ with $x_i \in V(t)$ and
667: $\gD^{i}[t]\not= 1$ {\bf do begin}
668:
669: %\hspaced Compute a monotone DNF $\rho_{(t,i)}$ of the function
670: % represented by $\gD^{i}[t]$;
671:
672: %\hspaced /* $\rho_{(t,i)}$ clearly contains all prime implicants of
673: % the function represented by $\gD^{i}[t]$. */
674:
675: \hspaced Compute the prime DNF $\rho_{(t,i)}$ of the function
676: represented by $\gD^{i}[t]$;
677:
678: \hspaced {\bf for} each term $t'$ in $\rho_{(t,i)}$ {\bf do begin}
679:
680: \hspacee {\bf if} $t_{i-1} \wedge t'$ is a prime implicant of $f_i$
681: {\bf then begin}
682:
683: \hspacef Compute the smallest prime implicant $t^*$ of $f$ such that
684: $t^*_i=t_{i-1} \wedge t'$;
685:
686: \hspacef $Q:=Q \cup \{t^*\}$
687:
688: \hspacee {\bf end}$\{$if$\}$\ {\bf end}$\{$for$\}$\ {\bf end}$\{$for$\}$
689:
690: \hspaceb {\bf end}$\{$while$\}$
691: \end{description}
692: \end{quote}
693: \end{small}
694: \hrule
695:
696: \vspace*{0.5cm}
697:
698: \noindent
699: Here,
700: %for two terms
701: %$s=\AN_{x_j \in V(s)}x_j$ and $t=\AN_{x_j \in V(t)}x_j$,
702: we say that term $s$ is {\em smaller} than term $t$ if
703: $\sum_{x_j \in V(s)}2^{n-j} < \sum_{x_j \in V(t)}2^{n-j}$; i.e., as
704: vector, $s$ is lexicographically smaller than $t$.
705:
706: \begin{theorem}
707: \label{th-1}
708: Algorithm {\sc Dualize} correctly outputs all $t\in \gG(f)$ in
709: increasing order.
710: \end{theorem}
711:
712: \proof (Sketch)
713: First note that the term $t^*$ inserted in $Q$ when $t$ is output is
714: larger than $t$. Indeed, $t'$ ($\neq 1$) and $t_{i-1}$ are disjoint
715: and $V(t') \subseteq \{x_1,$$\ldots,x_{i-1}\}$. Hence, every term in $Q$
716: is larger than all terms already output, and the
717: output sequence is increasing. We show by induction that, if
718: $t$ is the smallest prime implicant of $f$ that was not output yet,
719: then $t$ is already in $Q$. This clearly proves the result.
720:
721: Clearly, the above statement is true if $t=t_{min}$. Assume now that
722: $t \neq t_{min}$ is the smallest among the prime implicants not output
723: yet. Let $i$ be the largest index such that $t_i$ is not a prime
724: implicant of $f_i$. This $i$ is well-defined, since otherwise $t =
725: t_{min}$ must hold, a contradiction. Now we have (1) $i < n$ and (2)
726: $i+1 \not\in V(t)$, where (1) holds because $t_n\,(=t)$ is a prime
727: implicant of $f_n\,(=f)$ and (2) follows from the maximality of $i$.
728: % N.B. $t_{i+1} \in \gG(f_{i+1})$.
729: Let $s \in \gG(f_i)$ such that $V(s) \subseteq V(t_i)$, and let $K=V(t_i)-V(s)$.
730: Then $K\not=\emptyset$ holds, and since $x_{i+1}\notin V(t)$, the term
731: $t'=\AN_{x_j \in K}x_j$ is a prime implicant of $\gD^{i+1}[s]$. There
732: exists $s' \in \gG(f)$ such that $s'_i=s$ and $x_{i+1}
733: \in V(s')$, since $s \wedge x_{i+1} \in \gG(f_{i+1})$.
734: % $st' \in \gG(f_{i+1})$ and $t'\neq 1$
735: Note that $\gD^{i+1}[s]\not= 0$. Moreover, since
736: $s'$ is smaller than $t$, by induction $s'$ has already been output.
737: Therefore, $t'=\AN_{x_j \in K}x_j$ has been considered in the inner
738: for-loop of the algorithm. Since $s_i' \wedge t' \,(=t_i=t_{i+1})$ is
739: a prime implicant of $f_{i+1}$, the algorithm has added the smallest
740: prime implicant $t^*$ of $f$ such that $t^*_{i+1}=t_{i+1}$. We
741: finally claim that $t^*=t$. Otherwise, let $k$ be the first index in
742: which $t^*$ and $t$ differ. Then $k > i+1$, $x_k \in V(t)$ and $x_k
743: \not\in V(t^*)$. However, this implies $t_k \notin \gG(f_k)$, contradicting
744: the maximality of $i$.
745: \qed
746:
747: \begin{remark}
748: {\rm (1) The decomposition rule \raf{eq-4}
749: was already used in \cite{lawl-etal-80}.
750:
751: \noindent (2) In step~1, we could generate any prime implicant $t$ of
752: $f$, and choose then a lexicographic term ordering inherited from a
753: dynamically generated variable ordering. In step~2, it is sufficient
754: that any monotone DNF $\tau_{(t,i)}$ of the function represented by
755: $\gD^{i}[t]$ is computed,
756: rather than its prime DNF $\rho_{(t,i)}$. This might make the
757: algorithm faster.
758: }
759: \end{remark}
760:
761: %\medskip
762:
763: Let us consider the time complexity of algorithm {\sc Dualize}. We store $Q$
764: as a
765: binary tree, where each leaf represents a term $t$ and
766: the left (resp., right) son of a node at depth $j-1\geq 0$, where the
767: root has depth 0, encodes $x_j \in V(t)$ (resp., $x_j \not\in V(t)$).
768: In Step 1, we can compute $t_{min}$ in
769: $O(\|\gvp\|)$ time and initialize $Q$ in $O(n)$ time.
770:
771: As for Step 2, let $T_{(t,i)}$ be the time required to compute the prime
772: DNF
773: $\rho_{(t,i)}$ from $\gD^{i}[t]$. By analyzing its substeps, we can
774: see that each iteration of Step 2 requires
775: $\sum_{x_i \in V(t)}(T_{(t,i)}+|\rho_{(t,i)}|\cdot O(\|\gvp\|))$
776: time.
777:
778: Indeed, we can update $Q$ (i.e., remove the smallest term and add
779: $t^*$) in $O(n)$ time. For each $t$ and $i$, we can construct
780: $\gD^{i}[t]$ in $O(\| \gvp\|)$ time. Moreover, we can check whether
781: $t_{i-1} \wedge t'$ is a prime implicant of $f_i$ and if so, we can
782: compute the smallest prime implicant $t^*$ of $f$ such that
783: $t^*_i=t_{i-1} \wedge t'$ in $O(\|\gvp\|)$ time; note that $t^*$ is
784: the smallest prime implicant of the function
785: obtained from $f$ by fixing $x_j=1$ if $x_j \in V(t_i \wedge t')$ and
786: $0$ if $x_j \not\in V(t_i \wedge t')$ for $j \leq i$.
787:
788: Hence, we have the following result.
789: \begin{theorem}
790: \label{th-2}
791: The output delay of Algorithm {\sc Dualize} is bounded by
792: \begin{equation}
793: \label{eq-6}
794: \max_{t \in \gG(f)}\Bigl(\sum_{x_i \in
795: V(t)}(T_{(t,i)}+|\rho_{(t,i)}|\cdot O(\|\gvp\|))\Bigr)
796: \end{equation}
797: time, and {\sc Dualize} needs in total time
798: \begin{equation}
799: \label{eq-7}
800: \sum_{t \in \gG(f)}\sum_{x_i \in
801: V(t)}(T_{(t,i)}+|\rho_{(t,i)}|\cdot O(\|\gvp\|)).
802: \end{equation}
803: \end{theorem}
804:
805:
806: If the $T_{(t,i)}$ are bounded by a polynomial in the input length,
807: %(i.e., $n$ and $\|\gvp\|$),
808: then {\sc Dualize} becomes a polynomial delay
809: algorithm, since $|\rho_{(t,i)}| \leq T_{(t,i)}$ holds for all $t \in\gG(f)$
810: and $x_i \in V(t)$.
811: On the other hand, if they are bounded by a polynomial in the combined
812: input and output length,
813: %(i.e., $n$, $\|\gvp\|$, and $\|\psi\|$),
814: then {\sc Dualize} is a polynomial total time algorithm,
815: where $|\rho_{(t,i)}| \leq |\psi|$ holds from Lemma~\ref{lemma-1}.
816: Using results from \cite{bioc-ibar-95}, we can construct
817: from {\sc Dualize} an incremental polynomial time algorithm for {\sc
818: Dualization}, which however might not output $\gG(f)$ in increasing
819: order.
820: Summarizing, we have the following corollary.
821: %In summary,
822: \begin{corollary}
823: \label{cor-0} Let $T=\max \{\, T_{(t,i)} \mid t \in \gG(f), x_i \in V(t) \,\}$. Then,
824: if $T$ is bounded by a
825: \begin{itemize}
826: %\addtolength{\itemsep}{-0.2cm}
827: \item[(i)]
828: polynomial in $n$ and $\|\gvp\|$, then {\sc
829: Dualize} is an $O(n
830: \|\gvp\| T)$ polynomial delay algorithm;
831: \item[(ii)]
832: polynomial in $n$, $\|\gvp\|$, and $\|\psi\|$,
833: then {\sc Dualize} is an $O(n\cdot|\psi|\cdot(T+|\psi|\cdot\|\gvp\| ))$ polynomial
834: total-time algorithm; moreover, {\sc Dualization}
835: is solvable in incremental polynomial time.
836: \end{itemize}
837: \end{corollary}
838:
839: In the next section, we identify sufficient conditions for the boundedness
840: of $T$ and fruitfully apply them to solve open problems and improve
841: previous results.
842:
843:
844: \section{Polynomial Classes}
845: \label{sec:polynomial-cases}
846:
847: \subsection{Degenerate CNFs}
848:
849: We first consider the case of small $\Delta^i[t]$. Generalizing a
850: notion for graphs (i.e., monotone $2$-CNFs) \cite{toft-95}, we call a
851: monotone CNF $\gvp$ {\em $k$-degenerate}, if there exists a variable
852: ordering $x_1,\ldots,x_n$ in which $|\Delta^i| \leq k$ for all $i=1,2,
853: \ldots, n$. We call a variable ordering $x_1,\ldots,x_n$ {\em smallest
854: last} as in \cite{toft-95}, if $x_i$ is chosen in the order $i=n,n-1,
855: \ldots , 1$ such that $|\Delta^i|$ is smallest for all variables
856: that were not chosen. Clearly, a smallest last ordering gives the
857: least $k$ such that $\gvp$ is $k$-degenerate. Therefore, we can check
858: for every integer $k\geq 1$ whether $\gvp$ is $k$-degenerate in
859: $O(\|\gvp\| )$ time. If this holds, then we have $|\rho_{(t,i)}| \leq n^k$
860: and $T_{(t,i)}=O(kn^{k+1})$ for every $t \in \gG(f)$ and $i \in V(t)$
861: (for $T_{(t,i)}$, apply the distributive law to $\Delta^i[t]$ and
862: remove terms $t$ where some $x_j\in V(t)$ has no $c\in
863: \Delta^i[t]$ such that $V(t)\cap V(c)=\{x_j\}$). Thus Theorem~\ref{th-2}
864: implies the following.
865: \begin{theorem}
866: \label{th-3}
867: For $k$-degenerate CNFs $\gvp$,
868: {\sc Dualization} is solvable with $O(\|\gvp \|\cdot n^{k+1})$ polynomial
869: delay if $k\geq 1$ is constant.
870: \end{theorem}
871:
872: Applying the result of \cite{maki-00} that log-clause CNF is dualizable
873: in incremental polynomial time, we obtain a polynomiality result also
874: for non-constant degeneracy:
875: %then the
876: %result in \cite{maki-00} implies that $T$ is bounded by a polynomial in
877: %the input and output size.
878: \begin{theorem}
879: \label{th-4}
880: For $O(\log \|\gvp\| )$-degenerate CNFs $\gvp$, problem {\sc
881: Dualization} is solvable in polynomial total time.
882: \end{theorem}
883:
884: In the following, we discuss several natural subclasses of degenerate CNFs.
885:
886:
887: \subsubsection{Read-bounded CNFs}
888:
889: A monotone CNF $\gvp$ is called {\em read-$k$}, if each
890: variable appears in $\gvp$ at most $k$ times.
891: Clearly, read-$k$ CNFs are $k$-degenerate, and in fact $\gvp$ is
892: read-$k$ iff it is $k$-degenerate under every variable ordering.
893: %and more precisely
894: %\begin{lemma}
895: %A monotone CNF is read-$k$ if and only if
896: %\end{lemma}
897: By applying Theorems~\ref{th-3} and \ref{th-4}, we obtain the following
898: result.
899: \begin{corollary}
900: \label{cor-3}
901: For read-$k$ CNFs $\gvp$, problem {\sc Dualization} is solvable
902: \begin{itemize}
903: %\addtolength{\itemsep}{-0.2cm}
904: \item[(i)]
905: with
906: $O(\|\gvp\|\cdot n^{k+1})$ polynomial delay, if $k$ is constant;
907: \item[(ii)]
908: in polynomial total time, if $k=O(\log(\|\gvp\|))$.
909: \end{itemize}
910: \end{corollary}
911:
912: Note that Corollary~\ref{cor-3} (i) trivially implies that {\sc
913: Dualization} is solvable in $O(|\psi|\cdot n^{k+2})$ time for constant
914: $k$, since $\|\gvp\|\leq kn$. This improves upon the
915: previous best known algorithm \cite{domingo-etal-99}, which is only
916: $O(|\psi|\cdot n^{k+3})$ time, not polynomial delay, and outputs $\gG(f)$
917: in no specific order. Corollary \ref{cor-3} (ii) is a non-trivial
918: generalization of the result in \cite{domingo-etal-99}, which was
919: posed as an open problem \cite{domingo-97}.
920:
921: \subsubsection{Acyclic CNFs}
922:
923: Like in graphs, acyclicity is appealing in hypergraphs resp.\ monotone
924: CNFs from a theoretical as well as a practical
925: point of view.
926: However, there are many notions of acyclicity for hypergraphs (cf.\
927: \cite{fagi-83}), since different generalizations
928: from graphs are possible. We refer to $\ga$-, $\gb$-,$\gc$-, and {\em Berge}-acyclicity
929: as stated
930: in \cite{fagi-83}, for which the following proper inclusion hierarchy is
931: known:
932: \begin{center}
933: Berge-acyclic $\,\subseteq\,$ $\gc$-acyclic $\,\subseteq\,$ $\gb$-acyclic
934: $\,\subseteq\,$ $\ga$-acyclic.
935: \end{center}
936: The notion of $\ga$-acyclicity came up in relational
937: database theory. A monotone CNF $\gvp$ is {\em $\ga$-acyclic} iff $\gvp=1$
938: %(i.e., \empty)
939: or reducible by
940: the GYO-reduction \cite{grah-79,yu-ozsoyoglu-79}, i.e.,
941: repeated application of one of the two rules:
942:
943: \medskip
944: (1)~~ If variable $x_i$ occurs in only one clause $c$, remove $x_i$ from
945: $c$.
946:
947: (2)~~ If distinct clauses $c$ and $c'$ satisfy $V(c) \subseteq
948: V(c')$, remove $c$ from $\gvp$.
949:
950: \medskip
951: \noindent
952: to $0$ (i.e., the empty clause). Note that $\ga$-acyclicity of a
953: monotone CNF $\gvp$ can be checked, and a suitable GYO-reduction
954: output, in $O(\|\gvp\| )$ time \cite{tarjan-yannakakis-84}.
955: A monotone CNF $\gvp$ is {\em $\gb$-acyclic} iff every CNF consisting
956: of clauses in $\gvp$ is $\ga$-acyclic. As shown in
957: \cite{eite-gott-95}, the prime implicants of a monotone $f$
958: represented by a $\gb$-acyclic CNF $\gvp$ can be enumerated (and thus
959: {\sc Dualization} solved) in $p(\|\gvp\|)\cdot|\psi|$ time, where $p$ is a
960: polynomial in $\|\gvp\|$. However, the time complexity of {\sc
961: Dualization} for the more general $\ga$-acyclic prime CNFs was left as
962: an open problem. We now show that it is solvable with polynomial
963: delay, by showing that $\ga$-acyclic CNFs are $1$-degenerate.
964:
965: Let $\gvp \neq 1$ be a prime CNF. Let $a = a_1, a_2, \ldots , a_q$ be
966: a GYO-reduction for $\gvp$, where
967: $a_\ell=x_i$ if the $\ell$-th operation removes $x_i$ from $c$, and
968: $a_\ell=c$ if it removes $c$ from $\gvp$.
969: Consider the unique variable ordering $b_1, b_2,
970: \ldots , b_n$ such $b_i$ occurs after $b_j$ in $a$, for all $i<j$.
971: For example, let $\gvp=c_1c_2c_3c_4$,
972: where
973: $c_1=(x_1 \vee x_2 \vee x_3)$, $c_2=(x_1 \vee x_3 \vee x_5)$, $c_3=(x_1
974: \vee x_5 \vee x_6)$ and $c_4=(x_3 \vee x_4 \vee x_5)$.
975: Then $\gvp$ is $\ga$-acyclic, since it has the GYO-reduction
976: $$
977: a_1=x_2, \ a_2=c_1, \ a_3=x_4, \ a_4=x_6,\ a_5=c_4,\ a_6=c_3,
978: \ a_7=x_1, \ a_8=x_3, \ a_9=x_5.
979: $$
980: {From} this sequence, we obtain the variable ordering
981: %\begin{equation}
982: %\label{eq-8}
983: $$b_1=x_5, \ b_2=x_3, \ b_3=x_1, \ b_4=x_6, \ b_5=x_4, \ b_6=x_2.$$
984: %\end{equation}
985: As easily checked, this ordering shows that $\gvp$ is $1$-degenerate.
986: Under this ordering,
987: %In the above example, if we rename variable as \raf{eq-8},
988: %$\gvp$ becomes $\gvp=(x_3 \vee x_6 \vee x_2)
989: %(x_3 \vee x_2 \vee x_1)(x_3 \vee x_1 \vee x_4)(x_2 \vee x_5 \vee x_1)$
990: %and $\Delta^1=\Delta^2=1$, $\Delta^3=(x_3 \vee x_2 \vee x_1)$,
991: % $\Delta^4=(x_3 \vee x_1 \vee x_4)$, $\Delta^5=(x_2 \vee x_5 \vee x_1)$,
992: %and $\Delta^6=(x_3 \vee x_6 \vee x_2)$.
993: we have $\Delta^1=\Delta^2=1$, $\Delta^3=(x_1 \vee x_3 \vee x_5)$,
994: $\Delta^4=(x_1 \vee x_5 \vee x_6)$, $\Delta^5=(x_3 \vee x_4 \vee x_5)$,
995: and $\Delta^6=(x_1 \vee x_2 \vee x_3)$. This is not accidental.
996: \begin{lemma}
997: \label{lemma-2}
998: Every $\ga$-acyclic prime CNF is $1$-degenerate.
999: \end{lemma}
1000:
1001: Note that the converse is not true, i.e., there exists a $1$-degenerate CNF that is not $\ga$-acyclic.
1002: For example, $\gvp=(x_1 \vee x_2 \vee x_3)(x_1 \vee x_2 \vee x_4)(x_2\vee
1003: x_3 \vee x_4 \vee x_5)$ is such a CNF.
1004: Lemma~\ref{lemma-2} and Theorem~\ref{th-3} imply the following
1005: result.
1006: \begin{corollary}
1007: \label{cor-2}
1008: For $\ga$-acyclic CNFs $\gvp$, problem {\sc Dualization} is solvable with
1009: $O(\|\gvp\|\cdot n^{2})$ delay.
1010: \end{corollary}
1011: Observe that for a prime $\alpha$-acyclic $\gvp$, we have $|\gvp|\leq
1012: n$. Thus, if we slightly modify algorithm {\sc Dualize} to check
1013: $\Delta^i=1$ in advance (which can be done in linear time in a
1014: preprocessing phase) such that such $\Delta^i$ need not be considered
1015: in step 2, then the resulting algorithm has $O(n\cdot|\gvp|\cdot\|\gvp\|)$
1016: delay. Observe that the algorithm in \cite{eite-gott-95} solves,
1017: minorly adapted for enumerative output, {\sc Dualization} for
1018: $\beta$-acyclic CNFs with $O(n\cdot|\gvp|\cdot\|\gvp\|)$ delay. Thus, the above
1019: modification of {\sc Dualize} is of the same order.
1020:
1021: %A CNF $\gvp$ is {\em $k$-CNF} if each clause in $\gvp$ contains at most
1022: %$k$ variables.
1023: % I have a different version of this section using hypergraph
1024: %terminology.
1025:
1026:
1027: \subsubsection{CNFs with bounded treewidth}
1028:
1029: A {\em tree decomposition (of type I)} of a monotone CNF $\gvp$ is a
1030: tree $T=(W,E)$ where each node $w\in W$ is labeled with a
1031: set $X(w)\subseteq V(\gvp)$ under the following conditions:
1032: \begin{enumerate}
1033:
1034: \item $\bigcup_{w \in W}X(w) =V(\gvp)$;
1035:
1036:
1037: \item for every clause $c$ in $\gvp$, there exists some $w\in W$ such that
1038: $V(c) \subseteq X(w)$; and
1039:
1040:
1041: \item for any variable $x_i \in V$, the set of nodes $\{w \in W \mid x_i \in X(w)\}$ induces
1042: a (connected) subtree of $T$.
1043: \end{enumerate}
1044: The {\em width} of $T$ is $\max_{w \in W}|X(w)|-1$, and the {\em
1045: treewidth} of $\gvp$, denoted by $\Tw_1(\gvp)$, is the minimum width
1046: over all its tree decompositions.
1047:
1048: Note that the usual definition of treewidth for a graph \cite{robe-seym-86} results in the
1049: case where $\gvp$ is a 2-CNF. Similarly to acyclicity, there are several
1050: notions of treewidth for hypergraphs resp.\ monotone CNFs. For example, tree
1051: decomposition of type II of CNF $\gvp=\AN_{c \in C}c$ is
1052: defined as type-I tree decomposition of its incident $2$-CNF (i.e.,
1053: graph) $G(\gvp)$
1054: \cite{chekuri-rajaraman-95,gottlob-etal-98}.
1055: %Here $G(\gvp)=(V \cup C, \{(x_i,c)\mid x_i \in V, c \in C, x_i \mbox{
1056: %appears in } c \})$.
1057: That is, for each clause $c \in \gvp$, we introduce a new variable $y_c$ and
1058: construct $G(\gvp)=\AN_{x_i \in c \in \gvp} (x_i \vee y_c)$
1059: (here, $x_i \in c$ denotes that $x_i$ appears in $c$).
1060: Let $\Tw_2(\gvp)$ denote the type-II treewidth of $\gvp$.
1061:
1062: \begin{proposition}
1063: \label{prop-2}
1064: For every monotone CNF $\gvp$, it holds that $\Tw_2(\gvp)\leq
1065: \Tw_1(\gvp)+2^{\Tw_1(\gvp)+1}$.
1066: \end{proposition}
1067:
1068: \proof
1069: Let $T=(W,E)$, $X:W \to 2^V$ be any tree decomposition of $\gvp$
1070: having width $\Tw_1(\gvp)$.
1071: Introduce for all $c \in \gvp$ new variables $y_c$, and
1072: add $y_c$ to every $X(w)$ such that $V(c) \subseteq X(w)$. Clearly, the
1073: result is a type-I tree
1074: decomposition of $G(\gvp)$,
1075: and thus a type-II tree decomposition of $\gvp$.
1076: Since at most $2^{|X(w)|}$ many $y_c$ are added to $X(w)$ and
1077: $|X(w)|-1 \leq \Tw_1(\gvp)$ for every $w \in W$, the result follows.
1078: \qed
1079:
1080: This means that if $\Tw_1(\gvp)$ is bounded by some constant, then so
1081: is $\Tw_2(\gvp)$. Moreover, $\Tw_1(\gvp)=k$ implies that $\gvp$ is a
1082: $k$-CNF; we discuss $k$-CNFs in Section~\ref{sec:recursive} and only
1083: consider $\Tw_2(\gvp)$ here. The following proposition states some
1084: relationships between type-II
1085: treewidth and other restrictions of CNFs from above.
1086:
1087: \begin{proposition}
1088: The following properties hold for type-II treewidth.
1089: \begin{enumerate}
1090: \item[(i)]
1091: There is a family of monotone prime CNFs $\gvp$ such that
1092: $\Tw_2(\gvp)$ is bounded by a constant, but $\gvp$ is not $k$-CNF for any
1093: constant $k$.
1094:
1095: \item[(ii)] There is a family of monotone prime CNFs $\gvp$
1096: such that
1097: $\Tw_2(\gvp)$ is bounded by a constant, but $\gvp$ does not have bounded
1098: read.
1099:
1100: \item[(iii)] There is a family of $\ga$-acyclic
1101: prime CNFs $\gvp$ such that $\Tw_2(\gvp)$ is not bounded by any
1102: constant. (This is a contrast to the graph case that a graph is
1103: acyclic if and only if its treewidth is $1$.)
1104: \end{enumerate}
1105: \end{proposition}
1106:
1107: \proof
1108: (i): For example, $\gvp=(\OR_{x_i \in V}x_i)$ has $\Tw_2(\gvp)=1$, since
1109: it has a tree decomposition $T=(W,E)$ with $X: W \to 2^V$ defined by
1110: $W=\{1,2, \ldots ,n \}$, $E=\{(w,w+1), w=1,2, \ldots , n-1\}$, and
1111: $X(w)=\{x_w,y_c\}$, $w \in W$, where $c=(\OR_{x_i \in V}x_i)$.
1112: However, it is not an $(n-1)$-CNF (but an $n$-CNF). On the other hand,
1113: by Lemma \ref{lemma-3}, we can see that there is a family of monotone
1114: prime CNFs $\gvp$ such that $\Tw_2(\gvp)$ is not bounded by any
1115: constant,
1116: but $\gvp$ is $k$-CNF for some constant $k$.
1117:
1118:
1119: (ii): For example, let $\gvp$ be a CNF containing $n-1$ clauses
1120: $c_i=(x_1 \vee x_i)$, $i=2,3, \ldots ,n$. Then $\gvp$ has
1121: $\Tw_2(\gvp)=1$, since it has a tree decomposition $T=(W,E)$ with $X:
1122: W \to 2^V$ defined by $W=\{(c_i,x_1), (c_i,x_i), i=2,3, \ldots ,n \}$,
1123: $E=\{((c_i,x_1),(c_{i+1},x_1)), i=2,3, \ldots , n-1\} \cup
1124: \{((c_i,x_1),(c_{i},x_i)), i=2,3, \ldots , n$, and $X((c_i,x_k))=
1125: \{y_{c_i},x_k\}$, $(c_i,x_k) \in W$. However, it is not read-($n-2)$
1126: (but read-$(n-1)$).
1127:
1128: (iii): For example, let $\gvp$
1129: be a CNF on $V=\{x_1,x_2, \ldots, x_{2n}\}$ containing $n$ clauses
1130: $c_i=(x_i \vee \OR_{j\geq n+1}x_j)$, for $i=1,\ldots,n$. Then $\gvp$
1131: is $\ga$-acyclic. We claim that $\Tw_2(\gvp) \geq n-1$. Let us
1132: assume that there exists a tree $T=(W,E)$ with $X: E \to 2^V$ that
1133: shows $\Tw_2(\gvp) \leq n-2$, where $T$ is regarded as a rooted
1134: tree. Let $T_i=(W_i,E_i)$ be the subtree of $T$ induced by $W_i=\{w
1135: \in W \mid y_{c_i} \in X(w)\}$, and let $r_i$ be its root. Consider
1136: the case in which $W_i$ and $W_{j}$ are disjoint for some $i$ and $j$.
1137: Suppose that $r_{j}$ is an ancestor of $r_i$. Since $|X(r_i)| \leq
1138: \Tw_2(\gvp)+1 \leq n-1$, there exists a node $x_{n+k}\in V$ such
1139: that $1 \leq k \leq n$ and $x_{n+k} \not\in X(r_i)$. However, since
1140: the incident graph of $\gvp$ contains two edges $(x_{n+k},y_{c_i})$
1141: and $(x_{n+k},y_{c_j})$, we have $x_{n+k} \in \bigcup_{w \in W_i
1142: -\{r_i\}}X(w)$ and $x_{n+k} \in \bigcup_{w \in W_{j}}X(w)$. This is
1143: a contradiction to the condition that $\{w \in W \mid x_{n+k} \in
1144: X(w)\}$ is connected. Similarly, we can prove our claim when $T_i$
1145: and $T_{j}$ are disjoint, but $r_{j}$ is not an ancestor of $r_i$.
1146:
1147: We thus consider the case in which $W_i \cap W_{j} \not= \emptyset$
1148: holds for any $i$ and $j$. Since $T_i$'s are trees, the family of
1149: $W_i$, $i=1,2, \ldots, n$, satisfies the well-known Helly property,
1150: i.e., there exists a node $w$ in $\bigcap_{i=1}^n W_i$. $X(w)$
1151: must contain all $y_{c_i}$'s. This implies $|X(w)| \geq n$, a
1152: contradiction.
1153: \qed
1154:
1155: As we show now, bounded-treewidth implies bounded degeneracy.
1156: \begin{lemma}
1157: \label{lemma-3}
1158: Let $\gvp$ be any monotone CNF with $\Tw_2(\gvp) = k$.
1159: Then $\gvp$ is $2^k$-degenerate.
1160: \end{lemma}
1161:
1162: \proof
1163: Let $T=(W,E)$ with $X: W \to 2^V$ show $\Tw_2(\gvp) =k$.
1164: {From this}, we reversely construct a variable ordering $a=a_1,\ldots,a_n$
1165: on $V=V(\gvp)$ such
1166: that $|\gD^i| \leq 2^k$ for all $i$.
1167:
1168: Set $i:=n$. Choose any leaf $w^*$ of $T$, and let $p(w^*)$ be a node
1169: in $W$ adjacent to $w^*$. If $X(w^*)\setminus X(p(w^*)) \subseteq
1170: \{y_c \mid c \in \gvp\}$, then remove $w^*$ from $T$. On the other
1171: hand, if $(X(w^*)\setminus X(p(w^*))) \cap V = \{x_{j_1},\ldots,
1172: x_{j_\ell}\}$ where $\ell\geq 1$ (in this case, only $X(w^*)$ contains
1173: $x_{j_1}$, \ldots, $x_{j_\ell}$), then define $a_{i+1-h}=x_{j_h}$ for
1174: $h=1,\ldots ,\ell$ and update $i:=n-\ell$,
1175: $X(w^*):=X(w^*)\setminus\{x_{j_1},\ldots , x_{j_\ell}\}$, and
1176: $X(w):=X(w)\setminus\{y_c\mid c \in \gvp, V(c)\cap
1177: \{x_{j_1},\ldots,x_{j_\ell}\}\neq \emptyset\,\}$ for every $w \in W$.
1178: Let $a$ be completed by repeating this process.
1179:
1180: We claim that $a$ shows that $|\gD^i| \leq 2^k$ for all
1181: $i=1,\ldots,n$. To see this, let $w^*$ be chosen during this process, and assume that $a_i \in
1182: X(w^*)\setminus X(p(w^*))$. Then, by induction on the (reverse) construction of $a$,
1183: we obtain that for each clause $c\in \gD^i$ we must
1184: have either (a) $y_c \in X(w^*)$ or (b) $V(c) \subseteq X(w^*)$.
1185: The latter case may arise if in previous steps of the process some
1186: descendant $d(w^*)$ of $w^*$ was removed which contains $y_c$ such
1187: that $y_c$ does not occur in $w^*$; however, in this case $V(c)\subseteq
1188: X(w)$ must be true on every node on the path from $d(w^*)$ to
1189: $w^*$.
1190:
1191: Now let $q = |X(w^*)\setminus V|$.
1192: Since $|X(w^*)\setminus\{a_i\}|\leq k$, we
1193: have
1194: $$|\gD^i| \;\leq\; q + 2^{k-q} \;\leq\; 2^k.$$
1195: This proves the claim.
1196: %
1197: \qed
1198:
1199:
1200: \begin{corollary}
1201: \label{cor-4}
1202: For CNFs $\gvp$ with $\Tw_2(\gvp) \leq k$, {\sc Dualization} is
1203: solvable (i) with $O(\|\gvp\|\cdot n^{2^k+1})$ polynomial delay, if $k$ is
1204: constant; and (ii) in polynomial total time, if $k=O(\log \log \|\gvp\|)$.
1205: \end{corollary}
1206:
1207: \subsection{Recursive application of algorithm {\sc Dualize}}
1208: \label{sec:recursive}
1209:
1210: Algorithm {\sc Dualize} computes in step~2 the prime DNF
1211: $\rho_{(t,i)}$ of the function represented by $\gD^{i}[t]$. Since
1212: $\gD[t]$ is the prime CNF of some monotone
1213: function, we can recursively apply
1214: {\sc Dualize} to $\gD^{i}[t]$ for computing $\rho_{(t,i)}$. Let us
1215: call this variant {\sc R-Dualize}. Then we have the following result.
1216:
1217: \begin{theorem}
1218: \label{th-5}
1219: If its recursion depth is $d$, {\sc R-Dualize} solves {\sc Dualization} in
1220: $O(n^{d-1}\cdot|\psi|^{d-1}\cdot\|\gvp\|)$ time.
1221: \end{theorem}
1222:
1223: \proof
1224: If $d=1$, then $\Delta^i[t_{min}]=1$ holds for $t_{min}$ and every
1225: $i\geq 1$. This means that $\gG(f)\!=\!\{t_{min}\}$ and $\gvp$ is a
1226: $1$-CNF (i.e., each clause in $\gvp$ contains exactly one variable).
1227: Thus in this case, {\sc R-Dualize} needs $O(n)$ time. Recall that
1228: algorithm {\sc Dualize} needs, by \raf{eq-7}, time $\sum_{t \in
1229: \gG(f)}\sum_{x_i \in
1230: V(t)}(T_{(t,i)}\!+\!|\rho_{(t,i)}|\cdot O(\|\gvp\|))$. If $d=2$, then
1231: $T_{(t,i)}=O(n)$ and $|\rho_{(t,i)}| \leq 1$. Therefore, {\sc R-Dualize}
1232: needs time $O(n\cdot |\psi|\cdot\|\gvp\|)$. For $d\geq 3$, Corollary~\ref{cor-0}.(ii) implies that {\sc R-Dualize} needs
1233: $O(n^{d-1}\cdot|\psi|^{d-1}\cdot\|\gvp\|)$ time.
1234: \qed
1235:
1236: Recall that a CNF $\gvp$ is called {\em $k$-CNF} if each clause in
1237: $\gvp$ has at most $k$ literals. Clearly, if we apply algorithm
1238: {\sc R-Dualize} to a monotone $k$-CNF $\gvp$, the recursion depth of
1239: {\sc R-Dualize} is at most $k$. Thus we obtain the following
1240: result; it re-establishes, with different means, the main positive result
1241: of \cite{BGH93,eite-gott-95}.
1242:
1243: \begin{corollary}
1244: \label{cor-5}
1245: {\sc R-Dualize} solves {\sc Dualization} in
1246: $O(n^{k-1}\cdot|\psi|^{k-1}\cdot\|\gvp\|)$ time, i.e., in polynomial total time
1247: for monotone $k$-CNFs $\gvp$ where $k$ is constant.
1248:
1249: \end{corollary}
1250:
1251:
1252: \section{Limited Nondeterminism}
1253: \label{sec:nondet}
1254:
1255: In the previous section, we have discussed polynomial cases of
1256: monotone dualization. In this section, we now turn to the issue of the
1257: precise complexity of this problem. For this purpose, we consider the
1258: decision problem {\sc Dual}, i.e., decide whether given monotone prime
1259: CNFs $\gvp$ and $\psi$ represent dual Boolean functions, instead of
1260: the search problem {\sc Dualization}.
1261:
1262: It appears that problem {\sc Dual} can be solved with limited
1263: nondeterminism, i.e., with poly-log many guessed bits by a
1264: polynomial-time non-deterministic Turing machine. This result might
1265: bring new insight towards settling the complexity of the problem.
1266:
1267: We adopt Kintala and Fischer's terminology \cite{kint-fisc-84}
1268: and write $\nondet{g(n)}$ for the class of sets accepted by a
1269: nondeterministic Turing machine in polynomial time making at most
1270: $g(n)$ nondeterministic steps on every input of length $n$.
1271: For every integer $k\geq 1$, define $\betapol{k} =
1272: \bigcup_c\nondet{(c\log^k n)}$. The $\beta$P {\em Hierarchy} consists of the
1273: classes
1274: $$
1275: \Pol=\betapol{1}\subseteq \betapol{2}\subseteq\cdots\subseteq
1276: \bigcup_k\betapol{k}=\beta\Pol$$
1277: and lies between \Pol\ and \NP.
1278: The $\betapol{k}$ classes appear to be rather robust; they are closed under
1279: polynomial time and logspace many-one reductions and have complete
1280: problems (cf.~\cite{gold-etal-96}). The complement class of $\betapol{k}$ is
1281: denoted by $\cobetapol{k}$.
1282:
1283: We start in Section~\ref{subsec:a} by recalling algorithm A
1284: of~\cite{fred-khac-96}, reformulated for CNFs and by analyzing A's
1285: behavior. The proof that A can be converted to an algorithm that uses
1286: $\log^3 n$ nondeterministic bit guesses, and that {\sc Dual} is thus
1287: in $\cobetapol{3}$, is rather easy and should give the reader an
1288: intuition of how our new method of analysis works. In
1289: Section~\ref{subsec:b}, we use basically the same technique for
1290: analyzing the more involved algorithm~B of ~\cite{fred-khac-96}. Using
1291: a modification of this algorithm, we show that {\sc Dual} is in
1292: $\cobetapol{2}$. We also prove the stronger result that the complement
1293: of {\sc Dual} can be solved in polynomial time with only
1294: $O(\chi(n)\cdot\log(n))$ nondeterministic steps (=bit
1295: guesses). Finally, Section~\ref{sec:beigel-fu} shows that membership
1296: in $\cobetapol{2}$ can alternatively be obtained by combining the
1297: results of \cite{fred-khac-96} with a theorem of Beigel and
1298: Fu~\cite{beig-fu-99}.
1299:
1300: \subsection{Analysis of Algorithm A of Fredman and Khachiyan}
1301: \label{subsec:a}
1302:
1303:
1304: The first algorithm in \cite{fred-khac-96} for recognizing dual
1305: monotone pairs is as follows.
1306:
1307: \vspace{0.3cm}
1308: \stepcounter{footnote}\footnotetext{In~\cite{fred-khac-96}, duality is tested for DNFs
1309: while our problem {\sc Dual} speaks about CNFs; this is insignificant,
1310: since DNFs are trivially translated to CNFs for this task and vice versa (cf.\ Section~\ref{sec:prelim}).
1311: % Every algorithm that checks
1312: %duality of CNFs can be trivially converted into an algorithm that
1313: %checks duality of DNF(I4(Bs and vice-versa. In fact, denote by $\gamma^*$ the formula obtained from a Boolean
1314: %formula $\gamma$ by replacing all conjunctions with disjunctions
1315: %and all disjunctions with conjunctions. Two CNFs $\gvp$ and $\psi$ are dual iff
1316: %$\gvp^*$ and $\psi^*$ are so. The same holds for DNFs.}
1317: }
1318: \addtocounter{footnote}{-1}
1319: \hrule
1320: %\begin{small}
1321: \begin{tabbing}
1322: X\=\kill\>{\bf Algorithm} A~~(reformulated for CNFs%
1323: \footnotemark). \\[1ex]
1324: X \= {\em Output: }\=\kill
1325: \>\> {\em Input:} \' Monotone CNFs $\gvp$, $\psi$ representing monotone $f$, $g\,$\ s.t.\ $V(c)\!\cap\!V(c')\!\neq\!\emptyset$, for all
1326: $c\!\in\!\gvp$, $c'\!\in\!\psi$.\\
1327: \>\> {\em Output:} \' {\tt yes} if $f=g^d$, otherwise a vector $w$ of form $w=(w_1,\ldots,w_m)$ such that $f(w)\neq g^d(w)$.
1328: \\[1ex]
1329: {\bf Step 1:}\\[0.5ex]
1330: XX\=\kill \> Delete all redundant (i.e., non-minimal) clauses from $\gvp$ and $\psi$.
1331: \\[0.5ex]
1332: {\bf Step 2:}\\[0.5ex]
1333: \> Check that \= (1)~ $V(\phi)=V(\psi)$,~\ (2)~ $\ \max_{c\in\gvp}|c|
1334: \leq|\psi|$,~ (3)~ $\ \max_{c'\in\psi}|c'| \leq|\gvp|$, \ and\\
1335: \>\> (4)~ $\ \Sigma_{c\in \gvp}\, 2^{-|c|}+\Sigma_{c'\in \psi}\, 2^{-|c'|}$ $\geq 1$. \\[0.5ex]
1336: \> If any of
1337: conditions (1)-(4) fails, $f\neq g^d$ and a witness $w$ is found in polynomial time (cf.~\cite{fred-khac-96}). \\[0.5ex]
1338: {\bf Step 3:}\\[0.5ex]
1339: \> If $|\gvp|\cdot|\psi|\leq 1$, test duality in $O(1)$ time.
1340: \\[0.5ex]
1341: {\bf Step 4:} \\[0.5ex]
1342: \> If $|\gvp|\cdot|\psi|\geq 2$, find some $x_i$ occurring in $\gvp$ or $\psi$ (w.l.o.g.\ in $\gvp$) with frequency $\geq 1/\log(|\gvp|+|\psi|)$.
1343: \\
1344: \> Let~ \=
1345: \\
1346: \>\> $\gvp_0$ = \= $\{c-\{x_i\} \mid x_i\in c,\, c \in \gvp\},$ \quad \= $\gvp_1$ = $ \{c \mid x_i\notin c,\, c\in \gvp\},$\\
1347: \>\> $\psi_0$ = \> $ \{ c'-\{x_i\} \mid x_i\in c',\, c'\in \psi\}$, \>
1348: $\psi_1$ = $ \{c' \mid x_i\notin c',\, c'\in \psi\}$.
1349: \\[0.5ex]
1350: \> Call algorithm A on the
1351: two pairs of forms:
1352: \\[0.5ex]
1353: \centerline{(A.1)~~$(\gvp_1,\, \psi_0\land \psi_1)$ \quad and \quad (A.2)~~$(\psi_1,\,
1354: \gvp_0\land \gvp_1)$}
1355: \\[0.5ex]
1356: \> If both calls return {\tt yes}, then return {\tt yes} (as
1357: $f=g^d$), otherwise we obtain $w$ such that \\
1358: \> $f(w)\neq g^d(w)$ in polynomial time (cf.~\cite{fred-khac-96}).
1359: \end{tabbing}
1360: %\end{small}
1361: \hrule
1362: \vspace{0.3cm}
1363:
1364: We observe that, as noted in \cite{fred-khac-96}, the binary length of
1365: any standard encoding of the input $\gvp,\psi$ to algorithm~A is
1366: polynomially related to $|\gvp|+|\psi|$, if step~3 is reached. Thus,
1367: for our purpose, we consider $|\gvp|+|\psi|$ to be the input size.
1368:
1369: Let $\gvp^*$, $\psi^*$ be the original input for A. For any pair
1370: $(\gvp,\psi)$ of CNFs, define its {\em volume} by $v=|\gvp|\cdot|\psi|$,
1371: and let $\epsilon=1/\log n$, where $n = |\gvp^*|+|\psi^*|$. As shown
1372: in~\cite{fred-khac-96}, step~4 of algorithm A divides the current
1373: (sub)problem of volume $v=|\gvp|\cdot|\psi|$ by self-reduction into
1374: subproblems (A.1) and (A.2) of respective volumes (assuming that $x_i$
1375: frequently occurs in $\gvp$):
1376: \begin{eqnarray}
1377: |\gvp_1|\cdot|\psi_0\land \psi_1|&\leq&(1-\epsilon)\cdot v\label{eq-left}\\
1378: |\gvp_0\land \gvp_1|\cdot|\psi_1| \;\leq\; |\gvp|\cdot(|\psi|-1)&\leq &v-1 \label{eq-right}
1379: \end{eqnarray}
1380: Let $T=T(\gvp,\psi)$ be the recursion tree generated by A on input
1381: $(\gvp,\psi)$. In $T$, each node $u$ is labeled with the respective
1382: monotone pair, denoted by $I(u)$; thus, if $r$ is the root of $T$, then
1383: $I(r) = (\gvp,\psi)$. The {\em volume} $v(u)$ of node $u$ is defined
1384: as the volume of its label $I(u)$.
1385:
1386: Any node $u$ is a leaf of $T$, if algorithm~A stops on input $I(u) =
1387: (\gvp,\psi)$ during steps 1-3; otherwise, $u$ has a left child $u_l$
1388: and a right child $u_r$ corresponding to (A.1) and (A.2), i.e.,
1389: labeled $(\gvp_1,\psi_0\land\psi_1)$ and $(\psi_1,\gvp_0\land\gvp_1)$
1390: respectively. That is, $u_l$ is the ``high frequency move'' by the
1391: splitting variable.
1392:
1393: We observe that every node $u$ in $T$ is determined by a {\em unique path}
1394: from the root to $u$ in $T$ and thus by a unique sequence
1395: $seq(u)$ of right and left
1396: moves starting from the root of $T$ and ending at $u$. The
1397: following key lemma bounds the number of moves of each type for
1398: certain inputs.
1399:
1400: \begin{lemma}
1401: \label{lem:e}
1402: Suppose $|\gvp^*|+|\psi^*|\leq |\gvp^*|\cdot|\psi^*|$. Then for any
1403: node $a$ in $T$, $seq(a)$ contains at most $v^*$ right moves and at most $\log^2 v^*$
1404: left moves, where $v^*=|\gvp^*|\cdot|\psi^*|$.
1405: \end{lemma}
1406:
1407: \proof
1408: By $(\ref{eq-left})$ and $(\ref{eq-right})$, each move decreases
1409: the volume of a node label. Thus, the length of $seq(u)$, and in
1410: particular the number of right moves, is bounded by $v^*$. To obtain the
1411: better bound for the left moves, we will use the following well-known
1412: inequality:
1413: \begin{eqnarray}
1414: (1-1/y)^y & \leq & 1/e, \qquad \mbox{for $y\geq 1$}. \label{eq-limes}
1415: \end{eqnarray}
1416: In fact, the sequence $(1-1/y_i)^{y_i}$, for any $1\leq y_1<y_2<\ldots$
1417: monotonically converges to $1/e$ from below.
1418: By (\ref{eq-left}), the volume $v(u)$ of
1419: any node $u$ such that $seq(u)$
1420: contains $\log^2 v^*$ left moves is
1421: bounded as follows:
1422: $$
1423: v(u) \leq v^*\cdot(1-\epsilon)^{\log^2 v^*} = v^*\cdot(1-1/\log n)^{\log^2 v^*}.
1424: $$
1425: Since $n=|\gvp^*|+|\psi^*|\leq |\gvp^*|\cdot|\psi^*|=v^*$, and because
1426: of (\ref{eq-limes}) it follows that:
1427: \begin{eqnarray*}
1428: v(u) &\leq& v^*\cdot \big( (1-1/\log v^*)^{\log v^*}\big)^{\log v^*} \\
1429: & \leq & v^*\cdot (1/e)^{\log v^*}
1430: \; = \; v^*/(e^{\log v^*})
1431: \; < \; v^*/(2^{\log v^*}) \;=\;1.
1432: \end{eqnarray*}
1433: Thus, $u$ must be a leaf in $T$. Hence for every $u$ in $T$, $seq(u)$
1434: contains at most
1435: $\log^2 v^*$ left moves.
1436: \qed
1437:
1438:
1439: \begin{theorem}
1440: \label{theo:beta3}
1441: Problem {\sc Dual} is in $\cobetapol{3}$.
1442: \end{theorem}
1443:
1444: \proof Instances such that either $c\cap c'= \emptyset$ for some $c\in
1445: \gvp^*$ and $c'\in \psi^*$, the sequence $seq(u)$ is empty, or
1446: $|\gvp^*|+|\psi^*|>|\gvp^*|\cdot|\psi^*|$ are easily recognized and solved
1447: in deterministic polynomial time. In the remaining cases, if $f\neq
1448: g^d$, then there exists a leaf $u$ in $T$ labeled by a non-dual pair
1449: $(\gvp',\psi')$. If $seq(u)$ is known, we can compute, by simulating
1450: $A$ on the branch described by $seq(u)$, the entire path
1451: $u_0,u_1,\ldots,u_l = u$ from the root $u_0$ to $u$ with all labels
1452: $I(u_0) = (\gvp^*,\psi^*)$, $I(u_1)$, \ldots, $I(u_l)$ and check that
1453: $I(u_l)$ is non-dual in steps 2 and 3 of A in polynomial time. Since
1454: the binary length of any standard encoding of $(\gvp^*,\psi^*)$ is
1455: polynomially related to $n=|\gvp^*|+|\psi^*|$ if $seq(u)$ is nonempty,
1456: to prove the result it is sufficient to show that $seq(u)$ can be
1457: constructed in polynomial time from $O(\log^3 v^*)$ suitably guessed
1458: bits. To see this, let us represent every $seq(u)$ as a sequence
1459: $seq^*(u)={\tt [}\ell_0,\ell_1,\ell_2\ldots, \ell_k{\tt ]}$, where
1460: $\ell_0$ is the number of leading right moves and $\ell_i$ is the
1461: number of consecutive right moves after the $i$-th left move in
1462: $seq(u)$, for $i=1,\ldots,k$. For example, if $seq(u)={\tt
1463: [r,r,l,r,r,r,l]}$, then $seq^*(u)={\tt [}2,3,0{\tt ]}$. By
1464: Lemma~\ref{lem:e}, $seq^*(u)$ has length at most $\log^2 v^*+1$.
1465: Thus, $seq^*(u)$ occupies in binary only $O(\log^3v)$ bits; moreover,
1466: $seq(u)$ is trivially computed from $seq^*(u)$ in polynomial time.
1467: \qed
1468:
1469: \nop{ *** SHOULD WE KEEP THIS REMARK ? WE HAVE A SHARPER ONE ***
1470: \begin{remark}
1471: \rm It also follows that if $f\neq g^d$, then a witness $w$
1472: can be found in polynomial time within $O(\log^3 n)$ nondeterministic
1473: steps. In fact, the sequence $seq(u)$ to a ``failing leaf'' labeled
1474: $(\gvp',\psi')$ describes a choice of values for all variables in
1475: $V(\gvp\land\psi)\setminus V(\gvp'\land\psi')$. By completing
1476: it with values for $V(\gvp'\land\psi')$ that show non-duality of
1477: $(\gvp',\psi')$, we obtain in polynomial time a vector $w$ such that
1478: $f(w)\neq g^d(w)$.
1479: \end{remark}
1480: }
1481:
1482: \subsection{Analysis of Algorithm B of Fredman and Khachiyan}
1483: \label{subsec:b}
1484:
1485: The aim of the above proof was to exhibit a new method of algorithm
1486: analysis that allows us to show with very simple means that duality
1487: can be polynomially checked with limited nondeterminism. By applying
1488: the same method of analysis to the slightly more involved algorithm~B
1489: of~\cite{fred-khac-96} (which runs in $n^{4\chi(n)+O(1)}$ time, and
1490: thus in $n^{o(\log n)}$ time), we can sharpen the above result by
1491: proving that deciding whether monotone CNFs $\gvp$ and $\psi$ are
1492: non-dual is feasible in polynomial time with $O(\chi(n)\cdot\log n)$
1493: nondeterministic steps; consequently, the problem {\sc Dual} is in
1494: $\cobetapol{2}$.
1495:
1496: Like algorithm~A, also algorithm~B uses a recursive self-reduction
1497: method that decomposes its input, a pair $(\gvp,\psi)$ of monotone
1498: CNFs, into smaller inputs instances for recursive calls. Analogously,
1499: the algorithm is thus best described via its {\em recursion tree} $T$,
1500: whose root represents the input instance $(\gvp^*$, $\psi^*)$ (of size
1501: $n$), whose intermediate nodes represent smaller instances, and whose
1502: leaves represent those instances that can be solved in polynomial
1503: time. Like for algorithm~A, the nodes $u$ in $T$ are labeled with the
1504: respective instances $I(u)=(\gvp,\psi)$ of monotone pairs. Whenever
1505: there is a branching from a node $u$ to children, then $I(u)$ is a
1506: pair of dual monotone CNFs iff $I(u')$ for {\em each} child $u'$ of
1507: $u$ in $T$ is a pair of dual monotone CNFs. Therefore, the original
1508: input $(\gvp^*$, $\psi^*)$ is a dual monotone pair iff all leaves of
1509: $T$ are labeled with dual monotone pairs.
1510:
1511: Rather than describing algorithm~B in full detail, we confine here to
1512: recall those features which are relevant for our analysis. In
1513: particular, we will describe some essential features of its recursion
1514: tree $T$.
1515:
1516: %We assume that all Boolean variables are of the form $x_i$ and can therefore
1517: %be identified via their index $i$.
1518: %Let $\gvp=\AN_{c \in C}( \OR_{x_i
1519: %\in c}x_i)$ be a monotone CNF, where $C$ is the set
1520: %of clauses of $\gvp$.
1521:
1522: For each variable $x_i$ occurring in $\gvp$, the {\em frequency $\efi$
1523: of $x_i$ w.r.t. $\gvp$} is defined as $\efi= \frac{|\{c\in \gvp\,:\;
1524: x_i\in c\}|}{|\gvp|}$, i.e., as the number of clauses of $\gvp$
1525: containing $x_i$ divided by the total number of clauses in
1526: $\gvp$. Moreover, for each $v\geq 1$, let $\chi(v)$
1527: be defined by $\chi(v)^{\chi(v)}=v$.
1528: %
1529: % \chi(v) is not uniquely defined for v<1; e.g., 0.5^{0.5} =
1530: % 0.25^{0.25}.
1531: %
1532:
1533: Let $v^*=|\gvp^*||\psi^*|$ denote the volume of the input (=root)
1534: instance $(\gvp^*,\psi^*)$. For the rest of this section, we assume
1535: that $|\gvp^*|+|\psi^*|\leq |\gvp^*|\cdot|\psi^*|$. In fact, in any instance
1536: which violates this inequality, either $\gvp^*$ or
1537: $\psi^*$ has at most one clause; in this case, {\sc Dual}
1538: is trivially solvable in polynomial time.
1539:
1540: Algorithm~B first constructs the root $r$ of $T$ and then recursively
1541: expands the nodes of $T$. For each node $u$ with label
1542: $I(u) = (\gvp,\psi)$, algorithm~B does the following.
1543:
1544: The algorithm first performs a polynomial time computation, which we shall
1545: refer to as {\sc LCheck}$(\gvp,\psi)$ here, as follows. {\sc LCheck}$(\gvp,\psi)$ first eliminates
1546: all redundant (i.e., non-minimal) clauses from $\gvp$ and $\psi$ and
1547: then tests whether some of the following conditions is violated:
1548: \begin{enumerate}
1549: \item $V(\gvp)=V(\psi)$;
1550: \item $\max_{c\in\gvp}|c|\leq|\psi|$ \ and \ $\max_{c\in\psi}|c|\leq|\gvp|$;
1551: \item $\min(\,|\gvp|,\,|\psi|\,) > 2$.
1552: \end{enumerate}
1553: If {\sc LCheck}$(\gvp,\psi)=\mathit{true}$, then $u$ is a leaf of $T$ (i.e.,
1554: not further expanded); whether $I(\gvp,\psi)$ is a dual monotone pair is then
1555: decided by some procedure {\sc Test}$(\gvp,\psi)$ in polynomial time. In case
1556: {\sc Test}$(\gvp,\psi)$ returns $\mathit{false}$, the original input
1557: $(\gvp^*$, $\psi^*)$ is not a dual monotone pair, and algorithm B
1558: returns $\mathit{false}$. Moreover, in this case a counterexample $w$
1559: to the duality of $\gvp^*$ and $\psi^*$ is computable in polynomial
1560: time from the path leading from the root $r$ of $T$ to $u$.
1561:
1562: If {\sc LCheck}$(\gvp,\psi)$ returns $\mathit{false}$, algorithm~B chooses in
1563: polynomial time some appropriate variable $x_i$ such that $\efi>0$ and
1564: $\egi>0$, and creates two or more children of $u$ by deterministically
1565: choosing one of three alternative decomposition rules {\bf (i)}, {\bf
1566: (ii)}, and {\bf (iii)}. Each rule
1567: decomposes $I(u)=(\gvp,\psi)$ into smaller instances, whose respective
1568: volumes are summarized as follows. Let, as for algorithm~A,
1569: $\gvp_0 = \{c-\{x_i\} \mid x_i\in c,\, c \in \gvp\},$ $\gvp_1 = \{c
1570: \mid x_i\notin c,\, c\in \gvp\},$ $\psi_0 = \{ c'-\{x_i\} \mid x_i\in
1571: c',\, c'\in \psi\}$, and $\psi_1 = \{c' \mid x_i\notin c',\, c'\in
1572: \psi\}$. Furthermore, define $\ev = 1/\chi(v)$, for any $v > 0$.
1573: \begin{description}
1574: \item{\bf Rule (i)}
1575: If $\efi \leq \evar{v(u)}$, then $I(u)$ is decomposed into:
1576: \begin{description}
1577: \item[\bf a)] one instance $(\gvp_1,\psi_0\land \psi_1)$
1578: of volume $\leq (1-\efi)\cdot v(u)$;
1579: \item[\bf b)] $|\psi_0|$ instances $I_1,\ldots,I_{|\psi_0|}$ of volume $\leq \efi \cdot v(u)$ each.
1580: Each such instance $I_j$ corresponds to one clause of $\psi_0$ and can
1581: thus be identified as the $j$-th clause of $\psi_0$ with an index $j\leq |\psi_0|<n$
1582: (recall that $n$ denotes
1583: the size of the original input).
1584: \end{description}
1585:
1586: \item{\bf Rule (ii)}
1587: If $\efi > \evar{v(u)} \geq \egi$, then $I(u)$ is decomposed into:
1588: \begin{description}
1589: \item[\bf a)] one instance $(\psi_1,\gvp_0\land \gvp_1)$
1590: of volume $\leq (1-\egi)\cdot v(u)$;
1591: \item[\bf b)] $|\gvp_0|$ instances $I_1,\ldots,I_{|\gvp_0|}$ of volume $\leq \egi \cdot v(u)$ each.
1592: Each such instance $I_j$ corresponds to one clause of $\gvp_0$ and can
1593: be identified by an index $j\leq |\gvp_0|<v^*$.
1594: \end{description}
1595:
1596: \item{\bf Rule (iii)}
1597: If both $\efi > \evar{v(u)}$ and $\egi> \evar{v(u)}$, then $I$ is decomposed into:
1598: \begin{description}
1599: \item[$\bf c_0)$] one instance of volume $\leq (1-\efi)\cdot v(u)$, and
1600: \item[$\bf c_1)$] one instance of volume $\leq (1-\egi)\cdot v(u)$.
1601: \end{description}
1602: \end{description}
1603: Algorithm~B returns {\em true} iff {\sc Test}$(I(u))$ returns {\em true}
1604: for each leaf $u$ of the recursion tree. This concludes the
1605: description of algorithm~B.
1606:
1607: For each node $u$ and child $u'$ of $u$ in $T$, we label the
1608: arc $(u,u')$ with the precise type of rule that was used
1609: to generate $u'$ from $u$. The possible labels are thus
1610: {\bf (i.a)}, {\bf (i.b)}, {\bf (ii.a)}, {\bf (ii.b)}, {\bf (iii.c$_0$)}, and
1611: {\bf (iii.c$_1$)}. We call {\bf (i.a)} and {\bf (ii.a)} {\em a-labels},
1612: {\bf (i.b)} and {\bf (ii.b)} {\em b-labels},
1613: and {\bf (iii.c$_0$)} and {\bf (iii.c$_1$)} {\em c-labels}.
1614: Any arc with a $b$-label is in addition labeled with the index $j$ of
1615: the respective instance $I_j$ in the decomposition, which we refer to as the {\em $j$-label} of the arc.
1616:
1617: \begin{definition}
1618: For any node $u$ of the tree $T$, let $seq(u)$
1619: denote the sequence of all edge-labels on the path
1620: from the root $r$ of $T$ to $u$.
1621: \end{definition}
1622:
1623: Clearly, if $seq(u)$ is known, then the entire path from $r$ to $u$
1624: including all node-labels (in particular, the one of $u$) can be
1625: computed in polynomial time. Indeed, the depth of the tree is at most
1626: $v^*$, and adding a child to a node of $T$ according to algorithm~B
1627: is feasible in polynomial time.
1628:
1629: The following lemma bounds the number of various labels which may
1630: occur in $seq(u)$.
1631:
1632: \begin{lemma}
1633: \label{lem:e2}
1634: For each node $u$ in $T$, $seq(u)$ contains at most (i) $v^*$ many
1635: $a$-labels, (ii) $\log v^*$ many $b$-labels, and (iii) $\log^2 v^*$ many $c$-labels.
1636: \nop{******** old ********
1637: \begin{enumerate}
1638: \item[a)] The number of $a$-labels in $seq(u)$
1639: is bounded by $v^*$.
1640:
1641: \item[b)] The number of $b$-labels in $seq(u)$
1642: is bounded by $\log v^*$.
1643:
1644: \item[c)] The number of $c$-labels in $seq(u)$ is bounded by $log^2 v^*$.
1645: \end{enumerate}
1646: ********}
1647: \end{lemma}
1648:
1649: \begin{proof}
1650: \noindent (i) Let us consider rule {\bf (i.a)} first. Given that
1651: $\efi>0$, $x_i$ effectively occurs in some clause of $\gvp$. Thus
1652: $|\gvp_1|<|\gvp|$. Moreover, by definition of $\psi_0$ and $\psi_1$,
1653: $|\psi_0\land \psi_1|\leq |\psi|$. Thus we have $|\gvp_1|\cdot|\psi_0\land
1654: \psi_1|< |\gvp|\cdot|\psi|$. It follows that whenever rule {\bf (i.a)} is
1655: applied, the volume decreases (at least by 1). The same holds for rule
1656: {\bf (ii.a)} by a symmetric argument. Since no rule ever increases the
1657: volume, there are at most $v^*$ applications of an $a$-rule.
1658:
1659: \noindent (ii) Assume that rule {\bf (i.b)} is applied to generate a
1660: child $t'$ of node $t$. By condition~3 of {\sc LCheck},
1661: $v(t)>4$. Therefore, $\chi(v(t))>2$ and thus $\efi\leq \evar{v(t)}
1662: <1/2$. It follows that $v(t')<v(t)/2$. The same holds if $t'$ results
1663: from $t$ via rule $\bf (ii.b)$. Because no rule ever increases the
1664: volume, any node generated after (among others) $\log v^*$
1665: applications of a $b$-rule has volume $\leq$ 1 and is thus a leaf in $T$.
1666:
1667: \noindent (iii) If a $c$-rule is applied to generate a child $t'$ of a node $t$,
1668: and since $\evar{v(t)} > \evar{v^*} > 1/\log v^*$, the volume of $v(t)$
1669: decreases at least by factor $(1- 1/\log v^*)$. Thus, the volume
1670: of any node $u$ which results from $t$ after $\log v^*$ applications of a
1671: $c$-rule satisfies $v(u)\leq v(t)(1- 1/\log v^*)^{\log v^*}\leq v(t)/e$
1672: by (\ref{eq-limes}); i.e., the volume has decreased more than
1673: half. Thus, any node $u$ resulting from the root of $T$ after $\log^2 v^*$ applications of a $c$-rule satisfies $v(u)
1674: \leq v^*\cdot \Big(\frac{1}{2}\Big)^{\log v^*} = 1$; that is, $u$ is a
1675: leaf in $T$.
1676: \qed
1677: \end{proof}
1678:
1679: \begin{theorem}
1680: \label{theo:beta2}
1681: Deciding whether monotone CNFs $\gvp$ and $\psi$ are non-dual is
1682: feasible in polynomial time with $O(\log^2 n)$ nondeterministic steps,
1683: where $n=|\gvp|+|\psi|$.
1684: \end{theorem}
1685:
1686: \begin{proof}
1687: As in the proof of Theorem~\ref{theo:beta3}, we use a compact representation
1688: $seq^*(u)$ of $seq(u)$. However, here the definition of $seq^*$ is somewhat
1689: more involved:
1690: \begin{itemize}
1691: \item $seq^*(u)$ contains all $b$-labels of $seq(u)$, which are the anchor elements of $seq^*(u)$.
1692: Every $b$-label is immediately followed by its associated $j$-label,
1693: i.e., the label specifying which of the (many) $b$-children
1694: is chosen. We call a $b$-label and its associated $j$-label a {\em $bj$-block}.
1695:
1696: \item At the beginning of $seq^*(u)$, as well as
1697: after each $bj$-block, there is an {\em $ac$-block}. The first
1698: $ac$-block in $seq^*(u)$ represents the sequence of all $a$- and $c$-labels in $seq(u)$ preceding the
1699: first $b$-label in $seq(u)$, and the $i$-th $ac$-block in $seq^*(u)$,
1700: $i> 1$, represents the
1701: sequence of the $a$ and $c$ labels (uninterrupted by any other label)
1702: following the $(i-1)$-st $bj$-block in $seq(u)$.
1703:
1704: Each $ac$-block consists of an $\alpha$-block followed by a
1705: $\gamma$-block, where
1706: \begin{itemize}
1707: \item
1708: the $\alpha$-block contains, in binary, the {\em number} of $a$-labels in the
1709: $ac$-block, and
1710: \item the $\gamma$-block contains all $c$-labels (single bits) in the $ac$-block, in the order as they
1711: appear.
1712: \end{itemize}
1713: \end{itemize}
1714:
1715: For example, if $s$ = ``$(i.a),(ii.a),c_0,(ii.a),c_1,c_0,(i.a)$'' is a maximal
1716: $ac$-subsequence in $seq(u)$, then its corresponding $ac$-block in $seq^*(u)$
1717: is ``$10,c_0,c_1,c_0$'', where 10 (= 4) is the $\alpha$-block (stating that there
1718: are four $a$-labels) and
1719: ``$c_0,c_1,c_0$'' is the $\gamma$-block enumerating the $c$-labels
1720: in $s$ in their correct order.
1721:
1722: The following facts are now the key to the result.
1723:
1724: \begin{description}
1725: \item[Fact~A.] Given $\phi^*$,$\psi^*$ and a string $s$, it is
1726: possible to compute in polynomial time the path $r=u_0,u_1,\ldots,$
1727: $u_l=u$ from the root $r$ of $T$ to the unique node $u$ in $T$ such
1728: that $s = seq^*(u)$ and all labels $I(u_i)$, or to tell that no such
1729: node $u$ exists (i.e., $s \neq seq^*(u)$ for every node $u$ in $T$).
1730: \end{description}
1731:
1732: This can be done by a simple procedure, which incrementally
1733: constructs $u_0$, $u_1$, etc as follows.
1734:
1735: Create the root node $r=u_0$, and set $I(u_0)=(\phi^*,\psi^*)$ and
1736: $t:=0$. Generate the next node $u_{t+1}$ and label it, while
1737: processing the main blocks ($ac$-blocks and
1738: $bj$-blocks) in $s$ in order, as follows:
1739:
1740: \begin{description}
1741: \item[$ac$-block:] Suppose the $\alpha$-block of the current
1742: $ac$-block has value $n_\alpha$, and the $\gc$-block contains labels
1743: $\gc_1,\ldots,\gc_k$. Set up counters $p:=0$ and
1744: $q:=0$, and while $p<n_\alpha$ or $q<k$, do the following.
1745:
1746: If {\sc LCheck}$(I(u_t))=\mathit{true}$, then flag an error and halt, as $s\neq
1747: seq^*(u)$ for every node $u$ in $T$. Otherwise,
1748: determine the rule type $\tau\in \{{\bf (i)},
1749: {\bf (ii)}, {\bf (iii)}\}$ used by algorithm~B to (deterministically) decompose $I(u_t)$.
1750: \begin{itemize}
1751: \item If $\tau\in\{{\bf (i)},{\bf (ii)}\}$ and $p<n_\alpha$, then assign $I(u_{t+1})$ the $a$-child of $I(u_t)$ according
1752: to algorithm~B, and increment $p$ and $t$ by 1.
1753: \item If $\tau={\bf (iii)}$ and $q<k$, then increment $q$ by 1, assign
1754: $I(u_{t+1})$ the $\gc_q$-child of $I(u_t)$ according
1755: to algorithm~B, and increment $t$ by 1.
1756: \item In all other cases (i.e., either $\tau\in\{{\bf (i)},{\bf (ii)}\}$ and $p\geq n_\alpha$,
1757: or $\tau={\bf (iii)}$ and $q\geq k$), flag an error and halt, since $s\neq
1758: seq^*(u)$ for every node $u$ in $T$.
1759: \end{itemize}
1760:
1761: \item[$bj$-block:]
1762: Determine the rule type $\tau\in \{ {\bf (i)}, {\bf(ii)}, {\bf
1763: (iii)}\}$ used by
1764: algorithm~B to (deterministically) decompose $I(u_t)$. If
1765: $\tau={\bf (iii)}$, then flag an error and halt, since $s\neq seq^*(u)$ for
1766: every node $u$ in $T$. Otherwise, assign $I(u_{t+1})$ the $j'$-th
1767: $\bf($$\tau.$$\bf b)$-child of $I(u_t)$ according to rule $\bf
1768: ($$\tau$$\bf.b)$ of
1769: algorithm~B, where $j'$ is the $j$-label of the current $bj$-block.
1770: \end{description}
1771:
1772: Clearly, this procedure outputs in polynomial time the desired labeled
1773: path from $r$ to $u$, or flags an error if $s\neq seq^*(u)$ for every
1774: node $u$ in $T$.
1775:
1776: Let us now bound the size of $seq^*(u)$ in terms of the
1777: original input size $v^*$.
1778:
1779: \begin{description}
1780: \item[Fact~B.] For any $u$ in $T$, the size of $seq^*(u)$ is $O(\log^2 v^*)$.
1781: \end{description}
1782:
1783: By Lemma~\ref{lem:e2} (ii), there are $<\log v^*$ $bj$-blocks. As already
1784: noted, each $bj$-block has size $O(\log v^*)$; thus, the total size of
1785: all $bj$-blocks is $O(\log^2 v^*)$. Next, there are at most $\log v^*$ many
1786: $ac$-blocks and thus $\alpha$-blocks. Each $\alpha$-block encodes a number of $< v^*$ $a$-rule applications (see
1787: Lemma~\ref{lem:e2}.(i)), and thus uses at most $\log v^*$ bits. The
1788: total size of all $\alpha$-blocks is thus at most $\log^2
1789: v^*$. Finally, by Lemma~\ref{lem:e2} (iii), the total size of all $\gamma$-blocks is at most $\log^2 v^*$.
1790: Overall, this means that $seq^*(u)$ has size $O(\log^2 v^*)$.
1791:
1792: To prove that algorithm~B rejects input $(\gvp^*,\psi^*)$, it is thus
1793: sufficient to guess $seq^*(u)$ for some leaf $u$ in $T$, to compute in
1794: polynomial time the corresponding path $r=u_0,u_1,\ldots,u_l=u$, and
1795: to verify that {\sc LCheck}$(I(u))=\mathit{true}$ but {\sc
1796: Test}$(I(u))=\mathit{false}$. Therefore, non-duality of $\phi^*$ and
1797: $\psi^*$ can be decided in polynomial time with $O(\log^2 v^*)$ bit
1798: guesses. Given that $v^*\leq n^2$, the number of guesses is $O(\log^2
1799: n^2)=O(\log^2 n)$. \qed
1800: \end{proof}
1801:
1802: The following result is an immediate consequence of this theorem.
1803:
1804: \begin{corollary}
1805: Problem {\sc Dual} is in $\cobetapol{2}$ and solvable in
1806: deterministic $n^{O(\log n)}$ time,
1807: where $n = |\gvp| + |\psi|$.
1808: %
1809: % Note: YES-instances must have input size bounded by a polynomial in
1810: % $n$ (for sure $|\gvp|^2|\psi|^2)$ suffices), and $\log(n^k) = k\log(n)$.
1811: %
1812: \end{corollary}
1813:
1814: (Note that Yes-instances of {\sc Dual} must have size polynomial in
1815: $n$, since dual monotone pairs $(\gvp,\psi)$ must satisfy conditions (2)
1816: and (3) in step~2 of algorithm~A.) We remark that the proof of Lemma~\ref{lem:e2} and
1817: Theorem~\ref{theo:beta2} did no stress the fact that
1818: $\evar{v}=1/\chi(v)$; the proofs go through for $\evar{v}=1/\log v$
1819: as well. Thus, the use of the $\chi$-function is not
1820: essential for deriving Theorem~\ref{theo:beta2}.
1821:
1822: However, a tighter analysis of the size of $seq^*(u)$ stressing
1823: $\chi(v)$ yields a better bound for the number of nondeterministic
1824: steps. In fact, we show in the next result that $O(\chi(n)\cdot\log
1825: n)$ bit guesses are sufficient. Note that $\chi(n) = o(\log n)$,
1826: thus the result is an effective improvement. Moreover, it also shows
1827: that {\sc Dual} is most likely not complete for $\cobetapol{2}$.
1828:
1829: \begin{theorem}
1830: \label{theo:logchi}
1831: Deciding whether monotone CNFs $\gvp$ and $\psi$ are non-dual is
1832: feasible in polynomial time with $O(\chi(n)\log n)$ nondeterministic
1833: steps, where $n = |\gvp|+|\psi|$.
1834: \end{theorem}
1835:
1836: \begin{proof}
1837: In the proof of Theorem~\ref{theo:beta2}, our estimates of the
1838: components of $seq^*(u)$ were rather crude. With more effort, we
1839: establish the following.
1840:
1841: \begin{description}
1842: \item[Fact~C.] For any $u$ in $T$, the size of $seq^*(u)$ is $O(\chi(v^*)\cdot\log(v^*))$.
1843: \end{description}
1844:
1845: Assume node $u'$ in $T$ is a child of $u$ generated via a
1846: $b$-rule. The $j$-label of the arc $(u,u')$ serves to identify one
1847: clause of $I(u)$. Clearly, there are no more than $v(u)$
1848: such clauses. Thus $\log v(u)$ bits suffice to represent any $j$-label.
1849:
1850: Observe that if $u$ is a node of $T$, then any path $\pi$ from $u$ to
1851: a node $w$ in $T$ contains at most $v(u)$ nodes, since the volume
1852: always decreases by at least 1 in each decomposition step. Thus, the
1853: number of $a$-labeled arcs in $\pi$ is bounded by $v(u)$ and not just
1854: by $v^*$ ($=v(r)$).
1855:
1856: For each node $u$ and descendant $w$ of $u$ in $T$, let
1857: $$
1858: f(u,w) = \sum_{u'\in B(u,w)} \log v(u'),
1859: $$
1860: where $B(u,w)$ is the set of all nodes $t$ on the path from $u$
1861: to $w$ such that the arc from $t$ to its successor on the path is $b$-labeled.
1862:
1863: By what we have observed, the total size of all encodings of
1864: $j$-labels in $seq^*(u)$ is at most $f(v^*,u)$ and the size of all
1865: $\alpha$-blocks in $seq^*(u)$ is at most $\log(v^*) + f(v^*,u)$, were
1866: the first term takes care of the first $\alpha$-block and the second
1867: of all other $\alpha$-blocks. Therefore, the total size of all
1868: $\alpha$-blocks and all $bj$-blocks in $seq^*(u)$ is
1869: $O(f(v^*,u)+\log(v^*))$.
1870:
1871: We now show that for each node $u$ and descendant $w$ of $u$ in $T$, it holds that
1872: $$
1873: f(u,w)\leq \log(v(u))\cdot \chi(v(u)).
1874: $$
1875: The proof is by induction on the number $|B(u,w)|$ of $b$-labeled arcs
1876: on the path $\pi$ from $u$ to $w$. If $|B(u,w)|=0$, then obviously
1877: $f(u,w)=0\leq v(u)$.
1878:
1879: Assume the claim holds for $|B(u',w)|\leq i$ and consider
1880: $|B(u,w)|=i+1$. Let $t$ be the first node on $\pi$ contained in
1881: $B(u,w)$, and let $t'$ be its child on $\pi$. Clearly,
1882: $f(u,w)=f(t,w)$, and thus we obtain:
1883: \begin{tabbing}
1884: X\= $f(u,w)$ \= $\leq$ \= $\log(v(t)) + (\log(v(t)-\log(\chi(v(t)))\cdot\chi(v(t))$ \quad \= \kill
1885: \> $f(u,w)$ \> = \> $\log(v(t)) + f(t',w)$ \+\+\\[0.75ex]
1886: $\leq$ \> $\log(v(t)) + \log(v(t'))\cdot\chi(v(t'))$ \> (\textrm{induction hypothesis}) \\[0.75ex]
1887: $\leq$ \> $\log(v(t)) + (\log(v(t))-\log(\chi(v(t))))\cdot\chi(v(t))$ \>
1888: (\textrm{as $v(t') \leq \frac{v(t)}{\chi(v(t))}$,\ $\chi(v(t'))\leq \chi(v(t))\,$})\\[0.75ex]
1889: = \> $\log(v(t))\cdot \chi(v(t))$ \> (\textrm{as
1890: $\log(\chi(y))\cdot\chi(y) = \log y$, for all $y$}).
1891: \end{tabbing}
1892: Thus, $f(u,w) \leq \log(v(u))\cdot \chi(v(u))$. This
1893: concludes the induction and proves the claim.
1894:
1895: Finally, we show that the total size of all $\gamma$ blocks in
1896: $seq^*(u)$, i.e., the number of all $c$-labels in $seq(u)$, is bounded
1897: by $\chi(v^*)\cdot\log(v^*)<\log^2 v^*$. Indeed, assume a $c$-rule is
1898: applied to generate a child $t'$ of any node $t$, and let $v=v(t)$, $v'=v(t')$. Since $\efi >
1899: \evar{v}$ and $\egi>\evar{v}$, we have
1900: $v'<(1-\evar{v})\cdot v$. Since $\chi(v^*)>\chi(v)$, we have
1901: $\evar{v} = 1/\chi(v) > 1/\chi(v^*)$ and thus
1902: $$
1903: v'<\Big(1-\frac{1}{\chi(v^*)}\Big)\cdot v.
1904: $$
1905: Hence, any node in $T$
1906: resulting after $\chi(v^*)\cdot\log(v^*)$ applications
1907: of a $c$-rule has volume at most
1908: $$
1909: v^*\cdot\Big(1-\frac{1}{\chi(v^*)}\Big)^{\chi(v^*)\cdot\log v^*}
1910: = v^*\cdot\Big[\Big(1-\frac{1}{\chi(v^*)}\Big)^{\chi(v^*)}\Big]^{\log v^*}
1911: \leq v^*\cdot\Big(\frac{1}{e}\Big)^{\log v^*}\;\leq\; 1
1912: $$
1913: (cf.\ also (\ref{eq-limes})). Consequently, along each branch in $T$
1914: there must be
1915: %fewer than
1916: no more than $\chi(v^*)\cdot\log v^*$ applications of a $c$-rule. In summary, the
1917: total sizes of all $\alpha$-blocks, all $\gamma$-blocks, and all
1918: encodings of $j$-labels in $seq^*(u)$ are all bounded by
1919: $\chi(v^*)\cdot\log v^*$. This proves Fact~C.
1920:
1921: As a consequence, non-duality of a monotone pair $(\gvp^*,\psi^*)$ can be recognized in
1922: polynomial time with $O(\chi(v^*)\cdot\log v^*)$ many bit guesses. As
1923: already observed on the last lines of~\cite{fred-khac-96}, we have
1924: $\chi(v^*)<2\chi(n)$. Furthermore, $v^*\leq n^2$, thus $\log v^*\leq
1925: 2\log n$. Hence, non-duality $(\gvp^*,\psi^*)$ can be recognized in polynomial time with
1926: $O(\chi(n)\cdot\log(n))$ bit guesses. \qed
1927: \end{proof}
1928:
1929: \begin{corollary}
1930: Problem {\sc Dual} is solvable in deterministic $n^{O(\chi(n))}$ time,
1931: where $n = |\gvp| + |\psi|$.
1932: %
1933: % Note: YES-instances must have input size bounded by a polynomial in
1934: % $n$ (for sure $|\gvp|^2|\psi|^2)$ suffices), and $\chi(n^k) \leq
1935: % k\chi(n)$ holds for fixed $k$ and large enogh $n$; indeed $n^k = \chi(n^k)^{\chi(n^k)}$
1936: % and $n^k = (\chi(n)^{\chi(n)})^k = \chi(n)^{k\chi(n)}$; since
1937: % $\chi(n)\leq\chi(n^k)$, it follows that $\chi(n^k)\leq k\chi(n)$
1938: % must hold.
1939: %
1940: \end{corollary}
1941:
1942: \begin{remark}\rm
1943: Note that the sequence $seq(u)$ describing a path from the root of $T$
1944: to a ``failure leaf'' with label $I(u)=(\gvp',\psi')$
1945: describes a choice of values for all variables in
1946: $V(\gvp\land\psi)\setminus V(\gvp'\land\psi')$. By completing it with
1947: values for $V(\gvp'\land\psi')$ that show non-duality of
1948: $(\gvp',\psi')$, which is possible in polynomial time, we obtain in
1949: polynomial time from $seq(u)$ a vector $w$ such that $f(w)\neq
1950: g^d(w)$. It also follows from the proof of Theorem~\ref{theo:logchi} that a witness $w$ for $f\neq g^d$ (if
1951: one exists) can be found in polynomial time with $O(\chi(n)\cdot\log n)$
1952: nondeterministic steps.
1953: \end{remark}
1954: %\medskip
1955:
1956: \subsection{Application of Beigel and Fu's results}
1957: \label{sec:beigel-fu}
1958:
1959: %
1960: While our independently developed methods substantially differ from
1961: those in \cite{beig-fu-97,beig-fu-99}, membership of problem {\sc
1962: Dual} in $\cobetapol{2}$ may also be obtained by exploiting Beigel and
1963: Fu's Theorem~8 in~\cite{beig-fu-97} (or, equivalently, Theorem~11
1964: in~\cite{beig-fu-99}). They show how to convert certain recursive
1965: algorithms that use disjunctive self-reductions, have runtime bounded
1966: by $f(n)$, and fulfill certain additional conditions, into polynomial
1967: algorithms using $\log(f(n))$ nondeterministic steps (cf.\
1968: \cite[Section 5]{beig-fu-99}).
1969:
1970: %However, this yields a somewhat more complicated nondeterministic algorithm.
1971:
1972: Let us first introduce the main relevant definitions of
1973: \cite{beig-fu-97}. Let $\|y\|$ denote the size of a problem instance
1974: $y$.
1975:
1976:
1977: \begin{definition}[\cite{beig-fu-97}]
1978: \label{defn:wellf}
1979: A partial order $\prec$ (on problem instances)
1980: is polynomially well-founded, if there exists a polynomial-bounded
1981: function $p$ such that
1982: \begin{itemize}
1983: \item $y_m\prec\cdots\prec y_1 \Rightarrow m\leq p(\|y_1\|)$ and
1984: \item $y_m\prec\cdots\prec y_1 \Rightarrow \|y_m\|\leq p(\|y_1\|)$.
1985: \end{itemize}
1986: \end{definition}
1987: For technical simplicity, \cite{beig-fu-97} considers only languages
1988: (of problem instances) containing the empty string, $\Lambda$.
1989:
1990:
1991: \begin{definition}[\cite{beig-fu-97}]
1992: \label{defn:dsr}
1993: A disjunctive self-reduction (for short, d-self-reduction)
1994: for a language $L$ is a pair $\tuple{h,\prec}$ of a polynomial-time
1995: computable function $h(x)=\{x_1,\ldots,x_m\}$ and a
1996: polynomially well-founded partial order $\prec$ on problem instances
1997: such that
1998: \begin{itemize}
1999: \item $\Lambda$ is the only minimal element under $\prec$;
2000: \item for all $x\neq\Lambda$, $x\in L\equiv h(x)\cap L\neq\emptyset$;
2001: \item for all $x$, $x_i\in h(x)\Rightarrow x_i\prec x$.
2002: \end{itemize}
2003: \end{definition}
2004:
2005: \newcommand{\rect}{{{\rm REC}(T(x))}}
2006: \newcommand{\thp}[1]{{T_{h,\prec}(#1)}}
2007:
2008: \begin{definition}[\cite{beig-fu-97}]
2009: Let $\tuple{h,\prec}$ be a d-self-reduction and let $x$ be a problem instance.
2010: \begin{itemize}
2011: \item $\thp{x}$ is the unordered rooted tree that satisfies the
2012: following rules: (1) the root is $x$; (2) for each $y$, the set of
2013: children of $y$ is $h(y)$.
2014: \item $|\thp{x}|$ is the number of leaves in
2015: $T_{h,\prec}(x)$.
2016: \end{itemize}
2017: \end{definition}
2018:
2019: \begin{definition}[~\cite{beig-fu-97}]
2020: \label{defn:rect}
2021: Let $T$ be a polynomial-time computable function. A language $L$ is in
2022: $\rect$, if there is a d-self-reduction $\tuple{h,\prec}$ for
2023: $L$ such that for all $x$
2024: \begin{enumerate}
2025: \item $|\thp{x}|\leq T(x)$, and
2026: \item $T(x)\geq \sum_{x_i\in h(x)}T(x_i)$.
2027: \end{enumerate}
2028: \end{definition}
2029:
2030: Let $\nondet{T(x)}$ denote the set of all (languages of) problems
2031: whose Yes-instances $x$ are recognizable in polynomial time
2032: with $T(x)$ nondeterministic bit guesses.
2033:
2034: \begin{theorem}[~\cite{beig-fu-97}]
2035: \label{theo:beigelfu}
2036: $\rect\subseteq\nondet{\lceil\log T(x)\rceil}$
2037: \end{theorem}
2038:
2039: We now show that Theorem~\ref{theo:beigelfu}, together with
2040: Fredman's and Khachiyan's proof of the deterministic complexity
2041: of algorithm~B, can be used to prove that problem {\sc Dual} is in
2042: co-$\betapol{2}$.
2043:
2044: Let $L$ denote the set of all non-dual monotone pairs $(\gvp,\psi)$
2045: plus $\Lambda$. Let us identify each monotone pair $(\gvp,\psi)$ which
2046: satisfies {\sc LCheck}$(\gvp,\psi)$ but does not satisfy {\sc
2047: Test}$(\gvp,\psi)$ with the ``bottom element'' $\Lambda$. Thus, if a
2048: node in the recursion tree $T$ has a child labeled with such a pair, then
2049: the label is simply replaced by $\Lambda$.
2050:
2051: Let us define the order $\prec$ on monotone pairs plus $\Lambda$ as
2052: follows: $J\prec I$, if $I\neq J$ and either $J=\Lambda$ or $J$ labels
2053: a node of the recursion tree generated by algorithm~B on input $I$. It
2054: is easy to see that both conditions of Definition~\ref{defn:wellf}
2055: apply; therefore, $\prec$ is polynomially well-founded. In fact, we
2056: may define the polynomial $p$ by the identity function; since the
2057: sizes of the instances in the recursion tree strictly decrease on
2058: each path in $T$, the two conditions hold.
2059:
2060: Define $h$ as the function which associates
2061: with each monotone pair $I=(\gvp,\psi)$
2062: those instances that label all children of the root
2063: by algorithm $B$ on input $I$. Clearly $h$ satisfies all three
2064: conditions of Definition~\ref{defn:dsr}, and hence $\tuple{h,\prec}$ is a
2065: $d$-self-reduction for $L$.
2066:
2067: Let $T$ be the function which to each instance $I$ associates
2068: $v(I)^{\log v(I)}$ (recall that $v(I)$ denotes the volume of
2069: $I$). It is now sufficient to check that conditions 1 and 2 of
2070: Definition~\ref{defn:rect} are satisfied, and to ensure that
2071: Theorem~\ref{theo:beigelfu} can be applied.
2072:
2073: That item~1 of Definition~\ref{defn:rect} is satisfied follows
2074: immediately from Lemma~5 in~\cite{fred-khac-96}, which states that the
2075: maximum number of recursive calls of algorithm~B on any input $I$ of
2076: volume $v$ is bounded by $v^{\chi(v)}$ $( \leq v^{\log v})$. Retain,
2077: however, that the proof of this lemma is noticeably more involved than
2078: our proof of the membership of {\sc Dual} in co-$\betapol{2}$.
2079:
2080: To verify item~2 of Definition~\ref{defn:rect}, it is sufficient
2081: to prove that for a volume $v > 4$ of any input instance
2082: to algorithm $B$, it holds that
2083: \begin{eqnarray}
2084: v^{\log v} &\geq & (v-1)^{\log (v-1)} +
2085: \frac{v}{3}\cdot\Big(\frac{v}{2}\Big)^{\log \frac{v}{2}},\quad \textrm{ and} \label{i+ii} \\
2086: v^{\log v} &\geq & 2(\alpha\cdot v)^{\log (\alpha\cdot v)},\quad
2087: \textrm{ where $\alpha = 1-1/\log v$}; \label{iii}
2088: \end{eqnarray}
2089: here, (\ref{i+ii}) arises from the rules ${\bf (i)}$, ${\bf (ii)}$ and
2090: (\ref{iii}) from rule ${\bf (iii)}$. As for (\ref{i+ii}), the
2091: child of $u$ from ${\bf (i.a)}$ resp.\ ${\bf (ii.a)}$ has volume at most $v-1$, and there are at most
2092: $v/3$ many children from${\bf (i.b)}$ resp.\ ${\bf (ii.b)}$, since $\min(|\gvp|,|\psi|)>2$ (recall
2093: that $v = |\gvp|\cdot|\psi|$);
2094: furthermore, each such child has volume $\leq \ev\cdot v \leq
2095: \frac{1}{2}v$. In case of (\ref{iii}), the volume of each child of
2096: $u$ is bounded by $(1-\ev)\cdot v \leq (1-1/\log v)\cdot v$; note also
2097: that $v^{\log v}$ monotonically increases for $v>4$. To see
2098: (\ref{i+ii}), we have
2099: \begin{tabbing}
2100: XX\= $(v-1)^{\log(v-1)}+\frac{v}{3}\cdot\Big(\frac{v}{2}\Big)^{\log \frac{v}{2}}$ \= $\leq$ \= $2(\frac{1}{e}\cdot \alpha^{\log v + \log \alpha})\cdot v^{\log v + \log \alpha}$ \quad \= \kill
2101: \> $(v-1)^{\log(v-1)}+\frac{v}{3}\cdot\Big(\frac{v}{2}\Big)^{\log
2102: \frac{v}{2}}$ \> $\leq$ \> $(v-1)^{\log v} + \frac{v}{3}\cdot\frac{v^{\log v-1}}{2^{\log v-1}}$ \+ \\[0.75ex]
2103: \> = \> $v^{\log v}\cdot(1-\frac{1}{v})^{\log v} + \frac{2\cdot v^{\log v}}{3\cdot v}$ \\[0.75ex]
2104: \> $\leq$ \> $v^{\log v}\cdot(1-\frac{1}{v}+\frac{2}{3\cdot v})$ \\[0.75ex]
2105: \> = \> $v^{\log v}\cdot(1- \frac{1}{3\cdot v})$ \\[0.75ex]
2106: \> $<$ \> $v^{\log v}$;\-
2107: \end{tabbing}
2108: to show (\ref{iii}), note that
2109: \begin{tabbing}
2110: XX\= $2(\alpha\cdot v)^{\log(\alpha\cdot v)}$ \= $\leq$ \= $2(\frac{1}{e}\cdot \alpha^{\log \alpha})\cdot
2111: v^{\log v + \log \alpha}$ \quad \= \kill
2112: \> $2(\alpha\cdot v)^{\log(\alpha\cdot v)}$ \> = \> $2\alpha^{\log v + \log \alpha}\cdot v^{\log v + \log \alpha}$ \+ \\[0.75ex]
2113: \> $\leq$ \> $2(\frac{1}{e}\cdot \alpha^{\log \alpha})\cdot
2114: v^{\log v + \log \alpha}$ \> ($\alpha^{\log v}\leq 1/e$,~ by (\ref{eq-limes}))\\[0.75ex]
2115: \> = \> $\frac{2}{e}\cdot (\alpha\cdot v)^{\log \alpha}\cdot v^{\log
2116: v}$ \\[0.75ex]
2117: \> $\leq$ \> $\frac{2}{e}\cdot v^{\log v}$ \> $(\alpha\cdot
2118: v)^{\log \alpha}\leq 1$,~ i.e.,~ $\log\alpha\cdot(\log\alpha+\log v)\leq 0$,\\
2119: \>\>\> since ${-1}<\log \alpha \leq 0$ and $\log v > 2$ \\[0.75ex]
2120: \> $<$ \> $v^{\log v}$. \-
2121: \end{tabbing}
2122: We can thus apply Theorem~\ref{theo:beigelfu} and conclude
2123: that the complement of {\sc Dual}
2124: is in $\nondet{\lceil\log T(x)\rceil}$, and thus also
2125: in $\betapol{2}$.
2126:
2127: The advantage of Beigel and Fu's method is its very abstract
2128: formulation. The method has two disadvantages, however, that are
2129: related to the two items of Definition~\ref{defn:rect}.
2130:
2131: The first item requires that $T(x)$ is at least the number of
2132: leaves in the tree for $x$. In order to show this, one must basically
2133: prove a deterministic time bound for the considered algorithm (or at
2134: least a bound of the number of recursive calls for each instance,
2135: which is often tantamount to a time-bound). The method does not
2136: suggest how to do this, but presupposes that such a bound exists (in
2137: the present case, this was done by Fredman and Khachiyan in a
2138: nontrivial proof). The second item requires to prove that the
2139: $T$-value of any node $x$ in the recursion tree is at least the sum of
2140: the $T$-values of its children. This may be hard to show in many cases, and does not necessarily hold for every upper bound $T$.
2141:
2142: Our method instead does not require an a priori time bound, but
2143: directly constructs a nondeterministic algorithm from
2144: the original deterministic algorithm, which lends itself to
2145: a simple analysis that directly leads to the desired
2146: nondeterministic time bound. The deterministic time bound
2147: follows as an immediate corollary. It turns out (as exemplified
2148: by the very simple proof of Theorem~\ref{theo:beta2}) that the
2149: analysis involved in our method can be simpler than
2150: an analysis according to previous techniques.
2151:
2152: \section{Conclusion}
2153:
2154: We have presented several new cases of the monotone dualization
2155: problem which are solvable in output-polynomial time. These cases
2156: generalize some previously known output-polynomial
2157: cases. Furthermore, we have shown by rather simple means that
2158: non-dual monotone pairs $(\gvp,\psi)$ can be recognized, using a
2159: nondeterministic variant of Fredman and Khachiyan's algorithm~B
2160: \cite{fred-khac-96}, in polynomial time with $O(\log^2 n)$ many bit
2161: guesses, which places problem {\sc Dual} in the class
2162: $\cobetapol{2}$. In fact, a refined analysis revealed that this is
2163: feasible in polynomial time with $O(\chi(n)\cdot \log n)$ many bit
2164: guesses.
2165:
2166: While our results document progress on {\sc Dual} and {\sc
2167: Dualization} and reveal novel properties of these problems, the
2168: question whether dualization of monotone pairs $(\gvp,\psi)$ is
2169: feasible in polynomial time remains open. It would be interesting to
2170: see whether the amount of guessed bits can be further significally
2171: decreased, e.g., to $O(\log\log v\cdot \log v)$ many bits.
2172:
2173: \subsection*{Acknowledgments}
2174:
2175: Georg Gottlob thanks Jos\'e Balc\'azar for inviting him to an
2176: interesting workshop in Bellaterra, Barcelona, Spain, and to Leonard
2177: Pitt for giving an elucidating lecture on the dualization problem
2178: there. This work was supported in part by the Austrian Science Fund
2179: (FWF) project Z29-INF, by TU Wien through a scientific collaboration
2180: grant, and by the Scientific Grant in Aid of the Ministry of
2181: Education, Science, Sports and Culture of Japan.
2182:
2183: {\small
2184:
2185: \bibliographystyle{abbrv}
2186:
2187: \ifmakebbl
2188:
2189: \bibliography{library,eiterlib+}
2190:
2191: \else
2192:
2193: \begin{thebibliography}{100}
2194: \addtolength{\itemsep}{-0.08cm}
2195:
2196: \bibitem{beig-fu-97}
2197: R.~Beigel and B.~Fu.
2198: \newblock {Molecular computing, bounded nondeterminism, and efficient
2199: recursion}.
2200: \newblock In: {\em Proc.\ 24th International Colloquium on Automata, Languages and
2201: Programming (ICALP)}, pp.\ 816-826, Springer LNCS 1256, 1997.
2202:
2203: \bibitem{beig-fu-99}
2204: R.~Beigel and B.~Fu.
2205: \newblock {Molecular computing, bounded nondeterminism, and efficient
2206: recursion}.
2207: \newblock {\em Algorithmica}, 25: 222--238, 1999.
2208:
2209: \bibitem{bioc-ibar-95}
2210: C.~Bioch and T.~Ibaraki.
2211: \newblock {Complexity of identification and dualization of positive Boolean
2212: functions}.
2213: \newblock {\em Information and Computation}, 123:50--63, 1995.
2214:
2215: \bibitem{boro-etal-00}
2216: E.~Boros, K.~Elbassioni, V.~Gurvich, and L.~Khachiyan.
2217: \newblock {An efficient incremental algorithm for generating all maximal
2218: independent sets in hypergraphs of bounded dimension}.
2219: \newblock {\em Parallel Processing Letters}, 10(4):253--266, 2000.
2220:
2221: \bibitem{BEGKM2001}
2222: E.~Boros, K.~Elbassioni, V.~Gurvich,
2223: L.~Khachiyan and K.~Makino.
2224: \newblock On generating all minimal integer solutions for a monotone system
2225: of linear inequalities.
2226: \newblock In: {\em Proc.\ 28th International Colloquium on Automata, Languages and
2227: Programming (ICALP)}, pp.\ 22--103, Springer LNCS 2076, 2001.
2228:
2229: \bibitem{BGKM2001}
2230: E. Boros, V. Gurvich, L. Khachiyan and K. Makino.
2231: \newblock Dual-bounded generating problems: Partial and multiple
2232: transversals of a Hypergraph.
2233: \newblock {\em SIAM Journal on Computing}, 30:2036--2050, 2001.
2234:
2235: \bibitem{BGKM2002}
2236: E.~Boros, V.~Gurvich, L.~Khachiyan and K.~Makino.
2237: \newblock On the complexity of generating maximal frequent and minimal infrequent sets.
2238: \newblock In: {\em Proc.\ 19th International Symposium on
2239: retical Aspects of Computer Science (STACS)}, pp.\ 133--141, Springer LNCS 2285, 2002.
2240:
2241: \bibitem{BGH93}
2242: E.~Boros, V.~Gurvich, and P.~L.~Hammer.
2243: \newblock Dual subimplicants of positive Boolean functions.
2244: \newblock {\em Optimization Methods and Software}, 10:147--156, 1998.
2245:
2246: \bibitem{BHIK97}
2247: E.~Boros, P.~L.~Hammer, T.~Ibaraki and K.~Kawakami,
2248: \newblock Polynomial time recognition of 2-monotonic
2249: positive Boolean functions given by an oracle,
2250: \newblock {\em SIAM Journal on Computing}, 26 (1997) 93-109.
2251:
2252: \bibitem{cram-87}
2253: Y.~Crama.
2254: \newblock {Dualization of regular Boolean functions}.
2255: \newblock {\em Discrete Applied Mathematics}, 16:79--85, 1987.
2256:
2257: \bibitem{domingo-97} C.~Domingo.
2258: Private communication.
2259:
2260: \bibitem{domingo-etal-99}
2261: C.~Domingo, N.~Mishra and L.~Pitt.
2262: \newblock Efficient read-restricted monotone CNF/DNF dualization
2263: by learning with membership queries.
2264: \newblock {\em Machine Learning}, 37:89--110, 1999.
2265:
2266: \bibitem{chekuri-rajaraman-95}
2267: C.~Chekuri and A.~Rajaraman.
2268: \newblock {Conjunctive query containment revisited}.
2269: \newblock In: {\em Proc.\ 6th International Conference on Database
2270: Theory (ICDT)}, Delphi, Greece, Springer LNCS 1186, pp.\ 56--70, 1997.
2271:
2272: \bibitem{eite-92}
2273: T.~Eiter.
2274: \newblock {Exact transversal hypergraphs and application to Boolean
2275: $\mu$-functions}.
2276: \newblock {\em Journal of Symbolic Computation}, 17:215--225, 1994.
2277:
2278: \bibitem{eite-gott-95}
2279: T.~Eiter and G.~Gottlob.
2280: \newblock {Identifying the minimal transversals of a hypergraph and related
2281: problems}.
2282: \newblock {\em SIAM Journal on Computing}, 24(6):1278--1304, December 1995.
2283:
2284: \bibitem{fagi-83}
2285: R.~Fagin.
2286: \newblock {Degrees of acyclicity for hypergraphs and relational
2287: database schemes}.
2288: \newblock {\em Journal of the ACM}, 30:514--550, 1983.
2289:
2290: \bibitem{fred-khac-96}
2291: M.~Fredman and L.~Khachiyan.
2292: \newblock {On the complexity of dualization of monotone disjunctive
2293: normal forms}.
2294: \newblock {\em Journal of Algorithms}, 21:618--628, 1996.
2295:
2296: \bibitem{garc-barb-85}
2297: H.~Garcia-Molina and D.~Barbara.
2298: \newblock {How to assign votes in a distributed system}.
2299: \newblock {\em Journal of the ACM}, 32(4):841--860, 1985.
2300:
2301: \bibitem{gaur-99}
2302: D.R.~Gaur.
2303: \newblock {\em Satisfiability and self-duality of monotone Boolean functions}.
2304: \newblock Ph.D.\ thesis, School of Computing Science, Simon Fraser University, January 1999.
2305:
2306:
2307: \bibitem{gaur-krish-00}
2308: D.R.~Gaur and R.~Krishnamurti.
2309: \newblock Self-duality of bounded monotone Boolean functions and related problems.
2310: \newblock In: {\em Proc.\ 11th International Conference on Algorithmic Learning
2311: Theory (ALT)}, pp.\ 209-223, Springer LNCS 1968, 2000.
2312: %\bibitem{gins-86}
2313: %M.~L.~Ginsberg.
2314: %\newblock {Counterfactuals}.
2315: %\newblock {\em Artificial Intelligence}, 30:35--79, 1986.
2316:
2317: \bibitem{gogi-etal-98}
2318: G.~Gogic, C.~Papadimitriou, and M.~Sideri.
2319: \newblock {Incremental recompilation of knowledge}.
2320: \newblock {\em Journal of Artificial Intelligence Research}, 8:23--37, 1998.
2321:
2322: \bibitem{guno-etal-97}
2323: D.~Gunopulos, R.~Khardon, H.~Mannila, and H.~Toivonen.
2324: \newblock Data mining, hypergraph transversals, and machine learning.
2325: \newblock {\em Proc.\ 16th ACM Symp.\ on Principles of Database
2326: Systems (PODS)}, pp.\ 209--216, 1997.
2327:
2328: \bibitem{gold-etal-96}
2329: J.~Goldsmith, M.~Levy, and M.~Mundhenk.
2330: \newblock {Limited nondeterminism}.
2331: \newblock {\em SIGACT News}, 27(2):20-29, 1996.
2332:
2333:
2334: \bibitem{gottlob-etal-98}
2335: G.~Gottlob, N.~Leone, and F.~Scarcello.
2336: \newblock {Hypertree decompositions and tractable queries}.
2337: \newblock In: {\em Proc.\ 18th ACM Symp.\ on Principles of Database
2338: Systems
2339: (PODS)}, pp.\ 21-32, 1999. Full paper to appear in {\em Journal of Computer and System Sciences}.
2340: %{\em JCSS}.
2341:
2342: \bibitem{grah-79}
2343: M.~Graham.
2344: \newblock {On the universal relation}.
2345: \newblock {Technical Report, University of Toronto}, Canada, September 1979.
2346:
2347: \bibitem{Gur75}
2348: \newblock V.~Gurvich.
2349: \newblock Nash-solvability of games in pure strategies.
2350: \newblock {\em USSR Comput.\ Math and Math.\ Phys.}, 15(2):357--371, 1975.
2351:
2352:
2353: \bibitem{ibar-kame-93}
2354: T.~Ibaraki and T.~Kameda.
2355: \newblock {A theory of coteries: Mutual exclusion in distributed systems}.
2356: %\newblock Technical Report CSS/LCCR TR90--09, Simon Fraser University,
2357: %Burnaby,
2358: % B.C., Canada V5A 1S6, August 1990.
2359: \newblock {\em IEEE Transactions on Parallel and Distributed Systems},
2360: 4(7):779--794, 1993.
2361:
2362: \bibitem{kavv-etal-93}
2363: D.~Kavvadias, C.~H.~Papadimitriou, and M.~Sideri,
2364: \newblock On Horn envelopes and hypergraph transversals.
2365: \newblock In: {\em Proc.\ 4th International Symposium on Algorithms and
2366: Computation (ISAAC)}, pp.\ 399--405, Springer LNCS 762, 1993.
2367:
2368: \bibitem{khar-95}
2369: R.~Khardon.
2370: \newblock Translating between Horn representations and their characteristic models.
2371: %Technical Report TR-03-95, Center for Research in Computing Technology,
2372: %Harvard University, February 1995.
2373: \newblock {\em Journal of Artificial Intelligence Research}, 3:349-372, 1995.
2374:
2375: \bibitem{john-91}
2376: D.~S.~Johnson.
2377: \newblock Open and closed problems in NP-completeness.
2378: \newblock Lecture given at the International School
2379: of Mathematics ``G.~Stampacchia'': Summer School ``NP-Completeness:
2380: The First 20 Years'', Erice (Sicily)
2381: , Italy, June 20-27, 1991.
2382:
2383: \bibitem{john-etal-88}
2384: D.~S.~Johnson, M.~Yannakakis, and C.~H.~Papadimitriou.
2385: \newblock {On generating all maximal independent sets}.
2386: \newblock {\em Information Processing Letters}, 27:119--123, 1988.
2387:
2388: \bibitem{kint-fisc-84}
2389: C.M.R.~Kintala and P.~Fischer.
2390: %\newblock {Refining nondeterminism in relativized complexity classes}.
2391: %\newblock {\em SIAM J.\ Comput.}, 13:329--337, 1984.
2392: \newblock {Refining nondeterminism in relativized polynomial-time
2393: bounded computations}.
2394: \newblock {\em SIAM Journal on Computing}, 9:46--53, 1980.
2395:
2396: \bibitem{lawl-etal-80}
2397: E.~Lawler, J.~Lenstra, and A.~{Rinnooy Kan}.
2398: \newblock {Generating all maximal independent sets: NP-hardness and
2399: polynomial-time algorithms}.
2400: \newblock {\em SIAM Journal on Computing}, 9:558--565, 1980.
2401:
2402: \bibitem{lova-92}
2403: L.~Lov\'{a}sz.
2404: \newblock Combinatorial optimization: Some problems and trends.
2405: \newblock DIMACS Technical Report 92-53, RUTCOR, Rutgers University, 1992.
2406:
2407: \bibitem{maki-ibar-97}
2408: K.~Makino and T.~Ibaraki.
2409: \newblock {The maximum latency and identification of positive Boolean
2410: functions}.
2411: \newblock {\em SIAM Journal on Computing}, 26:1363--1383, 1997.
2412:
2413: \bibitem{MI98}
2414: K.~Makino and T.~Ibaraki,
2415: \newblock A fast and simple algorithm for identifying
2416: 2-monotonic positive Boolean functions.
2417: \newblock {\em Journal of Algorithms}, 26:291--305, 1998.
2418:
2419: \bibitem{maki-00}
2420: K.~Makino.
2421: \newblock {Efficient dualization of $O(\log n)$-term monotone disjunctive
2422: normal forms}.
2423: \newblock Technical Report 00-07, Discrete Mathematics and Systems Science,
2424: Osaka University, 2000; to appear in {\em Discrete Applied Mathematics}.
2425:
2426: \bibitem{mann-raih-86}
2427: H.~Mannila and K.-J.~R{\"a}ih{\"a}.
2428: \newblock {Design by example: An application of Armstrong relations}.
2429: \newblock {\em Journal of Computer and System Sciences}, 22(2):126--141,
2430: 1986.
2431:
2432: \bibitem{mish-pitt-97}
2433: N.~Mishra and L.~Pitt.
2434: \newblock Generating all maximal independent sets of
2435: bounded-degree hypergraphs.
2436: \newblock In: {\em Proc.\ Tenth Annual Conference on Computational Learning
2437: Theory (COLT)}, pp.\ 211--217, 1997.
2438:
2439:
2440: \bibitem{papa-97}
2441: Ch.~H.~Papadimitriou.
2442: \newblock {{NP}-completeness: A retrospective},
2443: In: {\em Proc.\ 24th International Colloquium on Automata, Languages and
2444: Programming (ICALP)}, pp.2--6, Springer LNCS 1256, 1997.
2445:
2446: \bibitem{PS94}
2447: U.~N.~Peled and B.~Simeone.
2448: \newblock An $O(nm)$-time algorithm for computing the dual of a regular Boolean
2449: function.
2450: \newblock {\em Discrete Applied Mathematics} 49:309--323, 1994.
2451:
2452: \bibitem{Ram90}
2453: \newblock K.~G.~Ramamurthy.
2454: \newblock {\em Coherent Structures and Simple Games}.
2455: \newblock Kluwer Academic Publishers, 1990.
2456:
2457: \bibitem{Read78}
2458: \newblock R.~C.~Read,
2459: \newblock Every one a winner, or how to avoid isomorphism
2460: when cataloging combinatorial configurations.
2461: \newblock {\em Annals of Discrete Mathematics} 2:107--120, 1978.
2462:
2463:
2464: \bibitem{reit-87}
2465: R.~Reiter.
2466: \newblock {A theory of diagnosis from first principles}.
2467: \newblock {\em Artificial Intelligence}, 32:57--95, 1987.
2468:
2469: \bibitem{robe-seym-86}
2470: N.~Robertson and P.~Seymour.
2471: \newblock {Graph minors {II}: Algorithmic aspects of tree-width}.
2472: \newblock {\em Journal of Algorithms},
2473: % {\em J.\ Algorithms},
2474: 7:309--322, 1986.
2475:
2476: \bibitem{taka-02}
2477: K.~Takata.
2478: \newblock {On the sequential method for listing minimal hitting sets}.
2479: \newblock In {\em Proceedings Workshop on Discrete Mathematics and Data Mining,
2480: 2nd SIAM International Conference on Data Mining, April 11-13, Arlington,
2481: Virginia, USA}, 2002.
2482:
2483: \bibitem{tamaki-00}H. Tamaki.
2484: Space-efficient enumeration of minimal transversals of a hypergraph.
2485: IPSJ-AL 75:29-36, 2000.
2486:
2487: \bibitem{tarjan-yannakakis-84}
2488: R.~E.~Tarjan and M.~Yannakakis.
2489: \newblock {Simple linear time algorithms to test chordality of graphs,
2490: test acyclicity of hypergraphs, and selectively reduce acyclic hypergraphs}.
2491: \newblock {\em SIAM Journal on Computing}, 13:566--579, 1984.
2492:
2493: \bibitem{thi-86}
2494: V.~D.~Thi.
2495: \newblock {Minimal keys and antikeys}.
2496: \newblock {\em Acta Cybernetica}, 7(4):361--371, 1986.
2497:
2498: \bibitem{toft-95}
2499: B.~Toft.
2500: \newblock {Colouring, Stable sets and perfect graphs}.
2501: \newblock {\em Handbook of Combinatorics}, Vol.~1 Chapter 4. Elsevier, 1995.
2502:
2503: \bibitem{yu-ozsoyoglu-79}
2504: C.~T.~Yu and M.~Ozsoyoglu.
2505: \newblock {An algorithm for tree-query membership of a distributed query}.
2506: \newblock {\em Proceedings IEEE COMPSAC}, pp.\ 306--312, 1979.
2507:
2508: \end{thebibliography}
2509:
2510: \fi
2511:
2512: }
2513:
2514:
2515:
2516: \end{document}
2517:
2518:
2519:
2520:
2521:
2522:
2523:
2524:
2525:
2526:
2527:
2528:
2529:
2530: