From db4c8241d22f8aa37db6e8b652f79f6d669249aa Mon Sep 17 00:00:00 2001 From: Jan Kubalek Date: Mon, 20 Oct 2025 10:12:31 +0200 Subject: [PATCH 1/2] string_evolution: README: Fix a typo --- string_evolution/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/string_evolution/README.md b/string_evolution/README.md index 0dbdf7a..e144590 100644 --- a/string_evolution/README.md +++ b/string_evolution/README.md @@ -2,7 +2,7 @@ This project uses evolution algorithm to progress from initially random set of genotypes generating a random population of strings to a target string. A direct approach would be to use a string directly as the gene which is being mutated and evaluated for fitness. -However, in real multicellular organisms genese only influence the organism's fitness through many layers of interaction. +However, in real multicellular organisms genes only influence the organism's fitness through many layers of interaction. The gene itself performs generation of chemicals which form complex structures or are fed to existing structures to produce more chemicals and more complex structures on so on. This project simulates this indirect influence between genes and fitness to demonstrate how evolution can achieve a complex target even through many layers of indirection. From 4ddaae142b8328f59c1e3f2f3671d10d270c73e6 Mon Sep 17 00:00:00 2001 From: Jan Kubalek Date: Mon, 20 Oct 2025 10:13:21 +0200 Subject: [PATCH 2/2] tic_tac_toe: README: Fix wording --- tic_tac_toe_neuron/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tic_tac_toe_neuron/README.md b/tic_tac_toe_neuron/README.md index 1afb545..415d3d0 100644 --- a/tic_tac_toe_neuron/README.md +++ b/tic_tac_toe_neuron/README.md @@ -9,7 +9,7 @@ The model is continuously stored in files to enable resuming training later or c The program runs using multiple parallel processes. There is several "producer" processes which use the latest stored version of the model, run games with it to generate training data, and store the data in a shared memory. Then there is a single "consumer" process which reads the training data from the shared memory at configured time intervals, trains the model on it, and stores the new version of the model in a file for the producers to use. -There is also an optional "testing" process, which runs the latest stored model against a simple hand coded Tic Tac Toe player (called "Fred") to provide continuous feedback on the model's performance in the console. +There is also an optional "testing" process, which runs the latest stored model against a simple hand coded Tic Tac Toe player called "Fred" to provide continuous feedback on the model's performance in the console. ## Usage @@ -77,6 +77,6 @@ After configuration, the training can be started, aborted, paused or continued u I have performed extensive training of models with various parameters, sometimes for several days straight. Due to limitations of memory size, the largest model I could train has configuration `model_grid_size=16`, `width=4`, `depth=128` leading to a dense network of 1024x128 neurons and 135 million parameters. The best result I could get was a model which seems like it's trying to play Tic Tac Toe, but still makes many mistakes. -It couldn't consistently beat the hand coded player Fred even with relatively high Fred mistake rate set. +It couldn't consistently beat the hand coded testing player Fred even with relatively high Fred mistake rate set. This means that it would stand no chance against a human player. For now, my conclusion is that there is either something wrong in my training approach or there is a need for much larger model to be able to learn the game.