Leibniz's Philosophy and String Variety
I am quite happy to share my latest research, which through a paper by Barbour and Smolin (1992) , connects with the ideas of Leibniz. Leibniz famously said that we live in the best of all possible worlds as an attempt to solve the "problem of evil" (which is also called as "Theodicy"). The idea behind the Barbour and Smolin paper is that the universe attains a state with the highest variety and as a toy model they considered a character string universe with cyclic boundary conditions where each place can have two values, such as "X" and "-" or zero and one.
In my article I have given a possible time evolution model for this type of universe. The basic idea is that a universe with highest variety (of string length N) hops to another configuration with highest variety (of string length N+1). Which configuration hops to which configuration is solved by the "best matching" technique of Barbour. The idea is that a string hops to another string which is "closest" to the previous string. I used the (cyclic) Levenshtein distance to measure the closeness between strings. Because there could be more than one match, the time evolution is not linear and in general is a directed graph. The most obvious interpretation of this toy model is by the Everett's Many Worlds interpretation of quantum mechanics. It may be interesting to see where this interpretation in terms of Many Worlds would lead us. This is also important because the main motivation behind the Barbour and Smolin paper was to put forward a theory for quantum cosmology. As part of my presentation in a conference (28th--30th June 2022 in İstanbul) I have calculated maximum variety of longer strings and listed all distinct (modulo symmetries) Leibnizian maximal variety strings for N < 36. You can reach the details of the paper and the conference through my GitHub link that I share in the next paragraph.
For more information and to reach the computer codes (under the GPL3 License) I have written (which are in Haskell and C: Haskell code is good for experimenting with configurations with small strings where as the C code is highly optimiezed and runs on parallel using OpenMP) please visit my GitHub repo.