clabel usage for partial constraints


I have a question regarding the implementing partial constraints during
blockmodel minimization. By partial constraints I mean that I have a
group of vertices V1 that are pre-labeled into k clusters i.e. vertices
from V1 that are in different clusters should not mix. Then there is a
second set of vertices V2 that should be able to mix freely with
vertices from both V1 and V2.

I have tried defining a corresponding vertex property and passing it to
clabel argument but have always ended up with partitions in which V1 and
V2 don't mix in the final state.

Best regards,


You can't use clabel to implement partial constraints.

You need to use the 'bfield' that specifies the prior log-probability of a
node to belong to a particular group. With this you can set [0, -inf,
-inf,...] to pin down a node to group 0, for example. If you use constant
values (or leave the vector empty) it will amount to a flat prior, and the
placement will be unconstrained.