[Feedback] Genetic Algorithm to Solve Sudoku Puzzles

29 points eulerfoiler

Hey /r/rust,

I've been studying Rust for 1.5 months and I wrote a program to solve Sudoku puzzles using a genetic algorithm I've designed. I would love feedback on the design and implementation, particularly places where I can improve my knowledge of Rust.

Some things I'd really like help with:

  • Are there more idiomatic ways to express the concepts implemented in the project?
  • Are there places for optimizations I can follow through on?
    • I tried to use u8/appropriate data types to keep the RAM usage as low as possible
    • I'm exercising const generic arrays and the arrayvec library to avoid unnecessary allocations as best I can
    • I implemented the Rayon library for multithreading, but would like to know if I could implement it better
    • I implemented the parking_lot library for my Mutex across threads

The code and documentation can be found below, including the details of how I modeled the problem and the genetic algorithm I designed:

https://github.com/ewohltman/genetic-sudoku

Thanks very much for your time!