I think wave collapse could work with a PCB that already has the components placed on it. So only routing remains. Essentially you divide the PCB up into small discrete chunks and either fill that with copper or not. You start at every component pin and fill in the copper. Then you pick edges of where copper is filled in and either fill in or not. Repeat this process and backtrack when you violate a electrical rule. Either this process finishes with a valid routing or won't find a route.
With an SMT solver you could specify similar constraints.