Message Boards Message Boards


[WSS18] Searching for Computational Universality in the Three-Body Problem.

Posted 1 year ago
0 Replies
2 Total Likes

It has been hypothesized that the (Newtonian) three-body problem is computationally universal (or Turing complete). This means (roughly speaking) that any computer program can be transformed into a three-body problem initial condition which after being simulated can eventually be decoded as the output of the initial computer program. My task was to find ways to encode basic computer programs (in particular, addition and multiplication) in terms of three-body problem initial conditions.

For example, addition (of two positive real numbers) may (under some assumptions about what can be done with the third mass) be expressed in terms of the three-body problem in the following way:

enter image description here

I then attempted to find initial conditions that could encode the multiplication of two positive numbers. I searched for initial conditions which produced trajectories of the following form:

enter image description here

What I attempted to do was to take the initial condition:

{1 -> Association["Mass" -> 1, "Position" -> {0, 0}, 
     "Velocity" -> {0, 0}], 
   2 -> Association["Mass" -> 1, "Position" -> {0, -.9}, 
     "Velocity" -> {1, 0}], 
   3 -> Association["Mass" -> 1, "Position" -> {0, .9}, 
     "Velocity" -> {-2, 0}*0.8]};

whose trajectory looks like:

enter image description here

and then perturb it repeatedly, on each iteration choosing the initial condition that produces a trajectory whose form is closest to the desired form.

On another note, my mentor (Vladimir Grankovsky) wrote code to compute how long it takes for a given solution to the three-body problem to become trivial (the system is called "trivial" if one particle is flying away from the other two and has a very low probability of returning) and then produced a plot of the time it takes for the solution to become trivial against the velocity of the second particle (vel2) with respect to the initial conditions:

{m1, m2, m3, pos1, pos2, pos3, vel1, vel3} = {1., 1., 1., {-1.0, 0.}, {0.0, 0.0}, {1.0, 0.0}, {.5, .5}, {0, 0`}}

where the x-coordinate of vel2 varies from -0.01 to 0.01 and y-coordinate of vel2 varies from -0.01 to 0.02 (both varying with a step size of 0.01/160):

enter image description here

Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
or Discard

Group Abstract Group Abstract