A Human Algorithm for Learning and Thinking
- Learn from the hardware and software limitations of computing in order to work with the limitations of wetware.
- Work with the different layers of abstraction in the mind as well as the computer.
- Storage
- Processing Speed
- Parallelism
- Resources
- The Halting Problem
Explanation of Halting Problem with help from YouTube:
There are four Programs A, K, M, and Q. Input of Program A is Program K and an Input I. Output of A decides whether Program K will halt or loop forever based on I. Input of Program M is the boolean return from Program A.(True that K halts or False meaning K does not halt) Output of Program M is the negation of Program A.
All three programs connected in that sequence is program Q. If Program Q is identical to Program K and I then Program A will be wrong because it will always negate Q.
If Q, K, and I are identical programs then Program A will have to negate Q.
- Cannot multitask
- Limited working memory along with limited memory
- Speed of problem solving
- Speed of learning
- Biases
- Fallacies
- Possibly, conservation of connectivity
- Possibly, physical constraints
-
LearningQS
-
Choose a topic, concept, or something you do not know about
-
Understand the breadth of certainty. Ex. How many cities do you know about?
-
Understand the breadth of relevance. Ex. How much of your knowledge is related to cities?
-
Understand the depth of certainty. Ex. How much do you know about specific cities or a specific city, e.g. your hometown?
-
Understand the depth of relevance. Ex. How much of your knowledge is related to specific cities or a specific city, e.g. your hometown?
-
Adjust each as needed.
-
Adjust external decision making as needed.
-
Repeat steps 3-9 until concept is learned.
-
Return to LearningQS
Certainty / Relevance
Depth | Quantity | Quantity |
Breadth | Quantity | Quantity |
- Insert Java into queue
- Insert C++ into queue
- Insert Python into queue
- Choose Java to learn
- Understand the breadth of certainty of Java and expand on it.
- Understand the breadth of relevance of Java and expand on it.
- Understand the depth of certainty of Java and expand on it.
- Understand the depth of relevance of Java and expand on it.
- Adjust external decision making
- Repeat 4 - 9 as necessary ---Reward---
- Choose C++ to learn(Similar to 5-8 but for C++)
- Add it to the second structure because it is taking a long time
- 5 - 8 for Python ---Reward---
- Add C to first structure(which ends up helping with C++)
- 5 - 8 for C ---Reward---
- Send C++ to first structure
- 5 - 8 for C++ ---Reward---
- Continue...