# 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 – Feyre Nov 4 '16 at 22:20
• This Q&A might also be of interest. – march Nov 4 '16 at 22:25
• @Feyre. Thank you so much. – Pure Function Nov 5 '16 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. – george2079 Nov 6 '16 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. – Pure Function Nov 6 '16 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,