graphy.partitions - Module to search over partitions

Module implementing tools to work with partitions of sets as well as perform heuristic optimization over set partitions.

graphy.partitions.to_str(membership)[source]

Convert membership array to pretty string.

Example:

>>> from graphy import partitions
>>> print(partitions.to_str([0,0,0,1,1,1]))
[0 0 0 1 1 1]
Parameters:
membershipnp.array or list

Membership array to convert

Returns:
str

Pretty string

graphy.partitions.to_alphanum_str(membership)[source]

Convert membership array to short string.

Example:

>>> from graphy import partitions
>>> print(partitions.to_alphanum_str([0,0,0,1,1,1,2,3,4,20,20,20]))
[000111234KKK]
Parameters:
membershipnp.array or list

Membership array to convert

Returns:
str

Short pretty string

graphy.partitions.get_minsize_assignment(N, min_comm_size)[source]

Create membership vector where each community contains at least as a certain number of nodes.

Parameters:
Nint

Desired length of membership vector

min_comm_sizeint

Minimum number of nodes each community should have.

Returns:
np.array

Membership vector

graphy.partitions.renumber_membership(membership)[source]

Renumber membership vector so that community numbers begin with 0 and increase consecutively.

Example:

>>> from graphy import partitions
>>> print(partitions.renumber_membership([10,10,10,31,31,31,32,33,4,20]))
[3 3 3 5 5 5 0 1 2 4]
Parameters:
membershipnp.array

Membership array to renumber

Returns:
np.array

Renumber membershp array

graphy.partitions.remap2match(partition1, partition2)[source]

Renumber membership assignments so that community identities have maximal overlap with another membership assignment.

For example:

>>> from graphy import partitions
>>> print(remap2match([3,3,1,1,0],[2,2,3,3,3]))
[2 2 3 3 4]
Parameters:
partition1np.array or list

Membership assignment to remap

partition2np.array or list

Membership assignment to match

Returns:
np.array

Remapped assignment

Find optimal decomposition using a greedy search.

Parameters:
qualityfuncfunction

Function which returns the quality measure to be maximized.

Nint

Number of nodes to partition.

initial_membershipnp.array, optional

Initial membership assignment. If None specified, each component is assigned to separate subsystem.

num_runsint, optional

Number of runs to try, can improve quality of decompositions. Default is 1.

debug_levelint, optional

Amount of debugging information to display, from 0 (no debugging information) to 3 (maximal debugging information)

Returns:
np.array

Optimal membership array

float

Q value corresponding to optimal membership