nkremerh / sugarscape

Development repository for the Digital Terraria Lab implementation of the Sugarscape agent-based societal simulation.
https://github.com/digital-terraria-lab/sugarscape
MIT License
7 stars 12 forks source link

Modifies agent decision making to include selfishnessFactor #3

Closed WillemHueffed closed 1 year ago

WillemHueffed commented 1 year ago

Adds selfishnessFactor to config file adds selfishnessFactor to README

nkremerh commented 1 year ago

Population differs between master branch and this implementation even without using the new features. Results in a population of 419 on master branch and 407 on this branch using this config:

{ "agentAggressionFactor": [1, 1], "agentBaseInterestRate": [0.05, 0.10], "agentEthicalFactor": [1, 1], "agentEthicalTheory": "none", "agentFemaleInfertilityAge": [40, 50], "agentFemaleFertilityAge": [12, 15], "agentFertilityFactor": [1, 1], "agentImmuneSystemLength": 35, "agentInheritancePolicy": "children", "agentLendingFactor": [1, 1], "agentLoanDuration": [5, 5], "agentLookaheadFactor": [1, 10], "agentMaleInfertilityAge": [50, 60], "agentMaleFertilityAge": [12, 15], "agentMaleToFemaleRatio": 1, "agentMaxAge": [60, 100], "agentMaxFriends": [5, 10], "agentMovement": [1, 6], "agentReplacements": 0, "agentSpiceMetabolism": [1, 4], "agentStartingSpice": [10, 40], "agentStartingSugar": [10, 40], "agentStartingQuadrants": [1, 2, 3, 4], "agentSugarMetabolism": [1, 4], "agentTagStringLength": 11, "agentTradeFactor": [1, 1], "agentVision": [1, 6], "debugMode": true, "diseaseAggressionPenalty": [-1, 1], "diseaseFertilityPenalty": [-1, 1], "diseaseMovementPenalty": [0, 0], "diseaseSpiceMetabolismPenalty": [1, 3], "diseaseSugarMetabolismPenalty": [1, 3], "diseaseTagStringLength": [7, 13], "diseaseVisionPenalty": [-1, 1], "environmentHeight": 50, "environmentMaxCombatLoot": 1, "environmentMaxSpice": 4, "environmentMaxSugar": 4, "environmentMaxTribes": 3, "environmentPollutionDiffusionDelay": 0, "environmentSeasonalGrowbackDelay": 0, "environmentSeasonInterval": 0, "environmentSpiceConsumptionPollutionFactor": 0, "environmentSpiceProductionPollutionFactor": 0, "environmentSpiceRegrowRate": 1, "environmentSugarConsumptionPollutionFactor": 0, "environmentSugarProductionPollutionFactor": 0, "environmentSugarRegrowRate": 1, "environmentWidth": 50, "headlessMode": false, "logfile": "log.json", "profileMode": false, "seed": 12345, "startingAgents": 500, "startingDiseases": 50, "timesteps": 200 }

WillemHueffed commented 1 year ago

Rebased on top of most recent production branch (determinism fix) - getting convergent results for ethical theory = none. However, when selfishnessFactor is set to 0.5 there are divergent results when ethicalTheory = bentham (I've tested this with both weighted and unweighted suicide penalties. Not entirely sure what is causing the divergence because if I recall correctly at one point we were getting convergent results between this branch and master for ethicalTheory = bentham. I'm leaving it here for today because its functional and I don't want to sink to much time into fixing this. Any thoughts?

nkremerh commented 1 year ago

Let's plan to have this fully ready to merge by next Tuesday's meeting. Follow up with me offline to give me a status update on where this PR is at and what is still left to be done to get it over the finish line.

WillemHueffed commented 1 year ago

Not sure why its saying I removed those two l lines. There shouldn't be any whitespace difference between them...

nkremerh commented 1 year ago

There aren't any semantic changes. I'll take it as is. Rebase on top the current version. Then it should be ready to merge.

nkremerh commented 1 year ago

Before I forget, the selfishnessFactor mechanism should be in both benthamNoLookahead and benthamHalfLookahead.