[Cs5500] Smart History probable fix

Karl Lieberherr lieber at ccs.neu.edu
Thu Dec 1 13:55:31 EST 2011


This is a big relief. Thanks to the contributors. Yes, tonight are the last
two tournaments.

Ravi will administer them according to our schedule.

-- Karl

On Thu, Dec 1, 2011 at 1:50 PM, Madhuvanthi Balasubramanian <
balasubramanian.m at husky.neu.edu> wrote:

> Hi guys,
>
> I made both changes that Ahmed proposed and ran a bunch of MMG
> tournaments. The smarthistory files are back to the proper way they were
> (with one set of responses for every claim).
> I've committed both changes to the repository and the revision # is now 76.
> I'm going out on some personal work, so could someone please run HSR
> tournaments too, on this version and make sure the changes are consistent?
> I believe we have both HSR and MMG tournaments coming up soon.
> Thanks Ahmed.
>
>
>
> On Thu, Dec 1, 2011 at 1:09 PM, Ahmed Abdelmeged <ahmed.mohsen at gmail.com>wrote:
>
>> That's exactly the issue. However, I disagree with the solution.
>> According to the "standard/default" mmg configuration below, proposed
>> claims need not necessarily be new.
>> scg_config[
>> domain:mmg.MMGDomain
>> protocols: scg.protocol.ForAllExistsMax
>> tournamentStyle: full round-robin
>> turnDuration: 60 //seconds
>> maxNumAvatars: 20
>> minStrengthening: 0.0000000001
>> initialReputation: 100.0
>> maxReputation: 1000.0
>> reputationFactor: 0.4
>> minProposals: 1
>> maxProposals: 1
>> numRounds: 5
>> proposedClaimMustBeNew: false
>> minConfidence: 0.5
>> ]
>> mmg.MMGConfig {{ mmg_config[ ] }}
>>
>> In fact, it is unfair to enforce claims to be new when we know that there
>> is one optimal claim. Furthermore, it is impossible to enforce claims to be
>> new when the domain has a single claim.
>>
>> The fix I'm proposing (which is essentially a completion of the
>> IdentityHashMap fix) is to use reference equality for claims rather than
>> semantic equality (i.e. the .equals method). The IdentityHashMap uses
>> reference equality but HashMap uses "equals". There is another spot in
>> smart history where claims are compared using "equals"
>>
>>     public void updateClaimWithResponse(IdentityHashMap<Claim, Claim>
>> newClaimOriginalClaim, Claim claim, ProtocolResponse response,
>> RemotePlayerProxy avatar)
>>     {
>>         if (newClaimOriginalClaim.containsKey(claim))
>>         {
>>             claim.getInstanceSet().toString();
>>             Claim originalClaim = newClaimOriginalClaim.get(claim);
>>             for(ClaimWithResponse claimWithResponse : loc)
>>             {
>>  ==>               if(claimWithResponse.getClaim().equals(originalClaim))
>>                 {
>>
>>                    AnnotatedResponse aResponse = new
>> AnnotatedResponse(new verbatim(avatar.getOpponent().getName()), response);
>>
>>                     //AnnotatedResponse aResponse = new
>> AnnotatedResponse(new verbatim(avatar.getName()), response);
>>                     List<AnnotatedResponse> responses =
>> claimWithResponse.getResponses();
>>                     responses = responses.append(aResponse);
>>                     claimWithResponse.setResponses(responses);
>>                 }
>>             }
>>         }else{
>>             System.out.println("debug");
>>         }
>>     }
>>
>>
>> Changing it fixes the issue.
>>
>> A second issue I had was that avatars get into an infinite loop on
>> proposing claims. I had been using a configuration file that requires
>> players to propose 5 claims each time. The propose method can be rewritten
>> with the knowledge that 1. proposed claims need not be new. 2. maxProposals
>> is 1.
>>     public List<Claim> propose(List<Claim> forbiddenClaims) {
>>         List<Claim> claims = List.create();
>>         SCGConfig scg_cfg = config.getScgCfg();
>>         int maxProposals = scg_cfg.getMaxProposals();
>>         for(int i=0;i<maxProposals;i++){
>>             Claim claim = generateRandomClaim();
>>             // While loop commented out by Ahmed
>>             // there is a single claim in mmg as a result this while loop
>> goes for ever
>>             //while(forbiddenClaims.contains(claim) ||
>> claims.contains(claim)){
>>             claim = generateRandomClaim();
>>             //}
>>             claims = claims.append(claim);
>>         }
>>         return claims;
>>     }
>>
>>     private Claim generateRandomClaim() {
>>         //Random r = new Random();
>>         return new
>> Claim(MMGInstanceSet.getInstance(),ForAllExistsMax.getInstance(),0.61d,1);
>>     }
>>
>>
>> I'm currently investigating two more issues regarding strengthening and
>> agreement.
>> Would Madhu or Karan apply these changes and may be double check this fix
>> first?
>>
>> On Thu, Dec 1, 2011 at 2:53 AM, Ashish Joshi <joshi.as at husky.neu.edu>wrote:
>>
>>> Hey guys,
>>> figured out the problem with the smart history
>>> The baby avatar is not generating random claims
>>> It always generates 0.61 for some reason
>>> It wasn't the case in the earlier version where it used
>>> random.nextdouble()
>>> Also the strengthened claim is nothing but original claim + min
>>> strengthening
>>>
>>> So in binarygame.java when a new claim (strengthened claim, original
>>> claim) is added to the hashmap newClaimOriginalClaim
>>> Those map to the same claim
>>> since each entry in the hash map is the same
>>> original claim => 0.61
>>> strengthened claim => 0.61+minstrengthening
>>>
>>> Hence in the smarthistory.java
>>> all new responses are appended to the response belonging to one claim
>>> and hence we see the appended response in the smart history file
>>>
>>> Use the following as the generateRandomClaim method in the avatar
>>>
>>>     private Claim generateRandomClaim()
>>>     {
>>>         Random r = new Random();
>>>         double d = r.nextDouble();
>>>         //return new
>>> Claim(MMGInstanceSet.getInstance(),ForAllExistsMax.getInstance(),0.61d,1);
>>>         return new
>>> Claim(MMGInstanceSet.getInstance(),ForAllExistsMax.getInstance(),d,1);
>>>     }
>>>
>>> I've just tried it with the baby avatar
>>> If madhu/karan have the teacher avatar...they could try it with a couple
>>> of teachers and a baby
>>> We could check it in as the fix
>>> Attaching the smart history files I generated while hosting a tournament
>>> locally
>>>
>>>
>>> --
>>> Cheers
>>> Ashish Joshi
>>>
>>>
>>> _______________________________________________
>>> Cs5500 mailing list
>>> Cs5500 at lists.ccs.neu.edu
>>> https://lists.ccs.neu.edu/bin/listinfo/cs5500
>>>
>>>
>>
>>
>> --
>> Ahmed
>>
>
>
>
> --
>  Thanks
> - Madhu
>
>
-------------- next part --------------
HTML attachment scrubbed and removed


More information about the Cs5500 mailing list