M. Ishizuka and A. Sattar (Eds.) PRICAI 2002 Springer-Verlag
Genetic Algorithm and Social Simulation Pinata Winoto Department of Computer Science, University of Saskatchewan Saskatoon, S7N 5A9, Canada
[email protected]
Abstract. Artificial agents have been deployed in simulating social or economic phenomena in order to find optimal policy to govern agents’ society. However, with an increase of the complexity of agents’ internal behaviors as well as their social interactions, modeling social behaviors and tracking down optimal policies in mathematical form become intractable. In this paper, genetic algorithm is used to find optimal solutions to deter criminals in order to reduce the social cost caused by the crimes in the artificial society. The society is characterized by multiple-equilibria and noisy parameters. Sampling evaluation is used to evaluate every candidate. The results of experiments show that genetic algorithms can quickly find the optimal solutions.
INTRODUCTION Many works had been done in simulating social or economic phenomena by using artificial agents in computer simulations, for example in [1]-[6]. One of the simulation’s purposes is to find optimal policy in governing a society. Since the society could be open and contain many heterogeneous agents, who are able to learn from and adapt to their environment, the impact of public policy on social welfare is no longer deterministic. With an increase of the complexity of agent’s internal behavior and its social interactions, modeling the social behavior in mathematical form becomes intractable. Consequently, traditional optimization techniques cannot be used in finding optimal public policy(-ies). Generally, multiple equilibria and noises characterize most social simulations. Some equilibria may be unstable or nonstationary, and the movement from one equilibrium point to others is very slow. Therefore, most simulations are time consuming and repeated sampling becomes very costly. The minimum number of sampling in evaluating a policy may spreads from few times until hundreds times. Too little sampling could mislead the interpretation of the result [7]. This paper reports an ongoing project in optimizing agent society through public policy. The search space is finite, but exhaustively evaluating all points is extremely costly. A similar work in searching optimal policy could be found in Takadama et al. [8], where they used evolutionary approach to find optimal policy in the simulation of city planning. Other similar works in optimizing stochastic simulation are [9] and [10]. In [9] Bingül et al. used GA to find optimal solutions of a stochastic simulation of military operations, a black box THUNDER software. In [10] Stroud used Kalman-
M. Ishizuka and A. Sattar (Eds.) PRICAI 2002 Springer-Verlag
Extended GA to simulate atmosphere phenomena, which is characterized by many non-stationary outcomes. Here, a repeated evaluation method is used in the evaluation of fitness value as studied in [11]-[14]. Under some assumptions, such as identical and independent distribution of noises along searching point, the optimal sampling could be derived [12][13]. Nissen and Propach [14] relax this assumption and show that increasing sampling number will effectively increase the accuracy of the results. But they did not derive the optimal sampling and its relation to population size. Some refinement to reduce computation cost by inheriting fitness value was proposed in [15][16]. Since there are various settings of GA, such as population size, selection mechanism, crossover mechanism, probability of crossover and mutation, etc., an appropriate setting is needed for the optimization problem described in this paper. In the next part, the algorithm used and the preliminary test using simple stochastic polynomial function is described. After that, a description of the social simulation and how to apply GA in finding optimal solution are given. Then, the analysis of experimental result is provided, which then followed by some conclusions.
REPEATED-EVALUATION GENETIC ALGORITHM GA is a population-based algorithm that consists of iterated cycles of evaluation, selection, reproduction, and mutation. Each cycle is called a generation. During each generation, a set of genetic operators will be applied to the existing chromosomes to create a new population, which is more adaptive than previous one. In the simulation described later, the selected GA properties are as follow: • Fitness value: the evaluation is repeated n times and their mean value is returned. • Selection: the fittest chromosomes are chosen to generate offspring. A linear ranking is used, and depends on n we choose 10%, 20% or half of the best populations as the parents. • Reproduction/crossover: the crossover rate is set to 0.6. And each gene/bit of parents is considered independently. In our simulation, the chromosome length is 10 bit. • Mutation: the mutation rate is set to 0.05. In solving stochastic optimization problem in this paper, two type algorithms are considered, repeated-evaluation GA and sub-population-based GA. The repeatedevaluation GA follows typical GA except that it repeats the calculation of fitness value n times: 1. (Initialization) Randomly generate a population of N chromosomes. 2. Evaluate the fitness f(x) of each chromosome n times, and return its average value. 3. Sort the population according to their average fitness value and replicate m% of the best chromosomes, and repeat the following steps until N chromosomes (offspring) have been created: a. randomly select a pair of parent chromosomes from the population; b. with the crossover probability 0.6, cross each parent gene; c. mutate the resulting offspring with the mutation probability 0.05, and insert it in the new population;
M. Ishizuka and A. Sattar (Eds.) PRICAI 2002 Springer-Verlag
4. The new population replaces the current population. 5. Repeat step 2 to 4 as many as r times. 6. (Terminate) Return the best chromosome. In the sub-population-based GA, after initialization (step 1) the chromosome is evaluated once (i.e., n = 1). But the whole population is duplicated n times and every chromosome is evaluated independently. After all chromosomes are evaluated, 1/n best population is selected from each sub-population to form a mating pool. Finally, classical operators are applied to this mating pool to generate new generation, and the process is repeated. Generally, there is no big difference between repeated-evaluation and sub-population-based GA. For instance, by modifying the repeated-evaluation GA such that it uses the whole sampling value rather than their mean value in its selection mechanism, then the repeated-evaluation GA becomes a sub-populationbased GA. Conversely, if the selection criteria in a sub-population-based GA is based on the average performance of the corresponding sub-population, then it becomes a repeated-evaluation GA. Definitely, many other criteria can be used besides mean and sampling value, such as mean-variance, maximum or minimum value, etc. Some experiments are needed in order to choose one of them. As a preliminary test before they are used in social simulation, they are tested using a stochastic polynomial function:
y = −( x − 500) 2 + 100000 + [25000 + 2( x − 500) 2 ] ε
(1)
where ε ∈[-0.5, 0.5]. The best x is 500, as shown in middle of solid line in figure 1.
Fig. 1. The stochastic testing function y(x) and its noise distribution We test our algorithms by repeating every setting 100 times. The settings are as follows: 1. generations r = {1, 2, 5, 10, 20, 40, 80, 160} 2. sampling n = {5, 10} 3. population size N = {100, 200, 500, 1000} The effects of them are shown in figure 2, 3, and 4. Figure 2 and 3 show the effect of the number of generations to the best result. Both are run for population size = 100. In figure 2, the repetition of evaluation = 5 for repeated-evaluation-based GA, and replication = 5 for sub-population based GA. In figure 3, the repetition and replication = 10. It is shown from the lower part graphs that increasing the number of iterations/generations will reduce the variance of the results (decreasing pattern of standard deviations). It is also shown from the upper graphs that by increasing the
M. Ishizuka and A. Sattar (Eds.) PRICAI 2002 Springer-Verlag
number of generations, both algorithms eventually move to a stable local optimum (approx. 510). This optimum point is not the best (=500), but increasing the population size can increase the chance of finding better solutions (figure 4). However, it is very costly to find better solutions. For example, when the number of population increase from 100 to 1000, the gain of accuracy is < 40% (stable local optimum = 506.9). It is also shown from the numerical data (not shown here) that increasing the number of evaluation (repetition and replication) does not affect the result significantly. Average Value (100 experiments)
Standard deviation (100 exp's)
515 510 505 500 495 490 485 1
2
5
10
repeated evaluation
20
40
80 160 generations
140 120 100 80 60 40 20 0 1 2 5 10 repeated evaluation
sub-population
20
40 80 160 sub-populations
Fig. 2. The effect of the number of generations (5 times samplings or 5 times replications) Standard deviation (100 exp's)
Average Value (100 experim ents) 515 510 505 500 495 490 485 480
140 120 100 80 60 40 20 0
generations 1
2
5
10
20
repeated evaluation
40
80
160
1 2 5 10 repeated evaluation
sub-population
20
40 80 160 sub-populations
Fig. 3. The effect of the number of generations (10 times samplings or 10 times replications) 511 510 509 508 507 506 505 100
200
500
1000
Po p u latio n
Fig. 4. The effect of population size to the accuracy of solution
M. Ishizuka and A. Sattar (Eds.) PRICAI 2002 Springer-Verlag
The main difference observed from our first experiment is that sub-populationbased GA is more volatile in the smaller number of generation (higher standard deviation), while repeated-evaluation GA is more stable. Besides, sub-populationbased GA is more time consuming. Considering the cost-performance value, we choose repeated-evaluation GA in optimizing our social simulation, which is explained in the next section.
ARTIFICIAL SOCIETY In our artificial society, 100 agents living for certain periods of time, where each agent behaves rationally to maximize his expected utility. During each period an agent may decide to commit crime or not. Every kind of crime induces a certain damage in money loss (virtual dollars), and becomes social cost for the society. Prisoners also generate social cost which proportional to the amount of prisoners. There are five types of crimes Σ = {type1, type2, type3, type4, type5}, varied in the damage caused as follows: (type1: $100), (type2: $150), (type3: $200), (type4: $300) and (type5: $500). And each prisoner brings $100 social cost to the society during each period. The probability of conviction is set to be 0.2 for each type of crime, and cost the society $36,000 for each period. And it is the government who should decide the punishment for each type of crime in the combination of imprisonment Y(σ) and fine F(σ). The length of imprisonment may vary from 0 until 21 periods with increment factor of 1, and the fine may vary from $0 to $10,500 with increment $500. The severity of punishment is non-decreasing for each pair of consecutive crimes, with span ∈ {0, 1, 2, 3} for imprisonment or span ∈ {$0, $500, $1000, $1500} for fine. For example, if the length of punishment for crime type3 is 7 periods, then the length of imprisonment of crime type4 may be 7, 8, 9 or 10 periods. On the other hand, if the fine of crime type2 is $1000, then the fine of crime type3 may be $1000, $1500, $2000, or $2500. We assume that all fine received would reduce the social cost from crime. But if the agent cannot afford the fine, then the maximum revenue from the fine is the agent’s current wealth. Moreover, each agent who does not commit crime may contribute to the society $100 in each period. A minimum social cost is the main objective of the government. Each agent has the following properties: • agent.Lifespan ∈ {30, 31, 32, …, 50}, represents his lifespan determined by uniform distribution. • agent.Age ∈ {0, 1, 2, …, agent.Lifespan}, represents his age. • agent.Status ∈{clear, wanted, imprisoned}, represents his status. • agent.Wealth ∈ (0, 1, 2, …, 10000}, represents his wealth. • agent.CrimeExperience ∈{0, 20, 40, …, 1000}, represents his experiences in crimes. • agent.HighestCrime ∈{0, 1, 2, 3, 4, 5}, represents the most severe crime he has committed if any. • agent.Imprison: represents how many periods left in prison if under custody.
M. Ishizuka and A. Sattar (Eds.) PRICAI 2002 Springer-Verlag
In each period an agent may decide whether to commit crime or not, depending on his expected benefits from committing crime. The expected benefit depends on the perceived disutility from imprisonment and fine, the expected payoff from crime, and the probability of apprehension. We adopt perceived value rather than real value since the former is more realistic [22]. We divide the disutility from imprisonment into three main categories, i.e., linear function (proportional), convex function, and concave function. This categorization follows the analysis by [21]. The following functions are used: DU(Y) = α Y + F’ (linear) DU(Y) = α Yβ + F’ (convex) (concave) DU(Y) = α Yγ + F’ where α ∈ [300, 700), β ∈ [0.5, 0.8), γ ∈ [1.1, 1.4), Y = Y(σ) is the length of imprisonment, and F’ = F(σ) if agent.Wealth > F(σ) or F’ = agent.Wealth otherwise Obviously, DU(Y) = DU(Y(σ)) ∝ DU(σ), i.e., disutility depends on the type of crime. The expected payoffs from crime X(σ) are determined stochastically by uniform distribution as integer value: (type1; [$90, $110]), (type2; [$140, $160]), (type3; [$190, $210]), (type4; [$290, $310]), and (type5; [$490, $510]), where the value inside the square bracket represents the minimum and maximum payoffs respectively. Furthermore, the expected benefit EB(σ) for each type of crime follows the von Neumann-Morgenstern expected utility with the assumption that the agent is risk neutral, i.e., EB = (1-pc)X + pc DU if agent.Status = clear if agent.Status = criminal, or EB = (1-pc)X where pc(σ) refers to the perceived value of the probability of conviction which equals to the conviction rate in the last period rather than 0.2 as our setting. There are many explanations for the formulae used above [18]-[20]. Different formulae could be applied with regards to the assumption considered. Since this part is not our main concern, we adopt the most commonly used. The expected return from working (not commit crime) is a fixed $50. We also assume that each agent with experiences in crime type T would only consider committing the same type of crime or more severe crime. Each agent chooses by comparing the benefit from all available options. And in order to take the wealth effect into the decision process, “clear” agent with wealth equals to W has probability W/10000 not to commit crime. Each agent accumulates wealth from either work or crime. After all agents decide whether to commit crime or not and act in accordance, police will start to arrest them. Each criminal has the chance of 0.2 being convicted for his most severe crime. If an agent dies, then a new agent will be born to replace him. The simulation runs for 100 periods, and the data from the last 10 periods are recorded for analysis. Because in these periods we would encounter agents from 2-nd, 3-th, and 4-th generations with various age and experiences which are enough for our analysis.
M. Ishizuka and A. Sattar (Eds.) PRICAI 2002 Springer-Verlag
Chromosome representation Recall that our main purpose is to find the optimal punishment for each type of crime such that the social cost would be minimized as much as possible. Therefore, the control variables are the severity of punishment for each type of crime. Since we only have 5 types of crime and 2 types of punishment, i.e., imprisonment and fine, we only need chromosomes with length equals to 10, and it is not binary but integer value in each bit of the chromosome. The first gene represents the length of sentence for the crime type1, which varies from 0 to 10. The second until fifth genes represent the increment of length of imprisonment compared to its previous type, which varies from 0, 1, 2 and 3. The sixth gene represents the fine for crime type1 also varies from $0 to $5000 with an increment factor $500. And the seventh until tenth genes also represent the increment of fine compared to its previous type, which also varies from 0, 1, 2 and 3 x $500. Overall, there are 6553600 different combinations. For example, 2 0 0 1 1 4 3 3 1 1 represents that the punishment of crime type1 is 2 years and 4 x $500 = $2000; type2 is 2+0 = 2 years and (4+3) x $500 = $3500; type3 is 2+0+0 = 2 years and (4+3+3) x $500 = $5000; type4 is 2+0+0+1 = 3 years and (4+3+3+1) x $500 = $5500; and type5 is 4 years and $6000. This encoding method will simplify the crossover and mutation. Each individual (chromosome) runs the simulation 5, 10 or 20 times and takes the average value of its social cost (repeated evaluation). The selection we used is to choose the half-best population and then replicate it once for each. And the crossover is to cross each gene of parents by the probability of 0.6. The fitness value is the average social cost. Experimentation and Results The values of parameters we choose are population = 50, probability of crossover = 0.6, probability of mutation = 0.05, and generation = 40. The convergence of the simulation is shown in table 1, and table 2. Y1, Y2, Y3, Y4, and Y5 represent the length of imprisonment for crime type1, type2, type3, type4 and type5 respectively. F(1), F(2), F(3), F(4), and F(5) represent the fines imposed for crime type1, type2, type3, type4 and type5 respectively. Table 1 shows the dispersed deterrence patterns from the first 5 individuals in the fifth generation taken from one of the experiment. And table 2 shows the corresponding patterns in the 21-st generation where the deterrence patterns are converging and lower social costs are attained. Table 3 shows the standard deviations for each parameter in the 1st, 5th, 10th and 21st generations. Obviously, the standard deviations decrease as generations increase. Therefore we can conclude that the solutions converge. Moreover, the minimal social cost also decrease as generations increase, which means that better solutions are reached as generation increases (see figure 5). Table 4 shows the effect of sampling in evaluation (5, 10, and 20 times). It is shown from the social cost that the number of sample has no big impact when the sample is 5, 10 or 20. But it does not means that the most optimal result is reached. Because in the previous work with this simulation [7], it showed that a slight differences of policies may not impact the whole performances. In some cases, only after hundreds of repetitions, it can be concluded that which policies are better. Or in
M. Ishizuka and A. Sattar (Eds.) PRICAI 2002 Springer-Verlag
other words, in few repetitions the optimal policy does not fall in a point, but a thick line or region. However, from the social cost perspective, it can be concluded that GA is robust in searching “good” policy (-ies). In order to test the optimal deterrence patterns from GA, several solutions are run for 30 times. And some arbitrary deterrence patterns are also tested as comparisons. One of the results is shown in table 5, in which the patterns of deterrence for each crime with their associated pairs of (length of imprisonment; fine) are as follows: T1: 1(1,$2500); 2(1,$2500);3(1,$3500); 4(1,$4500); 5(2,$4500) T2: 1(1,$500); 2(1,$1000); 3(1,$2000); 4(1,$2500); 5(2,$2500) T3: 1(1,$500); 2(2,$1000); 3(3,$1500); 4(4,$2000); 5(5,$2500) T4: 1(4,$0); 2(5,$0); 3(6,$0); 4(7,$0); 5(8,$0) T1 and T2 are taken from the result of GA, while T3 and T4 are chosen manually. Table 5 shows that the social costs from T1 and T2 are less than both T3 and T4. The crime rate for each type of crime, i.e. %C1, %C2, %C3, %C4, and %C5, and the total crime rate %TC are shown. It is shown that there is no specific difference for the total crime rate among T1, T2, T3, and T4. The difference is that the crime rate for type1, type2 and type3 are lower in T1 and T2, while the crime rate for type5 is higher in T1 and T2. Intuitively, criminals in T3 and T4 spend most of their life in prison due to longer imprisonment and therefore have less opportunity to commit crime type5. Moreover, the prisoners in T1 and T2 are lower than T3 and T4, because prisoners in T3 and T4 spend longer time in prison.
1 -s t
5 -th
1 0 -th
49
45
41
37
33
29
25
21
17
13
9
5
1
Social Cost $
S o c ia l C o s t f o r D if f e r e n t G e n e r a t io n s
2 1 -s t
Fig. 5. Shift of social cost within different generations
CONCLUSIONS Two main conclusions are drawn from our experiment. First, the repeated evaluation GA outperforms the sub-population GA in term of cost-performance analysis. Second, genetic algorithm is capable of finding the optimal solutions in the agent-based simulation in terms of the convergence of its solutions and better fitness value, and too many repetition may not have impact on the searching of optimal policy.
M. Ishizuka and A. Sattar (Eds.) PRICAI 2002 Springer-Verlag
Table 1. The first 5 individuals in the fifth generation
Social Cost Y1 -20888 1 -19561 1 -19305 1 -19130 1 -18703 1
F(1) $500 $500 $500 $500 $2,500
Y2 1 1 1 1 2
F(2) Y3 $1,000 1 $500 2 $2,000 2 $2,000 1 $3,000 3
F(3) Y4 $1,500 4 $1,500 5 $2,500 5 $2,500 4 $3,500 6
F(4) $2,500 $2,500 $3,500 $3,500 $3,500
Y5 5 6 6 5 9
F(5) $4,000 $4,000 $5,000 $5,000 $5,000
Table 2. The first 5 individuals in the 21-st generation
Social Cost Y1 F(1) Y2 F(2) Y3 -24451 1 $2,500 1 $2,500 1 -22492 1 $3,000 1 $4,000 1 -22074 1 $2,500 1 $3,000 1 -21909 1 $1,500 1 $2,000 1 -20911 1 $2,500 1 $3,000 1
F(3) Y4 $3,500 1 $4,500 1 $3,500 2 $2,500 1 $3,500 1
F(4) Y5 F(5) $4,500 2 $4,500 $6,000 3 $6,000 $4,000 5 $4,500 $3,500 4 $4,000 $4,500 1 $5,000
Table 3. Standard Deviation from the First 20 Individuals in the 1-st, 5-th, 10-th and 21-st Generations
1-St 5-th 10-th 21-St 1-St 5-th 10-th 21-St
Y1 1.43 0.00 0.00 0.00 F(1) 1549.83 1550.89 1489.22 993.07
Y2 1.90 0.50 0.00 0.00 F(2) 1353.36 1664.45 1746.24 1079.41
Y3 2.04 1.40 0.75 0.00 F(3) 1575.09 1715.83 1972.84 998.35
Y4 2.43 1.92 1.79 0.31 F(4) 1426.03 1576.76 2040.87 1103.52
Y5 2.63 2.25 2.11 1.15 F(5) 1455.25 1576.76 2040.87 1268.03
Table 4. The results from 5 times simulation for each Sample in Evaluation
Social Cost Std. Deviation
5 321416 1334.2
10 323236 838.96
20 322821 1030.9
Table 5. The results from 30 times simulation for each deterrence pattern T1, T2, T3, and T4
T1 T2 T3 T4
Social Non Cost Prisoner -17455 994.71 -18961 994.79 -14361 957.26 24612 854.25
%C1
%C2
%C3
%C4
%C5
%TC
4.87 4.76 4.86 6.04
4.14 4.10 4.56 7.35
2.37 2.35 2.47 3.77
2.43 2.31 2.25 2.83
3.04 2.90 2.24 2.03
16.85 16.43 16.38 22.02
M. Ishizuka and A. Sattar (Eds.) PRICAI 2002 Springer-Verlag
References: [1] Conte, R., Hegselmann, R. and Terna, P. (Eds.) Simulating Social Phenomena. Springer, 1997. [2] Gilbert, N. and Conte, R. (Eds.) Artificial Societies: the computer simulation of social life. UCL Press, London, 1995. [3] Luna, F. and Stefansson, B. (Eds.) Economic Simulations in Swarm: Agent-based modelling and object oriented programming. Kluwer Academic Publishers, 2000. [4] McCain, R. A. Agent-Based Computer Simulation of Dichotomous Economic Growth. Kluwer Academic Publishers, 2000. [5] Sichman, J. S., Conte, R. and Gilbert, N. (Eds.) Multi-Agent Systems and Agent-Based Simulation. Springer, 1998. [6] Tesfatsion, L. Guest editorial agent-based modeling of evolutionary economic systems. IEEE Transactions on Evolutionary Computation, vol. 5(5), Oct. 2001, 437-441. [7] Winoto, P. and Tang, T. Y. Evaluating the Stochastic Properties of Agent Society from Economics’ Perspective. Proceedings of the 2001 IEEE Systems, Man and Cybernetics Conference, Tucson, AZ, USA, vol. 5, Oct. 2001, 2905-2910. [8] Takadama, K., Terano, T. and Shimohara, K., Nongovernance rather than governance in a multiagent economic society. IEEE Transactions on Evolutionary Computation, vol. 5(5), Oct. 2001, 535 -545. [9] Bingül, Z, Sekmen, A.Ş., Palaniappan, S. and Zein-Sabatto, S. Genetic Algorithms Applied to Real Time Multiobjective Optimization Problems. Proceedings of the IEEE Southeast Con 2000, Piscataway, NJ. USA, 2000, 95-103. [10] Stroud, P.D. Kalman-extended genetic algorithm for search in nonstationary environments with noisy fitness evaluations. IEEE Transactions on Evolutionary Computation, vol. 5(1), Feb. 2001, 66 -77. [11] Fitzpatrick, J., and Grefenstette, J. Genetic Algorithms in Noisy Environments. Machine Learning, 3, 1988, 101-120. [12] Miller, B.L. and Goldberg, D.E. Optimal Sampling for Genetic Algorithms. IlliGAL Report No. 96005, Univ. of Illinois, Urbana-Champaign, August 1996. [13] Miller, B.L. Noise, Sampling, and Efficient GA’s. Ph.D. dissertation, Univ. of Illinois, Urbana-Champaign, 1997. [14] Nissen, V. and Propach, J. On the robustness of population-based versus point-based optimization in the presence of noise. IEEE Transactions on Evolutionary Computation, vol. 2(3), Sept. 1998, 107 -119. [15] Smith, R., Dike, B., and Stegmann, S. Fitness Inheritance in Genetic Algorithms. Proceedings of the ACM Symposium on Applied Computing, New York, NY, 1995, 345-350 [16] Sastry, K., Goldberg, D.E., Pelikan, M. Don’t Evaluate, Inherit. IlliGAL Report No. 2001013, Univ. of Illinois, Urbana-Champaign, Jan. 2001. [17] Albert, L.A. and Goldberg, D.E. Efficient Evaluation Genetic Algorithms under Integrated Fitness Functions. IlliGAL Report No. 2001024, Univ. of Illinois, Urbana-Champaign, July 2001. [18] Becker, G. S. Crime and Punishment: An Economic Approach. The Journal of Political Economy; 76 (2), 1968, pp. 169-217. [19] Ehrlich, I. The Deterrent Effect of Criminal Law Enforcement. Journal of Legal Studies, Vol. L (2), June 1972, 259-276. [20] Leung, S. F. Dynamic deterrence theory. Economica, 62, 1995, 65-87. [21] Polinsky, A. M.. and Shavell, S. On the disutility and discounting of imprisonment and the theory of deterrence. NBER Working Paper, 6259, November 1997. http://www.nber.org/papers/w6259 [22] Sah, Raaj K. Social osmosis and patterns of crime. The Journal of Political Economy, 99(6), 1991, 1272-1295.