With the general set-up, designing a baby agent becomes interesting. In the absence of any information about the parameters of the optimization problem, the following seems appropriate. There are 4 subagents: offer accept create solve solve(i): repeat select random feasible solution for i; compute quality; until timeout offer: randomly choose predicate(p) repeat randomly choose instance i satisfying predicate p; solve(i); until timeout offer challenge: (p, price) where price is determined by loop. accept challenge = (p, price): similar to offer create(p): repeat randomly choose an instance i satisfying p; solve(i); until timeout return worst instance Problems we need to solve: Given a cd, generate a random instance. Problem: cd has a semantic checker. We might need to generate too many random instances until we generate one that satisfies p. New DGP function: Given a cd, generate a random object satisfying the cd. ===================