Open porglezomp opened 7 years ago
There are a few approaches here.
The simplest is random, and we can constrain it to be valid expressions. This will probably produce a lot of garbage output.
It could be template based, building based on formulas that are known to be good, and mixing and matching. The way mixing and matching happens leaves room to explore here.
We could try to train some ML on formulas that are good, and/or train it on what sorts of outputs are interesting. Maybe we just want some more objective measure of interestingness of output to select which output was good.
We might be able to do constructive stuff, where we generate formulas that will produce a specific output.
For any of these, we need good procedures for selecting numbers, and other things. For instance, in some products and powers, 0.99999 is a very good number to use. In bit shifts 12 might be good. In in additions, modulos, etc, 157 might be good.
Totally random output produces a lot of boring garbage (either silence, just t
, or t << t
). There's definitely some templateable formulas, such as t*[any expression really]
, but avoid the silence and t
formulas seems like a good first step.
We should generate random, valid, hopefully interesting bytebeat formulas.