level entropy

Hi all,
I'm having issues in understanding functions to access level entropy in a NSBM, in particular

[state.level_entropy(x) for x in range(len(state.get_levels()))]

whose sum is equal to state.entropy(), is different from

[x.entropy() for x in state.get_levels()]

What is the difference between the two? How can I use both the informations?


The difference is that BlockState.entropy() will ignore the hierarchical
structure, and will put a flat prior on the edge counts between groups.
NestedBlockState.level_entropy() returns the _correct_ contribution of
each level to the final description length, which accounts for the
hierarchical structure.


Right... thanks!