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.
