sf.apps.sample.waw_matrix¶
-
waw_matrix
(A, w)[source]¶ Rescale adjacency matrix to account for node weights.
Given a graph with adjacency matrix \(A\) and a vector \(w\) of weighted nodes, this function rescales the adjacency matrix according to [9]:
\[A \rightarrow WAW,\]with \(W=w_{i}\delta_{ij}\) the diagonal matrix formed by the weighted nodes \(w_{i}\). The rescaled adjacency matrix can be passed to
sample()
, resulting in a distribution that increases the probability of observing a node proportionally to its weight.Example usage:
>>> g = nx.erdos_renyi_graph(5, 0.7) >>> a = nx.to_numpy_array(g) >>> a array([[0., 1., 1., 1., 1.], [1., 0., 1., 1., 1.], [1., 1., 0., 1., 0.], [1., 1., 1., 0., 0.], [1., 1., 0., 0., 0.]]) >>> w = [10, 1, 0, 1, 1] >>> a = waw_matrix(a, w) >>> a array([[ 0., 10., 0., 10., 10.], [10., 0., 0., 1., 1.], [ 0., 0., 0., 0., 0.], [10., 1., 0., 0., 0.], [10., 1., 0., 0., 0.]]) >>> sample(a, 3, 4) [[1, 0, 0, 1, 1], [1, 1, 0, 0, 0], [1, 1, 0, 1, 1], [1, 0, 0, 1, 0]]
- Parameters
A (array) – adjacency matrix to rescale
w (array or list) – vector of real node weights
- Returns
matrix rescaled according to the WAW encoding
- Return type
array
code/api/strawberryfields.apps.sample.waw_matrix
Download Python script
Download Notebook
View on GitHub