Input: an MI-QPN MQ

Output: Sign of the influence of evidence node e on each node in MQ

Steps:

1. for each node nÎMQ do

2. sign[n]¬0, MIweight[n]¬0, Propagate-Sign(f, e, e, sign,1)

3. end for

Propagate-Sign(trail, from, to, msgsign, msgMIweight)

1. Merge-Sign (tosign, toMIweight, msgsign, msgMIweight)

2. sign[to]¬tosign, MIweight[to]¬toMIweight, trail¬trailÈ{to}

3. for each (induced) neighbor of to do

4. linksign¬sign of influence between to and n

5. msgsign¬linksignÄsign[to]

6. msgMIweight¬MIweight[to]*MI(to®n)

7. Merge-Sign(nsign¬sign[n], nMIweight¬MIweight[n], msgsign, msgMIweight)

8. if nÏtrail and sign[n]Ïnsign then

9. Propagate-Sign(trail, to, n, msgsign, msgMIweight)

10. end if

11. end for

Merge-Sign(tosign, toMIweight, msgsign, msgMIweight)

/*tosign and toMIweight denotes both input parameters and return values*/

1. if tosign ¹ msgsign then

2. if toMIweight ≥msgMIweight then

3. toMIweight←toMIweight−msgMIweight+toMIweight*msgMIweight

4. else if toMIweight

5. tosign←msgsign, toMIweight¬msgMIweight−toMIweight+toMIweight*msgMIweight

6. else

7. tosign¬tosignÅmsgsign

8. end if

9. else

10. toMIweight¬msgMIweight+toMIweight−toMIweight*msgMIweight

11. end if