Consider a monotonic predicate $P$ over the powerset $2^{|n|}$ (ordered by inclusion). By "monotonic" I mean: $\forall x, y \in 2^{|n|}$ such that $x \subset y$, if $P(x)$ then $P(y)$. I am looking for an algorithm to find all the minimal elements of $P$, i.e., the $x \in 2^{|n|}$ such that $P(x)$ but $\forall y \subset x$, $\neg P(y)$. Since the width of $2^{|n|}$ is $n \choose n/2$, there could be exponentially many minimal elements, and therefore the running time of such an algorithm could be exponential in general. However, could there exist an algorithm for this task which is polynomial in the size of the output?

[Context: A more general question was asked but there was no attempt in the answers to evaluate the complexity of the algorithm in the size of the output. If I assume that there is only one minimal element, for instance, then I can perform a binary search following this answer and find it. However, if I want to continue finding more minimal elements, I need to maintain the current information I have about $P$ in a way which would make it tractable to continue the search without wasting time on what is already known. Is it possible to do this and find all the minimal elements in polynomial time in the size of the output?]

Ideally, I would like to understand if this can be done with general DAGs, but I already don't know how to answer the question for $2^{|n|}$.

  • $\begingroup$ The powerset $2^{|n|}$ ordered by inclusion is a DAG (with the various parts of $\{1, ..., n\}$ as vertices and one edges between couples of parts that are included in one another, keeping only the transitive reduction of this graph to remove redundant edges implied by transitivity). It seems natural to ask the same question about arbitrary DAGs. $\endgroup$
    – a3nm
    Commented Feb 7, 2013 at 9:34

1 Answer 1


Your problem is known in the learning literature as "learning monotone functions using membership queries". A class of monotone functions for which one can identify all minterms is known as "polynomially learnable using membership queries".

It seems that the existence of a polynomial time algorithm is still open. Schmulevich et al. prove that "Almost all monotone Boolean functions are polynomially learnable using membership queries". If we also require that the $t$th minterm be generated in time polynomial in $n$ and $t$, then the problem is equivalent to monotone dualization, as shown by Bioch and Ibaraki. Here is a survey addressing monotone dualization.

  • $\begingroup$ Thanks for this extremely useful answer. Are you aware of generalizations to arbitrary DAGs (i.e., more than the special cases in section 5.2 of Eiter et al.)? $\endgroup$
    – a3nm
    Commented Dec 26, 2012 at 17:52
  • $\begingroup$ No, unfortunately not. $\endgroup$ Commented Dec 27, 2012 at 3:35
  • $\begingroup$ OK, I'll accept this answer anyway. Additional remarks: (1) this answer is about the computational complexity, not the complexity in the number of evaluations of $P$ (see cstheory.stackexchange.com/a/14862/4795 for this last case), and (2) the exact open question is "can you learn a monotone boolean function in polynomial time in $n$ and its number of minima and maxima", there is no hope of doing it in polynomial time in $n$ and the number of maxima because there can be a linear number of maxima but an exponential number of minima (cf. sec 6.1 paragraph 2 in the survey mentioned above). $\endgroup$
    – a3nm
    Commented Dec 27, 2012 at 17:21
  • $\begingroup$ See my other question cstheory.stackexchange.com/q/16258/4795 for information about the global worst-case query complexity for arbitrary DAGs. $\endgroup$
    – a3nm
    Commented Jan 30, 2013 at 0:07
  • $\begingroup$ re monotone dualization (CNF←→DNF) & DAGs. sounds a lot like a theorem from juknas book boolean function complexity sec 9.4. "lower bounds criterion" thm 9.17 $\endgroup$
    – vzn
    Commented Feb 6, 2013 at 22:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.