I read the paper. It is very clear, and I want to try it out. Unfortunately, this repository, which seems to be the canonical implementation of the algorithm described in the paper, doesn't seem to support the disjunction operator.
From #10, it looks like disjunction is removed because
it is possible to use disjunction in a way that triggers exponential behaviour.
Could you give me an example where the exponential behavior is triggered? As far as I can tell, it is a polynomial algorithm.
In section 9 of the paper, you said that:
In return I have to pay a larger constant cost to sieve through intermediate results. Yet I conjecture that for non-pathological inputs the asymptotic complexities for both algorithms are the same.
Actually, I will argue that Pareto frontier + valid filtering should always give you the same O(n w^4) algorithm, same as the one in Podkopaev and Boulytchev [2014]. This is because for any (maxWidth, lastWidth), there can be only one height in the Pareto frontier. Another different value of height will either dominate or be dominated. Therefore, there are only O(w^2) configurations to consider, and therefore, in the concatenate operation, you need to consider O(w^2 * w^2) = O(w^4) combinations.
Nit: in section 4.3, the visible function, I think where is missing in front of pageWidth = 80 (sorry if this is incorrect, I haven't really used Haskell).
Thanks again for the illuminating paper.
I read the paper. It is very clear, and I want to try it out. Unfortunately, this repository, which seems to be the canonical implementation of the algorithm described in the paper, doesn't seem to support the disjunction operator.
From #10, it looks like disjunction is removed because
Could you give me an example where the exponential behavior is triggered? As far as I can tell, it is a polynomial algorithm.
In section 9 of the paper, you said that:
Actually, I will argue that Pareto frontier + valid filtering should always give you the same O(n w^4) algorithm, same as the one in Podkopaev and Boulytchev [2014]. This is because for any (maxWidth, lastWidth), there can be only one height in the Pareto frontier. Another different value of height will either dominate or be dominated. Therefore, there are only O(w^2) configurations to consider, and therefore, in the concatenate operation, you need to consider O(w^2 * w^2) = O(w^4) combinations.
Nit: in section 4.3, the
visiblefunction, I thinkwhereis missing in front ofpageWidth = 80(sorry if this is incorrect, I haven't really used Haskell).Thanks again for the illuminating paper.