# Percolation threshold

Percolation threshold is a mathematical concept related to percolation theory, which is the formation of long-range connectivity in random systems. Below the threshold a giant connected component does not exist; while above it, there exists a giant component of the order of system size.

How can we calculate a percolation threshold of a graph/network using Mathematica?

1. Image of a subcellular network:

2. The image is transformed into a graph by utilizing MorphologicalGraph function:

3. By applying the ConnectedComponents function and choosing the list of subgraphs from the suggestion menu one can obtain a soup of graphs/networks. Here are the top of that list:

The question is how to exctract the probability that these networks are being connected? What is the critical treshold or bond percolation?

• demonstrations.wolfram.com/PercolationOnASquareGrid Commented Nov 4, 2016 at 22:20
• This Q&A might also be of interest. Commented Nov 4, 2016 at 22:25
• @Feyre. Thank you so much. Commented Nov 5, 2016 at 0:01
• i don't follow the probabilistic nature of the question. If you have many such images you could see how many show long range connectivity. Otherwise its not clear what you are asking. Commented Nov 6, 2016 at 19:26
• @george2079.Thank you for your consideration. I actually found this nice paper of Prof Oliver Knill "MATHEMATICA ROUTINES FOR INDEX EXPECTATION AND PERCOLATION " which kind of address the challenges I am dealing with at this point. Would appreciate any comments about what the code given actually does to define the site and bond percolations. Commented Nov 6, 2016 at 19:53

mybasicweightmatrix = (temp = Table[RandomReal[], {10}, {10}]) +
Transpose[temp]; (* symmetric matrix of random positive weights *)


Then threshold the entries such that values less than mythreshold will be set to $0$ (not connected), others to $1$ (connected). Form a graph based on this thresholded adjacency matrix. Then adjust mythreshold until the graph is no longer weakly connected.

Manipulate[
thresholdedmatrix = (HeavisideTheta[# - mythreshold] & /@
mybasicweightmatrix);

myfig = Column[{mythreshold,