q2K BHP
Black History Portal
THE BHP WIRE —
HIDDEN TRUTHS
What's New!
THE JOURNEY THROUGH TIME

Explore Black History

Explore the people, places, events, achievements, struggles and stories that shaped our journey.

✊🏾

Civil Rights

Movements, leaders, victories and the continuing fight for equality.

⚙️

Black Inventors

Innovation, patents, science, technology and world-changing contributions.

🏆

Sports

Pioneers, champions, Negro Leagues, records, activism and excellence.

♟️

People

Meet the people whose lives, choices and achievements shaped the journey.

📍

Places

Black towns, communities, institutions and places where history happened.

📜

Events

Moments that changed communities, movements, institutions and the nation.

Enter a person, place, event, or topic.
MY'STORY

The MOVE Fire

This is a personal recollection on the Move fire on May 13, 1985 Philadelphia police fired thousands of rounds at the MOVE house, city officials approved dropping an explosive device on the roof, the resulting fire was allowed to burn, 11 people—including five children—died, and 61 homes were destroyed. Philadelphia City Council later called it a “brutal attack carried out by the City of Philadelphia on its own citizens” and acknowledged that no individual faced criminal consequences for the bombing. One timeline correction worth preserving for the BHP record: the major previous MOVE-police confrontation was August 8, 1978, about seven years before the bombing, not a year or two earlier. Officer James Ramp was killed, other police and firefighters were wounded, nine MOVE members were later convicted, and television cameras recorded police beating Delbert Africa during his arrest. The 1985 MOVE Commission later specifically criticized city planners for failing to adequately use lessons from that 1978 confrontation. And that actually strengthens the point you’re making: 1985 did not happen without precedent or institutional memory. There had already been a deadly confrontation with MOVE, years of conflict, negotiations and police involvement before Osage Avenue.

MORE →
BLACK FACTS
The Truths They Never Taught You...

The Violence That Helped Spark the NAACP

In August 1908, a white mob attacked Springfield, Illinois’s Black community, destroying homes and businesses and lynching two Black men. National outrage over the violence helped spur the movement that created the NAACP the following year.

MORE →
BHP gathered finds from its connected research sources. Showing the 4 strongest Black History matches.
← BACK TO RESULTS
Wikipedia

Turing machine examples

The following are examples to supplement the article Turing machine.

Turing's first example

[edit]

The following table is Turing's very first example (Turing 1937):

"1. A machine can be constructed to compute the sequence 0 1 0 1 0 1..." (0 <blank> 1 <blank> 0...)[1]
Configuration Behavior
m-configuration
(state)
Tape symbol Tape operations Final m-configuration
(state)
b blank P0, R c
c blank R e
e blank P1, R f
f blank R b

With regard to what actions the machine actually does, Turing (1936)[2] states the following:

"This [example] table (and all succeeding tables of the same kind) is to be understood to mean that for a configuration described in the first two columns the operations in the third column are carried out successively, and the machine then goes over into the m-configuration in the final column."[2]

He makes this very clear when he reduces the above table to a single instruction called "b",[3] but his instruction consists of 3 lines. Instruction "b" has three different symbol possibilities {None, 0, 1}. Each possibility is followed by a sequence of actions until we arrive at the rightmost column, where the final m-configuration is "b":

Current m-configuration (instruction) Tape symbol Operations on the tape Final m-configuration (instruction)
b None P0 b
b 0 R, R, P1 b
b 1 R, R, P0 b

As observed by a number of commentators including Turing (1937) himself, (e.g., Post (1936), Post (1947), Kleene (1952), Wang (1954)) the Turing instructions are not atomic — further simplifications of the model can be made without reducing its computational power; see more at Post–Turing machine.

As stated in the article Turing machine, Turing proposed that his table be further atomized by allowing only a single print/erase followed by a single tape movement L/R/N. He gives us this example of the first little table converted:[4]

Current m-configuration (Turing state) Tape symbol Print-operation Tape-motion Final m-configuration (Turing state)
q1 blank P0 R q2
q2 blank P blank, i.e. E R q3
q3 blank P1 R q4
q4 blank P blank, i.e. E R q1

Turing's statement still implies five atomic operations. At a given instruction (m-configuration) the machine:

  1. observes the tape-symbol underneath the head
  2. based on the observed symbol goes to the appropriate instruction-sequence to use
  3. prints symbol Sj or erases or does nothing
  4. moves tape left, right or not at all
  5. goes to the final m-configuration for that symbol

Because a Turing machine's actions are not atomic, a simulation of the machine must atomize each 5-tuple into a sequence of simpler actions. One possibility — used in the following examples of "behaviors" of his machine — is as follows:

(qi) Test tape-symbol under head: If the symbol is S0 go to qi.01, if symbol S1 go to qi.11, if symbol S2 go to qi.21, etc.
(qi.01) print symbol Sj0 or erase or do nothing then go to qi.02
(qi.02) move tape left or right nor not at all then go to qm0
(qi.11) print symbol Sj1 or erase or do nothing then go to qi.12
(qi.12) move tape left or right nor not at all then go to qm1
(qi.21) print symbol Sj2 or erase or do nothing then go to qi.22
(qi.22) move tape left or right nor not at all then go to qm2
(etc — all symbols must be accounted for)

So-called "canonical" finite-state machines do the symbol tests "in parallel"; see more at microprogramming.

In the following example of what the machine does, we will note some peculiarities of Turing's models:

The convention of writing the figures only on alternate squares is very useful: I shall always make use of it.[2]

Thus when printing he skips every other square. The printed-on squares are called F-squares; the blank squares in between may be used for "markers" and are called "E-squares" as in "liable to erasure." The F-squares in turn are his "Figure squares" and will only bear the symbols 1 or 0 — symbols he called "figures" (as in "binary numbers").

In this example the tape starts out "blank", and the "figures" are then printed on it. For brevity only the table states are shown here:

Sequence Instruction identifier         Head                          
. . . . . . . . . . . . . . . . . .
1 1 . . . . . . . . . . . . . . . . . .
2 2 . . . . . 0 . . . . . . . . . . . .
3 3 . . . . . . 0 . . . . . . . . . . .
4 4 . . . . . 1 . 0 . . . . . . . . . .
5 1 . . . . . . 1 . 0 . . . . . . . . .
6 2 . . . . . 0 . 1 . 0 . . . . . . . .
7 3 . . . . . . 0 . 1 . 0 . . . . . . .
8 4 . . . . . 1 . 0 . 1 . 0 . . . . . .
9 1 . . . . . . 1 . 0 . 1 . 0 . . . . .
10 2 . . . . . 0 . 1 . 0 . 1 . 0 . . . .
11 3 . . . . . . 0 . 1 . 0 . 1 . 0 . . .
12 4 . . . . . 1 . 0 . 1 . 0 . 1 . 0 . .
13 1 . . . . . . 1 . 0 . 1 . 0 . 1 . 0 .
14 2 . . . . . 0 . 1 . 0 . 1 . 0 . 1 . 0

The same "run" with all the intermediate tape-printing and movements is shown here:

A close look at the table reveals certain problems with Turing's own example—not all the symbols are accounted for.

For example, suppose his tape was not initially blank. What would happen? The Turing machine would read different values than the intended values.

A copy subroutine

[edit]

This is a very important subroutine used in the "multiply" routine.

The example Turing machine handles a string of 0s and 1s, with 0 represented by the blank symbol. Its task is to double any series of 1s encountered on the tape by writing a 0 between them. For example, when the head reads "111", it will write a 0, then "111". The output will be "1110111".

In order to accomplish its task, this Turing machine will need only 5 states of operation, which are called {s1, s2, s3, s4, s5}. Each state does 4 actions:

  1. Read the symbol under the head
  2. Write the output symbol decided by the state
  3. Move the tape to the left or to the right decided by the state
  4. Switch to the following state decided by the current state
Initial m-configuration

(current instruction)

Tape symbol Print operation Tape motion Final m-configuration

(next instruction)

s1 0 N N H
s1 1 E R s2
s2 0 E R s3
s2 1 P1 R s2
s3 0 P1 L s4
s3 1 P1 R s3
s4 0 E L s5
s4 1 P1 L s4
s5 0 P1 R s1
s5 1 P1 L s5
H — — —

Print Operation: Prints symbol S or Erases or does Nothing


A "run" of the machine sequences through 16 machine-configurations (aka Turing states):

Sequence Instruction identifier Head
1 s1 0 0 0 0 1 1 0 0 0 0 0
2 s2 0 0 0 0 0 1 0 0 0 0 0
3 s2 0 0 0 0 0 0 1 0 0 0 0
4 s3 0 0 0 0 0 0 0 1 0 0 0
5 s4 0 0 0 0 1 0 1 0 0 0 0
6 s5 0 0 0 1 0 1 0 0 0 0 0
7 s5 0 0 1 0 1 0 0 0 0 0 0
8 s1 0 0 0 1 0 1 1 0 0 0 0
9 s2 0 0 0 0 1 0 0 1 0 0 0
10 s3 0 0 0 0 0 1 0 0 1 0 0
11 s3 0 0 0 0 0 0 1 0 0 1 0
12 s4 0 0 0 0 1 1 0 0 1 0 0
13 s4 0 0 0 1 1 0 0 1 0 0 0
14 s5 0 0 1 1 0 0 1 0 0 0 0
15 s1 0 0 0 1 1 0 1 1 0 0 0
16 H 0 0 0 1 1 0 1 1 0 0 0

The behavior of this machine can be described as a loop: it starts out in s1, replaces the first 1 with a 0, then uses s2 to move to the right, skipping over 1s and the first 0 encountered. s3 then skips over the next sequence of 1s (initially there are none) and replaces the first 0 it finds with a 1. s4 moves back to the left, skipping over 1s until it finds a 0 and switches to s5. s5 then moves to the left, skipping over 1s until it finds the 0 that was originally written by s1.

It replaces that 0 with a 1, moves one position to the right and enters s1 again for another round of the loop.

This continues until s1 finds a 0 (this is the 0 in the middle of the two strings of 1s) at which time the machine halts.

Alternative description

[edit]

Another description sees the problem as how to keep track of how many "1"s there are. We can't use one state for each possible number (a state for each of 0,1,2,3,4,5,6 etc), because then we'd need infinite states to represent all the natural numbers, and the state machine is finite - we'll have to track this using the tape in some way.

The basic way it works is by copying each "1" to the other side, by moving back and forth - it is intelligent enough to remember which part of the trip it is on. In more detail, it carries each "1" across to the other side, by recognizing the separating "0" in the middle, and recognizing the "0" on the other side to know it's reached the end. It comes back using the same method, detecting the middle "0", and then the "0" on the original side. This "0" on the original side is the key to the puzzle of how it keeps track of the number of 1's.

The trick is that before carrying the "1", it marks that digit as "taken" by replacing it with an "0". When it returns, it fills that "0" back in with a "1", then moves on to the next one, marking it with an "0" and repeating the cycle, carrying that "1" across and so on. With each trip across and back, the marker "0" moves one step closer to the centre. This is how it keeps track of how many "1"'s it has taken across.

When it returns, the marker "0" looks like the end of the collection of "1"s to it - any "1"s that have already been taken across are invisible to it (on the other side of the marker "0") and so it is as if it is working on an (N-1) number of "1"s - similar to a proof by mathematical induction.

A full "run" showing the results of the intermediate "motions".

3-state Busy Beaver

[edit]

The following Turing table of instructions was derived from Peterson:[5] "a three-state busy beaver writes 6 ones before it comes to a halt". Peterson moves the head; in the following model the tape moves. 0 is the blank character: the tape starts with all cells 0.

Tape symbol Current state A Current state B Current state C
Write symbol Move tape Next state Write symbol Move tape Next state Write symbol Move tape Next state
0 1 L B 1 R A 1 R B
1 1 R C 1 L B 1 N HALT

The "state" drawing of the 3-state busy beaver shows the internal sequences of events required to actually perform "the state". As noted above Turing (1937) makes it perfectly clear that this is the proper interpretation of the 5-tuples that describe the instruction.[1] For more about the atomization of Turing 5-tuples see Post–Turing machine:

The following table shows the "compressed" run — just the Turing states:

Sequence Instruction identifier Head
1 b 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 B 0 0 0 0 0 0 0 1 0 0 0 0 0 0
3 A 0 0 0 0 0 1 1 0 0 0 0 0 0 0
4 C 0 0 0 0 1 1 0 0 0 0 0 0 0 0
5 B 0 0 0 1 1 1 0 0 0 0 0 0 0 0
6 A 0 0 1 1 1 1 0 0 0 0 0 0 0 0
7 B 0 0 0 1 1 1 1 1 0 0 0 0 0 0
8 B 0 0 0 0 1 1 1 1 1 0 0 0 0 0
9 B 0 0 0 0 0 1 1 1 1 1 0 0 0 0
10 B 0 0 0 0 0 0 1 1 1 1 1 0 0 0
11 B 0 0 0 0 0 0 0 1 1 1 1 1 0 0
12 A 0 0 0 0 0 1 1 1 1 1 1 0 0 0
13 C 0 0 0 0 1 1 1 1 1 1 0 0 0 0
14 H 0 0 0 0 1 1 1 1 1 1 0 0 0 0

The full "run" of the 3-state busy beaver. The resulting Turing-states (what Turing called the "m-configurations" — "machine-configurations") are shown highlighted in grey in column A, and also under the machine's instructions (columns AF-AU)):

References

[edit]
  1. ^ a b Davis 1965, p. 119.
  2. ^ a b c Davis 1965, p. 121.
  3. ^ Davis 1965, p. 120.
  4. ^ Davis 1965, p. 127.
  5. ^ Peterson 1988, p. 198.

Bibliography

[edit]
  • Peterson, Ivars (1988). The Mathematical Tourist: Snapshots of Modern Mathematics. New York: W. H. Freeman and Company. ISBN 0-7167-2064-7.
  • Davis, Martin (1965). The Undecidable: Basic Papers on Undecidable Propositions, Unsolvable Problems and Computable Functions. New York: Raven Press.
  • Turing, Alan (1937). On Computable Numbers, with an Application to the Entscheidungsproblem. p. 116.
  • Turing, Alan (1937). On Computable Numbers, with an Application to the Entscheidungsproblem. A Correction. p. 152-154.

Source: Wikipedia. Article content is retrieved live through the MediaWiki API.

No preview image
Wikipedia

Turing machine examples

The following are examples to supplement the article Turing machine.

MORE →
No preview image
Wikipedia

Neural Turing machine

A neural Turing machine (NTM) is a recurrent neural network model of a Turing machine. The approach was published by Alex Graves et al. in 2014. NTMs combine the fuzzy pattern matching capabilities of neural networks with the algorithmic power of programmable computers. An NTM has a neural network controller coupled to external memory resources, which it interacts with through attentional mechanisms. The memory interactions are differentiable end-to-end, making it possible to optimize them using gradient descent. An NTM with a long short-term memory (LSTM) network controller can infer simple algorithms such as copying, sorting, and associative recall from examples alone. The authors of the original NTM paper did not publish their source code. The first stable open-source implementation was published in 2018 at the 27th International Conference on Artificial Neural Networks, receiving a best-paper award. Other open source implementations of NTMs exist but as of 2018 they are not sufficiently stable for production use. The developers either report that the gradients of their implementation sometimes become NaN during training for unknown reasons and cause training to fail; report slow convergence; or do not report the speed of learning of their implementation. Differentiable neural computers are an outgrowth of Neural Turing machines, with attention mechanisms that control where the memory is active, and improve performance.

MORE →
Wikipedia

Turing machine

A Turing machine is a mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape according to a table of rules. Despite the model's simplicity, it is capable of implementing any computer algorithm. The machine operates on an infinite memory tape divided into discrete cells, each of which can hold a single symbol drawn from a finite set of symbols called the alphabet of the machine. It has a "head" that, at any point in the machine's operation, is positioned over one of these cells, and a "state" selected from a finite set of states. At each step of its operation, the head reads the symbol in its cell. Then, based on the symbol and the machine's own present state, the machine writes a symbol into the same cell, and moves the head one step to the left or the right, or halts the computation. The choice of which replacement symbol to write, which direction to move the head, and whether to halt is based on a finite table that specifies what to do for each combination of the current state and the symbol that is read. As with a real computer program, it is possible for a Turing machine to go into an infinite loop which will never halt. The Turing machine was invented in 1936 by Alan Turing, who called it an "a-machine" (automatic machine). It was Turing's doctoral advisor, Alonzo Church, who later coined the term "Turing machine" in a review. With this model, Turing was able to answer two questions in the negative: Does a machine exist that can determine whether any arbitrary machine on its tape is "circular" (e.g., freezes, or fails to continue its computational task)? Does a machine exist that can determine whether any arbitrary machine on its tape ever prints a given symbol? Thus by providing a mathematical description of a very simple device capable of arbitrary computations, he was able to prove properties of computation in general—and in particular, the uncomputability of the Entscheidungsproblem, or 'decision problem' (whether every mathematical statement is provable or disprovable). Turing machines proved the existence of fundamental limitations on the power of mechanical computation. While they can express arbitrary computations, their minimalist design makes them too slow for computation in practice: real-world computers are based on different designs that, unlike Turing machines, use random-access memory. Turing completeness is the ability for a model of computation or a system of instructions to simulate a Turing machine. A programming language that is Turing complete is theoretically capable of expressing all tasks accomplishable by computers; nearly all programming languages are Turing complete if the limitations of finite memory are ignored.

MORE →
No preview image
Wikipedia

Nondeterministic Turing machine

In theoretical computer science and computational theory, a nondeterministic Turing machine (NTM) is a theoretical model of computation whose governing rules specify more than one possible action when in some given situations. That is, an NTM's next state is not completely determined by its action and the current symbol it sees, unlike the standard, deterministic, Turing machine. NTMs are sometimes used in thought experiments to examine the abilities and limits of computers. One of the most important open problems in theoretical computer science is the P versus NP problem, which (among other equivalent formulations) concerns the question of how difficult it is to simulate nondeterministic computation with a deterministic computer.

MORE →
TOPIC OF THE DAY

Greenwood / Black Wall Street

Before the 1921 destruction of Tulsa’s Greenwood District, Black residents had created a remarkable center of business and community life. The district included stores, professional offices, entertainment venues and homes owned by Black citizens. Understanding Greenwood means learning what was built—not only what was burned.

MORE →
TRIVIA QUESTION OF THE DAY

Who became the first Black woman to travel into space?

Mae Jemison, aboard Space Shuttle Endeavour in 1992.