I came up with a way of viewing memory palaces that I find quite interesting. I’ve got into CS recently and learning about data structures has my head in this space. An image can be viewed as an encoding of some information, together with a pointer to another image.
So in the journey method, we have a sequence of locations location_1,location_2,location_3,…,location_m. And these locations are ordered by the journey through them. Then if we want to memorize value_1,…,value_m, we first encode these values into an image. Then we make the location_1 image point to the value_1 image by associating the two, and make the location_2 image point to the value_2 image, etc…
Then we can use the order of locations that we have memorized before hand to trace through each of the location images, recalling the value image they point to, and thus recalling the sequence of values we wished to memorize.
The linking method can be viewed as the construction of a linked list data structure, by remembering the first image, you can find the second image by seeing what the first image points to, then find the third image by seeing what the second image points to, etcetera, reproducing the list of values.
I wonder if along these lines other data structures could be constructed, for instance, a tree by associating two images with each image, though this might be difficult.
It’s interesting to make a comparison between human memory and computer memory I think. Computers generally have access to a linear memory, for instance they effectively have a list of numbers, and they can instantly recall for instance the 1000th number in the list. Whereas humans are awful at memorizing even small sequences of numbers without the use of other structures, especially at instantly recalling say the 90th item in a list of 1000. What humans are good at in memory is associating one concept with another. Effectively we can remember dictionaries quite easily by associating images in our heads, for instance {‘key1’:‘value1’,‘key2’:‘value2’,…}. A computer finds this task difficult, and has to hash each key to form an integer value where it can then store the value in its linear memory. So humans and computers both have their strentghs and weaknesses I suppose.