Depends the logical operators you can use.

Lets say you can use only AND.

Then you can have 1 to i logical expressions like this:

Code:

E1 AND E2 ... AND Ei

If Ei is false then the whole expression is false. Thus it is easier to check the expression Pi which needs the less time.

If you can use also OR then you just have to break the expressions into groups.

For example

Code:

(E1 AND E2) OR E3
G1 OR G2
where G1 = E1 AND E2, G2 = E3

If either G1 or G2 are true then the whole thing is true. So you will start with the group that has more probabilities to be true. To find that you follow the logic on the first example.

Note that you can have more logical operations, but they can be broken down to AND and ORs and maybe using NOT, in which case you just calculate a new probability as Pi' = 1 - Pi

Makes sense?

If you are wondering what is the use of this take this example.

Each Ei is a very time consuming function that returns a boolean. The minimum to run this function is 1 hour. Now, lets say you know Ti and Pi for each Ei function, since you know the implementation of the function.

You have two options

1) Start evaluating from left to right (or right to left or some other fixed order)

2) Evaluate first how much time it will take and start from the least time consuming expression

Considering that 2) requires a few milliseconds where you can save hours 2) is much preferable.