random_walk_2d_avoid_simulation


random_walk_2d_avoid_simulation, a Python code which simulates a self-avoiding random walk in a 2D region.

A random self-avoiding walk of length STEP_NUM in 2D can be generated by generating a random walk in 2D and "hoping" it doesn't intersect itself. If the next step would cause an intersection, then the generation is terminated prematurely; to ensure that the self-avoiding random walks are selected uniformly, we have to just keep trying random walks this way and "hoping".

The code random_walk_2d_avoid_plot() plots the trajectories of one or more self-avoiding random walks. The user gives a desired length STEP_NUM, and the code generates a random walk that either reaches STEP_NUM without self-intersection, or is terminated early to avoid intersection.

The code random_walk_2d_avoid_simulation() plots averaged data for any number of self-avoiding random walks that each try to achieve the same number of steps. The data plotted includes the number of steps each walk reached before termination, and a least squares fit to the distance versus number of steps.

Licensing:

The computer code and data files described and made available on this web page are distributed under the MIT license

Languages:

random_walk_2d_avoid_simulation is available in a MATLAB version and an Octave version and a Python version.

Related Data and codes:

python_simulation, a Python code which uses simulation to study card games, contests, and other processes which have a random element. Usually, the purpose is to try to predict the average behavior of the system over many trials.

Reference:

  1. Brian Hayes,
    How To Avoid Yourself,
    American Scientist,
    Volume 86, Number 4, July-August 1998, pages 314-319.

Source Code:


Last revised on 29 November 2022.