We have first_solution/3
to efficiently perform concurrent searches for a solution. We have findnsols/4
to find (up to) the first n solutions.
It stands to reason that someone might want to perform concurrent searches for (up to) n solutions. I’m currently that someone.
It seems there’s plenty to work with in SWI-Prolog’s multithreading library for a DIY implementation. I just want to avoid reinventing the wheel if there’s something else I should be looking into. Is there?
An important note is that the separate goals (strategies) I’d use to generate solutions have a very low likelihood of creating redundant solutions between themselves, (and I don’t care if they do).