This question evaluates a candidate's skills in combinatorial group testing, parallel algorithm design under node-disjoint constraints, and complexity reasoning for identifying faulty elements.
You have N nodes. Each node is either good or bad (unknown to you).
You can call a function test(S) on a subset of nodes S:
test(S) = True
iff
all nodes in S are good
.
test(S) = False
iff
S contains at least one bad node
.
test(...)
calls
in parallel rounds
.
|S| >= 2
(you cannot test a single node).
Design an algorithm to identify all bad nodes.
test
calls, and/or