Numerically approximating a dynamical system on a graph

92 Views Asked by At

I am struggling with a project that originated in complex networks and graph theory and has since incorporated some dynamical system elements (I think?). Unfortunately I am not very well versed in dynamical systems, and hope to find some help on how to numerically approximate this system.

Consider an undirected connected graph $G = (V, E)$, accompanied by a distance function $d: E \to \mathbb{R}$. In particular, every edge $e \in E$ has a weight $d(e)$ contained in the interval $(0, \infty)$.

For each point in time $t$ (starting at zero) we find a value $\kappa_t(e)$, for every edge $e \in E$. This value is found as the result of a linear program and can in general only be calculated analytically for very simple graphs.

The value $\kappa_t(e)$ ranges from $(-\infty, 1]$, and is then used to modify the distance $d_t(e)$ in the following manner: we say that \begin{align*} d_{t + \Delta t}(e) = d_{t}(e) - \kappa_t(e) \cdot \Delta t. \end{align*} This implies that the distance on edge $e$ can either increase, decrease, or remain constant.

If I remember correctly, it is correct to say that with this definition, we can state \begin{align*} \frac{\partial d_t(e)}{\partial t} = - \kappa_t(e), \end{align*} right?

We do this for every edge in the graph, and the result is that some distances decrease to zero, and some distances increase to infinity (it might be possible that some distances remain constant, but this is unlikely, and might even be impossible).

I am having trouble numerically approximating this system, in particular I struggle with choosing the time increments $\Delta t$.

I started with using a simple Euler forward approximation, but this is not satisfactory in two ways: first, for most timesteps nothing 'interesting' happens. Second, by chosing the increments independently from the situation in the graph, we might 'jump over' interesting events, changing the geometry of the graph in the process!

For my second attempt, I thought I might choose the time increments $\Delta t$ as a function of the current situation in the graph. I did this by first selecting those edges that have a positive value $\kappa_t$, which implies that the distances on those edges would decrease.

Next, I took the maximum of those values, and calculated $\Delta t$ as the timeperiod it took for the edge with maximum value $\kappa_t$ to reach exactly distance zero. In that way, we are assured that after every jump, at least one edge has attained distance zero.

This massively reduces the number of iterations in my approximation algorithm, but it gave a number of problems as well. For instance, it might be very possible that all values $\kappa_t$ are non-positive at time $t$, but more importantly, the geometry changes at every point in time, so that those edges with maximal positive value $\kappa_t$ are generally not the ones with distance zero on their edges at time $t + \Delta t$.

Does anyone have a suggestion on how to simulate a dynamical system such as this where at any point in time the geometry can change (e.g. change from $\kappa(e) > 0$ to $\kappa(e) < 0$)?

Thank you in advance for any help you can offer!

EDIT:

We calculate the value $\kappa_t(x, y)$ as follows: \begin{align*} \kappa_t(x, y) = 1 - \frac{\mathcal{W}_1(P_x, P_y)}{d_t(x, y)}, \qquad (x, y) \in E, \end{align*} where $P_x$ and $P_y$ are the probability measures of the standard random walk associated with the graph (i.e. $P_x(y)$ is the probability of jumping to vertex $y$, when you are at $x$. This probability is proportional to the inverse of the distance on $(x, y)$ and the neighbouring vertices)

Next, \begin{align*} \mathcal{W}_1(P_x, P_y) = \inf_{\gamma \in \pi(P_x, P_y)} \left\{ \sum_{(a, b) \in V \times V} d_t(a, b) \gamma(a, b) \right\}, \end{align*} where $\pi(P_x, P_y)$ is the collection of all couplings of $P_x$ and $P_y$.

I hope this helps!