Given various features for a product, options for the features and the compatibility rules between the features, I would like to generate list of all feasible product configurations.
For example, my current use case is similar to configuring a laptop. Lots of variables like screen size, ram, cpu, motherboard and each with multiple valid values. We can also have constraint like this motherboard is compatible with this cpu etc. The output I need is list of all valid configuration for the laptop.
The scenario looks like a typical Constraint Satisfaction Problem (CSP). I tried CSP libraries like Minion, Choco etc. Unfortunately, they use only numeric variables and the compatibility rules is also a mathematical function.
I also tried http://labix.org/python-constraint where I used functional constraint and I provided my compatibility rules as If statements. This worked for small scenarios. But for my requirement, I would have 10 features and each with 4 to 5 options resulting in millions of configurations.
Can someone suggest best approach for my requirement?