lifebeyondfife / Decider

An Open Source .Net Constraint Programming Solver
MIT License
150 stars 21 forks source link

Usability improvements #46

Closed lifebeyondfife closed 3 years ago

lifebeyondfife commented 3 years ago

Based on the feedback of user Jimmaclein this issue, the following improvements have been made:

The above issue also suggested improving the control flow of the search algorithm by no longer throwing exceptions, and dropping use of LINQ. The argument for both was primarily regarding performance, however, in both cases performance is a negligable concern. Exceptions are only thrown in rare / exceptional circumstances, when a problem is unsolveable, or all of the search space has been traversed. Decider is an NP-complete solver and efficiency is concerned with taking multiple seconds or minutes from problem solving. Similarly, dropping LINQ did not result in a noticeable (beyond noise) improvement to runtimes, so I prefer to retain the declarative coding style rather imperative.