Interesting CS problem

Aug 31, 2009 18:32

I've come across a rather interesting CS problem during work that I thought I'd throw out there. The problem is this: given a finite lattice (L, ⊑) (our problem has a lattice that is also distributive, so you may presume that) and a node x in that lattice, efficiently compute the set S ⊆ L = { y ∈ L : x ⊏ y ∧ ∄ z x ⊏ z ⊏ y }. This is well defined ( Read more... )

math, science

Leave a comment

Comments 4

layah September 2 2009, 01:40:01 UTC
42

Reply


natetg September 2 2009, 20:03:12 UTC
So you're looking for S_x which is the set of all the elements that are immediately larger than x. Seems like you can generate a directed acyclic graph representation of L in, at worst, order L^2.5 ish time by walking the partial lattice for each element and reconnecting the graph appropriately, I haven't thought too much, but I expect that, in practice this is usually going to be Order L log L -ish. The directed acyclic graph structure then encodes all of the L_x.

If we consider, for a moment, the possible example of a fully ordered set (which is a distributive lattice) then you're basically stuck sorting the entire set to find an immediate parent, so I don't think that there's a generic solution without considering every element in the worst case.

I was under the impression that you were generating the lattice, and making it distributive by construction. I'd be inclined to guess that you can get the L_x work done in construction.

Reply

natetg September 2 2009, 20:03:39 UTC
L_x should be S_x at the end of the first para.

Reply

gchpaco September 14 2009, 04:38:55 UTC
As it happens, there's a closely related problem in formal concept analysis concerning the Galois lattice, and there are techniques for reconstructing the Hasse diagram, which implicitly requires knowledge of the covering set, in time O(|L|); however, they are not incremental. I'm looking into alternatives but have been told to stop thinking about this and do something business related.

Reply


Leave a comment

Up