Генератор конфигурации продукта - PullRequest
0 голосов
/ 15 января 2019

Учитывая различные функции для продукта, варианты функций и правила совместимости между функциями, я хотел бы создать список всех возможных конфигураций продукта.

Например, мой текущий пример использования аналогичен настройке ноутбука. Множество переменных, таких как размер экрана, оперативная память, процессор, материнская плата и каждая с несколькими допустимыми значениями. У нас также может быть ограничение, так как эта материнская плата совместима с этим процессором и т. Д. Мне нужен вывод списка всех допустимых настроек для ноутбука.

Сценарий выглядит как типичная проблема удовлетворения ограничений (CSP). Я пробовал библиотеки CSP, такие как Minion, Choco и т. Д. К сожалению, они используют только числовые переменные, и правила совместимости также являются математической функцией.

Я также попытался http://labix.org/python-constraint, где я использовал функциональное ограничение и предоставил свои правила совместимости в виде операторов If. Это работало для небольших сценариев. Но для моего требования у меня было бы 10 функций, каждая с 4-5 опциями, что приводило к миллионам конфигураций.

Может кто-нибудь предложить лучший подход для моего требования?

...