2016-06-25 6 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 | 
---------------------------------------- 

발견과 일치하는 기준과 동일한 우선 순위를 갖는 동일한 수의 둘 이상의 규칙이 다음과 규칙을 선택하면 가장 높은 값 (예 : Rule4의 값이 400)

매우 구체적인 것으로 알고 있지만 Google에 시도했지만이 경우 사용할 수있는 규칙 엔진을 찾을 수 없었습니다. 제발 나를 도와주세요. 포인터와 아이디어는 시작합니다.

+1

나는 어떤 검색 엔진도 "사용자 가상의 문제를위한 최상의 솔루션"을 찾지 못할 것이라고 생각합니다. OTOH, 왜 일부 규칙 엔진이이 간단한 문제를 해결할 수 없다고 생각합니까? 따라서 질문에 대한 대답은 모든 규칙 엔진이 수행하는 것입니다. – laune

+0

laune과 동의하십시오. 어떤 규칙 엔진이라도 괜찮을 것입니다. – Alex

답변

0

다른 사람들도 지적한 것처럼 모든 규칙 엔진이 귀하의 경우에해야합니다. 언뜻보기에 이것이 매우 가벼운 유스 케이스 인 것처럼 보이기 때문에 Rulette을 사용하면 거의 다룰 수 있습니다 (Disclosure - 나는 저자입니다). 규칙을 정의한 다음 getAllRules API를 사용하여 필요에 따라 최소/최대를 수행 할 수있는 적용 가능한 규칙의 목록을 가져올 수 있습니다.

왜 충돌하는 규칙을 정의한 다음 "우선 순위"를 적용하려는 이유가 궁금합니다.