1. "We understood from the question that we need to compute the out going messages for each unobserved nodes, then use those messages to update in coming messages for unobserved neighbor nodes." - The observed nodes also send messages that should (must) be computed.

2. "How do we know what pixel maximizes the incoming messages?" - I think that maybe your'e mixing between xi and Xi. Xi is a node which corresponds to a pixel, but xi is denoting a pixel value (between 0 and 255), so the argmax is straightforward to find.

3. "When computing outgoing nodes m_ij(xj), should we compute it for every possible value of xj?" - Yes. This should tell Xj what his neighbor Xi "thinks" of each possible assignment it (Xj) can have.

Thanks ]]>