# random_walk_2d_avoid_simulation

random_walk_2d_avoid_simulation, a MATLAB 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.

### Usage:

random_walk_2d_avoid_plot ( step_num, walk_num )
where
• step_num is the number of steps to take. 100 might be a typical value.
• walk_num is the number of random walks to take. Each walk is plotted separately.

random_walk_2d_avoid_simulation ( step_num, walk_num )
where
• step_num is the number of steps to take. 100 might be a typical value.
• walk_num is the number of random walks to take. The data that is plotted comes from the average over all these walks. 100 might be a reasonable value to try.

### Languages:

random_walk_2d_avoid_simulation is available in a MATLAB version.

### Related Data and codes:

brownian_motion_simulation, a MATLAB code which simulates Brownian motion in an M-dimensional region.

chuckaluck_simulation, a MATLAB code which simulates the Chuck-a-Luck gambling game.

coin_simulation, a MATLAB code which looks at ways of simulating or visualizing the results of many tosses of a fair or biased coin.

dice_simulation, a MATLAB code which simulates N tosses of M dice, making a histogram of the results.

duel_simulation, a MATLAB code which simulates N repetitions of a duel between two players, each of whom has a known firing accuracy.

fair_dice_simulation, a MATLAB code which simulates N tosses of 2 dice, making a histogram of the results.

fire_simulation, a MATLAB code which simulates a forest fire over a rectangular array of trees, starting at a single random location.

gamblers_ruin_simulation, a MATLAB code which simulates the game of gambler's ruin.

high_card_simulation, a MATLAB code which simulates a situation in which you see the cards in a deck one by one, and must select the one you think is the highest and stop.

ising_2d_simulation, a MATLAB code which carries out a Monte Carlo simulation of an Ising model, a 2D array of positive and negative charges, each of which is likely to "flip" to be in agreement with neighbors.

jai_alai_simulation, a MATLAB code which simulates matches of jai alai.

poisson_simulation, a MATLAB code which simulates a Poisson process in which events randomly occur with an average waiting time of Lambda.

random_walk_1d_simulation, a MATLAB code which simulates a random walk in a 1-dimensional region.

random_walk_2d_simulation, a MATLAB code which simulates a random walk in a 2-dimensional region.

random_walk_3d_simulation, a MATLAB code which simulates a random walk in a 3-dimensional region.

reactor_simulation, a MATLAB code which a simple Monte Carlo simulation of the shielding effect of a slab of a certain thickness in front of a neutron source. This code was provided as an example with the book "Numerical Methods and Software."

roulette_simulation, a MATLAB code which simulates the spinning of a roulette wheel and the evaluation of certain common roulette bets.

sir_simulation, a MATLAB code which simulates the spread of a disease through a hospital room of M by N beds, using the SIR (Susceptible/Infected/Recovered) model.

traffic_simulation, a MATLAB code which simulates the cars waiting to get through a traffic light.

truel_simulation, a MATLAB code which simulates N repetitions of a duel between three players, each of whom has a known firing accuracy.

urn_simulation a MATLAB code which simulates an experiment in which k colored marbles are drawn from an urn containing a total of n marbles. The quantity of interest is the number of marbles of each color.

### 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 10 March 2019.