You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jul 11, 2021. It is now read-only.
I was having trouble getting forward-backward to converge in the cyclic word graph, even when I kept only the swapadj edges (so there weren't many) and made them be low-probability (so we'd get fast numerical convergence).
I switched to trying tiny cyclic graphs and now I suspect the current version of the FIFO strategy is just not a stable way to solve a linear system.
The following makes a symmetric graph on n vertices and runs it to convergence. We should get a(I) = 1/(1-r), for all I from 1 to n. Converges instantly for n:=1 and also if I update n:=2, but hangs if I try n:=3.
% make n vertices. Do we have any better way to enumerate integers in a range?
n := 1.
is_int(1). is_int(2). is_int(3). is_int(4). is_int(5). is_int(6).
v(I) :- is_int(I) for I <= n.
% set up the linear system
a(I) += 1 for v(I).
a(I) += r*a(J) / n for v(I), v(J).
r := 1/2.
After a while waiting for n:=3, I interrupted and saw that the values had risen above the expected 2.0 (that is, 1/(1-r) with r=1/2), e.g.
If the numbers ever get above 2.0 on average, they will zoom off unstably to infinity (consider the case for 1 vertex). However, as long as all the numbers are <= 2.0, we are replacing the second summand with something <= 1, so the numbers should remain 2.0. Hence I don't understand what drives them above 2.0 in the first place.
The text was updated successfully, but these errors were encountered:
I was having trouble getting forward-backward to converge in the cyclic word graph, even when I kept only the swapadj edges (so there weren't many) and made them be low-probability (so we'd get fast numerical convergence).
I switched to trying tiny cyclic graphs and now I suspect the current version of the FIFO strategy is just not a stable way to solve a linear system.
The following makes a symmetric graph on n vertices and runs it to convergence. We should get a(I) = 1/(1-r), for all I from 1 to n. Converges instantly for n:=1 and also if I update n:=2, but hangs if I try n:=3.
After a while waiting for n:=3, I interrupted and saw that the values had risen above the expected 2.0 (that is, 1/(1-r) with r=1/2), e.g.
and then when I tried to trace a(1) and interrupted again,
If the numbers ever get above 2.0 on average, they will zoom off unstably to infinity (consider the case for 1 vertex). However, as long as all the numbers are <= 2.0, we are replacing the second summand with something <= 1, so the numbers should remain 2.0. Hence I don't understand what drives them above 2.0 in the first place.
The text was updated successfully, but these errors were encountered: