Как оптимизировать логическое выражение - PullRequest
0 голосов
/ 14 февраля 2011

У нас много логических выражений для вычисления, теперь мы преобразовали эти выражения в постфиксное выражение. (Постфиксное выражение быстрее). Однако нам нужно быстрее оптимизировать оценку логического выражения.

Есть идеи? Спасибо.

1 Ответ

0 голосов
/ 14 марта 2011

Вам также необходимо учитывать частоту каждого возможного результата.То есть, если частота появления различных исходов / результатов сильно искажена, то вы действительно хотите ускорить общие случаи, даже за счет возможного значительного увеличения стоимости выполнения необычных случаев.

ДляНапример, предположим, что вы хотите проверить, что четыре условия выполняются:

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

Теперь предположим, что A == верно с вероятностью 0,9, B == верно с вероятностью 0,3, C == верно с вероятностью 0,7,и D == верно с вероятностью 0,1.Учитывая правила короткого замыкания в C / C ++, мы хотим переупорядочить уравнение, чтобы мы как можно скорее выпали из теста.Т.е. наиболее эффективным тестом будет:

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

Без примеров типов выражений, которые у вас есть, а также различных частот результата и частоты совместной вероятности для каждого термина, вам практически невозможно помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...