How would one go about finding new ways to multiplicate matrices?
Trial and error? Can the process be automated? Genius gets hit on the head by an apple moment?
Trial and error? Can the process be automated? Genius gets hit on the head by an apple moment?
Beyond brute-force, I imagine that this problem could be phrased as a max-sat problem, mixed-integer linear program or similar. There are generic solvers that can get solutions for problems of moderate size. But unless it's a fairly rote translation to the solver's native representation, it's often better to write a custom solver and port heuristics into the notation native to the problem. As far as I understand it, that's the approach that the Fawzi et al and TFA took.
https://people.csail.mit.edu/virgi/6.890/
Lecture notes are open.