Java 当不可比关系以LinkedHashMap形式给出时,计算最大反链

Java 当不可比关系以LinkedHashMap形式给出时,计算最大反链,java,graph,combinatorics,poset,Java,Graph,Combinatorics,Poset,我正试图计算一个给定的。 我创建了以下方法: public boolean isIncomparable(Node a,Node b) { if(isReachable(a,b)||isReachable(b,a)) return false; return true; } 当且仅当两个节点不可比较时,即没有从a到b或从b到a的路径,则返回true 我定义了一个LinkedHashMap LinkedHashMap<Node,ArrayList<N

我正试图计算一个给定的。 我创建了以下方法:

public boolean isIncomparable(Node a,Node b)
{
    if(isReachable(a,b)||isReachable(b,a))
         return false;
    return true;
}
当且仅当两个节点不可比较时,即没有从a到b或从b到a的路径,则返回true

我定义了一个LinkedHashMap

LinkedHashMap<Node,ArrayList<Node>> map=new LinkedHashMap<Node,ArrayList<Node>>();
例如:假设元素是{A,B,C,D},关系如下:A>B,A>C,D>C

Incomp(A)={D}
Incomp(B)={C,D}
Incomp(C)={}
Incomp(D)={}
请注意,不允许重复,即IncompC={B},但由于B,C在incompub中,我们不需要重复它

我被困在这里了。我是否应该检查不完整元素之间的不可比性,然后获得最大大小的键作为最大反链?换句话说,如何使用此设置找到最大反链


我不能生成大小为k的所有子集,因为这将是低效的

您似乎认为在一般偏序集中存在一个唯一的最大反链,这是错误的。@hivert谢谢。是的,我知道;我实际上只是在寻找它的尺寸,即宽度
Incomp(A)={D}
Incomp(B)={C,D}
Incomp(C)={}
Incomp(D)={}