I was reading a Tumblr post on the need for empathy in a larger social group in order for the larger group to succeed. Interested in simulating this, I wrote a perl module and a perl script to “see” such dynamics in action. What I found is not surprising.
Apologies in advance for the poor code formatting, my WordPress theme does not like rendering code.
First the module. We will create a basic Person class that keeps track of whether someone cares about them.
package Person;
sub new {
my $class = shift;
my $self = bless {
'cared_for' => 0,
}, $class;
}
sub cared_for {
my $self = shift;
if (@_) {
$self->{cared_for} = shift;
}
return $self->{cared_for};
}
1;
And we will create a test script to simulate a population caring about one another.
use Person;
my $POPULATION_SIZE = 10000;
my $MAX_EMPATHIC_CAPACITY = 10;
my $PROBABILITY_EMPATHY = .99;
my @people = ();
for (1..$POPULATION_SIZE){
$people[$_ - 1] = Person->new();
}
my $proportion_of_population_cared_about = $MAX_EMPATHIC_CAPACITY / $POPULATION_SIZE;
say('Proportion of population a randomly selected neurotypical cares about: ' . $proportion_of_population_cared_about);
my $num_neurotypicals = 0;
foreach (@people) {
if (rand() <= $PROBABILITY_EMPATHY){
$num_neurotypicals++;
foreach (@people){
if (rand() <= $proportion_of_population_cared_about){
$_->cared_for(1);
}
}
}
}
my $num_people_cared_for = 0;
foreach (@people) {
if ($_->cared_for()){
$num_people_cared_for++;
}
}
say('Number of neurotypicals: ' . $num_neurotypicals);
say('Number of people cared for: ' . $num_people_cared_for);
say('Proportion of people who are cared by someone else: ' . $num_people_cared_for / $POPULATION_SIZE);
Assuming that 99% of the population possesses empathy for ~20 other people in a population of 10,000, we see that the 100% of the population is cared for by someone. Only when I reduce the probability of “caring about anyone” to numbers far less do people start to fall through the grid.
Proportion of People with Empathy / Number of 10,000 individuals cared for by someone:
.99 / 10,000 (100%)
.50 / 10,000 (100%)
.10 / 8768 (87.7%)
.01 / 2078 (20.8%)
If I reduce the number of individuals that a neurotypical “cares” for to 10, the numbers are still fairly stable.
.99 / 9999 (100%)
.50 / 9934 (99.3%)
.10 / 6277 (62.8%)
.01 / 1057 (10.6%)
So, it would seem, that empathy is overrated although clearly some in society need to possess it in order to protect the larger species. However, we should note that this assumes that everyone with empathy, on average, cares about ten or twenty other people. It also assumes that care is heterogeneous in nature.
I would love for a more mathematically inclined reader to check my work here.