We want to determine the IQ of an SDG robot. We subdivide the IQ into sub-IQs for subactivities. Buying IQ: How good is the robot at making buying decisions? The robot is offered a set of derivatives to buy. Half of them are too cheap (CHEAP) and half too expensive (EXP). The robot buys set BUY of derivatives. BuyingIQ = intersect(BUY,CHEAP) - 2 * intersect(BUY,EXP) Offering IQ: What is the quality of the derivatives offered by the robot? The robot creates a set S of derivatives. The robot should only offer profitable derivatives and they should not be too expensive. OfferingIQ = SUM over all derivatives in S: if price > break-even-price then 1 - (price - break-even-price) else 0 RawMaterial IQ: What is the quality of the raw material created by the robot? The raw material should be symmetric and use the worst weights. Input: derivative Output: raw material rm (if symmetric then 1 else 0) - ( fsat(rm,Jmax) - fsat(worst,Jmax)) Jmax is the maximum assignment. Cannot use test cases: derivative for which the worst raw material is known. Need symmetry checker. Need to find the best assignment (slow!). Determining the IQ is time consuming (NP-hard)! Is the a better definition of RawMaterial IQ that is polynomial? Finishing IQ: What is the quality of the assignments? Input: raw material rm Output: assignment J FinishingIQ = if fsat(rm,J) = fsat(rm,Jmax) then 1 else fsat(rm,J)-fsat(rm,Jmax) /* is negative */ + if fsat(rm,J) >= E(Z(rm,bmax)) then 2 else 0 Rationale: Against rational players fsat(rm,J) >= E(Z(rm,bmax)) must hold for an intelligent player. Use test cases: raw materials for which best assignment is known and for which best expected value is known. Need quality checker. RobotIQ = BuyingIQ + OfferingIQ + RawMaterialIQ + FinishingIQ