Simulation of AI Impact on Human Knowledge - version 1
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
This model simulates the impact of AI usage on the knowledge, structure, and evolution of a society of workers. It explores how AI adoption, social networks, policies, spatial migration, and generational change interact to shape human knowledge, skills, and decision-making over time.
HOW IT WORKS
The model represents a society of agents ("persons") with varying education, privacy, and decision-making abilities, embedded in a spatial world where jobs with different AI requirements appear and disappear. Social networks, skill transfer, adaptive jobs, policy interventions, migration, technology adoption, and generational turnover are all modeled.
Initialization
Agents
N_persons
are created, each with:
- Education level (education-level
: 1, 2, or 3)
- Decision-making (decision-making-level
: ]0, 1[; 0 = fully AI, 1 = fully human)
- Privacy (privacy-level
: ]0, 1[; 0 = no privacy, 1 = high privacy)
- Knowledge (initially set as decision-making-level × education-level
)
Social Network Each person forms links with a few others, enabling knowledge and job information sharing.
Jobs
A number of jobs (Min_jobs
up to Max_jobs
) are created on patches, each with:
- Required education (job-education-level
)
- AI usage level (job-ai-usage-level
)
Tick Cycle
Each tick represents a time step in the society. The following processes occur:
Job Market Refresh
- Some jobs are deleted (Clearance_rate
), and new jobs are created (Min_jobs
to Max_jobs
).
- Jobs adapt their AI usage based on the skills of workers present.
Job Assignment
- Persons are matched to jobs if their education meets the job’s requirement.
- On assignment, persons’ privacy erodes (Laziness_factor × job-ai-usage-level
), and decision-making shifts toward AI.
- Knowledge increases as a function of AI usage and education.
Knowledge & Skill Dynamics
- Over-reliance on AI can cause skill decay (education-level drops, knowledge drops 10%).
- Persons share knowledge with their social network neighbors, simulating workplace learning.
Population Change
- A fraction of the population can reproduce (new persons inherit traits from parents).
- Some persons may die, with lower-educated individuals protected by universal basic income (UBI) if policy is active.
Policy Interventions
- Tax rates and UBI are periodically recalculated based on the population’s education structure.
Spatial Migration
- Patches calculate a "desirability" score based on jobs and local education.
- Persons may move to more desirable patches, simulating urban/rural migration.
Technology Adoption
- If enough jobs use high AI, AI adoption accelerates across the job market.
Cognitive Model
- Decision-making levels are updated based on knowledge, privacy, and AI exposure.
HOW TO USE IT
Population Settings
N_persons
: Initial population sizeProbability_education1/2
: Education distribution probabilitiesPopulation_max_increase_per_tick
: Maximum reproduction rate per tickPopulation_max_death_per_tick
: Maximum death rate per tick
Job Market
Min_jobs
/Max_jobs
: Range of jobs created each tickClearance_rate
: Fraction of jobs deleted each tick
AI & Knowledge
Laziness_factor
: Privacy erosion multiplierSkills_decay_threshold
: Probability threshold for skill decay
Policy
tax-rate
andubi
are managed automatically by the model
Simulation
Max_time
: Total simulation duration (ticks)- Use the
Setup
andGo
buttons to run the simulation - Be careful of the values chosen for
Max_time
,Population_max_increase_per_tick
andPopulation_max_death_per_tick
during your simulation.
THINGS TO NOTICE
AI Dependency Traps : High AI usage could erode skills and privacy, especially for less-educated workers.
Social Learning : Knowledge can be preserved or spread through social networks, countering some negative AI effects.
Migration & Segregation : Agents may cluster in more desirable patches, leading to spatial inequality.
Generational Turnover : New generations may inherit lower education if skill decay is widespread.
Policy Effects : ubi could buffer low-education populations from excessive mortality.
THINGS TO TRY
- Increase
Laziness_factor
to see how privacy and knowledge erode in high-AI societies. - Experiment with job market sizes and spatial migration to see clustering effects.
- Observe how the social network structure affects knowledge retention.
- Lower
Skills_decay_threshold
to make skills more fragile.
EXTENDING THE MODEL
- Add more nuanced policy interventions (e.g., AI regulation).
- Model different types of social networks (e.g., Small worlds).
- Implement more detailed migration rules.
NETLOGO FEATURES
- Uses NetLogo’s
link
breed system for social networks. - Implements adaptive patch variables and agent-based policy feedback.
- Demonstrates agent-based migration, dynamic job creation, and multi-generational reproduction.
RELATED MODELS
- NetLogo "Wealth Distribution" and "Segregation" models for spatial/economic dynamics.
CREDITS AND REFERENCES
- Perplexity AI, Inc.
- Data ScienceTech Institute Agent Base Modeling Course.
Comments and Questions
; ================================ ; BREEDS AND GLOBALS ; ================================ breed [persons person] undirected-link-breed [person-links person-link] ; Social network links persons-own [ education-level ; Integer (1-3) decision-making-level ; Continuous (0-1) privacy-level ; Continuous (0-1) has-job? assigned-job knowledge ] patches-own [ job? job-education-level ; Integer (1-3) job-ai-usage-level ; Continuous (0-1) desirability ; For spatial migration ai-adjustment-speed ; For adaptive job market ] globals [ tax-rate ; For policy intervention ubi ; Universal Basic Income ] ; ================================ ; SETUP ; ================================ to setup clear-all validate-parameters setup-persons setup-social-network reset-ticks end ; ================================ ; PARAMETER VALIDATION ; ================================ to validate-parameters if (Probability_education1 < 0) or (Probability_education1 > 1) [ user-message "Probability_education1 must be between 0 and 1" stop ] if (Probability_education2 < 0) or (Probability_education2 > 1) [ user-message "Probability_education2 must be between 0 and 1" stop ] if (Probability_education1 + Probability_education2) > 1 [ user-message "Sum of education probabilities must not exceed 1" stop ] if (Min_jobs < 0) [ user-message "Min_jobs must be ≥ 0" stop ] if (Max_jobs < Min_jobs) [ user-message "Max_jobs must be ≥ Min_jobs" stop ] end ; ================================ ; MAIN SIMULATION LOOP ; ================================ to go if ticks >= Max_time [ stop ] delete-jobs create-jobs assign-jobs ;; Randomize whether creation or death happens first ifelse (random 2 = 0) [ create-new-persons remove-dead-persons ] [ remove-dead-persons create-new-persons ] update-knowledge adapt-ai-usage implement-policy calculate-desirability migrate-persons update-ai-adoption reproduce update-decisions tick end ; ================================ ; PERSON PROCEDURES ; ================================ to setup-persons create-persons N_persons [ setup-person set knowledge (decision-making-level * education-level) ] end to setup-person ; Person initialization helper set color blue set shape "person" setxy random-pxcor random-pycor set education-level calculate-education-level set decision-making-level random-float 1 set privacy-level random-float 1 set has-job? false set assigned-job nobody end ; SOCIAL NETWORK DYNAMICS to setup-social-network ask persons [ let n random 3 + 1 let others other persons with [not link-neighbor? myself] if any? others [ create-person-links-with n-of (min list n count others) others ] ] ask person-links [ set color gray set thickness 0.2 ] end ; MULTI-GENERATIONAL SYSTEM (reproduction) to reproduce ask persons [ if random-float 1 < 0.01 * (1 - privacy-level) [ hatch 1 [ set education-level max list 1 ([education-level] of myself - 1) set knowledge knowledge * 0.7 set decision-making-level random-float 1 set privacy-level random-float 1 set has-job? false set assigned-job nobody set color blue ] ] ] end to create-new-persons let current-pop count persons let num-to-create floor (Population_max_increase_per_tick * current-pop) if num-to-create > 0 [ create-persons num-to-create [ setup-person set knowledge (decision-making-level * education-level) ] ] end to remove-dead-persons ask persons [ let death-chance Population_max_death_per_tick ; POLICY: Reduce death chance for low-education with UBI if education-level = 1 [ set death-chance death-chance - ubi ] if random-float 1 < death-chance [ if has-job? and assigned-job != nobody [ set has-job? false set assigned-job nobody ] die ] ] end to-report calculate-education-level ; Education level distribution let r random-float 1 ifelse r <= Probability_education1 [ report 1 ] [ ifelse r <= (Probability_education1 + Probability_education2) [ report 2 ] [ report 3 ] ] end ; ================================ ; KNOWLEDGE & SOCIAL TRANSFER ; ================================ to update-knowledge ask persons [ if has-job? [ let ai [job-ai-usage-level] of assigned-job update-knowledge-growth ai attempt-skill-decay ai ; SKILL TRANSFER SYSTEM: Social knowledge sharing ask person-link-neighbors [ if random-float 1 < 0.2 [ set knowledge (knowledge + [knowledge] of myself) / 2 ] ] ] ] end to update-knowledge-growth [ai] set knowledge knowledge + (ai * education-level) end to attempt-skill-decay [ai] let skills-decay-probability random-float 1 if (skills-decay-probability > Skills_decay_threshold) [ set education-level max (list 1 (education-level - 1)) set knowledge knowledge * 0.9 ] end ; ================================ ; JOB MARKET SYSTEM ; ================================ to create-jobs let target-jobs Min_jobs + random (Max_jobs - Min_jobs + 1) let candidates patches with [not job?] ask n-of (min (list target-jobs (count candidates))) candidates [ set job? true set pcolor orange set job-education-level 1 + random 2 ; Int 1-3 set job-ai-usage-level 0.1 + random-float 0.8 ; 0.1-0.9 set ai-adjustment-speed 0.05 ; Adaptive job market speed ] end to delete-jobs ask patches [ if not is-boolean? job? [ set job? false ] ] let existing-jobs patches with [job?] let to-delete n-of (count existing-jobs * Clearance_rate) existing-jobs ask to-delete [ set job? false set pcolor black ] free-associated-workers to-delete end to free-associated-workers [deleted-jobs] ask persons [ if assigned-job != nobody [ if member? assigned-job deleted-jobs [ set has-job? false set assigned-job nobody set color blue ] ] ] end to assign-jobs let candidates persons with [not has-job?] ask candidates [ let suitable-jobs patches with [ job? and (job-education-level <= [education-level] of myself) ] if any? suitable-jobs [ let job one-of suitable-jobs accept-job job ] ] end to accept-job [job] set has-job? true set assigned-job job set color green let ai [job-ai-usage-level] of job set decision-making-level (1 - ai) set privacy-level max (list 0 (privacy-level - (Laziness_factor * ai))) end ; ADAPTIVE JOB MARKET: Jobs adjust AI usage based on local skills to adapt-ai-usage ask patches with [job?] [ let available-skills 0 if any? persons-here [ set available-skills mean [education-level] of persons-here ] set job-ai-usage-level job-ai-usage-level + (ai-adjustment-speed * (1 - (available-skills / 3))) set job-ai-usage-level min list 1 job-ai-usage-level ] end ; ================================ ; POLICY INTERVENTIONS ; ================================ to implement-policy if ticks mod 365 = 0 [ set tax-rate 0.1 + (0.4 * (count persons with [education-level = 1] / (count persons))) set ubi tax-rate * count persons / 1000 ] end ; ================================ ; SPATIAL DYNAMICS ; ================================ to calculate-desirability ask patches [ let avg-edu 0 if any? persons-here [ set avg-edu mean [education-level] of persons-here ] set desirability (0.3 * count persons-here with [has-job?]) + (0.7 * avg-edu) ] end to migrate-persons ask persons [ let best-patch max-one-of neighbors4 [desirability] if best-patch != patch-here [ move-to best-patch ] ] end ; ================================ ; TECHNOLOGY ADOPTION CURVE ; ================================ to update-ai-adoption let ai-users count patches with [job-ai-usage-level > 0.7] if ai-users > (count patches * 0.15) [ ask patches with [job?] [ set job-ai-usage-level min list 1 (job-ai-usage-level * 1.05) ] ] end ; ================================ ; COGNITIVE MODEL INTEGRATION ; ================================ to update-decisions ask persons [ let ai 0 if has-job? and assigned-job != nobody [ set ai [job-ai-usage-level] of assigned-job ] set decision-making-level decision-making-level + (0.1 * (knowledge / 3) * (1 - privacy-level)) - (0.05 * ai) set decision-making-level min list 1 max list 0 decision-making-level ] end
There is only one version of this model, created 11 days ago by Prince Foli Acouetey.
Attached files
No files
This model does not have any ancestors.
This model does not have any descendants.