Hi All,

I have enabled the agent to commit crimes, which is decided by a number of
factors like reward associated with the crime, risk involved, number of
times the spot has been visited, whether police is present in vicinity,
whether the guardian of the spot is away . The simulation is being run for
two weeks. For the first week the agent commits no crime and just gets
acquainted with the spots. In the second week the agent commits crime based
on the above factors.

You can have a look at it here: http://gw76.iu.xsede.org/criminfo/

A sample simulation has been saved by the name - "crimetest" . You can
click on load and enter - crimetest - to view it. You can also run a new
simulation on cities in taiwan (say taipei).

We have four global variables:

   - risk_avoidance : a value between 0 and 1 (generated randomly)
   - profit_seeking : a value between 0 and 1 (generated randomly)
   - maxprofitpossible : set to 100 for this simulation
   - maxriskpresent : set to 100 for this simulation

Crime Spots are labelled as "*CS-n [reward, risk, p ,g ,f]*" on the map,
where

where,

   - n is the id of the crime spot,
   - reward is profit value associated with the spot - this is initialized
   as a random number generated between 0 and maxprofitpossible
   - risk = inherent_risk +
   risk_due_to_the_number_of_times_the_spot_is_visited
   - inherent_risk is  initialized as a random number generated between 0
   and maxriskpresent.
   - risk_due_to_the_number_of_times_the_spot_is_visited =
   num_times_visited * 0.02 * maxriskpresent
   - p = probability that police is present in the vicinity of the spot
   - g = probability that the guardian of the spot is not present at the
   spot
   - f = number of times crime has been committed at this spot

The algorithm for deciding whether the agent commits a crime is as follows:

//check patrolling police presence
tmp  = random num between 0 and 1
if(tmp > p){  //patrolling police not present
       tmp  = random num between 0 and 1
       r = risk
        if(tmp < g){  // guardian is away
             r = r/2   //risk is reduced to half . this is only for this
particular case. the risk value                              //stored for
this spot remains unchanged
        }
        tmp = random num between 0 and 1
        if( tmp > risk_avoidance*r/maxriskpresent.){     //agent decides to
take the risk
               tmp = random num between 0 and 1
               if(tmp < profit_seeking*reward/maxprofitpossible){  //reward
is good enough
                     *commit_crime*
               }
        }
}

Thanks,
Nadeem.

Reply via email to