**Date:** January 7 2021

**Summary:** Modeling computational actions as single step actions

**Keywords:** ##zettel #random #access #machine #model #archive

Not Available

**Random Access Machine (RAM) Model:** instructions are executed contiguously without concurrency. [1]

RAM concerns common real-world instructions executed at constant times:

Arithmetic:

Add

Subtract

Multiply

Divide

Remainder

Floor

Ceiling

Data Movement

Loading

Storing

Copying

Control flow

Conditionals and unconditional branches

Subroutine calls

Returns

The RAM model concerns integers and floating points for real number representation.

A limit on the size of each word of data is assumed.

The memory hierarchy (i.e. model caches or virtual memory on modern computers) is not modeled.

**Algorithm analysis:** predicting the resources an algorithm requires.Computational time is what is commonly measured. Memory, hardware, or bandwidth are sometimes also analyzed. [1]

**Running time:** the number of basic operations executed in an algorithm. In the RAM model, each executed line takes the constant time ci.

Generally, time taken by an algorithm grows in proportion to the size of the input. [1] Definitions for input size depend on what is studied:

The number of items in the input

The total number of bits needed to represent the input in binary notation

Numbers of vertices and edges in a graph

Zelko, Jacob. *Random Access Machine (RAM) Model*. https://jacobzelko.com/01072021072613-random-access-model. January 7 2021.

[1] T. H. Cormen, Ed., Introduction to algorithms, 3rd ed. Cambridge, Mass: MIT Press, 2009.

CC BY-SA 4.0 Jacob Zelko. Last modified: January 17, 2023.
Website built with Franklin.jl and the Julia programming language.