Merge branch 'master' into popl2012
[match/match.git] / program / PMInstanceGenerator.hs
index 4324546..9cafacd 100644 (file)
@@ -68,5 +68,19 @@ randomInstance cfg numRvrs numProps = do
                                PTopic1 jt1 -> expertnessToPref (iTE ! jt1)
                                PTopic2 jt1 jt2 -> (expertnessToPref (iTE ! jt1)
                                        + expertnessToPref (iTE ! jt2)) / 2
-               in if isConflict then 40 else topicPref * jD - 4)
-       return $ PMInstance numRvrs numProps loadA prefA
+               -- Use a formula designed for the old pref scale with the new.
+               in if isConflict then -100 else prefOldToNew (topicPref * jD - 4))
+       let expA = funcArray ((0, 0), (numRvrs-1, numProps-1)) (\(i,j) ->
+               let
+                       ReviewerInfo iTE iC = reviewerInfos ! i
+                       ProposalInfo jT jD = proposalInfos ! j
+                       isConflict = elem j iC
+                       topicExp = case jT of
+                               PTopic1 jt1 -> 1 + (iTE ! jt1)
+                               PTopic2 jt1 jt2 -> 1 + ((iTE ! jt1)
+                                       + (iTE ! jt2)) / 2
+               in topicExp)
+       -- defaults
+       let fixA = constArray ((0,0), (numRvrs-1,numProps-1)) False
+       let pnrA = constArray (0, numProps-1) (reviewsEachProposal cfg)
+       return $ PMInstance numRvrs numProps loadA prefA expA fixA pnrA