Simulation of AI Impact on Human Knowledge - version 1

No preview image

1 collaborator

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by the author
Model was written in NetLogo 6.4.0 • Viewed 28 times • Downloaded 0 times • Run 0 times
Download the 'Simulation of AI Impact on Human Knowledge - version 1' modelDownload this modelEmbed this model

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 size
  • Probability_education1/2: Education distribution probabilities
  • Population_max_increase_per_tick: Maximum reproduction rate per tick
  • Population_max_death_per_tick: Maximum death rate per tick

Job Market

  • Min_jobs / Max_jobs: Range of jobs created each tick
  • Clearance_rate: Fraction of jobs deleted each tick

AI & Knowledge

  • Laziness_factor: Privacy erosion multiplier
  • Skills_decay_threshold: Probability threshold for skill decay

Policy

  • tax-rate and ubi are managed automatically by the model

Simulation

  • Max_time: Total simulation duration (ticks)
  • Use the Setup and Go buttons to run the simulation
  • Be careful of the values chosen for Max_time, Population_max_increase_per_tick and Population_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

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

; ================================
; 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.