Полнота условий
Всем доброго времени суток. Есть задача, которую не понимаю как можно красиво алгоритмически решить.
Условие: Пользователь может задавать набор правил(условия для предикатов), для примера, рассмотрим правила применений комиссий для платежа:
- платежная система{Visa, Mastercard, ChinaUnionPay, null}
- Операция за рубежом{да, нет, null}
- Страна{RU,EN,....,null}
- .....
Значение null означает что свойство в предикате не проверяется. Из наборов свойств строится конъюнкции
Пользователь задает ряд правил
- для Visa за рубежом в Индии комиссия 5%
- для Mastercard комиссия 3%
- для России комиссия 1%
- ....
- остальное(null, null, nulll)
Задача: есть ли в наборе правил пропуски или они покрывают все возможные варианты, уверен что есть какойнибудь хороший алгоритм для этих целей, просьба дать наводку на него