SIMPLER Equations for Vinge's Technological Singularity
Hans Moravec, October 2003
These equations supersede and expand on the more confusing
February 1999 "Simple Equations for Vinge's Technological
Singularity"
Express an exponent a bit above 1 as (n+1)/n
The equation
dx/dt = x^((n+1)/n) with initial condition x(0) = 1
can be solved in Maple
dsolve({ diff(x(t),t)=x(t)^((n+1)/n), x(0)=1 } ,x(t));
to produce the solution
x(t) = (n/(n-t))^n
This has a singularity at t=n.
We discussed exponents in the range 1 to 2.
1 resulted in an exponential, I was surprised
that merely setting it to 2 produced a singularity.
In the solution above, exponent 2 happens when
n = 1, and gives a singularity at t=1.
The exponent approaches 1 as n is made large. The
singularity recedes farther and farther into the
future, but never actually goes away.
We reach an exponent of 1 (i.e. dx/dt = x) as n
approaches infinity. In that limit (n/(n-t))^n
does indeed become e^t (the limit is the classic
definition of e^t), and the singularity vanishes
to infinitely far into the future.
But for any exponent even slightly greater than 1
there is a singularity, just far away.
------------------
Then I tried a functions sub-polynomial
(i.e. a smidge) faster than linear
dx/dt = x*(1+log(x)) -> x(t) = exp(exp(t)-1)
vastly fast double exponential, but without a singularity
But merely square the log, or the log factor
dx/dt = x*(1+log(x)^2) -> x(t) = exp(tan(t))
dx/dt = x*(1+log(x(t)))^2 -> x(t) = exp(t/(1-t))
and the singularity is back
Generalizing
dx/dt = x*(1+log(x(t)))^((n+1)/n) gives
x(t) = exp((n/(n-t))^n-1)
and again we have a singularity that recedes
------------------
Tickling the tail of the singularity, I see
dsolve({diff(x(t),t)=
x(t)*(1+log(x(t)))*(1+log(1+log(x(t)))),x(0)=1},x(t));
gets
x(t) = exp(exp(exp(t)-1)-1)
raising the log log term to (n+1)/n power brings
in a singularity at t=n as before. So instead
layer on another log in the next term
Let lp(x) = 1+log(x)
dsolve({diff(x(t),t)=
x(t)*lp(x(t))*lp(lp(x(t)))*lp(lp(lp(x(t)))),x(0)=1},x(t));
-> x(t) = exp(exp(exp(exp(t)-1)-1)-1)
Seems to be a pattern here.
Makes me wonder what the limit of
x*lp(x)*lp^2(x)*lp^3(x)*lp^4(x)...
might be
a function still barely faster than linear, yet only
infinitesimally away from triggering a singularity