2016-06-25 1 views
1

私は、複数のルールを処理し、一致する基準に従って値を選択する必要があります。どのルールエンジンを使用しますか?

ルールは

場合-1上記で定義された規則に従って

---------------------------------------- 
| A | B | C | D | priority | value | 
---------------------------------------- 
| a1 | b1 | | c1 | 1  | 250 | 
---------------------------------------- 
|  | b2 | c2 | d2 | 3  | 200 | 
---------------------------------------- 
| a3 | b3 | c3 | d3 | 2  | 100 | 
---------------------------------------- 

は、我々は最初の一致基準の最大数を探し、そのルールの値を選択し、(すなわち、ルールとすることができます二つのRULを競合する場合)、値 "100" と

ケース2

---------------------------------------- 
| A | B | C | D | priority | value | 
---------------------------------------- 
| a1 | b1 | | c1 | 1  | 100 | 
---------------------------------------- 
| | b2 | c2 | d2 | 2  | 200 | 
---------------------------------------- 

同じ数の一致基準で見つかった場合は、優先順位を探し、優先順位が最も高いルールを選択します。この場合(値を持つルール「100」。この場合

ケース3

---------------------------------------- 
| A | B | C | D | priority | value | 
---------------------------------------- 
| a1 | b1 | | c1 | 3  | 100 | 
---------------------------------------- 
| | b2 | c2 | d2 | 2  | 200 | 
---------------------------------------- 
| a3 | b3 | c3 | d3 | 1  | 300 | 
---------------------------------------- 
| a4 | b4 | c4 | d4 | 1  | 400 | 
---------------------------------------- 

、見つかった一致基準の数が同じと同じ優先度を持つ複数のルールは、次いで、ルールを選択した場合最高値(つまり、値400のRule4)

私はそれが非常に具体的に見えますが、私はグーグルにしようとしましたが、このケースで使用できるルールエンジンを見つけられませんでした。 私を助けてくださいポインターやアイデアから始める。

+1

私は、どの検索エンジンも「ユーザー仮想の問題に最適なソリューション」を見つけることはないと思います。 OTOH、なぜあなたはいくつかのルールエンジンがこの単純な問題を解決することができないだろうと思いますか?したがって、あなたの質問への答えは、すべてのルールエンジンが行います。 – laune

+0

launeと同意します。あなたのケースではどんなルールエンジンでも問題ありません。 – Alex

答えて

0

他の人が指摘しているように、あなたのケースではどんなルールエンジンでもすべきです。これは一見非常に軽量のユースケースであるように見えるので、Ruletteを使用すると、これをほぼ自明に行うことができます(Disclosure - 私は著者です)。ルールを定義してから、getAllRules APIを使用して、必要に応じて最小/最大を実行できる適用可能なルールのリストを取得できます。

なぜ矛盾するルールを定義し、そのルールに「優先度」を適用したいのか不思議です。

関連する問題