Drools 또는 다른 규칙 엔진의 매뉴얼을 살펴보면 추가 가치를 보여주는 그림 중 하나가 Miss Manners 퍼즐 (Dools의 수동)과 같은 퍼즐을 푸는 것입니다. 이제 이러한 퍼즐은 자연스럽게 Prolog 또는보다 최근의 Constraint Programming 언어를 사용하여 공식화되고 해결되며, 왜 누군가가 Drools를 이러한 목적으로 사용할 것인지 궁금합니다. 이 경우 Prolog와 CPL이 제공하는 부가 가치는 퍼즐을 논리적 술어 세트로 자연스럽게 공식화하고 솔루션의 공간을 자동으로 검색하는 능력입니다 (이 점에서 CPL이 더 효율적 임). 그러나 Drools와 같은 제품의 부가 가치는 무엇입니까? (예를 들어 Excel 파일을 가져 와서 규칙 집합으로 변환하는 종과 호루라기 외에)?
보다 구체적으로, Prolog는 역 추적 검색을 구현하고, CLP는 구속 조건 전파를 사용하여 역 추적 검색을 구현하므로 개별 변수에 대한 전체 직교 공간 곱을 검색하는 대신이 제품 공간의 많은 부분을 제거합니다. 이것이 효과적이고 유용합니다. Prolog와 CLP는 모두 문헌에서 충분히 논의되었습니다.
반면 Rete 알고리즘은 일부 데이터 구조 형식으로 규칙 집합을 캐시하므로 입력 내용 중 일부가 변경된 경우 출력을 평가하는 것이 더 효과적입니다. 그리고 점진적인 변화를 위해이 데이터 구조를 효과적으로 업데이트 할 수있는 수단을 제공하고, 기본 아이디어를 이해하기가 더 어렵고, 그 효과가 무엇입니까 (Prolog와 CLP 비교)? 불행히도,이 넓은 맥락에서 Rete 알고리즘을 보는 좋은 참조를 찾기는 어렵습니다.
Drools의 문서는 불행히도 이와 관련하여 유익하지 않습니다. "Rete 알고리즘, Leaps 알고리즘 및 Drools 'Reteoo (및 Leaps)와 같은 하위 항목은 규칙 패턴을 도메인 개체 데이터에 매우 효율적으로 일치시키는 방법을 제공합니다. 규칙 엔진이 과거 경기를 기억할 수 있기 때문에 완전히 변경하지 마십시오.이 알고리즘은 전투에서 입증되었습니다. " 매우 효율적인-무엇에 비해? 입증 된 전투-실제 응용 프로그램을 가리킬 수 있습니까?
이 주제에 대해 더 많은 빛을 비추거나 유효한 참조를 할 수 있다면 감사하겠습니다.