Make an infeasible system feasible, by removing the minimum (weighted) number of rules, such that the remaining
rules are not conflicting.
This function uses detect_infeasible_rules
for determining the rules to be removed.
make_feasible(x, ...)
validator
object with the validation rules.
passed to detect_infeasible_rules
validator
object with feasible rules.
Other feasibility:
detect_boundary_cat()
,
detect_boundary_num()
,
detect_infeasible_rules()
,
is_contradicted_by()
,
is_infeasible()
rules <- validator( x > 0)
is_infeasible(rules)
#> [1] FALSE
rules <- validator( rule1 = x > 0
, rule2 = x < 0
)
is_infeasible(rules)
#> [1] TRUE
detect_infeasible_rules(rules)
#> [1] "rule1"
make_feasible(rules)
#> Dropping rule(s): "rule1"
#> Object of class 'validator' with 1 elements:
#> rule2: x < 0
#> Rules are evaluated using locally defined options
# find out the conflict with this rule
is_contradicted_by(rules, "rule1")
#> [1] "rule2"