1
$\begingroup$

Let $m\geq1$ and $P$ be an arbitrary poset with vertex set $V=\{v_1,\dots,v_n\}$, edge set $E,$ and set $O$ of orbits under $\text{Aut}(P).$ Can we efficiently generate all inequivalent nonnegative weight assignments $\alpha:V\to\mathbb{N}$ such that $\sum_{i=1}^n\alpha(v_i)=m$ from this information alone or do we need all inequivalent $\alpha$ with sum $\leq m$ for all $|P|<n?$ My goal is to obtain them for every $P$ (up to isomorphism) with $|P|\leq10$.

If an inductive procedure is needed, maybe it will involve something along the following lines.

Fix an orbit $o\in O$ and weight assignment $\alpha$ on $V\setminus o$ with sum $m-m'.$ For each $v\in o$ and orbit $o'\neq o,$ let $N_\alpha(v,o',w)$ be the number of incoming edges to $v$ from vertices in $o'$ with weight $w.$ For each $v_i,v_j\in o$ we set $v_i\sim_{o'}v_j$ iff $N_\alpha(v_i,o',w)=N_\alpha(v_j,o',w)$ for all $w\geq0,$ and $v_i\sim v_j$ iff $v_i\sim_{o'}v_j$ for all $o'\neq o.$

Let the equivalence classes under $\sim$ have cardinalities $a_1,\dots,a_h.$ For each composition $(c_1,\dots,c_h)$ of $m'$ with nonnegative parts (one part to each class), we compute all possible combinations of partitions of $c_i$ with $a_i$ nonnegative parts (one part to each vertex).

I think the weight assignments produced by these partitions will be inequivalent, as will the entire collection obtained by repeating the above for all inequivalent $\alpha\text{'s}$ on $V\setminus o,$ but major issues remain such as how do we choose $o,$ etc.

$\endgroup$
2
  • $\begingroup$ I have code for this. Does $\mathbb{N}$ include 0? $\endgroup$ Commented May 28, 2021 at 4:07
  • $\begingroup$ @BrendanMcKay thank you for your response. Yes, $\mathbb{N}$ includes $0$ above. You kindly sent me lists of vertex-weighted posets in late 2019. I am currently working on a problem that calls for adding cardinality 10 and maybe 11 to my collection of topologies. I will email you. $\endgroup$ Commented Jun 1, 2021 at 4:11

1 Answer 1

1
$\begingroup$

Let's see if I understand the question. You have a vertex set $V$ with an automorphism group $G$. You want to assign a nonnegative integer weight to each vertex, with sum fixed to $m$, and you want to list all possible weight assignments when two assignments related by an element $g\in G$ are considered equivalent. Also, you want this to be efficient. I don't know if it helps to know that $V$ is also a poset, so let us just consider it as set that has a group acting on it.

A practical way of doing this is available in Sage module Integer vectors modulo the action of a permutation group. Here is an example, with $V=B_2$ the Boolean lattice on a ground set of two elements (so $|V|=4$), and $m=3$. Note that, due to the automorphism group, the second and third elements are in symmetric position, so for example $[2,0,1,0]$ is not listed because it is equivalent to $[2,1,0,0]$.

sage: V = posets.BooleanLattice(2);
sage: G = V.hasse_diagram().automorphism_group();
sage: v = IntegerVectorsModPermutationGroup(G, 3);
sage: display(list(v))
[[3, 0, 0, 0],
 [2, 1, 0, 0],
 [2, 0, 0, 1],
 [1, 2, 0, 0],
 [1, 1, 1, 0],
 [1, 1, 0, 1],
 [1, 0, 0, 2],
 [0, 3, 0, 0],
 [0, 2, 1, 0],
 [0, 2, 0, 1],
 [0, 1, 1, 1],
 [0, 1, 0, 2],
 [0, 0, 0, 3]]

Whether this is efficient enough for you I don't know, in particular because I don't know how big $m$ you are considering. It works in ~10 seconds for the $B_4$ lattice (16 elements) and $m=10$, listing 155004 assignments. You could inspect the algorithm from the source code and decide if you want to implement it in a more efficient language. At least this gives you a working baseline. The algorithm is described in Nicolas Borie, FPSAC 2013, Generation modulo the action of a permutation group. The paper has this absolute gem of a statement: "This problem is not well solved in the literature."

If you do not need to list the vectors, but only need their count, then you should consider Redfield-Pólya counting instead. That is much faster and can handle (practically) any $m$ you wish.

$\endgroup$
2
  • $\begingroup$ I need the vectors not just their count (for $m,n\leq10$). Once I have them I am done, so efficiency is not very important. I am pretty sure this will work - thank you so much! $\endgroup$ Commented May 27, 2021 at 20:20
  • 1
    $\begingroup$ For $m,n \le 10$ it surely seems doable, as it's less than 3 million different posets. Have fun! $\endgroup$ Commented May 27, 2021 at 20:23

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .