EvalVis / EvalVis/TuringMachine

Non-deterministic Turing machine

Open
#5 0 comments 0 reactions 0 assignees View on GitHub
enhancement good first issue
Dominant language
TypeScript
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

**Describe the feature**
Non-deterministic Turing machine is similar to already implemented classical Turing machine with one difference:
It can have multiple choices when reaching the same state and value.
Example:
Classic Turing machine instruction:
q1, 1 -> q2, 0, R.
Meaning: when you are in state q1 and encounter number 1 switch to state q2 replace number 1 with number 0 and move writing head to the right.
Non-deterministic Turing machine can have multiple choices:
q1, 1 -> q2, 0, R.
q1, 1 -> q1, 1, L.
q1, 1 -> q3, 0, S.
So in the same state it can either:

1. Switch to state q2, write 0 and move right.
2. Remain in state q1, write 1 and move left.
3. Switch to state q3, write 0 and stay in the current cell.

Each choice has 33,(3)% change to be picked.

Optional requirement: if you are up for the additional challenge modify the changes for the instruction to be picked. Example:
q1, 1 -> q2, 0, R, 50
q1, 1 -> q1, 1, L, 10
q1, 1 -> q3, 0, S, 40
Now the first instruction has 50% chance to be picked, the second one 10% change and the last one 40% chance.
Make sure the chances sum to 100%.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.