Tuesday, July 11, 2023

Markov-Chains in VoroX

For VoroX.jl Benoît build a system that is similar to Google’s PageRank that uses Markov Chains, where web-crawlers are released onto the internet to measure the connections and generate rating of sites.

In his system there's an amount of traffic released into the Voronoi-edges of the foam, these pulses move from the edges to the junctions and check if the gates are open or closed. 

When a gate is open a pulse moves on to the next gate and so forth. These ‘ratings' correspond to the current in each edge between the cells and define if a cells shrinks or expands. The particles move until they reach a Steady-State, as in Nick’s 2D Dynamic Foam model:

If you’re not familiar with Markov-Chains, this video from Khan academy explain it in 3 minutes:

So in VoroX.jl dogs/pulses/web-crawlers move to other rooms/edges/websites when there’s an open-door/gate//link. 

After a couple of iterations a Steady-State is reached and we can count the dogs/flow/connections.

These values lets us know how much ‘erosion' the flow in an edge (a-c) has caused to its neighboring cells A and D, and as such the contraction-value for its dual edge A-D.


Details from the control panels of the 2D Dynamic-Foam
 that might make more sense now:

• Energy, Scale and Critically 

This refers to the number of particles/pulses are put into the system and their size.

 • Circumcenter / Barycenter / Incenter 

Refers to the method used to create the dual Voronoi Mesh on top of the Delaunay Mesh.

• Expansive Flow / Contractive Flow

Particles in Voronoi-edges (a-c) expand OR contract Delaunay-edges (AB).

Details from theVoroX.jl control panels of the 3D/2D Dynamic-Foam program where the particles are replaced by a Markov-Chain value system:

set size of the Area

Point size, Center size, Edge width, Circuit width: 
visualisation properties

time a current in edges stays highlighted

Shading for the faces.