The researchers started by sketching out the problem they wanted to solve in Python, a popular programming language. But they left out the lines in the program that would specify how to solve it. That is where FunSearch comes in. It gets Codey to fill in the blanks—in effect, to suggest code that will solve the problem.

A second algorithm then checks and scores what Codey comes up with. The best suggestions—even if not yet correct—are saved and given back to Codey, which tries to complete the program again. “Many will be nonsensical, some will be sensible, and a few will be truly inspired,” says Kohli. “You take those truly inspired ones and you say, ‘Okay, take these ones and repeat.’”

After a couple of million suggestions and a few dozen repetitions of the overall process—which took a few days—FunSearch was able to come up with code that produced a correct and previously unknown solution to the cap set problem, which involves finding the largest size of a certain type of set. Imagine plotting dots on graph paper. The cap set problem is like trying to figure out how many dots you can put down without three of them ever forming a straight line.

  • @jacksilver@lemmy.world
    link
    fedilink
    English
    311 months ago

    I’m not so sure, it feels a lot more like the https://en.wikipedia.org/wiki/Infinite_monkey_theorem, but with a model helping limit the outputs so they are mostly usable. As is stated in the article, it took millions of runs and couple of days to get the results. So its more like brute forcing with a slightly modified genetic algorithm than anything else.

    I didn’t see a link to the full article, so maybe something more creative is happening behind the scenes, but it seems unlikely.

    • @thesmokingman@programming.dev
      link
      fedilink
      English
      211 months ago

      Your interpretation is correct. There’s no new logic here, just new special cases of a problem whose general solution is still unknown. I think it’s pretty cool and has a lot of value in places like design theory where the getting examples to try and play around with general solution ideas is really tough. But all it did was creatively crunch numbers.