2011-02-14 6 views
0

우리는 계산할 논리 표현식이 많습니다. 이제이 표현식을 후위 표현식으로 변환했습니다. (후위 표현식이 빠름). 그러나 논리 표현의 평가를 더 빨리 최적화해야합니다.논리 표현식을 최적화하는 방법

아이디어가 있으십니까? 감사.

+4

스택 오버 플로우에 오신 것을 환영합니다! "논리 표현"이 의미하는 것을 명확히 할 수 있습니까? 이것은 AND, OR, NOT, XOR 등을 사용하는 수학적 표현입니까? 아니면 부울 회로처럼 더 복잡합니까? 더 자세하게 제공할수록 더 잘 지원할 수 있습니다. – templatetypedef

+6

현재 코드를 표시하면 가능성을 제안 할 수 있습니다. 그렇지 않으면 나의 충고는 무작위적인 것을 바꾸고 그것이 더 빨리 진행되는지 보는 것이다. 일반적으로 내 충고는 그보다 낫지 만 정보의 품질 (또는 부족)에 따라 품질이 저하됩니다 :-) – paxdiablo

+0

1000 배 paxdiablo가 말한 것. 코드를 보여주세요. –

답변

0

또한 각 가능한 결과의 빈도를 고려해야합니다. 즉, 다양한 결과/결과의 발생 빈도가 매우 비뚤어진다면 일반적이지 않은 경우의 런타임 비용을 극적으로 증가시키는 대가로 일반적인 사례를 빠르게 만들고 싶습니다.

예를 들어,이 네 가지 조건에 해당하는지 확인하려면 가정 :

result = A && B && C && D; 

지금 생각하는 확률 0.3, C == 사실과도 마찬가지 확률 0.9, B와 진정한는 A == == 확률 0.7, D ​​== true, 확률 0.1. C/C++ 단락 규칙을 감안할 때 우리는 방정식을 다시 정리하여 가능한 한 빨리 테스트를 "중단"하려고합니다. 나는. 가장 효율적인 테스트는 다음과 같습니다 각 용어에 대한 당신이 가진 표현의 유형의 예 및 다양한 결과 주파수와 공동 확률 주파수없이

result = D && B && C && A; 

, 당신을 도울 기본적으로 불가능하다.

관련 문제