I hope that I can finish the "new work types" today so that we can run some "real problems".
What I thought, because I have been experimenting with it lately, may be this:
New work type (verification routine does not need to run the entire program):
- Assume we have a very complex 3-SAT instance and we want to find an assignment to x variables, which "SATisfy" the boolean clause.
- Assume that it is way too complex to solve the instance in reasonable time (would take years) since it is NP hard and requires exponential time.
- You can reduce the 3-SAT instance to 2-SAT by only taking any two variables from each clause.
- 2-SAT can be solved in polynomial time, which is pretty fast
- Any solution to the 2-SAT instance is a valid solution to the 3-SAT instance, but not other way around. Means: the chances that our handcrafted 2-SAT is SATisfiable, is a lot lower.
- The 3-SAT instance is uploaded to the elastic network, and the random integers are used to generate one (random) possible 2-SAT instance (as described above) - here is the "bruteforce exploration" use case which works so well for ElasticPL. Then this 2-SAT instance is checked for satisfiability (polynomial 2-SAT algorithm).
- Maybe, if we are lucky, one node eventually generates a 2-SAT instance which is solvable, also solving the 3-SAT instance.
- Verification can be done pretty fast -> just evaluating a boolean formula without any kind of SAT solving involved
I would love to have something like this!!!
While using it for something different, we could solve problems encodable as Graph Coloring, Towers of Hanoii, Pigeon Hole Problems, and everything that is similar.
My personal opinion: Rendering is kindergarden compared to this
And we need more interesting "apps"