As a software developer, I like to try to automate as much as possible. Addons like IC2 and Buildcraft are great for this - but there are still some manual processes involved, such as actually designing the nuclear reactor. So I figured, why not write a program to automatically design an optimal reactor for me?
The result is a two-part application - an ultra-fast simulator that can analyze a reactor design in milliseconds, and a genetic algorithm controller to control the optimization process. The genetic algorithm can be configured to optimize for any type of reactor based on simulation results. You can see the current status of the ongoing simulation here:
Currently, it is optimizing for an efficient mark I reactor that does not utilize consumables (reflectors or condensators), then optimizing for EU/t output, then for component cost. It's an intensive algorithm, so it's not likely to stabilize on a great result for several days. If anyone has suggestions for other types of designs to optimize for, let me know, and I can reconfigure the algorithm.
Essentially this works by treating reactor designs as DNA, and applying Darwinian evolution (ie, natural selection). It starts out with several completely random reactor designs (just a random mish-mash of components across the board), and tweaks it based on making many different types of random mutations. Poor performers die off, while the better performers survive to produce offspring. Additionally, two different designs can mate with each other to produce a hybrid, increasing the genetic diversity.
Note that the designs produced by this simulator may not perform identically in existing reactor simulators. The code for the simulator used here is based on reverse engineering the decompiled code from IC2. In general, this simulator will produce more accurate results. The only way to know for sure is to actually try the design in-game.
Note that the version of IC2 the simulator is based on is IC2 2_2.0.397-EXPERIMENTAL
There's a lot more involved in actually getting this to be an effective designer. Anyone interested can look at the code:
For the simulator (C++ for speed): https://github.com/crispy1989/node-ic2-reactor-sim
For the genetic algorithm (Node.JS for configurability): https://github.com/crispy1989/ic2-genetic-reactors
Simulator and genetic algorithm are by myself, crispy1989. The web UI is by clueless222 aka cluekitty.
Feedback is welcome! In particular, if you have particular design requirements that you'd like to optimize for, just post them here. Things that can be optimized for (including in combination with each other) include: Efficiency, EU/t, mark level, overall EU/t (for Mark II+, the average EU/t including cooldown time), whether or not reflectors are used, whether or not condensators are used, component cost, and more. Since simulations are long-running and can take several days, I'll periodically select a popular request to run, and will post here when a new run has started.